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 环境,那么,智能设备的开发平台也一样.不必每次都从头开始,所以需要固定的工作室和开发平台作为创新的 ...
随机推荐
- IOS客户端Coding项目记录(三)
18:图片视图几种填充样式 _imgView.contentMode = UIViewContentModeScaleAspectFill; 如下: typedef NS_ENUM(NSInteger ...
- ant design pro (三)路由和菜单
一.概述 参看地址:https://pro.ant.design/docs/router-and-nav-cn 二.原文摘要 路由和菜单是组织起一个应用的关键骨架,我们的脚手架提供了一些基本的工具及模 ...
- 视频编码格式转换 MP4
视频工具有很多,如专业的premiere,但是我们只要涉及后期转换,不涉及制作,所以用不到这末专业的工具. 一般来说,使用暴风转码或者qq影音工具就足以应付我们的日常转换需求,下面以qq影音软件做说明 ...
- linux静态链接库与动态链接库详解
一顺便说说了哦 通常情况下,对函数库的链接是放在编译时期(compile time)完成的.所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(e ...
- 【转帖】如何利用Spring Cloud构建起自我修复型分布式系统
http://zhidao.baidu.com/link?url=tSKwdn3wr8KUxWMteHmneFtY0KoNZBMK9Xy-RimsdISA4h2neAecgHqggBipz2w6nXr ...
- MSSQL排序规则冲突
更改表字段排序规则 ALTER TABLE 表名 ALTER COLUMN 字段名 数据类型(长度) COLLATE 排列规则
- sqlserver学习笔记(五)—— 查询
查询的基本语法结构: select 列名/* from 表名 [where 限制条件] [order by 排序] 1.查询全部的行和列: select * from 表名 2.查询部分行和列:(部分 ...
- script标签的crossorigin属性
通常我们使用window.onerror来捕获js脚本的错误信息. 但是对于跨域调用的js脚本,onerror事件只会给出很少的报错信息:error: Script error. 这个简单的信息很明显 ...
- hibernate 中HQL查询
由于比较简单,在此处只写一些HQL语言. 表关系,多对一. CREATE TABLE `user` ( `id` ) NOT NULL AUTO_INCREMENT, `uname` varchar( ...
- mysql在linux7下systemd的相关配置
---- # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. # # This program ...