主存储器按照存储单元地址进行存取,这种方式叫做按地址存取方式。
这里的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只读存储器ROM3.2.4双端口RAM和多模块存储器
以上高位交叉编制,和低位交叉编址,一个能用流水线一个用不了,读取时间相差很大
存取周期=存取时间+恢复时间
单体的不灵活,如果要读的数据一个在第一行一个在第二行,多体并行可以只读两个,而单体就需要读出两行。
3.3主存储器CPU