总线结构、指令流和数据流 - 软考备战(六)
计算机体系结构及其组成(四)

参考资料:
【计算机基础】主存的编址与计算和串并联系统!-云社区-华为云
MTBF, MTTR, MTTF 三个概念的区别和对比 - 知乎
串联与并联系统可靠性计算对比:公式、区别与应用场景解析-51CTO软考-软考在线教育培训
详解软件可靠性核心指标MTTR MTBF MTTF可用性及失效率的概念与关系-开发者社区-阿里云
数据流图(DFD)入门指南:概念,绘制教程,实例详解 - ProcessOn知识社区
SISD、MIMD、SIMD、MISD计算机的体系结构的Flynn分类法 - 知乎
08-数据流计算机和归约机 - Dreamsrj - 博客园
目录
3. MTBF(Mean Time Between Failures)
典型五级指令流水线(IF / ID / EX / MEM / WB)
4.1 三态门
三态门是总线技术的基础,它解决了多个设备共享同一条总线时的信号冲突问题。
结构
三态门包括:输入端和输出端,还有控制端(使能端)。
当控制端有效时,输出端的状态取决于输入端(导通状态)。
当控制端无效时,输出端呈现高阻态(第三态),即相当于与总线物理断开。
作用
允许多个设备的输出端直接连接在同一条总线上。
通过控制信号,同一时刻只允许一个三态门处于工作状态(传送数据),其余三态门必须处于高阻态,从而避免信号短路或逻辑混乱。
总线有效信号
控制端有效,通常指控制端接收到激活信号(如高电平“1”或低电平“0”,视具体芯片而定),使三态门进入导通状态。
4.2 总线
概念

总线是计算机各部件之间传输信息的公共通信线路。
总线是一种共享型的数据传送设备。
总线特性
(1)物理特性——机械特性
总线上部件在物理连接时表现出的一些特性,如插头与插座的几何尺寸、形状、引脚个数及排列顺序等。
(2)功能特性
每一根信号线的功能:
- 地址总线用来表示地址码。
- 数据总线用来表示传输的数据。
- 控制总线表示总线上操作的命令、状态等。
(3)电气特性
每一根信号线上的信号方向及表示信号有效的电平范围。
- 主设备(如CPU)发出的信号称为输出信号(OUT);
- 送入主设备的信号称为输入信号(IN)。
通常数据信号和地址信号定义高电平为逻辑1、低电平为逻辑0,控制信号则没有俗成的约定,如WE表示低电平有效、Ready表示高电平有效。
不同总线高电平、低电平的电平范围也无统一的规定,通常与TTL是相符的。
(4)时间特性——逻辑特性
在总线操作过程中每一根信号线上信号什么时候有效,通过这种信号有效的时序关系约定,确保了总线操作的正确进行。
(为了提高计算机的可拓展性,以及部件及设备的通用性)
除了片内总线外,各个部件或设备都采用标准化的形式连接到总线上,并按标准化的方式实现总线上的信息传输。
而总线的这些标准化的连接形式及操作方式,统称为总线标准。
如ISA、PCI、USB总线标准等,相应的,采用这些标准的总线为ISA总线、PCI总线、USB总线等。
总线的分类
按数据传输方式分类

串行总线

只能进行单bit发送,比如USB,DATA硬盘,PCI-E,UART,I2P,RS232
优点:
- 一条传输线成本低廉;
- 广泛应用于长距离传输(抗干扰能力强);
- 应用于计算机内部时节省布线空间。
缺点:
- 在数据传输和接收时需要数据的拆卸和装配;
- 需要考虑串行并行换行问题。
并行总线

可以同时进行多bit发送,比如内存,PADA硬盘,PCI,STD,IEEE488
优点:
- 电路逻辑时序比较简单;
- 电路实现比较容易。
缺点:
- 信号线多,占用较多的布线空间;
- 远距离传输成本高;
- (传输频率高)并行信号线之间影响严重,无法持续提高传输频率。
按功能分类
片内总线
插件板内部各芯片之间的连接总线(如CPU与其周边芯片组之间的连接)
外总线(通信总线)
计算机系统与外部设备(如打印机、外存)或其他计算机系统之间的通信线路,如USB、串口。
系统总线

