嵌入式微处理器系统 第二章 处理器技术(1) 2008.10 北京大学软件与微电子学院.

Slides:



Advertisements
Similar presentations
翻譯技巧解說 例文 授課教師:何資宜. 一、加譯 「おしん」の視 聴率は、最高の時が 62.9 %に達した。ク ロジロが出てくる 「南極物語」は、配 給収入が 52 億円を超 えて、記録を更新し た。 《阿信》的收視率最 高時曾達 62.9% 。此 外,以兩隻小狗太郎 次郎為主角的《南極 物語》,票房收入也.
Advertisements

计算机组成原理 第三讲 计算机科学与技术学院 舒燕君.
教员信息 姓 名:仲崇权 单 位:电子与信息工程学院 电 话: 办公室:创新院大厦720房间 :
Welcome to the world of Computer Organization 计算机组成原理
程序的执行 程序执行和指令执行概述 数据通路基本结构和工作原理 流水线方式下指令的执行
第 2 章 中央處理單元.
多核结构与程序设计 杨全胜 东南大学成贤学院计算机系.
并行计算机体系结构 东南大学计算机学院 任国林
计算机系统结构 主讲:任国林
第五章 中央处理器 5.1 CPU的组成和功能 5.2 指令周期 5.3 时序产生器和控制方式 5.4 微程序控制器 5.5 微程序设计技术
第7章 存储系统.
NEUSOFT Institute of information Technology .ChengDu
第二章 微型计算机系统 第一节 基本术语和基本概念 第二节 计算机系统的基本构成 第三节 微机系统的硬件组成 第四节 微机系统的软件组成.
微型计算机技术及应用 王 健 主讲 授课学时:40学时 大连理工大学计算机系.
第8章 单片机系统的抗干扰技术 本章学习目标: 熟悉单片机系统的各种干扰来源及形式 学会供电系统及过程通道的抗干扰措施
建構 Beta電腦 – Fall /29/0.
公會組織糾紛 指導老師:柯伶玫 組員 495B0065 劉致維 495B0072 廖怡塵 495B0097 范家皓.
盘中顶底早知道 金牌讲师:高俊 ID:
计算机系统结构作业题解 第1章 作1.2 如有一个经解释实现的计算机,可以按功能划分成4级。每一级为了执行一条指令需要下一级的N条指令解释。若执行第一级的一条指令需K(ns)时间,那么执行第2、3、4级的一条指令各需要用多少时间(ns)? 解:∵第二级的一条指令需第1级的N条指令解释 ∴第二级的一条指令执行时间为NKns;
计算机组成原理 北京理工大学计算机科学工程系 赵清杰 北京理工大学计算机科学工程系.
第3章 流水线技术.
信息科学与工程学院计算机科学系 2006年9月—2007年1月
辦理實習工場安全衛生業務經驗分享 新竹高工實習輔導主任  黃俊燁.
第11章 计算机系统 计算机系统概述 分类方法、计算机系统性能评测方法 2. 微机系统 3. 他体系结构处理机
计算机组成原理 东南大学计算机学院 任国林
最新計算機概論 第3章 計算機組織.
新世代計算機概論 第3章 電腦的系統單元.
如何查財產(2/6) EX:利息明細提醒您於金融機構有存款;營利(股利)明細提醒您有買股票。
你不得不知的几件事 2、图书《10天行测通关特训》 3、网络课程 《网校9元课程系列》《考前强化夜校班》 4、地面课程 《10天10晚名师密授营》《考前预测集训营》
钳加工技术 广西玉林高级技工学校|数控教研组.
第二章 指令系统.
運用網路資源趣味化 「每日飲食指南份量」教學
第五章 统计指数 本章教学目的:指数分析是实际经济工作中广泛应用的一种统计分析方法,通过对本章的学习,要求学生:①了解统计指数的基本概念和原理,几种常用的经济指数;②掌握总指数两种形式的编制原则和方法;③学会利用指数体系进行指数因素的分析。 本章教学重点:数量指标指数和质量指标指数的编制和因素分析。
大连理工大学软件学院 软件工程系 赖晓晨 计算机组成与结构 大连理工大学软件学院 软件工程系 赖晓晨
王晓峰 合肥学院计算机科学与技术系 合肥 计算机科学与技术 导 论 王晓峰 合肥学院计算机科学与技术系 合肥
能量買賣訊號 ◎波段賣訊:下列四項出現三項以上(含三項) 1、空方能量升至整波上漲之最高水準,且空方能量>多方 能量30%以上。
第 2 章 中央處理單元.
教育人員退休新法說明會 106年12月14日 ★資料來源:參考銓敘部及高雄市教育局人事室簡報檔.
第2章 Intel IA-32/Intel 64处理器 结构与原理
第一章 嵌入式系统开发基础 本章介绍了嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基本内容,使读者系统地建立起的嵌入式系统整体概念。
國文(一) 1.第一單元---青春印記 (學習篇、愛情篇) 2.第二單元---生活美學 3.第三單元---優遊家園.
第5章 中央處理單元與主記憶體 5-1 中央處理單元-CPU 5-2 主記憶體.
微处理器设计1 刘鹏 College of ISEE Zhejiang University
CPU資料處理 醫務管理暨醫療資訊學系 陳以德 副教授: 濟世CS 轉
第4章 处理器(CPU) 4.1 引言 4.2 逻辑设计的一般方法 4.3 建立数据通路 4.4 一个简单的实现机制 4.5 多周期实现机制.
计算机系统结构 第一章 基本概念 第二章 指令系统 第三章 存储系统 第四章 输入输出系统** 第五章 标量处理机 第六章 向量处理机
指令集架構 計算機也跟人類一樣,需要提供一套完整的語言讓人們跟它充分溝通,以完成正確的計算工作。
第2章 16位和32位微处理器 位微处理器8086/ 位微处理器80386
第2章 计算机指令集结构 曲冠南
第三章 流水线技术.
嵌入式系統概論-以S3C2440核心為架構 第1章 嵌入式系統概念.
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
计算机原理及系统结构 第十八讲 主讲教师:赵宏伟                 学时:64.
第2章 ARM微处理器硬件结构 计算机体系结构分类 ARM版本及系列 ARM处理器结构 存储系统机制.
第三节 尺寸注法 一、基本规则 (1)尺寸数值为零件的真实大小,与绘图比 例及绘图的准确度无关。 (2)以毫米为单位,如采用其它单位时,则
第3章 流水线技术 曲冠南
第六次全国人口普查 近期数据处理工作部署 夏雨春 2010年12月28日.
CISC vs. RISC 複雜指令集電腦(Complex Instruction Set Computer: CISC)
认识计算机系统.
第2章ARM/THUMB微处理器结构及指令系统
第3章 ARM微處理器的指令集.
ARM指令集 Author : Steve Furber Advisor: Mei-Ling Chiang Speaker: 徐翔宇
寶 貝 班 教 學 分 享 (103下) 為了搭配主題,所以除了平日在校園中探索外,我們每周也會帶孩子出去一次,進行社區巡禮,讓孩子探索不同的人事物,欣賞不同的美,每次出門孩子總有新的發現,所以我們從孩子的發現為出發點,來延續課程內容,像是觀察植物的顏色及形狀;認識各種水果…等,除此之外,我們也針對孩子喜愛的車子進行討論,從中除了帶入形狀、顏色外,也能認識各種行業的人喔!
開放電腦計劃 報告人:陳鍾誠 2011 年 8 月 20 日 台灣開源人年會 COSCUP 2011 – 中研院
作业3、4、6、7 俞天灿.
第4章 指令级并行 授课教师:车喜龙
勞工保險年金制度 簡報人:吳宏翔.
清华大学计算机科学与技术系高性能计算研究所 郑纬民 教授 2005年5月
法律的解釋 楊智傑.
第5章 中 央 处 理 器 5.1 CPU的功能和组成 5.2 指令周期 5.3 时序产生器和控制方式 5.4 微程序控制器
Presentation transcript:

