复习本章时,思考以下问题:
- 1)计算机由哪几部分组成?以哪部分为中心?
- 2)主频高的CPU一定比主频低的CPU快吗?为什么?
- 3)翻译程序、汇编程序、编译程序、解释程序有什么差别?各自的特性是什么?
- 4)不同级别的语言编写的程序有什么区别?哪种语言编写的程序能被硬件直接执行?
1、计算机系统概述
日常见到的计算机有显示器、键盘、鼠标、音箱、主机箱等;主机箱中有:主板、CPU、硬盘、内存、显卡、声卡等;
1.1计算机的分类
(1)与发展方向可以分为:
- 电子模拟计算机和电子数字计算机。
(2)数字计算机又可以按照用途分为:
- 专用计算机:速度快
- 通用计算机:速度较慢,通用计算机又分为:巨型机、大型机、中型机、小型机、微型机和单片机6类。
(3)按照指令和数据流可以分为:
- 单指令流和单数据流系统(SISD),即传统的冯·诺依曼体系结构。
- 单指令流和多数据流系统(SIMD),包括阵列处理器和向量处理器系统。
- 多指令流和单数据流系统(MISD),这种计算机实际上不存在。
- 多指令流和多数据流系统(MIMD),包括多处理器和计算机系统。
1.2 计算机系统层次结构
1.3 计算机系统的基本组成
包括硬件系统和软件系统两部分。
(1)早期的冯·诺依曼机以运算器为中心,且是单处理机,最根本的特征是采用“存储程序”原理,基本工作方式是控制流驱动方式!
- 冯诺曼体系结构特点:
- 计算机硬件系统由五大部件组成(存储器、运算器、控制器、输出设备、输入设备)
- 指令和数据以同等地位存于存储器,可按地址寻访
- 指令和数据用二进制表示
- 指令由操作码和地址码组成
- 存储程序:指令以代码的形式事先输入到计算机的主存储器中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。即按地址访问并顺序执行指令
- 以运算器为中心
(2)现代计算机的组织结构:以存储器为中心
1.3.1 计算机硬件
计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成
主机:主存、运算器、控制器
cpu:运算器、控制器
(1) 输入设备
输入设备的主要功能是将程序和数据以机器所能识别和接受的信息形式输入计算机。最常用 也最基本的输入设备是键盘,此外还有鼠标、扫描仪、摄像机等。
(2) 输出设备
输出设备的任务是将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形 式输出。最常用、最基本的输出设备是显示器、打印机。
(3)存储器
存储器分为主存储器(又称内存储器)和辅助存储器(又称外存储器)。CPU能够直接访问的存储器是主存储器。辅助存储器用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存后,才能为 CPU所访问。 主存储器的工作方式是按存储单元的地址进行存取,这 种存取方式称为按地址存取方式。
主存储器包含地址寄存器(MAR),数据寄存器(MDR),存储体,时序控制。地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元。其位数对应着存储单元的个数。数据寄存器(MDR)用于暂存要从存储器中读或写的信息。存储体由许多存储单元组成,每个存储单元包含若干存储元件,每个存储元件存储一位二进 制代码“0”或“1”。时序控制 逻辑用于产生存储器操作所需的各种时序信号。
- IR存放当下欲执行的指令;PC存放下一条指令的地址;
- MAR存放欲访问的存储单元地址;MDR存放从存储单元取来的数据!地址寄存器MAR与数据寄存器MDR虽然一般属于主存,但是现代计算机中绝大多数CPU内集成了地址寄存器!
- 地址译码器是主存的构成部分,不属于CPU;
- 关于CPU存取速度的比较:寄存器(CPU内部)> Cache(高速的SRAM) > 内存 (SDRAM)
(4) 运算器
运算器的核心是算术逻辑单元(ALU)。 运算器内还有程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息。
(5)控制器
控制器由程序计数 器(PC)、指令寄存器(IR)和控制单元(CU)组成。PC用来存放当前欲执行指令的地址,具体自动加1的功能, 即可自动形成下一条指令的地址,它与主存的MAR之间有一条直接通路。IR用来存放当前的指令,其内容来自主存的MDR。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;而地址码Ad(IR)送往MAR,用以取操作数。
指令执行流程
1.3.2 计算机软件
(1)分类
软件按其功能分类,可分为系统软件和应用软件。
- 系统软件通常作为系统资源提供给用户使用。系统软件主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件 系统、网络软件系统、标准库程序、服务性程序等。
- 应用软件是指用户为解决某个应用领域中的各类问题而编制的程序。
注意:数据库管理系统和数据库系统是有区别的。数据库管理系统是系统软件。而数据库系统一般是由数据库,数据库管理系统,数据库管理员和应用系统构成。所以只能说它里面有系统软件,但并不能说它为系统软件。
(2)三个级别的语言
系统软件一般用汇编语言,应用软件一般用高级语言
1) 机器语言。又称二进制代码语言。机器语言 是计算机唯一可以直接识别和执行的语言。
解释程序(解释器)。将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。
2) 汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其 转换为机器语言程序后,才能在计算机的硬件系统上执行。
汇编程序(汇编器):将汇编语言程序翻译成机器语言程序。
3) 高级语言。高级语言(如C、C++、Java等)是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。
编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序。
(1)机器语言是计算机唯一可以直接执行的语言,汇编语言用助记符编写,以便记忆。而正则语言是编译原理中符合正则文法的语言。
(2)解释程序的特点是翻译一句执行一句,边翻译边执行:由高级语言转化为汇编语言的过程称为编译,把汇编语言源程序翻译成机器语言程序的过程称为汇编。
(3)从源程序到可执行文件
1.3.3 指令执行过程的描述
1.4 计算机性能指标
计算机字长通常选定为字节(8位)的整数倍。字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。
机器字长、指令字长、存储字长的区别和联系是什么?
- 机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。
- 指令字长:一个指令字中包含的二进制代码的位数。
- 存储字长:一个存储单元存储的二进制代码的长度。等于MDR的位数, 它们都必须是字节的整数倍。
- 数据字长:数据总线一次能传送信息的位数,它可以不等于MDR的位数。
指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2次访存来取出一条指令,因此取指周期为机器周期的2倍;若指令字长等于存储字长,则取指周期等于机器周期。
1.4.1主存容量
主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量
MAR的位数反映存储单元的个数,如MAR为16位,表示存储单元为2^16 = 64K;若MDR为32位,则存储容量为216x32.
1.4.2运算速度
(1)吞吐量:指系统在单位时间内处理请求的数量。它要取决于主存的存取周期。它是评价计算机系统性能的综合参数!
(2)响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的 等待时间。通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访 问、存储器访问、I/O操作、操作系统开销等的时间)。
(3)CPU时钟周期:即主频的倒数,它是CPU中最小的时间单位。每个动作至少需要1个时钟周期。
(4)主频(CPU时钟频率):计算机的主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。是衡量机器速度的重要参数。
(5)CPI :即执行一条指令所需的时钟周期数。
(6)CPU执行时间:指运行一个程序所花费的时间。取决于三个要素:主频、CPI 、指令条数。
CPU执行时间=CPU时钟周期数/主频=(指令条数XCPI)/主频
(7)MIPS :即每秒执行多少百万条指令。MIPS =指令条数/(执行时间X 1。6)=主频/(CPIxl06)
1.5 复习
1.5.1计算机由哪几部分组成?以哪部分为中心?
(1)计算机由运算器、控制器、存储器、输入设备及输出设备五大部分构成,现代计算机通常把运算器和控制器集成在一个芯片上,合称为中央处理器。
(2)而在微处理器面世之前(早期的冯·诺依曼机),运算器和控制器分离,而且存储器的容量很小,因此设计成以运算器为中心的结构,其他部件都通过运算器完成信息的传递。现代计算机已经发展为以存储器为中心,使IO操作尽可能地绕过CPU,直接在IO设备和存储器之间完成,以提高系统的整体运行效率。
1.5.2 主频高的CPU一定比主频低的CPU快吗?为什么?
衡量CPU运算速度的指标有很多,不能以单独的某个指标来判断CPU的好坏。
CPU的主频,即CPU内核工作的时钟频率。CPU的主频表示CPU内数字脉冲信号振荡的速度,主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者的数值关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(架构、缓存、指令集、CPU的位数、 Cache大小等)。
由于主频并不直接代表运算速度,因此在一定情况下很可能会出现主频较高的CPU实际运算速度较低的现象
计算机组成原理中的Cache和主频
1.5.3翻译程序、汇编程序、编译程序、解释程序有什么差别?各自的特性是什么?
(1)翻译程序有两种 :一种是编译程序 ,它将高级语言源程序一次全部翻译成目标程序 ,只要源程序不变 ,就无须重新翻译 。 另一种是解释程序 ,它将源程序的一条语句翻译成对应的机器目标代码 ,并立即执行 ,然后翻译下一条源程序语句并执行 ,直至所有源程序语句全部被翻译并执行完 。 所以解释程序的执行过程是翻译一句执行一句 , 并且不会生成目标程序 。
(2)汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译为机器语言程序。汇编语言是种面向机器的低级语言,是机器语言的符号表示,与机器语言一一对应。
(3)编译程序与汇编程序的区別:若源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,则这样的一个翻译程序称为编译程序。若源语言是汇编语言,而目标语言是机器语言,则这样的一个翻译程序称为汇编程序。
1.5.4不同级别的语言编写的程序有什么区别?哪种语言编写的程序能被硬件直接执行?
机器语言由代码组成,比较难记忆,可以被硬件直接执行。汇编语言与机器指令对应,相对容易记忆一点,但需要经过汇编语言编译为机器语言才能执行。而高级语言不与指令直接对应,具有较高的语义性与较好的可移植性,需要经过解释编译才能被执行。其中机器语言可以被硬件直接执行。