5-1. 빠른 CPU를 위한 설계 기법
- 클럭 속도 단위 : Hz(헤르츠), 1초에 클럭이 반복되는 횟수
- 코어 : 명령어를 실행하는 부품(의 구성단위)
- 스레드 : 실행 흐름의 단위
- 하드웨어적 스레드(논리 프로세서) : 하나의 코어가 동시에 처리하는 명령어 단위
- 소프트웨어적 스레드 : 하나의 프로그램에서 독립적으로 실행되는 단위
5-2. 명령어 병렬 처리 기법
- 명령어 파이프 라이닝
- 명령어 처리 과정은 명령어 인출-명령어 해석-명령어 실행-결과 저장의 과정을 거침.
- CPU는 각 과정이 겹치지 않는다면 동시에 실행 가능.
- 공장 생산 라인처럼 명령어들을 명령어 파이프라인에 넣고, 동시에 처리하는 기법.
- 파이프라인 위험
- 데이터 위험 : 명령어간 데이터 의존성에 의해 발생, 데이터 의존관계에 있는 두 명령어를 동시에 실행하려는 경우.
- 제어 위험 : 분기 등으로 인한 프로그램 카운터의 갑작스러운 변화에 의해 발생. (분기예측으로 커버)
- 구조적 위험(자원 위험) : 명령어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 CPU 부품을 사용하려 할 때 발생.
- 슈퍼스칼라 : CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조
- 비순차적 명령어 처리 (OoOE : Out of Order Execution)
- 의존관계에 놓이지 않아 순서를 바꿔 실행해도 무방한 명령어를 먼저 실행하여 명령어 파이프라인이 멈추는 것을 방지하는 기법.
5-3. CISC와 RISC
- 명령어 집합 구조 (ISA) : CPU가 이해할 수 있는 명령어들의 모음
- CISC (Complex Instruction Set Computer - 복잡한 명령어 집합을 활용하는 컴퓨터)
- 다양하고 강력한 기능의 명령어 집합을 활용, 가변 길이 명령어 활용.
- 코드 수가 짧다 = 프로그램 크기가 작다 = 용량이 적다.
- 활용하는 명령어가 복잡하여 명령어의 크기와 실행까지의 시간이 일정치않다. → 파이프라이닝 최적화 문제.
- 대다수의 복잡한 명령어의 사용 빈도가 낮음. 20%의 명령어가 전체 사용량의 80%를 차지.
- RISC (Redued Instruction Set Computer - 감소한 명령어 집합을 활용하는 컴퓨터)
- 고정 길이 명령어, 하나의 명령어가 1클럭 내외로 실행.
- 메모리에 직접 접근하는 명령어를 load, store로 제한할 만큼 메모리 접근을 단순화, 최소화. 대신 레지스터 활용에 적극적.
- 코드량이 많다. (용량 및 메모리 사용량 증가)
참고 : 혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)
'CS지식 > 컴퓨터구조' 카테고리의 다른 글
| 컴퓨터구조 Ch.7 보조 기억 장치 (0) | 2023.01.17 |
|---|---|
| 컴퓨터 구조 Ch.6 메모리와 캐시 메모리 (0) | 2023.01.14 |
| 컴퓨터 구조 Ch.4 CPU의 작동원리 (0) | 2023.01.13 |
| 컴퓨터구조 Ch.3 명령어 (1) | 2023.01.09 |
| 컴퓨터구조 Ch.2 데이터 (0) | 2023.01.08 |