资源描述
第一章计算机体系结构基础概念
1.八十年代后,有两种技术使得体系结构技术对计算机性能发展影响越来越大:
1)RISC技术--- 使得体系结构发展空间一下子被打开;
2)微处理器技术---使得设计新型体系结构风险、成本、耗时全部大为降低。
2.从计算机语言角度,把计算机系统按功效划分成多级层次结构。
微程序机器级, 机器语言, 操作系统虚拟机, 汇编语言虚拟机,高级语言虚拟机,应用语言虚拟机
3.语言实现两种基础技术
翻译:先把N+1级程序全部变换成N级程序后,再去实施新产生N级程序,在实施过程中N+1级程序不再被访问。
解释:每当一条N+1级指令被译码后,就直接去实施一串等效N级指令,然后再去取下一条N+1级指令,依此反复进行。解释实施比翻译花时间多,但存放空间占用较少。
4.计算机体系结构定义:程序员所看到计算机属性,即概念性结构和功效特征。
5透明性:在计算机技术中,对这种原来是存在事物或属性但从某种角度看又好象不存在。
6。对于通用寄存器型机器,这些属性关键是指:
(1) 数据表示(硬件能直接辩认和处理数据类型)
(2) 寻址规则(包含最小寻址单元、寻址方法及其表示)
(3) 寄存器定义(包含多种寄存器定义、数量和使用方法)
(4) 指令集(包含机器指令操作类型和格式、指令间排序和控制机构等)
(5) 中止系统(中止类型和中止响应硬件功效等)
(6) 机器工作状态定义和切换(如管态和目态等)
(7) 存放系统(主存容量、程序员可用最大存放容量等)
(8) 信息保护(包含信息保护方法和硬件对信息保护支持)
(9) I/O结构(包含I/O连接方法、处理机/存放器和I/O设备间数据传送方法和格式和I/O操作状态等)
7.经典计算机体系结构概念实质:计算机系统中软硬件界面确实定,其界面之上是软件 功效,界面之下是硬件和固件功效
8.计算机组成:计算机体系结构逻辑实现。计算机组成包含内容能够有:处理机、主存
等部件逻辑结构,机器级内数据流和控制流组成、各部件功效和之间联络等。
计算机实现:计算机组成物理实现。计算机实现包含内容能够有:
处理机、主存等部件物理结构,包含器件集成度和速度确实定,器件、模块、插件、底板划分和连接,组装装配技术及信号连接、电源、冷却方法等。
一个体系结构能够有多个组成。一个组成能够有多个物理实现。
9.系列机:在一个厂家内生产含有相同体系结构,但含有不一样组成和实现一系列不一样型号机器。
10.软件兼容:同一个软件能够不加修改地运行于体系结构相同各档机器,而且它们所取得结果一样,差异只在于有不一样运行时间。
向上(下)兼容:按某档机器编制程序,不加修改就能运行于比它高(低)档机器。
向前(后)兼容:按某个时期投入市场某种型号机器编制程序,不加修改地就能运行于在它之前(后)投入市场机器。向后兼容是软件兼容根本特征,也是系列机根本特征
兼容机不一样厂家生产含有相同体系结构计算机。
11存放程序计算机关键特点
(1) 机器以运算器为中心;
(2) 采取存放程序原理;
(3)存放器是按地址访问线性编址空间;
(4) 控制流由指令流产生;
(5) 指令由操作码和地址码组成;
(6)数据以二进制编码表示采取二进制运算。
11.保护存放器空间是否把指令和数据放在同一存放器中?
优点 :(1)无须预先区分指令和数据,易实现存放管理软件;
(2)程序和指令在实施过程中能够被修改,所以能够编写出灵活可修改程序;(3)对于存取指令和数据仅需一套读/写和寻址电路,硬件简单;
(4)数据能够分配于任何可用空间,从而可更有效地利用存放空间等。
缺点:(1)不利于进行程序调试诊疗;
(2)不利于实现程序可再入性和程序递归调用(3不利于重合和流水方法操作。
12.计算机能够依据价格分为五个档次:
巨型机、大型机、中型机、小型机、微型机
13.依据目前计算机应用市场现实状况和价格特征,通常把计算机分为:服务器、桌面系统和嵌入式计算三大领域。
14. 新型体系结构设计
(1)合理地增加计算机系统中硬件功效百分比,这种体系结构对操作系统、高级语言甚至应用软件提供更多愈加好支持;
(2) 经过多个路径提升计算机体系结构中并行性等级,使得通常能并行计算和处理问题全部能并行计算和处理,使这种体系结构和组成对算法提供更多愈加好支持
15. 计算机设计受两方面原因影响
(1)计算机现在和未来使用方法
(2)下层实现技术
16.软件技术最关键发展趋势
程序及数据所使用存放器容量不停增大;
(2) 编译器关键性日益突出,逐步成为用户和计算机关键界面。
17桌面计算、服务器和嵌入式计算对计算机系统设计巨大影响:
(1)桌面计算市场是销售额最大市场,是对性能价格比要求最为苛刻和敏感市场。(2)服务器市场对计算机要求是可用性、大容量和可扩展性。(3)嵌入式计算和处理应用问题亲密相关,需求千差万别。
18.现代计算机实现技术基础关键是以晶体管为基础单元平面集成电路。
摩尔定律集成电路密度大约每两年翻一番。
19四种实现技术对于现代计算机发展发挥着很关键作用
逻辑电路 ,半导体DRAM(动态随机访问存放器) ,磁盘 ,网络
20.集成电路制造中关键技术指标之一:特征尺寸
伴随特征尺寸减小,挑战首先是功耗。原因:
(1) 造成集成电路连线相对长度增加,单位长度阻抗也增大,更高电路工作主频需
要更大电流来驱动电平翻转和信号改变传输;
(2) 电路密度增加,造成芯片单位面积功率(功率密度)上升;
(3) 集成电路在减小特征尺寸同时,也在降低电路各层厚度从而降低了工作电压;
(4) 伴随特征尺寸下降,晶体管各个电极之间绝缘层性能急剧下降,电极之间漏电流问题日益突出;
(5) 因为现代微处理器中部件成千上万,而这些部件并不全部是同时工作,这就需要在设计中合理分配电力使用,对于不工作部件临时减低工作性能或暂停工作,以降低系统功耗。
在设计上将面临问题:微处理器芯片正确性验证复杂性成倍上升。
一个计算机体系结构,从产生到消亡,大致
需要15~20年时间
21. 影响计算机系统成本关键原因
(1) 时间(对成本产生最直接影响)
即使实现技术没有变动,计算机系统制造成本也会不停下降。
(2) 产量
产量增加会加速工艺稳定;
产量增加提升了生产效率,降低了成本;
产量增加降低每台单机必需加入开发费用,从而使得单机成本下降。
(3) 商品化(更关键是它影响产品价格)
22.集成电路基础制造工艺:
(1)首先生产圆片;(2)在圆片上制造出部分小程序;大量电路单元;(3)园片经过测试后根据制造电路单元被切割成基片;(4) 基片在外壳中封装好以后就是集成电路成品。
集成电路成本 =
基片成本 =
每块园片上基片数 =
-
基片成品率= 园片成品率´ (1+ )-a
23.计算机性能评测
响应时间:从事件开始到结束之间时间,
也称为实施时间。(计算机完成某一任务所花费全部时间)
流量:在单位时间内所能完成工作量。
相同点:全部认为能够以最短时间完成指定任务计算机就是最快。
不一样点:响应时间针对单任务,而流量针对多任务。
X比Y快n倍: = n
n = = =
24.CPU时间
CPU工作时间,不包含I/O等候时间及运行其它程序时间。
用户CPU时间,系统CPU时间
25.现在常见测试程序能够分为5类:
(按测试可靠性由高至低次序列出)
(1) 真实程序:真实使用程序;(2)修正应用程序(3) 关键程序:从真实程序中提取能反应系统性能关键程序段组成程序(4) 小测试程序:特地编写反应系统某首先性能;(5) 合成测试程序:依据对大量应用程序中多种操作百分比进行统计后根据这个百分比人为制造出来程序。
26。测试程序组件,选择一组各个方面有代表性测试程序,组成一个通用测试程序集合。最大优点:
避免了独立测试程序存在片面性,尽可能全方面地测试了一个计算机系统性能。最常见测试程序组件是基于UNIXSPEC关键版本包含SPEC89、SPEC92 SPEC95和SPEC等。、
27. 性能设计和评测基础标准
三条基础标准和方法:
(1)大约率事件优先标准
对于大约率事件(最常见事件),给予它优先处理权和资源使用权,以取得全局最优结果。
(2)Amdahl定律
加紧某部件实施速度所取得系统性能加速比,受限于该部件在系统中所占关键性。
(3) 一个“好”计算机系统:含有高性价比计算机系统是一个带宽平衡系统,而不是看它使用一些部件性能 。
(1)系统加速比 = =
系统加速比依靠于两个原因:
可改善百分比:可改善部分在原系统计算时间中所占百分比,它总是小于等于1。
比如: 一个需运行60秒程序中有20秒运算能够加速,那么该百分比就是20/60。
部件加速比:可改善部分改善以后性能提升,通常情况下它是大于1 。
比如: 系统改善后实施程序,其中可改善部分花费2秒时间,而改善前该部分需花费5秒,则性能提升为5/2。
总实施时间改善后 = 不可改善部分实施时间 +可改善部分改善后实施时间
总实施时间改善后=(1-可改善百分比)´总实施
时间改善前+
=[(1-可改善百分比) + ]´总实施时间改善前
系统加速比 =
=
Amdahl定律:性能递减规则假如仅仅对计算机中一部分做性能改善,则改善越多,系统取得效果越小。
1)可改善百分比为0,这时系统加速比等于1,即系统性能无法提升。
2)部件加速比趋于无穷,这时分母中可改善百分比和部件加速比之比趋于0,由此系统加速比趋于1除以1减可改善百分比,这是加速这个部件所取得系统性能改善极限。
推论:假如只针对整个任务一部分进行优化,那么所取得加速比小于1/(1-fe)。
28程序局部性原理
程序在实施时所访问地址分布不是随机,而是相对地簇聚;这种簇聚包含指令和数据两部分。
程序时间局部性:程序立即用到信息很可能就是现在正在使用信息。
程序空间局部性:程序立即用到信息很可能和现在正在使用信息在空间上相邻或临近。
29.CPU性能
将程序实施时间进行分解
(1) 计算机工作时钟频率:计算机系统中和实现技术和工艺相关原因。单位是MHz(f)。
(2) 总时钟周期数
程序实施cpu时间 =总时钟周期数 / 时钟频率
“指令时钟数”CPI”一个和计算机体系结构相关参数。CPI = 总时钟周期数 / IC
IC:程序实施过程中所处理指令数。
总CPU时间 = CPI ´ IC / 时钟频率
时钟频率:反应了计算机实现技术、生产工艺和计算机组织。
CPI:反应了计算机实现技术、计算机指令集结构和计算机组织。
IC:反应了计算机指令集结构和编译技术
对CPU性能公式进行深入细化
假设:计算机系统有n种指令;
CPIi :第i种指令处理时间;
ICi :在程序中第i种指令出现次数;
则程序实施时间为
CPU时间 = S (CPIi ´ ICi) / 时钟频率
CPI = S (CPIi ´ ICi) / IC = S (CPIi ´ ICi / IC)
其中:(ICi / IC)反应了第i种指令在程序中所占百分比。
例1.1假设我们考虑条件分支指令两种不一样设计方法以下:
(1) CPUA:经过比较指令设置条件码,然后测试条件码进行分支。
(2)CPUB:在分支指令中包含比较过程
在两种CPU中,条件分支指令全部占用2个时钟周期而全部其它指令占用1个时钟周期,对于CPUA,实施指令中分支指令占20%;因为每个分支指令之前全部需要有比较指令,所以比较指令也占20%。因为CPUA
在分支时不需要比较,所以假设它时钟周期时间比CPUB快1.25倍。哪一个CPU愈加快?假如CPUA时钟周期时间仅仅比CPUB快1.1倍,哪一个CPU愈加快呢?
解:我们不考虑全部系统问题,所以可用CPU性能公式。占用2个时钟周期分支指令占总指令20%,剩下指令占用1个时钟周期。所以CPIA= 0.2 ´ 2 + 0.80 ´ 1 = 1.2则CPU性能为:总CPU时间A = IC ´ 1.2 ´ 时钟周期A
依据假设有时钟周期B = 1.25 ´ 时钟周期A
在CPUB中没有独立比较指令,所以CPUB程序量为CPUA80%,分支指令百分比为:20%/80% = 25%
这些分支指令占用2个时钟周期,而剩下75%指令占用1个时钟周期,所以:
CPIB = 0.25 ´ 2 + 0.75 ´ 1 = 1.25
因为CPUB不实施比较故:ICB = 0.8 ´ ICA
所以CPUB性能为:
总CPU时间B = ICB ´ CPIB ´ 时钟周期B
= 0.8 ´ ICA ´ 1.25 ´ (1.25 ´ 时钟周期A)
= 1.25 ´ ICA ´ 时钟周期A
在这些假设之下,尽管CPUB实施指令条数较少,CPUA因为有着更短时钟周期,所以比CPUB快。
假如CPUA时钟周期时间仅仅比CPUB快1.1倍 则时钟周期B = 1.10 ´ 时钟周期A
CPUB性能为:
总CPU时间B = ICB ´ CPIB ´ 时钟周期B
= 0.8 ´ ICA ´ 1.25 ´ (1.10 ´ 时钟周期A)
= 1.10 ´ ICA ´ 时钟周期A
所以CPUB因为实施更少指令条数,比CPUA运行愈加快。
30并行性在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同工作。只要时间上相互重合,就存在并行性。
同时性两个或多个事件在同一时刻发生并行性。
并发性两个或多个事件在在同一时间间隔内发生并行性。
31从实施程序角度看,并行性等级从低到高可分为:
(1)指令内部并行:指令内部微操作之间并行。 (2)指令级并行:并行实施两条或多条指令。(3)线程级并行:并发实施多个线程,通常是以一个进程内控制派生多个线程为调度单位。(4)任务级或过程级并行:并行实施两个或多个过程或任务(程序段)。(5)作业或程序级并行:在多个作业或程序间并行。
从处理数据角度,并行性等级从低到高能够分为:(1)字串位串: 同时只对一个字一位进行处理。(2)字串位并:同时对一个字全部位进行处理,不一样字之间是串行。(3)字并位串:同时对很多字同一位(称位片)进行处理。(4) 全并行: 同时对很多字全部或部分位进行处理。
32提升并行性三种技术路径
(1) 时间重合。多个处理过程在时间上相互错开,轮番重合地使用同一套硬件设备各个部分,以加紧硬件周转而赢得速度。
(2) 资源反复。依据“以数量取胜”标准,经过反复地设置资源,尤其是硬件资源,以大幅度提升计算机系统性能。
(3) 资源共享。这是一个软件方法,它使多个任务按一定时间次序轮番使用同一套硬件设备。
33单机系统中并行性发展
(1) 在发展高性能单处理机过程中,起着主导作用是时间重合这个路径。实现时间重合基础:部件功效专用化。
◆ 把一件工作按功效分割为若干相互联络部分;◆ 把每一部分指定给专门部件完成;◆ 然后按时间重合标准把各部分实施过程在时间上重合起来,使全部部件依次分工完成一组一样工作。
(2) 在单处理机中,资源反复利用已经普遍起来。部件冗余;多操作部件,多存放体;并行处理机,相联处理机;同构型(对称型)多处理机系统
(3) 资源共享实质:用单处理机模拟多处理机功效,形成所谓虚拟机概念。多道程序,分时系统;智能终端;分布处理系统
分布处理系统把若干个含有独立功效处理机(或计算机)相互连接起来,在操作系统全盘控制下,统一协调地工作,而最少依靠集中程序、数据或硬件。
34多机系统中并行性发展
(1) 耦合度。反应多机系统各机器之间物理连接紧密程度和交互作用能力强弱。
最低耦合:耦合度最低系统。除经过某种中间存放介质之外,各计算机之间没有物理连接,也无共享联机硬件资源。
松散耦合或间接耦合系统:经过通道或通信线路实现计算机间互连,共享一些外围设备(比如磁盘、磁带等),机间相互作用是在文件或数据集一级进行。
紧密耦合系统或直接耦全系统:机间物理连接频带较高,它们往往经过总线或高速开关实现互连,能够共享主存。
(2) 功效专用化。专用外围处理机(松散耦合系统);高级语言处理机、数据库处理机;异构型多处理机系统
(3) 机间互连。可重构、容错多处理机;紧密耦合系统; 同构型多处理机系统
(4) 网络化。通信处理机,远程网络;局部计算机网;分布处理系统
第二章 计算机指令集结构设计
1.指令集结构分类
(1) 在CPU中操作数存放方法
(2) 指令中显式表示操作数个数
(3) 操作数寻址方法
(4) 指令集所提供操作类型
(5) 操作数类型和大小
2.CPU中操作数存放方法,是多种指令集结构之间最关键区分所在。
CPU中用来存放操作数存放单元关键有:
堆栈,累加器,一组寄存器
指令中操作数能够显式给出,也能够隐式地给出。
3依据CPU内部存放单元类型进行分类
堆栈型指令集结构,累加器型指令集结构, 通用寄存器型指令集结构
例 C=A+B表示式在这三种类型指令集结构上实现方法。假设A、B、C均是保留在存放器单元中,且A和B值在运算过程中一直被保持。
堆栈:PUSH A,PUSH B,ADD,POP C
累加器:LOAD A,ADD B,Store C
寄存器(寄存器-存放器):LOAD R1,A
ADD R1,B,Store C,R1
寄存器(寄存器-寄存器):LOAD R1,A
LOAD R2,B,Add R3,R1,R2,Store C,R3
4三种类型指令集结构优缺点
堆栈型:优点是一个表示计算简单模型;指令短小。缺点堆栈不能被随机访问,从而极难生成有效代码。同时,因为堆栈是瓶颈,所以极难被高效地实现。
累加器型:优点减小了机器内部状态;指令短小。缺点因为累加器是唯一暂存器,这种机器存放器通信开销最大。
寄存器型:优点是代码生成最通常模型。
缺点全部操作数均需命名,且显式表示,所以指令比较长。
5通用寄存器型指令集结构关键优点使编译器有效地使用寄存器。
(1) 在表示式求值方面,比其它类型指令集结构含有更大灵活性;
(2) 寄存器能够用来存放变量。
降低存放器通信量,加紧程序实施速度(因为寄存器比存放器快);
能够用更少地址位来寻址寄存器,从而可
以有效改善程序目标代码大小。
6.CPU需要设置多少个寄存器 关键由编译器使用寄存器情况来决定。
为表示式求值保留部分寄存器;为传输参数保留部分寄存器;用剩下寄存器来保留变量。(通常来说,ALU指令有0~3个存放器操作数。)
7通用寄存器指令集结构深入细分为三种类型:
寄存器 --- 寄存器型;寄存器 --- 存放器型;存放器 --- 存放器型
8常见三种通用寄存器型指令集结构优缺点注:表中(m,n)含义是, 指令n个操作数中有m个存放器操作数。
寄存器-寄存器型(0,3):优点简单,指令字长固定,是一个简单代码生成模型,多种指令实施时钟周期数相近。缺点和指令中含有对存放器操作数访问结构相比,指令条数多,所以其目标代码较大。
寄存器-存放器型(1,2):优点能够直接对存放器操作数进行访问,轻易对指令进行编码,且其目标代码较小。缺点指令中操作数类型不一样。在一条指令中同时对一个寄存器操作数和存放器操作数进行编码,将限制指令所能够表示寄存器个数。因为指令操作数能够存放在不一样类型存放器单元,所以每条指令实施时钟周期数也不尽相同。
存放器-存放器型(3,3):优点是一个最紧密编码方法,无需“浪费”寄存器保留变量。缺点指令字长多个多样。每条指令实施时钟周期数也大不一样,对存放器频繁访问将造成存放器访问瓶颈问题。
9.目前指令集结构中所使用部分操作数寻址方法。
寄存器寻址Add R4 , R3立即值寻址Add R4 , #3偏移寻址Add R4 , 100(R1) 寄存器间接寻址Add R4 , (R1) 索引寻址Add R3 , (R1 + R2) 直接寻址或绝对寻址Add R1 , (1001) 存放器间接寻址Add R1 , @(R3)
自增寻址Add R1 , (R2)+ 自减寻址Add R1, -(R2) 缩放寻址Add R1 , 100(R2)[R3]
10指令集中操作分类
算术和逻辑运算;数据传输;控制;系统;浮点;十进制;字符串;图形
11指令集结构功效设计问题
复杂指令集计算机(CISC)强化指令功效,实现软件功效向硬件功效转移。
精简指令集计算机(RISC)尽可能地降低指令集结构复杂性,以达成简化实现,提升性能目标。当今指令集结构功效设计一个关键趋势。
CISC关键特点:
1)指令系统复杂,表现在指令数多,通常大于100条;寻址方法多,通常大于4种指令格式多,通常大于4种;2)绝大多数指令需要多个机器时钟周期方可完成。3)多种指令全部可访问存放器。4)多采取微程序控制。5)有专用寄存器。6)难以进行优化编译
CISC结构追求目标:强化指令功效,降低程序指令条数,以达成提升性能目标。
CISC结构存在缺点
(1) 在CISC结构指令系统中,多种指令使用频率相差悬殊。(2) CISC结构指令系统复杂性带来了计算机体系结构复杂性,这不仅增加了研制时间和成 本,而且还轻易造成设计错误。(3) CISC结构指令系统复杂性给VLSI设计增加了很大负担,不利于单片集成(4) CISC结构指令系统中,很多复杂指令需要很复杂操作,所以运行速度慢。(5) 在CISC结构指令系统中,因为各条指令功效不均衡性,不利于采取优异计算机体系结构技术(如流水技术)来提升系统性能。
RISC关键特点:
1)精简指令系统指令条数少,通常小于100条;2)基础寻址方法少,通常2~3种2)指令格式少,通常2~3种; 4)指令长度一致(32位);3)以寄存器-寄存器方法工作,除了Load/Store指令访问存放器外,其它指令只访问寄存器;3)除了Load/Store指令访问存放器外,全部指令在一个机器时钟周期完成,并采取流水线技术;4)使用较多通用寄存器,通常最少32个,不许可有专用寄存器;5)大多采取硬联线控制,少用或不用微程序实现;6)采取针对体系结构特点优化编译技术,预防或降低流水线中出现相关性,确保流水线通畅。
(设计思想指令系统只包含那些使用频率很高指令和部分必需指令)
目标:使得计算机体系结构愈加简单、愈加合理和愈加有效,克服CISC结构缺点,使机器速度愈加快,程序运行时间缩短,从而提升计算机系统性能
设计标准:选择使用频率最高指令,并补充部分最有用指令;每条指令功效应尽可能简单,并在一个机器周期内完成;全部指令长度均相同;只有Load和Store操作指令才访问存放器; 其它指令操作均在寄存器之间进行;以简单有效方法支持高级语言。
12控制指令
(1) 跳转: 当控制指令为无条件改变控制流时,称之为“跳转”
(2) 分支:当控制指令是有条件改变控制流时,称之为“分支”。
(3)控制步骤多种改变情况:条件分支
跳转;过程调用;过程返回
13常见三种表示分支条件技术及其优缺点
条件码(CC):测试分支条件方法在程序控制下,由ALU操作设置特殊位。优点能够自由设置分支条件。缺点CC是额外状态,条件码限制了指令次序,因为必需从一条指令将分支条件信息传送到分支指令。
条件寄存器:测试分支条件方法依据比较结果测试条件寄存器。优点简单。缺点占用了一个寄存器。
比较且分支:测试分支条件方法比较操作是分支指令一部分,通常这种比较是受一定限制。优点比较操作是分支指令一部分,通常这种比较是受一定限制。缺点分支指令操作增多
14两种方法来保留寄存器内容:
(1) “调用者保留”方法
在一个调用者调用别过程时,必需保留调用者所要保留寄存器,以备调用结束返回后,能够再次访问调用者。
(2) “被调用者保留”方法
被调用过程必需保留它要用寄存器,确保不会破坏过程调用者程序实施环境,并在过程调用结束返回时,恢复这些寄存器内容。
15操作数类型和操作数表示是软硬件关键界面之一 。
操作数类型:面向应用、面向软件系统所处理多种数据结构.
操作数表示:硬件结构能够识别、指令系统能够直接调用那些结构。
16操作数类型
整数(定点);浮点;十进制;字符;字符串;向量;堆栈
17操作数类型两种表示方法
(1) 操作数类型由操作码编码指定。(最常见一个方法,ADD和FADD)
(2) 数据能够附上由硬件解释标识,由这些标识指定操作数类型,从而选择合适运算(少见)。
18操作数大小:字节;半字(16位);单字(32位);双字(64位)
(1) 字符: 用ASCII码表示,为一个字节大小。(2) 整数: 用二进制补码表示,其大小能够是字节、半字或单字。
(3) 浮点操作数: 单精度浮点(单字大小)和双精度浮点(双字大小)(4) 字符串: 将字符串中每个字符看成一个字节来看待。 (5) 十进制操作数◆ 压缩十进制用4位二进制数编码数字0~9,然后将两个十进制数字压缩在一个字节中存放。◆ 二进制编码十进制将十进制数字直接用字符串来示
19指令集格式设计
指令由操作码和地址码组成
设计标准(1)尽可能地增加寄存器数目和寻址方法类型;(2)充足考虑寄存器字段和寻址方法字段对指令平均字长影响,和它们对目标代码大小影响;(3)设计出指令集格式能够在具体实现中轻易处理。
20两种表示寻址方法方法
(1) 将寻址方法编码于操作码中,由操作码在描述指令操作同时,也描述了对应操作寻址方法;(2) 为每个操作数设置一个地址描述符,由该地址描述符表示对应操作数寻址方法。
选择哪种表示寻址方法方法?由两个因数决定:
(1) 指令集结构所采取寻址方法种类及其适用范围
(2) 操作码和寻址方法之间独立程度寻址方法多,指令中操作数多适适用地址描述符方法。
21三种指令集编码格式 : 变长编码格式;固定长度编码格式;混合型编码格式
变长编码格式:(1)有效降低指令集结构平均指令长度,降低目标代码长度。(2)使得各条指令字长和实施时间大不一样。多数CISC计算机指令集结构均是采取这种编码格式。
固定长度编码格式将操作类型和寻址方法组合编码在操作码中,全部指令长度是固定唯一
混合型编码格式经过提供一定类型指令字长久望能够兼顾降低目标代码长度和降低译码复杂度两个目标。
22 DLX指令集结构
DLX中寄存器:(1) 32个通用寄存器。命名:R0、R1、¼、R31。长度:32位
寄存器R0值总是为0。
(2) 32个浮点寄存器。命名:F0、F1、¼、F31长度:32位(用来保留32位单精度浮点数 )
(3) 部分特殊寄存器(比如用来保留浮点操作结果信息浮点状态寄存器)能够和通用寄存器相互进行数据传送。
DLX数据类型
(1) 整型数据。有8位、16位和32位多个长度。(当8位和16位整型数据载入到寄存器中时,用0或数据符号位来填充32位通用寄存器中剩下位。)
(2) 浮点数据。有32位单精度浮点数和64位双精度浮点数。浮点数据表示采取是IEEE 754标准
DLX寻址方法和数据传送
(1) 寻址方法:寄存器寻址;立即值寻址;偏移寻址;寄存器间接寻址
(2) 寄存器寻址字段大小为5位,用来表示32个
通用寄存器或浮点寄存器。
(3) 存放器地址采取是高端字节表示次序,存放器按字节寻址,其地址宽度为32位。
(4) 经过寄存器(通用寄存器和浮点寄存器)和存放器之间数据传送操作完成对存放器访问。
DLX指令格式:寻址方法编码在操作码中;指令字长32位,其中用6位表示操作码。
DLX中四种类型操作:Load和Store操作;ALU操作;分支和跳转操作;浮点操作
约定:(1) 符号“¬”: 数据传送操作其后附带一个下标n,也即“¬n” 表示传送一个n位数据。(2) 符号“##”: 两个域串联操作
(3) 域下标:表明从该域中选择某一位。域中位标识是从最高位开始标识,而且起始标识为0;下标能够是一个单独数字如 Regs[R4]0 :选择寄存器R4中内容符号位;下标也能够是一个范围。Regs[R3]24..31 :选择寄存器R3中内容最低一个字节。
(4) 上标:表示复制一个域。如 024能够得到一个24位全为0一个域。
(5) 变量Mem:表示存放器中一个数组,存放器根据字节寻址。例 R8和R10:32位寄存Regs[R10]16..31 ¬16(Mem[Regs[R8]]0)8 ## Mem[Regs[R8]]含义。
第三章 流水线技术
流水线基础概念
1. 指令流水线
把指令解释过程分解为“分析”和“实施” 两个子过程,并让这两个子过程分别用独立分析部件和实施部件来实现。理想情况:速度提升一倍
浮点加法流水线
把浮点加法全过程分解为“求阶差”、“对阶”、“尾数相加”、“规格化”四个子过程,并让它们分别用各自独立部件来实现。理想情况:速度提升3倍
时-空图
时-空图从时间和空间两个方面描述了流水线工作过程。时-空图中,横坐标代表时间,纵坐标代表流水线各个段。
流水技术
流水技术是指:将一个反复时序过程分解成为若干个子过程,而每个子过程全部可有效地在其专用功效段上和其它子过程同时实施。
流水技术特点
(1) 流水过程由多个相联络子过程组成,每个子过程称为流水线“级”或“段”。“段”目称为流水线“深度”。
(2) 每个子过程由专用功效段实现;
(3) 各个功效段所需时间应尽可能相等,不然,时间 功效段将成为流水线瓶颈,会造成流水线 “堵塞”和“断流”。这个时间通常为一个时钟周期(拍);
(4) 流水线需要有“经过时间”(第一个任务流出结果所
需时间),在此以后流水过程才进入稳定工作状
态,每一个时钟周期(拍)流出一个结果;
(5) 流水技术适合于大量反复时序过程,只有输入 端能连续地提供任务,流水线效率才能充足发 挥。
3.1.2 流水线分类
1.按功效多少来分
单功效流水线:只能完成一个固定功效 流水线。
多功效流水线:流水线各段能够进行不一样 连接,从而实现不一样功效。
2.按同一时间内各段之间连接方法来分
静态流水线:在同一时刻,流水线各段只能 按同一个功效连接方法工作。
在静态流水线中,只有当输入是一串相同运算操作时,流水效率才能得到发挥。
动态流水线:在同一时刻,流水线各段能够按不一样功效连接方法工作。
这么就不是非得相同运算一串操作才能流水处理。
优点:能提升流水线效率
缺点:会使流水线控制变得复杂
3.根据流水线等级来分
部件级流水线(运算操作流水线):把处理机算术逻辑部件分段,使得多种数据类型操作能够进行流水。
处理机级流水线(指令流水线):把指令解释实施过程根据流水方法进行处理。
比如:前面把指令解释过程分解为:分析和实施
DLX基础流水线把指令解释过程分解为:取指令、指令译码、实施、访存、写回。(图示)
处理机间流水线(宏流水线):它是指由两个以上处理机串行地对同一数据流进行处理,每个处理机完成一项任务。
4.根据数据表示来分
标量处理机:不含有向量指令和向量数据表示, 仅对标量进行流水处理处理机。
比如:IBM360/91, Amdahl 470V/6 等
向量处理机:含有向量指令和向量数据表示 处理机。比如:TI ASC, CRAY-I 等
5. 根据是否有反馈回路来分
线性流水线:流水线中各段串行连接,没 有反馈回路。
非线性流水线:流水线中各段除有串行连接 外,还有反馈回路。
6. 根据流动是否能够乱序来分
次序流动流水线:流水线输出端任务流出顺
序和输入端任务流入次序相同。
异步流动流水线(乱序流水线):流水线输出端任务流出次序和输入端任务流入次序不一样。
3.2 DLX基础流水线
1. 实现DLX指令一个简单数据通路
定义:
ADD: 加法器
PC: 指令计数器
NPC: 下一条次序指令计数器
IR: 指令寄存器
A、B: 操作数临时寄存器
Imm: 立即数临时寄存器
Cond: 条件值寄存器
MUX: 多路开关
ALU: 运算器
ALU Output:运算器输出寄存器
LMD: 存放器数据读取寄存器
2. 一条DLX指令最多需要以下5个时钟周期:
(1) 取指令周期(IF)
IR ← Mem[PC]
NPC ← PC+4
(2)指令译码/读寄存器周期(ID)
A ← Regs[IR6 ..10]
B ← Regs[IR11 ..15]
Imm ← (IR16)16 ## IR16 ..31
指令译码和读寄存器是并行进行。之所以能做到这一点,是因为在DLX指令格式中,操作码在固定位置。这种技术也称为固定字段译码。
(3)实施/有效地址计算周期(EX)
在这个周期,不一样指令有不一样操作。
(4)存放器访问/分支完成周期(MEM)
在该周期处理DLX指令只有Load、Store和 分支指令。存放器访问LMD ← Mem[ALUOutput]
或 Mem [ALUOutput] ← B
分支操作if(cond)PC ← ALUOutput
else PC ← NPC
(5)写回周期(WB)不一样指令在该周期完成工作也不一样
寄存器―寄存器型 ALU 指令
Regs[IR16 ..20] ← ALUOutput
寄 存器―立即值型 ALU 指令
Regs[IR11 ..15] ← ALUOutput
Load 指令Regs[IR11 ..15] ← LMD
3. 分支指令需要4个时钟周期, 其它指令需要5 5个时钟周期
假设分支指令占总指令数12%, 则: CPI=4.88上述实现不管在性能上还是在硬件开销上,全部不是优化。
3.2.2 基础DLX流水线
1一个简单 DLX 流水线
我们能够把3.2.1中数据通路流水化:每个时钟周期开启一条新指令。这么,该数据通路中每一个周期就成了一个流水段。
2. 简单DLX流水线流水过程
第一个描述(类似于时空图)
第二种描述(按时间错开数据通路序列)
3. 采取流水技术还应处理好以下多个问题:
(1)应确保不会在同一个时钟周期内在同一数据 通路资源
展开阅读全文