zoukankan      html  css  js  c++  java
  • 软件评测师:计算机系统构成及硬件基础知识

    一、数制转换

    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、海明码中的任意一位都是由若干校验位来效验的。其对应关系如下: 被效验的海明码的下标等于所有参与效验该位的效验位的下标之和,而 效验位则由自身效验

    如果您觉得本篇文章还不错,欢迎点赞,转发分享(转发请注明出处),感谢~~
  • 相关阅读:
    How to function call using 'this' inside forEach loop
    jquery.validate.unobtrusive not working with dynamic injected elements
    Difference between jQuery.extend and jQuery.fn.extend?
    Methods, Computed, and Watchers in Vue.js
    Caution using watchers for objects in Vue
    How to Watch Deep Data Structures in Vue (Arrays and Objects)
    Page: DOMContentLoaded, load, beforeunload, unload
    linux bridge
    linux bridge
    EVE-NG网卡桥接
  • 原文地址:https://www.cnblogs.com/feng0815/p/15083237.html
Copyright © 2011-2022 走看看