一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

如何计算DS3134所需的总线利用率、可用带宽和每个数据包的总线周期

来源:analog 发布时间:2023-08-14

摘要: DS3134访问PCI总线来获取和存储HDLC数据包,因为它们被发送和接收。这个 应用笔记详细说明了如何计算 DS3134需要多少可用的总线带宽才能正常运行。希望通过应用程序说明中提供的信息,用户 可以修改这些数字以适应其特定的应用程序。参考表1来引用本文中使用的变量 。

DS3134访问PCI总线来获取和存储HDLC数据包,因为它们被发送和接收。这个 应用笔记详细说明了如何计算 DS3134需要多少可用的总线带宽才能正常运行。希望通过应用程序说明中提供的信息,用户 可以修改这些数字以适应其特定的应用程序。参考表1来引用本文中使用的变量 。

表1 变量的定义

变量定义有效范围
B主机更新 接收空闲队列并发送之前处理的平均数据包数
等待队列或读取接收-完成 队列和发送-完成队列。
1,2,3, ....
C每个数据包所需的平均总线周期数。1,2,3, ....
D传输数据所需的总线周期数。1,2,3, ....
P包的大小(以字节为单位)(在本应用说明中总是64)。64
R由于RAM访问延迟而增加的平均总线周期数。0,1,2, ....
X向数据缓冲区发送/获取数据包数据所需的平均总线访问次数。1,2,3, ....



总线访问类型
有四种类型的总线访问由DS3134或主机执行,以支持DS3134中的 DMA。在下面的描述中,变量D定义为数据周期数 ,变量R定义为由于RAM访问延迟所需的总线周期数。

类型1:由DMA从主机RAM中突发读取
当DMA突发从主机RAM读取数据时所需的总线周期总数是[3+R+D]。这个 方程来源于DS3134数据表的图9.1B,如下所示。

周期不。周期
要求
处理周期1
回转周期1
RAM访问延迟周期R
数据周期D
回转周期1


类型2:DMA对主机RAM的突发写
当DMA突发写入主机RAM时所需的总线周期总数是[2+R+D]。该 方程来自DS3134数据表的图9.1C,如下所示。

周期不。周期
要求
处理周期1
RAM访问延迟周期R
数据周期D
回转周期1


类型3:由主机写入DS3134
当主机写入DS3134时,所需的总线周期总数为7。

类型4:由主机读取到DS3134
当主机从DS3134读取数据时,所需的总线周期总数为7。注:对于3型和4型,7周期是酒庄固有的,不能改变。

每个包所需的总线周期数
为了计算总线利用率,必须知道所需的总线周期数。为了得到这个 数字,我们做了几个假设,如下所示。图1显示了主机和DMA对于接收或传输的每个数据包将遵循的标准 顺序。从图1中我们 可以创建一个公式来计算每个数据包所需的平均总线周期数,即 变量C。

接收方
Cr = [(3 + R + 24) / 12] + [(P / 4) + (2 + R) X] + [2 + R + 3] + [(2 + R + 6) / 6] + [4 (7 / B)]

传输方
Ct = [(3 + R + 12) / 12] + [2 + R + 1] + [3 + R + 4] + [(P / 4) + (3 + R) X] + [(2 + R + 6) / 6] + [4 (7 / B)]

总公式
C = 21.16 + 3.5r + 0.5p + 56 / b + (5 + 2r) x

计算每个包所需的总线周期数的假设

  • 所有数据包都是64字节(最坏的情况)。

  • HDLC包的FCS不传输到PCI总线或从PCI总线传输。

  • 在接收端,只使用大缓冲区(禁用小缓冲区)。

  • 接收DMA将突然读取空闲队列并突然写入已完成队列。

  • 发送DMA将突发读取挂起队列并突发写入完成队列。

  • 所有的数据包都适合在一个缓冲区中(即,只有一个描述符);这是合理的,因为数据包是64字节。

  • 所有物理层链路都被数据包填充,没有空闲代码发送或接收。

  • 中断例程和开销(如访问本地总线)没有被考虑。



图1所示。每包总线周期流程图

注:

  1. 12个描述符x 2个dwords= 24

  2. 以字节为单位的数据包,4字节/数据周期

  3. 6个描述符x 1个dword = 6




图1继续

注:

  1. 12个描述符x 1个dword = 12。


总线利用率
有了每个数据包所需的已知总线周期数,就可以计算总线利用率。总线 利用率被定义为DS3134在一秒钟内所需的总线周期数除以 除以一秒钟内可用的总线周期总数,对于本应用说明 的目的,由于PCI时钟速率假设为33MHz,因此将为33,000,000。以下两个公式可用于 计算总线利用率。


下面是总线使用的三个例子。在每种情况下,假设所有 传入和传出的数据包都是64字节长(P = 64),并且主机平均每8个数据包(B = 8)更新和读取DS3134上DMA使用的 队列。在每种情况下都有 两种情况。在场景A中,主机RAM是紧密耦合的,每次访问平均只为 增加一个总线周期。在方案B中,主机RAM不是紧密耦合的,每次访问 平均要增加7个总线周期。可以修改这三个示例以适应确切的应用程序。

表2 示例说明

情况下描述不。每秒包数
每个HDLC通道
案例1256个通道,64kbps125
案例264通道T13000
案例32清通道T384000


表3。巴士使用的例子

情况下RPBX不。巴士单车
[C]
总线利用率(%)
116483.84.78.2
1 b4483.113.211.0
21648170.741.1
2 b4648187.250.7
31648170.736.0
3 b4648187.244.4


假设:B = 8;病例A, R = 1;情况B, R = 4。

注:
每秒包数:(HDLC通道速度)x(1字节/8位)/(字节/包数)
例如,情形1:64000bps x (1/8) / 64 bytes = 125

案例1

  1. 在Chateau内部FIFO中有1024个块,每个块是4个dwords(16字节)。加载了256个通道后,每个通道只能分配给1024 / 256 = 4个块(4 x 16 = 64字节/通道)。

  2. 由于每个FIFO块是64字节,因此FIFO中的64字节数据包可以在两次总线访问中填充或清空。对于最坏情况的假设,我们在这个例子中使用3个。

案例2

  1. 在情形2中有64个通道,因此,FIFO中的块大小可以是1024 / 64 = 16块(16 × 16 = 256字节/通道)。

  2. 每个FIFO块大小为256字节;因此,FIFO中的64字节数据包可以在一次总线访问中填充或清空。

案例3

  1. 在情况3中有两个通道,因此,FIFO中的块大小可以是1024 / 2 = 512 块(512 × 16 = 8192字节/通道)。

  2. 每个FIFO块大小为8192字节;因此,FIFO中的64字节数据包可以在一次总线访问中填充或清空。


修订历史

版本日期变化
102/24/98最初的发布
212/2/98
  1. 将第2页的公式由4(B/7)改为4(7/B),由1.143B改为56/B。

  2. 改变了R &表4中的X值,以反映更实际的值。

  3. 纠正小的语法错误。

3.03/02/99
明代修改
  1. 为表添加边框。

  2. 添加了一些注释来澄清一些假设和常量。

  3. 将第4页等式中的符号X更改为8。

4
  1. 通过删除额外的术语?+ [2 + R + 3]?从方程Ct。

52/20/01
  1. 修正了第2页的表格,从表格中删除了“旋转周期”。

  2. 更正语法错误,在第三页添加注释。


声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: