컴퓨터 구조의 Eight Great Ideas
- Design for Moore’s Law
- Use Abstraction to Simplify Design
- Make the Common Case Fast
- Performance via Parallelism
- Performance via Pipelining
- Performance via Prediction
- Hierarchy of Memories
- Dependability via Redundancy
Design for Moore’s Law | 무어(Moore)의 법칙에 따라 설계하기
무어의 법칙에 따르는 설계
무어의 법칙은 반도체 IC의 성능이 18~24개월마다 2배씩 증가한다는 경험적인 법칙이다.
이 법칙에 따라 설계하는 것은 반도체의 기술의 발전을 고려하여 최적화된 제품을 만드는 것을 의미하는데, 이렇게 설계하는 것은 반도체의 성능을 향상시키고 전력 소모를 줄이는 것에 이유가 있다.
*IC : Integrated Circuit 집적회로
Use Abstraction to Simplify Design | 추상화를 사용하여 설계를 단순화하기
무어의 법칙에 의해 성장한 IC자원만큼 설계 시간이 급격하게 늘어남을 막기 위해서 생산성이 높은 기술의 발명이 필요 했는데 그 기술 중 하나가 바로 추상화를 사용하여 설계를 단순화 시키는 것이다.
추상화를 사용하여 설계를 단순화 하는 이유는 기존 개발된 하위(낮은) 수준의 세부 사항을 숨겨 상위(더 높은) 수준에서 단순한 모델을 제공하기 때문이다. 이를 통해서 설계를 개발하는데 필요한 일련의 단계 즉, 프로세스가 단순화 되어 생산성이 향상된다.
예를 들어, 프로그래밍 언어로 낮은 수준의 언어로 작성된 코드를 높은 수준의 언어로 추상화 하여 개발자가 이해하기 쉽고 작성하기 쉬운 코드를 만들 수 있다.
Make the Common Case Fast | 흔한 경우를 빠르게 처리하기
흔한 경우를 빠르게 처리하라는 이유는 드문 경우를 최적화하는 것보다 성능을 더 향상시킬 수 있기 때문이다.
흔한 경우를 빠르게 처리하라는 의미는 캐시 히트처럼 인터넷에서 이미 본 웹페이지를 다음에 같은 페이지를 보려고 할 때 번거롭게 시간을 들여서 다시 그 웹페이지를 다운로드 하지 않고 임시 저장되어 있는 공간에 있는 캐시메모리를 통해 빠르게 이미 본 웹사이트를 보여줌으로 시간을 절약하고 컴퓨터의 성능이 효율적으로 높아지는 것이라고 설명할 수 있다.
즉, 컴퓨터 프로세서가 많은 시간을 할애하는 작업 중 흔한 작업(자주 실행하는 작업)을 빠르게 처리하면 컴퓨터의 성능이 효율적으로 높아진다는 의미이기도 하다.
*캐시 히트란 컴퓨터가 필요한 데이터를 캐시 메모리라는 임시 저장 공간에서 찾았을 때를 말한다.
Performance via Parallelism | 병렬성을 통한 성능 향상
병렬 컴퓨팅을 사용하여 크고 복잡한 문제를 작게 나눠 동시에 병렬적으로 해결할 수 있어서 시간 단축으로 잠재적인 비용 절감까지 효과를 볼 수 있다.
예를들어, 4코어 프로세스가 1코어 프로세스보다 최대 4배 빠르게 작업을 할 수 있다.
Performance via Pipelining | 파이프라이닝을 통한 성능 향상
파이프라이닝을 통한 성능 향상은 쉽게 설명해서 병렬성의 한 형태로, 여러 명령어를 동시에 실행하는 방식을 말한다.
여러개의 명령어를 즉 여러개의 단계에서 실행 할 수 있다는 의미이다.
Performance via Prediction | 예측을 통한 성능 향상
예측을 통해서 컴퓨터의 성능을 향상 시킬 수 있다.
예측을 통한 성능 향상이란 프로세서가 미리 예측을 하고 작업을 준비하고 실행할 수 있어서 대기 시간을 줄일 수 있다.
또한, 예측을 통해 파이프라인의 병목 현상을 완화하고 병렬 처리를 증가시킬 수 있다.
Hierarchy of Memories | 메모리의 계층 구조
메모리의 계층화는 비트당 가장 빠르고, 작고, 비싼 메모리가 계층 상부에 있고 비트당 가장 느리고, 크고, 저렴한 메모리가 계층 하부에 있는 삼각형 아이콘으로 표현된다.
그리고 이 계층화에서 캐시는 설계자들에게 메인 메모리가 계층 상부의 메모리처럼 빠르고 계층 하부의 메모리처럼 크고 저렴하다고 착각을 줄 수 있다. 그 이유는 캐시가 자주 사용되는 데이터를 빠르게 접근할 수 있는 메모리에 저장하고, 그렇지 않은 데이터는 느리게 접근할 수 있는 메모리에 저장하기 때문이다.
Dependability via Redundancy | 여분의 부품을 통한 신뢰성
컴퓨터는 신속한 것도 중요하지만, 신뢰할 수 있는 것도 중요하다.
만약 컴퓨터의 어느 한 부품이 고장나게 된다면 컴퓨터가 빠르게 계산을 할 수 있어도 계산 결과가 틀리거나 데이터가 손상되면 그 컴퓨터는 신뢰성을 잃기 때문에, 장치가 고장나면 대체할 수 있는 여분의 부품(하드웨어나 소프트웨어)을 포함하여 시스템을 신뢰할 수 있게 만드는게 중요하다.