【Linux】冯诺依曼体系结构

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

目录

一、硬件构成

二、数据流动


一、硬件构成

我们常见的计算机如笔记本。我们不常见的计算机如服务器。大部分都遵守冯诺依曼体系。

冯诺依曼体系在硬件结构上分为以下几个部分

  • 输入设备包括键盘鼠标扫描仪写板磁盘等
  • 存储器内存
  • 中央处理器(CPU)含有运算器和控制器等
  • 输出设备显示器打印机等

这些硬件的简易组成方式为

 计算机是用来进行数据计算的所以我们要先通过 输入设备 来把数据传输给计算机并通过 中央处理器 的计算后把计算结果通过 输出设备 传输出去。

那么在冯诺依曼体系中 存储器 起到的作用是什么我们为什么需要内存呢

我们一般把 输入设备 与 输出设备 称为 外围设备简称外设外设一般都会比较慢。

以磁盘为例相对于内存磁盘的读写速度非常慢。而 CPU 中的存储器的读取速度又要快于内存。根据木桶原理一个木桶能装多少水不是取决于这个木桶最长的那个木板而是最短的那个。因此如果 CPU 直接从磁盘中读取数据并处理的话速度会非常慢浪费了 CPU 的性能。

为了解决这个问题就有了内存的出现。在计算机工作时内存可以临时存储数据。例如当 CPU  在计算A任务时内存可以预先将B任务加载进来CPU 处理完A任务就直接从内存中读取B任务的数据。

因为有了内存的存在我们可以对数据进行预加载CPU 以后在进行数据计算的时候就不需要访问外设了直接从内存中读取就可以了。

结论1在数据信号层面一般 CPU 不与外设直接沟通而是只与内存直接沟通。

了解了以上内容后我们可以用硬件的方案来解释一些软件的行为

  • 我们编译出的可执行程序是一个文件。而文件都保存在磁盘中磁盘是一个外设。所以我们在运行这个可执行程序的时候必须要先把它加载到内存之中这是计算机的体系结构决定的。
  • 众所周知计算机开机的过程是加载操作系统的过程。而之所以需要加载操作系统是因为 CPU 只能从内存中读取数据。

二、数据流动

我们用一个例子来解释数据的流动过程假设你与你的朋友在用qq聊天你给他发送了一个“你好”并被他看到。这是一个什么样的过程呢

假设你与朋友的电脑都是冯诺依曼体系的不考虑中间网络的相关知识模型如下

 我们只考虑硬件层面。你在键盘上输入消息这些消息被加载进内存CPU 从内存中读取这些数据并进行计算加密。CPU 计算完成后把结果写回内存并把该数据传输到输出设备。这里传输到输出设备是两个动作第一是把你输入的消息刷新显示在你自己的显示器上第二是把数据通过网卡发送到网络里具体过程忽略。朋友再通过他的输入设备网卡获取数据并交给内存CPU从内存中读取数据并进行解密计算计算完成后把数据写回内存最终把数据显示在朋友的显示器上。

电脑的硬件决定了数据在流动的时候必须要遵守冯诺依曼的规则。 数据从输入设备只能到达内存无法到达其他地方。

结论2在数据信号层面一般外设只与内存直接沟通。

有些设备既可以当作输入设备又可以作为输出设备比如网卡、磁盘等等。

我们在qq聊天的过程中加密解密的算法、网卡发送等等操作都是qq这个软件内部执行的我们目前无需考虑。

补充内容我们日常使用的 printf 函数 与 scanf 函数其实就是软件在获取输入设备中的数据以及读取内存中的数据。


以上就是冯诺依曼体系的相关内容希望同学们多多支持如果有不对的地方希望大佬指正谢谢

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux