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的更多相关文章

  1. c语言string.h和memory.h某些函数重复问题

    在C语言中,为了使用memset()函数,你是选择#include <string.h>还是<memory.h>?两个都可以,如何选择? <string.h>,标准 ...

  2. Linux内存初始化(三) 内存布局

    一.前言 同样的,本文是内存初始化文章的一份补充文档,希望能够通过这样的一份文档,细致的展示在初始化阶段,Linux 4.4.6内核如何从device tree中提取信息,完成内存布局的任务.具体的c ...

  3. 【NX二次开发】NX内部函数,libugui.dll文件中的内部函数

    本文分为两部分:"带参数的函数"和 "带修饰的函数". 浏览这篇博客前请先阅读: [NX二次开发]NX内部函数,查找内部函数的方法 带参数的函数: bool A ...

  4. 【翻译自mos文章】Windows平台下的 Oraagent Memory Leak

    来源于: Oraagent Memory Leak (文档 ID 1956840.1) APPLIES TO: Oracle Database - Enterprise Edition - Versi ...

  5. 在Linux和Windows平台上操作MemoryMappedFile(简称MMF)

    操作系统很早就开始使用内存映射文件(Memory Mapped File)来作为进程间的共享存储区,这是一种非常高效的进程通讯手段..NET 4.0新增加了一个System.IO. MemoryMap ...

  6. 操作系统课程设计--Linux平台哲学家问题

    哲学家问题是操作系统中资源分配的经典问题 linux平台下的系统api不同于Windows下的实现 要求:一个正确的哲学家程序(不会发生死锁) 一个错误的哲学家程序(会发生死锁) 系统环境:Eleme ...

  7. 使用MAT(Memory Analyzer Tool)工具分析dump文件--转

    原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...

  8. 用Vagrant和Ansible搭建持续交付平台

    这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 ...

  9. 搭建基于 STM32 和 rt-thread 的开发平台

    我们需要平台 如果说,SharePoint 的价值之一在于提供了几乎开箱即用的 innovation 环境,那么,智能设备的开发平台也一样.不必每次都从头开始,所以需要固定的工作室和开发平台作为创新的 ...

随机推荐

  1. UNIX网络编程读书笔记:recvmsg和sendmsg函数

    这两个函数是最通用的I/O函数.实际上我们可以把所有read.readv.recv和recvfrom调用替换成recvmsg调用.类似地,各种输出函数调用也可以替换成sendmsg调用. #inclu ...

  2. Minimum edit distance(levenshtein distance)(最小编辑距离)初探

    最小编辑距离的定义:编辑距离(Edit Distance),又称Levenshtein距离.是指两个字串之间,由一个转成还有一个所需的最少编辑操作次数.许可的编辑操作包含将一个字符替换成还有一个字符. ...

  3. One or more files are in a conflicted state

    http://blog.csdn.net/caiwenfeng_for_23/article/details/37501249 解决代码冲突 如果commit时出现“You have to updat ...

  4. QtGui.QGridLayout

    The most universal layout class is the grid layout. This layout divides the space into rows and colu ...

  5. chrome插件下载

      chrome插件下载2018 CreateTime--2018年3月5日11:21:21 Author:Marydon 插件推荐 如何获取? 文章顶部左上角是我的qq号,这些chrome插件加我免 ...

  6. spring spel表达式语言

    一.通过bean的id对bean进行引用 1.对其他bean的引用 <property name="dept" value="#{dept}"/> ...

  7. (三)hibernate单表操作

    0. 贴上节hbm文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hib ...

  8. TCP的发送缓冲区和接收缓冲区

    TCP协议是作用是用来进行端对端数据传送的,那么就会有发送端和接收端,在操作系统有两个空间即user space和kernal space. 每个Tcp socket连接在内核中都有一个发送缓冲区和接 ...

  9. c# 隐藏Tab控件的标签

    public void HideTabcontrolLabel(TabControl tabControl1) { tabControl1.Appearance = TabAppearance.Fla ...

  10. 温故而知新 chrome 浏览器一些小技巧、小细节

    1.console 模块如何换行? shift + enter即可. 2.有时候 network 没有分类标签(xhr.img.js.css)怎么办? 按下这个图标就可以显示出来了