【Linux】冯诺依曼体系结构

在这里插入图片描述

目录

  • 一、冯诺依曼体系结构
  • 二、冯诺依曼体系结构的基本组成
  • 三、关于冯诺依曼体系结构的一些问题
  • 结尾

一、冯诺依曼体系结构

冯·诺依曼体系结构,也称为普林斯顿结构,是现代计算机设计的基础框架。这一体系结构由数学家冯·诺依曼在20世纪40年代提出,它定义了计算机的基本组成和工作原理。


二、冯诺依曼体系结构的基本组成

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系结构
在这里插入图片描述

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

  • 输入单元:包括键盘,鼠标,网卡,磁盘,USB等
  • 中央处理器(CPU):含有运算器和控制器等
  • 输出单元:显示器,打印机,网卡,磁盘等
  • 存储器:这里的存储器就是内存

关于冯诺依曼,必须强调几点:

  • 这里的存储器指的就是是内存
  • 不考虑缓存情况下,在数据层面上,这里的CPU能且只能对内存进行读写,不能与外设进行直接交互(输入或输出设备)
  • 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。一句话,所有设备都只能直接和内存打交道。

值得注意的是计算机中几乎所有的设备,都具有数据存储能力。

CPU这个设备,它的处理数据的速度是非常快的,然后是内存,最后是各种外设。

上面这张照片是关于存储分级的图片,在我看来存储分级也可以叫做速度分级、成本分级,为什么存储分级是金字塔形状的呢?因为离CUP越近的设备,存储效率越高,造价越贵。

那么有人就会问了,为什么不全用存储效率高的呢?这样电脑不就非常快了吗?确实,但是存储效率高对应带来的是造价高。

如果我要求不高,可以全部用便宜的存储设备吗?虽然说这样计算机的早就就变低了,但是这个计算机基本上也用不了了。


三、关于冯诺依曼体系结构的一些问题

问题:上面我们提到了,不考虑缓存的情况下,CPU只与内存进行交互,不与外设进行直接交互,这是为什么呢?

解答:相信大家都听说过木桶原理,一个木桶能装多少水,取决于这个木桶中最短一块木板的长度, 而计算机也同样如此,CPU内部的高速缓存提供了快速的存储访问能力,远大于外设的存储效率,这种速度差异使得CPU无法直接高效地与外设进行同步数据交换,导致整机的效率低下,而内存的存储效率比CPU低,但是比外设的存储效率高,因此CPU与内存之间的交互更加高效。

所以基于冯诺依曼体系结构的计算机都是用较少的钱,做出来效率不错的计算机,性价比高。


问题:在学习C/C++的时候都听说过,程序在运行之前,必须先加载到内存中,为什么呢?

解答:程序 = 代码 + 数据 ,而代码和数据最终都需要CPU进行处理,程序本质上是一个exe文件,只能在磁盘(外设)中,而在数据层面上,CPU不与外设进行直接交互,只与内存进行交互,所以必须将程序加载到内存中,CPU才能对程序进行处理。


对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上

问题:请你解释一下,从你登录上QQ开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发送文件呢?

解答:在我们登录QQ的时候,本质上就是在电脑上运行起来了了,也就是QQ这个软件被加载到了内存中,那么我们向QQ中输入文字,本质上就是在向内存中输入文字。

那么从头开始解释,当我打开窗口,给我的朋友发消息,我先从键盘(输入设备)输入我想发送的消息到QQ中,本质上是输入到内存(存储器)中,在我们平常发信息的时候可以看到,我们发生信息的时候并不是只有我们发送的信息,还有时间、朋友的备注等信息,那么我们就可以知道,我们要发送的信息一定是被CPU进行处理过的,CPU不会与外设直接交互,那么CPU处理完信息后,会将处理后的信息写入内存(存储器),再通过网卡(输出设备)经过网络传输到朋友的网卡(输入设备),由于前面的文章没有网络相关的文章,这里先不提网络,从网卡中得到的信息需要通过CUP的处理,那么就需要将信息先加载到内存(存储器)中,再由CPU处理得到我想输出的信息,再将CPU处理后的信息写入内存(存储器)中,然后信息通过内存输出到朋友的显示器(输出设备)中,最终完成数据流动。