嵌入式微处理器系统 第二章 处理器技术(1) 2008.10 北京大学软件与微电子学院

相关技术 本章参考书: 《计算机系统结构》郑纬民等译,电子工业出版社,2004. 7 《高性能微处理器:技术与结构》张民选,王永文,国防科技大学出版社,2004. 3 北京大学软件与微电子学院 2008.10

技术与结构 除了处理器主频外,还有哪些处理器特征 影响程序执行的速度? 北京大学软件与微电子学院 2008.10

相关技术 指令集 流水线技术 小结 北京大学软件与微电子学院 2008.10

指令集(1) 指令? 汇编语句=指令? 北京大学软件与微电子学院 2008.10

指令集(2) 指令形式 机器语言 由CPU理解和执行的二进制代码 机器指令的格式(助记符) 北京大学软件与微电子学院 2008.10

指令集(3) 指令集 所有在处理器上可以执行的指令 在处理器上运行的程序由指令组成 面向程序员以及编译器开发者 因处理器的而异 北京大学软件与微电子学院 2008.10

指令集(4) 指令集结构 按CPU内部存储类型 使用堆栈 使用累加器 使用寄存器 隐含的操作数在堆栈的栈顶 一个隐含的操作数是累加器 (C51,X86) 使用寄存器 必须明确操作数(寄存器或内存地址) 北京大学软件与微电子学院 2008.10

