目录

一、冯·诺依曼结构与哈佛结构

(一)冯·诺依曼结构

(二)哈佛架构

二、ARM存储模式

(一)大端模式

(二)小端模式

(三)混合模式

三、CISC 与 RISC

(一)指令集特点

(二)硬件结构

(三)性能表现

(四)应用场景

四、流水线技术

(一)基本原理

(二)优点

(三)缺点

(四)应用领域


一、冯·诺依曼结构与哈佛结构

        冯·诺依曼结构哈佛结构是计算机体系结构中的两种重要类型,以下从其基本定义特点应用场景等方面进行介绍:

(一)冯·诺依曼结构

1、定义

        也称为普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令和数据都存储在同一存储器中,并且通过同一组总线进行访问

2、特点

(1)指令和数据共享存储器

        程序和数据存放在相同的存储空间,可按地址访问,数据和指令在形式上无差别,指令可像数据一样被修改。

(2)分时复用总线

        同一时刻只能进行取指令或数据读写操作,通过分时复用方式共享数据总线和地址总线,限制了数据传输带宽。

(3)易于实现

        结构简单,设计和实现成本较低,通用性强,适用于多种类型的计算任务。

3、应用场景

        广泛应用于早期的计算机系统以及一些通用型计算机中,如个人计算机、服务器等。

        例如,x86 架构的计算机大多采用冯诺依曼结构,能很好地满足一般用户的多样化计算需求,包括办公、娱乐、编程等各种任务。

(二)哈佛架构

1、定义

        是一种将程序指令存储和数据存储分开的存储器结构,有独立的程序存储器和数据存储器,分别有各自的地址总线数据总线

2、特点

(1)指令和数据分开存储

        程序存储器和数据存储器相互独立,可同时进行指令读取和数据读写操作,提高了数据处理效率。
(2)独立的总线

        具有独立的程序总线和数据总线,使指令和数据能并行传输,增加了数据传输带宽,适合高速数据处理。

(3)提高指令执行效率

        由于取指令和取数据可同时进行,能更高效地执行指令,尤其适用于实时性要求高的任务

3、应用场景

        常用于一些对实时性和处理速度要求较高的系统中,如数字信号处理器(DSP)微控制器(MCU)以及一些专用的嵌入式系统。

        例如,在音频、视频处理设备以及工业控制领域的嵌入式系统中,哈佛结构能快速处理大量数据,满足实时处理的要求。

二、ARM存储模式

        ARM 处理器具有多种存储模式,以适应不同的应用场景和数据处理需求,主要包括大端模式小端模式混合模式,以下是具体介绍:

(一)大端模式

1、数据存储方式

        数据的高位字节存于低地址,低位字节存于高地址。

        例如,对于 32 位整数0x12345678,在大端模式下,0x12存于内存低地址,接着依次是0x34、0x56、0x78存于更高地址,就像按从左到右(高位在前)的顺序存储。

2、特点

        符合人类正常思维习惯,先看到数据高位部分。

        在处理文本、网络协议等以字节为单位且有明确高低位顺序的数据时,大端模式更方便,因为可以按顺序读取和处理字节,无需额外转换。

3、应用场景

        常用于一些对数据存储格式有严格规范的场景,如网络协议栈、文件系统等。在网络传输中,数据通常以大端模式进行打包和传输,以确保不同设备和平台之间的数据一致性。

(二)小端模式

1、数据存储方式

        与大端模式相反,数据的低位字节存于低地址,高位字节存于高地址。

        对于0x12345678,在小端模式下,0x78存于内存低地址,接着是0x56、0x34、0x12存于更高地址,如同从右到左(低位在前)存储。

2、特点

        计算机硬件按字节读取内存时,从小地址开始先读取到数据低位部分,无需额外转换操作,能提高数据处理效率,尤其在处理整数等基本数据类型时,CPU 可直接按字节读取和组合数据,无需调整字节顺序。

3、应用场景

        在大多数微处理器和微控制器中,小端模式是默认存储模式,因为它更符合硬件的自然处理方式,能减少数据处理中的额外开销,提高系统性能。

        许多嵌入式系统和实时操作系统也常采用小端模式,以充分利用硬件性能,快速处理数据。

(三)混合模式

1、数据存储方式

        允许在同一系统或程序中同时使用大端模式和小端模式,根据具体数据类型、数据结构或应用需求灵活选择存储方式

2、特点

        具有较高灵活性,可根据不同数据特性选择最合适存储模式,以优化存储和访问效率

        但管理和维护数据存储格式的复杂性增加,需要开发者明确区分不同数据的存储模式,避免数据混淆和错误。

3、应用场景

        在一些复杂的应用场景中,如同时处理多种不同格式数据 (如既有网络数据又有本地存储的整数数据) 的系统,或者需要与不同端模式设备进行交互的应用中,混合模式可提供更灵活的解决方案,使系统适应多种数据存储和传输要求

三、CISC 与 RISC

        CISC(复杂指令集计算机)和 RISC(精简指令集计算机)是两种不同的计算机指令集架构,以下从指令集特点硬件结构性能等方面对它们进行介绍:

(一)指令集特点

1、CISC

(1)指令数量多

        包含大量不同功能的指令,指令长度可变,格式多样。例如,既有简单的加法指令,也有复杂的字符串处理指令等。

(2)指令功能复杂

        一条指令可以完成多种操作,如在一条指令中实现内存访问、算术运算和逻辑运算等。

(3)寻址方式丰富

        支持多种寻址方式,如直接寻址、间接寻址、变址寻址等,这使得指令能够灵活地访问内存中的数据。

2、RISC

(1)指令数量少

        只包含一些最基本、常用的指令,指令长度通常固定,格式相对简单。例如,主要包括加法、减法、加载、存储等简单指令。

(2)指令功能简单

        每条指令通常只完成一个基本操作,如一条指令只进行一次加法运算或一次内存加载操作。

(3)寻址方式简单

        一般采用较少的寻址方式,通常以寄存器寻址为主,减少了指令执行时的复杂性。

(二)硬件结构

1、CISC

(1)硬件复杂

        由于指令功能复杂,需要更多的硬件电路来实现指令的译码和执行,因此 CPU 内部结构复杂,包含多种专用的硬件单元,如乘法器、除法器等。

(2)指令执行单元多样

        为了支持不同类型的指令,有多个不同功能的指令执行单元,这些单元的设计和控制较为复杂。

2、RISC

(1)硬件简单

        指令简单使得硬件设计相对容易,CPU 内部结构较为规整,通常采用流水线技术,提高指令执行效率。

(2)强调寄存器使用

        具有较多的通用寄存器,数据处理主要在寄存器之间进行,减少了对内存的访问,提高了数据处理速度。

(三)性能表现

1、CISC

(1)程序代码紧凑

        对于一些复杂的任务,由于一条指令可以完成较多工作,因此编写的程序代码相对较短,占用的内存空间较小。

(2)执行效率不均衡

        对于简单指令,执行速度可能较慢,因为硬件需要花费时间来译码和执行复杂的指令。而对于复杂任务,可能只需要较少的指令就能完成,执行效率较高

2、RISC

(1)指令执行速度快

        由于指令简单且长度固定,指令的译码和执行过程相对简单,能够在一个时钟周期内完成一条指令的执行,因此指令执行速度快。

(2)程序代码较长

        因为每条指令功能单一,完成相同的任务可能需要更多的指令,所以程序代码相对较长,占用的内存空间较大。

(四)应用场景

1、CISC

(1)通用计算机

        适用于需要处理多种不同类型任务的通用计算机系统,如个人计算机、服务器等。

        这些系统需要运行各种不同的软件,包括操作系统、办公软件、数据库管理系统等,CISC 的复杂指令集能满足这些软件对各种功能的需求。

(2)早期计算机系统

        在计算机发展的早期,由于硬件成本较高,人们希望通过复杂的指令集来减少程序代码的长度,提高计算机的性能。因此,早期的计算机大多采用 CISC 架构。

