오래 못 할 짓 하지 않기
[ 컴퓨터 구조 ] 4. Datapath (3) - Instruction Datapath 본문
Datapath 설계
Instruction Fetch :
1. Instruction memory에 있는 게 뭘까? > Instruction이겠지?
2. PC를 Instruction memory address로 연결한다.
--> Fetch 끝
3. 그 위에는 PC +4 를 해놓음으로써 그다음 Instruction을 가져온다.
R-Type Instructions
1. Fetch후에 가져온 Instrution 에서 32bit를 이제 나눈다. 앞 5비트는 Op code이므로 떼고
그 뒤 비트들은 Register들에게 할당된다.
2. 그렇게 Read Register 1,2,3들은 rs, rt, rd가 되고 read data 1 = rs , 2 = rd가 된다.
3. Read data 1,2 가 ALU로 들어가게 되고, Instruction 에 있었던 연산을 수행한 뒤, 결과는 ALU result로 나온다.
4. ALU result는 다시 Write Data로 들어가고, 어디에 write할지는 rd가 write register와 연결되어 결정한다.
Load or Store << 데이터 메모리 + Sign - extention (16 bit -> 32 bit )
data의 address 구하기 : Sign extention 된 data와 rs가 ALU에서 add 되어 Address로 들어간다.
lw 명령어일 때 : Read Data 로 나온 게 Register[ra] 로 들어간다.
sw 명령어일 때 : Register[rt] 가 Write data 로 들어간다.
BEQ (Branch if Equal)
Read data1 = R[rs]
Read data2 = R[rt] 이 두 개를 ALU에서 비교한다.
ALU에서는 두 개의 차이를 구하여 0이면 Equal로 Branch.
Branch를 할 경우에 주소는 [ 32비트로 sign extention 한 값 * 4(<<2) ] + [ PC + 4 ] 를 하면 Branch target 값이 된다.
R type + ( Load or Store )
- R type = Register , ALU 만 있으면 됨
- Load / Store =
R Type에서는 ALU의 연산을 통해 rs + rt 갈 곳이 정해지고,
Load / Store는 rs + se(imm16) 로 갈 곳이 정해진다.
이 충돌을 해결하기 위해 2 : 1 MUX를 이용한다.
--> R type일 때는 Read data2 = rt가 들어가고, Load / Store 일 땐 se(imm16)
해당 ALU의 결괏값이
R타입일 때 : 바로 Write Data로 들어간다.
Lw 일 때 : Data Memory 의 Address로 들어가고 그 Adderess에서 나온 Read Data가 Write data로 들어간다.
아래 부분은 방금 했던 R type + Load/Store이고
위에 새로 더해진 부분은 BEQ를 해결하고, Branch Target 주소를 구하는 곳임.
+address 를 read한다는 건,
자판기 느낌이라고 생각하면 됨.
14번에 있는 거 줘봐 --> 해당 음료 나옴
전체적인 흐름
Program Counter 가 업데이트 되면 (새로운 입력이 들어오면)
→ Instruction Memory가 새로 업데이트된 정보의 명령어를 출력하고
→ Register File 에서 Rs , Rt 들을 읽는다
→ ALU에서 연산을 하고, 해당 연산의 결과는 다시 Register File로 업데이트시켜준다.
→ PC +4 하여 또 업데이트를 해준다.
이게 1CLK 에 끝난다.
'2학년 2학기 > 컴퓨터 구조' 카테고리의 다른 글
[ 컴퓨터 구조 ] 6. (Multiple Cycle) Multiple Clock Cycle (0) | 2023.07.04 |
---|---|
[ 컴퓨터 구조 ] 5. Single Cycle 제어부 (0) | 2023.07.04 |
[ 컴퓨터 구조 ] 3. Datapath (2) - Simple Datapath (0) | 2023.06.28 |
[ 컴퓨터 구조 ] 2. Datapath (1) (0) | 2023.06.28 |
[ 컴퓨터 구조 ] 1. RISC / MIPS (0) | 2023.06.27 |