Computer Architecture/Paper Review

Paper review 1: Y.N. Patt, "Requirements, Bottlenecks, and Good Fortune: Agents for Microprocessor Evolution," IEEE Micro 2001

hahahataeyun 2024. 1. 24. 21:13
Y.N. Patt, "Requirements, Bottlenecks, and Good Fortune: Agents for Microprocessor Evolution," IEEE Micro 2001

 

 

이 논문에서는 현재(2001년) 상용화된 마이크로프로세서의 아키텍처가 어떤 요인에 의해, 어떤 과정을 거쳐 발전해왔는지 논의한다. 또 미래에는 어떤 새로운 아키텍처가 등장할지 예측한다. 사실 여기서 "미래"는 논문 작성 시점인 2001년 기준이기 때문에, 현재로서는 이미 과거가 되어버렸다. 그래서 저자가 논문에서 예측한 발전의 방향성과, 실제 마이크로프로세서 발전의 역사가 어떻게 흘러갔는지 비교하며 읽어보았다. 

 

<논문 요약>

마이크로프로세서 발전의 요인

1. New Requirements

마이크로프로세서는 매우 다양한 분야에서 서로 다른 목적으로 사용되기 때문에, 요구되는 design point가 제각기 다르다. 성능(처리율), 비용, 발열량, 에너지 사용량, high availability 등 시장에서 요구되는 다양한 요구들을 충족시켜주는 과정에서 발전되었다. 예를 들어 좋은 성능을 내기 위해 한번에 여러 instruction을 처리하고 코어 안에 여러 개의 functional unit이 포함된 마이크로프로세서가 등장하였다.

 

2. Bottlenecks

Instruction 처리 과정을 크게 3단계로 구분하면 1. Instruction supply 2. Data supply 3. Carrying out the operations of the instruction 으로 구분할 수 있으며, 각각의 단계에서 발생하는 병목 현상을 제거하는 과정에서 더 좋은 마이크로프로세서 구조가 등장하였다. 

예를 들어 instruction supply 단계에서 instruction들을 memory에서 그대로 가져올 경우 프로세서와 메모리의 속도 차이 때문에 효율성이 매우 떨어지며 병목현상이 발생하였다. 이를 해결하기 위해 instruction cache가 개발되었다. 

Dynamic scheduling이나 branch prediction도 bottleneck을 해소하기 위한 해결책으로 등장하였다.

 

3. Good fortune

말 그대로 운이 좋았기 때문에 발전이 이루어진 경우도 있다고 한다. 논문에서는 "A good example of this is the technology shrink that allows a next implementation of a microprocessor to take up less space on the chip that the previous implementation did." 라고 언급하고 있는데, 사실 이 문장을 잘 이해하지 못했다. technology shrink..? 기술의 위축 때문에 칩 상에서 차지하는 공간이 줄어들었다고? 영어를 잘 못해서 그런지 해석이 매끄럽게 되지 않는다.

 

--> 이러한 요인들에 의해 Pipleining, On-chip caches, branch prediction, on-chip floating point unit, additional specialized functional units, out of order processing, clusters, chip multiprocessor(CMP), simultaneous multithreading(SMT), Fast cores 등의 개념이 등장

 

예측

(2001년 기준) 10년 이내에 하나의 칩 위에 십억개 이상의 트랜지스터가 올라갈 것이며 6에서 10GHz의 클럭 속도로 동작할 것이다. 이러한 조건이 주어진다면 어떤 구조가 최선일 것인가?

의견 1. CMP를 확장. 즉 10억개의 트랜지스터가 있다면 100만개 씩 100개의 마이크로프로세서를 하나의 칩 위에 올린다. 

의견 2. SMT를 확장. 나머지 공간들을 더 큰 cache 메모리, 더 좋은 branch prediction, 더 많은 functional unit들을 위해 양보해야 한다.

의견 3. 매우 단순한 simple core processor 구조를 유지하되 on-chip chache의 크기를 대폭 늘린다. 

의견 4. 비용 절감 --> using the one billion transistors that will be available to put the entire nonaggressive system on the one chip

