计算机组成原理第一章
计算机组成原理的相关笔记是我根据老师上课所讲,以及课后查找资料所写
一、计算机系统概述
1. 定义
计算机是由硬件和软件组成的一种能够按照事先存储程序自动,高速进行大量数值运算以及各种信息处理的现代化智能电子设备
看得见摸得着的是硬件,软件是虚的概念。
注意:软件并不是仅仅只包含我们写的那些程序,还包括文档,这些文档可能是软件开发前的分析,以及开发后 进行维护等的文档,因为软件开发不是一个人的事,还要被其他人看,如果没有文档的话,别人单纯看程序的话,很有可能就不知道你在干什么。
2.分类
1.计算机按照处理信息的方式不同来划分
数字计算机和模拟计算机的主要区别
比较内容 | 数字计算机 | 模拟计算机 |
---|---|---|
数据表示方式 | 0和1 | 电压 |
计算方式 | 数字技术 | 电压组合和测量值 |
控制方式 | 程序控制 | 盘上连线 |
精度 | 高 | 低 |
数据存储量 | 大 | 小 |
逻辑判断能力 | 强 | 无 |
2.计算机按照通用性差异分类
3.按照计算机性能分
3.计算机系统的抽象层次
1.从编程语言角度
机器语言—>汇编语言—>高级语言
2.语言虚拟机抽象
3.从软硬件功能转换角度
4.计算机硬件的逻辑等价性
计算机中的许多功能,可以直接由专门硬件实现,也可以在基础硬件支持下依靠软件实现,对用户而言在功能上是等价的
举例:以电风扇的开关为例子,我们可以通过一个按钮,通过按钮可以控制电流大小来控制风扇的开关,也可以是一个程序来控制风扇的开关,这对于用户来说是等价的,因为他们看到的效果是一样的,就是风扇的开或关
计算机性能的好坏取决于"软 "硬“件功能的总和
软件技术发展,硬件功能软件化——降低造价
集成电路技术发展,软件功能硬件化——提高性能
二、计算机系统的组成
在接下来的举例中,主存和内存是一样的
1.计算机系统的硬件组成
1.1冯.诺依曼计算机(重点)
世界上第一台计算机是ENIAC,冯.诺依曼是当时的顾问
缺点:
ENIAC:每一步的操作要执行什么指令,都要程序员手动接线去告诉计算机,ENIAC的运算速度就被手工操作的耗时给抵消了
1945年,美国数学家冯·诺依曼提出“存储程序”概念,可以很好解决当时出现的问题,以此为基础研制的计算机叫冯·诺依曼机
存储程序:将指令以二进制代码的形式事先输入计算机的主存储器(内存),然后按其在存储器的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直到程序执行结束
第一台采用冯诺依曼结构的计算机EDVAC
计算机是用来处理数据的,所以我们应该要有一个输入设备把数据输入到计算机中,这里面的数据包含我们要处理的数据,也包含指令。
控制器通过电信号来协调其他器件相互配合工作,控制器也用来解析存储器中存储的程序指令。比如说,控制器从存储器中读取加法指令,那么就可以控制运算器进行相应的加法操作。
冯诺依曼计算机特点:
ps:看到这么大的字大家也知道这个很重要吧,冯诺依曼结构也叫普林斯顿结构,因为他是普林斯顿的教授
1.计算机由五大部分组成
2.指令和数据以同等地位存在存储器,可以按照地址来访问
3.指令和数据用二进制来表示,可以很方便的用0,1表示电信号的两种状态,同等地位存放于存储器,按地址访问
4.指令由操作码和地址码来组成,在存储器中按顺序存放,默认顺序执行
操作码:指明要进行什么操作,比如加减乘除。
地址码:我们要操作的数据存放在哪一个位置。
5.存储程序
6.以运算器为中心–输入设备和输出设备与存储器之间的数据传送通过运算器来完成,会影响计算机的效率
1.2现代计算机结构
存储器分成了主存储器(内存)和辅助存储器(外存),系统以主存储器为中心
合并运算器和控制器,构成中央处理器CPU——CPU和主存储器构成主机
输入设备和输出设备变得多样化和复杂化,合称外部设备或I/O设备
主存储器和CPU统称为主机
主存就是主存储器,也是我们大家熟悉的内存
辅存是辅助存储器,在电脑里面就是机械硬盘,固态硬盘
手机里面安装的app放在辅存,app需要启动运行的时候,才会把app里面的相关数据读到主存,辅存应该看成IO设备
运行内存指的是主存
机身存储是辅存
1.3哈佛结构
将指令和数据分开存储的一种存储器并行的组成结构
特点
1)使用两个独立的存储器,分别用于存储指令和数据
2)使用两套独立的总线,作为CPU与每个存储器间专用通信线路
应用——在嵌入式系统设计中广泛使用
1.4各个组成部件的功能
2.计算机系统的工作过程
1.基本的计算机系统模型
地址总线:传输数据在主存里面的存放位置
目前这个图看着还很懵,可以等后面学习以后再看。
2.工作过程
在了解工作过程之前,要先知道指令是什么
指令的执行过程
控制器将某个存储地址送往存储器,从对应的存储单元取回指令,控制器根据指令内容的含义,发出相应的操作命令,各部件根据操作命令,进行相应的操作,完成指令对应的功能
再来复习一下,控制器,存储器的相关内容
控制器可以协调各个器件的运行
存储器是存储数据和程序的
以我自己的理解来说:
一条指令想要运行,我们应该先把它存储起来, 所以第一步把存储地址送到存储器–相当于存储数据
想要执行操作,肯定要发布命令,就比如说,在家里面,你妈妈说,大家干活了,要大扫除了。 所以要取回指令。
有了指令以后,我们是不是还得告诉具体的部件要做什么操作,还是以家里大扫除为例。如果没有进行分工,只是说干活,就会导致分工不明确,我们人当然是可以做相应的事情。但是要注意的是,计算机需要的是明确的指令操作,也就是说每一步要做什么事情,必须是明确的,不能是含糊的,因为计算机没有我们人那样聪明,
如果没有具体明确的要求,各个部件瞬间就蒙圈了,他们不知道自己要做什么事情
后面学习相关的内容以后,理解得会更加的透彻,上面那个只是我个人的一个理解。
指令执行过程的阶段划分
下面的划分可以有不同的情况,不是固定的,就像语文划分自然段一样,每一个人都会有不一样的理解,划分出来的也就不一样了。
两阶段——取指、执行
三阶段——取指、分析、执行
五阶段——取指、译码/读寄存器、执行/计算有效地址(数据存放的地址)、访存取数、结果写回
3.指令执行过程示例
ADD R1, (R2)
实现10+18=28的加法计算。假定10存放在通用寄存器R1,18存放在存储器中,其存放地址2n-1存放在通用寄存器R2,计算结果存放到通用寄存器R1
18存储在存储器中,就有存放位置,也就是它的地址,我们又把存放的地址存储在通用寄存器R2,数本身存储在主存里面
通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果
三、计算机硬件的性能指标
1.字长
定义:能够一次性处理的二进制数的位数
分类:根据对象的不同,分为机器字长、存储字长、指令字长、数据字长
接下来,我以其中的存储字长来说一下我自己的理解,其他概念也是类似的。
字长直接反映了计算机的计算精度,也影响计算速度和硬件成本
为协调计算精度和硬件成本间的制约关系,很多计算机采用变字长设计
各类字长可能各不相同,但必须是字节的整数倍
2.存储容量
-
定义:计算机存储器中所能存储信息的总量
分为主存容量和辅存容量
-
单位
位(bit)——最小单位,1个0或1占1b
字节(Byte)——基本单位,1B = 8b -
主存容量的表示
主存容量 = 存储单元数×存储字长
3.运算速度
周期T和频率f
计算机系统时钟就是一个典型的频率相当精确和稳定的脉冲信号发生器
计算机中为什么要有系统时钟?
计算机工作时,各个设备必须相互配合,但每个设备工作都有各自的工作速度(工作时钟),为使整个系统能协调运行,就需要有统一的系统时钟对各设备作同步,各设备的工作时钟都基于系统时钟产生。
CPU主频和时钟周期
时钟——按一定电压幅度和时间间隔连续发出的脉冲信号
公式
性能指标 | 描述 | 计算公式 |
---|---|---|
CPU执行时间 | 表示CPU执行一般程序所占用的CPU时间 | CPU执行时间=CPU时钟周期数×CPU时钟周期 |
CPI | 执行一条指令需要的平均时钟周期数 | CPI=执行某段程序需要的CPU时钟周期数➗程序包含的指令条数 |
MIPS | 表示平均每秒执行多少百万条定点指令数 | MIPS=指令数➗(程序执行时间×10^6) |
FLOPS | 平均每秒执行的浮点操作次数,用来衡量机器浮点操作的性能 | FLOPS=程序中的浮点操作次数➗程序执行时间(s) |
4.计算机性能评测方法
四、计算机的发展
- 点赞
- 收藏
- 关注作者
评论(0)