1、存储容量
  由于在计算机的使用者(应用程序员或系统程序员)看来,存储系统的容量要接近M2存储器的容量,因此,可以选择M2存储器进行编址,对于M1存储器可以不编址,或者只在系统内部进行编址。当然,也可以面向计算机的使用者为存储系统另外设计一个抽象的地址空间,在系统内部,再对两个存储器分别进行编址,并且把两个存储器的地址映象到这个抽象的地址空间中。
  对存储系统进行编址的要求是:对计算机的使用者提供尽可能大的地址空间,而且能对这个地址空间进行随机访问。
  例如,对于Cache存储系统,面向系统程序员,选择主存储器进行编址,对Cache在内部采用相联访问方式进行管理。因此,从系统程序员看Cache存储系统,看到是主存储器的地址空间,存储系统的容量就是主存储器的容量。
  对于虚拟存储系统,由于磁盘存储器不是一种能随机访问的存储器,它的地址空间不能直接被一般指令访问,而主存储器的地址空间对于计算机的使用者来说又太小。因此,虚拟存储系统为使用者另外设计了一个虚拟地址空间,它既不是主存储器的地址空间,也不是磁盘存储器的地址空间。这个虚拟地址空间比主存储器的实际地址空间要大得多,而且采用与主存储器同样的随机访问方式。
  2、单位容量的平均价格
  整个存储系统的平均单位容量价格可以这样来计算:
       
  当S2》S1时,则有C≈C2。因此,整个存储系统的单位容量价格C接近于比较便宜的M2存储器。
  3、工作速度
  存储系统的访问周期与命中率H的关系非常大。命中率可以简单地定义为在M1存储器中访问到的概率,它一般用模拟实验的方法得到。选择一组有代表性的程序,在程序执行过程中分别统计对M1存储器的访问次数N1和对M2存储器的访问次数N2,然后代入下面的(5.1)关系式计算。
          (5.1)
  整个存储系统的访问周期可以用M1和M2两个存储器的访问周期T1、T2和命中率H来表示:
       T=H·T1+(1-H)·T2 (5.2)
  当命中率H→1时,T→T1,即存储系统的访问周期T接近于速度比较快的M1存储器的访问周期T1。
  为了便于相互进行比较,定义存储系统的访问效率为:
          (5.3)
  访问效率越高,说明存储系统的速度与相对比较快的那个存储器的速度就越接近,这正是我们所希望的。把(5.2)代入(5.3)得到:
         (5.4)
  从(5.4)关系式看到,存储系统的访问效率主要与命中率和构成存储系统的两级存储器的速度之比有关。因此,可以得出这样的结论:如果要使存储系统的速度与相对比较快的那个存储器的速度接近,有两条途径,一条途径是提高命中率H,另一条途径是构成存储系统的两个存储器的速度不要相差太大。但是,对于虚拟存储系统,由于两级存储器的速度相差特别悬殊,T2/T1>105。如果要获得比较高的访问效率(如e=0.9),则需要有极高得命中率H。
       
计算得H≈0.999999。
  这么高的命中率如何达到呢?
  磁盘存储器在物理上是以块为单位(512个字节)访问的,在逻辑上通常以1KB至16KB为单位访问。虽然磁盘存储器的寻址时间很长,但当磁头找到要访问的数据块之后,数据的传输速率相当高。因此,当主存储器不命中时,通过操作系统把将要使用的一大批程序和数据都调入主存储器,使得在以后的几十万次以上的对虚拟存储系统的访问都能在主存储器中命中。当然,这要求主存储器的容量比较大,能够一次装入比较多的程序和数据,而且,以前装入的程序和数据要能够比较长时间的保存下来,能够多次使用。这样,尽管两级存储器的速度相差得特别悬殊,一次不命中需要花费比较长的时间来进行调度,然而,由于命中率特别高,整个虚拟存储系统的访问效率还是很高的。
  对于Cache存储系统。目前CPU与主存储器的速度相差达两个数量级,一次不命中从主存储器中只能读到几个字(少数Cache存储系统为十几个字),如果只用一级Cache,则要求命中率H在0.999左右,这实际上是做不到的。通常要采用两级或三级Cache,并在CPU内部的设置多种缓冲存储器来提高数据的重复利用率。
  实践证明,采用预取技术可以大幅度提高命中率H。具体方法是:在不命中时,当数据从主存储器中取出送往CPU的同时,把主存储器相邻几个单元中的数据都取出来送入Cache中。根据程序的局部性原理,CPU以后再对Cache存储系统访问时,命中率就会提高。不难理解有下面的关系式:
       
  其中n为Cache的块大小与数据重复使用次数的乘积,H是原来的命中率,H′是采用预取技术之后的命中率。
  Cache的块大小一般在2至16个字,预取到Cache中的数据的重复利用率通常大于5次。如果Cache的块大小为4个字,数据的重复利用率为5次,Cache存储系统原来的命中率为H=0.8,则有:n=4×5=20,采用预取技术之后,命中率提高到:
       
  这时,如果构成Cache存储系统的两级存储器的速度之比为5,则这个Cache存储系统的访问效率e=0.96。
  上面的公式可以采用如下两种方法来证明:
  第一种:采用预取技术之后,不命中率降低n倍:第二种:在原有命中率计算公式中,把访问次数扩大到n倍,这时,由于采用了预取技术,命中次数为:nN1+(n-1)N2 ,不命中次数仍为N2 ,因此新的命中率为: