cs, 

Computer Architecture Review

Computer Architecture Review

Computer Architecture Review

오랜만에 컴퓨터 구조에서 배운 내용을 조금 복습해보며 감을 잡기 위함

컴퓨터가 코드를 처리하는 과정

  1. Read Code
  2. Assembly 변환
  3. CPU에서 실행

CPU에서 하나의 명령(Ex) Add)을 실행하는 과정 (5단계)

  1. IF: Instruction Fetch (명령어 가져오기)
  2. ID: Instruction Decode (무슨 명령어인지)
  3. EX: Execute / Adress calculation (명령 실행 or 접근할 주소 계산)
  4. MEM: Access Memory (메모리에 접근)
  5. WB: Write (변수 업데이트)

위의 5단계가 CPU (Single Cycle Datapath)에서 실행되는 과정

  • 한 번의 Cycle에 명령 하나씩 처리

layout: post title: “ComputerArchitecture Review” date: 2021-01-23 03:15:30 +300 image: x1.png tags: open-source

image

  • 시간 비용

image

Pipeline

  • 나누어진 부분을 경계로 병렬적으로 처리

image

  • 시간 비용

image

Hazard

  • Instruction을 실행하기 위한 데이터가 준비되지 않아서 Instruction을 실행할 수 없는 경우

image

  • 해결 방법 1: Data Forwarding

image

필요한 데이터가 register나 memory에 write 될 때까지 기다리지 않고, internal buffer로부터 읽어서 Hazard를 해결하는 방법

  • 해결 방법 2: Stall (Bubble)

image

Hazard를 피할 수 없는 경우 아무 명령을 처리하지 않는 nop (No-operation) 를 넣음으로써 Data Forwarding을 할 수 있도록 싱크를 맞춰주는 방법

Subscribe to SOOFTWARE

Get the latest posts delivered right to your inbox