6、中央处理器
第一节 CPU
计算机中的CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。其中,控制器的作用是控制整个计算机的各个部件有条不紊地工作,它的基本功能就是从内存取指令和执行指令。
CPU是计算机的控制中心,主要由运算器、控制器、寄存器组和内部总线等部件组成。控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。它的主要功能有:从内存中取出一条指令,并指出下一条指令在内存中的位置;对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;指挥并控制CPU、内存和输入输出设备之间数据的流动。
程序计数器(PC)是专用寄存器,具有寄存信息和计数两种功能,又称为指令计数器,在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的初始内容即是程序第一条指令的地址。执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,因此修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出 的直接转移的地址得到。
指令寄存器(IR)用来保存当前正在执行的指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器(ID)就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。 地址寄存器(AR)用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。 为了保证程序指令能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。
输入输出控制,DMA无需CPU干预
计算机中主机与外设间进行数据传输的输入输出控制方法有程序控制方式、中断方式、DMA等。 在程序控制方式下,由CPU执行程序控制数据的输入输出过程。 在中断方式下,外设准备好输入数据或接收数据时向CPU发出中断请求信号,若CPU决定响应该请求,则暂停正在执行的任务,转而执行中断服务程序进行数据的输入输出处理,之后再回去执行原来被中断的任务。 在DMA方式下,CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU的负担,可以大大节省系统资源。
虚拟储存器:主存-辅存
在具有层次结构存储器的计算机中,虚拟存储器是为用户提供一个比主存储器大得多的可随机访问的地址空间的技术。虚拟存储技术使辅助存储器和主存储器密切配合, 对用户来说,好像计算机具有一个容量比实际主存大得多的主存可供使用,因此称为虚拟存储器。虚拟存储器的地址称为虚地址或逻辑地址。
中断向量:提供中断服务程序入口地址
计算机在执行程序过程中,当遇到急需处理的事件时,暂停当前正在运行的程序, 转去执行有关服务程序,处理完后自动返回原程序,这个过程称为中断。 中断是一种非常重要的技术,输入输出设备和主机交换数据、分时操作、实时系统、计算机网络和分布式计算机系统中都要用到这种技术。为了提高响应中断的速度,通常把所有中断服务程序的入口地址(或称为中断向量)汇集为中断向量表。
补码表示n^2:n字节
补码本身是带符号位的,补码表示的数字中0是唯一的,不像原码有+0和-0之分,也就意味着n位进制编码可以表示2^n个不同的数。
CPU响应DMA请求:一个总线周期之后
DMA控制器在需要的时候代替CPU作为总线主设备,在不受CPU干预的情况下,控制I/O设备与系统主存之间的直接数据传输。DMA操作占用的资源是系统总线,而CPU并非在整个指令执行期间即指令周期内都会使用总线,故DMA请求的检测点设置在每个机器周期也即总线周期结束时执行,这样使得总线利用率最高。
超长指令字:VLIM
VLIW:(Very Long Instruction Word,超长指令字)一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。
CPU区分指令和数据:指令周期的不同阶段
指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。CPU执行指令的过程中,根据时序部件发出的时钟信号按部就班进行操作。在取指令阶段读取到的是指令,在分析指令和执行指令时,需要操作数时再去读操作数。
指令寄存器位数:指令字长
指令寄存器是CPU中的关键寄存器,其内容为正在执行的指令,显然其位数取决于指令字长。
防火墙基本特点
防火墙最基本的功能就是控制在计算机网络中,不同信任程度区域间传送的数据流。防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口,隐蔽内部细节。所有的访问都经过防火墙,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。
高速缓存区
在CPU内外的高速缓存是用来解决CPU与内存之间速度、容量不匹配的问题,与外存无关,可以提高CPU访问主存数据或指令的效率。Cache不属于主存,与主存容量无关。Cache容量相对于其他存储层次,量级较小,不能扩大存储系统的存量。
分级存储:解决储存容量和速度的矛盾
计算机系统中,高速缓存一般用SRAM,内存一般用DRAM,外存一般采用磁存储器。SRAM的集成度低、速度快、成本高。DRAM的集成度高,但是需要动态刷新。磁存储器速度慢、容量大、价格便宜。因此,不同的存储设备组成分级存储体系,来解决速度、存储容量和成本之间的矛盾。
CPU访问最快:通用寄存器
计算机系统中的CPU内部对通用寄存器的存取操作是速度最快的,其次是Cache,内存的存取速度再次,选项中访问速度最慢的就是作为外存的硬盘。它们共同组成分级存储体系来解决存储容量、成本和速度之间的矛盾。
地址映射
全相联地址映射:主存的任意一块可以映象到Cache中的任意一块。
直接相联映射:主存中一块只能映象到Cache的一个特定的块中。
组相联的映射:各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放。即从主存的组到Cache的组之间采用直接映象方式,在两个对应的组内部采用全相联映象方式。
RISC:适合采用硬布线逻辑执行指令
CISC (Complex Instruction Set Computer,复杂指令集计算机)的基本思想是:进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬件化,导致机器的指令系统越来越庞大而复杂。CISC计算机一般所含的指令数目至少300条以上,有的甚至超过500条。RISC (Reduced Instruction Set Computer,精简指令集计算机)的基本思想是:通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令的执行速度,采用硬布线控制逻辑优化编译程序。在20世纪70年代末开始兴起,导致机器的指令系统进一步精炼而简单。
016.BIOS保存在主板的ROM
BIOS(Basic Input Output System)(基本输入输出系统)是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。
DMA控制方式:主存与外设(I/O设备)
直接主存存取(Direct Memory Access,DMA)是指数据在主存与I/O设备间(即主存与外设之间)直接成块传送。
相联存储器:按内容访问
计算机系统的存储器按所处的位置可分为内存和外存。按构成存储器的材料可分为磁存储器、半导体存储器和光存储器。按存储器的工作方式可分为读写存储器和只读存储器。按访问方式可分为按地址访问的存储器和按内容访问的存储器。按寻址方式可分为随机存储器、顺序存储器和直接存储器。 相联存储器是一种按内容访问的存储器。
中断
按照是否可以被屏蔽,可将中断分为两大类:不可屏蔽中断(又叫非屏蔽中断)和可屏蔽中断。不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。典型的非屏蔽中断源的例子是电源掉电,一旦出现,必须立即无条件地响应,否则进行其他任何工作都是没有意义的。典型的可屏蔽中断源的例子是打印机中断,CPU对打印机中断请求的响应可以快一些,也可以慢一些, 因为让打印机等待是完全可以的。对于软中断,它不受中断允许标志位(IF位)的影响, 所以属于非屏蔽中断范畴。
中断响应时间:中断开始-开始处理
中断系统是计算机实现中断功能的软硬件总称。一般在CPU中设置中断机构,在外设接口中设置中断控制器,在软件上设置相应的中断服务程序。中断源在需要得到CPU服务时,请求CPU暂停现行工作转向为中断源服务,服务完成后,再让CPU回到原工作状态继续完成被打断的工作。中断的发生起始于中断源发出中断请求,中断处理过程中,中断系统需要解决一系列问题,包括中断响应的条件和时机,断点信息的保护与恢复,中断服务程序入口、中断处理等。中断响应时间,是指从发出中断请求到开始进入中断服务程序所需的时间。
地址总线和数据总线的宽度
内存容量为4GB,即内存单元的地址宽度为32位。字长为32位即要求数据总线的宽度为32位,因此地址总线和数据总线的宽度都为32。 地址总线的宽度就是处理机寻址范围,若地址总线为n位,则可寻址空间为2的n次方字节。所以本题的可寻址空间为:4* 1024* 1024* 1024*位,所以地址总线宽度为32
立即寻址执行:数据包含在指令中
立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,也就取出了可以立即使用的操作数。在直接寻址中,指令中地址码字段给出的地址A就是操作数的有效地址,即形式地址等于有效地址。间接寻址意味着指令中给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。寄存器寻址指令的地址码部分给出了某一个通用寄存器的编号Ri,这个指定的寄存器中存放着操作数。
堆栈:保护断点和现场
当系统中有多个中断请求时,中断系统按优先级进行排队。若在处理低级中断过程中又有高级中断申请中断,则高级中断可以打断低级中断处理,转去处理高级中断,等处理完高级中断后再返回去处理原来的低级中断,称为中断嵌套。实现中断嵌套用后进先出的栈来保护断点和现场最有效。
全相联映像:Cache发生模块冲突次数最小
Cache工作时,需要拷贝主存信息到Cache中,就需要建变主存地址和Cache地址的映射关系。Cache的地址映射方法主要有三种,即全相联映像、直接映像和组相联映像。其中全相联方式意味着主存的任意一块可以映像到Cache中的任意一块,其特点是块冲突概率低,Cache空间利用率高,但是相联目录表容量大导致成本高、查表速度慢; 直接映像方式是指主存的每一块只能映像到Cache的一个特定的块中,整个Cache地址与主存地址的低位部分完全相同,其特点是硬件简单,不需要相联存储器,访问速度快 (无须地址变换),但是Cache块冲突概率高导致Cache空间利用率很低;组相联方式是对上述两种方式的折中处理,对Cache分组,实现组间直接映射,组内全相联,从而获得较低的块冲突概率、较高的块利用率,同时得到较快的速度和较低的成本。
不同寻址:扩大寻址空间,提高编程灵活性
寻址方式是指寻找操作数或操作数地址的方式。指令系统中采用不同寻址方式的目的是为了在效率和方便性上找一个平衡。立即寻址和寄存器寻址在效率上是最快的, 但是寄存器数目少,不可能将操作数都存入其中等待使用,立即寻址的使用场合也非常有限,这样就需要将数据保存在内存中,然后使用直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址及变址寻址等寻址方式将内存中的数据移入寄存器中。
计算储存单元
每个地址编号为一个存储单元(容量为1个字节),地址区间OOOOAOOOH〜OOOOBFFFH 共有1FFF+1个地址编号(即213),1K=1024,因此该地址区间的存储单元数也就是8K。
(+0) == (-0):补码和移码
海明校验码:2^k-1 >= n+k
利用多组数位的奇偶性检错和纠错。
浮点数的范围:阶码决定
在计算机中使用了类似于十进制科学计数法的方法来表示二进制实数,因其表示不同的数时小数点位置的浮动不固定而取名浮点数表示法。浮点数编码由两部分组成:阶码(即指数,为带符号定点整数,常用移码表示,也有用补码的)和尾数(是定点纯小数,常用补码表示,或原码表示)。因此可以知道,浮点数的精度由尾数的位数决定,表示范围的大小则主要由阶码的位数决定。
DMA输入输出控制:用不到CPU
中断方式、程序查询方式和无条件传逵方式都是通过CPU执行程序指令来传送数据的,DMA方式下是由DMA控制器直接控制数据的传送过程,CPU需要让出对总线的控制权,并不需要CPU执行程序指令来传送数据。
程序局限性
程序的局限性表现在时间局部性和空间局部性:1.时间局部性是指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行;2.空间局部性是指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。 题干描述的是空间局部性。
保存中断现场:返回正确执行
CPU接收到中断请求,会将自己正在执行的程序A的状态进行保存,即保存现场,然后转去处理提交中断申请的程序B,完成程序B之后,再回到程序A中断的断点接着完成程序A。保存现场的目的是为了能正确返回到被中断的程序A继续执行。
总线广义地讲,任何连接两个以上电子元器件的导线都可以称为总线。通常可分为4类:
①芯片内总线。用于在集成电路芯片内部各部分的连接。
②元件级总线。用于一块电路板内各元器件的连接。
③内总线,又称系统总线。用于构成计算机各组成部分(CPU、内存和接口等)的连接。
④外总线,又称通信总线。用计算机与外设或计算机与计算机的连接或通信。 连接处理机的处理器、存储器及其他部件的总线属于内总线,按总线上所传送的内容分为数据总线、地址总线和控制总线。
总线复用:减少信息
总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路,通过总线复用方式可以减少总线中信号线的数量,以较少的信号线传输更多的信息。
相联存储器:不是按照寻址方式划分的一类存储器
存储系统中的存储器,按访问方式可分为按地址访问的存储器和按内容访问的存储器;按寻址方式分类可分为随机存储器、顺序存储器和直接存储器。随机存储器(Random Access Memory,RAM)指可对任何存储单元存入或读取数据, 访问任何一个存储单元所需的时间是相同的。顺序存储器(Sequentially Addressed Memory,SAM)指访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。直接存储器(Direct Addressed Memory,DAM)是介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内,则是顺序寻址。相联存储器是一种按内容访问的存储器。其工作原理就是把数据或数据的某一部分作为关键字,将该关键字与存储器中的每一单元进行比较,从而找出存储器中所有与关键字相同的数据字。
指令寄存器:指令(包括:操作码、地址码)
程序被加载到内存后开始运行,当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器DR中,再送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。 程序计数器(PC)具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移地址得到。
汇编语言可以访问的:程序计数器PC
指令寄存器(IR)用于暂存从内存取出的、正在运行的指令,这是由系统使用的寄存器,程序员不能访问。 存储器数据寄存器(MDR)和存储器地址寄存器(MAR)用于对内存单元访问时的数据和地址暂存,也是由系统使用的,程序员不能访问。 程序计数器(PC)用于存储指令的地址,CPU根据该寄存器的内容从内存读取待执行的指令,程序员可以访问该寄存器。
指令寄存器:对用户完全透明
寄存器组是CPU中的一个重要组成部分,它是CPU内部的临时存储空间。寄存器既可以用来存放数据和地址,也可以存放控制信息或CPU工作时的状态。在CPU中增加寄存器的数量,可以使CPU把执行程序时所需的数据尽可能地放在寄存器中,从而减少访问内存的次数,提高其运行速度。但是,寄存器的数目也不能太多,除了增加成本外,寄存器地址编码增加还会增加指令的长度。CPU中的寄存器通常分为存放数据的寄存器、存放地址的寄存器、存放控制信息的寄存器、存放状态信息的寄存器和其他寄存器等类型。 程序计数器是存放指令地址的寄存器,其作用是:当程序顺序执行时,每取出一条指令,程序计数器(PC)内容自动增加一个值,指向下一条要取的指令。当程序出现转移时,则将转移地址送入PC,然后由PC指向新的指令地址。 指令寄存器(IR)用于存放正在执行的指令,指令从内存取出后送入指令寄存器。其操作码部分经指令译码器送微操作信号发生器,其地址码部分指明参加运算的操作数的地址形成方式。在指令执行过程中,指令寄存器中的内容保持不变。 状态字寄存器(PSW)用于保存指令执行完成后产生的条件码,例如运算是否有溢出,结果为正还是为负,是否有进位等。此外,PSW还保存中断和系统工作状态等信息。 通用寄存器组是CPU中的一组工作寄存器,运算时用于暂存操作数或地址。在程序中使用通用寄存器可以减少访问内存的次数,提高运算速度。 在汇编语言程序中,程序员可以直接访问通用寄存器以存取数据,可以访问状态字寄存器以获取有关数据处理结果的相关信息,可以通过相对程序计数器进行寻址,但是不能访问指令寄存器。
无需干预数据传送过程:直接存储器存取
中断方式下的数据传送是当I/O接口准备好接收数据或准备好向CPU传送数据时,就发出中断信号通知CPU。对中断信号进行确认后,CPU保存正在执行的程序的现场, 转而执行提前设置好的I/O中断服务程序,完成一次数据传送的处理。这样,CPU就不需要主动查询外设的状态,在等待数据期间可以执行其他程序,从而提高了CPU的利用率。采用中断方式管理I/O设备,CPU和外设可以并行地工作。 程序查询方式下,CPU通过执行程序查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。 直接内存存取(Direct Memory Access,DMA)方式的基本思想是通过硬件控制实现主存与I/O设备间的直接数据传送,数据的传送过程由DMA控制器(DMAC)进行控制,不需要CPU的干预。在DMA方式下,由CPU启动传送过程,即向设备发出“传送一块数据”的命令,在传送过程结束时,DMAC通过中断方式通知CPU进行一些后续处理工作。
RISC特点
- 高效流水线操作
- 寻址方式少
- 硬布线控制
RISC(Reduced Instruction Set Computer,精简指令集计算机)的主要特点是重叠寄存器窗口技术;优化编译技术。RISC使用了大量的寄存器,如何合理分配寄存器、提高寄存器的使用效率及减少访存次数等,都应通过编译技术的优化来实现;超流水及超标量技术。为了进一步提高流水线速度而采用的技术;硬布线逻辑与微程序相结合在微程序技术中。
计算机的主存:DRAM
随机访问存储器(RAM)有两类:静态的(SRAM)和动态的(DRAM),SRAM 比DRAM速度更快,但也贵得多。SRAM用来作为高速缓冲存储器(Cache),DRAM 用来作为主存及图形系统的帧缓冲区。SRAM将每个位存储在一个双稳态的存储器单元中,DRAM将每个位存储为对一个电容的充电,由于电容非常小,在10〜l00ms时间内会失去电荷,所以需要周期性地刷新充电以保持信息。EEPROM是电可擦除可编程只读存储器。
64位和32位计算机
计算机系统的运算速度受多种因素的影响,64位微处理器可同时对64位数据进行运算,但不能说其速度是32位微处理器的2倍。
译码器的作用:指令译码
CPU中指令译码器的功能是对现行指令进行分析,确定指令类型和指令所要完成的操作以及寻址方式,并将相应的控制命令发往相关部件。
SCSI不是系统总线
系统总线又称内总线或板级总线,在微机系统中用来连接各功能部件而构成一个完整的微机系统。系统总线包含有三种不同功能的总线,即数据总线DB (Data Bus)、地址总线AB (Address Bus)和控制总线CB (Control Bus)。ISA (Industrial Standard Architecture)总线标准是IBM公司1984年为推出PC/AT机而建立的系统总线标准,所以也叫AT总线。它是对XT总线的扩展,以适应8/16位数据总线要求。EISA总线是1988年由Compaq等9家公司联合推出的总线标准。它在ISA总线的基础上使用双层插座,在原来ISA总线的98条信号线上又增加了98条信号线,也就是在两条ISA信号线之间添加一条EISA信号线。在实用中,EISA总线完全兼容ISA总线信号。PCI (Peripheral Component Interconnect)总线是当前最流行的总线之一,它是由Intel公司推出的一种局部总线。它定义了32位数据总线,且可扩展为64位。PCI总线主板插槽的体积比原ISA总线插槽还小,支持突发读写操作,最大传输速率可达132MB/S,可同时支持多组外围设备。PCI局部总线不能兼容现有的ISA、EISA、MCA (Micro Channel Architecture)总线,但它不受制于处理器,是基于奔腾等新一代微处理器而发展的总线。SCSI (Small Computer System Interface)是一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。
MISD没有实际意义
Flynn主要根据指令流和数据流来分类,分为四类: ①单指令流单数据流机器(SISD) SISD机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行,并且在某个时钟周期内,CPU只能处理一个数据流。因此这种机器被称作单指令流单数据流机器。早期的计算机都是SISD机器。 ②单指令流多数据流机器(SIMD) SIMD是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理以及多媒体信息处理等领域非常有效。Intel处理器实现的MMXTM、SSE (Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说人们现在用的单核计算机基本上都属于SIMD机器。 ③多指令流单数据流机器(MISD) MISD是采用多个指令流来处理单个数据流。在实际情况中,采用多指令流处理多数据流才是更有效的方法。因此MISD只是作为理论模型出现,没有投入实际应用。 ④多指令流多数据流机器(MIMD) M1MD机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。例如,intel和AMD的双核处理器就属于MIMD的范畴。
CA的公钥:验证数字证书的真实性
数字证书是由权威机构 CA证书授权(CertificateAuthority)中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档,人们可以在互联网交往中用它来 证明自己的身份和识别对方的身份。 数字证书包含版本、序列号、签名算法标识符、签发人姓名、有效期、主体名、主体公钥信息等并附有CA的签名,用户A获取用户B的数字证书后通过验证CA的签名 来确认数字证书的有效性。验证CA的签名时使用的是CA的公钥。
漏洞扫描:判断服务器是否存在可写入目录
漏洞扫描技术是检测远程或本地系统安全脆弱性的一种安全技术。通过与目标主机TCP/IP端口建立连接并请求某些服务(如TELNET、FTP等),记录目标主机的应答, 搜集目标主机相关信息(如匿名用户是否可以登录等),从而发现目标主机某些内在的安全弱点。
TSL最接近SSL
TLS是安全传输层协议的简称,用于在两个通信应用程序之间提供保密性和数据完整性。SSL是安全套接层协议的简称,它也是一种为网络通信提供安全和数据完整性的协议,它与TLS非常接近,它们都是在传输层对网络连接进行加密。PGP是一个基于RSA公匙加密体系的邮件加密软件,用它可以对邮件保密以防止非授权者阅读。HTTPS即安全版的HTTP (超文本传输协议)的,它是在HTTP下加入SSL层,HTTPS的安全基础就是SSL。IPSec是网络层的安全协议,它通过使用加密的安全服务来确保在网络上进行保密而安全的通讯。
报文摘要算法:保护报文不被篡改
报文摘要是用来保证数据完整性的。传输的数据一旦被修改,摘要就不同了。只要对比两次摘要就可确定数据是否被修改过。
木马客户端运行在攻击者主机上
木马(Trojan),是指通过特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是控制端,另一个是被控制端。植入对方电脑的是服务端,而黑客正是利用客户端进入运行了服务端的电脑。运行了木马程序的服务端以后;会产生一个有着容易迷惑用户的名称的进程,暗中打开端口,向指定地点发送数据(如网络游戏的密码,即时通信软件密码和用户上网密码等),黑客甚至可以利用这些打开的端口进入电脑系统。Sniffer,中文可以翻译为嗅探器,是一种基于被动侦听原理的网络分析方式。使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息。Sniffer不是木马程序。
Web服务器:DMZ区域
DMZ是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区,这个缓冲区位于企业内部网络和外部网络之间的小网络区域内,在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和论坛等。
SSH在终端与远程建立:安全连接
终端设备与远程站点之间建立安全连接的协议是SSH。SSH为Secure Shell的缩写, 是由IETF制定的建立在应用层和传输层基础上的安全协议。SSH是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX上的程序,后来又迅速扩展到其他操作平台。
第二节 指令执行过程
一条指令的执行过程按时间顺序可分为以下几个步骤。
- ① CPU发出指令地址。将指令指针寄存器(IP)的内容——指令地址,经地址总线送入存储器的地址寄存器中。
- ② 从地址寄存器中读取指令。将读出的指令暂存于存储器的数据寄存器中。
- ③ 将指令送往指令寄存器。将指令从数据寄存器中取出,经数据总线送入控制器的指令寄存器中。
- ④ 指令译码。指令寄存器中的操作码部分送指令译码器,经译码器分析产生相应的操作控制信号,送往各个执行部件。
- ⑤ 按指令操作码执行。
- ⑥ 修改程序计数器的值,形成下一条要取指令的地址。若执行的是非转移指令,即顺序执行,则指令指针寄存器的内容加1,形成下一条要取指令的地址。指令指针寄存器也称为程序计数器。
在指令周期中,包含了:取指周期,在取指周期后需要判断是否有间址周期,如果没有就进入到执行周期,在执行周期后又需要判断是否有中断程序,如果有就响应中断并保存断点生成中断服务程序入口;如果没有就进入下一个取指周期。
四个周期都有CPU访存操作,只是访存目的不同。取值周期是取指令;间址周期是取有效地址;执行周期是为了取操作数;中断周期是为了保存程序断点。
指令周期常常有若干个机器周期,机器周期里面又包含若干个时钟周期。每个指令周期内的机器周期可以不同,机器周期内的时钟周期也可以不同。时钟周期是CPU操作的最基本单位。
取值周期
取指周期:取指周期的任务是根据PC中的内容从主存中取出指令代码并存放在IR中。而PC中存放的是指令的地址,根据这个地址从内存单元取出的是指令,并放在指令寄存器IR中,取指令的同时,PC加1。
间址周期
间址周期:间址周期的任务是取操作数有效地址,以一次间址为例,将指令中的地址码送到MAR并送至地址总线,此后CU向存储器发读命令,以获取有效地址并存至MDR。
执行周期
执行周期:执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。
指令执行方案:
单指令周期 | 所有指令选用相同的执行时间(取决于最长指令执行时间),指令间串行,但原本只需要很短时间完成指令也分配了很长时间,降低整个系统运行速度 |
多指令周期 | 对不同指令选用不同的执行时间,需要更复杂的硬件设计,指令间是串行 |
流水线 | 在每个时钟周期让多个指令同时运行,指令间是并行 |
中断周期
中断周期:中断周期的任务是处理中断请求。假设程序断点存入堆栈中,并用SP指示栈顶地址,而且进栈操作是先修改栈顶指针,后存入数据。
总览
过程详述:几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段:取指令、指令译码、执行指令、访存取数、结果写回。
1.取指令阶段
取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增:若为单字长指令,则(PC)+1àPC;若为双字长指令,则(PC)+2àPC,依此类推。
2.指令译码阶段
取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。
在组合逻辑控制的计算机中,指令译码器对不同的指令操作码产生不同的控制电位,以形成不同的微操作序列;在微程序控制的计算机中,指令译码器用指令操作码来找到执行该指令的微程序的入口,并从此入口开始执行。
在传统的设计里,CPU中负责指令译码的部分是无法改变的。不过,在众多运用微程序控制技术的新型CPU中,微程序有时是可重写的,可以通过修改成品CPU来改变CPU的译码方式。
3.执行指令阶段
在取指令和指令译码阶段之后,接着进入执行指令(Execute,EX)阶段。此阶段的任务是完成指令所规定的各种操作,具体实现指令的功能。为此,CPU的不同部分被连接起来,以执行所需的操作。
例如,如果要求完成一个加法运算,算术逻辑单元ALU将被连接到一组输入和一组输出,输入端提供需要相加的数值,输出端将含有最后的运算结果。
4.访存取数阶段
根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段。
此阶段的任务是:根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算。
5.结果写回阶段
作为最后一个阶段,结果写回(Writeback,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式:结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取;在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。
在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。
许多新型CPU可以同时取出、译码和执行多条指令,体现并行处理的特性。
第三节 数据通路的功能和基本结构
数据通路的基本结构
Ⅰ:CPU内部单总线方式。将所有寄存器的输入端和输出端都连接在一条公共通路上。易发生冲突。
Ⅱ:双总线/多总线方式。多个总线上传不同的数据,提高效率。
Ⅲ:专用数据通路方式。专门给某些部件设计通路。性能很高但是硬件量大。
说明:
①对于单总线的连接方式来说,ALU只能有一端与总线相连,因为两端相连就必会发生冲突。所以另一段要设计一个暂存器,先把数据放入暂存器,暂存器再与总线相连。
②单周期就是指令在一个周期内完成,这是需要与多总线结构配合。才能使各个部件的数据传递。因为单总线一个周期内只能传递一个数据,所以指令不可能在一个周期内完成。
内部总线 | 是指同一部件,如CPU内部连接各个寄存器及运算部件之间的总线 |
系统总线 | 指同一台计算机的各部件,如CPU,主存,I/O之间连接的总线 |
第四节 控制器的功能和工作原理
硬布线控制器
多提一嘴,一定要看看王道视频是如何设计出组合逻辑图的,我保证看完一定会有颠覆性的收获。
根据指令操作码、目前的机器周期、节拍信号、机器状态条件,即可确定现在这个节拍应该发出哪些”微命令“
硬布线控制器的特点:
- 指令越多,设计和实现就越复杂(逻辑图很复杂),因此一般使用RISC。
- 如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较为困难。
- 由于使用存纯硬件实现控制,因此执行速度很快。
第五节 异常和中断机制
操作系统是由 “中断驱动” 或者 “事件驱动” 的。
主要作用:
- 及时处理设备发来的中断请求
- 可使 OS 捕获用户程序提出的服务请求
- 防止用户程序执行过程中的破坏性工作
- 。。。
特点:
- 随即发生的
- 自动处理的(硬件来完成)
- 可恢复的
为何引入中断与异常?
中断的引入:为了支持CPU和设备之间的并行操作
当 CPU 启动设 备进行输入/输出后,设备便可以独立工作,CPU 转去处理与此次输入/输出不相关的事情;当设备完成输入/输出后,通过向 CPU 发中断报郜此次输入/输出的结果,让 CPU 决定如何处理以后的事情
异常的引入:表示CPU执行指令时本身出现的问题
如算术溢出、除零、取数时的奇偶错,访存地址时越界或执行了 “陷入指令” 等,这时硬件改变了 CPU 当前的执行流程,转到相应的错误处理程序或异常处理程序或执行系统调用
早期两者都是中断,后来有了区分,区分的标准是主要是产生的原因
事件分类
中断(外中断)
- IO 中断。比如键盘上按 ctrl+c、网卡接收到数据包、打印机结束、读盘结束
- 时钟中断。比如设置的定时器到时间了、cpu 上运行的时间片时间到了
- 硬件故障。比如笔记本电脑电池耗尽报警、读内存奇偶检验错误
异常(内中断)
- 系统调用
- 页故障/页错误
- 保护性异常
- 断点异常
- 其他程序的异常,如算术溢出等
中断:外部事件,正在运行的程序所不期望的
异常:正在执行的指令引发的
中断异常机制工作原理
中断异常机制是现代计算机系统的核心机制之一。硬件和软件相互配合而使计算机系统的已充分发挥能力。硬件主要工作是响应。捕获中断源发出的中断/异常请求,以一定方式响应,将处理器控制权交给特定的处理程序。
软件的主要工作是处理。识别中断/异常类型并完成相应的处理。
硬件部分
中断响应示意图
- 设备发送中断信号
- 中断硬件部件保存现场,把内存保存到了系统堆栈内,主要是 PSW(程序状态字) + PC
- 中断硬件根据中断码查中断向量表,得到对应的处理程序
- 把中断处理程序入口地址等信息推送到相应的寄存器
- 执行中断处理程序(从中断断点开始执行,完事之后继续执行)
软件部分
中断处理程序
设计操作系统时,为每一类中断/异常时间都编好相应的处理程序,并设置好中断向量表
系统运行时若响应中断,中断硬件部件将 CPU 控制权转给中断处理程序:
- 保存相关寄存器信息
- 分析中断/异常的具体原因
- 执行对应的处理功能
- 恢复现场,返回被事件打断的程序
小结
以设备输入输出中断为例:
- 打印机给 CPU 发中断信号
- CPU 处理完当前指令后检测到终端,判断出中断来源并向相关设备发确认信号
CPU 开始为软件处理终端做准备:
- CPU 状态被切换为内核态
- 在系统栈中保存被中断程序的重要上下文环境,主要是程序计数器 PC,程序状态字 PSW
CPU 根据中断码查中断向量表,获得与该中断相关的处理程序的入口地址,并将 PC 设置成该地址,新的指令周期开始时,CPU 控制转移到中断处理程序
中断处理程序开始工作,在系统栈中保存现场信息
检查 I/O 设备的状态信息,操纵 I/O 设备或者在设备和内存之间传送数据等等
中断处理结束后,CPU 检测到中断返回指令,从系统栈中恢复被中断程序的上下文环境,CPU 状态恢复成原来的状态,PSW 和 PC 恢复成中断前的值,CPU 开始一个新的指令周期
第六节 指令流水线
讲在前面,为什么要引入指令流水线。相信都听说过华强北的流水线运作方式吧。最明显的优点就是相较于顺序执行的吞吐量更大(单位时间内)运行相同数量的指令也更快。效率也更高。
这里就可以知道指令流水线的概念:把指令执行过程划分为不同的阶段,占用不同的资源,就能使多条指令同时执行。
①在流水执行的过程中,会经常遇到冲突,包括结构冲突,数据冲突,控制冲突。
结构相关/冲突/冒险 | 数据相关/冲突/冒险 | 控制相关/冲突/冒险 | |
概念 | 多条指令在同一时刻争用同一资源 | 下一条指令会用到当前指令计算的结果 | 遇到执行转移、调用、返回导致PC中断 |
处理办法 | 1.单独设置数据存储器和指令存储器,使取数和取值操作在不同的存储器中进行 2.暂停时钟周期 |
1.暂停时钟周期 2.数据旁路技术 3.编译优化 |
1.早判断,早生成 2.预取转移成功和不成功两个控制流方向的目标指令 3.加快和提前形成条件码 4.提高转移方向的猜准率 |
②五段式指令流水线(超重要)
顾名思义,五段分为IF(取值),ID(译码&取数),EX(执行),M(访存),WB(写回寄存器)
只有上一条指令进入ID段后,下一条指令才能开始IF段,否则会覆盖IF段锁存器的内容
考试中常见的五类指令:
Ⅰ、运算类指令的执行过程
- IF:根据PC从指令Cache取指令至IF段的锁存器
- ID:取出操作数至ID段的锁存器
- EX:运算,将结果存入EX段锁存器
- M:空段
- WB:将运算结果写回指定的寄存器
Ⅱ、LOAD指令执行过程
作用:load指令可以完成将数据从存储器中复制到目的寄存器中,会访存
- IF:根据PC从指令Cache取指令至IF段的锁存器
- ID:将基址寄存器的值放到锁存器A,将偏移量的值放到lmm
- EX:运算,得到有效地址
- M:从数据Cache中取数并放入锁存器
- WB:将运算结果写回指定的寄存器
Ⅲ、STORE指令执行过程
作用:将数据从寄存器中,复制到存储器中,会访存
- IF:根据PC从指令Cache取指令至IF段的锁存器
- ID:将基址寄存器的值放到锁存器A,将偏移量的值放到lmm。将要存的数放到B
- EX:运算,得到有效地址。并将锁存器B的内容放到锁存器Store
- M:写入数据Cache
- WB:空段
Ⅳ、条件转移指令执行过程
- IF:根据PC从指令Cache取指令至IF段的锁存器
- ID:进行比较的两个数放入锁存器A,B;偏移量放入lmm
- EX:运算,比较两个数
- M:将目标PC值写回PC
- WB:空段
Ⅴ、无条件转移指令的执行过程
- IF:根据PC从指令Cache取指令至IF段的锁存器
- ID:偏移量放入lmm
- EX:将目标PC值写回PC
- M:空段
- WB:空段
针对条件转移指令和无条件转移指令做以下说明:写入PC的好事比EX更短,可以安排在EX段时间内完成。越早完成就越能避免控制冲突。当然也有在WB段修改PC值的
题目总结:
①流水CPU是由一系列叫做“段”的处理线路组成的。一个m段流水线稳定时的CPU的吞吐能力,与m个并行部件的CPU的吞吐能力相比具有相同的吞吐能力
原因是当流水线稳定后,说明已经进行了一条指令,往后每多一个时钟周期就多一条指令执行成功。
m个并行平均下来也是一个时针周期就多条指令
故具有相同的吞吐能力,但是流水线的方式,结构实现较为简单。
第七节 多处理器的基本概念(选择题)
这节的要求就是明白基本概念
①SISD(单指令流单数据流)
特点:只能并发,不能并行,每条指令处理一个指令
不是数据级并行技术
SISD(单指令流单数据流) | SIMD(单指令多数据流) | MIMD(多指令多数据流) | 多处理器系统 | 多计算机系统 | |
特点 | 不是数据级并行技术 | 是一种数据级并行技术 | 是一种线程级并行技术 | 多个处理器共享单一物理地址空间 | 每台计算机拥有私有存储器,相互独立 |
特征 | 一条指令处理一个数据 | 一条指令处理多个数据 | 多条指令处理多个数据 | 多个处理器+一个主存储器 | 多个处理器+多个主存储器 |
- 并发(concurrency):把任务在不同的时间点交给处理器进行处理。在同一时间点,任务并不会同时运行。
- 并行(parallelism):把每一个任务分配给每一个处理器独立完成。在同一时间点,任务一定是同时运行。
并发不是并行。并行是让不同的代码片段同时在不同的物理处理器上执行。并行的关键是同时做很多事情,而并发是指同时管理很多事情,这些事情可能只做了一半就被暂停去做别的事情了。(你学废了吗?)
---------------------C/C++后端学习路线----------------------------------------
这里详细谈下C++ 的学习路线,按照这个路线去学习C++,每个阶段都帮你规划好了学习时间,只要你努力且认真的去学了, 保证帮你既高效又扎实的学好C++:
【这个知识图谱总结基于零声教育的c/c++Linux服务器开发架构教程https://ke.qq.com/course/417774?flowToken=1044433,经过数万名学员学习的反馈,不断迭代技术知识图谱,贴合市场实际岗位就业需求,以项目为核心,通过30+的大小项目学习理解c/c++后端开发技术。目前已更新至第13版,需要的朋友,可以Q群1106675687免费领取】
整个学习路线,直接对标腾讯c++后台开发岗位,其次你把整个内容,全部消化,是完全可以胜任任何c++开发岗位招聘,Linux服务器开发招聘。
----------感谢大家的支持!----------------------------------------------------
7、总线与I/O子系统
主要讲授总线与接口,以及直接程序传送模式PIO、中断、DMA、IOP与PPU等。
第一节 总线的概述
总线的基本概念
总线是连接各个部件的信息传输线,是各个部件共享的传输介质。 总线结构的计算机举例: 单总线结构框图; 面向 CPU 的双总线结构框图; 以存储器为中心的双总线结构框图;
总线的分类
片内总线: 芯片内部 的总线;
系统总线: 计算机各部件之间 的信息传输线;
包括:
- 数据总线:双向 与机器字长、存储字长有关;
- 地址总线:单向 与存储地址、 I/O地址有关;
- 控制总线:有出 有入;
通信总线: 用于 计算机系统之间 或 计算机系统与其他系统(如控制仪表、移动通信等)之间的通信。
传输方式:
- 串行通信总线;
- 并行通信总线;
总线特性:
- 机械特性:尺寸、形状、管脚数 及 排列顺序;
- 电气特性:传输方向 和有效的 电平 范围;
- 功能特性:每根传输线的 功能(地址、数据、控制);
- 时间特性:信号的 时序 关系;
总线的性能指标:
- 总线宽度:数据线的根数;
- 标准传输率:每秒传输的最大字节数(MBps);
- 时钟同步/异步:同步、不同步;
- 总线复用:地址线 与 数据线 复用;
- 信号线数:地址线、数据线和控制线的 总和;
- 总线控制方式:突发、自动、仲裁、逻辑、计数;
- 负载能力;
第二节 性能指标
CPU:吞吐量,响应时间,CPU时钟周期,主频,CPI,CPU执行时间,MIPS,MFLOPS,GFLOPS,TFLOPS,PFLOPS,利用率,处理机字长;
吞吐量
一个系统的吞度量(承压能力)与一个请求request对CPU的消耗、外部接口、IO等密切关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
一般系统吞吐量由几个重要关键要素组成:
- QPS:Queries Per Second 每秒内的查询率。它是指一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。QPS统计方式,一般使用http_load 进行统计。
- TPS:TransactionsPerSecond 每秒内的事务数。一个事务是指一个客户机向服务器发送请求然后等待服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,客户机使用加权协函数平均方法来计算得分,最终利用这些信息得出服务器端的整体TPS得分。
- 并发数: 系统同时处理的request/事务数。
- 响应时间: 系统平均响应时间。
计算关系
- QPS = 并发量 / 平均响应时间
- 并发量 = QPS * 平均响应时间
响应时间(RT)
响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。当然,往往也需要对每个或每组功能讨论其平均响应时间和最大响应时间。
对于单机的没有并发操作的应用系统而言,人们普遍认为响应时间是一个合理且准确的性能指标。需要指出的是,响应时间的绝对值并不能直接反映软件的性能的高低,软件性能的高低实际上取决于用户对该响应时间的接受程度。对于一个游戏软件来说,响应时间小于100毫秒应该是不错的,响应时间在1秒左右可能属于勉强可以接受,如果响应时间达到3秒就完全难以接受了。而对于编译系统来说,完整编译一个较大规模软件的源代码可能需要几十分钟甚至更长时间,但这些响应时间对于用户来说都是可以接受的。
CPU时钟周期和主频
CPU时钟周期
时钟发生器发出的脉冲信号做出周期变化的最短时间称之为震荡周期,也称为 CPU 时钟周期。它是计算机中最基本的、最小的时间单位。每一次脉冲(即一个震荡周期)到来,芯片内的晶体管就改变一次状态,让整个芯片完成一定任务。一个震荡周期内,晶体管只会改变一次状态。由此,更小的时钟周期就意味着更高的工作频率。
主频
一秒(1 s)内,震荡周期的个数称为时钟频率,俗称主频。
主频和时钟周期的关系:
时钟频率(主频)=1CPU时钟周期时钟频率(主频)= \frac{1}{CPU 时钟周期}时钟频率(主频)=CPU时钟周期1。由上面的关系不难推出,主频越高,CPU的运算速度就越快。
CPI (每条指令执行平均时间)
CPI(Clock cycle Per Instruction)表示执行某个程序的指令平均时钟周期数,可以用来衡量计算机运行速度。 CPI=TCICCPI=\frac{TC }{IC}CPI=ICTC(IC[instruction counter]表示某个程序的所有指令的条数;TC表示执行某个程序所花费的时钟周期)
CPU执行时间
MIPS 每秒处理多少(百万级的指令条数)
MIPS(Million Instructions Per Second):单字长定点指令平均执行速度 Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。这是衡量CPU速度的一个指标。
FLOPS/MFLOPS/GFLOPS/TFLOPS/PFLOPS/EFLOPS
FLOPS是Floating-point Operations Per Second每秒所执行的浮点运算次数的英文缩写。它是一个衡量计算机计算能力的量,这个量经常使用在那些需要大量浮点运算的科学运算中。有时也会被记为flop/s。
MFLOPS(Million Floating-point Operations per Second,每秒百万个浮点操作),衡量计算机系统的技术指标,不能反映整体情况,只能反映浮点运算情况。
GFLOPS 就是 Giga Floating-point Operations Per Second,即每秒10亿次的浮点运算数,常作为GPU性能参数但不一定代表GPU的实际表现,因为还要考虑具体如何拆分多边形和像素、以及纹理填充,理论上该数值越高越好。1GFlops = 1,000MFlops。
MFLOPS(megaFLOPS)= 每秒一佰万(=106)次的浮点运算GFLOPS(gigaFLOPS) = 每秒拾亿(=109)次的浮点运算TFLOPS(teraFLOPS) = 每秒万亿(=1012)次的浮点运算PFLOPS(petaFLOPS) =每秒千万亿(=1015)次的浮点运算EFLOPS(exaFLOPS)=每秒百亿亿(=1018)次的浮点运算。\\ MFLOPS(megaFLOPS)\quad=\ 每秒一佰万(=10^6)次的浮点运算\\ GFLOPS(gigaFLOPS) \ \ \ \quad= \ 每秒拾亿(=10^9)次的浮点运算\\ TFLOPS(teraFLOPS)\ \quad=\ 每秒万亿(=10^{12})次的浮点运算\\ PFLOPS(petaFLOPS) \ \ \ \quad=每秒千万亿(=10^{15})次的浮点运算\\ EFLOPS(exaFLOPS)\qquad=每秒百亿亿(=10^{18})次的浮点运算。MFLOPS(megaFLOPS)= 每秒一佰万(=106)次的浮点运算GFLOPS(gigaFLOPS) = 每秒拾亿(=109)次的浮点运算TFLOPS(teraFLOPS) = 每秒万亿(=1012)次的浮点运算PFLOPS(petaFLOPS) =每秒千万亿(=1015)次的浮点运算EFLOPS(exaFLOPS)=每秒百亿亿(=1018)次的浮点运算。
CPU利用率
CPU利用率,是对一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况,如果CPU被占用时间很高,那么就需要考虑CPU是否已经处于超负荷运作,长期超负荷运作对于机器本身来说是一种损害,因此必须将CPU的利用率控制在一定的比例下,以保证机器的正常运作。
Load Average是 CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息。
处理机字长
理机字长是指处理机能同时处理(或运算)的位数,即同时处理多少位(bit)数据。
第三节 总线定时方式
总线的一次信息传送过程,大致可分为如下五个阶段:请求总线,总线仲裁,寻址(目的地址),信息传送,状态返回(或错误报告)。为了同步主方、从方的操作,必须制订定时修定。所谓定时,是指事件出现在总线上的时序关系。下面介绍数据传送过程中采用的几种定时协定:同步定时协定、异步定时协定、半同步定时协定和周期分裂式总线协定。
总线传输的四个阶段:
- 申请分配阶段。由需要使用总线的主模块(或主设备〉提出申请,经总线仲裁机构决定将下一传输周期的总线使用权授予某一申请者。也可将此阶段细分为传输请求和总线仲裁两个阶段。
- 申请分配阶段。由需要使用总线的主模块(或主设备〉提出申请,经总线仲裁机构决定将下一传输周期的总线使用权授予某一申请者。也可将此阶段细分为传输请求和总线仲裁两个阶段。
- 传输阶段。主模块和从模块进行数据交换,可单向或双向进行数据传送。结束阶段。主模块的有关信息均从系统总线上撤除,让出总线使用权。
同步定时方式
在同步定时协议中,事件出现在总线上的时刻由总线时钟信号来确定,所以总线中包含时钟信号线。一次VVO 传送被称为时钟周期或总线周期。读数据的同步时序例子,所有事件都出现在时钟信号的前沿,大多数事件只占据单一时钟周期。例如,在总线读周期,CPU 首先将存储器地址放到地址线上,它亦可发出一个启动信号,指明控制信息和地址信息已出现在总线上。第2个时钟周期发出一个读命令。存储器模块识别地址码,经一个时钟周期延迟(存取时间)后,将数据和认可信息放到总线上,被 CPU 读取。如果是总线写周期,CPU在第2个时钟周期开始将数据放到数据线上,待数据稳定后CPU发出一个写命令,存储器模块在第3 时钟周期存入数据。
- 统一时钟
- 传送速度快,总线控制逻辑简单
- 不能及时进行数据通信的有效性检验,可靠性差
由于采用了公共时钟,每个功能模块什么时候发送或接收信息都由统一时钟规定,因此,同步定时具有较高的传输频率。同步定时适用于总线长度较短、各功能模块存取时间比较接近的情况。这是因为同步方式对任何两个功能模块的通信都给予同样的时间安排。由于同步总线必须按最慢的模块来设计公共时钟,当各功能模块存取时间相差很大时,会大大损失总线效率。
异步定时方式
在异步定时协议中,后一事件出现在总线上的时刻取决于前一事件的出现时刻,即建立在应答式或互锁机制基础上。在这种系统中,不需要统一的公共时钟信号。总线周期的长度是可变的。图 6.13(a)表示系统总线读周期时序图。CPU 发送地址信号和读状态信号到总线上。待这些信号稳定后,它发出读命令,指示有效地址和控制信号的出现。存储器模块进行地址译码并将数据放到数据线上。一旦数据线上的信号稳定,则存储器模块使确认线有效,通知CPU 数据可用。CPU 由数据线上读取数据后,立即撤销读状态信号,从而引起存储器模块撤销数据和确认信号。最后,确认信号的撤销又使 CPU撤销地址信息。
- 完全依靠传送双方相互制约的”握手“信号来实现定时控制
- 总线周期长度可变,保证两个工作速度相差较大的部件和设备之间可靠地进行信息交换
- 复杂,慢
异步定时方式分为
- 不互锁方式:请求不回就撤回,回了请求自己撤
- 半互锁方式:请求回了才撤回,回了请求自己撤
- 全互锁方式:请求回了才撤回,回在请求之后撤
8、I/O设备及接口
主要讲授I/O设备的功能、类型及与主机之间的信息交互,键盘工作原理,显示器件,打印设备等。
第一节 I/O接口
I/O接口全称(Input/Output Interface),指输入/输出设备接口 。I/O接口的作用主机与外界交换信息称为输入/输出(I/O)。主机与外界的信息交换是通过输入/输出设备进行的。一般的输入/输出设备都是机械的或机电相结合的产物,比如常规的外设有键盘、显示器、打印机、扫描仪、磁盘机、鼠标器等,它们相对于高速的中央处理器来说,速度要慢得多。此外,不同外设的信号形式、数据格式也各不相同。
因此,外部设备不能与CPU直接相连,需要通过相应的电路来完成它们之间的速度匹配、信号转换,并完成某些控制功能。通常把介于主机和外设之间的一种缓冲电路称为I/O接口电路,简称I/O接口(Input/Output Interface)。
接口(Interface)
接口可以看做是两个系统或两个部件之间的交接部分,它既可以是两种硬设备之间的连接电路,也可以是两个软件之间的共同逻辑边界。I/O接口通常指主机与I/O设备之间设置的一个硬件电路及其相应的软件控制。不同的I/O设备都有与其对应的设备控制器,而它们往往都是通过I/O接口与主机取得联系的。
端口(Port)
端口是指接口电路中的一些寄存器,这些寄存器分别用来存放数据信息、控制信息和状态信息,相应的端口分别称为数据端口、控制端口和状态端口。若干个端口加上相应的控制逻辑才能组成接口。CPU通过输入指令,从端口读入信息,通过输出指令,可将信息写入到端口中。
I/O接口芯片
这些芯片大都是集成电路,通过CPU输入不同的命令和参数,并控制相关的I/O电路和简单的外设作相应的操作,常见的接口芯片如定时/计数器、中断控制器、DMA控制器、并行接口等。
I/O接口控制卡
有若干个集成电路按一定的逻辑组成为一个部件,或者直接与CPU同在主板上,或是一个插件插在系统总线插槽上。按照接口的连接对象来分,又可以将他们分为串行接口、并行接口、键盘接口和磁盘接口等。
接口的功能
由于计算机的外围设备品种繁多,几乎都采用了机电传动设备,因此,CPU在与I/O设备进行数据交换时存在以下问题:
- 速度不匹配:I/O设备的工作速度要比CPU慢许多,而且由于种类的不 同,他们之间的速度差异也很大,例如硬盘的传输速度就要比打印机快出很多。
- 时序不匹配:各个I/O设备都有自己的定时控制电路,以自己的速度传 输数据,无法与CPU的时序取得统一。
- 信息格式不匹配:不同的I/O设备存储和处理信息的格式不同,例如可以分为串行和并行两种;也可以分为二进制格式、ACSII编码和BCD编码等。
- 信息类型不匹配:不同I/O设备采用的信号类型不同,有些是数字信号,而 有些是模拟信号,因此所采用的处理方式也不同。
基于以上原因,CPU与外设之间的数据交换必须通过接口来完成,通常接口有以下一些功能:
- (1)设置数据的寄存、缓冲逻辑,以适应CPU与外设之间的速度差异,接口通常由一些寄存器或RAM芯片组成,如果芯片足够大还可以实现批量数据的传输;
- (2)能够进行信息格式的转换,例如串行和并行的转换;
- (3)能够协调CPU和外设两者在信息的类型和电平的差异,如电平转换驱动器、数/模或模/数转换器等;
- (4)协调时序差异;
- (5)地址译码和设备选择功能;
- (6)设置中断和DMA控制逻辑,以保证在中断和DMA允许的情况下产生中断和DMA请求信号,并在接受到中断和DMA应答之后完成中断处理和DMA传输。
接口的控制方式
CPU通过接口对外设进行控制的方式有以下几种:
(1)程序查询方式:这种方式下,CPU通过I/O指令询问指定外设当前的状态,如果外设准备就绪,则进行数据的输入或输出,否则CPU等待,循环查询。 这种方式的优点是结构简单,只需要少量的硬件电路即可,缺点是由于CPU的速度远远高于外设,因此通常处于等待状态,工作效率很低
(2)中断处理方式 :在这种方式下,CPU不再被动等待,而是可以执行其他程序,一旦外设为数据交换准备就绪,可以向CPU提出服务请求,CPU如果响应该请求,便暂时停止当前程序的执行,转去执行与该请求对应的服务程序,完成后,再继续执行原来被中断的程序。 中断处理方式的优点是显而易见的,它不但为CPU省去了查询外设状态和等待外设就绪所花费的时间,提高了CPU的工作效率,还满足了外设的实时要求。但需要为每个I/O设备分配一个中断请求号和相应的中断服务程序,此外还需要一个中断控制器(I/O接口芯片)管理I/O设备提出的中断请求,例如设置中断屏蔽、中断请求优先级等。
此外,中断处理方式的缺点是每传送一个字符都要进行中断,启动中断控制器,还要保留和恢复现场以便能继续原程序的执行,花费的工作量很大,这样如果需要大量数据交换,系统的性能会很低。
(3)DMA(直接存储器存取)传送方式:DMA最明显的一个特点是它不是用软件而是采用一个专门的控制器来控制内存与外设之间的数据交流,无须CPU介入,大大提高CPU的工作效率。
在进行DMA数据传送之前,DMA控制器会向CPU申请总线控制 权,CPU如果允许,则将控制权交出,因此,在数据交换时,总线控制权由DMA控制器掌握,在传输结束后,DMA控制器将总线控制权交还给CPU
每个接口芯片有一个或者几个端口,每个端口对应芯片内部的一个或者一组寄存器,计算机为每个端口分配唯一的访问地址。
常见接口
并行接口:目前,计算机中的并行接口主要作为打印机端口,接口使用的不再是36针接头而是25针D形接头。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,容易出错。
现在有五种常见的并口:4位、8位、半8位、EPP和ECP,大多数PC机配有4位或8位的并口,许多利用Intel386芯片组的便携机配有EPP口,支持全部IEEE1284并口规格的计算机配有ECP并口。
标准并行口4位、8位、半8位:4位口一次只能输入4位数据,但可以输出8位数据;8位口可以一次输入和输出8位数据;半8位也可以。EPP口(增强并行口):由Intel等公司开发,允许8位双向数据传送,可以连接各种非打印机设备,如扫描仪、LAN适配器、磁盘驱动器和CDROM 驱动器等。ECP口(扩展并行口):由Microsoft、HP公司开发,能支持命令周期、数据周期和多个逻辑设备寻址,在多任务环境下可以使用DMA(直接存储器 访问)。
目前几乎所有的586机的主板都集成了并行口插座,标注为 Paralle1或LPT1,是一个26针的双排针插座。
串行接口:计算机的另一种标准接口是串行口,现在的PC机一般至少有两个串行口COM1和COM2。串行口不同于并行口之处在于它的数据和控制信息是一位接一位串行地传送下去。这样,虽然速度会慢一些,但传送距离较并行口更长,因此长距离的通信应使用串行口。通常COM1使用的是9针D形连接器,而COM2有些使 用的是老式的DB25针连接器。
磁盘接口
IDE接口:IDE接口也叫做ATA端口,只可以接两个容量不超过528M的硬盘驱动器,接口的成本很低,因此在386、486时期非常流行。但大多数IDE接口不支持DMA数据传送,只能使用标准的PCI/O端口指令来传送所有的命令、状态、数据。几乎所有的586主板上都集成了两个40针的双排针IDE接口插座,分别标注为IDE1和IDE2。
EIDE接口:EIDE接口较IDE接口有了很大改进,是目前最流行的接口。
首先,它所支持的外设不再是2个而是4个了,所支持的设备除了硬盘,还包括CD-ROM驱动器磁盘备份设备等。
其次,EIDE标准取消了528MB的限制,代之以8GP限制。
第三,EIDE有更高的数据传送速率,支持PIO模式3和模式4标准。
SCSI接口:SCSI(SmallComputerSystemInterface)小计算机系统接口,在做图形处理和网络服务的计算机中被广泛采用SCSI接口的硬盘。除了硬盘以外,SCSI接口还可以连接CD-ROM驱动器、扫描仪和打印机等。
它具有以下特点:
- 可同时连接7个外设;
- 总线配置为并行8位、16位或32位;
- 允许最大硬盘空间为8.4GB(有些已达到9.09GB);
- 更高的数据传输速率,IDE是2MB每秒,SCSI通常可以达到5MB每秒,FASTSCSI(SCSI-2)能达到10MB每秒,最新的SCSI-3甚至能够达到40MB每秒,而EIDE最高只能达到16.6MB每秒;
- 成本较IDE和EIDE接口高很多,而且,SCSI接口硬盘必须和SCSI接口卡配合使用,SCSI接口卡也比IED和EIDE接口贵很多。
- SCSI接口是智能化的,可以彼此通信而不增加CPU的负担。在IDE和EIDE设备之间传输数据时,CPU必须介入,而SCSI设备在数据传输过程中起主动作用,并能在SCSI总线内部具体执行,直至完成再通知CPU。
USB接口:最新的USB串行接口标准是由Microsoft、Intel、Compaq、IBM等大公司共同推出,它提供机箱外的热即插即用连接,用户在连接外设时不用再打开机箱、关闭电源,而是采用“级联”方式,每个USB设备用一个USB插头连接到一个外设的USB插座上,而其本身又提供一个USB插座给下一个USB设备使用,通过 这种方式的连接,一个USB控制器可以连接多达127个外设,而每个外设间的距离可达5米。USB统一的4针圆形插头将取代机箱后的众多的串/并口(鼠标、MODEM)键盘等插头。USB能智能识别USB链上外围设备的插入或拆卸。除了能够连接键盘、鼠标等,USB还可以连接ISDN、电话系统、数字音响、打印机以及扫描仪等低速外设。
I/O扩展槽
I/O扩展槽即I/O信号传输的路径,是系统总线的延伸,可以插入任意的标准选件,如显示卡、解压卡、MODEM卡和声卡等。通过I/O扩展槽,CPU可对连接到该通道的所有I/O接口芯片和控制卡寻址访问,进行读写。
根据总线的类型不同,主板上的扩展槽可分为ISA、EISA、MAC、VESA和PCI几种。
- ISA插槽:黑色,分为8位、16位两种。16位的扩展槽可以插8位和16位的控制卡,但8位的扩展槽只能插8位卡。
- EISA插槽:棕色,外型、长度与16位的ISA卡一样,但深度较大,可插入ISA与EISA控制卡。
- VESA插槽:棕色,位于16位ISA扩展插槽的下方,与ISA插槽配合使用。
- PCI插槽:白色,与VESA插槽一样长,与ISA插槽平行,不需要与ISA插槽配合使用,而且只能插入PCI控制卡。由于主板的空间有限,PCI插槽要占用ISA插槽的位置
第二节 主机访问I/O设备的控制
备管理的主要任务之一是控制设备和内存或处理机之间的数据传送,外围设备和内存之间的输入/输出控制方式有四种,下面分别介绍。
程序直接控制方式
在早期的计算机中,由于无中断机构,处理机对I/O设备的控制采用程序直接控制方式,或称为忙-等待方式。
如图(a)所示,计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成了 CPU资源的极大浪费。
程序直接控制方式虽然简单易于实现,但是其缺点也是显而易见的,由于CPU和I/O设备只能串行工作,导致CPU的利用率相当低。
中断驱动方式
中断驱动方式的思想是,允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作,CPU与I/O可以并行操作。
如图(b)所示:从I/O控制器的角度来看,I/O控制器从CPU接收一个读命令,然后从外围设备读数据。一旦数据读入到该I/O控制器的数据寄存器,便通过控制线给CPU发出一个中断信号,表示数据已准备好,然后等待CPU请求该数据。I/O控制器收到CPU发出的取数据请求后,将数据放到数据总线上,传到CPU的寄存器中。至此,本次I/O操作完成,I/O控制器又可幵始下一次I/O操作。
从CPU的角度来看,CPU发出读命令,然后保存当前运行程序的上下文(现场,包括程序计数器及处理机寄存器),转去执行其他程序。在每个指令周期的末尾,CPU检查中断。当有来自I/O控制器的中断时,CPU保存当前正在运行程序的上下文,转去执行中断处理程序处理该中断。这时,CPU从I/O控制器读一个字的数据传送到寄存器,并存入主存。接着, CPU恢复发出I/O命令的程序(或其他程序)的上下文,然后继续运行。
中断驱动方式比程序直接控制方式有效,但由于数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,这就导致了中断驱动方式仍然会消耗较多的CPU时间。
DMA方式
在中断驱动方式中,I/O设备与内存之间的数据交换必须要经过CPU中的寄存器,所以速度还是受限,而DMA(直接存储器存取)方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放” CPU。
DMA方式的特点是:
- 基本单位是数据块。
- 所传送的数据,是从设备直接送入内存的,或者相反。
- 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在 DMA控制器的控制下完成的。
下图列出了DMA控制器的组成:
为了实现在主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置如下四类寄存器:
- 命令/状态寄存器(CR):用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态。
- 内存地址寄存器(MAR:在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。
- 数据寄存器(DR):用于暂存从设备到内存,或从内存到设备的数据。
- 数据计数器(DC):存放本次CPU要读或写的字(节)数。
如图(c)所示,DMA方式的工作过程是:CPU读写数据时,它给I/O控制器发出一条命令,启动DMA控制器,然后继续其他工作。之后CPU就把控制操作委托给DMA控制器,由该控制器负责处理。DMA控制器直接与存储器交互,传送整个数据块,每次传送一个字,这个过程不需要CPU参与。当传送完成后,DMA控制器发送一个中断信号给处理器。因此只有在传送开始和结束时才需要CPU的参与。
DMA控制方式与中断驱动方式的主要区别是中断驱动方式在每个数据需要传输时中断CPU,而DMA控制方式则是在所要求传送的一批数据全部传送结束时才中断CPU;此外,中断驱动方式数据传送是在中断处理时由CPU控制完成的,而DMA控制方式则是在DMA 控制器的控制下完成的。
通道控制方式
I/O通道是指专门负责输入/输出的处理机。I/O通道方式是DMA方式的发展,它可以进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可以实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。
例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首地址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务,数据传送结束时向CPU发中断请求。I/O通道与一般处理机的区别是:通道指令的类型单一,没有自己的内存,通道所执行的通道程序是放在主机的内存中的,也就是说通道与CPU共享内存。
I/O通道与DMA方式的区别是:
- DMA方式需要CPU来控制传输的数据块大小、传输的内存位置,而通道方式中这些信息是由通道控制的。*
- 每个DMA控制器对应一台设备与内存传递数据,而一个通道可以控制多台设备与内存的数据交换。