Skip to content

Latest commit

 

History

History
178 lines (127 loc) · 6.71 KB

lec7.md

File metadata and controls

178 lines (127 loc) · 6.71 KB

Lecture 7: Systolic Array 脉动电路

Background

image-20250201195317548

Matrix Multiplier

img image-20250201195455636

Refer: https://www.telesens.co/2018/07/30/systolic-architectures/

Refer: https://digitalsystemdesign.in/systolic-matrix-multiplier/

Time Sequential MM

image-20250201195939303 image-20250201200006227
$\tau = 1$ $\tau = 2$
image-20250201200022207 image-20250201200043101
$\tau = 3$ $\tau = 4$
image-20250201200056688 image-20250201200130667
$\tau = 5$ $\tau = 6$
image-20250201200150509
$\tau = 7$

Sequential Design

如果 Delay 未被引入,则时序总是 + 1。即 $\tau \sim \tau + 1$ ($x_{t-1} \to [R]\to y_t$): $$ \begin{align*} \lang \cdots, x_{t-1}, x_t, x_{t+1}\rang \text{ inc } \sim \lang \cdots, x_t, x_{t+1}, x_{t+2}\rang

\end{align*} $$

如引入 Delay $D$ $$ \lang \cdots, x_{t-1}, x_t, x_{t+1}, \cdots\rang , D, \lang \cdots, x_{t-2}, x_{t-1}, x_t, \cdots\rang \ x, D, y \Lrarr \forall t. x_{t-1} = y_t $$ Initilised Delay $DI_c$, 在 $\tau = 0, y_t=C$

Anti-Delay $D^{-1}$ (Simulated as AD):

  • 可以实现:
    • $D$ 当 input 在 domain,或
    • $D^{-1}$ 当 input 在 range
  • 不能实现:
    • $D$ (AD^~1) 当 input 在 range
    • $D^{-1}$(AD)当 input 在 domain

Combinational Designs 只需在给定周期内 domain 和 range 中的对应元素。延迟器 $D$ 是一个建模状态的组件:range 比 domain 延迟一个周期。

如果输入在 domain 中而输出在 range 中,那么 $D$ 描述的是一个可实现的寄存器、$D$ latch 或触发器 (flipflop)。

然而,如果输入在 range 而输出在 domain 中,那么 $D$ 模拟的就是一个预测其输出的反寄存器,因此无法实现。Rebecca可以模拟寄存器和反寄存器,以及那些初始化为给定值的寄存器和反寄存器。

Pipelining

在 circuits 间插入 registers 以提高 Throughput

  • 减少 Power consumption,尤其 FPGAs(减少 glitches)
  • 增加,area,latency,clock power consumption

在没有流水线(pipelining)的情况下,整个电路链必须等待所有组合逻辑完成计算后,才能开始处理下一个输入数据。这意味着下一个数据必须等待整个链路的延迟时间。

当我们在电路之间插入寄存器时:

  1. 数据流被分成了独立的阶段(stages)
  2. 每个阶段可以同时处理不同的数据
  3. 在每个时钟周期:
    • 第一个阶段可以接收新的输入数据
    • 同时第二个阶段正在处理上一个数据
    • 第三个阶段在处理更早的数据

Graphical Method

核心想法:引入 Anti-Delay以消除 Delay 的 Effect。可以拥有无法实现的输入或输出。

在数字电路中引入Delay(延迟)概念有几个重要原因:

  1. 现实电路特性反映:
  • 实际电路中的信号传输和逻辑门操作都需要时间
  • 电子元件存在固有的传输延迟,不可能实现真正的"瞬时"响应
  • Delay模型帮助我们更准确地描述和分析实际电路的行为
  1. 时序分析和同步:
  • 通过明确考虑延迟,可以分析关键路径时序
  • 帮助确保不同信号路径的延迟匹配,避免竞争冒险
  • 在设计同步电路时,需要考虑时钟周期与各部分延迟的关系

Anti-Delay 的引入实际上是一个抽象工具

它帮助我们在逻辑设计层面实现"组合性"(combinational)

使我们能够将注意力集中在逻辑功能上,而不是时序细节

Pipeline a $*$

Chain

我们可以认为一个理想的(无时间依赖的/timeless pre-condition) $R$ 为

image-20250202040423336

因此

$$ \text{(Horner's Rule) } R^n = (R; D)^n ; D^{-n} $$

Row

我们可以认为一个理想的(无时间依赖的/timeless pre-condition) $R$ 为

image-20250202040557872

因此

$$ \text{(Horner's Rule) } \begin{cases}

R^n &= (R; D)^n ; D^{-n}\

\text{row}_n,R &= \text{snd }\Delta_n,D ; \text{row}_n, (R; \text{snd }D); [\Delta_n, D^{-2}, D^{-n}]

\end{cases} $$

Example

Grid

Approach 1: Column, Then Row
image-20250202042519069
Column First
image-20250202042546496
Row
Approach 2: Diagonally