25、数据重用驱动的片上内存与网络协同综合

数据重用驱动的内存与NoC协同综合

数据重用驱动的片上内存与网络协同综合

1. 引言

多处理器片上系统(MPSoCs)正成为满足嵌入式应用不断增长的处理需求的流行解决方案。随着设计复杂度的增加和上市时间的缩短,通信基础设施成为了能耗的重要来源,因此人们提出了许多实现节能片上网络(NoC)综合的方法。

片上系统(SoC)设计的一个重要方面是通信子系统,它有几个相互冲突的要求:低功耗、能随SoC尺寸的增加良好扩展,并且在芯片部分需要重新设计时便于修改。由于具有良好的可扩展性,NoC是一种很有前途的通信架构,适用于较大的SoC。

内存和通信子系统都是SoC能耗的重要贡献者,而能耗在典型的嵌入式SoC应用中是一种稀缺资源。传统上,减少内存和NoC能耗的方法是独立应用的,通常先设计内存子系统,然后进行NoC综合,这可能导致系统的整体功耗不是最低的。本文的工作重点是将NoC与内存架构进行协同综合,通过采用数据重用分析技术DRDM实现内存子系统的高度定制化。

2. 相关工作

人们已经认识到在MPSoCs中使用NoC作为未来片上互连的潜力,此后大量研究围绕NoC的不同方面展开,如NoC架构、路由、互连技术、开发支持等。

在NoC综合领域,许多研究人员提出了针对NoC架构的核心映射和路由技术。例如,Murali等人提出了两种旨在减少带宽约束下平均通信延迟的技术;Srinivasan等人提出了一种处理带宽和延迟约束的技术;Hu等人在带宽约束下进行了节能映射;Manolache等人通过增加消息传输的冗余来解决瞬态链路故障问题;Guz等人解决了非均匀链路容量的NoC中链路容量分配的问题。

然而,上述技术都是基于给定的通信图进行工作的,在综合过程中没有进行任何内存定制。而本文的方法是首次将内存/通信协同综合应用于采用NoC互连架构的MPSoCs。

3. 内存模型与数据重用图

本文采用数据重用分析技术生成的数据重用图。这些图通过分析应用程序的内存请求模式构建而成,代表了一个缓冲区层次结构,每个缓冲区保存着处理器或较低层次缓冲区多次使用的数据。

重用图的节点(或缓冲区)可以是私有的(仅为一个处理器提供数据)或共享的(保存多个处理器使用的数据),边表示数据流。数据重用分析工具会提供缓冲区的大小以及对更高层次内存的请求数量。

每个重用图缓冲区可以映射到物理内存,并作为NoC核心(可能与DMA引擎一起)实现。实现缓冲区可能会降低整体能耗,因为它可以放置在靠近数据消耗核心的小型低能耗内存中,从而减少对能耗更高的主内存的重复访问。但在某些情况下,由于数据从一个内存复制到另一个内存的开销以及网络接口和路由器的额外功耗,可能会导致能耗增加。本文提出的算法会选择要实现的缓冲区以及内存应连接的网络接口和路由器,以最小化能耗。

以下是一个多处理器数据重用图的示例:
Example of a multiprocessor data reuse graph

4. 方法

4.1 架构模型

内存和NoC综合的问题是将数组(逻辑缓冲区)映射到物理内存,将这些物理内存与其他核心映射到路由器,并确定核心之间数据的静态路由,同时尽量减少总能耗。

在本文的方法中,保存重用图中循环缓冲区的暂存器内存作为核心连接到网络接口。假设所有处理核心都有自己的小型私有内存,用于保存小数组、局部变量和分配栈。NoC和数据重用缓冲区仅用于传输多个处理器之间共享的数据或访问无法放入小型本地内存的大型多媒体数据数组。分析表明,对于大多数典型的多媒体基准测试,1 - 2 KB的本地处理器内存就足够了。

为了模拟片外主内存,将其表示为一个核心,其映射固定到NoC网格第一行中间的路由器。

在实验中对Æthereal NoC进行了建模,它是一个同步NoC,所有链路和路由都以相同的NoC频率运行。但网络接口提供时钟转换,因此核心不需要与NoC以相同的频率运行,NoC频率可以独立于核心频率进行调整。在NoC综合过程中,选择最低的频率,以在规定时间内提供足够的带宽来完成所有必要的NoC数据传输。

接下来将介绍两种启发式方法:传统的两步法和本文提出的协同综合启发式方法。

4.2 两步内存/NoC综合启发式方法

