接口基本信息
本章节介绍从SRC到DST的通用DMA搬运指令,数据搬运的通用参数说明如下:
参数名 |
说明 |
取值范围 |
单位 |
---|---|---|---|
dst |
目的地址 |
/ |
/ |
src |
源地址 |
/ |
/ |
sid |
预留参数,设置为0即可 |
/ |
/ |
nBurst |
搬运数据块个数 |
[0, 2^12-1] |
/ |
lenBurst |
一次连续搬运数据长度 |
[0, 2^16-1] |
详见下表 |
srcGap |
两次搬运源地址间隙 |
[0, 2^16-1] |
详见下表 |
dstGap |
两次搬运目的地址间隙 |
[0, 2^16-1] |
详见下表 |
padMode |
枚举类型,详见下表 |
[0,8] |
/ |
源地址 |
源地址对齐 |
目的地址 |
目的地址对齐 |
lenBurst |
srcGap |
dstGap |
---|---|---|---|---|---|---|
GM |
data type aligned |
UBUF |
32Bytes |
lenBurst * 32Bytes |
srcGap * 32Bytes |
dstGap * 32Bytes |
UBUF |
32Bytes |
GM |
data type aligned |
lenBurst * 32Bytes |
srcGap * 32Bytes |
dstGap * 32Bytes |
GM |
data type aligned |
CBUF |
32Bytes |
lenBurst * 32Bytes |
srcGap * 32Bytes |
dstGap * 32Bytes |
UBUF |
32Bytes |
UBUF |
32Bytes |
lenBurst * 32Bytes |
srcGap * 32Bytes |
dstGap * 32Bytes |
CBUF |
32Bytes |
GM |
data type aligned |
lenBurst * 32Bytes |
srcGap * 32Bytes |
dstGap * 32Bytes |
说明:
- 总搬运数据量计算:nBurst * lenBurst * 32Bytes(block大小32Bytes);
- srcGap/dstGap:表示两次搬运之间的gap,即上一个burst的尾地址跟下一个burst的首地址之间的距离;
padMode |
pad模式描述 |
---|---|
0 |
无padding |
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
说明:
padMode等于0,表示无padding,当不等于0时,padMode设置通过set_padding(config)完成数据padding:
void set_padding(uint64_t config);
- config[63:32]默认为0;
- 对于b32 padding data,config[31:0]生效;
- 对于b16 padding data,只需设置config[15:0],其余bit设置为0;
- 对于b8 padding data,需要将config[15:8]和config[7:0]设置为padding data,其余bit设置为0;
- 对于b4 padding data,需要将config[15:12]、config[11:8]、config[7:4]、config[3:0]设置为padding data,其余bit设置为0;