好我们先来看一下存储器,在了解存储器之前呢我们先来了解一下
用于衡量存储空间大小的度量单位
大家都知道在计算机里头能够存储的最小数就是1或者0
那么在计算机里头我们把用来存储这一个1或者0的这个空间,称作一个位
位,叫bit
那么,通常呢为了便于使用和程序编写
我们把8个位连接起来,8个位连接起来
组成一个东西,叫字节。英文呢,是byte
啊被称为字节 在这呢先告诉大家,字节是我们在程序里头
能够控制的最小的内存单位了
那么通常呢我们在使用计算机的时候,我们会看到
一个文件的大小可能是什么几k,什么几兆,什么几G
OK,这都是用来衡量存储空间大小的。那么这些单位之间是什么关系呢
那么可能大家比较常见是k,啊kb 那1kb呢就相当于
1024个字节。比k大的呢
叫兆,1兆呢,相当于1024k。比兆大的呢
叫G,1G呢,相当于1024兆。比G大的呢
叫T,1T呢,相当于1024G。那么比T大的呢叫做P
1P大概相当于1024T
那么比P更大的呢 还有EB,还有ZB,还有YB。随着计算机的使用不断深入
那么后面这些就会比较了解 那么在一些不是特别精确的情况下呢,我们也把
1kb简单的等同于1000byte
一兆B呢就相当于1000kb,然后1G呢就相当于1000兆
啊这样的一个数量关系。一个不准确的说法 那在一些不是那么精确的场合呢,也可以这么去说
首先我们来看一下,计算机里头存储器的种类
我们先来看一下计算机里头存储器的种类。
计算机里头存储器的种类有很多种。比方说
有寄存器,有高速缓存
有内存还有外存,外存常见的就是硬盘了。不同的存储器呢存储速度也不一样
而且这些存储器呢,在计算机里头 存在的多少,也不一样
比方说,一个基本的规律就是说。越快的存储器在计算机里头存储的越少
比方说寄存器。寄存器一般只有在CPU的内部才会有。啊数量比较少
它是用于存放那些待操作的那么数和结果的
用来暂存这个。它的工作频率跟CPU一样,是相当相当快
那么这个存储器稍微慢一点的,叫做高速缓存
那高速缓存呢,很多时候也会在CPU里头
有一些高速缓存呢也在外头。它的工作频率呢,接近CPU的工作频率,也非常非常快
比高速缓存更大一些的是内存 内存更大一些,但是它的读取速度会更慢一些
那么,最慢的呢,就是外存了,跟外存交互呢都是特别需要时间的
除了这个速度和大小的这个关系之外呢,还有一个就是关于它这个造价 寄存器是最贵的,寄存器是最贵的
高速缓存呢次之,内存呢再次之,当然最便宜的就是硬盘了。现在的硬盘非常非常的便宜
那么先来看一下寄存器,那寄存器呢通常都在CPU的内部
它的工作节拍呢跟CPU也是一致的
一次读写大概需要零点几纳秒的时间,非常非常的快
当然,寄存器的制作成本是非常非常的高的 那么一般呢一个芯片里头只配备少数的这个寄存器
啊,有十几个,差不多啦 第二类存储器呢,叫做高速缓存,CACHE
有一些高速缓存呢,在CPU的内部
被称为内部高速缓存,INTERNAL CACHE 比方说这是一个AMD,
64位的一个芯片 在这个芯片里头我们可以看到,有大量的
缓存。这个区域,高速的CACHE
直接被制造在CPU里头。还有一些告诉缓存是在外头
CPU的外头。比方说在主板上。叫做外部高速缓存
那么在这个主板上呢,高速缓存的位置大概在这
在离CPU不是特别远的一个地方。这就是,在外部的一个高速缓存
一般呢这个高速缓存它的读写速度也是非常快的
在纳秒里边也能完成。也就是说它的工作频率一般在1G
到 几G 的这个范围里头 随着计算机的发展,这个高速缓存也在不断的增加
从以前的几K,到现在的几兆。啊,都有
除了高速缓存之外,最重要的存储零件,就是内存了
刚才我们看到这是一个主板,这是内存的一个位置
内存条呢都被一根一根的插在这里。内存呢就是主要它的作用就是用来存放CPU中那些准备用来处理的那些数据
还有一个很重要的作用就是负责存储那些与外界进行存储信息交换的那些数据
那随着内存的发展呢价格越来越低廉。当然它的工作频率跟CPU的工作频率还是有一些差别的
一般的内存的工作频率是跟前台总线的工作频率想匹配的
这个呢是我在网上查到的目前比较通用的一个内存
我们可以看它的型号。240pin就表示有240个引脚。类型是DDR3
工作频率,1600。啊这是非常快的一个速度了
那么利用高速缓存,外部高速缓存和内存这样的一些存储机制呢
就相于形成了一个
给CPU提供数据的一个,供应链 那么网上有张图呢非常非常的形象,我觉得写的挺好
它把CPU呢比作一个工厂,然后这些缓存呢,分别都表示成仓库
仓库呢,提供给工厂数据。供它来分析。在这样一个数据供应链的机制之下呀
CPU 在访问数据的时候有这样的规律。它总是先从最近的缓存中开始找
如果找到了就直接去访问这个数据。如果没找到才会去check
离它更远的缓存。如果再更远的缓存里面找到了这个数据
它就把这整个数据块,加载到离他更近的缓存中。从而使得呢,最整个数据块的访问都可以在这个更高的缓存里头进行
不需要更速度更低的缓存,进行交互
通过这种措施,它想要达到的目的,就是尽量减少跟慢的缓存的,那些交互
从而提高处理速度。其实CPU的这种工作呢,是符合一个基本原理的。叫做局部性原理
也就是说CPU对于数据的访问啊,通常具有一定的局部性。一个是指时间上的局部性
一个是指空间上的局部性。所谓时间上的局部性是指
就是如果一个内存地址
它正在被访问的话,那么,在近期内,这个内存地址,同样的内存地址,被再次访问的几率,就非常非常高了
空间局部性,最近可能会用到的信息
通常与当前正在使用的信息。空间上非常的临近
啊,这是两条。正因为有了这个局部性原理
所以我们可以使用这种多级缓存的机制来加快CPU的存储速度