signal

读信号,dqs 是对齐到dq的边沿, 写信号,dqs 的边沿是对到中间的。

spec 就是这样规定的。我们在dq的最中间的采样,肯定是最安全的。

dqs 是对齐到dq的边沿  , 在silicon 内部,还是通过移位完成的。

rl: read latency

cl : cas latency

al: additive latency

cwl: cas write latency

trrd row to row delay

tccd column to column delay

trcd: row to colum delay

delay: execution will start after a specific time

latency: execution has started. but it' not  stable enough, a specific time is required for stabilization

latency: 是已经产生了脉冲,等 它稳定之后,再把信号发到总线上。

简而言之。 我已经发了,但内部逻辑上,我已经发了这个信号了。

在多次传输,想达到更高的带宽,会产生冲突,为什么会冲突呢,因为active 的时候,行列地址都在总线上。

round trip optimize , 其实就是调latency, 就在在现有的情况下,能不能对信号有改善。

basic training : 是要扫所有的pi range. 

make signals aligned logically

因为它根本不知道系统是什么样子的

高级的training ,找到了就跳出来

use deselect comand,  如果不用des, 它会一直持续。 

相当于人为的引入一些噪声, 让你下面的数据都是无效的,以目前的状态,是否人的margin 还是很好。

basic training 就是把信号对齐。

预备知识差不多了。

cross over

target:

align different clock domain inside mc

method:

buf pi domain, 由一个时钟源,分发给各个时钟,前提是把总开关,调调好, 

发现任何一根receive enable 是0的时候,采样停止。告诉硬件,往后的数据就到过来了

是rx的。因为我们不知道,什么时候,送过来。数据的开始,在这个地方,把我们采样的阀门打开。

当任何一个到的时候,我们就固定。 所有17 根的dqs 都到达这个状态的时候。

receive enable:

也就是我们basic training 的第一步,先把ctrl clock 对齐, receive enable. training 对顺序是有要

先把receive enable train 出来

目标:

发出一个读命令, 调整 rcv_en 延时,RTL 还有IO LATENCY , 使得RCV_EN 在DQS preamble 的中间。 

方法: 第一步精调, 使得rcv_en 在 dqs assert 的中间。

sweep 128 pi, 

第二步, 粗调rtl ( round time latency) , rcv_en 可以采样dqs preamble.

第三步,粗调 IO LATENCY 让rcv_en 可以采样所有的dqs 前导码。

它其实是一个delay. 既然是receive , 就是rx, dimm 送来的dqs 信号, 我mc 知道它啥时候过来的,我啥时候该采样dqs, dq 啊。 dqs 在上生沿, 采样dq,  啥时候去采样dqs, 当经过了rcv en 这样一个delay,  这个delay 其实 是为了节省时间 。 否则,数据还没有送过来,我就开始采, 首先是耗电。 没有经过training , 时延也会受影响。 

我读命令发出来了, 接下来,我肯定是期望, data 会发过来。 等到了round trip latency 这个点到了, 我接激活mc 去接下来的工作。 如果置成0, 就是一发读信号,我就开始采样。

在data 没有过来之前,我们进入一个低功耗状态。 该收信号,收信号。 在止之前,我就得等。因为既然是时间, 增加rtl 是什么意思, 其实就是增等待的时候。 

我发了一个读信号出去, 数据过来了, memory 自己都还没有ready. 先进我的buffer, 我不发给mc 去处理。 先不做动作, 等 silicon 内部已经stable 了, io lateny 增加, 意味着我在这个地方hold 住 更久的时候。 如果写成0. 就是直通了, 信号一来, 就传出去。  

rcv_en 就是采我的dqs. 这个时候一到达, 立马, 半个周期, 就有dqs 过来。

rtl , 先预估一下, 你什么时候过来。

io latency  你过来了, 控制不了DIMM 啥时候过来。 我能控制自己。控制不了dimm 什么时候过来, 但是我能控制我自己。

我憋着,憋多久呢? 再憋 rcv en 这么久。

硬件逻辑就开始工作。

增加io latency , rcv en 就采不到东西。 相当于是进行左移了。 增加 io latency 就相当于信号跑过去了。 采晚了, 会导致miss 掉, 一直不收, 这么多数据 miss 掉了。 

你可能感兴趣的:(MRC)