连接CPU、内存、I/O接口等主要部件的总线。

-数据总线 (DB):双向,传输数据,宽度决定一次数据传送量。
-地址总线 (AB):单向(CPU发向外),传输地址信息,宽度决定寻址范围。
-控制总线 (CB):传输控制信号(读/写、中断、总线请求等)。
|
系统总线 |
||
|
数据总线 |
地址总线 |
控制总线 |
|
DB(Date Bus) |
AB(Address Bus) |
CB(Control Bus) |
|
双向 |
单向 |
整体双向(单根单向) |
|
传输数据信息,操作数,指令 |
传输地址信息 |
传出:CPU发送控制信号 传入:主存(外设)接受,并反馈 |
|
位数(根数)与机器、存储字长有关 |
位数与设备个数、主存空间大小有关 |
与信号个数有关 |
注意:数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus),也统称为系统总线。
按时序控制分类
|
对比项 |
同步总线 |
异步总线 |
|
时钟 |
有公共统一时钟,所有设备按同一 CLK 工作idc-online.com |
无统一时钟,靠请求/应答握手控制 |
|
定时方式 |
同步定时:固定时钟周期、固定协议 |
异步定时:总线周期长度可变,随设备速度而变 |
|
控制信号 |
主要靠 CLK 和少量控制信号(读/写、片选等) |
需要明确的请求/应答(REQ/ACK)握手信号 |
|
速度 |
一般更高,无需反复握手,适合高速传输 |
相对较低,握手增加延迟,但更能适应不同速度设备 |
|
适应性 |
对设备速度一致性要求高,迁就最慢设备 |
可兼容快慢设备,各自按最佳速度运行 |
|
总线长度 |
较短,受时钟偏斜和传输延迟限制 |
可以较长,对时钟偏斜不敏感 |
|
复杂度 |
控制逻辑简单,协议规整 |
控制逻辑复杂,需要状态机管理握手过程 |
|
典型应用 |
CPU–主存总线、PCI/PCI-X、AGP、前端总线等 |
某些早期系统总线(ISA)、长距离通信总线、多速度设备混连的 I/O 总线 |
按总线结构(组织方式)分类

|
总线结构 |
含义(按结构分) |
主要特点 |
典型应用 |
|
单总线结构 |
整个系统只用一条系统总线连接 CPU、主存、所有 I/O 接口 |
结构简单、成本低,易扩展;但所有部件分时共享一条总线,易形成瓶颈,吞吐量受限 |
早期微型机、小型机 |
|
双总线结构 |
在单总线基础上,增加一条CPU–主存之间的专用存储总线,形成“存储总线 + I/O 总线” |
CPU–主存高速通道,减轻系统总线压力;但 I/O 与主存交换仍可能占用 CPU 或受限于结构 |
对性能要求更高的中、小型机 |
|
三总线结构 |
在双总线基础上再增加一条DMA 总线或 I/O 总线,常见为:内存总线 + I/O 总线 + DMA 总线 |
高速外设可通过 DMA 总线直接访存,提高 I/O 效率;结构更复杂、成本更高 |
大、中型机或高性能系统 |
单总线结构

CPU、主存、I/O设备都接在一条系统总线上,可以实现I/O设备与主存、I/O设备与CPU、I/O设备与I/O设备之间的信息交换
优点:
电路简单,成本低廉,便于接入设备。
缺点:
带宽低,载付重,多部件争抢唯一的总线;
不能支持并发传送操作,效率低下。
双总线结构

有两条总线一条主存总线用于CPU、主存和通道之间进行数据交换,一条I/O总线用于多个外部设备和通道进行数据交换
主存总线:支持猝发传送:送出一个地址收到多个地址的连续数据。
优点:
将低速度的I/O设备从单总线上分离出来,实现存储器总线和I/O总线分离。
缺点:
需要增加通道等的硬件设备。
三总线结构