2、RISC

(1)嵌入式系统

        在嵌入式系统中,如手机、平板电脑、智能家电等,对芯片的功耗、成本和实时性要求较高。RISC 架构的简单硬件结构使得芯片能够在较低的功耗下运行,并且能够快速响应外部事件,满足嵌入式系统的要求。

(2)高性能计算

        在一些高性能计算领域,如超级计算机、图形处理单元(GPU)等,也采用 RISC 架构。通过大量的简单指令并行执行,可以实现很高的计算性能。

四、流水线技术

        流水线技术是一种将指令执行过程分解为多个阶段并让多个指令在不同阶段同时执行的技术,以提高计算机系统的指令执行效率和性能。以下从原理特点应用等方面进行介绍:

(一)基本原理

        把指令执行过程划分为若干个相对独立的阶段,如取指令指令译码取操作数执行指令写回结果等。每个阶段由专门的硬件单元来完成,就像工厂生产线上的不同工序。

        当一条指令进入流水线后,会依次经过各个阶段,在每个时钟周期,各阶段同时处理不同指令的不同部分。

        例如,在第一个时钟周期,第一条指令进行取指令操作;第二个时钟周期,第一条指令进入指令译码阶段,同时第二条指令开始取指令操作,以此类推,实现多条指令的重叠执行。

(二)优点

1、提高指令执行效率

        多条指令在流水线中同时处于不同的执行阶段,大大提高了单位时间内执行指令的数量从而提高了整个系统的处理能力。

        例如,若没有流水线技术,执行一条指令需要 5 个时钟周期,那么执行 5 条指令就需要 25 个时钟周期;而采用流水线技术,在理想情况下,5 条指令只需 9 个时钟周期(假设流水线有 5 个阶段)。

2、简化硬件设计

        流水线技术将复杂的指令执行过程分解为多个简单的阶段,每个阶段的硬件设计相对简单,易于实现和优化。

        同时,由于各阶段可以并行工作,也便于采用大规模集成电路技术实现,提高了硬件的可靠性和稳定性。

3、提高系统的吞吐率

        系统能够持续不断地处理指令,就像流水一样源源不断,从而提高了系统的整体性能和响应速度,能够更好地满足实时性要求较高的应用场景。

(三)缺点

1、数据相关问题

        如果相邻指令之间存在数据依赖关系,例如后一条指令需要使用前一条指令的执行结果,那么可能会导致流水线阻塞。因为后一条指令在相关数据未准备好之前,不能进入相应的执行阶段,从而影响流水线的效率。

2、指令相关问题

        当程序中存在条件转移指令时,由于在指令执行到转移指令时才能确定是否转移以及转移的目标地址,这就可能导致流水线中的后续指令被错误地预取和执行

        一旦条件转移的结果与之前的预测不符,就需要清空流水线,重新取指令,从而造成流水线的停顿和性能损失。

3、硬件资源冲突

        如果多个指令同时需要使用同一硬件资源,如多个指令同时需要访问内存或使用乘法器等,就会发生资源冲突,导致某些指令需要等待资源可用,进而影响流水线的连续性。

(四)应用领域

1、CPU 设计

        几乎所有现代的微处理器都采用了流水线技术,如英特尔、AMD 的 x86 架构处理器,以及 ARM 架构处理器等。

        通过不断优化流水线的深度和结构,提高了 CPU 的性能和运行频率,使其能够同时处理多个任务和复杂的计算。

2、数字信号处理(DSP)

        在音频、视频处理,以及通信系统中的数字信号处理等领域,流水线技术被广泛应用于提高信号处理的速度和实时性。

        例如,在音频编码和解码过程中,通过流水线技术可以快速地对音频数据进行采样、量化、编码等操作。

3、图形处理单元(GPU)

        GPU 在处理图形渲染、图像识别等任务时,也采用流水线技术来提高处理效率

        例如,在图形渲染过程中,通过流水线技术可以依次完成顶点处理、光栅化、纹理映射、颜色计算等多个阶段的操作,从而快速生成高质量的图像。

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

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

