锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

计算机组成原理

时间:2022-10-25 12:00:00 通用二极管cd1408电流变送器cd195u各位d2553晶体管的参数

第一章:计算机系统概论

计算机分类:

电子计算机和电子模拟计算机:

现在一般指电子数字计算机

性能指标:

硬件

1)运算器:一般通过ALU计算器协同完成(计算逻辑操作部件)和累加器

2)储存器:

一个半导体触发器只能存储一个(0或1),存储的单词(需要多个半导体触发器)被称为存储单元。

每个存储单元都有编号,称为地址。

存储器中所有存储单元的总数称为存储容量(kb,mb等)

一般半导体存储器称为内存(RAM,ROM),磁盘光盘被称为外部存储器

3)控制器

基本操作称为指令

指令由 操作码(指令) 地址码(操作数) 组成

一台计算机通常有十几个基本指令,从而计算机指令系统(指令集?

通过取地址周期、翻译地址周期和执行周期的交替运行来执行指令

CPU:通常将计算器和控制器集成到电路芯片中,称为中央处理器

指令流和数据流:处理器字长-一次可处理的数据长度称为字(一般向下兼容)。

从内存中读取的信息流是指令流-流向控制器,执行周期读取数据流和流向计算器

4)IO设备与适配器

CPU通过三条总线 适配器连接外围设备

计算机软件

分为 系统程序,应用程序

语言:机器语言(唯一的语言,二进制)、符号语言:汇编、高级语言

高级语言:c,java等

编译链接需要转换为二进制文件计算机才能执行

数据库和数据库管理软件组成了数据库管理系统

层次结构

1)计算机系统的层次结构图

1-3级基本都是机器语言编写

2)软件和硬件的逻辑等价

任何指令都可以通过硬件或软件来完成。这取决于目标

固件:写入EPROM(只读存储器可以擦写可编程)或EEPROM(电可擦可编程只读存储器)中的程序。一般是驱动程序,功能上是软件,形式上是硬件

第二章 操作方法和操作器

数据格式

定点数

小数点的位置是固定的,通常表示纯小数或纯整数

浮点数IEEE754标准

v=(-1)^s * 1.M * R^E // s为符号位 为0则正数 1.M 为尾数,1.是浮点数的标准化表示-符合科学计数法 R为基数,二进制为2。  E指数代表移位(科学计数法指数相同,为整数)

-----------------------

32位:符号 1位,阶码E八位,其他为尾数M 23位

标准格式: x=(-1)^s * 1.M * R^(E-127) // s为符号位 为0则正数 1.M 为尾数,1.是浮点数的标准化表示-符合科学计数法 R为基数,二进制为2。  e=E-127指数代表(正负指数)

转换:按格式展开

小数部分:10-->2 乘法*2 直到小数部分0 , 2-->10 小数部分也按权展开

数字串(字符表示)

1)字符串形式

2)压缩十进制树串:一字节二十进制树---BCD代表数字代表4位

机器代码(二进制)表示

1) 原码:正负数只有不同的符号位

符号位占一位,其他按位权展开

注意:有 0和-0区别

2)补码:

正数:三种代码相同

负数:符号位不变,其他取反 1--方便运算

Xn代表值:0/1

n表示最高位:包括符号位,如八位 则n==8

注意:0只有一种表达形式(-0补码 进位舍去)

流程: 知道补码时,看符号

若为1 则 可以 -1取反转成原码 再按位权算 或 2^n-位权值

若为0 正数,直接位权

3) 移码 :常用于表示浮点数的阶码E

特点:符号位反过来,其他都一样

4)IEEE754标准(浮点)

定点加法,减法操作*

1 符号位算作数的一部分参与运算--都转化为加法

2 进位要舍去

[x]补 [y]补=[x y]补 //任意两数的补码之和等于该两数之和的补码 [x-y]补=[x]补 [-y]补 //[-y]补==y补->再包括符号位取反 1  相当于取反y的真值

流程

1)补充(不包括符号位)

2)若减法 则 算 [-y]补 -->变加法

3)按加法算 带符号位/舍进位

4)如为正,则直接按权 若为负数 则按两个方法算真值

->

若为负则 可以 -1取反转成原码 再按位权算 或 2^n-位权值-

定点溢出检测

通过逻辑电路自动检中断

正溢出,负溢出

双符号位方法:

看符号位数字本身

多加一个符号位:如果结果是双符号位异或不是1 溢出发生,最高水平表示正确

单符号位

看进位

符号位进位 异或 次高位 进位: 1时表示溢出

定点乘法/除法

由阵列乘法器和阵列除法器完成,内部结构复杂,但研究较多

手算和十进制差不多

计算机组成原理 定点操作-移位、加减、乘除(详细分析-看完) - 知乎 (zhihu.com)

定点运算器的组成

逻辑操作(为操作):

逻辑非:反向数求--- 对每一个求反

逻辑加(逻辑或)

常用 号表示:对两个数逻辑加就是对每一位进行 或操作(一个取1就1)

逻辑乘(逻辑与)

常用点号表示或直接连接在一起:(均为1-1)

逻辑异(异或)

全加器(FA)

S本位结果,Ci-n进位结果较低Cout 为于下一个进位结果

阵列由多个全加器连接而成

ALU(多功能算数/逻辑操作单元)

arithmetic and logic unit

对位AB不直接加法,而是通过函数触发器 转换为 X Y 进入全加器 ,不同的控制参数可以获得不同的组合函数,可以实现多种算数操作和逻辑操作

M为控制端:若为1 算数运算(可进位)

若为0 然后封你的进位输出-逻辑操作

