嘘~ 正在从服务器偷取页面 . . .

VLSI Systems 2(计算题)


1 低位交织计算

CPU周期时间公式:

TCPU=1CPU

所需存储体(memory bank)的数量:

N=访TmemoryCPUTCPU

Example:

已知:CPU 时钟 = 200MHz,内存访问时间 = 50ns,求所需存储体数量和第 1 个 Bank 的地址。

Solution:

  1. 计算 CPU 周期: Tcpu=1200×106=5ns

  2. 计算存储体数量: N=50ns5ns=10 ,采用 10 路低位交叉

  3. 第 1 个 Bank 的地址:0,10,20,30…(步长 = 存储体数量)

2 两级内存层次平均访问时间计算

核心参数:

  • HR :命中率(Hit Ratio),CPU访问中命中高速层的比例, 0H1

  • tA1 :高速层 ( M1 ,如 Cache/主存)的访问时间, tA1=tM1

  • tA2 :高速层( M2 ,如主存/硬盘)的系统访问时间, tA2=tB+tA1

  • tB :从 M2 M1 的块传输时间, tB=bs×tM2 ,其中 bs 是块大小,$ t_{ M2 } $ 是 M2 的单字访问时间

四个公式要背:

  1. 平均系统访问时间公式(The average system access time for a word):

    tA=H×tA1+(1H)×tA2

    展开公式得到:

    tA=H×tM1+(1H)×(tB+ttM1)=tM1+(1H)×tB=tM1+(1H)×bs×tM2
  2. 块大小 bs=1 时,简化公式:

    tA=tM1+(1H)×tM2
  3. 访问效率公式:

    e=tA1tA=1H+(1H)tA2tA1=tA1H(1H)tA2

Example:

主存访问时间 tM1=200ns

(a) Cache-主存层次:Cache 命中率 H=0.7 ,Cache 访问时间 tA1=20ns

(b) 主存-硬盘层次:主存命中率 H=0.99 ,硬盘单字传输时间 50ms,页大小 1K=1024 字

Solution:

(a)
tA2=访+Cache访=200+20=220nstA=0.7×20+(10.7)×220=14+66=80ns

速度提升: (20080)200=60%

结论:即使 H=0.7,也能大幅提升速度。

(b)

先进行单位转换: 1ms=1×106ns

因此,

tM2=50×106=5×107ns

块传输时间为:

tB=bS×tM2=1024×5×107ns=5.12×1010ns

所以,

tA2=tB+tA1=5.12×1010+2005.12×1010ns

则:

tA=0.99×200+(10.99)×5.12×1010198+5.12×108×ns512ms

结论:即使 H=0.99 ,硬盘的慢速会导致系统速度大幅下降。

3 匹配逻辑布尔函数

  1. 单比特匹配逻辑 Aj 是参数寄存器第 j 位, Fij 是第 i 个字第 j 位的存储内容,该位匹配的逻辑是同或(XNOR) Xj=Aj·Fij+Aj·Fij

Aj Fij 相等时, Xj=1 ,否则为 0)

  1. 带掩码的单比特逻辑 Kj 是键寄存器第 j 位, Kj=1 时参与匹配, Kj=0 时该位恒为匹配成功:

    (1)Xj+Kj={Xj,ifKj=11,ifKj=0
  2. 单字完整匹配逻辑:所有位都匹配成功,该字才匹配成功,是所有位的逻辑与:

    Mi=(X1+K1)·(X2+K2)··(Xn+Kn)

    无掩码时(K 全 1),简化为: Mi=X1·X2··Xn
    最终可以化为:

    Mi=j=1n(AjFij+AjFij+Kj)
  3. 带元位(有效位)的匹配逻辑

    加入元位 Ti Ti=1 表示该字有效,只有有效字的匹配才有效。

    有效匹配需要同时满足 “内容匹配 Mi=1 ” 和 “字有效 Ti=1 ”,因此布尔函数为:

    Lmatch=MiTi

4 段页式映射(Segmented-Page Mapping))

5 页面置换算法

Example:

Given a main memory size of 3 page frames for a given page stream of

2 3 2 1 5 2 4 5 3 2 5 2

6 栈算法

7 页面大小优化与内存利用率

7.1 最优页大小计算

  1. 内存开销组成

    • 内部碎片浪费:平均每个段的最后一页浪费 Sp2 个字

    • 页表开销:页表有 SsSp 个表项,每个表项 1 个字

    • 总开销公式:

      W=Sp2+SsSp

      Ss = 段大小, Sp = 页大小)

  2. 最优页大小推导

    Sp 求导,令导数为 0,得到开销最小的最优页大小:

    Sp=(2Ss)

