ti8168平台的tiler memory
DM8168 DMM/TILER简介
1.概述
如图4-1,DMM定位在SDRAM控制器的前端,是所有initiator产生的内存存取的接口。
动态内存管理器DMM,是一个专门的管理模块,广义上说,包括内存存取的方方面面。比如:
- initiator索引化的优先级产生。
- 多区域SDRAM内存交织配置
- 块目标传输优化:tiling和子tiling
- 集中的低延迟页翻译:类似MMU
内存的动态管理表现为软件可配置,天性为运行时,由DMM操作的内存管理有4个方面:
- 添加基于Initiator的优先级到任何输入的请求中
- 执行tiled请求的tiling转换
- 提供优化的低延迟基于页的翻译以便管理内存碎片:MMU
- 在两个内存控制器间按照交织配置分配交通。
TILER是DMM内的一个子模块,目的是高效操作2D数据,比如HDVICP2通过使用tiled格式进行视频/图像存取。
- 优化管理内存碎片,通过页为粒度的翻译实现0 copy物理帧缓冲交换。
- 产生高速0浪费的变换:90/180/270度旋转,带水平或垂直镜像。
2.特征
- 延迟特别低的互联端口:ELLA,用于Cortex A8存取
- 在两个EMIF bank之间的DDR数据可以是交织的,使用可编程的多区域DRAM内存映射,这增加了2倍内存通过率,支持多达4个独立的内存区域(Section)
- 基于优先级请求扩展的可编程Initiator,多达16个initiator组。
- 支持tiled数据的地址翻译,在4KB页粒度中使用PAT,这有助于管理内存碎片。
- 2个内部地址查找表(LUT),每个有256x128个入口,4个可重填引擎用于编程LUTs,带自动同步重加载。
- 支持4个独立的PAT视窗。
3.功能模块图
图4-2显示了DMM宏结构。DMM组成是6个模块:
- PEG:优先级扩展产生器,用来产生SDRAM控制器要求的优先级。注意这些优先级并不在DMM中使用。
- ELLA:极低延迟存取,它有自己的互联从端口,用来提供对内存的极低延迟存取。
- LISA:局部互联和同步代理,用来同步所有的DMM子系统和提供对配置寄存器的存取。
- PAT:物理地址翻译,用来管理内存碎片。
- ROBIN:重定序缓冲和Intiator节点,共有2个,它们有自己的互联Master端口,用来向SDRAM控制器发出请求,允许tiled数据、tiled响应和分裂的响应重构,ROBIN模块仅能管理重定序缓冲和执行数据由于定向而需要的数据重定序。
- TILER:2个,它有自己的互联从端口,用于在输入虚拟地址模式和输出物理tiled地址之间进行转换请求。注意,tiling请求转换,写数据和响应完全由TILER模块执行,
4.一些关键词和缩写词汇
bpp:Bits per pixel 每个像素使用的位数
DMM:Dynamic Memory Manager 动态内存管理
ELLA:Extra Low Latency Access 极底延迟的存取
GB,GiB:Both imply Giga Byte 都是千兆字节的意思
Initiator:器件里的一个节点,可以是CPI、外设、或DMA等,它可能是内部总线管理者(MASTER)。每个Initiator由一个ConnID(connection ID连接ID)来标识,ConnID最大限制是16,某些Initiator被分组在一起,使用一个ConnID号。
Interlaced:Qualifier for access skipping one line every line 可以跳行交织存取
IVA:Image Video Accelerator, Also called HDVICP2, IVA_HD 视频图像加速器,又称HDVICP2,IVA_HD
LISA:Local Interconnect and Synchronisation Agent 本地互联和同步代理
KB,KiB:Both imply Kilo Byte 都是千字节的意思
LUT:Look Up Table 查找表
MMU:Memory Management Unit 内存管理单元
MPU:Main Processing Unit. For the Device, it is Cortex A8 主处理器,这里指Cortex A8
PAT:Physical Address Translator 物理地址翻译
PEG:Priority Extension Generator 优先级扩展发生器
Progressive:与Interlaced相反,必须一行行连续存取。
ROBIN:Re-Ordering Buffer and Initiator Node 重新定序缓冲和发起者节点
Tiled access:对tiled区域的1D或者2D存取。在这儿,图像以2D方式读出和写入。改善了2D存取的效率,例如对图像的宏块存取,TILER 简化为一个简单的1D线性读写请求,DMM负责在连续内存中完成请求中指定的地址读写。
2D access:HDVICP2和HDVPSS能对2D图像缓存产生一个特殊的存取,带有读/写请求,高度和宽度信息。DMM-TILER基于高度宽度和地址来译码存取类型,负责读/写数据到物理内存,基于粒度为子tile的坐标。
http://blog.csdn.net/shanghaiqianlun/article/details/762048
HDVPSS 使用TI开发的算法,灵活的复合和融合引擎,各种高质量外部视频接口,实现视频/图像显示和采集处理功能。
2.1.3 缩略语
名称 |
定义 |
|
COMP |
Compositor |
复合器 |
DEI |
De-Interlacer |
去隔行 |
DEIH |
High quality De-Interlacer |
高质量去隔行 |
DVO |
Digital Video Output |
数字视频输出 |
GRPX |
Graphics Pipeline |
图形流水 |
HD |
High Definition |
高清 |
HDCOMP |
High Definition Component |
高清分量 |
HDMI |
High Definition Multimedia Interface |
HDMI接口 |
HDVPSS |
High Definition Video Processing Subsystem |
高清视频处理子系统 |
NF |
Noise Filter |
噪声滤波 |
NTSC |
National Television System Committee |
NTSC |
PAL |
Phase Alternating Line |
PAL |
SC |
Scaler |
缩放 |
SD |
Standard Definition |
标清 |
SDK |
Software Development Kit |
软件开发包 |
TILER |
Tiling and Isometric Light weight Engine for Rotation |
平铺和等容积轻量级旋转引擎 |
VENC |
Video Encoder |
视频信号调制编码器 |
VIP |
Video Input Port |
视频输入口 |
VPDMA |
Video Port Direct Memory Access |
视频口DMA |
2.1.4 数据格式
表2列出了HDVPSS的数据格式。注意对于T422 YUV422I_YUYV数据格式最大输入数据宽度是960个像素。
名称 |
数据格式 |
对齐方式 |
TILER功能 |
422I |
YUV422I_YUYV |
单一缓存:Y U Y V Y U Y V |
不支持 |
420T |
YUV420SP_UV |
Y缓存:Y Y Y Y UV缓存:U V U V |
Y:8-bit UV:16-bit |
422T |
YUV422SP_UV |
Y缓存:Y Y Y Y UV缓存:U V U V |
Y:8-bit UV:16-bit |
422T |
YUV422I_YUYV |
单一缓存:Y U Y V Y U Y V |
不支持 |
0
ti8168平台的tiler memory的更多相关文章
- c语言string.h和memory.h某些函数重复问题
在C语言中,为了使用memset()函数,你是选择#include <string.h>还是<memory.h>?两个都可以,如何选择? <string.h>,标准 ...
- Linux内存初始化(三) 内存布局
一.前言 同样的,本文是内存初始化文章的一份补充文档,希望能够通过这样的一份文档,细致的展示在初始化阶段,Linux 4.4.6内核如何从device tree中提取信息,完成内存布局的任务.具体的c ...
- 【NX二次开发】NX内部函数,libugui.dll文件中的内部函数
本文分为两部分:"带参数的函数"和 "带修饰的函数". 浏览这篇博客前请先阅读: [NX二次开发]NX内部函数,查找内部函数的方法 带参数的函数: bool A ...
- 【翻译自mos文章】Windows平台下的 Oraagent Memory Leak
来源于: Oraagent Memory Leak (文档 ID 1956840.1) APPLIES TO: Oracle Database - Enterprise Edition - Versi ...
- 在Linux和Windows平台上操作MemoryMappedFile(简称MMF)
操作系统很早就开始使用内存映射文件(Memory Mapped File)来作为进程间的共享存储区,这是一种非常高效的进程通讯手段..NET 4.0新增加了一个System.IO. MemoryMap ...
- 操作系统课程设计--Linux平台哲学家问题
哲学家问题是操作系统中资源分配的经典问题 linux平台下的系统api不同于Windows下的实现 要求:一个正确的哲学家程序(不会发生死锁) 一个错误的哲学家程序(会发生死锁) 系统环境:Eleme ...
- 使用MAT(Memory Analyzer Tool)工具分析dump文件--转
原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...
- 用Vagrant和Ansible搭建持续交付平台
这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 ...
- 搭建基于 STM32 和 rt-thread 的开发平台
我们需要平台 如果说,SharePoint 的价值之一在于提供了几乎开箱即用的 innovation 环境,那么,智能设备的开发平台也一样.不必每次都从头开始,所以需要固定的工作室和开发平台作为创新的 ...
随机推荐
- Linux 监测网络常用的工具sar iftop netstat ping nping fping mtr
Linux 监测网络常用的工具sar iftop netstat ping nping fping mtr # sar -n DEV 1 2 # iftop # netstat -i # ping n ...
- C# 非顶端窗口截图 - 用于查找指定窗口并截图
原文地址:http://blog.csdn.net/u013096568/article/details/53400389 panel上可以通过DrawToBitmap截图,不管是否在屏幕外是否有遮挡 ...
- jquery-osx
jQuery OSX https://github.com/jelly-liu/jquery-osx jquery-osx jquery, desktop, jquery desktop, jquer ...
- python split() 用法
字符串的split用法 说明:Python中没有字符类型的说法,只有字符串,这里所说的字符就是只包含一个字符的字符串!!!这里这样写的原因只是为了方便理解,仅此而已. 由于敢接触Python,所以不保 ...
- CodeMirror与jquery UI-Tabs混合使用 注意事项
第一步:.将代码高亮渲染 第二步:jquery Tab输出: 第三步:点击Tab切换时,将代码块刷新: 参考:http://jtmorris.net/2013/06/codemirror-editor ...
- Codeforces Round #256 (Div. 2) C. Painting Fence (搜索 or DP)
[题目链接]:click here~~ [题目大意]:题意:你面前有宽度为1,高度给定的连续木板,每次能够刷一横排或一竖列,问你至少须要刷几次. Sample Input Input 5 2 2 1 ...
- putty自带工具plink自动登陆ssh
PLINK.EXE -C -N -D 127.0.0.1:7000 root@111.111.111.111 -pw 123456 解释成中文: PLINK.EXE -启用数据压缩 -不要shell ...
- SCUT入门-协议生成器配置
协议生成器需要放在IIS里才能正常使用.具体目录在:Scut\Source\Tools\ContractTools\release 关于具体细节看这篇:https://github.com/ScutG ...
- Struts2初学 struts.xml详解 一
一.简介 Struts 2是一个MVC框架,以WebWork设计思想为核心,吸收了Struts 1的部分优点 二.详解 首先让我们看一下一个简单的struts.xml文件的结构 < ...
- makefile之strip函数
#$(strip <string> ) #名称:去空格函数--strip. #功能:去掉<string>字串中开头和结尾的空字符,并将中间的多个连续空字符(如果有的话)合并为一 ...