컴퓨터 구조

컴퓨터 구조

cheesecrust1008 2022. 10. 4. 21:56

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