冯·诺依曼体系结构

目录

冯·诺依曼体系结构推导

内存提高冯·诺依曼体系结构效率的方法

你使用QQ和朋友聊天时,整个数据流是怎么流动的(不考虑网络情况)

与冯·诺依曼体系结构相关的一些知识


冯·诺依曼体系结构推导

计算机的存在就是为了解决问题,而解决问题,首先需要将数据或是问题输入到计算机当中,所以计算机必须要有输入设备,计算机解决完问题后还需要将计算结果输出显示出来,所以计算机必须要有输出设备。计算机通过输入设备得到数据,数据在计算机当中进行一系列算术运算和逻辑运算后,通过输出设备进行输出,于是就得到了一下流程图

但是计算机当中只有算术运算和逻辑运算功能以及控制功能是不够的还需要有控制功能,控制何时从输入设备获取数据,何时输出数据到输出设备等。对应到C语言当中,算术运算就完成一系列的加减乘除,而逻辑运算就对应于一系列的逻辑与逻辑或等,控制功能就对应于C语言当中的判断,循环以及各个函数之间的跳转等等

 

而这个具有算术运算,逻辑运算以及控制功能的设备被我们称为:中央处理器(cpu)

但是输入设备和输出设备相对于中央处理器来说是非常慢的,于是在当前这个体系整体呈现出来的就是输入设备和输出设备很慢而CPU很快,根据木桶原理,最后整个体系呈现出来的速度将会很慢

所以以上体系结构虽然可以使用,但是还不够完善,于是为了解决输入输出设备和cpu配合使用慢的问题,我们可以通过在它们之间加入存储器也就是内存,提高整个体系的速度,内存的速度比输入输出设备快很多,但是比cpu慢,内存在整个体系结构当中起着缓冲的作用,总的来说还是提高了整个体系的速度

现在这个体系的运行流程就是:用户通过输入设备向内存中写入数据,cpu读取数据时会直接到内存当中读取,cpu处理完读取到的数据之后再将数据较放回内存,最后内存会把数据交给输出设备,进行输出显示

内存提高冯·诺依曼体系结构效率的方法

内存具有存储数据的能力,虽然它的大小只有4G/8G,但是既然内存有大小,那么它就有预装数据的能力,这就是提高整个体系结构效率的原因

根据统计学原理,当一个数据正在被访问时,那么下一次有很大可能会访问其周围的数据。所以当CPU需要获取某一段数据时,内存可以将该行数据之后的数据一同加载进来,而CPU处理数据和内存加载数据是可以同时进行的,这样下次CPU就可以直接从内存中获取数据

输出数据的时候也一样,CPU处理完数据后直接将数据放到内存当中,当输出设备需要时再到内存中获取即可,这也就有了我们平常所说的缓冲区的概念。例如,缓冲区满了才将数据打印到屏幕上,使用fflush函数将缓冲区当中的数据直接输出之类的,都是将内存当中的数据直接拿到输出设备当中进行显示输出

你使用QQ和朋友聊天时,整个数据流是怎么流动的(不考虑网络情况)

登录qq,qq这款软件加载到内存中,然后中央处理器开始执行qq的代码,我使用输入设备(键盘)将信息放到内存中,然后CPU进行打包计算,计算完成之后将数据放回到内存中,通过输出设备(网卡,显示器)

你的朋友通过输入设备(网卡)接收到你发来的数据,这些数据会放入到内存中,再由CPU进行解包解压操作,经过CPU处理完之后再放回到内存中,最后由输出设备(qq的对话框)进行读取数据

与冯·诺依曼体系结构相关的一些知识

根据冯·诺依曼体系结构图,我们可以知道,站再硬件角度或是数据层面上,CPU只和内存打交道,外设也只和内存打交道。到这里我们也可以说明一个问题:为什么程序运行之前必须先加载到内存?

因为可执行程序(文件)存在于硬盘(外设)上的,而CPU只能从内存中获取数据,所以必须先将硬盘上的数据加载到内存,也就是必须先将程序加载到内存

常见的输入输出设备(拓展)

输入设备:键盘,摄像头,话筒,磁盘,网卡,鼠标,扫描仪等

输出设备:显示器,播放器,硬件,磁盘,网卡,打印机等

注意:同种设备在不同的场景下可能是输入设备,也可能是输出设备,例如:网卡