该启发式方法分为两部分:
1. 创建最小内存能耗通信图
- 从重用图的主内存和处理器节点创建通信图CG。
- 循环遍历重用图中代表内存缓冲区的节点集合B,依次将节点添加到通信图中,估计内存能耗,然后移除该节点。
- 选择能最大程度降低能耗的节点添加到通信图中,重复此过程,直到找不到这样的节点为止。

  1. 使用通信图进行NoC综合
    • 初始放置
      • 确定通信图节点集合N。
      • 找到通信需求最大的节点,将其映射到NoC网格中心的路由器。
      • 选择与已映射节点通信最多的未映射节点,将其映射到使通信成本最小的路由器,直到所有节点都被映射。
    • 映射改进
      • 进行NoC路由和布局规划,估计初始能耗。
      • 尝试交换路由器上的核心,使用两种交换类型:完全交换两个路由器上的所有网络接口和核心;将一个路由器上的内存节点(不包括主内存)移动到另一个路由器。
      • 保留能最大程度降低总能耗的交换,撤销其他交换。

该启发式方法的复杂度为B³ + BR² + ER³lgR,如果重用图节点数量和路由器数量处于同一数量级,复杂度为ER³lgR,与NMAP NoC综合算法相同。

以下是两步综合启发式方法的算法:

Algorithm 1. Two-step synthesis heuristic
input: reuse graph RG;
set of nodes B  that represent memory buffers in the reuse graph;
set of routers RT of a mesh-type NoC
output: synthesized NoC

1. Create min memory energy communication graph CG out of the reuse graph:
1.1. Create communication graph CG out of main memory and processor nodes of the reuse
graph
1.2  do {
1.3.     for all nodes b∈B do {
1.4.          Add b to communication graph CG
1.5.          Estimate memory energy
1.6.          Remove b from communication graph CG
1.7.     }
1.8.     Add node bbest∈B that reduces energy the most to CG (if found)  
1.9. } while such node bbest is found

2. Perform NoC synthesis using communication graph CG:
//     Initial placement
2.1. N = a set of CG nodes
2.2. Find a node b∈N with the max communication requirements
2.3. Map b to the router in the center of NoC mesh
2.4. while there are unmapped nodes do {
2.5.     Find unmapped node b∈N which communicates the most with the mapped nodes
2.6.     Map b to a router so that communication cost is minimized
2.7. }
//     Mapping improvement
2.8.   Perform NoC routing and floorplanning
2.9.   Ebest=estimated energy
2.10. for all r1∈RT do {
2.11.     if no cores are mapped to r1, continue
2.12.     swap_type=0
2.13.     for all r2∈RT do {
2.14.          perform swap type 1 of routers r1 and r2
2.15.          perform NoC routing and floorplanning
2.16.          E1=estimated energy
2.17.          undo the swap  
2.18.          if (E1< Ebest)  
2.19.              Ebest= E1; swap_type=1; r=r2
2.20.          perform swap type 2 of routers r1 and r2
2.21.          perform NoC routing and floorplanning
2.22.          E2=estimated energy
2.23.          undo the swap
2.24.          if (E2< Ebest)  
2.25.              Ebest= E2; swap_type=2; r=r2
2.26.     }
2.27.     if (swap_type = 1)
2.28.         perform first type of swap on routers r1 and r
2.29.     if (swap_type = 2)
2.30.         perform second type of swap on routers r1 and r
2.31. }
2.32. perform NoC routing and floorplanning
2.33. Ebest=estimate_energy()
2.34. return

4.3 内存/NoC协同综合启发式方法

该启发式方法是将内存综合与NoC综合同时进行,分为两部分:
1. 尝试添加缓冲区以降低NoC时钟频率
- 从重用图的主内存和处理器节点创建通信图CG。
- 使用通信图进行NoC综合。
- 找到带宽要求最高的NoC链路l,分析通过该链路的通信图边,按带宽贡献降序遍历。
- 找到影响当前边的重用图缓冲区集合M,选择能最大程度降低总能耗的缓冲区添加到通信图中,重复此过程,直到找不到能降低最大NoC时钟频率的缓冲区为止。

  1. 尝试添加其他内存缓冲区以进一步降低总能耗
    • 找到之前未尝试添加到通信图中且能最大程度减少对更高层次内存流量的缓冲区。
    • 将该缓冲区添加到通信图中,评估添加后是否降低了总能耗,如果是,则保留该缓冲区,继续评估其他缓冲区。

该启发式方法的复杂度为B²R² + EBR³lgR,如果重用图节点数量和路由器数量处于同一数量级,复杂度为ER⁴lgR,高于两步启发式方法。

