dq
dqs :
在dqs 的上升沿采样 dq , 一个dqs 对应四个dq
receive enable : 其实是一个delay , 什么时候开始采样dqs
receive 就是接收信号的意思
roundy trip latency: 增大和减小等待时间
io latency: controller 发信号之后,如果memory controller 自己还没有ready , 可以理解成一个buffer , latency 就是憋着 , 等硬件逻辑全部好了,再开始采样。io latency 增大意味着 hold 住更久的时间。
preample 就是前导码, 提示信事号马上要来了。实际就是两个周期的0,
三个delay 的优先级: 如果信号不对的时候, receive enable 的粒度 为pi , io latency 以q 为粒度。
第一步, 就是挪动 receive enable 让receive enable 在dqs 正中间。
0 - 17 个dqs , 一共18 wh dqs,
就是因为18 根dqs 到达的时间不一样, 所以需要调到一至, 先到的, 先hold 住。先来的,可以先憋着, 最后,dqs (开闸)释放数据。
如果dimmm 过来的信号无论怎么调,也调不到一个起跑线上, 说明dimm 是有问题的。
什么时候 调rtl , round trip 就是大概的意思, rtl 就针对所有的dqs 起作用。 整个rank 起作用。
然后去调各自的receive enable
round trip 是找到一个基点 , io latency 是找到一个中心点。
training 是包括两条链路, 也就是读 写 两条链路, 两边都是调整dq , dqs , 都是调整dq, dqs, 读和写是对应的不同的寄存器。
写的时候, 需要调整, 主要是因为 目前内存采用的是write fly by 结构, 从控制器到内存颗粒的长度不一样。
senseAmp: