通用计算机仍旧遵循冯诺依曼,冯·诺依曼计算机体系

1 基本硬件组成

一台计算机组成至少如下:

CPU(Central Processing Unit)

中央处理器,计算机的所有计算由CPU执行。

内存(Memory)

撰写的程序、打开的浏览器、运行的游戏,都要加载到内存里才能运行。

程序读取的数据、计算得到的结果,也都要放在内存里。内存越大,能加载的东西自然也就越多。

存放在内存里的程序和数据,需要被CPU读取,CPU计算完之后,还要把数据写回到内存。然而CPU不能直接插到内存上,反之亦然。

主板(Motherboard)

一个有着各种各样,有时候多达数十乃至上百个插槽的配件。CPU、内存都要插在主板。

主板的芯片组(Chipset)和总线(Bus)解决了CPU和内存之间如何通信的问题。

芯片组

控制数据流转

总线

实际数据传输的高速公路。总线速度(Bus Speed)决定数据传输速度

输入(Input)/输出(Output)设备,即I/O设备。

显示器这所谓的输出设备。

鼠标和键盘所谓的输入设备。

硬盘,数据持久化。

显示器、鼠标、键盘和硬盘这些东西并不是一台计算机必须的部分。

其实只需要有I/O设备,能让我们从计算机里输入和输出信息即可。云服务器,只要让计算机能通过网络,SSH远程登陆访问就好了,因此没必要配显示器、鼠标、键盘。

显卡(Graphics Card),使用图形界面操作系统的计算机必不可少。

有人可能要说了,我装机的时候没有买显卡,计算机一样可以正常跑起来啊!那是因为,现在的主板都带了内置的显卡。

如果玩游戏,做图形渲染或者跑深度学习应用,就需要买一张单独显卡,因为显卡里有GPU(Graphics Processing Unit,图形处理器),GPU一样可以做各种“计算”的工作。

鼠标、键盘以及硬盘都是插在主板。作为外部I/O设备,它们通过主板上的南桥(SouthBridge)芯片组,来控制和CPU之间的通信的。

“南桥”芯片

它在主板上的位置,通常在主板的“南面”

它的作用就是作为“桥”,来连接鼠标、键盘以及硬盘这些外部设备和CPU之间的通信。

以前的主板上通常也有“北桥”芯片,用来作为“桥”,连接CPU和内存、显卡之间的通信。不过现在的主板上的“北桥”芯片的工作,已经被移到了CPU内部。

2 冯·诺依曼体系结构

因为手机尺寸的原因,手机制造商们选择把CPU、内存、网络通信,乃至摄像头芯片,都封装到一个芯片,然后再嵌入到手机主板上。

这种方式叫SoC,也就是System on a Chip(系统芯片)。

所以个人电脑和智能手机的硬件组成方式不太一样。

无论是个人电脑/服务器/智能手机,还是Raspberry Pi这样的微型卡片机,都遵循冯·诺依曼体系结构(Von Neumann architecture),也叫存储程序计算机。

暗含如下概念:

“可编程”计算机

“存储”计算机

什么是“不可编程”???

计算机是由各种门电路组合而成的,然后通过组装出一个固定的电路版,完成一个特定的计算程序。

一旦需要修改功能,就要重新组装电路。这样的话,计算机就是“不可编程”的,因为程序在计算机硬件层面是“写死”的。

最常见的就是老式计算器,电路板设好了加减乘除,做不了任何计算逻辑固定之外的事情。

我们再来看“存储”计算机。

程序本身是存储在计算机的内存里,可以通过加载不同的程序来解决不同的问题。

有“存储程序计算机”,自然也有不能存储程序的计算机。

典型的就是早年的“Plugboard”这样的插线板式的计算机。整个计算机就是一个巨大的插线板,通过在板子上不同的插头或者接口的位置插入线路,来实现不同的功能。这样的计算机自然是“可编程”的,但是编写好的程序不能存储下来供下一次加载使用,不得不每次要用到和当前不同的“程序”的时候,重新插板子,重新“编程”。

可以看到,无论是“不可编程”还是“不可存储”,都会让使用计算机的效率大大下降。

