Book/COMPUTER ORGANIZATION AND DESIGN RISC-V

1. Computer Abstactions and Technology (1.7 ~ 1.14)

S0LL 2024. 9. 18. 10:52

1.7 The Power Wall

 

예시

 

현대의 문제는 전압을 낮추면 트랜지스터가 새는 것처럼 보인다는 것이다.

 

지금도 서버 칩 소비 전력의 40%가 누출로 인해 발생한다

 

만약 더 누출되기 시작하면, 전체 프로세스를 다루기 어려워질 수 있다.

 

이 문제를 해결하기 위해 노력했지만, 비용이 너무 많이 드는 문제로 새로운 방법을 찾았고,

 

처음 30년간 마이크로프로세서를 설계하던 방식과는 다른 길을 택했다.

 

 

------------------------------------------------------------------------------------------------------------------

1.8 The Sea Change: The Switch from Uniprocessors to Multiprocessors

 

Growth in processor performance since the mid-1980s

2006년부터 단일 프로세서에서 실행되는 프로그램의 응답 시간을 줄이는 대신, 칩당 여러개의 프로세서가 탑재된 마이크로프로세서 출시.

 

프로세서와 마이크로프로세서간의 혼동을 없애기 위해

프로세서 => 코어

마이크로프로세서 =>멀티코어 마이크로프로세서

라고 명명함.

 

이전의 프로그래머들은 그들의 코드는 수정하지 않고 하드웨어,아키텍처,컴파일러의 혁신에 의존했다.

 

하지만 요즘 프로그래머들은 성능을 향상시키기 위해 코드의 성능을 계속하여 개선해야 한다.

 

소프트웨어와 하드웨어가 동시에 작동하는 시스템을 강화하기 위해 우리는 하드웨어/소프트웨어 인터페이스 라는 특별한 섹션을 사용한다.

 

 

Parallelism

-definition performance programming 으로 인해 프로그래밍의 난이도가 높아 작성하기 어렵다.

 

-하드웨어의 속도가 빠르다는 것은 프로그래머가 어플을 분할하여 각 프로세서가 동시에 수행하는 양이 거의 같도록 하는 것을 말한다.

 

-병렬 프로그래밍의 경우 스케줄링, 로드 밸런싱, 동기화 시간, 오버헤드 등의 과제가 있다.

 

이와 관련해 이 책에서 뒤에 나올 내용들.

 

 

------------------------------------------------------------------------------------------------------------------

1.9 Real Stuff: Benchmarking the Intel Core i7

 

SPEC( System Performance Evaluation Cooperative ) 는 현대 컴퓨터의 기준 벤치마크를 만든다.

 

벤치마크는 사용자가 실제 성능을 예측할 수 있는 workload를 형성하기에 컴퓨터 아키텍처에서 중요한 역할을 한다.

 

 

------------------------------------------------------------------------------------------------------------------

1.10 Going Faster: Matrix Multiply in Python

 

프로그래머들은 파이썬의 속도를 더 빠르게 하기 위해서 최적화된 라이브러리를 불러혼다.

 

만약 우리가 Numpy library를 사용한다면 960x960 행렬곱이 1초 내로 끝날 것이다.

 

 

------------------------------------------------------------------------------------------------------------------

1.11 Fallacies and Pitfalls

이 챕터는 우리가 일반적으로 볼 수 있는 오해에 대한 설명이다.

 

-Pitfall : 컴퓨터의 한 측면이 개선되면 사이즈에 비례해 전반적인 성능 향상을 예상.

 

-Amdahl's Law

 

 

 

-암달의 법칙을 이용한 예제1)

프로그램이 100초 실행되고 80초동안 곱셈 연산을 수행한다. 프로그램을 5배 더 빠르게 하기 위해서 곱셈 속도를 얼마나 향상시켜야 할까?

정답은 향상시킬 수 없다. 이다.

 

우리가 일부 기능에 소요되는 시간과 잠재적인 속도 향상에 대해 알 때 암달의 법칙을 사용하여 성능향상을 예측할 수 있다.

 

암달의 법칙은 CPU성능 Equation 과 함께 가능한 향상성을 판단하는 도구이다.

 

 

암달의 법칙을 이용한 예제2)

floating point instructions improved to run 2x; but only 10% of actual instructions are FP

 

-Fallacy : 사용량이 적은 컴퓨터는 전력도 적게 사용한다 / 성능을 위한 설계와 에너지 효율성을 위한 설계는 서로 관련이 없다.

 

-Pitfall : 성능 Equation의 subset을 성능 지표로 사용한다.

앞에서 기준 중 하나만을 가지고 성능을 예측하는 것에 대해 경고한 적이 있다.

또다른 실수 중 하나는 세가지 요소들 중 두가지만 가지고 판단하는 것이다.

두가지 요소만을 사용하는 것이 어떤 곳에서는 괜찮을지 몰라도 쉽게 오용될 수 있다.

 

시간 대신 사용할 수 있는 것은 MIPS (million instructions per second) 이다.

 

 

 

예제

 

 

 

------------------------------------------------------------------------------------------------------------------

1.12~1.13 Historical Perspective and Further Reading

pass

------------------------------------------------------------------------------------------------------------------

1.14 Self-Study

a - performance via pipelining

b - Dependability via Redundancy (You could say Performance via Parallelism)

c - Performance via Prediction

d - Make the Common Case Fast

e - Hierarchy of memories

f - Performance via Parallelism ( You could say Dependablity via Redundancy)

g - Use Abstraction to Simplify Design

 

 

 

a - 가격의 변동이 있음에도 2013년부터 가격이 어느정도 유지되는 것을 보인다. 이는 무어의 법칙이 느려지고 있다고도 할 수 있다.

 

b - 위 그림은 왜 칩당 용량보다 가격이 더 늘었는지를 설명할 수 있는 DRAM 칩의 volume에 대해 언급하고 있지 않다.

      부피가 10배 증가할 때마다 가격이 2배 저렴해지는 learning curves 가 있다.

      또한, 칩 패키징에는 가격을 낮출 수 있는 혁신이 있어 장기적으로 저렴해진다.

 

c - DRAM은 여러 회사가 유사한 부품을 제작하기에 시장의 입력과 가격 변동을 받는다.

      수요가 증가할 때 가격이 오르고 그 반대 또한 마찬가지이다.

      이 산업은 DRAM의 수익성이 매우 높았던 때가 있었기 때문에 과잉공급이 되어 가격이 떨어질 때까지 더 많은 생산 라인을 만들고

      새로운 생산 라인을 줄인다.