计算机体系结构.docx
- 文档编号:17815113
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:18
- 大小:25.01KB
计算机体系结构.docx
《计算机体系结构.docx》由会员分享,可在线阅读,更多相关《计算机体系结构.docx(18页珍藏版)》请在冰点文库上搜索。
计算机体系结构
计算机系统的多层次结构
第5级:
应用语言虚拟机
第4级:
高级语言虚拟机
第3级:
汇编语言虚拟机
第2级:
操作系统虚拟机
第1级:
机器语言机器
第0级:
微程序机器
多层次计算机的极端是单层次计算机——高级语言计算机
只有硬件没有软件:
不可编程计算机;只有软件和最必需的硬件;当前计算机介于两者之间
若计算机只有一条指令,请设计这条指令?
计算机体系结构+计算机组成=计算机系统结构
计算机体系结构是指程序员所看到的机器的属性,即机器的概念性结构和功能表现。
这里,程序员主要是指汇编程序员。
计算机组成是计算机体系结构的逻辑实现。
一种计算机体系结构可以有多种不同的计算机组成。
计算机实现是计算机组成的物理实现。
一种计算机组成也可以有多种不同的计算机实现。
计算机系统结构研究的是软、硬件功能分配以及如何最佳、最合理地实现分配给硬件的功能。
透明性(Transparency):
本来存在的事物或属性,从某种角度看似乎不存在
就目前通用机来说,计算机系统结构的属性包括:
●数据表示:
硬件能够直接认别和处理的数据类型和格式;
●寄存器组织:
操作数寄存器、变址寄存器、控制寄存器及专用寄存器的定义、数量和使用规则等;
●指令系统:
机器指令的操作类型、格式,指令间的排序和控制机制等;
●中断系统:
中断类型、中断级别和中断响应方式等;
●存储系统:
最小编址单位、编址方式、主存容量、最大寻址空间等;
●处理机工作状态:
状态的定义和切换方式,如管态和目态;
●输入输出系统:
连接方式、数据交换方式、数据交换过程的控制等;
●信息保护,包括信息保护方式和硬件对信息保护的支持等。
软硬取舍的基本原则
1.在现有的硬件和器件条件下,系统要有高的性能价格比
2.要考虑准备采用和可能采用的组成技术,使它尽可能不要过多限制或不合理地限制各种组成、实现技术的采用
3.不能仅从“硬”的角度去考虑如何便于应用组成技术的成果和发挥器件技术的进展,还应从“软”的角度把为编译和操作系统的实现,以至高级语言程序的实现提供更多更好的硬件支持放在首位
计算机系统的性能评测
1峰值性能vs.持续性能
2平均速度:
MIPS(每秒百万条指令数)、MFLOPS(每秒百万次浮点运算)
3基准程序(Benchmark)
计算机系统设计的定量原理
⏹1.加快经常性事件(哈弗曼压缩原理)
(1)加快处理高概率事件显著提高整体性能
(2)不经常性事件即使处理的慢也不会影响系统的性能
(3)简言之:
好钢要用在刀刃上。
⏹2.安道尔定律
1)系统中采用某种更快的执行方式后,整个系统性能的提高大小,受限于该执行方式的使用频率。
2)性能的提高用“加速比(Speeduprate)”来衡量.
Sp=Told/Tnew.
⏹3.访问的局部性原理
时间上的局部性Temporallocality:
最近访问过的代码不久还要访问
空间上的局部性Spatiallocality:
地址相邻的代码可能会被一起访问
软件对系统结构的影响:
要求软件可移植(软件、应用、器件都会产生影响)
所谓软件的“可移植性(Portability)”,是指软件不用修改或只需经少量加工就能由一台机器搬到另外一台机器上运行。
实现软件可移植的基本技术有:
统一高级语言、采用“系列机”思想、模拟与仿真
所谓”系列机”,是指由一个厂家生产的具有相同体系结构,但是具有不同组成和实现(而性能和价格不同)的一系列不同型号的机器。
系列机软件兼容的基本要求:
必须做到向后兼容,同时力争做到向上兼容
所谓“模拟(Simulation)”,是指用一台机器(宿主机)的机器语言程序来解释另外一台机器(虚拟机)的每一条机器指令,从而实现虚拟机上的软件在宿主机上的可移植;所谓“仿真(Emulation)”,是指用一台机器(宿主机)的微程序来直接解释另外一台机器(目标机)的每一条机器指令,从而实现目标机上的软件在宿主机上的可移植。
并行性的分类
1.按并行事件发生的时间分类
同时性(Simultaneity)
并发性(Concurrency)
2.按并行事件的“粒度”分类
指令内部并行、指令间并行、进程间并行、程序间并行
3.按并行事件的载体分类
存储器操作并行;处理器操作步骤并行;处理器操作并行;指令、进程、程序并行
4.按数据处理的步骤分类
位串字串、位并字串、位片串字并、全并行
并行性开发的途径
时间重叠、资源重复、资源共享
时间重叠是在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分;资源重复是在并行性概念中引入空间因素,通过重复设置硬件资源来提高可靠性或性能;资源共享是用软件方法让多个用户按一定时间顺序轮流使用同一套资源来提高资源利用率,相应地也就提高了系统的性能。
计算机系统的分类:
(按指令流和执行流及其多倍性分类)
SISD(单指令单执行流)、SIMD(单指令多执行流)、MIMD(多指令多执行流)、MISD(多指令单执行流)
(用数据处理的并行度)
字串位串(wsbs)、字串位并(wsbp)、字并位串(wpbs)、字并位并(wpbp)
*CPI:
CLOCKSPERINSTRUSTION每条指令平均时钟周期数
*IC:
程序指令条数
*******************************************************************************
数据表示:
数据表示指的是能够由机器硬件直接识别和引用的数据类型。
即计算机指令中操作数所能表示的数据类型。
数据结构:
数据结构是用户在程序中所能够使用的数据类型及其之间的结构关系,如:
整数、浮点数、字符、数组、结构体、队列、链表、树和图等。
这些数据类型有些是由硬件来直接提供(如:
整数、浮点数),也有的是在硬件的基础上由软件来实现(如:
结构体、队列、链表、树和图等)。
两者关系:
数据表示是数据结构的组成元素,是数据结构的子集
引入数据表示的原则
一是看系统的效率是否提高,即是否减少了实现时间和存储时间。
另一方面是看引入这种数据表示后,其通用性和利用率是否提高。
/*数据表示部分未归纳*/
N=q*Rmx;尾数q(定点小数)、尾数基值rm(2,4,8,10,16)、阶码e(定点整数)
浮点数尾数下溢的处理方法
1.截断法
2.舍入法
3.恒置“1”法
4.查表法(当被处理数据有效位的最低n位全为“1”时,采用“截断法”的结果;否则按“舍入法”处理)
数据寻址的方式有:
⏹按地址寻址
⏹无需寻址
⏹按内容寻址
寻址的单位有:
◆字、半字、双字
◆字节
◆位
变址寻址适合在标量计算机中,通过循环程序对变址寄存器修改其变址值,来对向量或数组等数据结构中的元素进行访问和处理。
基址寻址则主要是对程序的逻辑地址空间到物理地址空间进行变换时使用的,以支持程序使用动态再定位技术。
指令集设计的一般原则是:
1.指令集首先应具有完整性。
2.指令集必须满足兼容性。
3.指令集应具有可编程性,即指令码
密度要高。
4.指令集应具有较高的效率
5.指令集应为未来的发展留出足够的
空间。
用哈弗曼算法求最佳二元前缀码
指令字格式的优化
1.地址码的优化——缩短地址码长度
用较短的地址码表示一个较大的逻辑地址空间,应设计各种灵活有效的寻址方式
缩短地址码长度的方法
1基于主存低端区域的间接寻址
2寄存器间接寻址
3变址寄存器加位移量寻址
4隐含寻址
2.指令字格式的优化
地址码和可变长操作码结合,长操作码配短地址码;采用多地址格式,加强指令功能;同一地址制,采用多种地址形式和长度
按照CISC方向发展和改进指令集
CISC:
增强原有指令的功能以及设置更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化。
按此方向发展,机器指令系统日益庞大和复杂。
称用这种途径设计成cpu的计算机为复杂指令系统计算机(complexinstructionsetcomputer)
⏹1.面向目标程序的优化实现来改进
目标:
1.缩短程序的运行时间,减少程序的时间开销
2.缩短程序的长度,减少程序的空间开销
方法:
1.统计程序中指令或指令串的使用频率,找出使用频率高,执行时间长的指令或指令串;
2.对使用频率高的指令,用硬件加快其执行;
3.对于使用频率高的指令串,用一条新的指令来替代它。
⏹2.面向高级语言的优化实现来改进
缩短高级语言与机器语言之间的语义差距,以支持高级语言编译系统,缩短编译程序的长度和编译所花的时间
主要优化方法:
1.对使用频率高的高级语言语句,在指令系统中增加相应的指令。
2.改进指令系统,使它与各种高级语言之间的语义差距都有共同的缩小。
3.在一台机器上实现分别面向各种高级语言的多指令系统/多系统结构,并能动态切换。
4.高级语言计算机。
⏹3.面向操作系统的优化实现来改进
缩短操作系统与计算机系统结构之间的语义差距,减小运行操作系统所需的时间,节省操作系统软件所占的存储空间
常用的优化方法
1.对操作系统中的常用指令和指令串进行优化和改进;
2.为操作系统设置专用指令;
3.操作系统中由子程序实现的某些功能进行硬化或固化;
4.操作系统由专门的处理机来完成
RISC的设计原则及主要技术
RISC:
通过减少指令种数和简化指令功能来降低硬件设计的复杂度,提高指令的执行速度。
按此方向发展,使机器指令系统精简,称用这种途径设计成cpu的计算机为精简指令系统计算机(reducedinstructionsetcomputer)。
原则:
◆1.大多数指令在单周期内完成
◆2.LOAD/STORE风格,扩大通用寄存器的个数
◆3.硬联控制逻辑
◆4.减少指令和寻址方式的种类
◆5.固定的指令格式
◆6.注重编译的优化
主要技术:
1遵循按RISC机器一般原则设计的技术
2硬联实现和微程序固件实现相结合
3设置数量较大的寄存器组,并采用“重叠寄存器窗口技术”
4指令的执行采用流水和延迟转移技术
5优化设计编译器
*******************************************************************************
总线类型:
按传输方向分为单向总线、双向总线;按其使用方法分为专用总线和非专用总线;
总线的数据宽度
I/O设备获得I/O总线使用权后所传送的数据总量
⏹数据宽度的种类
1.单字(或单字节)
每次获得总线的使用权,只传送一个字。
适用于慢速设备
⏹优点:
无须指明信息长度,总线控制逻辑能够高速的分配总线。
⏹缺点:
传输速度慢,不能采用更合理的总线分配算法。
2.定长块
每次获得I/O总线的使用权,传送数据总量是一个定长块。
适用于磁盘等高速设备。
⏹优点
无须指明信息长度,简化控制和校验
⏹缺点
1.信息块长于定长块时需多次申请、分配
2.信息块比定长块短时,会浪费总线带宽和缓冲器空间
3.较长时间束缚输入设备和输出设备
3.可变长块
动态的改变传送信息块的大小、尽可能使设备只需获得一次I/O总线使用权,就能将要传送的信息传输完毕。
适合于中高速设备
⏹优点:
充分利用带宽,灵活性好
⏹缺点:
(1)要求设备有较大的缓冲存储空间
(2)需指出传输的信息长度,并对其进行控制
4.单字+定长块
面向低速,但优先级较高的设备
⏹信息少时,用单字宽度传输
⏹信息多时,用定长块的方式传输效率有所提高
5.单字+可变长块
面向高速,且优先级较高的设备
⏹当传送单字时,用单字宽度传输
⏹当成块传送时,把数据宽度调整到信息块的大小
这是一种非常灵活但却复杂昂贵的总线分配方式
中断的分类与分级
IBM公司的中断源分类法:
重新启动中断;机器检验中断;程序性中断;访问管理程序中断;外部事件中断;输入输出中断。
另一种分类方法:
⏹不可屏蔽中断:
要求立即响应的中断。
如:
电源掉电、机器硬件故障等。
⏹可屏蔽中断:
可以暂缓响应的中断
*屏蔽的方法:
设置中断屏蔽字,屏蔽中断源的中断请求;
另一种分类方法:
⏹中断(Interrupt):
可以在指令执行结束后响应的中断
⏹异常(Exception):
在指令执行过程中必须响应的中断
中断分级
⏹中断分级的必要性
当多个中断源提出中断请求时,先来先服务的调度策略并不总是适用
⏹决定中断优先级的主要决定因素
♦中断源的急迫性;
♦设备的工作速度;
♦数据恢复的难易程度;
♦要求处理机提供的服务量;
中断优先级的划分示例
1.机器检验出错中断;
2.程序性错误和调用管理程序
3.外部事件中断
4.输入输出中断
5.重新启动
中断响应顺序的动态调整
当中断优先级确定后,中断响应的顺序也就随之确定了。
若想临时调整中断服务顺序,那么可行的方案就是——引入“可变的中断屏蔽字”
在固定的中断响应顺序下,改变中断的处理顺序通过中断屏蔽完成
通道的原理与类型
⏹字节多路通道
连接在通道上的各个设备轮流占用一个时间片(通常<100微秒)来传输一个字节
字节多路通道的结构:
由多个子通道构成,相互之间并行操作,以字节宽度分时进入通道
⏹选择通道
在数据传送期内只进行一次设备选择,被选中的设备独占通道,将其欲传送的信息一次全部传送完毕。
适用于优先级高的高速外围设备
⏹数组多路通道
多个设备分时共享一个多路通道。
设备一旦被选中,传输一个定长的数据块
可以使设备的准备操作与传输操作重叠,具有很高的数据传输速率和设备利用率
通道流量分析
通道极限流量:
字节通道1/(Ts+Td)、选择通道1/(Ts/n+Td)、数组多路通道1/(Ts/k+Td)
通道实际流量:
对于字节多路通道,通道实际流量是指连接在该通道上的所有设备的数据传输率之和;对于选择通道或数组通道,通道实际流量是指连接在该通道上的所有设备中流量最大的那一个
如何解决设备不能被及时响应的问题:
增加通道的最大流量,保证所有设备的数据传输请求能够及时得到通道的响应;动态改变设备的优先级,例如,临时提高设备D5的优先级;增加一定数量的数据缓冲器,特别是对优先级比较低的设备
*******************************************************************************
⏹段式、页式虚拟存储器
◆地址映像与变换
段式管理:
⏹程序由多个在逻辑上相互独立的段(Segment)组成
⏹程序在主-辅存之间的调入调出以程序段为单位
⏹每一道程序在系统中都有一个段表(SegmentTable),段表指出了该道程序的每一段是否调入主存,该段在主存中的首地址以及该段的长度。
段式管理的多用户虚地址结构为:
基号(程序号)、段号、段内位移
基号用于在段基地址寄存器组(基号、段大小、段基址)中查询段基址,段基址+段号可查询出段表中对应段地段基址,段基址+段内位移即为所需的程序段的物理地址
页式管理:
⏹程序空间等分成固定大小的页(称为虚页,Page,页面);
⏹主存空间等分成固定大小的页(称为实页,Pageframe,页框);
⏹引入页表(PageTable)来记录虚页号与实页号之间的映射关系
页式管理的多用户虚地址结构为:
用户标志、用户虚页号、页内位移
通过用户标识转换成页表基址寄存器中的基号,从而查出页表基地址;基地址+用户虚页号=页地址;页地址+业内位移=程序地址
段页式管理:
用户标识+段号+页号+页内位移
◆快表的实现
由于程序的局部性,在一段时间内,对页表的访问总是集中在有限的几行上。
为避免访问主存中的页表,一个专门用来存储当前正在使用的若干个页表项的存储体就被引入到CPU中,它的名字叫做变换旁视缓冲器(Translation-LookasideBuffer,TLB)
由于TLB能明显地加快虚地址到实地址的变换速度,所以国内很多文献俗称其为“快表”
◆页面替换
确定替换算法的关键因素:
是否有较高的主存命中率;算法是否易于实现,辅助软硬件的成本是否低
随机算法(RAND)
先进先出算法(FIFO)
◆替换原则:
最早进入主存的页被最先替换掉。
◆实现机制:
计数器
最近最少使用算法(LRU)
优化替换算法(OPT)
⏹影响主存命中率的主要因素
◆程序的地址流;
◆替换算法;
◆主存页面的大小;
◆分配给该道程序的实页数;
◆调度策略
⏹Cache的实现
◆地址映像与变换
⏹全相联映像
主存地址:
主存块号+块内地址;cache地址:
cache块号+块内地址
主存块号和cache块号的对应关系存在由专门硬件实现的目录表中
⏹直接相联映象
主存地址:
区号+区内块号+块内地址;cache地址:
cache块号+块内地址
查对应cache每个块对应存储的内存区号的区号表,若匹配直接访问cache的对应块号
⏹组相联映象
主存地址:
区号+组号+区内块号+块内地址;cache地址:
组号+组内块号+块内地址
查对应cache每个组对应存储的内存区号的区号表,若匹配则查询组对应的相联访问存储器,查出对应块
⏹段相联映象
将Cache和主存储器分成具有相同块数的段;段间采用全相联方式;段内采用直接相联方式
◆Cache的透明性分析
5.Cache与主存内容的一致性问题
⏹Cache的内容发生变化,主存中的对应内容没有发生变化;
⏹主存的内容发生变化,Cache中的相应内容没有发生变化
解决方法:
写回法,CPU执行写操作时,只写入到Cache,仅当需要被替换时,才将被写入过的Cache块送入主存;写直达法,利用处理机与主存之间的直接通路,在写入到Cache的同时,通过此通路直接写入主存;另外,多个处理机共享主存交换信息改成共享Cache交换信息,就不存在Cache与主存内容不一致的问题了。
6.Cache与Cache内容的一致性问题(对于对称多处理系统SMP)
产生原因:
在SMP系统中,每台处理机可能都带有自己的Cache,主存中的同一内容在不同的Cache中可能有多个副本
1播写法:
处理机写入Cache时,不仅写入到自己Cache的目标块和主存中,还把信息播写到所有Cache有此单元的地方,或者让所有Cache有此单元的块作废
2控制某些共享信息不得进入Cache
3目录表法:
内容不在本地Cache时,看它是否在其它的Cache中。
*******************************************************************************
机器指令的解释分为:
取指、分析、执行。
如果cpu内部有先行指令缓冲队列,则取指操作很快,所以可以把机器指令解释看作只有分析和执行。
“重叠解释”需要解决的控制问题:
1跳转指令问题
当遇到条件转移指令,且转移成功时,“重叠方式”就退化成“顺序方式”。
所以,在重叠方式的机器中要尽量减少条件转移指令的使用。
如果出现“条件转移指令”,应采用“延迟转移技术”来保证重叠效率不下降
2邻近指令间可能出现的相关问题,包括操作数相关和指令相关
相关:
由于一段机器语言程序的邻近指令之间存在某种关联,为了避免出错而使它们不能同时被解释的现象,就称为发生了“相关(Hazard)”
⏹相关处理
1.指令相关的处理
检测“指令相关”。
若发生,则作废“指缓栈”中的相关指令,重新取指。
禁止修改指令。
可保证程序的可再入性和程序的递归调用,但降低程序的灵活性。
利用“执行”指令解决指令相关,使其转化为“数相关”
2.内存空间数相关
推后读
主存可能会同时收到来至不同部件的操作请求,而单端口的主存一个时刻只能接受一个请求。
就需要“存控”按照优先级进行排队。
只要把“写数”的优先级安排得高于“存数”,就自然解决了主存空间的数相关问题。
3.通用寄存器组相关
通用寄存器组数相关:
推后读
1.推后“分析k+1”的读到“执行k”结束时
2.推后“分析k+1”的读到“执行k”把结果送入L3时
基址值相关(B相关)或变址值相关
1.一次相关推后处理
2.采用相关专用通路解决B二次相关
3.
流水线:
⏹流水线的应用要点:
只有连续提供同类任务才能充分发挥流水线的效率。
对指令流水线:
尽量减少因条件分支造成断流
对于操作部件:
通过编译技术,尽量提供连续的同类操作
⏹流水线处理机的主要性能
吞吐率TP(ThroughputRate)TPmax=1/△t
加速比SP(SpeedRatio)
效率Ef(Efficiency)
⏹影响流水线的因素
流水线只有连续不断的流动,不出现断流,才能获得高效率。
如果处理不当,会使流水线效率显著下降。
造成流水线断流的主要原因是:
相关
⏹指令相关、主存操作数相关和通用寄存器组的操作数相关及基址值变址值相关被称为局部相关。
这会造成流水线功能段的停顿(流水线空泡),降低了流水线的吞吐率和效率。
局部相关的基本处理方法
(1)推后后续指令对相关单元的读,直至在先的指令写入完成;
⏹
(2)设置相关专用通路,将运算结果经相关专用通路直接送入所需部件;转移指令和其后的指令之间存在关联,使之不能同时进入流水线解释。
导致整个流水线的停顿,故称为全局相关。
全局相关造成的流水线吞吐率和效率的下降要比局部相关造成的下降严重得多
全局性相关的处理方法
1.猜测法
2.加快和提前形成条件码
3.采用延迟转移技术
4.加快短循环程序的处理
向量处理机:
将向量数据表示和流水线技术结合起来,构成向量流水处理机,简称为向量处理机(VectorProcessor)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机体系结构