计算机组成原理(学习总结,持续更新中)

                                第 一 章:计算机组成

一、计算机硬件系统:

       (一)冯洛伊曼采用二进制作为数字计算机数制基础理论 理由:运算规则更简        单、更容易用物理状态实现。

       (二)冯诺依曼设计思想中的计算机硬件组成五大部分:   

                 1.存储器:用于存放数据和程序(两者用二进制形式表示,被统称为信息),以便被                                         CPU读取;有关部件:地址总线与数据总线。

                 2.运算器:用于信息加工处理,对数据进行算术(加减乘除)和逻辑(如比较,位移                                         等)运算;组成:算术逻辑单元(ALU)和一系列寄存器。

                 3.控制器:整个计算机的指挥中心,接收指令,控制信息流动。工作实质:解释程序。

                 4.输入设备(input/I):将信息输入计算机的外部设备。将图像、文字等信息转换成计算机能接收                                     并识别的信息形式。

                 5.输出设备:(output/O)将计算机运行结果转换成人们和其他设备能接收的信息形式的设备。

                 注:输入输出也被统称为I/O操作。

二、计算机软件系统:

       (一)分类:应用软件和系统软件(主讲系统软件)

       (二)系统软件种类:

                  1.操作系统:如UNIX、Windows、Linux等。

                  2.程序设计语言及语言处理程序:机器语言(二进制代码)、汇编语言(负责将汇编器通过汇编器转换机器指令)、高级语言(如C语言)。

三、计算机系统的层次结构(层数为降序):

        6. 高级语言层(如C语言、python等)----翻译(编译程序)---->5.汇编语言层---翻译(汇编程序)--->4.操作系统层---部分解释(OS)--->3.指令集架构层(机器语言:二进制)---解释(微程序)-->2.微代码层------>1.逻辑门层(布尔代数、逻辑门、寄存器)

:1、2、3层为硬件层,4、5、6为软件层,其中第四层面向机器,第五六层面向应用。

