计算机组成原理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中组成的部件称为固件,固件是一种具有软件特性的硬件,固件的性能指标介于硬件与软件之间,吸收了软/硬件各自的优点,其执行速度快于软件,灵活性优于硬件,是软/硬件结合的产物;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LVS、HAProxy

集群:将很多个机器组织到一起,作为一个整体对外提供服务。集群在扩展性、性能方面都可以做到很灵活。集群的分类:负载均衡集群:Load Balance。高可用集群:High Available。高性能集群:High Performance Com…

酷开系统覆盖尽可能多的用户,助力酷开科技走在数字化营销前面

用户画像可看作企业应用大数据的根基,是定向广告投放与个性化推荐的前置条件,为数据驱动运营奠定了基础。酷开系统家庭激活终端超过6000万,针对全量用户进行分析,覆盖尽可能多的用户,为提升用户画像准确率提供了很好的…

GWO-CNN-BiLSTM多输入回归预测|灰狼群算法优化的卷积-双向长短期神经网络|Matlab

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&…

谷歌翻译示例

概述 项目需要,使用谷歌翻译,前提是得翻墙。 1、获取所有语言和其对应编码如下所示: {auto: 检测语言,sq: 阿尔巴尼亚语,ar: 阿拉伯语,am: 阿姆哈拉语,as: 阿萨姆语,az: 阿塞拜疆语,ee: 埃维语,ay: 艾马拉语,ga: 爱尔兰语,et: 爱沙尼亚语,or…

主站设备通过Modbus转Profinet网关与湿度传感器通讯配置

Modbus转Profinet网关(XD-MDPN100)可以实现不同协议设备通讯,有些现场需要实时监测环境参数,但大由于当时环境仪表设备不能达到直连效果,通过Modbus转Profinet网关,湿度传感器的数据可以被准确、可靠地传输…

三十个中文AI对话网站推荐

目录 写在前面 一、kimi 二、WeexAI 三、Cursor 四、智谱清言 五、讯飞星火 六、通义千问 七、文心一言 八、混元 九、豆包AI 十、其它 写在前面 总的来说,现在国内能用到的大模型类产品分国产和套壳两种。对于中文任务,这些大模型功能都大同…

文献学习-25-综合学习和适应性教学:用于病理性胶质瘤分级的多模态知识蒸馏

Comprehensive learning and adaptive teaching: Distilling multi-modal knowledge for pathological glioma grading Authors: Xiaohan Xing , Meilu Zhu , Zhen Chen , Yixuan Yuan Source: Medical Image Analysis 91 (2024) 102990 Key words: 知识蒸馏、模态缺失、胶质瘤…

C++ vector 动态 向量/数组

文章目录 【 1. vector 的声明与初始化 】1.1 vector 的声明1.2 vector 的初始化1.2.1 构造一个空的 vector1.2.2 指定数量初值的方式初始化 vector1.2.3 迭代器的方式初始化1.2.4 构造一个相同的 vector 【 2. vector 的相关操作 】2.1 插入元素2.1.1 在vector的末尾插入新元素…

ios 之 netty版本swiftNio(socket创建)

SwiftNio 简介 用于高性能协议服务器和客户端的事件驱动、无阻塞的网络应用程序框架。 SwiftNIO是一个跨平台异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 这就像Netty,但是为Swift写的。 Xcode引入swiftNio 在实…

【Linux】常见命令

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 常用命令 1. ls2. pwd3. cd4. touch5. cat6. mkdir7. rm8. cp9. mv10. tail11. vim12.…

idea使用docker将Java项目生成镜像并使用

1:开启docker 远程访问 使用 vim 编辑docker服务配置文件 vim /lib/systemd/system/docker.service [Service] Typenotify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not suppor…

2024-04-02 在使用QtRemoteObject 过程中遇到的问题记录

前言 QtRemoteObject 的使用分为静态和动态使用,静态使用需要定义rep文件,相当于通信协议,保证源端和节点端类型的统一。 这些可以参考这两文章: https://zhuanlan.zhihu.com/p/36501814 https://zhuanlan.zhihu.com/p/3710817…

校园圈子系统-论坛,跑腿,地图找伴,二手市场,语音交友,APP小程序H5三端源码交付,支持二开!

2024年最新版推荐一个论坛社区系统 /社区论坛小程序/商城论坛小程序/源码。 带热门,带算法推荐 ,低成本上线的,论坛社区小程序源码强大售后,持续更新 功能:小程序授权登陆,支持app双端,小程序,…

qt5-入门-自定义委托-简单例子

参考: Qt 自定义委托_w3cschool https://www.w3cschool.cn/learnroadqt/ov8h1j4z.html C GUI Programming with Qt 4, Second Edition 本地环境: win10专业版,64位,Qt 5.12 理论知识 Qt的model/view架构中,view只是…

FastAPI Web框架教程 第14章 部署

14-1 在Linux上安装Python 【环境】 腾讯云服务器 Centos 8 【安装方式】 源码编译安装 安装步骤: 第1步:更新yum源 cd /etc/yum.repos.d/ sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-* sed -i s|#baseurlhttp://mirror.centos.…

RESTful的优点

优点 1.通过url对资源定位,语义清晰; 2.通过HTTP谓词表示不同的操作,接口自描述; 3.可以对GET、PUT、DELETE请求重试(幂等的); 4.可以对GET请求做缓存; 5.通过HTTP状态码反映服务器端…

【数据结构】AVL 树

文章目录 1. AVL 树的概念2. AVL 树节点的定义3. AVL 树的插入4. AVL 树的旋转5. AVL 树的验证6. AVL 树的删除7. AVL 树的性能 前面对 map / multimap / set / multiset 进行了简单的介绍【C】map & set,在其文档介绍中发现,这几个容器有个共同点是…

Java面试必问题24:线程池的拒绝策略有哪些 synchronized 和 lock 的区别 (重点)

以上列出的是Java线程池中常见的拒绝策略,具体可以根据实际情况选择合适的拒绝策略,也可以自定义实现RejectedExecutionHandler接口来定义自己的拒绝策略。默认的拒绝策略是AbortPolicy,即直接抛出异常。 最简回答:线程池的拒绝策…

6000000IOPS!FASS×kunpeng920全新突破

实测数据详见下文 网络环境 前端和后端网均采用100GE网络,管理网采用1Gbps以太网。 前端网和后端网通过不同网段隔离,与管理网物理隔离。 软硬件配置 存储端配置: 客户端配置: 软件配置: 存储集群配置: …

EasyExcel 复杂表头的导出(动态表头和静态表头)

问题:如图,1部分的表头是动态的根据日期变化,2部分是数据库对应的字段,静态不变的; 解决方案:如果不看1的部分,2部分内容可以根据实体类注解的方式导出,那么我们是不是可以先将动态表…