[카드뉴스] CPU WARS : EPISODE V "THE EMPIRE STRIKES BACK"

by Dr.Lee on 2017년 02월 05일 16시 37분 (2년 전) 조회: 6,240 추천: 20

페이스북 퍼가기  

※ 닥터몰라 페이스북 페이지에 게시된 원본은 여기서 보실 수 있습니다!

 

카드뉴스-CPU WARS 02.001.jpeg

 

안녕하세요 독자 여러분. 어느새 두번째 편으로 찾아뵙게 되었습니다.

이번 편에서는 제국의 필살기, 데스스타... 아니 코어 아키텍처가 어떻게 태동하였는지를 간단히 짚어보고,

코어 아키텍처 및 그 전신인 P6 아키텍처, 그리고 코어의 후신인 네할렘 아키텍처에 대해 살펴볼 것입니다.

 

아키텍처 설명이 본격적으로 등장하는 첫 화인 만큼 내용도 지난 화보다 많아질 수밖에 없었는데,

최대한 간결히 구성한다고 노력했습니다만... 그래도 좀 지루하진 않을지 걱정되는건 어쩔 수 없네요;;

아무쪼록 저의 걱정이 기우이길, 독자 여러분께서 이번 편도 재미있게 봐 주시길 바라 봅니다.

(혹시 이전 편을 안 보였다면 여기서 보고 오시길 강력히 추천합니다!)

 

카드뉴스-CPU WARS 02.002.jpeg

 

카드뉴스-CPU WARS 02.003.jpeg

 

펜티엄 4의 넷버스트 아키텍처는, 다다음 편에서 다룰 예정이지만, 비정상적으로 퇴화를 감행한 아키텍처입니다.

정확히 말하면 고클럭 달성을 위해 파이프라인 스테이지를 늘리는 데 올인했고,

파이프라인 스테이지가 증가하며 트랜지스터 수가 급격히 증가하자 설계 자체를 후퇴시키면서까지도 파이프라인은 포기하지 않은 것입니다.

 

결국 첫 출시부터 1.5GHz, 이후 넷버스트 최초의 칩인 180nm 윌라멧에서 이미 2GHz를 달성한 데 이어,

130nm 노스우드는 3.2GHz까지 올리는 등 고클럭화에 성공하게 됩니다. (프레스캇에서 최종적으로 3.8GHz를 찍습니다.)

물론 '공짜 점심은 없다' 는 격언처럼, 이러한 성과에 따른 댓가는 아주 혹독했습니다.

 

카드뉴스-CPU WARS 02.004.jpeg

 

카드뉴스-CPU WARS 02.005.jpeg

 

이스라엘의 하이파 연구소가 만들어 낸 펜티엄 M.

플랫폼 전체를 통틀어 센트리노라는 이름으로 불리며 노트북 시장에서 큰 인기를 끌었습니다.

저 역시, 고등학교에 입학하던 십여년 전 펜티엄 M 베니어스가 탑재된 센트리노 노트북을 구입했던 기억이 있습니다.

이듬해 곧바로 L2 캐시 용량이 두 배로 증가한 (1MB -> 2MB) 펜티엄 M 도썬이 출시되어 좀 배가 아팠던 기억이...

 

카드뉴스-CPU WARS 02.006.jpeg

 

넷버스트가 폐기되기 전까지, 인텔은 다섯 번째 넷버스트 다이가 될 '테하스' (Tejas) 로 5-10GHz를 달성할 계획을 세웠었다고 합니다.

그러나 세 번째 다이인 프레스캇에서 이미 감당할 수 없을 만큼 소비전력이 폭증하기 시작했고,

지금으로서는 코웃음이 날 뿐이지만 당시로서는 제조공정(90nm)이 물리적 한계에 도달한 것이 아니냐는 의문이 진지하게 대두될 만큼

프레스캇의 몰락 (배선 내 누설전류 문제 등) 은 드라마틱한 것이었습니다.

 

당시 AMD의 카운터파트는 애슬론 64.

이를 상대하기 위해 인텔은 서버용 '제온' 라인업을 사실상 리브랜딩해 펜티엄 4 라인업에 편입시키는 등

극심한 파행을 겪었지만 끝내 애슬론 64의 점유율 상승을 막지 못했습니다.

 

여담이지만, 이때 제온에서 펜티엄 4 라인업으로 차출된 '갤러틴' (Gallatin) 다이는 2MB의 L3 캐시를 탑재하고 있어,

