ToB企服应用市场:ToB评测及商务社交产业平台

标题: 系统架构设计师-第1章计算机组成与体系结构 [打印本页]

作者: 伤心客    时间: 2024-3-29 01:42
标题: 系统架构设计师-第1章计算机组成与体系结构
第1章计算机组成与体系结构

1. 计算机系统组成

计算机系统是一个硬件和软件的综合体,可以把它看成按功能划分的多级层次结构。
系统软件支持应用软件的运行,为用户开发应用软件提供平台,用户可以使用它,但不能随意修改它。常用的系统软件有操作系统、语言处理程序、连接程序、诊断程序和数据库管理系统等。
1.1. 计算机硬件的组成

硬件通常是指一切看得见,摸得到的设备实体。原始的冯•诺依曼(VonNeumann)计算机在结构上是以运算器为中心的,而发展到现在,已转向以存储器为中心了。图1-1所示为计算机最基本的组成框图。

1.2. 计算机系统结构的分类

计算机的发展经历了电子管和晶体管时代、集成电路时代(中小规模、大规模、超大规模、甚大规模、极大规模)。目前,世界最高水平的单片集成电路芯片上所容纳的元器件数量已经达到80多亿个。
1.3. 复杂指令集系统与精简指令集系统

在计算机系统结构发展的过程中,指令系统的优化设计有两个截然相反的方向,一个是增强指令的功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统来实现,这种计算机系统称为复杂指令系统计算机(ComplexInstructionSetComputer,CISC);另一个是尽量简化指令功能,只保留那些功能简单,能在一个节拍内执行完成指令,较复杂的功能用一段子程序来实现,这种计算机系统称为精简指令系统计算机(ReducedInstructionSetComputer,RISC)。
1.4. 总线

总线是一组能为多个部件分时共享的公共信息传送线路。共享是指总线上可以挂接多个部件,各个部件之间相互交换的信息都可以通过这组公共线路传送;分时是指同一时刻只允许有一个部件向总线发送信息,如果出现两个或两个以上部件同时向总线发送信息,势必导致信号冲突。当然,在同一时刻,允许多个部件同时从总线上接收相同的信息。
按总线相对于CPU或其他芯片的位置可分为内部总线和外部总线两种。在CPU内部,寄存器之间和算术逻辑部件ALU与控制部件之间传输数据所用的总线称为内部总线;外部总线是指CPU与内存RAM、ROM和输入/输出设备接口之间进行通信的通路。由于CPU通过总线实现程序取指令、内存/外设的数据交换,在CPU与外设一定的情况下,总线速度是制约计算机整体性能的最大因素。
按总线功能来划分,又可分为地址总线、数据总线、控制总线三类,人们通常所说的总线都包括这三个组成部分,地址总线用来传送地址信息,数据总线用来传送数据信息,控制
总线用来传送各种控制信号。
2. 存储器系统

存储器是用来存放程序和数据的部件,它是一个记忆装置,也是计算机能够实现“存储程序控制”的基础。在计算机系统中,规模较大的存储器往往分成若干级,称为存储器系统。
传统的存储器系统一般分为高速缓冲存储器(Cache)、主存、辅存三级。主存可由CPU直接访问,存取速度快,但容量较小,一般用来存放当前正在执行的程序和数据。辅存设置在主机外部,它的存储容量大,价格较低,但存取速度较慢,一般用来存放暂时不参与运行的程序和数据,CPU不可以直接访问辅存,辅存中的程序和数据在需要时才传送到主存,因此它是主存的补充和后援。当CPU速度很高时,为了使访问存储器的速度能与CPU的速度相匹配,又在主存和CPU间增设了一级Cache。Cache的存取速度比主存更快,但容量更小,用来存放当前最急需处理的程序和数据,以便快速地向CPU提供指令和数据。因此,计算机采用多级存储器体系,确保能够获得尽可能高的存取速率,同时保持较低的成本。
多层级的存储体系之所以能用低投入换来较高的存取速率,得益于局部性原理。局部性原理是指程序在执行时呈现出局部性规律,即在一较短的时间内,程序的执行仅局限于某个部分。相应地,它所访问的存储空间也仅局限于某个区域。程序局部性包括时间局部性和空间局部性,时间局部性是指程序中的某条指令一旦执行,不久以后该指令可能再次执行。产生时间局部性的典型原因是由于程序中存在着大量的循环操作;空间局部性是指一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。
存储器中数据常用的存取方式有顺序存取、直接存取、随机存取和相联存取四种。
2.1. 主存储器