指令集(5) 指令集结构 按CPU内部存储类型 使用寄存器 寄存器-寄存器:ALU指令通常有三个操作数 (ARM, MIPS) 寄存器-存储器(register-memory):ALU指令通常有两个操作数,一个为寄存器,另一个为存储器。任何一条指令都可以访问内存(X86, 68000, C54X) 存储器-存储器:ALU指令通常有三个操作数,且都是存储器操作。 载入-存储(load/store)常用于哪种指令结构? 北京大学软件与微电子学院 2008.10

指令集(6) 指令集系统结构(续) 例:c=a+b 不同指令类型的实现 堆栈 Push a Push b Add Pop c a,b,c 三个变量存放在哪儿? 北京大学软件与微电子学院 2008.10

指令集(7) 指令集系统结构(续) 累加器 Load a add b store c 北京大学软件与微电子学院 2008.10

指令集(8) 指令集系统结构(续) Register-Memory Load R1, a add R3, R1, b store R3, c 北京大学软件与微电子学院 2008.10

指令集(9) 指令集系统结构(续) Register-Register Load R1, a Load R2, b add R3, R1, R2 store R3, c 北京大学软件与微电子学院 2008.10

指令集(10) 指令集系统结构(续) 优点 缺点 R-R 简单、定长指令编码 指令运行时间相近 指令多、密度低使程序变大 R-M Register-Register vs Register-Memory 优点 缺点 R-R 简单、定长指令编码 指令运行时间相近 指令多、密度低使程序变大 R-M 指令格式易于编码,代码密度高 操作数不等价,指令执行时间不同 北京大学软件与微电子学院 2008.10

指令集(11) 寻址技术 定义 寻找数据地址的技术 编址单元宽度 字节(8bit,0x86) 半字 (C54) 字 (C30) 双字 北京大学软件与微电子学院 2008.10

指令集(12) 寻址方式(续) 地址空间(独立编址) 隐含编址方式 三个地址空间 两个地址空间 一个地址空间 通用寄存器 主存储器 I/O设备 两个地址空间 通用存储器 主存储器与IO设备 一个地址空间 所有存储设备统一编址 隐含编址方式 如果有多个地址空间,在指令中如何体现? 北京大学软件与微电子学院 2008.10