通过(DMA总线,主存总线,I/O总线)三条独立的总线来构成信息通路。
优点:
- 提高了I/O设备的性能,较快响应;
- 提高系统吞吐量。
缺点:
三条总线不能同时工作,系统的工作效率较低。
四总线结构

桥接器:用于连接不同总线,具有数据缓冲、转换和控制功能。
越靠近CPU总线速度越快。
4.3 并行内总线VS并行外总线
1. 并行内总线(系统总线/局部总线)
这类总线就在主板上,计算机机箱内部,连接主板各部件(CPU、内存、扩展卡)的总线标准。
|
总线标准 |
并行/串行 |
特点 |
适用场景 |
|
PC总线 |
并行 |
8位数据线,速率低,结构简单。 |
早期PC (8086) |
|
ISA总线 |
并行 |
8/16位,支持DMA,是早期主流标准。 |
286/386时代,声卡/网卡 |
|
EISA总线 |
并行 |
32位,兼容ISA,支持突发传输。 |
服务器、工作站 |
|
PCI总线 |
并行 |
32/64位,支持即插即用、突发传输,曾统治PC界十多年。 |
显卡、网卡、声卡 |
|
AGP总线 |
并行 |
32位,点对点连接显卡,专用高带宽。 |
3D图形加速卡 |
|
IDE (PATA) |
并行 |
连接硬盘光驱,排线宽,抗干扰差。 |
旧式硬盘、光驱 |
注:现代计算机内部已基本淘汰并行总线,转为高速串行总线(如PCIe、SATA),以解决并行信号干扰和时钟同步问题。
2. 并行外总线(通信总线/接口)
这类总线通过线缆连接机箱外部的设备,指计算机机箱外部,连接主机与外部设备(打印机、硬盘盒等)的通信线缆标准。
|
总线标准 |
并行/串行 |
特点 |
适用场景 |
|
IEEE 1284 |
并行 |
也就是老式的“打印口”,数据线多,传输距离短。 |
老式打印机、扫描仪 |
|
SCSI |
并行 |
传输速率高,支持多设备连接,但线缆粗、成本高。 |
服务器硬盘、扫描仪 |
|
IEEE 488 |
并行 |
仪器仪表专用接口,可连接多台设备。 |
工业仪器、测量设备 |
注:并行外总线现已被串行总线全面取代。例如:
IEEE 1284 被 USB 取代。
SCSI 被 SAS (串行SCSI) 或 USB 取代。
4.4 总线仲裁
当多个主设备(如CPU、DMA控制器)同时申请总线使用权时,必须通过仲裁逻辑决定由谁优先使用。
集中式控制
仲裁逻辑集中在一个地方(如CPU或总线控制器)。
链式查询方式

所有设备串行连接,离仲裁器近的设备优先级高。
响应信号依次向下传递。
优点:结构简单,扩充容易。
缺点:
- 对电路故障敏感(一个设备坏了后面的全死);
- 优先级固定,远端设备可能“饥饿”。
计数器定时查询方式

仲裁器有一个计数器,从0开始计数,计数值与设备地址匹配的设备获得总线。
优点:优先级可变(改变计数起点),较灵活。
缺点:控制稍复杂,连线稍多。
独立请求方式

每个设备都有独立的请求线和响应线,仲裁器根据优先级算法裁决。
优点:响应速度最快,优先级算法最灵活(可固定、可轮转)。
缺点:连线最多,硬件最复杂。
分布式控制
仲裁逻辑分散在各个总线主设备中,设备间通过一定的协议竞争总线控制权。
4.5 可靠性
系统可靠性计算指标

