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

目录

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.hqwc.cn/news/487724.html

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

相关文章

自定义Chrome的浏览器开发者工具DevTools界面的字体和样式

Chrome浏览器开发者工具默认的字体太小,想要修改但没有相关设置。 外观——字体可以自定义字体,但大小不可以调整。 github上有人给出了方法 整理为中文教程: 1.打开浏览器开发者工具,点开设置——实验,勾上红框设…

深度学习中数据的转换

原始(文本、音频、图像、视频、传感器等)数据被转化成结构化且适合机器学习算法或深度学习模型使用的格式。 原始数据转化为结构化且适合机器学习和深度学习模型使用的格式,通常需要经历以下类型的预处理和转换: 文本数据&#xf…

vue video 多个视频切换后视频不显示的解决方法

先说一下我这边的需求是视频需要轮播&#xff0c;一个人员有多个视频&#xff0c;左右轮播是轮播某个人员下的视频&#xff0c;上下切换是切换人员。 vue 代码 <el-carouselindicator-position"none"ref"carousel"arrow"always":interval&qu…

文心一言4.0 VS ChatGPT4.0 图片生成能力大比拼!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

spring boot3登录开发-3(账密登录逻辑实现)

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途。 目录 前置条件 内容简介 用户登录逻辑实现 创建交互对象 1.创建用户登录DTO 2.创建用户登录VO 创建自定义登录业务异…

unity ui界面优化

优化一个比较复杂的界面&#xff0c;里面有多个rt和组件。 在初次打开这个界面的时候会发生1s多的卡顿&#xff0c;还是非常严重的。 分析 通过profiler分析 1.打开界面时卡顿。 分析&#xff1a;除了update和dotween相关逻辑&#xff0c;主要在于打开时的lua function调用…

Day20_网络编程(软件结构,网络编程三要素,UDP网络编程,TCP网络编程)

文章目录 Day20 网络编程学习目标1 软件结构2 网络编程三要素2.1 IP地址和域名1、IP地址2、域名3、InetAddress类 2.2 端口号2.3 网络通信协议1、OSI参考模型和TCP/IP参考模型2、UDP协议3、TCP协议 2.4 Socket编程 3 UDP网络编程3.1 DatagramSocket和DatagramPacket1、Datagram…

【Java程序设计】【C00294】基于Springboot的车辆充电桩管理系统(有论文)

基于Springboot的车辆充电桩管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的车辆充电桩管理系统 本系统前台功能模块分为&#xff1a;首页功能和用户后台管理 后台功能模块分为&#xff1a;管理员功能和…

【前端】Vue-Cli 快速创建Vue3项目及一些项目初始化相关

文章目录 前言1. 安装1.1 安装 Vue 脚手架1.2 创建项目1.3 本地运行项目 2. 推送到仓库2.1 远程仓库准备2.2 关于gitIgnore文件2.3 通过git推送至远程仓库 3. 补充与总结3.1 npm 版本是否要升级到最新&#xff1f;3.2 这个项目建议的各种版本3.3 一般前端gitIgnore文件3.4 推荐…

UnityWebGL UGUI中文不显示问题

这是Unity编辑中效果 打包成webgl后的效果&#xff08;中文没有显示出来&#xff09; 解决方法 将Unity默认使用的Arial替换成中文字体。 1.找到电脑字体库&#xff08;win电脑字体库路径&#xff1a;C:\Windows\Fonts &#xff1b;Mac电脑搜索“字体册”&#xff09;。 2.将…

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

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

Jetpack Compose 架构层

点击查看&#xff1a;Jetpack Compose 架构层 官网 本页面简要介绍了组成 Jetpack Compose 的架构层&#xff0c;以及这种设计所依据的核心原则。 Jetpack Compose 不是一个单体式项目&#xff1b;它由一些模块构建而成&#xff0c;这些模块组合在一起&#xff0c;构成了一个完…