一、面向摩尔定律的设计
计算机设计者面临的一个永恒的问题就是摩尔定律。摩尔定律指出:集成电路上可容纳的晶体管数每18~24个月就会翻一番。由于计算机设计通常需要几年时间,因此项目结束时芯片的集成度较之项目开始时,很容易翻一番甚至翻两番。所以计算机体系结构设计师应当预测设计完成时的工艺和技术水平,而不是设计开始时的工艺。
二、使用抽象简化设计
计算机架构师和程序员都需要开发能够提高效率的技术,否则设计周期会像资源规模随摩尔定律增长一样延长。提高硬件和软件开发效率的主要技术之一是使用抽象(abstraction)来表征不同级别的设计。从而,低层将细节隐藏起来,呈现给高层的只是一个简化的模型。
三、加速大概率事件
加速大概率事件(common case fast)远比优化小概率事件更能提高性能。大概率事件通常比小概率事件简单,因而更易于对其进行优化以提高性能。加速大概率事件意味着设计者需要知道哪些事件是经常发生的,这要经过仔细的实验与测量过程。
四、通过并行提高性能
从计算诞生开始,计算机架构师就给出了通过并行(parallel)执行操作来提高性能的设计方案。因此常常使用 硬件并行特性进行“加速”,对于硬件设计其实也就是面积换时间的思想。
五、通过流水线提高性能
在计算机体系结构中,有一种并行技术非常普遍,这种技术有一个特殊的名字:流水线(pipelining)。例如,许多西部电影中有这样的场景,在消防车出现之前,人们用“水桶队列”来灭火——小镇居民们一个接一个排成长队,接力将水桶快速从水源传至火场,而不是让每个人来回奔跑运水灭火。
六、通过预测提高性能
假设预测错误后恢复的代价不大, 并且预测的准确率相对较高,那么通过猜测的方式提前开始工作,要比等到确定知道能执行时才启动要效率高一些。
例如CPU设计就是使用了分支预测,通过精确的动态分支预测技术来提高流水线效率。
预测也体现了加速大概率事件的思想。
七、存储器层次结构
现如今,计算机价格的很大一部分来自于存储器的开销。存储器对程序执行有很大的影响,其速度影响着程序的性能,其容量限制着解题的规模。因此,程序员总是希望存储器速度更快、容量更大、价格更便宜。计算机架构师发现,通过存储器层次结构(hierarchy ofmemory)可以来缓解这些相互矛盾的需求。在存储器层次中,位于顶层的存储器速度最快、容量最小,但每位价格最昂贵。反之,处于最底层的存储器速度最慢、容量最大,但每位价格最便宜。cache技术可以给程序员造成一种假象,让他们感觉自己所使用的主存既有存储器层次中顶层的高速度,又和底层存储器一样价格便宜量又足。
八、通过冗余提高可靠性
计算机工作时不仅要快,还要稳定可靠。任何一个物理器件都有可能失效,因此可以通过增加冗余器件的方式提高系统的可靠性(dependable)。当发生失效时,冗余器件可以替代失效器件并帮助检测错误。例如,牵引式挂车后轴每边都有两个双轮胎,当一个轮胎出问题时,另一个轮胎保证卡车仍然可以继续行使。(卡车司机发现故障后,立即开往修理厂修复轮胎,从而又恢复了冗余性。)