1. MTTF(Mean Time To Failure)
含义:平均失效前时间,对不可修复产品而言,从开始工作到发生故障的平均时间。
对象:不可修产品(如灯泡、电阻、某些电子元器件)。
MTTF=∑T1/N
2. MTTR(Mean Time To Repair)
含义:平均修复时间,从故障发生到设备恢复到正常工作状态的平均时间。
对象:可修系统。
单位:小时(h)等。
MTTR=∑(T2+T3)/N
3. MTBF(Mean Time Between Failures)
含义:平均故障间隔时间,对可修复系统而言,两次故障之间的平均工作时间。
对象:可修系统(服务器、磁盘阵列、生产线设备等)。
单位:小时(h)等。
在工程近似中,粗略认为 MTBF ≈ MTTF
但严格说:对可修系统:MTBF = MTTF + MTTR。
MTBF=∑(T2+T3+T1)/N
(Availability)可用性
定义:系统在任一随机时刻需要使用时,处于可用状态的概率,也叫“可用度”。

在工程近似中,粗略认为 MTBF ≈ MTTF,则:

可靠性(Reliability)R(t)
定义:系统在规定条件下、规定时间内,完成规定功能的能力,通常用概率 R(t) 表示。
R(t):系统在 [0, t] 时间内不发生故障的概率。
若故障率 λ 恒定,则可靠性函数为:

可维护性(Maintainability)M(t)
定义:在规定条件下,采用规定的程序和资源进行维修时,在给定时间内完成维修的概率。
通常用 M(t) 表示:在时间 t 内修复完成的概率。
若修复时间服从指数分布,则可维护性函数为:

MTTR 越小,M(t) 上升越快,表示更容易修、更快修好,可维护性越好。
可维护性更多是设计特性:易诊断、易接近、模块化、标准化等。
三种系统
串联系统
串联系统是组成系统的所有单元中任一单元失效就会导致整个系统失效的系统。
把用电器各元件逐个顺次连接起来,接入电路就组成了串联电路。
假设串联系统中每个部分的可靠度依次为R1,R2,…Rn,如下所示。

则整个系统的可靠度为:R = R1 * R2 * … * Rn。
并联系统
并联系统指的是组成系统的所有单元都失效时才失效的系统。
假设并联系统中每个部分的可靠度依次为R1,R2,…Rn,如下所示。

则整个并联系统的可靠度R = 1 - (1 - R1) * (1 - R2) * … * (1-Rn)。
混合型系统
混合型系统就是既有串联系统,又有并联系统的系统,如下所示。

可靠度为:R * (1 - (1 - R) ^3^) * (1 - (1 - R) ^2^)
4.6 指令流水线技术
基本概念
指令流
机器执行的指令序列。
指令流水线
一条指令的执行过程可分解为若干阶段,每个阶段由相应的功能部件完成。
如果将各阶段视为相应的流水段,则指令的执行过程就构成了一条指令流水线。
提高并行性
时间并行
将任务分解为多个子阶段,各阶段在不同部件上并行执行 → 就是流水线技术。
空间并行
在同一处理机内设置多个执行相同任务的功能部件并行工作 → 超标量处理机。
典型五级指令流水线(IF / ID / EX / MEM / WB)

很多教材和文章都以经典五段式指令流水线为例。
|
阶段 |
缩写 |
主要工作 |
|
取指 |
IF |
从指令存储器 / Cache 中取出指令,更新 PCzhihu.com+1 |
|
译码 / 读寄存器 |
ID |
指令译码,产生控制信号,同时从寄存器堆读取源操作数zhihu.com+1 |
|
执行 / 计算地址 |
EX |
ALU 进行算术/逻辑运算,或计算访存地址zhihu.com+1 |
|
访存 |
MEM |
根据地址访问存储器(加载/存储)zhihu.com+1 |
|
写回 |
WB |
将结果写回寄存器堆zhihu.com+1 |
工作方式:

每个阶段由不同的硬件功能部件完成。
各阶段之间设置流水段寄存器,在时钟边沿把结果锁存并传给下一级。
理想情况下:每个时钟周期有一条指令进入流水线,有一条指令完成,CPI ≈ 1。
流水线的时空图表示
横轴:时间(时钟周期)
纵轴:流水段(功能部件)
用来直观描述多条指令在不同时间段占用不同流水段的情况。
图示
从第 5 周期开始,每个周期都有一条指令流出流水线,实现“准并行”执行。
对比非流水线方式
非流水
必须等一条指令完全结束后才能开始下一条,n 条指令要 n × 5 个周期。
流水线
大约 5 + (n − 1) 个周期即可完成 n 条指令。
流水线的性能指标:吞吐率、加速比、效率
以指令条数 n,流水线段数 k,时钟周期 ∆t 为例:
1. 流水线执行时间(近似)
流水线周期:取各段执行时间的最大值作为周期 ∆t:

n 条指令的执行时间(常用公式):
指令全部的执行时间 + (n - 1)x 流水线周期
2. 吞吐率 TP(ThroughPut)
单位时间内流水线完成的指令数。

最大吞吐率(当 n 很大):

即:每个周期流出一条指令。
3. 加速比 S(Speedup)
同一批任务,不用流水线时间 / 用流水线时间。

当 n >> k 时,S ≈ k,即理论最大加速比约为流水线段数。
4. 效率 η(Efficiency)
流水线设备实际工作时间占总运行时间的比例,即时空图上“工作区”面积与总面积之比。
简化情况(各段时间相等):

当 n 很大时,η → 1,表示流水线各段始终忙碌。
流水线冒险(Hazards)
流水线中,后续指令不能按预期正确执行而需要停顿的现象称为冒险。
常见三类:
1. 结构冒险(Structural Hazard)
多条指令在同一时刻争用同一硬件资源(如内存、寄存器堆、ALU)。
典型例子
指令和数据共享同一存储器,导致取指与访存冲突。
解决思路
资源重复设置:如指令 Cache 与数据 Cache 分离。
指令暂停一个周期,避免冲突。
2. 数据冒险(Data Hazard)
后续指令需要用到前面指令的结果,但结果尚未写回,导致数据依赖。
常见形式
- RAW(Read After Write):先写后读,最常见。
- WAR(Write After Read):先读后写。
- WAW(Write After Write):先写后写。
解决思路
- 阻塞(Stall):让依赖指令等待若干周期,直到结果写回。
- 转发 / 旁路(Forwarding/Bypassing):把 ALU 结果等直接“转发”给后续指令的 EX 段,而不必等 WB。
特殊情况
Load-Use 冒险(Load 指令后紧跟使用该数据的指令)往往仍需阻塞一个周期。
3. 控制冒险(Control Hazard)
遇到转移、分支、调用、中断等改变程序流的指令,PC 的下地址要在流水后期才能确定,导致已经取指的指令可能无效。
解决思路
- 简单阻塞:在分支结果确定前暂停取指,浪费多个周期。
- 分支预测:预测分支是否成功,提前取指对应路径;若预测错误则刷新流水线。
- 延迟分支(延迟槽):编译器将与分支无关的指令放到分支指令之后,无论是否跳转都会执行,减少浪费。
-
4.7 数据流
数据流是什么(三个视角)
1. 计算机系统视角(最常见)
在计算机系统中,数据流是指数据在各个组件(程序、模块、子系统等)之间传输和处理的过程:
数据经过一系列处理步骤,从一个组件传到下一个组件,直到输出给用户或保存到存储中。
本质:信息的传递和处理过程。
例子:
用户在网页表单输入 → 后台程序接收 → 校验 → 写库 → 返回结果,整个就是一条数据流。
传感器采集数据 → 传输到网关 → 流式处理引擎 → 写入数据仓库。
2. 大数据 / 流式计算视角
在大数据领域,数据流被看作:
由数据源持续生成、连续不断到达的数据序列,可以被实时摄取、处理和分析。
与“批量处理”相对:
批处理:按时间窗口攒一批再处理(如每天凌晨跑批)。
流式/实时处理:数据一来就处理,强调低延迟、实时洞察。
3. 通信 / 字节流视角(如 Java I/O)
在编程语言 I/O 中,数据流被定义为:
一组有序、有起点和终点的字节序列,包括输入流和输出流。
最初来自通信领域,表示传输中的数字编码信号序列。
Java / C# 等语言中的 InputStream / OutputStream 就是对这种“数据流”的抽象。
数据流的组成要素(核心模型)
可以从“数据流是一条什么样的河”来理解:

基本要素可以概括为:

数据源(Source)
业务系统、日志、传感器、移动 App、外部接口等。
传输通道 / 链路(Link / Channel)
数据从源到目的地经过的路径,网络、消息队列、API 接口等。
处理节点(Processing Node)
对数据做转换、过滤、聚合、计算等操作的程序或服务。
目的地 / 输出(Destination / Sink)
数据库、数据仓库、文件、报表系统、另一系统等。
控制信息与元数据
格式定义、Schema、路由规则、重试策略、监控指标等,保证数据流可控、可运维。
数据流的分类(不同维度)
1. 按方向分
类型
说明
例子
输入数据流
数据从外部进入系统
用户输入、传感器上传、外部文件导入
输出数据流
数据从系统输出到外部
报表导出、消息推送、写文件、写库后供外部读取
2. 按内容与形式分
业务数据流
订单、交易、用户行为等业务事件流。
日志 / 指标流
应用日志、访问日志、监控指标流。
多媒体流
音频、视频、图像流(实时音视频通话、直播)。
3. 按处理方式分(大数据视角)
实时数据流处理
数据到达即处理,延迟低,适合风控、实时推荐。
批处理数据流
先攒再处理,适合离线报表、历史分析。
微批 / 增量处理
介于实时与批之间,按小批次处理。
4. 按抽象层次分
物理数据流
设备、进程、网络之间实际传输的字节流。
逻辑数据流
在数据流图(DFD)中,表示信息在处理过程之间的流动,与具体实现无关。
数据流的主要特点(对比传统“静态数据”)
结合百科与大数据资料,可以总结为:
动态性与连续性
数据持续到达,像“河流”一样,而不是一次性静态文件。
数据流处理往往是“一次遍历”,数据到达时即处理。
有序性与时间相关性
数据通常按时间或顺序到达,时间戳是关键属性。
对很多流式计算来说,事件顺序非常重要(如交易流、日志流)。
高速度与大容量
数据产生速度快、体量大,需要高吞吐、可扩展的处理能力。
一次存取、有限存储
系统无法完整保存所有历史数据,通常只能处理一次或少量重放。
流式计算强调“有限存储、近似结果、快速响应”。
结构化 / 半结构化并存
可以是结构化(关系型记录)、半结构化(JSON、日志)、非结构化(音视频)。
数据流的应用场景
结合多篇资料,常见应用:
金融行业
实时交易流水、风控决策、反欺诈检测。
市场行情实时分析、交易信号生成。
物联网与工业互联网
传感器数据实时监控(温度、压力、振动等)。
预测性维护、设备异常告警。
电商与用户行为分析
用户浏览、点击、购买行为实时采集。
实时推荐、个性化营销、实时库存与价格调整。
运维与安全监控
日志集中采集与实时分析。
网络流量监控、安全事件实时告警。
医疗与车联网等
实时生命体征监测、远程诊断。
车辆轨迹、路况实时分析等。
-
数据流的表示方法——数据流图(DFD)
在软件工程中,常用数据流图(Data Flow Diagram, DFD)来可视化数据流。
基本元素

外部实体
数据的来源或目的地(用户、外部系统)。
加工/处理
对数据进行操作的处理过程。
数据存储
文件、数据库等持久化存储。
数据流
带箭头的线,表示数据在实体、加工和存储之间的流动。
作用:
帮助分析系统功能、梳理数据流程。
是需求分析、系统设计的重要工具。
数据流图分类
逻辑数据流图
侧重于描述系统“应该做什么”
主要表达业务和业务运作,强调数据处理逻辑,比如数据收集、数据跟信息的转换和信息报告。
而不涉及具体的物理实现,比如计算机配置、数据存储技术、信息传递方法等。
物理数据流图
更加具体,展示系统“如何实际运作”
包括硬件、软件组件及它们之间的物理连接。它使逻辑数据流图中描述的程序可以准确地实现已达到业务目标。
数据流图的分层结构
顶层数据流图
决定系统的范围,决定输入输出数据流。
它说明系统的边界,把整个系统的功能抽象为一个加工。
主要突出数据的源点和终点。
顶层DFD只有一张,表示整个系统与外部实体之间的关系,但并不深入到系统的内部。
在这一层中,通常只显示一个系统框和与之交互的外部实体,以及它们之间的主要数据流。

