组原概述
计算机系统组成
硬件、软件系统
硬件系统和软件系统共同构成计算机系统,硬件是基础,软件是发挥硬件的条件
硬件系统主要包括:CPU、存储器、输入/输出控制系统
软件系统
- 系统软件:提供无差别服务,如操作系统、实用程序、编译程序等
- 应用软件:不关心,赚钱捏
硬件和软件具有逻辑等价性,即软件能完成的工作硬件也能完成,反之亦然。硬件实现更快,软件的迭代、修改更方便
语言级别
机器语言:代码效率高,执行速度快,硬件可直接执行,可读性差,不易变成,不易维护
汇编语言:可读性较好(助记符),出错便于检查和修改。可移植性差,对程序员要求高,必须十分熟悉计算机硬件结构的配置、指令系统和寻址方式低级语言
- 也叫低级语言
高级语言:接近于自然语言,容易理解和掌握,与硬件无关。效率低,执行速度慢
- 解释型语言:python、js,一行行处理(line by line),一步到位
- 编译型语言:java、c、c++,需要编译器,编译得到目标代码,经过链接器形成链接模块,最后转化成机器语言
计算机系统层次结构
划分层次结构
第 0 级机器:完全由硬件组成,是机器的硬件核心
第 1 级机器:根据指令操作所需的控制时序,利用微指令编出的微程序控制数据在寄存器之间传送
第 2 级机器:能运行机器语言的机器,程序员可以在其上编写机器语言程序利用第 1 级的微程序进行解释并运行
第 3 级机器:操作系统机器
第 4 级机器:汇编语言机器
第 5 级机器:高级语言机器
第 6 级机器:应用语言机器
划分层次的意义
解耦计算机功能,硬件做下级,软件做上级
存储程序思想与冯诺依曼计算机
存储程序思想
第一台通用计算机 ENIAC 出现于1946年情人节,每秒 5000 次运算,占地 150 平米
冯诺依曼提出存储程序的思想,把程序和数据不加区别的对待,从内存中读数据,都存放在存储器中
并将计算机分成5部分:运算器、控制器、存储器、输入设备、输出设备
冯诺依曼计算机
根据存储程序的概念和二进制原理设计的电子计算机统称为“冯诺依曼型结构”计算机
特点:
- 由五部分构成
- 程序、数据都在存储器中
- 数据以二进制表示
- 指令由操作码和地址码组成
- 指令在存储器中按执行顺序存放,并能自动执行
二进制简单、二进制稳态器好做,逻辑门电路实现逻辑运算简单
冯诺依曼计算机属于指令流驱动控制,并且属于串行结构,单指令流单数据流
早期,冯计算机以运算器为中心;现代计算机以寄存器为中心
计算机的硬件组成
输入设备
存储器:用以存放程序和数据,分为内存和外存,CPU只直接读取内存
- 按地址进行存取,参考汇编
- 每个存储单元的大小取决于编址方式
编址方式
- 比特,存 1/0
- 字节,存 8 个 bit
- 字,也叫 word,往往等于 n 倍的 B,即包含多个字节
这里的字节和字我们称作编址单元,为什么编制单元是字或者字节?
买鸡蛋
- 买200个,按个数
- 买2000个,按盘数
- 买20000个,按箱数
计数单位越大,计数次数越少
寻址时,回去地址寄存器 MAR 去找地址,若存储单位大,地址数量少,MAR 负担就小,反之 MAR 就要大
输出设备
运算器:执行部件,算数逻辑单元
控制器
计算机的指令执行过程
取指令:从内存中寻址取出
分析指令:译码阶段
访存取数阶段:根据指令取出相应数据
执行指令:对数据进行相应操作并得到结果
结果写回阶段
计算机性能指标
吞吐率
单位时间内处理请求的数量
响应时间
给了一个请求以后,多久后能响应
CPU 时钟周期
主频的倒数,就是主频振动一个来回经历的时间,CPU最小的时间单位,每个动作至少需要一个时钟周期
主频
由硬件决定,时间实际是一种约定(跨年的时候会停一秒左右校正),计算机只能通过石英单晶体的振动来计时,而主频实际上就是振动的频率。也可以理解为每秒中时间周期的个数
主频变高,时钟周期一定会变小,但时钟周期数CPI一定会变多,完成一件事的时间为:事的数量 x 时钟周期数 x 时钟周期
他们是矛盾的,需要结合场景计算
CPI
执行一条指令所需的时钟周期数
CPU 执行时间
CPU 执行一个程序所花时间
Tcpu = ln x CPI x Tc = ln x CPI x 1/Rc
- ln为指令数
- Rc为主频
- CPI为一条指令所耗时钟周期个数
- Tc为时钟周期长度
很明显可以看出主频越快,所用时间越短
MIPS 和 MFLOPS
MIPS:每秒钟指令的执行条数,以百万为单位
MIPS = ln / (Tcpu x 10^6) = 1 / (CPI x Tc x 10^6)
- 带入 Tcpu 的公式
MIPS 用于评价标量机
MFLOPS = 浮点操作次数 / (执行时间 x 10^6)
适用于衡量向量机
计算机体系和并行系统
计算机的体系结构
Flynn 分类法,将计算机划分成四种基本类型,M(multi)指多,S指单(single)
- SISD:单指令流单数据流,完全的串行,冯诺依曼机
- MIMD:多指令流多数据流,同时执行多个指令流,指令流可以在单个时钟周期处理多个数据,一定是多核心
- SIMD:单指令流多数据流,现在的单核计算机基本属于该类,能够在单时钟周期内处理多个数据
- MISD:多指令流单数据流,鬼畜
多核处理器
每个CPU是一个独立的处理器,可以有自己独立的cache,也可以共享cache
SMP 系统结构
对称多处理器技术,单处理器同时只能处理一个线程,若多线程,CPU数量必须达到多个,SMP技术使得多个CPU可以同时工作
各处理器之间的关系完全对等,共享相同的物理内存
但要注意并不是核越多越好,一味增加内存冲突加剧且CPU浪费增加,SMP利用率最好的情况是2-4个CPU
- 松耦合的多处理技术:早期分布式的雏形
- 紧耦合的多处理技术
- 对称多处理技术