20xx-20xx年计算机组成原理_复习大纲内容摘要:

e=50ns/=60ns 主存与 cache的地址映射 cache的容量很小,它保存的内容只是主存内容的一个子集,且 cache与主存的数据交换是以块为单位。 地址映射即是应用某种方法把主存地址定位到 cache中。 地 址映射方式有全相联方式、直接方式和组相联方式三种 主存中一个块的 地址与块的内容一起存于 cache的行中,其中块地址存于 cache行的标记部分中。 这种方法可使主存的一个块直接拷贝到 cache中的任意一行上,非常灵活。 它的主要缺点是比较器电路难于设计和实现,因此只适合于小容量 cache采用。 全相联映射的示意图演示 : 这也是一种多对一的映射关系,但一个主存块只能拷贝到 cache的一个特定行位置上去。 cache的行号 i和主存的块号 j有如下函数关系: i=j mod m ( m为 cache中的总行数) 直接映射方式的示意图演示 : 计算机组成原理 17 本屏演示的是直 接相联映射的 Cache组织,示意图中 Cache为 8行,主存为 256块,主存的每一块只可映射到 Cache特定一行中。 如图 B0、 B8 „ B8K主存块只可映射到 Cache的第 0块, B B15„ B8K+7只可映射到 Cache的第 7块。 至于为何 B0、B8„ B255映射到 L0,而不是 B0、 B1„ B31映射到 L0是因为基于程序局部性原理 直接映射方式的优点是硬件简单,成本低。 缺点是每个主存块只有一个固定的行位置可存放,容易产生冲突。 因此适合大容量 cache采用。 这种方式是前两种方式的折衷方案。 它将 Cache分成 u组,每组 v行,主存块存放到哪个组是固定的,至于存到该组哪 一行是灵活的,即有如下函数关系: m= uv 组号 q= j mod u 组相联映射的示意图演示 : 本屏演示的是组相联 Cache的检索过程,示意图中 Cache为 8行,主存为 256块。 主存的每一块可以存入 Cache特定一组的任意行中。 如图, B0、 B4到 B252可以存入 Cache的 S0 组的任意一行中。 B B5 到 B253 可以存入 Cache 的 S1 组的任意一行中。 同理对 B B6到 B254及其它。 组相联映射方式中的每组行数 v一般取 值较小,这种规模的 v路比较器容易设计和实现。 而块在组中的排放又有一定的灵活性,冲突减少。 替换策略 cache 工作原理要求它尽量保存最新数据,必然要产生替换。 对直接映射的 cache 来说,只要把此特定位置上的原主存块换出 cache即可。 对全相联和组相联 cache来说, 就要从允许存放新主存块的若干特定行中选取一行换出。 第六章 总线系统 18 ★ 最不经常使用 (LFU)算法 LFU 算法将一段时间内被访问次数最少的那行数据换出。 每行设置一个计数器。 从 0 开始计数,每访问一次,被访行的计数器增 1。 当需要替换时,将计数值最小的 行换出,同时将这些行的计数器都清零。 这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。 ★ 近期最少使用 (LRU)算法 LRU 算法将近期内长久未被访问过的行换出。 每行也设置一个计数器, cache 每命中一次,命中行计数器清零,其它各行计数器增 1。 当需要替换时,将计数值最大的行换出。 这种算法保护了刚拷贝到 cache中的新数据行,有较高的命中率。 ★ 随机替换 随机替换策略从特定的行位置中随机地选取一行换出。 在硬件上容易实现,且速度也比前两种策略快。 缺点是降低了命中率和 cache工作效率。 计算机组成原理 19 第四章 指令系统 指令系统的发展与性能要求 指令系统的发展 计算机的程序是由一系列的指令组成的,指令就是要计算机执行某种操作的命令。 从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。 微指令:微程序级的命令,它属于硬件; 宏指令:由若干条机器指令组成的软件指令,它属于软件; 机器指令(指令):介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算。 指令系统:一台计算机中所有机器指令的集合,它是表征一台计算机性能的重要因素, 其格式与功能不仅直接影响到机器的硬件结构,也直接影响到系统软件,影响到机器的适用范围。 低级语言与硬件结构的关系 计算机语言具有高级语言和低级语言之分。 高级语言如 C, FORTRAN等,其语句和用法与具体机器的指令系统无关。 低级语言分 机器语言(二进制语言 )和 汇编语言(符号语言 ), 这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。 机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 计算机能够直接识别和执行的唯一语言是二进制语言,但人们采用符号语言或高级语言编写程序。 为此,必 须借助汇编程序或编译程序,把符号语言或高级语言翻译成二进制码组成的机器语言。 汇编语言依赖于计算机的硬件结构和指令系统。 不同的机器有不同的指令,所以用汇编语言编写的程序不能在其他类型的机器上运行。 高级语言与计算机的硬件结构及指令系统无关,在编写程序方面比汇编语言优越。 但是高级语言程序 “ 看不见 ” 机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。 为此,一些高级语言提供了与汇编语言之间的调用接口。 用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。 指令格式 操作码 指令字(简称指令)即表示一条指令的机器字。 指令格式则是指令字用二进制代码表示的结构形式,由操作码字段和地址码字段组成。 操作码字段表征指令的操作特性与功能;地址码字段通常指定参与操作的操作数的地址。 操作码字段 地址码字段 指令系统的每一条指令都有一个操作码,它表示该指令应进行什么性质的操作。 第六章 总线系统 20 不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。 组成操作码字段的位数一般取决于计算机指令系统的规模。 例如,一个指令系统只有 8条指令,则有 3位操作码就 够;如果有 32条指令,那么就需要 5位操作码。 地址码 根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。 一般的操作数有被操作数、操作数及操作结果这三种数,因而就形成了三地址指令格式。 在此基础上,后来又发展成二地址格式、一地址格式和零地址格式 操作码 A1 A2 A3 三地址指令 操作码 A1 A2 二地址指令 操作码 A1 一地址指令 操作码 零地址指令 注意 (1)零地址指令的指令字中只有操作码,而没有地址码。 (2)一地址指令常称为单操作数指令。 通常这种指令以 运算器中累加寄存器 AC中的数据为被操作数,指令字的地址码字段所指明的数为操作数,操作结果又放回累加寄存器 AC中。 (AC) OP (A) AC OP表示操作性质;( AC)表示累加寄存器 AC中的数;( A)表示内存中地址为 A的存储单元中的数或运算器中地址为 A的通用寄存器中的数; → 表示把操作(运算)结果传送到指定的地方。 (3)二地址指令常称为双操作数指令,它的两个地址码字段分别指明参与操作的两个数在内存中或运算器中通用寄存器的地址, A1作存放操作结果的地址。 (A1) OP (A2) A1 (4)三地址指令字中有三个操作数地址。 (A1) OP (A2) A3 A1 为被操作数地址,也称源操作数地址; A2 为操作数地址,也称终点操作数地址; A3 为存放结果的地址。 同样,A1, A2, A3可以是内存中的单元地址,也可以是运算器中通用寄存器的地址。 二地址指令格式中,从操作数的物理位置来说,又可归结为三种类型。 存储器 存储器( SS)型指令 :操作时都是涉及内存单元,参与操作的数都放在内存里,从内存某单元中取操作数,操作结果存放至内存另一单元中,因此机器执 行这种指令需要多次访问内存。 寄存器 寄存器( RR)型指令 :需要多个通用寄存器或个别专用寄存器,从寄存器中取操作数,把操作结果放到另一寄存器。 机器执行寄存器 寄存器型指令的速度很快,因为执行这类指令,不需要访问内存。 寄存器 存储器( RS)型指令 :执行此类指令时,既要访问内存单元,又要访问寄存器。 计算机组成原理 21 指令和数据的寻址方式 指令的寻址方式 寻址方式分为两类,既指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。 指令的寻址方式有两种,一种是顺序寻址方式,另一种是跳跃寻址方式。 序寻址方式 指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行。 从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,在执行第二条指令;接着再取出第三条指令 „„ 这种程序顺序执行的过程,我们称为指令的顺序寻址方式。 为此,必须使用程序计数器(又称指令指针寄存器) PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。 当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。 所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。 程序跳跃后,按新的指令地址开始顺序执行。 指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。 采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引用。 指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。 操作数寻址方式 形成操作数的有效地址的方法,称为操作数的寻址方式。 例如,一种单地址指令的结构如下所示,其中用 X, I, D各字段组成该指令的操作数地址。 操作码 OP 变址 X 间址 I 形式地址 D 指令中操作数 字段的地址码是由形式地址和寻址方式特征位等组合形成,因此,一般来说,指令中所给出的地址码,并不是操作数的有效地址。 因此,寻址过程就是把操作数的形式地址,变换为操作数的有效地址的过程。 在指令中不明显的给出而是隐含着操作数的地址。 例如,单地址的指令格式,没有在地址字段中指明第二操作数地址,而是规定累加寄存器 AC作为第二操作数地址, AC 对单地址指令格式来说是隐含地址。 指令的地址字段指出的不是操作数的地址,而是操作数本身。 这种方式的特点是指令执行时间很短,不需要访问内存取数。 例如:单地址的移位指令格式为 OP(移位 ) F D 这里 D不是地址,而是一个操作数。 F为标志位,当 F= 1,操作数进行右移;当 F= 0时,操作数进行左移。 直接寻址特点是:在指令格式的地址字段中直接指出操作数在内存的地址 D。 第六章 总线系统 22 采用直接寻址方式时,指令字中的形式地址 D就是操作数的有效地址 E,既 E= D。 因此通常把形式地址 D又称为直接地址。 此时,由寻址模式给予指示。 如果用 S表示操作数,那么直接寻址的逻辑表达式为 S=( E)=( D) 间接寻址的情况下,指令地址字段中的形 式地址 D 不是操作数的真正地址,而是操作数地址的指示器, D 单元的内容才是操作数的有效地址。 间接寻址方式是早期计算机中经常采用的方式,但由于两次访存,影响指令执行速度,现在已不大使用。 计算机组成原理 23 第五章 中央处理器 CPU的组成和功能 CPU的基本组成 CPU的基本部分由 运算器、 cache和 控制器 三大部分组成。 本屏演示的是 CPU的逻辑结构: CPU中至少有六类寄存器,它们是:数据缓冲寄存器 DR,数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字。 指令寄存器 IR,指令寄 存器用来保存当前正在执行的一条指令。 程序计数器PC,为了保证程序能够连续的执行下去, CPU必须具有某些手段来确定下一条指令的地址,而程序计数器 PC正是起到这种作用。 地址寄存器 AR,地址寄存器用来保存当前 CPU 所访问的内存单元的地址。 累加寄存器 AC,其功能是,当运算器的算术逻辑单元 ALU执行算术或逻辑计算时,为 ALU提供一个工作区。 状态条件寄存器 PSW,状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码。 CPU中的主要寄存器 在 CPU中至少要 有六类寄存器。 这些寄存器用来暂存一 个计算机字。 根据需要,可以扩充其数目。 下面详细介绍这些寄存器的功能与结构。 ( DR) 数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。 缓冲寄存器的作用是: (1)作为 CPU和内存、外部设备之间信息传送的中转站; (2)补偿 CPU和内存、外围设备之间在操作速度上的差别; (3)在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。 ( IR) 指令寄存器用来保存当前正在执行的 一条指令。 当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至第六章 总线系统 24 指令寄存器。 指令划分为操作码和地址码字段,由二进制数字组成。 为了执行任何给定的指令。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。