인텔 / AMD 양사를 통틀어 CPU 내에 L3 캐시를 탑재한 첫 사례로 기록됩니다.

동시에 갤러틴 기반 데스크탑 CPU는 '펜티엄 4 익스트림 에디션' 으로 브랜딩되며,

인텔이 데스크탑 시장에 '익스트림 에디션'을 두게 된 시초이기도 합니다.

 

카드뉴스-CPU WARS 02.007.jpeg

 

카드뉴스-CPU WARS 02.008.jpeg

 

요약하자면, 코어는 직전 세대의 펜티엄 4 (넷버스트 아키텍처) 가 아닌,

전전 세대의 펜티엄 III (P6 아키텍처) 를 계승한 것에 가깝습니다.

 

물론 그 사이에는 펜티엄 M (베니어스 - 도썬), 코어 듀오 / 솔로 (요나) 등이 과도기적으로 존재했고,

이들로부터 코어 아키텍처가 어떻게 진화해 나왔는지를 아래에서 설명해 나갈 것입니다.

 

카드뉴스-CPU WARS 02.009.jpeg

 

카드뉴스-CPU WARS 02.010.jpeg

 

카드뉴스-CPU WARS 02.011.jpeg

 

최초의 캐시가 CPU에 탑재된 것은 1989년 80486이 출시되면서부터였습니다.

메인보드상에 탑재된 캐시와 이를 구분하기 위해 위계를 나눠 L1 / L2 캐시로 부른 것이 오늘날의 계층 구조의 기원입니다.

 

L2 캐시가 최초로 CPU에 탑재된 것은 2000년 펜티엄 III '코퍼마인' (Coopermine) 때부터로 널리 알려졌지만,

실은 그보다 2년 앞선 1998년 AMD의 K6-III이 먼저 256KB의 L2 캐시를 CPU 다이 내에 탑재했던 바 있습니다.

아무튼 L2 캐시가 CPU의 일부가 된 역사는 거의 20년이 되어가는 만큼,

오늘날 CPU라는 개념을 상정할 때는 당연히 L1 / L2 캐시를 포함하는 것이 일반적입니다.

 

반면 L3 캐시가 주류 CPU에 탑재된 것은 2008년 코어 i7 '블룸필드' (Bloomfield) 때부터인데요.

(물론 위에서 언급한 펜티엄 4 익스트림 에디션 등의 예외가 있습니다만, '주류 CPU' 라 볼 수는 없기에...)

이후 오늘날까지 대부분의 CPU는 그 안에 L3 캐시를 탑재하게 되었지만,

좁은 의미의 CPU를 일컬을 때는 포함되지 않는 경우가 많습니다.

 

카드뉴스-CPU WARS 02.012.jpeg

 

카드뉴스-CPU WARS 02.013.jpeg

 

카드뉴스-CPU WARS 02.014.jpeg

 

참고로 위 그림에서 CIU / SIU는 모두 정수 유닛 (Integer Unit) 을 의미하는데,

특정한 복잡한 정수 연산 명령어가 들어올 경우 이들은 CIU가 전담합니다. 즉 CIU = Complex IU, SIU = Simple IU의 줄임말입니다.

다른 부분은 카드뉴스에 잘 언급되어 있으니 특별히 두 가지만 더 짚고 넘어가겠습니다.

 

우선 복합 디코더와 단순 디코더.

x86 명령어는 내부 마이크로옵으로 변환할 때 딱 자른 듯 1:1로 변환되지 않습니다.

물론 많은 경우에는 그렇고, 따라서 단순 디코더는 '단순한 x86 명령어'를 고속으로 변환하는 데 사용됩니다.

반면 복합 디코더는 최대 4개까지의 마이크로옵으로 변환되는 '복잡한 x86 명령어'를 변환하는 데 사용됩니다.

 

예외적으로 4마이크로옵을 초과하는 x86 명령어도 극소수 존재하고,

이러한 명령어들은 디코더 대신 '마이크로코드 롬' 이라는 별도의 장치가 관할하는데, 설명상 중요한 부분이 아니니 생략하겠습니다.

 

다음으로 재정렬 버퍼.

재정렬 버퍼는 인텔의 CPU 역사로는 P6 아키텍처부터 도입된 장치인데, 마이크로옵을 쌓아 두는 저수지 역할을 수행합니다.

정확히는, 쌓아만 두는 것이 아니고 백엔드에 최적의 순서로 공급하기 위해 '재정렬'을 수행합니다.

이것이 직전 아키텍처, 즉 P5 (펜티엄) 까지와 구별되는 가장 큰 차이점이라고도 볼 수 있는데,

바로 비순차 수행 (OoO, Out-of-Order Execution) 의 핵심이 되는 장치이기 때문입니다.

 

재정렬 버퍼는 테트리스 게임의 미리보기 창 같은 기능이라고 생각하면 쉽습니다.

앞으로 나올 블록을 미리 3개씩 보여줄 때와 6개씩 보여줄 때, 플레이어가 세울 수 있는 전략은 당연히 후자에서 더욱 다양해집니다.

마찬가지로, P6 아키텍처의 재정렬 버퍼는 40개의 마이크로옵을 쌓아 두고, 이들을 최적으로 배열하는 경우의 수를 찾습니다.

 

카드뉴스-CPU WARS 02.015.jpeg

 

카드뉴스-CPU WARS 02.016.jpeg

 

MMX는 인텔 최초의 벡터 확장 명령어이자 오리지널 펜티엄에 가장 먼저 탑재된 바 있었는데,

그보다 나중에 출시된 펜티엄 프로에는 거꾸로 탑재되지 않는 우여곡절을 겪은 바 있습니다.

이 역시, 펜티엄 프로의 설계가 (구체적으로는 비순차 수행 구현이) 당대의 제조공정으로 매우 버거운 수준이었고,

다량의 트랜지스터가 비순차 수행 엔진에 투입되어 더 이상 집적할 여력이 없었기 때문입니다.

 

이후 제조공정이 나아지고, 펜티엄 II에는 예정대로 MMX를 탑재하게 되었고,

펜티엄 III부터는 부동소수점 벡터 확장 명령어인 SSE도 탑재하게 되어 부동소수점 연산성능이 비약적으로 향상하게 됩니다.

다만, SSE 명령어의 포맷 자체는 128bit임에 불구하고 기존 FPU의 80bit 규격을 그대로 사용해,

64bit 마이크로옵 두 개로 분할해 두 사이클에 걸쳐 수행하는 등 개선의 여지는 여전히 많았습니다. (이후 코어에서 개선됩니다.)

 

P6의 프론트엔드는 사이클당 3개씩의 x86 명령어를 받고, 내부적으로 3개씩의 마이크로옵을 보내며,

백엔드는 사이클당 5개씩의 마이크로옵을 처리하는데 이 모두가 다소 언밸런스라고 느껴질 수 있겠습니다.

하지만 찬찬히 뜯어보면 꼭 그렇지는 않은데요.

 

우선 x86 명령어가 항상 제때 공급되는 것이 아니고, 필연적으로 캐시 미스가 발생하는 경우가 있습니다.

이러한 경우를 생각하면 3 x86 명령어 -> 3-7 마이크로옵의 비율이라도, 프론트엔드 전체 대역폭이 3-wide로 충분할 수 있구요.

백엔드 역시, 재정렬 버퍼와 스케줄러를 거치며 마이크로옵이 적체될 수 있기에 프론트엔드보다 넉넉히 설계하는 게 일반적입니다.

 

카드뉴스-CPU WARS 02.017.jpeg

 

카드뉴스-CPU WARS 02.018.jpeg

 

우선 코어는 비순차 수행의 핵심인 재정렬 버퍼 용량이 P6의 2.4배 수준으로 급격히 올랐습니다.

테트리스 미리보기 창에 비유했듯, '최적의 수행 순서'를 결정하기에 매우 유리해진 것입니다.

 

디코더 수가 하나 증가했을 뿐만 아니라,

'매크로 퓨전' 이라는 기술이 도입되어 특정 x86 명령어쌍을 융합해 마치 하나인 것처럼 묶을 수 있게 되었습니다.

따라서 사이클당 처리 가능한 x86 명령어 수는 4-5개로 증가, P6의 3개보다 크게 늘었습니다.

 

카드뉴스에는 언급되지 않았지만 '마이크로옵 퓨전'이라는 기술도 새롭게 도입되었는데,

과거 2개의 마이크로옵으로 분할되던 일부 x86 명령어를 사실상 1개의 마이크로옵 (퓨전 마이크로옵) 으로 변환하도록 하여,

이러한 명령어가 연속적으로 공급될 경우 복합 디코더에만 몰리게 되던 병목현상을 해소한 것입니다.

 