指令集(13) 寻址技术(续) 寻址方式 定义:获取访问对象地址的方法 立即数寻址 直接在指令的地址码部分给出操作数 用于程序中的常数 优点:不需要数据存储单元,执行速度快 缺点:只能作为源操作数,数据长度有限 例: ADD R4,#5 ; reg(R4)〈- reg(R4)+5 北京大学软件与微电子学院 2008.10

指令集(14) 寻址技术(续) 寻址方式(续) 寄存器寻址 操作数来源于寄存器,结果也保存在寄存器中 指令格式 一地址:OPC R 二地址:OPC R,R OPC R,M 三地址:OPC R,R,R 例: ADD R4,R3 ; reg(R4)〈- reg(R4)+reg(R3) 北京大学软件与微电子学院 2008.10

指令集(15) 寻址技术(续) 寻址方式(续) 直接寻址(绝对) 直接给出参加运算的操作数及运算结果所存放的地址 指令格式 一地址:OPC M 二地址:OPC M,M 三地址:OPC M,M,M 例: ADD R1,(1001) ; reg(R1)〈- reg(R1)+ Mem(1001) 北京大学软件与微电子学院 2008.10

指令集(16) 寻址技术(续) 寻址方式(续) 间接寻址 出参加运算的操作数地址的地址 寄存器间接寻址 ADD R4,(R1);reg(R4)〈- reg(R4)+ Mem(reg(R1)); 存储器间接寻址 ADD R1,@(R2); reg(R1)〈- reg(R1)+ Mem[Mem[reg(R2)]] 北京大学软件与微电子学院 2008.10

指令集(17) 寻址技术(续) 寻址方式(续) 自动递增寻址 自动递减寻址 执行指令后,地址寄存器中的值自动增加 例: ADD R1,(R2)+ 自动递减寻址 执行指令后,抵制寄存器中的值自动减少 ADD R1,-(R2) 北京大学软件与微电子学院 2008.10

指令集(18) 寻址技术(续) 寻址方式(续) 堆栈寻址 隐含操作数的地址 一般格式 OPC OPC M 例: PUSH R1 POP R1 北京大学软件与微电子学院 2008.10

指令集(19) 寻址技术(续) 寻址方式(续) 偏移量寻址 带偏移量的间接寻址 例: ADD R4,100(R1) ; reg(R4)〈- reg(R4)+ Mem(100+reg(R1)) 北京大学软件与微电子学院 2008.10

指令集(20) 寻址技术(续) 寻址方式(续) 索引寻址 缩放寻址 这两种寻址方式有什么特别用途? reg(R4)〈- reg(R4)+ Mem(reg(R2)+reg(R1)) 缩放寻址 reg[R1]<-reg[R1]+Mem[100+reg[R2]+reg[r3]*d] 这两种寻址方式有什么特别用途? 北京大学软件与微电子学院 2008.10

指令集(21) 寻址技术(续) 寻址方式(续) 最常用的寻址方式 三种寻址方式的使用率之和占 75%以上 偏移量寻址 立即数寻址 寄存器间接寻址 三种寻址方式的使用率之和占 75%以上 北京大学软件与微电子学院 2008.10

指令集(22) 如设计指令集? 根据指令行为权衡指令设计 指令使用频率 数据类型的访问频率 寻址方式的分析 立即数的范围 偏移量的统计 北京大学软件与微电子学院 2008.10

指令集(23) 如设计指令集? 指令兼容 二进制兼容技术 软件解释器 用程序每次读入旧体系结构的一条指令,在软件维护的就体系结构上依次执行每个操作. (Dos 虚拟机) 微代码仿真器 在软件解释基础上,在一些硬件辅助下快速译码旧指令。 (VAX中的 PDP-11兼容模式) 北京大学软件与微电子学院 2008.10

指令集(24) 如设计指令集? 指令兼容 多媒体指令扩展 二进制兼容技术 例 二进制编译 把旧体系的程序行为用新体系结构指令序列再现 (转换程序,难度在哪里? ) 多媒体指令扩展 例 MAX -Multimedia Acceleration eXtension (PA-RISC, HP) VIS-Visual Instruction Set (UltraSPARC, SUN) MMX-MultiMedia eXtension (Pentium, Intel) 北京大学软件与微电子学院 2008.10

