目录
一、 计算机系统层次结构
1.计算机硬件:
1.1冯·诺依曼机基本思想
冯·诺依曼在研究EDVAC机时提出了“存储程序”的概念,“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机统称冯·诺依曼机,其特点如下:
1)采用“存储程序”的工作方式。
2)计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
3)指令和数据以同等地位存储在存储器中,形式上没有区别,但计算机应能区分它们。
4)指令和数据均用二进制代码表示。
5)指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。 “存储程序”的基本思想是:将事先编制好的程序和原始数据送入主存储器后才能执行, 旦程序被启动执行,就无须操作人员的干预,计算机会自动逐条执行指令,直至程序执行结束。
1.2.计算机的功能部件
1)输入设备:键盘、鼠标、扫描仪、摄像机等
2)输出设备:显示器、打印机
3)存储器:分为主存和外存。其中CPU能直接访问的是主存
存储器地址寄存器(MAR):存放访存地址,其位数反映最多可寻址的存储单元的个数,如MAR为10位,则最多有2 ^ { 1 0 } = 1 0 2 4个存储单元,记为1K。MAR的长度与PC的长度相等。
存储器数据寄存器(MDR):暂存存储器中读或写的信息,MDR的位数通常等于存储字长,一般为字节的2次幂的整数倍。
4)运算器
运算器是计算机的执行部件,用于进行算术运算和逻辑运算。算术运算是按算术运算规则进行的运算,如加、减、乘、除;逻辑运算包括与、或、非、异或、比较、移位等运算。
运算器的核心是算术逻辑单元(Arithmetic and Logic Unit,ALU)。运算器包含若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)等,其中前三个寄存器是必须具备的。
运算器内还有程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息,如结果是否溢出、有无产生进位或借位、结果是否为负等。
(5)控制器
控制器是计算机的指挥中心,由其“指挥”各部件自动协调地进行工作。控制器由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。
PC用来存放当前欲执行指令的地址,具有自动加1的功能(这里的“1”指一条指令的长度),即可自动形成下一条指令的地址,它与主存储器的MAR之间有一条直接通路。
IR用来存放当前的指令,其内容来自主存储器的MDR。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;而地址码Ad(IR)送往MAR,用以取操作数。
一般将运算器和控制器集成到同一个芯片上,称为中央处理器(CPU)。CPU和主存储器共同构成主机,而除主机外的其他硬件装置(外存、I/O设备等)统称外部设备,简称外设。
2.计算机软件
2.1系统软件和应用软件
软件按其功能分类,可分为系统软件和应用软件。
系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用。系统软件主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等。
应用软件是指用户为解决某个应用领域中的各类问题而编制的程序,如各种科学计算类程序、工程设计类程序、数据统计与处理程序等。
在本学科范畴内,编写诸如操作系统、编译程序等各种系统软件的人员称为系统程序员;利用计算机及所支持的系统软件来编写解决具体应用问题的人员称为应用程序员。
2.2三个级别的语言
1)机器语言。也称二进制代码语言,需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言。
2)汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编写的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为机器语言程序后,才能在计算机的硬件系统上执行。
3)高级语言。高级语言(如C、C++、Java等)可以方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。
因为计算机无法直接理解和执行高级语言程序,所以需要将高级语言程序转换为机器语言程序,通常把进行这种转换的系统软件称翻译程序。翻译程序有以下三类:
1)汇编程序(汇编器)。将汇编语言程序翻译成机器语言程序。
2)解释程序(解释器)。将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。
3)编译程序(编译器)。将高级语言程序翻译成汇编语言或机器语言程序。
2.3 软件和硬件的逻辑功能等价性
硬件实现的往往是最基本的算术和逻辑运算功能,而其他功能大多通过软件的扩充得以实现。对某一功能来说,其既可以由硬件实现,又可以由软件实现,从用户的角度来看,它们在功能上是等价的。这一等价性被称为软/硬件逻辑功能的等价性。
3.计算机系统的结构层次
4.计算机系统的工作方式
4.1 “存储程序”工作方式
每条指令的执行过程包括:根据PC从主存储器中取指令、对指令进行译码、计算下一条指令地址、取操作数并执行、将结果送回存储器。
4.2 从源程序到可执行文件
翻译过程的四个阶段:
4.3指令执行过程的描述
可执行文件中的代码段是由一条一条机器指令构成的,指令是用0和1表示的一串0/1序列
用来指示CPU 完成一个特定的原子操作。例如,取数指令从存储单元中取出一个数据送到CPU
的寄存器中,存数指令将CPU寄存器的内容写入一个存储单元,ALU 指令将两个寄存器的内容
进行某种算术或逻辑运算后送到一个CPU 寄存器中,等等。
下面以取数指令(送至运算器的ACC中)为例来说明,其信息流程如下:
1)取指令:PC-MAR→M-MDR→IR
根据PC取指令到IR.将PC的内容送MAR,MAR中的内容直接送地址线,同时控制器将
读信号送读/写信号线,主存储器根据地址线上的地址和读信号,从指定存储单元读出指令,送到
数据线上,MDR从数据线接收指令信息,并传送到R中。
2)分析指令:OP(IR)-CO
指令译码并送出控制信号。控制器根据 IR中指令的操作码,生成相应的控制信号,送到不
同的执行部件。在本例中,IR中是取数指令,因此读控制信号被送到总线的控制线上。
3)执行指令:Ad(IR)→MAR-M→MDR-ACC4
取数操作。将IR中指令的地址码送MAR,MAR中的内容送地址线,同时控制器将读信
号送读/写信号线,从主存储器中读出操作数,并通过数据线送至MDR,再传送到ACC中。
每取完一条指令,还需为取下一条指令做准备,计算下一条指令的地址,即(PC)+1→PC。
二、计算机的性能指标
1.机器字长
通常所说的“某16位或32位机器”,其中的16、32指的是机器字长,简称字长。字长是指计算机进行一次整数运算(定点整数运算)所能处理的二进制数据的位数,通常与CPU的寄存器位数、ALU有关。因此,字长一般等于通用寄存器的位数或ALU的宽度,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为1字节(8位)的整数倍。
2.数据通路带宽
数据通路带宽是指数据总线一次所能并行传送信息的位数。这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同。
3.主存储量
主存容量是指主存储器所能存储信息的最大容量,通常以字节(B)来衡量,也可用字数× 字长(如512Kx16位)来表示存储容量。其中,MAR的位数反映了存储单元的个数,MDR 的位数反映了存储单元的字长。例如, MAR为16位,216}=65536,即表示此存储体内有65536个存储单元(可称为64KB内存,IK=1024),若MDR为32位,则表示存储容量为64K×32位。
4.运算速度
(1)吞吐量和响应时间。
吞吐量:指系统在单位时间内处理请求的数量。它取决于信息能多快地输入内存,CPU能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。
(2)主频和CPU时钟周期。
CPU时钟周期:机器内部主时钟脉冲信号的宽度,它是CPU工作的最小时间单位。 时钟脉冲信号由机器脉冲源发出的脉冲信号经整形和分频后形成。 时钟周期以相邻状态单元间组合逻辑电路的最大延迟时间为基准确定。 时钟周期也以指令流水线的每个流水段的最大延迟时间确定。
主频(CPU时钟频率):机器内部主时钟的频率,即时钟周期的倒数,它是衡量机器速度的重要参数。对于同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。主频最直观的理解就是每秒有多少个时钟周期。 注意CPU时钟周期=1/主频,主频通常以Hz(赫兹)为单位,10Hz表示每秒10个时钟周期。
(3)CPI(Cycle Per Instruction),即执行一条指今所需的时钟周期数。
不同指令的时钟周期数可能不同,因此对于一个程序或一台机器来说,其CPI指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,即平均CPI。
(4)IPS (Instructions Per Second),即每秒执行多少条指令,IPS=主频/平均CPI。 (4) CPU执行时间。指运行一个程序所花费的时间。
(5)CPU执行时间=CPU时钟周期数/主频=(指令条数×CPI)÷主频
(6)MIPS(Million Instructions Per Second),即每秒执行多少百万条指令。
MIPS=指令条数÷(执行时间×10^6)=主频÷(CPI×10^6)
(7) FLOPS (Floating-point Operations Per Second),即每秒执行多少次浮点运算。
MFLOPS (Million FLOPS),即每秒执行多少百万(10^6)次浮点运算。
GFLOPS(Giga FLOPS),即每秒执行多少十亿(10^9)次浮点运算。
TFLOPS(Tera FLOPS),即每秒执行多少万亿(10^12)次浮点运算。
PFLOPS(Peta FLOPS),即每秒执行多少千万亿(10^15)次浮点运算。
EFLOPS (Exa FLOPS),即每秒执行多少百京(10^18)次浮点运算(1京=1亿亿=10^16)。
ZFLOPS(Zetta FLOPS),即每秒执行多少十万京(10^21)次浮点运算。
三、第一章易错知识点
1.冯诺依曼机的基本工作方式是控制流驱动方式。
2.在CPU中,跟踪下一条要执行的指令的地址的寄存器是PC。
3.在运算器中,不包括地址寄存器。
4.CPU存取速度:寄存器>Cache>内存
5.解释程序的速度比编译程序的速度慢。
6.在CPU寄存器中,指令寄存器对用户是完全透明的。
7.计算机中,CPU的CPI与时钟频率无关。
8.计算机的机器字长与运算速度、存取速度、内存容量无关,而与运算的精确度有关。
9.熟记以下公式:
CPU时钟周期=1/主频
IPS=主频/平均CPI
CPU执行时间=CPU时钟周期数/主频=(指令条数×CPI)÷主频
MIPS=指令条数÷(执行时间×10^6)=主频÷(CPI×10^6)