主存用来存放计算机运行期间所需要的程序和数据,CPU可直接随机地进行读/写。主存具有一定容量,存取速度较高。由于CPU要频繁地访问主存,所以主存的性能在很大程度上影响了整个计算机系统的性能。根据工艺和技术不同,主存可分为随机存取存储器和只读存储器。
2.2. 辅助存储器

2.3. Cache存储器

Cache的功能是提高CPU数据输入输出的速率,突破所谓的“冯•诺依曼瓶颈”,即CPU与存储系统间数据传送带宽限制。高速存储器能以极高的速率进行数据访问,但因其价格高昂,如果计算机的内存完全由这种高速存储器组成,则会大大增加计算机的成本。通常在CPU和内存之间设置小容量的Cache。Cache容量小但速度快,内存速度较低但容量大,通过优化调度算法,系统的性能会大大改善,仿佛其存储系统容量与内存相当而访问速度近似Cache。
Cache通常采用相联存储器(ContentAddressableMemory,CAM)。CAM是一种基于数据内容进行访问的存储设备。当对其写入数据时,CAM能够自动选择一个未用的空单元进行存储;当要读出数据时,不是给出其存储单元的地址,而是直接给出该数据或者该数据的一部分内容,CAM对所有存储单元中的数据同时进行比较,并标记符合条件的所有数据以供读取。由于比较是同时、并行进行的,所以,这种基于数据内容进行读写的机制,其速度比基于地址进行读写的方式要快很多。
3. 流水线

流水线技术把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构 负责执行,而这些机构可以同时并行工作。在任一时刻,任一任务只占用其中一个执行机构,这样就可以实现多个任务的重叠执行,以提高工作效率。
3.1. 流水线周期

流水线应用过程中,会将需要处理的工作分为 N  个阶段,最耗时的那一段所消耗的时 间为流水线周期。如:使用流水线技术执行 100 条指令,每条指令取指 2ms,分析 4ms,执行 1ms,则流水线周期为 4ms。
3.2. 计算流水线执行时间

延续上面的场景,将 1  个任务的执行过程可分成 N  个阶段, 假设每个阶段完成时间 为 t,则完成该任务所需的时间即为 Nt。若以传统的方式,则完成 k  个任务所需的时间是 kNt;而使用流水线技术执行, 且花费的时间是 Nt+(k-1)t。也就是说, 除了第 1  个任务需要 完整的时间外,其他都通过并行,节省下了大量的时间。所以流水线的执行时间可通俗的表达为:流水线执行时间=第 1 条指令的执行时间+(n-1)流水线周期
注:n代表需要处理的任务数量。
在考试时,又需要特别注意一个细节问题,流水线的执行时间计算,其实进一步可以分理论情况与实践情况两种不同的处理方式。下面以实例进行说明。
例:某计算机系统, 一条指令的执行需要经历取指(2ms)、分析(4ms)、执行(1ms)三个阶段, 现要执行 100  条指令,利用流水线技术需要多长时间?
理论上来说,1 条指令的执行时间为:2ms+4ms+1ms=7ms。所以: 理论流水线执行时间=2ms+4ms+1ms+(100-1)4=403ms。
而实际上,真正做流水线处理时,考虑到处理的复杂性,会将指令的每个执行阶段的时 间都统一为流水线周期, 即 1 条指令的执行时间为:4ms+4ms+4ms=12ms 。 所以: 实际流水线执行时间=4ms+4ms+4ms+(100-1)-4=408ms。
3.3. 流水线的吞吐率

流水线的吞吐率(Though Put rate ,TP)是指在单位时间内流水线所完成的任务数量或 输出的结果数量。有些文献也称为平均吞吐率、实际吞吐率。计算流水线吞吐率的最基本的公式如下:

3.4. 流水线的加速比

在流水线中,因为在同一时刻,有多个任务在重叠地执行,虽然完成一个任务的时间与单独执行该任务相近(甚至由于分段的缘故,可能更多一些),但是从整体上看完成多个任务所需的时间则大大减少。
完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线 的加速比(speedup ratio)。如果不使用流水线,即顺序执行所用的时间为T0,使用流水线的执行时间为Tk,则计算流水线加速比的基本公式如下:

如果流水线各个流水段的执行时间都相等(设为Dt),则一条k段流水线完成n个连续任务所需要的时间为(k+n-1)Dt。如果不使用流水线,即顺序执行这n个任务,则所需要的时间为nkDt。因此,各个流水段执行时间均相等的一条k段流水线完成n个连续任务时的实际加速比为

代码匠心

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4