组成原理01
组成原理01:
PS :
这是很久之前写的笔记了(就是有道课是学的。。。),可能是照着打下来的,但是不甘就放到草稿里,还是发出来吧。。。
知识点1: 计算机层次结构
冯·诺依曼机 特点:
- 1.计算机硬件系统由运算器(ALU),存储器,控制器(CU),输入输出设备 5 大部件组成。
- 2.指令和数据以同等地位存于存储器中,并可按地址访问。 (那么怎么区分呢??? )
- 3.指令和数据均用二进制码表示。 (有些地址是16进制,计算机内大部分是2进制)
- 4.指令由操作码和地址码组成(过于绝对,还有特殊情况)。操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
- 5(重点掌握,pc = pc + 1 做准备,指针下移一位,并没有说这个一位有多大).
指令在存储器内按顺序存放。通常,指令是顺序的,可根据运算结果或根据设定的条件改变执行顺序。(也就是指针移多少位我们可以人为控制) - 6.早期的冯·诺依曼机以运算器为中心,输入输出设备通过运算器与存储器传送数据。
组成:
主机: 主存储器 和 CPU;CPU里有运算器(ALU)和控制器(CU)
输入输出设备。
各个部件的功能和结构:
存储器 是计算机的存储部件,用来存放程序和数据。(a = b + c)
分为 主存储器 和 辅助存储器 (很粗略的划分)
CPU 能直接访问主存储器(内存,主存)。 所以IO设备可以看成(因为之前有个大框架的图):辅助存储器(外存储器);U盘,移动硬盘也是。
辅助存储器中的信息 必须 调用 主存后,才能为 CPU 访问。(可以想想在学校机房安装codeblocks过程)
主存储器 由 许多的 存储单元 组成。
每个存储单元包含 若干个 存储元件。
每个存储元件 存储 一位二进制代码0或1.
存储单元可存储 一串二进制代码, 称为 存储字。
这串代码的位数 称为 存储字长。
主存储器 的 工作方式, 按存储单元的地址 进行存取。 称为 按地址存取。
运算器 是计算机的执行部件,完成 算术运算 和 逻辑运算。
算术运算 ,比如+ - * / ; 逻辑运算,比如 与 或 非 异或 比较 移位等
核心是算术逻辑单元(ALU)。
包含 若干个 通用寄存器,用于暂存操作数和中间结果。
比如, 累加器(ACC),乘商寄存器(MQ),操作数寄存器(X)。这些寄存器是必须有的。
可能还有 变址寄存器(IX),基址寄存器(BR)等。
还有 程序状态寄存器(PSW)(压栈来用), 保留各类运算指令 或 测试指令的结果 的各类状态。
控制器 是计算机的指挥中心。
由 程序计数器(PC),指令寄存器(IR),控制单元(CU)组成。
PC用来存放 当前 欲 执行指令 的地址,可以自动+1(没有说多大,是1个单位),以形成下一条指令的地址,它与主存 的 MAR(存储器地址寄存器)之间 有一条直接通路。
IR用来存放 当前 的指令, 其内容来自于 主存 的MDR(存储器数据寄存器)。
指令(包括操作码和地址码) 中的 操作码OP(IR)送至CU,用以 分析指令 并发出各种微操作命令序列。
而 地址码Ad(IR)送往 MAR 来取操作数。
(又来之前的刚开始的问题,怎么区分呢???)
输入设备 主要功能是 将程序和数据 以机器所能识别和接受的信息形式输入到计算机。
最常用最基本的输入设备是键盘,此外还有鼠标,扫描仪,摄像机等。
输出设备 将计算机处理的结果 以人们所能接受的形式或其他系统所要求的信息形式输出。
最常用最基本的输出设备是显示器,打印机。
IO设备后面有一章专门讲,说他的控制方式和工作原理。 包括接口,驱动,中断处理程序…
计算机的工作过程:
1.把 程序和数据 装入到 主存储器 中。 (不装到 主存 的话, CPU没法访问呀! CPU不会直接访问外部存储,或者说辅助存储。)
2.从 程序的起始地址 运行程序。 (给PC指针 地址 赋值了)
3.用程序的首地址 从 存储器中 取出 第一条指令,经过 编码,执行步骤 等控制计算机各功能部件协同运行,完成这条指令,并计算下一条指令的地址。
4.用新得到的 指令地址 继续读取 第二条指令 并 执行,直到程序结束为止。
每条指令都是在 取指,译码和执行 的 循环过程中完成的。
下面以 取数指令 为例,其大概信息流程如下: (即 将指令地址码 指示的 存储单元中 的 操作数 取出 后,送至 运算器的ACC中)
取指令: PC(地址) -> MAR -> M -> MDR -> IR 指令就读出来了 (CPU区分指令和数据的依据:指令周期的不同阶段。回答了刚开始的问题)
分析指令: OP(IR) -> CU
执行指令: Ad(IR) -> MAR -> M -> MDR -> ACC
此外,每取完一条指令,还必须为取下条指令作准备,形成下一条指令的地址,即 (PC) + 1 -> PC; (PC)加括号代表PC地址 代表 的值
软件:
软件是人们事先编制的具有各类特殊功能的程序。他们通常存放在计算机的主存或辅存中。
分为两大类: 系统软件 和 应用软件。
系统软件(又称系统程序):主要用来管理整个计算机系统,使系统资源得到合理的调度,高效运行。
例如: 操作系统,文件系统,编译程序
应用软件(又称应用程序):它是用户根据任务需要所编写的各种程序。
3个级别的语言:
机器语言:又称二进制代码语言。 是计算机 唯一 可以识别和执行的语言。
汇编语言:是用 英文单词或其缩写 代替 二进制 的指令代码。
汇编语言的程序 必须经过一个称为 汇编程序 的系统软件的 翻译,转换为 计算机的 机器语言后,才能在计算机的硬件系统上执行。
高级语言:编译:高级语言需要经过 编译程序 编译 成 汇编语言程序。 (还有解释型的语言,他不变成一个程序)
翻译:或者直接由高级语言程序 翻译 成 机器语言程序。(翻译成的是语句,不是完整的代码,所以这里说机器语言程序有点不好)
练习: 将高级语言源程序转换为机器级目标代码文件的程序是:(D)
A。汇编程序 B.链接程序 C.解释程序 D.编译程序
汇编程序 翻译 成 机器语言
链接程序: 将目标程序链接在一起
解释程序 和 编译程序
解释程序:解释一句执行一句,不产生目标代码文件
编译程序:生成目标代码文件
还有计算机的多层次结构: 最底层 是 由 硬件直接执行微指令。
计算机的四代变化:(了解就好)
计算机的分类:(分类方法特别多…)
电子计算机可分为 电子模拟计算机 和 电子数字计算机 (模拟的 和 数字的)。
数字计算机 按用途可分为 专用计算机 和 通用计算机。
通用计算机 可分为 巨型机,大型机,中型机,小型机,微型机和单片机6类。
他们的体积,功耗,性能,数据存储量,指令系统的复杂程度和价格依次递减。
计算机按 指令和数据流 还可分为:
1.单指令流单数据流系统(SISD) : 也就是 传统的 冯·诺依曼体系结构
2.单指令流多数据流系统(SIMD) : 包括 阵列处理器 和 向量处理器 系统。
3.多指令流单数据流系统(MISD) : 这种计算机实际上不存在
4.多指令流多数据流系统(MIMD) : 包括 多处理器 和 多计算机系统。
知识点2: 机器性能指标
机器字长: 是指计算机进行 一次整数运算(即定点整数运算)所能处理的 二进制数据的位数。
通常与CPU的寄存器位数(寄存器在CPU内部),加法器有关。 所以机器字长 一般等于 内部寄存器 的大小。字长越长,数的表示范围越大,计算精度就越高。
计算机字长 通常 都选定为 字节(byte,8位)的整数倍,2,4,8倍。(16,32,64位)
指令字长:一个指令字 中包含 二进制代码 的位数。
存储字长:一个存储单元 存储二进制代码 的长度。必须是 字节 的 整数倍。
(主存储器中有很多存储单元,一个存储单元(存储 一个 存储字)有很多存储元件,一个存储元件放一个二进数位。)
(编指时,大部分是以 字节 为单位进行的),所以要是 字节 的整数倍。
数据通路带宽: 是指 数据总线 一次所能 并行 传送信息的位数。
这里所说的数据通路带宽是指 外部数据总线 的宽度,它与CPU内部 的 数据总线宽度(内部寄存器的大小)有可能不同。
主存容量: 只是 主存储器 所能存储信息的最大容量,通常以字节(或其整数倍)来衡量,也可以用 字数*字长 来表示存储容量。
其中,(寻址用的) MAR(存储器地址寄存器)的位数反映了 存储单元的个数
(用来放数据的)MDR(存储器数据寄存器)的位数反映了 可寻址范围的最大值。
吞吐量: 指信息流入、处理和流出系统的速率。
它取决于 CPU 能够多块地 取指令, 数据 能够多块地 从内存取出或存入,以及 所得到的结果 能够多块地 从内从送到输出设备。
这些步骤中的每一步都和 主存 紧密相关,因此系统吞吐量主要取决于 主存的存取周期。
响应时间: 指从 提交作业 到 该作业得到CPU响应 所经历的时间。
响应时间越短,吞吐量越大。
主频: 是机器内部主时钟的频率,是衡量机器速度的重要参数,常用单位为Hz、MHz等。
( 1/主频 = 时钟周期 )
CPU周期: CPU周期又称为 机器周期,通常用 从内存读取 一条 指令字 的最短时间 来定义。
一个指令周期 通常由 若干个 CPU周期组成。(指令周期 >= CPU周期)
CPI : 即执行一条指令所需的时钟周期数
CPU执行时间: 指运行一个程序所花费的时间。
CPU执行时间 = CPU时钟周期数/主频 = (指令条数*CPI)/主频
CPU的性能(CPU的执行时间)取决于3个要素:
1.主频(时钟频率)。 2.每条指令执行所用的时钟周期数(CPI)。 3.指令条数
MIPS,MFLOPS,GFLOPS和TFLOPS
MIPS(Million Instructions Per Second): 即每秒执行多少 百万条 指令。
MIPS = 指令条数/(执行时间*10的六次方) = 主频 / CPI
MFLOPS(Mega Floating-point Operations Per Second): 即每秒执行多少 百万次 浮点运算。
MFLOPS = 浮点操作次数 / (执行时间 * 10的六次方)
GFLOPS(Giga Floating-point Operations Per Second): 即每秒执行多少 十亿次 浮点运算。
知识点3: 存储系统知识
速度快慢: 寄存器(但是是在CPU中的,“不是存储里的”),Cache,内存,外存(磁盘还要优于磁带)
按在计算机中的作用(层次)分类:
1.主存储器: 简称主存,又称内存储器(内存),用来存放计算机 运行期间 所需的大量程序和数据。
CPU可以直接随机地对其访问。
主存储器 可以 和高速缓冲存储器(Cache) 以及 辅助存储器 交换数据。
特点:容量较小,存取速度较快,价格较高。
2.辅助存储器:简称辅存,又称外存储器(外存),用来存放当前暂时不用的程序和数据。
不能直接与CPU交换信息
特点:容量极大,存取速度较慢,单位成本低。
(CPU的速度越来越快,但主存的速度没上来, 缓冲这种差别)
3.高速缓冲存储器: 简称Cache,位于主存 和 CPU 之间,用来存放 正在执行 的程序段和数据,以便CPU能高速地使用它们。
Cache的存取速度可以 和 CPU的速度 相匹配, 但存储容量小,价格高。
按存取的方式分类:
1.随机存储器(RAM):存储器中的任何一个存储单元的内容都可以随机存取,而且存取时间与存储单元的 物理位置 无关。
其优点是,读写方便、灵活使用。
主要用作 高速缓冲存储器。
RAM 又分为 静态RAM 和 动态RAM
(固化在主板上的)
2.只读存储器(ROM):存储器的内容只能随机读出 而不能 写入。
信息一旦写入存储器就固定不变了,即使断电,内容也不会丢失。因此,通常用它存放固定不变的程序、常数和汉字字库,甚至用于操作系统的固化。
它与 随机存储器 可共同作为 主存 的一部分, 统一构成 主存 的 地址域。
一个程序想要运行, 就 进入内存, 并占用CPU。
但计算机一插电,一开机,内存里还没数据,怎么启动的? 就是在ROM上用于操作系统的固化。
3.串行访问存储器: 对存储单元进行读/写操作时,需按其物理位置的先后顺序 寻址。
包括 顺序存取存储器(如磁带(比如听歌,想听那一部分都要快进,也就是要遍历之前的)) 和 直接存取存储器(如磁盘(先定位在某个磁道上,在查找))。
顺序存取存储器 的内容只能按照某种顺序存取,存取时间的长短 与 信息在载体上的物理位置 有关。
特点是存取速度慢。
直接存取存储器 存取信息时通常先寻找整个存储器中的某个小区域,再在小区域内顺序查找。
按信息的可保存性分类:
断电后,存储信息 即 消失的存储器, 称为 易失性存储器, 如RAM。
断电后信息仍保持的存储器, 称为 非易失性存储器,如ROM。 (主板上固化的那段程序)
几个概念: 破坏性读出: 某个存储单元所存储的信息被读出时,原存储信息将被破坏。
非破坏性读出: 读出时,被读单元原存储信息不被破坏。
破坏性读出性能的存储器: 每次读出操作后 必须 紧接一个再生的操作。(否则数据就没有了呀!)
按存储介质分类:
可分为,磁表面存储器(磁盘、磁带),
磁芯存储器半导体存储器(MOS型存储器、双极型存储器)
光存储器(光盘)
存储器的3个主要性能指标: 存储容量、单位成本、存储速度。
1.存储容量: = 存储字数 * 字长(如1M * 8位)
存储字数 表示 存储器的地址空间大小, 字长表示 一次 存取操作的 数据量。
2.单位成本: 每位价格 = 总成本 / 总容量。
3.存取速度: 数据传输率 = 数据的宽度 / 存储周期。
存取时间(T+小a): 存取时间是指 从 启动一次 存储器操作到 完成该操作所经历的时间。
分为 读出时间 和 写入时间。
读出时间是从存储器接收到 有效地址 开始,到产生有效输出所需的全部时间。
存取周期(T+小m): 存取周期又称为 读写周期 或 访问周期。 连续2次独立地访问存储器操作(读或写操作) 之间 所需的 最小时间间隔。
主存带宽(B+小m): 主存带宽又称 数据传输率或带宽,表示每秒从主存进出信息的最大数量,单位为 字/秒, 字节/秒(B/s)或 位/秒(b/s)。
知识点4 : 半导体存储器
半导体存储芯片 内 集成 有 存储矩阵(存储体)、译码驱动电路、读写电路 等。
1.存储矩阵: 有大量相同的 位存储单元阵列构成。
2.译码驱动: 将来自地址总线 的 地址信号 翻译成 对应存储单元的 选通信号,该信号在读写电路的配合下 完成对 被选中单元的读/写操作
(首先 要做 地址译码)
3.读写电路: 包括读出放大器 和 写入电路,用来完成读/写操作。
4.读/写控制线: 决定芯片进行读/写操作。
5.片选线: 确定哪个存储芯片被选中。
6.地址线: 是单向输入的,其位数与存储字的个数有关。(只能写入)
7.数据线: 是双向的,其位数与读出或写入的 数据位数 有关。(可以读,也可以写)
SRAM存储器的工作原理:
通常把存放一个 二进制位 的物理器件 称为 存储元,它是存储器的最基本构造。
地址码相同的多个存储元 构成 一个存储单元。 (也就是说,一个存储单元内的 存储元 的地址码 是相同的)
若干个存储单元的集合 构成 存储体。
静态随机存储器 的存储元 是用双稳态触发器 来 记忆信息的,
因此即使信息被读出后,他仍保持其原状态而不需要再生(非破坏性读出)。
电源被切断,原来的保存信息便会丢失,故它属于 易失性半导体存储器。
SRAM的存取速度块,但集成度低,功耗较大。
DRAM存储器的工作原理:
动态随机存储器(DRAM) 是利用 存储元电路 中 栅极电容 上的电荷来存储信息的
DRAM 采用地址复用技术,地址线是原来的1/2,且地址信号 分行、列两次 传送。
DRAM 具有容易集成、位价低、容量大、功耗低等优点,但是,存取速度 比 SRAM 要慢。
DRAM 电容上 的 电荷 一般只能维持 1~2ms,因此,即使电源不断电,信息也会自动消失。
每个一定时间必须刷新,通常取2ms,这个时间称为 刷新周期。 (因为电荷要漂移啊,这样数据就不对了,所以要刷新)
集中刷新:
指在一个刷新周期内,利用一段固定的时间,依次对存储器的 所有行 逐一再生,再此期间停止对存储器的读写操作,称为“死时间”,又称为访存“死去”。
集中刷新的优点是 读写操作时 不受 刷新工作的影响,因此系统的存取速度比较高;
缺点是 在集中刷新期间(死区)不能访问存储器。
分散刷新:
把对每一行的刷新分散到各个工作周期中去。
这样,一个存储器的系统工作分为2部分:前半部分用于 正常读、写或保持;
后半部分用于 刷新某一行。
这种刷新方式 增加了 系统的存取周期,如存储芯片的存取周期为0.5μs,则系统的存取周期应为1μs。
分散刷新的优点是 没有死区;
缺点是 加长了系统的存取周期,降低了整机的速度。
折中下,异步刷新:…
异步刷新是前2种方法的结合,它既可缩短“死时间”,又充分利用最大刷新间隔为2ms的特点。
具体做法是: 将刷新周期除以行数,得到两次刷新操作之间的时间间隔t,利用逻辑电路每隔时间t产生一次刷新请求。
这样可以避免使CPU连续等待过长时间,而且减少了刷新次数,从根本上提高了整机的工作效率。
如果将刷新安排在不需要访问存储器的译码阶段,则即不会加长存取周期,也不会产生“死时间”,这是分散刷新方式的发展,也称作“透明刷新”。
DRAM注意:
刷新对CPU是透明的,即刷新 不依赖于 外部的访问。
刷新单位是行,故刷新操作时仅需要 行地址。
刷新操作类似于 读操作,但又有所不同。刷新操作仅是给 栅极电容 补充电荷,不需要信息输出。
刷新时不需要选片,即整个存储器中 所有芯片 同时被刷新。
RAM芯片的读周期时序:
…看不懂啊!!!!!
只读存储器(ROM)的特点
1.结构简单,所以位密度 比 可读写存储器高。
2.具有非易失性,所以可靠性高。
根据制造工艺 ROM可以分为:(了解就好)
1.掩膜式只读存储器
MROM 的内容由 半导体制造厂按照用户提出的要求在芯片的生产过程中直接写入,写入以后无法改变其内容。
优点是 可靠性高,集成度高,价格便宜;
缺点是 灵活性差。
2.一次可编程只读存储器
PROM 是可以实现一次编程的只读存储器。允许用户利用专门的设备(编程器)写入。自己一旦写入后,内容就无法改变。
3.可擦除可编程只读存储器
EPROM 不仅可以由用户利用编程器写入信息,而且可以对其内容进行多次改写。
4.闪速存储器(Flash Memory) (“U盘”)
特点是即可在不加电长期保存信息,又能在线进行快速擦除与重写。
5.固态硬盘(Solid State Drives, SSD)
用固态电子存储芯片阵列而制成的硬盘, 长期保存信息,快速擦除与重写。
知识点5: 存储系统连接
主存储器通过数据总线、地址总线与CPU连接。
数据总线的位数 与 工作频率的乘积 正比于 数据传输率。
地址总线的位数决定了可寻址的最大内存空间。
控制总线(读/写)指出总线周期的类型和本次输入/输出操作完成的时刻。
存储器容量的扩充的概念:
由于单片存储芯片的容量总是有限的,不可能满足实际的需要,所以必须将若干存储芯片连接在一起才能组成足够容量的存储器,称为存储器容量的扩充。
一般存储器容量的扩充有3类: 位扩充、字扩充、字位扩充。
~~
这之前还有很多内容,看不懂就不写了!!!!!!!!!!! (在组成原理02中)
~~