任务描述符
3 Sep 2024
Read time: 1 minute(s)
使用 CE 模块进行硬件加速时,软件需要以任务描述符的方式将详细的任务信息配置给 CE 模块。 多个相关的任务通过链表的方式构建任务链表 (Task List),CE 模块则按照任务链表顺序逐个处理任务。
警告:
当一个任务链表由多个任务描述符组成时,链表内的所有任务描述符必须使用相同的算法。
任务描述符的大小固定,组成部分如下所示:
任务描述符组成部分 | 大小/字节 | 说明 |
---|---|---|
Algorithm descriptor | 36 | 算法描述符 |
Data descriptor | 24 | 数据描述符 |
Next | 4 | 下一个任务描述符的地址 |
任务列表显示了多个任务描述符构成的任务列表示例:
以下是任务描述符的具体位域分配总览:
字段 | 位域 | 备注 | |
---|---|---|---|
Algorithm Desc | Algorithm Config | 31:24 | - |
23:20 | Key size,密钥大小 | ||
19:16 | Key source,密钥源选择 | ||
15:12 | - | ||
11:10 | Counter width | ||
9 | Hash IV flag | ||
8 | Direction | ||
7:0 | Algorithm tag,算法标识 | ||
Key address | 31:0 | - | |
IV address | 31:0 | - | |
Counter output address | 31:0 | - | |
Reserved | [31:0] * 5 | 20 字节 | |
Data Desc | Data Info | 31:2 | - |
1 | First flag,当前数据是否为开始数据块 | ||
0 | Last flag,当前数据是否为结束数据块 | ||
Total length | 31:0 | - | |
Input Address | 31:0 | 当前输入数据地址 | |
Input Length | 31:0 | 当前输入数据长度 | |
Output Address | 31:0 | 当前输出数据地址 | |
Output Length | 31:0 | 当前输出数据长度 | |
Next | 31:0 | 下一个任务描述符的地址 |