指令集(25) 如设计指令集? 多媒体指令扩展 子字算术指令 数据重整指令 格式化指令 条件指令 存储指令 复杂指令 北京大学软件与微电子学院 2008.10

指令集(26) 指令格式的设计 指令组成 操作码 操作数 操作种类 操作数的数据类型 地址 地址附加信息 寻址方式 北京大学软件与微电子学院 2008.10

指令集(27) 指令格式的设计 操作码表示方法 固定长度 Huffman编码 扩展编码 规整 硬件译码简单 多数RISC采用 不同的操作码长度不同 使用频率高的码长小 空间利用率高 扩展编码 部分固定长度,部分Huffman编码 北京大学软件与微电子学院 2008.10

指令集(28) 指令格式的设计 操作码类型 运算 数据传送 移位 转移 I/O 北京大学软件与微电子学院 2008.10

指令集(29) 指令集的功能设计 功能的基本要求 完整性 包括所有的操作类型和方式 规整性 对称性:各种与指令系统有关的数据存储设备的使用、操作码的设置都要对称。 例:C30中R0-R7功能完全一致 A-B和 B-A 均匀性:对于不同的数据类型、字长、操作种类和数据存储设备,指令的设置要同等对待 例:有5种数据表示,4种字长,8种存储设备的两地址加法指令数有 5 X 4 X 8=160种 北京大学软件与微电子学院 2008.10

指令集(30) 指令集的功能设计(续) 功能的基本要求(续) 高效率 兼容性 指令执行速度快,使用频度高(RISC) 新的指令集对旧指令的兼容 指令集兼容实现执行程序(目标码)在不同平台上运行 例: X86系列处理器 TC55与C54 北京大学软件与微电子学院 2008.10

指令集(31) 指令集的功能设计(续) 指令类型 数据传送指令考虑的因素 存储设别种类 寄存器 主存 I/O 数据传送单位 字 字节 数据块 寻址方式 北京大学软件与微电子学院 2008.10

指令集(32) 指令集的功能设计(续) 指令类型 常用数据传送指令种类 Register -〉Register Register -〉Memory Register -〉Stack Memory -〉Register Memory -〉Memory Memory -〉Stack Stack -〉Memory 北京大学软件与微电子学院 2008.10

指令集(33) 指令集的功能设计(续) 指令类型 运算指令考虑的因素 操作种类 算术 逻辑 移位 数据表示 定点 浮点 数据长度 数据存储设备 北京大学软件与微电子学院 2008.10

指令集(34) 指令集的功能设计(续) 指令类型 常用运算指令种类 R-R,w,fixed (float) R-R,D,fixed (float) R-R,H,fixed R-R,B,fixed R-M,w,fixed (float) R-M,D,fixed (float) R-M,H,fixed R-M,B,fixed 北京大学软件与微电子学院 2008.10

指令集(35) 指令集的功能设计(续) 指令类型 移位指令的三个因素 移位方向 Left Right 移位种类 算术(A) 逻辑(L) 移位长度 单字(W) 双字(D) 北京大学软件与微电子学院 2008.10

指令集(36) 指令集的功能设计(续) 指令类型 常用移位种类 例 RL A (MSC51) LSR Rd,Rs (Thumb) SLAW(D) SRAW(D) SLLW(D) SLRW(D) SRRW(D) 例 RL A (MSC51) LSR Rd,Rs (Thumb) 北京大学软件与微电子学院 2008.10

指令集(37) 指令集的功能设计(续) 指令类型 程序控制指令 类型 转移指令(无条件、有条件) 例:JMP (MSC51),B(ARM) 程序调用和返回 例:CALL,RET, RETI (C30) 循环控制 例:RPTB 转移条件(状态寄存器中的位) Z N C V 北京大学软件与微电子学院 2008.10

