第一章 计算机系统结构的基本概念

例1.4   假设有两台机器,它们对条件转移指令的处理采用不同的方法,采用一条比较指令来设置相应的条件码,由紧随其后的一条转移指令对此条件码进行测试,以确定是否进行转移。显然实现一次条件转移要执行比较和测试两条指令。采用比较功能和判别是否实现转移功能合在一条指令的方法,这样实现一条件转移就只需一条指令就可以完成。假设这两台机器的指令系统中,执行条件转移指令需2个时钟周期,而其它指令只需1个时钟周期。又假设在上,条件转移指令占总执行指令条数的20%。由于每条转移指令都需要一条比较指令,所以比较指令也将占20%。由于在转移指令中包含了比较功能,因此它的时钟周期就比要慢25%。现在要问,采用不同转移指令方案的CPUA和CPUB,那个工作速度会更快些?

解:由上述假设可计算出=0.2×2+0.8×1=1.2,×1.2×时钟周期长度由于没有比较指令,使转移指令由原来占20%上升为20%÷80%=25%,它需2个时钟周期,而其余的75%指令只需1个时钟周期,所以 = 0.25×2+0.75×1=1.25。由于中没有比较指令,因此 = 0.8×。另外,时钟周期长度 = 1.25时钟周期长度,所以, = ××时钟周期长度 = 0.8 ICA×1.25×1.25时钟周期长度 = 1.25 ×时钟周期长度。可见小,所以运行得更快些。

例1.4. 在例1.3中,如果的时钟周期只比的慢10%,那么哪一个CPU会工作得更快些?
解:
  = 1.2 ×时钟周期长度
  因时钟周期长度 = 1.10时钟周期长度,所以
  = 0.8 ×1.25×1.10时钟周期长度
     = 1.10 ×时钟周期长度
  由于所需时间较少,所以运行得更快些。

4. 访问的局部性原理
  程序往往重复使用它刚刚使用过的数据和指令。实验表明,一个程序用90%的执行时间去执行仅占10%的程序代码。局部性的实质是:根据程序的最近情况,可以较精确地预测出最近的将来将要用到哪些指令和数据。局部性分时间上的局部性和空间上的局部性两种。时间上的局部性是指最近访问过的代码是不久将被访问的代码。空间上的局部性是指那些地址上相邻近的代码可能会被一起访问。存储器体系的构成就是以访问的局部性原理为基础的。