计算机组成原理(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),并共享主存储器。

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

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

相关文章

数字孪生低代码平台盘点(一):厂家介绍

特别说明:本文根据网上资料搜集整理而成,排名不分先后,配图是为了更好地阅读体验,并非表明该图为该平台所生产。如有错误之处,请在评论区提出。 一、优锘ChartBuilder 优锘ChartBuilder是一款基于Web的数据可视化工具…

【Docker】初学者 Docker 基础操作指南:从拉取镜像到运行、停止、删除容器

在现代软件开发和部署中,容器化技术已经成为一种常见的方式,它能够提供一种轻量级、可移植和可扩展的应用程序打包和部署解决方案。Docker 是目前最流行的容器化平台之一,它提供了一整套工具和技术,使得容器的创建、运行和管理变得…

Github 2024-02-24 开源项目日报Top10

根据Github Trendings的统计,今日(2024-02-24统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目5TypeScript项目2C项目1Rust项目1JavaScript项目1HTML项目1Jupyter Notebook项目1 Python - 100天…

华为配置WLAN AC和AP之间VPN穿越示例

配置WLAN AC和AP之间VPN穿越示例 组网图形 图1 配置WLAN AC和AP之间VPN穿越示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 企业用户接入WLAN网络,以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时,不影响…

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习四(leetcode真题剖析)

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习四 01.解数独02.单词搜索03.黄金矿工04.不同路径 III 01.解数独 题目链接:https://leetcode.cn/problems/sudoku-solver/ 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&am…

Kubernetes Prometheus 系列|Prometheus介绍和使用|Prometheus+Grafana集成

目录 第1章Prometheus 入门1.1 Prometheus 的特点1.1.1 易于管理1.1.2 监控服务的内部运行状态1.1.3 强大的数据模型1.1.4 强大的查询语言 PromQL1.1.5 高效1.1.6 可扩展1.1.7 易于集成1.1.8 可视化1.1.9 开放性 1.2 Prometheus 的架构1.2.1 Prometheus 生态圈组件1.2.2 架构理…

LangChain原理学习笔记

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

有趣且重要的JS知识合集(19)前端实现图片的本地上传/截取/导出

input[file]太丑了,又不想去改button样式,那就自己实现一个上传按钮的div,然后点击此按钮时,去触发file上传的事件, 以下就是 原生js实现图片前端上传 并且按照最佳宽高比例展示图片,然后可以自定义截取图片&#xff0…

Unity中URP实现水效果(水的深度)

文章目录 前言一、搭建预备场景1、新建一个面片,使其倾斜一个角度,来模拟水底和岸边的效果2、随便创建几个物体,作为与水面接触的物体3、再新建一个面片,作为水面 二、开始编写水体的Shader效果1、新建一个URP基础Shader2、把水体…

redis GEO 类型原理及命令详解

目录 前言 一、GeoHash 的编码方法 二、Redis 操作GEO类型 前言 我们有一个需求是用户搜索附近的店铺,就是所谓的位置信息服务(Location-Based Service,LBS)的应用。这样的相关服务我们每天都在接触,用滴滴打车&am…

2.23通过platform总线驱动框架编写LED灯的驱动,编写应用程序测试

驱动代码 #include <linux/init.h> #include <linux/module.h> #include <linux/of_gpio.h> #include <linux/gpio.h> #include <linux/platform_device.h> #include <linux/mod_devicetable.h>#define LED_ON _IOW(l, 1, int) #define L…

nginx的功能以及运用(编译、平滑升级、提高服务器设置、location alias 等)

nginx与apache的对比 nginx优点 nginx中INPUT OUTPUT模型 零拷贝技术 原理&#xff1a;减少内核空间和用户空间的拷贝次数&#xff0c;增加INPUT OUTPUT的效率 网络I/O 模型 同步&#xff0c;异步 &#xff1a; 消息反馈机制 阻塞和非阻塞 阻塞型I/O模型&#xff1a;不利于…

第3.3章:StarRocks数据导入——Stream Load

一、概述 Stream Load是StarRocks最为核心的导入方式&#xff0c;用户通过发送HTTP请求将本地文件或数据流导入至StarRocks中&#xff0c;其本身不依赖其他组件。 Stream Load支持csv和json两种数据文件格式&#xff0c;适用于数据文件数量较少且单个文件的大小不超过10GB 的场…

[yolov9]使用python部署yolov9的onnx模型

【框架地址】 https://github.com/WongKinYiu/yolov9 【yolov9简介】 在目标检测领域&#xff0c;YOLOv9 实现了一代更比一代强&#xff0c;利用新架构和方法让传统卷积在参数利用率方面胜过了深度卷积。 继 2023 年 1 月 正式发布一年多以后&#xff0c;YOLOv9 终于来了&a…

基于Java SSM框架实现高校失物招领管理平台系统项目【项目源码】

基于java的SSM框架实现高校失物招领管理平台系统演示 B/S结构 在B/S的结构中&#xff0c;学生可以在任何可以上网的地方访问和使用系统网站的功能&#xff0c;没有地域和时间等方面的限制&#xff0c;B/S结构是把程序完整放置到计算机网络的服务器上&#xff0c;通过计算机互联…

module ‘json‘ has no attribute ‘dumps‘

如果在使用Python的json模块时遇到AttributeError: module json has no attribute dumps错误&#xff0c;通常是因为在Python环境中json模块不支持dumps方法。这种情况可能是因为Python的json模块被重命名或修改过导致的。 解决方法可以尝试以下几种&#xff1a; 1.检查Pytho…

SpringBoot:自定义starter

点击查看&#xff1a;LearnSpringBoot08starter 点击查看&#xff1a;LearnSpringBoot08starterTest 点击查看更多的SpringBoot教程 一、主要流程 1. 先创建空的project 2. 打开空的project 结构 图选中model 点击 3. 创建 model&#xff08;Maven&#xff09;启动器 提…

【C语言】内存操作,内存函数篇---memcpy,memmove,memset和memcmp内存函数的使用和模拟实现【图文详解】

欢迎来CILMY23的博客喔&#xff0c;本篇为​【C语言】内存操作&#xff0c;内存函数篇---memcpy&#xff0c;memmove&#xff0c;memset和memcmp内存函数的使用和模拟实现【图文详解】&#xff0c;图文讲解四种内存函数&#xff0c;带大家更深刻理解C语言中内存函数的操作&…

Jmeter基础(3) 发起一次请求

目录 Jmeter 一次请求添加线程组添加HTTP请求添加监听器 Jmeter 一次请求 用Jmeter进行一次请求的过程&#xff0c;需要几个步骤呢&#xff1f; 1、添加线程组2、添加HTTP请求3、添加监听器&#xff0c;查看结果树 现在就打开jmeter看下如何创建一个请求吧 添加线程组 用来…

自定义股票池策略周报告---收益1.8,回撤0.7,提供实盘设置

综合交易模型已经交易了1个月了目前收益10&#xff0c;回测0.8&#xff0c;策略追求稳稳的幸福&#xff0c;细水流长&#xff0c;回测年化20&#xff0c;最大回撤8 链接自定义股票池策略周报告---收益1.8&#xff0c;回撤0.7&#xff0c;提供实盘设置 (qq.com) 实盘稳定运行2…