并行硬件-软件架构及波前计算的高效实现
立即解锁
发布时间: 2025-08-21 02:39:40 阅读量: 3 订阅数: 11 

### 并行硬件 - 软件架构及波前计算的高效实现
在当今的计算领域,并行处理和分布式架构的高效利用是一个重要的研究方向。本文将探讨并行硬件 - 软件架构在离散小波变换(DWT)计算中的应用,以及波前计算在并行编程中的不同实现方式。
#### 1. 数据路由到地址计算的转换
在使用递归矩阵分解(RMF)进行 DWT 计算时,数据移位是整个过程的重要组成部分。为了减少数据路由的总数,引入了一个名为 rMap 的虚拟映射索引。rMap 索引是从每个图像位置到数据值的指针,可以看作是一个包含 x 和 y 两个分量的结构。x 和 y 值存储了像素在变换后图像上的当前坐标位置。
例如,对于图像上的位置 (i, j),在 DWT 计算过程中,该像素值会根据计算结果移动到不同的位置。通过修改 rMap.x 和 rMap.y 的坐标值,而不是实际移动存储数组中的数据,就可以实现数据的移位。因此,位置 (i, j) 处像素的新值由 (rMap(i, j).x, rMap(i, j).y) 给出。使用 rMap 索引可以独立于数据移位过程进行数据变换计算,并且在计算的每个实例中,初始图像位置和 rMap 索引之间存在直接的位置相关性。
#### 2. 数据移位方程
为了实现通用的数据移动,开发了一组通用的数据移动方程,这些方程适用于任何块大小,构成了使用 RMF 算法的完整 DWT。
假设在完成过程的 log N 步骤中的任何阶段有一个通用块,根据 RMF 算法的定义,数据块需要进行特定的移动。例如,对于图 1.1 中的块 1,其中的数据需要移动到块 9 的位置。对于块 1 中位置为 (x, y) 的任何数据项,它将移动到以下位置:
\[
x + \frac{BR_x - TL_x}{4}, y + \frac{BR_y - TL_y}{4}
\]
其中,(BRx, BRy) 和 (TLx, TLy) 分别是要合并的四个象限所在块的右下角和左上角坐标。通过这种方式,成功地将数据路由过程转换为简单的算术计算过程。
同时,还定义了一组使用 RMF 算法计算 DWT 的原语,这些原语定义了计算过程中要执行的操作,如一维 RMF、数据移位和递归操作。
#### 3. 硬件 - 软件架构
该架构的主要目标是利用数据变换和数据移位过程之间的固有并行性。通过使用现场可编程门阵列(FPGA)的多线程架构来实现这一目标。系统的整体架构如图 1.2 所示,使用两个线程进行处理计算:一个用于数据计算,另一个用于数据路由。
数据路由在 FPGA 上进行,rMap 索引存储在 FPGA 板上提供的随机存取存储器(RAM)中。这样可以通过在应用程序设置期间配置在 FPGA 上的加法器/减法器电路,实现对 FPGA 上数据路由过程的数据快速访问。
架构的主要组件包括:
- 原始块计算软件单元(PBCSU)
- 基于硬件 - 软件的合并过程(MPS 和 FPGA)
- 基于主内存的排队结构
架构的工作流程如下:
1. **初始阶段**:输入图像以数据值数组的形式存储在主内存中。
2. **PBCSU 处理**:PBCSU 从主内存中读取 2x2 块,并计算基本的二维 RMF。同时,将每个 2x2 块的左上角和右下角坐标写入队列 Q1。这个过程作为一个线程持续进行,直到所有 2x2 块都计算完毕,然后该线程终止。
3. **MPSU 处理**:合并过程软件单元(MPSU)线程检查队列 Q1 的状态。当队列长度大于 4 时,MPSU 从队列中读取四组坐标,这些坐标代表要合并的四个块。然后,MPSU 使用 FPGA 上配置的硬件执行数据移动操作,加法过程的数据从 FPGA 板载 RAM 中读取。合并过程完成后,将合并块的坐标写入队列 Q2。MPSU 对从
0
0
复制全文
相关推荐









