zoukankan      html  css  js  c++  java
  • 系统设计的定量原理

    1.大概率事件优先原理

    • 概念:对于大概率事件(最常见的事件),赋予它优先的处理权资源使用权,以获得全局的最优结果。

    这是最重要、最广泛采用的设计准则,能明显提高整个系统性能

    例如在加法运算中,溢出是小概率事件而无溢出是大概率事件

    2.阿姆达尔(Amdahl)定律

    • 概念:系统中某一部件由于采用某种更快的执行方式后,整个系统性能的提高与这种方式的使用频率或占总执行时间的比例有关。

    假设对机器进行某种改进,定义加速比为改进前后性能或时间的比值:

    [S p=frac{T_{0}}{T_{n}}=frac{1}{(1-F e)+F e / S e} ]

    例题1:假设系统某一部件的处理速度加快10倍, 该部件的原处理时间仅为整个运行时间的40%,则采用加快措施后能使整个系统的性能提高多少?

    (Fe=0.4,Se=10),代入公式得:(Sp=1.56)

    3.CPU性能公式

    • 一个程序所花的CPU时间:

    [CPU_T = NC*t = NC/f ]

    NC:CPU时间周期总数,t为时间周期长度,f为频率

    [CPU_T =IC*CPI*t=(I_N*CPI)/f ]

    IC为指令的条数,CPI为每条指令的平均时钟周期数

    结论:CPU的性能与3个要素有关

    • 时钟频率f
    • 每条指令所花的时钟周期数CPI
    • 指令条数IC

    其中时钟频率取决于硬件技术组织,CPI取决于系统结构组织指令集,指令数目取决于系统结构的指令集编译技术

    • CPI=CPU时钟周期总数/IC

    IC表示一个程序的指令条数

    CPI表示每条指令平均时钟周期数

    例子:MOV AX,BX :(CPI=1)(一个时钟周期,一条指令)
    当然也有CPI小于1的,半个周期就完成了

    • 计算CPU时钟周期总数Nc

    [N c=sum_{i=1}^{n}left(C P I_i* I_i ight) ]

    式子中(I_i)代表(i)指令在程序中执行的次数,(n)代表指令总数

    • CPI表示---用于设计方案评价:

    [C P I=frac{sum_{i=1}^{n}left(C P I_i^{*} I_i ight)}{I_{C}}=sum_{i=1}^{n}left(C P I_i * frac{I_i}{I_{C}} ight) ]

    (I_i/I_C)表示i指令在程序中所占的比例

    例题: 某系统中浮点操作的比例为25%,平均CPI为4.0。 其他指令的平均CPI约为1.33。浮点平方操作比例为 2%,CPI为20。 分别把浮点平方操作和其他所有浮点操作的CPI 减为2,哪个方案较好?

    原系统

    [CPI=(4*0.25)+(1.33*0.75)=2.0 ]

    方案1

    [CPI_1=CPI-(20-2)*0.02=1.64 ]

    方案2

    [CPI_2=CPI-(4-2)*0.25=1.5 ]

    4.程序访问的局部性规律

    程序访问的局部性主要反映在时间和空间局部性两个方面

    • 时间局部性是指程序中近期被访问的信息项可能马上将被再次访问
    • 空间局部性指那些在访问地址上相邻近的信息项很可能被一起访问
  • 相关阅读:
    es6---let和const
    node.js开发指南系列(1)partial is not defined
    input唤起键盘影响移动端底部fixed定位
    vue滑动吸顶以及锚点定位
    nodejs开发准备工作(2)
    nodejs开发准备工作(1)
    php基础小知识
    php基础
    git基础
    ps基础
  • 原文地址:https://www.cnblogs.com/smallocean/p/12404428.html
Copyright © 2011-2022 走看看