采用高级综合设计方法(High Level Synthesis design methodology
)的影响之一是,“系统设计师”和“硬件设计师”之间的障碍即使没有完全消除,也会大大减少。突然之间,“系统设计人员”和“硬件设计人员”不仅使用相同的输入语言来指定他们的模型(c++ / System C),而且他们还接触到相同的术语。由于这个原因,“硬件设计师”突然接触到两个他们在过去很少或没有接触过的术语。
本文的目的是澄清两个经常被混淆的、有时可以互换使用的“系统”术语:延迟和吞吐量。
让我们试着给这两个术语下个定义:
延迟是执行某些操作或产生某些结果所需的时间。延迟是用时间单位来测量的——小时、分钟、秒、纳秒或时钟周期。
吞吐量是单位时间内执行的此类操作的数量或产生的结果。这是用单位时间内生产的任何东西(汽车、摩托车、I/O样本、记忆单词、迭代)来衡量的。术语“内存带宽”有时用来指定内存系统的吞吐量。
一个简单的例子
下面的制造例子应该澄清这两个概念:
一条装配线正在生产汽车。制造一辆汽车需要8个小时,这家工厂每天生产120辆汽车。
潜伏期为:8小时。
生产能力:120车/天或5车/小时。
现在这两个概念已经很清楚了,让我们将这些概念应用到本文要讨论的问题上。
设计人员的任务是为具有以下特点的通信设备创建硬件:
时钟频率 : 100兆赫
执行计算的可用时间:1000ns
设备吞吐量:640mbits / s
每个输出的字宽:64位
让我们将这些需求转换为延迟和吞吐量度量,从硬件设计人员的角度来看,这些度量更有意义。
延迟:1000 ns = 1000 ns * (1 s/ 10^9 ns) *(100 * 10^6时钟周期/1)= 1011/109 = 100个时钟周期。
吞吐量= 640 mbit / s =(640 * 10 ^ 6比特/秒)(1字/ 64位) (1 s / 100 * 10 ^ 6时钟时间)= 640 * 10 ^ 6/64 * 100 * 10 ^ 6 = 10 * 10/100 = 1/10 = 0.1字/时钟周期。
吞吐量可以更方便地读取如下内容:“每10个时钟周期读取一个单词”
以时钟周期表示的延迟和以字与字之间可用的时钟周期数表示的吞吐量都是一些参数,设计者可以使用这些参数来根据性能规范创建所需的硬件。
最后一个澄清
有些工具不以单位时间表示吞吐量,而是以时钟周期表示。这是不正确的,但因为方便而经常使用。因此,一些工具会将我们的通信算法的吞吐量报告为10。
引用:
https://community.cadence.com/cadence_blogs_8/b/sd/posts/understanding-latency-vs-throughput