计组(一):概论与数据信息的表示

前言:关于计算机组成,《csapp》这本书一言难尽,虽然吹捧它已经成为业界常态,其中的实验也很有价值,但是至少汉化中间一部分实在是晦涩难懂。而且就算完全完成了实验也只是在高不成低不就的程度,想要完全替代计组+组原+操作系统实在是想多了…比较适合学完专业课想深化实践或者业余了解一下的朋友吧。
具体到计组这门课,我很推荐华中科技大学的配套课程和实验,难度固然有之,但是论及资料翔实程度我还未找到出其右者,老师往往还亲自解答,配套资源在mooc上都可以找到,书籍一本是秦磊华老师的《计算机组成原理》一本是谭志虎老师的《计组实践教程》,感兴趣朋友可以尝试一下。

几个基本概念

  • 时钟周期
    时钟周期是时钟频率的倒数,也称为节拍周期或T周期,是处理操作最基本的时间单位。显然,随着CPU主频的提高,对应的时钟周期时间也越短,例如,主频为100MHz CPU的时钟周期为10ns(纳秒),主频为1GHzCPU的时钟周期为1ns。
  • CPI
    计算机中一条指令的执行时间等于该指令实际执行过程中所用到的时钟周期时间之和。CPI(Clock cycles Per Instruction)是指执行每条指令所需要的平均时钟周期数。由于指令功能不同且同一功能的指令还可能具有多种不同的寻址方式,因此,指令执行时所需要的时钟周期数也可能不同。CPI既可表示每条指令执行所需要的时钟周期数,也可指一类指令(如算术运算类指令)或一段程序中所有指令执行所需时钟周期数的平均值。
    对于具有相同指令系统的不同计算机系统而言,同一段程序被编译后所生成的指令条数相同,但是执行这些指令所需要的时间不一定相同,因此,可将CPI作为计算机性能评价的指标之一。
  • CPU时间
    CPU时间即计算某个任务时CPU实际消耗的时间,也即CPU真正花费在某程序上的时间。该时间不包括因为等待输入输出操作的时间。我们用汇编语言编写延时程序时,其延长的时间就是程序包含的每条指令执行时间的总和。
  • MIPS
    MIPS(Million Instruction Per Second)即每秒百万条指令,用每秒钟执行完成的指令数量作为衡量计算机性能的一个指标,不过要注意这个指标考核的指令数是以百万条为单位。
    (1)该指标没有考虑不同指令在功能和执行速度上的差异性,因此,不能用于不同指令系统计算机之间性能的比较。
    (2)对同一台计算机,当测试程序中使用了不同类型的指令时测量出的MIPS也不相同,因此,当对同类计算机通过MIPS比较性能时应使用同一测试程序。
    (3)在一些情况下,MIPS值可能与计算机的实际性能成反比,在应用MIPS比较性能时,要避免在这样条件下应用MIPS比较计算机性能。最经典的例子就是带浮点运算硬件的计算机,使用浮点硬件执行浮点运算的计算机比使用软件进行浮点操作的计算机具有更高的实际性能,而MIPS则较低。
  • MFLOPS
    MFLOPS(Million Floating-Point Operations Per Second)描述的是计算机每秒执行浮点操作次数,而不是MIPS所衡量的单位时间内执行的指令条数。如某系统的运算速度为2MFL.OPS,表示该系统的浮点运算速度为每秒钟200万次。
    它不是机器实际执行程序时的速度,而是机器在理论上能完成的浮点处理速度。在应用MFLOPS作为衡量计算机系统性能时也要注意以下问题:
    (1)MFLOPS仅能反映浮点数的运算速度。
    (2)使用该评价指标也可能得到与实际浮点运算性能相反的结果,由于MFLOPS是根据程序中单位时间内执行浮点运算的次数来衡量计算机的浮点运算能力,若一个计算机有浮点数乘法指令,则执行一条指令就能完成乘法运算;而对于一个不具备浮点乘法的计算机而言,需要使用多条非乘法指令才能完成相同的乘法运算,此时后者的MFLOPS比前者还高。
    (3)MFLOPS的计算结果与所使用的程序相关。不同程序中包含的浮点运算的量不同,用该程序测量该计算机的MFLOPS,得到的结果也不相同。
    综上所述,采用MFLOPS衡量计算机的性能会受到一些条件的限制,为了能利用该指标客观评价计算机的浮点运算性能,实际应用中要注意上述限制条件可能对测试结果的影响。当然,在一般情况下,对体系结构系统相同或相近的两个系统,采用相同的程序计算MFLOPS,MFLOPS值越大表明该系统的浮点运算能力越强。
    计算机的性能很难用某一个指标来精确衡量,上述几个衡量计算机性能的指标之间也不是完全独立的,改变其中的一项指标可能会影响到其他指标。在处理器设计中引入一个新的特征,只有在程序运行的总时间减少的情况下才能算是对计算机的性能的有效改善。一个具有1GHz时钟的处理器未必比一个800MHz的处理器性能好,因为它们可能具有不同的CPI.
  • 系统的可靠性
    系统的可靠性是时间的函数,可量化为系统在给定时间内不出现故障的概率,假设用R(t)表示。假设系统建成时是完好的,当失效率为常数时,可靠性用公式(1.9)表示:
    在这里插入图片描述
    式中,A为系统的失效率。
  • 平均无故障时间
    平均无故障时间MTTF(Mean Time To Failure)也称为平均失效前时间,是指系统自使用以来到第一次出故障的时间间隔的期望值,可通过对大量同类系统运行的统计得到该值。
    在这里插入图片描述
  • 冯诺依曼型计算机的基本思想是什么?
    答:冯诺依曼型计算机的基本思想是存储程序和程序控制,其中的“存储程序”是指将解题的步骤编写成程序,然后把存储存放到计算机的内存中,而“程序控制”是指控制器读出存放在存储器中的程序并根据该程序控制全机协调工作以完成程序的功能。
  • 计算机内部有哪两股信息在流动?它们彼此有什么关系?
    答:计算机中有两股信息在流动:一股是控制信息,即操作命令,它分散流向各个部件一股是数据信息,它受控制信息的控制,从一个部件流向另一个部件,在流动的过程被相应的部件加工处理

