2 硬件考虑
另一种错误说法是将来进行系统结构设计时可以毫不吝惜地使用硬件。计算机系统结构设计者认为按目前硬件价格大幅度下降的势头,硬件的成本将非常低,所以我们能够用比今天要复杂得多的硬件来构造系统。诚然,如果成本相同,那么今后的系统会比目前的系统功能更强也更复杂,但这一结论并不意味着能随便浪费硬件。
假设系统A的逻辑结构复杂度是目前某个系统的100倍,系统B的性能基本上和系统A相同,而它的逻辑结构复杂度只是目前这个系统的10倍或20倍,那么系统A在竞争中将处于非常不利的地位。若系统A能多卖出几百台或几千台,那么系统A的价格还可能和系统B竞争\.如果系统A和系统B的销售量差不多,那么系统A的低效率使得它的价格要比系统B高,当然这里假定两个系统都是由相同技术的部件组成。如果系统A的芯片的集成度是系统B的芯片的集成度的10倍,并且系统A的每个芯片的价格要比系统B的每个芯片便宜10倍,那么上述结论就会发生变化,即是器件技术而不是系统结构技术决定系统的价格了。
本书还将研究用低成本部件构成系统结构的方法,同时需要注意这些系统结构的效率问题,以确保我们能采用这些低成本部件。
例如,有一个没有共享存储器的多处理机系统,若要在其上面运行一个并行程序,方法之一是把这个程序装入所有处理机。当这个程序较小或者处理机数目不太多时,这个程序的多个副本所占用的存储器容量还是可以接受的。但是,如果程序长达1兆字节,且系统有1000台处理机,那么这个程序占用存储空间将达1000兆字节。如果有办法使所有处理机能共享一个程序副本,那么就不需要这么大存储容量了。
如果系统A要多个程序副本,而系统B由于设计巧妙,达到同样的性能却只要一个程序副本,那么系统A所要求的1000兆字节的存储器将使它无法和系统B竞争,除非存储器的价格很便宜,以致1000兆字节的存储器的成本在整个系统中只占很小的部分。系统A的设计者总希望存储器的价格不久能下跌,但是系统A需要增加10位存储器,而这是一个巨大的数字。如果按目前价格下跌的趋势继续下去,每位存储器的价格下跌到能使10位存储器的总价格也很低,那大约需要20至30年。
显然,系统A的设计者必须寻找其它方法以便克服系统A的这个缺点,使它适于某些特殊应用。如果系统A的每台处理机执行不同的程序,那么在这种应用场合系统A的总效率将很高。而系统B在同样这种应用场合将很难与系统A相比。
系统结构设计者应把自己的系统在多个不同的应用场合使用,搞清楚使用情况,用这种方法来量测系统的性能。由于应用场合不同,系统的效率可能变化很大。上述这种测量系统性能的方法能揭示某种系统结构在哪些应用场合能使用户受益,而另一些应用场合采用另一些系统结构会更好一些。
假设一个系统由很大数量的处理机组成,比如有16000台处理机。还假设当系统解决某个应用问题时,N台处理机的加速比与log2N成比例。那么,16000台处理机的加速比是14x,其中x是某个常数。如果这16000台处理机非常便宜,以致可以忽略它们的成本,而这个应用问题在这一系统上运行要比在单处理机上运行快14x倍,增加处理机台数所增加的成本不算大,那么虽然加速比不算高但还是值得的。
假设有一个系统B,它除了处理机台数只有128外,其它和系统A相同,它的加速比是7x,系统A比系统B要复杂100多倍,而系统A的速度只有系统B的2倍。这只有当硬件的成本几乎为零时,系统A才能和系统B竞争。而至少在今后10年里,通过用100倍硬件来获得2倍的性能的方法看来是不尽合理的。
这一节的讨论告诉我们:
(1)我们可以用价格和性能这两项指标来评价系统结构的好坏。
(2)量测系统结构的效率时必须考虑负载。
(3)使用大量器件但效率很低的系统结构是无法与设计简单而效率很高的系统结构竞争的。