智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 15376|回复: 1
打印 上一主题 下一主题

SH2A系列Cache的原理与应用【转帖】

  [复制链接]

489

主题

1691

帖子

1

精华

管理员

网站创始人&站长

Rank: 11Rank: 11Rank: 11Rank: 11

积分
85932

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
56988
贡献
17374
兑换币
13144
注册时间
2007-6-8
在线时间
5785 小时
跳转到指定楼层
1#
发表于 2009-9-18 16:54:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
作者: 快乐水牛


Cache种类
instruction cache/operand cache
Cache工作方式
write-back/write-through
Cache的查找算法
least-recently-used(LRU) algorithm

Cache的描述(SH2A)
Cache is composed of four ways(banks), each of which is divided into an address section and a data section.
Each of the address and data sections is divided into 128 entries. The data section of the entry is called a line. Each line consists of 16 bytes(4 bytes * 4). The data capacity per way is 2KB(16bytes * 128 entries), with a total of 8KB in the cache as a whole(4 ways).. The instruction cache structure is the same as the operand cache structure except for not having the U bit.
我们可以看到,Cache分为address section和data section两个部分. 它们实际上就是CPU中的一小块RAM,这一小块RAM位于某一地址空间,使用特殊的指令,例如MOV指令,就可以访问这一空间,也就是Cache的内容。例如:
The instruction cache address array is mapped onto address H'F0000000 to H'F07FFFFF, and the data array onto addresses H'F1000000 to H'F17FFFFF. The operand cache address array is mapped onto addresses H'F0800000 to H'F0FFFFFF, and the data array onto addresses H'F1800000 to H'F1FFFFFF.

Cache的有效空间(valid space)
Cache的有效空间是指Cache的工作范围,假设Cache的有效空间为H'00000000 to H'1FFFFFFF,那么在这一范围内的所有数据都可以被Cache访问,如果用户的程序位于有效空间之内,CPU的运算速度就可以大大提高。因此,更改Cache寄存器或者访问Cache内容的代码,要放在Cache有效空间之外,否则程序很容易出错!

Cache工作方式的讨论
Cache的每个入口entry包含address array和data array。
address array包含了一些标志,地址和算法位。例如SH2A里面有V,U两个标志位,共占2位。V用来表示该入口数据是否有效,U用来表示该入口数据是否被写回。算法一般指LRU,占6位,用于指示该入口数据是否被最近最少访问过。地址(tag address)占21位,存储着主存中的某个地址。
data array则存放着address array里面的地址对应着的存储器的内容。
当CPU访问存储器时,以存储器地址作为行索引,寻址到cache的某个entry,同时检测该entry的tag address和V位,如果tag address符合并且V=1(数据有效),则发生cache hit。如果数据不匹配或者V=0,则发生cache miss.
当发生cache hit后,data array里面的数据被送到CPU,同时刷新LRU。
当发生cache miss后,CPU发出外部总线信号寻址外部存储器,同时刷新该entry。找到相关的数据后,会同时把数据写入到CPU和cache。当写入到cache后,V标志置1,同时更新LRU。如果是operand cache,U位通常被清除为0.

0

主题

0

帖子

0

精华

注册会员

Rank: 2

积分
123
威望
171
贡献
22
兑换币
0
注册时间
2010-5-2
在线时间
0 小时
2#
发表于 2010-6-27 18:36:22
顶了再看看




--------------------------------------------------------------------------------------------------------------------
传奇私服传奇私服传奇私服传奇私服传奇私服传奇私服传奇私服传奇私服
支持 反对

6

主题

309

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
9606

论坛元老奖章

QQ
威望
1453
贡献
7919
兑换币
155
注册时间
2010-4-2
在线时间
117 小时
3#
发表于 2012-11-23 21:38:57 | 只看该作者
强强强~~,太好了,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 16:07 , Processed in 0.042238 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表