💡
- 빠른 CPU를 위한 설계 기법
- 빠른 CPU를 위한 명령어 병렬 처리 기법
- RISC와 CISC의 차이에 대한 이해
1) 빠른 CPU를 위한 설계 기법
클럭
클럭 신호에 맞춰 CPU는 명령어 사이클을 실행
클럭 속도가 높은 CPU는 일반적으로 성능이 좋음
클럭 속도 → CPU 속도 단위
1초에 클럭이 몇 번 반복되는지를 헤르츠(Hz)단위로 측정
클럭 속도는 일정하지 않음
기본 클럭 속도/최대 클럭 속도
최대 클럭 속도를 강제로 끌어올린 것 → 오버클럭킹
코어와 멀티코어
지금까지 알던 ‘명령어를 실행하는 부품’ CPU는 오늘날 코어로 사용됨
CPU: 명령어를 사용하는 부품을 여러 개 포함하는 부품
코어를 여러 개 포함하고 있는 CPU: 멀티코어CPU / 멀티코어 프로세서
하지만, 코어 수에 비례하여 무조건 연산 속도가 증가하지 않음
→ 적절한 연산 분배 필요
스레드와 멀티스레드
하드웨어적 스레드(CPU) / 소프트웨어적 스레드(프로그램)
하드웨어적 스레드 / 논리 프로세서
하나의 코어가 동시에 처리하는 명령어 단위
여러 스레드를 지원하는 CPU: 멀티스레드 프로세서 / 멀티스레드 CPU
→ 인텔의 멀티스레드 기술: 하이퍼스레딩
소프트웨어적 스레드
하나의 프로그램에서 독립적으로 실행되는 단위
멀티스레드 프로세서
하나의 코어로 여러 명령어를 동시에 처리하는 기술인 하드웨어적 스레드
하나의 코에에 레지스터 세트가 여러 개 있다면, 여러 개의 명령어 동시 처리 가능
2) 명령어 병렬 처리 기법
명령어 파이프라인
- 명령어 인출 (Instruction Fetch)
- 명령어 해석 (Instruction Decode)
- 명령어 실행 (Execute Instruction)
- 결과 저장 (Write Back)
→ 같은 단계가 겹치지 않으면 CPU는 각 단계를 동시에 실행 가능
위 명령어들을 명령어 파이프라인에 넣고 동시에 처리하는 기법: 명령어 파이프라이닝
→ 높은 성능 향상
하지만, 특정 상황에서는 성능 향상에 실패하기도 함
→ 파이프라인 위험
데이터 위험
명령어 간 ‘데이터 의존성’에 의해 발생
어떤 명령어가 이전 명령어를 끝까지 실행해야만 실행 가능한 경우
제어 위험
분기 등으로 인한 ‘프로그램 카운터의 갑작스러운 변화’에 의해 발생
프로그램 카운터가 현재 실행 중인 명령어의 다음 주소로 갱신되지 않고, 실행 흐름에 의해 갑작스러운 변화가 생긴 경우
→ 미리 처리중이던 명령어 쓸모 없어짐
이를 해결하기 위한 분기 예측 기술 존재
구조적 위험 / 자원 위험
서로 다른 명령어들이 동시에 CPU 부품을 사용하려고 할 때 발생
슈퍼스칼라
CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조
슈퍼스칼라 구조로 명령어 처리가 가능한 CPU: 슈퍼스칼라 프로세서 / 슈퍼스칼라 CPU
이론적으로는 파이프라인 개수에 비례하여 프로그램 처리 속도가 빨라지지만, 예상치 못한 문제들로 실제로는 비례하여 빨라지지는 않음 → 위험을 방지한 고도의 설계 필요
비순차적 명령어 처리
명령어들을 순차적으로 실행하지 않는 기법
비순차적 명령어 처리가 가능한 CPU는 명령어들 간의 데이터 의존성, 순서를 바꿔 실행할 수 있는 명령어를 판단할 수 있어야 함
3) CISC와 RISC
명령어 집합
CPU가 이해할 수 있는 명령어들의 모음: 명령어 집합 / 명령어 집합 구조 (ISA)
각기 다른 성격의 ISA를 기반으로 설계된 CISC와 RISC
CISC (Complex Instruction Set Computer)
‘복잡한 명령어 집합을 활용하는 컴퓨터(CPU)’
x86, x86-64가 대표적인 ISA .
명령어의 형태와 크기가 다양한 가변길이 명령어 활용
→ 메모리 공간을 절약할 수 있음
→ 단점: 명령어의 크기&실행되기까지의 시간이 일정 X & 명령어 하나 실행에 여러 클럭 주기 필요
→→ 적은 수의 명령으로 프로그램 동작, 메모리 절약이 가능하지만 명령어의 규격화가 어려움. 따라서 CISC 기반 CPU는 성장에 한계가 있음
RISC (Reduced Instruction Set Computer)
- 빠른 처리를 위해 파이프라이닝 활용 → 명령어 길이&수행 시간이 짧고 규격화되어 있어야 함
- 자주 쓰이는 명령어만 줄곧 사용됨 → 자주 쓰이는 기본적인 명령어를 작고 빠르게 만드는 것 중요
→ RISC 등장
CISC와는 달리 짧고 규격화된 명령어, 1클럭 내외로 실행되는 명령어 지향
→ 고정 길이 명령어 활용, load-store 구조
'스터디 > 컴퓨터구조' 카테고리의 다른 글
[혼자 공부하는 컴퓨터구조와 운영체제] 4_CPU의 작동 원리 (0) | 2025.03.12 |
---|---|
[혼자 공부하는 컴퓨터구조와 운영체제] 3_명령어 (0) | 2025.03.07 |
[혼자 공부하는 컴퓨터구조와 운영체제] 2_데이터 (0) | 2025.03.05 |
[혼자 공부하는 컴퓨터구조와 운영체제] 1_컴퓨터 구조 시작하기 (0) | 2025.03.05 |