三、计算机性能指标和评价

       以下主要介绍几种常见的决定计算机性能的因素:

  (一)基本性能指标:

             1.字长:指CPU一次处理的数据位数,单位:字节(Byte);现代计算机字长一般为32或                             64位。

                           对计算机的影响:(1)影响计算机精度:字长越长,精度越高,反之精度越     低。

                                                        (2)影响数据的范围和精度:字长越长,定点数能表示的范围越大, 浮点数的范围越大、精度也越高。

              2.主存容量:指主存能储存的最大信息量,一般用M*N表示,其中M表储存单元数,也称字容量;N表每个单元储存的二进制总数,也称位容量。

                            对计算机的影响:增加主存容量,能有效减少程序运行期间访问辅存的次数,提高程序运行速度。

 (二)与时间有关的性能指标:

             关系:程序运行时间越短,计算机性能越好。

             程序运行过程(时间):硬盘访问-->内存访问-->I/O操作-->操作系统开销-->CPU运行

             注:只有CPU执行时间,也称CPU真正花费在程序上的时间,我们将基于用户CPU时间进行计算机性能评价。

              1.时钟周期(T):CPU仅完成一个基本的动作花费的时间,也是计算机中最小,最基本的时间单位。是时钟频率(f)的倒数。随着CPU主频的提高,时钟周期也会随之变短。

              2(重点).CPI:执行每条指令(也可指一类指令)所需的平均时钟周期数,或者一段程序中所有指令所需时钟周期的平均值。

     公式(重点):  

       假设程序中总指令条数用IC表示,程序执行所需的时钟周期为m,时钟周期为T,平频率为f,测根据上述CPI定义可得:

                                  CPI=m/IC                                         (1-1)

       若能知道每条指令的使用频率P_{i}、每条指令的CPI(用CPI_{i}表示)、每类指令的条数(用IC_{i}表示),则程序的CPI可表示为:

                               CPI=\sum_{i=1}^{n}(CPI_{i}*P_{i}) =\sum_{i=1}^{n}(CPI_{i}*IC_{i}/IC)   (1-2)

              3. cpu时间(用T_{cpu}表示):   

                               T_{cpu}=m*T=m/f=CPI*IC*T=CPI*IC/f      (1-3)

      注:根据上述三个公式,可以看出cpu时间与三个因素有关:

       (1)时钟频率:  时钟频率越高,程序执行速度越快;

       (2)CPI:   CPI越小,程序执行速度越快;

       (3)指令条数:  指令条数越少,程序执行速度越快。

                4.IPC:   指每个时钟周期CPU能执行的指令条数,是CPI的倒数。

                5(重点).MIPS:  即每秒百万条指令,更大单位有GIPS。可用每秒执行完成的指令数           量作为衡量计算机性能的一个和指标(以百万为单位)。

     公式(重点):

                                       MIPS=IC/_{}T_{cpu}^{}*10^{6}                       (1-4)

         将式(1-3)代入式(1-4)可得:

                                       MIPS=f/CPI=IPC*f                    (1-5)

               *6.MFLOPS:指计算机每秒执行浮点数运算的次数,而不是MIPS所衡量的每秒执行的                                          指令次数。

          经典例题:

                 若某程序编译后生成的目标代码由A、B、C、D四类指令组成,它们在程序中所占比例                   分别为40%、20%、15%、25%。已知A、B、C、D四类指令的CPI分别为 1、 2、 2、                    2。现需要对程序进行编译优化,优化后的程序中A类指令条数减少了一半,而其它指                     令数量未发生变化。假设运行该程序的计算机CPU主频为500MHZ。完成下列各题:
                 1)优化前后程序的CPI各为多少?
                 2)优化前后程序的MIPS各为多少?     
                 3)通过上面的计算结果你能得出什么结论?

                   答案:

                              (1)优化前:CPI=(CPIi*ICi/IC)=1*0.4+2*0.2+2*0.15+2*0.25=1.6 

                                   优化后:A、B、C、D这4类指令在程序中所占比例分别为
                                                 1/4、1/4、3/16,5/16,:CPI=1*1/4+2*1/4+2*3/16+2*5/16=1.75.

                              (2)优化前:MIPS=f((CPF*106)=(500*106)/(1.6*106)=312.5 

                                   优化后:MIPS=f((CPI*106)=(500*106)/(1.75*106)=285.7
                              (3)优化后,程序中A类指令条数减少,其他指令不变,各
                                  指令CPI不变,所以程序执行时间变短,但程序的CPI却
                                  变大,MIPS变小,所以不能简单地通过这此指标来评断
                                  计算机性能。
 

   

                                第二章   数据信息的表示

 一、数据表示的作用

               定义:将数据以某种方式组织起来,以便计算机直接识别并使用。

               考虑因素:

                                1.  数据的类型:满足对数据应用对数据类型的需求,一般要支持数值数据(整数、小数等)和非数值数据(如文字)。

                                2.表示的范围和精度:选择适当的数据类型和字长。

                                3.存储和处理的代价:应尽量使输出的数据格易于表示、存储和整理,应考虑计算机硬件性能和开销。

                                4.软件的可移植性:应使设计的数据格式在满足应用需要的前提下符合相应规范,以便在计算机之间传输。

二、数值数据的表示(重点/均以8bit为例)

 (一)数的机器码表示

    1.定点数的定义

       计算机中所有小数点位置固定的数叫做定点数,其中,小数点固定在最高位后的定点数叫做定点小数(如0.0000001),小数点固定在最低位后的定点数叫做定点整数

    2.定点数的组成
          定点整数每一位数权值:2^{7}  2^{6} 2^{5} 2^{4} 2^{3} 2^{2} 2^1{} 2^{0}

                                                 符+七位数值位

          定点小数每一位数权值:2^{0} 2^{-1} 2^{-2} 2^{-3} 2^{-4} 2^{-5} 2^{-6} 2^{-7}

                                                  符+七位数值位

                       二进制数与十进制数一样有正负之分,用0(正),1(负)区分,这种书写格式被称为真值。

       二进制数的组成:   符号位(1位)+数值位(7位),由符号+数值位一起编码表示的二进制数成为机器码。常用的定点数的机器码有原码,反码,补码和移码

            (1)原码:就是符号化的数值,编码规则:符+数值位(8bit的十进制数取值范围:-127~128)。

                               例1:(1)+19(十进制)=>  +10011(二进制)=>00010011(二进制8bit)

                                                  -19(十进制)=>   -10011(二进制)=>10010011(二进制8bit)

                                         (2)+0.75(十进制)=>0.11(二进制)=>0.1100000(二进制8bit)

                                                  -0.75(十进制)=>1.11(二进制)=>1.1100000(二进制8bit)

                           注. 换算时要注意题目规定的字长,由位数权值,定点整数将换算后的二进制数                                     加在末尾,而定点小数加在开头。   

             (2)反码:符号位与原码相同,当真值为正,反码与原码相同;当真值为负时,反码数值位为真值数值位取反。

                       例(2): 定点整数:+19(十进制)=>00010011(原码)=>00010011(反码)

                                                           -19(十进制)=>10010011(原码)=>11101100(反码)

                                         定点小数:+0.75(十进制)=>0.1100000(原)=>0.1100000(反码)

                                                           -0.75(十进制)=>1.1100000(原)=>1.0011111(反码)

             (3)补码:  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值