计算机组成原理1:计算机系统概述

此系列介绍计算机的组成原理,参考书:《计算机组成原理考研复习指导》(王道论坛组编)。



1.计算机发展史
1.1 计算机发展
  1. 计算机变化

    • 第一代计算机 ( 1946 − 1957 ) (1946-1957) (19461957):电子管时代。
      • 逻辑元件采用电子管;
      • 使用机器语言进行编程;
      • 主存用延迟线或磁鼓存储信息,容量极小;
      • 体积庞大,成本高;
      • 运算速度较低,一般只有几千次到几万次每秒;
    • 第二代计算机 ( 1958 − 1964 ) (1958-1964) (19581964):晶体管时代。
      • 逻辑元件采用晶体管;
      • 运算速度提高到几万次到几十万次每秒;
      • 主存使用磁心存储器;
      • 软件开始使用高级语言,如: F O R T R A N {\rm FORTRAN} FORTRAN
    • 第三代计算机 ( 1965 − 1971 ) (1965-1971) (19651971):中小规模集成电路时代。
      • 逻辑元件采用中小规模集成电路;
      • 半导体存储器开始取代磁心存储器;
      • 高级语言发展迅速,操作系统进一步发展,开始有分时操作系统;
    • 第四代计算机 ( 1972 − ) (1972-) (1972):超大规模集成电路时代。
      • 逻辑元件采用大规模集成电路和超大规模集成电路,产生微处理器;
      • 诸如并行、流水线、高速缓存和虚拟存储器等概念用在此代计算机中;
  2. 计算机元件发展

    • 摩尔定律。

      当价格不变时,集成电路上可容纳的晶体管数目,约每隔 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} 1KB4KB16KB64KB256KB1MB4MB16MB64MB256MB1GB

    • 微处理器。

      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大部件组成;
    • 指令和数据以同等地位存储在存储器中,并可按地址寻址;
    • 指令和数据均用二进制代码表示;
    • 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址;
    • 指令在存储器内按顺序存放;
    • 早期冯·诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据;

    典型的冯·诺依曼计算机结构:

    1

现代计算机组织结构:

现代计算机以存储器为中心,使 I / O {\rm I/O} I/O操作尽可能地绕过 C P U {\rm CPU} CPU,直接在 I / O {\rm I/O} I/O设备和存储器间完成,以提高系统的整体运行效率,现代计算机结构如下:

2

计算机功能部件:

  • 输入设备

    • 输入设备主要功能:将程序和数据以机器所能识别和接受的信息形式输入计算机;

    • 常用的基本的输入设备:键盘,鼠标,扫描仪,摄像机等;

  • 输出设备

    • 输出设备的任务:将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出;

    • 常用的基本的输出设备:显示器,打印机;

  • 存储器

    • 存储器是计算机的存储部件,用来存放程序和数据;

    • 存储器分为主存储器(亦称内存储器)和辅助存储器(亦称外存储器);

    • C P U {\rm CPU} CPU能够直接访问的存储器是主存储器,辅助存储器用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存储器后,才能为 C P U {\rm CPU} CPU所访问;

    • 主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式;

    • 主存储器的基本组成如下图所示:

      3

    • 主存储器说明:

      存储体存放二进制信息,地址寄存器 ( 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 UnitALU);运算器包含若干通用寄存器,用于暂存操作数和中间结果,如:累加器 ( 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和主存储器构成主机,除主机外其他硬件装置统称为外部设备,即外设;

    • 冯·诺依曼结构模型机:

      4

    • 冯·诺依曼结构模型机说明:

      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 计算机工作过程和计算机系统多级层次结构

计算机的工作过程:

  • 计算机工作过程:

    1. 把程序和数据装入主存储器;
    2. 将源程序转换成可执行文件;
    3. 从可执行文件的首地址开始逐条执行指令;
  • 源程序到可执行文件实例说明

    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,执行过程如下图所示:

    5

    • 预处理阶段:预处理器 ( 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取出第一条指令,经过译码、执行步骤等,控制计算机各功能部件协同运行,完成这条指令的功能,并计算下一条指令的地址;用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止;

    取数指令实例:

    1. 取指令: P C → M A R → M → M D R → I R {\rm PC→MAR→M→MDR→IR} PCMARMMDRIR.

      根据 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中;

    2. 分析指令: O P ( I R ) → C U {\rm OP(IR)→CU} OP(IR)CU.

      指令译码并送出控制信号。控制器根据 I R {\rm IR} IR中指令的操作码,生成相应的控制信号,送到不同的执行部件,此例 I R {\rm IR} IR中是取数指令,读控制信号被送到总线的控制线上;

    3. 执行指令: 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)MARMMDRACC.

      取数操作。将 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中;

计算机系统的多级层次结构:

  • 计算机系统层次结构如下图所示:

    6

    • 第一级:微程序机器层,是一个硬件层,由机器硬件直接执行微指令;
    • 第二级:传统机器语言层,是一个机器层,由微程序解释机器指令系统;
    • 第三级:操作系统层,由操作系统程序实现;
    • 第四级:汇编语言层,为用户提供一种符号化的语言,借此可编写汇编语言源程序,此层由汇编程序支持和执行;
    • 第五级:高级语言层,是面向用户的,为方便用户编写应用程序而设置的,此层由各种高级编译程序支持和执行;
  • 把没有配备软件的纯硬件系统称为"裸机",第三到五层称为虚拟机,即软件实现的机器;

  • 虚拟机只对该层的观察者存在,对于某层的观察者来说,只能通过该层次的语言来了解和使用计算机,不必关心下层是如何工作的;

  • 层次间关系密切,下层是上层的基础,上层是下层的扩展;

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.8GHz2.4GHz2.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} MFLOPSGFLOPSTFLOPSPFLOPSEFLOPSZFLOPS
      • 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 Floatingpoint 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 Floatingpoint 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 Floatingpoint 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} KMGT通常用 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} kMGT通常用 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中组成的部件称为固件,固件是一种具有软件特性的硬件,固件的性能指标介于硬件与软件之间,吸收了软/硬件各自的优点,其执行速度快于软件,灵活性优于硬件,是软/硬件结合的产物;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/785678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java封装最佳实践:打造高内聚、低耦合的优雅代码~

​ 个人主页:秋风起,再归来~ 文章专栏:javaSE的修炼之路 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 1、封装 1.1 封装的概念 面向对象程序三大…

文献学习-24-用于少发罕见病诊断的动态特征拼接

Dynamic feature splicing for few-shot rare disease diagnosis Authors: Yuanyuan Chen, Xiaoqing Guo , Yongsheng Pan , Yong Xia , Yixuan Yuan Source: Medical Image Analysis 90 (2023) 102959 Keywords: 少样本学习 罕见病诊断 transformer 特征拼接 通道相似度 Ab…

FreeRTOS 任务挂起和恢复API函数

FreeRTOS 任务挂起和恢复API函数使用 挂起的作用就是当我们需要暂停某任务时候,等过一段时间在运行,这个时候要是使用删除和重建的方法就会当时任务进行时候的变量保存的值。当需要将这个任务停止运行一段时间的将这个任务挂起,当重新进行运…

华为云亮相KubeCon EU 2024,以持续开源创新开启智能时代

3月21日,在巴黎举办的云原生顶级峰会KubeCon EU 2024上 ,华为云首席架构师顾炯炯在“Cloud Native x AI:以持续开源创新开启智能时代”的主题演讲中指出,云原生和AI技术的融合,是推动产业深刻变革的关键所在。华为云将…

进度管理与成本管理

1.裁剪考虑因素 2. 定义计划是把WBS分解的活动在分解成更小的活动。 3. 4.资源平衡会改变关键路径 5.资源平滑只能在自由和浮动时间延迟 6. 7. 8.成本管理,论文要写不足与解决过程 9.成本的类型 10. 11.规划XX管理的时候,输入一般有章程和项目…

C语言动态内存讲解+通讯录2.0

文章目录 前文malloc和freecallocrealloc枚举常量的简单说明及使用 通讯录2.0动态开辟通讯录,满了就扩容保存数据和载入数据 通讯录2.0演示推荐好用的软件 前文 本文主要介绍动态开辟的几个函数,以及改进之前的通讯录。 我们局部变量等是在栈区上开辟空间的,而我们动态开辟的空…

新model开发记录

模型使用 -- 用blender导出为 fbx ,修改渲染方式(点击模型->Materials->Extract Materials(将材质从fbx中 单独提取出来了)->Materials 选择 Shader -> SimpleURPToonLitExample 点开脸的材质,勾选第一条) 解决角色…

力扣-python-故障键盘

