下面开始IPU模块框图,我们将引入部分Sansung S5PV210部分图形处理单元框图,调整视角与iMX53进行比较,因为他们都是ARM架构都将肩负同样的使命(图形处理并输出)。

IPU系统模块框图
从上图我们可以得出iMX53 IPU由以下模块构成:
CSI - Camera Sensor Interface
DI - Display Interface
DC - Display Controller
DP - Display Processor
IC - Image Converter
VDIC - Video De Interlacer
IRT - Image Rotator
IDMAC - Image DMA Controlle
DMFC - Display Multi FIFO Controller
CM - Control Module
除此之外我们还应该注意他们之间的连线,因为它反映了IPU内部数据总线的连接关系。后面我们即将深入研究的DMA传输都需要物理连接着支撑。
下面将开始内部总线研究。

该图看起来比较让人头疼,但他至少揭示了DAM需要使用的两个重点单元CM与IDMAC。因此可以基于该线索对框图调整后如下图:

数据要进行DMA传输全部需要IDMAC进行控制。CM(Control Module)看看他的大名,总指挥就是他了。
再来一个Sansung描述的IPU对数据处理的框图。

该图让IPU的工作看起来更明确了。
内部控制核心IDMAC与CM分析:
在分析IDMAC之前我们需要先看看IDMAC数据传输需要遵循的规则。
1.数组存放规则。

经典数据存储图
根据DMA搬运原理,AXI总线每次传输64bit,需要对像素点数据进行存放,因为后面的大部分数据处理都以像素点为单位。数据存放与数据处理息息相关,代码反映为像素点格式,存储区域大小。放大到窗口内存区域。
typedef struct framebuffer_device_t {
..........
/* dimensions of the framebuffer in pixels */
const uint32_t width;
const uint32_t height;
/* frambuffer stride in pixels */
const int stride;
/* framebuffer pixel format */
const int format;
…………
};
再看IDMAC框图

该模块由大量小单元组成,但要做的事为:记录通道信息,访问优先级配置等等。还需要分析IDMAC读写控制不同的数据控制点。
IBIW & IBIR - Internal bus interface for write and read:
IPU内部总线向IDMAC桥接,可以简单看成多路复用控制模块。
FCW & FCR - Format converter write and read
从框图反映为64位总线向128位总线过渡,其实他的核心工作为数据的压缩存放,与压缩数据进入IPU处理前的数据还原。下图为IPU内部支持的数据格式:

但数据位于RAM中的存储方式可并非如此,看看上方的经典数据存放图可知。
当然要想实现数据的压缩与恢复我们还需要CPMEM与LUT的支持。
BCW-buffer controller for write& BCR-buffer controller for read
BUFW- buffering write&BUFR- buffering read
读写端都具有4 x 64 bytes buffers,因为RGBA与YUVA都有4种颜色分量构成。BCW控制BUFW而BCR控制BUFR。
AXIW - AXI Write and AXIR - AXI Read
AXIW/AXIR控制对AXI总线的读写。IPU手册解释为:实时通道控制。因为IPU向AXI发出的请求有实时总线请求与非实时总线请求,并且BCR/BCW会对他们进行控制,可用读取通道数为8,写入通道数为6.因此防止全部非实时通道造成的通道阻塞。因此需要限制IPU同时最高使用的通道数目。
CC_W & CC_R - Channel Control Write and Read
其实CC_W/CC_R才是最重要的IDMAC控制单元,
• It arbitrates the channels according to the priority.
• Controls the address arithmetic unit.
• Functions as a memory interface to the CPMEM. It reads the parameters from the CPMEM, prepares the controls accordingly and writes back updated parameters to the CPMEM.
• The read unit provides the parameters to the IBIR unit
• The write unit provides the parameters to the AXIW unit
AAU_W & AAU_R- Address Arithmetic Unit for Write and Read
DMA访问地址计算单元,地址计算公式如下:
ADDR = EBA +(XB + SX)* BPP + (YB + SY) *(SL + 1)

ATC - Alpha Transparency Controller

通道关联

CPMEM - Channel Parameter Memory
每个通道由160bit参数配置区控制。

The parameters and the way they are organized are different for each mode. The Pixel Format Select (PFS) value of the CPMEM words are used by the IPU to determine if the words should be interpreted as interleaved or non-interleaved format.
Locking the arbitration and reordering the AXI bursts(提高DMA效率机制)
每次读取更多的数据 。
总结:
IDMAC为DMA数据流处理核心单元,IPU完成的内存数据到物理设备输出,通过硬件加速提高显示效率与对总线带宽的占用。
本文介绍了iMX53 IPU的模块构成,重点关注了IDMAC(Image DMA Controller)及其在数据传输中的作用。IDMAC控制DMA传输,与Control Module (CM) 协作,负责通道管理和数据存取。内部总线结构和地址计算单元确保高效的数据处理。此外,文章提到了数据存储格式、通道控制和参数内存等关键概念。

1431

被折叠的 条评论
为什么被折叠?



