Evolution of Computer System
컴퓨터 시스템의 진화 과정
- 컴퓨터는 본질적으로 트랜지스터로 이루어진 하드웨어 장치이다.
- 트랜지스터로 만들어졌다 함은 컴퓨터가 받아들일 수 있는 신호는 0과 1밖에 없음을 의미한다.
- 자연어와 비교했을 때, 0과 1은 알파벳, Instruction은 단어, ISA(Instruction Set Architecture)는 어휘와 같은 개념이다.
- 이전의 컴퓨터에서는 CPU에 원하는 기능을 모두 구현할 수 없었기 때문에 North Bridge(노스 브릿지)*, South Bridge(사우스 브릿지)**와 같은 칩셋을 메인보드에 적재해서 CPU를 보조하는 역할을 수행시켰다.
* North Bridge (노스 브릿지)
- 메인 메모리(D램 기반), 그래픽 카드를 제어하는 칩셋이다.
- CPU와 FSB(Front-Side Bus)를 통해 직접 연결되어 있다.
** South Bridge (사우스 브릿지)
- 노스 브릿지가 하는 일에 비해 비교적으로 중요도가 떨어지고 느린 작업을 처리하는 칩셋이다.
- 하드디스크와 USB, PCI를 제어하는 칩셋이다.
- CPU와 직접 연결되어 있지 않고, 노스 브릿지와 DMI(Direct Media I/F)를 통해 연결되어 있다.
- 이후에, Intel에서는 노스브릿지의 기능 중 메모리에 접근하는 기능을 수행하는 칩을 CPU에 Intergration(집적)시키는데 성공했다. (근래의 메인보드에서는 CPU와 노스브릿지가 완전히 통합된 형태로 생산된다.)
- 또한, Nvidia는 노스브릿지와 사우스브릿지를 하나의 칩으로 통합하려했다.
Conventional Idea for Computer Architecture (컴퓨터 구조 분야의 핵심 아이디어)
- 컴퓨터 구조 분야에서 발명된 8가지의 오래된 아이디어들*은 지금까지도 하드웨어 개발에 영향을 미치며 존속되어 오고 있다.
1. Design for Moore's Law (무어의 법칙에 기반한 설계)
- Intel의 창립자 중 한 명인 Gordon Moore가 1965년도에 한 예측이다.
- "18~24개월 마다 칩셋에 Integration(집적)되는 트랜지스터의 수가 2배가 된다."라는 법칙이다.
2. Use Abstraction to Simplify Design (추상화를 통한 설계의 단순화)
- 각각의 Layer에서 중요한 내용만 표시하고, 중요하지 않은 내용은 숨기는 개발 방법이다.
- 추상화는 하드웨어와 소프트웨어 설계 시, 효율성을 제고하는 역할을 한다.
- H/W Design에서의 추상화 : 적재되는 트랜지스터의 수가 증가하면 새롭게 정립해야 하는 개념이 늘어나기 때문에 하위 레벨의 추상화가 필요하다.
- S/W Design에서의 추상화 : 적재되는 트랜지스터의 수가 증가하면 소프트웨어의 Complexity(복잡도) 또한 증가하게 되는데, 소프트웨어 엔지니어가 트랜지스터 레벨까지 고려하여 프로그래밍 하기란 사실상 불가능에 가까우므로, 하드웨어 레벨의 일부는 감추는 추상화를 통해 극복할 수 있게 된다.
3. Make the Common Case Fast (자주 생기는 일은 빠르게)
4. Performance via Parallelism (병렬성을 통한 성능 개선)
5. Performance via Pipelining (파이프라이닝 기법을 통한 성능 개선)
6. Performance via Prediction (예측을 통한 성능 개선)
7. Hierarchy of Memories (메모리 계층 구조)
8. Dependability via Redundancy (여유분을 이용한 신용도 개선)