1.3.1 软、硬件取舍的基本原则
软、硬件的功能分配是计算机系统结构的主要任务,而软件和硬件在逻辑功能上又是等效的。
在满足应用的前提下,软、硬件功能的分配比例主要看能否充分利用硬件、器件技术的进展,使系统有高效的性能价格比。
原则1
应考虑在现有硬件、器件(主要是逻辑器件和存储器件)条件下,系统要有高的性能价格比,主要从实现费用、速度和其他性能要求来综合考虑。
原则2
要考虑准备采用或可能采用的技术、使之尽可能不要过多或不合理地限制各种组成、实现技术的采用。
原则3
不能仅从硬件的角度考虑如何便于应用组成技术的成果和便于发挥器件技术的进展,还要从软件的角度把如何为编译和操作系统的实现以及如何为高级语言程序的设计提供更多、更好的硬件支持放在首位。
1.3.2 计算机系统的性能评测及定量设计原理
1.计算机系统的性能评测
在多数情况下,在设计通用计算机系统时,进行软、硬件功能分配总是考虑在满足系统性能的前提下,如何使性能价格比达到最高。
计算机性能通常用峰值性能和持续性能来表示。峰值性能是指在理想情况下计算机系统可获得的最高理论性能值,它不能反映出系统的实际性能。
持续性能的表示由算数性能平均值,调和性能平均值和几何性能平均值三种:
1)算术性能平均值通常是对系统执行时间评价,是n道程序运算速度和运算时间的算数平均值;
2)调和性能平均值反映运行全部程序所需的时间成反比,用它来衡量计算机的时间性能比较准确;
3)几何性能平均值是对不同机器进行性能比较时,可以对性能采取归一化,即可以以某台机器性能作为参考标准,让其他机器的性能与参考标准去比较,不论哪台机器做参考机,集合性能平均值均能正确反映出结果的一致性。
计算CPU的程序执行时间TCPU有3个因素,即程序执行的总指令条数IC(Instruction Counter)、平均每条指令的时钟周期数CPI(Cycles Per Instruction)、主时钟频率fc。
TCPU=IC*CPI*fc
为了反映程序的运行速度,通常引入如下一些定量指标:
1)MIPS(Million Instructions Per Second),百万条指令数每秒;
它与时钟周期CPI有关,CPI越少,MIPS越高,一定程度上反映机器的性能越好。MIPS很大的程度依赖于机器的指令系统,用它很难准确衡量指令系统不同的机器之间的性能。因此MIPS只能用于比较相同机器指令系统的计算机之间的性能。即使是同一台机器,程序不同,其CPI也不同,其性能的差异会很大。其次MIPS也与机器硬件有关,如浮点运算部件的机器,虽然MIPS很低,但浮点运算速度会很高,而在软件实现浮点运算机器上,MIPS虽然很高,但浮点匀速按速度可能很低。
2)MFLOPS(Million Floating Point Operations Per Second),百万次浮点运算每秒;
只能反映机器执行浮点操作的性能,并不能反映机器的整体性能。
MFLOPS与MIPS的折算尚没有统一的标准。一般认为在标量处理机上执行一次浮点操作平均需要3条指令,所以一般可按“1 MFLOPS≈3 MIPS”来进行换算。
2.计算机系统的定量设计原理
在设计计算机系统时,一般遵循如下的定量设计原理:
1)哈夫曼(Huffman)压缩原理。
2) Amdahl定律
系统中某一部件由于采用某种更快的执行方式后整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关。
Told:没有采用改进措施前执行某任务的时间
Tnew:采用改进措施后执行某任务的时间
Sp:加速比
Fe:计算机执行某个任务的总时间中可以改进部分的时间所占比例
rnew:改进部分采用改进措施后比没有采用改进措施的性能提高倍数
3) 程序访问的局部性定律
程序访问的局部性包括时间上和空间上的两个局部性。时间上过的局部性指的是现在正是用的信息可能不久还要使用,这是因为程序存在着循环。空间上的局部性指的是最近、将来要用到的信息很可能与现在正在使用的信息在程序位置上是邻近的,这是因为指令通常是顺序存放,顺序执行的,数据也通常是以向量、阵列、树、表等形式存放在一起。
1.3.3 计算机系统设计的主要任务和方法
1.计算机系统设计的主要任务
1)要弄清其应用领域是专用的还是通用的;
2)要弄清软件兼容是放在那级层次;
3)要弄清对操作系统有何种要求;
4)要弄清如何才能保证有高的标准化程度。
确定系统功能后,就要考虑如何优化系统的设计,使之能有高的性能价格比。可以使用代表性的应用程序测试,评价量化其性能。
2.计算机系统的设计方法
从多级层次结构出发,计算机系统的设计按多级层次就够的上、下、中开始设计,分为“由上往下”,“由下往上”,“由中间开始”三种不同的设计方法。
1)由上往下设计,也称“由顶向底”设计;
2)由下往上设计,也称“由底向顶”设计;
3)由中间开始向两边设计