마이크로 오퍼레이션

Micro-operation
일반적인 가져오기-복호화-실행 사이클[1]: 11 중에 수행되는 기계 명령의 마이크로 오퍼레이션 분해를 보여주는 개략적인 그림

컴퓨터 중앙처리장치에서 마이크로 오퍼레이션(마이크로 ops 또는 μops라고도 함, 역사적으로 마이크로[2] 액션이라고도 함)[3]: 8–9 은 복잡한 기계 명령(이 문맥에서 매크로 명령이라고도 함)을 구현하기 위해 일부 설계에서 사용되는 세부 하위 수준의 명령입니다.

통상 마이크로 연산은 레지스터 간 또는 중앙처리장치(CPU)의 레지스터와 외부 버스 간의 데이터 전송 및 레지스터에 대한 산술 또는 논리 연산을 포함한 하나 이상의 레지스터에 저장된 데이터에 대한 기본 연산을 수행한다.전형적인 fetch-decode-execute 사이클에서는 매크로 명령의 각 스텝이 실행 중에 분해되므로 CPU는 일련의 마이크로 오퍼레이션을 결정하고 스텝을 진행합니다.마이크로 오퍼레이션의 실행은 CPU의 컨트롤 유닛의 제어 하에 실행됩니다.컨트롤 유닛은 순서 변경, 퓨전, [1]캐싱 등의 다양한 최적화를 실행하면서 그 실행을 결정합니다.

최적화

다양한 형태의 μops는 특정 CPU 설계의 구현이나 특정 다단계 동작 또는 어드레싱 모드의 시퀀싱만을 단순화하기 위해 사용되는 전통적인 마이크로코드 루틴의 기초가 되어 왔습니다.최근에는 최신 CISC 프로세서가 비동기 병렬 및 추측 실행을 보다 쉽게 처리할 수 있도록 μops도 다른 방법으로 채용되고 있습니다.기존의 마이크로코드와 마찬가지로 1개 이상의 테이블 룩업(또는 동등한 것)이 머신 명령(복호화 또는 번역 단계)의 부호화와 의미론에 근거해 적절한 μop 시퀀스를 찾기 위해서 행해지지만 마이크로코드 ROM에서 직접 CPU를 제어하는 견고한 μop 시퀀스를 갖는 대신 여기서는 μops가 동적으로 버퍼링됩니다.실행 [4]: 6–7, 9–11 전 일정 변경을 요청합니다.

이 버퍼링이란 기존의 마이크로코드(또는 유선) 설계보다 페치 및 디코드 단계를 실행 유닛에서 더 분리할 수 있음을 의미합니다.이것에 의해, 실행 순서에 관한 어느 정도의 자유도를 얻을 수 있기 때문에, 통상의 싱글 스레드 프로그램으로부터 명령 레벨의 병렬화를 어느 정도 추출할 수 있다(의존성이 체크되는 경우 등).머신 리소스(ALU, 로드/스토어 유닛 등)에 대한 μops의 매핑과 스케줄링을 동적으로 최적화하기 위해 더 많은 분석과 코드 시퀀스의 재정렬을 위해 개방됩니다.이것이 μop 레벨에서 발생하기 때문에, 다른 기계(매크로) 명령의 서브 오퍼레이션이 특정 μop 시퀀스에 혼재하는 경우가 많아, 몇개의 매크로 명령으로부터의 마이크로 명령의 순서가 어긋난 디스패치의 직접적인 결과로서 부분적으로 정렬된 기계 명령을 형성한다.다만, 이것은 마이크로 오퍼레이션퓨전과는 다릅니다.이것은, 보다 복잡한 마이크로 명령어가, 몇개의 단순한 마이크로 명령어를 대체하는 것을 목적으로 하고 있습니다.일반적으로 큐의 상태 변화나 사용을 최소한으로 억제해, 버퍼 공간을 재정렬하기 위해서입니다.따라서 소비 전력을 삭감합니다.micro-op fusion은 일부 최신 CPU [3]: 89–91, 105–106 [4]: 6–7, 9–15 설계에서 사용됩니다.

실행 최적화는 더욱 진전되었습니다.프로세서는 많은 기계 명령어를 일련의 μops로 변환할 뿐만 아니라 적절한 경우에는 그 반대도 수행합니다.프로세서에서는 특정 기계 명령 시퀀스(예를 들어 비교 후 조건부 점프)를 보다 복잡한 μop으로 조합하여 실행 모델에 더 잘 적합하게 하고, 따라서 프로세서를 사용할 수 있습니다.더 빨리 또는 더 적은 머신 리소스로 에코를 실행할 수 있습니다.이것은 매크로-op [3]: 106–107 [4]: 12–13 융합이라고도 합니다.

성능을 향상시키기 위한 또 다른 방법은 디코딩된 마이크로 오퍼레이션을 캐시하는 것입니다.그러면 동일한 매크로 명령이 다시 실행되면 프로세서는 디코딩된 마이크로 오퍼레이션을 다시 디코딩하는 대신 특수 캐시에서 직접 액세스할 수 있습니다.Intel NetBurst 마이크로아키텍처(Pentium 4)에 있는 이그제큐션 트레이스 캐시는 [5]이 테크놀로지의 일반적인 예입니다.이 캐시의 크기는 저장할 수 있는 마이크로 연산 수(또는 1024의 배수)로 나타낼 수 있습니다: Kμops.[6]

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b "Computer Organization and Architecture, Chapter 15. Control Unit Operation" (PDF). umcs.maine.edu. 2010-03-16. Retrieved 2014-12-29.
  2. ^ FM1600B Microcircuit Computer Ferranti Digital Systems (PDF). Bracknell, Berkshire, UK: Ferranti Limited, Digital Systems Department. October 1968 [September 1968]. List DSD 68/6. Archived (PDF) from the original on 2020-05-19. Retrieved 2020-05-19.
  3. ^ a b c Agner Fog (2014-02-19). "The microarchitecture of Intel, AMD and VIA CPUs: An optimization guide for assembly programmers and compiler makers" (PDF). agner.org. Retrieved 2014-03-21.
  4. ^ a b c Michael E. Thomadakis (2011-03-17). "The Architecture of the Nehalem Processor and Nehalem-EP SMP Platforms" (PDF). Texas A&M University. Archived from the original (PDF) on 2014-08-11. Retrieved 2014-03-21.
  5. ^ "Intel Pentium 4 1.4GHz & 1.5GHz". AnandTech. 2000-11-20. Retrieved 2013-10-06.
  6. ^ Baruch Solomon; Avi Mendelson; Doron Orenstein; Yoav Almog; Ronny Ronen (August 2001). "Micro-Operation Cache: A Power Aware Frontend for Variable Instruction Length ISA" (PDF). Intel. doi:10.1109/LPE.2001.945363. Retrieved 2014-03-21.