而这个对于效率的追求,也就是“存储程序计算机”的由来。

冯,基于当时在秘密开发的EDVAC写了一篇报告First Draft of a Report on the EDVAC,描述了他心目中的一台计算机应该长什么样。这篇报告在历史上有个很特殊的简称,叫First Draft。这样,现代计算机的发展就从祖师爷写的一份草案开始了。

First Draft里面说了一台计算机应该有哪些部分组成

首先是一个包含

算术逻辑单元(Arithmetic Logic Unit,ALU)

处理器寄存器(Processor Register)

的处理器单元(Processing Unit),用来完成各种算术和逻辑运算。

因为它能够完成各种数据的处理或者计算工作,因此也有人把这个叫作数据通路(Datapath)或者运算器。

然后是一个包含

指令寄存器(Instruction Reigster)

程序计数器(Program Counter)

的控制器单元(Control Unit/CU),用来控制程序的流程,通常就是不同条件下的分支和跳转。

在现在的计算机里,上面的算术逻辑单元和这里的控制器单元,共同组成了我们说的CPU。

存储器

存储数据(Data)和指令(Instruction)的内存。以及更大容量的外部存储,在过去,可能是磁带、磁鼓这样的设备,现在通常就是硬盘。

分类

存储介质

半 导体存储器:

内存、U盘、固态硬盘

磁存储器:

磁带、磁盘

存取方式

随机存储器(RAM)

随机读取、与位置无关

串行存储器:

与位置有关、按顺序查找

只读存储器(ROM):

只读不写

层次结构

d10ad8cc6d9c66789d7df4b48a14d1a5.png

0a6d9e179bc7f92740b989e743759d57.png

原理

缓存-主存层次

局部性原理。即在CPU与主存之间增加一层速度快(容量小)的Cache,以解决主存速度不足问题。

主存-辅存层次

局部性原理。在主存之外增加辅助存储器(磁盘、SD卡、 U盘等),以解决主存容量不足的问题。

输入和输出设备

无论是使用什么样的计算机,都是和输入输出设备打交道。

个人电脑的鼠标键盘是输入设备,显示器是输出设备

我们用的智能手机,触摸屏既是输入设备,又是输出设备

跑在各种云上的服务器,则是通过网络来进行输入和输出。这个时候,网卡既是输入设备又是输出设备

任何一台计算机的任何一个部件都可以归到运算器、控制器、存储器、输入设备和输出设备中,而所有的现代计算机也都是基于这个基础架构来设计开发的

而所有的计算机程序,也都可以抽象为从输入设备读取输入信息,通过运算器和控制器来执行存储在存储器里的程序,最终把结果输出到输出设备中。而我们所有撰写的无论高级还是低级语言的程序,也都是基于这样一个抽象框架来进行运作的。

通用设计

数据线

I/O设备与主机之间进行数据交换的传送线。

分为:

单向传输数据线

双向传输数据线

状态线

I/O设备状态向主机报告的信号线

查询设备是否已经正常连接并就绪

查询设备是否已经被占用

命令线

CPU向设备发送命令的信号线

发送读写信号

发送启动停止信号

设备选择线

主机选择I/O设备进行操作的信号线

对连在总线上的设备进行选择

CPU与IO设备的通信

程序中断

当外围IO设备就绪时,向CPU发出中断信号。CPU有专门的电路响应中断信号。

提供低速设备通知CPU的一种异步的方式,CPU可以高速运转同时兼顾低速设备的响应。

程序中断的一个简单流程

0a7b938d18d47f337e4e08b64d377238.png

不过频繁切换 CPU 也会降低性能。所以又有如下方式

DMA (直接存储器访问)

DMA直接连接主存与I/O设备

当主存与I/O设备交换信息时,无需中断CPU,可提高 CPU 利用率

62f6b687f70ad1368060f405604248fd.png

CPU速度与I/O设备速度不一致。

硬盘与外接显卡里都有。

b7d246bc5b15479dae706d43f79320e2.png

标签:体系,存储,计算机,诺依曼,程序,内存,CPU,设备

来源: https://blog.csdn.net/qq_33589510/article/details/113816498

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值