定点运算器的基本组成:

包括ALU,多路开关三态缓冲器,数据总线等。

内部总线:按总线位置来分,cpu内部各部件的连线---内部总线

外部总线:系统总线,CPU与其他设备的连线

按逻辑来分:单向/双向的

总线模型

(三种) 

如三总线运算器:能一步之内输出结果,而单总线要三步(取两个操作数,输出结果)

浮点运算方法和浮点运算器

浮点数的运算步骤 - 活着的虫子 - 博客园 (cnblogs.com)

浮点运算流水线

分为多个子部分,并发执行---不用全部执行完再执行下一个

类似于进程的并发执行,提高了效率

第三章:储存系统

概述

局部性原理

无论是存取指令还是存储数据,在较短的时间间隔内,程序所访问的存储器地址在很大比例上集中在地址空间很小范围内。

这种在某一段时间频繁访问某一局部存储器地址空间的现象称为程序的局部性原理

1)时间局部性:最近被访问的信息很有可能被再次访问

2)空间局部性:被访问信息的相邻地址也可能被访问

多级存储系统

内存:能被cpu直接访问的存储器 称为 内存(主存) ,一般容量小,造价高

外存:在内存之外 容量更大,但访问慢的称为 外存(辅存);

CPU不能直接访问外存,需调进内存才能由CPU处理

为了性价比一般按照 多级存储系统来分配存储器:

存储器分类:

存储位元/单元: 能存储一位数据的半导体电路 --->若干个-->存储单元--->若干个-->存储器

介质:半导体器件(常见的内存材料),磁性材料(磁盘),光存储器(光盘)

存储方式:

1)随机存储器:能随机访问数据

2)顺序存储器:只能按顺序位置访问

3)半顺序:如磁盘,磁道顺序,半径随机

读写限制:RAM/ROM

易失性:断电后数据消失:RAM 断电后可以保存:ROM

存储器的编址:存储一个字的存储单元-字存储单元,单元地址-字地址。以此类推

大小端:将一个字的低有效位放在内存的低地址段--小端-ARM一般默认此类

存储器衡量指标:

1)存储容量:KB等

2)存取时间:又称访问时间,收到命令到完成所需的时间

3)存储周期:一次连续读写(进出)所需要的时间---CPU连续两次访问存储器的时间间隔

4)存储器带宽:通常bit/s为单位

RAM

SRAM:静态随机存储器

采用触发器作为存储位元,只要有电就能一直保存。

0)地址译码器:可以延展出不同选择线

地址和地址译码器_moodfriend的博客-CSDN博客_地址译码器

1)地址线:选择位的数据,容量为2^n n为地址线数量

2)数据线,代表有几列

3)控制线:选择高电平读,还是低电平写

 总储存容量为2^地址线数量 * 数据线数量

一般采用双译码方式--储存更大容量:

地址分为x,y两部分

存储器容量扩充

组合拼接多个

位扩展:数据线不够  IO数据线合并起来

字扩展:地址线不够,组合起来

字位扩展:上述结合

需要个数==(目标容量/容量)*(目标位/位)

DRAM

动态存储器-简化了每个储存元的结构,因此密度很高

使用MOS晶体管和电容器组成的单管DRAM电路-当电容满时代表1 

需要随时刷新,不然会丢失

DRAM的刷新:

因为读操作具有破坏性,会使电荷流失。而且也会随时间自动泄露

因此读后必须刷新(读自动刷新) +定期(周期)刷新所有单元

分为集中刷新(刷新周期中后半段时间集中刷新) 分散式刷新(刷新分散在周期内)

SDRAM:同步DRAM

传统DRAM是异步操作的,存取数据中有较长的延迟。

而同步DRAM在接口上增加时钟信号可以降低存储器芯片与控制器 同步的开销

DDR SDRAM:双速率同步DRAM

能在时钟的上升沿和下降沿都能数据传输

增加了差分时钟设计和 预取结构(改进在与提升存储矩阵的输出效率)

有DDR2,3,4等 :DDR4 sdram采用8n预取结构 +两个或四个独立存储体,每个存储体都有独立的操作能力。速率是倍增的

现在电脑一般采用DDR4

CDRAM:加入高速缓冲器的DRAM

常规的DRAM芯片内集成了一个小容量SRAM作为缓冲存储器。

ROM

掩膜ROM:不能改变,一次性

PROM:可编程ROM

programmable ROM

1)EPROM:紫外线擦除ROM

2)EEPROM:电可擦,不需要离线

3)flash:闪存----------电可擦,可在线编程的非易失性只读存储器

      分为NOR闪存:线性闪存,可以随机读取内容,在线执行,以区块或芯片为单位删除

      NAND闪存:非线性闪存,以页为单位-非随机储存,不能在线执行,以数十页组成的块为单位擦除

     区别:NAND有10倍与NOR闪存的擦除次数,而且容量大价格低,取代了部分磁截止赋存

提高存储器读取速度方法

CPU和内存之间在速度上是不匹配的,为提高交换速率,可以采用不同层次方法

芯片技术:提高内部结构或接口方式来提高单个芯片的访问速度(如dram,突发传输技术等)

结构技术: 双口/多体交叉存储器

转换为以内存为中心的系统,不仅CPU可以访问内存,其他端口也可以不经过CPU与内存交换信息。为了提高内存信息交换能力,提出了双端口存储器

双端口存储器:

具有两组相互独立的读写控制电路而得名。

当两个端口的地址不一样时,一定不会发生冲突

冲突:当地址一样1)且有写操作时2),便发生冲突。通过busy标志解决

多模块交叉存储器

