首页 > 编程笔记 > C语言笔记 阅读:6,765

CPU、内存、硬盘、显卡、主板、显示器之间的关系

它们之间的关系可以通过一个例子来说明。比如说打开一部电影,以下说明这部电影是怎么运行起来的。

电影是如何运行的

首先要双击这部电影,这个“双击”是操作系统提供的一个操作。电影本身是放在硬盘上的,当我们通过鼠标对它进行双击之后,操作系统就会将硬盘上的这部电影拷贝到内存中。

为什么要将它拷贝到内存中呢?因为CPU不能直接处理硬盘上的数据。所以要先将硬盘上的数据拷贝到内存中,然后再通过CPU处理内存里面的这部电影。处理的结果就是将一些数据变成图像、另一些数据变成声音。图像数据发送给显卡,通过显示器显示出来;声音数据发送给声卡,声卡将它变成声音放出来。这基本上就是一部电影的运行过程。

CPU为什么不能直接操作硬盘却能直接操作内存

原因很简单,因为内存的速度比硬盘快很多。CPU 的运行速度很快,硬盘的速度无法跟上 CPU 的速度,所以它们两个在运行的时候无法同步,因此 CPU 无法直接对硬盘进行操作。

狭义上的内存指的就是我们所说的内存条,但实际上 CPU 也不是直接操作内存的,因为内存的速度虽然比硬盘快很多,但仍然没有 CPU 快。所以在内存和 CPU 之间还有“缓存”,比如一级缓存、二级缓存。缓存的速度比内存更快,更加接近 CPU 的速度,所以 CPU 读取数据时操作的都是缓存。

但广义上说,缓存也属于内存,所以我们就说 CPU 可以直接操作内存。

内存的速度为什么比硬盘的速度快

内存的速度之所以比硬盘的速度快(不是快一点,而是快很多),是因为它们的存储原理和读取方式不一样。
  • 硬盘是机械结构,通过磁头的转动读取数据。一般情况下台式机的硬盘为每分钟 7200 转,而笔记本的硬盘为每分钟 5400 转。
  • 而内存是没有机械结构的,内存是通过电存取数据的。

电的速度当然要比磁头的运动快得多。所以,有机械结构的磁头的读取速度是不能同无机械结构的电的速度相比的。

那么内存的本质是什么呢?我们应该都听说过 RAM 存储器,它是一种半导体存储器件。RAM 是英文单词 Random 的缩写,即“随机”的意思。所以 RAM 存储器也称为“随机存储器”。

那么 RAM 存储器和内存有什么关系呢?内存就是许多 RAM 存储器的集合,就是将许多 RAM 存储器集成在一起的电路板。RAM 存储器的优点是存取速度快、读写方便,所以内存的速度当然也就快了。

内存通过电存取数据,本质上就是因为 RAM 存储器是通过电存储数据的。但也正因为它们是通过电存储数据的,所以一旦断电数据就都丢失了。因此内存只是供数据暂时逗留的空间,而硬盘是永久的,断电后数据也不会消失。

为什么不将内存造得跟硬盘一样大

计算机的内存一般是 4GB,而硬盘的容量却是几百 GB,甚至 2TB。为什么内存的容量那么小?既然内存速度那么快为什么不造得大点?为什么不造得与硬盘一样大?

原因主要有三个:
  1. 内存的速度之所以比硬盘快,是因为它们的构造不一样。对于同样的容量,内存的价格太贵。
  2. 内存只是暂时存储数据的,断电后数据就丢失了,而且它的速度很快,所以不需要那么大的容量。
  3. 第三个原因与地址总线的数量有关,这个后面介绍指针的时候再讲。

CPU是如何操作内存的

那么 CPU 是如何操作内存的?一般是先将内存里面的数据读入 CPU 中,然后 CPU 对数据进行处理,处理完了再将结果写回内存,最后内存再将数据写入硬盘。

CPU 对内存进行操作通过三根总线:控制总线、地址总线和数据总线。
  • 控制总线是传输控制信号的,比如时钟、复位、中断、读、写等。CPU是从内存中读数据还是向内存中写数据就是通过控制总线控制的。内存中有很多存储单元,数据都存储在这些单元中,每个单元都有一个地址。所以要想得到这些单元中的数据就必须先知道每个单元的地址。
  • 地址总线就是传输地址信息的。
  • 数据总线顾名思义就是传输单元中的数据的。

主板的作用

主板在计算机中起着重要作用。它作为计算机的核心配件之一,是计算机最重要的平台。那这个平台是干什么用的呢?

台式机上所有的设备都是连在主机上的,而主机上有很多接口,这些接口全部都是连在主板上的。鼠标、键盘、耳机、显示屏等外部设备都是通过这些接口连到主板上的。在主机内部,电源、风扇、硬盘、光驱也都是连在主板上的。而CPU、内存条、显卡、声卡、网卡这些硬件则全部都是直接插在主板上的。

所以计算机中所有的硬件要么是连在主板上的,要么是直接插在主板上的,但不管怎么样都是与主板相连的。而且主板上有很多线路,所有硬件之间的信号传输也都是通过主板进行的,所有硬件通过主板被有效组织起来。

此外,主板还能接收电源提供的电能并加以分配,从而给各硬件供电。而且还能接收电源开关和操作系统发来的开机信号,从而实现开机、关机、待机、重启和休眠等操作。