• 软件评测师:计算机系统构成及硬件基础知识


    一、数制转换

    R进制转十进制

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

    例如:二进制 10100.01 = 1*(2^4) + 1*(2^2) + 1*2-2
    例如:七进制 604.01 = 6*72 + 4*70 + 1*7-2

    十进制转R进制

    十进制转R进制用短除法
    例:将173转换为二进制数 10101101
    image

    余数为零可省略,为一则纳入

    快速转换法

    二进制转八进制:取三合一法
    即从二进制的小数点为分界点,向左(或向右)每三位取成一位,然后将三位二进制按权相加,得到的数就是一位八进制数。
    image

    这里需要注意的是,在向左(或向右)取三位时,取到最高位(最低位)如果无法凑足三位,就可以在小数点的最左边(或最右边)补0,进行换算
    image

    八进制转为二进制:一分三
    即一个八进制数分成三个二进制数,用三位二进制按权相加,最后得到二进制,小数点依旧就可以啦。
    image

    二进制转十六进制:取四合一法
    即从二进制的小数点为分界点,向左(或向右)每四位取成一位
    image

    注意16进制的表示法,用字母H后缀表示,比如BH就表示16进制数11;也可以用0X前缀表示,比如0X23就是16进制的23

    这里需要注意的是,在向左(或向右)取四位时,取到最高位(最低位)如果无法凑足四位,就可以在小数点的最左边(或最右边)补0,进行换算

    十六进制转二进制:一分四
    即一个十六进制数分成四个二进制数,用四位二进制按权相加,最后得到二进制,小数点依旧就可以啦
    image

    二、数的表示

    原码:
    符号位:为0表示正,为1表示正

    反码:
    符号位:为0表示正,为1表示负

    补码:
    符号位:为0表示正,为1表示负

    移码:
    补码的符号位取反


    正数:三码合一

    负数:
    反码:原码最高位(符号位)为1,其他位取反
    补码:反码+1

    数的表示范围

    整数
    原码 -(2n-1-1)~2n-1-1
    反码 -(2n-1-1)~2n-1-1
    补码 -2n-1~2n-1-1
    移码 -2n-1~2n-1-1

    n为二进制位数

    浮点数运算

    image

    三、计算机基础

    计算机的组成

    image

    计算机体系结构

    image

    性能的基本概念

    总线的性能指标:
    总线的带宽,即单位时间内总线上可以传输的数据量,单位是MB/S

    总线的位宽,即总线能同时传输的数据位数,32位、64位

    总线的工作频率,即总线的时钟频率,它是协调总线上各种操作的时钟频率

    总线的分类:
    数据总线:传输数据信息,CPU一次传输的数据与数据总线带宽相等

    控制总线:传送控制信号和时序信号,如读/写、片选、中断响应信号等

    地址总线:传送地址,它决定了系统的寻址空间

    指令的概念

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

    image
    操作码部分指出了计算机要执行什么性质的操作,如加法、减法、取数、存数等。
    地址码字段需要包括各操作数的地址及操作结果的存放地址等,从其地址结构的角度可以 分为三地址指令、二地址指令、一地址指令和零地址指令
    指令流 :计算机执行的指令序列
    数据流: 指令流调用的数据序列
    多重性 :计算机同时处理的指令或数据的个数

    计算机体系结构分类-Flynn

    体系结构类型 结构 关键特性 代表
    单指令流单数据流 SISD 控制部分:一个
    处理部分:一个
    单处理器系统
    单指令流多数据流 SIMD (显卡) 控制部分:一个
    处理部件:多个
    以同步的形式执行同一 条指令 并行处理机
    阵列处理机
    超级向量处理机
    多指令流单数据流 MISD 控制部分:多个
    处理部件:一个
    被证明是不可能,至少 不实际 目前没有,有文献称流 水线计算机为此类
    多指令流多数据流 MIMD (当前) 控制部分:多个
    处理部件:多个
    能够实现作业、任务、 指令等各级全面并行 多处理机系统
    多计算机系统

    CISC与RISC

    CISC(复杂) RISC(精简)
    指令 数量多
    使用频率差别大
    可变长格式
    数量少,使用频率接近,定长格式,大部分为单周期,操作寄存器,只有Load/Store 操 作内存
    寻址方式 支持多种 支持方式少
    实现方式 微程序控制技术 增加了通用寄存器;硬布线逻辑控制为主; 采用流水线
    其他 优化编译,有效支持高级语言

    CISC的英文全称为“Complex Instruction Set Computer”,即“复杂指令系统计算机”
    RISC的英文全称为“Reduced Instruction Set Computer”,即“精简指令集计算机”

    并行/多行处理机

    并行处理机:
    阵列计算机,由多台处理机组成,每台处理机执行相同的 程序,是操作并行的SIMD计算机挖矿

    多行处理机:
    由若干台独立的计算机组成,每台计算机能够独立执行自己的程序,是MIMD计算机

    多级存储器结构

    image

    顺序存取 -> 无地址 (磁带)
    直接存取 -> 有地址,与位置有关 (硬盘、软盘、光盘)
    随机存取 -> 有地址,与位置无关 (内存、U盘)
    相联存取-> 按内容存取 (cache)

    cache:存储体系最快的存储器
    Cache的功能:提高CPU数据输入输出的速率,突破所谓“冯.诺依曼瓶颈”, 即CPU 与存储系统间数据传送带宽限制在计算机的存储系统体系中,Cache是访问速度最快的层次 使用Cache改善系统性能的依据是程序的局部性原理 。
    Cache由两部分组成:控制部分和Cache存储器部分
    如果以h代表对Cache的访问命中率,t(_1)表示Cache的周期时间,t(_2)表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期 为t(_3),则:
    t(_3)=h*t(_1)+(1-h)*t(_2)

    主存-编制与计算
    存储单元
    按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字 一个机器字的存储单元

    按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节 八位二进制 例如一个16位二进制的字存储单元可存放两个字节,可以按字地址寻址,也可以按字节地址寻址。当用字节地址寻址 时,16位的存储单元占两个字节地址。

    根据存储器所需要的容量和选定的存储芯片的容量,就可以计算出所需芯片 的总数,即:总片数=总容量/每片的容量
    如:内存地址区间为4000H~43FFH,每个存储单元可存储16为二进制数,该 内存区域用4片存储芯片构成,则构成该内存所用的存储芯片的容量是多少?
    首先计算内容空间的大小:43FFH-4000H+1=1024,其大小为1024×16bit 接着计算存储芯片的容量:(1024×16bit)/4=256×16bit=512×8bit

    存储器分类
    按访问方式:

    • 按地址访问的存储器
    • 按内容访问的存储器

    按寻址方式:

    • 随机存储器:对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的RAM
    • 顺序存储器:访问数据所需要的时间与数据所在的存储位置相关。如磁带
    • 直接存储器:介于随机存取和顺序存取之间的一种寻址方式。如DMA

    相连存储器:
    是一种内容访问的存储器,可用在高速缓冲存储器, 虚拟存储器中用来作段表、页表、快表存储器。 用在数据库和知识库中

    寻址方式:

    • 立即寻址:是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意 义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中, 只要取出指令,也就取出了可以立即使用的操作数。
      特点:在取指令时,操作码和操作数被同时取出,不必再次访问主存,从而提高了指令的执行速度。但是,因为操作数是指令的一部分,不能被修改,而且立即数大小收到指令长度的限制,所以这种寻址方式灵活性最差。

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

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

    • 寄存器寻址:寄存器寻址指令的地址码部分给出了某一个通用寄存器的编号Ri,这 个指定的寄存器中存放着操作数。
      image
      特点:一直从寄存器中存取数据比从主存中存取数据要快得多;而是由于寄存器的数量较少,其 地址码字段比主存单元地址字段短得多。因此这种方式可以缩短指令长度,提高指令的执 行速度,几乎所有的计算机都采用了寄存器寻址方式。

    • 寄存器间接寻址:寄存器间接寻址方式中,寄存器内存放的是操作数的地址,而不是 操作数本身,即操作数是通过寄存器间接得到的。
      image
      特点:兼备了间接寻址和寄存器寻址的优点,因此该寻址方式具有即快又灵活的特 征,是一种被广泛使用的寻址方式。

    • 变址寻址:变址寻址就是把变址寄存器R(_x)的内容(通常是首地址)与指令中给出的形式地址A(通常是位移量)相加,形成操作数有效地址,即EA=(R(_x))+A
      image
      特点:修改地址方便。在遇到需要频繁修改地址情况时,无须修改指令,只要修改 变址值就可以了,这对于数组运算、字符串操作等成批数据处理是很有用的。

    • 基址寻址:基址寻址就是把基址寄存器R(_b)的内容与指令中给出的位移量D相加,形成操作 数有效地址,即EA=(R(_b))+D
      image
      特点:基址寻址原是大型计算机使用的一种技术,用来将用户的逻辑地址(用户编 程时使用的地址)转换成主存的物理地址(程序在主存中的实际地址)。

    • 相对寻址:相对寻址就是把基址寻址的一种变通,由程序计数器提供基准地址,指令中的 地址码字段作为位移量 D,两者相加后得到操作数的有效地址,即EA=(PC)+D
      image
      特点:操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间 总是相差一个固定值。

    串联系统和并联系统

    串联系统:
    image
    设系统各个子系统的可靠性分别用R(_1), R(_2), R(_3)……, R(_n)表示,则系统的可靠性 R=R(_1)×R(_2)×R(_3)×……×R(_n) ,如果系统的各个子系统的失效率分别用λ(_1), λ(_2), λ(_2)……, λ(_n)来表示,则系统的失效率 λ=λ(_1)(_2)(_3)+……+λ(_n) ,则系统平均故障间隔时间为: MTBF=1/λ
    并联系统:
    image
    设系统各个子系统的可靠性分别用R(_1), R(_2), R(_3)……, R(_n)表示,则系统的可靠性 R=1-(1-R(_1))×(1-R(_2))×(1-R(_3))×……×(1-R(_n)) ,如果系统的各个子系统的失效率均为λ,则系统的失效率μ为(frac{1}{frac{1}{λ}sum_{j=0}^nfrac{1}{j}}),则系统平均故障间隔时间为: MTBF= 1/μ
    图片名称

    混合系统:
    image
    可靠性计算:
    并联改串联
    R * (1-(1-R)3

    校验码

    计算机系统运行时,各个部之间要进行数据交换. 为确保数据在传送过程正确无误,常使用检验码. 我们常使用的检验码有三种. 分别是奇偶校验码、海明校验码和循环冗余校验码(CRC)。

    什么是码距:
    1.海明码距。它是指两个码字中不相同的二进制的个数。
    2.两个码字中的码距,是一个编码系统中两个合法编码之间不同二进制的位数。
    3.编码系统的码距,是整个编码系统任意两个码字的码距最小值。

    用1位长度的二进制编码。若A=1,B=0,那么A、B之间的最小码距为1
    用2位长度的二进制编码。若A=11,B=00,那么A、B之间的最小码距为2
    用3位长度的二进制编码。若A=111,B=000,那么A、B之间的最小码距为3

    码距重点 :如 [1100,1010]码距为2 因为前后两者第2位和第3位各不同
    同理[0000,0011,1100,1111 ] 0000与1111码距:4 ,0000和0011的码距 2 二者取小

    码距和查错、纠错能力与码距d具有以下关系:
    若码距为奇数,可发现 d-1 位错误,可纠正(d-1)/2 位错误。
    若码距为偶数,可发现 d-1 位错误,可纠正 d/2-1 位错误。

    奇偶校验码-仅可检测,可检测1位错。
    CRC(循环冗余码)-仅可检错,可检测多位错。
    海明码-可检错,也可纠错,可纠正1位或多位错。

    1、奇偶校验码
    是一种简单有效的检验方法,通过在编码中增加一位校验位来使编码中的1的个数为奇数(奇效验)或者为偶数 (偶效验),从而使码距变为2。
    即:
    奇校验:原始码流+校验位 总共有奇数个1
    偶校验:原始码流+校验位 总共有偶数个1

    2、 CRC
    循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等 数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或 者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
    利用生成多项式为K个数据位产生r个校验位进行编码
    其编码长度为:k+r

    生成多项式:
    是接收方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终不变 在发送方,利用生成多项式对信息多项式做模2运算,生成校验码 在接收方利用生成多项式对收到的编码多项式做模2运算检测和确定错误位置
    应满足条件:
    1、生成多项式的最高位和最低位必须为1
    2、当被传送信息(CRC码)任何一位发生错误时,被生 成多项式做模2运算后应该使该余数不为0
    3、不同位发生错误时,是应该使余数不同
    4、对余数继续做模2运算,应使余数循环

    多项式与二进制的对应关系:
    x的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次对应0
    可以看出:x的最高幂次为R,转换成对应的二进制数有R+1位
    多项式包括生成多项式G(x)和信息多项式C(x)
    image

    海明校验码:
    海明码(Hamming Code)是利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的确定位置插入k个校验位,通过扩大码距来实现检错和纠错。对于数据位n的数据,加入k位的校验码,它应满足:

    [2^k-1>=n+k ]

    编码规则:
    设k个校验位为P(_k),P(_k-1),...,P(_1)
    n个数据位为D(_n-1),D(_n-2)...,D(_1),D0
    对应的海明码为H(_n+k),H(_n+k-1),...,H(_1)

    1、Pi在海明码的第2i-1位置,即H(_j)=P(_i),且j=2i-1。数据位则一次从低到高占 据海明码中剩下的位置
    2、海明码中的任意一位都是由若干校验位来效验的。其对应关系如下: 被效验的海明码的下标等于所有参与效验该位的效验位的下标之和,而 效验位则由自身效验

    如果您觉得本篇文章还不错,欢迎点赞,转发分享(转发请注明出处),感谢~~
  • 相关阅读:
    使用数字进行字符遍历
    注意:C++中double的表示是有误差的
    ER模型到关系模型的转换规则
    SQL中查询优化的主要策略
    分解成3NF保持函数依赖且为无损连接的算法
    函数依赖集闭包、属性集闭包、超键、候选键和最小函数依赖集的求法。
    分解成3NF的保持函数依赖的分解算法:
    模式分解是否为无损连接的判断方法
    字符串处理技巧
    sort+结构体实现二级排序
  • 原文地址:https://www.cnblogs.com/feng0815/p/15083237.html
Copyright © 2020-2023  润新知