PDF版本笔记,直接拖到文章末尾。
前言
数字、文字、图像如何用二进制表示?
CPU如何对二进制数进行加减乘除?
如何存储这些二进制数的?
如何从内存中取出想要的数据?
CPU如何识别和执行我们写的程序?
学习计算机组成原理,这些问题都会得到解答。
1.1计算机的发展
1.什么是计算机系统
计算机系统 = 硬件 + 软件
硬件:计算机的实体,如主机、外设等
软件:由具有各类特殊功能的程序组成
计算机性能的好坏取决于“软”、“硬”件功能的总和。
2.软件的发展
- 系统软件:用来管理整个计算机系统,Eg:操作系统、数据库管理系统(DBMS)、标准程序库、网络软件、语言处理程序、服务程序
- 应用软件:按任务需要编制成的各种程序,Eg:微信、抖音、王者荣耀…
3.硬件的发展
1.发展的四个阶段
第一代:电子管时代
体积超大、耗电量超大;逻辑元件:电子管;使用机器语言编程。
第二代:晶体管时代
体积、功耗降低;逻辑元件:晶体管;出现了面向过程的程序设计语言:FORTRAN;有了操作系统雏形。
第三代:中小规模继承电路时代
将元件集成在基片上;计算机主要用于科学计算等专业用途;高级语言迅速发展;开始有了分时操作系统。
第四代:大规模、超大规模集成电路时代
开始出现“微处理器”、微型计算机;个人计算机(PC)萌芽;操作系统:Windows、MacOS、Linux…
苹果A13制造工艺:7nm(每个元件宽度7nm),拥有85亿个晶体管。
2.微处理器的发展
微处理器的发展:微型计算机的发展以处理器技术为标志;
机器字长:计算机一次整数运算所能处理的二进制位数
3.硬件发展的重要时间点
- 1947年,贝尔实验室,发明了“晶体管”
- 1955年,肖克利在硅谷创建肖克利实验室股份有限公司
- 1957年,八叛徒( traitorous eight)创立仙童半导体公司
- 1959年,仙童半导体公司发明"集成电路"
- 1968年,摩尔等人离开仙童,创立 Intel
- 1969年,仙童销售部负责人桑德斯离开仙童,创立AMD
- 摩尔定律:揭示了信息技术进步的速度,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,整体性能也能提升一倍。
- 半导体存储器的发展1970年,仙童公司生产出第一个较大容量的半导体存储器
- 半导体存储器单芯片容量:1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、64MB、256MB、1GB…
4.目前的发展趋势
“两极分化”:
- 一极是微型计算机向更微型化、网络化、高性能、多用途方向发展;
- 另一极是巨型机向更巨型化、超高速、并行处理、智能化方向发展。
1.2.1计算机硬件的基本组成
1.早期冯诺依曼机
-
“存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
-
在计算机系统中,软件和硬件在逻辑上是等效的。
Eg:对于乘法运算,可以设计一个专门的硬件电路实现乘法运算也可以用软件的方式,执行多次加法运算来实现
-
冯·诺依曼计算机的特点
1.计算机由五大部件组成
2.指令和数据以同等地位存于存储器,可按地址寻访
3.指令和数据用二进制表示
4.指令由操作码和地址码组成
5.存储程序
6.以运算器为中心
输入/输出设备与储存器之间的数据传送通过运算器完成。
-
类比一个工厂的模式
2.现代计算机的结构
早期的冯诺依曼机,由于以运算器为中心,有其弊端:输入数据必须经过运算器才能存到存储器中,而存放的数据必须经过运算器才能传递到输出设备。由此产生以存储器为中心的现代计算机结构
现代计算机:以存储器为中心,CPU = 运算器 + 控制器
3.总结
1.2.2各个硬件的工作原理
1.主存储器的基本组成
- 主存储器包括:存储器、MAR(地址)、MDR(数据);类比一个菜鸟驿站的模式
-
存储单元::每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数
存储元:即存储二进制的电子元件,每个存储元可存1bit
-
例:
MAR=4位→总共有24个存储单元
MDR=16位→每个存储单元可存放16bit,
1个字(word)=16bit
易混淆:1个字节(Byte)=8bit
1B=1个字节,1b=1个bit
2.运算器的基本组成
运算器:用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)
ACC:累加器,用于存放操作数,或运算结果。
MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
X:通用的操作数寄存器,用于存放操作数
ALU:算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算
3.控制器的基本组成
CU:控制单元,分析指令,给出控制信号;Control Unit
IR:指令寄存器,存放当前执行的指令;Instruction Register
PC:程序计数器,存放下一条指令地址,有自动加1功能;Program Counter
4.计算机的工作过程
回顾:冯诺依曼机的特点
1.计算机由五大部件组成
2.指令和数据以同等地位存于存储器,可按地址寻访
3.指令和数据用二进制表示
4.指令由操作码和地址码组成
5.存储程序
6.以运算器为中心(现在一般以存储器为中心)
1.2.3计算机系统的多级层次结构
1.“五层”结构
2.三种级别的语言
- 编译程序:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序(只需翻译一次)
- 解释程序:将源程序的一条语句翻译成对应于机器语言的语句,并立即执行。紧接着再翻译下一句(每次执行都要翻译)
注:编译、汇编、解释程序,可统称“翻译程序”
3.总结
4.计算机体系结构 VS 计算机组成原理
-
计算机体系结构——机器语言程序员所见到的计算机系统的属性概念性的结构与功能特性
(指令系统、数据类型、寻址技术、I/O机理)
如何设计硬件和软件的接口,有无乘法指令
-
计算机组成原理——实现计算机体系结构所体现的属性,对程序员“透明”(看不见)
(具体指令的实现)
如何用硬件实现所定义的接口,如何实现乘法指令
1.3计算机性能指标
1.储存器的性能指标
总容量 = 存储单元个数 × 存储字长 bit 1 Byte =8bit
= 存储单元个数 × 存储字长/ 8 Byte
Eg: MAR为32位,MDR为8位
总容量=232 * 8 bit=4 GB
2.CPU的性能指标
i5-9400F 2.9Ghz 6核6线程
2.9Ghz:为CPU主频:CPU内数字脉冲信号振荡的频率
3.系统整体的性能指标
-
数据通路带宽:数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据)
-
吞吐量:指系统在单位时间内处理请求的数量。
它取决于信息能多快地输入内存,CPU能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。
这些步骤中的每一步都关系到主存,因此,系统吞吐量主要取决于主存的存取周期。
-
响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。
通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/o操作、操作系统开销等时间)。
4.系统整体的性能指标(动态测试)
基准程序(“跑分软件”)是用来测量计算机处理速度的一种实用程序,以便于被测量的计算机性能可以与运行相同程序的其他计算机性能进行比较。
5.其他思考
问:主频高的CPU一定比主频低的CPU快吗?
不一定,如两个CPU,A的主频为2GHz,平均CP|=10;B的主频1GHz,平均CP|=1
问:若A、B两个CPU的平均CP|相同,那么A一定更快吗?
也不一定,还要看指令系统,如A不支持乘法指令,只能用多次加法实现乘法;而B支持乘法指令。
问:基准程序执行得越快说明杋器性能越好吗?
基准程序中的语句存在频度差异,运行结果也不能完全说明问题
6.总结
PDF笔记,欢迎关注公众号,回复:计算机组成原理;计组