第1篇 概 论
1.什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?
答:计算机系统:由计算机硬件和软件两部分组成,计算机系统具有接收和存储信息、按程序快速计算和判断并输出处理结果等功能;
计算机硬件:所谓“硬件”,是指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、机设备的实物组成,如主机、外部设备等;
计算机软件:所谓“软件”,它看不见摸不着,由人们事先编制的具有各类特殊功能的程序组成,包括各种程序和文档,如系统软件,应用软件等;
计算机的硬件和计算机软件是相互依赖,相互限制的,没有重要和不重要之分。没有软件的计算机是没有灵魂的,只是一堆机器;没有硬件的计算机只是一个幻想,没有任何作用。
2.如何理解计算机系统的层次结构?
答:把计算机系统结构按功能划分为多个层次,有利于正确理解计算机系统的工作;同时也有利于明确软件、硬件和固件在计算机系统中的地位和作用;层次结构使得各个层次的分工更加明确,容易纠错和升级;有利于理解各种语言的实现及其性质;有利于探索新的虚拟机实现方法,设计新的计算机系统。
3.说明高级语言、汇编语言和机器语言的差别及其联系。
答:高级语言:高级语言是面向用户的,用高级语言编写的程序称做高级语言源程序,必须翻译成机器语言目标程序才能被计算机执行;
汇编语言:能反映指令功能的助记符表达的计算机语言称汇编语言,它出现在机器语言之前;
机器语言:是计算机唯一能接受和执行的语言。机器语言由二进制码组成,每一串二进制码称做一条指令;
其中只有高级语言是面向用户的,汇编语言和机器语言都是面向机器的。高级语言和汇编语言要经过编译器翻译成机器语言才能被计算机所识别。
4.如何理解计算机组成和计算机体系结构?
答:计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性。计算机系统的属性通常是指用机器语言编程的程序员(也包括汇编语言程序设计者)所看到的传统机器的属性,包括指令集、数据类型、存储器寻址技术、I/O机理等,大都属于抽象的属性。计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是透明的硬件细节。例如,指令系统体现了机器的属性,这是属于计算机结构的问题。但指令的实现,即如何取指令、分析指令、取操作数、运算、送结果等,这些都属于计算机组成问题。
5.冯·诺依曼计算机的特点是什么?
答:冯·诺依曼在研究EDVAC机时提出了“存储程序”的概念。以此概念为基础的各类计算机通称为冯•诺依曼计算机,除了存储程序这个最大的特点以外,它的其他主要特点是:
(1)计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成;
(2)指令和数据以同同等地位存放于存储器内,并可以按地址访问;
(3)指令和数据均用二进制表示;
(4)指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置;
(5)指令在存储器中顺序存放,通常自动顺序取出执行;
(6)机器以运算器为中心(原始冯•诺依曼机)。
6.画出计算机硬件组成框图,说明各部件的作用及计算机硬件的主要技术指标。
答:计算机硬件组成框图如图1-11所示。
图1-11 计算机硬件组成框图
图中各部件的功能如下:
运算器用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内;
存储器用来存放数据和程序;
控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果;
输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等;
输出设备可将机器运算结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等。
7.解释概念:主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。
答:主机:是计算机硬件的主体部分,CPU与主存储器合起来又可称为主机;
CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成(早期的运算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了CACHE);
主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取,由存储体、各种逻辑部件及控制电路组成;
存储单元:可存放一个机器字并具有特定存储地址的存储单位;
存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又称存储基元或存储元,不能单独存取;
存储基元:存储基元即存储元件,是存储单元的分支,能寄存一位二进制代码“1”或“0”,又称存储元件,存储元;
存储元:同上;
存储字:一个存储单元所存二进制代码的逻辑单位;
存储字长:一个存储单元所存二进制代码的位数;
存储容量:存储器中可存二进制代码的总量;
机器字长:指CPU一次能处理的二进制数据的位数;
指令字长:一条指令的二进制代码位数。
8.解释英文代号:CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、L/O、MIPS、CPI、FLOPS。
答:CPU:Central Processing Unit,中央处理机(器),是计算机硬件的核心部件,主要由运算器和控制器组成。
PC:Program Counter,程序计数器,其功能是存放当前欲执行指令的地址,并可自动计数形成下一条指令地址。
IR:Instruction Register,指令寄存器,其功能是存放当前正在执行的指令。
CU:Control Unit,控制单元(部件),为控制器的核心部件,其功能是产生微操作命令序列。
ALU:Arithmetic Logic Unit,算术逻辑运算单元,为运算器的核心部件,其功能是进行算术、逻辑运算。
ACC:Accumulator,累加器,是运算器中既能存放运算前的操作数,又能存放运算结果的寄存器。
MQ:Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。
X:此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运算器中工作寄存器之一,用来存放操作数;
MAR:Memory Address Register,存储器地址寄存器,在主存中用来存放欲访问的存储单元的地址。
MDR:Memory Data Register,存储器数据缓冲寄存器,在主存中用来存放从某单元读出、或要写入某存储单元的数据。
I/O:Input/Output equipment,输入/输出设备,为输入设备和输出设备的总称,用于计算机内部和外界信息的转换与传送。
MIPS:Million Instruction Per Second,每秒执行百万条指令数,为计算机运算速度指标的一种计量单位。
CPI:Clock Cycle Per Instruction,表示执行某个程序的指令平均时钟周期数。
FLOPS:Floating-point Operations Per Second,每秒所执行的浮点运算次数。
9.画出主机框图,分别以存数指令“STA M”和加法指令“ADD M”(M均为主存地址)为例,在图中按序标出完成该指令(包括取指阶段)的信息流程。假设主存容量为256 M×32位,在指令字长、存储字长、机器字长相等的条件下,指出图中各寄存器的位数。
答:主机框图如图1-12所示:
图1-12 主机框图
(1)STA M指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,OP(IR)→CU,Ad(IR)→MAR,ACC→MDR,MAR→MM,WR;
(2)ADD M指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,OP(IR)→CU,Ad(IR)→MAR,RD,MM→MDR,MDR→X,ADD,ALU→ACC,ACC→MDR,WR;
假设主存容量256M×32位,在指令字长、存储字长、机器字长相等的条件下,ACC、X、IR、MDR寄存器均为32位,PC和MAR寄存器均为28位。
10.根据迭代公式,设初态Y0=1,要求精度为ε,试编制求的解题程序(指令系统自定),并结合所编程序简述计算机的解题过程。
答:主要有以下步骤:
(1)取x到ACC;
(2)加1存于AC;
(3)除2存于MQ,又[MQ]→主存单元m;
(4)取x到ACC;
(5)将y1从m中取出,执行[m]→x,[ACC]÷[x]→MQ,得x/yn;
(6)[MQ]→ACC,执行yn+x/yn,即[ACC]+[x]→ACC;
(7)除2得结果于MQ,又[MQ]→ACC,[MQ]→m;
(8)[ACC]-[X]→ACC,然后判断[ACC]与ε的大小,若|[ACC]|≦ε则到(9),否则返回;
(9)打印[m];
(10)停机。
11.指令和数据都存于存储器中,计算机如何区分它们?
答:计算机区分指令和数据有以下2种方法:
(1)通过不同的时间段来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据;
(2)通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址的取出的是操作数。
12.什么是指令?什么是程序?
答:指令:指令是机器完成某种操作的命令,典型的指令通常包括操作码和地址码两部分。操作码用来指出执行什么操作(如加、传送),地址码用来指出操作数在什么地方;
程序:程序是软件开发人员根据用户需求开发的,用程序设计语言描述的,适合计算机执行的指令(语句)序列。所以说程序是众多指令的集合。