相关文章

CSS 预处理器 Sass

目录 Sass 一、Sass 是什么? 二、核心功能详解 1. 变量(Variables) 2. 嵌套(Nesting) 3. 混合宏(Mixins) 4. 继承(Inheritance) 5. 运算(Operations&…

信息收集新利器:SSearch Chrome 插件来了

SSearch 下载地址 SSearch 😣用途 每次谷歌语法搜索时还得自己写,我想省事一点,弄了一个插件,先加了几个常用的语法,点击后会跳转到对应搜索页面,也可以直接在搜索框微调 后续也会加些其他语法 &#…

Docker搭建SFTP

在这个教程中,我们将通过一个简单的例子来展示如何使用 Docker 和 atmoz/sftp 镜像设置一个基本的 SFTP 服务。这个服务将允许用户通过 SFTP 安全地访问和管理文件。我们将配置一个名为 ops 的用户,其密码为 123456,并限定用户只能访问特定的…

正态分布习题集 · 答案与解析篇

正态分布习题集 答案与解析篇 与题目篇编号一致,如有其他解题思路,欢迎在评论区交流。 1. 基础定义与性质 1.1 密度函数 X ∼ N ( μ , σ 2 ) X \sim N(\mu,\sigma^2) X∼N(μ,σ2) 的 PDF: [ f(x) = \frac{1}{\sigma\sqrt{2\pi}} \exp\left(-\frac{(x-\mu)2}{2\sigma2}\…

Java学习手册:SQL 优化技巧

一、SQL 查询优化 选择合适的索引列 :索引可以显著提高查询速度,但需要选择合适的列来创建索引。通常,对于频繁作为查询条件的列、连接操作的列以及排序或分组操作的列,应该考虑创建索引。例如,在一个订单表中&#xf…

(02)Redis 的订阅发布Pub/Sub

我们为了自己实现一个MQ功能,就要深入底层挖掘现有开源产品的实现过程。 Redis 发布订阅底层结构解析 Redis 不存储消息,仅作为“实时中转”;只有订阅者在线时才能收到消息;消息是广播给所有订阅此频道的客户端。 1. 核心数据结…

使用Docker一键安装SigLens:简单快捷的日志分析解决方案

在当今复杂的IT环境中,高效的日志管理和分析变得越来越重要。SigLens作为一款强大的开源日志分析工具,为开发者和运维人员提供了直观、高效的日志处理体验。本文将介绍如何使用Docker快速安装SigLens,让您在几分钟内就能开始进行日志分析。 为什么选择Docker安装SigLens? Do…

C#与西门子PLC通信:S7NetPlus和HslCommunication使用指南

西门子S7协议是用来和PLC进行通讯的一个协议,默认端口是102,数据会保存在一个个DB块中,比较经典的用法是一个DB块专门用来读取,一个用来写入。 DB(数据块) {块号}.DBX/DBD/DBW{字节地址}.{位偏移} 1、数据…

【中间件】brpc_基础_remote_task_queue

文章目录 remote task queue1 简介2 核心功能2.1 任务提交与分发2.2 无锁或低锁设计2.3 与 bthread 深度集成2.4 流量控制与背压 3 关键实现机制3.1 数据结构3.2 任务提交接口3.3 任务窃取(Work Stealing)3.4 同步与唤醒 4 性能优化5 典型应用场景6 代码…

C语言实现数据结构:堆排序和二叉树_链式

一.堆的应用 1.堆排序 void test01() {int arr[] { 17,20,10,13,19,15 };int n sizeof(arr) / sizeof(arr[0]);HP p;HPInit(&p);for (int i 0; i < n; i){HPPush(&p, arr[i]);}int i 0;while (!HPEmpty(&p)){arr[i] HPTop(&p);HPPop(&p);}for (i…

C和指针——预处理

预处理是编译前的过程&#xff0c;主要对define&#xff0c;include以及一些编译器定义的内容进行替换 #define的本质就是替换 1、例子 #define FOREVER for(;;) 2、例子 #define TEMPD "1231231231\ 123123123" \\如果太长了&#xff0c;可以用\换行 3、例子——可…

C++ set和map

目录 一、关联式容器 1.1 键值对 1.1.1 概念 1.1.2 pair 1.2 树形结构的关联式容器 二、set 2.1 set 的介绍 2.2 set 的使用 2.2.1 set 的构造 2.2.2 set 的迭代器 2.2.3 set 的容量操作 2.2.4 set 的修改操作 2.2.5 set 的查找操作 三、multiset 3.1 multiset …

「Mac畅玩AIGC与多模态07」开发篇03 - 开发第一个 Agent 插件调用应用

一、概述 本篇介绍如何在 macOS 环境下,基于 Dify 平台自带的网页爬虫插件工具,开发一个可以提取网页内容并作答的 Agent 应用。通过使用内置插件,无需自定义开发,即可实现基本的网页信息提取与智能体回答整合。 二、环境准备 1. 确认本地部署环境 确保以下环境已搭建并…

cline或业务系统集成n8n的工作流(MCP Server Trigger、Call n8n Workflow Tool node)

1.成果展示 1.1n8n的主工作流 1.2n8n的子工作流 1.3cline集成效果 2.实操过程 2.1Call n8n Workflow Tool node节点 Call n8n Workflow Tool节点是一个工具&#xff0c;它允许代理运行另一个n8n工作流并获取其输出数据。 在此页面上&#xff0c;您将找到“调用n8n工作流工具…

深入了解Linux系统—— 环境变量

命令行参数 我们知道&#xff0c;我们使用的指令它本质上也是一个程序&#xff0c;我们要执行这个指令&#xff0c;输入指令名然后回车即可执行&#xff1b;但是对于指令带选项&#xff0c;又是如何实现的呢&#xff1f; 问题&#xff1a;main函数有没有参数&#xff1f; 在我…

pip安装包时网络不畅,替换国内PyPI镜像源

1、PyPI 镜像源 1.1、定义 PyPI 镜像源是对 Python Package Index&#xff08;PyPI&#xff09;官方仓库的复制。 PyPI 是 Python 社区中最大的软件包仓库&#xff0c;存储着大量的 Python 包&#xff0c;供开发者们下载和使用。 然而&#xff0c;由于 PyPI 服务器位于国外&a…

贪心算法解决会议安排问题

文章目录 前言 一、什么是贪心算法&#xff1f; 贪心算法的基本概念&#xff1a;贪心算法并不从整体最优上加以考虑&#xff0c;所做的选择只是在某种意义上的局部最优选择。 二、会议安排题目 1.题目理解 2.思路剖析 总结 前言 本文将主要介绍贪心算法需要注意的地方以…

从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 4 |IMU 死算与校正:惯性导航在资源受限环境的落地

Part 4 |IMU 死算与校正:惯性导航在资源受限环境的落地 本章聚焦 ESP32-S3 平台上如何利用 LSM6DS3 IMU 实现 死算(Dead Reckoning),并结合 零速更新(ZUPT) 或 磁力计辅助 进行 漂移校正,最终通过 EKF/UKF 融合提升定位精度。 一、传感器简介与校准 LSM6DS3 主要参数 加速…

力扣1128题解

记录 2525.5.4 题目&#xff1a; 思路&#xff1a; 先将dominoes[i]的二元全部变为前大后小的形式&#xff0c;再遍历该数组&#xff0c;用数组来记录。 代码&#xff1a; class Solution {public int numEquivDominoPairs(int[][] dominoes) {int [] [] cnt new int [10…

with的用法

Python SQLite 操作详解 本文档详细解释了使用 Python 操作 SQLite 数据库时涉及的关键概念和代码实践&#xff0c;包括 with 语句、事务处理、批量插入以及相关的优化建议。 一、with 语句的作用&#xff08;自动关门的保险库&#xff09; with sqlite3.connect(city_1301.d…