第五章 重叠、流水和现代处理器技术

Similar documents
chx10_arch02_ilp.ppt [兼容模式]

计算机组织与系统结构

1 CPU

没有幻灯片标题

计算机组织与系统结构

计算机组织与系统结构

计算机组织与系统结构

untitled

投影片 1

Microsoft PowerPoint - CA_02 Chapter5 Part-I_Single _V2.ppt

计算机体系结构

Ps22Pdf

Microsoft PowerPoint - CA_04 Chapter6 v ppt

[Group 9] Give an example of structural hazard ans 1. 假設下列指令是在只有單一記憶體的 datapath 中執行 lw $5, 100($2) add $2, $7, $4 add $4, $2, $5 sw $5, 100($2)

Microsoft Word - ??山

Microsoft Word - 助理人員教育訓練-會計室.docx

ebook105-12

《计算机应用基础》学习材料(讲义)

Untitiled


Microsoft Word 箕æ−¥ï¼‹å®ı稿;

98年度即測即評學科測試與即測即評即發證技術士技能檢定簡章

01

¥]¸Ë»¡©ú

美容 丙級 工作項目0 1 : 職業道德

100-1「經典研讀:梁啟超《新民說》」學習歷程檔案

<4D F736F F D D C4EAC5A9D2B5B2FAD6B5BACDBCDBB8F1D7DBBACFCDB3BCC6B1A8B1EDD6C6B6C82E646F63>


蘇櫻 慧雪蘇紅櫻 2

内科自诊自疗

PowerPoint 簡報

<4D F736F F D20AC4FBDBDA4FBB67DA96CAABA2DA743A67EAFC5AAA95FA7B9BD5A5F2E646F63>

ex

一、

Microsoft Word - 封面.doc

Ps22Pdf

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

PCM-3386用户手册.doc

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

???p???M?????????[??

单周期数据通路

CH01.indd

育 部 分 則 由 陳 淑 貞 委 員 及 李 兆 環 委 員 共 同 執 行, 在 此 先 感 謝 各 位 委 員 及 學 者 專 家 之 參 與 二 目 前 評 論 報 告 初 稿 之 架 構 區 分 為 對 政 府 機 關 回 應 意 見 之 觀 察 優 點 及 待 改 進 事 項, 以 及

58, ,769 51,911 74,666 35, , , , ,

壹、學校背景

游戏攻略大全(十).doc

保 险 公 司 金 富 月 盈 两 产 全 品 保 名 险 称 ( 分 红 型 ) 产 分 品 红 类 型 缴 费 年 类 缴 型 缴 10 费 年 期 缴 限 保 险 期 限 ( 年 ) 聚 富 2 号 两 全 保 险 ( 万 能 型 ) 万 能 型 趸 缴 趸 缴 6 年 龙 享 安 康 重 疾

Microsoft Word - 人民萬歲_宋玉雯.docx

untitled

(1) (2) (3) 80% 1. 49% 51%

二零一五年施政報告 - 施政綱領 - 第三章 扶貧及為弱勢社群提供支援

<4D F736F F D20BACBB0B2C8ABD3EBB7C5C9E4D0D4CEDBC8BEB7C0D6CEA1B0CAAEB6FECEE5A1B1B9E6BBAEBCB C4EAD4B6BEB0C4BFB1EA2E646F63>

<4F4BBEFAA576A470BBA15FC160AAED E786C73>

辽宁铁~1

I

海底捞你学不会

YEN/MIAO CHING MS 27FEB DEL HKG

Microsoft Word - 02文本.docx

最新监察执法全书(十一).doc

钓鱼技巧_二_.doc

动物的智慧(五)

健康知识(一)

北京(一)

i

Transcription:

2006 5

l t 1 t 2 t 3 t 4 I: add r1,r2,r3 J: sub r4,r1,r5

: (Hazard)

: (Hazard)

Instr 1 Instr 2

( ) Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Load Ifetch ALU DMem Instr 1 Ifetch ALU DMem Instr 2 Ifetch ALU DMem Instr 3 Ifetch ALU DMem Instr 4

( ) Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Load Ifetch ALU DMem Instr 1 Instr 2 Stall Ifetch Ifetch ALU DMem ALU DMem Instr 3 Ifetch ALU DMem

1: ( / ) 2: ( Harvard Architecture )

i j i j RAW j i j WAR j i i WAW j i i

Read After Write (RAW) ( ) Instr J Instr I I: add r1,r2,r3 J: sub r4,r1,r3 RAW

Write After Read (WAR) Instr J Instr I r1 I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7

Write After Write (WAW) Instr J Instr I r1 I: sub r1,r4,r3 J: add r1,r2,r3 K: mul r6,r1,r7

r k (r i ) op (r j ) r k (r i ) op (r j ) r m (r k ) op (r n ) RAW Read After Write r i (r k ) op (r j ) r k (r m ) op (r n ) WAR Write After Read r k (r i ) op (r j ) r k (r m ) op (r n ) WAW Write After Write

Range) (Domain) R(i): i D(i): i j i j i RAW R(i) D(j) Ø; WAR D(i) R(j) Ø; WAW R(i) R(j) Ø;

RAW ( ) add r1,r2,r3 sub r4,r1,r3 Ifetch Ifetch ALU DMem ALU DMem and r6,r1,r7 Ifetch ALU DMem or r8,r1,r9 Ifetch ALU DMem xor r10,r1,r11 Ifetch ALU DMem

