组成原理(一):概述
1、计算机的硬件组成
原始的冯·诺依曼计算机在结构上是以运算器为中心,当代计算机是以存储器为中心,计算机的组成如下:
运算器和控制器合称为中央处理器(Center Processing Unit,CPU),CPU也被称为微处理器。
CPU和主存储器(内存)一起组成主机部分。除去主机以外的硬件装置都称为外围设备或外部设备。
1.1、计算机的主要部件
1.1.1、输入设备
输入设备的任务是把编好的程序和原始数据送到计算机,并将它们转换成计算机内部所能识别和接受的信息方式。
1.1.2、输出设备
输出设备的任务是将计算机的处理结果以数字、字符、图形等形式送出计算机。
1.1.3、存储器
存储器是用来存放程序和数据的部件,是一个记忆装置,是计算机能够实现"存储程序控制"的基础。
存储器被分为若干级别,被称为存储系统。三级存储系统:
主存储器:可由CPU直接访问,存取速度快,容量小,存放当前正在执行的程序和数据;
辅助存储器:设置在主机外部,存取速度慢,容量大,存放暂时不参与运行的程序和数据;
高速缓冲存储器:缓解CPU与存储器速度不匹配文件增设的缓冲寄存器,存放当前常用的程序和数据。
CPU不可直接访问辅存,辅存中的程序和数据在需要时才装入主存中,辅存是主存的补充。
1.1.4、运算器
运算器是对信息进行处理和运算的部件。常进行的运算:算术运算 、逻辑运算,因此运算器又称为 算术逻辑运算部件(Arithmetic and Logical Unit,ALU)。
运算器的核心是加法器,运算器中有若干个通用寄存器或累加寄存器,用来暂存操作数并存放运算结构。
寄存器在CPU中,存取速度比存储器快。
1.1.5、控制器
控制器是整个计算机的指挥中心,主要功能是按照人们预先确定的操作步骤,控制整个计算机的各部件有序的工作,
控制器从主存中逐条的取出指令进行分析,根据指令的不同来安排操作顺序,向各部件发出相应的操作信号,控制他们执行指令规定的任务。
1.2、计算机各部件之间连接
将上述基本不见,按某种方式连接起来就构成了计算机的硬件系统。
1.2.1、总线结构(小、微机型)
总线结构是小、微型计算机的典型结构。
总线:一组能为多个部件服务的公共信息传送线路,能分时的发送与接收各部件信息。
最简单的总线结构是单总线结构,各大部件连接在单一的一组总线上。单总线结构提高了CPU的工作效率,外设连接灵活,同一时刻只允许一对设备间传送信息。
系统总线按传送信息的不同可以细分为地址总线、数据总线和控制总线。
地址总线(Address Bus) |
单方向的多根信号线组成 用于CPU向主存、外设传输地址信息 |
数据总线(Data Bus) |
双方向的多根信号线组成 CPU通过数据总线向主存或外设读入数据 |
控制总线(Control Bus) |
传输控制信息 CPU送出的控制命令和主存返回CPU的反馈信号 |
1.2.2、大、中型计算机的典型结构
此类计算的设计目标侧重于系统功能的扩大与效率的提高。结构如下:
系统连接上分为四级:主机、通道、设备控制器和外部设备。
通道:I/O操作管理的主要部件,通道与设备控制器是一对多的关系,设备控制器与外设也是一对多的关系。
1.3、冯·诺依曼结构和哈佛结构的存储器设计思想
根据程序和数据的存放形式,存储器设计思想可分为 冯·诺依曼结构 和 哈佛结构。
1.3.1、冯·诺依曼结构
冯·诺依曼结构:指令和数据存储在同一个存储器中,共享数据总线,指令地址和数据地址指向同一个存储器的不同物理位置。
指令和数据在同一存储器,因此不能同时取指令和取操作数,存储器的速度远低于CPU的运算速度,CPU与共享存储器间的信息交换成为影响高速计算的"瓶颈"。
1.3.2、哈佛结构
哈佛结构:指令和数据分开,存储器分 程序存储器 和 数据存储器 两个部分。
程序存储器 |
存放指令 |
数据存储器 |
存放数据 |
哈佛结构至少有两组总线:程序存储器(PM)的数据总线和地址总线;数据存储器的数据总线和地址总线。
允许同时获取指令和操作数,在一个机器周期内可以同时准备好指令和操作数,具有较高的执行效率。
2、计算机系统
计算机系统 = 硬件 + 软件。
硬件是计算机系统的物质基础,是软件赖以生存的空间和活动场所;软件是计算机系统的灵魂,没有软件的硬件"裸机"不能供用户使用,硬件和软件是相辅相成、不可分割的整体。
2.1、计算机系统的多层次机构
硬联逻辑 |
由逻辑电路组成 |
微程序机器级 |
该级的机器语言是该机的微指令集,微指令编写的程序由硬件直接执行 |
传统机器级 |
该级的机器语言是该机的指令集,机器指令编写的程序可由微程序进行解释 |
操作系统机器级 |
直接管理传统机器的软硬件资源; 传统机的延伸 |
汇编语言机器级 |
该级的机器语言是汇编语言 |
高级语言机器级 |
该级的机器语言是各种高级语言,如 C、Java、Go |
应用语言机器级 |
该级语言是面向问题的应用语言 |
2.2、实际机器和虚拟机器
实际机器:由硬件或固件实现的机器,如第零级到第二级。
虚拟机器:软件或以软件为主实现的机器,如第三级到第六级。
3、计算机的工作过程
程序放在主存,由控制器控制逐条取出指令执行。
举例说明:a + b + c = ?,假设 a、b、c为已知的3个数,存放在主存的 5 ~ 7 号单元,结果将存放在主存的8号单元。
采用单累加寄存器结构的运算器,至少5条指令,指令存放在 0 ~ 4 号单元,参加运算的操作数也存放在主存指定的单元。
累加寄存器用来暂存从主存中读出的数据或写入主存的数据。
参加运算的两个操作数一个来自累加寄存器,一个来自主存,运算结果放在累加寄存器中。
执行过程如下:
1、执行取数指令,从主存5号单元取出数a,送入累加寄存器;
2、执行加法指令,将累加寄存器中的内容a与从主存6号单元取出的数b一起送到ALU中相加,将 a + b 的结果保留在累加寄存器中;
3、执行减法指令,将累加寄存器中的内容 a + b 与从主存 7 号单元取出的数 c 一起送到ALU中相减,结果 a + b - c保留在累加寄存器中.
4、执行存数指令,把累加器的内容a + b - c存至主存 8 号单元。
5、执行停机指令,计算机停止工作。
4、计算机的性能指标
4.1、机器字长
机器字长:参与运算的数的基本位数,由加法器、寄存器的位决定的。机器字长一般等于内部寄存器的大小。
计算机中以字节(Byte)为基本单位,一个字节等于8位二进制位(bit)。
字(Word):数据字,数据字的长度是固定的,不同计算机字的长度不同。
字长
|
数据运算的宽度,反映了计算机处理信息的能力
|
字
|
度量单位,度量各种数据类型的宽度
|
4.2、数据通路宽度
数据通路宽度:数据总线一次所能并行传送信息的位数。指的是外部数据总线的宽度。
数据通路宽度影响信息的传送能力,从而影响计算机的有效处理速度。
4.3、主存容量
主存容量:主存储器所能存储的全部信息。
字节偏址的计算机
|
以字节数表示存储容量
|
单位偏址的计算机
|
字数乘以字长表示存储容量
|
主存容量决定计算机处理问题的能力。
4.4、运算速度
与运算速度有关的因素:
吞吐量和响应时间
|
吞吐量:系统在单位时间内处理请求的数量
响应时间:系统对请求作出响应的时间
响应时间 = CPU时间 + 等待时间
CPU时间:运行程序花费的事件
等待时间:用于磁盘/存储器访问、IO操作等时间
|
主频和CPU时钟周期
|
CPU主频又称为时钟频率,表示在CPU内数字脉冲信号震荡的速度。
时钟周期:主频的倒数,CPU中最小的时间元素,每个动作至少需要一个时钟周期。
|
CPI(Cycles per Instructuon)
|
每条指令执行所用的时钟周期数,IPC是CPI的倒数,表示每个时钟周期执行的指令数
|
CPU执行时间
|
![]() |
MIPS
|
每秒执行多少百万条指令
![]() |
MFLOPS
|
每秒执行多少百万次浮点运算
![]() |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战