以下是协同综合启发式方法的算法:

Algorithm 2. Co-synthesis heuristic
input: reuse graph RG;
set of nodes B  that represent memory buffers in the reuse graph RG;
set of links (between routers and between routers and NIs) L of the NoC
output: synthesized NoC

1. Try to add buffers so that NoC clock frequency is reduced:
1.1. Create communication graph CG using main memory and processor nodes from the
reuse tree
1.2. Synthesize(CG) // synthesize NoC as in step 2 of Alg. 1
1.3. do {
1.4.    Find a link l∈L with the highest bandwidth
1.5.    for all comm. graph edges cgl mapped to link l, in the order of decreasing bandwidth,
do {
1.6.         M = set of reuse graph buffers that affect edge cgl
1.7.         Among all buffers b∈M, find the one bbest that reduces total energy the most
1.8.         If found, add bbest to CG; go to step 1.11
1.9.    }
1.10.  go to step 2.1
1.11.} while (true)

2. Try to add other memory buffers to further reduce total energy consumption:
2.1.   Ebest=estimated energy
2.2.   do {
2.3.        Find b∈B that have not been tried to be added to CG before and with the highest
reduction of traffic
2.4.        Add b to CG
2.5.        Synthesize(CG)
2.6.        Remove b from CG
2.7.        E=estimated energy
2.8.        if (E< Ebest)
2.9.             Ebest = E; Add b to CG
2.10. }
2.11. return

5. 实验

5.1 实验设置

在实验中使用了几个典型的流式视频和图像处理应用程序:QSDPCM(视频编码器)、Laplace(图像滤波算法)和Susan(图像识别应用)。所有基准测试都进行了并行化并分布在多个处理器上。

能耗模型由几个部分组成:对于片上内存功耗,使用(在某些情况下进行外推)MPARM模拟器的数据;使用CACTI进行130 nm内存面积估计;使用相关数据估计TI C64处理器的面积;片外内存消耗基于8MB Micron低功耗CellularRAM芯片计算。

Æthereal NoC功耗估计模型基于相关测量,不同NoC组件的模型如下表所示:
| NoC组件 | 能耗(pJ) | 面积(mm²) |
| — | — | — |
| 路由器(保证吞吐量) | E = (16.1 + 40.3α) * B + 32 * P * C
α = 0.5 - 活动因子
B - 传输的片数
P - 路由器端口数
C - NoC时钟周期数 | 0.17(130 nm技术) |
| 网络接口 | 与路由器相同 | 0.13 |
| 链路线 | E = (0.27 + 0.58 * L) * N
L - 线长(mm)
N = 32 - 线数 | - |

5.2 实验结果

实验对每个基准测试在两种情况下进行NoC综合:主内存位于片上和片外。对于每种基准测试配置,进行了三次实验:不进行数据重用分析的NoC综合;使用顺序两步综合启发式方法的NoC综合;使用内存/NoC协同综合方法的NoC综合。

实验结果表明,采用数据重用分析定制内存子系统平均可使通信能耗降低31%,总能耗降低44%。此外,与两步综合方法相比,使用内存/NoC协同综合启发式方法可进一步使通信能耗最多降低38%(平均10%),总(内存和通信)能耗最多降低26%(平均6%)。

以下是实验配置的表格:
| 实验编号 | 基准测试 | 处理器数量 | 主内存 | NoC配置 |
| — | — | — | — | — |
| 1 | QSDPCM | 6 | 800K片上 | 5x5网格 |
| 2 | QSDPCM | 6 | 8MB片外 | 5x5网格 |
| 3 | Laplace | 4 | 800K片上 | 5x5网格 |
| 4 | Laplace | 4 | 8MB片外 | 5x5网格 |
| 5 | Laplace | 16 | 4M片上 | 6x6网格 |
| 6 | Laplace | 16 | 8MB片外 | 6x6网格 |
| 7 | Susan | 4 | 800K片上 | 4x4网格 |
| 8 | Susan | 4 | 8MB片外 | 4x4网格 |

6. 结论

本文研究了内存子系统对NoC通信架构功耗的影响,结果表明采用数据重用分析定制内存子系统平均可使通信能耗降低31%。此外,提出了一种基于数据重用的内存/NoC协同综合启发式方法,该方法在降低通信能耗和总能耗方面优于传统的两步综合方法,通信能耗最多可降低38%,总能耗最多可降低26%。虽然本文的方法是在Æthereal NoC架构上进行实验的,但相信这种协同综合策略对其他多种NoC架构也将是有用的。

