《Linux从练气到飞升》No.10 冯洛依曼体系结构

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux
菜鸟刷题集

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢阅读!!!

文章目录

    • 前言
    • 冯·诺伊曼体系结构的提出背景
    • 冯诺依曼体系结构的概念
    • 冯诺依曼体系结构的设计
    • 后记

前言

前面我们讲述的主要是在Linux上工具的使用,但是从本篇开始将会讲述一些理论知识,并配以代码实践来学习Linux的知识,可能会比较晦涩,希望大家坚持下去,“长风破浪会有时,直挂云帆济沧海”。

本篇主要内容为介绍冯诺依曼体系结构的相关概念即应用~

冯·诺伊曼体系结构的提出背景

冯·诺伊曼体系结构的提出背景可以追溯到20世纪40年代的第二次世界大战期间。当时,计算机的发展正处于初级阶段,计算机系统的设计和构建面临着一些挑战和限制。

在那个时期,计算机主要是以专用目的为导向进行设计和构建的,每个计算机系统都是为特定的计算任务或应用而开发的。由于缺乏通用性,这些计算机系统无法灵活地适应不同的计算需求,而且重复利用其中的组件和技术也非常困难。

冯·诺伊曼在这个背景下提出了冯·诺伊曼体系结构的概念,旨在解决当时计算机系统面临的种种问题和限制。他认识到,将计算机的指令和数据存储在同一个存储器中,并通过按顺序执行指令的方式来进行运算,可以使计算机更加灵活、通用且易于设计和构建。

冯·诺伊曼体系结构的核心思想是将程序和数据视为存储器中的一系列指令,计算机按照存储器中指令的顺序依次执行,从而完成各种计算任务。这种设计理念使得计算机可以通过改变存储器中的指令序列来实现不同的计算功能,从而提高了计算机的灵活性和通用性。

此外,冯·诺伊曼体系结构还引入了一个控制单元,用于解析和执行存储器中的指令,协调各个组件的工作,并控制数据的流动和处理过程。这种控制单元的引入,使得计算机能够自动地按照程序的要求来执行各种运算,减轻了人工操作的负担。

冯·诺伊曼体系结构提出的背景是为了应对当时计算机系统设计和构建面临的挑战和限制,通过将指令和数据存储在同一存储器中,并按顺序执行指令的方式来实现计算功能,并引入控制单元来协调计算机系统的工作。这种体系结构的提出为计算机的发展奠定了基础,并推动了计算机科学的进步。到了今天,我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。

冯诺依曼体系结构的概念

在这里插入图片描述
冯·诺伊曼体系结构是一种计算机系统的基本设计原则和模型,它提出了计算机的几个核心概念和组成部分。其主要概念包括:

  1. 存储器:冯·诺伊曼体系结构将指令和数据存储在同一个存储器中,这个存储器通常被称为主存储器(RAM,Random Access Memory)。这意味着程序指令和数据以二进制形式存储在同一块物理内存中。所有设备都只能直接和内存打交道。

  2. 中央处理单元(CPU):CPU由运算器(ALU,Arithmetic and Logic Unit)和控制单元组成。运算器负责进行算术和逻辑运算,而控制单元负责解析和执行存储器中的指令,并协调各个组件的工作。CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)

  3. 指令集架构(ISA):ISA定义了计算机体系结构所支持的指令集和指令的格式。它规定了程序员和编译器与硬件交互的方式,包括操作码、寻址方式等。

  4. 顺序执行:冯·诺伊曼体系结构通过按照存储器中指令的顺序依次执行来完成计算任务。指令被取出、解码并依次执行,从而实现计算机的运算功能。

  5. 输入和输出设备:冯·诺伊曼体系结构还涉及输入设备(如键盘、鼠标)和输出设备(如显示器、打印机),用于与外界进行数据交互。外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

以上这些概念共同构成了冯·诺伊曼体系结构,它将计算机抽象为一台按照指令顺序执行的机器,通过存储器中存储的指令和数据来完成计算任务。这种体系结构具有通用性和灵活性,并成为现代计算机系统设计的基础。

冯诺依曼体系结构的设计

为什么所有设备都只能直接和内存打交道,而不能和CPU交流,那样不是直接就输入了吗?

有时候,路径最短并不是最快最好的,假如设备直接和CPU交流而不和内存打交道,因为输入设备和输出设备的速度远小于CPU的计算速度,CPU直接从输入设备读取数据,经计算后再交给输出设备输出数据,这样会大大降低计算机的执行能力。

为什么要设计成这个样子,要有内存在中间横插一脚?

理由如下:假如外设直接和CPU相连,由于短板效应,速度就比较慢了。
在这里插入图片描述

既然CPU速度快,为什么不用空间大一点的,让整体都变快?

主要是价格原因,计算机之所以能够这么快的流行起来,主打的就是便宜且质量好适合大众,而CPU价格昂贵,所以就有了内存来做中间的缓冲区的故事。
在这里插入图片描述

CPU是如何知道,输入设备有数据需要读取的呢?

请添加图片描述

两台电脑如何通信?

请添加图片描述

后记

本篇讲述了冯诺依曼体系结构的相关知识,包括冯诺依曼体系结构提出的背景、概念及设计。

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

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

相关文章

Finalshell连接Linux超时之Connection timed out: connect

目录 🍉前言 🌼报错 🌼摸索 💪解决措施 🍉前言 (1)福利:花了2小时才解决的BUG,希望本篇文章能帮你10分钟解决! (2)tips&#xff1…

Apache DolphinScheduler 3.1.8 版本发布,修复 SeaTunnel 相关 Bug

近日,Apache DolphinScheduler 发布了 3.1.8 版本。此版本主要基于 3.1.7 版本进行了 bug 修复,共计修复 16 个 bug, 1 个 doc, 2 个 chore。 其中修复了以下几个较为重要的问题: 修复在构建 SeaTunnel 任务节点的参数时错误的判断条件修复 …

windows 10 远程桌面配置

1. 修改远程桌面端口(3389) 打开注册表(winr), 输入regedit 找到配置项【计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\Wds\rdpwd\Tds\tcp】 , 可以通过搜索“Wds”快速定位。 修改端口配…

斗轮机与程控站之间开关量双向无线通讯

斗轮堆取料机是一种对散料进行连续堆取作业的高效装卸大型机械,被广泛使用于火力发电厂和炼焦厂的输煤系统中。目前对斗轮机的技改主要为将斗轮机的部分程控信号改为无线传输,取代卷筒电机和电缆的应用。 多数情况下都是利用无线通讯做媒介,让工作人员通…

【腾讯云 Cloud Studio 实战训练营】快速构建React完成点餐H5页面

一,前言 1.1 相关链接 官网地址:Cloud Studio 官方文档地址:Cloud Studio(云端 IDE)简介 | Cloud Studio 1.2 Cloud Studio(云端 IDE)简介 Cloud Studio 是基于浏览器的集成式开发环境&#…

【Minecraft】Fabric Mod开发完整流程1 - 环境配置与第一个物品

前言 Fabric 是 Minecraft 一款非官方的模组 API,与 Forge mod 不同。它以轻量级和高性能为设计目标,专注于支持新版本的 Minecraft。 Fabric 和 Forge 在各自的加载编译流程上差别很大,所以你很难看见有同时支持二者的 mod,除非做了兼容性处理 Fabri…

day23-113. 路径总和ii

113. 路径总和ii 力扣题目链接(opens new window) 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum 22, 思路 利用…

Rpc异步日志模块

Rpc异步日志模块作用 在一个大型分布式系统中,任何部署的分布式节点都可能发生崩溃,试想如果用普通的办法,即先排查哪个节点down掉了,找到down掉的节点后采取调试工具gdb调试该节点,进而排查宕机的原因。这中排查方法…

JavaWeb 手写Tomcat底层机制

目录 一、Tomcat底层整体架构 1.简介 : 2.分析图 : 3.基于Socket开发服务端的流程 : 4.打通服务器端和客户端的数据通道 : 二、多线程模型的实现 1.思路分析 : 2.处理HTTP请求 : 3.自定义Tomcat : 三、自定义Servlet规范 1. HTTP请求和响应 : 1 CyanServletRequest …

多用户跨境电商商品库系统快速搭建(全开源)

搭建一个多用户跨境电商商品库系统需要以下步骤: 1. 确定系统需求:首先,需要明确系统的功能需求,包括商品管理、订单管理、用户管理、支付管理等。根据具体需求确定系统的功能和界面设计。 2. 确定技术栈:选择合适的…

Maven: No compiler is provided in this environment.

在Eclipse中运行Maven项目,报错: No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 解决方法: Windows > Preferences > Java > Installed JREs > Add > Standard VM,…