또한 백엔드에서도, 마이크로옵 이슈 포트가 5개에서 6개로 증가했으며

증가한 포트에는 정수 유닛 (FMISC 유닛과 함께이지만 깍두기로 봅시다.) 이 배치되어 정수 연산 성능이 크게 올랐습니다.

앞서 P6 아키텍처의 약점으로 지적되었던, 128bit SSE 명령어를 한 사이클에 수행할 수 없던 문제 역시 이때 해결됩니다.

 

마지막으로 코어 아키텍처의 핵심 장치, 루프 스트림 탐지기 (루프 탐지기, LSD).

디코드가 완료된 마이크로옵을 검열하여 루프 구문을 찾는 장치인데요.

반복되는 루프문이 검출될 경우 최장 18 엔트리까지 이를 자체적으로 저장, 직접 재정렬 버퍼에 공급합니다.

즉 인출과 디코드 단계를 생략할 수 있게 해 주어 성능과 소비전력 양쪽 모두 큰 개선이 있게 됩니다.

 

이러한 확장에 힘입어, 코어 아키텍처는 "4-wide 프론트엔드, 6-wide 백엔드'로 요약됩니다.

 

카드뉴스-CPU WARS 02.019.jpeg

 

카드뉴스-CPU WARS 02.020.jpeg

 

코어 아키텍처 (2006) 로 시작해 작년의 케이비레이크 (2016) 로 막을 내린 틱-톡.

 

10년간 인텔이 "매년" 신제품을 출시할 수 있게 해 준 원동력이자,

경직된 개발 일정에 따른 매너리즘, 보신주의를 불러온 원흉이라는 상반된 평가가 공존합니다.

 

카드뉴스-CPU WARS 02.021.jpeg

 

카드뉴스-CPU WARS 02.022.jpeg

 

카드뉴스-CPU WARS 02.023.jpeg

 

네할렘 아키텍처는 코어 아키텍처와 비교해 크게 바뀌지 않았습니다.

특히 새로운 장치가 신설되는 등의 '구조적' 변경점은 전무합니다.

 

단지 하이퍼스레딩이 도입되었으며, 루프 탐지기 용량이 스레드당 28 엔트리로 코어 대비 56% 증가했고,

재정렬 버퍼가 33%, 스케줄러가 12.5% 각각 증가했다는 점 등이 특징입니다.

루프 탐지기의 확장으로 상대적으로 비중이 떨어진 명령어 인출 버퍼의 용량은 줄였습니다.

 

카드뉴스-CPU WARS 02.024.jpeg

 

카드뉴스-CPU WARS 02.025.jpeg

 

카드뉴스-CPU WARS 02.026.jpeg

 

카드뉴스-CPU WARS 02.027.jpeg

 

카드뉴스-CPU WARS 02.028.jpeg

 

이상으로 CPU WARS 그 두번째 편을 마칩니다.

다음 편에서는 샌디브릿지 아키텍처 (샌디브릿지와 아이비브릿지 포괄) 에 대해서 다룰 예정이니, 마찬가지로 재미있게 봐 주시면 감사하겠습니다.

 

카드뉴스-CPU WARS 02.029.jpeg

 

댓글 30

Profile

잼아저씨

2년 전

크으 샌디에서 끊는 분량조절에 무릎을 탁 치고 갑니다.
그간 몰랐거나 헷갈렸던 부분을 잘 정리해 주셨습미다. 오랜만에 드리는 말씀인데 진심으로 감사해요!

케이비 레이크가 파이프라인 스테이지가 좀 깊어졌어도 싱글 부스트 4.5GHz를 달성했는데 클럭도 어디까지 갈 수 있을까 싶네요. 공정미세화가 발열을 얼마나 억제할 수 있을까 궁금해하며 캐논레이크를 기대해 봅니다.

댓글

Profile

Dr.Lee

2년 전

이미 보셨겠지만, 연내 케이비레이크 부스트가 4.6GHz까지 올라갈 것이라고 하고요.
생각해보면 어느새 넷버스트 최고기록도 훌쩍 넘겼네요. 역시 기술 발전의 힘이란...
언제나 정성껏 읽어 주셔서 감사합니다 :)

댓글

Profile

RS

2년 전

다음 이야기 빨리 해주세요. 현기증 난단 말이에요.

댓글

Profile

Dr.Lee

2년 전

흐흐 이미 다음화를 올리고 댓글 체크를 한지라... 이미 보셨겠죠?!

댓글

Profile

RS

2년 전

