计算机组成原理(12)----多处理系统

news2024/11/19 8:32:28

目录

1.SISD(单指令流单数据流)

(1)特性

(2)硬件组成

2.SIMD(单指令流多数据流)

(1)特性

(2)硬件组成

3.MISD(多指令流单数据流)

4.MIMD(多指令流多数据流)

(1)特性

(2)多处理器系统

(3)多计算机系统

5.向量处理机(SIMD思想的进阶应用)

(1)特性

(2)硬件组成

6.多核处理器(multi-core)


1.SISD(单指令流单数据流)

(1)特性

各个指令只能并发、不能并行,每条指令只能处理一两个数据

机组中学习的单核CPU就是SISD,SI(单指令流):表示CPU同一时间段内只能处理一个指令序列,SD(单数据流):每个指令只能处理1~2个数据。

另外,单核处理器在一个时间段内只能处理一个进程或一个线程的指令序列,各个进程的指令序列只能并发执行,不能并行执行。

所以SISD不是数据级并行技术,因为同一时刻内只能处理1~2个数据,不能并行处理多个数据。

(2)硬件组成

由一个处理器与一个主存储器组成,在SISD系统中,若想进一步提高指令执行的效率,可以采用指令流水线,为了实现指令流水线,就需要设置多个功能部件,采用多模块交叉存储器(提升存储器的读写效率)。

若不了解多模块交叉存储器,可以看看这篇博客:http://t.csdnimg.cn/d8B6E

2.SIMD(单指令流多数据流)

(1)特性

各指令序列只能并发、不能并行(每个时刻只能有一条指令执行),但每条指令可同时处理很多个具有相同特征的数据。

如下图所示,CU将控制信号发给各个执行部件,每个执行部件都有各自的局部存储器,数据寄存器组以及地址寄存器组,这种系统可以对结构类似的大量数据进行相同处理。一条指令可以处理很多个数据。

例如:

1.某些显卡常采用SIMD,图像处理时,常对每个像素点进行完全一样的渲染(比如加个粉红色滤镜)

2.可用于优化for循环中对数组元素的重复处理

SIMD是一种数据级并行技术,指令的执行不是并行的,但是数据的处理是并行进行的。

(2)硬件组成

SIMD系统由以下部分组成:

1.一个指令控制部件(CU):负责翻译指令,并且根据指令发出相应控制信号。

2.多个处理单元/执行单元(如ALU):根据控制部件发出的信号,执行相应的操作。

3.多个局部存储器:一个执行单元会有自己的局部存储器,数据寄存器组,地址寄存器组(各个执行单元处理的数据存放的位置不同,因此需要各自独立的地址寄存器记录当前执行指令的存放位置)。

注:各个执行单元执行的是同一条指令,但是处理的是不同的数据。

4.一个主存储器

3.MISD(多指令流单数据流)

多条指令并行执行,处理同一个数据。现实中不存在这种计算机。因为只需要一条指令就可以处理这个数据,不必使用多条指令处理同一个数据。

4.MIMD(多指令流多数据流)

(1)特性

各指令序列并行执行,分别处理多个不同的数据。MIMD是一种 线程级并行(每个核可以运行各自的线程,多个线程可以并行运行)、甚至是线程级以上并行技术(进程级并行)。Intel i5,i7处理器使用的都是MIMD技术。

MIMD进一步分类可分为多处理器系统与多计算机系统:

(2)多处理器系统

•特性:

多处理系统的全称是共享内存多处理器(Share Memory multiProcessor,SMP)。各处理器之间,可以通过LOAD/STORE指令,访问同一个主存储器,可通过主存相互传送数据。

如下图所示,所有核心共享同一个物理地址,同时也共享最低一级的Cache(更高级别的Cache专属于某个特定的核)。所以核之间想相互传递数据,就可以通过最低一级的Cache进行,也可以通过主存储器进行。

•硬件组成:

对于多处理器系统,一台计算机内,包含多个处理器与一个主存储器,多个处理器共享单一的物理地址空间。

(3)多计算机系统

多计算机系统也称为消息传递系统,其与多处理系统的区别在于,各计算机之间的主存是相互独立的,不能通过LOAD/STORE指令直接访问对方的主存储器,只能通过“消息传递”相互传送数据。因此计算机之间的地址空间是相互独立的。

多个计算机组合后,可以协同工作。例如,将某一工作拆分为独立的子任务,分别交给计算机执行,那么这些子任务就可以并行地被处理,也就是指令流可以并行执行。在执行各自指令时,各个计算机处理的数据也各不相同,所以数据流也是并行的。

所以多计算机系统也可以实现MIMD(多指令流多数据流)技术。

•硬件组成:

多计算机系统由多台计算机组成,因此拥有多个处理器与多个主存储器,并且每台计算机拥有各自的私有存储器,物理地址空间相互独立

5.向量处理机(SIMD思想的进阶应用)

(1)特性

向量处理机是用来专门处理向量的,一条指令的处理对象是“向量”。

在标量处理器中,要完成n维指令的相加,就需要进行n次的加法指令,而在向量向量处理器中,由于其处理的单元就是“向量”,所以只需要进行一次加法指令。

擅长对向量型数据并行计算、浮点数运算,常被用于超级计算机中,处理科学研究中巨大运算量。

例如:向量处理机的LOAD指令,可以将一个向量取到向量寄存器中;加法指令,可以实现两个向量相加应用于:向量计算、大量浮点数计算,空气动力学、核物理学、巨型矩阵计算问题。很多超级计算机如中国的“银河”就是向量处理器。

由于数据量大,通常主存储器需要支持多端口同时读取,这就能满足多个向量处理器大量的读取需求。同时采用多模块交叉存储器,能够提高数据的存取效率。

(2)硬件组成

由多个处理单元以及多组"向量寄存器"组成。主存储器应采用“多个端口同时读取”的交叉多模块存储器,主存储器大小限定了机器的解题规模,因此要有大容量的、集中式的主存储器。

6.多核处理器(multi-core)

多核处理器就是多处理器,只是命名角度不同而已。

多处理器系统,即共享内存多处理器强调的是各个处理器(核心)可以共享同一个主存。

并且多个处理器共享单一的地址空间,都可以通过LOAD、STORE指令访问共享的主存储器。

多核处理器强调的是,一个CPU芯片中包含多个处理器,即多个核(core),因此通常也称为 片级多处理器(Chip-LevelMultiProcessing,CMP)。意思是:一块芯片上集成了多个处理器,所有核共享一个LLC(Last-LevelCache,最低一级的Cache),并共享主存储器。

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

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

相关文章

【Java EE初阶二十四】servlet的深入理解

1. Servlet API 的学习 下面主要学习这三个类,就已经可以完成 Servlet 的大部分开发了; 1. Httpservlet 2. HttpServletRequest 3. HttpServletResponse 2. Httpservlet的学习 2.1 Httpservlet在tomcat的工作原理 写一个 Servlet 代码,往往都…

C++最佳实践之编译篇

C最佳实践之工程编译 在大型c/c工程开发中,往往会涉及多级CMakeLists.txt的调用,并且调用方式错综复杂,主要有以下两种方式: 1. 子目录中的CMakeList.txt独立生成目标,不作为主目标生成过程的依赖关系(比…

Windows+Yolo3-darknet训练自己数据集并测试

WindowsYolo3-darknet训练自己的数据集并测试 一、首要条件 Windows 7下配置好VS2015OPENCV3.4.2YOLO3CUDA10.0CUDNN7.5生成darknet.exe。具体配置可参考我的博客:https://blog.csdn.net/wszswllnzn_/article/details/100760477 二.制作数据集 1、方法1 使用软件la…

uView组件使用

u-collapse 折叠面板 https://www.uviewui.com/components/collapse.html?ivk_sa1024320u 如果是异步加载的数据,最开始的 u-collapse-item是默认高度,,第一次点开的时候,异步数据不能撑开高度 但是如果 u-collapse-item中有内…

BUGKU-WEB 备份是个好习惯

题目描述 题目截图如下: 进入场景看看: 解题思路 看源码看提示:备份是个好习惯扫描目录md5弱比较 相关工具 御剑md5解密:https://www.somd5.com/ 解题步骤 看到的这串字符,有点像md5? d41d8cd98…

X-Rhodamine maleimide ,ROX 马来酰亚胺,实验室常用的荧光染料

您好,欢迎来到新研之家 文章关键词:X-Rhodamine maleimide ,X-Rhodamine mal,ROX-maleimide,ROX 马来酰亚胺 一、基本信息 【产品简介】:ROX, also known as Rhodamine 101, is a product whose active …

linux0.11 源码阅读 head.s setup.s bootsect.s加载位置

从github上下载linux0.11源码 linux0.11源码 将0x10000处的代码往下复制到0开始的地址处。 移动后的内存布局如下 setup中存在gdt和idt的相关数据。此时需要用gdtr和idtr寄存器指向对应的数据。 实模式下,访问内存方式。最多访问1M内存。 分页模式下&…

STM32控制max30102读取血氧心率数据(keil5工程)

一、前言 MAX30102是一款由Maxim Integrated推出的低功耗、高精度的心率和血氧饱和度检测传感器模块,适用于可穿戴设备如智能手环、智能手表等健康管理类电子产品。 该传感器主要特性如下: (1)光学测量:MAX30102内置…

Java向ES库中插入数据报错:I/O reactor status: STOPPED

Java向ES库中插入数据报错:java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: STO 一、问题问题原因 二、解决思路 一、问题 在使用Java向ES库中插入数据时,第一次成功插入,第二次出现以下错误&#xff1a…

C++种pair的初始化及与unordered_map的区别

pair的初始化及与unordered_map的区别 概述pair初始化开发环境头文件示例运行结果 与unordered_map的区别 概述 本文旨在介绍pair初始化,同时简述pair与unordered_map的区别。 pair初始化 pair是一个模板类,可以存储两个类型的数据为一个对象。 开发…

【深度学习】SSD 神经网络:彻底改变目标检测

一、说明 Single Shot MultiBox Detector (SSD) 是一项关键创新,尤其是在物体检测领域。在 SSD 出现之前,对象检测主要通过两阶段过程执行,首先识别感兴趣的区域,然后将这些区域分类为对象类别。这种方法虽…

js数组操作大全

目录 创建数组: 访问和修改数组元素: 数组的遍历: 数组的操作: 数组的转换: 创建数组: 使用数组字面量:let arr []。使用new关键字和Array构造函数:let arr new Array()。 访问…

【更换yarn的位置】解决yarn和nodejs不在同一盘下产生的某些命令应用失败问题

具体问题我记得是command fail什么error,记不太清楚了,文章主要写了如何替换yarn路径,希望可以帮助到大家。

【算法与数据结构】链表、哈希表、栈和队列、二叉树(笔记二)

文章目录 四、链表理论五、哈希表理论五、栈和队列理论5.1 单调栈 六、二叉树理论6.1 树的定义6.2 二叉树的存储方式6.3 二叉树的遍历方式6.4 高度和深度 最近博主学习了算法与数据结构的一些视频,在这个文章做一些笔记和心得,本篇文章就写了一些基础算法…

10:部署Dashboard|部署Prometheus|HPA集群

部署Dashboard|部署Prometheus|HPA集群 Dashboard部署Dashboard上传镜像到私有仓库安装服务发布服务创建管理用户查看登录的Token信息 Prometheus步骤一:导入所有后续需要的镜像到私有镜像仓库(在master主机操作操作)步…

LangChain原理学习笔记

最新越发觉得AI的发展,对未来是一场革命,LangChain已经在工程设计上有了最佳实践,类似于AI时代的编程模型或编程框架,有点Spring框架的意思。之前在LangChain上也有些最佳实践,所以在这里分享记录下。 LangChain解决什…

计算机网络面经-TCP三次握手一文说清

目录 说一下TCP的三次握手? 为什么要三次握手?两次行不行?四次呢? 为什么建立连接是三次握手,关闭连接确是四次挥手呢? TCP四次挥手的过程? 如果已经建立了连接,但是客户端突然出…

编译GreatSQL with RocksDB引擎

GreatSQL里也能用上RocksDB引擎 1. 前言 RocksDB 是基于Facebook 开源的一种支持事务的、高度可压缩、高性能的MyRocks存储引擎,特别适用于高度压缩和大容量的数据。以下是一些关键特点: 高性能: LSM 树结构使得RocksDB在写入密集型负载下表现…

苹果分拣检测YOLOV8NANO

苹果分拣,可以检测成熟、切片、损坏、不成熟四种类型,YOLOV8NANO,训练得到PT模型,然后转换成ONNX,OPENCV的DNN调用,支持C,PYTHON 苹果分拣检测YOLOV8NANO,检测四种类型苹果

React18源码: React调度中的3种优先级类型和Lane的位运算

优先级类型 React内部对于优先级的管理,贯穿运作流程的4个阶段(从输入到输出),根据其功能的不同,可以分为3种类型: 1 )fiber优先级(LanePriority) 位于 react-reconciler包,也就是L…