전력한계 문제는 마이크로프로세서 설계에 극적인 변화를 가져왔다. 밑의 그림은 데스크톱 마이크로 프로세서의 프로그램 응답시간 개선 추세를 보여준다.
단일프로세서에서 한 프로그램의 응답시간ㅇ르 계속 줄여나가는 대신, 칩에 여러 개의 프로세서를 집적한 마이크로프로세서를 생산하였는데, 이는 응답시간보다는 처리량 개선에 더 효과가 있다. 회사들은 프로세서를 "코어"라고 부르고 그러한 마이크로프로세서를 멀티코어 마이크로프로세서라고 불렀다. 그러므로 "쿼드코어"마이크로프로세서는 4개의 프로세서 즉 4개의 코어를 포함한 칩을 의미한다.
오늘날에는 응답시간을 현저히 개선하려면 다중 프로세서의 장점을 살리도록 프로그램을 재작성해야한다. 나아가 새로운 마이크로프로세서에서 더 빠르게 실행되는 이득을 누리기 위해서는 코어의 수가 증가될 때마다 코드의 성능을 지속적으로 개선해 나가야 할 것이다.
소프트웨어와 하드웨어 시스템이 어떻게 협조하는가?
병령성은 컴퓨팅의 성능에 늘 중대한 역할을 하였으나, 대게 드러나지 않고 숨어 있었다. 4장에서 설명한 파이프라이닝은 명령어의 실행을 중첩시켜서 프로그램을 빠르게 실행시크는 휼륭한 기술로써, 명령어 수준 병렬성의 한 예이다. 파이프라이닝에서는 하드웨어의 병렬적인 특성이 드러나지 않아서 프로그래머와 컴파일러는 하드웨어가 명령어를 순차적으로 실행시키는 것으로 여길 수 있다.
프로그래머로 하여금 병령 하드웨어를 인지하고 그에 따라 명시적으로 병령 프로그램을 작성하도록 요구하는 것은 컴퓨터 구조에서 늘 "제3의 선택" 이였다. 하지만 IT산업계 모두가 미래에는 결국 프로그래머들이 명시적으로 병령 프로그래밍을 하게 될 것이다.
최근 산업계에서 일어나고 있는 현저한 변화를 반영하여 이 책에서는 각 장마다 병렬 혁명과 연관된 내용에 대한 절을 포함 시킨다.
CH2 병렬성과 명령어 : 동기화.
- 독립적인 병렬 태스크들도 조정이 필요한 경우가 있다. 예를들면 언제 작업을 끝냈는지 알려 주어야 할때가 있다. 이 장에서는 멀티코어 프로세서들이 태스크를 동기화하는데 사용하는 명령어들을 설명한다.
CH3 병렬성과 컴퓨터 연산 : 서브워드 병렬성
- 아마 가장 간단한 형태의 병렬성은 2개의 벡터를 곱하는 연산처럼, 원소들에 대한 연산을 병렬로 수행하는 과정에서 나타날 것이다. 서브워드 병렬성은 연산 장치의 폭을 넓혀서 동시에 여러 값을 처리하는 것이다.
CH4 병렬성과 명령어
- 명시적인 병렬 프로그래밍이 어렵기 때문에 90년대에는 하드웨어와 컴파일러로 파이프라이닝과 같은 기법을 사용하여 암시적인 병렬성을 얻고자 하는 노력이 많이 있었다. 이 장에서는 이러한 기술 중 일부를 설명한다. 여러 명렬ㅇ어들을 동시에 인출하여 실행하고, 분기의 결과를 예측하여 실행 여부가 확실치 않은 명령어를 미리 실행하는 등의 기술이 포함된다.
CH5 병렬성과 메모리 계층구조 : 캐시 일관성
- 통신 비용을 줄이는 한 가진 방법은 모든 프로세서가 같은 주소공간을 사용하게 하여, 어느 프로세서라도 아무 데이터나 읽고 쓸 수 있도록 만드는 것이다. 오늘날 모든 프로세서에 캐시가 있어서 프로세서 가까이에 있는 빠른 메모리에 데이터의 복사본을 갖도록 하고 있다. 만약 각 프로세서에 딸린 캐시들의 공유 데이터값이 모두 같지 않다면 병렬 프로그래밍이 훨씬 어려워질 것임은 쉽게 상상할 수 있다. 이 장에서는 모든 캐시에 있는 데이터가 일관성을 갖도록 하는 기법을 설명한다.
CH5 병렬성과 메모리 계층구조 : RAID
- 이 절에서는 많은 수의 디스크를 사용하여 저장장치의 처리량을 크게 개선시키는 기술인 RAID를 설명한다. 성능을 개선하는 것이 RAID의 원래 목적이었지만, RAID가 널리 사용된 진짜 이유는 여유분의 디스크를 적절한 수만큼 가지고 있음으로 해서 신뢰성이 크게 개선된다는 점이였다.
'Computer Architecture > 컴퓨터 구조' 카테고리의 다른 글
[6] CH1 컴퓨터 추상화 및 관련 기술 < 오류 및 함정 > (0) | 2022.01.12 |
---|---|
[5] CH1 컴퓨터 추상화 및 관련 기술 < Intel Core i7 벤치마킹 > (0) | 2022.01.11 |
[3] CH1 컴퓨터 추상화 및 관련 기술 < 성능 > (0) | 2022.01.11 |
[2] CH1 컴퓨터 추상화 및 관련 기술 < 프로세서와 메모리 생산 기술 > (0) | 2022.01.11 |
[1] CH1 컴퓨터 추상화 및 관련 기술 < 하드웨어 관점 > (0) | 2022.01.11 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!