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

news2024/9/20 22:38:33

文章目录

  • 认识冯诺依曼系统


认识冯诺依曼系统

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

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

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。这种结构特点是“程序存储,共享数据,顺序执行”,需要 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://www.coloradmin.cn/o/1617341.html

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

相关文章

mmdeploy框架转化模型

文章目录 1 从源码编译1.1 安装onnxruntime后端1.2 build mmdeploy1.3 install model converter 2 模型转换2.1 deploy用法2.2 示例 1 从源码编译 参考链接 reference2 git clone -b main https://github.com/open-mmlab/mmdeploy.git --recursive cd mmdeploy1.1 安装onnxru…

计算机缺少msvcp120.dll如何解决,7种详细的修复方法分享

msvcr120.dll文件是微软Visual C运行时库的一部分,版本号为12.0。这个DLL文件包含了许多用于支持在Windows上运行的应用程序的重要函数和组件。它是确保某些程序能够正确执行的关键组成部分,特别是那些使用C编写或依赖于某些Microsoft库的程序。 当用户…

C++ | Leetcode C++题解之第44题通配符匹配

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isMatch(string s, string p) {auto allStars [](const string& str, int left, int right) {for (int i left; i < right; i) {if (str[i] ! *) {return false;}}return true;};auto charMatch []…

4月18号总结

java学习 网络编程 1.网络分层 网络分层是将网络通信划分为不同的逻辑层次&#xff0c;每一层负责特定的功能&#xff0c;从而实现网络通信的模块化和标准化。常用的网络分层模型包括OSI&#xff08;开放系统互联&#xff09;模型和TCP/IP模型。 特点和作用&#xff1a; 分…

(C++) 树状数组

目录 一、介绍 二、一维树状数组 2.1 区间长度 2.2 前驱和后继 2.3 查询前缀和 2.4 点更新 三、一维数组的实现 3.1 区间长度函数 3.2 前缀和 3.3 插入/更新 3.4 封装成类 一、介绍 树状数组&#xff08;Binary Indexed Tree&#xff0c;BIT&#xff09;&#xff0c;又称为 …

火绒安全概述

页面简介&#xff1a; 火绒安全是一款集多种安全功能于一体的国产软件&#xff0c;旨在为用户提供全面的计算机保护。本页面将详细介绍火绒安全的核心功能和使用方式。 页面内容概览&#xff1a; 杀毒防护 实时监控&#xff1a;详细介绍火绒安全如何实时检测系统中的文件和程序…

Pyside6:Spacer的使用,布局中控件顶格添加

在普通的布局&#xff0c;如水平或纵向布局中&#xff0c;我们的控件都会保持中间状态&#xff0c;如下&#xff1a; 但有许多情况下 &#xff0c;我们需要将控件布局为如下界面&#xff1a; 在前端开发时&#xff0c;我们很容易通过flex来进行布局&#xff0c;修正它的居中或者…

Github首页美化(updating)

Github首页美化 https://github.com/QInzhengk一、新建仓库二、美化Github首页主页访问量统计仓库状态统计常用语言占比统计社交链接 界面展示 https://github.com/QInzhengk 一、新建仓库 对Github首页进行美化&#xff0c;需要新建一个仓库名和自己 Github 用户名相同的仓库…

【数据库】三、数据库SQL语言命令(基础从入门到入土)

【全文两万多字&#xff0c;涵盖大部分常见情况&#xff0c;建议点赞收藏】 目录 文章目录 目录安装SQL语言1.使用2.DATABASE查看所有库新建数据库修改数据库删除数据库连接数据库 3.TABLE创建表查看库所有表删除表查看表信息重命名表修改表字段&#xff08;列&#xff09;表中…

Java---ideaIU-2023.1专业版使用以及安装方法

介绍 JetBrains 是一家专注于创建智能开发工具的前沿软件公司,包括:行业中领头的 Java IDE – IntelliJ IDEA,以及 Kotlin 编程语言。旗下常用的软件有IntelliJ IDEA、PhpStorm、RubyMine、Rider、WebStorm、goland、CLion、Pycharm&#xff0c;本安装包集成以上8款软件&#…

最大层内元素和

题目链接 最大层内元素和 题目描述 注意点 返回层内元素之和 最大 的那几层&#xff08;可能只有一层&#xff09;的层号&#xff0c;并返回其中 最小 的那个树中的节点数在 [1, 10000]范围内-10^5 < Node.val < 10^5 解答思路 广度优先遍历树&#xff0c;使用队列存…

windows系统CUDA的详细安装教程

CUDA系列 文章目录 CUDA系列前言一、CUDA简介二、安装配置视频教程三、CUDA的下载及安装3.1 环境检查3.2 CUDA 安装包下载3.3 安装CUDA&#xff08;略&#xff09;3.4 验证CUDA是否安装成功 四、cuDNN的下载及安装4.1 cuDNN下载4.2 cuDNN配置 五、配置环境变量六、下载并配置zl…

Day4 商品管理

Day4 商品管理 这里会总结构建项目过程中遇到的问题&#xff0c;以及一些个人思考&#xff01;&#xff01; 学习方法&#xff1a; 1 github源码 文档 官网 2 内容复现 &#xff0c;实际操作 项目源码同步更新到github 欢迎大家star~ 后期会更新并上传前端项目 编写品牌服务 …

LangChain入门指南:构建高可复用、可扩展的LLM应用程序 PDF书籍分享

今天又来给大家推荐一本大模型方面的书籍<Langchain入门指南>这本书专门为那些对自然语言处理技术感兴趣的读者提供了系统的LLM应用开发指南。全书分为11章&#xff0c;从LLM基础知识开始&#xff0c;通过LangChain这个开源框架为读者解读整个LLM应用开发流程。 下载当前…

轻松记录收支明细,详细记录每一笔收支,通过借款日期快速查找借款信息

财务管理对于个人和企业来说都至关重要。一份清晰、详尽的收支明细记录&#xff0c;不仅能帮助我们了解资金流向&#xff0c;还能在需要时提供有力的证据。因此&#xff0c;高效记录收支明细并轻松掌握财务状况成为了每个人的必备技能 第一步进入晨曦记账本主页面&#xff0c;…

ros2_control【B站WMGIII教学学习记录】1

资源 https://www.bilibili.com/video/BV1ku411G7UR? 学习过程中存在bug&#xff0c;记录一下 1 Q:"package ‘joint_state_publisher_gui’ not found, searching: [/home A: sudo apt install ros-humble-joint-state-publisher2 https://fishros.org.cn/forum/to…

抢先看!LEADTOOLS V23 全新版发布,预览全新产品线布局!

LEADTOOLS (Lead Technology)由Moe Daher and Rich Little创建于1990年&#xff0c;其总部设在北卡罗来纳州夏洛特。LEAD的建立是为了使Daher先生在数码图象与压缩技术领域的发明面向市场。在过去超过30年的发展历程中&#xff0c;LEAD以其在全世界主要国家中占有的市场领导地位…

SpringCloud引入SpringBoot Admin

Spring Boot Admin可以监控和管理Spring Boot&#xff0c;能够将 Actuator 中的信息进行界面化的展示&#xff0c;也可以监控所有 Spring Boot 应用的健康状况&#xff0c;提供警报功能。 1. 创建SpringBoot工程 2. 引入相关依赖 <dependency><groupId>com.alib…

基于ontape的备份与恢复实验

通过本文的备份恢复实验&#xff0c;我们可以深入了解ontape的使用方法和原理&#xff0c;包括如何进行完整备份、增量备份以及如何利用备份文件进行数据恢复。 1. 配置onconfig参数 通过修改onconfig参数文件&#xff0c;或使用onmode -wf命令&#xff0c;设置备份默认使用的…

电商巨头亚马逊公布新算法!或将颠覆跨境选品风向…

亚马逊每一次算法的变动&#xff0c;都会牵扯到无数卖家的利益。电商巨头亚马逊发布了一则报告&#xff0c;正式公布了一个名为“COSMO”的新算法。该算法全称为“亚马逊大型电商常识知识生成与服务系统”&#xff0c;顾名思义&#xff0c;就是利用大量语言模型训练机器&#x…