【Linux学习】初始冯诺漫体系结构

文章目录

  • 认识冯诺依曼系统


认识冯诺依曼系统

什么是冯诺依曼体系结构?

冯诺依曼体系结构是一种将程序指令和数据以二进制形式存放在主存储器中,由中央处理器统一控制和执行的计算机系统结构。冯诺依曼体系结构实现了程序的可编程性和硬件与软件的分离,促进了计算机的发展。冯诺依曼体系结构由五个基本部件组成,分别是存储器、运算器、控制器、输入设备和输出设备。

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。这种结构特点是“程序存储,共享数据,顺序执行”,需要 CPU 从存储器取出指令和数据进行相应的计算。

主要特点有:

(1)单处理机结构,机器以运算器为中心;
(2)采用程序存储思想;
(3)指令和数据一样可以参与运算;
(4) 数据以二进制表示;
(5)将软件和硬件完全分离;
(6) 指令由操作码和操作数组成;
(7)指令顺序执行。

在这里插入图片描述

目前,我们所认识的计算机,都是有一个个的硬件组件组成

  • 输入设备(单元):包括键盘, 鼠标,扫描仪, 写板,网卡,摄像头等
  • 中央处理器(CPU):含有运算器和控制器等
  • 输出设备(单元):显示器,打印机,磁盘,声卡,显卡等

注意:有些设备既做输入也做输出的。设备之间是独立的,并且是通过总线连接的。这样数据才能在这些设备之间流动(传输)。本质就是设备之间进行数据的来回拷贝。

存储金字塔图(如下):

根据这个金字塔图能够得到的信息是:
距离CPU越近的存储单元,效率越高,造价越贵,单体容量越小。
距离CPU越远的存储单元,效率越低,造价越便宜,单体容量越大。
其中,第五层就是内存。
在这里插入图片描述

为什么需要存储器呢?为什么不能让硬件设备直接与CPU连接?

因为,数据在设备之间流动(传输),本质是设备之间进行数据的来回拷贝,所以,拷贝的整体速度是决定计算机效率的整体指标,但是CPU的速度是很快的,但是外部设备的速度很慢的,如果没有内存,那么计算机整体的效率就取决于了外设的速度,会导致计算机效率过低,使用性降低。
为了解决这个问题呢?所以引入了内存,内存的速度介于外设与CPU之间,简单的说,内存就可以看作一个非常大的缓存,内存的作用是预先加载与缓存,相当于就是,提前将外设信息加载到内存中,然后CPU直接在内存中获取信息去处理,处理了再给内存,内存再把处理后的结果返回给外设。内存就可以看作一个非常大的缓存。 这样,就计算机的效率最终就会以内存的效率为主。

关于冯诺依曼需要注意的几点:

  1. 这里的存储器指的是内存,内存有一个的特点:掉电易失。
  2. 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  3. 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
  4. 就是所有设备都只能直接和内存打交道。

以例子来帮助我们理解:
注意:这里只考虑设备中数据的流动。

  1. 程序在与逆行的时候,必须先把程序加载到内存中。程序编译好了也是一个文件,该文件放在外设(磁盘)中,必须先加载到内存中,然后交给CPU执行。(CPU只会在内存中去读取)

  2. 以发消息为例,你给你的朋友发消息,然后你的朋友是怎么收到消息的呢?
    数据流动过程:消息–>键盘–>内存—>CPU---->网卡---->你朋友设备的网卡---->内存—>CPU—>显示器。

  3. 如果是在qq上发送文件呢?
    数据流动过程:磁盘(文件)---->内存---->CPU---->网卡---->朋友大的网卡—>内存---->CPU---->磁盘(下载文件后存储在磁盘)


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

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

相关文章

jdk版本冲突,java.lang.UnsupportedClassVersionError: JVMCFRE003

主要是编辑器所用的jdk版本和项目用的不一致导致的,虽然编译通过了,但是运行是会报错 选好后点击Apply点击ok,然后重新编译一遍项目就可以了

OpenTelemetry-1.介绍

目录 1.是什么 2.为什么使用 OpenTelemetry 3.数据类型 Tracing Metrics Logging Baggage 4.架构图 5.核心概念 6.相关开源项目 ​编辑 7.分布式追踪的起源 8.百花齐放的分布式追踪 Zipkin Skywalking Pinpoint Jaeger OpenCensus OpenTracing 9.Openteleme…

Linux运维之道:深入探索开源世界的基石

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

【LeetCode热题100】【多维动态规划】最小路径和

题目链接:64. 最小路径和 - 力扣(LeetCode) 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 经典动态规…

向量的点积和叉积的几何意义

1. 点积 点积(dot product),又称标量积(scalar product)。结果等于。 可用于 判断的是否垂直求投影长度求向量是抑制作用还是促进作用计算两个向量的夹角 2. 叉积 叉积(cross product),又称为向量积(vector product)。模长等…

vue 表格获取当前行索引,加颜色

