JP2012507935A - 高速シリアルリンクを用いるメモリシステム用のコーディングシステム - Google Patents

高速シリアルリンクを用いるメモリシステム用のコーディングシステム Download PDF

Info

Publication number
JP2012507935A
JP2012507935A JP2011534573A JP2011534573A JP2012507935A JP 2012507935 A JP2012507935 A JP 2012507935A JP 2011534573 A JP2011534573 A JP 2011534573A JP 2011534573 A JP2011534573 A JP 2011534573A JP 2012507935 A JP2012507935 A JP 2012507935A
Authority
JP
Japan
Prior art keywords
coding
code block
code
run length
block
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.)
Pending
Application number
JP2011534573A
Other languages
English (en)
Inventor
スン ジョン リー
デユン シム
Original Assignee
シリコン イメージ,インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by シリコン イメージ,インコーポレイテッド filed Critical シリコン イメージ,インコーポレイテッド
Publication of JP2012507935A publication Critical patent/JP2012507935A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code 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/145Conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code 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

コーダを用いる方法、装置およびシステムが開示される。第1のコードブロックおよび第2のコードブロックを含む着信ストリームを受信し、第1のコードブロックを第1の小さなコードブロックに分割し、かつ第2のコードブロックを第2の小さなコードブロックに分割するコーダである。コーダは、さらに、1つまたは複数のシリアルリンクを通信用に用いるメモリをコーディングすることになるが、コーディングには、第1のコードブロックの第1の小さなコードブロックおよび第2のコードブロックの第2の小さなコードブロックをコーディングすることが含まれ、第1および第2のコードブロックのコーディングは、最大ランレングスが維持されるように実行される。

Description

