计算机硬件基础

课程内容提要

    ·数据的表示

    ·计算机系统的组成与体系结构

    ·存储系统

    ·总线系统

    ·可靠性

    ·校验码


·    数据的表示

        R进制转十进制使用按权展开法,其具体操作方式为:将二进制数的每一位数值用R^k形式表示,即幂的底数是R,指数为k,k与该位小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位置是该位和小数点之间数码的个数加1。

        十进制转R进制使用短除法。

        

        

wKioL1aFSiqiwGzhAAG1LzzhZW4739.png

        原码:最高位表示正负——0表示正、1表示负

        反码:正数与原码相同,负数符号位还是1,其他位取反

        补码:正数与原码相同,负数在反码的基础上加1

        移码:在补码的基础上,将符号位取反


·    数值表示范围


wKiom1aFU4WzFUkRAAChEM1jzw4404.png


·    数据的表示-浮点数运算

wKioL1aFVsqC5JveAADz26acmhs420.png



·    计算机结构


wKiom1aGruyyrtgbAAHPwT4XDWE533.png


·    计算机体系结构分类-Flynn

wKiom1aGsE2CKSAnAALvudKjDsU358.png


·    指令的基本概念

        一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下:

    

wKiom1aGtK3wKp-NAAAcs0fIuxY511.png

        操作码部分指出了计算机要执行什么性质的操作,如加法、减法、取数、存数等。地址码字段需要包含各操作数的地址结果的存放地址等,从其地址结构的角度可以分为三地址指令、二地址指令、一地址指令和零地址指令。

wKioL1aGtY-w3d16AABXFZtp0ds717.png


·    指令的编码-定长编码与变长编码

wKiom1aGtc3xDnoBAAHaj3Z_RAw404.png


·    指令系统基础-指令的分类

        数据传输类指令

        运算类指令

        程序控制类指令

        输入/输出类指令

        数据处理类指令


·    指令系统基础-寻址方式

        立即寻址方式

        直接寻址方式

        间接寻址方式

        寄存器寻址方式

        寄存器间接寻址方式

        相对寻址方式

        基址寻址方式

        变址寻址释放


·    寻址方式-立即寻址

        立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,也就取出了可以立即寻址使用的操作数。

        立即寻址的特点:在取指令时,操作码和操作数被同时取出,不必再次访问主存,从而提高了指令的执行速度。但是,因为操作数是指令的一部分,不能被修改,而且立即数的大小受到指令长度的限制,所以这种寻址方式灵活性最差。


·    寻址方式-直接寻址

        在直接寻址中,指令中地址码字段给出的地址A就是操作数的有效地址,即形式地址等于有效地址。

wKioL1aHzLmCpPBqAAA88pKHOmo896.png

        直接寻址的特点:不需作任何寻址运算,简单直观,也便于硬件实现,但地址空间受到指令中地址码字段位数的限制。


·    寻址方式-间接寻址

        间接寻址意味着指令中给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。

wKiom1aHzlWiY4Z3AABARlezvEI308.png

        间接寻址的特点:非常灵活,能扩大了寻址范围,可用指令中的短地址访问大的主存空间;另外可将主存单元作为程序的地址指针,用以指示操作数在主存中的位置。当操作数的地址需要改变时,不必修改指令,只需修改存放有效地址的那个主存单元的内容即可。但是,间接寻址在取值之后至少需要两次访问主存才能取出操作数,降低了取操作数的速度。


·    寻址方式-寄存器寻址

        寄存器寻址指令的地址码部分给出了某一个通用寄存器的编号R1,这个指令的寄存器中存放着操作数。

wKiom1aH0oOiJbvGAAAo4EhLo60763.png

        寄存器寻址的特点:一是从寄存器中存取数据比主存中存取数据要快得多;二是由于寄存器的数量较少,其地址码字段比主存单元地址字段短得多。因此这种方式可以缩短指令长度,提高指令的执行速度,几乎所有的计算机都使用了寄存器寻址方式。


·    寻址方式-寄存器间接寻址

        在寄存器间接寻址方式中,寄存器内存放的是操作数的地址,而不是操作数本身,即操作数是通过寄存器间接得到的。

        寄存器间接寻址的特点:兼备了间接寻址和寄存器寻址的优点。因此该寻址方式具有即快又灵活的特征,是一种被广泛使用的寻址方式。


·    寻址方式-变址寻址

        变址寻址就是把变址寄存器Rx的内容与指令中给出的形式地址A相加,形成操作数有效地址,即EA=(Rx)+A。

wKiom1aH79OQ0AejAABW4kSXygc119.png

        变址寻址的特点:修改地址方便。在遇到需要频繁修改地址情况时,无须修改指令,只要修改指令变址值就可以了,这对于数组运算、字符串操作等成批数据处理是很有用的。


·    寻址方式-基址寻址

        基址寻址是将基址寄存器Rb的内容与指令中给出的位移量D相加,形成操作数有效地址,即EA=(Rb)+D。

wKioL1aH9GCx8CH5AABfWOT_Tts209.png

        基址寻址原是大型计算机采用的一种技术,用来将用户的逻辑地址(用户编程时使用的地址)转换成主存的物理地址(程序在主存中的实际地址)。


·    寻址方式-相对寻址

        相对寻址是基址寻址的一种变通,由程序计数器提供基准地址,指令中的地址码字段做为位移量D,两者相加后得到操作数的有效地址即EA=(PC)+D

wKiom1aH9YfTEz7jAABWeXXxPuA781.png

        相对寻址的特点:操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总是相差一个固定值。


CISC与RISC

wKioL1aH9oOBUYiNAAG_2fcmwxg195.png


流水线-概念

        流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。




wKiom1aH-xOTkjGTAADWsPph0CA204.png




·    流水线-流水线阻塞

        ·资源相关

        ·数据相关

        ·控制相关

wKioL1aH-_agfttyAABuHF1lPYQ677.png








·    流水线-流水线计算

wKioL1aH_Ovxvi9CAAIfL8nLhjI167.png


·    多级存储器结构

wKiom1aJNU_AGcCEAABasg8fiMc534.png

wKioL1aJOYOjOQXIAAHaDjFTCBA142.png


·    Cache

        Cache的功能:提高CPU数据输入输出的速率,突破所谓的“冯·诺依曼瓶颈”,即CPU与存储系统间数据传送带宽限制。

       在计算机的存储系统体系中,Cache是访问速度最快的层次。

        使用Cache改善系统性能的依据是程序的局部性原理。


        如果以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期t3。则:

                                                            t3=h*t1+(1-h)*t2

        其中,(1-h)又称为失效率(未命中率)。


·    主存-编址与计算

        ·存储单元

        ·按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字

        ·按字节编制:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节。

        根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数,即:

                                        总片数=总容量/每片的容量

wKioL1aJQOGR7gp2AAFOa0BBde0767.png

·    总线

wKiom1aJQyeB9LtnAAEqB9y-sbI334.png


·    串联系统与并联系统

wKioL1aJRAzQ8HKWAADrevc3t6o378.png

·    N模混合系统

wKioL1aJRYWxVhP0AABluLyUd8k501.png


·    校验码-校验码基础知识

        码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据校验码的码距。

        例如,用4位二进制表示16种状态,则有16个不同的码字,此时码距为1。如0000和0001。

·    校验码-奇偶校验

        奇偶校验码的编码方式是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。

        奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数。

        偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数。


·    校验码-循环冗余校验码CRC

        CRC的编码方法是:在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位渐变地得到r位校验位(编码),以及如何从k+r位信息码判断是否出错。

        循环冗余校验码编码规律如下:

        1、把待编码的N位有效信息表示为多项式M(X);

        2、把M(X)左移K位,得到M(X)*X^k,这样空出了K位,以便拼装K位余数(即校验位);

        3、选取一个K+1位的产生多项式G(X),对M(X)*X^k做模2除;

        4、把左移K位以后的有效信息与余数R(X)做模2加减,拼接CRC码,此时的CRC码共有N+K位。

        把接收到的CRC码用约定的生成多项式G(X)去除,如果正确,则余数为0;如果某一位出错,则余数不为0。不同的位数出错其余数不同,余数和出错位序号之间有惟一的对应关系。

wKioL1aKh0vTay3AAAHUtwaMv1c491.png

wKiom1aKiRjwDvu3AAE4Y1Lpvms594.png


·        校验码-海明校验码

        海明校验码的原理是:在有效信息位中加入几个校验位形成海明码,使码距比较均匀地拉大,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出错误的位置,为自动纠错提供了依据。

                                                            2^r≥m+r+1


wKiom1aKkJuCpA0zAAIvcfvwjOY005.png

wKiom1aKkNrCHrccAAKoU29PADw643.png