25计算机组成原理王道ppt汇总

qq_58342766 2024-10-19 11:05:01 阅读 82

第一章计算机系统概述

1.2.2计算机硬件

1.2.2(补充各个硬件的工作原理)

 

 

 主存储器按照存储单元地址进行存取,这种方式叫做按地址存取方式。

这里的pc自动加一并不是单纯的加一,而是将指针移动到下一个指令的位置,例如一个指令字长为2,pc将自动加2 

 将pc的值放入MAR在用MAR的值到主存里面读取数据,将数据放到MDR中,随后将MDR的值送到IR指令寄存器中,将操作码和地址码拆开,操作码送到CU控制单元,地址码送回MAR。

一般从主存读取的数据都是先放入MDR寄存器中。

        

1.2.3计算机软件

 

 书本上的话:

编译程序(汇编器):将汇编语言程序翻译成机器语言程序。

解释程序(解释器):将源程序中的语句按照执行顺序逐条翻译成机器指令并执行

编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序

某一个功能既可以由硬件实现又可以由软件实现,在用户角度看来是等价的,被称为软\硬件逻辑功能等价性。例如浮点数计算。

1.2.4计算机系统的层次结构

 

 软硬件之间的界面就是ISA指令集体系结构。定义了一台计算机可以执行的所有指令的集合。ISA是指软件能感知到的部分,也称为软件可见部分。 

1.2.5计算机系统的工作原理

 

1.3计算机性能指标 

 

G TP EZ 

要说评价计算机系统性能的指标:MIPS,IPC,CPI,字长都可以 

 

 补充: 机器字长:通常和ALU宽度,通用寄存器位数有关

字长:用于整数运算的数据通路的宽度。

字:用于信息处理的单位。x86为16字长一个字

指令字长:指令字的长度,一般是存储字长整数倍。取一条指令也是花费整数倍的周期。

存储字长:一个存储单元存储的二进制代码位数。

 

MFLOPS GFLOPS TPEZ等都是每秒执行多少次浮点运算 

第二章数据的表示与运算

2.1数制与码制

2.1.1进位计数器

2.1.2BCD大纲已删

2.1.3(扩展)各种码的作用

2.1.4 定点数的编码表示

 

2.1补充长度

int 32 short 16 long32 float32 double 64 char 8  int=short+int时short要转化为int

2.2运算方法和运算电路

2.2.1逻辑门电路(补充)

2.2.1加法器

CF:Cin:如果是减法Sub Cin就是1,如果是加法Cin就是0

Cout就是最高位进位

C0不是最低位的进位,是反码变成补码的那个加一,就是减法变加法的时候出现的

减法看借位如果被减数大于减数则借位标志0。

CF=1表示当作无符号数运算时溢出,假如int形的a=10,b=-20,如果当作无符号数b=2e32 - 20

 

2.2.1并行进位加法器

 

2.2.1多路选择器三态门

 

2.2.1ALU

 

op控制信号,AB都是输入数据,FR是标志寄存器储存OF CF ZF SF

2.2.2定点数的移位运算

 

定点小数同理

2.2.3定点数的加减运算 溢出判断

这个方法的判断逻辑很简单就是正正相加结果为负或者负负相加结果为正。 

一句话概括就是符号位的进位和最高数值位的进位。

就是符号位变成两个,如果结果符号位为一个1一个0则溢出。 

2.2.3无符号整数的加减运算

2.2.3补码加减运算电路

当前为加法时Sub为0 MUX的0输出,同时给Cin为0.

当前为减法时Sub为1 MUX1端口输出,Y取反,同时Cin为1 ,取反后加一。

也可用于无符号整数的计算

在2.2.1逻辑门有补充这些标志时如何得到的

进位为0 好像就是没有进位。

2.2.4原码乘法电路 

符号位随便几个都行下一讲最后一张ppt有讲

2.2.4补码乘法电路 有辅助位

2.2.4原码除法运算

到这里恢复余数和正常计算都进行了一遍,

