좌파 사회 채널

우리가 디지털 회로를 설계하거나 프로그램을 짤 때 착각하는게 

변수를 읽는 건 별거아니고 변수에 계산을 하는 건 비싸다는 착각이다.

과거 CPU의 계산능력이 미천할 때는 그게 맞았지만  이젠 아니다.

현대에 있어 컴퓨팅에 가장 비싼 건 변수를 읽고 쓰는 거다.


그래서 CPU 설계자들은 계산은 공짜고  메모리는 비싸고 

(메모리) 통신은 끔찍하게 비싸다라는 격언을 인용한다.

여기서 메모리 통신은 CPU와 메모리가 간의 데이터 이동을 말한다.


현재 CPU 의 성능을 제약하는 요소는 전력소모 (=열방출) 인데

32비트 정수덧셈 : 0.1 pJ (피코 줄 (10의 -15승 줄 )= 에너지 단위 )

32비트 실수덧셈 : 0.9 pJ

32 비트 정수 곱셈: 3.1 pJ

32 비트 캐시 읽기 : 5 PJ

32 비트 DRAM 읽기: 640 pJ


이러니 캐시 미스로 DRAM 한번 읽는게 얼마나 비싼 댓가를 치르는지 잘 보여준다.

요즘은 웬만한 어플들의 프로그램 텍스트는 캐시에 한번에 다 들어 간다.

그래서 옛날에는 프로그램 지역집중을 높이기 위해 배열 단위로 계산하는 것도 

이제는 배열의 한 원소를 읽으면 최대한 가공한 후에 다음 원소를 처리하는게 좋다.


이제 CPU 등의  계산 ALU 를 늘이는 건 아무것도 아니다. 

DRAM 의 레이턴시를 줄이고 대역폭을 늘여야 성능을 올릴 수 있다.

DDR  램의 시대는 점차 종말이 다가오고 있다.

DDR 램의 낮은 레이턴시에도 불구하고 DDR 램의 메모리 뱅크나 

fast page 로 burst 접근으론  감당할 수 없고  

256-512 비트 단위로 캐시 플러시와 리필에 최적화된 GDDR 램이 득세할 것이다.