다음화로 성이 안찹니다. 그 다음화 빨리 올려주세요! 현기증 난단 말이에요!

댓글

Profile

실기

2년 전

샌디에서 끊는 분량조절에 무릎을 탁 치고 갑니다. (2)

저는 쭉 읽으면서 이 음악이 떠오르더라구요. ㅎ
 

댓글

Profile

Dr.Lee

2년 전

으엌ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 작업 내내 머릿속으로 재생한 비쥐엠은 임페리얼 마치였는데... 부들부들... 치욕...

댓글

Profile

algalon

2년 전

카드 형식으로 제작해주셔서 보기에 편했습니다. ㅎㅎ

댓글

Profile

Dr.Lee

2년 전

앞으로 여러 화가 남았으니 쭉 재미있게 봐 주세요!! 감사합니다 ㅋㅋ

댓글

Profile

푸룬

2년 전

다음에도 카드형식으로 부탁드려요
잘모르는 입장에서 너무 좋네요

댓글

Profile

Dr.Lee

2년 전

넵!! 이제 (에피소드상) 시간이 흘러갈수록 익숙한 이름이 더 많이 등장할 겁니다.ㅎㅎ

댓글

Profile

Please&

2년 전

중간중간에 같은 시기 AMD가 뭐하고 있는지도 집어주면 좋을거같네요.

댓글

Profile

Dr.Lee

2년 전

시놉시스를 먼저 다 짠지라 '적당한 타이밍'에 등장하게 될 겁니다.ㅋㅋ (스포방지를 위해 가급적 누설하지 않으려 하니... 양해를...)
제일 먼저 등장할 AMD의 아키텍처가 무엇인지 맞춰 보시면 재밌겠죠?!

댓글

운명의서편

2년 전

다음 연재 제목이 무엇일지 그리고 관련한 내용이 무엇일지 궁금하네요
Return Of "무엇" 이 될 텐데, 설마 Jedi는 아니겠죠? ㅎㅎㅎ

댓글

Profile

Dr.Lee

2년 전

정답은... 윗 글에서!! ㅋㅋ

댓글

까르르

2년 전

L3 하면 페넘 아니겠습니까

주류가 아니라고 하신다면 할 말은 없습니다 :)

댓글

Profile

Dr.Lee

2년 전

ㅋㅋ 인텔 기준으로요!

댓글

감자사랑

2년 전

CPU 발전사..흥미진진하네요.
이시기에 추가된 Peri들이나 RAM BW등과 비교해서보면 더 재미있겠네요.
감사합니다.~

댓글

Profile

Dr.Lee

2년 전

감사합니다!! :)

댓글

Profile

준앤준

2년 전

샌디에서 끊는 분량조절에 무릎을 탁 치고 갑니다. (3)

댓글

Profile

Dr.Lee

2년 전

흐흐...

댓글

Profile

여우비

2년 전

역시 샌디는 아껴둬야 제 맛!
잘 봤습니다.

댓글

Profile

Dr.Lee

2년 전

감사합니다! 다음 편도 재미있게 봐 주세요!

댓글

Profile

앙리앙뚜와

2년 전

샌디에서 끊는 분량조절에 무릎을 탁 치고 갑니다. (4)
카드형식 좋네요 재밌어요!!
빨리 다음 이야기 해주세요 현기증 난단말이에요 :P

댓글

Profile

Dr.Lee

2년 전

주2회 연재를 위해... 열심히 갈리는 중입니다 ㅋㅋㅋㅋ

댓글

Profile

SamirDuran

2년 전

으윽 여기 현기증 한 명 추가요

댓글

Profile

Dr.Lee

2년 전

ㅋㅋㅋㅋㅋㅋㅋㅋ

댓글

Profile

지노

2년 전

용어는 잘 모르겠지만 인텔이 삽질을 거하게 했었다는 건 알겠네요. 근데 다시 일어서고 채택한 틱톡 전략이 CPU 발전에 발목을 잡은 건가요. 아니면 너무 너긋했던 건가요.

댓글

Profile

김디르

2년 전

너무재밌게 잘보고있습니다 LYD에서 글보고 여기 들와서 회원가입까지 해버렸네요 ㅋㅋㅋ 앞으로도 잘부탁드립니다

댓글

Profile

윤뎅구

2년 전

상당히 어려운데 재미있네요 ^^

댓글

사진 및 파일 첨부

여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
 
서버에 요청 중입니다. 잠시만 기다려 주십시오...