以下是实验流程的mermaid流程图:

graph LR
    A[获取应用重用图、NoC参数和能耗模型] --> B[选择综合算法]
    B --> C{是否进行数据重用分析}
    C -- 否 --> D[不进行数据重用分析的NoC综合]
    C -- 是 --> E{选择启发式方法}
    E -- 两步启发式方法 --> F[两步内存/NoC综合]
    E -- 协同综合启发式方法 --> G[内存/NoC协同综合]
    D --> H[输出综合结果和能耗估计]
    F --> H
    G --> H

6. 结论(续)

本文所提出的基于数据重用的内存/NoC协同综合启发式方法,在降低能耗方面展现出了显著的优势。从实验结果来看,其在不同的基准测试和内存配置下,都能有效减少通信能耗和总能耗。这不仅证明了该方法的有效性,也为未来的片上系统设计提供了新的思路。

对于不同的应用场景,如视频编码、图像滤波和图像识别等,该方法都能根据具体的内存请求模式和通信需求,灵活地定制内存子系统和NoC架构,从而实现能耗的优化。例如,在处理大型多媒体数据时,通过合理设置数据重用缓冲区,能够减少对主内存的依赖,降低数据传输的能耗。

7. 应用与操作步骤

7.1 应用场景

该方法适用于各种需要高效处理数据的嵌入式系统,特别是那些对能耗敏感的应用,如移动设备、物联网设备等。在这些设备中,降低能耗不仅可以延长电池续航时间,还可以减少散热需求,提高系统的稳定性和可靠性。

7.2 操作步骤

以下是使用本文方法进行内存/NoC协同综合的具体操作步骤:
1. 数据准备
- 收集应用程序的内存请求模式,使用数据重用分析技术生成数据重用图。
- 确定NoC的参数,如网格大小、路由器数量等。
- 建立能耗模型,包括片上内存、片外内存、NoC组件等的能耗计算方法。
2. 选择综合算法
- 根据实际需求选择两步综合启发式方法或协同综合启发式方法。
- 如果对计算复杂度要求较低,可以选择两步综合启发式方法;如果希望进一步优化能耗,可以选择协同综合启发式方法。
3. 执行综合过程
- 按照所选算法的步骤进行操作,如创建通信图、映射核心到路由器、确定路由等。
- 在综合过程中,不断评估能耗,并根据评估结果进行调整,以达到最小能耗的目标。
4. 结果评估
- 计算综合后的系统能耗,包括通信能耗和内存能耗。
- 与不进行数据重用分析或使用传统方法的结果进行比较,评估该方法的有效性。

8. 总结与展望

8.1 总结

本文通过对内存子系统和NoC通信架构的协同综合研究,提出了一种基于数据重用的启发式方法。该方法能够根据应用程序的内存请求模式,灵活地定制内存子系统和NoC架构,从而有效降低系统的能耗。实验结果表明,该方法在通信能耗和总能耗方面都取得了显著的优化效果,优于传统的两步综合方法。

8.2 展望

虽然本文的方法在Æthereal NoC架构上进行了实验验证,但未来可以将其扩展到更多类型的NoC架构,以适应不同的应用需求。此外,还可以进一步研究如何结合机器学习等技术,自动优化内存和NoC的配置,提高系统的智能化水平。

同时,随着芯片技术的不断发展,内存和通信架构也在不断演进。未来的研究可以关注如何适应新的内存技术和通信协议,进一步提高系统的性能和能耗效率。

以下是不同综合方法的对比表格:
| 综合方法 | 通信能耗降低 | 总能耗降低 | 复杂度 |
| — | — | — | — |
| 不进行数据重用分析 | - | - | 低 |
| 两步综合启发式方法 | 平均10%,最多38% | 平均6%,最多26% | ER³lgR |
| 协同综合启发式方法 | 平均优于两步法 | 平均优于两步法 | ER⁴lgR |

以下是综合操作步骤的mermaid流程图:

graph LR
    A[数据准备] --> B[选择综合算法]
    B --> C{两步综合启发式方法}
    C -- 是 --> D[执行两步综合过程]
    C -- 否 --> E[执行协同综合过程]
    D --> F[结果评估]
    E --> F
    F --> G{是否满足能耗目标}
    G -- 是 --> H[结束]
    G -- 否 --> I[调整配置]
    I --> B

通过以上的分析和总结,我们可以看到数据重用驱动的内存和NoC协同综合方法在片上系统设计中具有重要的应用价值和发展潜力。未来的研究和实践将进一步推动该领域的发展,为嵌入式系统的高效运行提供有力支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值