模块;一套独立的存储器,有自己的控制电路等

顺序方式:模块内地址顺序访问,一模块工作时,其他不工作

交叉方式*(重点):连续的地址分布在相邻的不同模块内--可以实现多模块流水式存取,提高了带宽 (用若干位来选择模块等)

CPU同时访问四个模块,从模块角度来说,访问时间仍然用了一个存取周期

但对CPU来说:可以在一个存取周期内连续访问四个模块-->

-->各模块的读写过程重叠进行--并行存储结构

cache存储器

由高速的SRAM组成,介于CPU和内存之间,用于向CPU提供数据和指令,是一种高速缓冲器

由硬件直接管理

基本原理:

交换大小:

CPU与cache之间是以字为单位的,chche与主存交换是以块(由若干个字组成,定长)为单位

流程:

当CPU读/存数据时,将地址发给cache和内存->

若cache中存有---则命中--立即传送给CPU

否则缺失--用主存读取周期传入CPU-含有此数据的块送到cache

命中率/访问效率

命中率与 程序行为,cache容量,组织方式,块的大小有关 

主存与cache的地址映射(三种方法)

设计原则:

1)命中率高·

2)希望cache对CPU而言是透明的,软件不需要增加任何命令就可以访问cache

地址映射:

为了使cache能与内存交换数据,以及CPU存取内存地址转换为cache中的地址,需要有地址映射

1)全相联映射

cache的数据块大小与内存的数据块是等长的,

位置关系:将内存的一个块的地址与内容一起存于cache中。任意存放

流程:CPU指定一个内存地址时,所有行(块)标志同时在比较器中进行比较,

可以存储与cache的任意一行,非常灵活,缺点是比较器难以实现

2)直接映射

每一个内存块只能拷贝到cache的一个特点位置上

cache的行号(块号)i与内存的块号j 以下关系

i=j mod m //m为cache总行数

位置关系:将s位的主块存储地址:低r位作为cache行号,s-r位作为标记与数据保存在一起

流程:首先用r位找到行,然后用s-r标志位与比较器作比较。

硬件简单,成本低,地址变换快。但只有一个固定行可以存放,容易发生冲突-发生交换-效率低

3) 组相联映射

吸结合上面两总方法优点:

位置关系:

将cache分为u组,每组v行

m=u*v
q= j mod u 
//m总行数
//q 组号

组(mod)--->行(随机存放)

流程:直接映射方式流程找到组-->全相联映射方式流程找到随机行

通常称为v路组相联catch

cache替换算法

当沾满时,需要替换

1) LFU:最不经常使用算法

新进入为0,每访问++。计数值最小的换出

2)LRU:近期最少使用算法

每命中一次,计数器归0,其他++。将计数值最大的换出

保护了刚复制到cache的数据,符合逻辑

3)随机替换

      速度快,容易实现且效率略低于前两种

cache写操作策略

由于只是副本,应当与内存保持一致,当cpu对cache写入时,提供三种策略

1)写回法

当CPU写命中cache时,只修改cache内容,不立即写入内存。

当替换时才写回

真正起到了双向高速缓冲的作用,减少了对主存的访问,需要设计一个标志位来表明是否修改动过数据

2)全写法:

 写命中,同时修改

 未命中,可以选择是否同时写到cache

3)写一次法:

     第一次命中才同时写入,维护了系统cache的一致性

虚拟存储器(总)

为了解决储存容量问题

通过程序使用的虚拟地址-不用考虑物理存储器是否放得下,放在什么位置-运行时才将程序的一部分放入内存(通过地址转换部件)

程序可以透明的使用整个虚拟空间,虚拟空间可以远大于 /远小于实际空间。

若主存命中率很高,虚存的访问时间就接近于内存,而虚存的大小仅仅依赖于辅存的大小

逻辑地址/物理地址:

用户编织程序时使用的为虚地址(逻辑地址),计算机物理内存访问的地址为实地址(物理地址)

之间的转换称为:程序的再定位

虚存的访问过程:

用户程序按照虚拟地址编程并放在外存中(辅存)

也看实存是否名字,不命中外存数据调度进内存,再访问内存。跟cache大同小异

页式虚拟存储器:

储存格式

虚地址空间被划分为等长的页,称为逻辑页;主存空间也被划分为等长的物理页

虚地址分为两个字段:高字段逻辑页号,低字段页内地址(偏移量)

实地址                      :高字段为物理页号,低字段一样

虚拟页面:程序的虚拟页面 不等于页表

(内)页表:

一般在内存中(也可能一部分放在辅存中)

每个进程对应一个页表,里面有很多表项(对应着一个逻辑页),内含内存中的物理页号

有二级页表:页表的页表+是否已经调入内存的有效位1(若不为1,则调页表---一级的页表

反向页表:用于实地址-->虚拟地址的转换

转换方式:

内页表:虚地址--->内存地址

用逻辑页号找到页表内的对应表项+低字段偏移地址 == 物理地址

外页表:虚地址--->外存地址

外页表结构与辅存的机制有关(如瓷盆)

主页缺页时,需要调页

转换后援缓冲器(TLB)

即使逻辑页已经在主存中,也需要进行两次内存访问(页表+实地址)。

所以有了TLB,或称为快表---------与cache相似

TLB未命中则访问主页表-未命中则调页;

优缺点: 

页长固定,便于构造页表易于管理。但与程序的逻辑大小不相关。难于管理,不利于编程的独立性

段式虚拟存储器

分段:

是按照程序自然分界划分的长度,可以动态改变的区域(DOS?)

包含三个字段

1)有效位:是否已经存入内存

