一文简概计算机组成与结构 1 计算机 1.1 计算机体系结构 计算机体系结构(Computer Architecture)包括概念性结构、功能和性能特性,要求从一个更高的层次对计算机的结构和特征等宏观特性进行研究。 1> 宏观上按处理机的数量进行分类,分为单处理系统、并行处理与多处理系统和分布式处理系统。 2> 微观上按并行程度分类,有Flynn分类法、冯泽云分类法、Handler分类法和Kuck分类法。 1.2 计算机硬件组成 计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部分组成。 运算器、控制器等部件被集成在一体统称为中央处理单(Central Processing Unit,CPU)。CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。 存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果;后者容量大、速度慢,可以长期保存程序和数据。 输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入数数据及各种命令,而输出设备则用于输出计算机运行的结果。 2 中央处理单CPU 2.1 CPU的组成 CUP主要由运算器、控制器、寄存器组和内部总线等部件组成,CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指或者数据。
2.1.1 运算器 运算器执行所有的算术运算(如加减乘除)及执行所有的逻辑运算并进行逻辑测试(如与、或、非、比较等),其四个重要寄存器如下: 1> 算数路基单ALU(Arithmetic Logic Unit):专门执行算术和逻辑运算的数字电路; 2> 累加寄存器AC(Accumulator):暂存算术或逻辑运算结果(操作数或运算结果),至少有一个; 3> 数据缓冲寄存器DR(Data Register):又称数据寄存器,作用是缓存指令或数据(消除CPU与外部速度差异),注:单累加器结构时兼作操作寄存器; 4> 状态条件寄存器PSW(Program Status Word):保存运算结果条件码(进借位、负、零、溢出等)、中断和系统工作状态信息; 2.1.2 控制器 控制器负责控制整个CPU的工作,其四个重要寄存器如下: 1> 指令寄存器IR(Instruction Register):保存当前正在执行的指令(从缓冲寄存器DR处); 2> 程序计数器PC(Program Counter):保存下一个将要被执行指令(递增或转移)的地址,初始值为第一条指令地址; 3> 地址寄存器AR(Address Register):存放当前访问的主存地址,知道读写内存操作完成(消除CPU与外存速度差异); 4> 指令译码器ID(Instruntion Decoder):对指令中的操作码进行分析解释(指令含操作码和地址码); 2.1.3 寄存器组 1> 专用寄存器:作用固定,存在于运算器和控制器中; 2> 通用寄存器:暂存数据和地址,可参与算数逻辑运算和保存运算结果,有程序员指定其用途; CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或者数据。 2.2 CPU功能 CPU功能:程序控制、操作控制、时间控制、数据处理、系统内部和外部终端(异常)响应与处理。 1> 程序控制:CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能。 2> 操作控制:一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。 3> 时间控制:CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制; 4> 数据处理:CPU通过对数据进行算术运算即逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务。 此外,CPU还需要对系统内部和外部的中断(异常)做出响应,进行响应的处理。 2.3 多核CPU 多核:在一个单芯片上面集成两个甚至多个处理器内核,每个内核都有自己的逻辑单、控制单、中断处理器、运算单,一级Cache、二级Cache共享或独有,其部件的万恒星和单核处理器相比完全一致。 最大的优点:可满足用户进行多任务处理的要求。 3 校验码 校验码常见的包括奇偶校验码、循环冗余校验码(CRC)和海明码。 3.1 码距 码距:就是单个编码A:00而言,其码距为1,因为其只需要改变以为就变成另一个编码。在两个编码中,从A码到B码转换锁需要改变的位数称为码距,如A:00要转换为B:11,码距为2.一般来说,码距越大,越利于纠错和检错。 3.2 奇偶校验码 在编码中增加1为校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2。例如: 奇校验:编码中,含有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多少个1,如果是奇数个,则无误,是偶数个,则有误。 偶校验同理,只是编码中有偶数个1,由上述,奇偶校验只能检1位错,并且无法纠错。 例如,原始的数据为,使用奇偶校验码,如果采用奇校验,要使得整个编码1的个数为奇数个,所以1位校验位应该为1;如果采用偶校验,要使得整个编码1的个数为偶数个,1位校验位应该为0。 只能检1位错:当有两位同时出错时,奇偶校验失真。如按奇校验编码为,如果有两位同时出错时变为时,根据奇偶校验,不会检验出错误。 码距为2:当有1为出错时,如出错变成了,虽然出错位只有1个,但是接受放收到后会判断1-出错位不一样,2-最终得出的校验位也是不一样的,得出来有两位不一样,即码距为2。 3.3 循环冗余校验码CRC CRC只能检错(能检多位错,但是不能指出多少位),不能纠错。使用CRC编码,需要先约定一个生成多项式G(x)。生成多项式的最高位和最低为必须是1.假设原始信息有m位,则对应多项式M(x)。 生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除。接收方收到带校验位的信息,然后用G(x)整除,余数为0,则没有错误;反之则发生错误。 例:假设原始信息串为10110,CRC的申城多项式为G(x) = x^4 + x + 1,求CRC校验码。 1> 在原始信息位后面添0,假设生成多项式的阶为r,则在原始信息为后添加r个0。本题中,G(x)阶为4,则在原始信息串后加4个0,得到的新串为,作为被除数; 2> 由多项式得到除数,多项式中x的幂指数存在的位置1,不存在的位置0。本题中,x的幂指数为0,1,4的变量都存在,而幂指数2,3的不存在,因此得到串10011(指4次方存在则1,3次方不存在则0,2次方不存在则0,1次方存在则1,0次方存在则0)。 3> 生成CRC校验码,将前两步得出的被除数和除数进行模2除法运算(即异或运算,同0非1,即不进位也不错位的除法运算)。除法过程如下图所示:
得到余数1111。 注意:余数不足r,则余数左边用若干个0补齐。如若求得余数为11,r=4,则补两个0得到0011。 4> 生成最终发送信息串,将余数添加到原始信息后。上例中,原始信息为10110,添加余数1111后,结果为。发送放将此数据发送给接收方。 5> 接收方进行校验。接收方的CRC校验过程与生成过程类似,接收方接受了带校验和的帧后,用多项式G(x)来除。余数为0,则表示信息无错,否则要求发送方进行重传(即使用10110除看是否有余数)。 注意:收发信息双方需要使用相同的生成多项式。 3.4 海明码 海明码本质也是利用奇偶性来检验和纠错的检验方法,构成方法是在数据位之间的确定位置上插入k个校验位,通过扩大码距实现检错和纠错。 设数据为是n位,校验位是k位,则n和k必须满足以下关系:2^k-1 >= n+k。如下求信息1011的海明码 1> 检验位的位数和具体数据的数据位的位数之间的关系 所有位都编号,从最低位编号,从1开始递增,校验位处于2的n(n=0 1 2 …)次方中,即处于第1,2,4,8,16,32,…位上,其余位才能填充真正的数据位,若信息数据位1011,则可知:第1,2,4位为校验位,第3,5,6,7位为数据位,用来从低位开始存放1011,得出信息位和校验位分布如下:
2> 计算校验码 将所有信息位的编号都拆分成二进制表示,如下:
7 = 4 + 2 + 1,表示7由第4位校验位r2和第2位校验位r1和第1位校验位r0共同校验; 同理,第6位数据6=4+2,第5位数据5=4+1,第3位数据3=2+1; 由2的n次方都是校验位可知:第4位校验位校验第7,6,5三位数据位,因此第4位校验位r2等于这三位的值异或,依次推出r1和r0的值。 计算出三个校验位后,可知最终要发送的海明码为。 4 指令系统 4.1 计算机指令的组成 一条指令由操作码和操作数据两部分组成,操作码决定要完成的操作,操作数是指参加运算的数据及其所在的单地址。 在计算机中,操作要求和操作数地址都由二进制数码表示,分别称为操作码和地址码,整条指令以二进制编码的形式存放在存储器中。 计算机指令执行过程 取指令——分析指令——执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。 4.2 CISC和RISC 复杂指令集计算机(Complex Instruction Set Computer):化零为整,指令比较多,每个指令比较复杂;一条指令完成一个复杂的基本功能,用最少的计算机指令来完成任务。代表:X86架构,Inter和AMD的CPU(大部分台式机和笔记本)。 精简指令集计算机(Reduced Instruction Set Computer):化整为零,指令比较少,比较简单;一条指令完成一个基本动作,多条指令组合完成一个复杂的基本功能。代表:ARM架构,大部分手机和平板,苹果产品的CPU。对比点CISCRISC典型架构Intel和AMD公司X86架构ARM及Apple公司Macintosh架构特点电路单多,面积大,功能强,高功耗体积小,低功耗,低成本,高性能CPU工艺要求非常高,CPU结构更复杂降低了复杂性,工艺相同时性能更强指令系统复杂,庞大,一般大于200条精简,一般小于100条指令字长不等长,需要分割定长可访存指令不限制,能在存储器中运行(访问存储器耗时)只有load/store指令,只处理寄存器数据寻址方式复杂众多相对较少指令执行顺序按顺序执行(含指令中每个操作)并行处理各指令执行时间相差较大,指令中需处理多个操作多在1个周期内各指令使用频度一般20%常用都经常使用编译器要求强调硬件复杂性,难以优化编译多质量操作要求高,优化编译后代码高效,RISC软件比硬件灵活性更强汇编程序程序相对简单,设计容易效率高存储空间占用大,难以设计复杂程序功能控制方式绝大多数被微程序(控制存储器)控制,容易修改和增加指令,90%硬件指令和10%软件指令结合,要保持向下兼容,原指令不能删除;采用硬布线逻辑,多数为组合逻辑控制(硬布线控制器),速度快,但修改较困难;采用硬布线逻辑使设计更复杂,修改更困难。增加了通用寄存器,采用流水线技术指令流水线可通过一定方式实现,吞吐量较小必须实现通用寄存器数量相对较少,多用于特定目的,X86只有8个数量相对较多,处理效率高,ARM有27个 4.3 流水线 指令流水线原理:将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加效果,所有的部件去处理指令的不同段。
流水线周期:指令分成不同的执行段,流水线工序中最长的那段执行时间; 流水线计算公式:第1条指令执行时间 + (指令条数-1)* 流水线周期;注意理论时间和实践时间; 流水线吞吐率:指单位时间流水线完成的任务数量或输出的结果数量,TP = 指令条数 / 流水线执行时间; 流水线的加速比:完成同一批任务,不使用流水线所用时间与使用流水线所用时间之比,S = 不适用流水线执行时间 / 使用流水线执行时间; RISC中的流水线技术 1> 超流水线(Super Pipe Line)技术:它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间; 2> 超标量(Super Scalar)技术:它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI。其实质是以空间换取时间; 3> 超长指令字(Very Long Instruction Word,VLIW)技术:VLIW和超标量都是20世纪80年代出现的概念,其共同点是要通知执行多条指令,其不同在于超标量依靠硬件来实现并行处理的调度,VLIW则充分发挥软件的作用,而使硬件简化,性能提高。 流水线技术只在RISC中使用,不一定在CISC中使用。 5 存储系统 5.1 存储系统概述 计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。下图从上到下,速度越来越慢、容量越来越大、价格越来越低。寄存器容量一般为32Bit或64Bit,Cache一般为Mb级别,主存即一般常说的计算机内存,磁盘、光盘、U盘统称为外存。
两级存储:Cache-主存,主存-辅存(虚拟存储体系)。 局部性原理:在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括两个方面: 1> 时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能被再次访问,即在相邻的时间里会访问同一个数据项; 2> 空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。 5.2 存储器分类 按所处位置 内存(主存,主机内或主板上,容量小、速度快)、外存(辅存,磁盘、磁带、光片,容量大、速度慢); 1> 内存,也成为了主存,设置在主机内(或主机板上),用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息,相对于外存,其特点是容量小、速度快。 2> 外存也成为了辅存,如磁盘、磁带和光盘等,用来存放当前不参与运行的大量信息,必要时可把需要的信息调入内存。相对于内存,外存容量大、速度慢。 按构成材料 磁存储器(磁芯、磁泡、磁膜、磁鼓、磁带、磁盘)、半导体存储器(双极性、MOS型,静态、动态)、光存储器(CD-ROM、DVD-ROM等光盘存储器); 按工作方式 读写存储器(RAM,Random Access Memory,技能读取数据也能存入数据)、只读存储器(按写入方式分为ROM、PROM、EPROM和EPROM); 1> ROM:Read Only Memory,固定只读存储器,生产时即写好,只能读出不能修改,系统程序BIOS以及微程序控制; 2> PROM:Programmable Read Only Memory,可编程的只读存储器,内容可以由用户一次性地写入,写入后不能修改; 3> EPROM:Erasable Programmable Read Only Memory,可擦出可编程的只读存储器,可读出也可由用户写入,写入后可修改,修改方式为紫外线招式15~20分钟后然后由特殊电子设备写入; 4> EEPROM:Electrically Erasable Programmable Read Only Memory,电擦除可编程的只读存储器,与EPROM相似,改写方式为电擦除; 5> 闪存存储器:Flash Memory,简称闪存,介于EPROM与EEPROM之间,类似于EEPROM,电信号擦除,速度远快于EPROM; 闪速存储器(Flash Memory),简称为闪存,闪存的特质介于EPROM(可擦除可编程的只读存储器)和EEPROM(电擦除可编程的只读存储器)之间,类似于EEPROM,也可以使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于EPROM。 按访问方式 按地址访问存储器和按内容访问存储器; 按寻址方式 随机存储器、顺序存储器、直接存储器; 1> 随机存储器:Random Access Memory,RAM,可对任何单存入或读取数据,所需时间相同; 2> 顺序存储器:Sequentially Addressed Memory, SAM,访问数据所需时间与数据位置有关,如磁带; 3> 直接存储器:Direct Addressed Memory,DAM,介于随机与顺序存取之间,如磁盘,它对磁道的寻址是随机的,而在一个磁道内侧是顺序寻址; 随机访问存储器(RAM)分为静态RAM和动态RAM,静态RAM(SRAM)比动态RAM(DRAM)更快、更贵。SRAM常用来做告诉缓存存储器,DRAM用来作为主存及图形系统的帧缓冲存储区。 5.3 磁盘存储器 磁盘架构和参数 磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在扇区中。 磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区才能读取到对应的数据,因此会产生寻道时间和等待时间。公示为:存取时间=寻道时间+等待时间(平均定位时间+转动延迟)。 注:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所需要的时间。 磁盘存储器 磁盘存储器,存取速度较快且容量较大,是目前广泛使用的外存储器。一个磁盘驱动器可装有多个盘片,组成盘片组,每个盘片都配有一个独立的磁头。所有基路面上相同序号的磁道构成一个圆柱面,其编号与磁道编号相同。文件存储在硬盘上时尽可能放在同一圆柱面上,或者放在相邻柱面上,这样可以缩短寻道时间。 为了正确存储信息,将盘片花城许多同心圆,称为磁道,从外到里编号,最外一圈为0道,往内道号依次增加。沿径向的单位距离的磁道数称为道密度,单位为tpi(每英寸磁道数);将一个磁道沿圆周等分位若干段,每段称为一个扇段或扇区,每个扇区内可存放一个固定长度的数据块,如512B。磁道上单位距离可记录的位数称为位密度,单位为bpi(每英寸位数)。因为每条刺刀上的扇区数相同,而每个扇区的大小又一样,所以每条磁道都记录同样多的信息。又因为里圈磁道圆周比外圈磁道的圆周小,所以里圈磁道的位密度要比外圈磁道的位密度高。最内圈的位密度称为最大位密度。 磁盘的寻址信息由硬盘驱动号、圆柱面号、磁头号(记录面号)、数据块号(或扇区号)以及交换量组成。 磁盘容量两种指标:一种是非格式化容量,指一个磁盘所能存储的总位数;一种是格式化容量,指各个扇区中数据区容量总和。计算公式如下: 格式化容量 = 面数 * (磁道数/面)*(扇区数/道)*(字节数/扇区) 非格式化容量 = 面数*(磁道数/面)*内圆周长*足底啊位密度 廉价冗余磁盘阵列RAID 磁盘阵列是有多台磁盘存储器组成的一个快速、大容量、高可靠的外存子系统。现在常见的称为廉价冗余磁盘阵列(Redundant Array of Independent Disk,RAID)。RAID级别说明RAID-0一种不具备容错能力的磁盘阵列。有N个磁盘存储器组成的0级阵列,其平均故障间隔时间(MTBF)是单个磁盘存储器的N分之一,但数据传输率是单个磁盘存储器的N倍。RAID-1采用镜像容错改善可靠性的一种磁盘阵列。RAID-2采用海明码做错误检测的一种磁盘阵列。RAID-3减少了用于检验的磁盘存储器的台数,从而提高了磁盘阵列的有效容量,一盘只有一个检验盘。RAID-4一种可独立地对组内各磁盘进行读写的磁盘阵列,该阵列也只用一个校验盘。RAID-5对RAID-4的一种改进,它不设置专门的检验盘。同一台磁盘上既记录数据,也记录检验信息,这就解决了前面多台磁盘机争用一台校验盘的问题。RAID-6采用两级数据冗余和新的数据编码以解决数据恢复问题,使在两个磁盘出现故障时仍然能够正常工作。在进行写操作时,RAID-6分别进行两个独立的校验运算,形成两个独立的冗余数据,写入连个不同的磁盘。 5.4 Cache 高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成,其内容是主存内存的副本拷贝,对于程序员来说是透明的。 Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。 地址映射:在CPU工作时,送出的是主存单的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法。 直接映射 将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应该系是固定的,即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。
全相联映射 同样都分成块并编号,主存中任意一块都与Cache中任意一块对应,因此可以随意调度Cache任意位置,但地址变换复杂,速度较慢。主存可以随意调入Cache任意块,只有当Cache满了才会发生冲突,是最不容易发生块冲突的映射方式。
组相联映射 前面两种方式的结合,将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cache中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以随意替换。 Cache的替换算法 替换算法的目标是使Cache获得尽可能多的命中率。常用的算法有如下。 1> 随机替换算法:采用随机数发生器产生一个要替换的块号,将该块替换出去; 2> 先进先出算法FIFO:将最先进入Cache的信息块替换出去; 3> 近期最少使用算法:将近期最少使用的Cache中的信息块替换出去; 4> 优化替换算法:必须先执行一次程序,统计Cache的替换情况。有了先验信息后,在第二次执行该程序时便可以用最有效的方式来替换。 命中率和平均时间 Cache的命中率即当CPU锁访问的数据在Cache时称为命中,直接从Cache中读取数据。设读取一次Cache时间为1ns,若CPU访问的数据不在Cache中则需要从内存中读取,设读取一次内存时间为1000ns,若在CPU多次读取数据过程中,有90%命中Cache,则CPU读取一次的平均时间为(90%*1+10%*1000)ns。命中率和Cache容量的关系曲线如下图:
5.5 网络存储技术 在大型服务器系统的背后都有一个网络,把一个或多个服务器与多个存储设备连接起来,每个存储设备可以是RAID、磁带备份系统、磁带库和CD-ROM库等,构成了存储域网络(Storage Area Network,SAN)。这样的网络不仅解决了服务器对存储容量的要求,还可以是多个服务器之间可以共享文件系统和辅助存储空间,避免数据和程序代码的重复存储,提高辅助存储器的利用率。另外SAN还实现了分布式存储系统的集中管理,降低了大容量存储系统的管理成本,提高了管理效率。存储域网络是连接服务器与存储设备的网络,如下图所示:
它能够将多个分布在不同地点的RAID组织成一个逻辑存储设备,供多个服务器共享访问。 6 输入输出技术 I/O(Input/Output):即输入/输出,指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出。从硬件角度,I/O设备是电子芯片、导线、电源、电子控制设备、电机等组成的物理设备,从软件角度只I/O设备的编程接口。 6.1 I/O设备概述 输入设备:键盘、鼠标、麦克风、扫描仪; 输出设备:显示器、打印机、耳机音响; 输入&输出设备:网卡; 6.2 IO的功能 1> 数据缓冲:主机和外设工作速度匹配; 2> 错误或状态监测:反馈设备各种错误、状态信息; 3> 控制和定时:接受从控制总线发来的控制信号、时钟信号; 4> 数据格式转换:串并、并串等格式转换; 5> 与主机和设备通信:实现主机-I/O接口-I/O设备间通信; 6.3 编址方法 计算机系统中存在多种内存与接口地址的编址方法,常见的是下面两种: 1> 内存与接口地址独立编址方法:内存地址与接口地址是完全独立的两个地址空间。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余的指令全都是用于内存的。因此,在编程序或读程序时很易使用和辨认。这种编址方法的缺点是用于接口的指令太少、功能太弱。 2> 内存与接口地址统一编址方法:内存地址和接口地址统一在一个公共的地址空间里,即内存单和接口公用地址空间。优点是原则上用于内存的指令全部可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。 6.4 计算机和外设间的数据交互方式 程序控制(查询)方式:CPU主动查询外设是否完成数据传输,效率极低; 程序中断方式:外设完成数据传输后,向CPU发送中断,等待CPU处理数据,效率相对较高。 中断响应时间指的是从发出中断请求到开始进入中断处理程序; 中断处理时间指的是从中断处理开始到中断处理结束。 中断向量提供中断服务程序的入口地址。 多级中断嵌套,使用堆栈来保护断点和现场。 DMA方式(直接主存存取):CPU只需完成必要的初始化等操作,数据传输的整个过程都由DMA控制器来完成,在主存和外设之间建立的数据通路,效率很高。 在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断请求是在一条指令执行结束时。 计算机周期 时钟原件 晶体振荡器,输出稳定频率(石英晶体),交变电压<–>机械振荡 时钟周期 用于时间同步,也称为了振荡周期,定义为时钟频率的倒数,是计算机中最基本的、最小的时间单位。 机器(CPU)周期 机器周期也称为CPU周期,完成一个基本操作(如取指、读存储器、写存储器等)所需要的时间。通常用内存中读取一个指令字的最短时间来规定CPU的周期。1个操作 指令周期 从主存取一条指令并执行指令的时间。n个操作 总线周期 CPU完成一次内存访问(读写)或接口操作所需要的时间,指CPU通过总线对(存储器或IO接口)进行一次访问所需的时间,一般包含4个时钟周期。 存储周期 两次读取(或写入)操作所间隔的最小时间; 存取时间:指从启动一次存储器操作(读或写)到完成该操作所经历的时间。如CPU发出读操作指令,直到将数据读入数据缓冲寄存器的时间; 注意:存取周期>真正用于存取的时间,因为存取周期内、存取操作结束后仍需要一些时间来更改状态。 电脑主频 频率越高,意味着单位时间内可做的事情就越多,电脑的性能就越高。2.4GHz主频CPU威力,时钟周期为: t = 1 / ( 2.4 * 1000 * 1000 * 1000 ) = 4.167 * 10^(-10) 秒 程序控制方式 程序控制I/O是指外设数据的输入/输出过程是在CPU执行程序的空值下完成的,主要包含两种方式: 1> 无条件传送:该情况下外设总是准备好的,可无条件随时接受CPU发来的输出数据,也能无条件随时向CPU提供需要输入的数据; 2> 程序查询方式:通过CPU执行程序来查询外设的状态,判断外设是否准备好了接受数据或向CPU输入数据。该方式降低了CPU效率,且对外部突发事件无法做出及时响应。 中断方式 中断方式指CPU不等待I/O设备工作而是进行其他操作,当I/O设备完成后,通过硬件中段信号通知CPU来处理接下来的工作。多中断信号源的情况下,处理方法有如下: 1> 多中断信号线法(multiple interupt lines):每个中断源都有一根中断信号线向CPU提出中断请求; 2> 中断软件查询法(software poll):CPU检测到中断请求信号后到中断服务程序中查询中断源,并根据响应优先级进行响应; 3> 菊花链法(daisy chain):解决软件查询法效率低而采用硬件查询,所有I/O设备共享一根中断请求线,中断确认信号在各模块间相联,CPU收到中断请求则发出中断确认信号,响应的I/O模块对中断确认信号进行确认并将自己的ID传给CPU; 4> 总线仲裁法:I/O设备在发出中断请求前需要获得总线控制权,即由总线仲裁机制决定可发出中断请求信号的I/O设备; 5> 中断向量表法:中断向量表用来保存各个中断源的中断服务程序的入口地址,中断控制器(INTC)根据中断号查找表中中断程序的入口地址来决定CPU的服务对象。 中断优先级:当不同优先级的多个中断源同时请求时,CPU优先响应优先级最高的中断源;当CPU处理中断服务时,有更高优先级中断源提出中断请求,则暂停当前任务而去处理高优先级的任务,处理完成后继续处理未完成的中断服务,即中断嵌套。 DMA方式 直接内存存取(Direct Memory Access,DMA)是指数据在内存与I/O设备间直接成块传输,不需要CPU任何干涉,只需要CPU在过程开始启动(向设备发送传输命令)与过程结束(CPU通过轮训或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由DMA硬件完成。 6.5 输入输出处理器(IOP) 通道又称为输入输出处理器(Input Output Processor,IOP),是一个具有特殊功能的处理器,进一步提高了CPU效率,它分担了CPU的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送,但需要付出更多的硬件代价。 7 总线 总线(BUS):连接多个部件的信息传输线,是各个部件共享的传输介质;计算机使用总线结构便于增减外设,同时减少信息传输线的条数。但相对于专线结构,其实际上也降低了信息传输的并行性、信息的传输速度。 总线特点:在某一时刻,只允许有一个部件向总线发送消息,但多个部件可同时从总线接收相同消息,总线上信息传送可以串行和并行。 7.1 总线分类 从广义上讲,任何连接两个以上电子器件的导线都可以称为总线,通常分为以下三类: 1> 内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线; 2> 系统总线:也称为内总线,直接映像系统性能,是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线,EISA总线、PCI总线。 3> 外部总线:设备一级的总线,微机和外部设备的总线。标准有七八十种,代表有RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。 北桥主要连接内部设备,如CPU、内存等; 南桥主要连接外部设备,如显示器、键盘、鼠标等。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/24361.html