指令集(38) 指令集的功能设计(续) 指令类型 I/O 内存访问 专用指令 例:Portw add portr add (C54) 北京大学软件与微电子学院 2008.10

指令集(39) RISC 历史 RISC I, David A Patterson, 1981 (Berkeley) MIPS, Hennessy, 1981 (Stanford) MIPS2000, Moussouris, 1986 SPARC, Sun Microsystem,1987 HP Precision, HP, 1989 RS 6000, IBM, 1990 ARM, ARM Limited, 1990 北京大学软件与微电子学院 2008.10

指令集(40) RISC 特点 大多数指令在单周期内完成 采用LOAD/STORE结构 硬布线控制逻辑 减少指令和寻址方式 固定的指令格式 面向寄存器结构 采用流水线技术 重视优化技术 北京大学软件与微电子学院 2008.10

指令集(41) RISC 类型 指令数(I) 指令平均期数(CPI) 周期时间(T) CISC 1 2-15 33-5ns RISC 1.3-1.4 1.1-1.4 10-1ns 北京大学软件与微电子学院 2008.10

指令集(42) 指令技术发展 CISC -> RISC -> (?) ISC ? Instruction accelerating for special application? Reconfigurable Instruction Set ? 自定义指令集? 北京大学软件与微电子学院 2008.10

指令集(43) 小结 指令格式 指令系统结构 寻址技术 指令设计 RISC指令 指令技术发展方向 北京大学软件与微电子学院 2008.10

指令集(44) 问题(作业) 假设a,b,c,d,e都是内存中的值,操作码的长度为8位,内存地址32位,寄存器地址6位。 针对三种不同存储类型的指令集,为了计算c=a+b,每条指令长度是多少,总代码长度是多少? 某些指令在计算过程中会修改操作数的值,针对三种指令结构中的情况,写出计算c=a+b, d=a-e的代码序列。标出运算过程中每个被改写的操作数。总代码大小是多少,从内存中读出和存入的指令和数据的总字节数是多少? 北京大学软件与微电子学院 2008.10

相关技术 指令集 流水线技术 小结 北京大学软件与微电子学院 2008.10

相关技术 什么是流水线? 为什么要用流水线? 实现流水线需要硬件资源吗? 北京大学软件与微电子学院 2008.10

流水线技术(1) 多条指令执行方式 顺序 形式(第k和k+1条指令) 执行时间(n条指令) 北京大学软件与微电子学院 2008.10

流水线技术(2) 多条指令执行方式 重叠 形式 北京大学软件与微电子学院 2008.10

流水线技术(3) 多条指令执行方式 重叠(续) 执行时间 北京大学软件与微电子学院 2008.10

流水线技术(4) 流水线 流水 把一个重复时序过程分成若干个子过程,每个子过程都可有效的在其专用功能段上和其它子过程同时执行的一种技术。 基本组成 锁存器、时钟、功能站 指令的流水线处理(连接图) IF ID EX MEM WB 输入 取指 译码 执行 访存 写回 输出 S1 S2 S3 S4 S5 北京大学软件与微电子学院 2008.10

流水线技术(5) 流水线 结构 S1 S2 Sk 输入 输出 ….. .…. 时钟 北京大学软件与微电子学院 2008.10

流水线技术(6) 流水线 时空图 填入 正常 排空 4 ... 1 2 3 4 5 n-1 n 3 2 1 T 空间 时间 填入 正常 排空 4 ... 1 2 3 4 5 n-1 n 3 2 1 △t0 △ t0 △ t0 △ t0 (n-1) △ t0 时间 T0=m △ t0 n △ t0 T (m-1) △ t0 北京大学软件与微电子学院 2008.10

流水线技术(7) 流水线 特点 一条流水线通常有多个流水段组成。 每段有专用功能部件,各部件顺序连接,不断流。 流水线有建立时间、满载时间、排空时间, 各段时间尽量短、一致;不一致时最慢子过程为瓶颈。 北京大学软件与微电子学院 2008.10

