前言
前面我们讲述的主要是在Linux上工具的使用,但是从本篇开始将会讲述一些理论知识,并配以代码实践来学习Linux的知识,可能会比较晦涩,希望大家坚持下去,“长风破浪会有时,直挂云帆济沧海”。
本篇主要内容为介绍冯诺依曼体系结构的相关概念即应用~
冯·诺伊曼体系结构的提出背景
冯·诺伊曼体系结构的提出背景可以追溯到20世纪40年代的第二次世界大战期间。当时,计算机的发展正处于初级阶段,计算机系统的设计和构建面临着一些挑战和限制。
在那个时期,计算机主要是以专用目的为导向进行设计和构建的,每个计算机系统都是为特定的计算任务或应用而开发的。由于缺乏通用性,这些计算机系统无法灵活地适应不同的计算需求,而且重复利用其中的组件和技术也非常困难。
冯·诺伊曼在这个背景下提出了冯·诺伊曼体系结构的概念,旨在解决当时计算机系统面临的种种问题和限制。他认识到,将计算机的指令和数据存储在同一个存储器中,并通过按顺序执行指令的方式来进行运算,可以使计算机更加灵活、通用且易于设计和构建。
冯·诺伊曼体系结构的核心思想是将程序和数据视为存储器中的一系列指令,计算机按照存储器中指令的顺序依次执行,从而完成各种计算任务。这种设计理念使得计算机可以通过改变存储器中的指令序列来实现不同的计算功能,从而提高了计算机的灵活性和通用性。
此外,冯·诺伊曼体系结构还引入了一个控制单元,用于解析和执行存储器中的指令,协调各个组件的工作,并控制数据的流动和处理过程。这种控制单元的引入,使得计算机能够自动地按照程序的要求来执行各种运算,减轻了人工操作的负担。
冯·诺伊曼体系结构提出的背景是为了应对当时计算机系统设计和构建面临的挑战和限制,通过将指令和数据存储在同一存储器中,并按顺序执行指令的方式来实现计算功能,并引入控制单元来协调计算机系统的工作。这种体系结构的提出为计算机的发展奠定了基础,并推动了计算机科学的进步。到了今天,我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
冯诺依曼体系结构的概念
冯·诺伊曼体系结构是一种计算机系统的基本设计原则和模型,它提出了计算机的几个核心概念和组成部分。其主要概念包括:
- 存储器:冯·诺伊曼体系结构将指令和数据存储在同一个存储器中,这个存储器通常被称为主存储器(RAM,Random Access Memory)。这意味着程序指令和数据以二进制形式存储在同一块物理内存中。所有设备都只能直接和内存打交道。
- 中央处理单元(CPU):CPU由运算器(ALU,Arithmetic and Logic Unit)和控制单元组成。运算器负责进行算术和逻辑运算,而控制单元负责解析和执行存储器中的指令,并协调各个组件的工作。CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
- 指令集架构(ISA):ISA定义了计算机体系结构所支持的指令集和指令的格式。它规定了程序员和编译器与硬件交互的方式,包括操作码、寻址方式等。
- 顺序执行:冯·诺伊曼体系结构通过按照存储器中指令的顺序依次执行来完成计算任务。指令被取出、解码并依次执行,从而实现计算机的运算功能。
- 输入和输出设备:冯·诺伊曼体系结构还涉及输入设备(如键盘、鼠标)和输出设备(如显示器、打印机),用于与外界进行数据交互。外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
以上这些概念共同构成了冯·诺伊曼体系结构,它将计算机抽象为一台按照指令顺序执行的机器,通过存储器中存储的指令和数据来完成计算任务。这种体系结构具有通用性和灵活性,并成为现代计算机系统设计的基础。
冯诺依曼体系结构的设计
为什么所有设备都只能直接和内存打交道,而不能和CPU交流,那样不是直接就输入了吗?
有时候,路径最短并不是最快最好的,假如设备直接和CPU交流而不和内存打交道,因为输入设备和输出设备的速度远小于CPU的计算速度,CPU直接从输入设备读取数据,经计算后再交给输出设备输出数据,这样会大大降低计算机的执行能力。
为什么要设计成这个样子,要有内存在中间横插一脚?
理由如下:假如外设直接和CPU相连,由于短板效应,速度就比较慢了。
既然CPU速度快,为什么不用空间大一点的,让整体都变快?
主要是价格原因,计算机之所以能够这么快的流行起来,主打的就是便宜且质量好适合大众,而CPU价格昂贵,所以就有了内存来做中间的缓冲区的故事。
CPU是如何知道,输入设备有数据需要读取的呢?
两台电脑如何通信?
后记
本篇讲述了冯诺依曼体系结构的相关知识,包括冯诺依曼体系结构提出的背景、概念及设计。