第0层数据流图
把基本的系统模型进行分解细化,形成第0层数据流图。
比如还是某线上购物系统,将系统内的主要功能分为用户登录管理,交易管理,订单管理等,这些功能下增加了购物车列表,订单表等多个数据存储。

第1层数据流图
对功能级(0层)数据流图中的系统功能进一步细化,比如将上述0层数据流图中的用户登录管理、交易管理等功能进行进一步分解,展开每个主要功能下的内部细节。

中间层次的多少一般视系统的复杂程度而定。例如,在0层的基础上,可以创建第0层数据流图,进一步展开系统的主要组成部分;再针对第1层中的主要过程,可以创建第2层数据流图,进一步展开每个主要过程的内部细节。
在这些层次中,系统被细分为更小的功能单元(即加工),并通过数据流相互连接。
底层数据流图
底层数据流图是指其加工不能再分解的数据流图。
其加工称为“原子加工”,即最基本的、不能再进行分解的加工过程。
在这一层中,展示了每个加工节点的详细数据流转情况。
4.8 计算机的分类
Flynn分类法——多倍性

(1)指令流:指机器执行的指令序列。
(2)数据流:指由指令流调用的数据序列,包括输入数据和中间结果,但不包括输出数据。
(3)多倍性:指在系统性能瓶颈部件上同时处于同一执行阶段的指令或数据的最大可能个数。
类型
全称
结构特征
特点
典型代表
SISD
单指令流单数据流
一个控制器,一个处理器,一个主存。
串行执行,传统冯·诺依曼结构。
单核CPU、早期PC
SIMD
单指令流多数据流
一个控制器,多个处理器,多个主存。
一条指令同时处理多组数据,适合向量运算。
阵列处理器、现代GPU、DSP
MISD
多指令流单数据流
多个控制器,一个处理器。
理论模型,实际应用极少。
容错计算机(极罕见)
MIMD
多指令流多数据流
多个控制器,多个处理器,多个主存。
并行处理,每个核执行不同指令处理不同数据。
多核CPU、分布式系统、集群
单指令流单数据流机器(SISD)

SISD机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行。
在某个时钟周期内,CPU只能处理一个数据流。
因此这种机器被称作单指令流单数据流机器。
早期的计算机都是SISD机器,如冯诺.依曼架构,如IBM PC机,早期的巨型机和许多8位的家用机等。
单指令流多数据流机器(SIMD)

SIMD是采用一个指令流处理多个数据流。
这类机器在数字信号处理、图像处理、以及多媒体信息处理等领域非常有效。
Intel处理器实现的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说我们现在用的单核计算机基本上都属于SIMD机器。
多指令流单数据流机器(MISD)

MISD是采用多个指令流来处理单个数据流。
由于实际情况中,采用多指令流处理多数据流才是更有效的方法,因此MISD只是作为理论模型出现,没有投入到实际应用之中。
多指令流多数据流机器(MIMD)

MIMD机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。
最新的多核计算平台就属于MIMD的范畴,例如Intel和AMD的双核处理器等都属于MIMD。
按照程序流程机制的分类
控制流计算机
传统的冯·诺依曼机。由程序计数器(PC)控制指令执行顺序,指令驱动数据。
数据流计算机
没有程序计数器,指令执行由数据可用性驱动(操作数一就绪,指令就立即执行)。
适合高度并行计算。
归约机
执行过程由需求驱动。
当某个计算结果需要时,才反向寻找并执行产生该结果的指令(类似函数式编程的惰性求值)。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)