云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > TMS320C64x+ DSP - --Cache 优化

TMS320C64x+ DSP - --Cache 优化

  • 62 次阅读
  • 3 次下载
  • 2025/6/15 11:44:00

图四:tms320c64x cache 存储器结构

cache的数据更新

因为cache也是主存储器中的一部分备份,因此cache是否能实时反映主存储器的数据显得至关重要。当cache里的数据改变,而主存储器内的数据未能改变时,cache里的数据被称为“脏”数据。当数据在主存储中改变,而cache中未能实时改变,cache里的这个数据被称为“延迟”数据。

cache控制器采用一系列的技术来维持cache的一致性从而保证cache里存储的都是有用的信息而不是延迟数据。“监测”和“写回”操作便是两种保持cache一致性的办法。”监测“指的是用来允许cache在主存储器中是否进行影响cache地址的传输。如果cache探测到有这样的传输发生,它将及时更性自己从而匹配主存储器。这个在主存储器中复制数据的过程称为”写回“操作。

因为cache比主存储器体积小,因此经常会被填充满。当此种情况发生时,所有搬到ca

本篇文章来源于 百科全书 转载请以链接形式注明出处 网址:

http://www.siaaa.com/Article/dsp/200808/20367_2.html

che里面的新数据将会取代已经存在的数据。这里有多种决定数据取代的方法。例如随机取代法、先入先出取代法、最近最少使用取代法。大多数的处理器采用的都是最近最少使用取代法。这样可以是的最新的数据取代最近最少使用的数据。这种方法来源于时间位置法则。

直接映射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,以c64x dsp's l1d为例。这是一个两路的包含64个字节总共16kbytes容量的联合设置cache。

为了保持数据,l1dcache的每一列包含以下:

一个最近最少使用位用来指示哪些路最近很少被使用(这个在l1p中未被使用);

一个脏数据位,用来指示cache列是否匹配主存储器的容量(这个在l1p中未被使用); 一个有效数据位,用来指示cache列中包含的是否是有效数据; 一个标记位,等价于地址的高18位; 一个设置数据,等价于地址的5到13位。

命中和不命中决定的方式和直接映射cache方式是一样的。不同的是此时需要两个标记位,一个标记位记录是哪一路的请求数据。如果是第0路的数据被命中,则第0路的列中的数据被访问,如果是第1路的数据被命中,则第1路的列中的数据被访问。

如果两路均不命中的话,数据将从内存中被指派。一个最近最少使用位将

本篇文章来源于 百科全书 转载请以链接形式注明出处 网址:http://www.siaaa.com/Article/dsp/200808/20367_3.html

决定数据如何分配类似于一个开关操作。如果被指派的第0列的最近最少使用位被设置为0,那么将把此数据分配于第一列。无论对这个cache列是读还是写的访问,都将改变这个最近最少使用标记位。例如:如果第0路的列被读取,则最近最少使用位将切换到1。由于最近最少使用位只记录不命中操作,但是它的状态每次都会更新,无论对列访问是命中还是不命中,读或者写。

对于l1p来说,l1d是一个读分配的cache,不管新数据在内存中申请时读操作是命中或者不命中。在一个写不命中操作时,数据从写存储器传递到内存中,绕过l1dcacee。在一个写命中操作时,数据写入cache中而不是立即写入内存。当数据被cpu写访问改变时,cache里的内容将提交给一个写回cache,随后数据将被写入内存中。

脏数据位指示当cache里面的数据被写操作修改时,而修改后的新数据还未被写入到主存储器中。最初脏数据位将被赋值为0。一旦当cpu对某列进行写操作时,脏数据位将变为1。当此列被逐出cache时,这个数据将被写回主存储器中。当发生读不命中操作时新数据将从脏数据列中申请,这种情况才会发生。一个写回命令将传递给cache控制器从而产生一个写回操作,只是这种情况并不经常发生。

优化cache性能

这里有三种不命中的情况:

必然不命中(也叫首次不命中):这种不命中发生在当数据第一次放入cache中,为了和下面两种不命中方式区分开来,它们可以被避免。

冲突不命中:不命中发生在在该列在被重复使用之前被取代。

容量不命中:这种方式发生在当cache容量被耗尽时,容量不命中是冲突命中的一种方

搜索更多关于: TMS320C64x+ DSP - --Cache 优化 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

图四:tms320c64x cache 存储器结构 cache的数据更新 因为cache也是主存储器中的一部分备份,因此cache是否能实时反映主存储器的数据显得至关重要。当cache里的数据改变,而主存储器内的数据未能改变时,cache里的数据被称为“脏”数据。当数据在主存储中改变,而cache中未能实时改变,cache里的这个数据被称为“延迟”数据。 cache控制器采用一系列的技术来维持cache的一致性从而保证cache里存储的都是有用的信息而不是延迟数据。“监测”和“写回”操作便是两种保持cache一致性的办法。”监测“指的是用来允许cache在主存储器中是否进行影响cache地址的传输。如果cache探测到有这样的传输发生,它将及时更性自己从而匹配主存储器。这个在主存储器中复

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com