RAW Ifetch ALU DMem

RAW Load ( ) ld r1, 4(r2) sub r4,r1,r6 and r6,r1,r7 Ifetch Ifetch ALU Ifetch DMem ALU DMem ALU DMem or r8,r1,r9 Ifetch ALU DMem

Load Load RAW ( ) ld r1, 4(r2) sub r4,r1,r6 Ifetch Ifetch ALU DMem Bubble ALU DMem and r6,r1,r7 Ifetch Bubble ALU DMem or r8,r1,r9 Bubble Ifetch ALU DMem

WAR WAW WAW WAR WAW I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 I: sub r1,r4,r3 J: add r1,r2,r3 K: mul r6,r1,r7

1 2 3 4 5 6 7 8 I: Fadd r1, r4, r3 J: mul r6, r1, r7 I J J I

IF ID Issue I: Fmul r1,r4,r3 GPR s J: add r1,r2,r3 FPR s K: mul r6,r1,r7 ALU Fadd Fmul WB I: Fdiv r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 Fdiv 1 clock 3 clocks

WAR WAW WAR WAW In-order- Issue Out-of-order Complete

DIVD F0, F2, F4 ADDD F10, F0, F8 SUBD F12, F8, F10 Out of Order > DIVD F0, F2, F4 ADDD F10, F0, F8 SUBD F0, F8, F14 MULD F6,F10, F0 WAR WAW DIVD F0, F2, F4 ADDD F10, F0, F8 SUBD F100, F8, F14 MULD F6,F10, F100

(Scoreboard) CDC 6600

CDC6600 (Commit) ( )

CDC6600 WAR WAW WAR WAW

(Issue) (Read operands) (Execution) (Write Result)

CDC6600 FORTRAN 1.7 2.5 6600 ( load/store )

Tomasulo 1. IBM 360/91 (1967 ) 2. 1967 IBM Robert Tomasulo ------- Rrgister Renaming) ISA Instruction Set Architecture) ISA

3. : 4. Tomasulo 90 Alpha 21264 HP 8000 MIPS 10000 Pentium II PowerPC 604

FP Add1 Add2 Add3 Mult1 Mult2 FP FP Common Data Bus (CDB)

Tomasulo & FU Reservation Station WAR WAW RS FU (Common Data Bus) FU

Op: (+ ) Vj, Vk: Qj, Qk: Qj,Qk=0 Busy: FU FU

FP ( ) & ( ) (EX) CDB (WB) CDB : + ( ) 64 + 4 ( )

Tomsulo

I 1 LD f2, 34(r2) 1 I 2 LD f4, 45(r3) I 3 MULTD f6, f4, f2 3 I 4 SUBD f8, f5, f2 1 I 5 DIVD f4, f2, f8 4 I 6 ADDD f10, f6, f4 1 1 (2,1)...... 2 3 4 4 3 5... 5 6 6 1 2 4 3 5 6

4 3 3 2 4 Outof-order Issue Out-of-order Execution RAW,WAR,WAW

I 1 LD f2, 34(r2) 1 I 2 LD f4, 45(r3) I 3 MULTD f6, f4, f2 3 I 4 SUBD f8, f5, f2 1 I 5 DIVD f4, f2, f8 4 I 6 ADDD f10, f6, f4 1 1 2 4 3 1 (2,1)...... 2 3 4 4 3 5... 5 6 6 1 (2,1) 4 4.... 2 3.. 3 5... 5 6 6 5 6

I 1 LD f2, 34(r2) 1 I 2 LD f4, 45(r3) I 3 MULTD f6, f4, f2 3 I 4 SUBD f8, f5, f2 1 I 5 DIVD f4, f2, f8 4 I 6 ADDD f10, f6, f4 1 1 (2,1)...... 2 3 4 4 3 5... 5 6 6 1 (2,1) 4 4 5... 2 3 5. 3 6 6 1 2 4 3 5 6

Tomasulo <=14 <=5 WAR WAW

( ) ---- ----

17 / Taken Not Taken

ILP

for(i=0; i<4k; i++) A[i]=B[i]+C[i]; for(i=0; i<4k; i+=4){ A[i]=B[i]+C[i]; A[i+1]=B[i+1]+C[i+1]; A[i+2]=B[i+2]+C[i+2]; A[i+3]=B[i+3]+C[i+3]; };

SUB R4, R5, R6 ADD R1, R2, R3 if R1=0 then ADD R1, R2, R3 if R1=0 then SUB R4, R5, R6

> 95% BHT Branch History Table) BTB(Branch Target Buffer)

85% J Z 60% J Z 60~70%

if (x[i] < 7) y+=1; if (x[i] < 5) c-=4;

---- ( ) ( ) ( ) ---- ---- ( )

i+1 i+2 i-1 i p+1 p+2

1 0

0 2 n -1 1 1 2 n -1 0 2 n-1

N 2 11 10 01 00

Fatch PC 0 0 I-Cache Instructions Opcode Offset k BHT Index 2 k -Entry BHT, 2bits/Entry Branch? + Target PC Taken / Taken

(1) 2 n (2) 4096 ( 12 ) (3) 2 4096 82 99 1 18

IF ( BTB ) ( PC ) ( ) PC ( )

PC PC Y N PC

PC BTB No Yes BTB No Yes PC PC No Yes PC PC BTB BTB

Fatch PC I - Cache PC Entry Valid PC Entry k BTB Index = Match Valid Target