DM8168 DMM/TILER简介

news/2024/7/4 1:41:46 标签: access, generator, extension, processing, 编程, 优化

DM8168 DMM/TILER简介

1.概述

如图4-1DMM定位在SDRAM控制器的前端,是所有initiator产生的内存存取的接口。

         动态内存管理器DMM,是一个专门的管理模块,广义上说,包括内存存取的方方面面。比如:

  •  initiator索引化的优先级产生。
  •  多区域SDRAM内存交织配置
  • 块目标传输优化tiling和子tiling
  • 集中的低延迟页翻译:类似MMU

内存的动态管理表现为软件可配置,天性为运行时,由DMM操作的内存管理有4个方面:

  • 添加基于Initiator的优先级到任何输入的请求中
  • 执行tiled请求的tiling转换
  • 提供优化的低延迟基于页的翻译以便管理内存碎片:MMU
  • 在两个内存控制器间按照交织配置分配交通。

TILERDMM内的一个子模块,目的是高效操作2D数据,比如HDVICP2通过使用tiled格式进行视频/图像存取。

  • 优化管理内存碎片,通过页为粒度的翻译实现0 copy物理帧缓冲交换。
  • 产生高速0浪费的变换:90/180/270度旋转,带水平或垂直镜像。

2.特征

  • 延迟特别低的互联端口:ELLA,用于Cortex A8存取
  • 在两个EMIF bank之间的DDR数据可以是交织的,使用可编程的多区域DRAM内存映射,这增加了2倍内存通过率,支持多达4个独立的内存区域(Section
  • 基于优先级请求扩展的可编程Initiator,多达16initiator组。
  • 支持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模块仅能管理重定序缓冲和执行数据由于定向而需要的数据重定序。
  • TILER2个,它有自己的互联从端口,用于在输入虚拟地址模式和输出物理tiled地址之间进行转换请求。注意,tiling请求转换,写数据和响应完全由TILER模块执行,

4.一些关键词和缩写词汇

bppBits per pixel 每个像素使用的位数

DMMDynamic Memory Manager 动态内存管理

ELLAExtra Low Latency Access 极底延迟的存取

GBGiBBoth imply Giga Byte 都是千兆字节的意思

Initiator:器件里的一个节点,可以是CPI、外设、或DMA等,它可能是内部总线管理者(MASTER)。每个Initiator由一个ConnIDconnection ID连接ID)来标识,ConnID最大限制是16,某些Initiator被分组在一起,使用一个ConnID号。

InterlacedQualifier for access skipping one line every line 可以跳行交织存取

IVAImage Video Accelerator, Also called HDVICP2, IVA_HD 视频图像加速器,又称HDVICP2IVA_HD

LISALocal Interconnect and Synchronisation Agent 本地互联和同步代理

KBKiBBoth imply Kilo Byte 都是千字节的意思

LUTLook Up Table 查找表

MMUMemory Management Unit 内存管理单元

MPUMain Processing Unit. For the Device, it is Cortex A8 主处理器,这里指Cortex A8

PATPhysical Address Translator 物理地址翻译

PEGPriority Extension Generator 优先级扩展发生器

Progressive:与Interlaced相反,必须一行行连续存取。

ROBINRe-Ordering Buffer and Initiator Node 重新定序缓冲和发起者节点

Tiled access:对tiled区域的1D或者2D存取。在这儿,图像以2D方式读出和写入。改善了2D存取的效率,例如对图像的宏块存取,TILER 简化为一个简单的1D线性读写请求,DMM负责在连续内存中完成请求中指定的地址读写。

2D accessHDVICP2HDVPSS能对2D图像缓存产生一个特殊的存取,带有读/写请求,高度和宽度信息。DMM-TILER基于高度宽度和地址来译码存取类型,负责读/写数据到物理内存,基于粒度为子tile的坐标。


http://www.niftyadmin.cn/n/904483.html

相关文章

LeetCode 151. Reverse Words in a String

151. Reverse Words in a String(翻转字符串里的单词) 题目: 给定一个字符串,逐个翻转字符串中的每个单词。 示例 1: 输入: "the sky is blue"  输出: "blue is sky the"  示例 2:…

HDVPPS(part)

High-DefinitionVideo Processing Subsystem (HDVPSS) 这一章介绍了高清视频处理子系统(HDVPSS)。 2.1导论 2.1.1 简介 HDVPSS 使用TI开发的算法,灵活的复合和融合引擎,各种高质量外部视频接口,实现视频/图像显示和采集处理功能。 2.1.3 …

Maven归纳

一、常用功能 1、Maven的中央仓库 https://mvnrepository.com/ 2、添加jar包依赖 1.首先点击pom.xml,然后点击弹出页面中的Dependencies选项,接着在点击Add按钮,在弹出的对话框中的标记处输入“要添加的jar包”的相关信息,接着程序…

openstack——cinder服务篇

一、cinder 介绍: 理解 Block Storage操作系统获得存储空间的方式一般有两种:通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区、格式化、创建文件系统;或者直接使用裸硬盘存储数据(数据…

CF183D T-shirt

CF183D T-shirt 考虑每次的选择,一定是选择一件衣服使得能送出的概率最大 f[i][j]表示,至少有j个人能穿第i个的概率 选择最大的n个f[i][j]就是答案。 直接dpO(m*n^2)会TLE 我们只要前n大,而f[i]显然单调 加入f[i][1],选择最大的。…

LINUX 网络协议栈实现分析-SKBUFF 的实现

本文是我尝试分析 LINUX 网络协议栈实现的一系列文章中的第一篇,主要分析LINUX 网络协议栈中 SKBUFF 的实现。分析以 LINUX2.2.x 为基础,同时也包括了相同的描述对象在 LINUX2.4.x 中的新变化。本文引用的代码的版本分别是:LINUX2.2.25&#…

django-debug-toolbar 插件的使用

I.介绍 django-debug-toolbar 是一个django的插件,需要用到jquery,可在前端页面显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息。 github地址 文档地址 II.安装 pip install django-debug-toolbar III.配置 1.在settings.py中 将de…