일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ChatGPT
- regression
- LG
- AI
- deep learning
- supervised learning
- Classification
- 머신러닝
- OpenAI
- 딥러닝
- Machine Learning
- GPT-4
- PCA
- 티스토리챌린지
- LLM
- 지도학습
- gpt
- LG Aimers
- 분류
- 회귀
- 오블완
- 해커톤
- LG Aimers 4th
Archives
- Today
- Total
SYDev
[컴퓨터 구조] Lecture 14: The Processor - Part3 본문
경희대학교 김정욱 교수님의 컴퓨터 구조 강의 내용을 기반으로 한 정리글
Overview of Pipelining
- 여러 개의 명령어를 비동기로 처리하는 기술
Pipeline Instruction-execution (5 stages)
- 명령어를 메모리로부터 Fetch(가져오다)
- 명령어를 decoding하는 동안 read registers
- Execute the operation or calculate an address
- Data Memory의 operand에 접근
- 레지스터에 Write the result
-> lw는 모든 단계를 거치기 때문에 가장 오래 걸림
Pipelining Speed-Up Discussion
Single cycle vs. Pipelined performance
Pipelining speed-up
- if the stages are perfectly balanced, 파이프라인의 명령어들 간의 차이는 다음과 같다.
- 하지만 완벽하게 균형을 이루는 경우는 없기 때문에,
- Time between instructions(pipelined) != Time between instructions(nonpipelined) / Num of pipe stages
3개의 명령어
- Nonpipelined: 2400ps
- Pipelined: 1400ps
- 약 1.7배의 효율차이
1,000,003개의 명령어
- Nonpipelined: 1,000,000 * 800ps + 2400ps ->(유사) 800,000,000ps
- Pipelined: 1,000,000 * 200ps + 1400ps -> (유사) 200,000,000ps
- 약 4배의 효율 차이
Pipelined Datapath and Control
5 stages of Pipelining
- IF(Instruction fetch)
- ID: Instruction decode & register file read
- EX: Execution or address calculation
- MEM: Data memory access
- WB: Write back
- 명령어들은 보통 left to right 방향으로 진행되지만, 두 가지 예외가 있다.
- Write-back(WB) stage
- PC의 next value 선택
-> MEM에서 beq를 판단한 순간, EX에서는 beq의 다음 명령어가 실행중
-> beq 점프를 하면 다음 명령어들은 무시가 돼야 하는데, 파이프라이닝 기법을 사용하면 이렇게 문제가 발생
-> 실행된 명령어들을 취소?
Pipeline register
- CC1 내부의 Instruction Memory는 다음 4개의 스테이지와 공유됨
- CC2의 IM이 fetch되면, CC1의 IM은 삭제될 수 있다.
- 각각의 명령어 value를 보존하기 위해서(나머지 4단계의), IM으로부터 읽어온 value는 레지스터에 저장된다.
Pipelined datapath with pipeline register
- WB stage의 다음에는 pipeline register가 없다.
Five stages(lw instruction)
1. Instruction fetch
- PC address는 4만큼 더해지고, 다음 cycle을 준비하기 위해서 PC로 돌아온다.
- 이렇게 더해진 주소는 IF/ID pipeline register에 저장된다. -> beq와 같은 나중 명령어를 위해
2. Instruction decode & register file read
- IF/ID pipeline register에 기반하여, 3개의 값을 얻는다. -> sign-extend 32bits, 2개의 레지스터의 데이터
- 3개의 값 모두 -> ID/EX pepieline register에 저장된다.
- 증가된 PC address도 저장
3. Execute or address calculation
- ID/EX pipeline register에 기반하여, Ex/MEM pipieline register에 저장할 3개의 값을 얻을 수 있다.
- (PC+4) + sign-extend 32-bits, Zero, ALU result
4. Memory address
- Ex/MEM pipeline register로 부터 얻은 address를 이용하여 MEM/WB pipeline register에 메모리로부터 읽은 데이터를 저장한다.
5. Write-back
- MEM/WB pipeline register에서 데이터를 읽어들여서 -> 레지스터에 저장
- sw의 경우에는 마지막 단계가 Don't care이기 때문에 아무 일도 일어나지 않는다.
Graphically Representing Pipelines
- Multiple clock cycle pipeline diagram은 기본적으로 두 가지 스타일이 있다.
First type
- 모든 디테일을 포함하지 않는다.
Second type
- 모든 디테일을 포함
- 좀 더 전통적인 방식
Single clock cycle pipeline diagram
Pipelined Control
- Control signals는 EX, Memory access, WB에서 디코딩되는데, IF/ID 단계 전에는 아직 디코드가 진행되지 않아 뭘 해야할지 모른다.
'3학년 1학기 전공 > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] Lecture 16: The Processor - Part5 (0) | 2024.05.31 |
---|---|
[컴퓨터 구조] Lecture 15: The Processor - Part4 (1) | 2024.05.30 |
[컴퓨터 구조] Lecture 13: The Processor - Part2 (0) | 2024.05.20 |
[컴퓨터 구조] Lecture 12: The Processor (0) | 2024.05.05 |
[컴퓨터 구조] Lecture 11: Arithmetic for Computers (0) | 2024.04.21 |