TMS320C40 通信通道的时序 Petri 网分析
Petri Nets 1993(Application and Theory of Petri Nets 1993 会议论文,第 562-571 页),作者 David A. Hartley & David M. Harvey,英国利物浦约翰摩尔斯大学相干与电光学研究组。
一句话结论
用带时间 Petri 网(Timed Petri Net)对 TI TMS320C40 DSP 的 6 个通信端口 + DMA 协处理器做精确建模拟真,证明:单条 DMA 总线带宽不足以喂饱 6 个通信口跑满速;Split 模式下每字交换一次总线 TOKEN 使通信带宽腰斩(20 MB/s 峰值只能到约 12.5 MB/s)。
研究动机
- 作者团队在设计一个基于 TMS320C40 的多处理器图像处理系统,需要评估互连通信性能。
- 商用 TMS320C40 软件模拟器不支持多处理器系统仿真,只能自建模型。
- Petri 网此前已被用于单处理器架构和系统级(处理器/内存/互连网络)建模,本文把 TMS320C40 的通信口 + DMA 协处理器做成 Petri 网子网,通过仿真求各工况带宽。
TMS320C40 通信硬件要点(背景知识)
- 6 个 12 位双向通信口,每口峰值 20 MB/s;两口直连即可组并行系统。
- 总线所有权用 TOKEN 传递协议:持 TOKEN 者拥有总线;接收方要发数据就请求 TOKEN。TOKEN 是”公平”的——每传完一个字就必须交还 TOKEN,即使还有多个字要发。
- 每口有 8 字深的输入/输出 FIFO 缓冲。
- 6 通道 DMA 协处理器把搬数任务从 CPU 卸载;DMA 有独立的地址/数据总线,可与 CPU 并发访问内存,冲突用可编程仲裁(固定优先级:通道 0 最高;或轮转优先级)。
- 两种模式:
- Unified 模式:DMA 通道做普通内存↔内存单向传输。
- Split 模式:6 个 DMA 通道拆绑成 12 个(每通信口主/辅各一),Primary 做内存→通信口,Auxiliary 做通信口→内存。
- 时间以 H1 时钟为单位(50MHz 器件 H1 周期 40ns ≈ 指令周期)。DMA 读恒 1 周期;写内部内存 1 周期、写外部内存 2 周期。
Petri 网建模方法
仿真软件用 C 实现(SUN 工作站 + IBM PC),转移延时按 H1 周期倍数指定,采用 3 阶段 firing 的 timed transition。冲突解决可逐冲突点配置:随机 / 固定优先级 / 轮转优先级——正好对上 TMS320C40 的可编程 DMA 仲裁方案。
模型由 6 个相同子网(每通信口/DMA 通道一个)组成,每个子网分 4 节:
- DMA 总线仲裁:6 个转移共享”DMA 总线可用”令牌库,请求→仲裁→授权→归还,轮转优先级仿真。
- DMA 通道:上半 Primary(内存→通信口),下半 Auxiliary(通信口→内存);输出 FIFO 状态用令牌数表示(8 令牌=空,0=满)。
- 通信总线字传输:数据字令牌经缓冲寄存器上总线;接收方输入 FIFO 满则停止 fire,传输阻塞(stall)直到有空间——天然建模背压。
- 总线所有权(TOKEN 传递):每侧两个库表示持有/未持有 TOKEN。双方都有数据要发时,发完一个字就强制移交 TOKEN(由 P25/P53 中令牌数控制,TMS320C40 实机为 1)。T13/T14 冲突时用优先级解决(当前持有者优先完成本字传输)。
仿真结果
Unified 模式(一处理器向 n 个处理器广播,1≤n≤6)
- 内部内存数据:延迟随传输字数指数(对数轴线性)增长;初始/末尾 DMA 传输的固定开销在小数据量时拉低有效带宽。
- 1-2 通道可逼近 20 MB/s 峰值(2048 字时 19.99 / 19.98 MB/s)。原因:每 DMA 通道每 4 周期供 1 字,而总线传 1 字要 5 周期,输出 FIFO 恒满,通信口满载。
- ≥3 通道后 DMA 供数不及时:每字供给周期变为 6/8/10/12(3/4/5/6 通道),通信口周期性空闲。有效带宽掉到约 16.65 / 12.49 / 10.00 / 8.33 MB/s。
- 外部内存数据:因外部写多 1 周期,结果与内部内存几乎相同。
Split 模式(每处理器 n 通道双向收发)
- 内部内存:1-4 通道延迟几乎不变,但带宽上限被 TOKEN 交换卡在约 12.5 MB/s(≈峰值的 62%)——每字交还一次 TOKEN 是硬瓶颈。5/6 通道时 DMA 总线竞争加剧(输出 FIFO 常空,最坏请求延迟 20 周期),通信总线空闲率约 32% / 43%,带宽降到 10.00 / 8.33 MB/s。
- 外部内存:1-3 通道结果与内部内存差 1-3 周期;4/5/6 通道延迟平均恶化 22% / 25% / 25%,总线空闲率升至约 15% / 46% / 55%,6 通道带宽仅 6.67 MB/s。
结果归纳(作者结论)
| 场景 | 带宽瓶颈 |
|---|---|
| Unified ≤2 通道 | 可近峰值 20 MB/s |
| Unified ≥3 通道 | DMA 单总线供数不足 |
| Split 内存在 ≤4 通道 | TOKEN 每字交换 |
| Split 外存在 ≤3 通道 | TOKEN 每字交换 |
| Split 高通道数 | DMA 总线竞争 + 外写加倍 |
工程启示(可迁移经验)
- 这是”用形式化模型代替尚不具备的商用工具做体系结构评估”的经典案例:论文价值不在 Petri 网本身,而在把硬件规格书里的 TOKEN 协议、仲裁策略、FIFO 深度逐条翻译成网结构,仿真数字与硬件周期数严格对齐。
- 瓶颈分析套路值得借鉴:先用库令牌数观察 FIFO 水位判断”谁在等谁”(FIFO 恒满→通信口瓶颈;FIFO 常空→供给侧 DMA 瓶颈),再算总线空闲率归因。
- 对多通道共享单总线架构的容量规划有普适意义:单 DMA 总线每字读写 2 周期意味着理论服务率 0.5 字/周期,12 个 Split 通道各自请求读写时总需求远超服务率,饱和是设计上的必然。
元信息
- 文件:10 页 PDF(文本型,pdftotext 提取;pdf-inspector 误判可提取但 markdown 为空)
- 出自
/田浩然上传的资料/Petri/Application and Theory of Petri Nets 1993/会议论文集拆分件(该簇编号 32、34 等均为独立论文) - 相关:并行计算基础-北大多核软件开发技术第二讲(同为多处理器互连性能主题)、基因调控网络定性建模-逻辑调控图到标准Petri网(同库 Petri 网建模应用)