7.2 内存利用率 U 计算

核心公式:

U=Ss(Ss+W)

代入最优页大小 Sp=(2Ss) ,化简得:

U=1(1+(2Ss))
  1. Sp 较小时,命中率随 Sp 的增大而升高(相邻访问更大概率在同一页)
  2. Sp 超过临界值后,命中率随 Sp 的增大而降低(主存能存放的页面数减少,频繁缺页)
  3. 核心结论:大型系统中,能获得最优命中率的页大小,通常远大于开销最小的最优页大小;系统性能优先时,优先保证高命中率,而非最小开销。

8 Cache 存储器

  • 命中(Hit):CPU 要访问的字在 Cache 中

  • 未命中(Miss):CPU 要访问的字不在 Cache 中

  • 命中率(H):命中次数 / 总访问次数,命中率越接近 1,系统访问时间越接近 Cache 速度。

8.1 Cache-主存系统平均成本计算

核心公式

Cs=(CcSca+CmSme)(Sca+Sme)

其中,

  • Cc =Cache 每比特成本,
  • Cm = 主存每比特成本,
  • Sca =Cache 大小,
  • Sme = 主存大小。

Example:

If the cost of the cache memory is 10 times the cost of the main memory, and the total amount of memory required is 32 MB, determine the size of each type of memory to achieve a total memory cost of only 1.01 times the cost of the main memory.

Solution:

已知: Cc=10Cm ,总内存大小 Sca+Sme=32MB ,要求 Cs=1.01·Cm

代入公式:

Cs=(Cc·Sca+Cm·Sme)(Sca+Sme)

得:

10CmSca+CmSme=1.01Cm×32MB

约去 Cm ,代入 Sme=32MBSca ,解得:

Sca0.0319MB=31.9KBSme31.968MB

结论:仅增加 1% 的成本,就能大幅提升系统速度。

8.2 Cache性能计算

核心公式:

  1. 平均系统访问时间:

    Ts=H·Tc+(1H)·Tm

    Tc =Cache 访问时间, Tm = 主存访问时间, H = 命中率)

  2. 访问效率:

    e=TcTs=1H+(1H)TmTc
  3. 加速比:

    Sc=TmTs=11H(1TcTm)

    加速比上限为 TmTc ,当 H=1 时达到最大值。

    r=TmTc ,通常 r=5~10,即主存访问时间是 Cache 的 5~10 倍;要获得合理的访问效率,命中率需要 $ \geq 0.75$。

Example:

For a cache-main memory design, if Tm=10Tc , determine the cache hit ratio that would yield an average system access time Ts=Tm+Tc4 . What are the system access efficiency and the speedup due to cache?

Solution:

已知: Tm=10·Tc ,要求 Ts=Tm+Tc4 ,求 HeSc

  1. 代入公式: 10Tc+Tc4=H·Tc+(1H)·10Tc
  2. 化简得: 114Tc=HTc+(1H)10TcH=7.2590.8056
  3. 访问效率: e=TcTs=411TcTc0.3636
  4. 加速比: Sc=TmTs=e(TmTc)=0.363636×(10TcTc)3.6364

9 性能度量指标

各项参数:

CPU 性能指标为 CPI:

每条指令周期数 (Cycles per instruction)

CPI=(Instructioncount×clockcyclecount)Instructioncount

指令带宽 ( bI ):

MIPS=fCPI×106

吞吐量(数据带宽 bD ):

  • MFLOPS 百万次浮点运算每秒:每秒百万次浮点运算
  • GFLOPS 十亿次浮点运算每秒:每秒十亿次浮点运算
  • 任务的执行时间 = 总时钟周期数 × 时钟周期时间

加速:

=

并行度:

S(n)=T(1)T(n)

效率:

E(n)=EffectiveprocessingtimeusedTotalavailableprocessingtime=S(n)n

9.1 并行计算机的性能分析(Amdahl 定律)

设 F 为所有浮点操作中以标量操作执行的比例, 那么 (1-F) 即为以向量操作执行的比例

bv = 向量操作的吞吐量 = 标量操作的吞吐量

设平均系统吞吐量为 b (每个操作的平均耗时), 我们有: 1b=Fbs+1Fbv ,单个 N 分量向量操作的执行时间为 Tv=Nbv 单个标量操作的执行时间为 Ts=1bs

Tv=T0+NnTs ,其中 T0 是独立于向量长度的固定设置时间或启动时间, 而 n 是处理器的并行度。当向量长度 N较大的时候, T0 可以被忽略,由此得到 bv=nbs

然后再代入平均系统吞吐量的公式, b=nbs1+(n1)F bs n 可以是常数。

这里也可以看出,标量运算操作对系统平均吞吐量的影响。

加速比为 S(n)=bbs=n1+(n1)F ,即阿姆达尔定律。

F=0 的时候,系统完全并行,加速比取决于 n 。当 0<F<1 时,性能提受到串行部分影响; F=1 的时候完全串行。

Example:

标量吞吐量 bs=10Mflops ,处理器并行度 n=100 ,求不同标量占比 F 下的系统吞吐量。

Solution:

Note that bs and n can be assumed to be constant.
If bs=10 Mflops and n=100 , we have:

b=10001+99F

F=0 (无串行运算,全并行): b=1000 Mflops = 1 Gflops,加速比 S=100 ,达到理论最大值;

F=0.01 (仅 1% 串行运算): b=1000(1+0.99)500 Mflops,性能直接下降一半

9.2 流水线的性能分析

假设每个阶段的处理周期时间为 tp ,假设有 N 个任务,每个任务花费 M 时间。如果使用 M 级流水线,总处理时间为 (M+N1)tp ;如果不使用流水线,总处理时间为 (N×M)tp 。 加速比为 Sn=N×MN+M1

从 Tp1 到 Tp5 的总可用处理时间为 (N+M1)Mtp (总可用处理时间描述的每个阶段的处理周期总和,在流水线中每个阶段的总处理周期都是 N+M1 ,共 M 个阶段)。 总处理时间为 M×N×tp ,这个是需要计算所有处理器实际执行操作的时间总和,是否流水线都一样。 流水线效率为 E=NM+N1

[! note] 可以想象一个矩形,其长为完成 N 个任务所需要的时间;宽为流水线级数。

  • 加速比就是使用流水线加速后,原本的完成时间与加速完成时间的比例;
  • 流水线效率就是完成任务花费的时间(占用的面积)与总面积的比例。

Example:

已知M=3 级流水线,N=3 个操作,每个阶段时间均为 Tp ,求加速比、效率、吞吐量。

Solution:

  1. 串行总时间: Tseq=3×3×Tp=9Tp
  2. 流水线总时间: Tpipe=(3+31)Tp=5Tp
  3. 加速比: S=9Tp5Tp=1.8
  4. 效率: E=3(3+31)=0.6=60%
  5. 吞吐量: bp=3(5Tp)

10 同步失败概率计算

核心公式: =×

Pf=PePs
  1. 进入亚稳态的概率 Pe

    • 触发条件:触发器的输入信号在 孔径时间 ta 内发生跳变,就可能进入亚稳态。

    • 孔径时间 ta :触发器要求输入信号在时钟跳变前后保持稳定的时间窗口(建立时间 + 保持时间)。

    • 计算公式:

      Pe=tatcy=fcyta

      其中: tcy 为采样时钟周期, fcy 为采样时钟频率。

  2. 等待后仍处于亚稳态的概率 Ps

    • 原理:亚稳态的电压差随时间指数放大,等待时间越长,仍处于亚稳态的概率指数级下降。

    • 计算公式:

      Ps=e(τstw)

      其中: tw 为亚稳态等待时间, τs 为触发器再生时间常数。

  3. 同步失败频率 ff

    • 定义:单位时间内发生同步失败的次数,与异步信号的事件频率成正比。

    • 计算公式:

      ff=fePf

      其中: fe 为异步输入信号的事件频率(每秒跳变次数)。

  4. 平均无故障时间 MTBF

    • 定义:两次同步失败之间的平均时间,是衡量同步器可靠性的核心指标。

    • 计算公式:

      MTBF=1ffs

Example:

Assume a Brute-force synchroniser with a 500MHz clock samples a 10MHz asynchronous input signal ,

The flip-flops have **aperture time( ta ) ** and regeneration time( τs ) of 100ps .

What is the probability of synchronisation failure( Pf ) ?

What is the frequency of synchronisation failure( ff ) ?

What is the mean time between synchronisation failures( MTBF ) ?

Solution:

  1. 统一单位:

    ta=1010sτs=1010sfcy=5×108Hzfe=107Hztw=2×109s
  2. 计算进入亚稳态的概率:

    Pe=fcyta=5×108×1010=0.05=5×102
  3. 计算等待后仍处于亚稳态的概率:

    Ps=e2×1091010=e202.1×109
  4. 计算总失败概率:

    Pf=PePs=5×102×2.1×1091010
  5. 计算失败频率:

    ff=fePf=107×1010=103Hz
  6. 计算 MTBF:

    MTBF=1ff=103s=16.7

文章作者: Jeremy Yang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jeremy Yang !
评论
  目录
**