背景:
CPU 有L1 cache L2 cache、L3 cache IP 与CPU 可以共用;这些cache 的存取速率 L1 >L2 > L3远大于 ddr。同时IP 内部也存在RAM,比如 VDEC、VENC 都有片内的RAM。
在phoenix 平台开始,为了降低成本(可以将各个IP内部的ram 裁剪掉,sc作为一个单独的IP 可以共享复用内存)与提高访存的速率加入了这一个模块;SC 可以作为cache 可以作为buffer
环境要求:
(1)SC 的patch
(2)VDEC/VENC 可以正常工作的 软件版本与环境
一、带sc buffer的申请
用例态,在申请buffer的时候带上 gid 的flag
二、带sc buffer的 释放:
在用户态,正常流程释放即可
在内核态,释放的时候,需要带gid释放;
三、功能验证
需要关注几个点:
(1)VDEC/VENC IP是否命中了SC,在Baltimore 是读取了adb shell ecall reg_read_u32 0xfe408028,后续可能寄存器会有变化,与SC 联调同事沟通索取;
(2)VDEC/VENC 业务是否正常;
四、VDEC partial as full 通路验证
sc 的cacheline 为128byte、读取的最小粒度是64byte。其中:
(1)IP 写内存指令一般总线都会做64byte对齐后,才会下发;
(2)IP读内存指令 一般不做对齐
如果IP 访问SC取数据时发出去的取指令的数据量的大小不满64byte,SC 会从ddr 里多读出一些byte 对齐到64byte,load 到sc中。partial as full 功能为 SC 感知到 IP MASTRE 发出的访存非64byte对齐,SC将不对齐的部分,在SC中直接补0,不读ddr,从而节省带宽;
配置方法:
(1)MASTER 将 partial as full 信号传导SC ,SMMU V2 时,此信号在 smmu comm中配置:
在V3 smmu 将此信号移除,需IP自己携带随路信号,
(2)MASTER 发出非64byte 对齐的访存指令,一般是小分辨率的码流
验证方法:
合入SC 同事的 PMU patch,设置PMU 事件,使用PMU监测,对应的事件有event 与业务正常即可
by HW-DQ






































苏公安网备 32011402010933号