Java教程

中级软考《软件设计师》学习手记——计算机组成与体系结构

本文主要是介绍中级软考《软件设计师》学习手记——计算机组成与体系结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  • 数据的表示

        进制的转换

        R进制转十进制使用按权展开法

        例如二进制:10100.01=1*2^4+1*2^2+1*2^-2

        例如七进制:604.01=6*7^2+4*7^0+1*7^-2

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

        例如将94转换为二进制数:

        2 | 94 余 0

        2 | 47     1

        2 | 23     1

        2 | 11     1

        2 | 5       1

        2 | 2       0

           1

        得到结果为1011110

        二进制转八进制与十六进制

        10 001 110(转八进制)

         2    1     6        216

        1000 1110(转十六进制)

           8       E             8E

        原码、反码、补码、移码:

                     数值1         数值-1          1+-1

        原码  0000 0001  1000 0001  1000 0010

        反码  0000 0001  1111 1110  1111 1111 (正数反码和原码一样,负数反码符号位不变,其他按位取反)

        补码  0000 0001  1111 1111  0000 0000 (正数补码和原码一样,负数补码在反码的基础上+1)

        移码  1000 0001  0111 1111  1000 0000   (在补码的基础上,首位取反)

        数值表示范围:

                             整数                            n=8

        原码:-(2^(n-1)-1)~2(n-1)-1        -127~127

        反码:-(2^(n-1)-1)~2(n-1)-1        -127~127

        补码:-2^(n-1)~2(n-1)-1              -128~127    +0的补码是8个0,-0的补码是8个0,所以补码要少占用一个编码,补码的取值范围会比原码、反码多一个

        浮点数运算:

        N=M*R^e,其中M称为尾数,e是指数,R为基数。

        对阶->尾数计算->结果格式化

        例如:1.0*10^3 + 1.19*10^2

                  对阶:1.0*10^3 + 0.119*10^3

           尾数计算:(1.0+0.119)*10^3 => 1.119*10^3

        结果格式化:例如:0.11119*10^4 => 1.1119*10^3

  • 计算机结构

    CPU:运算器(算数逻辑单元ALU)、控制器

    运算器:1、算数逻辑单元ALU:做加减法

                 2、累加寄存器AC:通用寄存器,不仅是加法,减法也会用到AC

                 3、数据缓冲寄存器DR:在对内存储器进行读写操作的时候,用来暂存数据的寄存器

                 4、状态条件寄存器PSW:用来存储在运算的过程中的标志位(进位、溢出、中断等状态)

    控制器:1、程序计数器PC

                  2、指令寄存器IR

                  3、指译码器

                  4、时序部件

  • Flynm分类法

    https://img1.sycdn.imooc.com/634240ca00018e1105590295.jpg

  • CISC与RISC

    https://img3.sycdn.imooc.com/6342413600011d7706750236.jpg

    CISC是以前提出来一种比较常用的指令系统,在计算机还没通用的时候,那时候需要计算机,就要找到厂商去定制,可能计算机体积很大有一个房间这么大。

  • 流水线技术

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

    取指 -> 分析 -> 执行

    https://img1.sycdn.imooc.com/634244490001befa06600191.jpg

    流水线计算:

    流水线周期为执行时间最长的一段。

    流水线的计算公示为:1条指令执行时间 + (指令条数-1)*流水线周期

    1、理论公式:(t1+t2+…+tk)+(n-1)*Δt(80%)

    2、实践公式:(k+n-1)*Δt(20%)

    例如:若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns。那么,流水线周期是多少?100条指令全部执行完毕需要的时间是多少?

    答:流水线周期是2ns;理论公式:5ns+(100-1)*2ns=203ns,100条指令全部执行完毕需要的时间是203ns;实践公式:(3+100-1)*2ns=204ns。

    流水线吞吐率计算:

    流水线的吞吐率(TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐率的最基本的公式如下:

            TP = 指令条数 / 流水线执行时间

    按例题来计算: 100/203ns

    流水线最大吞吐率:

            TP(max) = Lim(n/((k+n-1)Δt)) = 1/Δt

    按例题来计算:1/2ns

    流水线的加速比:

    完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之间的比称为流水线的加速比。计算流水线加速比的基本公式如下:

            S = 不使用流水线执行时间 / 使用流水线执行时间

    按例题来计算: (2+2+1)*100/203 => 500/203

    流水线的效率:

    流水线的效率是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比。

    计算流水线效率的公式为:

            E = n个任务占用的时空区 / k个流水段的总的时空区 = T0/k*Tk

    按例题来计算: (2+2+1)*100/3*203 => 500/609

  • 存储系统

    层次化存储结构:

    https://img1.sycdn.imooc.com/634276270001578505650311.jpg

    速度从快到慢:寄存器、Cache、内存、外存

    Cache——概念:

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

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

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

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

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

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

    局部性原理:

    时间局部性,例:

int i,s = 0;
for(i=1;i<1000;i++)
    for(j=1;j<1000;j++)
        s+=j;
 printf("结果为:%d",s);

        空间局部性,比如访问数组,访问完一个,然后访问临近的一个。

        工作集理论:工作集是进程运行时被频繁访问的页面集合。

        主存—分类:

        https://img3.sycdn.imooc.com/63427d5c0001887906990307.jpg

        断电之后,RAM的数据会丢失,ROM仍然能存储相应的信息。

        主存—编址:

        https://img1.sycdn.imooc.com/63427e990001aec506490308.jpg

        例题:内存地址从AC000H到C7FFFH,共有___(1)__K个地址单元,如果该内存地址按字(16bit)编址,由28片存储器芯片构成。已知构成此内存的芯片每片由16K个存储单元,则该芯片每个存储单元存储____(2)___位。

         解题思路:(1)大地址-小地址+1;K=1024=2^10

                          (2)总容量:112K * 16bit;总存储单元:28片 * 16K * x位

         答:(1)C7FFFH+1-AC000H => C8000H - AC000H = 1C000H;1C000H / 1024 => 1 1100 0000 0000 0000 / 2^10 => (2^16 + 2^15 + 2^14)/2^10 => 2^6 + 2^5 + 2^4 => 64 + 32 + 16 = 112。共有112K个地址单元。(2)112*16 / 28 * 16 * x =1 => x = 4。该芯片每个存储单元存储4位。

        磁盘结构与参数:

        https://img4.sycdn.imooc.com/634284aa00016fcf07140358.jpg

        存取时间 = 寻道时间 + 等待时间(平均定位时间 + 转动延迟)

        例题:假设某磁盘的每个磁道划分成11个物理块,每块存放1个逻辑记录。逻辑记录R0,R1,……,R9,R10存放再同一个磁道上,记录的存放顺序如下表所示:

https://img3.sycdn.imooc.com/6342872400018b8307210060.jpg

        如果磁盘的旋转周期为33ms,磁头当前处在R0的开始处。若系统使用单缓冲区顺序处理这些记录,每个记录处理时间为3ms,则处理这11个记录的最长时间为___(1)___;若对信息存储进行优化分布后,处理11个记录的最少时间为____(2)____。

        解题思路:(1)磁盘旋转周期为33ms,所以读取一个记录所需要的时间为33ms/11 = 3ms。读取一个记录所需要的时间是3ms,经过3ms可以把数据读取出来,因为是单缓冲区,当缓冲区处理完第一个数据的时候(读取出来才能处理),磁头过了第二的数据,所以磁头得转一圈(33ms)才能读到第二个数据。除了最后一个的处理速度都是3ms+33ms=36ms,最后一个数据的处理速度是3ms+3ms=6ms;(2)优化分布最小时间,意味着读取、处理循环操作,每次时间为3ms + 3ms = 6ms。

https://img3.sycdn.imooc.com/6342968b0001bbae07040420.jpg

        答:(1)处理这11个记录的最长时间为(3 + 33) * 10 + 3 + 3 =366ms

               (2)11 * (3 + 3) = 66ms

  • 总线系统

        总线:

        根据总线所处的位置不同,总线通常被分成三种类型,分别是:

        内部总线:微机内部各个外围的芯片与处理器之间的总线(芯片级别);

        系统总线:微机中各个插电板和系统板之间的总线;

            数据总线(用来传输数据)、地址总线(地址总线的宽度决定系统的操作位数)、控制总线(发送相应的控制信号);

        外部总线:微机和外部设备的总线;

  • 可靠性

  • 校验码

这篇关于中级软考《软件设计师》学习手记——计算机组成与体系结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!