저자의 의견 : SISD (Single instruction stream, single data stream) 구조를 향상시키자.

 

이외에도 저자는 다음과 같은 발전 가능성들을 제시한다.

The new microprocessor : 특정한 용도에 최적화된 기능들이 내장된 프로세서의 등장

A new Data path : 클럭 주파수가 증가할수록 칩 상에서 데이터 전달 시 delay가 짧아져야 한다. 

Internal fault-tolerance : 칩의 동작 주파수가 올라갈수록 soft error들이 발생할 가능성이 높아지므로, 이러한 오류를 자체적으로 감지하고 교정할 수 있는 기능이 포함되어야 할 것이다.

Asyncrhonous and synchronous units coexisting : 클럭 주파수가 올라갈수록 clock skew는 더욱 큰 문제를 야기한다. 일정 시간동안은 asyncrhonous하게 동작을 수행하고, 추후에 다시 클럭과 syncrhonize 시키는 구조가 등장할 것이다. 

Different cycle times for different functions : 빠른 동작이 요구되는 부분(ALU 등)에서는 클럭 주파수가 높을수록 유리하다. 반면 빠르게 동작하지 않아도 되는 부분은 굳이 높은 클럭 주파수가 필요 없다. 이러한 특성 때문에, 미래의 마이크로프로세서는 클럭을 영리하게 사용하여 성능을 높이고 파워를 절약할 수 있을 것이다. 

New materials : 칩 상에서 전도도를 높이고 파워를 절약하며 열 발생을 줄일 수 있는 새로운 소재가 등장할 것이다. 

Expanded use of microcode : microcode를 적극적으로 사용하여 On-chip bandwidth를 더 효율적으로 활용할 것이다. 

Reconfigurable Logic : 특정 용도에 맞게 설계된 microprocessor는 다른 application을 실행하지 못하거나 성능이 매우 떨어질 수 있다. FPGA와 같은 재구성 가능한 logic structure들이 마이크로프로세서에 활용될 것이다. 

Expanded use of the trace cache (which enables dynamic scheduling)

On-chip microcode for using the spare capacity

Dynamic recompilation of the executing program

Multiple levels of cache

Aggressive value prediction hardware

Performance monitoring hardware

On-chip structure for monitoring and affecting the energy usage

 

 

<느낀 점>

지금으로부터 20여 년 전인 2001년에 쓰인 논문임에도 저자가 당시 예측한 마이크로프로세서의 미래와 실제 역사가 일치하는 부분이 많았다. 저자의 통찰력에 감탄을 하지 않을 수 없었다. 

 

프로세서의 발전 역사와 주요 기술들이 등장한 배경과 요인을 알게 되었다. 지금 돌이켜보면 너무나도 당연한 과정을 거쳐 현재의 프로세서가 만들어진 것처럼 보이지만, 당시로서는 수많은 엘리트 엔지니어들이 돌파구를 찾아내기 위해 노력했을 것이다. 하나의 cpu는 내 손바닥보다도 작지만 이걸 만들기 위해 수십년간 수백, 수천만의 실패와 시행착오를 거쳤을 거라고 생각하니 기분이 묘해졌다. 

 

논문의 결론에서 저자는 "무어의 법칙이 아직 유효하기 때문에" 마이크로프로세서의 발전 가능성은 무궁무진하다고 언급하고 있다. 하지만 이제 수 년 이내로 무어의 법칙은 깨질 것이며, 이제 우리는 Post-Moore's law era를 대비해야 한다. 더이상 트랜지스터의 소형화로는 극적인 성능 향상을 기대하기는 어려울 것이다. 대신 소프트웨어와 하드웨어 사이를 이어주는 여러 시스템 스택을 다시 살펴보고 새로운 기술을 활용해 구조를 개선해야 할 것이다. 결국에 이 분야에서 독보적인 실력을 가진 engineer가 되려면 소프트웨어와 하드웨어 모두 잘 알아야만 할 것 같다. 갈 길이 아주 멀다.