算术逻辑单元(Arithmetic Logic Unit,ALU)
算术逻辑单元是指对数据进行算术运算和逻辑运算处理的部件。
数据通路(data path)
数据通路是指指令在执行过程中数据所经过的部件以及部件之间的连接线路,主要由ALU和一组寄存器、存储器、总线等组成。国内许多教科书中提到的运算器就是运算数据通路。
控制器(control unit)
控制器也称为控制单元或控制部件。其作用是对指令进行译码,将译码结果和状态/标志信号、时序信号等进行组合,产生各种操作控制信号。这些操作控制信号被送到CPU内部或者通过总线送到主存或I/O模块。送到CPU内部的控制信号用于控制CPU内部数据通路的执行,送到主存或I/O模块的信号控制CPU和主存或CPU和I/O模块之间的信息交换。控制单元是整个CPU的指挥控制中心,通过规定各部件在何时做什么动作来控制数据的流动,完成指令的执行。
中央处理器(Central Processing Unit,CPU)
中央处理器是计算机中最重要的部分之一,主要由运算器和控制器组成。其内部结构归纳起来可以分为控制部件、运算部件和存储部件三大部分,它们相互协调,共同完成对指令的执行。
通用寄存器(General Purpose Register,GPR)
通用寄存器是CPU中用来存放临时数据的寄存器,这些数据可以是从主存储器获取的数据,也可以是将要写入主存储器的数据。可以将这些数据送入ALU进行运算,并将运算结果存入这些寄存器中。
存储器(memory,storage)
存储器用于存储程序和数据,分为内存储器(memory)和外存储器(storage)。内存存取速度快、容量小、价格贵;外存容量大、价格低,但存取速度慢。
内存(memory)
从字面上来说,内存是内部存储器,也称为内存储器,应该包括主存(Main Memory,MM)和高速缓存(cache),但是,因为早期计算机中没有高速缓存,因而传统意义上内存就是主存(即主存储器),所以,目前也并不区分内存和主存。内存位于CPU之外,用来存放已被启动执行的程序及所用数据,包括ROM芯片和RAM芯片组成的相应ROM存储区和RAM存储区两部分。
总线(bus)
CPU为了从主存取指令和存取数据,需要通过传输介质和主存相连,通常把连接不同部件进行信息传输的介质称为总线。其中包含分别用于传输地址信息、数据信息和控制信息的地址线、数据线和控制线。
主存地址寄存器(Memory Address Register,MAR)
CPU访问主存时,需先将主存地址、读/写命令分别送到总线的地址线、控制线,然后通过数据线发送或接收数据。CPU发出的主存地址总是先送到MAR,然后通过MAR传送到地址线上。
主存数据寄存器(Memory Data Register,MDR)
CPU访问主存时,需先将主存地址、读/写命令分别送到总线的地址线、控制线,然后通过数据线发送或接收数据。CPU发送到数据线或从数据线取来的信息总是先存放在MDR中。
程序计数器(Program Counter,PC)
程序由一条一条的指令构成,在程序执行过程中,CPU需要知道下一步将要执行的指令,因而,CPU能自动计算出下一条指令的地址,并送到PC中保存。因此,PC是用来存放将要执行的指令地址的寄存器。
系统软件(system software)
系统软件是介于计算机硬件与应用程序之间的各种软件,它与具体应用的关系不大。系统软件包括操作系统(如Windows、Linux)、语言处理系统(如C语言编译器)、数据库管理系统(如Oracle)和各类实用程序(如磁盘碎片整理程序、备份程序)。
应用软件(application software)
应用软件是指为针对使用者某种应用目的所编写的软件,例如,办公自动化软件、互联网应用软件、多媒体处理软件、股票分析软件、游戏软件、管理信息系统等。
操作系统(Operating System,OS)
操作系统是计算机系统中负责支撑应用程序运行以及用户操作环境的系统软件,其目的是使计算机系统中的所有资源最大限度地发挥作用,为用户和上层软件提供方便有效的用户界面和底层系统调用服务例程。
最终用户(end user)
使用应用程序完成特定任务的计算机用户称为最终用户。大多数计算机使用者都属于最终用户。例如,使用炒股软件的股民、玩计算机游戏的人、进行会计电算化处理的财会人员等。
应用程序员(application programmer)
使用高级编程语言编制应用软件的程序员。
系统程序员(system programmer)
设计和开发系统软件的程序员,如开发操作系统、编译器、数据库管理系统等系统软件的程序员。
高级编程语言(high-level programming language)
高级编程语言是面向问题和算法的描述语言。用这种语言编写程序时,程序员不必了解实际机器的结构和指令系统等细节,而是通过一种比较自然的、直接的方式来描述问题和算法。
汇编语言(assembly language)
汇编语言是一种面向实际机器结构的低级语言,是机器语言的符号表示,与机器语言一一对应。因此,汇编语言程序员必须对机器的结构和指令系统等细节非常清楚。
机器语言(machine language)
机器语言是指直接用二进制代码(指令)表示的语言。机器语言程序员必须对机器的结构和指令系统等细节非常清楚。
指令集(instruction set)
一台计算机能够执行的所有机器指令的集合。按功能分指令可以分为运算指令、移位指令、传送指令、串指令、程序控制指令等类型。
指令集体系结构(Instruction Set Architecture,ISA)
ISA是计算机硬件与系统软件之间的接口,是指机器语言程序员或操作系统、编译器、解释器设计人员所看到的计算机功能特性和概念性结构。其核心部分是指令系统,同时还包含数据类型和数据格式定义、寄存器组织、I/O空间的编址和数据传输方式、中断结构、计算机状态的定义和切换、存储保护等。ISA设计的好坏直接决定了计算机的性能和成本。
透明性(transparency)
由于计算机系统采用了层次化结构进行设计和组织,因而,面向不同的硬件或软件层面工作的人员或用户所“看到”的计算机是不一样的。也就是说,计算机组织方式或系统结构中的一部分对某些用户而言是“看不到”的或称为“透明”的。例如,对于高级语言程序员来说,指令格式、数据格式、机器结构、指令和数据的存取方式等,都是透明的;而对于机器语言程序员和汇编语言程序员来说,指令格式、机器结构、数据格式等则不是透明的。
源程序(source program)
编译程序、解释程序和汇编程序统称为语言处理程序。各种语言处理程序处理的处理对象称为源程序,源程序用高级编程语言或汇编语言编写,如C语言源程序、Java语言源程序、汇编语言源程序等。
目标程序(object program)
编译程序和汇编程序对源程序进行翻译得到的结果称为目标程序或目标代码(object code)。
编译程序(compiler)
编译程序也称编译器,是指用来将高级语言源程序翻译成用汇编语言或机器语言表示的目标代码的程序。
解释程序(interpreter)
解释程序将源程序的一条语句翻译成对应的机器语言目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序中的语句全部被翻译并执行完。因此,解释程序并不输出目标程序,而是直接输出源程序的执行结果。
汇编程序(assembler)
汇编程序也是一种语言翻译程序,它把用汇编语言编写的源程序翻译为机器语言目标程序。汇编程序和汇编语言是两个不同的概念,不能混为一谈。