计算机组成原理笔记
计算机发展历史
- 第一代,1946—1958年,电子管计算机;
- 第二代,1958—1964年,晶体管计算机;
- 第三代,1964—1971年,小、中规模集成电路(SSI、MSI)计算机;
- 第四代,1971—至今,大、超大规模集成电路(LSI、VLSI)计算机。
储存程序计算机(冯·诺依曼型计算机)
历史
世界上第一台电子数字计算机是1946年2月14日在美国宾夕法尼亚大学诞生的ENIAC.
以美籍匈牙利裔数学家冯·诺依曼(John von Neumann)为首的研制小组提出了“存储程序控制”的计算机结构,并开始了存储程序控制的计算机EDVAC的研制,1951问世.
吸收了冯·诺依曼的设计思想,由英国剑桥大学研制的EDSAC1949年诞生,成为事实上的第一台存储程序的计算机.
存储程序概念
- 计算机(指硬件)应由
运算器、存储器、控制器、输入设备和输出设备五大基本部件组成。 - 计算机内部采用二进制来表示指令和数据。
- 将编好的程序和原始数据事先存入存储器中
符合"存储程序概念"的计算机统称为冯·诺依曼型计算机.
计算机硬件组成
主要部件

通常将运算器和控制器合称为中央处理器(Central Processing Unit,CPU)。在由超大规模集成电路构成的微型计算机中,往往将CPU制成一块芯片,称为微处理器。
中央处理器和主存储器(内存储器)一起组成主机部分。除去主机以外的硬件装置(如输入设备、输出设备和辅助存储器等)称为外围设备或外部设备。
各部件之间的连接
小、微型机的典型结构(总线结构)

总线(Bus)是一组能为多个部件服务的公共信息传送线路,它能分时地发送与接收各部件的信息。计算机中采用总线结构,可以大大减少信息传送线的数量,又可以提高计算机扩充主存及外部设备的灵活性。
系统总线按传送信息的不同可以细分为:
地址总线(Address Bus) 由单方向的多根信号线组成,用于 CPU向主存、外设传输地址信息;
数据总线(Data Bus) 由双方向的多根信号线组成,CPU 可以沿这些线从主存或外设读入数据,也可以沿这些线向主存或外设送出数据;
控制总线(ControlBus) 上传输的是控制信息,包括 CPU 送出的控制命令和主存(或外设)返回 CPU 的反馈信号。
总线结构是小、微型计算机的典型结构, 以较小的硬件代价组成较强功能的系统.
单总线结构提高了 CPU的工作效率,而且外设连接灵活,易于扩充
但所有部件都挂在同一组总线上,而总线又只能分时地工作,故同一时刻只允许一对设备(或部件)之间传送信息
大、中型计算机的典型结构

在系统连接上分为四级:主机、通道、设备控制器和外部设备
通道是承担 I/O操作管理的主要部件, 这种结构具有较大的扩充变化余地
硬件系统

冯·诺依曼结构和哈佛结构的存储器设计思想
根据程序(指令序列)和数据的存放形式,存储器设计思想又可以分为冯·诺依曼结构和哈佛结构。
冯·诺依曼结构

指令和数据是不加区别地混合存储在同一个存储器中的,共享数据总线
不能同时取指令和取操作数, CPU速度远高于存储器, 使计算机运算速度受到很大限制
使用冯·诺依曼结构存储器的处理器
Intel 公司的80x86及其他中央处理器、ARM公司的 ARM7 和 MIPS公司的 MIPS 等
哈佛结构

哈佛结构的指令和数据是完全分开, 程序存储器,用来存放指令; 数据存储器,用来存放数据。
哈佛结构至少有两组总线:程序存储器(PM)的数据总线和地址总线,数据存储器(DM)的数据总线和地址总线
可允许同时获取指令字和操作数, 本条指令执行时可以预先读取下一条指令, 具有较高的执行效率
指令和数据分开存放,可以使指令和数据有不同的数据宽度
使用哈佛结构存储器的处理器
Motorola 公司的 MC68 系列,Zilog 公司的Z 8 系列,以及 ARM 公司的 ARM9、ARM10 和 ARM11。 大多数单片机和数字信号处理(DSP)系统等
计算机多层次结构

计算机性能指标
机器字长
参与运算的数的基本位数,由加法器、寄存器的位数决定, 一般等于内部寄存器的大小. 字长越长,计算的精度越高.
数据通路宽度
数据总线一次所能并行传送信息的位数, 指外部数据总线的宽度, 与CPU内部的数据总线宽度(内部寄存器的位数)可能不同.
主存容量
一个主存储器所能存储的全部信息量
运算速度
-
吞吐量系统在单位时间内处理请求的数量 -
响应时间系统对请求作出响应的时间, 包括CPU 时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等时间)的总和。 -
主频CPU 的主频又称为时钟频率,表示在 CPU 内数字脉冲信号振荡的速度。主频的倒数就是 CPU时钟周期,这是 CPU 中最小的时间元素。每个动作至少需要一个时钟周期。 -
CPICPI(Cycles per Instruction) 一条指令执行花费的时钟周期数. -
IPCIPC(Instructions per Cycle) 一个周期能执行的指令条数, 现代高性能计算机指令高度并行化, 一个系统时钟周期可以处理若干条指令. -
CPU执行时间 -
MIPSMIPS(Million Instructions per Second), 每秒执行多少百万条指令. -
MFLOPS(Million Floating-point Operations per Second), 每秒执行多少百万次浮点运算 -
MFLOPS适用于衡量向量机的性能.
杂想
计算机组成原理是一门抽象复杂难度很大的课, 上课的时候老师就顺着PPT念讲解。 不止我应该大部分人都听的云里雾里, 因为教师和学生的知识储备不在一个水平, 或者说每个人的认知水平都是不一样的, 我们只能理解在自我认知范围内的那一部分。 要让教师采取让每个人都能理解的讲课方式是不切实际的, 不可能人人兼顾。
或许未来AI能做到, 对于不同的人呈现不同的认知水平的内容, 以追问与对话的方式做到因材施教。 为什么人与人之间很难相互理解, 其根源就在与认知不同。 比如对于不同的人我们会自然的转变自己的语言习惯与态度以适应对方。教师承担的任务就是将书本的知识以自己的知识储备转换成学生能听懂的表达. 也许未来AI可以成为传播信息的一个桥梁或者说翻译,根据信息来源方与接受方的思维水平进行转换, 减少人与人之间这种低效的信息交换。
又时会觉得人类本身其实和计算机很相似, 肢体感知信息大脑处理信息做出反应. 我们无法理解眼前的计算机底层是如何运的, 就像我们理解不了思考的时候大脑到底发生了什么. 人工智能和人的智能真的有区别么, 人类是长期大量自然选择过程中适应环境的那一分支, 人工智能是数据集训练出的符合人类定义的正确思维的那一分支.
参考
- 《计算机组成原理(第四版)》 IBSN 9787302530213 蒋本珊编著