Huge Lemon的博客

计算机组成原理笔记

2018-05-21

一、计算机系统概述

计算机由五部分组成:控制器,存储器,运算器,输入设备,输出设备

系统结构:计算机系统对各级之间界面的定义,及其上下功能分配。各级都有自己的系统结构,各级之间存在透明性(确实存在,但无法监测设置)

计算机组成是指计算机系统结构的逻辑实现,包括 机器级内的数据通道和控制信号的组成及逻辑设计,他着眼于机器级内各事件的时序方式与控制机构,各部件功能及相互联系

计算机实现是指计算机组成的物理实现

吞吐量:表征一台计算机在某一时间间隔内能够处理的信息量。

CPI(Cycles Per Instruction):表示每条指令周期数,即执行一条质量所需的平均时钟周期数。计算如下:
CPI=执行某段程序所需的CPU时钟周期数/程序包含的指令条数

MIPS(Million Instructions Per Second):每秒执行多少百万条定点指令数,计算如下:
MIPS=指令数/(程序执行的时间*10^6)

FLOPS(Floating-point Operations Per Second):每秒执行浮点操作的次数,用来衡量机器浮点操作的性能,计算如下:
FLOPS=程序中的浮点操作次数/程序执行时间(S)

二、数据的机器表示

计算机数制:十进制D,二进制B,十六进制H······
二进制——>十进制:按权相加
十进制——>二进制:除2取余
十进制——>十六进制:除16取余
十六进制——>十进制:按权相加
二进制——>十六进制:四位合一(小数点左或右,每四位合一位)
十六进制——>二进制:将十六进制的每位用四位二进制表示

字母ASCII码:A所对应的码是在其十六进制的基础上加37H,小写字母的码比其大写字母对应的码大20H
数字ASCII码:在其数字基础上加30H

校验编码和解码
为了判断,纠正信息在存入物理设备或传输中被干扰而导致某些信息错误,需要在信息发送(存储)后之前进行编码,在信息接收(读出)后进行解码。
校验码编码采用冗余校验(在近笨的有效信息位尚在扩充若干校验位称为冗余位,冗余位越多纠错差错能力越强)的编码思想。
奇偶校验:是一种只有一位冗余位的编码方法,常用于主存校验,信息传送。分为奇校验,偶校验两种。
奇校验:编码后的有效信息位和奇偶校验位的个数为奇数
偶校验:编码后有效信息位和奇偶校验位1的个数为偶数

奇偶校验电路采用异或的方式。如果采用偶校验,将所有信息位异或后得到的就是偶校验位。如果采用奇校验,将所有信息位异或后再取反得到的便是奇校验
接收端将接受的全部信息(包括校验位)进行异或运算,如果是偶校验,结果如果为0则正确。如果是奇校验结果为1则正确

海明码编码
是一种既能发现错误又能纠正错误的校验码。
其中包含n位有效信息位,k位校验位。k位校验位一共有2^k种组合,除去采用一种组合指示是否在传输中出现错误。要满足如下公式:2^k>=n+k+1
海明码规定,位号(从左往右数,1为起始)等于2的权值的那些位均可用作奇偶校验位,余下则是信息位。
校验位与信息位的关系:信息位的位号等于哪几个校验位相加,就是被哪几个校验位检验。例如:3(2^0+2^1)位号为3的信息位将被位号为0和1的校验位
海明码的编码原理
校验位的值是其所校验的信息位之异或
海明码错误位查询
海明码出错指示码称为指误字,他所检验的不仅包含信息位还有,校验位。E0检验p0,E1检验P1,E2检验P2,E3检验P3,E4检验P4。指误字的值是所检验的位异或后的值
错误位就是E3E2E1E0
海明码的纠错
只需将错误位取反

循环冗余校验
设带编码的信息以多项式M(x)表示将M(x)左移得到M(x)x^r,使低r位全为0,以便与校验位拼接。
校验位用M(x)
x^r除以生成多项式G(x)(G(x)必须是r+1位的)所得余数则为校验位。
所得的余数与M(x)*x^r相加便为CRC码

CRC码的译码及纠错
用CRC码除以G(x)若余数为0,则该码正确。否则,余数即为错误位

三、运算方法运算器

符号:正0负1
原码表示
======整数:用逗号将符号与数隔开
======小数:用.将符号和小数隔开

补码表示
======整数:用逗号将符号位与数值部分隔开,负数或浮点机中正数阶码按位取反加1
======小数:用.将符号位与数值隔开,负数数值部分按位取反加1