IEEE标准754

因为latex不好写,用图片就太费事了,很难讲清楚,我在这里推荐一篇文章:
解读IEEE标准754:浮点数的表示
他也是转载,哈哈
其实csapp这里讲得也挺明白,这里要配合练习,多练练就好了
计算:
在这里插入图片描述
意义:
在这里插入图片描述

  • 浮点数规格化,要求位数的最高位为非0数码

数据信息的表示

  • 数值数据:计算机所支持的一种数据类型,用于科学计算,常见的数值数据类型包括小数、整数、浮点数数等。
    非数值数据:计算机所支持的一种数据类型,一般用来表示符号或文字等没有数值值的数据。
    机器数:数据在机器中的表示形式,是正负符号数码化后的二进制数据。
    变形补码:用两个二进制位来表示数字的符号位,其余与补码相同。即“00”表示正,“11”表示负。
    规格化:将非规格化的数处理成规格化数的过程。规格化数规定尾数用纯小数表示,且真值表示时小数点后第一位不为0(以机器数表示时对小数点后第一位的规定与具体的机器数的形式有关)。
    机器零:计算机保存数字的位有限,所能表示最小的数也有范围,其中有一个范围之中的数据无法精确表示,当实际的数据处在这个无法精确表示的数据范围时计算机就将该数作为机器零来处理,因此,计算机中的机器零其实对应的不是一个固定的数,而是一个数据表示范围。
    BCD码:用4位二进制数来表示1位+进制数中的0~9这10个数码,即二进制表示的十进制数。
    汉字内码:计算机内部存储、处理加工和传输汉字时所用的由0和1符号组成的代码。
    码距:一组编码中对应位上数字位不同的最小个数。
    奇偶校验:通过检测校验码中1的个数的奇/偶性是否改变来判断数据是否出错的一种数据校验方法。
    海明校验:是一种基于多重奇校验且具有检测与纠正错误的校验方法。其基本原理是将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶测试,就能提供多位检错信息,以指出最大可能是哪位出错,从而将其纠正。
    循环冗余校验:是数据通信领域中最常用的一种具有检测与纠正错误能力差错校验码,基利用生成多项式并基于模2运算建立编码规则。检错:检测被传送的信息中是否发生差错。
    纠错:纠正信息在传送或存储过程中所发生的错误。
  • 已知x=0.10110,y=-0.01010,求:[x/2]补,[x/4]补,[y/2]补,[2y]补解:[x]==0.10110=[x]=[x]补,所以[x/2]补=0.010110,[x/4]补=0.0010110;[y]=1.01010,[y]x=1.10101,[]:=1.10110,所以[y/2]补=1.110110,[2y]补;=1.0110。
  • 在这里插入图片描述
  • 通常将一组编码中任何两个编码之间不同代码的位数称为这两个编码的距离,简称码距,又称海明(Hamming)距离。对于一个编码体制,将其中所有的合法码距的最小值称为这个编码体制的码距。例如4位二进制编码0011与0001仅有一位不同,这两组编码的码距为1,而0011与0000两组编码的距离为2。
    码距是编码体制里一个重要概念,通过上面的例题不难看出,通过增加码距就能把一个不具备检错的编码变成具有检错功能的编码。校验码就是利用这一原理,在正常编码的基础上,通过增加一些附加的校验位而形成的。增加校验的同时也增加了码距,当码距增加到一定程度时,校验码不仅具有检错功能,而且还可具有纠正错误的能力。
    根据信息论原理,码距d与校验码的检错和纠错能力的关系如下。
    (1)d≥e+1:可检测e个错误。
    (2)d≥2u+1:可纠正t个错误。
    (3)d≥e+t+1:当e≥t时,可检测e个错误并纠正t个错误。
    根据上述关系,可得到码距的检错与纠错能力,如表2.9所示。
    在这里插入图片描述
  • 简单奇偶校验 奇偶校验分奇校验和偶校验两种校验。奇校验所约定的编码规则是让整个校验码(包含有效信息和校验位)中1的个数为奇数。而偶校验约定的编码规则是让整个校验码中1的个数为偶数。
  • 在这里插入图片描述
  • 为了解决海明码两位错的问题,可以引入一个总偶校验位
发布了165 篇原创文章 · 获赞 24 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/treblez/article/details/105602085