目录
前言
哈工大计组网课的笔记,教材是《计算机组成原理》(唐朔飞)
(零)导论
计算机组成与计算机体系结构从研究内容上来说的区别
-
计算机组成:实现计算机体系结构所体现的属性(具体指令的实现)
- 计算机体系结构:机器语言程序员所见到的计算机系统的属性(所编写程序能正确执行所必须了解的计算机属性,一般指指令集、寄存器文件的组织、内存的编址单位、指令集能都对那些数据类型进行操作。这些统称为数据表示),概念性的结构与功能特性(指令系统、数据类型、寻址技术、l/o机理)定义软硬件的交界面,定义具体那些功能由软件实现,那些功能由硬件实现,上层软件编写和硬件交互的接口
举个例子
- 计算机组成:如何实现乘法指令(逻辑实现)
- 计算机体系结构:规定和定义的内容有无乘法指令,对什么类型的数据进行乘法操作,数据长度是多长
(一)计算机的基本组成
1.冯·诺伊曼计算机的特点
- 计算机由运算器、存储器、控制器、输入设备、输出设备五大部件组成。
- 指令和数据以同等地位存于存储器,可按地址寻访。
- 指令和数据用二进制表示。
- 指令由操作码和地址码组成。
- 存储程序。
- 以运算器为中心。
-
输入设备(将信息转换成机器能识别的形式)
-
输出设备(将结果转换成人们熟悉的形式)
-
运算器(核心)(算术运算、逻辑运算)
-
控制器(指挥控制程序运行)
-
存储器(存放程序和数据)
存在问题:整个冯·诺依曼计算机以运算器为中心,输入、输出都要运算器来处理,而运算器本身还要处理算数与逻辑运算,这样运算器会非常繁忙,会使运算器会成为整个计算机的瓶颈。
1.1.改进,以存储器为中心
1.2.现代计算机硬件框架
由上图的层次划分,可以画出现代计算机的硬件框架
1.3.系统复杂性管理的方法
- 层次化(Hierarchy):将被设计的系统划分为多个模块或子模块。
- 模块化(Modularity):有明确定义的功能与接口。
- 规则化(Reguarity):使规范化,模块间更容易被重用。
不仅是计算机硬件遵循设计这个方法,在整个计算机技术中,大部分复杂设计都会据此考虑设计,比如计算机网络体系结构的OSI七层参考模型等等。
2.存储器的基本组成
- MAR:存储器地址寄存器,保存存储单元的地址(编号),反映存储单元的个数。
- MDR:存储器数据寄存器,保存了要存入存储体的数据,或者是刚刚从存储体取出来的数据,反映了存储字长。
举个栗子:设MAR=4位,MDR=8位,则存储单元的个数为16,存储字长为8位。
3.运算器的基本组成及操作过程
- ALU——Arithmetic Logic Unit,算术逻辑运算单元,运算器中完成算术逻辑运算的逻辑部件;
- ACC——Accumulator,累加器,运算器中运算前存放操作数、运算后存放运算结果的寄存器;
- MQ——Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。
ACC | MQ | X | |
加法 | 被加数/和 | 加数 | |
减法 | 被减数/和 | 减数 | |
乘法 | 乘积高位 | 乘积/乘积低位 | 被乘数 |
除法 | 被除数/余数 | 商 | 除数 |
3.1.各寄存器作用
3.1.1.减法
指令包含两部分:第一部分减法指令,第二部分内存中减数的地址M
初始状态中被减数已经存放在ACC里面(之前先要有一条指令把数据输入到ACC当中)减数放置在X中
减法法操作使用ALU实现,结果保存在ACC当中
方括号表示地址[ ⋅ ] 的内容
3.1.2.加法
指令包含两部分:第一部分加法指令,第二部分内存中加数的地址M
初始状态中被加数已经存放在ACC里面(之前先要有一条指令把数据输入到ACC当中)加数放置在X中
加法操作使用ALU实现,结果保存在ACC当中
3.1.3.乘法
指令包含两部分:第一部分乘法指令,第二部分内存中乘数的地址M
初始状态中被乘数已经存放在ACC里面(之前先要有一条指令把数据输入到ACC当中)乘数放置在X中
操作1234顺序是有控制器控制的,12可同时进行或交换顺序
双斜线表示位连接
3.1.4.除法
指令包含两部分:第一部分除法指令,第二部分内存中除数的地址M
初始状态中被除数已经存放在ACC里面(之前先要有一条指令把数据输入到ACC当中)除数放置在X中
商放入MQ 余数放入ACC
3.控制器的基本结构
3.1.功能
- 解释指令,即从取址,到分析 ,到取操作数,到执行,一直到保存结果的全过程。
- 保证指令按顺序地执行。
3.2.完成一条指令
取指令:把内存单元中保存的指令取出来,送入控制器
分析指令:解析出操作码部分,送给控制单元,进行分析
执行指令:由控制单元控制相应的执行部件去完成指令所需要的操作
PC(程序计数器):存放当前要执行指令的地址,具有计数功能(PC)+1—>PC
IR(指令寄存器):存放当前要执行的指令
CU(控制单元):控制有序地执行指令所需的操作
3.3.完成一条指令具体过程(存+取)
3.3.1.取数过程
取指令
- PC中存储的地址送入MAR
- MAR根据地址寻找存储体中的存储位置
- 找到的指令数据送入MDR
- MDR将缓存的指令数据送入IR
分析指令
- IR中的指令操作码送入CU,经过译码以后在CU中完成
执行指令
- 在控制器的控制之下,将指令中的取数所需地址从IR送入MAR
- MAR根据地址寻找存储体中的存储位置
- 找到的数据送入MDR
- MDR将缓存的数据送入ACC
3.3.2.存数过程
存指令
- PC中存储的地址送入MAR
- MAR根据地址寻找存储体中的存储位置
- 找到的指令数据送入MDR
- MDR将缓存的指令数据送入IR
分析指令
- IR中的指令操作码送入CU,经过译码以后在CU中完成
执行指令
- 在控制器的控制之下,将指令中存数的地址从IR送入MAR
- MAR根据地址寻找存储体中的存储位置
- 将ACC的数据送入MDR
- MDR将缓存的数据送入存储体
3.4.完成ax2 + bx + c程序的运行过程
- 将程序通过输入设备送至计算机
- 程序首地址 ——> PC
- 启动程序运行
- 取指令 PC —> MAR —> 存储体 —> MDR —> IR,(PC)+ 1 ——> PC(更新PC)
- 分析指令 OP(IR)—> CU
- 执行指令 AD(IR)—> MAR —> 存储体 —> MDR —> ACC
········
- 打印结果(也应该是取指令+分析指令+执行指令)
- 停机
(*二)计算机硬件的主要技术指标
1.机器字长
CPU一次能处理的数据的位数,通常与CPU中的的寄存器位数有关。
2.运算速度
- 主频
- 核数,每个核支持的线程数
- CPI:执行一条指令所需要的时钟周期数
- IPC:一个时钟周期可以完成的指令数(描述超标量计算机)
- MIPS:每秒执行百万条指令
- FLOPS:每秒浮点运算次数(更科学)
- 吉普森法 :按照每条指令出现的频率,来计算指令执行时间的加权平均值
fi就是每条指令在程序中出现的频率,分为动态使用频率和静态使用频率
3.存储容量
存放二进制信息的总位数
(三)计算机发展史
1.计算机的产生
1946年 —— 美国 —— ENIAC ——- 十进制运算 —— 1955年退役
18000 | 多个电子管 |
1500 | 多个继电器 |
150 | 千瓦功耗 |
30 | 吨重量 |
1500 | 平方英尺占地 |
5000 | 次加法/秒 |
用手工搬动开关和插拔电缆来编程。
2.现代计算机发展的驱动力
2.1.需求、需求、还是需求(重要的事情说三遍)
2.2.技术发展
- 电子技术的发展(硬件技术的发展是关键)
- 计算机体系结构技术的发展
硬件技术对计算机更新换代的影响
3.典型计算机举例
3.1.IAS
由普林斯顿大学的先进技术研究所于1946开始设计,1952投入运行,是典型的以运算器为中心的冯·诺伊曼结构的机器。
3.2.IBM System / 360
IBM公司50亿的大豪赌,1961年开始研制,1964年研制成功,是IBM公司划时代、里程碑式的产品。(一系统的通用产品)
- 贡献:IBM System / 360研发过程中,提出了计算机系统结构这个概念,给出了计算机系统软硬件的交界面,使软硬件可以同时设计研发,缩短研发时间。当软硬件接口给定后,不同的硬件配置可以执行相同功能,可以根据需求选择不同的硬件配置,也因为有了体系结构这个概念,就有了系列机与兼容机。
4.微型计算机的出现和发展
4.1.微处理器
一般是指用一片大规模的集成电路组成的处理器,这个处理器上集成了运算器和控制器。
4.2.微型计算机
是指使用微处理器的,集成度相当高的大规模集成电路构成的面向个人用户的,体积小重量轻,价格低的计算机。
4.3.微处理器发展
在1970年出现了第一款存储器芯片容量只有256位,随后存储器芯片的存储容量不断增大。在1971年inter公司推出了第一块4位的芯片4004,随后一直发展到今天的64位的芯片,芯片上可集成超过30亿个晶体管。
4.4.Moore定律
Inter公司的缔造者之一Gordon Moore提出:微芯片上集成的晶体管每三年翻两番。
5.计算机软件的发展
5.1.各种语言
- 机器语言 ——- 面向机器
- 汇编语言 ——- 面向机器
- 高级语言 ——- 面向问题
5.2.系统软件
- 语言处理软件:汇编程序、编译程序、解释程序
- 操作系统:DOS、UNIX、Windows、Linux、Kylin Linux
- 服务性程序:装配、调试、诊断、排错
- 数据库管理系统:数据库和数据管理软件
- 网络软件:防火墙
5.3.软件发展的特点
- 开发周期长
- 制作成本高昂
- 检测软件产品质量的特殊性
- 软件是程序以及开发、使用和维护程序所需要的所有文档
6.计算机的应用
- 科学计算和数据处理
- 工业控制和实时控制
- 网络技术
- 电子商务
- 网络教育
- 敏捷制造
- 虚拟现实
- 办公自动化和信息管理系统
- CAD(计算机辅助设计)/ CAM(计算机辅助制造)/ CIMS(计算机集成制造系统)
- 多媒体技术
- 人工智能技术
- ............