流水线技术(8) Xscale 超级流水线 北京大学软件与微电子学院 2008.10

流水线技术(8) 性能分析 吞吐率(though put rate) 定义 单位时间内能处理的指令条数或能输出的数据量。 计算 TP= n/Tk n:任务书 Tk:完成n个任务所用的总时间 北京大学软件与微电子学院 2008.10

流水线技术(9) 性能分析 吞吐率(续) 如果流水线中每一步所需时间相等为⊿t,则k级流水线的吞吐率为: TP=n/((k + n-1) ⊿t) 如果流水线中各部时间不等(不等时流水线),如何计算TP? 北京大学软件与微电子学院 2008.10

流水线技术(10) 性能分析 吞吐率(续) 不等时流水线 北京大学软件与微电子学院 2008.10

流水线技术(11) 性能分析 吞吐率(续) “瓶颈” 流水线中时间较长的段 解决“瓶颈”的办法 “瓶颈”段细分 重复设置“瓶颈”段 北京大学软件与微电子学院 2008.10

流水线技术(12) 性能分析 重复设置时空图 北京大学软件与微电子学院 2008.10

流水线技术(13) 性能分析 加速比 定义 m段流水线的速度与等效的非流水线的速度之比 计算 各段等时 各段不等时 北京大学软件与微电子学院 2008.10

流水线技术(14) 性能分析 效率 n个任务实际占用的时-空区 η= k各段总的时-空区 定义 北京大学软件与微电子学院 2008.10

流水线技术(15) 性能分析 效率(续) 表达式  = 北京大学软件与微电子学院 2008.10

流水线技术(16) 性能分析-例 问题 四段流水线, △t1=△t3=△t4=△t, △t2=3△t,4个任务、10个任务时TP,η、SP 时空图法 时间 1 2 3 4 3△t 空间 北京大学软件与微电子学院 2008.10

流水线技术(17) 性能分析-例 结果 比较: Tp(1/△t) η sp N=4 0.267 40% 1.6 N=10 0.303 45% 1.8 N=100 0.33 49% 1.98 通过比较可以得出什么结论,并解释。 北京大学软件与微电子学院 2008.10

流水线技术(18) 相关性分析 相关 相关种类 相近指令出现某种关联使不能同时执行。 通常导致流水线等待或被坏。 资源相关 数据相关 控制相关 北京大学软件与微电子学院 2008.10

流水线技术(19) 相关性分析 资源相关 有多条指令进入流水线后在同一机器周期内争用同一功能部件所发生的冲突。 例: X3=X1+X2 北京大学软件与微电子学院 2008.10

流水线技术(20) 相关性分析 例:两条指令同时访问存储器 北京大学软件与微电子学院 2008.10

流水线技术(21) 相关性分析 数据相关 有i 和j两条指令,i指令在前,j指令在后,则三种不同类型的数据相关的含义为: RAW读写(先写后读) i: R1+R2->R3 j: R3*R4->R5 WAR写读(先读后写) i: R3*R4->R5 j: R1+R2->R3 WAW写写(先写后写) i: R1*R2->R3 j: R4+R5->R3 北京大学软件与微电子学院 2008.10

流水线技术(22) 相关性分析 控制相关 因程序的执行方向可能改变而引起的相关。 例: k: …… ; 置条件码CC k+1: JMP(CC) L ;如果CC为真专向L k+2:…… …… L:…… 北京大学软件与微电子学院 2008.10

流水线技术(23) 相关性分析 PC值 指令 流水各段 n : load A IF ID EX WR n+1: load B IF ID EX WR n+2: add A,B IF ID 气泡 EX WR n+3: store C IF ID 气泡 EX WR n+4 : jump K IF ID EX WR n+5: load E 停顿 停顿 停顿。。 n+6 ……… 停顿 。。。 K: IF ID EX 北京大学软件与微电子学院 2008.10

