combinational logic : 값 저장을 하지 않는다.
sequential logic : 값 저장이 가능하다.
우리가 사용하는 sequencial logic은 d-flipflop으로 write 와 clock 모두 1 일떄에 저장이 된다.
위와 같이 write 는 1이기 떄문에 clock rise 일 떄에 값이 써진다.
instruction 이 저장될때에는 pc에 해당되는 메모리에 저장이 된다.
따라서 address는 해당 메모리의 주소를 판별할때에만 사용된다. 그리고 해당 위치에 저장된다.
위는 instruction을 저장할 때이고, 읽을 때에는 memRead = 1, memWrite = 0 으로 설정한다.
이렇게 되면 해당 address의 값을 읽을 수 있다.
Register file sequencial circuit
위는 r format 일 때로, definition registerdl write register로 들어가고, 나머지 register의 값을 읽어서 해당되는 연산을 한다.
이때에 RegRead는 항상 1이고, RegWrite는 필요할 때, write register에 data를 입력해야 할 때에 1로 바뀐다.
따라서 RegWrite가 1이 될떄는 add, sub, and, or, slt, lw 이다.
Datapath : data가 지나는 길로 curcuit을 지칭한다.
instrustion이 processor에서 실행되는 순서.
1. fetch instruction : 메모리에서 명령어를 가져온다.
- PC에 해당하는 주소값에서 수행할 instruction을 프로세서로 읽어온다.
2. execute instruction : 명령어 시행
- 명령어를 해석하는 동시에 register file 에서 레지스터 값을 읽는다.
-명령어에 따라서 해당되는 계산을 한다.
아래는 instruction을 fetch 하는 curcuit 이다.
pc에는 clock이 연결되어있다. 따라서 clock의 rising 마다 4 씩 add 된 값이 저장 된다.
그리고 pc 의 값이 instruction memory 로 넘어가서 해당 address의 instruction을 가져온다 .
위는 r format 의 instruction의 execution 이다. 위의 그림에서 clock은 생략되어있다.
위의 과정은 fetch해온 instruction을 입력값을 받아온 후에 그에 따라 계산하는 과정이다. 해당하는 계싼에 따라서 mux로 alu operation 을 판별한다. 그리고 계산을 마친 값은 clock의 rising edge 일때에 register에 저장된다.
위는 i format의 instruction execution 이다. 이때에는 뒤의 16 bit 숫자를 sign extend 한 후에 계산 한 값을 write data로 전달한다.
'컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조 execute 과정 & delay (0) | 2022.10.13 |
---|---|
컴퓨터 구조 (0) | 2022.10.11 |
컴구 translation and startup (1) | 2022.09.30 |
컴퓨터 구조 (07) (0) | 2022.09.29 |
컴퓨터 구조(06) (1) | 2022.09.23 |