一种ddr接口的数据编解码方法

文档序号:6636354阅读:232来源:国知局
一种ddr接口的数据编解码方法
【专利摘要】本发明涉及一种DDR接口的数据编解码方法。本发明中DDR为DDR2或DDR3。本发明方法的芯片内部模块通过数据编解码模块与DDR接口连接,数据编解码模块在向DDR接口写或读数据时,将数据进行编码或解码。编码时根据某时刻数据与前一时刻数据的汉明距离将数据进行翻转处理,并对数据翻转信息进行编码处理;解码时将输入的最后一个数据作为数据翻转信息,将输入的个数据中的第个与数据翻转信息的第位和第位异或后的结果异或输出。本专利方法实现了在不修改DDR总线标准的情况下,在DDR2和DDR3系统中减少DDR接口的SSN和减少DDR接口的功耗,有利于提高电路系统的稳定,并提高电路的工作频率和性能。
【专利说明】-种DDR接口的数据编解码方法

【技术领域】
[0001] 本发明属于集成电路【技术领域】,涉及一种DDR2(第二代DDR标准)和DDR3(第三 代DDR标准)的数据总线编解码方法。

【背景技术】
[0002] DDR SDRAM(双倍速同步动态随机存储器,简称DDR)接口是芯片的一个重大的性 能瓶颈。芯片封装特有的寄生电感引起的SSN(Simultaneous Switching Noise,同步开关 噪声)电源噪声会影响DDR系统的稳定性。DDR接口的数据翻转也会增加系统的功耗。
[0003] SSN效应可以由图1来说明。图1描述了一对电源地为两个DDR接口的IO驱动器 提供电源地回路的情况。封装的寄生参数主要是电感,如图中与Vdd和GND连接的L。当 芯片输出开始〇到1跳变时,电流通过与Vdd相连的电感和PMOS管,并输出到PCB传输线。 这引起PCB传输线电平升高。当输出信号从1翻转为0时电流从PCB传输线流入芯片,通 过驱动器的NMOS管,然后通过与GND相连的电感回到PCB的地。DDR接口的驱动器在信号 翻转过程中感受到的电源电平与地电平将是非理想电源电平与地电平。这种叠加噪声的电 源电平与地电平引起IO输出延时发生抖动,输出波形的边沿发生恶化,最终导致系统的工 作时序余量减少,数据采样异常,系统稳定性降低。
[0004] 考查一对电源地为N个驱动器提供电源地回路的情况,如果N驱动器同时跳变时, 每一份跳变电流都要在封装的寄生电感上产生感应电压即SSN。这个SSN又反作用于每个 驱动器上。由电感的感应电压公式(1)可得SSN正比于电感值与变化电流,反比于电流变 化时间。
[0005] SSN = LX dl/dt 公式(1)
[0006] 当同时翻转的数据位数增加时,SSN变得更加严重。以16比特位宽的DDR接口的 设计为例,当16比特数据同时从0翻转到1时,此时将在电源上形成最大的SSN电压变形。 如果要减少SSN,根据公式1可以减少L,增加dt,减少di,或者减少同时翻转的驱动器个数 等。
[0007] 在DDR4的设计规范中特别增加了数据翻转的功能,目的是为了在高翻转时通过 数据电平翻转将高翻转的场景转换为低翻转的场景。但是DDR2与DDR3没有数据电平翻转 的功能。


【发明内容】

[0008] 本发明的目的是针对现有技术的不足,提供一种DDR接口的数据编解码方法。
[0009] 本发明方法中所述的DDR为第二代DDR标准DDR2或第三代DDR标准DDR3,所述的 DDR的总线位宽为η (η = 8, 16, 32)。
[0010] 本发明方法采用一个数据编解码模块,芯片内部模块通过该数据编解码模块与 DDR接口连接;数据编解码模块在芯片内部模块向DDR接口写数据时,将数据进行编码;数 据编解码模块在芯片内部模块向DDR接口读数据时将数据进行解码; toon] 编码方法具体是:
[0012] 所述的数据编解码模块在编码时每次输入n-1个η比特的输入数据,输出η个η 比特的输出数据;
[0013] 当第i(l,2,…,n-1)时刻的数据与i-Ι时刻的数据的汉明距离大于η/2时,编码 模块将第i时刻的数据取反后输出,且将数据翻转信息的第i位标记为1 ;当第i时刻的数 据与i-Ι时刻的数据的汉明距离小于或等于η/2时,编码模块将第i时刻的数据输出,且将 数据翻转信息的第i位标记为〇 ;当i = 1时,第i-Ι时刻的数据用〇代替;所述的汉明距 离为两个数据对应位置的比特不同的个数;
[0014] 将数据翻转信息进行编码处理,具体是:当数据翻转信息与第η-I位输出数据的 汉明距离大于η/2时,数据翻转信息的第1至η-I位比特均取反,数据翻转信息的第η位比 特为1 ;当数据翻转信息与第η-I位输出数据的汉明距离小于或等于8时,数据翻转信息的 第1至η-I位比特不变,数据翻转信息的第η位比特为0 ;编码处理后的数据翻转信息作为 第η个数据输出。
[0015] 解码方法具体是:
[0016] 所述的数据编解码模块在解码时每次输入η个η比特的输入数据,输出η-I个η 比特的输出数据;
[0017] 数据编解码模块将输入的前η-I个输入数据按顺序保存;将输入的第η个输入数 据作为数据翻转信息;数据编解码模块按顺序将输入的η-I个数据中的第i (1,2,…,n-1) 个数据与数据翻转信息的第i位和数据翻转信息的第η位异或后的结果异或输出。
[0018] 本专利通过在DDR2和DDR3系统中增加数据编解码功能,实现在不修改DDR总线 标准的情况下在DDR2和DDR3系统中通过数据电平翻转编解码来减少DDR接口的SSN和减 少DDR接口的功耗,有利于提商电路系统的稳定,有利于提商电路的工作频率和性能。

【专利附图】

【附图说明】
[0019] 图1为SSN效应;
[0020] 图2为原有的DDR的总线结构图;
[0021] 图3为增加数据编解码模块的总线结构图;
[0022] 图4为数据编解码模块编码的结构图;
[0023] 图5为数据编解码模块解码的结构图。

【具体实施方式】
[0024] -种DDR接口的数据编解码方法,其中DDR为第二代DDR标准DDR2或第三代DDR 标准DDR3, DDR的总线位宽为η (η = 8, 16, 32)。
[0025] 如图2和3,图2是现有的未增加数据编解码模块的总线结构,图3是增加数据编 解码模块的总线结构。如图3,该方法采用一个数据编解码模块,芯片内部模块通过该数据 编解码模块与DDR接口连接;数据编解码模块在芯片内部模块向DDR接口写数据时将数据 进行编码;数据编解码模块在芯片内部模块向DDR接口读数据时将数据进行解码。
[0026] 编码方法具体是:
[0027] 所述的数据编解码模块在编码时每次输入η-I个η比特的输入数据,输出η个η 比特的输出数据;输出数据中的前η-l个η比特的数据是输入数据编码后的数据;输出数 据中的第η个η比特的数据是编码处理后的数据翻转信息。
[0028] 当第i(l,2,…,η-l)时刻的数据与i-Ι时刻的数据的汉明距离大于η/2时,编码 模块将第i时刻的数据取反后输出,且将数据翻转信息的第i位标记为1 ;当第i时刻的数 据与i-Ι时刻的数据的汉明距离小于或等于η/2时,编码模块将第i时刻的数据输出,且将 数据翻转信息的第i位标记为〇 ;当i = 1时,第i-Ι时刻的数据用〇代替;所述的汉明距 离为两个数据对应位置的比特不同的个数;
[0029] 将数据翻转信息进行编码处理,具体是:当数据翻转信息与第η-l位输出数据的 汉明距离大于η/2时,数据翻转信息的第1至η-l位比特均取反,数据翻转信息的第η位比 特为1 ;当数据翻转信息与第η-l位输出数据的汉明距离小于或等于8时,数据翻转信息的 第1至η-l位比特不变,数据翻转信息的第η位比特为0 ;编码处理后的数据翻转信息作为 第η个数据输出。
[0030] 解码方法具体是:
[0031] 所述的数据编解码模块在解码时每次输入η个η比特的输入数据,输出η-l个η 比特的输出数据;
[0032] 数据编解码模块将输入的前η-l个输入数据按顺序保存;将输入的第η个输入数 据作为数据翻转信息;数据编解码模块按顺序将输入的η-l个数据中的第i (1,2,…,η-l) 个数据与数据翻转信息的第i位和数据翻转信息的第η位异或后的结果异或输出。
[0033] 以下以16位的DDR接口进行说明。
[0034] 16位总线增加 1位数据翻转线相当于16比特的数据增加 1比特的数据翻转指示。 累积16个数据翻转指示可以构成1个总线数据。因此对原始数据做以下的数据编码:
[0035] 将连续15个16比特数据为一个数据编码单元。以DDR总线的一个BURST8为操 作单位。前15个时刻发送数据编码后的数据,最后一个时刻发送数据翻转信息。
[0036] 数据翻转信息中第i位指标第i个时刻的总线数据是否极性翻转。数据翻转信息 位的第16比特指示数据翻转信息本身有没有翻转。
[0037] 最终数据编码后的数据为16个16比特数据。
[0038] 数据编码规则如下:
[0039] 1.数据翻转信息位初始化为16' b0。
[0040] 2.若第一个时刻的数据中的1的个数超过8个,则将数据每位比特的极性翻转,数 据翻转信息位的第1比特标记为1。否则数据保持不变,数据翻转信息的第1比特标记为 0〇
[0041] 3.若第i个时刻的数据与第i-Ι时刻编码后的数据的翻转汉明距离大于8,则将 第i个时刻的数据每位比特极性翻转,数据翻转信息的第i位标记为1。
[0042] 4.完成15个数据编码后,若数据翻转信息与第15个时刻编码后的数据的汉明距 离大于8,则将数据翻转信息的每比特极性翻转。
[0043] 在向DDR进行读时进行数据解码。每读16个16比特数据进行一次数据解码。数 据解码规则如下:
[0044] 第i个时刻的数据等于第i个时刻的编码数据异或数据翻转信息中第i位异或数 据翻转信息中第16位,i = 1,2, 3,…,15。
[0045] 数据编码将总线数据极性信息存储在DDR中,因此带来的负面影响是无法进行随 机访问。每一次读写必需读写16个16比特数据。
[0046] 表1是数据编码前的15个数据与初始化为0的数据翻转信息,表2是数据编码后 的15个数据与数据翻转信息。对比可以发现数据编码前的汉明距离的最大值为12,经过 数据编码后的汉明距离的最大值下降为8。其中第6,第8,第11-13行的数据极性被翻转。 在数据读过程中利用数据翻转信息可将第6,第8,第11-13行的数据再一次翻转极性,即可 得到原始的正确值。数据编码前的数据翻转总数为114个。数据编码后包括数据翻转信息 的数据翻转总数为103。表明因为数据翻转在DDR接口的功耗也减少到原来的96%。而关 注的峰值功耗减少到原来的66%。即意味着数据编码方法在大致不改变平均功耗的情况下 大幅度减少了峰值功耗,也就是说SSN的效应相应地减少了。

