计算机组成原理【1】: 计算机系统概述
概述
计算机系统层次结构
- 计算机系统的基本组成
- 计算机硬件的基本组成
- 计算机软件和硬件的关系
- 计算机系统的工作原理
计算机性能指标
吞吐量;响应时间;CPU时钟周期;主频;CPI;CPU执行时间;MIPS;MFLOPS
计算机系统层次结构
计算机系统的组成
- 硬件系统和软件系统共同构成了一个完整的计算机系统。硬件是指有形的物理设备,是计算机系统中实际物理装置的总称。软件是指在硬件上运行的程序和相关的数据及文档。
- 对某一功能来说,若既可以用软件实现,又可以用硬件实现,则称为软/硬件在逻辑功能上是等价的。
- 一个功能若使用较为频繁且用硬件实现的成本较为理想,则使用硬件解决可以提高效率。
冯·诺伊曼机
“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机统称冯·诺伊曼机,其特点如下:
- 采用“存储程序”的工作方式。
- 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
- 指令和数据以同等地位存储在存储器中,形式上没有区别,但计算机应能区分它们。
- 指令和数据均用二进制代码表示。
- 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。
计算机的功能部件
输入设备/输出设备:略
存储器
- 存储器分为主存储器(也称主存)和辅助存储器(也称外存)。
- CPU能够直接访问的存储器是主存储器。
- 辅助存储器用于帮助主存储器存储更多的信息。
- 存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式。
存储器组成
- 存储体:存放二进制信息
- 存储器地址寄存器(MAR):存放访存地址。
- 存储器数据寄存器(MDR):用于暂存要从存储器中读或写的信息。
- 时序控制逻辑:产生存储器操作所需的时序信号。
MAR & MDR
- MAR用于寻址,其位数反映最多可寻址的存储单元个数。MAR长度与PC长度相等。
- MDR的位数通常等于存储字长。
- 现代计算机中,MAR、MDR和Cache(高速缓存)均存在于CPU中,而非存储器。
运算器
- 运算器是计算机的执行部件,用于进行算术运算和逻辑运算。
- 算术运算:加、减、乘、除等。
- 逻辑运算:与、或、非、异或、比较、移位等。
- 核心:算术逻辑单元(ALU)
- 运算器包含若干通用寄存器,用于暂存操作数和中间结果,如:累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)等,其中前三个寄存器是必须具备的。
- 程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息。
控制器
- 控制器由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。
- 程序计数器(PC):存放当前欲执行的指令的地址,可自动形成下一条指令的地址,它与贮存期的MAR之间有一条直接通路。
- 指令寄存器(IR):存放当前的指令,其内容来源于主存储器的MDR。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;地址码Ad(IR)送至MAR,用以取操作数。
- 一般将运算器和控制器集成到一个芯片上,称为中央处理器(CPU)。CPU和主存储器共同构成主机,除主机之外的其它硬件装置统称外部设备,简称外设。
计算机软件
系统软件和应用软件
1.软件根据功能分类,可分为系统软件和应用软件。
2. 系统软件:保证计算机系统高效、正确运行的基础软件。主要有:操作系统(OS)、数据库管理系统(DBMS)等。
3. 应用软件:为解决某个应用领域中的各类问题而编制的程序。
语言
- 机器语言:也称二级制代码语言。是计算机唯一可以识别和执行的语言。
- 汇编语言:用英文单词或其缩写代替二进制的指令的指令代码。
- 高级语言:方便程序设计人员写出解决问题的处理方案和解题过程的程序。
翻译程序
- 汇编程序(汇编器):将汇编程序翻译为机器语言程序。
- 解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。
- 编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序。
速度上:编译>解释。Python采用解释,而C++采用编译。
计算机的层次结构
- ⑤高级语言层->④汇编语言层->③操作系统层->②传统机器语言层->①微程序机器层。
- 没有配备软件的纯硬件系统称为裸机;3~5层称为虚拟机。
- 软件和硬件之间的界面是指令集体系结构(ISA),其定义了一台计算机可以执行的所有指令。ISA是软件能感知到的部分,也称软件可见部分。
计算机系统的工作原理
“存储程序”工作方式
“存储程序”工作方式规定:程序执行前,需要将程序所含的指令和数据送入主存储器,一旦程序被启动执行,就无须操作人员的干预,自动逐条完成指令的取出和执行任务。
从源程序到可执行程序
- 预处理阶段:预处理器(cpp)对源程序中以字符#开头的命令进行处理。hello.c -> hello.i
- 编译阶段:编译器(ccl)对预处理后的源程序进行编译,生成汇编语言源程序hello.s
- 汇编阶段:汇编器(as)将其翻译成机器语言指令,并打包成可重定位目标文件hello.o
- 链接阶段:链接器(ld)将多个可重定位目标文件和标准库函数合并为一个可执行目标文件,简称可执行文件。
hello.c 源程序 -> hello.i 预处理后的源程序 -> hello.s 汇编程序 -> hello.o 可重定位目标程序 -> hello 可执行目标程序
指令执行过程
-
取指令:PC->MAR->M->MDR->IR
根据PC取指令到IR。将PC的内容送至MAR,MAR中的内容送至地址线,同时控制器将信号送至I/O信号线,主存储器根据地址线上的地址读信号,从指定存储单元读出指令,送至数据线上,MDR从数据线接受指令信息,送至IR。 -
分析指令:OP(IR)->CU
指令译码并送出控制信号。控制器根据IR中指令的操作码,生成相应的控制信号,送到不同的执行部件。OP(IR)为取数指令,此时控制信号送至总线的控制线上。 -
执行指令:Ad(IR)->MAR->M->MDR->ACC
取数操作:将IR中的指令的地址码送至MAR,MAR中的内容送至地址线,同时控制器将读信号送至I/O信号线,从主存储器中读出操作数,并通过数据线送至MDR,再送到ACC中。 -
每取完一条指令,计算下条指令位置,即:(PC)+1->PC
计算机的主要性能指标
机器字长
机器字长,简称字长,指计算机进行一次整数运算(即定点整数运算)所能处理的二级制数据的位数,通常与CPU的寄存器位数、ALU有关。字长一般等于通用寄存器的位数或ALU的宽度,字长越长,数的表示范围越大,计算精度越高。
数据通路带宽
指数据总线一次所能并行传送信息的位数。指代外部数据总线的宽度,与CPU内部数据总线宽度(内部寄存器大小)可能不同。
主存容量
主存储器所能存储信息的最大容量,通常以字节来衡量。也可用字数×字长(512K×16位)来表示存储容量。MAR的位数反映了存储单元的个数,MDR的位数反映了存储单元的字长。
运算速度
- 吞吐量:指系统在单位时间内处理请求的数量。
- 响应时间:从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。
- CPU时钟周期:机器内部主时钟脉冲信号的宽度,是CPU工作的最小时间单位。
- 主频(CPU时钟频率):机器内部主时钟的频率,即时钟周期的倒数。
- CPI:执行一条指令所需的时钟周期数。注意CPI是一个平均数。
- IPS:每秒执行多少条指令,IPS=主频/CPI。
- CPU执行时间:执行一个程序所花费的时间。
- MIPS:每秒执行多少百万条指令。
- FLOPS:每秒执行多少次浮点运算。
其它术语
- 基准程序:专门用来进行性能评价的一组程序,能够很好地反应机器在运行实际负载时的性能。
- 系列机:具有相同的体系结构,使用相同基本指令系统的多个不同型号的计算机。
- 兼容:指软件和硬件的通用性。
- 固件:将程序固化在ROM中组成的部件称为固件。
本文来自博客园,作者:SXWisON,转载请注明原文链接:https://www.cnblogs.com/SXWisON/p/18370789