위의 그림에서 PC와 instruction memory 에는 같은 clock이 연결 되어있다.
따라서 PC에 값이 저장되기 위해서는 rising edge 에서만 저장된다.
하지만 , instruction memory에서는 오로지 값만 읽기 때문에, 값을 읽을 때에는 clock이 rising 이지 않아도 된다.
따라서 rising 일때마다 새로운 값이 PC에 저장되고 그 값에 해당하는 instruction을 읽는다.
control
전 시간에 두가지 회로를 알아 보았다.
위 그림은 그 두가지 회로를 합치는 것이다. 위의 빨간색 동그라미는 입력값이 두개인데 출력값이 하나인 경우이다.
따라서 위의 부분들은 mux로 연결을 해주어야한다. 이때에 mux에 입력되는 signal에 따라서 입력값이 달라지는데, 이 mux의 signal을 넣어주는 부분을 control이라고 한다.
그리고 위의 그림에 beq의 경우까지 추가한다면 아래와 같은 회로가 나오게 된다.
따라서 위는 r format과 i format 모두 처리가 가능하다.
r format 일때에는 구성이 op field / register / register / register / shift / func field 이다. 따라서 write register에 3번째 regiter 가 들어가게 된다.
i format 일 경우에는 구성이 op field / register / register / 16bit 숫자가 된다. 따라서 write register에는 두번째 register가 들어가게 된다.
하버드 구조 VS 폰 노이만 구조
하버드 구조란 메모리를 address 와 data, 두개로 나누는 구조이다.
폰 노이만 구조는 메모리를 address, data 를 나누지 않고 하나에 한번에 하는 구조이다.
위의 그림에서 control 까지 붙이게 된다면 아래와 같은 구조가 된다.
instruction의 예를 들어 본다면
add $2, $8, $9 라면 이를 2진수로 바꾼다면 000000 01000 01001 00010 00000 100000 이다.
이때에 위는 little endien 방식이기 때문에 31 부터 0 으로 op field는 31 - 26 / rs 는 25 - 21 / rt 는 20 - 15/ rs 는 15 - 11 / func field 는 5 - 0 이다.
execution of alu
alu 계산의 경우에는 control 에서 나온 aluop 와 function field 가 조합 되어 alu control 에서 alu mux signal을 보내준다.
또한, control 회로의 경우는 combinational logic 이므로 진리표를 작성할 수 있다.
위의 표와 같은데, X는 don't care을 뜻한다.
lw는 i format 이기 때문에 function field 가 없고, add 만 하면 되기 때문에, alu op 가 00 이 되고, funct 의 경우에는 don't care 가 된다.
sw의 경우도 마찬가지 이고, beq의 경우는 subtract 만 실행 시키므로, functr가 모두 don't care 이다.
Rtype 의 경우는 r format 이기 때문에 function 까지 고려해야 한다.
위는 alu op 와 funct field 에 따른 operation이다.
맨 위의 0 0 인 경우는 lw, sw 인 경우로 funct 는 don't care 이고, add 계산이 된다.
X 1 인 경우는 beq 로 계산이 sub 로 고정되어 있고, func field 가 없ㄱ 때문에 don't care 이다.
위는 r format 과, 또 다른 instruction 의 경우에 control signal 을 정리한 표이다.
위의 don't care 인 것들은 sw. beq 일때의 regDst, memto- reg이다. 이들이 don't care 인 이유는 register에 값을 안 쓰기 때문이다.
'컴퓨터 구조' 카테고리의 다른 글
프로세서 (컴퓨터 구조) (0) | 2022.11.27 |
---|---|
컴퓨터 구조 execute 과정 & delay (0) | 2022.10.13 |
컴퓨터 구조 (1) | 2022.10.04 |
컴구 translation and startup (1) | 2022.09.30 |
컴퓨터 구조 (07) (0) | 2022.09.29 |