此系列介绍计算机的组成原理,参考书:《计算机组成原理考研复习指导》(王道论坛组编)。
1.计算机发展史
1.1 计算机发展
-
计算机变化
- 第一代计算机 ( 1946 − 1957 ) (1946-1957) (1946−1957):电子管时代。
- 逻辑元件采用电子管;
- 使用机器语言进行编程;
- 主存用延迟线或磁鼓存储信息,容量极小;
- 体积庞大,成本高;
- 运算速度较低,一般只有几千次到几万次每秒;
- 第二代计算机 ( 1958 − 1964 ) (1958-1964) (1958−1964):晶体管时代。
- 逻辑元件采用晶体管;
- 运算速度提高到几万次到几十万次每秒;
- 主存使用磁心存储器;
- 软件开始使用高级语言,如: F O R T R A N {\rm FORTRAN} FORTRAN;
- 第三代计算机 ( 1965 − 1971 ) (1965-1971) (1965−1971):中小规模集成电路时代。
- 逻辑元件采用中小规模集成电路;
- 半导体存储器开始取代磁心存储器;
- 高级语言发展迅速,操作系统进一步发展,开始有分时操作系统;
- 第四代计算机 ( 1972 − ) (1972-) (1972−):超大规模集成电路时代。
- 逻辑元件采用大规模集成电路和超大规模集成电路,产生微处理器;
- 诸如并行、流水线、高速缓存和虚拟存储器等概念用在此代计算机中;
- 第一代计算机 ( 1946 − 1957 ) (1946-1957) (1946−1957):电子管时代。
-
计算机元件发展
-
摩尔定律。
当价格不变时,集成电路上可容纳的晶体管数目,约每隔 18 18 18个月会增加一倍,性能讲提升一倍;
-
半导体存储器。
1970 1970 1970年,仙童半导体公司生产出第一个较大容量的半导体存储器,半导体存储器发展:单芯片 1 K B 、 4 K B 、 16 K B 、 64 K B 、 256 K B 、 1 M B 、 4 M B 、 16 M B 、 64 M B 、 256 M B 、 1 G B {\rm 1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、64MB、256MB、1GB} 1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、64MB、256MB、1GB;
-
微处理器。
1971 1971 1971年 I n t e l {\rm Intel} Intel公司开发出第一个微处理器 I n t e l 4004 {\rm Intel\ 4004} Intel 4004,微处理器发展: I n t e l 8008 {\rm Intel\ 8008} Intel 8008( 8 8 8位)、 I n t e l 8080 {\rm Intel\ 8080} Intel 8080( 8 8 8位)、 I n t e l 8086 {\rm Intel\ 8086} Intel 8086( 16 16 16位)、 I n t e l 8088 {\rm Intel\ 8088} Intel 8088( 16 16 16位)、 I n t e l 80286 {\rm Intel\ 80286} Intel 80286( 16 16 16位)、 I n t e l 80386 {\rm Intel\ 80386} Intel 80386( 32 32 32位)、 I n t e l 80486 {\rm Intel\ 80486} Intel 80486( 32 32 32位)、 P e n t i u m {\rm Pentium} Pentium( 32 32 32位)、 P e n t i u m p r o {\rm Pentium\ pro} Pentium pro( 64 64 64位)、 P e n t i u m {\rm Pentium\ } Pentium Ⅱ( 64 64 64位)、 P e n t i u m {\rm Pentium\ } Pentium Ⅲ( 64 64 64位)、 P e n t i u m 4 {\rm Pentium\ 4} Pentium 4( 64 64 64位);
注: 32 32 32位、 64 64 64位指机器字长,即计算机进行一次整数运算所能处理的二进制数据的位数;
-
1.2 计算机的分类与发展方向
- 电子计算机分为:电子模拟计算机、电子数字计算机;
- 数字计算机按用途分为:专用计算机、通用计算机;
- 通用计算机分为:巨型机、大型机、中型机、小型机、微型机、单片机;
- 计算机按指令和数据流分为:
- 单指令流和单数据流系统 ( S I S D ) ({\rm SISD}) (SISD),传统冯·诺依曼体系结构;
- 单指令流和多数据流系统 ( S I M D ) ({\rm SIMD}) (SIMD),包括阵列处理器和向量处理器系统;
- 多指令流和单数据流系统 ( M I S D ) ({\rm MISD}) (MISD),实际不存在;
- 多指令流和多数据流系统 ( M I M D ) ({\rm MIMD}) (MIMD),包括多处理器和多计算机系统;
- 计算机的发展方向:
- 微型计算机向更微型化、网络化、高性能、多用途方向发展;
- 巨型计算机向更巨型化、超高速、并行处理、智能化方向发展;
2.计算机系统层次结构
2.1 计算机硬件基本组成和软件分类
计算机系统组成:
- 计算机系统组成:硬件系统、软件系统;
- 硬件:指有形的物理设备,是计算机系统中实际物理装置的总称;
- 软件:指在硬件上运行的程序和相关的数据及文档;
计算机硬件的基本组成:
-
早期冯·诺依曼机
概念:冯·诺依曼在研究 E D V A C {\rm EDVAC} EDVAC机时提出"存储程序"概念,以"存储程序"概念为基础的各类计算机称为冯·诺依曼机;“存储程序”:指将指令以代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序执行结束;
冯·诺依曼机特点:
- 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备 5 5 5大部件组成;
- 指令和数据以同等地位存储在存储器中,并可按地址寻址;
- 指令和数据均用二进制代码表示;
- 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址;
- 指令在存储器内按顺序存放;
- 早期冯·诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据;
典型的冯·诺依曼计算机结构:
现代计算机组织结构:
现代计算机以存储器为中心,使 I / O {\rm I/O} I/O操作尽可能地绕过 C P U {\rm CPU} CPU,直接在 I / O {\rm I/O} I/O设备和存储器间完成,以提高系统的整体运行效率,现代计算机结构如下:
计算机功能部件:
-
输入设备
-
输入设备主要功能:将程序和数据以机器所能识别和接受的信息形式输入计算机;
-
常用的基本的输入设备:键盘,鼠标,扫描仪,摄像机等;
-
-
输出设备
-
输出设备的任务:将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出;
-
常用的基本的输出设备:显示器,打印机;
-
-
存储器
-
存储器是计算机的存储部件,用来存放程序和数据;
-
存储器分为主存储器(亦称内存储器)和辅助存储器(亦称外存储器);
-
C P U {\rm CPU} CPU能够直接访问的存储器是主存储器,辅助存储器用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存储器后,才能为 C P U {\rm CPU} CPU所访问;
-
主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式;
-
主存储器的基本组成如下图所示:
-
主存储器说明:
存储体存放二进制信息,地址寄存器 ( M A R ) ({\rm MAR}) (MAR)存放访存地址,经过地址译码后找到所选的存储单元,数据存储器 M D R {\rm MDR} MDR用于暂存要从存储器中读或写的信息,时序控制逻辑用于产生存储器操作所需的各种时序信息;
存储体由许多存储单元组成,每个存储单元包含若干存储元件,每个存储元件存储一位二进制代码" 0 0 0"或" 1 1 1";存储单元可存储一串二进制代码,这串代码称为存储字,这串代码的位数称为存储字长,存储字长是 1 B ( 8 b i t ) 1{\rm B}(8{\rm bit}) 1B(8bit)或字节的偶数倍;
M A R {\rm MAR} MAR用于寻址,其位数对应着存储单元的个数,如: M A R {\rm MAR} MAR为 10 10 10位,则有 2 10 = 1024 2^{10}=1024 210=1024个存储单元,记为 1 K 1{\rm K} 1K; M D R {\rm MDR} MDR的位数和存储字长相等,一般为字节的二次幂的整数倍;
-
-
运算器
- 运算器用于进行算术运算和逻辑运算,算术运算是按算术运算规则进行的运算,如:加、减、乘、除;逻辑运算如与、或、非、异或、比较、移位等运算;
- 运算器的核心是算术逻辑单元 ( A r i t h m e t i c a n d L o g i c a l U n i t , A L U ) ({\rm Arithmetic\ and\ Logical\ Unit,ALU}) (Arithmetic and Logical Unit,ALU);运算器包含若干通用寄存器,用于暂存操作数和中间结果,如:累加器 ( A C C ) ({\rm ACC}) (ACC)、乘商寄存器 ( M Q ) ({\rm MQ}) (MQ)、操作数寄存器 ( X ) ({\rm X}) (X)、变址寄存器 ( I X ) ({\rm IX}) (IX)、基址寄存器 ( B R ) ({\rm BR}) (BR),前 3 3 3个寄存器是必须具备的;
- 运算器内还有:程序状态寄存器 ( P S W ) ({\rm PSW}) (PSW),亦称标志寄存器,用于存放 A L U {\rm ALU} ALU运算得到的一些标志信息或处理机的状态信息,如:结果是否溢出、有无产生进位或借位、结果是否为负等;
-
控制器
-
控制器"指挥"各部件自动协调地进行工作,控制器由程序计数器 ( P C ) ({\rm PC}) (PC)、指令寄存器 ( I R ) ({\rm IR}) (IR)、控制单元 ( C U ) ({\rm CU}) (CU)组成;
-
程序计数器 ( P C ) ({\rm PC}) (PC):用来存放当前欲执行指令的地址,可以自动加 1 1 1形成下一条指令的地址,与主存的 M A R {\rm MAR} MAR间有一条直接通路;
-
指令寄存器 ( I R ) ({\rm IR}) (IR):用来存放当前的指令,其内容来自主存的 M D R {\rm MDR} MDR;指令中的操作码 O P ( I R ) {\rm OP(IR)} OP(IR)送至 C U {\rm CU} CU,用以分析指令并发出各种微操作命令序列,地址码 A d ( I R ) {\rm Ad(IR)} Ad(IR)送往 M A R {\rm MAR} MAR,用以取操作数;
-
将运算器和控制器集成到同一个芯片上,称为中央处理器 ( C P U ) ({\rm CPU}) (CPU); C P U {\rm CPU} CPU和主存储器构成主机,除主机外其他硬件装置统称为外部设备,即外设;
-
冯·诺依曼结构模型机:
-
冯·诺依曼结构模型机说明:
C P U {\rm CPU} CPU包括 A L U {\rm ALU} ALU、通用寄存器组 G P R s {\rm GPRs} GPRs、标志寄存器、控制器、指令寄存器 I R {\rm IR} IR、程序计数器 P C {\rm PC} PC、存储器地址寄存器 M A R {\rm MAR} MAR和存储器数据寄存器 M D R {\rm MDR} MDR;
从控制器出发的虚线为控制信号,控制如何修改 P C {\rm PC} PC得到下一条指令的地址,控制 A L U {\rm ALU} ALU执行什么运算,控制主存是进行读操作还是写操作;
C P U {\rm CPU} CPU和主存间通过一组总线相连,总线中有地址、控制和数据 3 3 3组信号线; M A R {\rm MAR} MAR中的地址信息直接送到地址线上,用于指向读/写操作的主存存储单元;控制线中有读/写信号线,指出数据是从 C P U {\rm CPU} CPU写入主存还是从主存读出到 C P U {\rm CPU} CPU,根据是读操作还是写操作来控制将 M D R {\rm MDR} MDR中的数据是送到数据线上还是将数据线上的数据接收到 M D R {\rm MDR} MDR中;
-
计算机软件分类:
- 系统软件和应用软件
- 系统软件:一组保证计算机系统高效、正确运行的基础软件;系统软件主要有操作系统 ( O S ) ({\rm OS}) (OS)、数据库管理系统 ( D B M S ) ({\rm DBMS}) (DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等;
- 应用软件:指用户为解决某个应用领域中的各类问题而编制的程序;
- 三个级别的语言
- 机器语言:亦称二进制代码语言,需要编程人员记忆每条指令的二级制编码,机器语言是计算机唯一可以直接识别和执行的语言;
- 汇编语言:汇编语言用英文单词或其缩写代替二进制的指令代码;
- 高级语言:高级语言是为方便程序设计人员写出解决问题的处理方案和解题过程的程序;高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序;
2.2 计算机工作过程和计算机系统多级层次结构
计算机的工作过程:
-
计算机工作过程:
- 把程序和数据装入主存储器;
- 将源程序转换成可执行文件;
- 从可执行文件的首地址开始逐条执行指令;
-
源程序到可执行文件实例说明
U N I X {\rm UNIX} UNIX系统的 G C C {\rm GCC} GCC编译程序读取源程序文件 f u x i . c {\rm fuxi.c} fuxi.c,转换成可执行目标文件 f u x i {\rm fuxi} fuxi,执行过程如下图所示:
- 预处理阶段:预处理器 ( c p p ) ({\rm cpp}) (cpp)对源程序中以字符 # \# #开头的命令进行处理;
- 编译阶段:编译器 ( c c l ) ({\rm ccl}) (ccl)对预处理后的源程序进行编译,生成一个汇编语言源程序 f u x i . s {\rm fuxi.s} fuxi.s;汇编语言源程序的每条语句都以一种文本格式描述一条低级机器语言指令;
- 汇编阶段:汇编器 ( a s ) ({\rm as}) (as)将 f u x i . s {\rm fuxi.s} fuxi.s翻译成机器语言指令,把这些指令打包成一个可重定位目标文件 f u x i . o {\rm fuxi.o} fuxi.o;
- 链接阶段:连接器 ( l d ) ({\rm ld}) (ld)将多个可重定位目标文件和标准库函数合并为一个可执行目标文件,即可执行文件;
-
指令执行过程的描述
程序中第一条指令的地址置于 P C {\rm PC} PC中,根据 P C {\rm PC} PC取出第一条指令,经过译码、执行步骤等,控制计算机各功能部件协同运行,完成这条指令的功能,并计算下一条指令的地址;用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止;
取数指令实例:
-
取指令: P C → M A R → M → M D R → I R {\rm PC→MAR→M→MDR→IR} PC→MAR→M→MDR→IR.
根据 P C {\rm PC} PC取指令到 I R {\rm IR} IR。将 P C {\rm PC} PC内容送到 M A R {\rm MAR} MAR, M A R {\rm MAR} MAR中的内容直接送地址线,同时控制器将读信号送读/写信号线,主存根据地址线上的地址和读信号,从指定存储单元读出指令,送到数据线上, M D R {\rm MDR} MDR从数据线接收指令信息,并送到 I R {\rm IR} IR中;
-
分析指令: O P ( I R ) → C U {\rm OP(IR)→CU} OP(IR)→CU.
指令译码并送出控制信号。控制器根据 I R {\rm IR} IR中指令的操作码,生成相应的控制信号,送到不同的执行部件,此例 I R {\rm IR} IR中是取数指令,读控制信号被送到总线的控制线上;
-
执行指令: A d ( I R ) → M A R → M → M D R → A C C {\rm Ad(IR)\rightarrow{MAR}\rightarrow{M}\rightarrow{MDR}\rightarrow{ACC}} Ad(IR)→MAR→M→MDR→ACC.
取数操作。将 I R {\rm IR} IR中指令的地址码送 M A R {\rm MAR} MAR, M A R {\rm MAR} MAR中的内容送地址线,同时控制器将读信号送读/写信号线,从主存指定存储单元读出操作数,并通过数据线送至 M D R {\rm MDR} MDR,再传送到 A C C {\rm ACC} ACC中;
-
计算机系统的多级层次结构:
-
计算机系统层次结构如下图所示:
- 第一级:微程序机器层,是一个硬件层,由机器硬件直接执行微指令;
- 第二级:传统机器语言层,是一个机器层,由微程序解释机器指令系统;
- 第三级:操作系统层,由操作系统程序实现;
- 第四级:汇编语言层,为用户提供一种符号化的语言,借此可编写汇编语言源程序,此层由汇编程序支持和执行;
- 第五级:高级语言层,是面向用户的,为方便用户编写应用程序而设置的,此层由各种高级编译程序支持和执行;
-
把没有配备软件的纯硬件系统称为"裸机",第三到五层称为虚拟机,即软件实现的机器;
-
虚拟机只对该层的观察者存在,对于某层的观察者来说,只能通过该层次的语言来了解和使用计算机,不必关心下层是如何工作的;
-
层次间关系密切,下层是上层的基础,上层是下层的扩展;
3.计算机的性能指标
3.1 计算机主要性能指标
- 机器字长
- 机器字长指计算机进行一次整数运算所能处理的二进制数据的位数,通常与 C P U {\rm CPU} CPU的寄存器位数、加法器有关;
- 机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高,计算机字长通常选定为字节( 8 8 8位)的整数倍;
- 数据通路带宽
- 数据通路带宽指数据总线一次所能并行传动信息的位数,各个子系统通过数据总线连接形成的数据传送路径称为数据通路;
- 主存容量
- 主存容量指主存储器所能存储信息的最大容量,通常以字节衡量,也可用字数 × × ×字长(如 512 K × 16 {\rm 512K×16} 512K×16位)来表示存储容量,其中: M A R {\rm MAR} MAR的位数反映存储单元的个数, M A R {\rm MAR} MAR的位数反映可寻址范围的最大值;
- 比如: M A R {\rm MAR} MAR为 16 16 16位,表示 2 16 = 65536 2^{16}=65536 216=65536,即此存储体内有 65536 65536 65536个存储单元,可称为 64 K {\rm 64K} 64K内存, 1 K = 1024 {\rm 1K=1024} 1K=1024,若 M D R {\rm MDR} MDR为 32 32 32位,表示存储容量为 64 K × 32 {\rm 64K\times32} 64K×32位;
- 运算速度
- 吞吐量和响应时间
- 吞吐量:指系统在单位时间内处理请求的数量,取决于信息能多快地输入内存, C P U {\rm CPU} CPU能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备,因此,系统吞吐量主要取决于主存的存取周期;
- 响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间;通常包括: C P U {\rm CPU} CPU时间(运行一个程序所花费的时间)、等待时间(用于磁盘访问、存储器访问、 I / O {\rm I/O} I/O操作、操作系统开销等的时间);
- 主频和 C P U {\rm CPU} CPU时钟周期
- C P U {\rm CPU} CPU时钟周期:通常为节拍脉冲或 T {\rm T} T周期,即主频的倒数,是 C P U {\rm CPU} CPU中最小的时间单位,执行指令的每个动作至少需要 1 1 1个时钟周期;
- 主频( C P U {\rm CPU} CPU时钟频率):机器内部主时钟的频率,同一型号的计算机,主频越高,完成指令的一个执行步骤所用时间越短,执行指令的速度越快,常用 C P U {\rm CPU} CPU的主频有: 1.8 G H z 、 2.4 G H z 、 2.8 G H z {\rm 1.8GHz、2.4GHz、2.8GHz} 1.8GHz、2.4GHz、2.8GHz;
- C P U {\rm CPU} CPU时钟周期= 1 / 1/ 1/主频,主频通常以赫兹 ( H z ) ({\rm Hz}) (Hz)为单位, 1 H z {\rm 1Hz} 1Hz表示每秒 1 1 1次;
- C P I ( C l o c k c y c l e P e r I n s t r u c t i o n ) {\rm CPI(Clock\ cycle\ Per\ Instruction)} CPI(Clock cycle Per Instruction):即执行一条指令所需的时钟周期数,对于一个程序或一台机器来说, C P I {\rm CPI} CPI指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,此时 C P I {\rm CPI} CPI是一个平均值;
- C P U {\rm CPU} CPU执行时间
- C P U {\rm CPU} CPU执行时间:指运行一个程序所花费的时间;
- C P U {\rm CPU} CPU执行时间= C P U {\rm CPU} CPU时钟周期数/主频=(指令条数 × C P I \times{\rm CPI} ×CPI)/主频;
- C P U {\rm CPU} CPU的性能( C P U {\rm CPU} CPU执行时间)取决于三个要素:一是主频(时钟频率),二是每条指令执行所用的时钟周期数 ( C P I ) ({\rm CPI}) (CPI),三是指令条数;
- M I P S ( M i l l i o n I n s t r u c t i o n s P e r S e c o n d ) {\rm MIPS(Million\ Instructions\ Per\ Second)} MIPS(Million Instructions Per Second):即每秒执行多少百万条指令;
- M I P S {\rm MIPS} MIPS=指令条数/(执行时间 × 1 0 6 \times10^6 ×106)=主频/( C P I × 1 0 6 {\rm CPI\times10^6} CPI×106);
- 不同机器的 C P I {\rm CPI} CPI和时钟周期不同,同一条指令在不同机器上所用的时间也不同;
- M F L O P S 、 G F L O P S 、 T F L O P S 、 P F L O P S 、 E F L O P S 、 Z F L O P S {\rm MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS、ZFLOPS} MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS、ZFLOPS;
- M F L O P S ( M e g a F l o a t i n g − p o i n t O p e r a t i o n s P e r S e c o n d ) {\rm MFLOPS(Mega\ Floating-point\ Operations\ Per\ Second)} MFLOPS(Mega Floating−point Operations Per Second):每秒执行多少百万次浮点运算,计算如下: M F L O P S {\rm MFLOPS} MFLOPS=浮点操作次数/(执行时间 × 1 0 6 \times10^6 ×106);
- G F L O P S ( G i g a F l o a t i n g − p o i n t O p e r a t i o n s P e r S e c o n d ) {\rm GFLOPS(Giga\ Floating-point\ Operations\ Per\ Second)} GFLOPS(Giga Floating−point Operations Per Second):每秒执行多少十亿次浮点运算,计算如下: G F L O P S {\rm GFLOPS} GFLOPS=浮点操作次数/(执行时间 × 1 0 9 \times10^9 ×109);
- T F L O P S ( T e r a F l o a t i n g − p o i n t O p e r a t i o n s P e r S e c o n d ) {\rm TFLOPS(Tera\ Floating-point\ Operations\ Per\ Second)} TFLOPS(Tera Floating−point Operations Per Second):每秒执行多少万亿次浮点运算,计算如下: T F L O P S {\rm TFLOPS} TFLOPS=浮点操作次数/(执行时间 × 1 0 12 \times10^{12} ×1012);
- P F L O P S {\rm PFLOPS} PFLOPS=浮点操作次数/(执行时间 × 1 0 15 \times10^{15} ×1015), E F L O P S {\rm EFLOPS} EFLOPS=浮点操作次数/(执行时间 × 1 0 18 \times10^{18} ×1018), Z F L O P S {\rm ZFLOPS} ZFLOPS=浮点操作次数/(执行时间 × 1 0 21 \times10^{21} ×1021);
- 在描述存储容量、文件大小时, K 、 M 、 G 、 T {\rm K、M、G、T} K、M、G、T通常用 2 2 2的幂次表示,如: 1 K b = 2 10 b 1{\rm Kb=2^{10}b} 1Kb=210b;在描述速率、频率等时, k 、 M 、 G 、 T {\rm k、M、G、T} k、M、G、T通常用 10 10 10的幂次表示,如: 1 k b / s = 1 0 3 b / s {\rm 1kb/s=10^3b/s} 1kb/s=103b/s;
- 吞吐量和响应时间
3.2 几个常用的专业术语
- 系列机:具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列;
- 兼容:指计算机软件或硬件的通用性,即使用或运行在某个型号的计算机系统中的硬件/软件也能应用于另一个型号的计算机系统时,称这两台计算机在硬件或软件上存在兼容性;
- 软件可移植性:指把使用在某个系列计算机中软件直接或进行很少的修改就能运行在另一个系列计算机中的可能性;
- 固件:将程序固定在 R O M {\rm ROM} ROM中组成的部件称为固件,固件是一种具有软件特性的硬件,固件的性能指标介于硬件与软件之间,吸收了软/硬件各自的优点,其执行速度快于软件,灵活性优于硬件,是软/硬件结合的产物;