流水线技术(24) 指令调度 程序的表达顺序 vs 程序的执行顺序? 调度:为了使指令执行的效率达到最优,最指令执行的顺序进行调整 调度种类 局部调度:基本块内 全局调度:跨越基本块 调度方式 静态调度:先将源程序编译生成中间代码,进行调度,然后再执行 动态调度:在执行过程中进行调度 北京大学软件与微电子学院 2008.10

流水线技术(25) 指令调度 调度所需的程序信息 基本块划分 不包含分支或分支目标指令的一段代码。 A; B; Do{D; E; if(F) {G; H;} else{I;} J; K; L;} while (C ) D; E; Brn F G; H; I; J; K; L; Brn C 北京大学软件与微电子学院 2008.10

流水线技术(26) 指令调度 调度所需的程序信息 数据流图-基本块内数据的产生和使用情况 下列程序的数据流图? r=a+b-c; s=2*c; t=b-d; e=r+t-s; 优先图-指令执行优先权的限制 上述指令的优先限制? 北京大学软件与微电子学院 2008.10

流水线技术(27) 指令调度 调度所需的程序信息 关键路径 这个路径的执行时间决定了整个序列的最小执行时间 资源保留表 记录资源的使用情况,并利用资源保留表检测资源冲突。 北京大学软件与微电子学院 2008.10

流水线技术(28) 指令调度 调度方法? 北京大学软件与微电子学院 2008.10

流水线技术(28) 指令调度 消除相关(数据) 消除存储器地址歧义 歧义-有两次访问指向同一地址,且至少一个是存储操作 软件寄存器重命名 R1=R1+R2; R3=R1+R4; R1=R4; R1=R1+R2; R3=R1+R4; R5=R4; 北京大学软件与微电子学院 2008.10

流水线技术(29) 指令调度 消除相关(数据) 规约变量扩展 i=0 While (i<100) { A[i]+=10; i++; } 北京大学软件与微电子学院 2008.10

流水线技术(30) 消除控制相关的方法 软件“猜测法” 预先估计每一个分支跳转的概率,并据此确定成功和不成功分支。 硬件“猜测法” 用硬件指令分析器检测到转移指令时,按猜测的方向预取指令。 两个缓冲栈 将转移成功方向指令预取到目标缓冲栈中,原先的指令缓冲栈仍然按照转移不成功的方向继续预取。 北京大学软件与微电子学院 2008.10

流水线技术(31) 问题 编程过程中如何减少相关,充分利用流水线技术,提高程序效率? 北京大学软件与微电子学院 2008.10

流水线技术(32) 超标量计算机 配置多个功能部件 原理 多个译码器,寄存器 端口,总线,能同时 执行多个操作。 每拍启动3条指令 取指 译码 执行 写回 1 2 3 4 5 6 T 每拍启动3条指令 要求并行度=3 北京大学软件与微电子学院 2008.10

流水线技术(33) 超级流水线 原理 超流水结构是把 每一个流水级 (一个周期) 分成多个子流水 级,而在每一个 子流水级中取出 的仍只有一条 指令 每1/2拍启动一条指令,要求并行度=2 1 2 3 4 5 6 北京大学软件与微电子学院 2008.10

流水线技术(34) 超级流水线超标量计算机 ID WR IF EX ID WR IF EX 指令 I3 I2 I1 1 2 3 4 5 6 时钟周期 IF ID EX WR 北京大学软件与微电子学院 2008.10

相关技术 指令集 流水线技术 小结 北京大学软件与微电子学院 2008.10

小结 指令? 指令集? 指令类型? 指令集对程序执行效率的影响 流水线技术? 相关? 消除相关? 北京大学软件与微电子学院 2008.10

思考题(下节课讨论) 2. 什么是自定义指令集?与传统的固定指令集处理器相比,他有哪些优缺点。 1. 查找下列概念,并列取出采用该技术的一款处理器 VLIW SIMD Tomsulo 算法 2. 什么是自定义指令集?与传统的固定指令集处理器相比,他有哪些优缺点。 北京大学软件与微电子学院 2008.10