【权利要求】
1. 一种DDR接口的数据编解码方法,所述的DDR为第二代DDR标准DDR2或第三代DDR 标准DDR3,该方法包括编码方法和解码方法,其特征在于所述的编码方法具体是: 数据编解码模块在编码时每次输入n-1个W比特的输入数据,输出n个n比特的输 出数据; 当第1)时刻的数据与;-i时刻的数据的汉明距离大于w/2时,编码模块 将第!时刻的数据取反后输出,且将数据翻转信息的第i位标记为1 ;当第;时刻的数据与 J-1时刻的数据的汉明距离小于或等于n/2时,编码模块将第f时刻的数据输出,且将数 据翻转信息的第I位标记为〇 ;当时,第〗-1时刻的数据用〇代替;所述的汉明距离为 两个数据对应位置的比特不同的个数; 将数据翻转信息进行编码处理,具体是:当数据翻转信息与第《-1位输出数据的汉明 距离大于《/2时,数据翻转信息的第1至n-1位比特均取反,数据翻转信息的第w位比特 为1 ;当数据翻转信息与第n-1位输出数据的汉明距离小于或等于8时,数据翻转信息的 第1至n-1位比特不变,数据翻转信息的第《位比特为〇 ;编码处理后的数据翻转信息作 为第《个数据输出; 所述的解码方法具体是: 数据编解码模块在解码时每次输入《个《比特的输入数据,输出个〃比特的输 出数据; 数据编解码模块将输入的前n-1个输入数据按顺序保存;将输入的第《个输入数据 作为数据翻转信息;数据编解码模块按顺序将输入的n-l个数据中的第1)个 数据与数据翻转信息的第位和数据翻转信息的第《位异或后的结果异或输出。
【文档编号】G06F13/38GK104360976SQ201410706516
【公开日】2015年2月18日 申请日期:2014年11月27日 优先权日:2014年11月27日
【发明者】梁骏, 张明 申请人:杭州国芯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1