反码表示
======整数:用逗号将符号位与数值部分隔开,负数或浮点机中正数阶码按位取反
======小数:用.将符号位与数值隔开,负数数值部分按位取反

定点表示
小数点固定的数,用来表示纯整数,纯小数。采用定点数的机器称为定点机
浮点表示
1.523432^3
将正数尾数最高位为1的浮点数称为规格化数,即0.11110101
2^10
浮点机中表示
阶符,阶码;数值

定点数乘除
定点数的乘法机算(原码一位乘):
最先部分积为0,判断乘数最低位(为1则部分积加上被乘数,为0部分积加上0)得到新的部分积,部分积右移一位,乘数得到此数放在最高位同时踢出最低位。当原始乘数全被踢出时运算结束,结果为部分积与新乘数拼接。
补码一位乘
判断乘数是否大于0(大于0则在结果不需加负的被乘数的补码,小于0需要加)(补码符号位为两位)
定点数的除法:
恢复余数法
(结果符号位是被除数与除数的符号位的异或)
(两个补码的运算,余数为负时需加上除数补码)
一开始被除数补码减除数补码,(若余数为负则上商0,加除数补码,余数左移一位后再减除数补码。若余数为正,左移一位,上商1,再减除数补码)直到结果位数与初始除数位数相同
加减交替法
一开始被除数补码减除数补码,(若余数为负则上商0,加除数补码。。。。。。

补码除法,末位横置1法

判断被除数补码与除数补码是否同号(同号则减除数补码,异号加除数补码),所得余数判断是否与除数同号(同号则上商1左移1位减除数补码,异号上商0左移一位加除数补码,直到所得商位数为初始商位数减1,所得结果左移一位加1。(!!!!同号减y补上商1,异号加y补上商0)

浮点数加减

加法
先对阶,按照小阶看齐大阶原则,使阶小的尾数右移。然后尾数相加,得数若是数值位第一位和符号位相同需左规(左移一位,阶码减1 )若得数符号位两位不同需右规,再做舍入处理
减法
先对阶,按照小阶看齐大阶原则,使阶小的尾数右移。然后尾数相减,得数若是数值位第一位和符号位相同需左规(左移一位,阶码减1 )若得数符号位两位不同需右规,再做舍入处理。阶符为01时为上溢,需做溢出处理,阶符为10时为下溢,按机器零处理。

四、指令系统

指令是指计算机执行某些操作的命令,一台计算机的所有指令的集合构成该机的指令系统,也称指令集。
寻址技术
指的是寻找操作数的地址或下一条将要执行的指令地址,寻址技术是计算机设计中硬件对软件最早提供支持的技术之一。
寻找下一条将要执行的指令地址称为指令寻址,寻找操作数的地址称为数据寻址。

s设计指令系统格式
直接寻址:OP + A
变址寻址:OP + Rx+A
寄存器寻址:OP+Rx

OP为操作码,A为形式地址,M为寻址特征

五、中央处理器

指令流,数据流
在程序运行过程中,在计算机的各部件之间流动的指令和数据形成了指令流,数据流。
指令流,数据流,不是程序中静态的指令序列和存储器中静态分配序列。指令流指的是cpu执行的指令序列,数据流指的是根据指令操作要求依次存取数据的序列。

cpu的基本功能就是对指令流和数据流在时间与空间上实施正确的控制。

程序计数器(PC)
是专用寄存器,又称指令计数器,用来存放正在执行的指令地址,或接着要执行的下一条指令地址。
cpu中的主要技术参数
cpu的字长:指的是在单位时间内同时处理的二进制数据的位数。cpu按照其处理信息的字长可分为,8位cpu,16位,32位,64位。
内部工作频率:又称为内频或主频,它是衡量cpu速度的重要参数。主频表示在cpu内数字脉冲信号震荡的速度。

控制器硬件实现办法
控制器分为三种,组合逻辑性,存储逻辑性,组合逻辑和存储逻辑结合型。

指令运行
一条指令运行过程可以分为三种阶段:取指令阶段,分析取数阶段,执行阶段。

微程序控制原理
微命令:控制部件向执行部件发出的控制命令
微操作:是计算机中最基本的不可再分的操作

微命令微操作是一一对应的微命令是微操作的控制信号,微操作是微命令的操作过程。

微指令:是控制存储器的一个单元的内容,是若干微命令的集合
微地址:存放控制存储单元的单元地址就成为微地址。
微周期:从控制存储器中读取一条微指令并执行相应的微命令所需的全部时间
微程序:一系列微指令的有序集合就是微程序。每一条机器指令都对应一个微程序。

微指令编码法
直接控制法,最短编码法,字段编码法

六、指令流水线

七、存储器系统及其层次结构

存储器的性能指标
存储容量:存储器所能容纳二进制信息的总量。容量单位:位(b) 字节(B)…… 1B=8b

存储器速度:衡量存储器的速度通常有三个相关参数(存取时间,存取周期,存储器带宽)

存储器的分类
按存储介质分(磁表面存储器,半导体存储器,光盘存储器)
按所处位置分(内存,外村,缓冲存储器(cache))
按存取方式分(随机存储器,只读存储器,串行访问存储器)

存储器的层次结构
缓存-主存主要解决cpu和主存速度不匹配问题 ,主存和缓存之间的数据调动是由硬件自动完成的
主存-辅存层次主要解决存储系统的容量问题,主存和辅存志坚的数据调动是由硬件和操作系统共同完成的

半导体存储器
随机存储器RAM:可以通过指令随机的对任意存储单元进行读写访问,RAM通常是住存储器的主要组成部分。分为动态(DRAM,每隔2ms刷新一次)和静态(SRAM)两种
只读存储器(ROM):仅能执行读操作的存储器
半导体串行存储器:其数据按位串行读出或写入

存储器芯片
存储容量:用常用存储单元个数乘以存储单元的位数计算
在存储器中存储1位二进制信息的存储元件称为基本存储单元,若干个基本存储单元组成一个存储字,存储字的位数称为存储器位宽,被一定的规则组合在一起构成一个存储体
存储器芯片由存储阵列,译码器,读写控制电路,数据缓冲电路构成。
地址译码器:将输入的地址信号(来自cpu发出的地址信号)翻译成某单元(存储字或字节)的选通信号,使该单元能被读写

存储阵列,译码器,读写控制电路分别通过片选信号CE,读写控制信号WE,输出允许信号OE引脚实现。

动态RAM的刷新:刷新即将原信息读出,再生成原信息重新写入。刷新的原因(因为存储单元是随机访问,未得到访问的单元内的原信息可能会消失,因此要定时刷新)通常有三种刷新(集中刷新,分散刷新,异步刷新)

存储器与cpu
存储容量的扩展:位拓展,自拓展,字位拓展
存储器与cpu的连接:地址线,数据线,读写命令线,片选线

八、互连及输入输出组织

九、总线系统

总线
是连接多个部件的信息传输线,是各部件共享的传输介质。
按照总线上传输信号的不同,总线可分为地址总线,控制总线,数据总线三类。
地址总线
传送的是从cpu等主设备发往从设备的地址信号
控制总线
传送的是一个部件对另一个部件的控制或状态信息。
数据总线
传送的是各部件之间交换的数据信息

根据连接方式不同,单处理机系统中采用的总线结构有两种基本类型,即单总线结构,多总线结构。
单总线结构
使用单一的系统总线连接cpu,主存,I/o设备,允许各设备间的信息直接交换。

简单,易扩充,工作效率低。

多总线结构
cpu和缓存之间采用高速的cpu总线,主存在系统总线上,通过桥,cpu总线,系统总线,高速总线彼此相连。

总线的仲裁
连接到总线上的功能模块分为主模块,从模块。主模块不固定,有启动一个总线周期的作用。从模块只能响应主模块的请求。每次只能有一个主模块。
仲裁就是在多个模块同时竞争总线控制权的时候选择一个主模块。
按照总线仲裁电路的位置不同,仲裁分为集中式仲裁和分布式仲裁。

集中式仲裁
每个功能模块有两条线连到总线,一条是仲裁请求线br另一条是仲裁授权线bg
具体实现方式有链式查询方式,计数器定时查询,独立请求。

链式查询方式:通过判断离总线仲裁器的远近判断其优先级,优先级高的且有仲裁请求则被授权。

总线通信控制
总线的通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调,如何配合,通常用同步通信,异步通信,半同步通信和分离式通信四种方式。

总线传输速率=总线宽度/总线传输周期

异步串行通信的数据传输速率用波特率表示。波特率是指单位时间内传送二进制数据的位数,单位用位/秒表示,记为波特。由于异步通信中包含若干附加位,如起始位,终止位,可用比特率来衡量异步串行通信的有效数据传输速率,即单位时间内传送二进制有效数据的位数单位用位/秒表示。

使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