导图社区 《计算机系统结构》之 计算机系统的软、硬件取舍及定量设计原理章节
学习《计算机系统结构》为考试拿证做准备,把知识点整理成竖屏导图,方便手机随时观阅与复习,欢迎各位学友分享与使用!!!
编辑于2023-03-08 00:22:02 广东
计算机系统的软、硬件取舍及定量设计原理
一、软、硬件取舍基本原则
软、硬件的功能分配是计算机系统结构的主要任务,而软件和硬件在逻辑功能上又是等效(不分主次)的、从原理上讲,软件的功能可以用硬件或固件完成的。硬件功能也可以用软件模拟完成,只不过在性能、价格、实现的难易程度上是不同的。具有相同功能的计算机系统,其软、硬件功能分配比例可以在很宽的范围内变化,如图:
原则1
假设某功能的软、硬件实现的每次设计费用分别为Ds(软件)和Dℎ(硬件),则 Dℎ ≈ 100Ds是完全可能的。 至于重复生产费用,硬件实现的也比软件实现的贵得多,后者只是软件的复制费用加上存放该软件的存储介质(如盘片)的价格。设该功能软、硬件实现的每次重复生产费用分别为和ℎ,则ℎ = 100也是可能的。
假定某计算机系统生产了V台。每台计算机用硬件实现的费用为 Dh/V+Mh 若改用软件实现,费用则为C×Ds/V+R×Ms 只有当 Dh/V+Mh < C×Ds/V+R×Ms 用硬件实现才是适宜的。将上述Dh与Ds、Mh与Ms的比值代入、得 100Ds/V+100Ms <C×Ds/V+R×Ms 结论:只有在C和R的值较大时,这个不等式才越能够成立。就是说只有这个功能是经常要用的基本单元功能,才宜于用硬件实现。不要盲目地认为硬件实现的功能比例越大越好。
内容来源:MindMaster竖屏导图 绘制:短暂
目前,就软件设计费用来说,要远比软件的重复生产费用高,Ds×Ms也是完全可能的。将此关系式代入上式,得 106/V+100 <104×C/V+R 由于C值一般总比100小,因此V值越大,这个不等式才越成立。 结论:只有对产量大的计算机系统,增大硬件功能实现的比例才 是适宜的。如果用硬件实现不能给用户带来明显的好处,产量仍较低, 则系统是不会有生命力的。
用硬件实现的功能(如子程序调用的全部操作)一般只需设计一次,用软件实现时、每用到该功能往往要重新设计。设C为该功能在软件实现时需重新设计的次数、则该功能用软件实现的设计费用就为C×Ds。(由于重新设计时可利用原设进行修改或简单套用、使设计费用Ds、要低得多)。同一功能的软件在存储介质上可能多次复制和存储。如出现了R次,则软件实现此功能的重复生产费用就为R×MS。
应考虑在现有硬、器件(主要是逻辑器件和存储器件)条件下,系统要有的性能价格比,主要从实现费用,速度和其他性能要求来综合考虑。仅从实现费用要求讨论,无论是硬件实现,还是软件实现,实现费用都应包括研制费用和重复生产费用。虽目前软件的设计效率低,但用硬件实现的设计费用还是明显地高于用软件实现的费用,其是VLSI专用芯片的设计费用是比较高的。
原则2
要考虑到准备采用和可能采用的组成技术,使之尽可能不要过多或不合理地限制各种组成、实现技术的采用。
例题
1.【简单题】简述软、硬件取舍的基本原则。 【参考答案】 (1)应考虑在现有硬、器件的条件下,系统要有高的性能价格比。 (1分)主要从实现费用.速度和其它性能要求来综合考虑; (2)要考虑到准备采用和可能采用的组成技术.使之尽可能不要过多或不合理地限制务种组成,实现技术的采用; (3)不能仅从硬"的角度考虑如何便于应用组成技术的成果和便于发挥器件技术的进展。还要从“软”的角度把如何为编译和操作系统的实现以及为高级语言的设计提供更多、更好的硬件支持放在首位。
应当进一步缩短高级语言与机器语言、操作系统与计算机系统结构、程序设计环境(如模块化、数据类型抽象)等与计算机系统结构之间存在的语义差距。计算机系统结构、机器语言是用硬件和固件实现的,而这些语义差距是用软件来填补的。语义差距的大小实质上取决于软、硬件功能的分配,差距缩小了、系统结构对软件设计的支持 就加强了。
结论
不能仅从“硬”的角度考虑如何便于应用组成技术的成果和便于发挥器件技术的进展,还应从“软”的角度把如何为编译和操作系统的实现以及为高级语言程序的设计提供更多、更好的硬件支持放在首位。
原则3
二、计算机系统的定量设计原理
2.Amdahl定律
该定律是1967年IRM公司的Ammlabl在设计IBM360系列机时首先提出来的。该定律可用于确定对系统中性能癌颈部件采取措施提高速度后系统性能改进的程度,即系统加速比Sp。系统加速比定义为系统改进后的性能与未改进时的性能的比值,或者定义为系统未改进时的程序执行时间Told与改进后的程序执行时间Tnew的比值。系统加速比Sp与两个因素有关,即性能可改进比fnew和部件加速比rnew。
性能可改进比fnew是系统性能可改进部分占用的时间与未改进时系统总执行时间的比值,显然、0≤fnew≤1。部件加速比rnew是系统性能可改进部分在改进后性能提高的比值,不难看出,rnew>1这样,系统加速比为 Sp= 式中,分母的(1 − fnew)为不能改进性能这部分的比例。可见,当系统性能可改进比fnew为0时,Sp=1;而当部件加速比rnew趋于无穷大时,分母中的fnew/rnew将趋于0,这里有Sp=1/1-fnew 式中,分母的(1 − fnew)为不能改进性能这部分的比例。 可见,当系统性能可改进比fnew为0时,Sp=1;而当部件加速比rnew趋于无穷大时,分母中的fnew/rnew将趋于0,这里有Sp=1/1-fnew 就是说,性能提高的幅度受限于性能改进部分所占的比例大小,而性能改善的极限又受性能可改进比fnew的约束。
例子
时间上的局部性指的是现在正使用的信息可能不久还要使用,这是因为程序存在着循环。
空间上的局部性指的是最近的将来要用到的信息很可能与现在正在使用的信息在程序位置上是邻近的,这是因为指令通常是顺序存放、顺序执行的,数据也通常是以向量、阵列、树、表等形式簇聚地存放在一起的。
程序访问的局部性包括了时间上和空间上的两个局部性。
3.程序访问的局部性定律
尽可能加速处理高概率的事件运比加速处理概率很低的事件对性能的提高要显著。如:CPU在运算中发生溢出的概率是限低的,为此,设计时可考虑加快不溢出时的运算速度、而对溢出时的速度不予考虑。(常用软件打开快,不常用的软件则慢)
1.哈夫曼(Huffman)压缩原理
三、计算机系统设计的主要任务和方法
2、计算机系统的设计方法
从多级层次结构出发,计算机系统的设计按多级层次结构的由上、下中开始设计可以有“由上往下”、“由下往上”、“由中间开始”3种不同的设计方法。
①“由上往下”设计,也称“由顶向底”设计。是一种串行设计方法,设计周期较长,是一种环境要求比较稳定的专用机的设计方法,无法用于通用机的设计。
②“由下往上”设计,也称“由底向顶”设计,是一种通用机的设计方法。由于硬件不改变,仅靠设计软件来被动适硬件,有时只需稍许改变或增加某些硬件的功能就能大大简化软件的设计,也做不到软、硬件脱节,软件因得不到硬件支持而显得繁杂。
③“从中间开始”向两边设计。这是通用机一般采用的方法。它可以克服“由上往下”和“由下往上”两种设计方法中,软、硬件设计分离和脱节的致命缺点。“从中间开始”设计是选择从层次结构的主要软、硬界面开始设计,即在传统机器语言机器级与操作系统机器级之间进行合理的软、硬件功能分配。软件人员依次设计操作系统级、汇编语言级、高级语言级和应用语言级;硬件人员依次设计传统机器语言机器级、微程序机器级和数字逻辑级。软件和硬件并行设计,大大缩短了系统的设计周期,设计过程中两部分人可交流协调,适当微调软、硬件实现的比例。所以这是一种较好的交互式设计方法。
软件实现的优点是设计容易,修改容易,有灵活的适应性, 但缺点是速度、性能低。
硬件实现的优点是速度往往较快,性能好,但缺点是不灵活,适应性差。
4)要如何保证有高的标准化程度。
3)要弄清对操作系统有何种要求。
2)要弄清软件兼容是放在哪级层次。
1)要弄清其应用领域是专用的还是通用的。
计算机系统设计首先要根据市场和应用情况,确定用户对计算机系统的功能、性能和价格的要求。其中,应用软件对功能的确定起主要作用。如果某类应用软件基于某种指令系统且在市场上应用很普遍,就必须在系统结构设计时实现这种指令系统,以满足其应用需求。
计算机系统设计的主要任务包括系统结构(对计算机系统的界面的定义,以及功能的分配)、组成(逻辑的实现)和实现的设计(物理实现设计)。它涉及软硬件功能分配、计算机指令系统设计、功能组织、逻辑设计、集成电路设计、封装、电源、冷却等许多方面。优化设计时,还要熟悉编译系统和操作系统的设计技术。
1、计算机系统设计的主要任务