您的位置:首页 > 理论基础

计算机存储结构分析(寄存器,内存,缓存,硬盘)

2016-12-02 15:15 309 查看

前言

一个计算机包含多种存储器比如:寄存器、高速缓存、内存、硬盘、光盘等,为啥有这么多种存储方式,对于不太了解的人,总是觉得云里雾里的,搞不明白原因。

计算机主要的功能就是运算(cpu),但是要完成一个任务,就要读取运算指令,并将结果输出给用户;因此,指令的存储、运算过程中中间状态的存储、结果的保存等都需要存储器。

第一代计算机,接收指令是通过读取穿孔卡片来实现的,这个穿孔卡片就可以理解为最老的用来存储命令的存储器。

理想状态下,存储器的执行速度应该快过计算机的运算速度,这样才可以最大化的利用cpu的计算能力。比如:cpu的运算速度是每秒100条指令,但是如果存储器的速度是每秒最多能读取10条指令,那么cpu就有90%的时间是等待指令; 这样的存储器是有的,那就是寄存器,寄存器是和cpu同样材质制作的,速度和cpu一样快,当然价格也就和cpu一样了。

但是如果一台计算机,存储器都是寄存器的话,那造出来的计算机,肯定就是天价了,普通人都买不起。计算机的设计着综合:读写速度,空间大小,产品价格等因素采用了分层结构来实现,取了一个性价比最好的方案。

分层结构

如下所示,顶层的存储器(寄存器)读写速度较高,但是空间较小。底层的读写(比如硬盘)速度较低,但是空间较大。
寄存器和cpu速度相当,空间比较小在kb级别。
高速缓存比寄存器要慢1倍左右,但是空间可以达到MB级别。
内存比缓存要慢10倍左右,但是空间可以达到GB级别,当前个人电脑一般都不小于4G
硬盘这个速度更慢,比内存要慢上万被,千万被级别,但是价格也比较偏移,空间也很大。
其他存储光盘,软盘,usb外接的其他存储器,作为硬盘的一个补充,有便于携带的优点

总结:计算机的存储设计的这么复杂,并不是设计者故意要搞得麻烦,而是要兼顾性能和价格综合考量的一个因素,如果未来有一个存储产品,能达到当前寄存器的读取性能,而又可以做的空间极大,并且价格和硬盘一样,或者说比硬盘还便宜,且数据是掉电不丢失的话,那么计算机的存储结构肯定就被简化了,直接就只有一个存储器。

小贴士:现在买电脑时,存储器上,大家主要关注在了 内存大小和硬盘大小,但是从分层结构图上,可以看出缓存大小更加重要,(当然如果厂商公布寄存器大小的话,这个也要关注)。

寄存器

寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果,寄存器虽然也能存储数据,但同内存等存储器相比,寄存器又有自己独有的用途:其主要是CPU对内存中的数据进行处理时,往往先把数据取到寄存器中,而后再作处理,加快直接同内存读取指令和读写数据的速度。

高速缓存

高速缓冲存储器是存在于内存与CPU之间的存储器,容量比较小但速度比内存高得多,
接近于CPU的速度。高速缓存是是加速读取速度的一个桥梁(工具)。CPU向内存读取数据时,首先查询缓存区是否有对应数据,如果有则直接读取,没有再从内存中读取。高速缓存中存储的都是内存中的数据,这部分数据是cpu访问比较频繁的部分。

系统也会动态管理缓存中的数据,如果有数据访问频率降低到一定值,就从缓存中移除,而将内存中访问更加频发的数据替换进去。(高速缓存可以不只一级,可以有多级缓存区)

内存

这个才是计算机运行过程中的存储主力,用于存储 指令(编译好的代码段),运行中的各个静态,动态,临时变量,外部文件的指针等等。
前面提到的寄存器和高速缓存只是加速存储速度的中间部件,原始运行文件肯定都是先加入到内存中的,因此内存的大小决定了一个可运行程序的最大大小。
举例:如果内存大小是4G,一个程序装入内存需要大于4G空间的话,改程序是无法运行的,当然实际是还要去掉操作系统占用的内存,因此连4G都无法满足的。(当然现在有了虚拟内存,也就是将硬盘的一部分映射为内存空间,将不经常访问的指令放到虚拟内存中,这样其实是支持大于4G的程序的,这里只是在假设没有虚拟内存的情况下的举例说明)。

硬盘

硬盘这个东西,大家应该都比较熟悉,其优点是空间大,价格便宜,并且掉电数据不丢失。常常用来存储需要永久存储的文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息