마이크로아키텍처

 

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

1. 개요
2. 상세
3.1. 일반 마이크로아키텍처
3.1.1. 틱-톡 전략 이전
3.1.2. 틱-톡 전략
3.1.3. P-A-O[1] 전략
3.2. 저전력 마이크로아키텍처


1. 개요


마이크로아키텍처(microarchitecture) 또는 CPU 아키텍처 , GPU 아키텍쳐는 컴퓨터 공학에서 CPUGPU 같은 하드웨어가 작동하는 방식을 서술한 일종의 '''컴퓨터 설계도'''이며, 때문에 하드웨어의 운영에 대해 세세하게 기술이 되어 있다.
학술 모임에서는 컴퓨터 시스템이라는 용어가 쓰이는 반면, 컴퓨터 산업에서는 마이크로아키텍처라는 용어가 더 자주 쓰인다. 마이크로아키텍처와 명령어 집합 구조 (ISA)는 함께 컴퓨터 아키텍처의 분야를 구성하고 있다.

2. 상세


[image]
블록다이어그램으로 표현된 마이크로아키텍처의 전형적인 예시
마이크로아키텍처를 논하기 전에 과연 마이크로아키텍처와 그 상위의 CPU 아키텍처라는 개념을 구상하고 만들어 내게 된 동기부터 살펴볼 필요가 있는데, 왜 CPU 아키텍처가 필요하게 되었는지에 대한 이해가 선행 되어야 CPU 아키텍처의 개념을 이해할 수 있고, CPU 아키텍처에 대한 개념을 이해해야 결국 그 하위에 속한 명령어셋 아키텍처와 마이크로아키텍처에 대한 개념을 확실히 이해할 수 있다.
일단 비유적으로 이야기 하자면 CPU는 클럭이라는 동기화 신호에 맞춰 디지털 데이터라는 원료를 처리하여 제품화된 디지털 데이터를 출력하는 작업을 수행하는 일종의 공장이라고 표현할 수 있다.
다음은 CPU공장이 조업하는 방식이다.
  • 우선 데이터를 어떤 제품으로 만들 것인가에 대한 작업지시서를 받아 온다.(명령어 인출)
  • 작업 지시서의 세부 작업 내용들을 해석하고 여러 개의 세부 지시서로 나누어 편집하여 공장내 각 부서에 전달하는 작업을 수행한다.(명령어 디코드 및 스케쥴링)
  • 세부 지시서에서 어떤 데이터를 가공할 것인가에 대한 내용에 따라 원자재 창고의 특정 위치에서 원자재를 인출해 온다.(데이터 인출)
  • 원자재 A는 세부 작업지시서에 내용에 따라 컨베이어벨트 2호기에 적재하여 이송시킨다.(데이터 적재)
  • 컨베이어밸트 2호기에는 원자재 쉬프트 장치와 덧셈 장치가 있으며 세부 작업지시서에 따라 쉬프트 장치와 덧셈장치가 원자재 A를 가공물B로 가공한다.(연산)
  • 가공이 끝난 가공물 B는 또다른 세부 작업지시서의 지시에 따라 제품 창고의 특정 위치로 이송된다.(데이터 쓰기)
위에서와 같이 공장의 예를 생각할 경우, 효율적인 공장의 설계와 조직을 위해서는 공장 설계자는 아래와 같은 내용을 고민하고 결졍해야만 한다.
  • 처음 가져오는 작업지시서의 서식을 어떻게 구성해야 정확하고 효율적으로 세부 지시서들을 편집할 수 있을 것인가? (명령어셋 아키텍처의 구현)
  • 작업지시서를 받은 관리부서는 어떻게 하면 빠르고 효율적으로 작업 지시서를 세부 지시서로 변환하여 각 라인을 통제하는 작업반장들에게 전달하여 작업 준비를 시킬 수 있을 것인가? (명령어 디코딩 및 전송)
  • 원자재 창고의 크기와 계층, 이송도로, 운송장비를 어떻게 구성해야 빠르고 효율적으로 많은 원자재를 적정량 만큼 꺼내올 수 있는가? (메모리 서브시스템/캐시메모리 구조)
  • 컨베이어 벨트는 과연 몇 개나 깔아야 하며 각 컨베이어 벨트의 속도와 용량은 얼마로 정해야 하는가? ( 슈퍼스칼라 및 파이프라인 구조)
  • 각 컨베이어 벨트의 가공장비는 몇 대를 어느 컨베이어에 어떤 종류를 배치할 것인가?(연산유닛의 숫자 및 기능 구현)
  • 세부 지시서들을 각 공장의 컨베이어나 이송장비나 가공장비에 어떻게 정확하면서도 적시에 전달할 수 있을 것인가? (컨트롤 구조)
  • 가공 완료된 제품은 어떻게 완제품창고로 빠르고 정확하게 이송하여 보관할 것인가?(메모리 서브시스템/캐시메모리 구조)
결국 CPU의 아키텍처라는 것은 위에 언급한 공장 설계자가 안고 있는 문제에 대한 답을 실제 설계로 구현해 내는 작업이라고 설명할 수 있다. 언급한 작업지시서의 서식이야 말로 바로 CPU의 명령어셋 아키텍처에 해당하며,[2] 또한 그 작업지시서를 해석하고 수행해 내는 전반적인 구조를 가리켜서 바로 본 글의 주제인 마이크로아키텍처라고 칭한다.

3. 인텔



