datapath란?
데이터패스란 CPU안에서 데이터와 주소, 레지스터의 처리 및 연산을 하는 모든 요소를 의미한다 (instruction memory, data memory, PC, Register file, ALU 등 ..)
1. Instruction fetch
instruction memory에서 Instruction을 읽어들인다.
1) PC(program count) : 실행해야할 명령어의 주소를 가지고 있는 레지스터
2) Instruction memory : PC로 부터 주소를 읽어들이고 주소에 맞는 Instruction을 output으로 내보냄
3) Add : PC 값을 4byte 씩 증가시키는 연산 수행하므로써 다음 명령어의 주소값으로 PC를 업데이트 시켜줌
2. To implement R-format arithmetic/logic instruction
- add $t1, $t2, $t3
- 피연산자 레지스터를 읽어들임($t2, $t3)
- arithmetic/logical operation 수행
- 결과값을 레지스터에 저장($t3)
3. To implement Load/Store Instruction
- lw $t1, offset($t2)
- base address를 구하기 위해 피연산자 레지스터를 읽어들임($t2)
- sign extend를 이용해 16bit의 offset을 32bit로 변환하고 base address 계산
(base address 계산을 위한 ALU의 input은 32bit임. offset을 32bit로 그냥 늘일 경우 부호가 바뀔 수 있으므로 sign extend를 통해 32bit로 비트를 확장해줌 ex : 1111 -> 0000 1111(x), 1111 -> 1111 1111(o))
- Load : 메모리를 읽고 레지스터 값을 업데이트함
- Store : 메모리에 레지스터 값을 저장
'CS > Computer Architecture' 카테고리의 다른 글
Language of the Computer (0) | 2019.12.23 |
---|---|
Computer Abstraction and Technology (1) | 2019.12.22 |
Memory Hierarchy (0) | 2019.12.16 |
Processor - logic design basics (0) | 2019.12.16 |
Floating Point Number (0) | 2019.12.15 |
댓글