CPU中存在寄存器,实际寄存器不仅仅存在于CPU中,在其他外设中也是存在寄存器的,例如:当我们在敲击键盘的时,键盘是先将获取到的内容存储到寄存器当中,然后通过寄存器将数据写到内存中

在物理层面上,各个硬件单元之间是通过总线链接的,外设与内存之间的总线叫做IO总线,内存与CPU之间的总线叫做系统总线

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

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

相关文章

全面认识了解DeepSeek+利用ollama在本地部署、使用和体验deepseek-r1大模型

文章目录 一、DeepSeek简介二、技术特点三、架构设计3.1、DeepSeek-V33.2、DeepSeek-V23.3、DeepSeek-R1 四、DeepSeek算法4.1、DeepSeek LLM 算法4.2、DeepSeek-V2 算法4.3、DeepSeek-R1 算法4.4、DeepSeek 在算力优化上的算法 五、DeepSeek的使用六、本地部署DeepSeek R1模型…

Python 梯度下降法(七):Summary

文章目录 Python 梯度下降法(七):Summary一、核心思想1.1 核心思想1.2 优化方法概述1.3 第三方库的使用 二、 BGD2.1 介绍2.2 torch 库算法2.2 代码示例2.3 SGD2.4 SGD代码示例2.5 MBGD2.6 MBGD 代码示例 三、 Adagrad3.1 介绍3.2 torch 库算…

SpringBoot Web开发(SpringMVC)

SpringBoot Web开发(SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样,是围绕前端控制器模式设计的,其中中央 Servlet DispatcherServlet 做整体请求处理调度! . 除了DispatcherServletSpringMVC还会提供其他…

Web_php_unserialize

代码审计 <?php class Demo { private $file index.php;public function __construct($file) { $this->file $file; }、 //接收一个参数 $file 并赋值给私有属性 $filefunction __destruct() { echo highlight_file($this->file, true); } //在对象销毁时调用&…

Spring Web MVC基础第一篇

目录 1.什么是Spring Web MVC&#xff1f; 2.创建Spring Web MVC项目 3.注解使用 3.1RequestMapping&#xff08;路由映射&#xff09; 3.2一般参数传递 3.3RequestParam&#xff08;参数重命名&#xff09; 3.4RequestBody&#xff08;传递JSON数据&#xff09; 3.5Pa…

安装anaconda3 后 电脑如何单独运行python,python还需要独立安装吗?

安装anaconda3 后 电脑如何单独运行python&#xff0c;python还需要独立安装吗? 电脑第一此安装anaconda用于jupyter notebook使用。 但是在运行cmd的时候&#xff0c;输入python --version 显示未安装或跳转商店提示安装。 明明我可以运行python但是为什么cmd却说我没安装呢…

分布式事务组件Seata简介与使用,搭配Nacos统一管理服务端和客户端配置

文章目录 一. Seata简介二. 官方文档三. Seata分布式事务代码实现0. 环境简介1. 添加undo_log表2. 添加依赖3. 添加配置4. 开启Seata事务管理5. 启动演示 四. Seata Server配置Nacos1. 修改配置类型2. 创建Nacos配置 五. Seata Client配置Nacos1. 增加Seata关联Nacos的配置2. 在…

使用真实 Elasticsearch 进行高级集成测试

作者&#xff1a;来自 Elastic Piotr Przybyl 掌握高级 Elasticsearch 集成测试&#xff1a;更快、更智能、更优化。 在上一篇关于集成测试的文章中&#xff0c;我们介绍了如何通过改变数据初始化策略来缩短依赖于真实 Elasticsearch 的集成测试的执行时间。在本期中&#xff0…

OpenEuler学习笔记(十四):在OpenEuler上搭建.NET运行环境

一、在OpenEuler上搭建.NET运行环境 基于包管理器安装 添加Microsoft软件源&#xff1a;运行命令sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm&#xff0c;将Microsoft软件源添加到系统中&#xff0c;以便后续能够从该源安装.…

基于Python的简单企业维修管理系统的设计与实现

以下是一个基于Python的简单企业维修管理系统的设计与实现&#xff0c;这里我们会使用Flask作为Web框架&#xff0c;SQLite作为数据库来存储相关信息。 1. 需求分析 企业维修管理系统主要功能包括&#xff1a; 维修工单的创建、查询、更新和删除。设备信息的管理。维修人员…

Van-Nav:新年,将自己学习的项目地址统一整理搭建自己的私人导航站,供自己后续查阅使用,做技术的同学应该都有一个自己网站的梦想

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 Van-Nav是一个基于Vue.js开发的导航组件库&#xff0c;它提供了多种预设的样式和灵活的配置选项&#xff0c;使得开发者可以轻松地定制出符合项目需求…

Android 音视频编解码 -- MediaCodec

引言 如果我们只是简单玩一下音频、视频播放&#xff0c;那么使用 MediaPlayer SurfaceView 播放就可以了&#xff0c;但如果想加个水印&#xff0c;加点其他特效什么的&#xff0c;那就不行了&#xff1b; 学习 Android 自带的硬件码类 – MediaCodec。 MediaCodec 介绍 在A…

UE 5.3 C++ 对垃圾回收的初步认识

一.UObject的创建 UObject 不支持构造参数。 所有的C UObject都会在引擎启动的时候初始化&#xff0c;然后引擎会调用其默认构造器。如果没有默认的构造器&#xff0c;那么 UObject 将不会编译。 有修改父类参数的需求&#xff0c;就使用指定带参构造 // Sets default value…

使用LLaMA-Factory对AI进行认知的微调

使用LLaMA-Factory对AI进行认知的微调 引言1. 安装LLaMA-Factory1.1. 克隆仓库1.2. 创建虚拟环境1.3. 安装LLaMA-Factory1.4. 验证 2. 准备数据2.1. 创建数据集2.2. 更新数据集信息 3. 启动LLaMA-Factory4. 进行微调4.1. 设置模型4.2. 预览数据集4.3. 设置学习率等参数4.4. 预览…

2025最新源支付V7全套开源版+Mac云端+五合一云端

2025最新源支付V7全套开源版Mac云端五合一云端 官方1999元&#xff0c; 最新非网上那种功能不全带BUG开源版&#xff0c;可以自己增加授权或二开 拥有卓越的性能和丰富的功能。它采用全新轻量化的界面UI&#xff0c;让您能更方便快捷地解决知识付费和运营赞助的难题 它基于…

Linux02——Linux的基本命令

目录 ls 常用选项及功能 综合示例 注意事项 cd和pwd命令 cd命令 pwd命令 相对路径、绝对路径和特殊路径符 特殊路径符号 mkdir命令 1. 功能与基本用法 2. 示例 3. 语法与参数 4. -p选项 touch-cat-more命令 1. touch命令 2. cat命令 3. more命令 cp-mv-rm命…

[EAI-023] FAST,机器人动作专用的Tokenizer,提高VLA模型的能力和训练效率

Paper Card 论文标题&#xff1a;FAST: Efficient Action Tokenization for Vision-Language-Action Models 论文作者&#xff1a;Karl Pertsch, Kyle Stachowicz, Brian Ichter, Danny Driess, Suraj Nair, Quan Vuong, Oier Mees, Chelsea Finn, Sergey Levine 论文链接&…

LeGO LOAM坐标系问题的自我思考

LeGO LOAM坐标系问题的自我思考 总体思考流程IMU坐标系LeGO LOAM代码分析代码 对于IMU输出测量值的integration积分过程欧拉角的旋转矩阵VeloToStartIMU()函数TransformToStartIMU(PointType *p) 总体思考流程 第一页 第二页 第三页 IMU坐标系 在LeGO LOAM中IMU坐标系的形式…

基于VMware的ubuntu与vscode建立ssh连接

1.首先安装openssh服务 sudo apt update sudo apt install openssh-server -y 2.启动并检查ssh服务状态 到这里可以按q退出 之后输入命令 &#xff1a; ip a 红色挡住的部分就是我们要的地址&#xff0c;这里就不展示了哈 3.配置vscode 打开vscode 搜索并安装&#xff1a;…

牛客网 除2!(详解)c++

题目链接&#xff1a;除2&#xff01; 1.题目解析 1&#xff1a;想让数组所有数之和尽可能小&#xff0c;肯定有个想法&#xff0c;就是我每次选数组中偶数的时候&#xff0c;我必定挑一个最大的&#xff0c;因为我挑一个最大的出来&#xff0c;把它变成一半&#xff0c;这个时…