对存储器控制器进行读训练的制作方法_2

文档序号:9932644阅读:来源:国知局
集成电路(ASIC)、现场可编程门阵列(FPGA)等中。
[0024]所描述的实施例的逻辑或代码可实现在机器可读存储介质中,所述介质包括在具有用于存储机器可执行指令的电或其他硬件元件的设备或装置中。机器可读介质可包括,但不限于,快闪存储器、光盘、压缩盘只读存储器(⑶-ROM)、数字多功能/视频盘(DVD) ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁或光卡以及适于存储电子指令的其他机器可读介质。
[0025]在可替换实施例中,所描述实施例的逻辑或代码可实现在信号传输介质中。
[0026]图3示出了存储器控制器104和存储器模块200之间的总线接口线108的实施例,包括:具有边带线的边带通路300;命令和控制信号线302,通过它存储器控制器104发送命令到存储器模块200;从存储器控制器104至存储器模块200的差分时钟输入信号(DCLK)304,供存储器模块200用于采样命令/控制线302上的地址和控制信号;以及数据线306,通过它在存储器控制器104和存储器模块200之间传输读数据和写数据。可包括附加的总线用于其他目的。
[0027]边带通路300具有一个或多个信号线以传输存储器控制器104可用于训练和其他目的的附加信息(响应于来自存储器控制器104的控制信号)。例如,存储器控制器104可响应于收到读已收到应答而向存储器模块200发送同意消息,这可使存储器模块200在发送数据之前通过边带通路300发送读标识符(ID)信号。存储器模块200可使用边带通路300发送存储器控制器104之前与读请求一起发送的读ID,并且作为响应,存储器模块200可通过边带通路300将读ID回送而不进行处理,例如过滤、插值等。并且,在某些实施例中,边带通路300可包括存储器模块200上的时钟信号对。
[0028]在一个实施例中,将读ID发送回存储器控制器104的边带通路300以命令频率而非时钟频率发送信号。在一个实施例中,边带通路300可被设计为传输时钟和传输周期是时钟输入信号(DCLK)304两倍的时钟模式(clock pattern)。存储器模块200可在传输读数据之前通过边带通路300传输信号和作为控制信号的一部分的接收到的读ID。这些读ID信号可传输相对于控制信号具有特定定时关系的突发数据,例如同意信号。该定时关系可在一定范围内变化,取决于存储器模块延迟和通道。在特定实施例中,存储器模块200可以不和突发数据一起传输选通,从而存储器控制器104执行细读训练以训练读ID信号采样延迟,以与读ID信号眼的中心对齐从而取得低的比特错误率。读ID信号可以以数据总线一半的频率传输,但这些速度仍然可高达1600MTps。
[0029]图4示出了由存储器控制器逻辑110和存储器模块控制器202逻辑执行的操作的实施例,所述操作允许存储器控制器逻辑110联合存储器模块200执行相位插值器112的细读训练从而提供在数据眼处对齐的插值采样信号。细读训练可在系统100启动期间的总线108探测期间启动。为了启动细读训练,存储器控制器逻辑110发送命令(在模块400)以对存储器模块200中的方式寄存器212编程从而开始细读训练方式。响应于方式寄存器212被写入以指示细读训练方式,存储器模块控制器210在边带通路300的第一边带信号线上传输第一模式并在边带通路300上不同于第一信号线的第二信号线上传输第二模式(在模块404和406)。第一和第二模式可包括具有相反值的时钟信号,例如1010和0101。在某些实施例中,时钟模式可具有2倍于DCLK 304时钟信号周期的周期,并且可具有命令/控制信号线302的频率而非时钟频率304。边带通路300的不同信号线上的信号,例如1010和0101,可以是异相或同相的。并且,在模块404和406传输的模式可以在边带通路300的不同线上以连续方式传输。
[0030]在传输了第一和第二模式的比特之后,如果(在模块408)方式寄存器212继续指示细读训练方式,那么控制返回到模块404以继续传输具有相反值的模式。如果(在模块408)细方式训练结束,那么可开始粗读训练阶段(在模块410)。
[0031]一旦存储器控制器逻辑110接收到(在模块412)发送的比特模式,如果(在模块414)接收到的比特不是存储在训练寄存器116中的比特值的相反值,O与I或I与0,那么将接收到的比特存储(在模块416)在训练寄存器116中。如果(在模块414)接收到的比特值和存储的比特值相反,那么确定(在模块418)该相反比特(或模式)所在的定时。然后存储器控制器逻辑110通过改变读的定时来从所确定的定时确定(在模块422)边沿,例如从所确定的定时沿两个方向向外扫描直到找不到匹配,在该点处从所确定的收到相反比特模式时的定时向各方向确定数据眼的边沿。然后确定(在模块422)数据眼位于这些边沿定时之间的定时。在一个实施例中,通过改变相位插值器112定时来从所确定的数据眼向每个方向向外扫描以寻找没有匹配的点,来确定数据眼的边沿。
[0032]基于这些定时信号,确定(在模块424)用于控制相位插值器112的设置以产生用于在确定的数据眼处采样数据的插值信号。在训练相位插值器112以产生用于在边沿之间的数据眼处采样的插值信号之后,存储器控制器逻辑110对存储器模块220的方式寄存器212进行写入(在模块426)以停止细读训练方式从而阻止存储器模块控制器在边带通路300上继续发送相反的比特模式。
[0033]在某些实施例中,检测到I和0,或反之,的采样之间变换,指示具有读数据的定时,该定时可包括数据眼、边沿或边沿之间的读数据。这些训练操作可能需要四个训练结果比特来捕获每个信号的偶数/奇数。如果仅捕获偶数或奇数则可使用两比特。相位插值器112被配置为产生插值样本以在数据眼界限的中间读取数据。
[0034]在上述实施例中,比较该模式的比特来确定开始扫描数据眼的边沿的确定定时。在可替换的实施例中,存储器控制器110可以不只比较一个比特,而是整个模式(例如,0101,1010),从而在模块414和418确定数据眼位于检测到与所存储的模式而不只是单个比特相反的值时的定时处。并且,在比较整个模式这样的实施例中,在模块416整个模式将被存储在训练寄存器116中,而不只是单个比特。
[0035]图5示出了由存储器控制器逻辑110和存储器模块控制器逻辑202执行的操作的实施例,所述操作允许存储器控制器逻辑110联合存储器模块200执行存储器控制器104的粗读训练从而确定在被发送以检索读数据的同意信号之后在存储器控制器104启动读取数据之前要等待的偏移量或定时。一旦启动(在模块500)粗读训练,存储器控制器逻辑110使用LFSR 114产生(在模块502)随机读ID。所产生的读ID被缓冲(在模块504)至训练寄存器116中。存储器控制器逻辑110将读命令连同所产生的读ID发送(在模块506)到存储器模块200。当存储器模块控制器210操作在粗读训练方式中时(在模块508),一旦收到(在模块510)读命令和读ID,存储器模块控制器210执行读命令(在模块512)。
[0036]发送读命令连同读ID(在模块506)之后,存储器控制器逻辑110通过总线接口108将同意信号传输(在模块514)到存储器模块200。一旦接收到(在模块516)同意信号,所请求的数据通过数据总线306返回(在模块518)并且接收到的读ID通过边带通路300返回(在模块520)。读ID信号以突发方式返回。在某些实施例中,读ID在读数据之前先通过边带读ID信号300返回。以这种方式,存储器模块控制器200将读ID送回存储器控制器104而不对数据进行过滤或解释。在某些实施例中,存储器控制器逻辑110可不等待来自存储器模块200的对读命令的应答(ACK)而提供同意信号。
[0037]一旦存储器控制器104收到(在模块522)边带通路300上的读ID,存储器控制器逻辑110确定(在模块524)收到的读ID是否与存储在训练寄存器116中的已发送的读ID匹配。如果不匹配(从模块524的“否”分支),那么存储器控制器逻辑110修改(在模块526)周期延迟设置为从发送同意到收到读ID
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1