PG电子(中国)官方网站一文简概计算机组成与结构计算机体系结构(Computer Architecture)包括概念性结构、功能和性能特性,要求从一个更高的层次对计算机的结构和特征等宏观特性进行研究。
1 宏观上按处理机的数量进行分类,分为单处理系统、并行处理与多处理系统和分布式处理系统。
2 微观上按并行程度分类,有Flynn分类法、冯泽云分类法、Handler分类法和Kuck分类法。
运算器、等部件被集成在一体统称为中央处理单元(Central Processing Unit,CPU)。CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。
存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果;后者容量大、速度慢,可以长期保存程序和数据。
输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入元数数据及各种命令,而输出设备则用于输出计算机运行的结果。
CUP主要由运算器、、寄存器组和内部总线等部件组成,CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指或者数据。
运算器执行所有的算术运算(如加减乘除)及执行所有的逻辑运算并进行逻辑测试(如与、或、非、比较等),其四个重要寄存器如下:
2 累加寄存器AC(Accumulator):暂存算术或逻辑运算结果(操作数或运算结果),至少有一个;
3 数据缓冲寄存器DR(Data Register):又称数据寄存器,作用是缓存指令或数据(消除CPU与外部速度差异),注:单累加器结构时兼作操作寄存器;
4 状态条件寄存器PSW(Program Status Word):保存运算结果条件码(进借位、负、零、溢出等)、中断和系统工作状态信息;
1 指令寄存器IR(Instruction Register):保存当前正在执行的指令(从缓冲寄存器DR处获取);
2 程序计数器PC(Program Counter):保存下一个将要被执行指令(递增或转移)的地址,初始值为第一条指令地址;
3 地址寄存器AR(Address Register):存放当前访问的主存地址,知道读写内存操作完成(消除CPU与外存速度差异);
4 指令译码器ID(Instruntion Decoder):对指令中的操作码进行分析解释(指令含操作码和地址码);
2 通用寄存器:暂存数据和地址,可参与算数逻辑运算和保存运算结果,有程序员指定其用途;
CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或者数据。
2 操作控制:一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
3 时间控制:CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制;
4 数据处理:CPU通过对数据进行算术运算即逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务。
多核:在一个单芯片上面集成两个甚至多个处理器内核,每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元,一级Cache、二级Cache共享或独有,其部件的万恒星和单核处理器相比完全一致。
码距:就是单个编码A:00而言,其码距为1,因为其只需要改变以为就变成另一个编码。在两个编码中,从A码到B码转换锁需要改变的位数称为码距,如A:00要转换为B:11,码距为2.一般来说,码距越大,越利于纠错和检错。
在编码中增加1为校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2。例如:
奇校验:编码中,含有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多少个1,如果是奇数个,则无误,是偶数个,则有误。
例如,原始的数据为101110,使用奇偶校验码,如果采用奇校验,要使得整个编码1的个数为奇数个,所以1位校验位应该为1;如果采用偶校验,要使得整个编码1的个数为偶数个,1位校验位应该为0。
只能检1位错:当有两位同时出错时,奇偶校验失线,如果有两位同时出错时变为1010001时,根据奇偶校验,不会检验出错误。
码距为2:当有1为出错时,如1011101出错变成了1001101,虽然出错位只有1个,但是接受放收到后会判断1-出错位不一样,2-最终得出的校验位也是不一样的,得出来有两位不一样,即码距为2。
CRC只能检错(能检多位错,但是不能指出多少位),不能纠错。使用CRC编码,需要先约定一个生成多项式G(x)。生成多项式的最高位和最低为必须是1.假设原始信息有m位,则对应多项式M(x)。
生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除。接收方收到带校验位的信息,然后用G(x)整除,余数为0,则没有错误;反之则发生错误。
1 在原始信息位后面添0,假设生成多项式的阶为r,则在原始信息为后添加r个0。本题中,G(x)阶为4,则在原始信息串后加4个0,得到的新串为101100000,作为被除数;
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,即不进位也不错位的除法运算)。除法过程如下图所示:
注意:余数不足r,则余数左边用若干个0补齐。如若求得余数为11,r=4,则补两个0得到0011。
4 生成最终发送信息串PG电子(中国)官方网站,将余数添加到原始信息后。上例中,原始信息为10110,添加余数1111后,结果为101101111。发送放将此数据发送给接收方。
5 接收方进行校验。接收方的CRC校验过程与生成过程类似,接收方接受了带校验和的帧后,用多项式G(x)来除。余数为0,则表示信息无错,否则要求发送方进行重传(即使用10110除101101111看是否有余数)。
海明码本质也是利用奇偶性来检验和纠错的检验方法,构成方法是在数据位之间的确定位置上插入k个校验位,通过扩大码距实现检错和纠错。
设数据为是n位,校验位是k位,则n和k必须满足以下关系:2^k-1 = n+k。如下求信息1011的海明码
所有位都编号,从最低位编号,从1开始递增,校验位处于2的n(n=0 1 2 ...)次方中,即处于第1,2,4,8,16,32,...位上,其余位才能填充真正的数据位,若信息数据位1011,则可知:第1,2,4位为校验位,第3,5,6,7位为数据位,用来从低位开始存放1011,得出信息位和校验位分布如下:
7 = 4 + 2 + 1,表示7由第4位校验位r2和第2位校验位r1和第1位校验位r0共同校验;
由2的n次方都是校验位可知:第4位校验位校验第7,6,5三位数据位,因此第4位校验位r2等于这三位的值异或,依次推出r1和r0的值。
一条指令由操作码和操作数据两部分组成,操作码决定要完成的操作,操作数是指参加运算的数据及其所在的单元地址。
在计算机中,操作要求和操作数地址都由二进制数码表示,分别称为操作码和地址码,整条指令以二进制编码的形式存放在存储器中。
取指令——分析指令——执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。
复杂指令集计算机(Complex Instruction Set Computer):化零为整,指令比较多,每个指令比较复杂;一条指令完成一个复杂的基本功能,用最少的计算机指令来完成任务。代表:X86架构,Inter和AMD的CPU(大部分台式机和笔记本)。
精简指令集计算机(Reduced Instruction Set Computer):化整为零,指令比较少,比较简单;一条指令完成一个基本动作,多条指令组合完成一个复杂的基本功能。代表:ARM架构,大部分手机和平板,苹果产品的CPU。
指令流水线原理:将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加效果,所有的部件去处理指令的不同段。
流水线吞吐率:指单位时间流水线完成的任务数量或输出的结果数量,TP = 指令条数 / 流水线执行时间;
流水线的加速比:完成同一批任务,不使用流水线所用时间与使用流水线所用时间之比,S = 不适用流水线执行时间 / 使用流水线执行时间;
RISC中的流水线 超流水线(Super Pipe Line)技术:它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间;
内存(主存,主机内或主板上,容量小、速度快)、外存(辅存,磁盘、磁带、光片PG电子(中国)官方网站,容量大、速度慢);
磁存储器(磁芯、磁泡、磁膜、磁鼓、磁带、磁盘)、半导体存储器(双极性、MOS型,静态、动态)、光存储器(CD-ROM、DVD-ROM等光盘存储器);
磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在扇区中。
磁盘存储器,存取速度较快且容量较大,是目前广泛使用的外存储器。一个磁盘驱动器可装有多个盘片,组成盘片组,每个盘片都配有一个独立的磁头。所有基路面上相同序号的磁道构成一个圆柱面,其编号与磁道编号相同。文件存储在硬盘上时尽可能放在同一圆柱面上,或者放在相邻柱面上,这样可以缩短寻道时间。
为了正确存储信息,将盘片花城许多同心圆,称为磁道,从外到里编号,最外一圈为0道,往内道号依次增加。沿径向的单位距离的磁道数称为道密度,单位为tpi(每英寸磁道数);将一个磁道沿圆周等分位若干段,每段称为一个扇段或扇区,每个扇区内可存放一个固定长度的数据块,如512B。磁道上单位距离可记录的位数称为位密度,单位为bpi(每英寸位数)。因为每条刺刀上的扇区数相同,而每个扇区的大小又一样,所以每条磁道都记录同样多的信息。又因为里圈磁道圆周比外圈磁道的圆周小,所以里圈磁道的位密度要比外圈磁道的位密度高。最内圈的位密度称为最大位密度。
磁盘阵列是有多台磁盘存储器组成的一个快速、大容量、高可靠的外存子系统。现在常见的称为廉价冗余磁盘阵列(Redundant Array of Independent Disk,RAID)。
一种不具备容错能力的磁盘阵列。有N个磁盘存储器组成的0级阵列,其平均故障间隔时间(MTBF)是单个磁盘存储器的N分之一,但数据传输率是单个磁盘存储器的N倍。
对RAID-4的一种改进,它不设置专门的检验盘。同一台磁盘上既记录数据,也记录检验信息,这就解决了前面多台磁盘机争用一台校验盘的问题。
采用两级数据冗余和新的数据编码以解决数据恢复问题,使在两个磁盘出现故障时仍然能够正常工作。在进行写操作时,RAID-6分别进行两个独立的校验运算,形成两个独立的冗余数据,写入连个不同的磁盘。
高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成,其内容是主存内存的副本拷贝,对于程序员来说是透明的。
Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。
将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应该系是固定的,即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。
同样都分成块并编号,主存中任意一块都与Cache中任意一块对应,因此可以随意调度Cache任意位置,但地址变换复杂,速度较慢。主存可以随意调入Cache任意块,只有当Cache满了才会发生冲突,是最不容易发生块冲突的映射方式。
前面两种方式的结合,将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cache中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以随意替换。
Cache的命中率即当CPU锁访问的数据在Cache时称为命中,直接从Cache中读取数据。设读取一次Cache时间为1ns,若CPU访问的数据不在Cache中则需要从内存中读取,设读取一次内存时间为1000ns,若在CPU多次读取数据过程中,有90%命中Cache,则CPU读取一次的平均时间为(90%*1+10%*1000)ns。命中率和Cache容量的关系曲线 网络存储技术
在大型服务器系统的背后都有一个网络,把一个或多个服务器与多个存储设备连接起来,每个存储设备可以是RAIDPG电子(中国)官方网站、磁带备份系统、磁带库和CD-ROM库等,构成了存储域网络(Storage Area Network,SAN)。这样的网络不仅解决了服务器对存储容量的要求,还可以是多个服务器之间可以共享文件系统和辅助存储空间,避免数据和程序代码的重复存储,提高辅助存储器的利用率。另外SAN还实现了分布式存储系统的集中管理,降低了大容量存储系统的管理成本,提高了管理效率。存储域网络是连接服务器与存储设备的网络,如下图所示:
1 内存与接口地址独立编址方法:内存地址与接口地址是完全独立的两个地址空间。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余的指令全都是用于内存的。因此,在编程序或读程序时很易使用和辨认。这种编址方法的缺点是用于接口的指令太少、功能太弱。
2 内存与接口地址统一编址方法:内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口公用地址空间。优点是原则上用于内存的指令全部可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。
DMA方式(直接主存存取):CPU只需完成必要的初始化等操作,数据传输的整个过程都由DMA来完成,在主存和外设之间建立的数据通路,效率很高。
在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断请求是在一条指令执行结束时。
机器周期也称为CPU周期,完成一个基本操作(如取指、读存储器、写存储器等)所需要的时间。通常用内存中读取一个指令字的最短时间来规定CPU的周期。1个操作
CPU完成一次内存访问(读写)或接口操作所需要的时间,指CPU通过总线对(存储器或IO接口)进行一次访问所需的时间,一般包含4个时钟周期。
存取时间:指从启动一次存储器操作(读或写)到完成该操作所经历的时间。如CPU发出读操作指令,直到将数据读入数据缓冲寄存器的时间;
注意:存取周期真正用于存取的时间,因为存取周期内、存取操作结束后仍需要一些时间来更改状态。
频率越高,意味着单位时间内可做的事情就越多,电脑的性能就越高。2.4GHz主频CPU威力,时钟周期为:
程序控制I/O是指外设数据的输入/输出过程是在CPU执行程序的空值下完成的,主要包含两种方式:
1 无条件传送:该情况下外设总是准备好的,可无条件随时接受CPU发来的输出数据,也能无条件随时向CPU提供需要输入的数据;
2 程序查询方式:通过CPU执行程序来查询外设的状态,判断外设是否准备好了接受数据或向CPU输入数据。该方式降低了CPU效率,且对外部突发事件无法做出及时响应。
中断方式指CPU不等待I/O设备工作而是进行其他操作,当I/O设备完成后,通过硬件中段信号通知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处理中断服务时,有更高优先级中断源提出中断请求,则暂停当前任务而去处理高优先级的任务,处理完成后继续处理未完成的中断服务,即中断嵌套。
直接内存存取(Direct Memory Access,DMA)是指数据在内存与I/O设备间直接成块传输,不需要CPU任何干涉,只需要CPU在过程开始启动(向设备发送传输命令)与过程结束(CPU通过轮训或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由DMA硬件完成。
通道又称为输入输出处理器(Input Output Processor,IOP),是一个具有特殊功能的处理器,进一步提高了CPU效率,它分担了CPU的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送,但需要付出更多的硬件代价。
总线(BUS):连接多个部件的信息传输线,是各个部件共享的传输介质;计算机使用总线结构便于增减外设,同时减少信息传输线的条数。但相对于专线结构,其实际上也降低了信息传输的并行性、信息的传输速度。
总线特点:在某一时刻,只允许有一个部件向总线发送消息,但多个部件可同时从总线接收相同消息,总线上信息传送可以串行和并行。
1 内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线 系统总线:也称为
,直接映像系统性能,是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线,EISA总线 外部总线:设备一级的总线,微机和外部设备的总线。标准有七八十种,代表有RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。