考纲内容:
一、计算机系统层次结构
(1)计算机系统基本组成
(2)计算机硬件基本组成
(3)计算机软硬件的关系
(4)计算机系统的工作原理
①“存储程序”方式
②高级语言程序与机器语言程序的转换
③程序和指令的执行过程
二、计算机性能指标
吞吐量;响应时间;CPU时钟周期;主频;CPI;CPU执行时间;
MIPS;MFLOPS;GFLOPS;TFLOPS;PFLOPS;EFLOPS;ZFLOPS;
一、计算机系统层次结构
1.1 计算机软件的基本组成
① 系统软件:一组保证计算机系统高效、正确运行的基本软件。
例:操作系统(OS)、数据库管理系统(DBMS)、语言处理系统、分布式软件系统、网络软件系统、标准库程序、服务性程序;
② 应用软件:用户为解决某个应用领域中各类问题而编制的程序。
例:各类科学计算类程序、工程设计类程序。抖音、王者、迅雷等等。
1.2 计算机硬件的基本组成
1.2.1 各硬件的组成和功能
① 输入设备:
将程序和数据以机器能识别和接受的信息形式输入计算机;
② 输出设备:
将计算机处理的结果以人们能接受的形式或其他系统所要求的信息形式输出;
③ 存 储 器:
计算机的存储中心,分为主存和辅存;主存储器中包含有MAR、MDR和存储体;
CPU直接访问的存储器是主存储器,辅存中的信息必须调入主存中才能被CPU直接访问;
④ 运 算 器:
计算机的执行部件,用于进行算数运算与逻辑运算;
⑤ 控 制 器:
计算机的指挥中心,由程序计数器(PC),指令寄存器(IR),控制单元(CU)。
1.2.2 硬件的两大部分
(1)I/O设备(外设)= 输入设备 + 输出设备 + 辅助存储器(辅存) ;
(2)主机 = 主存储器(主存) + 运算器 + 控制器 ;
① 主 存 = 存储体 + MAR + MDR ;
② 运算器 = ACC + MQ + X + ALU ;
③ 控制器 = CU + IR + PC ;
1.3 主机各部分的基本组成及工作原理
1.3.1 主存储器
主存 = 存储体 + MAR + MDR ;
(1)存储体:存放二进制信息,由存储单元组成。
① 存储单元:由存储元件组成,每个存储单元存放一串二进制代码;
② 存 储 字 :存储单元中二进制代码的组成;
③ 存储字长:存储单元中二进制代码的位数;
④ 存储元件(存储元):每个存储元存储一个二进制信息 “0”或“1”;
(2)MAR:存储器地址寄存器
① 存放访存地址,经过地址译码后找到所选的存储单元。
② MAR的存储位数反映存储单元的个数:4位——有2^4个存储单元;
(3)MDR:存储器数据存储器
① 用于暂存要从存储器中读或写的信息;
② MDR的存储位数反映存储字长:16位——每个存储单元存放16bit,即1个字=16bit;
注:
主存储器的时序控制逻辑用于产生存储器操作所需的各种时序信号。
1.3.2 运算器
运算器 = 算数逻辑单元(ALU)+ 若干通用寄存器(ACC+MQ+X+其他)+ 标志寄存器;
(1)算数逻辑元件ALU:
通过内部复杂的电路实现算术运算和逻辑运算;
(2)通用寄存器:
用于暂时存放操作数和运算结果,其中累加器ACC、乘商寄存器MQ和操作数寄存器X是必须具备的,其他通用寄存器不是必须具备的。
(3)程序状态寄存器(标志寄存器PSW):
用于存放ALU运算得到的一些标志信息或处理记得状态信息。
如结果是否溢出、有无产生进位或借位、结果是否为负等。
加 减 乘 除 ACC 被加数、和 被减数、差 乘积高位 被除数、余数 MQ 乘数、乘积低位 商 X 加数 减数 被乘数 除数
1.3.3 控制器
控制器 = 控制单元CU + 指令寄存器IR + 程序计数器PC;
(1)程序计数器PC:
存放当前欲执行指令的地址,具有自动+1功能(此处1指一条指令的长度);
(2)指令寄存器IR:
存放当前指令,内容主要来自主存的MDR。指令包括地址码和操作码;
(3)控制单元CU:
分析指令,给出控制信号。
1.4 计算机软硬件的关系
计算机系统 = 硬件系统 + 软件系统(计算机性能的好坏取决于“软”、“硬”件功能的总和)。
1.4.1 软件与硬件
(1)硬件是指有形的物理设备,是计算机系统中实际物理装置的总称;
(2)软件是指在硬件上运行的程序和相关的数据及文档;
(3)计算机系统性能的好坏,很大程度上是由软件的效率和作用来表征的,而软件性能的发挥离不开硬件的支持。
1.4.2 软硬件的逻辑功能等价性
(1)硬件实现的往往是最基本的算数运算功能和逻辑运算功能,而其他功能大多通过软件的扩充得以实现;
(2)对于某一功能来说,既可以由硬件实现,又可以由软件实现,从用户角度来说软硬件在功能上是等价的——软/硬件逻辑功能等价性。
1.5 计算机系统的工作原理
1.5.1 “存储程序”方式
(1)“存储程序”的基本思想:
将事先编制好的程序和原始数据送入主存储器后才能执行,一旦程序被启动执行,就无需操作人员的干预,计算机会自动逐条执行指令,知道程序执行结束。
(2)冯·诺依曼计算机的特点:
① 计算机硬件系统由输入设备,输出设备,存储器,运算器,控制器五大部分组成;
② 采用“存储程序”的工作方式;
③ 指令和数据以同等的地位存储在存储器中,形式上没有任何区别,但是计算机可以区分它们;(比如:一块区域存放指令,只要地址属于这块区域,那么就是取指令)
④ 指令和数据均用二进制代码表示
⑤ 指令由操作码和地址码组成,操作码指出操作类型,地址码指出操作数的地址;
⑥ 冯·诺依曼计算机以运算器为中心,现代计算机一般以存储器为中心;
(3) 程序执行的过程:
根据PC取指令 —> 指令译码,PC = PC+1 —> 取操作数并执行 —> 结果输出 —> 取指令
1.5.2 高级语言程序与机器语言程序的转换
(1)计算机系统的层次结构
① 虚拟机器M4(高级语言机器)—— 用编译程序翻译成汇编语言程序
② 虚拟机器M3(汇编语言机器)—— 用汇编程序翻译成机器语言程序——运用助记符
③ 虚拟机器M2(操作系统机器)—— 向上提供“广义指令”(系统调用)
④ 传统机器M1(机器语言机器)—— 执行二进制机器指令,机器语言与汇编语言一 一对应
⑤ 传统机器M0( 微指令 系统 )—— 由硬件直接执行微指令。
注:
下层是上层的基础,上层是下层的扩展。①②③是软件层面,④⑤是硬件层面。
(2)翻译程序的概念
① 解释程序(解释器):将源程序的一条语句翻译成对应于机器语言的语句,并且立即执行。紧接着再翻译下一句(每次执行都要翻译);
② 编译程序(编译器):将高级语言程序翻译成翻译成汇编语言程序后需要通过汇编程序翻译成机器语言,也可以直接通过编译程序直接翻译成机器语言程序。(强调一次性全部翻译);
③汇编程序(汇编器):将汇编语言程序翻译成机器语言程序。
(3)翻译程序的四个阶段(从源文件到可执行文件)
以UNIX系统中GCC编译器程序为例:
① 预处理阶段:通过预处理器cpp,将 .c 源文件处理为 .i 源文件;
② 编译阶段:通过编辑器ccl,将 .i 源文件编译成 .s 汇编语言源程序;
③ 汇编阶段:通过汇编器as,将 .s汇编语言源程序打包成 .o 可重定位目标文件;
④ 链接阶段:通过链接器ld,将多个可重定位目标文件和标准库函数文件合并成可执行目标文件。
1.5.3 程序和指令的执行过程
二、计算机性能指标
2.1 存储器的性能指标
(1)总容量
① 主存储器中MAR位数反映存储单元的个数;
② 主存储器中MDR位数=存储字长=每个存储单元的大小;
③ 总容量 = 存储单元的个数 × 存储字长(bit);
举例:当MAR为32位,MDR为8位时,总容量 = 2 ^ 32 × 8 bit = 4GB;
(2)计数制
① 若表示存储空间、文件大小之类的计数制:bit,B,KB,MB,GB,TB
进位:除了1B = 8 bit ,其他均为 2^10=1024,如:1TB = 1024 GB;
② 若表示其他性能指标:K,M,G,T,P,E,Z
进位:10^3 = 1000;
2.2 CPU的性能指标
(1)CPU时钟周期
机器内部主时钟脉冲信号的宽度,是CPU工作的最小工作单位;
注:
时钟周期:以相邻状态单元间组合逻辑电路的最大延迟为基准确定;
时钟脉冲信号:由机器脉冲源发出的脉冲信号经整形和分频后形成;
(2)CPU主频(CPU时钟频率)
机器内部主时钟的频率,即每秒多少个时钟周期。
对同型号计算机,主频越高,完成指令一个执行步骤所用时间越短,执行指令时间越快
CPU主频 = 1/CPU时钟周期;
(3)CPI:执行一条指令所需的时钟周期数;
执行一条指令耗时:CPI × CPU时钟周期;
CPU执行时间(整个程序的耗时)= CPU时钟周期数/主频 = (指令条数*CPI)/主频
(4)IPS:每秒执行多少指令
IPS = 主频 / 平均CPI;
(5)FLOPS:每秒执行多少次浮点运算
注:
IPS:单位为1,KIPS单位为1K,MIPS同理类推;
FLOPS:单位为1,KFLOPS同理类推,还有M,G,T,P,E,Z。
2.3 系统整体的性能指标
(1)吞吐量
指系统在单位时间内处理请求的数量。取决于信息能多快输入内存,CPU能多快取指令
系统吞吐量主要取决于主存的存取周期。
(2)响应时间
指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。包括:
① CPU时间(运行一个程序所花费的时间);
② 等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等时间);
(3)数据通路带宽
数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据);
三、章末总结
(1)计算机由哪几部分组成? 以哪部分为中心?
① 计算机由运算器、控制器、存储器、输入设备及输出设备五大部分构成;
② 现代计算机通常把运算器和控制器集成在一个芯片上, 合称中央处理器。
③ 在微处理器面世之前,以运算器为中心;现代计算机已发展为以存储器为中心。
(2)主频高的CPU一定比主频低的CPU快吗? 为什么?
① 衡量 CPU 运算速度的指标有很多,不能以单独的某个指标来判断CPU 的好坏。
② CPU 的主频表示 CPU 内数字脉冲信号振荡的速度,主频和实际的运算速度存在一定的关系, 但目前还没有一个确定的公式能够定量两者的数值关系, 因为 CPU 的运算速度还要看CPU 的流水线的各方面的性能指标(架构、缓存、指令集、CPU的位数、Cache 大小等)。由于主频并不直接代表运算速度,因此在一定情况下很可能会出现主频较高的 CPU 实际运算速度较低的现象。
(3)不同级别的语言编写的程序有什么区别? 哪种语言编写的程序能被硬件直接执行?
① 机器语言和汇编语言与机器指令对应,而高级语言不与指令直接对应,具有较好的可移植性。
② 其中机器语言编写的程序可以被硬件直接执行。
(4)翻译程序、解释程序、汇编程序、编译程序的区别和联系是什么?
① 翻译程序有两种:
一种是编译程序, 它将高级语言源程序一次全部翻译成目标程序, 只要源程序不变,就无须重新翻译。
另一种是解释程序, 它将源程序的一条语句翻译成对应的机器目标代码, 并立即执行,然后翻译下一条源程序语句并执行, 直至所有源程序语句全部被翻译并执行完。所以解释程序的执行过程是翻译一句执行一句, 并且不会生成目标程序。
② 汇编程序也是一种语言翻译程序, 它把汇编语言源程序翻译为机器语言程序。
③ 编译程序与汇编程序的区别:
若源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”, 则这样的一个翻译程序称为编译程序。
若源语言是汇编语言,而目标语言是机器语言, 则这样的一个翻译程序称为汇编程序。
(5)什么是透明性? 透明是指什么都能看见吗?
① 在计算机领域中,站在某类用户的角度,若感觉不到某个事物或属性的存在, 即“看”不到某个事物或属性,则称为“对该用户而言, 某个事物或属性是透明的”。
② 这与日常生活中的“透明”概念(公开、看得见)正好相反。
③ 例如:
对于高级语言程序员来说, 浮点数格式、乘法指令等这些指令的格式、数据如何在运算器中运算等都是透明的;
而对于机器语言或汇编语言程序员来说, 指令的格式、机器结构、数据格式等则不是透明的。
在 CPU中, IR、MAR 和 MDR对各类程序员都是透明的。
(6)字、字长、机器字长、指令字长、存储字长的区别和联系是什么?
① 字用来表示被处理信息的单位,用来度量数据类型的宽度,如x86机器中将一个字定义为16位。
② 字长是指 CPU 内部用于整数运算的数据通路的宽度, 因此字长等于 CPU 内部用于整数运算的运算器位数和通用寄存器宽度, 它反映了计算机处理信息的能力。
③ 指令字长: 一个指令字中包含的二进制代码的位数。
④ 存储字长: 一个存储单元存储的二进制代码的位数。
注:
① 它们都必须是字节的整数倍。
② 指令字长一般取存储字长的整数倍,:
若指令字长等于存储字长的2倍, 则需要2个访存周期来取出一条指令;
若指令字长等于存储字长, 则取指令周期等于机器周期。
③ 早期的存储字长一般与指令字长、字长相等,因此访问一次主存储器便可取出一条指令或一个数据。随着计算机的发展,指令字长、字长都可变, 但必须都是字节的整数倍。
(7)计算机体系结构和计算机组成的区别和联系是什么?
① 计算机体系结构是指机器语言或汇编语言程序员所看得到的传统机器的属性, 包括指令集、数据类型、存储器寻址技术等, 大都属于抽象的属性。
② 计算机组成是指如何实现计算机体系结构所体现的属性,它包含许多对程序员来说透明的硬件细节。例如,指令系统属于结构的问题, 但指令的实现即如何取指令、分析指令、取操作数、如何运算等都属于组成的问题。因此,当两台机器的指令系统相同时, 只能认为它们具有相同的结构,至于这两台机器如何实现其指令,则完全可以不同,即可以认为它们的组成方式是不同的。
(8)基准程序执行得越快是否说明机器的性能越好?
标签:计算机系统,存储,计算机,程序,第一章,指令,概述,字长,CPU From: https://blog.csdn.net/qike1314/article/details/136645094一般情况下,基准测试程序能够反映机器性能的好坏。但是,由于基准程序中的语句存在频度的差异,因此运行结果并不能完全说明问题