KeyStone I DSP[C665x 与 C6678] 视频教程

Slides:



Advertisements
Similar presentations
盈泰盛世精选 - 华泰并购投资基金 宝蓄财富 - 产品部. 产品基本要素 产品名称盈泰盛世精选华泰并购投资基金 管理人北京恒宇天泽投资管理有限公司 托管人国信证券股份有限公司 发行规模 1.2 亿元,以实际募集规模为准 人数限制 200 人上限 投资标的本基金委托将主要投向于华泰瑞联二期并 购基金中心(有限合合)(以企业登记的.
Advertisements

兵车行 杜甫 福州十一中语文组 林嵘臻.
践行“卓越计划” 推进工程教育 西安电子科技大学 刘乃安.
小猪.
多核结构与程序设计 杨全胜 东南大学成贤学院计算机系.
综合实践活动 设计与实践案例 ——《感恩父母》主题班会.
CHAPTER 9 虛擬記憶體管理 9.2 分頁需求 9.3 寫入時複製 9.4 分頁替換 9.5 欄的配置法則 9.6 輾轉現象
毛峰教授 北京师范大学教授,博士生导师 国家社科基金项目专家 北京华文教育顾问
广西轨道交通工程职业教育集团 运行机制建设案例综述
門神 在傳統觀念中,門是居住環境中與外界相通的出入口,具有重要的屏障作用。門神顧名思義就是護宅守門的神仙,每逢過年,上至天子百官下至普通百姓,家家戶戶必在門上張貼門神,以保一家平安。 門神種類主要有宅第大門上將軍武門神、內室門戶上祈福文門神,還有童子門神、仙子門神等,形象豐富多樣,皇家貴戚還往往在畫上瀝粉貼金,十分吉祥喜慶。
心在哪裡 夢在哪裡.
Memory Pool ACM Yanqing Peng.
第一章 计算机基础知识 计算机的发展简史 1 计算机软件系统 6 计算机的定义和分类 2 微型计算机的组成 7 计算机的特点和用途 3
第三章 存储系统 现代计算机系统都以存储器为中心 在计算机运行过程中,存储器是各 种信息存储和交换的中心。
§2 虚拟存储器 1961年英国曼彻斯特大学Kilbrn等人提出 70年代广泛地应用于大中型计算机系统中 目前许多微型机也开始使用虚拟存储器
104學年度優良課程計畫分享暨課程計畫撰寫實務
操作系统 Operating System.
版权所有,引用请注明出处 第四章、存储系统-2 原著 谭志虎 主讲(改编) 蒋文斌.
DSP原理与应用 第10章 C55x典型应用系统设计
CH.2 Introduction to Microprocessor-Based Control
主讲教师:唐大仕 第5讲 计算机硬件 主讲教师:唐大仕
第 2 章 中央處理單元.
第8章 现代微型计算机 x86系列微处理器 8.2 微型计算机体系结构 8.3 存储管理技术 8.4 多任务管理与I/O管理
第一章 C语言概述.
ARM存储器结构 ARM架构的处理器的存储器寻址空间有4G字节 ,存储空间可以分为 :
(Exec1) GIS 空间分析-使用ArcGIS (Exec1)
淘宝核心系统数据库组 余锋 利用新硬件提升数据库性能 淘宝核心系统数据库组 余锋
不断变迁的闪存行业形势 Memory has changed, especially serial - from a low cost, low pin count, slow memory to an advanced, high performance memory solution to save.
第3章 ARM体系结构.
C H A P T E R 10 存储器层次.
KeyStone I DSP[C665x 与 C6678] 视频教程
软硬兼施 少年老成 ——2014全国大学生电子设计竞赛信息安全专题邀请赛TI组典型作品简析
5 Computer Organization (計算機組織).
Operating System Internals and Design principles
微程序控制器 刘鹏 Dept. ISEE Zhejiang University
港口股份有限公司东源分公司 降本增效 部门:机械队流机二班 发言人:程广州.
CH.8 硬體管理.
在專用的嵌入式板子運行 GNU/Linux 系統已經變得越來越流行。一個嵌入式 Linux 系統從軟體的角度看通常可以分為四個層次:
中国科学技术大学计算机系 陈香兰(0512- ) Spring 2011
第三章 基本觀念 電腦繪圖與動畫 (Computer Graphics & Animation) Object Data Image
缓存 缓存 Cache 1、缓存概述 2、缓存使用 3、缓存一致性问题.
電腦的硬體架構.
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
指导教师: 蒋建国教授 齐美彬教授 队 员: 吴东飞 黄井强 张俊杰 周天风 金玉龙
An Introduction to Cloud RDBMS
校園網路架構介紹與資源利用 主講人:趙志宏 圖書資訊館網路通訊組.
Ch9 Communicating with Hardware
第三章 基本觀念 電腦繪圖與動畫 (Computer Graphics & Animation) Object Data Image
第四章 存储器管理 4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配方式 4.4 基本分页存储管理方式
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
计算机系统结构(2012年春) ----存储层次: Cache基本概念
熟能生巧、每日一练: 五分钟打字练习.
重估價模式 如果一項不動產丶廠房及設備的公允價值能可靠地衡量,則企業可以選用重估價模式作為後續衡量的會計政策。 採重估價模式其帳面金額為:
從 ER 到 Logical Schema ──兼談Schema Integration
猜數字遊戲.
第10章 存储器接口 罗文坚 中国科大 计算机学院
第8單元 實習3 DO-Buzzer.
Chapter 7 掌控記憶體.
第六章 記憶體.
BiCuts: A fast packet classification algorithm using bit-level cutting
Inspiration From Above 1 Chinese Evangelical Free Church
高精度延时发生器在 Xilinx 7 Series FPGA 中的实现
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
CHAPTER 6 Concurrency:deadlock And Starvation
提昇教師專業會議(華人社區) 「教師專業行為表現」專題討論 學生和家長眼中的教師專業行為 日期:2005年10月29日 地點:香港教育學院C-Lp-01室 主講 :香港教育工作者聯會 韓湛恩老師.
CSL配置中断和HWI配置中断介绍 Xue Zhengliang
信息及其特征.
ADX series Configuration
中正大學,資工系,作業系統實驗室 陽春副教授 羅習五
Presentation transcript:

KeyStone I DSP[C665x 与 C6678] 视频教程 熊谷辉 广州创龙电子科技有限公司

演示环境 开发套件 TL665x-EasyEVM + SOM-TL665x[DSP C6655/57] TL6678-EasyEVM + SOM-TL6678[DSP C6678] 仿真器 TL-XDS560v2 开发环境 CCSv5[5.5] CCSv6[6.2] 相关产品 FPGA 板卡 TL-A7HSAD[Xilinx Artix 7] TL-K7FMC[Xilinx Kintex 7] DSP + FPGA 板卡 核心板 SOM-TL665xF[DSP C6655/57 + Xilinx Artix 7] 开发板 TL665xF-EasyEVM

C66x DSP 内存、内存保护与地址扩展(MPAX)、缓存与预取

内存 资料来源于 TI 文档

存储器类型 大小 TMS320C665x TMS320C6678 L1P程序存储器 32KB L1D数据存储器 L2存储器 1024KB 内存 存储器类型 大小 TMS320C665x TMS320C6678 L1P程序存储器 32KB L1D数据存储器 L2存储器 1024KB 512KB MSMC多核共享内存 1MB 4MB DDR存储器 最大8GB 资料来源于 TI 文档

C665x 内存映射 - C665x Core0 Core1 L1,L2 L1,L2 资料来源于 TI 文档 DSP 本地内存映射 SOC 全局内存映射 资料来源于 TI 文档

内存映射 - C6678 C6678 DSP 本地内存映射 SOC 全局内存映射 SOC 全局内存映射 资料来源于 TI 文档

复位后内存映射图 MPAX提供地址扩展/转换功能,将32位的逻辑地址映射到36位物理地址上。 资料来源于 TI 文档

MPAX应用案例 资料来源于 TI 文档

MPAX段寄存器 资料来源于 TI 文档

MPAX段寄存器 - PERM PERM域内容 资料来源于 TI 文档

MPAX段寄存器 - SEGSZ SEGSZ域内容 资料来源于 TI 文档

BADDR(20-bit):逻辑基地址,需要把32位的逻辑地址的高20位写到该域,低12位默认为0。 MPAX段寄存器 - BADDR、RADDR BADDR(20-bit):逻辑基地址,需要把32位的逻辑地址的高20位写到该域,低12位默认为0。 RADDR(24-bit):物理基地址(替换地址),需要把映射的36位物理地址的高24位写到该域,低12位默认为0。 资料来源于 TI 文档

BADDR=A0000h; RADDR=0C0000; Size=1MB MPAX使用举例 1MB A0000000 A00FFFFF BADDR=A0000h; RADDR=0C0000; Size=1MB Segment2 0:0C000000 0:0C0FFFFF XMPAXH2[BADDR] = 0xA0000 XMPAXH2[SEGSZ] = 0x13 XMPAXL2[RADDR] = 0x0C0000 XMPAXL2[PERM] = 0x3F 资料来源于 TI 文档

C66x Cache Memory 架构 缓存 描述 替换策略 可缓存性 访问时间 大小 Cache Line L1 Program 程序 直接映射(Direct Mapped) 读分配(Read Allocate) 总是缓存 1 Cycle 4K / 8K / 16K / 32K 字节 32 字节 L1 Data 数据 2 路组相关(Set Associative) 回写(Write Back) 最近最少使用(Least Recently Used (LRU)) 可配置 64 字节 L2 程序及数据 4 路组相关(Set Associative) 读写分配(Read & Write Allocate) 32K / 64K / 128K / 256K / 512K / 1024K 字节 (C665x L2最大1024K,C6678 L2最大512K) 128字节 Allocation The process of finding a location in the cache to store newly cached data. This process can include evicting data that is presently in the cache to make room for the new data. Direct-mapped cache A direct-mapped cache maps each address in the lower-level memory to a single location in the cache. Multiple locations may map to the same location in the cache. This is in contrast to a multi-way set-associative cache, which selects a place for the data from a set of locations in the cache. A direct-mapped cache can be considered a single-way set-associative cache. Read allocate A read-allocate cache only allocates space in the cache on a read miss. A write miss does not cause an allocation to occur unless the cache is also a write-allocate cache. For caches that do not write allocate, the write data would be passed on to the next lower-level cache.

缓存初始化 缓存大小 L1 Program L1 Data L2 可缓存性 配置 MAR

CSL SYS/BIOS 缓存大小配置 #include “csl_cache.h” CACHE_setL1PSize(CACHE_L1_32KCACHE); CACHE_setL1DSize(CACHE_L1_32KCACHE); CACHE_setL2Size(CACHE_512KCACHE); SYS/BIOS #include <ti/sysbios/family/c66/Cache.h> Cache_Size cacheSize; cacheSize.l1pSize = Cache_L1Size_32K; cacheSize.l1dSize = Cache_L1Size_32K; cacheSize.l2Size = Cache_L2Size_512K; Cache_setSize(&cacheSize); 缓存大小配置

CSL SYS/BIOS 内存可缓存性配置 #include "cslr_cgem.h" #include "cslr_device.h" for(i = 128; i < 131; i++) { C66xCorePacRegs->MAR[i] = 1 | (1 << CSL_CGEM_MAR0_PFX_SHIFT); } SYS/BIOS #include <ti/sysbios/family/c66/Cache.h> Cache_setMar((Ptr *)0x80000000, 0x40000000, Cache_Mar_ENABLE; 内存可缓存性配置

内存可缓存性配置 MARn TMS320C66x DSP CorePac User Guide

CSL SYS/BIOS 软件维护缓存一致性 #include "dspcache.h" CACHE_invAllL1d (CACHE_Wait wait); CACHE_wbAllL1d (CACHE_Wait wait); CACHE_wbInvAllL1d (CACHE_Wait wait); CACHE_invL1d (void* blockPtr, Uint32 byteCnt, CACHE_Wait wait); CACHE_wbL1d (void* blockPtr, Uint32 byteCnt, CACHE_Wait wait); CACHE_wbInvL1d (void* blockPtr, Uint32 byteCnt, CACHE_Wait wait); SYS/BIOS #include <ti/sysbios/family/c64p/Cache.h> Cache_inv(Ptr blockPtr, SizeT byteCnt, Bits16 type, Bool wait); Cache_invL1pAll(); Cache_wb(Ptr blockPtr, SizeT byteCnt, Bits16 type, Bool wait); Cache_wbAll(); Cache_wbInv(Ptr blockPtr, SizeT byteCnt, Bits16 type, Bool wait); Cache_wbInvAll(); 软件维护缓存一致性 CACHE_invAllL1p (CACHE_Wait wait); CACHE_invL1p (void* blockPtr, Uint32 byteCnt, CACHE_Wait wait); CACHE_invAllL2 (CACHE_Wait wait); CACHE_wbAllL2 (CACHE_Wait wait); CACHE_wbInvAllL2 (CACHE_Wait wait); CACHE_invL2 (void* blockPtr, Uint32 byteCnt, CACHE_Wait wait); CACHE_wbL2 (void* blockPtr, Uint32 byteCnt, CACHE_Wait wait); CACHE_wbInvL2 (void* blockPtr, Uint32 byteCnt, CACHE_Wait wait);

预取缓冲可以减少缓存读缺失(miss),从而减少阻塞周期,提高存储器的读性能。 数据预取缓冲:8个槽(slot),每个槽包含128字节。还具有12个候选缓冲槽。 数据预取过程: 检测到有效的预取请求 根据L1D或者L2的数据请求,在流检测过滤器(候选缓冲)中进行比较 当检测到匹配条目时,过滤器为流在预取缓冲中分配一个新的槽,同时为这个槽进行数据预取 当检测不匹配时,将会放弃当前候选缓冲的槽,对下一个候选缓冲槽操作。 程序预取缓冲:4个槽(slot),每个槽包含32字节。程序预取缓冲是一个简单的预取引擎,可以直接对L1P和L2的程序读请求进行预取。 C66x ISA 比 C674x ISA 增强了复数操作指令和 SIMD 指令

DSP1从“ping”中读取1024字节,这将会触发预取。 DSP0写1024字节到“pong” DSP1从“pong”读取1024字节 预取一致性问题(例子) 与缓冲一致性问题类似,当DSP与另一个主设备同时操作可预取的内存空间时,就可能会导致一致性问题,例如在MSMC中的一个ping-pong缓冲,两个DSP同时操作的情况: DSP0 DSP1 DSP0写1024字节到“ping” DSP0中断DSP1 DSP1从“ping”中读取1024字节,这将会触发预取。 DSP0写1024字节到“pong” DSP1从“pong”读取1024字节 Cache Cache 预取 预取 ping pong MSMC 步骤6中DSP1读取的数据有可能会因为预取一致性问题而存在部分错误数据。 C66x ISA 比 C674x ISA 增强了复数操作指令和 SIMD 指令

将两个共享区域分开,例如前面将“ping”和“pong”两个共享区域分开放不同位置 预取一致性问题 - 解决办法 禁用预取,设置MARn的第3位 将两个共享区域分开,例如前面将“ping”和“pong”两个共享区域分开放不同位置 读取前使用XPFCMD.INV失效预取缓冲 MARn C66x ISA 比 C674x ISA 增强了复数操作指令和 SIMD 指令

O(∩_∩)O~ KeyStone I DSP [C665x 与 C6678] 视频教程 广州创龙电子科技有限公司