大概流程时首先在MQ的末尾直接给1,让被除数-除数,看结果是大于0还是小于0,如果是大于0则逻辑左移,MQ🙅补一个0,如果小于0则恢复余数,MQ也变回0,同时逻辑左移,MQ补一个0.进行5次吧MQ都填满就行,这个5次是机器字长5,是1个符号位加上4个数值位。

不恢复余数法

这里是变成a后直接左移变成2a,随后加b

2.2.4补码的除法运算

 

除法总结

2.3浮点数的表示和运算 

2.3.1浮点数的表示

双符号位的挽救。

补码的最大值最小值有点特别,主要是尾数的最高位一定要是有效的,所以不能用传统的最大最小来判断。主要还是记一下最小是-1

最高数值为要是有效数字 补码负的就是0

2.3.2IEEE754

阶码的范围长这样是因为全1和全0有其他用途。

2.3.3浮点数的加减运算 强制类型转换

 

             那就意味着这个小数点的前边会有好几个有效值有效位,所以如果用计算机来处理二进制的浮点数。你想让它的尾数的小数点固定在好几个有效值的,后面这个是很难实现的,不太方便用计算机处理,而如果说是让阶数小的向阶数更大的对齐,那用计算机硬件做这种处理是很简单的。只需要做一个算术右移就可以,

2.3.4 数据的大端小端,对齐存储

最低有效字节LSB 最高有效字节MSB 

例如: 01 23 45 67H  LSB位01H MSB为67H 大端方式求最低有效字节的地址需要加上数据长度。

大端方式:先存储高字节 字中字节顺序与原序列相同

小段相反。  

在存放Struct{ int a; float b}时小端并不是先存float b ,而是先存int a的从后开始的数据。

边界对齐:看25王道62页。

编译器要求结构体成员在空间上对齐。满足条件

1.起始地址%该成员的长度=0

2.结构体长度是最大成员长度的整数倍。

精简指令系统计算机RISC通常采用边界对齐方式,因为边界对齐方式取指令时间相同更能适应指令流水。

第三章存储系统

3.1存储器概述

 

3.2主存储器

3.2.0+3.2.3主存储器的基本构成

片选信号和字选信号计算机组成原理补充——片选信号详解-CSDN博客

使能信号 - 与非网 (eefocus.com) 

使能信号是一种用于启用或禁用特定功能或操作的控制信号。它在各种应用中发挥着重要的作用,如数据存储器、逻辑门和时钟控制等。使能信号可以帮助控制系统的运行方式和节省功耗。

 

右上角的框框可以直接看作按字长4B寻址的地址,后面的两位可以作为片内地址

3.2.1SRAM和DRAM

栅极电容存储元便宜,双稳态触发器的存储元贵 

 

刷新对于CPU而言是透明的,即刷新不依赖于外部访问

DRAM的刷新单位是行,由芯片内部自行生成地址

刷新操作类似于读操作,但又有所不同。另外刷新时不需要选片,即整个存储器中的芯片同时被刷新。

DRAM的刷新和再生都是恢复数据,但不完全相同刷新时按照行为单位恢复的,再生时仅仅恢复被读出的数据。

目前更常用的时SDRAM(同步DRAM),主要不同是SDRAM是同步的,支持突发传输,详细见p86

 行地址位数和列地址位数应当尽量相等,应该满足列地址大于行地址位数。因为行数越少,刷新越快。

3.2.2只读存储器ROM

 

3.2.4双端口RAM和多模块存储器

以上高位交叉编制,和低位交叉编址,一个能用流水线一个用不了,读取时间相差很大

 存取周期=存取时间+恢复时间

单体的不灵活,如果要读的数据一个在第一行一个在第二行,多体并行可以只读两个,而单体就需要读出两行。

3.3主存储器CPU链接

上面一个是线选法 一个是译码器 

3.4外部存储器

3.4.1磁盘存储器

 

注意整个磁道号和盘面号也是有说法的,例如在地址依次增加的过程中盘面号一直在发生变化,而只需要激活不同的磁头就可以实现切换,而移动磁道的时间会更加的多。

3.4.2固态硬盘SSD(本节操作系统也有)

3.5高速缓存存储器

3.5.1+3.5.2Cachaa的基本原理

3cache和主存的映射方法

