마이크로아키텍처
Microarchitecture
컴퓨터 공학에서 마이크로아키텍처는 컴퓨터 조직이라고도 불리며 arch 또는 uarch라고도 불리며 특정 프로세서에서 특정 [1]명령 집합 아키텍처(ISA)가 구현되는 방법입니다.특정 ISA는 다른 마이크로아키텍처를 [2][3]사용하여 구현할 수 있습니다.또한 특정 설계의 목표가 다르거나 [4]테크놀로지의 변화에 따라 구현이 다를 수 있습니다.
컴퓨터 아키텍처는 마이크로 아키텍처와 명령 집합 아키텍처의 조합입니다.
명령 집합 아키텍처와의 관계
ISA는 어셈블리 언어 프로그래머 또는 컴파일러 라이터에서 볼 수 있는 프로세서의 프로그래밍 모델과 거의 동일합니다.ISA에는 명령, 실행 모델, 프로세서 레지스터, 주소 및 데이터 형식이 포함되어 있습니다.마이크로아키텍처에는 프로세서의 구성 부품과 ISA를 구현하기 위한 상호 연결 및 상호 운용 방법이 포함되어 있습니다.
기계의 마이크로아키텍처는 일반적으로 기계의 다양한 마이크로아키텍처 요소(단일 게이트 및 레지스터에서 완전한 산술 논리 유닛(ALU) 및 더 큰 요소까지)의 상호 연결을 설명하는 (더 자세한) 다이어그램으로 표현됩니다.이러한 다이어그램은 일반적으로 데이터 경로(데이터가 배치되는 위치)와 제어 경로(데이터를 [5]조정한다고 할 수 있음)를 구분합니다.
일반적으로 시스템을 설계하는 사람은 특정 마이크로아키텍처를 데이터 흐름도의 일종으로 그립니다.블록 다이어그램과 같이 마이크로 아키텍처 다이어그램은 산술 및 논리 유닛과 레지스터 파일 등의 마이크로 아키텍처 요소를 단일 도식 기호로 나타냅니다.통상, 이 그림에서는, 이러한 요소를 화살표, 굵은 선, 가는 선으로 접속해, 3 스테이트 버스(버스를 구동하는 디바이스 마다 3 스테이트 버퍼가 필요), 단방향 버스(심플한 컴퓨터의 주소 버스가 항상 메모리 주소로 구동되는 방법 등)를 구별합니다. 레지스터) 및 개별 제어선.매우 심플한 컴퓨터는 단일 데이터 버스 조직을 가지고 있으며, 단일 3스테이트 버스를 가지고 있습니다.보다 복잡한 컴퓨터의 다이어그램은 일반적으로 여러 개의 3스테이트 버스를 나타내며, 이는 기계가 동시에 더 많은 작업을 수행할 수 있도록 도와줍니다.
각 마이크로아키텍처 요소는 차례로 그것을 구현하기 위해 사용되는 논리 게이트의 상호접속을 설명하는 도식으로 표현된다.각 로직 게이트는 특정 로직 패밀리에서 그것을 실장하기 위해 사용되는 트랜지스터의 접속을 기술하는 회로도에 의해 차례로 나타난다.다른 마이크로아키텍처를 가진 머신은 동일한 명령어셋 아키텍처를 가지고 있기 때문에 동일한 프로그램을 실행할 수 있습니다.새로운 마이크로 아키텍처 및/또는 회로 솔루션은 반도체 제조의 진보와 함께 새로운 세대의 프로세서가 동일한 ISA를 사용하면서 더 높은 성능을 달성할 수 있도록 합니다.
원칙적으로 하나의 마이크로아키텍처에서는 마이크로코드에 약간의 변경만 가해도 여러 개의 다른 ISA를 실행할 수 있습니다.
양상

