









还剩58页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
计算机组成原理计算机组成原理是计算机科学与工程专业的核心基础课程,研究计算机系统的基本组成、工作原理和实现方法本课程将深入探讨计算机硬件系统的结构、功能及其相互关系,从微观到宏观全面剖析计算机系统的工作机制通过本课程的学习,您将了解计算机各个硬件部件的工作原理,掌握计算机系统的设计方法,并为进一步学习计算机体系结构、操作系统等高级课程奠定坚实基础课程介绍与学习目标1课程内容2学习目标本课程涵盖计算机系统的基本掌握计算机系统的基本组成及组成、数据表示、指令系统、工作原理;理解数据在计算机处理器设计、存储系统、输入/中的表示和处理方法;熟悉指输出系统以及并行与可靠性技令系统设计;了解处理器、存术等核心知识点课程分为理储器、输入/输出系统的组织结论讲解和实验两部分,通过二构;掌握高速缓存、虚拟存储者的结合帮助学生深入理解计等先进技术;具备计算机硬件算机工作原理系统设计的基本能力3能力培养通过本课程的学习,学生将能够分析和解决计算机硬件系统中的基本问题,具备进一步学习计算机体系结构的能力,为从事计算机系统设计与开发奠定理论基础计算机系统的基本概念计算机系统组成计算机系统层次计算机系统性能计算机系统由硬件系统和软件系统两大部现代计算机系统通常分为多个抽象层次,计算机系统性能由多种因素决定,包括处分组成硬件系统包括中央处理器、存储从底层的电子电路、逻辑门电路、微程序理器速度、存储容量和访问速度、输入输器、输入输出设备等物理部件;软件系统级,到指令系统结构、操作系统,再到高出带宽等评价计算机系统性能通常使用包括系统软件和应用软件,用于控制和使级语言和应用程序每个层次都对下一层吞吐量、响应时间、利用率等指标系统用硬件资源完成各种任务次提供抽象和接口,隐藏了复杂的实现细性能提升需要各个部分的协调优化节冯诺依曼体系结构·存储程序概念冯·诺依曼体系结构的核心思想是存储程序,即指令和数据都存储在同一个存储器中,计算机按照程序的指令顺序依次执行这一概念奠定了现代计算机设计的基础,使计算机具有通用性和灵活性五大基本组成部分冯·诺依曼计算机由五个基本部分组成运算器、控制器、存储器、输入设备和输出设备其中运算器和控制器共同构成中央处理器(CPU)这种结构简洁明了,有利于计算机的设计和制造顺序执行的工作方式冯·诺依曼计算机工作时,控制器从存储器中取出指令,解码后发出控制信号,指挥运算器执行运算,需要时从存储器取数或向存储器存数,并与输入输出设备交换数据这种工作方式也被称为控制流驱动现代冯·诺依曼计算机的发展虽然现代计算机在实现上有许多创新,如流水线、多核、缓存等技术,但基本仍遵循冯·诺依曼体系结构的基本原则冯·诺依曼瓶颈(指令和数据共享存储器和总线导致的性能限制)一直是研究者试图突破的问题计算机的基本组成部分存储器用于存储程序和数据,包括主存储器(内存)和辅中央处理器(CPU)助存储器(外存)主存一般采用RAM实现,具有负责执行指令和数据处理,包含运算器和控制器两易失性;辅助存储器如硬盘、固态硬盘等用于长期大部分现代CPU通常集成了算术逻辑单元、寄存保存数据2器组、控制单元和高速缓存等组件1输入设备将信息从外部世界传输到计算机系统中,常见的输入设备包括键盘、鼠标、扫描仪、摄像头等3输入设备将人类可理解的信息转换为计算机可处5理的数字信号总线系统输出设备连接各个部件的公共通道,用于传输数据、地址和4控制信号总线系统是计算机各部件之间进行信息将计算机处理的结果以人类可理解的形式展现出来,交换的高速通道,对系统性能有重要影响常见的输出设备包括显示器、打印机、音箱等输出设备将计算机内部的数字信号转换为人类可感知的信息运算器的功能与结构运算器的主要功能运算器是计算机进行数据处理的核心部件,主要功能包括算术运算(如加、减、乘、除)、逻辑运算(如与、或、非、异或)、移位运算以及各种数据传送操作运算器执行控制器发出的各种操作命令,并将处理结果存入指定的位置算术逻辑单元(ALU)ALU是运算器的核心组成部分,负责执行各种算术和逻辑运算典型的ALU包含算术单元、逻辑单元、移位单元和状态寄存器ALU的设计直接影响计算机的运算速度和功能寄存器组寄存器是运算器中用于暂存数据的高速存储单元,包括通用寄存器和专用寄存器通用寄存器可用于存放操作数和中间结果;专用寄存器如程序计数器、指令寄存器、状态寄存器等有特定用途寄存器的数量和结构是CPU架构的重要特征数据通路数据通路是连接ALU、寄存器组和存储器的数据传输线路,负责在各个部件之间传送数据现代处理器的数据通路设计十分复杂,通常采用流水线结构提高处理效率控制器的功能与结构取指令1控制器首先从程序计数器(PC)获取当前指令的地址,然后从存储器中读取该地址的指令,并将指令放入指令寄存器(IR)完成取指令后,PC自动加1(或加指令字长),指向下一条要执行的指令指令译码2控制器分析指令寄存器中的指令,识别出指令的操作码和操作数地址译码器将操作码转换为一系列控制信号,这些信号将控制计算机各个部件执行相应的操作执行指令3根据译码后的控制信号,控制器指挥运算器、存储器和输入/输出设备执行指令规定的操作这可能包括从存储器读取操作数、执行算术或逻辑运算、存储结果等一系列操作中断处理4在指令执行过程中,控制器需要响应来自外部设备或内部异常的中断请求中断处理涉及保存当前程序状态、转向中断服务程序执行,并在中断处理完成后恢复原程序的执行存储器的分类与层次结构寄存器1CPU内部的高速存储单元高速缓存(Cache)2介于CPU与主存之间的高速小容量存储器主存储器(内存)3计算机的主要存储设备,通常为DRAM固态硬盘(SSD)4基于闪存的高速辅助存储设备硬盘驱动器(HDD)5大容量机械辅助存储设备存储器系统采用层次结构设计,是为了平衡速度、容量和成本之间的矛盾从寄存器到硬盘,访问速度依次降低,而存储容量和每比特成本依次增加高层次的存储器保存最常用的数据,低层次的存储器保存较少使用的数据存储层次结构利用程序的局部性原理(时间局部性和空间局部性)来提高系统性能当程序访问某一层次的数据时,如果找到所需数据(命中),则直接使用;否则(未命中),需要从下一层次调取数据块到本层次,这个过程称为缺失处理输入输出设备概述输入设备输出设备外部存储设备输入设备用于将人类可理解的信输出设备将计算机处理的结果以外部存储设备既可以作为输入设息转换为计算机可处理的数字信人类可理解的形式展现出来主备,也可以作为输出设备,用于号常见的输入设备包括键盘、要包括显示器、打印机、绘图仪、数据的长期保存包括硬盘驱动鼠标、触摸屏、扫描仪、摄像头、音箱等输出设备的性能指标包器、固态硬盘、光盘驱动器、U盘麦克风等每种输入设备都有特括分辨率、色彩深度、刷新率等,等这类设备的主要性能指标包定的信息捕获方式和数据转换过这些指标直接影响用户体验括存储容量、读写速度和可靠性程网络设备网络设备使计算机能够与其他计算机系统交换数据包括网卡、调制解调器、路由器等这类设备的性能主要由数据传输速率、延迟和可靠性决定随着云计算的发展,网络设备的重要性日益提高计算机性能指标性能指标描述计算方法时钟频率CPU内部时钟的振荡频率,表示以赫兹Hz为单位,如
3.2GHzCPU每秒能执行的时钟周期数CPI每条指令平均所需的时钟周期数CPI=时钟周期数/指令条数MIPS每秒执行的百万条指令数MIPS=指令条数/执行时间×10^6FLOPS每秒执行的浮点运算次数FLOPS=浮点操作数/执行时间吞吐量单位时间内完成的任务数量吞吐量=任务数/时间响应时间从提交任务到获得结果所需的时间响应时间=完成时间-提交时间带宽单位时间内传输的数据量带宽=数据量/传输时间计算机性能评估需要综合考虑多种性能指标,不同的应用场景关注的性能指标也不同例如,科学计算应用更关注FLOPS,而事务处理系统更关注吞吐量和响应时间性能评估通常使用标准基准程序(Benchmark)进行,如SPEC、TPC等需要注意的是,单一性能指标往往不能全面反映计算机系统的性能,还需要考虑功耗、成本、可靠性等因素此外,不同架构的计算机系统之间的性能比较需要特别谨慎,应该使用相同的工作负载和测试方法数据的表示与存储二进制编码计算机内部使用二进制表示所有数据,这是因为二进制数字(0和1)易于用电子元件的两种状态(如有电和无电)表示计算机中的一切信息,无论是数字、字符、图像还是声音,最终都转换为二进制序列存储和处理数值数据表示整数在计算机中通常采用原码、反码或补码表示现代计算机普遍采用补码表示有符号整数,因为它使加减运算统一实数(浮点数)则通常采用IEEE754标准,将数值分为符号位、指数位和尾数位表示字符数据表示字符在计算机中通过字符编码方案表示,如ASCII、Unicode等ASCII编码使用7位二进制数表示128个基本字符;Unicode(如UTF-
8、UTF-16)则能表示世界上几乎所有文字系统的字符,广泛应用于国际化软件多媒体数据表示图像、音频和视频等多媒体数据在计算机中通过特定的编码方式表示和压缩例如,图像可使用BMP、JPEG、PNG等格式;音频可使用WAV、MP3等格式;视频可使用AVI、MP4等格式这些编码方式往往涉及复杂的压缩算法定点数和浮点数定点数浮点数定点数是小数点位置固定的数值表示方式根据小数点的位置,浮点数采用科学计数法的原理,将数值表示为尾数和指数的组合,定点数可分为定点整数(小数点在最右边)和定点小数(小数点小数点位置可浮动现代计算机普遍采用IEEE754标准表示浮点在某个固定位置)定点数表示简单,运算速度快,但表示范围数有限•单精度(32位)1位符号位,8位指数,23位尾数•整数通常采用补码表示,能够统一加减运算•双精度(64位)1位符号位,11位指数,52位尾数•正数的原码、反码和补码相同•指数采用偏置表示法,单精度偏置值为127•负数的补码为其绝对值的原码按位取反后加1•尾数采用规格化表示,隐含最高位为1•n位补码能表示范围-2^n-1到2^n-1-1•特殊值±
0、±∞、NaN(非数值)数值运算加法和减法无符号整数加法无符号整数加法采用二进制加法规则进行,每位相加并考虑进位当结果超出表示范围时,会产生溢出计算机通常使用进位标志位检测无符号数加法的溢出有符号整数加法有符号整数加法采用补码表示进行,可以统一处理正数和负数的加法运算补码加法的过程与无符号数相同,但溢出检测不同当两个同号数相加结果变号时,表示发生了溢出整数减法减法可以转换为加法来实现A-B=A+-B在补码表示下,-B就是B的补码,因此减法可以统一为加法运算这简化了硬件设计,因为只需实现加法器,减法可通过加法器完成浮点数加减法浮点数加减法比整数复杂,主要包括以下步骤1对阶(调整小指数的尾数,使两个操作数的指数相等);2尾数加减;3规格化(调整结果使尾数满足规格化要求);4舍入(根据舍入模式处理多余位);5溢出处理数值运算乘法和除法整数乘法基本原理1二进制整数乘法类似于十进制乘法,基于移位和加法操作乘数的每一位与被乘数相乘(实际上是0或被乘数本身),然后根据位置进行移位,最后将所有部分积相加得到最终结果整数乘法改进算法2Booth算法是一种高效的二进制乘法算法,通过分析乘数中的0和1序列,减少加法次数改进的Booth算法(如两位Booth算法)进一步提高了效率现代处理器通常采用Wallace树或Dadda乘法器等并行结构实现高速乘法整数除法基本原理3二进制整数除法采用试商-减-移位的方法,与十进制长除法类似除法运算比乘法更复杂,执行时间也更长常用的除法算法包括恢复余数法和不恢复余数法浮点数乘除法4浮点数乘法指数相加(减去偏置值),尾数相乘,然后进行规格化和舍入浮点数除法指数相减(加上偏置值),尾数相除,然后规格化和舍入浮点乘除法需要特别处理特殊值(如
0、无穷大、NaN)算术逻辑单元()的设计ALU的基本结构算术单元设计逻辑单元设计的性能优化ALU ALU算术逻辑单元是CPU的核心部算术单元主要实现加、减、增逻辑单元实现AND、OR、NOT、提高ALU性能的方法包括采件,负责执行算术和逻辑运算量、减量等运算核心部件是XOR等逻辑运算这些运算直用高速加法器结构(如超前进典型的ALU由算术单元、逻辑全加器,通过全加器的级联可接通过逻辑门电路实现,结构位加法器);使用专用的乘法单元、移位单元和状态寄存器以构成多位加法器为提高效相对简单现代ALU通常能支器和除法器;引入流水线结构;组成各单元通过多路选择器率,常采用超前进位加法器、持位操作指令,如位测试、位并行处理多个运算等现代处连接,根据操作码选择不同的选择进位加法器等结构乘法设置、位清除等,为系统软件理器中的ALU通常针对常见运功能电路执行相应的运算和除法通常基于加减法和移位提供灵活的位级操作能力算进行了高度优化,某些处理运算实现器还包含专门的向量处理单元指令系统概述指令系统的特性指令的基本概念指令系统是计算机软硬件的接口,决定了计算机的基本功能一个好的指令系统应指令是计算机执行操作的最基本单位,由具备完备性、规整性、高效性和可扩展性操作码和操作数组成操作码指明要执行2的操作,操作数指明操作的数据及其所在1位置指令的分类指令可按功能分为数据传送类、算术逻辑运算类、控制类和输入输出类;按操作数3数量分为零地址、一地址、二地址和三地5址指令指令集架构演化从早期的累加器架构到现代的寄存器架构,指令集设计理念4指令集设计理念经历了多次变革,形成了指令集设计需要平衡功能丰富性与实现复CISC和RISC两大主流架构杂度,并考虑程序编码效率、执行效率和硬件实现成本等因素指令格式和寻址方式指令格式寻址方式指令格式规定了指令中各字段的位置和长度典型的指令格式包寻址方式规定了如何确定操作数的有效地址主要的寻址方式包括操作码字段、寻址方式字段和操作数地址字段指令格式的设括计需要考虑操作码数量、寻址方式种类、地址空间大小等因素•立即寻址操作数直接包含在指令中•直接寻址指令中给出操作数的内存地址指令格式可以是固定长度的,也可以是可变长度的固定长度指•寄存器寻址操作数在寄存器中,指令给出寄存器编号令处理简单但空间利用率低;可变长度指令空间利用率高但处理•寄存器间接寻址操作数的地址在寄存器中复杂现代处理器多采用混合方式,如Intel x86使用可变长度指令,ARM使用固定长度指令•基址寻址操作数地址=基址寄存器内容+偏移量•变址寻址操作数地址=基地址+变址寄存器内容•相对寻址操作数地址=PC内容+偏移量和架构比较RISC CISC比较项RISC(精简指令集计算机)CISC(复杂指令集计算机)指令特点指令数量少,长度固定,格式统一指令数量多,长度可变,格式多样寻址方式简单,种类少复杂,种类多执行方式指令大多在一个时钟周期内完成复杂指令需要多个时钟周期完成控制方式硬连线控制为主微程序控制为主寄存器数量通用寄存器多(通常32个或更多)通用寄存器少(通常16个或更少)存储器访问只有Load/Store指令访问内存多种指令可访问内存流水线设计容易实现深度流水线流水线设计相对复杂编译器要求对编译器优化要求高对编译器优化要求相对较低代表产品ARM、MIPS、RISC-V、早期x
86、x86-
64、System/360SPARCRISC和CISC各有优势,现代处理器设计往往采用两者的混合特性例如,Intel x86处理器内部将CISC指令转换为RISC微操作,结合了CISC的代码密度和RISC的执行效率ARM处理器则在保持RISC特性的基础上,添加了一些复杂指令以提高性能和降低功耗控制器的基本功能1指令周期控制控制器负责协调指令执行的各个阶段,包括取指令、指令译码、执行指令和访存/写回等阶段在每个阶段,控制器产生相应的控制信号,控制数据通路中各个部件的操作随着处理器设计的发展,指令周期控制变得越来越复杂,包含分支预测、乱序执行等高级功能2时序控制控制器生成和分配时钟信号,确保各个部件在正确的时间执行操作时序控制必须考虑各种操作的延迟,确保数据在使用前已经准备好在高性能处理器中,时序控制采用复杂的动态调度机制,根据指令依赖关系和资源可用性调整执行顺序3中断处理控制器负责响应和处理各种中断请求当接收到中断信号时,控制器会暂停当前程序的执行,保存现场,跳转到中断服务程序,并在中断处理完成后恢复原程序的执行现代处理器支持多级中断优先级和嵌套中断,以处理复杂的中断场景4异常处理控制器检测和处理执行过程中的异常情况,如除零错误、非法指令、地址越界等异常处理机制与中断处理类似,但异常通常由处理器内部事件触发控制器需要精确识别异常的类型和位置,以便操作系统能够正确处理异常情况硬布线控制器基本结构硬布线控制器采用专用逻辑电路实现控制功能,主要由时序发生器、指令译码器和控制信号产生器组成时序发生器产生各个微操作时序;指令译码器分析指令操作码;控制信号产生器根据指令类型和当前阶段产生各种控制信号工作原理硬布线控制器通过组合逻辑和时序逻辑电路直接实现控制功能对每条指令的每个执行阶段,都有专门的电路产生相应的控制信号控制信号的生成依赖于指令寄存器中的操作码、状态寄存器中的状态位以及当前的时钟周期性能优势硬布线控制器响应速度快,控制效率高,特别适合指令系统简单的计算机由于控制逻辑直接由硬件实现,不需要解释微指令,因此执行速度比微程序控制器更快RISC处理器通常采用硬布线控制方式,以获得更高的性能设计缺点硬布线控制器的设计和实现复杂,电路规模大,难以修改和扩展一旦指令系统发生变化,可能需要重新设计整个控制电路此外,硬布线控制器难以实现复杂的控制功能,如异常处理、性能监控等因此,对于复杂指令集计算机,通常采用微程序控制方式微程序控制器微程序控制存储器1存储微程序和控制信息微程序计数器2指向当前执行的微指令地址微指令译码器3解析微指令,产生控制信号微操作产生逻辑4根据译码结果输出控制信号微地址形成部件5生成下一条微指令的地址微程序控制器将控制器的功能通过软件方式实现,使用存储在控制存储器中的微程序来控制计算机的操作每条机器指令对应一段微程序,微程序由一系列微指令组成,每条微指令直接产生一组微操作控制信号微程序控制的优点是灵活性高、易于修改和扩展,特别适合复杂指令集计算机通过修改微程序,可以实现新的指令功能,或者修复已发现的控制逻辑错误,而无需改变硬件电路此外,微程序控制易于实现复杂的控制功能,如异常处理、诊断功能等微程序控制的主要缺点是执行速度较慢,因为每条机器指令需要执行多条微指令为了提高性能,现代处理器通常采用水平微指令格式(增加并行度)和微程序控制与硬布线控制相结合的方式,将常用指令用硬布线实现,将复杂但不常用的指令用微程序实现流水线技术概述流水线的基本概念流水线是一种指令级并行技术,将指令执行过程分为多个阶段,各阶段可以并行执行不同指令的不同阶段类似于工业生产线,每个阶段完成特定任务,多个指令像产品一样在流水线上流动,提高了指令吞吐率流水线的优势流水线技术显著提高了处理器的吞吐量,即单位时间内完成的指令数在理想情况下,n段流水线的吞吐量是非流水线方式的n倍流水线不减少单条指令的执行时间,但增加了指令执行的并行度,提高了系统的整体性能流水线的分类根据并行处理的对象,流水线可分为指令流水线和功能流水线指令流水线将指令执行过程分段并行;功能流水线将特定功能模块(如乘法器)分段并行根据各段功能的均匀性,流水线可分为线性流水线和非线性流水线流水线性能评估流水线性能主要由吞吐率和加速比衡量吞吐率是单位时间内完成的任务数;加速比是非流水线执行时间与流水线执行时间之比流水线的理论性能受到多种因素限制,如流水线深度、各段延迟平衡程度、流水线冒险等指令流水线取指令阶段(IF)1从程序计数器(PC)指定的内存地址读取指令,并将指令送入指令寄存器(IR)同时,PC值加上指令长度,指向下一条指令现代2指令译码阶段(ID)处理器通常采用指令预取技术,提前将多条指令读入指令缓存分析指令操作码,确定要执行的操作和所需的操作数同时检查操作数是否在寄存器中,如果不在,则需要从内存加载在这个阶段,还会进行寄存器重命名、分支预测等高级处理执行阶段(EX)3执行指令指定的操作,如算术运算、逻辑运算、地址计算等对于复杂运算(如乘除法),可能需要多个时钟周期完成现代处理器4访存阶段(MEM)通常有多个功能单元,可并行执行多条指令如果指令需要访问内存(如Load/Store指令),在此阶段进行内存操作现代处理器使用多级缓存结构加速内存访问,大多数访存操写回阶段(WB)5作可以在缓存中完成,而不需要访问主存将执行结果写回到目标寄存器或内存中在这个阶段,还可能进行异常处理、条件码更新等操作流水线的最后一个阶段完成后,该指令的执行就结束了数据流水线数据流水线的概念数据流水线的设计数据流水线(也称功能流水线)是将某个功能部件的操作分解为数据流水线设计的关键是将复杂操作分解为延迟相近的多个阶段多个子操作,每个子操作由专门的硬件电路完成,各子操作间通阶段划分过细会增加流水线寄存器的开销,阶段划分过粗则会导过流水线寄存器连接与指令流水线不同,数据流水线处理的是致某些阶段成为性能瓶颈设计者需要在流水线深度和各阶段平单个操作内部的并行性衡性之间找到最佳折衷典型的数据流水线包括浮点加法器流水线、浮点乘法器流水线、数据流水线常与指令流水线结合使用,构成超流水线处理器例向量处理流水线等例如,浮点加法可分为对阶、尾数加减、规如,指令流水线的执行阶段可能包含多个数据流水线单元(如整格化、舍入等多个步骤,每个步骤可以构成流水线的一个阶段数ALU、浮点加法器、浮点乘法器等),这些单元本身又是流水线化的,从而实现多级并行流水线的冒险和处理方法结构冒险数据冒险控制冒险当多条指令在同一时刻争用同一硬件当指令之间存在数据依赖关系,后一当执行分支指令时,下一条要执行的资源时,就会发生结构冒险例如,条指令需要用到前一条指令的结果,指令地址可能改变,导致已经进入流两条指令同时需要访问内存或使用同而该结果尚未产生时,就会发生数据水线的指令无效,这就是控制冒险一个功能单元解决方法包括增加冒险解决方法包括流水线暂停解决方法包括分支预测(猜测分支硬件资源(如多个功能单元);资源(等待数据就绪);数据转发(将数走向);延迟分支(分支指令后的延仲裁(设置访问优先级);流水线暂据从产生点直接送到使用点);编译迟槽中放置无关指令);分支目标缓停(插入气泡,延迟后续指令)器优化(指令重排序,减少依赖)冲(记录分支历史);投机执行(同时执行多条路径)内存冒险当Load和Store指令访问相同内存位置,且顺序可能改变时,就会发生内存冒险解决方法包括内存依赖检测(硬件检测重叠的内存访问);内存重排序缓冲(记录内存操作顺序);内存屏障指令(强制内存操作顺序);缓存一致性协议(多处理器系统中维护数据一致性)存储系统概述存储系统的目标1提供大容量、高速度、低成本的存储存储层次结构2从快到慢寄存器、高速缓存、主存、辅存局部性原理3时间局部性和空间局部性是分层存储的理论基础存储技术4SRAM、DRAM、闪存、磁盘等多种介质并存存储系统是计算机系统的重要组成部分,负责存储程序代码和数据理想的存储系统应该容量无限大、访问速度无限快、成本无限低、可靠性无限高,但这些目标是相互矛盾的实际的存储系统采用多级存储层次结构,在这些目标之间寻求平衡计算机程序在执行过程中表现出明显的局部性特征时间局部性(最近访问过的数据很可能不久后再次被访问)和空间局部性(被访问数据附近的数据很可能即将被访问)分层存储结构正是利用这些局部性特征,在各层之间建立数据映射关系,将经常使用的数据保存在高速存储器中,从而在平均情况下获得接近高速存储器的访问性能和接近低速存储器的容量成本比主存储器的组织与构成主存的物理组织主存的寻址方式主存的访问控制主存的带宽和延迟主存储器通常由多个存储芯片组主存中的每个存储单元都有唯一主存访问由内存控制器管理,内主存性能主要由带宽(单位时间成每个芯片负责存储部分数据的地址CPU通过地址总线发送存控制器负责将CPU发出的内存内可传输的数据量)和延迟(发位或全部数据位的部分字芯片内存地址,通过数据总线传输数请求转换为对内存芯片的控制信出访问请求到获得数据的时间)的组织方式主要有按位扩展(增据,通过控制总线发送读/写信号号现代计算机的内存控制器通两个指标衡量提高带宽的方法加字长)和按字扩展(增加字数)内存地址通常采用线性编址,从0常集成在CPU或芯片组中内存包括增加数据总线宽度、提高时两种现代计算机的主存通常采开始连续编号在实际实现中,控制器实现地址映射、刷新控制、钟频率、采用多通道技术等降用内存模块(如DIMM),每个模内存地址通常分为行地址和列地访问时序控制等功能,对多种内低延迟的方法包括优化内存控制块包含多个DRAM芯片,可插在址,以减少芯片引脚数量存技术(如DDR
4、DDR5)提供器、采用新型内存技术(如主板插槽上统一接口SDRAM的突发传输模式)等随机存取存储器()RAM1静态RAM(SRAM)SRAM采用触发器存储信息,每个存储单元通常由六个晶体管组成SRAM的优点是速度快、不需要刷新;缺点是集成度低、成本高、功耗大SRAM主要用于高速缓存和寄存器文件等对速度要求高的场合目前的SRAM访问时间可达几纳秒2动态RAM(DRAM)DRAM采用电容存储信息,每个存储单元由一个晶体管和一个电容组成DRAM的优点是集成度高、成本低;缺点是需要定期刷新(通常每几毫秒刷新一次)、速度相对较慢DRAM是现代计算机主存的主要实现技术电容上的电荷会逐渐泄漏,因此需要周期性刷新以保持数据3同步DRAM(SDRAM)SDRAM是一种与系统时钟同步工作的DRAM,可在时钟的上升沿或下降沿传输数据SDRAM引入了突发传输模式,可在一次寻址后连续传输多个数据,提高了数据传输率现代SDRAM多采用双数据率(DDR)技术,在时钟的上升沿和下降沿都传输数据,进一步提高了带宽4RAM的发展趋势RAM技术不断发展,从早期的DDR发展到DDR5,传输速率不断提高未来RAM技术的发展方向包括进一步提高带宽和降低延迟;降低功耗,特别是静态功耗;探索新型非易失性存储技术,如磁性RAM(MRAM)、相变存储器(PCM)等,试图结合RAM的高速和ROM的非易失性优点只读存储器()ROM的基本特点的主要类型ROM ROM只读存储器是一种非易失性存储器,断电后仍能保持数据传统根据可编程性和擦写方式,ROM主要分为以下几类ROM在制造时写入数据,之后只能读取不能修改ROM主要用于•掩模ROM(MROM)内容在制造过程中通过掩模确定,无存储固定程序和数据,如计算机的启动程序(BIOS)、控制程序、法更改字符发生器等•可编程ROM(PROM)出厂时为空白,用户可一次性编程,与RAM相比,ROM的主要优点是非易失性、可靠性高、成本低;之后不可更改缺点是写入速度慢或无法修改,读取速度也通常低于RAM随着•可擦除可编程ROM(EPROM)可通过紫外线擦除后重新编技术发展,现代ROM多采用可擦写的变体形式,如EPROM、程EEPROM和闪存等•电可擦除可编程ROM(EEPROM)可通过电信号擦除单个字节•闪存(Flash Memory)结合了EPROM和EEPROM的优点,可电擦除,但以块为单位高速缓存存储器()原理Cache的工作原理CacheCache的基本概念基于局部性原理,CPU先检查所需数据是否在Cache中,若命中则直接读取,否则从主存调高速缓存是介于CPU和主存之间的小容量、高入数据块到Cache,同时可能替换掉一些旧数速存储器,用于缓存经常使用的数据和指令,据2减少CPU对主存的访问次数,从而提高系统性1能的组织结构Cache现代CPU通常采用多级Cache结构L1Cache分为指令Cache和数据Cache,直接集3成在CPU核心内部;L2和L3Cache容量更大5但速度较慢,可能由多个核心共享优化技术Cache包括预取技术(提前加载可能用到的数据)、的性能指标Cache4写缓冲(加速写操作)、非阻塞Cache(允许主要包括命中率(命中次数/总访问次数)、命多个缺失同时处理)和虚拟索引物理标记(支中时间(Cache访问延迟)和缺失代价(从下持虚拟内存)等一级存储读取数据的时间)优化这些指标是Cache设计的核心目标映射方式Cache直接映射全相联映射组相联映射多级缓存映射直接映射是最简单的Cache映射方全相联映射允许主存中的任意数据组相联映射是直接映射和全相联映现代处理器通常采用多级Cache结式,主存中的每个数据块只能映射块可以放置在Cache的任意位置射的折中方案Cache分为多个组,构,不同级别的Cache可能采用不到Cache中的唯一位置映射关系这种方式最灵活,可以最大限度地每个组包含多个行主存块先映射同的映射方式例如,L1Cache通常为Cache行号=主存块号%减少冲突缺失,提高命中率但全到特定组,然后可以放置在该组的可能采用直接映射或低路数组相联Cache行数直接映射的优点是硬相联映射需要同时比较所有Cache任意行中常见的有2路、4路、8以追求低延迟;L2/L3Cache则可件实现简单、查找速度快;缺点是行的标记,硬件复杂度高,功耗大,路组相联等组相联映射兼顾了直能采用高路数组相联以追求高命中冲突率高,当频繁访问映射到同一只适用于小容量Cache(如TLB)接映射的简单性和全相联映射的灵率多级Cache结构在性能、功耗Cache行的不同主存块时,会导致查找通常采用内容寻址存储器活性,是现代Cache最常用的映射和复杂度之间取得了良好平衡频繁替换,降低命中率(CAM)实现方式替换算法Cache随机替换算法(Random)随机替换算法从可替换的Cache行中随机选择一行进行替换这种算法实现简单,不需要维护任何状态信息,硬件开销最小虽然没有利用访问模式信息,但在某些情况下性能表现可能与复杂算法相当随机替换适用于特定工作负载或作为其他算法的备选项先进先出算法(FIFO)先进先出算法替换最早加入Cache的数据块FIFO算法需要记录每个Cache行的加入时间或顺序算法简单,硬件实现相对容易,但没有考虑数据访问频率,可能会替换掉经常使用的块,导致性能下降FIFO在某些硬件受限的环境中使用最近最少使用算法(LRU)最近最少使用算法替换最长时间没有被访问的数据块LRU算法需要维护每个Cache行的访问时间信息,完全LRU实现复杂度较高LRU算法利用了时间局部性原理,通常能获得较好的命中率现代Cache多采用LRU的近似实现,如伪LRU(PLRU)算法最不经常使用算法(LFU)最不经常使用算法替换访问次数最少的数据块LFU需要为每个Cache行维护一个访问计数器LFU能很好地处理频繁访问的数据,但对访问模式变化的适应性较差在实际系统中,通常采用计数器定期衰减或老化机制来适应访问模式的变化虚拟存储器概念虚拟内存的基本概念虚拟存储器是一种内存管理技术,为程序提供一个假象,使其认为自己拥有连续的可用内存空间(虚拟地址空间),而实际上这些内存空间可能分布在物理内存和磁盘上虚拟存储器使得程序可以使用比实际物理内存更大的地址空间,同时简化了程序的内存分配和管理虚拟地址和物理地址虚拟地址是程序使用的地址,是一个逻辑概念;物理地址是实际内存单元的地址两者通过地址转换机制映射,通常由内存管理单元(MMU)硬件支持每个进程有自己的虚拟地址空间,多个虚拟地址可能映射到同一物理地址(共享内存)页面置换算法当需要将新页面调入内存而没有空闲页框时,需要选择一个页面换出到磁盘常用的页面置换算法包括最佳置换算法(OPT)、先进先出算法(FIFO)、最近最少使用算法(LRU)及其变种、时钟算法(CLOCK)等好的页面置换算法应能减少页面错误率虚拟存储器的优势虚拟存储器带来多项好处扩大了程序可用的地址空间;简化了程序的内存分配,支持动态链接和共享库;提供了内存保护机制,增强系统安全性;支持内存共享,便于进程间通信;实现了内存的按需调页,提高了物理内存利用率页式存储管理页式存储管理基本原理页表结构页式存储管理将虚拟地址空间和物理内存空间分别划分为大小相页表是实现虚拟页到物理页框映射的核心数据结构每个进程通等的页(Page)和页框(Frame)程序中的虚拟页可以映射到常有自己的页表,页表项存储了物理页框号、存在位、修改位、任意的物理页框,不要求连续这种方式解决了内部碎片问题,访问位、保护位等信息页表存储在内存中,页表基址寄存器提高了内存利用率,并简化了内存分配和回收过程(PTBR)指向当前进程的页表虚拟地址通常由页号和页内偏移量两部分组成地址转换时,将由于虚拟地址空间很大,单级页表可能占用过多内存为解决这虚拟页号通过页表映射为物理页框号,再结合页内偏移量形成物个问题,现代系统通常采用多级页表、倒排页表或散列页表等结理地址页内偏移量在虚拟地址和物理地址中保持不变构多级页表将页号进一步划分,只有实际使用的部分需要创建页表;倒排页表以物理页框为索引,减少了页表大小;散列页表使用散列函数快速查找页表项段式存储管理1段式存储管理基本原理2段表结构段式存储管理将程序的虚拟地址空间划分为若干逻辑独立的段(Segment),段表是实现段号到物理地址映射的数据结构,每个进程有自己的段表段表如代码段、数据段、堆栈段等每个段的长度可以不同,对应程序的逻辑实项通常包含段的基址(段在物理内存中的起始地址)、段长度和访问权限等体物理内存分配以段为单位,每个段在内存中占据连续空间段式管理符信息段号用于索引段表,得到段的基址;段内偏移量加上段基址形成物理合程序员的思维方式,便于程序的编写和模块化管理地址系统通过比较段内偏移量和段长度,可以检测地址越界3段式管理的优缺点4段页式结合的思想段式管理的主要优点是符合程序员的逻辑观念,支持程序的模块化,便于共纯段式管理存在外部碎片问题,纯页式管理则缺乏对程序逻辑结构的支持享和保护,且没有内部碎片缺点是可能产生外部碎片,因为不同段的长度将两者结合形成段页式存储管理,既保持了程序的逻辑结构,又减小了外部不同,分配和回收后可能留下难以利用的小块内存此外,由于要求段在内碎片在段页式系统中,先将程序分段,然后每段再分页,内存分配以页为存中连续存放,大段的分配可能较困难单位虚拟地址由段号、页号和页内偏移三部分组成段页式存储管理段页式存储管理结构1段页式存储管理结合了段式和页式的优点,将程序先按逻辑关系划分为段,再将每个段划分为固定大小的页这样既保持了程序的逻辑结构(便于共享和保护),又避免了外地址转换过程2部碎片(因为内存分配以页为单位)段页式系统中,每个进程有一个段表,每个段又有一个页表段页式系统中,虚拟地址由段号、段内页号和页内偏移三部分组成地址转换需要两级映射首先通过段号查找段表,获取该段的页表位置;然后通过段内页号查找页表,获取物理页框号;最后将物理页框号与页内偏移组合,形成最终的物理地址转换快表(TLB)3为加速地址转换,现代处理器通常使用转换快表缓存最近使用的页表项TLB是一种特殊的全相联或组相联高速缓存,包含虚拟页号和对应的物理页框号地址转换时,首先检查TLB,如果命中则直接获得物理页框号;否则通过页表进行转换,并将结果加入TLB实现考虑4TLB极大地提高了地址转换速度段页式管理比纯段式或纯页式复杂,需要更多的内存空间存储转换表,地址转换也更复杂为提高效率,现代系统通常采用多级页表、TLB等优化技术在实现中,段往往对应程序的逻辑实体(如函数、模块),而页则是内存管理的基本单位某些64位系统实际上采用了简化的段页式方案,如AMD64架构总线系统概述总线的定义1计算机内部共享的通信线路总线的功能2连接CPU、内存和I/O设备,传输数据、地址和控制信号总线的特性3共享性、竞争性、标准化、模块化总线的分类4片内总线、系统总线、外部总线总线是计算机系统内各个功能部件之间传送信息的公共通道,由一组线路组成这些线路可以传输地址、数据和控制信号总线的出现使计算机系统的结构更加灵活,各部件之间的连接更加简单,便于系统的扩展和升级总线系统的主要特性包括共享性(总线被多个设备共享使用);竞争性(在某一时刻只能有一个设备主动使用总线);标准化(总线规范定义了电气和功能标准);模块化(设备可以方便地连接到总线上或从总线上断开)根据连接的部件和传输的信息,总线可分为地址总线(单向,用于传送内存或I/O端口的地址);数据总线(双向,用于在设备间传送数据);控制总线(单向或双向,用于传送控制信号,如读/写、中断请求等)根据连接范围,可分为片内总线、系统总线和外部总线(如PCI、USB、SATA等)总线的分类与性能指标总线的分类总线的性能指标根据功能,总线可分为数据总线、地址总线和控制总线数据总总线性能的主要指标包括线是双向的,传输数据;地址总线是单向的,由CPU发出地址;•总线宽度数据总线的位数,决定一次能传送的数据量控制总线可能单向或双向,传输控制信号•总线带宽单位时间内总线上传输的数据量,单位为MB/s根据连接范围,总线可分为•总线时钟频率总线上的时钟信号频率,影响数据传输速率•片内总线连接芯片内部的各功能部件,如CPU内部总线•系统总线连接CPU、内存和I/O接口等系统主要部件•总线复用地址线和数据线复用,节省引脚但可能降低性能•外部总线连接主机与外部设备,如USB、SATA、PCIe等•总线仲裁方式决定多个设备争用总线的处理方法•总线标准如PCI、PCIe、USB等,定义了总线的电气和协议规范总线仲裁集中式仲裁分布式仲裁优先级仲裁策略总线仲裁与DMA集中式仲裁由一个仲裁器控制所有总分布式仲裁没有中央仲裁器,由各设无论是集中式还是分布式仲裁,都需直接内存访问(DMA)是I/O设备绕线请求当多个设备同时请求使用总备通过预定协议自行仲裁每个设备要确定设备优先级常见的优先级策过CPU直接与内存交换数据的技术线时,仲裁器根据预定策略选择一个都有仲裁逻辑,通过总线上的信号线略包括固定优先级(设备优先级预DMA控制器需要获得总线控制权才设备授予总线使用权集中式仲裁包相互协调常见的分布式仲裁方式有先确定不变);轮询方式(各设备轮能进行数据传输在支持DMA的系括以下几种常见方式链式查询(菊自举(自检测)仲裁和冲突检测仲裁流获得总线使用权);先到先服务统中,总线仲裁必须处理CPU和花链)、计数器定时查询、独立请求等分布式仲裁避免了中央仲裁器的(按请求到达顺序处理)优先级策DMA控制器的竞争通常DMA传输方式等集中式仲裁实现简单,但仲单点故障问题,但实现较复杂,且可略需要平衡实时性需求和公平性,避优先级较高,但也需要机制确保CPU裁器故障会导致整个总线系统瘫痪能存在饥饿问题免低优先级设备长时间得不到服务能及时获得总线访问权,避免系统响应延迟总线操作和定时总线操作类型总线上的基本操作包括读操作、写操作和块传输操作读操作由主设备发起,从设备返回数据;写操作由主设备发起并发送数据给从设备;块传输操作是连续的多次读或写操作,用于提高总线效率在多处理器系统中,还有特殊的原子操作,如读-修改-写操作,用于支持同步同步通信同步通信使用统一的时钟信号控制数据传输,所有设备必须按照预定时序工作同步通信的优点是控制简单、传输可靠;缺点是要求所有设备速度匹配,通常按最慢设备的速度工作典型的同步总线包括早期的PCI总线和一些片内总线同步总线上的控制信号和数据通常在时钟边沿有效异步通信异步通信不依赖统一的时钟信号,而是使用握手信号(如请求和确认)控制数据传输异步通信的优点是能适应不同速度的设备,传输速度由实际参与通信的设备决定;缺点是控制复杂,电路开销大异步通信常用于外设总线和一些旧系统总线,如ISA总线的某些操作模式半同步通信半同步通信结合了同步和异步通信的特点,使用时钟信号,但也允许通过特殊信号插入等待周期这种方式既保持了同步通信的简单性,又具备了一定的灵活性,能适应不同速度的设备许多现代总线采用半同步通信方式,如某些PCI总线变种和早期的SPI总线实现输入输出系统概述应用程序1最高层,提供用户接口设备无关软件2操作系统设备驱动接口设备驱动程序3特定设备的控制软件中断处理程序4处理设备发出的中断I/O接口(硬件)5连接CPU与外设的电路输入输出系统是计算机系统与外部世界交互的桥梁,负责输入数据(如从键盘读取用户输入)和输出数据(如将处理结果显示在屏幕上)I/O系统的设计直接影响计算机系统的性能、功能和用户体验现代计算机的I/O系统通常采用分层结构,从底层的硬件接口到顶层的应用程序接口,每层都提供特定功能和抽象这种分层设计使得应用程序不需要关心具体设备的细节,同时便于设备的更换和系统的扩展I/O系统面临的主要挑战包括设备种类繁多且特性各异;设备速度与CPU速度差距大;不同设备的数据格式不同;设备控制复杂且缺乏标准化为解决这些问题,现代I/O系统采用了多种技术,如设备控制器、中断机制、DMA、缓冲区、设备驱动程序等输入输出接口I/O接口的功能I/O接口(也称设备控制器或适配器)是连接CPU和外部设备的硬件电路,主要功能包括地址译码(识别CPU发出的设备地址);数据缓冲(缓存数据,协调CPU和外设的速度差异);控制和状态寄存器(存储设备状态和控制信息);数据格式转换(在设备格式和系统格式之间转换);电平转换(调整信号电压和电流水平);中断处理(生成中断请求信号并响应CPU的中断确认)I/O端口I/O端口是CPU与I/O接口之间交换信息的窗口,通常包括数据端口、控制端口和状态端口在独立编址方式中,I/O端口有专门的地址空间,通过特殊的I/O指令访问;在内存映射方式中,I/O端口被映射到内存地址空间,可以使用普通的内存访问指令操作现代计算机多采用内存映射I/O,简化了指令系统,便于编程常见I/O接口标准随着技术发展,出现了许多标准化的I/O接口,如串行接口(RS-
232、USB、SATA等)和并行接口(并行端口、SCSI等)现代计算机趋向于使用高速串行接口,如USB
3.x、雷电(Thunderbolt)、PCIe等这些标准接口定义了电气特性、信号时序、协议格式等,使不同厂商的设备能够兼容工作通用I/O控制器随着集成电路技术的发展,出现了多功能通用I/O控制器,如南桥芯片(PCH)、Super I/O芯片等这些控制器集成了多种接口功能,如USB控制器、SATA控制器、网络控制器等,简化了主板设计,提高了系统集成度现代SoC(片上系统)则进一步集成了CPU、内存控制器和各种I/O控制器,提高了系统性能和能效程序查询方式查询初始化1CPU向I/O设备发送命令,指示设备执行特定操作(如读取数据)CPU通过向控制寄存器写入命令字来实现这一步在初始化阶段,CPU还可能设置数据缓冲区地址、传输数据量等参数查询设备状态2CPU反复读取设备的状态寄存器,检查设备是否完成操作或是否准备好接收/发送数据这个过程也称为轮询(Polling)轮询通常检查状态寄存器中的特定位,如就绪位、完成位或错误位数据传输3当设备准备好后,CPU通过读取或写入数据寄存器执行实际的数据传输对于输入操作,CPU读取设备数据;对于输出操作,CPU向设备发送数据数据传输可能需要循环多次,直到所有数据传输完成结束处理4数据传输完成后,CPU检查操作是否成功,处理可能的错误情况,并进行必要的清理工作这可能包括重置设备状态、释放资源、更新状态信息等程序查询方式(又称轮询方式)是最简单的I/O控制方式,由CPU主动查询设备状态这种方式实现简单,不需要中断机制,适用于简单系统或设备响应时间很短的情况程序查询方式的主要缺点是CPU利用率低在设备操作期间,CPU必须不断查询设备状态,无法执行其他任务对于响应时间长的设备(如磁盘、打印机),这种方式会严重浪费CPU资源此外,程序查询难以处理多设备并行操作的情况,因为CPU需要依次查询各个设备中断方式中断请求I/O设备完成操作或需要服务时,通过中断控制器向CPU发送中断请求信号现代计算机系统通常采用统一的中断控制器(如Intel的APIC)管理多个设备的中断请求,实现中断的优先级控制和分发中断响应CPU执行完当前指令后,检测到中断请求,暂停当前程序执行CPU保存当前程序状态(程序计数器、状态寄存器等),获取中断向量(中断服务程序的入口地址),然后跳转到相应的中断服务程序中断处理中断服务程序执行特定设备的处理逻辑,如读取设备数据、处理错误条件、更新设备状态等在多层次操作系统中,中断服务例程通常只完成最基本的硬件操作,然后唤醒相应的设备驱动程序完成高层次处理中断返回中断服务程序执行完成后,恢复被中断程序的状态,继续执行被中断的程序恢复操作通常通过特殊的中断返回指令(如x86的IRET)实现,该指令会从栈中恢复程序计数器和状态寄存器中断方式是现代计算机系统最常用的I/O控制方式,其特点是I/O操作与CPU计算并行执行,大大提高了系统资源利用率与程序查询方式相比,中断方式允许CPU在I/O设备工作期间执行其他任务,仅在设备需要服务时才转去处理I/O事务现代计算机系统支持多级中断优先级和中断嵌套,以处理复杂的多设备操作场景中断机制已扩展到处理外部I/O事件之外的场景,如时钟中断、软件中断、异常处理等,成为操作系统的重要基础机制方式DMA控制器功能传输过程DMA DMA直接内存存取(DMA)控制器是一种特殊的硬件设备,能够在一个典型的DMA传输过程包括以下步骤CPU最小干预下,控制外设和内存之间的数据传输DMA控制器•CPU初始化DMA控制器,设置内存地址、传输数据量、传输的主要功能包括方向等参数•存储器地址计数与更新•CPU启动外部设备和DMA控制器,然后继续执行其他任务•传输数据计数与更新•DMA控制器请求总线控制权•数据缓冲与传输•获得总线控制权后,DMA控制器控制数据从设备传输到内存或•总线仲裁与控制从内存传输到设备•中断管理•传输完成后,DMA控制器释放总线,并向CPU发送中断信号•CPU响应中断,处理数据或启动下一次传输DMA控制器通常包含多个通道,每个通道可以独立控制一个设备的数据传输现代计算机中,许多外部设备控制器(如网卡、硬盘DMA传输可以采用不同的工作模式,如单字节传输、突发传输和控制器)都集成了DMA功能块传输等,针对不同的应用场景和设备特性进行优化外部设备与计算机的连接外部设备通过各种接口与计算机系统连接这些接口既包括物理连接器和电缆,也包括通信协议和标准常见的外部接口包括USB(通用串行总线),广泛用于连接键盘、鼠标、打印机等设备;HDMI和DisplayPort,主要用于视频和音频传输;PCI Express,用于高性能设备如显卡;SATA,主要用于存储设备;Thunderbolt,结合了PCIExpress和DisplayPort功能的高速接口接口标准的发展趋势是速度更快(如从USB
2.0的480Mbps到USB4的40Gbps);功能更强(如供电能力增强,从USB
2.0的
2.5W到USB PowerDelivery的100W);更加通用(一个接口支持多种功能,如Thunderbolt同时支持数据传输、视频输出和供电);物理尺寸更小(如从标准USB接口到微型USB和USB Type-C)磁盘存储器磁盘的物理结构磁盘的性能指标传统硬盘驱动器(HDD)由多个盘片、磁头、主轴电机和控制电路组成每个盘片表面涂有磁性材料,分为多个同心圆的磁盘性能的主要指标包括平均寻道时间(磁头在不同磁道之间移动的平均时间,通常几毫秒);平均旋转延迟(等待目磁道,每个磁道又分为若干扇区数据以扇区为单位存储,每个扇区通常存储512或4096字节数据标扇区旋转到磁头下方的平均时间,对于7200RPM硬盘约为
4.17ms);数据传输率(从磁盘读取或写入数据的速度,现代硬盘可达数百MB/s);平均访问时间(寻道时间+旋转延迟+传输时间)磁盘的工作原理RAID技术读取数据时,磁头检测磁性介质上的磁化状态,将其转换为电信号;写入数据时,磁头产生磁场改变介质的磁化状态磁RAID(独立磁盘冗余阵列)是一种将多个物理磁盘组合为一个逻辑单元的技术,用于提高存储性能、容量或可靠性常盘控制器负责管理磁头定位、数据读写和错误检测等操作现代硬盘采用多种技术提高性能和可靠性,如垂直记录技术、见的RAID级别包括RAID0(条带化,提高性能但无冗余);RAID1(镜像,提供数据冗余);RAID5(带奇偶校验的缓存机制、错误纠正码等条带化,平衡性能和冗余);RAID6(双重奇偶校验,提供更高可靠性)等光盘存储器1光盘的基本原理光盘存储器是一种使用激光技术读写数据的存储设备数据以微小的凹坑(pit)和平台(land)的形式存储在光盘表面读取时,激光束照射到光盘表面,根据反射光的强弱区分凹坑和平台,从而识别数据;写入时(对可写光盘),激光器产生高能量激光改变介质的物理或化学特性2光盘的类型根据技术特点,光盘主要分为以下几类CD(最早的光盘格式,容量约700MB);DVD(更高密度的光盘,容量
4.7GB至17GB);BD(蓝光光盘,使用蓝紫色激光,容量25GB至128GB)根据读写特性,可分为只读型(如CD-ROM)、一次写入型(如CD-R)和可重写型(如CD-RW)光盘结构通常包括基板、记录层、反射层和保护层3光盘的数据组织光盘上的数据以螺旋形的单轨方式组织,从内向外排列与硬盘不同,光盘采用恒定线速度(CLV)或分区CLV方式旋转,即随着读取位置从内向外移动,光盘的旋转速度逐渐降低,保持数据的线速度基本恒定光盘使用特定的文件系统(如ISO
9660、UDF)组织数据4光盘的应用与发展光盘曾是重要的数据存储和交换媒介,广泛用于软件分发、音乐、电影和数据备份等领域随着闪存、网络存储和流媒体技术的发展,光盘的使用逐渐减少未来光盘技术主要向更高密度(如全息光盘)和特殊应用(如长期归档)方向发展,但在消费领域已逐渐被其他技术取代显示器和打印机显示器打印机显示器是计算机最重要的输出设备,负责将数字信息转换为人类可视的打印机将数字信息转换为实体文档主要类型包括图像现代显示器主要有以下几种类型•激光打印机利用激光束在感光鼓上形成静电图像,然后吸附碳粉•液晶显示器(LCD)使用液晶分子调控光线通过量,结构包括背并转印到纸上,最后通过加热定影特点是打印质量高、速度快、光源、偏振片、液晶层和彩色滤光片优点是轻薄、功耗低;缺点适合大量打印,但成本相对较高是视角有限,响应时间较长•喷墨打印机通过喷嘴将微小墨滴精确喷射到纸上形成图像优点•发光二极管显示器(LED)实际上是使用LED作为背光源的LCD是色彩还原好、可打印多种介质、初始成本低;缺点是打印速度较显示器与传统CCFL背光相比,LED背光更节能、寿命更长、色慢,耗材成本高彩更丰富•热敏打印机利用热敏纸遇热变色的特性打印图像结构简单、无•有机发光二极管显示器(OLED)每个像素自发光,无需背光源需墨粉或墨水,但打印质量有限,热敏纸保存时间短常用于收据、优点是对比度高、响应速度快、视角广、可柔性显示;缺点是寿命标签等临时性文档打印相对较短,成本高•3D打印机一种增材制造设备,通过逐层堆积材料构建三维物体•量子点显示器(QLED)在LCD基础上使用量子点材料提高色彩材料包括塑料、金属、陶瓷等3D打印技术正广泛应用于快速原型表现量子点可以精确发射特定波长的光,提供更广的色域和更高制作、定制化生产和医疗领域的亮度键盘和鼠标键盘的工作原理鼠标的工作原理触摸屏技术新型输入设备键盘是最基本的输入设备,将按键动鼠标是一种指向设备,将物理移动转触摸屏结合了输入和输出功能,允许随着技术发展,出现了多种创新输入作转换为数字信号现代键盘主要有换为屏幕光标的移动根据工作原理,用户直接与显示内容交互主要技术设备,如手写笔(精确绘图和手写三种类型薄膜键盘(使用薄膜开关,鼠标主要分为机械鼠标(使用滚球包括电阻式触摸屏(通过压力使两识别);手势识别设备(如Leap成本低但手感较差);机械键盘(使和机械传感器,已基本淘汰);光学层导电层接触);电容式触摸屏(利Motion,通过摄像头捕捉手部动用独立机械开关,手感好但成本高);鼠标(使用LED和光电传感器检测表用人体电容变化,目前最流行);红作);语音输入设备(将语音转换为剪刀脚键盘(介于两者之间,多用于面移动);激光鼠标(使用激光代替外触摸屏(使用红外发射器和接收器文本或命令);眼动追踪设备(通过笔记本电脑)键盘控制器负责扫描LED,精度更高)鼠标通常有2-3检测遮挡);声波触摸屏(利用表面眼球运动控制界面);脑机接口(直按键状态,检测按键按下和释放,生个按键和滚轮,某些高级鼠标还有额声波反射原理)现代触摸屏多支持接解读脑电波信号)这些设备为特成对应的扫描码,并通过接口(如外的功能键和精确调节装置多点触控,实现缩放、旋转等复杂手定用户群体和应用场景提供了更自然、USB)发送给计算机势操作直观的交互方式并行技术概述并行计算的动机并行计算的基本概念单处理器性能提升已接近物理极限(频率墙、功耗墙、内存墙)并行计算成为提高计算能并行计算是同时使用多个计算资源解决计算问力的主要途径,从多核处理器到大规模超级计题的技术通过将问题分解为可以同时处理的算机都采用并行架构2多个部分,并行计算可以显著提高处理速度和1处理能力并行化的层次并行化可以在多个层次实现指令级并行(流水线、超标量);线程级并行(多线程处理3器);进程级并行(多核处理器);节点级并5行(分布式系统)并行计算性能评估评估并行系统性能的主要指标包括加速比(与并行计算的挑战4串行执行相比的速度提升)、效率(加速比与并行计算面临的主要挑战包括并行任务划分处理器数量之比)和可扩展性(增加处理器后和负载均衡;通信和同步开销;数据一致性和性能的提升程度)内存访问冲突;并行算法设计和并行程序开发难度分类法Flynn分类指令流数据流典型系统SISD单一单一传统单处理器系统SIMD单一多个向量处理器、GPUMISD多个单一容错系统、流水线MIMD多个多个多处理器系统、集群Flynn分类法是根据指令流和数据流的数量对计算机系统进行分类的方法,由Michael Flynn于1966年提出指令流是指令序列,数据流是操作数序列这一分类法简洁明了,至今仍被广泛使用SISD(单指令流单数据流)是传统的顺序计算模型,一次只执行一条指令,处理一个数据项典型代表是早期的单处理器计算机现代处理器虽然采用了流水线等技术,但基本架构仍属于SISD类型SIMD(单指令流多数据流)模型下,一条指令同时在多个数据元素上执行相同操作这种结构适合处理规则的数据并行任务,如图像处理、科学计算等现代处理器中的SIMD指令集(如Intel的SSE/AVX、ARM的NEON)和图形处理器(GPU)都属于这类MISD(多指令流单数据流)模型理论上存在,但实际应用较少在此模型中,多个处理单元对同一数据执行不同指令某些特殊系统,如航天器控制系统中的多重冗余设计,可以视为MISD的应用MIMD(多指令流多数据流)是最通用的并行模型,多个处理单元同时执行不同指令,处理不同数据现代多核处理器、多处理器系统、计算机集群和分布式系统都属于MIMD结构MIMD系统通常按照内存组织分为共享内存系统和分布式内存系统结构SIMDSIMD基本结构向量处理器图形处理器(GPU)SIMD指令集扩展单指令流多数据流(SIMD)结构由向量处理器是一种典型的SIMD实现,GPU是当前最成功的SIMD架构实现,现代通用处理器都包含SIMD指令集一个控制处理器和多个处理单元组成专门处理向量运算向量处理器包含包含大量简单的处理核心,组织为多扩展,如Intel的MMX、SSE、AVX控制处理器负责取指令和解码,然后专门的向量寄存器(可存储多个数据个计算单元每个计算单元包含多个系列,ARM的NEON等这些扩展向所有处理单元广播指令各处理单元素)和向量功能单元(可同时对多处理元素,共享控制逻辑和指令缓存添加了专门的SIMD寄存器和指令,元同时执行相同的操作,但处理不同个数据执行相同操作)向量处理器GPU采用SIMT(单指令多线程)模可在单个CPU时钟周期内同时处理多的数据元素SIMD还包括互连网络,还支持向量加载/存储指令,可在内型,在硬件层面支持成百上千线程并个数据元素SIMD指令主要用于多允许处理单元之间进行数据交换,以存和向量寄存器之间高效传输数据块发执行GPU特别适合处理高度并媒体处理、科学计算和机器学习等计及全局共享内存或分布式本地内存存早期超级计算机如Cray-1是典型的向行的计算任务,除图形渲染外,还广算密集型应用,可显著提高这类应用储数据量处理器,现代处理器也普遍包含向泛应用于科学计算、人工智能、加密的性能编译器通常能自动将适合的量指令扩展货币挖矿等领域代码向量化,充分利用SIMD指令的优势结构MIMD共享内存MIMD共享内存MIMD系统中,所有处理器通过总线或交叉开关访问同MIMD基本特征一物理内存这类系统也称为多处理器系统或对称多处理(SMP)系统共享内存模型编程相对简单,但随着处理器数多指令流多数据流(MIMD)是最通用的并行计算架构,由多个量增加,内存访问争用和缓存一致性问题会限制系统可扩展性可独立工作的处理单元组成,每个单元执行自己的指令流,处理自己的数据流MIMD系统具有高度的灵活性,可以同时运行不21同的程序或同一程序的不同部分分布式内存MIMD分布式内存MIMD系统中,每个处理器有自己的局部内存,通过互连网络进行通信这类系统也称为多计算机系统或集群系3统分布式内存模型可扩展性好,适合构建大规模系统,但编5程复杂度高,通常需要使用消息传递接口(如MPI)进行处理异构MIMD系统器间通信异构MIMD系统包含不同类型的处理单元,如CPU、GPU、专4混合MIMD架构用加速器等,各自执行最适合的任务这种设计针对不同计算特现代高性能计算系统通常采用混合架构,结合共享内存和分布式性进行优化,提高整体性能和能效现代超级计算机和移动设备内存模型的优势典型结构是由多个共享内存节点(每个节点包都广泛采用异构计算架构含多核处理器)通过高速网络连接形成的集群这种架构结合了SMP的易编程性和分布式系统的可扩展性多处理器系统多处理器系统分类1按处理器组织方式划分为紧密耦合系统和松散耦合系统紧密耦合多处理器2共享内存和I/O设备,处理器通过内部总线连接松散耦合多处理器3各处理器有独立内存和I/O系统,通过通信网络连接多核处理器4单芯片集成多个处理器核心,共享缓存和接口多处理器系统中,内存访问模型是关键设计因素统一内存访问(UMA)模型中,所有处理器访问任何内存位置的时间相同,实现简单但扩展性有限非统一内存访问(NUMA)模型中,处理器访问本地内存快于远程内存,提高了大规模系统的性能和可扩展性,但增加了编程复杂度缓存一致性是多处理器系统的重要问题当多个处理器缓存同一内存位置的数据时,必须确保所有处理器看到一致的数据视图缓存一致性协议分为窥探(Snooping)协议和基于目录(Directory-based)协议两大类窥探协议适用于小规模系统,所有缓存通过总线监听内存操作;目录协议适用于大规模系统,使用集中式目录记录数据共享状态多处理器互连结构决定了系统的通信性能和可扩展性常见的互连结构包括总线(结构简单但带宽有限)、交叉开关(提供高带宽但硬件复杂)、网状网络(适合大规模系统)和混合结构随着处理器核心数量增加,片上网络(NoC)技术成为多核处理器内部互连的主流方案并行算法简介问题分解策略数据并行算法任务并行算法并行算法性能分析并行算法设计的第一步是将问题分解数据并行算法适用于对大量数据执行任务并行算法将问题分解为可并发执并行算法性能主要受计算与通信比例、为可并行执行的子任务主要分解策相同操作的场景,如向量/矩阵运算、行的不同子任务,每个处理器执行不负载均衡程度和并行开销影响略包括任务分解(将问题分解为相图像处理等数据并行将数据集分割同的任务这种方法适用于异构计算Amdahl定律指出,程序中的串行部分对独立的子任务);数据分解(将数为多个部分,每个处理器执行相同算环境或任务性质差异较大的问题任限制了可获得的最大加速比据集分割,不同处理器处理不同数据法但处理不同数据数据并行算法易务并行通常使用任务依赖图表示任务Gustafson定律补充说明,随着问题规块);流水线分解(将串行流程分解于编写和扩展,特别适合SIMD架构,间关系,调度算法需要考虑负载均衡、模增大,并行算法的效率有可能提高为多个阶段,不同阶段并行处理)但需要注意数据划分的平衡和边界处任务依赖性和通信开销任务并行特评估并行算法时,需考虑加速比、效好的分解应最大化并行度,同时最小理问题MapReduce就是一种成功的别适合MIMD架构,但任务划分和调率、可扩展性和硬件资源利用率等多化线程间通信和同步开销大规模数据并行处理模型度较为复杂方面因素计算机可靠性概述可靠性的基本概念计算机可靠性是指系统在规定条件下和规定时间内正确执行其功能的能力可靠性的量化指标包括平均无故障时间(MTBF)、平均修复时间(MTTR)、可用性(MTBF/MTBF+MTTR)和可靠度(在特定时间内无故障运行的概率)随着计算机系统在关键应用中的广泛使用,可靠性设计变得越来越重要故障分类计算机系统故障可分为硬件故障(如电子元件失效、电源问题);软件故障(如设计缺陷、编程错误);操作故障(如人为错误、环境问题);暂时性故障(如电磁干扰、辐射引起的软错误)和永久性故障不同类型故障需要不同的检测和处理机制当今系统中,软件故障和暂时性硬件故障占比越来越高可靠性设计原则提高计算机系统可靠性的基本原则包括故障避免(通过严格的设计方法和高质量元件减少故障发生);故障检测(及时发现系统中的故障);故障隔离(防止故障扩散影响其他部分);故障恢复(通过冗余或重试等机制从故障中恢复)可靠性设计应贯穿系统的整个生命周期,从需求分析到退役维护可靠性分析方法评估和提高系统可靠性的主要方法包括故障树分析(FTA)—从顶层事件向下分析故障原因;故障模式与影响分析(FMEA)—从底层元件向上分析故障影响;马尔可夫模型—对系统状态转换进行建模;蒙特卡洛模拟—通过随机模拟估计系统可靠性这些方法辅助设计者理解系统故障机制和改进系统架构差错检测与纠正1奇偶校验奇偶校验是最简单的差错检测方法,通过添加一个校验位使数据中1的总数为奇数(奇校验)或偶数(偶校验)奇偶校验可以检测单比特错误,但无法检测双比特错误或确定错误位置实现简单,开销小(仅增加一位),但纠错能力有限,主要用于对可靠性要求不高的场合,如早期通信和某些存储系统2循环冗余校验(CRC)CRC是一种强大的差错检测技术,基于多项式除法原理数据被视为一个多项式,与特定的生成多项式进行运算,得到校验值附加到原始数据后CRC能够检测所有单比特和双比特错误,以及大多数突发错误常用的CRC标准包括CRC-16和CRC-32CRC广泛应用于网络通信、存储系统和数据压缩中,是数据完整性验证的重要手段3汉明码汉明码是一种能够检测双比特错误并纠正单比特错误的编码方案通过在数据中特定位置插入校验位(奇偶位),汉明码可以定位单个错误位的位置并进行纠正标准汉明码7,4使用3个校验位保护4个数据位汉明码实现相对简单,纠错开销适中,常用于内存系统和某些通信信道扩展汉明码增加一个总体奇偶位,可以检测双比特错误4纠删码(ECC)现代计算机系统广泛使用更强大的纠删码,如BCH码和Reed-Solomon码这些编码能够检测和纠正多比特错误,特别适合处理突发错误ECC内存使用单芯片纠错双芯片检测(SECDED)码,可以纠正单比特错误并检测双比特错误,显著提高内存可靠性更复杂的纠删码用于硬盘存储、光盘和长距离通信等场景,这些编码通常通过专用硬件电路实现计算机系统的容错设计冗余技术1冗余是容错设计的基本方法,通过增加额外的硬件、软件或信息资源来提高系统可靠性主要冗余类型包括硬件冗余(如备份组件);信息冗余(如错误检测和纠正码);时间冗余(如重复操作);软件冗余(如不同实现的相同功能模块)N模冗余(NMR)是常见的硬件冗余形式,其中N个相同模块并行工作,通过投票机制确定最终输出双重和三重模块冗余2双重模块冗余(DMR)使用两个相同模块并行工作,当两者输出不一致时触发错误检测DMR主要用于错误检测而非纠正三重模块冗余(TMR)使用三个相同模块并行工作,通过多数表决确定正确输出TMR可以容忍任何一个模块的故障,广泛应用于航空航天和核电等关键系统TMR的变种包括自适应投票(根据历史可靠性调整投票权重)和混合冗余(结合不同类型的冗余技术)3RAID存储技术冗余磁盘阵列(RAID)是存储系统容错的典型例子,通过多个磁盘组成阵列提高可靠性和/或性能常见的RAID级别包括RAID1(镜像)—数据同时写入两个或多个磁盘;RAID5—数据和奇偶校验信息分布存储,可容忍单盘故障;RAID6—使用双重校验,可容忍双盘故障现代存储系统还采用更复杂的RAID变种和分布式冗余策略,如纠删码存储故障恢复机制4故障恢复机制允许系统在故障发生后恢复正常运行常用的恢复技术包括检查点(周期性保存系统状态);回滚恢复(返回到之前的正确状态);前向恢复(利用冗余信息重建状态);热备份(备用组件随时准备接管);冷备份(发生故障后激活备用组件)现代高可用性系统通常结合多种故障恢复机制,并辅以故障预测和主动维护技术,最大限度减少故障影响课程总结与展望关键知识点回顾本课程全面介绍了计算机系统的基本组成和工作原理,从冯·诺依曼体系结构出发,详细讲解了处理器设计(运算器、控制器)、存储系统(寄存器、缓存、主存、外存)、输入输出系统以及并行计算和可靠性技术我们学习了数据表示方法、指令系统设计原则、算术逻辑运算实现、流水线技术、存储层次结构、总线系统和各种I/O控制方式,建立了对计算机系统的整体认识计算机体系结构的发展趋势当前计算机体系结构的主要发展趋势包括多核与众核处理器—继续向更多核心发展;异构计算—CPU与GPU、FPGA、专用加速器等协同工作;新型存储技术—非易失性内存、存储器内计算等;片上网络(NoC)—提高多核处理器的通信效率;领域专用架构(DSA)—针对特定应用优化的专用处理器;新型并行编程模型—简化多核和分布式系统编程;量子计算—探索超越冯·诺依曼架构的全新计算范式与相关领域的联系计算机组成原理是计算机科学与工程的基础,与操作系统、编译原理、计算机网络等领域紧密相连理解硬件工作原理对于开发高性能软件、嵌入式系统和系统级应用至关重要未来的计算机专业人才需要具备硬件和软件的整合视角,能够从系统层面解决问题学习与实践建议深入学习计算机组成原理,建议理论与实践相结合—通过硬件实验加深理解;关注新技术发展—了解行业最新进展;学以致用—将所学知识应用到实际问题中;持续学习—计算机技术更新迅速,持续学习是必要的本课程为后续学习计算机体系结构、操作系统、编译原理等高级课程奠定了坚实基础。


