컴퓨터 구조 4

mips pipeline hazard (컴퓨터구조 2022-2학기)

pipeline hazard 파이프라인 프로세서에서 명령어의 수행이 끝나기 전에 다른 명령어의 수행이 시작되기 때문에 생기는 문제! 기본적으로 pipeline stall을 하는 방법으로 해결할 수 있지만 (새 instruction을 fetch하지 않고 한 싸이클 쉬는것) stall이 많을수록 프로세서의 performance는 떨어지게 됨. 따라서 다양한 해결방법을 통해 stall을 최소화해야 한다. 1. Structural hazard pipeline에서 한 사이클동안 여러개의 instruction이 수행되어서 생기는 구조적 문제! 서로 다른 instruction이 같은 리소스를 사용할때 conflict가 발생한다. instruction memory와 data memory를 하드웨어상에서 분리해서 해결할..

컴퓨터 구조 2022.11.26

mips pipeline control (컴퓨터구조 2022-2학기)

MIPS pipeline control 회로 mips instruction을 실행할 수 있는 pipeline에 control회로를 추가해볼것이다. mux의 연결방향을 결정해주는 control들은 pipeline register를 늘려서 그 일부에 저장해주면 된다. 이 control들은 opcode 6bits에 의해 결정되는데, CC2에 생성되어서 CC3부터 사용된다. IF/ID pipeline register에서 읽은 opcode 6bit를 input으로 하는 컨트롤회로(조합회로)에서 9bit의 control signal을 output으로 만들어 내고, 그 9bit를 ID/EX pipeline register에 쓰게된다. 그리고 이 control signal 9bit를 또 4bit/ 3bit/ 2bit로..

컴퓨터 구조 2022.11.25

mips pipeline datapath (컴퓨터구조 2022-2학기)

processor가 pipelining을 하려면 - load를 여러개의 sub-task로 나누어야 함 - 각 sub-task는 1-clock cycle에 수행됨 (즉 명령어 한개가 여러 clock cycle에 수행됨.) MIPS pipeline의 5 stage 1. IF = 메모리로부터 instruction을 fetch하는 스테이지 2. ID = fetch된 instruction을 decode하고, 필요한 레지스터 값을 읽어오는 스테이지 3. EX = instruction을 수행하거나, 메모리의 주소를 계산하는(lw, sw 등) 스테이지 4. MEM = 데이터메모리에 access해서 여기에 값을 쓰거나 읽는 스테이지 5. WB = 연산의 결과를 레지스터 파일에 쓰는 스테이지 위의 스테이지들은 각각 한 사..

컴퓨터 구조 2022.11.24

MIPS 어셈블리 명령어 (R,I,J format) 기계어로 표현하기

mips assembly instruction은 크게 세가지로 나뉜다. 산술/논리 연산 명령어 (add, addi, sub, and, or, sll, srl 등) 메모리 접근 명령어 (lw, sw 등) 분기 명령어 (j, jr, jal, beq, bne 등) 이렇게 다양한 명령어들은 각각의 format에 따라 다른 방식으로 기계어로 표현되는데, (명령어의 산술종류와 format은 관련이 없다. 같은 덧셈연산이라고 해도 add는 r-format, addi는 i-format이다.) 이 중에 R-format, I-format, J-format에 따라 어셈블리 명령어를 기계어로 바꾸는 어셈블 연습을 해보자. 각각의 instruction이 어떤 포맷인지는 다음 opcode table을 보면 빠르게 확인할 수 있다..

컴퓨터 구조 2022.10.25