开头说明一下主存块号,块内地址的看法。

假设按字节编址,主存是一块一块来的一块的大小通常是字节的整倍,例如64B,那么块内地址就是长度6,剩下的地址位数就是主存块号了。

所以无论是组相联还是直接映射,寻找行号和块号的对应关系从来都是在主存块号内部。

此外剩余的主存块号通常被用作标记,剩下的隐含在cache的块号

这里行长和按字节编址不同于是块内地址也随之出现。

但是Cache块大小与主存块大小相等

 

 标记可直接用主存空间总大小/Cache的大小来获取。

标记可

计算Cache容量的问题时行数*一行大小

一行包括有效位、脏位、替换位(替换算法)、tag、数据位

替换算法LRU如果是8路组相连,那么LRU位占3位。

 

标记阵列,什么什么映射表应该是不包括数据位的,映射表的长度一般和主存地址相同,就是用主存地址来映射的;cache行则是另外的东西,cache也是分指令cahce和数据cache的。

4cache的替换算法

实际上做题很简单,只需要往前看就行。

至于2,3不需要考虑1的情况是因为:

2:都还有空闲行了,计数器的大小也不大没到2

3:到3的都被换出去了。

LRU如果是用于8路组相联的那么LRU位就占3位

5cache写策略

写命中是写数据的时候数据块在cache中,写不命中相反。

写不命中时只有读未命中才能调入主存。

3.6虚拟存储器

第四章指令系统

4.1指令系统

4.1.1+4.1.2指令的基本方式

4.1.3扩展操作码指令格式

cpu如何判断是什么指令呢:

首先先看前四位是否都为1,若不是则说明是三地址指令,若是则继续看下两个字节如果不全是1则说明是二地址指令,以此类推。

 

4.2指令的寻址方式

4.2.1指令寻址

如果是按字编址那么pc加一即可,但是主存按字节编址,pc就得加2,因为一行指令占2字节。

变长指令:可以占4B也有占2B的。

虽然当前指令是无条件转移指令,但是取完之后都自动加一所以在这个时刻PC是为4

4.2.2_1数据寻址1

  

4.2.2_2数据寻址2—偏移寻址

程序可以移动位置(浮动),用基址比较好

可以通过改变IX的值来遍历数组。

 

由于A是补码可正可负于是相对寻址可以访问pc前后的值。

注意PC的值在取指令后就自动加一了,所以A是相对于当前指令下一条指令的位移量

相对寻址广泛运用于转移指令。

4.2.3_3数据寻址3——堆栈寻址

四个寄存器只要两个bit

这里加一减一都是硬件完成的

一般用软的比较多

要区分开题目问的是地址还是操作数。 

第四章补充以及 第五章第六章-CSDN博客

第七章输入输出系统 见补充机组第七章输入输出系统-CSDN博客

7.1IO系统基本概念

7.2IO接口

7.3IO方式

程序查询方式

IO端口是I/O电路中可被cpu直接访问的寄存器

中断作用与原理

进入中断响应周期条件:中断请求发生、开中断、没进入屏蔽 

DMA请求处理的是高速设备

内核堆栈

这里中断向量和向量地址之所以要跳转两次是为了防止中断服务入口地址变化。

向量地址是指针的指针,中断向量是指针。

中断服务程序是cpu执行的 ,中断结束信号也是cpu发出的

多重中断

开中断放在保护现场的后面是为了防止打断保护过程,恢复现场同理,此外要在前面加上关中断。

和中断判优很像

程序中断方式

cpi是一条指令执行需要4个时钟周期

工作的那段就是0.5ms,中断响应是请求到响应这段,中断服务的20条指令执行到15条指的是响应-返回上面启动那个点

最后传送一个字符那个5条指令时间可算可不算

DMA方式

 DMA控制器是硬件,也称DMA接口

图中是三总线。

cpu程序和数据传输并行。

每次传送数据后会有中断请求,每次后处理会有中断请求。

而对于dma控制方式来说。每一个机器周期结束,或者说每一次存储周期结束,都可以响应一次dma请求,也就是可以完成一个字的传送,只要总线是空闲,主存是空闲的就可以了



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。