3.1. 일반 마이크로아키텍처



3.1.1. 틱-톡 전략 이전


공정
마이크로아키텍처
코드네임
출시일
800nm
P5 마이크로아키텍처
P5
1993년 3월
600nm
P54C
1994년 3월
500nm
P6 마이크로아키텍처
P6
1995년 11월
350nm
P5 마이크로아키텍처
P54CQS/P54CS/P55C
1995년 3월/1995년 6월/1997년 1월
P6 마이크로아키텍처
클라매스
1997년 5월
250nm
P5 마이크로아키텍처
틸라묵
1997년 8월
P6 마이크로아키텍처
데슈츠/코빙턴/멘도시노/카트마이
1998년 1월/1998년 4월/1998년 8월/1999년 2월
180nm
코퍼마인
1999년 10월
넷버스트 마이크로아키텍처
윌라멧
2000년 11월
130nm
P6 마이크로아키텍처
투알라틴/베니아스
2001년 6월/2003년 3월
넷버스트 마이크로아키텍처
노스우드/갤러틴
2002년 1월/2003년 3월
90nm
프레스캇/스미스필드
2004년 2월/2005년 5월
P6 마이크로아키텍처
도선
2004년 5월

3.1.2. 틱-톡 전략


틱-톡
공정
마이크로아키텍처
코드네임
출시일

65nm
넷버스트 마이크로아키텍처[3]
프레슬러/시더밀
2006년 1월
P6 마이크로아키텍처
요나
2006년 1월

코어 마이크로아키텍처
메롬[4]
2006년 7월

45nm
펜린
2007년 11월

네할렘 마이크로아키텍처
네할렘
2008년 11월

32nm
웨스트미어
2010년 1월

샌디브릿지 마이크로아키텍처
샌디브릿지
2011년 1월

22nm
아이비브릿지
2012년 4월

하스웰 마이크로아키텍처
하스웰
하스웰 리프레시
데빌스캐년
2013년 6월
2014년 5월
2014년 6월

14nm
브로드웰
2014년 9월

3.1.3. P-A-O[5] 전략


P-A-O
공정
마이크로아키텍처
CPU 코드네임
출시일
공정
14nm
하스웰 마이크로아키텍처
브로드웰
2014년 9월 5일
아키텍처
스카이레이크 마이크로아키텍처
스카이레이크
2015년 8월 5일
최적화
카비레이크
카비레이크 리프레시
커피레이크
위스키레이크/앰버레이크
커피레이크 리프레시
코멧레이크
2016년 8월 30일
2017년 8월 21일
2017년 9월 23일
2018년 8월 28일
2018년 10월 8일
2019년 8월 21일
공정
10nm
캐논레이크[6]
2018년 5월 15일
아키텍처
서니 코브 마이크로아키텍처
아이스레이크
2019년 8월 1일
최적화
타이거레이크
2020년 예정

3.2. 저전력 마이크로아키텍처



4. AMD


  • GPU 마이크로아키텍처
    • Rage 4 마이크로아키텍처 (1998년)
    • Rage 6 (R100) 마이크로아키텍처 (2000년)
    • R200 마이크로아이텍처 (2001년)
    • R300 마이크로아키텍처 (2002년)
    • R400 마이크로아키텍처 (2004년)
    • R500 마이크로아키텍처 (2005년)
    • TeraScale 마이크로아키텍처 (2007년)
    • TeraScale 2 마이크로아키텍처 (2009년)
    • TeraScale 3 마이크로아키텍처 (2010년)
    • 1세대 Graphics Core Next 마이크로아키텍처 (2012년)
    • 2세대 Graphics Core Next 마이크로아키텍처 (2013년)
    • 3세대 Graphics Core Next 마이크로아키텍처 (2014년)
    • 4세대 Graphics Core Next (폴라리스) 마이크로아키텍처 (2016년)
    • 5세대 Graphics Core Next (베가) 마이크로아키텍처 (2017년)
    • RDNA (나비) 마이크로아키텍처 (2019년)
    • RDNA 2 (?) 마이크로아키텍처 (2020년 예정)

5. NVIDIA


  • NV3 마이크로아키텍처 (1997년)
  • NV4 (파렌하이트) 마이크로아키텍처 (1998년)
  • NV10 (셀시우스) 마이크로아키텍처 (1999년)
  • NV20 (켈빈) 마이크로아키텍처 (2001년)
  • NV30 (랜킨) 마이크로아키텍처 (2003년)
  • NV40 (퀴리) 마이크로아키텍처 (2004년)
  • G80/G92 (1세대 테슬라) 마이크로아키텍처 (2006년)
  • G200/GT215 (2세대 테슬라) 마이크로아키텍처 (2008년)
  • 1세대 페르미 (GF100/GF104) 마이크로아키텍처 (2010년)
  • 2세대 페르미 (GF110/GF114) 마이크로아키텍처 (2010년)
  • 1세대 케플러 (GK104/GK110) 마이크로아키텍처 (2012년)
  • 2세대 케플러 (GK208) 마이크로아키텍처 (2013년)
  • 1세대 맥스웰 (GM107) 마이크로아키텍처 (2014년)
  • 2세대 맥스웰 (GM204) 마이크로아키텍처 (2014년)
  • 파스칼 마이크로아키텍처 (2016년)
  • 볼타 마이크로아키텍처 (2017년)
  • 튜링 마이크로아키텍처 (2018년)

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