파이프라인 데이터 패스는 오늘날 마이크로 아키텍처에서 가장 일반적으로 사용되는 데이터 패스 설계입니다.이 기술은 대부분의 최신 마이크로프로세서, 마이크로컨트롤러 및 DSP에서 사용됩니다.파이프라인 아키텍처를 사용하면 조립 라인과 마찬가지로 실행 시 여러 명령이 겹칠 수 있습니다.파이프라인에는 마이크로아키텍처 [5]설계의 기초가 되는 몇 가지 다른 단계가 포함됩니다.이러한 단계에는 명령 가져오기, 명령 디코딩, 실행 및 쓰기 등이 있습니다.일부 아키텍처에는 메모리 액세스와 같은 다른 단계가 포함됩니다.파이프라인 설계는 중앙 마이크로아키텍처 태스크 중 하나입니다.
실행 유닛은 마이크로아키텍처에서도 필수적입니다.실행 유닛에는 산술논리 유닛(ALU), 부동소수점 유닛(FPU), 로드/스토어 유닛, 분기 예측 및 SIMD가 포함됩니다.이러한 유닛은 프로세서의 연산 또는 계산을 수행합니다.실행 유닛의 수, 레이텐시 및 throughput의 선택은 마이크로아키텍처 설계의 중심 태스크입니다.시스템 내 메모리의 크기, 레이텐시, throughput 및 연결성도 마이크로 아키텍처의 결정 사항입니다.
메모리 컨트롤러 등의 주변기기를 포함할지 여부 등 시스템 수준의 설계 결정은 마이크로 아키텍처 설계 프로세스의 일부로 간주할 수 있습니다.여기에는 이들 주변기기의 퍼포먼스 수준과 접속성에 대한 결정이 포함됩니다.
특정 성능 수준을 달성하는 것이 주요 목표인 아키텍처 설계와 달리 마이크로 아키텍처 설계는 다른 제약 사항에 더욱 주의를 기울입니다.마이크로아키텍처 설계 결정은 시스템에 들어가는 것에 직접 영향을 미치기 때문에 칩 영역/비용, 소비전력, 로직의 복잡성, 접속의 용이성, 제조 가능성, 디버깅의 용이성, 테스트 가능성과 같은 문제에 주의를 기울여야 합니다.
마이크로아키텍처 개념
명령 사이클
프로그램을 실행하려면 모든 싱글칩 또는 멀티칩 CPU:
- 지침을 읽고 디코딩합니다.
- 명령을 처리하는 데 필요한 모든 관련 데이터를 찾습니다.
- 지시를 처리하다
- 결과를 기입하다
전원이 꺼질 때까지 명령 주기가 계속 반복됩니다.
멀티사이클 마이크로아키텍처
역사적으로 최초의 컴퓨터는 다륜구동 설계였다.가장 작고 비용이 적게 드는 컴퓨터에서도 이 기술을 사용하는 경우가 많습니다.멀티사이클 아키텍처는 대부분의 경우 최소의 총 논리 요소 수와 적절한 양의 전력을 사용합니다.결정론적 타이밍과 높은 신뢰성을 갖도록 설계할 수 있습니다.특히 조건부 분기 또는 인터럽트를 취할 때 정지할 파이프라인이 없습니다.그러나 다른 마이크로아키텍처에서는 동일한 로직 패밀리를 사용하여 단위 시간당 더 많은 명령을 수행하는 경우가 많습니다."성능 향상"을 논할 때, 개선은 종종 다중 자전거 설계와 관련이 있습니다.
다륜차 컴퓨터에서 컴퓨터는 시계 몇 사이클에 걸쳐 4단계를 순차적으로 수행합니다.일부 설계에서는 교대 클럭 엣지에서 연속된 스테이지를 완료함으로써 2개의 클럭 사이클로 시퀀스를 실행할 수 있습니다.메인 사이클 이외에서는 동작이 길어질 수 있습니다.예를 들어 제1사이클의 상승에지 1단계, 제1사이클의 하강에지 2단계 등이다.
제어 로직에서는 사이클 카운터, 사이클 상태(하이 또는 로우) 및 명령 디코드 레지스터의 비트의 조합에 따라 컴퓨터의 각 부분이 정확히 무엇을 해야 하는지를 결정합니다.제어 로직을 설계하기 위해 각 명령의 각 사이클에서 컴퓨터의 각 부분에 대한 제어 신호를 설명하는 비트 표를 만들 수 있습니다.다음으로 테스트 코드를 실행하는 소프트웨어 시뮬레이션에서 이 논리 테이블을 테스트할 수 있습니다.논리 테이블이 메모리에 배치되어 실제 컴퓨터를 작동시키기 위해 사용된다면, 그것은 마이크로 프로그램이라고 불립니다.일부 컴퓨터 설계에서 논리 테이블은 논리 게이트에서 만들어진 조합 논리 형태로 최적화되며, 일반적으로 논리를 최적화하는 컴퓨터 프로그램을 사용합니다.초기 컴퓨터는 모리스 윌크스가 이 표 형식의 접근법을 발명하고 마이크로프로그래밍이라고 [6]부르기 전까지 제어를 위해 임시 논리 설계를 사용했다.
실행 속도 향상
이 간단한 일련의 단계를 복잡하게 만드는 것은 캐시, 메인 메모리 및 하드 디스크와 같은 비휘발성 스토리지를 포함하는 메모리 계층(프로그램 명령 및 데이터가 존재하는 곳)이 프로세서 자체보다 항상 느리다는 사실입니다.스텝 (2)에서는 데이터가 컴퓨터 버스를 통해 도착하는 동안 (CPU 용어로) 지연이 길어지는 경우가 많습니다.이러한 지연을 가능한 한 피할 수 있는 설계에 상당한 양의 연구가 투입되었습니다.수년간, 중심 목표는 더 많은 명령을 병렬로 실행하는 것이었고, 따라서 프로그램의 효과적인 실행 속도를 높이는 것이었습니다.이러한 노력은 복잡한 논리와 회로 구조를 도입했습니다.처음에는 이러한 기술에 필요한 회로의 양이 많기 때문에 값비싼 메인프레임이나 슈퍼컴퓨터에만 이러한 기술을 구현할 수 있었습니다.반도체 제조가 진행될수록 하나의 반도체 칩에 더 많은 기술을 구현할 수 있게 됐다.무어의 법칙을 보세요.
명령 집합 선택
명령 집합은 원래 매우 단순한 것에서 때로는 매우 복잡한 것(다양한 측면에서)으로 몇 년 동안 변화해 왔습니다.최근에는 로드 스토어 아키텍처, VLIW 및 EPIC 유형이 유행하고 있습니다.데이터 병렬 처리를 다루는 아키텍처에는 SIMD와 벡터가 포함됩니다.CPU 아키텍처의 클래스를 나타내기 위해 사용되는 일부 라벨은 특히 CISC 라벨이 설명적이지 않습니다.CISC로 소급된 많은 초기 설계는 사실 최신 RISC 프로세서보다 상당히 단순합니다(여러 측면에서).
그러나 명령 집합 아키텍처의 선택은 고성능 디바이스 구현의 복잡성에 큰 영향을 미칠 수 있습니다.최초의 RISC 프로세서를 개발하기 위해 사용된 중요한 전략은 명령어를 높은 부호화 규칙성과 단순성과 함께 최소한의 개별 의미 복잡성으로 단순화하는 것이었습니다.이러한 균일한 명령어는 파이프라인 방식으로 쉽게 가져오기, 디코딩 및 실행되었으며 높은 동작 주파수에 도달하기 위해 논리 레벨의 수를 줄이는 단순한 전략이었다. 명령 캐시 메모리는 높은 동작 주파수와 본질적으로 낮은 코드 밀도를 보상하고 큰 레지스터 세트를 인수하는 데 사용되었다.(느린) 메모리 액세스를 가능한 한 많이 사용합니다.
명령 파이프라인링
성능을 향상시키는 첫 번째 가장 강력한 기술 중 하나는 명령 파이프라이닝을 사용하는 것입니다.초기의 프로세서 설계에서는, 다음의 순서로 진행되기 전에, 1개의 순서에 대해서 상기의 순서를 모두 실행합니다.예를 들어 명령 디코딩 회로는 실행 중에 아이돌 상태가 되는 등 회로의 많은 부분이 한 번에 아이돌 상태가 됩니다.
파이프라이닝을 사용하면 여러 명령이 동시에 프로세서를 통해 작동하므로 성능이 향상됩니다.같은 기본적인 예에서 프로세서는 마지막 명령어가 결과를 기다리는 동안 새로운 명령어의 디코딩을 시작합니다(스텝 1).이것에 의해, 동시에 최대 4개의 명령어를 「실행중」으로 할 수 있기 때문에, 프로세서의 동작은 4배로 빨라집니다.1개의 명령어가 완료되는 데 걸리는 시간은 동일하지만(아직 4개의 스텝이 있습니다), CPU는 전체 명령어가 "폐기"되는 속도가 훨씬 빠릅니다.
RISC는 명령 프로세스의 각 단계를 깔끔하게 분리하여 동일한 시간(1사이클)에 걸쳐 파이프라인을 보다 소형화하고 구축하기 쉽게 합니다.프로세서는 전체적으로 조립라인 방식으로 동작하며 한쪽에서 명령이 들어오고 다른 한쪽에서 명령이 생성됩니다.기존의 RISC 파이프라인이 복잡하지 않기 때문에 파이프라인 코어와 명령 캐시는 CISC 설계상 코어에만 들어가는 같은 크기의 다이 위에 배치할 수 있습니다.이것이 RISC가 고속인 진짜 이유입니다.SPARC나 MIPS와 같은 초기 설계는 같은 클럭 속도와 가격으로 인텔이나 모토로라 CISC 솔루션보다 10배 이상 빠르게 동작하는 경우가 많습니다.
파이프라인은 RISC 설계에 국한되지 않습니다.1986년까지 최고급 VAX 구현(VAX 8800)은 파이프가 많은 설계가 되어 최초의 상업용 MIPS 및 SPARC 설계보다 약간 앞섰습니다.현재 대부분의 최신 CPU(내장 CPU도 포함)는 파이프라인으로 되어 있으며 파이프라인 없이 마이크로코딩된 CPU는 영역 제약이 많은 내장 프로세서에서만 볼 [examples needed]수 있습니다.VAX 8800에서 최신 Pentium 4 및 Athlon에 이르는 대형 CISC 머신은 마이크로 코드와 파이프라인을 모두 사용하여 구현됩니다.파이프라이닝과 캐싱의 개선은 프로세서 성능이 기반이 되는 회로 기술에 보조를 맞출 수 있게 해준 두 가지 주요 마이크로 아키텍처 진보입니다.
캐시
머지않아 칩 제조가 개선되어 더 많은 회로가 금형 위에 놓이게 되었고, 설계자들은 그것을 사용하는 방법을 찾기 시작했습니다.가장 일반적인 방법 중 하나는 연속적으로 증가하는 캐시 메모리를 추가하는 것이었습니다.캐시는 매우 빠르고 비싼 메모리입니다.메인 메모리와 "대화"해야 하는 많은 요구와는 달리 몇 번의 사이클로 액세스할 수 있습니다.CPU에는 캐시로부터의 읽기 및 쓰기를 자동화하는 캐시 컨트롤러가 포함되어 있습니다.데이터가 이미 캐시에 있는 경우, 캐쉬로부터 액세스 할 수 있기 때문에, 상당한 시간을 절약할 수 있습니다.또, 프로세서가 아닌 경우, 캐쉬 컨트롤러가 데이터를 읽어 들이는 동안 「스톨」됩니다.
RISC 설계는 1980년대 중후반부터 캐시를 추가하기 시작했으며, 대개는 총 4KB에 불과했습니다.이 수는 시간이 지남에 따라 증가하여 현재 일반적인 CPU에는 최소 2MB가 탑재되어 있으며, 보다 강력한 CPU에는 4MB, 6MB, 12MB 또는 32MB 이상이 탑재되어 있으며, 가장 강력한 CPU는 메모리 계층의 여러 레벨로 구성된 새로운 EPYC Milan-X 라인에서 768MB가 탑재되어 있습니다.일반적으로 캐시가 많을수록 지연이 줄어들기 때문에 성능이 향상됩니다.
캐시와 파이프라인이 서로 완벽하게 일치했습니다.이전에는 오프칩 메모리의 액세스 레이텐시보다 더 빨리 실행할 수 있는 파이프라인을 구축하는 것은 그다지 의미가 없었습니다.대신 온칩 캐시 메모리를 사용하면 파이프라인이 캐시 액세스 지연의 속도로 훨씬 짧은 시간 내에 실행될 수 있습니다.이를 통해 프로세서의 동작 주파수는 오프칩 메모리보다 훨씬 빠른 속도로 증가할 수 있었습니다.
분기 예측
명령 수준의 병렬 처리를 통해 성능을 향상시키는 데 걸림돌 중 하나는 지점으로 인한 파이프라인 정지 및 플러시입니다.조건부 브랜치는 레지스터에서 나오는 결과에 따라 달라지기 때문에 일반적으로 조건부 브랜치를 취할지는 파이프라인의 후반까지 알 수 없습니다.프로세서의 명령 디코더가 조건부 분기 명령을 발견한 시점부터 결정 레지스터 값을 읽을 수 있는 시점까지 파이프라인은 여러 사이클 동안 정지해야 하며, 그렇지 않은 경우 파이프라인을 플러시해야 합니다.클럭 속도가 증가함에 따라 파이프라인의 깊이가 증가하며 일부 최신 프로세서는 20단계 이상의 단계를 가질 수 있습니다.평균적으로 실행되는 모든 5가지 명령은 브랜치이므로 개입이 없으면 상당한 지연이 발생합니다.
분기 예측 및 추측 실행과 같은 기법을 사용하여 이러한 분기 패널티를 줄입니다.브랜치 예측은 하드웨어가 특정 브랜치를 도입할지에 대해 전문적인 추측을 하는 곳입니다.실제로는 한쪽 지점은 다른 쪽보다 훨씬 더 자주 호출됩니다.현대 설계는 다소 복잡한 통계 예측 시스템을 가지고 있으며, 이는 미래를 더 정확하게 예측하기 위해 과거 분기의 결과를 관찰합니다.이 추측을 통해 하드웨어는 레지스터 판독을 기다리지 않고 명령을 프리페치할 수 있습니다.추측 실행은 예측 경로를 따라 코드가 프리페치될 뿐만 아니라 브런치를 취할 필요가 있는지 여부를 알기 전에 실행되는 추가적인 확장입니다.이렇게 하면 추측이 좋을 때 더 나은 성능을 얻을 수 있으며, 명령을 취소해야 하므로 추측이 나쁠 때 엄청난 패널티가 발생할 위험이 있습니다.
슈퍼스케일러
위에서 설명한 개념을 지원하는 데 필요한 복잡성과 게이트가 모두 추가되었음에도 불구하고, 반도체 제조의 개선으로 인해 더 많은 논리 게이트를 사용할 수 있게 되었습니다.
위의 개요에서 프로세서는 한 번에 하나의 명령의 일부를 처리합니다.여러 명령을 동시에 처리하면 컴퓨터 프로그램을 더 빨리 실행할 수 있었다.이것이 ALU와 같은 기능 단위를 복제함으로써 슈퍼칼라 프로세서가 실현하는 것입니다.기능 유닛의 복제는 단일 이슈 프로세서의 다이 영역이 더 이상 신뢰성 있게 제조할 수 있는 한계를 확장하지 않을 때만 가능했습니다.1980년대 후반에는 슈퍼스케일러 디자인이 시장에 등장하기 시작했다.
현대 설계에서는 일반적으로 두 개의 부하 단위, 한 개의 저장소(많은 명령에는 저장할 결과가 없음), 두 개 이상의 정수 연산 단위, 두 개 이상의 부동 소수점 단위, 그리고 종종 어떤 종류의 SIMD 단위를 찾습니다.명령어 발행 로직은 메모리에서 방대한 명령어 리스트를 읽어내고 그 시점에서 아이돌 상태에 있는 다른 실행 유닛에 전달함으로써 복잡성이 커집니다.그런 다음 결과를 수집하고 마지막에 다시 정렬합니다.
순서가 맞지 않는 실행
캐시를 추가하면 메모리 계층에서 데이터를 가져올 때까지 대기하기 때문에 중지 빈도 또는 기간이 줄어들지만 이러한 중지 시간이 완전히 제거되지는 않습니다.초기 설계에서는 캐시 누락으로 인해 캐시 컨트롤러가 프로세서를 정지하고 대기해야 했습니다.물론 그 시점에서 캐시에서 데이터를 사용할 수 있는 다른 명령이 프로그램에 있을 수 있습니다.순서가 잘못된 실행을 사용하면 이전 명령이 캐시에서 대기하는 동안 해당 준비 명령을 처리할 수 있으며, 그 후 결과를 다시 정렬하여 모든 것이 프로그래밍된 순서로 발생한 것처럼 보이게 할 수 있습니다.또한 이 기술은 장기 지연 부동 소수점 동작 또는 기타 멀티 사이클 동작의 결과를 기다리는 명령 등 다른 오퍼랜드 의존관계 스톨을 피하기 위해 사용됩니다.
등록명 변경
레지스터 이름 변경은 프로그램 명령이 동일한 레지스터를 재사용하기 때문에 이러한 명령의 불필요한 직렬 실행을 방지하기 위해 사용되는 기술을 말합니다.동일한 레지스터를 사용하는 명령 그룹이 두 개 있다고 가정합니다.레지스터를 다른 세트로 남기기 위해 명령의 한 세트가 먼저 실행되지만, 다른 한 세트가 다른 유사한 레지스터에 할당되면 두 명령 세트가 병렬로(또는) 직렬로 실행될 수 있다.
멀티프로세싱 및 멀티스레딩
CPU 동작 주파수와 DRAM 액세스 시간의 미스매치가 증가하고 있기 때문에, 컴퓨터 아키텍트는 곤란하게 되었습니다.하나의 프로그램 내에서 ILP(Instruction-Level Parallelism)를 이용한 기술은 메인 메모리에서 데이터를 가져와야 할 때 발생하는 긴 지연을 보충할 수 없습니다.게다가 보다 고도의 ILP 테크놀로지에 필요한 대량의 트랜지스터와 높은 동작 주파수로 인해 전력 소산 레벨이 필요하게 되어, 저비용으로 냉각할 수 없게 되었습니다.이러한 이유로 새로운 세대의 컴퓨터는 단일 프로그램 또는 프로그램 스레드 외부에 존재하는 더 높은 수준의 병렬 처리를 이용하기 시작했습니다.
이러한 경향은 throughput computing이라고도 합니다.이 아이디어는 온라인 트랜잭션 프로세싱이 하나의 트랜잭션의 실행 속도뿐만 아니라 방대한 수의 트랜잭션을 처리할 수 있는 용량에 중점을 둔 메인프레임 시장에서 비롯되었습니다.지난 10년 동안 네트워크 라우팅이나 웹 사이트 서비스 등의 트랜잭션 기반 애플리케이션이 크게 증가하면서 컴퓨터 업계는 용량 및 스루풋 문제를 다시 강조했습니다.
이 병렬화가 실현되는 방법의 한 가지 기술은 다중 처리 시스템, 즉 여러 CPU를 갖춘 컴퓨터 시스템을 통해 이루어집니다.한때 하이엔드 메인프레임 및 슈퍼컴퓨터용으로 예약되어 있던 소규모(2~8개) 멀티프로세서 서버는 중소규모 기업 시장에서 보편화되었습니다.대기업에서는 대규모(16~256) 멀티프로세서가 일반적입니다.심지어 여러 개의 CPU를 갖춘 개인용 컴퓨터도 1990년대부터 등장했습니다.
반도체 기술의 진보로 트랜지스터 크기가 더욱 줄어들면서, 같은 실리콘 칩에 여러 개의 CPU가 구현되는 멀티 코어 CPU가 등장했습니다.처음에는 임베디드 시장을 타깃으로 한 칩에 사용되었습니다.이 칩에서는, 심플하고 작은 CPU로, 1개의 실리콘에 복수의 인스턴스화를 넣을 수 있습니다.2005년까지 반도체 기술을 통해 듀얼 하이엔드 데스크톱 CPU CMP 칩을 대량으로 제조할 수 있었습니다.Sun Microsystems의 UltraSPARC T1과 같은 일부 디자인은 실리콘 한 조각에 더 많은 프로세서를 장착하기 위해 더 단순한 (스칼라, 순서대로) 설계로 되돌아갔습니다.
최근 더욱 인기를 끌고 있는 또 다른 기술은 멀티스레딩이다.멀티스레딩에서는 프로세서가 느린 시스템 메모리에서 데이터를 가져와야 할 경우 데이터가 도착하기 위해 정지하는 대신 프로세서는 실행 가능한 다른 프로그램 또는 프로그램 스레드로 전환합니다.이것은 특정 프로그램/스레드의 속도를 높이는 것은 아니지만 CPU의 아이돌 시간을 줄임으로써 전체적인 시스템 throughput을 높입니다.
개념적으로 멀티스레딩은 운영체제레벨의 컨텍스트스위치와 동등합니다.차이점은 멀티스레드 CPU는 컨텍스트스위치에 통상 필요한 수백 또는 수천 개의 CPU 사이클이 아닌 1개의 CPU 사이클로 스레드스위치를 실행할 수 있다는 것입니다.이것은, 액티브한 스레드 마다 상태 하드웨어(레지스터 파일이나 프로그램 카운터등)를 복제하는 것에 의해서 실현됩니다.
한층 더 향상된 기능은 동시 멀티스레딩입니다.이 기술을 통해 슈퍼스케일러 CPU는 동일한 사이클에서 다른 프로그램/스레드의 명령을 동시에 실행할 수 있습니다.
「 」를 참조해 주세요.

