컴퓨터 구조

    8. 데이터 해저드 : 전방전달 대 지연

    8. 데이터 해저드 : 전방전달 대 지연

    파이프라이닝을 하게 됨으로써 우리는 겪을 수 있는 문제들이 있다. structural hazards ( 구조 문제 ) - 같은 자원에 대한 사용을 동시에 다른 곳에서 하게 될 경우이다. ex) 두개의 명령어가 동시에 똑같은 메모리 구역을 읽게 될 경우 data hazards ( 데이터 문제 ) - 데이터가 준비되기 이전에 사용되는 문제 ex) add r1, r2, r3 이후 sub r4, r2, r1 명령어가 올 경우 r1에 데이터가 준비되기 이전에 sub 명령어가 실행되어 r1에 예상치 못한 값이 들어있게 된다. control hazards ( 제어 문제 ) - 조건이 확인되기 이전에 다른 명령어가 실행되는 경우 ex) beq r1, r4, loop 이후 add r1, r2, r3 명령어가 올 경우 l..

    7. 파이프라인 데이터패스 및 제어

    7. 파이프라인 데이터패스 및 제어

    MIPS Pipelined Datapath MIPS의 파이프라인은 다음의 5가지 stage를 갖는다. IF: Instruction fetch from memory ID: Instruction decode & register read EX: Execute operation or calculate address MEM: Access memory operand WB: Write result back to register 이렇게 데이터패스를 구축하고 Pipeline 시켰을 때 문제가 뭐가 있을까? 단일 사이클 환경에선 한명령어가 끝난 다음 다음 명령어가 실행되었으므로, 각 메모리 레지스터파일 등이 갖고 있는 정보가 하나의 명령어에 관한 것이었기 때문에 정보를 별도로 저장할 필요가 없었다. 그러나 파이프라이닝 환..

    6. 파이프라이닝 개요

    6. 파이프라이닝 개요

    지금까지 구현한 단일 사이클 구현은 이러한 설계에서 모든 명령어에 대해 가장 긴 시간이 걸리는 load word(데이터패스를 그려보면 명령어 메모리, 레지스터 파일, ALU, 데이터 메모리, 레지스터 파일의 5 과정을 거치므로 시간이 가장 오래 걸린다.)를 기준으로 똑같은 클럭 사이클을 갖는다. 이렇게 구현하면, CPI (Clock cycle per Instruction)는 한명령어에 한 번의 사이클만 들기 때문에 1밖에 되지 않지만, 클럭 사이클이 매우 길기 때문에 전체 성능이 좋지 않다. 참고: https://developbear.tistory.com/33?category=1016411 [Chapter 1.2 컴퓨터 구조 및 설계] 컴퓨터의 성능과 CPU Time 본 정리는 CS422-컴퓨터 구조 및..

    5. 멀티사이클 구현

    5. 멀티사이클 구현

    우선 데이터 패스에 관한 이해가 있다는 것을 전제로 하겠습니다! 참고 : https://developbear.tistory.com/63 [Chapter 4.3 컴퓨터 구조 및 설계] processor datapath와 레지스터 파일 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. Datapath (데이터패스) 데이터패스란 CPU안에서 데이터 developbear.tistory.com Control Signals 우선 컨트롤 신호에는 무엇이 있는지 알아보자. Signal name 0 1 RegDst write address를 rd가 아닌 rt가 오게끔 한다. write address를 r..

    오류 및 함정

    오류 및 함정

    오류와 함정 (여기서 부르는 함정은 흔히들 하는 실수이고, 오류는 많은 사람들이 공통적으로 잘못 알고 있는 부분이다.) 오류 : 한 비트 왼쪽 자리이동 명령어가 2를 곱해준 것과 같은 결과를 보이듯이 오른쪽 자리이동 명령어는 2로 나누어 준 것과 같은 결과를 나타낸다. 해당 오류는 부호 없는 정수에서는 찾을 수 없다. 문제는 부호있는 정수를 사용하는 경우이다. 예를 들어, -5를 4로 나눈다고 생각하자. 1111 1111 1111 1111 1111 1111 1111 1011 (-5의 2의 보수 표현법) 이러한 오류에 따르면 2비트 오른쪽으로 자리이동한 것은 4로 나눈 것과 샅아야 한다. 0011 1111 1111 1111 1111 1111 1111 1110 이 수는 -1이 아닌 양수의 굉장히 큰 수가 되..

    4. 단순한 구현

    4. 단순한 구현

    Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) and, or , add 연산 등을 하는 ALU 하드웨어를 한번 만들어보자. ALU 하드웨어 우선 연산이 32bit의 수에 대해서 이루어진다. 이를 위해선 어떻게 해야할까? 단순히 and or 등의 연산을 하는 1bit ALU를 32개 사용하면 된다. 우리가 ALU 하드웨어를 만들기 위해선 위의 총 4가지의 논리 회로가 필요하다. 그럼 Add 연산은 어떻게 할 수 있는걸까? 1bit Add연산은 값이 Cout(올림수) sum (현재 자리에 올 수)..

    3. 데이터패스 만들기

    3. 데이터패스 만들기

    Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) Datapath (데이터패스) 데이터패스란 CPU안에서 데이터와 주소, 레지스터의 처리 및 연산을 하는 모든 요소를 의미한다 (instruction memory, data memory, PC, Register file, ALU 등 ..) 간단하게는 명령어가 들어와서 Fetch, Decode, Execute 되는 3 과정의 경로라고 생각하면 된다. 1. Instruction fetch Instruction Memory는 프로그램의 명령어를 저장하고 ..

    2. 논리 설계 관례

    2. 논리 설계 관례

    Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 프로세서의 설계에 대하여 논의하기에 앞서 컴퓨터를 구현하고 있는 논리 회로가 어떻게 동작하고 또 컴퓨터가 어떻게 클러킹되는지 알아보자. Combinational element (조합 소자) 조합 소자 : 똑같은 값이 입력 된다면, 무조건 같은 값이 출력되는 것이 보장된 논리 회로 ex) and-gate,adder, Multiplexer 등등 Sequential Elements (상태 소자) 상태 소자 : 회로 내부에 값을 기억하는 회로 이러한 상태..