计算机组成与结构(性能设计)总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章:
1.what is the computer architecture
计算机体系结构是那些对程序员可见的系统属性,换句话说,这些属性直接影响到程序的逻辑执行。
2.what is the computer organization
计算机组成是实现结构规范的操作单元以及其相互连接。
组成的属性包括那些对程序员可见的硬件细节,如控制信号、计算机和外设的接口以及储存器使用的技术。
3.what is the structure of a computer system
分层性质的系统。
是由一系列互相关联的子系统,每个子系统又在结构上分层,直到分成我们所能达到的一些基本子系统的最低级。
4.what are the functions of a computer
---处理数据(Data processing)---数据的储存(Data storage)---数据传送(Data movement)---对之前的三种功能进行控制(Control)。
5.describe the principal elements of a computer
---中央处理器(CPU)---主储存器---I/O---系统互连:
6.describe the principal elements of a CPU
---控制单元---算术逻辑单元(ALU)---寄存器---CPU内部互连
第二章
1.Describe the structure of von Nuemann machine:
---主储存器---算术逻辑运算单元(ALU)---控制器---输入/输出设备(I/O)。
2.Describe the Stored Program concept
程序以某种形式与数据一同存在储存器中,编程的过程就可以简化。
这样,计算机就可以通过在储存器中读取程序来获取指令,而且通过设置一部分储存器的值就可以编写和修改程序。
3.Describe moore’s law
摩尔定律指的是单芯片上所能包含的晶体管数量每年翻一番,并且这种态势在不远的将来还会一直走下去。
4.Describe the ways to speed up the microprocessor
---流水线技术---加入cache,L1&L2cache---通过增加新的电路,减小电路间的距离来提高速度,使得性能提高---Branch prediction(转移预测)--- Data flow analysis (数据流分析)---Speculative execution(推测执行):
第三章
1.Describe three key of von Neumann architecture
---数据和指令储存在单一的“读、写储存器”中---储存器的内容通过位置寻址,而不关心储存在其中的数据类型---以顺序的形式从一条指令到下一条指令的(除非有明确的修改)执行
2.Program concept:
---A sequence of steps ---for each steps, an arithmetic or logical operation is done.---for each operation, a different set of control signals is needed.(e.g.
ADD, MOVE)
puter Components
---中央控制单元(CPU)---I/O部件 ---主存(存放暂时的代码和结果)
4.多重中断的处理方法:禁止中断和定义优先级
5.三种系统总线结构:数据总线,地址总线,控制总线。
第四章
储存器性能(memory performance):
存取时间,周期时间,传输率。
存储器层次结构:
---主板内寄存器---主板外储存器(RAM)内存---离线存储器
每位价格下降;容量增大;存取时间变长;处理器访问存储器的频率降低。
Locality of reference(储存器引用、访问的局部性)
During the course of the execution of a program, memory references tend to cluster.
Mapping Function(映射功能)
---直接映射:是最简单的映射技术,将主存中的每一块映射到一个固定可用的cache行中。
命中率低
---全相联映射:全相联映射克服了直接映射的缺点,它允许每一个主存块装入cache中的任意行。
命中率最高,成本也高。
---组相联映射:中和了直接映射的和全相联映射的优点。
替换算法:
---最近最少使用的被替换---先进先出---最不常用---随机
写策略:
写直达技术:---对所有操作都同时对主存和cache进行,以保证主存中的数据总是有效的。
缺点是产生了大量的储存通信量,可能引起瓶颈问题。
写回法:它减少了主存的写入。
只更新cache中的数据。
缺点是部分主存数据无效,I/O模块的存取只允许通过cache进行。
第五章
DRAM:利用电容充电来储存数据,位元中的电容有、无电荷分别代表二进制的1或0.需要周期地充电刷新来维持数据的储存。
SRAM:是一个数字设备,它使用与处理器相同的逻辑元件,只要电源不断,将一直保持它所存储的数据。
两者的区别:
---DRAM位元小且电路简单 ---DRAM密度高且价格低 ---DRAM要求有支持刷新的电路
---SRAM速度快,用于cache,DRAM用于住储存器
模块组织:
第七章
I/O模块
---主要功能或需求分为控制和定时,处理器通信,设备通信,数据缓冲,检错几种.
---过程:1.处理器查询I/O模块,以检查所连接设备的状态。
2.I/O模块返回设备状态。
3.如果设备运转正常,并准备就绪,则处理器通过向I/O模块发出一条命令,请求数据传送。
4.I/O模块获得来自外设的一个数据单元。
5.数据从I/O模块传送到处理器。
编址方式
---储存器映射式I/O:储存单元和I/O设备有单一的地址空间。
处理器将I/O模块的状态和数据寄存器看成储存单元一样对待,使用相同的机器指令来访问储存器和I/O设备。
---分离式I/O:让总线即有储存器的读线和写线,同时也有输入和输出的命令线。
第九章
整数表示(9.2)
符号-幅值表示法(9.2.1)
2的补码表示法(9.2.2)
不同位长之间的转换(9.2.3)
整数算数加减法的上溢规则:两个数相加,若他们同为正数或同为负数,则当且仅当结果的符号位变为相反时才出现上溢。
无符号位的整数乘法
浮点数表示
第十章
机器指令要素:---操作码 ---源操作数引用 ---结果操作数引用 ---下一指令引用 ---主存或虚存 ---处理器寄存器 ---立即数 ---I/O设备
指令表示:
ADD 加 SUB 减 MUL 乘 DIV 除 LOAD 由储存器装入 STOR 保存到储存器
指令类型:
数据处理:算数和逻辑指令;
数据储存:储存器指令;
数据传送:I/O指令;
控制:测试和分支(branch)指令。
地址数目:
有单地址指令,两地址指令,三地址指令三种方式。
单地址指令:这在早先机器中是很普遍的,其隐含地址是被称为累加器的CPU寄存器。
累加器提供一个操作数,且结果被保存回累加器。
第十一章
寻址方式:
---立即寻址:殉职的最简单的形式是立即寻址。
优点:除了取指指令外,获得操作数不要求另外的储存器访问,于是节省了一个储存器或高速缓存周期。
其缺点是数的大小受限于地址字段的长度,而在大多数指令集中此字段长度与子长度相比是比较短的。
---直接寻址:只要求一次储存器访问,而且不需要为生成地址的专门计算。
不足是只能提供有限的地址空间。
---间接寻址:让地址字段指示一个储存器字地址,而此地址处保存有操作数的全长度地址。
优点是对于N位字长来说能有2的N次方个地址可用。
缺点是为了取一个操作数,指令执行需要两次访问储存器,第一次为了得到地址,第二次才是得到它的值。
---寄存器寻址:类似于直接寻址。
唯一的不同是地址字段指的是寄存器而不是一个主存地址
优点:一是指令中需要一个较小的地址字段,二是不需要储存器访问。
缺点是地址空间十分有限。
---寄存器间接寻址:类似于间接寻址。
两种情况唯一的不同是,地址字段指的是储存器位置还是寄存器。
---偏移寻址:三种偏移寻址---相对寻址---基址寄存器寻址---变址
第十二章
指令周期: ---取址:将下一条指令由储存器读入CPU ---执行:解释操作码并完成指定的操作---中断:若中断是允许的并且有中断发生,则保存当前进程的状态并为此中断
间接周期:
流水线策略:
对处理进行如下分解---取指令(FI) ---译码指令(DI) ---计算操作数(CO) ---取操作数(FO) ---执行指令(EI) ---写操作数(WO)
写后读相关性也是真相关
读后写也是反相关
写后写是输出相关
处理分支指令
方法:---多个指令流 ---预取分支目标 ---循环缓冲器 ---分支预测 ---延迟分支
多个指令流:复制流水线的开始部分,并允许流水线同时取这两条指令,使用两个指令流.带来的问题有1.使用多个流水线,会对有寄存器和储存器访问的竞争延迟.2.在原先的分支判断还没有解决之前,可能又有另外的分支指令进入流水线.
预取分支目标: 识别出一个条件分支指令时,除了取此分支指令之后的指令外,分支目标出的指令也被取来.这个目标被保存直到分支指令被执行.若是分支发生,则目标已经被预取来了.
缓冲储存器:取址阶段维护的一个小的但极高速的储存器,含有n条最近顺序取来的指令.若一个转移将要发生,硬件首先检查转移目标是否在此缓冲器中.若是,则下一条指令由此缓冲器取得.非常适合循环或迭代.
分支预测: 预测绝不发生,预测总是发生,依操作码预测,发生/不发生切换,转移历史表.
延迟分支:改进流水性能的另一可能方法是自动重排程序中的指令,这样可以把一条分支指令移到实际所期望的位置之后.
第十三章
计算机诞生以来主要的进步有:---系列概念(family concept)---微程序式控制器(micro programmed control unit)---高速缓存存储器(cache memory)---流水(pipelining)---多个处理器(multipleprocessors)---精简指令集计算机(RISC)结构
RISC Characteristics
•One instruction per cycle
•Register to register operations
•Few, simple addressing modes
•Few, simple instruction formats
•Hardwired design (no microcode)
•Fixed instruction format
•More compile time/effort
RISC v CISC
•Not clear cut
•Many designs borrow from both
philosophies
• e.g. PowerPC and Pentium II
RISC与CISC特征对比
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。
它们的区别在于不同的CPU设计理念和方法。
早期的CPU全部是CISC架构,它的设计目的是要用最少
的机器语言指令来完成所需的计算任务。
RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图在
体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大,它们主要有:(1)指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。
对不常用的功能,常通过组合指令来完成。
因此,在RISC机器上实现特殊功能时,效率可能较低。
但可以利用流水技术和超标量技术加以改进和弥补。
而CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能。
因此,处理特殊任务效率较高。
(2)存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。
(3)程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序社设计相对容易,效率较高。
98年 Cyrix 生产的“CPU”
(4)中断:RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断。
(5)CPU:RISCCPU包含有较少的单元电路,因而面积小、功耗低;而CISCCPU包含有丰富的电路单元,因而功能强、面积大、功耗大。
(6)设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。
(7)用户使用:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC 微处理器结构复杂,功能强大,实现特殊功能容易。
(8)应用范围:由于RISC指令系统的确定与特定的应用领域有关,故RISC机器更适合于专用机;而CISC机器则更适合于通用机。
RISC流水线技术
指令周期有两个阶段:---I:取指令 ---E:执行
对于装载和保护操作需要三个阶段:---I:取指令 ---E:执行(计算存储器地址) ---储存(寄存器到储存器或储存器到寄存器操作)
E通常涉及一个ALU操作,所以分为两个子阶段:
---E1:寄存器组读 ---E2:ALU操作和寄存器写
流水线的优化:
1.延迟分支:它利用了分支指令直到下面一条指令之后才产生影响的这一天特点,在分支指令之后安排一条有用指令来替代仅为延迟的空操作。
2.循环展开:通过以下方法来提高性能的---降低循环开销---通过提升流水线性能来提高指令并行性---提高寄存器、数据高速缓存或页表快速缓存。
第十四章
什么是超标量 ---在不同流水线中独立执行指令的能力 ---对RISC和CISC同样适用 ---多数应用于RISC
限制:指令级并行性:指的是程序指令能并行执行的程度。
---真实数据相关性:写后读相关性
---反相关性:读后写相关性
---输出相关性:写后写相关性
---过程相关性:分支(发生或不发生转移)之后的指令有对分支指令的过程相关性,而且直到分支指令被执行之前它们不能去执行。
---资源冲突:资源冲突是两个或多个指令同时竞争同一资源。
资源的例子包括储存器、cache、总线、寄存器组端口和功能单元(如ALU加法器)
指令发射策略:
按序发射按序完成:严格的按照顺序执行的那个顺序发射指令,并以同样的顺序写结果。
按序发射乱序完成:
乱序发射乱序完成:
限制:I1执行要求两个执行周期
I3和I4为使用同一功能单元而发生冲突
I5依赖于I4产生的值
I5和I6为使用同一功能单元而发生冲突。
加强并行性的两种方法是:
---硬件技术 ---编译器优化技术
机器并行性:
提高性能的三种硬件技术:资源复制、乱序发射和重命名。
没有寄存器重命名而添加功能单元可能不会很有价值。
需要足够大的指令窗口。
寄存器重命名(资源复制)
本质上,寄存器由处理器硬件动态分配,并且它们与各时间点指令所需值相关。
当一个新寄存器值产生时(即当一条以寄存器为目标操作数的指令执行时),一个新寄存器分配给那个
值。
延迟分支:
RISC - Delayed Branch
•Calculate result of branch before unusable
instructions pre-fetched
•Always execute single instruction immediately
following branch
•Keeps pipeline full while fetching new instruction
stream
•Not as good for superscalar
Multiple instructions need to execute in delay slot
Instruction dependence problems
•Revert to branch prediction
超标量执行:
Superscalar Implementation
•Simultaneously fetch multiple instructions
•Logic to determine true dependencies
involving register values
•Mechanisms to communicate these values
•Mechanisms to initiate multiple
instructions in parallel
•Resources for parallel execution of
multiple instructions
•Mechanisms for committing process state
in correct order
第十五章
CPU所需要处理的事项如下:
1.操作(操作码)
2.寻址方式
3.寄存器组
4.I/O模块接口
5.内存模块接口
6.中断
微操作:一个程序的执行是由指令的顺序执行组成。
每条指令的执行是一个指令周期,每个指令周期由更短的子周期(如取址、间接、执行、中断)组成。
每个子周期的完成又涉及一个或多个更短的操作。
取址周期:
涉及到4个寄存器
---储存器地址寄存器(MAR):连接到系统总线的地址线。
它指定了读、写操作的内存地址。
---储存器缓冲寄存器(MBR):连接到系统总线的数据线。
它存放将被存入内存的值或最近从内存读取出的值。
---程序计数器(PC):保存待取的下一条指令的地址。
---指令寄存器(IR):保存最近取来的指令。
取址操作事件的顺序:
第一个时间单位 PC内容传送到MAR。
第二个时间单位被MAR指定的内存中的内容存放到MBR中,PC递增1.
第三个时间单位传送MBR的内容到IR
事物流动遵守的原则:1.事件的流动顺序必须是恰当的。
于是,(MAR<-(PC))必须先于(MBR<-内存),因为内存读取操作要使用MAR中的地址。
2.必须避免冲突。
不要试图在一个时间单位里去读、写同一个寄存器,苟泽结果是不可预料的。
间接周期:
包括了下列微操作:
t 1: MAR <- (IR(地址))
t 2: MBR <- 内存
t 3: IR(地址) <- (MBR(地址))
中断周期微操作步骤:
t 1: MBR <- (PC)
t 2: MAR <- 保存地址
PC <- 子程序地址
t 3: 内存 <- (MBR)
执行周期
e.g. ADD R1,X - add the contents of location X to
Register 1 , result in R1
•t1: MAR <- (IR address)
•t2: MBR <- (memory)
•t3: R1 <- R1 + (MBR)
ISZ X (递增,若为0则跳步)
t1: MAR ←(IR address)
t2: MBR ←(memory)
t3: MBR ←(MBR) + 1
t4: memory ←(MBR)
if (MBR) == 0 then PC ←(PC) + 1
BSA X (转移并保存地址)
t1: MAR <- (IR address)
MBR <- (PC)
t2: PC <- (IR address)
memory <- (MBR)
t3: PC <- (PC) + 1
指令周期分为:取指间接执行中断。
第十六章
使用微程序实现控制器的优点在于,简化了控制器的设计任务,实现起来即成本较低,也能减少出错机会。
硬布线控制器需要一个复杂的逻辑,用来使指令周期的众多微操作按序执行。
而微程序控制器的译码器和定序逻辑单元式很简单的逻辑电路。
微程序控制器的主要缺点是:要比采用相同或相近半导体工艺的硬布线控制器慢一些。
尽管如此,由于它的易实现性,使微程序设计成为当今CISC控制器的主导技术。
而对于RISC 处理器,由于它们的简单指令格式,一般使用硬布线控制器。
硬布线控制器与微程序控制器的对比
CISC更适于采用微程序控制,而RISC更适于采用硬布线控制逻辑。
硬布线控制器与微程序控制器相比较,在操作控制信号的形成上有较大的区别外,其它没有本质的区别。
对于实现相同的一条指令,不管是采用硬布线控制还是采用微程序控制技术,都可以采用多种逻辑设计方案,导致了各种不同的控制器在具体实现方法和手段上的区别,性能差异。
硬布线控制与微程序控制的主要区别归纳为如下方面:
实现方式
微程序控制器的控制功能是在存放微程序存储器和存放当前正在执行的微指令的寄存
器直接控制下实现的,而硬布线控制的功能则由逻辑门组合实现。
微程序控制器的电路比较规整,各条指令信号的差别集中在控制存储器内容上,因此,无论是增加或修改指令都只要增加或修改控制存储器内容即可,若控制存储器是ROM,则要更换芯片,在设计阶段可以先用RAM或EPROM来实现,验证正确后或成批生产时,再用ROM代替。
硬布线控制器的控制信号先用逻辑式列出,经化简后用电路来实现,因此,显得零乱复杂,当需要修改指令或增
加指令时就必须重新设计电路,非常麻烦而且有时甚至无法改变。
因此,微操作控制取代了硬布线控制并得到了广泛应用,尤其是指令复杂的计算机,一般都采用微程序来实现控制
功能。
性能方面
在同样的半导体工艺条件下,微程序控制的速度比硬布线控制的速度低,因为执行每条微程序指令都要从控制存储器中读取,影响了速度;而硬布线控制逻辑主要取决于电路延时,因而在超高速机器中,对影响速度的关键部分如核心部件CPU,往往采用硬布线逻辑实现。
近年来,在一些新型计算机系统中,例如,RISC(精简指令系统计算机)中,一般都选用硬布线逻辑电路
控制储存器的作用:The control unit of a processor performs two tasks: (1) It causes the processor to execute micro-operations in the proper sequence, determined by the program being executed, and (2) it generates the control signals that cause each micro-operation to be executed.
双地址字段得到下一地址的来源有:两个地址字段和指令寄存器。
单地址得到下一地址的来源是:---地址字段 ---指令寄存器代码 ---下一顺序地址
第十七章
计算机系统类型:---单指令单数据流(SISD) ---单指令多数据流(SIMD) ---多指令单数据流(MISD) ---多指令多数据流(MIMD)
对称多处理器(SMP)优点:---性能:如果可以对一台计算机完成的工作进行组织,使得某些工作部分能够并行完成,则具有多个处理器的系统与具有相同类型的单个处理器的系统相比,将产生更高的性能。
---可用性:在一个对称多处理器中,所有处理器都能完成同样的功能,故单个处理器的故障不会造成系统的停机,系统可以在性能降低的情况下继续运行。
---增量式增长:用户可以通过在系统中添加处理器来提高系统性能。
---可扩展:厂商能提供一个产品范围,它们基于系统中配置的处理器数目不同而有不同的价格和性能特征。
分时共享总线应提供如下特征:
1.寻址:必须能区别总线上各模块,以确定数据的源和目标
2.仲裁:任何I/O模块都能临时行驶主控器功能。
因此需要提供一种机制来对总线控制的
竞争请求进行仲裁,这可使用某种类型的优先级策略
3.分时复用:当一个模块正在控制总线时,其他模块是被锁住的,而且需要的话,应该挂
起它的操作直到当前的总线访问被完成。
分时共享总线:
Simplest form
•Structure and interface similar to single
processor system
•Following features provided
o Addressing - distinguish modules on bus
o Arbitration - any module can be temporary master
o Time sharing - if one module has the bus, others must
wait and may have to suspend
•Multiple processors as well as multiple I/O
modules attempting to gain access to one or
more memory module via the bus
Time Share Bus - Advantages
•Simplicity 简单性
•Flexibility 灵活性
•Reliability 可靠性
Time Share Bus – Disadvantage 缺点
•Performance limited by bus cycle time
•Each processor should have local cache
Reduce number of bus accesses
•Leads to problems with cache coherence
Solved in hardware - see later
Central Control Unit 中央控制单元优点:
Can buffer requests
Performs arbitration and timing
Pass status and control
Perform cache update alerting
Cache Coherence and MESI Protocol
Cache一致性和MESI协议
•Problem - multiple copies of same data in different caches
•Can result in an inconsistent view of memory
•Write back policy can lead to inconsistency
•Write through can also give problems unless caches monitor memory traffic Software Solutions
•Compiler and operating system deal with problem •Overhead(系统开销) transferred to compile time •Design complexity transferred from hardware to software
•However, software tends to make conservative decisions
Inefficient cache utilization
•Analyze code to determine safe periods for
caching shared variables 共享变量
.。