ask a simple question

0 views
Skip to first unread message

liwl

unread,
May 8, 2005, 4:10:02 AM5/8/05
to csa...@googlegroups.com
一个简单的问题:

从cache中读数时,是不是请求同时发送给L1, L2,
L3(如果有3级),还有memory,如果L1
miss,同时数据在L2中命中,那么这次读数的延迟为L2
hit的延迟?对么?

另外L1 Miss的延迟是否等于L2
hit的延迟,不考虑penalty,同时假定L1
Miss的请求一定会在L2中读到

jimxiao

unread,
May 8, 2005, 5:48:55 AM5/8/05
to csa...@googlegroups.com
从cache中读数,不一定同时发送给L1,L2,L3,以及memory。
看你的CPU是怎么设计的。
有的就是L1 miss的时候才访问L2。
如果L1和L2同时访问的话,就是并行的思路,但是会增加复杂度和功耗。
当篇上集成了memory controller的时候,在L1
miss的时候,可以同时发送给
memory。

miss penalty = the number of clock cycles that the CPU waits for the
next level memory.
所以是发送请求,并且数据回来的时候。

liwl

unread,
May 8, 2005, 11:04:28 PM5/8/05
to csa...@googlegroups.com
那么大部分的处理机设计是什么样子的呢?比如Itanium和Xeon,是同时把请求发送给L1,l2还是说等出现miss的时候才发送过去。如果Miss的时候才送给L2,那么读数据的时间是L1
miss的延迟+L2命中的延迟?

Navy Ant

unread,
May 9, 2005, 12:58:26 AM5/9/05
to csa...@googlegroups.com
我不知道实际的设计如何,但是每个access同时访问L1和L2,个人觉得
意义不大。cpu到L2/memeory的带宽一般是cpu到cache的带宽1/10,在multi-issue
的情况下,cpu产生的burnst access远远超过memory或L2能处理的速度。
假设L1的access latency是2 cc,L2是40cc,假设L2能应付L1 burst的访问
即使这样,得到的好处仅是20:21的区别,如jimxiao所说,除非有别的原因
否则得不偿失。

btw,这些问题,我还是鼓励发到板上去为好。

在05-5-8,liwl<wen...@gmail.com> 写道:

liwl

unread,
May 10, 2005, 1:18:10 AM5/10/05
to csa...@googlegroups.com
ok,大概明白,以前没有考虑过这方面的具体设计,有没有相关的文档推荐一下看看,多谢。

在公司连不到版面上,没有SSH的代理,只能晚上回家才能连上,呵呵。

Fang Qiu

unread,
May 14, 2005, 12:55:51 AM5/14/05
to csa...@googlegroups.com
你们公司做这方面?
Reply all
Reply to author
Forward
0 new messages