가정
- rising edge 사용
- 한 사이클 내에서는 피드백이 일어나지 않음
- 데이터는 32비트 폭
- 레지스터는 듀얼포트(dual port) 설계 - add $r1, $r2, $r1
- 데이터패스는 검정색 / 컨트롤패스는 파란색
버스(Bus)
컴퓨터 안의 부품들 간에, 또는 컴퓨터 간에 데이터와 정보를 전송하는 통로
- ISA -> E-ISA -> PCI - PCI express(PCI-E) -> 1x -> ... -> 8x -> 16x
- Local Bus
- AGP -> PCI-e 8x
- Graphis / SSD(NVMe -> PCI-E 3/4/5)
버스(Bus)와 크로스바(Cross bar)
- 버스는 한 번에 두 개의 노드만 선택해서 통신가능
- 여러 노드가 같이 통신하려면 스케줄링 필요함(보통 TDMA방식)
- 크로스바는 여러 노드가 동시에 통신가능하지만 복잡함
싱글포트 vs. 듀얼포트 메모리/레지스터
싱글포트
- 한 번에 read 또는 write를 선택
듀얼포트
- 동시에 write와 read가 가능하게 설계
- 메모리핀이 두 개가 존재
- 비디오램(VRAM/GDDR)에 많음
데이터패스(Datapath)
구성요소(MIPS)
- 명령어 메모리
- 데이터 메모리
- 레지스터 파일 - 레지스터들의 집합으로 구성된 상태소자
- ALU
- 제어신호 4비트(16가지)
- 32비트 입력 2개, 32비트 출력 1개와 zero여부(1비트)
- Adder
- PC(프로그램 카운터) - +4(32비트 워드)씩 증가
- R형식 명령어 - 레지스터 피연산자(Operand) 3개
- 레지스터 - 제어신호 read/write
- 부호확장 유닛
- 데이터 메모리 유닛
샘플 MIPS 프로세서 구조
마이크로프로그래밍
- 어셈블리 명령어를 실행하기 위해 제어신호를 어떻게 줄 것인가
- 데이터패스도 여러개 가능
- 제어신호도 다 다름
- x86-64(amd64) 어셈블리는 동일
- AMD/인텔의 마이크로 프로그램은 틀림
지연(delayed) 분기
조건의 참/거짓과 관계없이 다음 명령어를 항상 실행
- 조건이 거짓이면 그대로 분기하지 않고 다음 명령어를 실행
- 조건이 참이면 지연분기명령어 다음 명령어 실행 후 분기주소로 점프
파이프라이닝을 위해
분기명령어
Load/Store Data path(R-type)
Full Datapath
단일 사이클 구현의 문제
모든 평령어에서 클럭사이클이 같은 길이를 가져야 함
- 전체적인 성능 감소
- 크리티컬 패스는 적제(Load) 명령어 - 명령어메모리, 레지스터 파일, ALU, 데이터메모리, 레지스터 파일 사용
- 클럭사이클은 적재 명령어에 맞춰야 함
멀티 사이클 구현
- 각 단계를 한 사이클씩 사용
- 명령어마다 필요한 클럭 수가 달라질 수 있음
- 한 명령어 실행 네에서 기능 유닛을 공유 가능
- 하드웨어 비용감소
'전공 > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] #8 파이프라이닝 (0) | 2023.04.23 |
---|---|
[컴퓨터구조] #7 단일 사이클 구현 2 (0) | 2023.04.23 |
[컴퓨터구조] #5 프로세서 (0) | 2023.04.15 |
[컴퓨터구조] #4 컴퓨터 연산 (0) | 2023.04.15 |
[컴퓨터구조] #3 명령어 종류, 기능과 형식 (0) | 2023.04.15 |