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


  软件和硬件的成本各由两部分组成:
  1.一次性开发成本。
  2.每个部件的生产成本。不管是硬件还是软件,每种产品的实际成本是该产品产量的函数,如图1.6所示。图中曲线是全部产品的累加成本。我们从图中可以看到第一个产品的成本等于开发成本。成本曲线随着产量的增加不断上升。但产量不断增加时,成本曲线上升的趋势变慢,其原因是随着产量的增加,生产经验不断丰富,每个产品的生产成本下降了。产品的单价等于图中曲线值除以产品的数量再加上利润值。如果某个产品的开发成本很高,那么产品的单价与产品的产量就很有关系了。

  在软件基本上是免费提供的年代,软件的开发成本或者包括在硬件的开发成本里,其费用由准备自己开发大量软件的用户承担,或者干脆不考虑,或者由软件生产者承担。由于当时硬件的生产成本非常高,软件的生产成本同硬件比起来就低多了。只要软件的开发成本不必通过直接卖软件来补偿,那么免费赠送软件还是合理的。
  渐渐地,软件的开发成本越来越高,再也不容忽视,但是复制一个软件基本上不需要费用。这一点和大规模生产VLSI芯片类似。这种芯片的开发成本和在其上运行的操作系统的开发成本或和数据库管理应用程序包的开发成本差不多。
  在生产数量很大的情况下,每个芯片的生产成本与软件的生产成本差不多。然而芯片以软件的十分之一价格出售,而包括这种芯片的计算机系统的价格却是软件成本的十倍。从这一点来看,芯片、软件和计算机系统的价格似乎和生产成本无关。价格和销售量有关,其原因是价格必须包括开发成本。同一种芯片的销售量可达几百万片,而数据库管理软件的销售量只有几十万份,仅此一项就可以造成十倍的价格差距。
  下面我们分析在今后几年中与软件成本相比,硬件成本仍将很高的原因。这里的成本是指生产成本。如今,软件的生产成本很低,并且可以进一步下降,所以在市场竞争中,软件的价格主要是软件的开发成本。
  虽然每个芯片的生产成本已经很低了,但整个硬件的生产成本仍然要比软件的生产成本高许多倍。如今复制一个软件要比复制一个硬件的花费少得多。硬件需要装配和测试以保证每一复制品确实满足原始设计的要求。这同软件复制只需同源程序进行比较,看看其中每一位的内容是否相同就可以确定其准确度,比较起来显然困难多了。此外,硬件成本既包括每个部件的生产成本还包括开发成本,而软件成本基本上是开发成本。当计算机只由一个芯片构成时,那么这种计算机的成本和软件成本有点类似。再生产一台由几百或几千个部件组成的计算机要比复制一个软件包复杂得多。最起码,硬件生产者要对芯片和系统进行测试,而软件的复制过程非常简单。因为软件复制的费用低而且可靠,检验起来也不花什么钱,所以在竞争很激烈的市场中,随着时间推移,中或高性能计算机把那些配套的软件送给用户的情况已是不太可能出现了。