2)段起始:若已经在内存,显示首地址

3)段长:段长的界限,不能超出这个范围

段表:

跟页表一样存储在主存中

转换方法:

段号s->检查标志位为1-> 段内偏移量 d ->比较小于段长(上界)->组合

标志位不为1:缺段 调段

越界:发生越界中断

优缺点:

逻辑独立性易于编译管理等,段长动态有效利用空间。

但主存分配比较麻烦,容易留下外碎片,且段长不一定是2的整次幂,不能直接拼接得到物理地址,需要更多的硬件支持

段页式虚拟存储器:

两种优点结合:

通过段表--->页表两级再定位

虚存的替算法(表/段)

当调页至主存时,主存满,则对页面/段进行替换,通常设置一个修改标志位;

也有 FIFO/LRU/ LFU 算法等

储存管理部件

memory management Unit ----MMU:是虚实地址转换的核心部件

1)TLB协助下完成地址转换

2)维护TLB,存储保护,TLB出现问题时发起中断

cpu 与 主存 辅存 三级存储体系**

可以看出,最坏情况下可能发生三次未命中:

给出一组逻辑地址

TLB未命中 +主页表未命中(标志为0) -->则一定不在内存中

而cache是内存的副本,所以一定不命中

TLB、页表、Cache、主存之间的访问关系_xiaotai1234的博客-CSDN博客_cache和页表

cache与虚存的异同

第四章 :指令系统 

指令分类

1)微指令:属于硬件

2)宏指令:若干条机器指令组成的软件指令,属于软件

3)机器指令:通常所说的是这种,每一条指令可以完成一个独立的运算或逻辑运算操作

指令集:

一台计算机中所有机器指令的集合,称为指令集。是性能的重要因素

CISC

RISC:精简指令系统计算机

指令系统的性能要求

1)完备性:足够使用

2)有效性:能够高效的运行

3)规整性:包括

指令系统的对称性:所有寄存器(CPU内)和存储单元都可以同等对待·,所有指令都可以使用各种寻址方式;

指令系统的匀称性:一种操作系统的指令可以支持各种数据类型(字,双字,浮点数)

指令格式和数据格式的一致性:指令长度和数据长度有一定的关系

4)兼容性:能运行低档机上的程序(向下兼容?)

语言

汇编语言

符号语言,通过汇编器或编译器翻译成二进制机器语言

汇编语言依赖于计算机的硬件结构和指令系统。不能在其他类型的机器上运行

高级语言

符号语言,跟系统架构无关,可移植性高。

有些提高了汇编程序接口

指令系统体系结构(ISA):

是与程序设计有关的计算机架构。包括:

指令格式

分为 操作码OP + 地址码字段A

操作码OP:表示应该进行什么性质的操作 

一般n位的操作码,就有2^n 条指令

地址码:有几个操作数地址,就称为几操作数指令

 0)0地址:只有操作码,如停机操作不需要地址操作数

 1)一地址 :一般另一个操作数是隐形的

 2)二地址:分为访问内存指令格式(SS),访问寄存器(RR),都访问(RS)

 3)三地址:一般为了加快指令执行速度

指令格式分类(R-S):

根据访问的 操作数的物理位置来划分

1)SS:参与的操作数都放在内存中,需要多次访问

2)RR:寄存器中取操作数,放到另一内存,通常很快,因为不要访问内存

3)RS:既要访问内存,又要访问寄存器

指令字长度

指令字长度:整条指令的位个数 

若指令字长度==于机器字长度(一次所能处理最大长度)--->单字(机器字)长指令-以此类推

扩展操作码技术:

若指令字长度为16位:操作码四位+地址码四位*4

若OP只有4位,则最多只能有16条指令,而可以只用15种,剩下一个为标志,表示:->

一部分操作数地址码-->空间让给操作码->以此类推

操作数类型

地址数据:通常先进行地址寻址操作(如+段内偏移),通常看成无符号整数

数值数据:

1)定点整数,定点小数

2)浮点数

3)压缩十进制数(BCD)

字符数据:通常ascii 7+1位校验码

逻辑数据:按位看成逻辑数据,进行位操作

指令和数据的寻址方式

指令的寻址方式:

如何找到下一条指令的位置

1) 顺序寻址方式:利用PC 程序计数器,自动指向下一条

2)跳跃寻址:下条指令的的地址码由本条指令得出 如JMP 指令

操作数寻址方式

一般给出形式上的地址,根据某种转换为实际地址

1)隐含寻址:如单操作数指令,隐含了特定的寄存器 

2)立即寻址:直接给出立即数,是操作数本身

3)直接寻址:直接给出地址A

4)间接寻址:地址的地址,类似于指针?

5)寄存器寻址:操作数就是寄存器中的内容

6)寄存器间接寻址:寄存器的内容是操作数的地址

7)堆栈寻址:利用数据结构堆栈,通过pop push等来寻址

8)段寻址:通过段寄存器+偏移地址来寻址 ,如DOS环境下的段寄存器-s

9)偏移寻址:寄存器间接寻址+直接寻址(表示偏移地址的方式也行)   

EA=A+【R】
//EA表示实际地址,A表示偏移地址,R表示(段)寄存器
如汇编中ds[2]==ds中的内容加上2

1)相对寻址 :相对PC来寻址 ,如跳转到一个符号---PC当前值来加减符号代表的地址

2)基地址寻址:段寻址方式类似,可以隐藏段寄存器 如汇编隐藏默认 ds当做段首地址

3)变址寻址:为重复操作提供一种高效机制,变址寄存器内容增加1,而段寄存器内容不变

类似于 用两个寄存器来完成循环寻址:   ds[bx] ,bx++;

基本类型指令

一个较完善的指令系统应当由:数据处理,数据储存,数据传送,程序控制四大类指令。

1)数据传送指令

2)算数运算指令:如加减乘除,浮点运算,算数比较等

3)逻辑运算指令

4)程序控制指令:转移指令-跳转指令

5)输入输出指令:主要用来启动外围设备

6)字符串处理指令

7)特权指令:一般只提供给系统软件使用

8)其他指令:如暂停,空操作,复位治疗

ARM&RISC

一般采用精简指令集系统

1 指令条数减少

2 指令长度固定,指令格式和寻址方式减少

3 只有存取指令(lod/str)访问存储器,其余指令的操作均在寄存器之间进行,不能直接操作存储器

第五章:中央处理器

基本功能

CPU自动完成取指令和执行指令的任务,具有以下四方面基本功能

1) 指令控制:程序的顺序控制,指令序列不能任意颠倒

2)操作控制:一条指令往往又若干个操作信号组合来实现的----CPU管理并产生有关操作信号,把各种操作信号送往相应的部件,以控制动作

3)时间控制:各种操作指令均收到严格的时间控制,才能有条不紊的执行下去

4)数据加工:最基本的功能,通过算数或逻辑运算来处理数据

CPU的组成

运算器和控制器是组成CPU的两大核心部件,但随着VLSI技术发展,越来越多的逻辑功能部件被集成到cpu内部

控制器

由程序控制器PC,指令寄存器,指令译码器,时序产生器和操作控制器组成

1)从指令cache中取出指令,并指出下一条指令在指令cache中的位置

2)对指令进行译码或 测试,并产生响应的操作控制信号,以此完成操作

3)指挥并控制CPU,数据cache和输入输出设备之间的流动方向

运算器

由算数逻辑单元ALU,通用寄存器,数据缓冲寄存器(DR),程序状态寄存器(PSWR)组成、

收控制器的命令而进行动作----执行部件

1)控制所有的算数运算,和逻辑运算

算数操作产生一个运算结果,逻辑操作产生一个判决(bool值)

CPU中的主要寄存器:

有六种:

 注意:指令寄存器保存当前的指令 而PC指向下一条指令

 指令周期

通常取指令 执行指令 循环 以此来自动工作

时钟周期--->CPU周期(机器周期)--->指令周期

时钟周期:

又称T周期或节拍脉冲,是处理操作的最基本单位

CPU周期:为了划分指令的执行阶段而人为定义的周期,通常用内存中读取一个指令字的最短时间规定CPU周期。

一条指令最少需要两个CPU周期:

【取码+译码】 + [执行]
//其中执行最少一个CPU周期

单周期CPU:用最长指令完成时间定义一个时钟周期,非常浪费

多周期CPU:把指令执行分为多个阶段,每个阶段在一个T周期内完成,可以用不同T周期来完成一条指令,我们讨论这种

指令流程

如mov:

流程: PC-->地址总线-->指令寄存器-->PC指向下一条-->指令译码器-->操作控制器OC发出信号完成一系列操作-->指令结束 

用方框图表示:

公操作符号:~符号 ,一条指令执行完毕后,CPU所开始进行的一系列操作。(取指令也是公操作--一条指令结束后如果没有其他请求会自动执行下一条指令)

操作控制器:

对数据的流向加以控制,如经过哪个寄存器或三态门。

根据指令操作码和时序信号,产生各种操作控制信号。---

操作控制器发出的各种信号都是时间因素(时序信号) 和 空间因素(部件位置)的函数

通常分为:微程序控制器1)--存储逻辑技术 /   硬布线控制器2)--时序逻辑技术

微程序控制器

微指令(发出控制信号)-->微程序-->整个指令系统(整个程序)

思想:

微程序设计技术就是利用软件方法来设计硬件的一门技术

把整体操作进一步细分

控制部件与执行部件的联系:

1)通过控制线来向各个部件发送控制指令,以此来完成整个操作

2)通过反馈线向控制部件反映操作情况,根据执行部件的返回状态来下达新的微命令

微命令和微操作:

通过控制线来向各个部件发送控制指令,以此来完成整个操作

操作控制信号看成一个个微指令-->推动着微操作的执行

微操作是执行部件中的最基本操作,根据具体硬件逻辑关系分为两种:

1)相容性:能同时存在的微操作(如ALU的+操作 和控制4的)

2)互斥性:如多路开关的控制门(468 只能选择一种进行)

     多路开关:一个输入端代表着来自寄存器的信息,另一个输入端则作为操作控制端,只有当两个都有输入时,才输出

微指令和微程序:

一个cpu周期中,一组实现一定操作功能的微命令的组合,构成一条微指令。

由操作控制 和顺序控制两大部分组成:

1)操作控制部分:用来发出不同的控制信号,如置为1则表示发出微命令 如(ALU-R1微命令)

注意:一般给出的控制信号都是节拍电位信号(CPU周期),包含一个CPU周期。且发出的信号也要控制时间

2)顺序控制部分:用来确定下一条微指令的地址,一条条微指令序列构成微程序(一条机器指令)。

     通过P1P2标志位来判断是直接用20-23的地址,还是进行判别测试---会对20-23的位进行修改--按修改后的地址执行



微程序控制程序原理:

一条微指令==一条机器指令

由控制存储器,微指令寄存器,地址转移逻辑三大部分组成

1)控制存储器:是一种只读型存储器,存放实现全部指令系统(整个程序)的微程序,读出一条微指令并执行完毕的周期称为微指令周期

2)微指令寄存器:

分为微地址寄存器:决定下一条微指令的地址

       微命令寄存器:存放由控制寄存器读出的一条微指令信息

3)地址转移逻辑:判别P和执行部件的返回信号,来自动完成微地址的修改

CPU周期与微指令周期的关系

可以设计的跟CPU周期一样

用T4的上升沿存入数据,剩余时间读取下条指令

机器指令与微指令的关系: 

微指令序列组成微程序,对应着一条机器指令

前者与内存有关,后者与控制存储器有关

 可以看出,一条机器指令可以被微化,分为很多微指令去执行---进入微程序控制流程。

微程序举例

 其中一个黑方框,就是一个微程序(机器指令)

微程序设计技术

设计要求:

1)有利于缩短微指令字长

2)有利于减小控制器存储器的容量

3)有利于提高微程序执行速度

4)有利于对微指令的修改

5)有利于提高微程序设计的灵活性

微命令编码

1)直接表示法,用操作控制字段的每一位表示一个微指令;缺点是字段较长,控制储存器容量大。优点是简单直观

2)编码表示法(字段表示法):把一组相斥的微命令信号组成一个小组(字段),然后通过译码器对每一个微命令信号进行译码,输出即为操作控制信号

一个字段可以表示  2^n种微指令

3)混合表示法:综合起来

微地址形成方式:

1)计数器方式 :跟PC差不多,直接指向下一条微指令地址

优缺点:结构简单,并行转移较弱,速度慢,灵活差

2)多路转移方法:用地址转移逻辑来产生下一条微指令地址,有N个判断标志位的话,就能转移到2^N个微地址中的一个。

优缺点:实现多路并行转移,灵活好,速度快,但需要组合逻辑方式来设计

微指令格式

1)水平型微指令:一次性定义并执行多个并行操作微命令的微指令(如图5.22 能一次性执行多条微指令)

2)垂直型微指令:微操作编码。由操作码规定微指令。类似于OP

类比

水平并行强,效率高,灵活,执行一条指令时间短(因为垂直需要编译,而水平一般直接控制变量)

水平型难以掌控,与机器指令差异很大,很难学

硬布线控制器:

思想:

把控制部件看作产生专门固定时序控制信号的逻辑电路。一旦布线很难修改。

是由门电路和触发器构成的复杂树型逻辑网络。

通过激活一系列彼此不相同的控制信号来实现对指令的解释 

实现原理

输出信号C是一系列的函数,时序信号包括节拍电位和节拍脉冲

C=f(指令操作译码器输出,时序信号,状态条件信号)

这一信号C在某条特定指令和状态条件下&某一序号的特定节拍电位和节拍脉冲时间间隔内起作用,从而激活这条控制信号线,以此来加以控制

表达式

点号表示逻辑与,M节拍电位 T节拍脉冲 B状态条件信号 I操作码译码输出 

----------

指令流程

 通过节拍电位,和节拍脉冲信号来定时,可以看出不同指令需要的CPU周期不同,可以设计成跳过多余的节拍(如mov的第三节拍)

时序产生器: 

操作控制器产生的信号必须定时时序产生器的作用就是对各种操作信号实施时间上的控制

时序信号

时序信号产生器产生时序信号:一旦被启动,CPU就开始执行指令

硬件特性决定了时序信号的基本体制是: 电位--脉冲制

控制信号加在触发器的时钟输入端,数据加在触发器的电位输入端(电位的高低表示数据是0还是1)

根据冯诺依曼结构,数据和指令都放在同一个内存下,怎么分辨呢:从时间上来说,取指令发生在第一个CPU周期中,数据操作发生在第二个+CPU周期中。

多级时序体制

操作控制器利用定时脉冲的顺序和不同间隔,控制机器的运动---采用多级时序体制。

硬布线控制器中: 主状态周期---节拍电位----节拍脉冲三级体制

微程序控制器中:节拍电位---节拍脉冲 二级体制

注意: 互相对应关系

            主状态周期:指令周期

             节拍电位:CPU周期,机器周期

             节拍脉冲:时钟周期T

产生器构造

1)时钟源:为脉冲发生器提供稳定的脉冲信号

2)环形脉冲发生器:产生一组有序的间隔相等或不等的脉冲序列。提供给下一级的译码使用

3)~译码:通过译码电路部件产生 所需要的 节拍脉冲(CPU周期,内部还是一个个T),这时候还没有被允许发送,只有被启停控制部件允许,才能发送 

4)启停控制逻辑:电源一旦接通,就会产生原始的节拍脉冲信号,但只有启停机器运行的情况下,时序机器才被允许发送CPU所需的节拍脉冲。

T1---->T(被允许发送状态)

同样对于读写时序信号也需要由启停逻辑部件控制

CPU周期数控制方式

1)同步控制方式: 采用周期全统一方式/将大部分指令固定在一定时间内

2)异步控制方式:需要多少时间就占用多少时间,每条指令周期都可以有不同的CPU周期数

也可以是等待上一条指令完成后发回的“回答”信号

3)联合控制方法:

a:大部分序列安排在固定周期中,少部分用“回答”信号的方式来作为结束标志

b:CPU周期的节拍脉冲数固定,但每条指令的CPU周期不定长 ( 微程序控制器)

微操作控制信号的产生

微程序控制器:微操作控制信号由微指令产生,并且可以重复利用

硬布线控制器:由bool代数值的函数产生

设计过程:寻找产生同一个微操作信号的所有条件,并与适当的时序信号结合,写出bool函数表达式并简化,用编程器件或门电路来实现

总结:

CPU通过操作控制器发出指令信号(微指令)加上 时序产生器产生的脉冲信号(节拍电位,脉冲电位)的约束,来控制执行部件的运行。

通过微化机器指令来表示cpu指令信号对执行部件的控制

对应制约关系

微指令--节拍脉冲--时钟周期

微程序---机器指令--多个节拍电位--多个CPU周期

微指令系统---整个程序--主状态周期

CPU的流水线设计

划分为一系列子任务流水执行

由于流水执行:大部分指令在一个CPU周期内完成

并行性:

1)时间并行:指时间重复,在同一时间间隔内,轮流重叠一套硬件设备的各个部分

2)空间并行:指资源重复,常用在多处理器系统和多计算机系统(多台电脑一起?分布式操作系统/网络操作系统)

3)时间+空间:

      超标量技术:并行的同时,有两条以上的指令流水线,可以同时执行两个任务的相同子步骤

结构

由指令部件,指令队列,执行部件组成三级流水线。每一级流水线内部也可以流水线实现

理解图 

流水线分类

1)指令流水线:指令步骤的并行:划分为取指令,译指令,执行等子步骤并发执行

2)算数流水线:采用流水算数运算器

3)处理机流水线:宏观流水线,应用在多机系统中

冲突问题解决

1)资源相关:如同时访问一个存储器

      解决:延迟/增设一个存储器

2)数据相关:如先读后写

      解决:设若干结果缓冲器,供后序指令直接使用--定向传送技术

3)控制相关:由于转移指令,使本来流水的指令序列不能按照规划运行

      解决:

       延迟转移法:先执行再转移----继续完成跳转指令后面的指令,正好弥补重新排列指令序列的                                 时间

       转移预测法:直接先把转移后的指令称为流水线的一部分(提前预测)

动态流水调度

对指令重排防止发生处理器阻塞的硬件设计,分为三大类单元

RISC CPU

控制器多采用硬布线方式,更快速的

第六章 :总线系统

【计算机组成原理】 总线 - 宁任翃 - 博客园 (cnblogs.com)

类型:

1)内部总线:CPU内部连接各寄存器以及运算部件之间的总线

2)系统总线:CPU同步其他高速功能部件的总线

       内部按功能分为{

 地址总线

 数据总线

 控制总线

}

3)I/O总线: 中,低速 I/O设备之间互相连接的总线

特性

1)物理特性:物理连接方式,根数,插头形状等

2)功能特性:描述了每一根的功能,如地址总线宽度表示了能够访问的范围

3)电气特性:传递方向以及有效电平范围

4)时间特性:与时序关系的结合才能正确使用

标准化

PCI总线标准:

在层次结构的第二层,与处理器无关的高速外围总线

同步时序协议+集中仲裁式策略

PCIe总线标准

pci总线的改进,不同点:

1)高度差分传输:通过 D+ D-两根信号线传输,通过接收端比较差值来判断逻辑1/0

2)串行传输:由于并行传输结构复杂,有时候不如串行传输

3)全双工端到端连接:类似于网络传输?基于包的传输

Future bus+ 总线标准:

 是一个高性能的异步总线标准。其技术要求是:

(1)一个与结构、处理器、技术无关的开发标准。
(2)
基本上是一个异步数据定时协议
(3)允许采用可选得源—同步式协议,用来实现高速得块数据传输。
(4)支持32位或64位寻址,数据线的长度动态可变(32位、64位、128位、256位),以满足不同带宽的要求。
(5)全分布式的并行仲裁协议及集中式仲裁协议,并支持线路交换式和分离业务协议。
(6)提供对容错和高可靠性系统的支持。
(7)提供对Cache共享存储器的支持。
(8)提供一个兼容的消息传递定义。
Futurebus+总线是迄今为止最杂的总线标准,覆盖了物理层和逻辑层。它既可用于CPU总线,也可用于高速外围总线而与PCI总线竞争。Futurebus+和PCI都支持很高的数据传输率,但PCI总线的物理范围较小,适合以低成本的小系统(如PC机),而Futurebus+的目标是提供灵活和宽广的能力,以满足各类高性能系统的要求,适合于高成本的较大规模计算机系统。

总线连接方式

单总线结构

1)对于输入输出设备来说,跟主存的操作方法一样-----全部统一编址

多总线系统:

1)通过南桥/北桥与各种类型的总线相联{

      是一个起到屏蔽上层或下层细节作业的逻辑芯片,如上层CPU升级时,只需要更改北桥芯片

     北桥:CPU总线--PCI总线

     南桥:PCI总线--ISA总线

}

2)按照功能分为很多模块:如 CPU-cache模块/  IO适配器模块 

3)一般具有层次结构,速度差异较大的设备使用不同种类总线 {

按照层次

   CPU总线:CPU与存储器的总线,主要用于访问存储器

   PCI总线:用于连接高速I/O设备模块 ,上连北桥,下连南桥

   ISA总线:用于与低速I/O设备连接

}

接口

设备控制器属于 设备的一部分

接口/ I/O功能模块 通常称为I/O接口:外围设备通过设备控制器--接口与总线连接

1) 外围设备里自带设备控制器,负责与接口连接

CPU<----->通过总线<---->接口/适配器<---->连接外围设备

2)具有控制,缓冲,状态,转换,整理,程序中断(中断外围设备)等功能

3) I/O接口模块一般有两个接口:  与总线一定是并行传输,与外围设备可串行或并行

信息传输方式

串行传输:

通过 同步脉冲 +位时间 来表示表示逻辑1/0 

只需要一条传输线

优缺点:效率慢,成本低,结构简单

并行传输 

通过 电位+多条传输线 来表示 ---可以一次性传输多位

