计算机系统知识
1、计算机硬件基础知识:
1.1计算机系统结构
计算机的发展历史:
1946年,世界上第一台电子计算机ENIAC出现,之后经历了5个发展阶段:
冯式结构计算机的组成部分:存储器、运算器、控制器、输入设备和输出设备。
强化的概念:
计算机的工作过程:一般是由用户使用各种编程语言把所需要完成的任务以程序的形式提交给计算机,然后翻译成计算机能直接执行的机器语言程序,在计算机上运行。
计算机系统可以由下面的模型表示:
计算机系统结构(computer architecture):指机器语言级机器(物理机器)的系统结构,它主要研究软件、硬件功能分配,确定软件、硬件界面(机器级界面),即从机器语言程序员或编译程序设计者的角度所看到的机器物理系统的抽象。
计算机组成(computer organization):是指计算机系统的逻辑实现,包括机器内部数据流和控制流的组成以及逻辑设计等,其目标是合理的把各种部件、设备组成计算机,以实现特定的系统结构,同时满足所希望达到的性能价格比。
计算机实现(computer implementation)是指计算机组成的物理实现。
这几个概念之间的关系可以用下面的图加以说明:
计算机系统的分类:Flynn分类、冯氏分类、Handler分类和Kuck分类;
Flynn分类:根据不同指令流—数据流组织方式把计算机系统分成4类。(重点理解)
指令流:机器指令的执行序列;
数据流:由指令流调用的数据序列,包括输入数据和中间结果;
多倍性:在系统性能的瓶颈部件上同时处于同样执行阶段的指令和数据的最大可能个数;
I.单指令流单数据流SISD——如单处理机
II.单指令流多数据流SIMD——如相联处理机
III.多指令流单数据流MISD——如流水线计算机
IV. 多指令流多数据流MIMD——如多处理机
冯氏分类:以最大并行度Pm把计算机系统结构分为4类,其中字宽W表示在一个字中同时处理的二进制位数,位宽B表示在一个位片中能
同时处理的字数。
I.字串位串WSBS(serial)(parallel)
II.字并位串WPBS
III.字串位并WSBP
IV. 字并位并WPBP
Handler分类:根据并行度和流水线处理的程度将计算机系统结构分成3个层次
I.程序控制部件PCU的个数K
II.算术逻辑部件ALU或处理部件PE的个数D
III.每个算术逻辑部件包含基本逻辑线路ELC的套数W
Kuck分类:与Flynn分类法类似,根据指令流、执行流和多倍性来分类。
I.单指令流单执行流SISE——典型的单处理机
II.单指令流多执行流SIME——带多操作部件的处理机
III.多指令流单执行流MISE——带指令级多道程序的单处理机
IV.多指令流多执行流MIME——多处理机
计算机不同级别程序员所见的计算机部分,透明性的概念:
透明性:一种实际存在的事物或属性,从某个角度看似乎不存在的现象。
低层机器级的概念结构和功能特性对于高级语言的程序员来说是透明的。
1.2 计算机中的编码:
(1)二进制、十进制和十六进制等常用数制及其相互转换:
由于计算机的存储器和寄存器是两态部件,所以各种信息在计算机中是以二进制的方式存储和计算的。数制是由基数和基数个不同的数码组成的。
BCD码:十进制的二进制表示,
0:0000 1:0001 2:0010 3:0011 4:0100 5:0101
6:0110 7:0111 8:1000 9:1001
十六进制 <-> 二进制:十六进制表示法是用16位二进制数字组成的,每4位二进制数字表示一位十六进制数,十六进制的数字表示从0-9,A,B,C,D,E,F共十六个字符.十六进制与二进制相互转换就是一位十六进制字符与四位二进制数字的相互转换过程.
十进制 <-> 二进制:十进制向二进制转换分两步进行:首先把该数的整数部分和小数部分转换为二进制数;然后再把这两部分合并起来即可.十进制的整数部分向二进制转换是通过对十进制不断的除2取余数得到,十进制小数部分通过乘2取整的方法获得,直到小数部分为0,所得到的整数部分就形成了二进制编码;同样的,二进制向十进制转换如下所示:
十进制数N=(RnRn-1...R1R0R-1...R-m)
= Rn *2n+Rn-1*2n-1+...+R1*2+R0+R-1*2-1...R-m*2-m
八进制 <-> 二进制:二进制向八进制转换的方法是从小数点开始分别向左右每3位二进制数编成一组,若不够3位 ,则小数点左侧的最高位和右侧的最低位用0补充,每一组用对应的八进制的数码表示即可;八进制向二进制转换的方法是从小数点开始,把每一位八进制的数码转换成对应的3位二进制即可.其小数点左侧的最高位或右侧的最低位的0可以省去.
⑵ 计算机中的二进制数运算方法:
1.定点数运算:要判断是否溢出?(
)
加法:[X+Y]=([X]补+[Y]补) MOD 2
减法:[X-Y]=([X]补+[-Y]补)MOD 2
乘法:采用原码比较方便,使用原码一位乘法来求两个定点数的乘积。运算规则为:
乘积的符号位等于乘数和被乘数的符号位进异或;
乘积的值等于两数绝对值之积,即乘数和被乘数的绝对值进行移位相加;
除法:采用原码比较方便。运算规则为:
商的符号位同定点数原码乘法的处理方法,由两数的符号位进行异或
两数的绝对值部分进行相除。
2.浮点运算
1) 加减法:
a) 对阶
b) 尾数进行加、减运算
c) 规格化
d) 舍入
e) 溢出判断
2) 乘除法:
浮点相乘,其积的阶码为两数阶码相加,积的尾数为两尾数相乘。
浮点数相除,其商的阶码为两数阶码之差,商的尾数为两尾数相除。
其结果都需要进行规格化处理,同时还需要进行溢出判断。
⑶ 逻辑代数的基本运算和逻辑表达式的化简:
逻辑表达式就是以逻辑运算符把若干逻辑变量连接在一起表示某种关系的表达式。一个逻辑函数往往有多种不同的表达式。可以利用其本逻辑运算规律和一些常用的逻辑恒等式对逻辑表达式进行合并项、吸收项、配项、消去项等操作来化简。
基本的逻辑运算有“与”、“或”、“非”、“异或”。
常用的逻辑运算公式:
交换律:A+B=B+A A*B=B*A
结合律:A+(B+C)=(A+B)+C
分配律:A*(B+C)=A*B+A*C A+(B*C)=(A+B)*(A+C)
反演律:A+B= A * B
重叠律:A+A=A A*A=A
互补律:A+ A =1 A* A =0
对合律: A =A
0-1律:0+A=A A*A=0
⑷ 定点数与浮点数的机内表示:
定点数的表示方法:
1.定点整数:(符号位)(最高数据位)。。。(最低数据位)
2.定点小数:(符号位)小数点(最高数据位)。。。(最低数据位)
浮点数表示方法:
浮点数编码:符号位-阶码-尾数,阶码由移码表示,尾数由补码或原码表示;
规格化处理:以纯小数表示尾数,分为原码和补码;
⑸ 原码、补码、反码、移码;
数值数据的机器内表示形式称为机器码,机器码所代表的数值为该机器码的真值。
原码表示:[X]=X或2n-1-X;+0和-0的表示不同;(定点整数)
[X]=X或1-X;(定点小数)
+0=00000000 -0=10000000 (2的n次方-1个编码)
补码表示:[X]=X或2n+X;(定点整数)
[X]=X或2+X;(定点小数)
0的编码唯一;00000000 (2的n次方个编码)
-1=10000000 (小数) -1=11111111(整数)
反码表示:[X]=X或(2n-1)+X;(定点整数)
[X]=X或(2-2-n+1)+X (定点小数)
+0=00000000 -0=11111111 (2的n次方-1个编码)
移码表示:[X]=X或2的(n-1)次方+X;0表示方法唯一10000000 (定点整数)
[X]=1+X;(定点小数)
0的编码唯一:10000000 (2的n次方个编码)
⑹ ASCII码及汉字编码等常用的编码:
ASCII码采用7bit编码, 共有128种编码;表示128个不同的字符;计算机里存储和传送单位通常使用Byte,所以7位的ASCII码也用一个字节来表示,最高一位没有用,通常也添0,也可以把它作为校验位或用来扩展字符集。
EBCDIC码采用8bit编码,共有256个编码,表示256个不同字符;
汉字编码:
1.数字编码:每个汉字分配一个数字码,用以代表汉字;
2.拼音码:用每个汉字的汉语拼音符号作为汉字的输入编码;
3.字形码:以汉字的形状特点编码,例如五笔字型编码
汉字存储:以内码形式存放,以连续两个字节表示,两个字节的最高位均为1,汉字的内码是在计算机内处理汉字信息时采用的机内代码,把汉字的输入编码称为外码。
汉字输出:汉字的点阵字型码,点阵的密度决定了汉字的美观程度,汉字需要大量的存储空间,例如16*16点阵,每个汉字要占用16*16=32Byte
(7) 数据校验码:计算机在存储和传送数据过程中,为了保证数据的准确性,一般都要进行数据校验和纠错。通常使用校验码的方法来检测数据是否出错。其基本思想是把数据可能出现的编码区分为合法编码和错误编码。
使用校验码来查错,涉及到一个重要概念——码距。它是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。码距为1的编码是不能发现错误的。
常用的校验码有3种。
▲奇偶校验码:不能发现偶数位错误
该编码通过增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验)从而使码距变为2,来检测数据代码中奇数出错的编码。因为其利用的是编码中1的个数的奇偶性作为依据,所以不能发现偶数位错误。
校验位的添加方法有三种:
水平奇偶校验码:对每个数据的编码添加校验位
垂直奇偶校验码:对一组数据的相同位添加一个校验位;
水平垂直奇偶校验码:先对一组数据垂直校验,所得结果再添加一位水平校验位;
▲海明校验码:
也是利用奇偶性来检错和纠错,通过在数据之间插入k个校验位,扩大数据编码的码距,从而有能力检测出n位错,并能纠正1位或n位错。
▲循环校验码(CRC)校验码:采用模2运算,可检测所有等于、小于校验位长度的突发错,利用生成多项式为k个数据位产生r个校验位进行编码,其编码长度为n=k+rk,又称为(n,k)码,生成的多项式与被校验的数据无关。
概念:
编码效率=(log2(码字数))/总位数:
例题:在无线电通信中常采用7中取3定比码,它规定码字长为7位,并且其中总有且仅有3个“1”。这种码的编码效率为
1.3存储器系统:
概述:
计算机中的存储系统是用来保存数据和程序的。对存储器最基本的要求就是存储容量要大、存取速度快、成本价格低。为了满足这一要求,提出了多级存储体系结构。一般可分为高速缓冲存储器、主存、外存3个层次,有时候还包括CPU内部的寄存器以及控制存储器。
衡量存储器的主要因素:存储器访问速度、存储容量和存储器的价格;
存储器的介质:半导体、磁介质和光存储器。
存储器的组成:存储芯片+控制电路(存储体+地址寄存器+数据缓冲器+时序控制);
存储体系结构从上层到下层离CPU越来越远、存储量越来越大、每位的价格越来越便宜,而且访问的速度越来越慢
存储器系统分布在计算机各个不同部件的多种存储设备组成,位于CPU内部的寄存器以及用于CU的控制寄存器。内部存储器是可以被处理器直接存取的存储器,又称为主存储器,外部存储器需要通过I/O模块与处理器交换数据,又称为辅助存储器,弥补CPU处理器速度之间的差异还设置了CACHE,容量小但速度极快,位于CPU和主存之间,用于存放CPU正在执行的程序段和所需数据。
整个计算机的存储器体系结构可以用下面的图来说明:
通常衡量主存容量大小的单位是字节或者字,而外存的容量则用字节来表示。字是存储器组织的基本单元,一个字可以是一个字节,也可以是多个字节。
信息存取方式:信息的存取方式影响到存储信息的组织,常用的有4种,
◆顺序存取
存储器的数据是以记录的形式进行组织,对数据的访问必须按特定的线性顺序进行。磁带存储器的存取方式就是顺序存取。
◆直接存取
共享读写装置,但是每个记录都有一个唯一的地址标识,共享的读写装置可以直接移动到目的数据块所在位置进行访问。因此存取时间也是可变的。磁盘存储器采用的这种方式。
◆随机存取
存储器的每一个可寻址单元都具有唯一地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。主存储器采用的是这种方式。
◆相联存取
也是一种随机存取的形式,但是选择某一单元进行读写是取决于其内容而不是其地址。Cache可能采用该方法进行访问。
衡量存储器系统性能的指标有以下几种:
存取时间:一次读/写存储器的时间
存储器带宽:每秒能访问的位数。
存储器周期:两次相邻的存取之间的时间
数据传输率:每秒钟数据传输的bit数目。
主存储器:
主存储器是指能由CPU直接编程访问的存储器,它存放需要执行的程序与需要处理的数据。因为它通常位于所谓主机的范畴,常称为内存。如果内存的地址为n位,容量为2的n次。
主存储器的种类很多,主要有:
随机存储器(RAM):可以读出和写入,随机访问存取,断电消失
只读存储器(ROM):只能读出原有的内容,不能写入新内容
可编程ROM(PROM)
可擦除PROM(EPROM)
电可擦除PROM(E2PROM)
闪速存储器(flash memory)
实际的存储器总是由一片或多片存储芯片配以控制电路组成的,其容量往往是W×B来表示。W表示该存储器的存储单元(word)的数量,而B表示每一个word由多少bit组成。
辅助存储器:
由于主存容量有限(受地址位数、成本、速度等因素制约),在大多数计算机系统中设置一级大容量存储器作为对主存的补充与后援。它们位于主机的逻辑范畴之外,常称为外存储器,简称外存。
外存的最大特点是容量大、可靠性高、价格低,主要有两大类。
◆磁表面存储器:这类外存储器主要包括磁带和磁盘存储器。
▲磁带
磁带存储设备是一种顺序存取的设备,存取时间较长,但存储容量大。磁带上的信息是以文件块的形式存放的,而且便于携带,价格便宜。按它的读写方式可分为两种:启停式和数据流。
▲磁盘存储器
磁盘存储器是目前应用最广泛的外存储器。它存取速度较快,具有较大的存储容量,适用于调用较频繁的场合,往往作为主存的直接后援,为虚拟存储提供了物理基础。可分为软盘和硬盘。
◆光存储器
光盘存储器是利用激光束在记录表面存储信息,根据激光束的反射光来读出信息。按照它的记录原理可分为形变型、相变型(晶相结构)和磁光型。有CD、CD-ROM、WORM、EOD等。
CD-ROM:只读光盘,只能一次性写入数据,由生产厂家将数据写入,永远保存
CD-WO:可由用户写入一次,写入后不能修改或擦除,但是可以多次读出
CD-MO:可改写光盘,可以读出也可以写入数据;
光盘存储器的特点:大容量、标准化、相容性、持久性、实用性
辅助存储器方面的计算:
1.存储容量为capacity=n*t*s*b,n为存放数据的总盘面数;t为每面的磁道数;s为每道的扇区数;b为每个扇区存储的字节数
2.寻道时间为磁头移动到目标磁道所需的时间。
3.等待时间为等待读写的扇区旋转到磁头下方所用的时间。一般用磁道旋转一周所用的时间的一半作为平均等待时间。
4.磁盘存取时间=寻道时间+等待时间。
5.位密度:沿磁道方向,单位长度存储二进制信息的个数;
6.道密度:沿磁盘半径方向,单位长度内磁道的数目;
7. 数据传输速率R=B/T,B为一个磁道上记录的字节数,T为每转一周的时间
8.磁带机的容量计算:(这些公式要熟悉记住)
数据传输率=磁带记录密度*带速;
数据块长度=字节数*块因子/记录密度+块间间隔;
读N条记录所需时间T=启停时间+有效时间+间隔时间;
RAID存储器(廉价磁盘冗余阵列):基本思想是用多个小的磁盘存储器,通过合理的分布数据,支持多个磁盘同时进行访问,从而改善磁盘存储器的性能。其采用的主要技术:
1.分块技术:把数据分块写到阵列中的磁盘上;
2.交叉技术:对分布式的数据采用交叉式进行读写,提高访问速度;
3.重聚技术:对多个磁盘空间重新编址,数据按照编址后的空间存放;
主要特点如下:
1.物理上多个磁盘,但操作系统看是一个逻辑磁盘;
2.数据分布在磁盘阵列中的磁盘存储器上;
3.采用冗余技术和校验技术提高可靠性,可恢复数据;
4.RAID速度快、容量大、功耗低、价格便宜、容易扩展。
RAID0:无冗余、无校验,具有最高的I/O性能和最高的磁盘空间利用率
RAID1:磁盘镜像、磁盘利用率50%,具有最高的安全性
RAID2:海明码纠错、数据分块、并行访问、适合大批量数据、已很少使用
RAID3:奇偶校验、数据分块、并行访问、单独校验盘
RAID4:奇偶校验、独立存取、单独校验盘、适合访问频繁、传输率低
RAID5:独立存取、无单独校验盘、适合访问频繁、传输率低
Cache存储器:(对系统和应用程序员都是透明的)(重点)
Cache位于主存储器与CPU通用寄存器组之间,全部由硬件来调度,用于提高CPU的数据I/O效率,对程序员和系统程序员都是透明的。Cache容量小但速度快,它在计算机的存储体系中是访问速度最快的层次。
使用Cache改善系统性能的依据是程序的局部性原理,即程序的地址访问流有很强的时序相关性,未来的访问模式与最近已发生的访问模式相似。根据这一局部性原理,把主存储器中访问概率最高的内容存放在Cache中,当CPU需要读取数据时就首先在Cache中查找是否有所需内容,如果有则直接从Cache中读取;若没有再从主存中读取该数据,然后同时送往CPU和Cache。
系统的平均存储周期t3与命中率h有很密切的关系,如下的公式:
t3=h×t1+(1-h)×t2
其中,t1表示Cache的周期时间,t2表示主存的周期时间。
当CPU发出访存请求后,存储器地址先被送到Cache控制器以确定数据是否已在Cache中,若命中则直接对Cache进行访问,否则直接进行主存访问。
Cache的地址映射是指把主存地址空间映射到Cache地址空间,Cache和主存都使用同样大小的块为单位。Cache中常见的映射方法有三种。
直接映射:一对一,(不需要替换算法)
全相联映射:多对多
组相联映射:将块划分成组,主存中的一组与Cache相对应,根据高位地址标志符来访问数据,组相联可以允许相同的Block和word标志,而tag标志不同。
随着程序的执行,访问频繁地区将逐渐迁移,Cache中的内容逐渐变得陈旧,访问命中率下降,就需要更新内容。常用的替换算法有三种。
随机淘汰法:
先进先出法FIFO:
近期最少使用法LRU:
对于这个算法可以从整体上把握,每个的优点、缺点,不需要记算法的过程。
另外,为了保证环存在Cache中得数据与主存中的内容一致,对写操作来说有以下几种方法:
写直达:同时
写回:
标记法
虚拟存储器:(重点)(对应用程序员透明)
虚拟存储系统的作用是给程序员一个更大的虚拟的存储空间,其容量可远远超过主存储器的容量,而与辅助存储器容量相当。
我们提供给用户的这个存储器,即在软件编程上可以使用的存储器,就称为虚拟存储器。它的容量即虚拟存储空间,简称虚拟空间。面向虚拟存储器的编程地址称为虚拟地址,或称为逻辑地址。与主存和辅助存储器地址相对应。
为了实现虚拟存储器,需将虚拟存储空间与物理实存空间,按一定的格式分区组织管理,根据管理的方式不同可以分为三种虚拟存储器:页式、段式和段页式。
页式管理:
段式管理:
段页式管理:
此外还可以增加一个小容量的高速存储器实现一种快表查询,而快表和慢表也构成了两级存储器系统
另外,与Cache一样,虚拟存储器系统还需采用一定的调度策略实现主存内容的变换,使当前需要的程序和数据都在主存之中。常用的淘汰算法有:
FIFO算法:选择最先进入主存的页面淘汰
LRU算法:选择在最近一段时间内访问频率最低的页面淘汰
1.4中央处理器CPU
CPU由寄存器组、算术逻辑单元ALU和控制单元CU这3部分组成。
CPU的功能:
读取指令
解释指令
读取数据
处理数据
保存数据
1. 寄存器组分为两大类:
用户可见的寄存器,有通用寄存器、数据寄存器、地址寄存器、标志寄存器等;
状态寄存器,包括程序计数器PC、指令寄存器IR、存储器地址寄存器MAR、存储器缓冲寄存器MBR、程序状态字PSW。
2.运算器ALU:负责对数据进行算术和逻辑运算。
3.控制器CU:负责控制整个计算机系统的运行,读取指令寄存器、状态控制寄存器以及外部来的控制信号,发布外控制信号控制CPU与存储器、I/O设备进行数据交换;发布内控制信号控制寄存器间的数据交换;控制ALU完成指定的运算功能;管理其他的CPU内部操作。
控制器的实现有硬布线逻辑和微程序控制两种方案
中断控制机制:
计算机系统通常提供了中断机制,允许某一事件中止CPU正在执行的程序,转去对该事件进行处理,然后再返回原程序被中止处继续执行。其作用是提高CPU的处理效率,使CPU与I/O设备并行工作,还可以实现分时操作过程。
中断处理过程可分为:中断响应过程和中断服务过程。
中断的分类:按中断源位置可分为内部中断和外部中断;
按中断源的类型可分为硬件中断和软件中断;
按中断源的屏蔽特性可分为可屏蔽中断和不可屏蔽中断。
CPU处理中断有两种策略:中断排队和中断嵌套。
计算机的指令系统:
机器指令的格式、分类及功能:
CPU所完成的操作是由其执行的指令来决定的,这些指令被称为机器指令。
CPU所能执行的所有机器指令的集合称为该CPU的指令系统。
机器指令一般由操作码、源操作数、目的操作数和下一条指令的地址组成。
操作码指明要执行的操作;
源操作数是该操作的输入数据;
目的操作数是该操作的输出数据;
下一条指令地址通知CPU到该地址去取下一条将执行的指令。
指令系统可分为数据传送类、算术运算类、逻辑类、数据变换类、输入/输出类、系统控制类、控制权转移类等类型。
指令的寻址方式
常用的寻址方式有立即数寻址、直接寻址、间接寻址、寄存器寻址、基址寻址、变址寻址、相对寻址。
指令的执行过程
1.计算下一条要执行的指令的地址;
2.从该地址读取指令;
3.对指令译码以确定其所要实现的功能;
4.计算操作数的地址;
5.从该地址读取操作数;
6.执行操作;
7.保存结果.
1.5 输入/输出系统
I/O系统在CPU、存储器和各种外部设备之间负责协调和控制数据的输入/输出。
I/O系统控制器基本结构:
数据寄存器:
状态寄存器:
控制寄存器:
控制电路:
外设接口控制:
I/O系统的工作方式:
程序控制:CPU完全控制,CPU必须时时查询I/O设备的状态;
程序中断:I/O设备以中断方式通知CPU,定期查询状态
DMA方式:CPU只在数据传输前和完成后才介入
I/O系统的发展主要阶段:
数据通信:CPU直接控制外设;
程序控制:CPU不关心外设的具体细节,I/O增加了数据交换的功能;
中断方式:中断机制减少了CPU的等待时间,
DMA方式:暂停、周期窃取、共享方式
输入输出通道:专门的处理器控制I/O功能;
输入输出处理机:不仅拥有处理器,还有本地存储器
根据外部设备和I/O系统交换数据方式,设备接口可分为串行和并行接口。
常见的磁盘设备接口有:总线、DMA、通道、SCSI、并行口、RS232C、USB、IEEE1394
SCSI接口:并行接口;系统级的设备接口
P1394接口:高速串行总线,数据传输率高,价格低容易实现
I/O设备的类型和特性:
键盘:标准101键,主要作为字符、数字和汉字的输入
鼠标:坐标定位部件,有机械式、光电式和混合式三种。
显示器:输出设备,输出图象和字符,性能参数是分辨率和灰度级
打印机:输出设备,分击打式和非击打式打印机
扫描仪:图象输入设备,扫描图象或文本成数字图片,然后输入计算机处理
摄像头:图象输入设备图象数字化后存入到磁盘。
1.6 计算机总线结构
总线:一种连接多个设备的信息传递通道。
典型的计算机总线结构由内部总线和外部总线组成。
内部总线用于连接CPU内部各个模块;
外部总线用于连接CPU、存储器和I/O系统,又称为系统总线。
系统总线:可分为 数据总线、地址总线、控制总线3类。
数据总线:各个模块间传送数据的通道;
地址总线:传递地址信息,来指示数据总线上的数据的来源或去向,CPU根据地址信息从相应的存储单元读出数据或向该存储单元写入数据;
控制总线:控制数据总线和地址总线。
多层总线结构:大多数计算机系统都使用多总线体系结构进行互联。它的优点就在于根据各个部件对数据传输率的不同要求,用不同层次的总线进行互联,以适应各自的特性与需求,不同层次目的总线相对独立,允许使用不同的信号和以不同的速率运行。对某一层次总线结构的修改不会影响其他层次的总线结构。
常用的微机总线:ISA(工业标准体系结构)、EISA(扩展ISA)、VESA、PCI(外围元件互联结构)总线。
1.7 体系结构其他的知识
1.流水线技术
流水线技术其实是通过并行硬件来提高系统性能的常用方法,其基本思想在冯·诺依曼第一台存储程序计算机中已经提出。
流水线技术的基本原理实际上是一种任务分解的技术。把一件任务分解成若干顺序执行的子任务,不同的子任务由不同的执行机构负责执行,而这些机构可以同时并行的工作。在任一时刻,任一任务只占用其中一个执行机构,这样就可以实现多个任务的重叠执行,以提高工作效率。
流水线技术包括指令流水线和运算操作流水线。需要注意的是,对流水线技术而言,其对性能的提高程度取决于其执行顺序中最慢的一步。
在实际情况中,流水线各个阶段可能会相互影响,阻塞流水线,使其性能下降。影响流水线性能的主要因素有两个:执行转移指令和共享资源冲突。
在实际处理中,为了使流水线能维持最大的吞吐率,同时确保流水线各段不会产生冲突,就需要对流水线进行很好的控制。一般采用预留表来预测冲突。预留表是从流水线设计直接推导出来的,表中列出的是流水线上各个部件操作的时间信息,每一行代表流水线中的一段,而每一列则代表一个时间步。
流水线周期:
另外,流水线计算机处理中断的方法通常有两种。
不精确断点法
精确断点法
2.RISC技术
RISC(reduced instruction setcomputer)即精简指令集计算机,它的主要特点是CPU的指令集大大简化,从而减少指令的执行周期数,提高运算速度。
一般来说,CPU的执行速度受三个因素的影响:
程序中的指令数I
每条指令执行所需的周期数CPI
每个周期的时间T
它们之间的关系可表示为:程序执行时间=I*CPI*T
与CISC(复杂指令集系统)相比,RISC具有以下的特点。
CISC | RISC |
1)指令数量众多 2)指令使用频率相差悬殊 3)支持很多种寻址方式 4)变长的指令格式 5)指令可以对存储器中数据直接进行处理 | 1) 指令数量少 2) 指令的寻址方式少 3) 指令长度固定 4) 只提供了Load/Store指令访问存储器 5) 以硬布线逻辑控制为主 6) 单周期指令执行 7) 拥有相当多的寄存器 8) 优化的编译器 |
RISC采用窗口重叠技术完成寄存器的组织和参数的传递,对于RISC的流水线的处理是采用延迟转移的方法解决流水线阻塞和互锁。
另外,采用RISC技术的CPU硬件一般具有寄存器数量多、采用流水线组织、控制器的实现采用硬布线逻辑电路等特点。
3.并行处理技术
并行性(parallelism)就是指在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不同的工作,只要时间上相互重叠,就都蕴含了并行性。并行性有两重含义:
同时性(simultaneity):两个或两个以上事件在同一时刻发生
并发性(concurrency):两个或两个以上事件在同一时间间隔内发生
并行性有不同的层次,从不同的角度看其层次结构也不一样。
程序执行的并行性
指令内部并行:一条指令内的微操作之间的并行;
指令间并行:多条指令的并行执行;
任务或进程并行:软件的进程任务分解
作业或程序并行:软件和硬件的分配
数据处理的并行性
位串字串:一次只对一个字的一位进行处理
位并字串
位串字并
位并字并(全并行)
操作并行性
存储器操作并行:多个存储单元同时被访问
处理器操作步骤并行:指令的执行步骤重叠
处理器操作并行:大量的处理单元按同一指令对多个数据操作;
提高计算机系统并行性的措施主要有3类。
◆时间重叠
在并行性概念中导入时间因素,让多个处理过程在时间上错开,轮流重叠的使用同一套硬件设备的各个部件,以加快硬件周转,提高处理速度。
◆资源重复
在并行性概念中导入空间因素,基于“以数量取胜”的原则,通过重复设置硬件资源来提高系统可靠性或性能。
◆资源共享
多个用户按一定时间顺序轮流的使用同一套资源,以提高其利用率,从而相应的提高整个系统的性能。
并行处理机(也称为阵列处理机)使用按地址访问的RAM,以SIMD方式工作,主要用于要求大量高速进行向量或矩阵运算的应用领域。并行处理机的并行性来源于资源重复,它依靠操作级的并行处理来提高系统性能。
根据存储器的不同组织形式,并行处理机有两种典型的结构。
具有分布式存储器的并行处理机
具有集中共享存储器的并行处理机
并行性处理机的特点:
强大的向量运算能力
并行方式
适用于专门领域,如矩阵运算、向量运算
标量运算速度对系统性能的影响也很明显
具有向量化功能的高级语言编译程序有助于提高并行处理机的通用性,以及减少编译时间
4.多处理机
多处理机具有两个或两个以上的处理机,共享输入/输出子系统,在统一的操作系统控制下,通过共享主存或高速通信网络进行通信,协同求解一个大而复杂的问题。
多处理机通过利用多台处理机进行多任务处理来提高速度,利用系统的重组能力来提高可靠性、适应性和可用性。多处理机是新一代计算机结构的基本特征。
多处理机具有共享存储器和分布存储器两种不同的结构。
多处理机属于MIMD系统,与SIMD的并行处理机相比有很大差异。其根源在于两者的并行性等层次不同,多处理机要实现的是更高一层的作业任务间的并行。
大规模并行处理机MPP是由众多的微处理器组成的大规模并行处理系统。对称多处理机SMP与MPP最大的差别在于存储系统,SMP有一个统一的共享主存空间,而MPP则每个微处理器都拥有自己本地存储器。
MPP和SMP都是基于RISC处理器的。
1.8 计算机的安全、可靠性评价
安全与保密
数据加密即是对明文(未经加密的数据)按照某种的加密算法(数据的变换算法)进行处理,而形成难以理解的密文(经加密后的数据)。这是计算机安全中最重要的技术措施之一。
数据加密和解密是一对可逆的过程,其关键在于密钥的管理和加密/解密算法。通常加密/解密算法的设计需要满足3个条件:
可逆性
密钥安全
数据安全
按照加密密钥K1和解密密钥K2的异同,分为两种密钥体制,比较如下:
密钥体制 | 特点 | 典型算法 |
秘密密钥加密体制(K1=K2)或对称密钥体制 | 1. 加密与解密采用相同密钥 2. 加密速度快,通常用于加密大批量的数据 | 1.日本NTT的快速加密标准FEAL 2.瑞士的国际数据加密算法IDEA 3.美国的数据加密标准DES |
公开密钥加密体制(K1≠K2)或不对称密钥体制 | 1.加密和解密使用不同的密钥,其中一个公开,另一个是保密的 2.加密速度较慢,往往用在少量数据的通信中 | 1. RSA算法 2. NTT的ESIGN |
数据完整性保护是数据中加入一定的冗余信息,从而能发现对数据的任何修改、增加或删除。
在某些商业或金融领域经常需要一种“数字签名”的技术,防止通信的一方否认或伪造通信内容。数字签名是利用密码技术进行的,其安全性取决于密码体制的安全程度。它的目的是在保证真实的发送方和真实的接受方之间传送真实的信息。
数字签名有两个特点:
动态变化,随着密钥和数据的不同而不同
签名和数据不可分离
数据加密的安全性在很大程度上取决于密钥的安全性。
对于密钥的管理主要包括以下几个方面:
密钥体制的选择
密钥的分发
现场密钥保护
密钥的销毁
计算机可靠性、可用性和可维护性(computer reliability、availability and serviceability ,RAS)技术和容错技术是研究、设计、生产、评价计算机系统的重要内容。
计算机可靠性
计算机系统的可靠性是指从它开始运行(t=0)到某个时刻t这段时间内能正常运行的概率,用R(t)表示。失效率则是指单位时间内失效的元件数与元件总数的比例,以λ表示。当为λ常数时,可靠性与失效率的关系为:
两次故障之间系统能正常工作的时间的平均值称为平均无故障时间:MTBF=1/λ
通常用平均修复时间(MTRF)来表示计算机的可维修性,即计算机的维修效率,指从故障发生到机器修复平均所需要的时间。
计算机的可用性是指计算机的使用效率,它以系统到执行任务的任意时刻能正常工作的概率A来表示:
A=MTBF/(MTBF+MTRF)
计算机的RAS技术,就是指用可靠性R、可用性A和可维修性S三个指标来衡量一个计算机系统。
常见的计算机系统可靠性数学模型有3种。
串联系统:
该系统由N个子系统组成,当且仅当所有的子系统都能正常工作时,系统才能正常工作。整个系统的可靠性R和失效率λ分别为:
可靠性:R=R1R2…Rn
失效率:λ=λ1+λ2+…+λn
并联系统:
该系统由N个子系统组成,只要有一个子系统正常工作,系统就能正常运行。整个系统的可靠性R和失效率μ分别为:
可靠性:R=1-(1- R1)(1-R2)…(1- Rn)
失效率:
N模冗余系统:
该系统由N个(N=2n+1)相同的子系统和一个表决器组成,表决器把N个子系统中占多数相同结果的输出作为系统的输出。N模冗余系统的可靠性为:
可靠性:
(其中
表示从N个元素中取j个元素的组合数)
计算机可用性: 是指该系统在某一时刻提供有效使用的程度,以可用度A表示,可用度是在任意指定时刻系统能正确运行的概率。一般情况下,系统发生故障是可以修复的,,可用下列公式计算:A=MTBF/(MTBF+MTTR),其中MTBF为平均无故障时间,MTTR是平均修复时间。平均修复时间是指多次故障中,从开始失效到系统修复所用的平均时间,可用下式计算:
系统修复时间=申请维修时间+等待时间+维修时间+恢复时间
提高计算机可用性的途径是:提高计算机可靠性;提高计算机的可维护性,完善故障诊断与测试技术以及系统恢复和部件更换技术;提高维护人员的素质。
计算机可维护性:是指系统失效后在规定时间内可修复到规定功能的能力,参数修复率和平均修复时间MTTR。
故障诊断与容错:容错是指计算机系统在运行过程中发生一定的硬件故障或软件故障时仍能保持正常工作而不影响正确结果的一种性能或措施。
计算机的故障根据表现特点可以分为三类。
永久性故障:表现出稳定性和持续性,特点是故障可重复出现。
间歇性故障:表现出不稳定性和对系统状态的依赖性
瞬时性故障:偶然原因引起的短暂故障
软件故障:来源于程序错误
故障诊断包括故障检测和故障定位两个方面。通常,故障诊断的主要方法有三种:
对电路直接进行测试的故障定位测试法
“检查诊断程序”法
微诊断法
容错是采用冗余方法来消除故障影响。针对硬件,有时间冗余和元器件冗余两种方法。主要的容错技术有简单的双机备份和操作系统支持的双机容错。
计算机性能评价:
计算机性能评测是为了一定目的、按照一定步骤、选用一定的度量项目通过建模、计算和实验,对计算机性能进行测试并对测试结果作出评价的技术。
计算机性能评测的度量项目:
性能指标:
工作量类,吞吐率、指令执行速率和数据处理速率;
响应性类:响应时间
利用率: 资源利用率
可靠性、可用性和可维护性
环境适应性
兼容性和开放性
可扩充性
安全性
性能价格比
计算机性能评估的常用方法主要有:
时钟频率和指令执行速度:可用于比较和评价同一系统上求解同一问题的不同算法的性能。
等效指令速度法:通过各种指令在程序中所占的比例进行计算得到的
核心程序法:
数据处理速率:主要对CPU和主存数据处理速度进行计算得出的
基准程序法(benchmark)是目前一致承认的测试性能较好方法,有多种多样的基准程序。
整数测试程序
浮点测试程序
SPEC基准程序
TPC基准程序
转载于:https://blog.51cto.com/jiangzhi2013/1198135