컴퓨터구조(1) - 컴퓨터 추상화 및 관련 기술(3)
‘컴퓨터 구조 및 설계’를 공부하여 정리한 내용입니다.
현저한 변화: 단일 프로세서에서 멀티프로세서로의 변화
폴락의 법칙
- 성능은 면적의 증가의 제곱근에 비례하여 증가한다.
- 위의 법칙은 CPU 하나 만이 처리할 수 있는 작업 속도에는 한계가 있다는 것을 의미한다.
- 하나의 칩에 CPU를 두개 이상 집적하는 기술을 사용하게 된다.
- 기존의 성능 개선과 다른 특징
- 기존의 프로그램은 그저 하드웨어의 성능 개선의 영향을 바로 누릴 수 있었다. (수정되는 코드 없이 성능이 개선되었다.)
- 멀티 코어의 경우, 그 이점을 살리기 위해 소프트웨어도 수정되어야 한다.
- 병렬 프로그램을 작성하는 것이 어려운 일인 이유
- 병렬 프로그래밍을 선택하는 이유 자체가 성능에 큰 중요도를 지니고 있다는 의미이기 때문이다. 이는 실행시간이 빨라야 한다는 의미이다.
- 병렬 하드웨어를 사용할 때는, 각 프로세서가 대략 비슷한 양의 일을 동시에 수행하도록 응용을 분할해야 한다. (부하를 공평하게 분배)
- 병렬성으로부터 얻는 이득이, 일을 분할하고 스케쥴링 하는데 필요한 오버헤드보다 커야한다. (통신 및 동기화 오버헤드가 적어야 한다)
오류 및 함정
- 컴퓨터의 한 부분만 개선하고, 그 개선된 양에 비례해서 전체 성능이 좋아지리라고 기대하는 것.
암달의 법칙
에 따라, 개선된 부분에 영향을 받는 파트를 제외한 나머지 부분은 성능의 변화가 없다.
- 이용률이 낮은 컴퓨터는 전력 소모가 작다.
- 이는 다른 특별한 이유가 설명되어 있지는 않고, 관측적으로 그렇다는 것을 보여준다.
- Google의 아주 좋은 서버의 경우도 CPU 이용률이 10%일 때, 전력을 최대 전력의 33%나 사용한다는 케이스 보고가 있다.(지금은 더 개선되었을 것이다.)
- 에너지에 비례한 컴퓨팅은 아직 힘들다.
- 성능과 에너지 효율은 서로 독립적이다.
- 아니다. 성능이 좋아질 경우 실행시간 전체를 줄여 오히려 전력 사용량이 줄어들 가능성이 있다.
- 결과적으로 성능을 높이면 전체 에너지가 절약된다.
- 성능식의 일부분을 성능의 척도로 사용하는 것
- 예를 들어 명령어의 개수만으로 성능을 비교하게 되면, CPI나 clock rate등이 무시되어 정확한 성능 비교가 이루어질 수 없을 수 있다.
- 같은 명령어 집합을 사용해도, CPI와 clock rate 등에 따라 CPU 시간이 달라질 수 있기 때문이다.
- 그렇기에 이전에 설명한 CPU 시간을 측정하는 고전적인 CPU 성능식을 사용하는 편이 안전하다.
- 단호하게 말해서, 실행시간만이 유일한 유효한 성능 척도이다.
- 이 단원에서 나온 법칙과 그 의미는 대충이라도 외워두는 것으로 한다.
- 여기에서 마이크로 프로세서는 프로세서(CPU) 및 여러 하드웨어 요소를 한 공간에 집적한 집적회로의 결과물을 의미한다. 이 때, 프로세서(CPU)와 용어가 겹치기에 집적되는 프로세서(CPU)를 코어라고 부른다.
- 위에서 묘사된 여러 부품을 포함하는 마이크로 프로세서는 주로 마이크로 컨트롤러(또는 MCU)라고도 불려진다. 이는 입출력 모듈을 하나의 칩으로 만들어 정해진 기능을 수행하는 컴퓨터를 말한다. 일반적으로 이 마이크로 컨트롤러의 구성 요소를 설명할 때 마이크로 프로세서가 포함된다고 설명되는데, 여기에서 마이크로 프로세서는 위에서 CPU, 코어라고 불리는 것과 동일한 요소를 지칭하는 또 다른 명칭이다 (실제로는 CPU 자체가 마이크로 프로세서로 불렸으나 지금에 와서는 그 용어가 많이 뒤섞였다.)
Leave a Comment