在这里插入图片描述

在QQ上发送文件本质上与上面的发送文字是相同的,不同的是文件是存储在磁盘中的,所以这里的输入设备是磁盘,其他步骤基本相同。

在这里插入图片描述


结尾

本篇文章最重要的一句话就是不考虑缓存情况下,在数据层面上,这里的CPU能且只能对内存进行读写,不能与外设进行直接交互(输入或输出设备)

如果有什么建议和疑问,或是有什么错误,大家可以在评论区中提出。
希望大家以后也能和我一起进步!!🌹🌹
如果这篇文章对你有用的话,希望大家给一个三连支持一下!!🌹🌹

在这里插入图片描述

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

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

相关文章

M1M2 MAC安装windows11 虚拟机的全过程

M1/M2 MAC安装windows11 虚拟机的全过程 这两天折腾了一下windows11 arm架构的虚拟机,将途中遇到的坑总结一下。 1、虚拟机软件:vmware fusion 13.6 或者 parallel 19 ? 结论是:用parellel 19。 这两个软件都安装过&#xff0…

NAT、代理服务与内网穿透技术全解析

🍑个人主页:Jupiter. 🚀 所属专栏:Linux从入门到进阶 欢迎大家点赞收藏评论😊 目录 NAT 技术背景NAT IP 转换过程NAPTNAT 技术的缺陷 代理服务器正向代理工作原理功能特点应用场景 反向代理基本原理应用场景 NAT 和代理…

优选算法 - 1 ( 双指针 移动窗口 8000 字详解 )

一&#xff1a;双指针 1.1 移动零 题目链接&#xff1a;283.移动零 class Solution {public void moveZeroes(int[] nums) {for(int cur 0, dest -1 ; cur < nums.length ; cur){if(nums[cur] 0){}else{dest; // dest 先向后移动⼀位int tmp nums[cur];nums[cur] num…

qt配合映美精取图开发

最近开发一个项目&#xff0c;用映美精相机配合halcon做取图开发&#xff0c;由于网上资料小特意写个记录。到映美精官网下载驱动&#xff0c;映美精官网&#xff0c;下载映美精的工具开发包SDK 映美精的SDK下载SDK后找到classlib文件夹 里面就是SDK新建一个qt程序&#xff0c…

华为云计算HCIE-Cloud Computing V3.0试验考试北京考场经验分享

北京试验考场 北京考场位置 1.试验考场地址 北京市海淀区北清路156号中关村环保科技示范园区M地块Q21楼 考试场选择北京&#xff0c;就是上面这个地址&#xff0c;在预约考试的时候会显示地址&#xff0c;另外在临近考试的时候也会给你发邮件&#xff0c;邮件内会提示你考试…

LeetCode 509.斐波那契数

动态规划思想 五步骤&#xff1a; 1.确定dp[i]含义 2.递推公式 3.初始化 4.遍历顺序 5.打印dp数组 利用状态压缩&#xff0c;简化空间复杂度。在原代码中&#xff0c;dp 数组保存了所有状态&#xff0c;但实际上斐波那契数列的计算只需要前两个状态。因此&#xff0c;我们…

反向代理开发

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当于…

RabbitMQ — 异步调用

RabbitMQ 是一个开源的消息代理中间件&#xff0c;它使用高级消息队列协议&#xff08;AMQP, Advanced Message Queuing Protocol&#xff09;来实现不同系统之间的消息传递。它以 Erlang 语言编写&#xff0c;具有高可靠性、灵活性和易于扩展的特点&#xff0c;被广泛应用于异…

2025 年使用 Python 和 Go 解决 Cloudflare 问题

作为一名从事网络自动化和爬取工作的开发者&#xff0c;我亲眼目睹了日益复杂的安全性措施带来的挑战。其中一项挑战是 Cloudflare 的 Turnstile CAPTCHA 系统&#xff0c;目前该系统已在全球 2600 多万个网站上使用。这种先进的解决方案重新定义了我们对机器人检测的处理方式&…

大数据的实时处理:工具和最佳实践

在当今的数字世界中&#xff0c;数据以前所未有的速度从无数来源生成&#xff0c;包括社交媒体、物联网设备、电子商务平台等。随着组织认识到这些数据的潜在价值&#xff0c;他们越来越多地转向实时处理&#xff0c;以获得即时、可操作的见解。但是&#xff0c;实时处理大数据…