每一位就要一条传输线

优缺点:效率高,结构复杂,需要多条传输线 

波特率/总线带宽

带宽:

定义总线理论上所能达到的最高传输速率(MB/s),收到实际物理影响

== 一次传输的字节数/周期 == 一次传输的字节数*f(时钟频率)

波特率

每秒钟传送的bit数

比特位(串行位时间)占用的时间 T是比特率的倒数

总线仲裁

每个模块有主方和从方,如CPU访问内存,CPU主方-存储器从方

主方:主设备,占用总线的控制权

从方:响应主方请求
为了解决多个模块(主设备)同时竞争总线控制权的问题,必须有总线仲裁设备。

-------------------------------------

1) 策略:优先级策略 / 公平策略

2)按照仲裁电路的物理位置不同:分为 集中式仲裁 和 分布式仲裁两类  

集中式

物理部件:

有一个统一的总线仲裁器(控制器),负责处理请求信号,一般是CPU的一部分,单独的功能模块

每个设备接口(模块)都有一个序号

BS线为1,表示总线正在被使用

BR:送往仲裁器的请求信号线

BG:仲裁器送出的总线授权线

查询方式

1) 链式查询方式:BG串行的从序号1 接口开始 ,一个一个往下查询,如果有则获得控制权

 优缺点:优先级策略,靠近仲裁器的优先级高

               用很少的传输线就能完成查询,但电路故障敏感-前面坏了,后面就没法用,且优先级固定

2) 计数器定时查询:BR线发出请求,计时器从0开始计时,通过地址线发给各设备,如果计数值与BR的'设备序号'一致时,获得控制权

如果每次完成后都从0开始计时---优先级策略

             从上次计时出开始计时---平等策略 

优缺点:可以设置初始值等来改变设备的优先级,但以增加线数为代价

3) 独立请求方式:每一个设备都有独立的BR,BG线,仲裁器中有一个排队电路

       优先级策略

优缺点:响应时间快,优先次序控制灵活,但开销大

分布式仲裁

每个潜在的主方模块都有自己的仲裁号,和仲裁器。共享一个仲裁总线。

请求时,将自己的仲裁号发到仲裁总线上,仲裁器用总线上的号与自己的模块号比较,如果自己较小,则撤销自己的请求。由于设备速度不一样,需要反复比较才能得出稳定结果

优先级策略

总线的时序关系

一般分为五个阶段:

请求总线--总线仲裁---寻址--信息传送--状态返回

为了同步操作,必须有定时协议,指定事件出现在总线上的时序关系

同步总线定时协定

总线中包含时钟信号线,公用一个公共时钟,每个模块给予的时间差不多。

大多数事件都只占据一个单一的时钟周期(如读周期有延迟需要两个周期)

由于由统一的时钟来规定操作,且按最慢的模块来设计公共时钟,所以设计时各模块速率基本一致

优缺点:具有较高的传输频率,但模块速度差异较大时总线效率损失大

异步总线定时协议

建立在应答式或互锁机制上,不需要公共时钟,总线周期长度是可变的---通过返回信号(状态)来开始下一个事件

优缺点:灵活,根据需求来分配时间,周期可变,但增加总线的复杂度和成本

半同步总线定时协议

在同步定时协议的基础上,增加一根联络信号线,用来发出延时周期的信号,如插入一个时钟周期

优缺点:增加一点成本,但适应能力大大提高

周期分裂式总线定时协议

读周期时,地址线发出地址时,通常有若干个时钟周期的时间延迟(储存器内部的准备时间),数据才能发回CPU,这几个周期总线被占用但并无实际数据传输,浪费了总线资源。

分为两个子周期

1)发从数据地址后,立马和总线断开,重新仲裁

2)被读设备重新发出申请

优缺点:读数据双方都是主方,以硬件复杂度为代价换取总线性能提升 

总线传输基本操作

1)读写操作:读操作可以用分列式定时协议

2)块传送操作(突发/猝发式传送):只需要给出块的起始地址,对固定长度的数据一个接一个的读出或写入。通常块长为字长的4倍

3)读后写,写后读:组合操作,只需要给出一次地址,完成两次操作

4)广播,广集操作:一个主方--多个从方写操作--广播。多个从方在总线上进行AND/OR操作--广集--用于检测多个中断源

第七章 外存设备

理论上 除了cpu和内存 其他都输入外围设备

如(外存--磁盘,磁带等),都是通过总线+I/O设备来连接的

组成部分

1)存储介质:如磁盘的磁化元表示一位

2)驱动装置

3)控制电路

磁记录原理

利用磁表面存储,涂抹某些磁性材料来作为载体。

磁盘,磁带都属于磁表面存储器

优点:储存容量大,价格低,可长期保存

缺点:存取速度较慢,机械结构复杂

原理

利用磁性材料与电流的作用来进行读取;

利用磁感应强度B 来表示逻辑1/0

------->

写入时,磁头线圈加电,在周围产生磁场,磁化其下的磁性材料,电流方向不同,磁场的方向也不同,可用 0 和 1 区分。(电生磁)

读取时,磁头线圈切割磁场线产生感应电流,磁性材料的磁场方向不同,所以产生的感应电流方向也不同。(磁生电

磁盘

现在一般说的是温切斯特磁盘(可移动磁头固定盘片的磁盘)磁盘原理和技术详解_缥缈一叶舟的博客-CSDN博客_磁盘的工作原理

磁盘阵列RAID

多块磁盘结合称为一整块磁盘的技术

RAID磁盘阵列是什么(一看就懂) - 知乎 (zhihu.com)

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章