Computer Architecture Review
Computer Architecture Review
오랜만에 컴퓨터 구조에서 배운 내용을 조금 복습해보며 감을 잡기 위함
컴퓨터가 코드를 처리하는 과정
- Read Code
- Assembly 변환
- CPU에서 실행
CPU에서 하나의 명령(Ex) Add)을 실행하는 과정 (5단계)
- IF: Instruction Fetch (명령어 가져오기)
- ID: Instruction Decode (무슨 명령어인지)
- EX: Execute / Adress calculation (명령 실행 or 접근할 주소 계산)
- MEM: Access Memory (메모리에 접근)
- 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
- 시간 비용
Pipeline
- 나누어진 부분을 경계로 병렬적으로 처리
- 시간 비용
Hazard
- Instruction을 실행하기 위한 데이터가 준비되지 않아서 Instruction을 실행할 수 없는 경우
- 해결 방법 1: Data Forwarding
필요한 데이터가 register나 memory에 write 될 때까지 기다리지 않고, internal buffer로부터 읽어서 Hazard를 해결하는 방법
- 해결 방법 2: Stall (Bubble)
Hazard를 피할 수 없는 경우 아무 명령을 처리하지 않는 nop (No-operation) 를 넣음으로써 Data Forwarding을 할 수 있도록 싱크를 맞춰주는 방법
Subscribe to SOOFTWARE
Get the latest posts delivered right to your inbox