104、Python并发编程:基于事件Event实现多线程间的同步

引言 继续介绍关于多线程同步的实现方式&#xff0c;本文将介绍基于Event的线程同步方式。 本文的主要内容有&#xff1a; 1、什么是Event 2、Event的使用场景 3、Event的代码实例 4、Event与Condition的比较 什么是Event 在Python的多线程编程中&#xff0c;Event是一个…

第2章2.3立项【硬件产品立项的核心内容】

硬件产品立项的核心内容 2.3 硬件产品立项的核心内容2.3.1 第一步&#xff1a;市场趋势判断2.3.2 第二步&#xff1a;竞争对手分析1.竞争对手识别2.根据竞争对手分析制定策略 2.3.3 第三步&#xff1a;客户分析2.3.4 第四步&#xff1a;产品定义2.3.5 第五步&#xff1a;开发执…

ReactPress数据库表结构设计全面分析

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 ReactPress是一个基于React框架开发的开源发布平台和内容管理系统&#xff08;CMS&#xff09;。它不仅支持用户在支持React和MySQL数据库的服务器上搭建自己的博客和网站&#…

ANDROIDWORLD: A Dynamic BenchmarkingEnvironment for Autonomous Agents论文学习

这个任务是基于androidenv的。这个环境之前学过&#xff0c;是一个用来进行强化学习的线上环境。而这篇文章的工作就是要给一些任务加上中间的奖励信号。这种训练环境的优点就是动态&#xff0c;与静态的数据集&#xff08;比如说我自己的工作&#xff09;不同&#xff0c;因此…

华为ENSP--ISIS路由协议

项目背景 为了确保资源共享、办公自动化和节省人力成本&#xff0c;公司E申请两条专线将深圳总部和广州、北京两家分公司网络连接起来。公司原来运行OSFP路由协议&#xff0c;现打算迁移到IS-IS路由协议&#xff0c;张同学正在该公司实习&#xff0c;为了提高实际工作的准确性和…

python-26-Python ORM系列之pymysql实现对数据库的增删改查及新建表

python-26-Python ORM系列之pymysql实现对数据库的增删改查及新建表 一.简介 在Python基础系列ORM部分我们为大家介绍了如何搭建MySQL数据和MySQL一些访问配置&#xff0c;同时细节的同学应该已经了解到了ORM的2个库pymysql和sqlalchemy&#xff1b; PyMySQL — MySQL 数据库…

ADSP21489 M25P16启动后无法使用USBi的问题

项目背景是ADSP21489 使用SPI MASTER 启动模式,程序存储在M25P16中 编译cces产生运行代码 第二步,插上USBi仿真器下载sigma topo 发现无法正常下载 操作多次发现需要目标板重新上点后需要拔插usbi才能下载和启动dsp程序 原因分析: 就是第一次插上usbi后,在给目标板上电,可…

量子计算包kaiwu安装过程踩过的坑

目录 1 安装过程 2 官方代码测试 3 踩坑说明 首先&#xff0c;目前的kaiwu版本仅支持python3.8&#xff0c;所以必须要下载python3.8才能运行kaiwu 1 安装过程 step1: 在页面的SDK标签下&#xff0c;找到对应操作系统的kaiwu包。 step2: 下载python3.8到本地&#xff0c;可…

线程相关概念

线程概念 线程是操作系统中一种基本的执行单元&#xff0c;是程序的最小调度单位。一个程序可以包含多个线程&#xff0c;每个线程代表一个独立的执行路径&#xff0c;使得程序可以并发地处理多个任务。 线程的基本概念 线程与进程的区别&#xff1a; 进程是资源分配的单位&…

SSH实验5密钥登录Linuxroot用户(免密登录)

当用户尝试通过SSH连接到远程服务器时&#xff0c;客户端会生成一对密钥&#xff1a;公钥和私钥。公钥被发送到远程服务器&#xff0c;并存储在服务器的~/.ssh/authorized_keys文件中。而私钥则由客户端保管&#xff0c;不会传输给服务器。 在连接过程中&#xff0c;客户端使用…