电脑高手论坛

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 10817|回复: 11

一個CACHE的問題

[复制链接]
发表于 2003-4-14 21:39:00 | 显示全部楼层 |阅读模式
QUESTION:CHCHE中保存的是數據還是指針 :?:
 楼主| 发表于 2003-4-14 21:45:55 | 显示全部楼层
QUESTION2:在一個雙CPU的系統里,如果CACHE1,CACHE2同時命中內存中的區塊A,現CPU1使A的內容發生了變化,那通常CACHE2中的數據如何處理,作廢?WRITE-BACK?...
 楼主| 发表于 2003-4-14 21:51:44 | 显示全部楼层
QUESTION3:TAG是否只是在WRITE-BACK時有效
 楼主| 发表于 2003-4-14 21:54:28 | 显示全部楼层
QUESTION4:CACHE的地址是獨立的還是系統地址的一部分?TAG呢,他又是如何尋址的?
 楼主| 发表于 2003-4-14 22:00:51 | 显示全部楼层
QUESTION5:對於I-Cache和D-Cache,是否只是簡單的把一條指令拆成兩半,然後丟里邊去
发表于 2003-4-14 23:37:28 | 显示全部楼层
N人,难道你要搞CACHE的系统集成啊?!
发表于 2003-4-15 10:24:35 | 显示全部楼层
1、Cache里存的是数据,不是指针(指令也可算是数据的一种,只不过存在I-Cache中,你说的捌成两半我不太明白)

2、你说的Cache1与Cache2(是不是指L1与L2 Cache,我是这么理解的)同时命中A区,之后的处理要看具体的CPU了,对于Intel的处理器而言,L1的内容是L2内容的一个子集,两者同时更新,但对于AMD的处理器则不是,L1中的数据不会出现在L2中,它们之间的协调有专用的算法(一般来说是L1先用,如果不需要了则转到L2,同时将L1的同数据清除)。现在我们只管L2中的数据改变情况,目前都是WB的回写机制,也就是说当前L2数据要被替换时才会写回内存中,平时不用回写,所有改动只在L2中体现。

3、Cache有自己独立的地址系统,Tag是做索引用的一种RAM(全称TagRAM),也称为标记缓存,是对Cache中的数据所对应的内存物理块地址的标记,所以在每次访问Cache时都要通过Tag进行检索,看看所需要的内存块有没有存在Cache中,如果没有就要到指定的内存块中读取所需的数据。Tag的地址有固定的编法(它和内存块地址有一个转换公式),在这里就不多说了,如果需要我可能会写一篇专文讨论这个问题。但要肯定的是,只要访问Cache就意味着搜索,有搜索就要用到Tag,而不管是不是要进行WB操作。
 楼主| 发表于 2003-4-15 13:07:04 | 显示全部楼层
多謝多謝,呵呵 :D
我那個CACHE1/CACHE2的問題是:在一個雙CPU的系統里,有CPU1/CPU2,CPU1的CACHE為CACHE1,CPU2的CACHE為CACHE2,現CAHCE1/CAHCE2都命中memory中的區塊A,如果現在CPU1將A中的數據改變,那麼CACHE2的數據自然就是錯誤的,一般CAHCE2的控制邏輯會如何處理?一些比較舊的資料里寫CACHE2會把數據丟棄,不知現在是否正確,或還可能有沒有其他的解法 :D
发表于 2003-4-15 13:13:05 | 显示全部楼层
[quote="superzch"]多謝多謝,呵呵 :D
我那個CACHE1/CACHE2的問題是:在一個雙CPU的系統里,有CPU1/CPU2,CPU1的CACHE為CACHE1,CPU2的CACHE為CACHE2,現CAHCE1/CAHCE2都命中memory中的區塊A,如果現在CPU1將A中的數據改變,那麼CACHE2的數據自然就是錯誤的,一般CAHCE2的控制邏輯會如何處理?一些比較舊的資料里寫CACHE2會把數據丟棄,不知現在是否正確,或還可能有沒有其他的解法 :D[/quotef]

我记得多CPU处理器在同一时间只能有一个CPU访问共享的内存,而且先访问的CPU会将所访问的数据设为锁存状态(在Cache释放前,禁止其他CPU修改),所以只能说多个CPU先后对同一个内存数据寻址,而不能说同时访问。此时就要用到CPU之间的交流机制还实现数据的同步,这方面《电脑高手》以前有过专文介绍,你可以看看(好象就是《多处理器系统随览》)
发表于 2003-6-5 06:11:10 | 显示全部楼层
理解理解。。。。。。 :lol:  :lol:  :lol:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|cmaster.org

GMT+8, 2024-5-3 02:10 PM , Processed in 0.009996 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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