首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
DSP技术
» 怎样使用DSP的cache(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
怎样使用DSP的cache(2)
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2015-10-25 18:31
|
只看该作者
怎样使用DSP的cache(2)
命中率
,
存储器
一个cache系统的性能决定于cache申请命中的次数,也称为命中率。对于一个特定的级别的cache来说,一个高的cache命中率意为着更高的性能。而整个cahce系统的性能决定于各级cache的命中率。比如一个cache系统第一级L1cache命中率为70%,第二级L2cache命中率为20%,第三级L3cache命中率为5%,整个存储器的为5%,因此基于图三这个系统的平均存储器性能为:
(0.7 * 4) + (0.2 * 5) + (0.05 * 30) + (0.05 * 220) = 16.30ns
为了阐述这个概念,我们以TI的TMS320C64x DSP存储器结构为例,(表四)包含了一个两级内部cache存储器以及外部存储器。L1cache可以被CPU无延迟的访问。L2存储器可被编程并且可分配为L2
SRAM
(可设地址的片上存储器)和L2cache。无论何种设置中,L2存储器都只能每两个周期被访问一次。L2的大小决定于芯片的不同,但总是比L1大的多。以TMS320C6454DSP为例,L2的大小为1MBy
te
。而C64x DSP 最多支持2GBytes的外部存储器。存储器的速度决定于存储器采用的技术种类,绝大多数在
100MHZ
左右。在图三中,所有的cache和数据通道均自动的由cache控制器控制。
图四:TMS320C64x Cache 存储器结构
Cache的数据更新
因为cache也是主存储器中的一部分备份,因此cache是否能实时反映主存储器的数据显得至关重要。当cache里的数据改变,而主存储器内的数据未能改变时,cache里的数据被称为“脏”数据。当数据在主存储中改变,而cache中未能实时改变,cache里的这个数据被称为“延迟”数据。
cache控制器采用一系列的技术来维持cache的一致性从而保证cache里存储的都是有用的信息而不是延迟数据。“监测”和“写回”操作便是两种保持cache一致性的办法。”监测“指的是用来允许cache在主存储器中是否进行影响cache地址的传输。如果cache探测到有这样的传输发生,它将及时更性自己从而匹配主存储器。这个在主存储器中复制数据的过程称为”写回“操作。
因为cache比主存储器体积小,因此经常会被填充满。当此种情况发生时,所有搬到cache里面的新数据将会取代已经存在的数据。这里有多种决定数据取代的方法。例如随机取代法、先入先出取代法、最近最少使用取代法。大多数的处理器采用的都是最近最少使用取代法。这样可以是的最新的数据取代最近最少使用的数据。这种方法来源于时间位置法则。
直接映射cache
cache存储器可以被设置为“直接映射”或者“联合方式”。为了解释这些术语,我们以图四所示的C64X的L1Pcache为例,这些cache由512列32字节组成。每一排映射到一些固定的具有相识的存储器地址上。比如:
从0000h 到 0019h的地址经常被cache安排在第0列
从0020h 到 0039h的地址经常被cache安排在第1列
从3FE0h 到 3FFFh 的地址经常被cache安排在第511列。
因此一旦我们需要获得地址4000h,由于cache的容量被用尽了,因此从4000h 到4019h的地址需要从新从第0列开始。
图五:直接映射caches
为了保持复制的数据,每一行的L1Pcache包括:
一位有效信号,用来指示cache的列中 是否包含的是有用的信息
一个标记符,其值等于地址的高18位,这个是必须的因为一个指定的列可能包含着不同地址的数据,比如,第0列可以包含的是从0000h 到0019h的数据,也可以是从4000h 到 4019h的数据。
一个可设置的数据,这个数据等同于从第5位到第13位的地址。对于直接映射方式,这个设置的数据同这个列的值是一样的。而对于联合方式时要更加复杂,这种情况我们将在随后讨论。
现在让我们看看当CPU访问位于0020h的地址时发生了什么。假定cache被完全无效,即意为着所有的列都没有包含有效数据。当CPU发出对地址20h的访问请求时,cache控制器开始首先在部分地址位(比如:从第5位到13位)等同于列地址的位置查询。当这个部分地址值(从第5位到13位)被设置为1时,匹配需查询的地址。控制器将继续检查第一列的标记位是否也和地址0020h到0039h的高18位相符合。当这些都完成时,将检查有效数据位看cache保存的是否为有效数据。如果有效数据位为0时,cache控制器记录一个不命中操作。
这个不命中操作将使得控制器将从存储器中将此列的数据0020h-0039h读入,并将该有效数据位设置为1。同时将部分地址值保存在标记符RAM中。取得的数据将被传送到CPU中,完成访问操作。
如果这个0020h的地址被再次访问,cache控制器将再次取得这个地址,检查它的设置符和标记符。当有效数据位为1时,控制器将记录一个命中操作,因此cache列里面的数据也将被送到CPU中,完成整个访问操作。
联合设置方式
联合设置方式是直接映射方式的延续。在直接映射方式中,每一个设置只包含一列。而在联合设置方式中,每一个设置包含多个列,被称为多路方式。图五中阐述了这样一个联合设置的cache,以C64xDSP's L1D为例。这是一个两路的包含64个字节总共16KBytes容量的联合设置cache。
为了保持数据,L1Dcache的每一列包含以下:
一个最近最少使用位用来指示哪些路最近很少被使用(这个在L1P中未被使用);
一个脏数据位,用来指示cache列是否匹配主存储器的容量(这个在L1P中未被使用);
一个有效数据位,用来指示cache列中包含的是否是有效数据;
一个标记位,等价于地址的高18位;
一个设置数据,等价于地址的5到13位。
命中和不命中决定的方式和直接映射cache方式是一样的。不同的是此时需要两个标记位,一个标记位记录是哪一路的请求数据。如果是第0路的数据被命中,则第0路的列中的数据被访问,如果是第1路的数据被命中,则第1路的列中的数据被访问。
如果两路均不命中的话,数据将从内存中被指派。一个最近最少使用位将决定数据如何分配类似于一个
开关
[url=]
[/url]
操作。如果被指派的第0列的最近最少使用位被设置为0,那么将把此数据分配于第一列。无论对这个cache列是读还是写的访问,都将改变这个最近最少使用标记位。例如:如果第0路的列被读取,则最近最少使用位将切换到1。由于最近最少使用位只记录不命中操作,但是它的状态每次都会更新,无论对列访问是命中还是不命中,读或者写。
对于L1P来说,L1D是一个读分配的cache,不管新数据在内存中申请时读操作是命中或者不命中。在一个写不命中操作时,数据从写存储器传递到内存中,绕过L1Dcacee。在一个写命中操作时,数据写入cache中而不是立即写入内存。当数据被CPU写访问改变时,cache里的内容将提交给一个写回cache,随后数据将被写入内存中。
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议