CN102484482B - 用于采用高速串行链路的存储系统的译码系统 - Google Patents
用于采用高速串行链路的存储系统的译码系统 Download PDFInfo
- Publication number
- CN102484482B CN102484482B CN200980143644.3A CN200980143644A CN102484482B CN 102484482 B CN102484482 B CN 102484482B CN 200980143644 A CN200980143644 A CN 200980143644A CN 102484482 B CN102484482 B CN 102484482B
- Authority
- CN
- China
- Prior art keywords
- code
- code section
- decoding
- haul distance
- blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
- H03M5/145—Conversion to or from block codes or representations thereof
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
公开了采用译码器的方法、装置和系统。译码器用于接收包括第一代码块和第二代码块的传入流,并将第一代码块划分成第一小代码块,且将第二代码块划分成第二小代码块。该译码器进一步用于对使用一个或多个串行线路进行通信的存储器译码,其中译码包括对第一代码块的第一小代码块和第二代码块的第二小代码块译码,其中执行对第一和第二块的译码以使最大行程长度得以保持。
Description
技术领域
本发明的实施例一般涉及网络和数据传输领域,尤其涉及用于使用高速串行链路的存储系统的译码系统。
背景技术
在数据通信中,数据通信译码(coding,编码/解码)是常见的。例如,PC扩展卡接口(PCIe)和串行化硬盘存取(SATA)技术使用基于字节的DC平衡行程长度8B/10B译码(参见美国专利4,486,739;还可参见美国专利5,663,724和6,617,984以了解16B/20B)。该译码由联合电子设备工程委员会(JEDEC)协会标准化。该常规译码技术具有两个特性:确保行程长度为5或更小;并提供DC平衡输出。
有关8B/10B的第一特性,最大行程长度特性对于使模拟PHY引起的位差错最少可能是重要的,其有助于检测串行线路上的数据变化并试图找出最优探测位置以使位差错最少。然而,如果串行数据比预期变化少,PHY将获得较少信息来确定作为结果的探测位置,从而导致位差错概率增大。此外,最大允许距离可根据行程长度和重复符号的数量等等来定义。有关第二特性,如果在AC耦合中实现串行链路,则DC平衡的输出可能是重要的。大多数高速串行线路技术是基于差分线的,且通过测量两条线之间的差别来读出数据。为提高兼容性,可以阻断DC分量,仅将信号变化传递至目的地。该技术称为AC耦合。虽然其在实现方面具有若干益处,但其具有输入约束:0的数量和1的数量要在特定时间段内平衡。当代码满足该要求时,称为DC平衡。8B/10B译码提供了如此良好的特性;然而它明显增加了等待时间。例如,每个字节可使用8B/10B代码来译码,但每个译码应当参考先前结果以满足DC平衡要求,因此运算是级联的。8B/10B译码技术的高等待时间导致低存储性能,从而在许多情况下,尤其是移动设备情况下,该技术是不合乎需要的。当设计移动设备时,存储性能被认为是基本因素。
然而,串行端口存储技术(SPMT)与常规存储技术的不同在于,前者在存储区域中使用高速串行链路技术。使用SPMT时,减少等待时间是必需,而DC平衡不是必需的。因此,需要获得提供低等待时间译码且不使存储资源复杂化从而提高存储性能的数据通信译码系统。
发明内容
提供了将译码系统的实施例用于使用高速串行链路的存储系统的方法、装置和系统。例如,使用了17位/20位(17B/20B)译码系统。该17B/20B译码系统具有17位/20位译码器,该17位/20位译码器用作编码器/解码器对存储器的17B/20B代码进行编码/解码。在本文档通篇中,为简明起见,使用和说明该17B/20B译码系统仅作为示例。可构想且应注意,本发明的译码系统技术的实施例能用于任何数量的译码系统,且例如可用于将译码系统扩展至比17B/20B更大。在一个实施例中,在使用高速串行链路的存储系统中使用了译码系统,且该译码系统确保行程长度不会超过限定数,诸如5。此外,在本文档中使用5或更小的行程长度作为示例,且可确定或预定任何最大行程长度数值,且译码系统的实施例可用于确保不超过该最大行程长度数值。
在一个实施例中,一种装置包括译码器。该译码器用于接收包括第一代码块和第二代码块的传入流,将第一代码块划分成第一小代码块,并将第二代码块划分成第二小代码块,且对使用一个或多个串行链路进行通信的存储器译码,其中译码包括对第一代码块的第一小代码块和第二代码块的第二小代码块译码,并且执行对第一和第二代码块的译码以使最大行程长度得到保持。
在一个实施例中,一种系统包括译码电路,该译码电路用于接收包括第一代码块和第二代码块的传入流,将第一代码块划分成第一小代码块,并将第二代码块划分成第二小代码块,且对使用一个或多个串行链路进行通信的存储器译码,其中译码包括对第一代码块的第一小代码块和第二代码块的第二小代码块译码,并且执行对第一和第二代码块的译码以使最大行程长度得到保持。
在一个实施例中,一种方法包括接收包括第一代码块和第二代码块的传入流,将第一代码块划分成第一小代码块,并将第二代码块划分成第二小代码块,且对使用一个或多个串行链路进行通信的存储器译码,其中译码包括对第一代码块的第一小代码块和第二代码块的第二小代码块译码,并且执行对第一和第二代码块的译码以使最大行程长度得到保持。
附图说明
本发明的实施例在各附图中是作为示例而非作为限制示出的,在附图中相同的附图标记指代相同的元件:
图1示出采用SPMT命令译码的17B/20B译码系统的实施例;
图2示出将17B代码和20B代码映射到17B/20B译码系统的实施例;
图3A示出用于划分17B/20B代码中的17B代码的过程的实施例;
图3B示出用于划分17B/20B代码中的20B代码的过程的实施例;
图4A和4B示出17B/20B译码系统的5B/6B区段映射且同时保持最大行程长度要求的实施例;
图5示出17B/20B译码系统的5B/6B区段映射的编码表的实施例;
图6A和6B示出17B/20B译码系统的6B/7B区段映射且保持最大行程长度要求的实施例;
图7示出17B/20B译码系统的6B/7B区段映射的编码表的实施例;
图8示出用于17B/20B编码/解码的过程的实施例;
图9示出用于说明通过预译码而使等待时间隐藏的表的实施例;
图10A示出用于顺序转换代码解码和命令解码的常规过程;
图10B示出用于并行转换代码解码和命令解码的过程的实施例;以及
图11是可在其上实现本发明的实施例的计算机系统的图示。
具体实施方式
本发明的实施例一般涉及用于使用高速串行链路的存储系统的译码系统。
如本文所使用,“网络”或“通信网络”表示用于在设备之间传送数字媒体内容(包括音乐、音频/视频、游戏、照片以及其它)的互连网络。娱乐网络可包括诸如家用网络之类的私人娱乐网络、商用环境中的网络,或者由设备和/或部件组成的任何其它网络。在网络中,某些网络设备可以是媒体内容的源,诸如数字电视调谐器、有线机顶盒、视频存储服务器以及其它源设备。其他设备可以显示或使用媒体内容,如数字电视机、家庭影院系统、音频系统、游戏系统、以及其他设备。此外,某些设备旨在存储或传输媒体内容,如视频和音频存储服务器。某些设备可以执行多种媒体功能。在某些实施例中,网络设备可以共同位于单个局域网中。在其他实施例中,网络设备可以跨多个网络段,如通过局域网之间的隧道。娱乐网络可包括多个数据译码和加密过程。
SPMT与常规的存储技术(例如动态随机存取存储器(DRAM))的不同在于,SPMT在存储区域中使用高速串行链路技术。使用SPMT时,减少等待时间是必需的,而DC平衡不是必需的。例如,提供DC耦合链路(与DC平衡相对比),且存储器在焊接到板上之后保持附连在板上,因此不需要DC平衡代码。此外,对于SPMT,存储性能对等待时间敏感,这是因为串行链路相比于常规DRAM接口而言花费多得多的周期。因此,诸如8B/10B译码等顺序和复杂译码系统不适用于SPMT,因为它们以明显增加硬件等待时间而告终。
SPMT被视为新的存储器接口架构,其最初目标是用于DRAM芯片,相比于当前存储技术中常见的并行接口架构,SPMT采用串行接口架构。SPMT典型地在存储区域中使用高速串行链路技术,从而当连接主机和存储器时提供低功率和引脚数量减少的好处。然而,如果存储器带宽要求变得比高速链路所能支持的带宽高时(例如若干Gbps),则必须使用多个串行链路。因此,当主机要立即发送大量数据(例如读数据、写数据)时,要给存储器提供足够带宽以使大量数据通过多个串行链路或串行信道。
提供了将包括17位/20位编码器/解码器的17位/20位译码系统用于对存储器的17位/20位代码进行编码/解码的方法、装置和系统。在一个实施例中,提供了包括17B/20B译码器的装置。该17B/20B译码器用于接收包括17B块和20B块的传入流,将17B块划分成多个第一块,且将20B划分成多个第二块,并对使用一个或多个串行线路进行通信的存储器执行17B到20B译码,其中译码包括对17B块的第一块和20B块的第二块译码,并且执行对第一和第二块的译码以使最大行程长度得到保持。对存储器的译码与对命令的译码并发地执行,其中译码包括编码或解码,并且对命令的编码的选择使得能在不通过代码解码器的情况下实现对命令的解码。此外,执行将第一块并入第二块以形成经译码的17B/20B代码块,其中所述译码被应用于DRAM、静态随机存取存储器(SRAM)、只读存储器(ROM)以及闪存等等译码。
本发明的实施例提供具有5位或更少位行程长度的17B/20B译码系统,其将17位代码映射至20位空间,反之亦然。这种技术与诸如SPMT、DRAM、光纤等各种系统兼容。在一个实施例中,提供额外的位(第17位)作为命令位使用以包含命令,用于指示命令/数据以及16位数据有效载荷,以提供17B/20B代码的实施例,从而即使电路为手绘(例如即使在DRAM的情况下),硬件实现也会简单且较容易实现,从而使等待时间最少。在一个实施例中,17B/20B译码可用于来满足各种数据传输和存储系统的任何数量的译码要求,同时减少或甚至消除等待时间,以实现系统最优化。
图1示出采用SPMT命令译码的17B/20B译码系统100的实施例。所示的17/20B译码系统100的实施例提供了对映射至17位译码的19个SPMT命令102(例如SYNC、SYNC2、MRR、MRW、PDX,等等)的17B/20B译码。17位译码域104被分成命令字段子-子-命令(SubSubCMD)106、子-命令(SubCMD)110、命令(CMD)112、排(bank)108以及两个命令类型字段114、116,其中所述两个命令类型字段114、116反映是命令(C)116还是动作命令(ACT)114,以区分命令类型。ACT命令114(位15)是特别处理的命令,因为它包含长地址。列102(可视为第18位)列出了这些命令的名称。
取决于命令102的命令类型,可使用任何数量的位122来标识命令102。例如,在命令WDAT106的情况下,作为域104的第17位的位16(C)用于标识108具有1,且其它16位0-15被用作高位字节110和低位字节112。相似地,在命令ACT114的情况下,作为域104的第16位的位15(ACT)用于标识116具有1,位16保持0,而其它15位(位0-14)包括下行118。此外,在命令PDX120的情况下,所有17位(位0-16)用于标识该命令。
所示的17B/20B译码系统100的实施例采用译码域104的17位和命令(具有19个命令102)的20位的映射,该映射包括用于指示命令或数据的单个位116和用于包含相应的数据有效载荷的16位。译码系统100进一步提供具有5或更小的行程长度、减少的等待时间以及简化的硬件实现的映射,以使译码系统100即使在电路为手绘的情况下也能在诸如DRAM的各种存储系统/架构下实现。行程长度指的是连续的0和1的数量。例如,序列100011具有行程长度3,因为该序列包含3个零。类似地,序列10101具有1的行程长度,因为不存在连续的0或1的序列。
图2示出17B代码和20B代码到17B/20B译码系统的映射的实施例。在所示实施例中,在划分17B/20B代码之后,17B/20代码200被并行地计算。虽然17B和20B代码202、204可按照任何方式划分,但在所示实施例中,例如,17B代码202被划分成三个区段——5位206、6位208以及6位210,而20B代码204被划分成三个区段——6位212、7位214以及7位216。17B代码202的三个区段206-210与20B代码204的区段212-216映射。
如图所示,17B代码202的5B206与20B代码204的6B212映射,相似地,6B208与7B214映射,且6B210与7B216映射。这些经映射区段然后被并入17B代码202和20B代码204。该过程将参照图3A-3B作进一步描述。在一个实施例中,在将17B代码202和20B代码204划分成它们各自区段206-216之后,17B/20B代码200被并行地计算。区段206-216被并入和映射以传送,但它们可以保持独立和并行。
图3A示出用于划分17B/20B代码的17B代码302的过程的实施例。在一个实施例中,在处理框304,将17B代码302被划分成三个代码区段——5B代码和两个6B代码。在处理框306,将17B代码302的5B代码映射至17B/20B代码的20B代码的6B代码。相似地,在处理框308,将17B代码302的6B代码映射至20B代码的7B代码,而在处理框310,将17B代码302的6B代码映射至20B代码的7B代码。在处理框312,将17B代码302的三个经划分的代码区段与20B代码的三个经划分的代码区段合并,以形成17B/20B代码314。
图3B示出用于划分17B/20B代码的20B代码352的过程的实施例。在一个实施例中,在处理框354,将20B代码352被划分成三个代码区段——6B代码和两个7B代码。在处理框356,将17B/20B代码的17B代码的5B代码映射至20B代码352的6B代码。相似地,在处理框358,将17B代码的6B代码映射至20B代码352的7B代码,而在处理框360,将17B代码的6B代码映射至20B代码352的7B代码。在处理框362,将20B代码352的三个经划分的代码区段与17B代码的三个经划分的代码区段合并以形成17B/20B代码364。在决策框366,确定是否从任一框中检测出错误。如果检测到错误,则抛弃该错误370。如果未检测到错误,则认为17B/20B代码364有效368。
图4A和4B示出17B/20B译码系统的5B/6B区段映射400、450且同时保持最大行程长度要求的实施例。诸如17B/20B转换代码等转换代码的一种特性是最大行程长度。为满足该特性,每个区段被设计成满足该特性。在代码相邻区段的边界处也满足该特性。例如,为了使计算并行,采用以下条件:(1)保持每个区段的最大行程长度为5或更小;(2)保持从首部起算的行程长度不超过2;以及(3)反向从尾部起算的行程长度不超过3。利用第二和第三条件,在区段边界和命令边界处均满足行程长度特性。区段译码可基于被视为基本转换代码的“重复代码”,而与重复“重复代码”中的每个位相比,有一位在目标空间中用于重复。由于存在从每个区段的首部和尾部的行程长度特性,所以被重复的代码的适当位置是6位输出代码区段的第三位位置,或7位输出代码区段的中间第4位。如果输出区段代码满足这三个行程长度特性,则将其提供作为有效输出。如果不是,则利用诸如倒转中心位(centerbit)的新算法,重新映射代码区段。
例如,参照图4A,示出了17B的区段5B402与20B的区段6B404的映射400。图4A示出复制中心位420、422的基本规则。如图所示,位A406与位A416映射,相似地,位B408、D412、E414分别与位B418、D424、E426映射。如上所述,中间位C410利用“重复代码”技术与中间位C420、422映射。换言之,6位输出区段404的中心位被复制或重复两次作为C420和C422,并与C410映射。
现参照图4B,示出了17B的区段5B452与20B的区段6B454的映射450。图4B示出当基本规则的结果违反了一个或多个行程长度要求(例如行程长度为5、首部行程长度为2以及尾部行程长度为3)时的例外规则。如图所示,位A456与位A466映射,相似地,位B458、D462、E464分别与位B’468、D’474、E476映射。如上所述,中间位C460利用“重复代码”技术与中间位C’470、472映射。换言之,6位输出区段454的中心位被复制或重复两次作为C’470和C472,并与C460映射。作为目标的B418引用“0”,而作为目标的B’468可以是“0”或“1”。相似地,作为目标的C420和D424各包含“0”,而作为目标的C’470和D’474各包含“0”或“1”。
图5示出17B/20B译码系统的5B/6B区段映射的编码表500的实施例。所示实施例提供用于5B/6B映射的编码表500,同时保持最大行程长度为5、最大首部行程长度为2以及最大尾部行程长度为3。三列包括5位序列的第一列502、通过利用重复代码技术重复第一列502中每个5位序列的第三位而获得的6位输出序列的第二列504、以及具有第二列504的那些选定序列的第三列506,其中当需要满足一个或多个行程长度要求时要求将上述选定序列的第三位倒转(例如从0到1,或从1到0)。
在所示实施例中,序列508(00000)被映射至已将序列508的第三位0重复的序列510(000000)。现在,序列510(000000)的六个“连续的”零违反了最大行程长度为5、首部最大行程长度为2以及尾部最大行程长度为3的规则。为改正这些违规,序列510的第三位0被倒转为1,从而提供满足三个要求的序列512(001000),即满足如所说明的总行程长度为5或更小(例如0或1均记录不超过连续5次)、首部行程长度为2或更小(例如头两个连续0),且尾部行程长度为3或更小(例如后三个连续0)。在所示实施例中,32行中的14行514-540具有相似的违反一个或多个行程长度要求的问题,这些问题经改正作为改正结果提供在第三列506中。
例如,在行520的情况下,提供序列542(00011)作为具有复制的第三位0的序列544(000011)。在该情况下,序列544(000011)满足行程长度为5的要求,因为不存在超过5个连续的0或1,且相似地满足尾部行程长度为3的要求,因为仅有两个连续的1形成尾部。然而,在序列544(000011)中,首部行程长度为2的要求被违反,因为存在4个连续的0形成首部。将序列544的第三位0倒转为1以在第三列506中形成序列546(001011),从而满足首部行程长度为2的要求,这时具有两个0形成首部。为简洁起见,未详细讨论其他的此类行516-518、522-540,但这些行采用关于行514、520所说明的相似技术。
当仔细地观察表500时,发现需要重新映射的代码序列(例如行514-540)可分为两组:它们以000或111开始或以000或111结束。根据代码的给定序列,这些条件会独立或同时满足。不幸的是,当应用了如上所述的例外规则时,两个序列模式00111和11000的输出可能与其他输出冲突。例如,可采用另一规则来处理此类零散情况。然而,包括如上所述的例外规则的所有规则和编码技术可被描述为以下方程:
图6A和6B示出17B/20B译码系统的6B/7B区段映射600、650且同时保持最大行程长度要求的实施例。为简洁起见,参照图4A和4B描述的特征未在此描述。参照图6A,如参照图4A的5B/6B代码映射所描述,采用了重复区段代码604的第三位C622、624的基本规则,并与区段代码602的第三位C610映射。如图所示,位A606与位A618映射,相似地,位B608、D612、E614、F616分别与位B620、D626、E628、F630映射。
现参照图6B,示出当基本规则的结果违反了一个或多个行程长度要求(例如行程长度为5、首部行程长度为2以及尾部行程长度为3)时的例外规则。如图所示,位A656与位A668映射,相似地,位B658、D662、E664、F666分别与位B’670、D676、E’678、F680映射。如上所述,中间位C660利用“重复代码”技术与中间位C’672、C”674映射。换言之,7B代码输出区段654的中心位被复制或重复两次成为C’672和C”674,并与6B代码输出区段652的C660映射。此外,作为目标的B620引用“0”,而作为目标的B’670可以是“0”或“1”。相似地,作为目标的C’672、C”674以及E’678各包含“0”或“1”。
图7示出17B/20B译码系统的6B/7B区段映射的编码表700的实施例。为简洁起见,已参照图5描述的许多特征不在此讨论。所示实施例提供用于6B/7B映射的编码表700,同时保持最大行程长度为5、最大首部行程长度为2以及最大尾部行程长度为3。三列包括5位序列的第一列702、通过利用重复代码技术重复第一列502的每个5位序列的第三位而获得的6位输出序列的第二列704、以及具有第二列504的那些选定序列的第三列706,其中当需要满足一个或多个行程长度要求时要求将上述选定序列的第三位倒转(例如从0到1,或从1到0)。在所示实施例中,42行中的22行714-756需要第三列706来满足行程长度要求。
例如,代码序列708(000001)被映射至已将序列708的第三位0重复的代码序列710(0000001)。现在,代码序列710(0000001)的六个“连续的”零违反了最大行程长度为5和最大首部行程长度为2的规则。然而,在最后一位“1”表示序列710尾部的情况下,尾部最大行程长度为3得到满足。为了改正对其它两个行程长度规则的违反,序列710的第三位0被倒转至1,从而在第三列706中提供满足三个要求的序列712(0010001),即满足如所说明的总行程长度为5或更小(例如0或1被记录均不超过连续5次)、首部行程长度为2或更小(例如前两个连续0)、以及尾部行程长度为3或更小(例如最后一位为1)。
如同图5,编码技术和为满足行程长度要求而所采用的例外规则可归纳为以下方程:
图8示出用于17B/20B编码/解码的过程的实施例。在一个实施例中,在处理框802,将17B和20B代码序列被划分成多个序列,诸如将17B代码序列划分成5B、6B和6B代码序列,而将20B代码序列划分成6B、7B和7B代码序列。在处理框804,将17B代码序列的三个代码序列与20B代码序列的三个代码序列映射。可构想,代码序列的划分可以按任何数量的大小、数值或形式来实现,在此提供的诸如三个较小代码序列或此类代码序列与其它代码序列的映射仅作为示例,且本发明的实施例不限于此类示例。
在处理框806,应用一种或多种等待时间减少技术来减小等待时间或使等待时间最少。例如,如参照图10,对17B/20B代码及其多代码序列的命令解码和代码解码在代码域中并行地执行。此外,执行各种过程以确保行程长度要求得到满足808。这些过程参照图4A、4B、5、6A、6B以及7来讨论。在决策框810,确定是否满足整体最大行程长度为5位的要求。如果否,则在处理框812使该要求得到满足(诸如通过使代码序列的位倒转)。如果是,则该过程继续至决策框814,在决策框814确定是否满足最大首部行程长度为2位的要求。如果否,则在处理框816使该要求得到满足(诸如通过使代码序列的位倒转)。如果是,则该过程继续至决策框818,在决策框818确定是否满足最大尾部行程长度为3位的要求。如果否,则在处理框820使该要求得到满足(诸如通过使代码序列的位倒转)。如果是,则所有行程长度要求得到满足,且在框822提供17B/20B代码序列。
图9示出经编码的命令表900的实施例。在一个实施例中,利用17B/20B代码技术的表900的结果实现了等待时间隐藏以及通过预译码的等待时间隐藏。此外,利用17B/20B译码技术的益处实现了通过预译码的等待时间隐藏。所示的表900的实施例包括如在20位域902中定义的SPMT命令编码。19个SPMT命令904在20位代码空间或域902中被提供。在一个实施例中,5B/6B和6B/7B代码方案或序列是基于“代码重复”技术的,诸如基于重复代码序列的中心位,该代码序列可具有保持其首部位和尾部位的性质。使用该性质允许在解码过程的较早阶段执行解码命令,这提供好处。命令位包括表示第20位的命令(C)906,其中动作命令(ACT)908在位18中提供(其表示第19位)。接下来的几位14-17表示CMD字段910,且在此所有命令可利用查找6位来解码。任何进一步代码序列划分(例如第二代码序列、第三代码序列),例如分别具有6位,可具有诸如排914(占据位5-8)等不固定的字段。对每个命令的编码作仔细选择,代码可设置在另一字段中,该另一字段诸如在输出空间中固定的SubCMD912(占据位9-13)或SubSubCMD916(占据位0-3),它们与排值(bankvalue)无关。换言之,在一个实施例中,命令解码可在20位域902中执行,从而导致通过预译码的等待时间隐藏。
图10A示出用于顺序转换代码解码和命令解码的常规过程。如图所示,在该常规过程中,代码解码和命令解码按顺序执行。例如,在1002接收20B中的命令。在处理框1004执行对20B/16B代码的代码解码。这花费约2纳秒(ns)的时间。然后,在16B域中执行命令解码,从而导致附加的2ns时间。最终,将代码和命令的经解码信息1008提供并传递给存储器核1010,这样增加了另一ns,因此总花费5ns。
图10B示出用于并行的转换代码解码和命令解码的过程的实施例。在一个实施例中,在20B域中的代码和命令(均具有用于解码的相同逻辑阶段)的并行和并发解码提供了通过预译码的等待时间隐藏。在所示实施例中,整个过程在3ns中执行,这比常规过程(图10A)快2ns或40%。因此,使等待时间减少40%。如图所示,在1052接收20B中的命令。然后在处理框1054,该命令在20B域空间1056中解码,且并发或并行地对20B/17B代码解码。该步骤花费2ns。一旦执行该解码,则将解码信息1058收集并传递至存储器核1060,这将花费额外的1ns时间,因此总计需要3ns来执行并行的命令和代码解码。在一个实施例中,利用17B/20B转换译码系统的这种并行解码将总等待时间减少2ns,并使速度增加40%。对时间的事务处理1062可用于将常规过程(图10A)的速度与更快、增强和高效的过程(图10B)的实施例的速度作比较。
图11是可在其上实现本发明的实施例的计算机系统的图示。计算机系统1100包括用于传送信息的系统总线1120,以及耦合至总线1120的用于处理信息的处理器1110。根据一个实施例,使用多个微处理器之一实现处理器1110。然而,本领域普通技术人员将可理解,可使用其它处理器。
计算机系统1100还包括耦合至总线1120的随机存取存储器(RAM)或其它动态存储装置1125(在本文中被称为主存储器),用于存储要由处理器1110执行的信息和指令。主存储器1125还可用于存储处理器1110执行指令期间的临时变量或其它中间信息。计算机系统1100还可包括耦合至总线1120的ROM和或其它静态存储装置1126,用于存储由处理器1110使用的静态信息和指令。
诸如磁盘或光盘等数据存储装置1125及其相应的驱动器也可耦合至计算机系统1100以存储信息和指令。计算机系统1100还可经由输入/输出(I/O)接口1130耦合至第二输入/输出(I/O)总线1150。多个I/O设备可耦合至I/O总线1150,包括显示设备1124、输入设备(例如,字母数字输入设备1123和/或光标控制装置1122)。通信装置1121用于经由外部数据网络访问其它计算机(服务器或客户机)。通信装置1121可包括调制解调器、网络接口卡或其它公知的接口设备,诸如用于耦合至以太网、令牌环或其它类型网络的设备。计算机系统1100包括但不限于网络计算机设备、移动电话、个人数据助理(PDA)等。
计算机系统1100可互连在客户机/服务器网络系统中。网络可包括局域网(LAN)、广域网(WAN)、城域网(MAN)、内部网、因特网,等等。如本文档中别处所述,任何数量的网络设备可级联以与端口增加器连接,从而在网络中形成联网机制。可构想,可以存在经由该网络连接的任意数量的设备。经由多种标准或非标准协议(包括本文档中描述的协议),设备可将数据流传输(诸如流送媒体数据)至网络系统中的其它设备。
在以上描述中,出于说明目的阐述了众多具体细节以便提供对本发明的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节中的一些也可实践本发明。在其他情况下,公知结构和设备以框图的形式示出。在所示部件之间可以存在中间结构。本文中所描述或示出的部件可以具有未示出或未描述的附加输入或输出。
本发明的各种实施例可包括各种过程。这些过程可由硬件部件来执行或可以用计算机程序或机器可执行指令来实现,这可用于使得通用或专用处理器或逻辑电路经用这些指令编码来执行这些过程。或者,这些过程可由硬件和软件的组合来执行。
本文档通篇中描述的一个或多个模块、部件或要素,诸如在端口增加器增强机构的实施例中示出或的与其关联的模块、部件或要素,可包括硬件、软件和/或硬件和软件的组合。在模块包括软件的情况下,软件数据、指令和/或配置可经由制品通过机器/电子设备/硬件来提供。制品可包括具有提供指令、数据等内容的机器可存取/可读介质。该内容可致使例如本文中描述的文件管理器(filer)、盘或盘控制器等电子设备执行所描述的各种操作或执行。
本发明的各种实施例的多个部分可作为计算机程序产品被提供,该计算机程序产品可包括其上存储了计算机程序指令的计算机可读介质,这些计算机程序指令可用于对计算机(或其它电子设备)编程以执行根据本发明的实施例的过程。该机器可读介质可包括但不限于软盘、光盘、压缩盘只读存储器(CD-ROM)、以及磁-光盘、ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、EEPROM、DRAM、SRAM、磁或光卡、闪存或适合于存储电子指令的其它类型的介质/机器可读介质。此外,本发明还可作为计算机程序产品来下载,其中该程序可以从远程计算机传送到作出请求的计算机。
许多方法是以其最基本的形式来描述的,但可以向这些方法中的任一个添加或从中删除过程,并且可以向所描述的消息中的任一个添加或从中减去信息,而不背离本发明的基本范围。对本领域技术人员而言显而易见的是,还可以作出许多修改和改编。各具体实施例不是为了限制本发明而是为了说明本发明来提供的。本发明的实施例的范围不是由以上提供的各具体示例来确定的,而是仅由所附权利要求书来确定的。
当描述元件“A”耦合至元件或“A”与“B”耦合时,元件A可直接耦合至元件B,或通过例如元件C间接耦合。当说明书或权利要求陈述部件、特征、结构、过程或特性A“引起”部件、特征、结构、过程或特征B时,它意味着“A”是“B”的至少部分起因,但还可能存在辅助引起“B”的至少一个其它部件、特征、结构、过程或特性。如果说明书指示部件、特征、结构、过程或特性“可能”、“也许”或“可”被包括,则并非要求该部件、特征、结构、过程或特性被包括。如果说明书或权利要求述及“一个(a,英文中的不定冠词)”或“一个(an,英文中的不定冠词)”元件,则这不意味着仅有单个所描述的元件。
实施例是本发明的实现或示例。说明书中对“实施例”、“一个实施例”、“某些实施例”或“其它实施例”的引用表示结合实施例所描述的特定特征、结构或特性包括在至少某些实施例中,但不一定包括在所有实施例中。“实施例”、“一个实施例”或“某些实施例”的多次出现不一定都指示同样的实施例。类似地,应当领会,在对本发明的示例实施例的以上描述中,出于使本公开流畅以及辅助理解各发明方面中的一个或多个方面的目的,各个特征有时被一起编组在单个实施例、附图、或其描述中。然而,本发明的方法不应被解释为反映所要求保护的发明需要比在每一权利要求中明确表述的特征更多的特征的意图。相反,如所附权利要求书所反映的,各发明性方面在于比以上公开的单个实施例的所有特征要少的特征。因此,权利要求书在此明确地合并到本说明书中,且每一权利要求都独立作为本发明的一单独实施例。
Claims (17)
1.一种用于存储器的译码方法,包括:
接收代码序列;
将所述代码序列划分成第一代码区段,所述第一代码区段中的每一个包括多个位;以及
通过在保持所述第一代码区段的其他位的同时重复所述第一代码区段的中间位来将所述第一代码区段编码成具有比所述第一代码区段更长的长度的中间代码区段,并且如果所述中间代码区段的最大行程长度超过预定长度,则倒转所述中间代码区段的一个或多个位以生成第二代码区段。
2.如权利要求1所述的译码方法,其特征在于,与将所述第二代码区段解码成所述第一代码区段并发地执行与所述第二代码区段相关联的命令的解码。
3.如权利要求1所述的译码方法,其特征在于,第一代码区段包括5位块和两个6位块。
4.如权利要求3所述的译码方法,其特征在于,所述第二代码区段包括6位块和两个7位块。
5.如权利要求1所述的译码方法,其特征在于,所述最大行程长度是从包括以下各项的组中选择的:最大整体行程长度、最大首部行程长度以及最大尾部行程长度。
6.如权利要求1所述的译码方法,其特征在于,还包括合并所述第二代码区段以形成经编码的代码序列。
7.一种用于存储器的译码系统,包括:
译码电路,用于接收代码序列,所述译码电路配置成:
将所述代码序列划分成第一代码区段;以及
通过在保持所述第一代码区段的其他位的同时重复所述第一代码区段的中间位来将所述第一代码区段编码成具有比所述第一代码区段更长的长度的中间代码区段,并且如果所述中间代码区段的最大行程长度超过预定长度,则倒转所述中间代码区段的一个或多个位以生成第二代码区段。
8.如权利要求7所述的译码系统,其特征在于,与将所述第二代码区段解码成所述第一代码区段并发地执行与所述第二代码区段相关联的命令的解码。
9.如权利要求7所述的译码系统,其特征在于,第一代码区段包括5位块和两个6位块。
10.如权利要求9所述的译码系统,其特征在于,所述第二代码区段包括6位块和两个7位块。
11.如权利要求7所述的译码系统,其特征在于,所述最大行程长度是从包括以下各项的组中选择的:最大整体行程长度、最大首部行程长度以及最大尾部行程长度。
12.如权利要求7所述的译码系统,其特征在于,所述译码电路进一步配置成合并所述第二代码区段以形成经编码的代码序列。
13.一种用于存储器的译码装置,包括:
用于接收代码序列的装置;
用于将所述代码序列划分成第一代码区段的装置,所述第一代码区段中的每一个包括多个位;以及
用于通过在保持所述第一代码区段的其他位的同时重复所述第一代码区段的中间位来将所述第一代码区段编码成具有比所述第一代码区段更长的长度的中间代码区段,且如果所述中间代码区段的最大行程长度超过预定长度则倒转所述中间代码区段的一个或多个位以生成第二代码区段的装置。
14.如权利要求13所述的译码装置,其特征在于,与将所述第二代码区解码成所述第一代码区段并发地执行所述第二代码区段相关联的命令的解码。
15.如权利要求13所述的译码装置,其特征在于,第一代码区段包括5位块和两个6位块。
16.如权利要求15所述的译码装置,其特征在于,所述第二代码区段包括6位块和两个7位块。
17.如权利要求13所述的译码装置,其特征在于,所述最大行程长度是从包括以下各项的组中选择的:最大整体行程长度、最大首部行程长度以及最大尾部行程长度。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/260,972 US7777652B2 (en) | 2008-10-29 | 2008-10-29 | Coding system for memory systems employing high-speed serial links |
US12/260,972 | 2008-10-29 | ||
PCT/US2009/059096 WO2010053638A2 (en) | 2008-10-29 | 2009-09-30 | Coding system for memory systems employing high-speed serial links |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102484482A CN102484482A (zh) | 2012-05-30 |
CN102484482B true CN102484482B (zh) | 2015-12-02 |
Family
ID=41259832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980143644.3A Active CN102484482B (zh) | 2008-10-29 | 2009-09-30 | 用于采用高速串行链路的存储系统的译码系统 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7777652B2 (zh) |
EP (1) | EP2359481A2 (zh) |
JP (2) | JP2012507935A (zh) |
KR (1) | KR101483535B1 (zh) |
CN (1) | CN102484482B (zh) |
TW (1) | TWI543543B (zh) |
WO (1) | WO2010053638A2 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
US8443134B2 (en) | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
CN101715575A (zh) | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
US9104599B2 (en) | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
US8706968B2 (en) | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US9021158B2 (en) | 2009-09-09 | 2015-04-28 | SanDisk Technologies, Inc. | Program suspend/resume for memory |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
EP2476039B1 (en) * | 2009-09-09 | 2016-10-26 | SanDisk Technologies LLC | Apparatus, system, and method for power reduction management in a storage device |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
KR101796116B1 (ko) | 2010-10-20 | 2017-11-10 | 삼성전자 주식회사 | 반도체 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 그 동작방법 |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
EP2652623B1 (en) | 2010-12-13 | 2018-08-01 | SanDisk Technologies LLC | Apparatus, system, and method for auto-commit memory |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
WO2012106362A2 (en) | 2011-01-31 | 2012-08-09 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
WO2012109677A2 (en) | 2011-02-11 | 2012-08-16 | Fusion-Io, Inc. | Apparatus, system, and method for managing operations for data storage media |
US9141527B2 (en) | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9270398B2 (en) * | 2012-04-17 | 2016-02-23 | Telefonaktiebolaget L M Ericsson | Methods and devices for transmission of signals in a telecommunication system |
US9666244B2 (en) | 2014-03-01 | 2017-05-30 | Fusion-Io, Inc. | Dividing a storage procedure |
US9621907B2 (en) | 2014-08-15 | 2017-04-11 | Lattice Semiconductor Corporation | System and method for transcoding data |
US9933950B2 (en) | 2015-01-16 | 2018-04-03 | Sandisk Technologies Llc | Storage operation interrupt |
US10111269B2 (en) | 2015-03-18 | 2018-10-23 | Lattice Semiconductor Corporation | Multi-gigabit wireless tunneling system |
US10091026B2 (en) | 2015-03-18 | 2018-10-02 | Lattice Semiconductor Corporation | Full duplex radio in wireless tunneling system |
US10104706B2 (en) | 2015-03-18 | 2018-10-16 | Lattice Semiconductor Corporation | Apparatus for role identification and power supply control in a wireless tunneling system |
CN105847077B (zh) * | 2016-03-17 | 2019-03-08 | 华为技术有限公司 | 一种检测多路串行数据冲突的方法及装置、设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5351047A (en) * | 1992-09-21 | 1994-09-27 | Laboratory Automation, Inc. | Data decoding method and apparatus |
CN101286744A (zh) * | 2007-03-30 | 2008-10-15 | 英特尔公司 | 自动生成压缩码表 |
CN101292221A (zh) * | 2005-11-22 | 2008-10-22 | 英特尔公司 | 用于串行链路的基于信号跃迁特征的编码 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4591839A (en) * | 1982-05-20 | 1986-05-27 | Gulf & Western Manufacturing Company | System for detecting low liquid level and probe therefor |
US4486739A (en) * | 1982-06-30 | 1984-12-04 | International Business Machines Corporation | Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code |
AU618680B2 (en) * | 1989-07-17 | 1992-01-02 | Digital Equipment Corporation | Data and forward error control coding techniques for digital signals |
JPH05300377A (ja) * | 1992-04-20 | 1993-11-12 | Fujitsu Ltd | 画像データ変換処理装置 |
JP3617074B2 (ja) * | 1994-06-30 | 2005-02-02 | ソニー株式会社 | データ変調装置およびデータ復調装置 |
SG87129A1 (en) * | 1999-07-12 | 2002-03-19 | Ibm | Data encoding systems |
JP3552632B2 (ja) | 2000-02-28 | 2004-08-11 | 日本電信電話株式会社 | 符号化装置 |
JP3535074B2 (ja) | 2000-04-20 | 2004-06-07 | 日本電信電話株式会社 | 制御情報の符号化方法及び復号化方法と制御情報の送信器及び受信器 |
JP2002261619A (ja) * | 2001-02-28 | 2002-09-13 | Toshiba Corp | データ符号化方法、データ符号化装置及び記憶媒体 |
JP2002313034A (ja) * | 2001-04-16 | 2002-10-25 | Ricoh Co Ltd | デジタル復調装置 |
US6614369B1 (en) * | 2002-03-05 | 2003-09-02 | International Business Machines Corporation | DC balanced 7B/8B, 9B/10B, and partitioned DC balanced 12B/14B, 17B/20B, and 16B/18B transmission codes |
JP2006074075A (ja) * | 2004-08-31 | 2006-03-16 | Canon Inc | 差動シリアル・ディジタル出力a/d変換手段および撮像装置 |
JP2006286084A (ja) * | 2005-03-31 | 2006-10-19 | Fujitsu Ltd | 符号器、復号器および符号化方法 |
US7599396B2 (en) * | 2005-07-11 | 2009-10-06 | Magnalynx, Inc. | Method of encoding and synchronizing a serial interface |
-
2008
- 2008-10-29 US US12/260,972 patent/US7777652B2/en active Active
-
2009
- 2009-09-30 CN CN200980143644.3A patent/CN102484482B/zh active Active
- 2009-09-30 JP JP2011534573A patent/JP2012507935A/ja active Pending
- 2009-09-30 KR KR1020117012213A patent/KR101483535B1/ko active IP Right Grant
- 2009-09-30 EP EP09793204A patent/EP2359481A2/en not_active Ceased
- 2009-09-30 WO PCT/US2009/059096 patent/WO2010053638A2/en active Application Filing
- 2009-10-06 TW TW098133895A patent/TWI543543B/zh active
-
2010
- 2010-07-30 US US12/847,416 patent/US7978099B2/en active Active
-
2015
- 2015-02-20 JP JP2015032125A patent/JP5875205B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5351047A (en) * | 1992-09-21 | 1994-09-27 | Laboratory Automation, Inc. | Data decoding method and apparatus |
CN101292221A (zh) * | 2005-11-22 | 2008-10-22 | 英特尔公司 | 用于串行链路的基于信号跃迁特征的编码 |
CN101286744A (zh) * | 2007-03-30 | 2008-10-15 | 英特尔公司 | 自动生成压缩码表 |
Also Published As
Publication number | Publication date |
---|---|
WO2010053638A2 (en) | 2010-05-14 |
US7978099B2 (en) | 2011-07-12 |
US20100295711A1 (en) | 2010-11-25 |
TWI543543B (zh) | 2016-07-21 |
JP5875205B2 (ja) | 2016-03-02 |
KR101483535B1 (ko) | 2015-01-16 |
CN102484482A (zh) | 2012-05-30 |
JP2015136136A (ja) | 2015-07-27 |
TW201018097A (en) | 2010-05-01 |
JP2012507935A (ja) | 2012-03-29 |
KR20110090972A (ko) | 2011-08-10 |
US7777652B2 (en) | 2010-08-17 |
US20100102999A1 (en) | 2010-04-29 |
EP2359481A2 (en) | 2011-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102484482B (zh) | 用于采用高速串行链路的存储系统的译码系统 | |
CN101685381B (zh) | 固态大容量存储装置的数据串流 | |
JP5945291B2 (ja) | デフレート圧縮のために高速で高圧縮のlz77トークン化及びハフマンエンコーディングを行う並列装置 | |
US6748486B2 (en) | Method, system, and data structures for superimposing data records in a first data format to memory in a second data format | |
KR101785189B1 (ko) | 데이터 기입 방법 및 메모리 시스템 | |
CN102150215A (zh) | 用于带内数据掩码比特传输的系统、方法和装置 | |
US9088297B2 (en) | High throughput decoding of variable length data symbols | |
CN115794273A (zh) | 一种基于服务器的资源共享渲染方法和装置 | |
US9262098B2 (en) | Pipelined data I/O controller and system for semiconductor memory | |
CN101364209A (zh) | 将数据屏蔽位传送到存储器装置的系统、方法和设备 | |
CN110309138A (zh) | 数据合并方法、基于fpga的合并器及数据库系统 | |
US5696768A (en) | Method and apparatus for data storage array tracking | |
CN105335296B (zh) | 一种数据处理方法、装置及系统 | |
KR100502106B1 (ko) | 스트라이핑 기법을 이용한 레이드 시스템에서의 데이터재구성 방법 | |
CN106383669B (zh) | 一种基于(n,k,m)编码的分布式存储方法及系统 | |
US9325492B2 (en) | Method for increasing I/O performance in systems having an encryption co-processor | |
US20070121398A1 (en) | Memory controller capable of handling precharge-to-precharge restrictions | |
US7047363B2 (en) | Cache memory and control method thereof | |
US20050013181A1 (en) | Assisted memory device with integrated cache | |
JP2001216193A (ja) | キャッシュ機構およびキャッシュ機構の動作制御方法 | |
KR20080023024A (ko) | 비디오 데이터 저장 방법 및 장치 | |
US20230026565A1 (en) | Method of inputting and outputting data, electronic device and computer program product | |
WO2021046756A1 (zh) | 一种二维方形约束的编译码方法及装置 | |
Jain et al. | Coded Access Architectures for Dense Memory Systems | |
CN103188485B (zh) | 一种码流缓存系统及视频解码器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
C41 | Transfer of patent application or patent right or utility model | ||
GR01 | Patent grant | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20151111 Address after: oregon Applicant after: LATTICE SEMICONDUCTOR CORPORATION Address before: American California Applicant before: Silicon Image Inc. A. Delaware C. |