1. 제어장치의 기능
모든 동작을 제어
mm주기억장치 → 명령어 가져옴 → CPU의 명령 레지스터 IR → opcode 해독 → 제어신호 발생
2. 제어 장치 종류
하드와이어적 제어장치
빠름. 변경은 회로구조를 물리적으로 변경해야 함. 클록 사이클이 진행됨에 따라 상태가 변함. RISC 에서 많이 씀
마이크로 프로그램된 제어장치
“컨트롤 메모리(제어메모리, ROM)!!!!”가 있음! 명령어 마다의 해석을 위한 마이크로 프로그램들이 들어있음.
마이크로 명령어 인출 과정은 하드와이어와 동일. 인출 해독 실행..
발생된 제어신호는 프로그래머가 접근할 수 없는 컨트롤 메모리(제어메모리,ROM)에 저장.
펌웨어로 구현됨
3. 명령어 사이클
...
5. 파이프 라이닝
명령어 사이클 병렬 처리
- 파이프라이닝 : 명령 하나를 여러단꼐로 쪼개서 따로 따로 다른 장치에서 동시에 처리함
5단계 파이프라인
이상적인 경우 비파이프라인 보다 5배 빠른 처리속도.
- 인출 - 해독 - 피연산자인출 - 수행 - 저장
- 해저드
- 데이터 의존성(데이터 해저드)
- 아직 계산중인데 기록 전에 계산 결과가 다른 실행헤서 필요함
- 해결법
- 레지스터에 저장 전에 ALU결과를 직접 다음 명령어 전달하는 길로 전달 = 데이터 포워딩
- NOP명령을 끼워넣어 뒤 명령 실행 늦춤
- WAW, WAR 해저드 등이 있음
- 분기 명령어에 의한 영향(제어 해저드)
- 분기 명령 해독 → 이미 적재되어 실행되고 있던 다른 명령들이 분기로 인해 버려짐. 속도 저하
- 해결법
- 지연분기 : NOP이나 분기랑 무관한 명령을 실행함. 컴파일러나 프로그래머가 실행 순서를 바꿈
- 분기예측 알고리즘 사용
- 자원 충돌(구조적 해저드)
- 서로 다른 단계에서 실행중인 명령이 동시에 같은 장치(메모리 등)를 사용하려함
- 해결법
- 하버드 구조 사용 - 명령어/데이터 메모리 분리해 충돌 봉쇄. RISC에서 씀
- 분리 캐시 사용 - 명령어/데이터 캐시 분리(두 캐시가 동시에 미스나면 메모리로 가므로 충돌 발생 가능)
- 장치를 더 둠
- 데이터 의존성(데이터 해저드)
4) 슈퍼 스칼라
한 클록당 한 명령어 이상 실행하는 구조
예) 파이프라인 여러개 탑재 : 두 명령은 충돌x, 서로에 의존x해야 함. 하드웨어를 추가해서 충돌감지 필요.
RISC 가 원조
파이프라인 늘리기는 너무 많은 하드웨어 소요.
→ 고급 cpu는 그 대신 파이프라인 하나에 기능장치segment를 여러개 둠. 다수의 ALU 등..
장치를 여러개 둔 단계가 시간이 오래걸리는 경우에 효과 있음.
다 비슷한 속도면 의미 없음.
Q. 클록주기가 10ns인 4단계 명령어 파이프라인에서 20개의 명령어를 실행하는 데 걸리는 시간은?
→ 첫 클록 3번은 쉼(결과 없음). 4번째부터 20개니까 10 * (3+20) = 230ns
Q. 4개의 세그먼트로 이루어진 부동소수점 파이프라인의 각 세그먼트 시간지연이 60ns, 70ns, 100ns, 80ns이고, 중간 레지스터의 지연이 10ns라고 가정하면 클록사이클은 얼마여야 하는가?
→ 가장 오래 걸리는 세그먼트에 맞추고 중간 레지스터 지연까지 합해야 함. 100+10 = 110ns
'뚝딱 공부 상자 > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] Chapter7. 보조기억장치 (0) | 2022.06.25 |
---|---|
[컴퓨터 구조] Chapter6. 기억장치 (0) | 2022.06.25 |
[컴퓨터 구조] Chapter 04. 중앙 처리 장치 (0) | 2022.06.25 |
[컴퓨터 구조] Chapter 03. 디지털 논리 회로 (0) | 2022.06.25 |
[컴퓨터 구조] Chapter 02. 데이터의 표현 (0) | 2022.06.25 |