有了源码怎么做网站,网站设计制作说明,wordpress更改主题首页,南山网站 建设seo信科读信号#xff0c;dqs 是对齐到dq的边沿#xff0c; 写信号#xff0c;dqs 的边沿是对到中间的。
spec 就是这样规定的。我们在dq的最中间的采样#xff0c;肯定是最安全的。 dqs 是对齐到dq的边沿 #xff0c; 在silicon 内部#xff0c;还是通过移位完成的。
rl: re…读信号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 掉了。 preamble 是两个周期的0. 所以preamle 在硬件上就是两个周期的0. 都是perbank 的。
他们的目的是不一样的。
要想达到晚输出的效果只能调io latency.
三个latency 是如何搭配起来。 rcv _en 的粒度是pi. 一个q clock 是等于64 个pi. rtl 就是一个assume.到了这个latency 之后 所有硬件逻辑才开始工作。 信号过来了 有些先过来有些后过来先到的我就hold 住。rcv en 就是说第一步 挪 rcv en 去采样dqs. dqs 高电平才是assert . 采到0 就是0 最后我就要采出来 就是把dqs 的样子采出来。 我就能知道 dqs 长这个样子。 我再计算。 当我们知道 dqs 的形状之后。 再计算这两点 除以2 就可以让rcv en 采到正中间。 挪到他采到的是一个0为止 大家都 一起挪 左移我们发现任何一根dqs 采到0 的时候我们停止。 我们就让他先停下来 至少有一个的dqs rcv en 到了地方。告诉硬件 dqs 就要过来了。 第0个数据。 把我们采样的阀门打开 就是一个over all 的。 我们就固定了round trip latency. 大概需要经过43 个clock. 这个是一个统领的 信号有先后顺序 这时候就去憋。 调io latency. 把信号先憋这么久 一直什么时候算结束 所有18 根的dqs 都达到这个状态。 DDR3 的工作原理 DDR3 的内部是一个存储阵列将数据填进去和表格检索原理一样先指定一个行row, 再指定一个列column, 我们就可以准确的找到