마이크로아키텍처

Microarchitecture, 마이크로아키텍처/컴퓨터조직

1 개요

a72-block-diagram.gif
블록다이어그램으로 표현된 마이크로아키텍처의 전형적인 예시

마이크로아키텍처를 논하기 전에 과연 마이크로아키텍처와 그 상위의 CPU 아키텍처라는 개념을 구상하고 만들어 내게 된 동기부터 살펴볼 필요가 있는데, 왜 CPU 아키텍처가 필요하게 되었는지에 대한 이해가 선행 되어야 CPU 아키텍처의 개념을 이해할 수 있고, CPU 아키텍처에 대한 개념을 이해해야 결국 그 하위에 속한 명령어셋 아키텍처와 마이크로아키텍처에 대한 개념을 확실히 이해할 수 있다.

일단 비유적으로 이야기 하자면 CPU는 클럭이라는 동기화 신호에 맞춰 디지털 데이터라는 원료를 처리하여 제품화된 디지털 데이터를 출력하는 작업을 수행하는 일종의 공장이라고 표현할 수 있다.

다음은 CPU공장이 조업하는 방식이다.

  • 우선 데이터를 어떤 제품으로 만들 것인가에 대한 작업지시서를 받아 온다.(명령어 인출)
  • 작업 지시서의 세부 작업 내용들을 해석하고 여러 개의 세부 지시서로 나누어 편집하여 공장내 각 부서에 전달하는 작업을 수행한다.(명령어 디코드 및 스케쥴링)
  • 세부 지시서에서 어떤 데이터를 가공할 것인가에 대한 내용에 따라 원자재 창고의 특정 위치에서 원자재를 인출해 온다.(데이터 인출)
  • 원자재 A는 세부 작업지시서에 내용에 따라 컨베이어벨트 2호기에 적재하여 이송시킨다.(데이터 적재)
  • 컨베이어밸트 2호기에는 원자재 쉬프트 장치와 덧셈 장치가 있으며 세부 작업지시서에 따라 쉬프트 장치와 덧셈장치가 원자재 A를 가공물B로 가공한다.(연산)
  • 가공이 끝난 가공물 B는 또다른 세부 작업지시서의 지시에 따라 제품 창고의 특정 위치로 이송된다.(데이터 쓰기)

위에서와 같이 공장의 예를 생각할 경우, 효율적인 공장의 설계와 조직을 위해서는 공장 설계자는 아래와 같은 내용을 고민하고 결졍해야만 한다.

  • 처음 가져오는 작업지시서의 서식을 어떻게 구성해야 정확하고 효율적으로 세부 지시서들을 편집할 수 있을 것인가? (명령어셋 아키텍처의 구현)
  • 작업지시서를 받은 관리부서는 어떻게 하면 빠르고 효율적으로 작업 지시서를 세부 지시서로 변환하여 각 라인을 통제하는 작업반장들에게 전달하여 작업 준비를 시킬 수 있을 것인가? (명령어 디코딩 및 전송)
  • 원자재 창고의 크기와 계층, 이송도로, 운송장비를 어떻게 구성해야 빠르고 효율적으로 많은 원자재를 적정량 만큼 꺼내올 수 있는가? (메모리 서브시스템/캐시메모리 구조)
  • 컨베이어 벨트는 과연 몇 개나 깔아야 하며 각 컨베이어 벨트의 속도와 용량은 얼마로 정해야 하는가? ( 슈퍼스칼라 및 파이프라인 구조)
  • 각 컨베이어 벨트의 가공장비는 몇 대를 어느 컨베이어에 어떤 종류를 배치할 것인가?(연산유닛의 숫자 및 기능 구현)
  • 세부 지시서들을 각 공장의 컨베이어나 이송장비나 가공장비에 어떻게 정확하면서도 적시에 전달할 수 있을 것인가? (컨트롤 구조)
  • 가공 완료된 제품은 어떻게 완제품창고로 빠르고 정확하게 이송하여 보관할 것인가?(메모리 서브시스템/캐시메모리 구조)

결국 CPU의 아키텍처라는 것은 위에 언급한 공장 설계자가 안고 있는 문제에 대한 답을 실제 설계로 구현해 내는 작업이라고 설명할 수 있다. 언급한 작업지시서의 서식이야 말로 바로 CPU의 명령어셋 아키텍처에 해당하며,[1] 또한 그 작업지시서를 해석하고 수행해 내는 전반적인 구조를 가리켜서 바로 본 글의 주제인 마이크로아키텍처라고 칭한다.

2 인텔

2.1 일반 마이크로아키텍처

2.1.1 틱-톡 전략 이전

2.1.2 틱-톡 전략

틱-톡공정 마이크로아키텍처 코드네임 출시일
65nm 넷버스트 마이크로아키텍처[2]프레슬러/시더밀/요나2006년 6월
코어 마이크로아키텍처메롬[3]2006년 7월
45nm펜린2007년 11월
네할렘 마이크로아키텍처네할렘2008년 11월
32nm웨스트미어2010년 1월
샌디브릿지 마이크로아키텍처샌디브릿지2011년 1월
22nm아이비브릿지2012년 4월
하스웰 마이크로아키텍처하스웰/하스웰 리프레시/데빌스캐년2013년 6월/2014년 6월
14nm브로드웰2015년 1월

2.1.3 P-A-O 전략

틱-톡공정 마이크로아키텍처 코드네임 출시일
Process14nm하스웰 마이크로아키텍처브로드웰2015년 1월
Architecture스카이레이크 마이크로아키텍처스카이레이크2015년 8월
Optimazion카비레이크
Process10nm캐논레이크
Architecture아이스레이크
Optimazion타이거레이크

2.2 저전력 마이크로아키텍처

  • 인텔 본넬 마이크로아키텍처
  • 인텔 솔트웰 마이크로아키텍처
  • 인텔 실버몬트 마이크로아키텍처
  • 인텔 에어몬트 마이크로아키텍처
  • 인텔 골드몬트 마이크로아키텍처

3 AMD

4 NVIDIA

  • 테슬라
  • 페르미
  • 케플러
  • 맥스웰
  • 파스칼
  • 볼타
  1. 참고로 명령어셋 아키텍처라는 개념이 대두된 계기는 규모와 설비, 특히 건설 시점이 각각 다른 공장들의 작업지시서를 하나로 통일해야 할 필요성에 의한 것이다. 즉 작업지시서 서식을 동일하게 유지하면 83년도에 세운 공장과 85년도에 세운 공장 모두 같은 작업지시서를 가지고 조업지시를 내릴 수 있게 되고, 그 작업지시서의 순차적 묶음이 기계어-어셈블리어 를 거치면서 바로 오늘날의 범용 소프트웨어로 발전해 온 것.
  2. 넷버스트 마이크로아키텍처 자체는 2000년 펜티엄4 출시 이후부터 코어2 출시때까지 계속 사용되어온 아키텍처이며, 180nm 공정부터 65nm 공정까지 공정개선을 이뤄가며 사용되었다
  3. 인텔 공식 발표 자료에 따르면 콘로가 아니라 메롬(Merom)이다. 파일:NXBqbHZ.jpg
  4. ARMv8-A 명령어 세트 기반 마이크로아키텍처이다.