vue 表格获取当前行索引&#xff0c;加颜色 <span styledisplay:inline-block;width:10px;height:10px;border-radius:50% :style"{background:color[scope.$index]}" />//定义颜色color: [#5387F7, #A794E0, #F3543C, #999999, #77D3F8, #FFA1B4, #26CEBA, #…

C++:基础语法

一、命名空间 在C/C中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在于全局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化&#xff0c; 以避免命名冲突或名字污染&#xff0c;n…

30V-STM32设计项目

30V-STM32设计 一、项目描述 (已验证) 基于STM32c8t6芯片设计的开发板&#xff0c;支持4-30V宽电压输入&#xff0c;串口模式自动下载功能&#xff0c;支持串口和STlink&#xff0c;方式下载程序 二、原理图介绍 电源电路采用了DCDCLDO电路&#xff0c;如果是外接DC头供电的话&…

BM25检索算法 python

1.简介 BM25&#xff08;Best Matching 25&#xff09;是一种经典的信息检索算法&#xff0c;是基于 TF-IDF算法的改进版本&#xff0c;旨在解决、TF-IDF算法的一些不足之处。其被广泛应用于信息检索领域的排名函数&#xff0c;用于估计文档D与用户查询Q之间的相关性。它是一种…

HarmonyOS开发实例:【图片编辑应用】

介绍 本篇Codelab通过动态设置元素样式的方式&#xff0c;实现几种常见的图片操作&#xff0c;包括裁剪、旋转、缩放和镜像。效果如图所示&#xff1a; 相关概念 [image组件]&#xff1a;图片组件&#xff0c;用来渲染展示图片。[div组件]&#xff1a;基础容器组件&#xff0…

学习Rust的第16天:泛型类型

泛型类型是减少代码重复的好方法&#xff0c;因此它们对性能有巨大的影响&#xff0c;通过利用Rust中的泛型类型&#xff0c;开发人员可以编写更通用和可重用的代码&#xff0c;同时保持类型安全和性能。这种方法不仅减少了冗余&#xff0c;还增强了代码的可维护性和可扩展性&a…

AI大模型探索之路-实战篇2:基于CVP架构-企业级知识库实战落地

目录 前言 一、概述 二、本地知识库需求分析 1. 知识库场景分析 2. 知识库应用特点 3. 知识库核心功能 三、本地知识库架构设计 1. RAG架构分析 2. 大模型方案选型 3. 应用技术架构选型 4. 向量数据库选型 5. 模型选型 三、本地知识库RAG评估 四、本地知识库代码落地 1. 文件…

服务器基础知识(1)

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;服务器❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 1、什么是服务器 服务器是计算机的一种&#xff0c;它比普通计算机运行更快、负载更高、价格更贵。服务…

WIFI/BT中蓝牙的硬件资源是如何调度的 UART和PCM接口传输的是什么信号

安卓或IOS手机中&#xff0c;wifi/bt中的蓝牙是如何调度硬件资源的&#xff0c;尤其是UART和PCM是如何分配的。M.2 wifi/bt模块或其他形式的模块中&#xff0c;蓝牙是如何调度硬件资源的&#xff0c;尤其是UART和PCM是如何分配的。今天我们就图文并茂的解决这个问题。 蓝牙文件…

MATLAB使用速成 第三章(MATLAB绘图)

一、二维平面作图 1、简单的x-y坐标图 x、y是长度相同的向量&#xff0c;以x的分量为横坐标&#xff0c;y的分量为纵坐标&#xff0c;作平面曲线&#xff0c;使用命令plot(x,y)。&#xff08;可以省略参数x&#xff0c;这样将会以y的分量下标为横坐标&#xff0c;y的分量为纵坐…

如何在极狐GitLab 中用 docker in docker 的方式使用 docker?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署…

C语言游戏实现——贪吃蛇

思路讲解 ** 贪吃蛇游戏是要求我们要操控一条蛇&#xff0c;在游戏规定的空间之内&#xff0c;进行吃食物&#xff0c;吃到一个就增加蛇身的长度&#xff0c;并且游戏得分加1&#xff0c;如果吃到自己&#xff0c;和碰到墙就算死亡&#xff0c;同时可以增加蛇的速度和减慢蛇的…

Python开源项目周排行 2024年第8周

#2024年第8周2024年4月12日1llama3当知无愧AI LLM领域当红炸子鸡&#xff01;Llama 3 是由 Meta AI 开发的大型语言模型 (LLM)&#xff0c;于 2024 年 4 月发布。它基于 Megatron-Turing NLG 模型架构&#xff0c;并在超过 15 万亿个标记的公开可用数据上进行了预训练&#xff…

算法训练营day15

一、层序遍历 参考链接7.2 二叉树遍历 - Hello 算法 (hello-algo.com) 层序遍历本质上属于广度优先遍历&#xff0c;也称广度优先搜索&#xff0c; BFS通常借助队列的先入先出的特性实现 参考链接102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 像这种较为…

百度GL地图实现选点获取经纬度并且地址逆解析

index.html引入 <script src"https://api.map.baidu.com/api?typewebgl&v1.0&ak你的ak"></script>组件使用 <el-input:disabled"[详情].includes(title)"v-model"formData.site"placeholder""><templat…