题解: from collections import dequeclass Solution:def finalString(self, s: str) -> str:# 创建一个双端队列用于存储字符q deque()# 定义一个标志位,用于标记当前字符应该添加到队列的哪一端head False# 遍历输入的字符串s的每一个字符for ch…

C++刷题篇——05静态扫描

一、题目 二、解题思路 注意:注意理解题目,缓存的前提是先扫描一次 1、使用两个map,两个map的key相同,map1:key为文件标识,value为文件出现的次数;map2:key为文件标识,va…

CTF wed安全(攻防世界)练习题

一、Training-WWW-Robots 进入网站如图: 翻译:在这个小小的挑战训练中,你将学习Robots exclusion standard。网络爬虫使用robots.txt文件来检查它们是否被允许抓取和索引您的网站或只是其中的一部分。 有时这些文件会暴露目录结构&#xff0c…

【数据结构】优先级队列——堆

🧧🧧🧧🧧🧧个人主页🎈🎈🎈🎈🎈 🧧🧧🧧🧧🧧数据结构专栏🎈🎈🎈&…

C++11:右值引用

C11:右值引用 右值与左值右值引用语法右值引用底层移动语义引用折叠完美转发 传统的C语法中就有引用的语法,而C11中新增了的右值引用语法特性,所以从现在开始我们之前学习的引用就叫做左值引用。无论左值引用还是右值引用,都是给对…

VR全景赋能智慧农业,打造沉浸式种植体验平台

随着人口的增长,传统农业也正在面临着不一样的挑战,加上很多人对农业的固有印象,很少有年轻人愿意下到农田里,那么该如何提高产量、降低成本以及引导年轻人深刻感受现代农业成为了急需解决的问题。 随着城市化脚步的推进&#xff…

数码管时钟--LABVIEW编程

一、程序的前面板 1.获取系统时钟,年月日,时分秒,用14个数码管显示。 2.闹钟设定小时和分钟。 二、程序的后面板 三、程序运行图 四、程序源码 源程序可以在百度网盘自行下载,地址链接见下方。 链接:https://pan.b…

LeetCode-54. 螺旋矩阵【数组 矩阵 模拟】

LeetCode-54. 螺旋矩阵【数组 矩阵 模拟】 题目描述:解题思路一:定义上下左右四个边界,进行模拟。解题思路二:5行 Python zip函数图一乐解题思路三:0 题目描述: 给你一个 m 行 n 列的矩阵 matrix &#xf…

SketchUp Pro中文---3D建模与设计领域的专业选手

SketchUp Pro是一款功能强大的3D建模软件,广泛应用于建筑、城市规划、室内设计等领域。它拥有用户友好的界面和丰富的建模工具,支持实时查看、高 级扩展以及智能提示等功能,使得建模过程更加直观、灵活和高效。SketchUp Pro还支持自定义插件&…

1033 To Fill or Not to Fill

是否有能到达的站点 无,输出当前距离(最后一个到达站点距离满油箱状态下行走距离)有 有价格更低的站点 如果油量不足以到达新站点,加刚好到达该站点的油量(只加可到达范围内最便宜的油)有价格更高的站点 在…

论文速览 | IEEE TCI, 2022 | 单光子级非视距成像:估计强度与优化重建

注1:本文系"计算成像最新论文速览"系列之一,致力于简洁清晰地介绍、解读非视距成像领域最新的顶会/顶刊论文(包括但不限于 Nature/Science及其子刊; CVPR, ICCV, ECCV, SIGGRAPH, TPAMI; Light‑Science & Applications, Optica 等)。 本次介绍的论文是:<2…

Dimitra:基于区块链、AI 等前沿技术重塑传统农业

根据 2023 年联合国粮食及农业组织&#xff08;FAO&#xff09;、国际农业发展基金&#xff08;IFAD&#xff09;等组织联合发布的《世界粮食安全和营养状况》报告显示&#xff0c;目前全球约有 7.35 亿饥饿人口&#xff0c;远高于 2019 年的 6.13 亿&#xff0c;这意味着农业仍…

为什么跟着高手还是亏损?fpmarkets10秒解答

各位投资者&#xff0c;不知道你们有没有遇见这样的情况&#xff1f;不管是别人能够持续盈利的技术指标&#xff0c;还是业内知名的行业专家&#xff0c;只要是我们这些普通的投资者一旦使用持续盈利的技术指标&#xff0c;或者跟随专家顾问的信号同时在同一个方向建仓&#xf…