本発明の実施形態は、一般に、ネットワークおよびデータ伝送の分野に関し、特に、高速シリアルリンクを用いるメモリシステム用のコーディングシステムに関する。
データ通信では、データ通信のコーディング(エンコーディング/デコーディング)が普通である。例えば、PC拡張カードインタフェース(PCIe)およびシリアルハードディスクアクセス(SATA)技術は、バイト指向のDCバランスがとられたランレングス8B/10Bコーディングを用いる(米国特許第4,486,739号明細書を参照。また、16B/20B用には米国特許第5,663,724号明細書および同第6,617,984号明細書を参照)。このコーディングは、電子機器技術評議会(JEDEC)コミュニティによって標準化されている。この従来のコーディングテクニックは、2つの特性を有する。すなわち、5以下のランレングスを保証し、DCバランスが取れた出力を提供する。
8B/10Bの第1の特性に関して、最大ランレングス特徴は、アナログPHY、すなわちシリアルラインにおけるデータ変化の検出を支援して、ビットエラーを最小化するために最適なプロービング位置を見つけようと試みるアナログPHYに起因するビットエラーを最小化するために重要になり得る。しかしながら、シリアルデータが予想ほど変化しない場合には、PHYは、結果においてプロービング位置を決定するための情報をそれほど有さず、したがって、ビットエラーの可能性の増加に帰着する。さらに、最大可能距離は、ランレングスおよび反復する符号数などの観点から定義することができる。第2の特性に関して、DCバランスが取れた出力は、シリアルリンクがAC結合において実現される場合には重要になり得る。ほとんどの高速シリアルライン技術は、差動ワイヤに基づき、データは、2つのワイヤ間の差異を測定することによって検出される。コンパチビリティを向上させるために、単に、信号変化が、DC成分をブロックして宛先へ伝達される。この技術は、AC結合と呼ばれる。それには、実行面においていくつかの利点あるが、しかしそれには、入力制限がある。0の数および1の数は、一定期間内にバランスが取られなければならない。コードがこの要件を満たす場合には、それは、DCバランスと呼ばれる。8B/10Bコーディングは、かかる優れた特性を提供する。しかしながらそれは、著しい待ち時間を加える。例えば、8B/10Bコードを用いて各バイトをエンコードすることができるが、しかし各コーディングは、DCバランス要件を満たすために前の結果を参照すべきであり、その結果、計算は、段階的に行われる。8B/10Bコーディング技術の大きな待ち時間は、低いメモリ性能に帰着し、したがってそれは、多くの場合、特に、モバイル装置の場合には望ましくない。モバイル装置を設計する場合に、メモリ性能は、本質的な要因と見なされる。
しかしながら、シリアルポートメモリテクノロジ(SPMT)は、それがメモリ領域において高速シリアルリンク技術を用いるという点で、従来のメモリ技術とは異なる。SPMTを用いる場合に、待ち時間の低減は不可欠であるが、DCバランスは必要とされない。したがって、どんなメモリ資源の複雑化もなしに、小さな待ち時間のコーディングを提供し、結果としてメモリ性能の改善をもたらすデータ通信コーディングシステムを有することが望ましい。
高速シリアルリンクを使用するメモリシステム用のコーディングシステムの実施形態を用いるための方法、装置およびシステムが提供される。例えば、17ビット/20ビット(17B/20B)コーディングシステムが用いられる。メモリの17B/20Bコードをエンコード/デコードするエンコーダ/デコーダとして働く17ビット/20ビットコーダを有する17B/20Bコーディングシステムである。この17B/20Bコーディングシステムは、単に、簡潔さおよび明確さのために例として本明細書全体にわたって使用され説明される。本発明のコーディングシステム技術の実施形態が、かなり多数のコーディングシステムと共に使用でき、かつ例えば、コーディングシステムを17B/20Bを超えて拡張するために使用できることを考慮し留意されたい。一実施形態において、コーディングシステムが、高速シリアルリンクを用いるメモリシステムにおいて用いられ、かつコーディングシステムは、5などの定義された数を超えないランレングスを保証する。繰り返すと、5以下のランレングスは、本明細書では例として用いられ、任意の最大ランレングス数を決定または予め決定することができ、かつコーディングシステムの実施形態を用いて、その最大ランレングス数を超えないように保証することができる。
一実施形態において、装置にはコーダが含まれる。第1のコードブロックおよび第2のコードブロックを含む着信ストリームを受信するコーダは、第1のコードブロックを第1の小さなコードブロックに分割し、第2のコードブロックを第2の小さなコードブロックに分割し、かつ1つまたは複数のシリアルリンクを通信用に用いるメモリをコーディングするが、コーディングには、第1のコードブロックの第1の小さなコードブロックおよび第2のコードブロックの第2の小さなコードブロックをコーディングすることが含まれ、第1および第2のコードブロックのコーディングは、最大ランレングスが維持されるように実行される。
一実施形態において、システムには、第1のコードブロックおよび第2のコードブロックを含む着信ストリームを受信し、第1のコードブロックを第1の小さなコードブロックに分割し、第2のコードブロックを第2の小さなコードブロックに分割し、かつ1つまたは複数のシリアルリンクを通信用に用いるメモリをコーディングするコーディング回路であって、コーディングが、第1のコードブロックの第1の小さなコードブロックおよび第2のコードブロックの第2の小さなコードブロックをコーディングすることを含み、第1および第2のコードブロックのコーディングが、最大ランレングスが維持されるように実行されるコーディング回路が含まれる。
一実施形態において、方法には、第1のコードブロックおよび第2のコードブロックを含む着信ストリームを受信することと、第1のコードブロックを第1の小さなコードブロックに分割することと、第2のコードブロックを第2の小さなコードブロックに分割することと、1つまたは複数のシリアルリンクを通信用に用いるメモリをコーディングすることと、が含まれるが、コーディングには、第1のコードブロックの第1の小さなコードブロックおよび第2のコードブロックの第2の小さなコードブロックをコーディングすることが含まれ、第1および第2のコードブロックのコーディングは、最大ランレングスが維持されるように実行される。
本発明の実施形態は、添付図面の図において、限定としてではなく例として示され、これらの図において、同様の参照数字は、同様の要素を指す。
SPMTコマンドエンコーディングを用いる17B/20Bコーディングシステムの実施形態を示す。 17B/20Bコーディングシステムへの17Bコードおよび20Bコードのマッピングの実施形態を示す。 17B/20Bコードの17Bコードを分割するためのプロセスの実施形態を示す。 17B/20Bコードの20Bコードを分割するためのプロセスの実施形態を示す。 最大ランレングス要件を保持しながら、17B/20Bコーディングシステムの5B/6Bセクションマッピングの実施形態を示す。 最大ランレングス要件を保持しながら、17B/20Bコーディングシステムの5B/6Bセクションマッピングの実施形態を示す。 17B/20Bコーディングシステムの5B/6Bセクションマッピングにおけるエンコーディング表の実施形態を示す。 最大ランレングス要件を保持しながら、17B/20Bコーディングシステムの6B/7Bセクションマッピングの実施形態を示す。 最大ランレングス要件を保持しながら、17B/20Bコーディングシステムの6B/7Bセクションマッピングの実施形態を示す。 17B/20Bコーディングシステムの6B/7Bセクションマッピングにおけるエンコーディング表の実施形態を示す。 17B/20Bエンコーディング/デコーディング用のプロセスの実施形態を示す。 プリエンコーディングを用いた待ち時間隠蔽を示す表の実施形態を示す。 順次的な遷移コードデコーディングおよびコマンドデコーディング用の従来のプロセスを示す。 並列の遷移コードデコーディングおよびコマンドデコーディング用のプロセスの実施形態を示す。 本発明の実施形態を実行可能なコンピュータシステムの実例である。
本発明の実施形態は、一般に、高速シリアルリンクを用いるメモリシステム用のコーディングシステムに関する。
本明細書で用いるように、「ネットワーク」または「通信ネットワーク」は、装置間でデジタルメディアコンテンツ(音楽、オーディオ/ビデオ、ゲーム、写真およびその他を含む)を伝達する相互接続ネットワークを意味する。エンターテイメントネットワークには、家庭におけるネットワークなどの個人エンターテイメントネットワーク、ビジネスの場におけるネットワーク、または装置および/もしくはコンポーネントの任意の他のネットワークを含んでもよい。ネットワークにおいて、あるネットワーク装置は、デジタルテレビチューナ、ケーブルセットトップボックス、ビデオ記憶サーバ、および他のソースデバイスなど、メディアコンテンツのソースであってもよい。他の装置は、デジタルテレビ、ホームシアターシステム、オーディオシステム、ゲーム機、および他の装置など、メディアコンテンツを表示または使用してもよい。さらに、ビデオおよびオーディオ記憶サーバなど、ある装置は、メディアコンテンツを記憶または転送することを目的としてもよい。ある装置は、多数のメディア機能を実行してもよい。いくつかの実施形態において、ネットワーク装置は、単一のローカルエリアネットワークに一緒に配置してもよい。他の実施形態において、ネットワーク装置は、ローカルエリアネットワーク間を通り抜けるなどによって、多数のネットワークセグメントにまたがってもよい。エンターテイメントネットワークには、多数のデータエンコーディングおよび暗号化プロセスを含んでもよい。
SPMTは、それがメモリ領域において高速シリアルリンク技術を用いるという点で、従来のメモリ技術(例えば、ダイナミックランダムアクセスメモリ(DRAM))とは異なる。SPMTを用いる場合に、待ち時間の低減は不可欠であるが、DCバランスは必要とされない。例えば、(DCバランスとは対照的な)DC結合リンクが提供され、メモリは、はんだ付け後にボードに装着されたままであり、したがってDCバランスが取られたコードは要求されない。さらに、SPMTにとって、メモリ性能は、待ち時間に敏感である。なぜなら、シリアルリンクは、従来のDRAMインタフェースと比較して、さらに多くのサイクルを用いるからである。したがって、8B/10Bコーディングなどの順次的で複雑なコーディングシステムは、それらがハードウェア待ち時間を劇的に増加させることになるので、SPMTには適していない。
SPMTは、最初はDRAMチップをターゲットとした新しいメモリインタフェースアーキテクチャと見なされるが、このアーキテクチャは、現在のメモリ技術において普通に見出されるようなパラレルインタフェースアーキテクチャとは対照的にシリアルインタフェースアーキテクチャを用いる。SPMTは、典型的には、メモリ領域において高速シリアルリンク技術を用い、ホストおよびメモリ間に接続された場合には、低電力およびピン数の低減という利点を提供する。しかしながら、メモリ帯域幅要件が、高速リンクがサポートできるより高くなった場合には(例えば、数Gbps)、多数のシリアルリンクを用いなければならない。したがって、ホストが、一度に多量のデータ(例えば、読み出しデータ、書き込みデータ)を送信することになる場合には、メモリには、多数のシリアルリンクまたはシリアルチャネルを通して多量のデータを伝達するのに十分な帯域幅を提供することになる。
メモリの17ビット/20ビットコードをエンコード/デコードする17ビット/20ビットエンコーダ/デコーダを含む17ビット/20ビットコーディングシステムを用いるための方法、装置およびシステムが提供される。一実施形態において、17B/20Bコーダを含む装置が提供される。17Bブロックおよび20Bブロックを含む着信ストリームを受信する17B/20Bコーダは、17Bブロックを第1のブロックに分割し、20Bを第2のブロックに分割し、かつ通信用に1つまたは複数のシリアルラインを用いるメモリの17B/20Bをコーディングするが、この場合に、コーディングには、17Bブロックの第1のブロックおよび20Bブロックの第2のブロックをコーディングすることが含まれ、第1および第2のブロックのコーディングは、最大ランレングスが維持されるように実行される。メモリのコーディングは、コマンドのコーディングと同時に実行されるが、コーディングには、エンコーディングまたはデコーディングが含まれ、コマンドのエンコーディングの選択によって、コードデコーダを通さないコマンドのデコーディングが可能になる。さらに、第2のブロックへの第1のブロックの結合を実行して、エンコードされた17B/20Bコードブロックを形成するが、この場合に、コーディングは、DRAM、スタティックランダムアクセスメモリ(SRAM)、読み出し専用メモリ(ROM)およびフラッシュメモリ等に適用される。
本発明の実施形態は、17ビットコードを20ビットスペースにマッピングする(逆の場合も同様である)、5ビット以下のランレングスを有する17B/20Bコーディングシステムを提供する。これは、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、バンク108、および2つのコマンドタイプフィールド114、116、すなわちコマンドのタイプを識別するために、それがコマンド(C)116かまたは活性化コマンド(ACT)114かどうかを反映する2つのコマンドタイプフィールド114、116に分割される。ACTコマンド114(ビット15)は、特別に処理されたコマンドである。なぜなら、それが長いアドレスを含むからである。(18番目のビットと見なすことが可能な)列102は、コマンド名を列挙する。
コマンド102のコマンドタイプに依存して、かなり多数のビット122を、コマンド102を識別するために用いてもよい。例えば、コマンドWDAT106の場合には、ドメイン104の17番目のビットであるビット16(C)は、1(108)を有することを識別するために用いられ、他の16ビット0〜15は、上部バイト110および下部バイト112として用いられる。同様に、コマンドACT114の場合には、ドメイン104の16番目のビットであるビット15(ACT)は、1(116)を有することを識別するために用いられ、ビット16は0のままであり、一方で他の15ビット(ビット0〜14)には、下部行118が含まれる。さらに、コマンドPDX120の場合には、17ビットの全て(ビット0〜16)が、コマンドを識別するために用いられる。
17B/20Bコーディングシステム100の図示の実施形態は、コマンドまたはデータを示す単一ビット116と、対応するデータペイロードを含む16ビットと、を含む、(エン)コーディングドメイン104の17ビットおよび(19コマンド102を有する)コマンドの20ビットのマッピングを用いる。回路が手動で作図される場合であっても、DRAMなどの様々なメモリシステム/アーキテクチャにおいてコーディングシステム100を実現できるように、コーディングシステム100は、さらに、5以下のランレングスのマッピング、待ち時間の低減、およびハードウェアインプリメンテーションの簡略化を提供する。ランレングスは、0および1の連続する回数を指す。例えば、100011のシーケンスは、それが3つのゼロを含むので、3のランレングスを有することになろう。同様に、10101のシーケンスは、1のランレングスを有する。なぜなら、連続する0または1のシーケンスがないからである。
図2は、17B/20Bコーディングシステムへの17Bコードおよび20Bコードのマッピングの実施形態を示す。図示の実施形態において、17B/20コード200は、17B/20Bコードの分割後に並列に計算されている。例えば、17Bおよび20Bコード202、204は、かなり多数の方法で分割してもよいが、図示の実施形態では、例えば、17Bコード202は、5ビット206、6ビット208および6ビット210の3つのセクションに分割され、一方で20Bコード204は、6ビット212、7ビット214および7ビット216の3つのセクションに分割される。17Bコード202の3つのセクション206〜210は、20Bコード204のセクション212〜216と共にマッピングされる。
図示のように、17Bコード202の5B206は、20Bコード204の6B212と共にマッピングされ、同様に6B208は、7B214と共にマッピングされ、6B210は、7B216と共にマッピングされる。次に、これらのマッピングされたセクションは、17Bコード202および20Bコード204に結合される。このプロセスは、図3A〜3Bに関連してさらに説明する。一実施形態において、17B/20Bコード200は、17Bコード202および20Bコード204をそれらのそれぞれのセクション206〜216に分割した後で、並列に計算される。セクション206〜216は、通信するために結合およびマッピングされるが、しかしそれらは、別個で並列のままであってもよい。
図3Aは、17B/20Bコードの17Bコード302を分割するプロセスの実施形態を示す。一実施形態において、17Bコード302は、処理ブロック304において、5Bコードコードおよび2つの6Bコードの3つのコードセクションに分割される。処理ブロック306において、17Bコード302の5Bコードは、17B/20Bコードにおける20Bコードの6Bコードにマッピングされる。同様に、処理ブロック308において、17Bコード302の6Bコードは、20Bコードの7Bコードにマッピングされ、一方で17Bコード302の6Bコードは、処理ブロック310において、20Bコードの7Bコードにマッピングされる。処理ブロック312において、17Bコード302の3つの分割されたコードセクションは、20Bコードの3つの分割されたコードセクションと結合されて、17B/20Bコード314を形成する。
図3Bは、17B/20Bコードの20Bコード352を分割するプロセスの実施形態を示す。一実施形態において、20Bコード352は、処理ブロック354において、6Bコードコードおよび2つの7Bコードの3つのコードセクションに分割される。処理ブロック356において、17B/20Bコードにおける17Bコードの5Bコードは、20Bコード352の6Bコードにマッピングされる。同様に、処理ブロック358において、17Bコードの6Bコードは、20Bコード354の7Bコードにマッピングされ、一方で17Bコードの6Bコードは、処理ブロック360において、20Bコード352の7Bコードにマッピングされる。処理ブロック362において、20Bコード352の3つの分割されたコードセクションは、17Bコードの3つの分割されたコードセクションと結合されて、17B/20Bコード364を形成する。決定ブロック366において、ブロックのいずれかからエラーが検出されたかどうかに関して決定がなされる。エラーが検出された場合には、エラーは捨てられる370。そうでなければ、17B/20Bコード364は、有効と見なされる368。
図4Aおよび4Bは、17B/20Bコーディングシステムの5B/6Bセクションマッピング400、450の実施形態を示し、一方で最大ランレングス要件を保持する。17B/20B遷移コードなどの遷移コードの一特徴は、最大ランレングスである。この特徴を満たすために、各セクションは、この特徴を満たすように設計される。この特徴はまた、隣接するコードセクションの境界上でも満たされる。例えば、並列に計算を行うために、次の条件が用いられる。すなわち、(1)各セクションの最大ランレングスを5以下に維持することと、(2)ヘッダから数えたランレングスが2を超えないように維持することと、テールから逆に数えたランレングスが3を超えないことと、である。第2および第3の条件を用いれば、ランレングス特徴は、セクション境界およびコマンド境界の両方で満たされる。セクションコーディングは、基本遷移コードと見なされる「コードを反復すること」に基づいてもよく、「コード反復」において各ビットを反復することと比較すると、反復するための1ビットがターゲットスペースに存在する。各セクションのヘッドおよびテールからのランレングス特徴が存在するので、反復されるコードの適切な位置は、6ビット出力コードセクションの3番目のビット位置または7ビット出力コードセクションにおける4番目のセンタビットである。出力セクションコードが、これらの3つのランレングス特徴を満たす場合には、それは、有効な出力として提供される。そうでなければ、コードセクションは、センタビットをフリップするなど、新しいアルゴリズムを用いて再マッピングされる。
例えば、図4Aを参照すると、20Bのセクション6B404と共に17Bのセクション5B402のマッピング400が示されている。図4Aは、センタビット420、422を複写する基本規則を示す。図示のように、ビットA406は、ビットA416と共にマッピングされ、同様にビットB408、D412、E414は、ビットB418、D424、E426と共にそれぞれマッピングされる。上記のように、中央ビットC410は、「コード反復」技術を用いて、中央ビットC420、422と共にマッピングされる。換言すれば、6ビット出力セクション404のセンタビットは、C420およびC422として2度複写または反復され、C410と共にマッピングされる。
ここで図4Bを参照すると、20Bのセクション6B454と共に17Bのセクション5B452のマッピング450が示されている。図4Bは、基本規則の結果が1つまたは複数のランレングス要件(例えば、5のランレングス、2のヘッダランレングスおよび3のテールランレングス)に違反する場合の例外的な規則を示す。図示のように、ビットA456は、ビットA466と共にマッピングされ、同様にビットB458、D462、E464は、ビットB’468、D’474、E476と共にそれぞれマッピングされる。上記のように、中央ビットC460は、「コード反復」技術を用いて、中央ビットC’470およびC472と共にマッピングされる。換言すれば、6ビット出力セクション454のセンタビットは、C’470およびC472として2度複写または反復され、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の最大テールランレングスを保持する。3つの列には、5ビットシーケンスの第1の列502と、コード反復技術を用いて、第1の列502の5ビットシーケンスのそれぞれの第3のビットを反復することによる6ビット出力シーケンスの第2の列504と、1つまたは複数のランレングス要件を満たすことが必要な場合に、第3のディジットのフリッピング(例えば、0から1へ、または1から0へ)を要求する、第2の列504の選択されたシーケンスを有する第3の列506と、が含まれる。
図示の実施形態において、シーケンス508(00000)は、シーケンス508の第3のビット0を反復したシーケンス510(000000)にマッピングされる。今、シーケンス510(000000)の6つの「連続する」ゼロは、5の最大ランレングス、2の最大ヘッダランレングス、および3のテール最大ランレングスに違反する。これらの違反を修正するために、図示のように、シーケンス510の第3のビット0は、1にフリップされてシーケンス512(001000)を提供するが、このシーケンス512は、5以下の全体的ランレングス(例えば、0も1も、連続5回を超えては記録されない)、2以下のヘッダランレングス(例えば、最初の2つの連続する0)、および3以下のテールランレングス(例えば、最後の3つの連続する0)の3つの要件を満たす。図示の実施形態において、32行のうちの14行514〜540が、1つまたは複数のランレングス要件の同様の違反問題を有し、それらは、かかる修正が第3の列506において提供される結果として修正される。
例えば、行520の場合には、シーケンス542(00011)は、0の複写された第3のビットを備えてシーケンス544(000011)として提供される。この場合に、シーケンス544(000011)は、5つを超えない連続する0または1しかないので5のランレングス要件を満たし、同様に、テールを形成する2つの連続する1しかないので3のテールランレングス要件を満たす。しかしながら、シーケンス544(000011)において、2のヘッダ要件は、ヘッダを形成する4つの連続する0を有するゆえに違反される。シーケンス544の第3のディジット0をフリップしたことによって、第3の列506においてシーケンス546(001011)が形成され、それでこのシーケンス546は、ヘッダを形成する2つの0を有して、2のヘッダ要件を満たす。簡潔にするために、他のかかる行516〜518、522〜540は、詳細には論じないが、しかし行514、520に関連して説明するのと同様の技術を用いる。
表500を綿密に観察すると、再マッピングを必要とするコードシーケンス(例えば、行514〜540)が、2つのグループにグループ化できることが分かる。すなわちそれらは、000もしくは111で開始するか、またはそれらは、000または111で終了する。これらの条件は、所与のコードシーケンスに依存して、別々にまたは同時に満たしてもよい。残念にも、2つのシーケンスパターン00111および11000の出力は、上記の例外的な規則が適用される場合には、他の出力と衝突する可能性がある。例えば、かかる奇数の事例を扱うためには、別の規則を用いてもよい。しかしながら、上記の例外的な規則を含む全ての規則、およびエンコーディング技術は、次の式のように説明することができる。
Figure 2012507935
図6Aおよび6Bは、17B/20Bコーディングシステムの6B/7Bセクションマッピング600、650の実施形態を示し、一方で最大ランレングス要件を保持する。簡潔にするために、図4Aおよび4Bに関連して説明した機能は、ここでは説明しない。図6Aを参照すると、図4Aの5B/6Bコードマッピングに関連して説明したように、セクションコード604の第3のビットC622、624を反復する基本規則が用いられ、セクションコード602の第3のビットC610と共にマッピングされる。図示のように、ビットA606は、ビットA618と共にマッピングされ、同様にビットB608、D612、E614、F616は、ビットB620、D626、E628、F630と共にそれぞれマッピングされる。
ここで図6Bを参照すると、基本規則の結果が1つまたは複数のランレングス要件(例えば、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として2度複写または反復され、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の最大テールランレングスを保持する。3つの列には、5ビットシーケンスの第1の列702と、コード反復技術を用いて、第1の列502の5ビットシーケンスのそれぞれの第3のビットを反復することによる6ビット出力シーケンスの第2の列704と、1つまたは複数のランレングス要件を満たすことが必要な場合に、第3のディジットのフリッピング(例えば、0から1へ、または1から0へ)を要求する、第2の列504の選択されたシーケンスを有する第3の列706と、が含まれる。図示の実施形態において、42行のうちの22行714〜756は、ランレングス要件を満たすために第3の列706を必要とする。
例えば、コードシーケンス708(000001)は、シーケンス708の第3のビット0を反復したコードシーケンス710(0000001)にマッピングされる。今、コードシーケンス710(0000001)の6つの「連続する」ゼロは、5の最大ランレングスおよび2の最大ヘッダランレングスに違反する。しかしながら、最終ディジット「1」がシーケンス710のテールを表すので、3のテール最大ランレングスは満たされる。他の2つのランレングス違反を修正するために、図示のように、シーケンス710の第3のビット0は、1にフリップされ、第3の列706においてシーケンス712(0010001)を提供するが、このシーケンス712は、5以下の全体的ランレングス(例えば、0も1も、連続5回を超えては記録されない)、2以下のヘッダランレングス(例えば、最初の2つの連続する0)、および3以下のテールランレングス(例えば、最後の1のディジット)の3つの要件を満たす。
図5と同様に、エンコーディング技術、およびランレングス要件を満たすために用いられる例外的な規則は、次の式によって要約することができる。
Figure 2012507935
図8は、17B/20Bエンコーディング/デコーディング用のプロセスの実施形態を示す。一実施形態では、処理ブロック802において、17Bおよび20Bコードシーケンスは、17Bコードシーケンスが5B、6Bおよび6Bコードシーケンスに分割される一方で20Bコードシーケンスが6B、7Bおよび7Bコードシーケンスに分割されるように、多数のシーケンスに分割される。処理ブロック804において、17Bコードシーケンスの3つのコードシーケンスは、20Bコードシーケンスの3つのコードシーケンスと共にマッピングされる。コードシーケンスの分割が、3つのより小さなコードシーケンスなど、かなり多数のサイズもしくは数もしくは形態で行うことができること、またはかかるコードシーケンスの、他のコードシーケンスとのマッピングが、単に例として本明細書で提供され、本発明の実施形態が、かかる例に限定されないことが、意図されている。
処理ブロック806において、1つまたは複数の待ち時間低減技術が、待ち時間を低減または最小化するために適用される。例えば、17B/20Bコードおよびそれらの多数のコードシーケンスのコマンドデコーディングおよびコードデコーディングは、図10にあるように、コードドメインにおいて並列に実行される。さらに、ランレングス要件が満たされることを保証するために、様々なプロセスが実行される808。これらのプロセスは、図4A、4B、5、6A、6Bおよび7に関連して論じられる。決定ブロック810において、5ビットの全体的な最大ランレングス要件が満たされているかどうかに関して、決定がなされる。満たされていない場合には、処理ブロック812において、(コードシーケンスのディジットをフリップすることなどによって)要件が満たされる。満たされている場合には、プロセスは決定ブロック814に進み、この決定ブロック814において、2ビットの最大ヘッダランレングス要件が満たされているかどうかに関して、決定がなされる。満たされていない場合には、処理ブロック816において、(コードシーケンスのディジットをフリップすることなどによって)要件が満たされる。満たされている場合には、プロセスは決定ブロック818に進み、この決定ブロック818において、3ビットの最大テールランレングス要件が満たされているかどうかに関して、決定がなされる。満たされていない場合には、処理ブロック820において、(コードシーケンスのディジットをフリップすることなどによって)要件が満たされる。満たされている場合には、全てのランレングス要件が満たされ、17B/20Bコードシーケンスが、ブロック822において提供される。
図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ビットをそれぞれ有する任意のさらなるコードシーケンス区画(例えば、第2のコードシーケンス、第3のコードシーケンス)は、バンク914(ビット5〜8を占める)などの固定されていないフィールドを有してもよい。各コマンド用のエンコーディングの注意深い選択によって、コードは、バンク値から独立して出力スペースに固定されたSubCMD912(ビット9〜13を占める)またはSubSubCMD916(ビット0〜3を占める)など、別のフィールドにコードを作成することができる。別の言い方をすれば、一実施形態において、コマンドデコーディングは、20ビットドメイン902において実行することができ、プリコーディングにおける待ち時間隠蔽に帰着する。
図10Aは、順次的な遷移コードデコーディングおよびコマンドデコーディング用の従来のプロセスを示す。図示のように、この従来のプロセスにおいて、コードデコーディングおよびコマンドデコーディングは、順次的に実行される。例えば、20Bにおけるコマンドが受信される1002。20B/16Bコードのコードデコーディングは、処理ブロック1004において実行される。これには、約2ナノ秒(ns)の時間がかかる。次に、コマンドデコーディングが、16Bドメインにおいて実行され、2nsの追加時間がかかる。最後に、コードおよびコマンドのデコーダされた情報1008が提供され、メモリコア1010に伝達されて別の1nsが追加され、合計5nsかかる。
図10Bは、並列の遷移コードデコーディングおよびコマンドデコーディング用のプロセスの実施形態を示す。一実施形態において、20Bドメインにおけるコードおよびコマンド(両方とも、デコーディング用の同じ論理段階を有する)の並列および同時デコーディングは、プリコーディングにおいて待ち時間隠蔽に備える。図示の実施形態において、プロセス全体は、3nsで実行されるが、これは、従来のプロセス(図10A)より2nsまたは40%速い。したがって、待ち時間を40%低減する。図示のように、20Bにおけるコマンドが受信される1052。次に、コマンドは、処理ブロック1054における20B/17Bコードのデコーディングと同時にまたは並列に、20Bドメインスペース1056においてデコードされる。このステップには、2nsかかる。ひとたびデコーディングが実行されると、デコーディング情報1058が収集され、メモリコア1060に伝達されるが、これには、追加の1nsの時間がかかり、したがって、並列コマンドおよびコードデコーディングを実行するために、合計3nsが必要である。一実施形態において、17B/20B遷移コーディングシステムを用いたこの並列デコーディングは、合計待ち時間を2ns低減し、速度を40%向上させる。時間トランザクション1062を用いて、従来のプロセス(図10A)の速度を、より速く、向上された、効率的なプロセスの実施形態(図10B)の速度と比較することができる。
図11は、本発明の実施形態を実行可能なコンピュータシステムの実例である。コンピュータシステム1100には、情報を通信するためのシステムバス1120と、情報を処理するための、バス1120に結合されたプロセッサ1110と、が含まれる。一実施形態によれば、プロセッサ1110は、多数のマイクロプロセッサの1つを用いて実現される。しかしながら、当業者は、他のプロセッサを用いてもよいことを理解されよう。
コンピュータシステム1100には、さらに、情報およびプロセッサ1110によって実行される命令を記憶するための、バス1120に結合されたランダムアクセスメモリシステム(RAM)または他のダイナミック記憶装置1125(本明細書では主メモリと呼ばれる)が含まれる。主メモリ1125はまた、プロセッサ1110による命令の実行中に、一時変数または他の中間情報を記憶するために用いてもよい。コンピュータシステム1100にはまた、プロセッサ1110によって用いられる静的情報および命令を記憶するための、バス1120に結合されたROMおよび/または他のスタティック記憶装置1126を含んでもよい。
磁気ディスクまたは光ディスクなどのデータ記憶装置1125およびその対応するドライブもまた、情報および命令を記憶するためにコンピュータシステム1100に結合してもよい。コンピュータシステム1100はまた、I/Oインタフェース1130を介して第2の入力/出力(I/O)バス1150に結合することができる。表示装置1124、入力装置(例えば、英数字入力装置1123および/またはカーソル制御装置1122)を含む複数のI/O装置を、I/Oバス1150に結合してもよい。通信装置1121は、外部データネットワークを介して他のコンピュータ(サーバまたはクライアント)にアクセスするためにある。通信装置1121には、モデム、ネットワークインタフェースカード、またはイーサネット(登録商標)、トークンリングもしくは他のタイプのネットワークに結合するために用いられる装置などの他の周知のインタフェース装置を含んでもよい。コンピュータシステム1100には、限定するわけではないが、ネットワークコンピュータ装置、携帯電話、携帯情報端末(PDA)等が含まれる。
コンピュータシステム1100は、クライアント/サーバネットワークシステムにおいて相互接続してもよい。ネットワークには、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、イントラネット、インターネット等を含んでもよい。本出願の他のところで述べるように、かなり多数のネットワーク装置をカスケードにして、ネットワーク内のネットワーク機構を形成するポートマルチプライヤと接続することができる。ネットワークを介してかなり多数の装置を接続してもよいと考えられる。装置は、本明細書で説明するプロトコルを含む多くの標準および非標準プロトコルを介して、ストリーミングメディアデータなどのデータストリームを、ネットワークシステムにおける他の装置に転送してもよい。
上記の記載において、説明を目的とし、本発明の完全な理解を提供するために、多数の特定の詳細を述べた。しかしながら、これらの特定の詳細のいくつかがなくても本発明を実施可能であることが、当業者には明白であろう。他の例では、周知の構造および装置が、ブロック図の形態で示される。図示のコンポーネント間に中間構造があってもよい。本明細書で説明または図示するコンポーネントは、図示も説明もされていない追加の入力部または出力部を有してもよい。
本発明の様々な実施形態には、様々なプロセスを含んでもよい。これらのプロセスは、ハードウェアコンポーネントによって実行してもよく、またはコンピュータプログラムもしくはマシン実行可能命令に具体化してもよく、これらのプログラムまたは命令を用いて、命令でプログラムされる汎用もしくは専用プロセッサまたは論理回路にプロセスを実行させてもよい。代替として、プロセスは、ハードウェアおよびソフトウェアの組み合わせによって実行してもよい。
ポートマルチプライヤ拡張機構の実施形態内でかまたはそれに関連して示されるものなど、本明細書全体にわたって説明される1つまたは複数のモジュール、コンポーネントまたは要素には、ハードウェア、ソフトウェアおよび/またはそれらの組み合わせを含んでもよい。モジュールがソフトウェアを含む場合には、ソフトウエアデータ、命令および/または構成は、マシン/電子機器/ハードウェアによる製品を介して提供してもよい。製品には、命令、データ等を提供する内容を有するマシンアクセス可能/可読媒体を含んでもよい。内容は、説明した様々な動作および実行を果たす電子機器、例えば、本明細書で説明するようなファイラ、ディスク、ディスクコントローラに帰着してもよい。
本発明の様々な実施形態の一部は、コンピュータプログラム製品として提供してもよく、このコンピュータプログラム製品には、コンピュータプログラム命令を自身に記憶したコンピュータ可読媒体を含んでもよく、これらのコンピュータプログラム命令は、本発明の実施形態に従ってプロセスを実行するようにコンピュータ(または他の電子機器)をプログラムするために用いてもよい。機械可読媒体には、限定するわけではないが、フロッピー(登録商標)ディスケット、光ディスク、コンパクトディスク読み出し専用メモリ(CD−ROM)、光磁気ディスク、ROM、ランダムアクセスメモリ(RAM)、消去可能プログラム可能読み出し専用メモリ(EPROM)、EEPROM、DRAM、SRAM、磁気もしくは光カード、フラッシュメモリ、または電子命令を記憶するのに適した他のタイプの媒体/機械可読媒体を含んでもよい。さらに、本発明はまた、コンピュータプログラム製品としてダウンロードしてもよく、この場合に、プログラムは、リモートコンピュータから、要求するコンピュータへ転送してもよい。
方法の多くは、それらの最も基本的な形態で説明されているが、しかし本発明の基本的な範囲から逸脱せずに、プロセスは、方法のいずれかに追加するかまたはそこから削除することができ、情報は、説明したメッセージのいずれかに追加するかまたはそこから削除することができる。多くのさらなる修正および適応をなし得ることが、当業者には明白であろう。特定の実施形態は、本発明を限定するためではなく、それを例示するために提供される。本発明の実施形態の範囲は、上記で提供した特定の例によって決定されるのではなく、添付の特許請求の範囲だけによって決定される。
要素「A」が、要素「B」に結合される、または要素「B」と結合されると言われている場合には、要素Aは、要素Bに直接結合しても、または例えば要素Cを介して間接的に結合してもよい。コンポーネント、機能、構造、プロセスまたは特徴Aが、コンポーネント、機能、構造、プロセスまたは特徴Bを「引き起こす」と、本明細書または特許請求の範囲が述べる場合には、それが意味することは、「A」が「B」の少なくとも1つの部分的な原因であるが、しかし「B」を引き起こす際に支援する少なくとも1つの他のコンポーネント、機能、構造、プロセスまたは特徴があるということである。本明細書が、コンポーネント、特徴、構造、プロセスまたは特徴を「含んでもよい」、「含み得る」または「含むことが可能である」ことを示す場合には、その特定のコンポーネント、機能、構造、プロセスまたは特徴は、含まれることを要求されない。本明細書または特許請求の範囲が、「ある(aまたはan)」要素を指す場合に、それは、説明される要素の1つだけがあることを意味しない。
実施形態は、本発明のインプリメンテーションまたは例である。本明細書において、「ある実施形態」、「一実施形態」、「いくつかの実施形態」または「他の実施形態」への言及は、その実施形態に関連して説明される特定の機能、構造または特性が、必ずしも全ての実施形態ではなく、少なくともいくつかの実施形態に含まれることを意味する。「ある実施形態」、「一実施形態」または「いくつかの実施形態」の様々な外観は、必ずしも全て、同じ実施形態を指しているわけではない。本発明の例示的な実施形態の前述の説明において、様々な機能が、本開示を簡素化するために、および様々な発明的態様の1つまたは複数の理解を支援するために、時には単一の実施形態、図、またはそれらの説明において一緒にグループ化されることを理解されたい。しかしながら、この開示方法は、特許請求される本発明が、各請求項ではっきりと列挙されるよりも多くの機能を要求する意図を反映すると解釈すべきではない。逆に、特許請求の範囲が示すように、発明的態様は、前述の単一の開示された実施形態の全ての機能より少ない。したがって、特許請求の範囲は、これによって、この説明へと明らかに組み入れられ、各請求項は、本発明の別個の実施形態として独立している。

Claims (20)

  1. 第1のコードブロックおよび第2のコードブロックを含む着信ストリームを受信することと、
    前記第1のコードブロックを第1の小さなコードブロックに分割し、前記第2のコードブロックを第2の小さなコードブロックに分割することと、
    1つまたは複数のシリアルリンクを通信用に用いるメモリをコーディングすることであって、コーディングが、前記第1のブロックの前記第1の小さなコードブロックおよび前記第2のブロックの前記第2の小さなコードブロックをコーディングすることを含み、前記第1および第2の小さなコードブロックの前記コーディングが、最大ランレングスが維持されるように実行されることと、
    を含むコーディング方法。
  2. 前記メモリの前記コーディングが、コマンドのコーディングと同時に実行され、前記コーディングが、エンコーディングまたはデコーディングを含み、前記コマンドのエンコーディングの選択が、コードデコーダを通さない前記コマンドのデコーディングを可能にする、請求項1に記載のコーディング方法。
  3. 前記第1の小さなコードブロックを前記第2の小さなコードブロックにマッピングすることをさらに含み、前記第1の小さなコードブロックが、第1の5ビットブロックおよび2つの第1の6ビットブロックを含む、請求項1に記載のコーディング方法。
  4. 前記第2の小さなコードブロックが、第1の6ビットブロックおよび2つの第1の7ビットブロックを含む、請求項3に記載のコーディング方法。
  5. 前記第1および第2の小さなコードブロックの前記コーディングが、待ち時間を最小化するために並列に実行される、請求項1に記載のコーディング方法。
  6. 前記ランレングスが、ランレングス要件を満たすことによって維持され、前記ランレングス要件が、最大の全体的ランレングス、最大ヘッダランレングス、および最大テールランレングスの1つまたは複数を含む、請求項1に記載のコーディング方法。
  7. 前記第1の小さなコードブロックを前記第2の小さなコードブロックに結合して、コーディングされたコードブロックを形成することをさらに含み、前記コーディングが、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、読み出し専用メモリ(ROM)、およびフラッシュメモリの1つまたは複数に適用される、請求項1に記載のコーディング方法。
  8. 第1のコードブロックおよび第2のコードブロックを含む着信ストリームを受信するコーディング回路を含むコーディングシステムであって、前記コーディング回路が、コーダ、すなわち、
    前記第1のコードブロックを第1の小さなコードブロックに分割し、
    前記第2のコードブロックを第2の小さなコードブロックに分割し、
    1つまたは複数のシリアルリンクを通信用に用いるメモリをコーディングするが、コーディングが、前記第1のコードブロックの前記第1の小さなコードブロックおよび前記第2のコードブロックの前記第2の小さなコードブロックをコーディングすることを含み、前記第1および第2のブロックの前記コーディングが、最大ランレングスが維持されるように実行される、コーダ
    を有するコーディングシステム。
  9. 前記メモリの前記コーディングが、コマンドのコーディングと同時に実行され、前記コーディングが、エンコーディングまたはデコーディングを含み、前記コマンドのエンコーディングの選択が、コードデコーダを通さない前記コマンドのデコーディングを可能にする、請求項8に記載のコーディングシステム。
  10. 前記コーダが、さらに、前記第1の小さなコードブロックを前記第2の小さなコードブロックにマッピングすることになり、前記第1の小さなコードブロックが、第1の5ビットブロックおよび2つの第1の6ビットブロックを含む、請求項8に記載のコーディングシステム。
  11. 前記第2の小さなコードブロックが、第1の6ビットブロックおよび2つの第1の7ビットブロックを含む、請求項10に記載のコーディングシステム。
  12. 前記第1および第2の小さなコードブロックの前記コーディングが、待ち時間を最小化するために並列に実行される、請求項8に記載のコーディングシステム。
  13. 前記ランレングスが、ランレングス要件を満たすことによって維持され、前記ランレングス要件が、最大の全体的ランレングス、最大ヘッダランレングス、および最大テールランレングスの1つまたは複数を含む、請求項8に記載のコーディングシステム。
  14. 前記コーダが、さらに、前記第1の小さなコードブロックを前記第2の小さなコードブロックに結合して、コーディングされたコードブロックを形成することになり、前記コーディングが、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、読み出し専用メモリ(ROM)、およびフラッシュメモリの1つまたは複数に適用される、請求項8に記載のコーディングシステム。
  15. コーダ、すなわち、
    第1のコードブロックおよび第2のコードブロックを含む着信ストリームを受信し、
    前記第1のコードブロックを第1の小さなコードブロックに分割し、
    前記第2のコードブロックを第2の小さなコードブロックに分割し、
    1つまたは複数のシリアルリンクを通信用に用いるメモリをコーディングするが、コーディングが、前記第1のコードブロックの前記第1の小さなコードブロックおよび前記第2のコードブロックの前記第2の小さなコードブロックをコーディングすることを含み、前記第1および第2のブロックの前記コーディングが、最大ランレングスが維持されるように実行される、コーダ
    を含むコーディング装置。
  16. 前記メモリの前記コーディングが、コマンドのコーディングと同時に実行され、前記コーディングが、エンコーディングまたはデコーディングを含み、前記コマンドのエンコーディングの選択が、コードデコーダを通さない前記コマンドのデコーディングを可能にする、請求項15に記載のコーディング装置。
  17. 前記コーダが、さらに、前記第1の小さなコードブロックを前記第2の小さなコードブロックにマッピングすることになり、前記第1のコードブロックが、第1の5ビットブロックおよび2つの第1の6ビットブロックを含む、請求項15に記載のコーディング装置。
  18. 前記第2の小さなコードブロックが、第1の6ビットブロックおよび2つの第1の7ビットブロックを含む、請求項17に記載のコーディング装置。
  19. 前記第1および第2のコードブロックの前記コーディングが、待ち時間を最小化するために並列に実行される、請求項15に記載のコーディング装置。
  20. 前記ランレングスが、ランレングス要件を満たすことによって維持され、前記ランレングス要件が、最大の全体的ランレングス、最大ヘッダランレングス、および最大テールランレングスの1つまたは複数を含む、請求項15に記載のコーディング装置。
JP2011534573A 2008-10-29 2009-09-30 高速シリアルリンクを用いるメモリシステム用のコーディングシステム Pending JP2012507935A (ja)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015032125A Division JP5875205B2 (ja) 2008-10-29 2015-02-20 高速シリアルリンクを用いるメモリシステム用のコーディングシステム

Publications (1)

Publication Number Publication Date
JP2012507935A true JP2012507935A (ja) 2012-03-29

Family

ID=41259832

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011534573A Pending JP2012507935A (ja) 2008-10-29 2009-09-30 高速シリアルリンクを用いるメモリシステム用のコーディングシステム
JP2015032125A Active JP5875205B2 (ja) 2008-10-29 2015-02-20 高速シリアルリンクを用いるメモリシステム用のコーディングシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015032125A Active JP5875205B2 (ja) 2008-10-29 2015-02-20 高速シリアルリンクを用いるメモリシステム用のコーディングシステム

Country Status (7)

Country Link
US (2) US7777652B2 (ja)
EP (1) EP2359481A2 (ja)
JP (2) JP2012507935A (ja)
KR (1) KR101483535B1 (ja)
CN (1) CN102484482B (ja)
TW (1) TWI543543B (ja)
WO (1) WO2010053638A2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5910056A (ja) * 1982-06-30 1984-01-19 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン コ−ド生成方法
JPH03171826A (ja) * 1989-07-17 1991-07-25 Digital Equip Corp <Dec> デジタル信号用の改良したデータと順方向誤り制御の符号化法
JP2001244817A (ja) * 2000-02-28 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> 符号化装置
JP2001308711A (ja) * 2000-04-20 2001-11-02 Nippon Telegr & Teleph Corp <Ntt> 制御情報の符号化方法及び復号化方法と制御情報の送信器及び受信器
JP2002261619A (ja) * 2001-02-28 2002-09-13 Toshiba Corp データ符号化方法、データ符号化装置及び記憶媒体
JP2002313034A (ja) * 2001-04-16 2002-10-25 Ricoh Co Ltd デジタル復調装置
JP2006074075A (ja) * 2004-08-31 2006-03-16 Canon Inc 差動シリアル・ディジタル出力a/d変換手段および撮像装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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
JPH05300377A (ja) * 1992-04-20 1993-11-12 Fujitsu Ltd 画像データ変換処理装置
US5351047A (en) * 1992-09-21 1994-09-27 Laboratory Automation, Inc. Data decoding method and apparatus
JP3617074B2 (ja) * 1994-06-30 2005-02-02 ソニー株式会社 データ変調装置およびデータ復調装置
SG87129A1 (en) * 1999-07-12 2002-03-19 Ibm Data encoding systems
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
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
WO2007059645A1 (en) * 2005-11-22 2007-05-31 Intel Corporation Signal transition feature based coding for serial link
US7970215B2 (en) * 2007-03-30 2011-06-28 Intel Corporation Automatic generation of compact code tables

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5910056A (ja) * 1982-06-30 1984-01-19 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン コ−ド生成方法
JPH03171826A (ja) * 1989-07-17 1991-07-25 Digital Equip Corp <Dec> デジタル信号用の改良したデータと順方向誤り制御の符号化法
JP2001244817A (ja) * 2000-02-28 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> 符号化装置
JP2001308711A (ja) * 2000-04-20 2001-11-02 Nippon Telegr & Teleph Corp <Ntt> 制御情報の符号化方法及び復号化方法と制御情報の送信器及び受信器
JP2002261619A (ja) * 2001-02-28 2002-09-13 Toshiba Corp データ符号化方法、データ符号化装置及び記憶媒体
JP2002313034A (ja) * 2001-04-16 2002-10-25 Ricoh Co Ltd デジタル復調装置
JP2006074075A (ja) * 2004-08-31 2006-03-16 Canon Inc 差動シリアル・ディジタル出力a/d変換手段および撮像装置

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
CN102484482B (zh) 2015-12-02
JP2015136136A (ja) 2015-07-27
TW201018097A (en) 2010-05-01
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
JP5875205B2 (ja) 高速シリアルリンクを用いるメモリシステム用のコーディングシステム
US7409622B1 (en) System and method for reverse error correction coding
US20180203797A1 (en) Compression and Decompression of Data at High Speed in Solid State Storage
US7965207B2 (en) Variable length integer encoding system and method
JPS58119273A (ja) 符号器
US8533577B1 (en) Universal parity encoder
JPH02203476A (ja) コード変換器、記録媒体、及びデータ変換方法
KR20120115244A (ko) 데이터 압축 동안의 대안적 인코딩 솔루션들 평가
US7519893B2 (en) Binary data encoding/decoding for parallel bus
US9088297B2 (en) High throughput decoding of variable length data symbols
US7339500B2 (en) Encoding method and decoding method
JP2006209953A (ja) ショート・ブロック・エンコーダを用いたデータ変調方式
US7098818B1 (en) Encoder and decoder using run-length-limited code
US7796059B2 (en) Fast approximate dynamic Huffman coding with periodic regeneration and precomputing
US7696908B2 (en) Techniques for reducing error propagation using modulation codes having a variable span
US20030123173A1 (en) Method and apparatus for encoding data to guarantee isolated transitions in a magnetic recording system
KR20080106476A (ko) 비-이진 평형 부호들을 발생시키는 방법 및 장치
TWI384377B (zh) 資料編碼及解碼方法
WO2021046756A1 (zh) 一种二维方形约束的编译码方法及装置
US8327027B2 (en) Data compression system and method
CN102543133B (zh) 提高bch纠错速度的方法及其固态硬盘
JP2794719B2 (ja) 符号変換装置
JP2022095015A (ja) 受信したデータを処理する装置
WO2020124699A1 (zh) 数据编码的方法
JP4666235B2 (ja) 符号化装置及び方法、並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140311

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20140320

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140527

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140815

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140922

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141021