- 제어 장치
- 하드웨어 아키텍처
- 하드웨어 기술 언어(HDL)
- 명령 수준 병렬 처리(ILP)
- AMD CPU 마이크로아키텍처 목록
- 인텔 CPU 마이크로아키텍처 목록
- 프로세서 설계
- 스트림 처리
- VHDL
- 대규모 통합(VLSI)
- 베릴로그
레퍼런스
- ^ Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering (PDF). Association for Computing Machinery. 2004. p. 60. Archived from the original (PDF) on 2017-07-03.
Comments on Computer Architecture and Organization: Computer architecture is a key component of computer engineering and the practicing computer engineer should have a practical understanding of this topic...
- ^ Murdocca, Miles; Heuring, Vincent (2007). Computer Architecture and Organization, An Integrated Approach. Wiley. p. 151. ISBN 9780471733881.
- ^ Clements, Alan. Principles of Computer Hardware (4th ed.). pp. 1–2.
- ^ Flynn, Michael J. (2007). "An Introduction to Architecture and Machines". Computer Architecture Pipelined and Parallel Processor Design. Jones and Bartlett. pp. 1–3. ISBN 9780867202045.
- ^ a b Hennessy, John L.; Patterson, David A. (2006). Computer Architecture: A Quantitative Approach (4th ed.). Morgan Kaufmann. ISBN 0-12-370490-1.
- ^ Wilkes, M. V. (1969). "The Growth of Interest in Microprogramming: A Literature Survey". ACM Computing Surveys. 1 (3): 139–145. doi:10.1145/356551.356553. S2CID 10673679.
추가 정보
- Patterson, D.; Hennessy, J. (2004). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann. ISBN 1-55860-604-1.
- Hamacher, V. C.; Vrasenic, Z. G.; Zaky, S. G. (2001). Computer Organization. McGraw-Hill. ISBN 0-07-232086-9.
- Stallings, William (2002). Computer Organization and Architecture. Prentice Hall. ISBN 0-13-035119-9.
- Hayes, J. P. (2002). Computer Architecture and Organization. McGraw-Hill. ISBN 0-07-286198-3.
- Schneider, Gary Michael (1985). The Principles of Computer Organization. Wiley. pp. 6–7. ISBN 0-471-88552-5.
- Mano, M. Morris (1992). Computer System Architecture. Prentice Hall. p. 3. ISBN 0-13-175563-3.
- Abd-El-Barr, Mostafa; El-Rewini, Hesham (2004). Fundamentals of Computer Organization and Architecture. Wiley. p. 1. ISBN 0-471-46741-3.
- Gardner, J (2001). "PC Processor Microarchitecture". ExtremeTech.
- Gilreath, William F.; Laplante, Phillip A. (2012) [2003]. Computer Architecture: A Minimalist Perspective. Springer. ISBN 978-1-4615-0237-1.
- Patterson, David A. (10 October 2018). A New Golden Age for Computer Architecture. US Berkeley ACM A.M. Turing Laureate Colloquium. ctwj53r07yI.