JP2017503377A - 瞬時電流と信号遷移の両方を制限するためにデータ反転を容易にするためのデバイスおよび方法 - Google Patents

瞬時電流と信号遷移の両方を制限するためにデータ反転を容易にするためのデバイスおよび方法 Download PDF

Info

Publication number
JP2017503377A
JP2017503377A JP2016532074A JP2016532074A JP2017503377A JP 2017503377 A JP2017503377 A JP 2017503377A JP 2016532074 A JP2016532074 A JP 2016532074A JP 2016532074 A JP2016532074 A JP 2016532074A JP 2017503377 A JP2017503377 A JP 2017503377A
Authority
JP
Japan
Prior art keywords
data
data bits
channel
encoding
encoding scheme
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
JP2016532074A
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 JP2017503377A publication Critical patent/JP2017503377A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0008Arrangements for reducing power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0075Transmission of coding parameters to receiver

Abstract

電子デバイスは、瞬時電流と信号遷移の両方を同時に制限するためにデータ符号化を容易にするように適合される。一例によれば、電子デバイスは、データバス上で送信すべきデータビットのグループに対して第1の符号化方式を実行してもよい。第1の符号化方式は、各データチャネルに関するデータビットのグループ内の遷移の数に基づいて実行されてもよい。データビットのグループに対して第2の符号化方式が実行されてもよい。第2の符号化方式は、所定の状態(たとえば、1または0)を示す各データチャネルに関するデータビットのグループ内のデータビットの数に基づいて実行されてもよい。データビットのグループに対して両方の符号化方式が実行された後、符号化されたデータビットはデータバスのそれぞれのデータチャネルを介して送信されてもよい。他の態様、実施形態、および特徴も含まれる。

Description

関連出願の相互参照
本出願は、内容の全体が参照によって本明細書に組み込まれる、2013年11月21日に米国特許商標庁に出願された、米国非仮特許出願第14/086,858号の優先権および利益を主張する。
以下で説明する技術は、一般にはデータバスを含む電子デバイスに関し、より詳細には、データビットをデータバスを介して送信できるように符号化し、データバスを介して送信されたデータビットを復号するための方法およびデバイスに関する。
相互配線を介したデータ送信は、いくつかの形態をとる場合がある。構成要素間のデータ送信を容易にするための構成の一例はデータバスの使用であり、その場合、送信側構成要素は、データビットとも呼ばれるデータ信号を互いに平行な送信チャネルのグループを介して受信側構成要素に送信する。データビットは一般に、データビットの振幅およびタイミングを変化させることがあるシンボル間干渉(ISI)、クロストーク、および同時スイッチングノイズ(SSN)を受ける。データビットはしばしば、ISI、クロストーク、および/またはSSNの影響を低減させるために、データ符号化の様々な技法を使用して符号化される場合がある。データ符号化の1つの特定の形態としてデータバス反転(DBI)がある。
以下に、説明する技術を基本的に理解できるように、本開示のいくつかの態様を要約する。この概要は、本開示の企図する全特徴の広い全体像ではなく、本開示の全態様の鍵となる要素または重要な要素を特定する意図も、本開示の任意または全部の態様の範囲を視覚的に示す意図もない。その唯一の目的は、後で提示するより詳細な説明の導入として、本開示の1つまたは複数の態様のいくつかの概念を要約の形で提示することである。
本開示の様々な例および実装形態は、データバスの各データチャネル上で複数の符号化技法を利用してデータ符号化を容易にする。本開示の少なくとも1つの態様によれば、電子デバイスは、通信可能および/または動作可能に結合されたデータバスインターフェースと処理回路とを有するエンコーダを含んでもよい。データバスインターフェースは、データビットの送信を容易にするようにデータバスに結合することが可能である。処理回路は、データバスインターフェースを介してデータバス上で送信すべきデータビットのグループに対して第1の符号化方式を実行するように適合されてもよく、第1の符号化方式は、データビットのグループ内の遷移の数に基づいて実行される。処理回路は、所定の状態を示すデータビットのグループ内のデータビットの数に基づいてデータビットのグループに対して第2の符号化方式を実行するようにさらに適合されてもよい。処理回路は、第1の符号化方式によってどのデータビットが符号化されるかを示すように複数の第1の符号化フラグをセットし、第2の符号化方式によってどのデータビットが符号化されるかを示すように複数の第2の符号化フラグをセットするように適合されてもよい。
さらなる態様は、電子デバイス上で動作可能な方法および/またはそのような方法を実行するための手段を含む電子デバイスを提供する。そのような方法の1つまたは複数の例は、データバスを介して送信すべきデータビットのグループに対して第1の符号化方式を実行することを含んでもよい。第1の符号化方式は、データビットのグループ内の遷移の数に基づいて実行されてもよい。データビットのグループに対して第2の符号化方式が実行されてもよい。第2の符号化方式は、所定の状態を示すデータビットのグループ内のデータビットの数に基づいて実行されてもよい。さらに、第1の符号化方式によってどのデータビットが符号化されるかを示すための第1の符号化フラグがセットされてもよく、第2の符号化方式によってどのデータビットが符号化されるかを示すための第2の符号化フラグがセットされてもよい。
またさらなる態様は、電子デバイスなどの処理回路上で動作可能なプログラミングを含むプロセッサ可読記憶媒体を含む。1つまたは複数の例によれば、そのようなプログラミングは、処理回路に、データバスを介して送信すべきデータビットのグループに対して第1の符号化方式を使用させるように適合されてもよい。第1の符号化方式は、データビットのグループ内の遷移の数に基づいて実行されてもよい。プログラミングは、処理回路に、データビットのグループに対して第2の符号化方式を使用させるようにさらに適合されてもよい。第2の符号化方式は、所定の状態を示すデータビットのグループ内のデータビットの数に基づいて実行されてもよい。
本開示の追加の態様は、少なくとも1つのエンコーダを含む電子デバイスを提供する。そのようなエンコーダは、遷移検出器と、状態検出器と、インバータとを含んでもよい。遷移検出器は、所定数のサイクルにおけるデータバスの複数のデータチャネル上の遷移の数を求めるように適合されてもよい。状態検出器は、所定数のサイクルにおける複数のデータチャネルのうちの各データチャネル上の所定の状態にセットされたサイクルの数を求めるように適合されてもよい。インバータは、データチャネル上の遷移の数が遷移しきい値を超えていると判定されたときにデータチャネル上の所定数のサイクルを1サイクルおきに反転させるように適合されてもよい。インバータは、データチャネル上の所定の状態にセットされたサイクルの数が状態しきい値を超えていると判定されたときにデータチャネル上の所定数のサイクルの各サイクルを反転させるようにさらに適合されてもよい。
さらなる態様は、電子デバイス上で動作可能な方法および/またはそのような方法を実行するための手段を含む電子デバイスを提供する。そのような方法の1つまたは複数の例は、所定数のサイクルにおけるデータバスの複数のデータチャネル上の遷移の数を求めることを含んでもよい。データチャネル上の遷移の数が遷移しきい値を超えていると判定されたときは、データチャネルが1サイクルおきに反転されてもよい。各データチャネルに関連するそれぞれの遷移反転符号化フラグは、関連するデータチャネルが1サイクルおきに反転されているかどうかを示すようにセットされてもよい。所定数のサイクルにおける複数のデータチャネルのうちの各データチャネル上の所定の状態にセットされたサイクルの数が求められてもよい。データチャネル上の所定の状態にセットされたサイクルの数が状態しきい値を超えたときに、データチャネルのサイクルが反転されてもよい。各データチャネルに関連するそれぞれの状態反転符号化フラグが、関連するデータチャネルのサイクルが反転されているかどうかを示すようにセットされてもよい。
またさらなる態様は、電子デバイスなどの処理回路上で動作可能なプログラミングを含むプロセッサ可読記憶媒体を含む。1つまたは複数の例によれば、そのようなプログラミングは、処理回路に、所定数のサイクルにおけるデータバスの複数のデータチャネル上の遷移の数を求めることと、データチャネル上の遷移の数が遷移しきい値を超えていると判定されたときにデータチャネルを1サイクルおきに反転させることと、関連するデータチャネルが1サイクルおきに反転されているかどうかを示すように各データチャネルに関連するそれぞれの遷移反転符号化フラグをセットすることとを行わせるように適合されてもよい。プログラミングは、所定数のサイクルにおける複数のデータチャネルの各データチャネル上の所定の状態にセットされたサイクルの数を求めることと、データチャネル上の所定の状態にセットされたサイクルの数が状態しきい値を超えているときにデータチャネルのサイクルを反転させることと、関連するデータチャネルのサイクルが反転されるかどうかを示すように各データチャネルに関連するそれぞれの状態反転符号化フラグをセットすることとを行わせるように、さらに適合されてもよい。
本開示の様々な例および実装形態はさらに、データバスの各データチャネル上で複数の符号化技法を利用して符号化されたデータの復号を容易にする。本開示の少なくとも1つの態様によれば、電子デバイスは、通信可能および/または動作可能に結合されたデータバスインターフェースを有するデコーダを含んでもよい。データバスインターフェースは、データビットの受信を容易にするようにデータバスに結合することが可能である。インバータは、データバスインターフェースを介して複数のデータチャネル上でデータビットのグループを受信するように適合されてもよい。インバータは、第1の符号化方式に関するデータビットのグループを復号し、第2の符号化方式に関するデータビットのグループを復号してもよい。
さらなる態様は、電子デバイス上で動作可能な方法および/またはそのような方法を実行するための手段を含む電子デバイスを提供する。そのような方法の1つまたは複数の例は、データバスの複数のデータチャネル上でデータビットのグループを受信することを含んでもよい。データビットのグループは、第1の符号化方式に関して復号され、次いで第2の符号化方式に関して復号されてもよい。
またさらなる態様は、電子デバイスなどの処理回路上で動作可能なプログラミングを含むプロセッサ可読記憶媒体を含む。1つまたは複数の例によれば、そのようなプログラミングは、処理回路に、受信されたデータビットのグループを第1の符号化方式に関して復号させ、次いでデータビットのグループを第2の符号化方式に関して復号させるように適合されてもよい。
本開示に関連する他の態様、特徴、および実施形態は、当業者が添付の図面とともに以下の説明を検討したときに明らかになろう。
本開示の1つまたは複数の態様が適用されてもよいシステム環境のブロック図である。 データバスの様々なチャネルを介して送信されるデータビットの例を示すブロック図である。 図2のデータビットに適用されるDBI AC符号化の例を示すブロック図である。 図2のデータビットに適用されるDBI DC符号化の例を示すブロック図である。 少なくとも1つの例による電子デバイスおよびデコーダの選択構成要素を示すブロック図である。 本開示の少なくとも1つの例によるデータ符号化の例を示すブロック図である。 符号化フラグがデータビットのグループの終了位置に付加される追加のデータビットとして元のデータチャネル上で送信される、少なくとも1つの例によるデータ符号化の別の例を示すブロック図である。 符号化フラグの一方のセットが追加のチャネル上で送信され、符号化フラグの他方のセットがデータビットのグループの終了位置に付加される追加のデータビットとして送信される少なくとも1つの例によるデータ符号化の別の例を示すブロック図である。 符号化フラグが追加のチャネル上で送信され、追加のチャネルの複数の連続するサイクルがそれぞれのデータチャネルに関連付けられる、少なくとも1つの例によるデータ符号化の別の例を示すブロック図である。 遷移符号化フラグと状態符号化フラグが同じ追加のチャネル上で送信される、少なくとも1つの例によるデータ符号化の別の例を示すブロック図である。 少なくとも1つの例による電子デバイス上で動作可能な方法を示すフロー図である。 少なくとも1つの実装形態による遷移の数に基づいて図11の第1の符号化方式を実行するためのプロセスの例を示すフロー図である。 少なくとも1つの実装形態による、特定の状態を有するサイクルの数に基づいて図11の第2の符号化方式を実行するためのプロセスの例を示すフロー図である。 少なくとも1つの例による電子デバイスの選択構成要素を示すブロック図である。 少なくとも1つの例による電子デバイス上で動作可能な復号方法を示すフロー図である。
添付の図面に関連して下記に記載される説明は、様々な構成の説明として意図されており、本明細書に記載される概念および特徴が実践される場合がある唯一の構成を表すように意図されていない。以下の説明は、種々の概念を完全に理解できるように、具体的な細部を含む。しかしながら、これらの概念がこれらの具体的な細部を用いることなく実践されてもよいことは、当業者には明らかであろう。場合によっては、説明される概念および特徴を曖昧にするのを避けるために、周知の回路、構造、技法および構成要素がブロック図の形で示される。
図1を参照すると、本開示の1つまたは複数の態様が適用されてもよいシステム環境の一例を示すブロック図が示されている。システム100は、並列データバス106によって互いに通信可能に結合された第1の電子デバイス102と第2の電子デバイス104とを含む。第1の電子デバイス102は、トランスミッタ(または送信デバイス)として示されており、エンコーダ110を有し、符号化されたデータビットをデータバス106を介して第1の電子デバイス102から第2の電子デバイス104に送信するように適合された送信ユニット108を含む。したがって、第2の電子デバイス104は、符号化されたデータビットを受信して復号するためのデコーダ114を有するレシーバユニット112を含む。場合によっては、データバス106は単方向バスであってもよい。他の例では、データバス106は双方向バスであってもよく、その場合、第2の電子デバイス104は、データビットをデータバス106を介して第1の電子デバイス102のレシーバユニット118に送信するように適合された送信ユニット116を含んでもよい。
第1および第2の電子デバイス102、104は、シングルエンドシグナリングを使用して通信することができる任意のデバイスであってもよい。様々な例では、第1および第2の電子デバイス102、104はコンピュータシステム内の構成要素であってもよい。たとえば、いくつかの実施形態では、電子デバイス102は処理ユニットであってもよく、第2の電子デバイス104はメモリモジュールであってもよく、データバス106はシステムバスであってもよい。少なくとも1つの例では、プロセッサのメモリコントローラインターフェース(たとえば、物理メモリインターフェース回路PHY)およびメモリモジュールは、書込み動作および読取り動作を実行するためにそれぞれの送信ユニットおよびレシーバユニットを含んでもよい。プロセッサは、中央処理ユニット(CPU)、コプロセッサ、演算処理装置、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)などの、任意の適切な種類の処理ユニットであってもよい。メモリモジュールは、任意の適切な種類のメモリであってもよい。いくつかの実施形態では、第2の電子デバイス104は、ブリッジコントローラ、記憶デバイス(たとえば、ハードドライブ、オプティカルドライブ、フラッシュドライブ、ストレージアレイなど)、ネットワークインターフェースデバイス(たとえば、ローカルまたは広域ネットワークに対して)、ユーザインターフェースデバイス(たとえば、ディスプレイデバイス、サウンドデバイス、プリンタ)などの、別の種類のデバイスであってもよい。場合によっては、第1および第2の電子デバイス102、104は、処理ユニット内の別個のコアまたはシステム内の別個の処理ユニットであってもよい。したがって、少なくとも1つの例では、システム100は通信ネットワークであってもよく、第1および第2の電子デバイス102、104は、ルータ、スイッチ、エンドデバイスなどであってもよい。したがって、一般に、第1および第2の電子デバイス102、104は、データバス106を介してデータビットの送信および/または受信を行うように適合された任意の適切なデバイスであってもよい。
データバス106は、チャネル108と呼ばれることもあるほぼ互いに平行な導電性トレースまたはラインを含んでもよく、これらのチャネル108は、各端部で電子デバイス102および104内のそれぞれのピンに結合されてもよい。データバス106のチャネル108の数は、様々な実施形態に応じて異なる場合がある。単に例として、データバス106は、データビットと並列して制御信号を送信するために4個、8個、16個、32個、64個、72個などのデータチャネル108ならびに追加のチャネル108を含んでもよい。たとえば、データバス106は、72個のデータチャネルと8個の制御チャネルで合計80個のチャネル108を有してもよい。データバスはさらに、付随するクロッキングトポロジーをサポートしてもよい。
チャネル108を介して送信されるデータビットは、1および0、または高電圧および低電圧を含むバイナリデータビットである。図2は、データバス106の様々なチャネルを介して送信されるデータビットの例を示すブロック図200である。図示のように、各行は、別個のデータチャネルを表し、各チャネル上で8個のデータビットまたはサイクルが送信されるように示されている。単に図を見やすくするように、奇数番号のサイクルは陰影を付けられている。
データビットは、データバス106を介して送信されるときに、通常、データビットの振幅およびタイミングを変化させることがあるシンボル間干渉(ISI)、クロストーク、および同時スイッチングノイズ(SSN)を受ける。データビットはしばしば、ISI、クロストーク、および/またはSSNの影響を低減させるために、データ符号化の様々な技法を使用して符号化される場合がある。データ符号化の1つの特定の形態は、データバス反転(DBI)と呼ばれることも多い。
データバス反転は、回路を使用して、送信すべきビット間の関係を調べ、送信の前にビットのいくつかまたはすべてを反転させることが有利であるかどうかを決定する機能である。ビットを反転させる場合、ビットを反転させることを示すように追加の信号もセットされる。この追加の信号は、データバス反転(DBI)フラグまたは符号化フラグと呼ばれることも多い。データのどのセットが反転されたかを受信側回路に示すために、DBIフラグを他のビットと並列して送信できるように特別なチャネルを使用することが可能である。レシーバは、DBIフラグを使用して入来データをその元の状態に戻す。
概して、DBI符号化に使用される2種類のデータバス反転技法がある。第1の技法は、当業者にはDBI ACまたは最少遷移と呼ばれることがあり、AC電力の向上、クロストークによる問題の軽減などのためにデータチャネル上の遷移の数を減らす(たとえば、0から1に、または1から0に変更する)のに使用される。図3は、従来のDBI AC符号化の一例を示すブロック図である。左側に図2の生データを示し、右側に得られる符号化データを示す。DBI AC符号化は一般に、同時遷移の数を減らすのに使用される。生データには、データバス106のすべての8個のチャネル上の8サイクルにおける合計で34個の遷移がある。図示のように、デバイスは、半分よりも多くのデータチャネル上で送信されることが予定されたデータが、あるサイクルから次のサイクルへの遷移を有すると判定すると、すべてのデータチャネル上で次のサイクルを反転させることができる。たとえば、サイクル2からサイクル3では、8個のデータチャネルのうちの7個が、1から0または0から1への遷移を有する。したがって、デバイスは、サイクル3を反転させることができ、それによって、8個のデータチャネルのうちの1個のみが遷移を有する。さらに、図3においてチャネル9として識別されたDBI制御チャネル上のサイクル3においてDBIフラグがセットされる。この例では、データバス106上で送信されるデータにおける遷移の数が34個から25個に減るが、データバス106上で送信される1(たとえば、論理高信号)の数は31個から32個に増える。
データバス反転のための第2の技法は、DBI DC、最少1または最少0と呼ばれることがあり、特定の状態のデータビットの数を減らす(たとえば、1の数または0の数を減らす)のに使用される。図4は、従来のDBI DC符号化の一例を示すブロック図である。この場合も、左側の図に図2の生データを示し、右側の図に得られる符号化データを示す。DBI DC符号化は一般に、特定の状態を有するデータビットの数を減らすのに使用される。たとえば、この例では、DBI DCは、データバス106上で送信される1(または論理高信号)の数を減らすのに使用される。図示のように、デバイスは、半分よりも多くのデータチャネルが所与のサイクル上で論理高信号(1)を有すると判定したときに、すべてのデータチャネルについてサイクルを反転させることができる。たとえば、生データのサイクル1は、8個のデータチャネルのうちの5個のデータチャネル上で論理高信号(1)を有する。したがって、デバイスは、8個のデータチャネルのうちの3個のデータチャネルのみが論理高信号(1)を送信するように各データチャネル上でサイクル1を反転させることができる。さらに、図4においてチャネル9として識別されたDBI制御チャネル上のサイクル1においてDBIフラグがセットされる。この例では、データバス106上で送信される1(たとえば、論理高信号)の数が31個から22個に減らされる。この例では、遷移の数も34個から28個に減少する。ただし、この例はこの技法に典型的なものではない。一般に、この技法では、遷移の数が増える。
これらの前述のDBI技法は概して、ある態様を最適化することができるが、他の態様が犠牲になる。たとえば、遷移の数が減ると一般に、1(たとえば、論理高信号)の数が増える。同様に、1(たとえば、論理高信号)の数が減ると一般に、遷移の数が増える。DBI技法では、遷移の数と、特定の状態を有するサイクルの数(たとえば、1または0の数)の両方を最適化することはできない。
本開示の少なくとも1つの態様によれば、電子システムは、遷移の数と、特定の状態(たとえば、1または0のいずれか)を有するビットの数を減らすのを容易にすることができるデータ符号化技法を使用するように適合された1つまたは複数の電子デバイスを含む。図5を参照すると、本開示の少なくとも1つの例による、図1における第1および第2の電子デバイス102、104などの、電子デバイス500の選択構成要素を示すブロック図が示されている。電子デバイス500の送信ユニット502は、データバス506の複数のチャネルを介してデータビットを送信するように適合されたエンコーダ504を含む。
エンコーダ504は概して、データビットにおける遷移の数に基づいて複数のデータビットに対して第1の符号化方式を実行し、所定の状態(たとえば、1または0)を有するデータビットの数に基づいて同じ複数のデータビットに対して第2の符号化方式を実行するように適合された回路および/またはプログラミングを含む。少なくとも1つの例によれば、エンコーダ504は、データバスインターフェース508によってデータバス506の複数のデータチャネルに結合されてもよく、データバスインターフェース508および記憶媒体512と電気的に通信するように結合または配置された処理回路510を含んでもよい。
処理回路510は、データの取得、処理、および/または送信を行い、データのアクセスおよび記憶を制御し、コマンドを発行し、他の所望の動作を制御するように構成される。処理回路510は、少なくとも1つの例において、適切な媒体によって与えられる所望のプログラミングを実装するように適合された回路を含んでもよい。場合によっては、処理回路510は、プログラミングを実装することによって、あるいはプログラミングを実装することなく、所望の機能を実行するように適合された回路を含んでもよい。一例として、処理回路510は、1つもしくは複数のプロセッサ、1つもしくは複数のコントローラ、ならびに/あるいは実行可能なプログラミングの実行および/または所望の機能の実行用に構成されたその他の構造として実装されてもよい。処理回路510の例には、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理構成要素、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを含めてもよい。汎用プロセッサは、マイクロプロセッサ、および任意の通常のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンを含んでもよい。処理回路510はまた、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、ASICとマイクロプロセッサ、または任意のその他のいくつかの様々な構成などのコンピューティング構成要素の組合せとして実装されてもよい。処理回路510のこれらの例は説明のためのものであり、本開示の範囲内の他の好適な構成も企図される。
処理回路510は、記憶媒体512に記憶されてもよいプログラミングの実行を含めて処理するように適合される。本明細書で使用するように、「プログラミング」という用語は、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを、限定することなく含むように、広く解釈されるべきである。
場合によっては、処理回路510は、遷移検出器514と、状態検出器516と、インバータ518とを含んでもよい。遷移検出器514は、遷移がいくつ生じるかを判定するようにデータビットのグループ(たとえば、共通のデータチャネル上で送信できるように準備された所定数の連続するデータビット)を評価するように適合された回路および/またはプログラミング(たとえば、記憶媒体512上に記憶された遷移検出動作520)を含んでもよい。状態検出器516は、いくつのデータビットが所定の状態(たとえば、1または0)を示すかを判定するように、同じデータビットのグループを評価するように適合された回路および/またはプログラミング(たとえば、記憶媒体512上に記憶された状態検出動作522)を含んでもよい。さらに、インバータ518は、遷移の数が遷移しきい値を超えていると遷移検出器514によって判定されたときにデータビットのグループ内のデータビットの少なくともいくつかを反転させ、所定の状態を示すデータビットの数が状態しきい値を超えていると状態検出器516によって判定されたときにデータビットのグループを反転させるように適合された回路および/またはプログラミング(たとえば、記憶媒体512上に記憶された反転動作524)を含んでもよい。インバータ518は、データビットのグループが遷移が実現されるように反転されているかどうかを示す遷移フラグ(たとえば、遷移DBIフラグまたは遷移符号化フラグ)およびデータビットのグループが1または0が得られるように反転されているかどうかを示す状態フラグ(たとえば、状態DBIフラグまたは状態符号化フラグ)をさらに生成することができる。
記憶媒体512は、プログラミング、電子的なデータ、データベース、またはその他のデジタル情報を記憶するための、1つまたは複数のプロセッサ可読デバイスを表す場合がある。記憶媒体512は、プログラミングを実行するときに処理回路510によって操作されるデータを記憶するために使用されてもよい。記憶媒体512は、可搬型または固定式記憶デバイスと、光記憶デバイスと、プログラミングの記憶、収容、および/または搬送が可能な様々なその他の媒体とを含む、処理回路510によってアクセスすることが可能な任意の利用可能な媒体であってもよい。限定ではなく例として、記憶媒体512は、磁気記憶デバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストライプ)、光記憶媒体(たとえば、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、キードライブ)、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、取外し可能なディスク、および/またはプログラミングを記憶するためのその他の媒体、ならびにそれらの任意の組合せなどのプロセッサ可読記憶媒体を含んでもよい。
記憶媒体512は、処理回路510がその記憶媒体512から情報を読み取り、その記憶媒体に情報を書き込むことができるように処理回路510に結合されてもよい。すなわち、記憶媒体512は、少なくとも処理回路510によってアクセス可能であるように処理回路510に結合することが可能であり、記憶媒体512が処理回路510と一体である例および/または記憶媒体512が処理回路510と分離している例を含む。
記憶媒体512によって記憶されているプログラミングは、処理回路510によって実行されたときに、処理回路510に、本明細書で説明する様々な機能および/または処理ステップのうちの1つまたは複数を実行させる。たとえば、記憶媒体512は、遷移検出動作520、状態検出動作522、および反転動作524を含んでもよい。したがって、本開示の1つまたは複数の態様によれば、処理回路510は、本明細書に記載の電子デバイス(たとえば、第1の電子デバイス102、第2の電子デバイス104、電子デバイス500)のいずれかまたはすべてのためのプロセス、機能、ステップおよび/またはルーチンのうちのいずれかまたはすべてを(記憶媒体512と連携して)実行するように適合される。処理回路510に関係して本明細書で使用する「適合される」という用語は、処理回路510が、(記憶媒体512と連携して)本明細書に記載する様々な特徴による特定のプロセス、機能、ステップおよび/またはルーチンを実行するように構成されること、使用されること、実装されること、および/またはプログラムされることのうちの1つまたは複数を行うことを指す場合がある。
動作時には、エンコーダ504は、遷移反転符号化を使用することによって遷移の数を減らし、状態反転符号化を使用することによって特定の状態(たとえば、1または0)を有するビットの数を減らすのを容易にすることのできるデータ符号化技法を使用するように適合される。一例では、エンコーダ504は、各チャネルに対して遷移反転符号化を実行し、次に各チャネルに対して状態反転符号化を実行することができる。図6は、そのような例を示すブロック図である。左側に図2における生データが示されている。中央に、遷移反転(TI)符号化後のデータビットのグループを示し、右側に、状態反転符号化に続く符号化されたデータビットのグループを示している。
上述のように、エンコーダ504(たとえば、遷移検出器514)は最初に、所定数のサイクルを含め、いくつのデータサイクルがデータビットのグループに関する各データチャネル上の遷移を表すかを判定することができる。この例では、所定数のサイクルは8サイクルまたは8個のデータビットとして示されている。ただし、特定の数は必要に応じて変更されてもよい。所定数のサイクルにおける遷移の数が全サイクルの数の2分の1よりも多い(たとえば、8サイクルに対して遷移が4個よりも多い)と判定された場合、エンコーダ504(たとえば、インバータ518)は、そのデータチャネルについてデータビットのグループにおいてデータビットを1ビットおきに反転させることができる。
より具体的には、各データチャネル上のデータビットは、8サイクルにおける遷移の数を求めるように評価される。図示の例では、第1のデータチャネル(チャネル1)は、8サイクルにおける5個の遷移を示している。これは4(すなわち、サイクルの数の半分)よりも大きいので、エンコーダ504は、データチャネル(チャネル1)上で1サイクルおきに反転させることができる。この例では、ビット2、4、6、および8が反転される。ただし、他の例ではビット1、3、5、および7を反転してもよい。図示のようにデータビットを1ビットおきに反転させることによって、データチャネル(チャネル1)は、チャネル1の中間列に示すように2個の遷移のみを有する。エンコーダ504(たとえば、インバータ518)は、第1のデータチャネル上で遷移が生じていることを示すために、符号化フラグ(またはTI符号化フラグ)を送信されるようにセットするように適合される。この例では、TI符号化フラグは、フラグチャネルの第1のビット上にセットされる(たとえば、チャネル9上の第1のビットは、1または論理高信号にセットされる)。この例では、フラグチャネル(チャネル9)のビット数は特定のデータチャネルに相当する。
エンコーダ504は、残りのデータチャネル(たとえば、チャネル2〜8)の各々を8ビットグループにおける遷移に関してさらに評価する。この例では、チャネル3、4、および8も、チャネル1と同様に部分的に反転される(たとえば、データビットが1ビットおきに反転される)。さらに、フラグチャネル(チャネル9)の対応するビット3、4、および8もTI符号化フラグを送信するようにセットされる。図6の中間列に示すように、この第1のステップの結果として、データビットのグループにおける遷移の数がデータビットの元のグループにおける34から中間列における符号化されたデータビットのグループにおける26に減少する。
遷移反転符号化が完了すると、エンコーダ504(たとえば、状態検出器516)は、いくつのデータビットがあらかじめ定義された状態(たとえば、1または0)を示すかを判定するように遷移反転符号化の結果としての各データチャネル上のデータビットを評価することができる。この例では、エンコーダ504は、符号化されたデータビットのグループにおいて1(たとえば、論理高信号)がいくつ生じているかを判定するように各データチャネルを評価することができる。各データチャネルに関する符号化されたデータビットにおける1の数が全サイクル数の2分の1よりも多い(たとえば、8サイクルにわたる1または論理高信号を有するデータビットの数が4個よりも多い)場合、エンコーダ504(たとえば、インバータ518)はそのデータチャネル上のすべてのビットを反転させることができる。
より具体的には、エンコーダ504は、遷移反転符号化されたデータチャネルの各々を評価することができる。図6の例では、第4のデータチャネル(チャネル4)は、中間列において5個のデータビットが1(たとえば、論理高信号)にセットされている。したがって、チャネル4上のデータビット1、2、3、7、および8はすべて、(中間列に示すように)遷移反転符号化後に1にセットされる。したがって、エンコーダ504は、第4のデータチャネル(たとえば、チャネル4)におけるデータビットのすべてを反転させることができ、そのデータチャネルに関して1(たとえば、論理高信号)にセットされたデータビットの数を5個から3個に減らす。図示のように、第6のデータチャネル(チャネル6)を同様に反転させることができる。データチャネル4および6上での状態反転(SI)符号化に関して反転が生じていることを示すために、第2のフラグチャネル(チャネル10)が第1のフラグチャネル(チャネル9)と同様に使用される。したがって、エンコーダ504は、対応するデータチャネル4および6が状態反転符号化段階において反転されていることを示すように第2のフラグチャネル(チャネル10)上のデータビット4および6を論理高信号(1)にセットする。この例では、データビットの得られるグループ(図6
の左側)は、31個から25個に減らされた1と34個から30個に減らされた遷移とを含む。
図6の例では、TI符号化フラグおよびSI符号化フラグを送信するのに2つの追加のデータバスチャネルが使用され、それによって、このデータビットのグループでは、10個のチャネル上に8個のデータサイクルが得られる。上述のようにデータサイクルの数は必要に応じて変更されてもよい。さらに、他の実施形態では、符号化フラグを送信するために代替手段を使用してもよい。たとえば、図7は、DBIフラグが、データビットのグループの終了位置に付加された追加のデータビットとして元のデータチャネル上で送信される別の実施形態を示す。たとえば、データチャネルが遷移反転符号化の一部として反転されているかどうかを示すように、1または0がデータビット9(またはサイクル9)として追加される。図7に示すように、チャネル1、3、4、および8上のサイクル9において、これらのチャネル上ではデータビットが1ビットおきに反転されていることを示すように1が送信され、他のチャネル上のサイクル9において、これらのチャネル上ではデータビットが1ビットおきに反転されていないことを示すように0が送信される。チャネルが状態反転符号化の一部として反転されているかどうかを示すように、各チャネル上のデータビットまたはサイクル10として別の1または0も追加される。この例では、エンコーダ504は、チャネルごとにサイクル9におけるTI符号化フラグを考慮することができる。図7に示すように、チャネル4および6上のサイクル10において、この2個のチャネル上ではデータビット1〜9が反転されていることを示すように1が送信され、他のチャネル上のサイクル10において、これらのチャネル上ではデータビット1〜9が反転されていないことを示すように0が送信される。この例では、このデータビットのグループでは、8個のデータチャネル上に10個のデータサイクルが得られる。そのような実施形態は、状態反転符号化を実行する際にサイクル9におけるTI符号化フラグビットを考慮することによって追加の符号化を実現することができる。
図8は、符号化フラグの一方のセットが追加のチャネル(チャネル9)上で送信され、符号化フラグの他方のセットがデータビットのグループの終了位置に付加される追加のデータビットとして送信されるさらに別の実施形態を示すブロック図である。たとえば、新しいチャネル(チャネル9)上のサイクルにおいて、サイクルに対応するチャネルが遷移反転符号化の一部として反転されているかどうかを示すように1または0が送信される。図8に示すように、チャネル9上のサイクル1、3、4、および8において、対応するチャネル1、3、4、および8上ではデータビットが1ビットおきに反転されていることを示すように1が送信され、チャネル9上の他のサイクルにおいて、それらのサイクルに対応するチャネル上ではデータビットが1ビットおきに反転されていないことを示すように0が送信される。さらに、チャネルが状態反転符号化の一部として反転されているかどうかを示すように、各チャネル上のデータビットまたはサイクル9として1または0が追加される。図8に示すように、チャネル4および6上のサイクル9において、この2個のチャネル上ではデータビット1〜8が反転されていることを示すように1が送信され、他のチャネル上のサイクル9において、これらのチャネル上ではデータビット1〜8が反転されていないことを示すように0が送信される。この例では、このデータビットのグループは、9個のデータチャネル上の9個のデータサイクルに拡張される。そのような実施形態は、状態反転符号化を実行する際にチャネル9におけるTI符号化フラグビットを考慮するとともに、サイクルサイズを1サイクル大きくすることのみによって追加の符号化を実現することができる。
いくつかの実施形態では、データビットのグループにおけるデータビットまたはサイクルの数がチャネルの数のサイズの2倍になることがある。たとえば、図9は、データビットのグループが4個のチャネルを介して搬送される8個のサイクルからなる例を示す。この例では、エンコーダ504は、最初の4サイクルまたは最後の4サイクルにおいて符号化フラグを送信し符号化フラグチャネルに未使用サイクルを有するのではなく、各チャネルに2個のサイクルを関連付けることによってフラグをすべての8個のサイクルに分散させることができる。たとえば、図9において遷移反転符号化が第1および第3のチャネル(チャネル1およびチャネル3)に適用される。図示のように、チャネル1に関するTI符号化フラグは、チャネル5上の第1のサイクルと第2のサイクルの両方において1を送信することによってセットされる。同様に、チャネル3に関するTI符号化フラグは、チャネル5上の第5のサイクルと第6のサイクルの両方において1を送信することによってセットされる。状態反転符号化に関する符号化フラグは、同様の構成に従う。たとえば、状態反転符号化に関してチャネル4が反転される場合、チャネル6上のサイクル7および8において1を送信することによってSI符号化フラグがセットされる。したがって、TI符号化フラグおよびSI符号化フラグは、チャネルごとに2サイクル拡張される。
別の実施形態では、図10に示すように、データビットのグループはこの場合も、4個のチャネルを介して搬送される8個のサイクルからなる。この例では、エンコーダ504は、TI符号化フラグおよびSI符号化フラグに単一の追加のチャネルを使用することができ、追加されるデータチャネルにおける2個のサイクルは各データチャネルに関連付けられる。すなわち、図9の例と同様に、チャネル5のサイクル1および2はチャネル1に関連付けられ、サイクル3および4はチャネル2に関連付けられ、サイクル5および6はチャネル3に関連付けられ、サイクル7および8はチャネル4に関連付けられる。しかし、この例では、各データチャネルに関連付けられたチャネル5における第1のサイクルを使用して遷移反転符号化を示すことができ、各データチャネルに関連付けられたチャネル5における第2のサイクルを使用して状態反転符号化を示すことができる。
より具体的には、図示の例では遷移反転符号化はチャネル1およびチャネル3に適用される。したがって、チャネル5上のサイクル1および5には、遷移反転符号化がチャネル1および3に適用されていることを示すように1が配置される。さらに、サイクル3および7には、遷移反転符号化中に、チャネル2および4では反転が実行されていないことを示すように0が配置される。チャネル5上のサイクル2、4、6、および8には、これらのサイクルがTI符号化フラグに関連することを示すように"x"が示される。状態反転符号化ステップでは、チャネル4が反転され、一方、チャネル1〜3は変更されない。したがって、チャネル5上のサイクル8には、状態反転符号化中にチャネル4が反転されたことを示すように1が適用され、チャネル5上のサイクル2、4、および6には、状態反転符号化中にチャネル1、チャネル2、およびチャネル3が反転されていないことを示すように0が適用される。この例では、遷移反転符号化と状態反転符号化の両方の符号化フラグを追加された単一のチャネル上で送信することができる。
これらの例の各々は、まず遷移反転符号化が実行され、次に遷移反転符号化されたデータビットに対して状態反転符号化が実行されるが、まず状態反転符号化が実行され、状態反転符号化の結果としてのデータビットに対して遷移反転符号化が実行されるように、これらの符号化ステップを切り替えることができることに留意されたい。
図11は、図5における電子デバイス500などの電子デバイス上で動作可能な方法の少なくとも1つの例を示すフロー図である。図5および図11を参照するとわかるように、ブロック1102において、電子デバイス500は、データバスを介して送信すべきデータビットのグループに対して第1の符号化方式を実行することができる。第1の符号化方式は、少なくとも1つの例では、データビットのグループ内の遷移の数に基づいて実行することが可能である。たとえば、エンコーダ504の処理回路510は、グループ内の遷移の数に基づいてデータビットのグループに対して第1の符号化方式を実行してもよい。
図12は、少なくとも1つの実装形態による図11のブロック1102における遷移の数に基づいて、第1の符号化方式を実行するためのプロセスの例を示すフロー図である。概して、エンコーダ504の処理回路510は、データバス506の複数のデータチャネルの各データチャネル上の遷移の数を求め、遷移の数が遷移しきい値を超える各データチャネル上で1サイクルおきに反転させることができる。たとえば、プロセスはまず、動作1202においてデータビットのグループに関する第1のデータチャネルを識別してもよい。動作1204において、遷移検出動作520を実行する遷移検出器514は、所定数のサイクルにわたるデータチャネル上の遷移の数を求めるようにデータチャネルを評価することができる。前記のように、サイクルの所定数は実装形態に応じて異なってもよい。本明細書で説明する例は、各データチャネル上に8個のサイクルを有する実装形態を含むが、他のサイクル数が使用されてもよい。
決定ダイヤモンド1206において、遷移検出動作520を実行する遷移検出器514は、データチャネルに関して検出された遷移の数が遷移しきい値を超えているかどうかを判定することができる。少なくとも1つの例では、遷移しきい値は、動作1204において評価されるサイクル数の2分の1であってもよい。たとえば、動作1204においてデータチャネル上で評価されるサイクルの数が8サイクルである場合、遷移しきい値は4であってもよい。したがって、動作1204において5つ以上の遷移が検出された場合、遷移検出動作520を実行する遷移検出器514は、決定ダイヤモンド1206において遷移の数が遷移しきい値を超えていると判定することができる。
所定数のサイクルにわたる検出された遷移の数が遷移しきい値を超えているとき、反転動作524を実行するインバータ518は、動作1208においてデータチャネルを1サイクルおきに反転させることができる。すなわち、反転動作524を実行するインバータ518は、遷移反転符号化に関して図6を参照しながら上記で説明したのと同様に所定のサイクル数にわたってデータビットを1データビットおきに反転させることができる。
動作1210において、反転動作524を実行するインバータ518は、データチャネルが1サイクルおきに反転されているか否かを示すようにデータチャネルに関するそれぞれの遷移反転(TI)符号化フラグをさらにセットする。たとえば、データチャネルが1サイクルおきに反転されていることを示すように1(または論理高信号)がセットされてもよく、決定ダイヤモンド1206における答えがいいえであるときなどに、データチャネルが1サイクルおきに反転されていないことを示すように0(または論理低信号)がセットされてもよい。
図6〜図10を参照しながら本明細書に上記で説明したように、様々な位置においてTI符号化フラグがセットされてもよい。たとえば、図6、図8、図9、および図10を参照しながら上記で説明したように、TI符号化フラグは、追加のデータチャネル(フラグチャネルと呼ばれることもある)におけるデータビットまたはサイクルとしてセットされてもよい。いくつかの例では、図6および図8を参照しながら上記で説明した例のように、追加のデータチャネルの各データビットまたはサイクルがそれぞれのデータチャネルに関連付けられる。他の例では、図9を参照しながら上記で説明した例のように、追加のデータチャネル上の2つ以上の連続するサイクルがそれぞれのデータチャネルに関連付けられる。さらに他の例では、図10を参照しながら上記で説明した例のように、状態反転(SI)符号化フラグをセットするのに使用されるのと同じ追加のデータチャネル上にTI符号化フラグをセットすることができる。他の例では、図7を参照しながら上記で説明したように、TI符号化フラグはそれぞれのデータチャネルに付加される追加のサイクルとしてセットされてもよい。
さらに図12を参照するとわかるように、遷移検出動作520を実行する遷移検出器514は、決定ダイヤモンド1212において遷移に関して評価すべき別のデータチャネルがあるかどうかを判定することができる。別のデータチャネルがある場合、プロセスは、動作1202に戻ることができ、評価される次のデータチャネルが選択される。これ以上データチャネルがない場合、プロセスが終了されてもよい。
図5および図11を参照するとわかるように、電子デバイス500は、ブロック1104で、所定の状態を示すデータビットのグループ内のデータビットの数に基づいて同じデータビットのグループに対して第2の符号化方式を実行することができる。たとえば、エンコーダ504の処理回路510は、所定の状態にセットされたグループ内のデータビットの数に基づいてデータビットのグループに対して第2の符号化方式を実行してもよい。
図13は、少なくとも1つの実装形態による図11のブロック1104において特定の状態を有するサイクルの数に基づいて、第2の符号化方式を実行するためのプロセスの例を示すフロー図である。概して、エンコーダ504の処理回路510は、データバス506の複数のデータチャネルの各データチャネル上の所定の状態にセットされたサイクル数を求め、状態しきい値を超える数のサイクルが所定の状態にセットされた各データチャネル上のサイクルを反転させることができる。たとえば、プロセスはまず、動作1302において第1のデータチャネルを識別してもよい。動作1304において、状態検出動作522を実行する状態検出器516は、所定数のサイクルにわたるデータチャネル上の所定の状態にセットされた(たとえば、1または0にセットされた)サイクルの数を求めるようにデータチャネルを評価することができる。第1の符号化方式が第2の符号化方式よりも前に実行される実装形態では、状態検出動作522を実行する状態検出器516は、データチャネルに対する第1の符号化方式から得られるデータビットを評価する。
決定ダイヤモンド1306において、状態検出動作522を実行する状態検出器516は、データチャネル上の所定の状態にセットされたサイクルの数が遷移しきい値を超えているかどうかを判定することができる。少なくとも1つの例では、状態しきい値は、動作1304において評価されるサイクル数の2分の1であってもよい。たとえば、動作1304においてデータチャネル上で評価されるサイクルの数が8サイクルである場合、状態しきい値は4であってもよい。したがって、動作1304において5つ以上のサイクルが所定の状態にセットされていることが検出された場合、状態検出動作522を実行する状態検出器516は、決定ダイヤモンド1306において所定の状態にセットされたサイクルの数が状態しきい値を超えていると判定することができる。
所定数のサイクルにわたる所定の状態にセットされたデータビットの数が状態しきい値を超えているとき、反転動作524を実行するインバータ518は、動作1308においてデータチャネルの1サイクルを反転させることができる。すなわち、反転動作524を実行するインバータ518は、状態反転符号化に関して図6を参照しながら上記で説明したのと同様に所定のサイクル数にわたってデータビットを反転させることができる。
動作1310において、反転動作524を実行するインバータ518は、データチャネルのサイクルが反転されているか否かを示すようにデータチャネルに関するそれぞれの状態反転(SI)符号化フラグをさらにセットする。たとえば、データチャネルのサイクルが反転されていることを示すように1(または論理高信号)がセットされてもよい。逆に、決定ダイヤモンド1306における答えがいいえであるときなどに、データチャネルのサイクルが反転されていないことを示すように0(または論理低信号)がセットされてもよい。
図6〜図10を参照しながら本明細書に上記で説明したように、それぞれに異なる実装形態による様々な位置においてSI符号化フラグがセットされてもよい。たとえば、図6、図9、および図10を参照しながら上記で説明したように、SI符号化フラグは、追加のデータチャネル(フラグチャネルと呼ばれることもある)におけるデータビットまたはサイクルとしてセットされてもよい。いくつかの例では、図6を参照しながら上記で説明した例のように、追加のデータチャネルの各データビットまたはサイクルがそれぞれのデータチャネルに関連付けられる。他の例では、図9を参照しながら上記で説明した例のように、追加のデータチャネル上の2つ以上の連続するサイクルがそれぞれのデータチャネルに関連付けられる。さらに他の例では、図10を参照しながら上記で説明した例のように、遷移反転(TI)符号化フラグをセットするのに使用されるのと同じ追加のデータチャネル上にSI符号化フラグをセットすることができる。他の例では、図7および図8を参照しながら上記で説明したように、SI符号化フラグはそれぞれのデータチャネルに付加される追加のサイクルとしてセットされてもよい。
さらに図13を参照するとわかるように、状態検出動作522を実行する状態検出器516は、決定ダイヤモンド1312において遷移に関して評価すべき別のデータチャネルがあるかどうかを判定することができる。別のデータチャネルがある場合、プロセスは、動作1302に戻ることができ、評価される次のデータチャネルが選択される。これ以上データチャネルがない場合、プロセスが終了されてもよい。
再び図5および図11を参照するとわかるように、ブロック1106において、電子デバイス500は、データバスの複数のデータチャネル上で符号化されたデータビットのグループを送信することができる。たとえば、エンコーダ504の処理回路510は、データバスインターフェース508を介して、データバスのデータチャネルのうちの少なくともいくつかのデータチャネル上で符号化されたデータビットの各チャネルを送信してもよい。
図14を参照すると、本開示の少なくとも1つの例による、図1における第1および第2の電子デバイス102、104などの、電子デバイス1400の選択構成要素を示すブロック図が示されている。電子デバイス1400のレシーバユニット1402は、データバス1406の複数のチャネルを介して送信された符号化されたデータビットを受信するように適合されたデコーダ1404を含む。
デコーダ1404は概して、複数のデータビットに関して第1の符号化方式を復号し、同じ複数のデータビットに関して第2の符号化方式を復号するように適合された回路および/またはプログラミングを含む。すなわち、デコーダは、エンコーダ504などのエンコーダによって実行される符号化および上述の符号化方式のいずれかを取り消すように適合される。少なくとも1つの例によれば、デコーダ1404は、データバスインターフェース1408によってデータバス1406の複数のデータチャネルに結合されてもよく、データバスインターフェース1408および記憶媒体1412と電気的に通信するように結合または配置された処理回路1410を含んでもよい。
処理回路1410は、データの取得、処理、および/または送信を行い、データのアクセスおよび記憶を制御し、コマンドを発行し、他の所望の動作を制御するように構成される。処理回路1410は、所望の機能を実行しおよび/または適切な媒体によって供給される所望のプログラミングを実装するように構成された回路を含んでもよい。処理回路1410は、上述の処理回路510の例のうちのいずれかに従って実装されおよび/または構成されてもよい。
処理回路1410はインバータ1414を含んでもよい。インバータ1414は、受信されたデータビットに含められた状態符号化フラグおよび遷移符号化フラグに従って受信されたデータビットを元の状態に反転させるように適合された回路および/またはプログラミング(たとえば、記憶媒体1412上に記憶された反転動作1416)を含んでもよい。
記憶媒体1412は、プロセッサが実行可能なコードもしくは命令(たとえば、ソフトウェア、ファームウェア)などのプログラミング、電子的なデータ、データベース、またはその他のデジタル情報を記憶するための、1つまたは複数のプロセッサ可読デバイスを表す場合がある。記憶媒体1412は、上述の記憶媒体512と同様に構成されおよび/または実装されてもよい。
記憶媒体1412は、処理回路1410がその記憶媒体1412から情報を読み取り、その記憶媒体に情報を書き込むことができるように処理回路1410に結合されてもよい。すなわち、記憶媒体1412は、少なくとも処理回路1410によってアクセス可能であるように処理回路1410に結合することが可能であり、記憶媒体1412が処理回路1410と一体である例および/または記憶媒体1412が処理回路1410と分離している例を含む。
記憶媒体512と同様に、記憶媒体1412にはプログラミングが記憶されている。記憶媒体1412によって記憶されているプログラミングは、処理回路1410によって実行されたときに、処理回路1410に、本明細書で説明する様々な復号機能および/または処理ステップのうちの1つまたは複数を実行させる。たとえば、記憶媒体1412は、処理回路1410に、受信されたデータに含められた様々な符号化フラグに応じて受信されたデータビットを反転させてその元の状態に戻させるように適合された反転動作1416を含んでもよい。したがって、本開示の1つまたは複数の態様によれば、処理回路1410は、本明細書に記載の電子デバイス(たとえば、電子デバイス102、104、および1400)のいずれかまたはすべてに関する復号プロセス、機能、ステップおよび/またはルーチンのうちのいずれかまたはすべてを(記憶媒体1412と連携して)実行するように適合される。処理回路1410に関係して本明細書で使用する「適合される」という用語は、処理回路1410が、(記憶媒体1412と連携して)本明細書に記載する様々な特徴による特定のプロセス、機能、ステップおよび/またはルーチンを実行するように構成されること、使用されること、実装されること、および/またはプログラムされることのうちの1つまたは複数を行うことを指す場合がある。
図15は、電子デバイス1400などの電子デバイス上で動作可能な復号方法の少なくとも1つの例を示すフロー図である。図14および図15を参照するとわかるように、1502において、電子デバイス1400は、データバスの複数のデータチャネル上でデータビットのグループを受信してもよい。たとえば、反転動作1416を実行する処理回路1410(たとえば、インバータ1414)は、データバスインターフェース1408を介してデータバス1406の複数のデータチャネル上で所定数のデータビットを受信してもよい。データビットのグループは、符号化されたデータビットならびに複数の符号化フラグを含む。たとえば、図6〜図10を参照しながら上記で説明した例では、電子デバイス1400は、それぞれの図の1番右側に記載されたもののような、符号化されたデータビットのグループを受信することができる。
1504において、電子デバイス1400は、第1の符号化方式に対してデータビットのグループを復号することができる。たとえば、反転動作1416を実行する処理回路1410(たとえば、インバータ1414)は、直前に使用された符号化方式に関連する符号化フラグを識別することができる。図6〜図10を参照しながら上記で説明した例を参照するとわかるように、反転動作1416を実行する処理回路1410(たとえば、インバータ1414)は、各データチャネルに関連する状態反転(SI)符号化フラグを識別することができる。上述のように、SI符号化フラグは追加のチャネルに含められてもよく、または各チャネル上の追加のサイクルに含められてもよい。反転動作1416を実行する処理回路1410(たとえば、インバータ1414)は、SI符号化フラグによって反転されていることが示される各チャネルについて、データビットを反転させることができる。したがって、たとえば、図6では、データチャネル10は、データチャネル4および6が反転されていることを示す。したがって、反転動作1416を実行する処理回路1410(たとえば、インバータ1414)は、受信されたデータビットのグループを1番右側から反転させていき、チャネルごとに中央に示されているデータビットのグループを取得することができる。
1506において、電子デバイス1400は、第2の符号化方式に対してデータビットのグループを復号することができる。たとえば、反転動作1416を実行する処理回路1410(たとえば、インバータ1414)は、最初に使用された符号化方式に関連する符号化フラグを識別することができる。図6〜図10を参照しながら上記で説明した例を参照するとわかるように、反転動作1416を実行する処理回路1410(たとえば、インバータ1414)は、各データチャネルに関連する遷移反転(TI)符号化フラグを識別することができる。上述のように、TI符号化フラグは追加のチャネルに含められてもよく、または各チャネル上の追加のサイクルに含められてもよい。反転動作1416を実行する処理回路1410(たとえば、インバータ1414)は、TI符号化フラグによって反転されていることが示される各チャネルについて、データビットを1データビットおきにその元の状態に反転させることができる。したがって、引き続き図6の例で説明すると、データチャネル9は、データチャネル1、3、4、および8が、各チャネル上のデータビットを1データビットおきに反転させることによってすべて符号化されたことを示す。したがって、反転動作1416を実行する処理回路1410(たとえば、インバータ1414)は、図6の中央に示す部分的に復号されたデータにおけるデータビットを1データビットおきに反転させて、元のデータビットを表す図6の左側に示すデータビットのグループを取得することができる。
当業者には、復号の順序が、元のデータビットのグループが符号化された順序に直接依存することが認識されよう。したがって、元のデータビットのグループが状態反転符号化によって符号化され、次に遷移反転符号化によって符号化された場合、デコーダ1404は、遷移反転符号化に対する復号を実行し、次に状態反転符号化に対する復号を実行することによって、受信されたデータビットを復号することができる。
上記の態様、構成、および実施形態は、具体的な細部を用いて詳細に説明したが、図1、図2、図3、図4、図5、図6、図7、図8、図9、図10、図11、図12、図13、図14、および/または図15に示される構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴または機能としての再構成および/または組合せが施されてもよく、あるいは、いくつかの構成要素、ステップ、または機能において具現されてもよい。また、本開示から逸脱することなく追加の要素、構成要素、ステップ、および/または機能が追加されるか、または利用されないことがある。図1、図5、および/または図14に示される装置、デバイス、および/または構成要素は、図2、図3、図4、図6、図7、図8、図9、図10、図11、図12、図13、および/または図15において説明した方法、特徴、パラメータ、および/またはステップのうちの1つまたは複数を実行または利用するように構成されてもよい。本明細書において説明した新規のアルゴリズムはまた、ソフトウェアで効率的に実装され、および/またはハードウェアに埋め込まれてもよい。
本開示の特徴について、いくつかの実施形態および図面に関して説明したが、本開示のすべての実施形態は、本明細書で説明する有利な特徴のうちの1つまたは複数を含んでもよい。言い換えれば、1つまたは複数の実施形態について特定の有利な特徴を有するものとして説明したが、そのような特徴のうちの1つまたは複数も、本明細書で説明した様々な実施形態のいずれかに従って使用されてもよい。同様に、例示的な実施形態について、デバイス実施形態、システム実施形態、または方法実施形態として本明細書で説明したが、そのような例示的な実施形態を様々なデバイス、システム、および方法において実施されてもよいことを理解されたい。
また、少なくともいくつかの実装形態が、流れ図、フロー図、構造図、またはブロック図として表されるプロセスとして説明されたことに留意されたい。流れ図は動作を逐次プロセスとして説明する場合があるが、動作の多くを並列にまたは同時に実行することができる。さらに、動作の順序は、並べ替えられてもよい。プロセスは、その動作が完了したときに終了する。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応してもよい。プロセスが機能に対応するとき、その終了は、呼び出す側の機能またはメイン機能への機能の戻りに対応する。本明細書で説明する様々な方法は、機械可読媒体、コンピュータ可読媒体、および/またはプロセッサ可読記憶媒体に記憶され、1つまたは複数のプロセッサ、機械、および/またはデバイスによって実行されてもよいプログラミング(たとえば命令および/またはデータ)によって、部分的にまたは完全に実装されてもよい。
さらに、本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せとして実装されてもよいことが当業者には諒解されよう。この互換性を明確に示すために、種々の例示的な構成要素、ブロック、モジュール、回路、およびステップについて、全般的にそれらの機能に関して上記で説明した。そのような機能がハードウェアとして実現されるかソフトウェアとして実現されるかは、特定の適用例およびシステム全体に課される設計制約に応じて決まる。
本明細書で説明し、添付の図面に示す例に関連する様々な特徴は、本開示の範囲から逸脱することなく、異なる例および実装形態で実装されてもよい。したがって、いくつかの特定の構成および配置が説明され、添付の図面において図示されてきたが、説明された実施形態への種々の他の追加および変更、ならびに実施形態からの削除が当業者には明らかになるので、そのような実施形態は例示にすぎず、本開示の範囲を制限するものではない。したがって、本開示の範囲は、以下の特許請求の範囲の文言、および法的均等物によってのみ決定される。
100 システム
102 第1の電子デバイス
104 第2の電子デバイス
106 データバス
108 送信ユニット
110 エンコーダ
112 レシーバユニット
114 デコーダ
116 送信ユニット
118 レシーバユニット
500 電子デバイス
502 送信ユニット
504 エンコーダ
506 データバス
508 データバスインターフェース
510 処理回路
512 記憶媒体
514 遷移検出器
516 状態検出器
518 インバータ
520 遷移検出動作
522 状態検出動作
524 反転動作
1410 処理回路
1412 記憶媒体
1414 インバータ
1416 反転動作

Claims (56)

  1. 少なくとも1つのエンコーダを備える電子デバイスであって、前記エンコーダは、
    データビットの送信を容易にするようにデータバスに結合されるように適合されたデータバスインターフェースと、
    前記データバスインターフェースに結合された処理回路と
    を備え、前記処理回路は、
    前記データバスインターフェースを介してデータバス上で送信すべきデータビットのグループに対して第1の符号化方式を実行することであって、前記第1の符号化方式は、前記データビットのグループ内の遷移の数に基づいて実行される、実行することと、
    所定の状態を示す前記データビットのグループ内のデータビットの数に基づいて前記データビットのグループに対して第2の符号化方式を実行することとを行うように適合される、電子デバイス。
  2. 前記データビットのグループに対して前記第1の符号化方式を実行するように適合された前記処理回路は、
    所定数のデータビットの継続時間にわたる前記データバス上の複数のデータチャネルのうちの各データチャネル上の遷移の数を求めることと、
    データチャネル上の前記遷移の数が遷移しきい値を超えていると判定されたときに、前記データチャネル上の前記所定数のデータビットを1データビットおきに反転させることとを行うように適合される、請求項1に記載の電子デバイス。
  3. 前記データビットのグループに対して前記第2の符号化方式を実行するように適合された前記処理回路は、
    所定数のデータビットの継続時間にわたる前記データバス上の複数のデータチャネルのうちの各データチャネル上の所定の状態にセットされたデータビットの数を求めることと、
    データチャネル上の前記所定の状態にセットされた前記データビットの数が状態しきい値を超えているときに、前記データチャネル上の前記所定数のデータビットの前記データビットを反転させることとを行うように適合される、請求項1に記載の電子デバイス。
  4. 前記処理回路は、
    前記第1の符号化方式によってどのデータビットが符号化されるかを示すように複数の第1の符号化フラグをセットすることと、
    前記第2の符号化方式によってどのデータビットが符号化されるかを示すように複数の第2の符号化フラグをセットすることとを行うようにさらに適合される、請求項1に記載の電子デバイス。
  5. 前記第1の符号化フラグは、
    追加のデータチャネルにおけるデータビットであって、前記追加のデータチャネルの各データビットが前記データビットのグループのそれぞれのデータチャネルに関連付けられたデータビット、または
    それぞれのデータチャネルに追加されたデータビットとしてセットされる、請求項4に記載の電子デバイス。
  6. 前記第2の符号化フラグは、
    追加のデータチャネルにおけるデータビットであって、前記追加のデータチャネルの各データビットが前記データビットのグループのそれぞれのデータチャネルに関連付けられたデータビット、または
    それぞれのデータチャネルに追加されたデータビットとしてセットされる、請求項4に記載の電子デバイス。
  7. 前記処理回路は、
    前記データビットのグループに対して第1の符号化方式を実行する前に、前記データビットのグループに対して前記第2の符号化方式を実行するように適合される、請求項1に記載の電子デバイス。
  8. 電子デバイス上で動作可能な方法であって、
    データバスを介して送信すべきデータビットのグループに対して第1の符号化方式を実行するステップであって、前記第1の符号化方式は、前記データビットのグループ内の遷移の数に基づいて実行される、ステップと、
    所定の状態を示す前記データビットのグループ内のデータビットの数に基づいて前記データビットのグループに対して第2の符号化方式を実行するステップとを含む方法。
  9. 前記データビットのグループに対して前記第1の符号化方式を実行する前記ステップは、
    所定数のデータビットの継続時間にわたる前記データバス上の複数のデータチャネルのうちの各データチャネル上の遷移の数を求めるステップと、
    データチャネル上の前記遷移の数が遷移しきい値を超えていると判定されたときに、前記データチャネル上の前記所定数のデータビットを1データビットおきに反転させるステップとを含む、請求項8に記載の方法。
  10. 前記データビットのグループに対して前記第2の符号化方式を実行する前記ステップは、
    所定数のデータビットの継続時間にわたる前記データバス上の複数のデータチャネルのうちの各データチャネル上の所定の状態にセットされたデータビットの数を求めるステップと、
    データチャネル上の前記所定の状態にセットされた前記データビットの数が状態しきい値を超えているときに、前記データチャネル上の前記所定数のデータビットの前記データビットを反転させるステップとを含む、請求項8に記載の方法。
  11. 前記第1の符号化方式によってどのデータビットが符号化されるかを示すように複数の第1の符号化フラグをセットするステップと、
    前記第2の符号化方式によってどのデータビットが符号化されるかを示すように複数の第2の符号化フラグをセットするステップとをさらに含む、請求項8に記載の方法。
  12. 前記第1の符号化フラグをセットする前記ステップは、
    追加のデータチャネルにおけるデータビットであって、前記追加のデータチャネルの各データビットが前記データビットのグループのそれぞれのデータチャネルに関連付けられたデータビットをセットするステップ、または
    それぞれのデータチャネルに追加されたデータビットをセットするステップを含む、請求項11に記載の方法。
  13. 前記第2の符号化フラグをセットする前記ステップは、
    追加のデータチャネルにおけるデータビットであって、前記追加のデータチャネルの各データビットが前記データビットのグループのそれぞれのデータチャネルに関連付けられたデータビットをセットするステップ、または
    それぞれのデータチャネルに追加されたデータビットをセットするステップを含む、請求項11に記載の方法。
  14. 前記データビットのグループに対して前記第1の符号化方式を実行する前記ステップは、
    前記データビットのグループに対して前記第2の符号化方式を実行した後に、前記データビットのグループに対して前記第1の符号化方式を実行するステップを含む、請求項8に記載の方法。
  15. データバスを介して送信すべきデータビットのグループに対して第1の符号化方式を実行するための手段であって、前記第1の符号化方式は、前記データビットのグループ内の遷移の数に基づいて実行される、手段と、
    所定の状態を示す前記データビットのグループ内のデータビットの数に基づいて前記データビットのグループに対して第2の符号化方式を実行するための手段とを備える電子デバイス。
  16. 前記データビットのグループに対して前記第1の符号化方式を実行する前記ステップは、
    所定数のデータビットの継続時間にわたる前記データバス上の複数のデータチャネルのうちの各データチャネル上の遷移の数を求めるステップと、
    データチャネル上の前記遷移の数が遷移しきい値を超えていると判定されたときに、前記データチャネル上の前記所定数のデータビットを1データビットおきに反転させるステップとを含む、請求項15に記載の電子デバイス。
  17. 前記データビットのグループに対して前記第2の符号化方式を実行する前記ステップは、
    所定数のデータビットの継続時間にわたる前記データバス上の複数のデータチャネルのうちの各データチャネル上の所定の状態にセットされたデータビットの数を求めるステップと、
    データチャネル上の前記所定の状態にセットされた前記データビットの数が状態しきい値を超えているときに、前記データチャネル上の前記所定数のデータビットの前記データビットを反転させるステップとを含む、請求項15に記載の電子デバイス。
  18. 前記第1の符号化方式によってどのデータビットが符号化されるかを示すように複数の第1の符号化フラグをセットするための手段と、
    前記第2の符号化方式によってどのデータビットが符号化されるかを示すように複数の第2の符号化フラグをセットするための手段とをさらに備える、請求項15に記載の電子デバイス。
  19. 処理回路に、
    データバスを介して送信すべきデータビットのグループに対して第1の符号化方式を使用することであって、前記第1の符号化方式は、前記データビットのグループ内の遷移の数に基づいて実行される、使用することと、
    所定の状態を示す前記データビットのグループ内のデータビットの数に基づいて、前記データビットのグループに対して第2の符号化方式を使用することとを行わせるためのプログラミングを含むプロセッサ可読記憶媒体。
  20. 前記第1の符号化方式は、
    所定数のデータビットの継続時間にわたる前記データバス上の複数のデータチャネルのうちの各データチャネル上の遷移の数を求めるステップと、
    データチャネル上の前記遷移の数が遷移しきい値を超えていると判定されたときに、前記データチャネル上の前記所定数のデータビットを1データビットおきに反転させるステップとを含む、請求項19に記載のプロセッサ可読記憶媒体。
  21. 前記第2の符号化方式は、
    所定数のデータビットの継続時間にわたる前記データバス上の複数のデータチャネルのうちの各データチャネル上の所定の状態にセットされたデータビットの数を求めるステップと、
    データチャネル上の前記所定の状態にセットされた前記データビットの数が状態しきい値を超えているときに、前記データチャネル上の前記所定数のデータビットの前記データビットを反転させるステップとを含む、請求項19に記載のプロセッサ可読記憶媒体。
  22. 処理回路に、
    前記第1の符号化方式によってどのデータビットが符号化されるかを示すように複数の第1の符号化フラグをセットすることと、
    前記第2の符号化方式によってどのデータビットが符号化されるかを示すように複数の第2の符号化フラグをセットすることとを行わせるためのプログラミングをさらに含む、請求項19に記載のプロセッサ可読記憶媒体。
  23. 少なくとも1つのエンコーダを備える電子デバイスであって、前記エンコーダは、
    所定数のサイクルにおけるデータバスの複数のデータチャネル上の遷移の数を求めるように適合された遷移検出器と、
    前記所定数のサイクルにおける前記複数のデータチャネルのうちの各データチャネル上の所定の状態にセットされたサイクルの数を求めるように適合された状態検出器と、
    インバータとを備え、前記インバータは、
    データチャネル上の前記遷移の数が遷移しきい値を超えていると判定されたときに、前記データチャネル上の前記所定数のサイクルを1サイクルおきに反転させることと、
    データチャネル上の前記所定の状態にセットされた前記サイクルの数が状態しきい値を超えていると判定されたときに、前記データチャネル上の前記所定数のサイクルの前記サイクルを反転させることとを行うように適合される、電子デバイス。
  24. 前記インバータは、
    前記遷移の数が前記遷移しきい値を超えているとの前記判定に応答して、前記サイクルが1サイクルおきに反転されるかどうかを各データチャネル上で示すように複数の遷移反転符号化フラグをセットすることと、
    前記所定の状態にセットされた前記サイクルの数が前記状態しきい値を超えているとの前記判定に応答して、前記サイクルが反転されるかどうかを各データチャネル上で示すように複数の状態反転符号化フラグをセットすることとを行うようにさらに適合される、請求項23に記載の電子デバイス。
  25. 前記インバータは、
    前記複数の遷移反転符号化フラグを第1のフラグチャネル上にセットすることであって、前記第1のフラグチャネル上の各サイクルがそれぞれのデータチャネルに関連付けられる、セットすることと、
    前記複数の状態反転符号化フラグを第2のフラグチャネル上にセットすることであって、前記第2のフラグチャネル上の各サイクルがそれぞれのデータチャネルに関連付けられる、セットすることとを行うように適合される、請求項24に記載の電子デバイス。
  26. 前記インバータは、
    前記複数の遷移反転符号化フラグを第1のフラグチャネル上にセットすることであって、前記第1のフラグチャネル上の2つ以上の連続するサイクルがそれぞれのデータチャネルに関連付けられる、セットすることと、
    前記複数の状態反転符号化フラグを第2のフラグチャネル上にセットすることであって、前記第2のフラグチャネル上の2つ以上の連続するサイクルがそれぞれのデータチャネルに関連付けられる、セットすることとを行うように適合される、請求項24に記載の電子デバイス。
  27. 前記インバータは、
    前記複数の遷移反転符号化フラグおよび前記複数の状態反転符号化フラグを前記同じフラグチャネル上にセットするように適合される、請求項24に記載の電子デバイス。
  28. 前記インバータは、
    それぞれの遷移反転符号化フラグを各データチャネル上に追加のサイクルとしてセットすることと、
    それぞれの状態反転符号化フラグを各データチャネル上に別の追加のサイクルとしてセットすることとを行うように適合される、請求項24に記載の電子デバイス。
  29. 前記インバータは、
    前記複数の遷移反転符号化フラグをフラグチャネル上にセットすることであって、前記フラグチャネル上の各サイクルがそれぞれのデータチャネルに関連付けられる、セットすることと、
    状態反転符号化フラグを各データチャネルおよび前記フラグチャネル上の追加のサイクルとしてセットすることとを行うように適合される、請求項24に記載の電子デバイス。
  30. 電子デバイス上で動作可能な方法であって、
    所定数のサイクルにおけるデータバスの複数のデータチャネル上の遷移の数を求めるステップと、
    データチャネル上の前記遷移の数が遷移しきい値を超えていると判定されたときに、前記データチャネルを1サイクルおきに反転させるステップと、
    各データチャネルに関連するそれぞれの遷移反転符号化フラグを、前記関連するデータチャネルが1サイクルおきに反転されているかどうかを示すようにセットするステップと、
    前記所定数のサイクルにおける前記複数のデータチャネルのうちの各データチャネル上の所定の状態にセットされたサイクルの数を求めるステップと、
    データチャネル上の前記所定の状態にセットされた前記サイクルの数が状態しきい値を超えているときに、前記データチャネルの前記サイクルを反転させるステップと、
    各データチャネルに関連するそれぞれの状態反転符号化フラグを、前記関連するデータチャネルの前記サイクルが反転されるかどうかを示すようにセットするステップとを含む方法。
  31. 各データチャネルに関連する前記それぞれの遷移反転符号化フラグを、前記関連するデータチャネルが1サイクルおきに反転されているかどうかを示すようにセットする前記ステップは、
    前記遷移反転符号化フラグの各々をフラグチャネル上にセットするステップであって、前記フラグチャネル上の各サイクルがそれぞれのデータチャネルに関連付けられるステップを含む、請求項30に記載の方法。
  32. 各データチャネルに関連する前記それぞれの遷移反転符号化フラグを、前記関連するデータチャネルが1サイクルおきに反転されているかどうかを示すようにセットする前記ステップは、
    前記それぞれの遷移反転符号化フラグを前記関連するデータチャネル上に追加のサイクルとしてセットするステップを含む、請求項30に記載の方法。
  33. 各データチャネルに関連する前記それぞれの状態反転符号化フラグを、前記関連するデータチャネルの前記サイクルが反転されるかどうかを示すようにセットする前記ステップは、
    前記状態反転符号化フラグの各々をフラグチャネル上にセットするステップであって、前記フラグチャネル上の各サイクルがそれぞれのデータチャネルに関連付けられるステップを含む、請求項30に記載の方法。
  34. 各データチャネルに関連する前記それぞれの状態反転符号化フラグを、前記関連するデータチャネルの前記サイクルが反転されるかどうかを示すようにセットする前記ステップは、
    前記それぞれの状態反転符号化フラグを前記関連するデータチャネル上に追加のサイクルとしてセットするステップを含む、請求項30に記載の方法。
  35. 所定数のサイクルにおけるデータバスの複数のデータチャネル上の遷移の数を求めるための手段と、
    データチャネル上の前記遷移の数が遷移しきい値を超えていると判定されたときに、前記データチャネルを1サイクルおきに反転させるための手段と、
    各データチャネルに関連するそれぞれの遷移反転符号化フラグを、前記関連するデータチャネルが1サイクルおきに反転されているかどうかを示すようにセットするための手段と、
    前記所定数のサイクルにおける前記複数のデータチャネルのうちの各データチャネル上の所定の状態にセットされたサイクルの数を求めるための手段と、
    データチャネル上の前記所定の状態にセットされた前記サイクルの数が状態しきい値を超えているときに、前記データチャネルの前記サイクルを反転させるための手段と、
    各データチャネルに関連するそれぞれの状態反転符号化フラグを、前記関連するデータチャネルの前記サイクルが反転されるかどうかを示すようにセットするための手段とを備える電子デバイス。
  36. 処理回路に、
    所定数のサイクルにおけるデータバスの複数のデータチャネル上の遷移の数を求めることと、
    データチャネル上の前記遷移の数が遷移しきい値を超えていると判定されたときに、前記データチャネルを1サイクルおきに反転させることと、
    各データチャネルに関連するそれぞれの遷移反転符号化フラグを、前記関連するデータチャネルが1サイクルおきに反転されているかどうかを示すようにセットすることと、
    前記所定数のサイクルにおける前記複数のデータチャネルのうちの各データチャネル上の所定の状態にセットされたサイクルの数を求めることと、
    データチャネル上の前記所定の状態にセットされた前記サイクルの数が状態しきい値を超えているときに、前記データチャネルの前記サイクルを反転させることと、
    各データチャネルに関連するそれぞれの状態反転符号化フラグを、前記関連するデータチャネルの前記サイクルが反転されるかどうかを示すようにセットすることとを行わせるためのプログラミングを含むプロセッサ可読記憶媒体。
  37. 少なくとも1つのデコーダを備える電子デバイスであって、前記デコーダは、
    データビットの受信を容易にするようにデータバスに結合されるように適合されたデータバスインターフェースと、
    前記データバスインターフェースに結合されたインバータと
    を備え、前記インバータは、
    前記データバスインターフェースを介して複数のデータチャネル上のデータビットのグループを受信することと、
    第1の符号化方式に対して前記データビットのグループを復号することと、
    第2の符号化方式に対して前記データビットのグループを復号することとを行うように適合される、電子デバイス。
  38. 前記第1の符号化方式に対して前記データビットのグループを復号するように適合された前記インバータは、
    前記第1の符号化方式に関連する符号化フラグを識別することと、
    前記第1の符号化方式に関連する前記符号化フラグによって反転されていることが示されるデータビットを反転させることとを行うように適合される、請求項37に記載の電子デバイス。
  39. 前記第2の符号化方式に対して前記データビットのグループを復号するように適合された前記インバータは、
    前記第2の符号化方式に関連する符号化フラグを識別することと、
    前記第2の符号化方式に関連する前記符号化フラグによって反転されていることが示されるデータビットを反転させることとを行うように適合される、請求項37に記載の電子デバイス。
  40. 前記第1の符号化方式は、所定の状態を示す前記データビットのグループに関するデータチャネル上のデータビットの数に基づく符号化方式を含む、請求項37に記載の電子デバイス。
  41. 前記第1の符号化方式は、前記データビットのグループに関するデータチャネル上の遷移の数に基づく符号化方式を含む、請求項37に記載の電子デバイス。
  42. 電子デバイス上で動作可能な方法であって、
    データバスの複数のデータチャネル上でデータビットのグループを受信するステップと、
    第1の符号化方式に対して前記データビットのグループを復号するステップと、
    第2の符号化方式に対して前記データビットのグループを復号するステップとを含む方法。
  43. 第1の符号化方式に対して前記データビットのグループを復号する前記ステップは、
    前記第1の符号化方式に関連する符号化フラグを識別するステップと、
    前記第1の符号化方式に関連する前記符号化フラグによって反転されていることが示されるデータビットを反転させるステップとを含む、請求項42に記載の方法。
  44. 第2の符号化方式に対して前記データビットのグループを復号する前記ステップは、
    前記第2の符号化方式に関連する符号化フラグを識別するステップと、
    前記第2の符号化方式に関連する前記符号化フラグによって反転されていることが示されるデータビットを反転させるステップとを含む、請求項42に記載の方法。
  45. 第1の符号化方式に対して前記データビットのグループを復号する前記ステップは、
    所定の状態を示すデータチャネル上のデータビットの数に基づく符号化方式に対して前記データビットのグループを復号するステップを含む、請求項42に記載の方法。
  46. 第1の符号化方式に対して前記データビットのグループを復号する前記ステップは、
    データチャネル上の遷移の数に基づく符号化方式に対して前記データビットのグループを復号するステップを含む、請求項42に記載の方法。
  47. データバスの複数のデータチャネル上でデータビットのグループを受信するための手段と、
    第1の符号化方式に対して前記データビットのグループを復号するための手段と、
    第2の符号化方式に対して前記データビットのグループを復号するための手段とを備える電子デバイス。
  48. 第1の符号化方式に対して前記データビットのグループを復号するための前記手段は、
    前記第1の符号化方式に関連する符号化フラグを識別するための手段と、
    前記第1の符号化方式に関連する前記符号化フラグによって反転されていることが示されるデータビットを反転させるための手段とを備える、請求項47に記載の電子デバイス。
  49. 第1の符号化方式に対して前記データビットのグループを復号するための前記手段は、
    前記第2の符号化方式に関連する符号化フラグを識別するための手段と、
    前記第2の符号化方式に関連する前記符号化フラグによって反転されていることが示されるデータビットを反転させるための手段とを備える、請求項47に記載の電子デバイス。
  50. 前記第1の符号化方式は、所定の状態を示すデータチャネル上のデータビットの数に基づく符号化方式を含む、請求項47に記載の電子デバイス。
  51. 前記第1の符号化方式は、データチャネル上の遷移の数に基づく符号化方式を含む、請求項47に記載の電子デバイス。
  52. 処理回路に、
    第1の符号化方式に対して受信されたデータビットのグループを復号することと、
    第2の符号化方式に対して前記データビットのグループを復号することとを行わせるためのプログラミングを含むプロセッサ可読記憶媒体。
  53. 処理回路に、前記第1の符号化方式に対して前記受信されたデータビットの前記グループを復号させるための前記プログラミングは、処理回路に、
    前記第1の符号化方式に関連する符号化フラグを識別することと、
    前記第1の符号化方式に関連する前記符号化フラグによって反転されていることが示されるデータビットを反転させることとを行わせるためのプログラミングを含む、請求項52に記載のプロセッサ可読記憶媒体。
  54. 処理回路に、前記第2の符号化方式に対して前記データビットのグループを復号させるための前記プログラミングは、処理回路に、
    前記第2の符号化方式に関連する符号化フラグを識別することと、
    前記第2の符号化方式に関連する前記符号化フラグによって反転されていることが示されるデータビットを反転させることとを行わせるためのプログラミングを含む、請求項52に記載のプロセッサ可読記憶媒体。
  55. 前記第1の符号化方式は、所定状態を示す前記受信されたデータビットのデータチャネル上のデータビットの数に基づく符号化方式を含み、前記第2の符号化方式は、前記データチャネル上の遷移の数に基づく符号化方式を含む、請求項52に記載のプロセッサ可読記憶媒体。
  56. 前記第1の符号化方式は、前記受信されたデータビットに関するデータチャネル上の遷移の数に基づく符号化方式を含み、前記第2の符号化方式は、所定の状態を示す前記データチャネル上のデータビットの数に基づく符号化方式を含む、請求項52に記載のプロセッサ可読記憶媒体。
JP2016532074A 2013-11-21 2014-11-10 瞬時電流と信号遷移の両方を制限するためにデータ反転を容易にするためのデバイスおよび方法 Pending JP2017503377A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/086,858 2013-11-21
US14/086,858 US9270417B2 (en) 2013-11-21 2013-11-21 Devices and methods for facilitating data inversion to limit both instantaneous current and signal transitions
PCT/US2014/064760 WO2015077066A1 (en) 2013-11-21 2014-11-10 Devices and methods for facilitating data inversion to limit both instantaneous current and signal transitions

Publications (1)

Publication Number Publication Date
JP2017503377A true JP2017503377A (ja) 2017-01-26

Family

ID=51987487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016532074A Pending JP2017503377A (ja) 2013-11-21 2014-11-10 瞬時電流と信号遷移の両方を制限するためにデータ反転を容易にするためのデバイスおよび方法

Country Status (7)

Country Link
US (1) US9270417B2 (ja)
EP (1) EP3072238B1 (ja)
JP (1) JP2017503377A (ja)
KR (1) KR20160089415A (ja)
CN (1) CN105765866B (ja)
CA (1) CA2926832A1 (ja)
WO (1) WO2015077066A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6126317B1 (ja) * 2014-02-07 2017-05-10 クアルコム,インコーポレイテッド パーティション化されたデータバスのための符号化

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792246B2 (en) * 2014-12-27 2017-10-17 Intel Corporation Lower-power scrambling with improved signal integrity
DE102019107002A1 (de) * 2018-03-29 2019-10-02 Nvidia Corporation Verringerung der kopplung und des leistungsrauschens an einer pam-4-i/o-schnittstelle
KR20220132368A (ko) * 2021-03-23 2022-09-30 에스케이하이닉스 주식회사 신호 전송 장치, 신호 수신 장치, 이를 이용하는 송수신 시스템 및 송수신 방법
US11656958B2 (en) * 2021-04-29 2023-05-23 Mellanox Technologies, Ltd. Redundancy data bus inversion sharing
US11720516B2 (en) * 2021-08-15 2023-08-08 Apple Inc. Methods for data bus inversion
US11836107B2 (en) 2022-03-01 2023-12-05 Apple Inc. Power consumption control based on random bus inversion

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11506289A (ja) * 1995-10-06 1999-06-02 シリコン・イメージ,インコーポレイテッド デジタルビデオ伝送のためのブロックコーディング
JP2004172971A (ja) * 2002-11-20 2004-06-17 Nec Electronics Corp エンコーダ、デコーダおよびデータ転送装置
JP2012034267A (ja) * 2010-08-02 2012-02-16 Nec Corp データ伝送システムにおける通信装置および通信方法
US20130061006A1 (en) * 2011-09-01 2013-03-07 Elpida Memory, Inc. Data mask encoding in data bit inversion scheme

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3346999B2 (ja) 1996-01-08 2002-11-18 株式会社東芝 入出力装置
US8112698B2 (en) * 2008-07-15 2012-02-07 Icomm Technologies Inc. High speed turbo codes decoder for 3G using pipelined SISO Log-MAP decoders architecture
DE10145722A1 (de) 2001-09-17 2003-04-24 Infineon Technologies Ag Konzept zur sicheren Datenkommunikation zwischen elektronischen Bausteinen
GB2402026B (en) * 2003-05-20 2005-07-13 Micron Technology Inc System and method for balancing capactively coupled signal lines
JP4789430B2 (ja) * 2004-06-25 2011-10-12 パナソニック株式会社 音声符号化装置、音声復号化装置、およびこれらの方法
JP5219699B2 (ja) * 2007-08-30 2013-06-26 パナソニック株式会社 符号化装置及び復号装置
US7522073B1 (en) 2007-11-30 2009-04-21 Qimonda North America Corp. Self-adapted bus inversion
US20090172495A1 (en) * 2007-12-27 2009-07-02 Via Telecom, Inc. Methods and Apparatuses for Parallel Decoding and Data Processing of Turbo Codes
US7616133B2 (en) 2008-01-16 2009-11-10 Micron Technology, Inc. Data bus inversion apparatus, systems, and methods
US8498344B2 (en) 2008-06-20 2013-07-30 Rambus Inc. Frequency responsive bus coding
KR20100024255A (ko) 2008-08-25 2010-03-05 삼성전자주식회사 입출력 인터페이스 및 입출력 데이터 전송 방법
JP5657242B2 (ja) * 2009-12-09 2015-01-21 株式会社東芝 半導体装置及びメモリシステム
US8879654B2 (en) 2010-03-10 2014-11-04 Micron Technology, Inc. Communication interface with configurable encoding based on channel termination
US8751906B2 (en) * 2011-06-13 2014-06-10 Marvell World Trade Ltd. Systems and methods for operating on a storage device using a life-cycle dependent coding scheme
US8726139B2 (en) 2011-12-14 2014-05-13 Advanced Micro Devices, Inc. Unified data masking, data poisoning, and data bus inversion signaling
JP5952072B2 (ja) 2012-04-26 2016-07-13 ルネサスエレクトロニクス株式会社 符号化装置、復号化装置及び伝送システム
US8964879B2 (en) * 2012-07-18 2015-02-24 Rambus Inc. Crosstalk reduction coding schemes
US9189051B2 (en) * 2012-12-14 2015-11-17 International Business Machines Corporation Power reduction by minimizing bit transitions in the hamming distances of encoded communications
US9124300B2 (en) * 2013-02-28 2015-09-01 Sandisk Technologies Inc. Error correction coding in non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11506289A (ja) * 1995-10-06 1999-06-02 シリコン・イメージ,インコーポレイテッド デジタルビデオ伝送のためのブロックコーディング
JP2004172971A (ja) * 2002-11-20 2004-06-17 Nec Electronics Corp エンコーダ、デコーダおよびデータ転送装置
JP2012034267A (ja) * 2010-08-02 2012-02-16 Nec Corp データ伝送システムにおける通信装置および通信方法
US20130061006A1 (en) * 2011-09-01 2013-03-07 Elpida Memory, Inc. Data mask encoding in data bit inversion scheme

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6126317B1 (ja) * 2014-02-07 2017-05-10 クアルコム,インコーポレイテッド パーティション化されたデータバスのための符号化
JP2017514191A (ja) * 2014-02-07 2017-06-01 クアルコム,インコーポレイテッド パーティション化されたデータバスのための符号化

Also Published As

Publication number Publication date
KR20160089415A (ko) 2016-07-27
US20150139355A1 (en) 2015-05-21
CN105765866A (zh) 2016-07-13
US9270417B2 (en) 2016-02-23
EP3072238B1 (en) 2019-03-13
CA2926832A1 (en) 2015-05-28
EP3072238A1 (en) 2016-09-28
CN105765866B (zh) 2019-04-16
WO2015077066A1 (en) 2015-05-28

Similar Documents

Publication Publication Date Title
JP2017503377A (ja) 瞬時電流と信号遷移の両方を制限するためにデータ反転を容易にするためのデバイスおよび方法
JP6126317B1 (ja) パーティション化されたデータバスのための符号化
US9673969B2 (en) Transcoding method for multi-wire signaling that embeds clock information in transition of signal state
US20110246853A1 (en) Semiconductor device and decoding method thereof
JP2016514441A (ja) 動作の速度に基づくデータバス反転(dbi)符号化
CN108694918A (zh) 编码方法及装置、解码方法及装置及显示装置
TW201810959A (zh) 用於符號轉變時鐘轉碼的偵錯和糾錯的翻轉位元
CN107077448A (zh) 用于多模总线的同时边缘翻转免疫电路
US10505672B2 (en) FEC decoding apparatus and method
GB2520708A (en) Multi-stage codeword detector
US20140101517A1 (en) Encoding and Decoding Redundant Bits to Accommodate Memory Cells Having Stuck-At Faults
WO2017186040A1 (zh) 一种音频信号编码、解码方法及音频信号编码器、解码器
JP2007150396A (ja) 通信装置
KR102582152B1 (ko) Pam 3 신호를이용한 데이터 반전 회로
CN111817729B (zh) 一种译码终止方法及装置
US20160321073A1 (en) Method and apparatus for controlling register of reconfigurable processor, and method and apparatus for creating command for controlling register of reconfigurable processor
CN107039075A (zh) 非易失性存储装置
KR20240061851A (ko) 논리 회로, 이를 포함하는 인코더, 및 이를 이용한 제어 신호 생성 방법
TW201805948A (zh) 使用數據編碼以減少記憶體裝置之編程時間的方法和系統
KR102303752B1 (ko) 복호화 명령어를 실행하는 방법 및 장치, 복호화 명령어를 생성하는 방법 및 장치 및 기록매체
WO2017016081A1 (zh) 字符边界确定方法、装置和存储介质
CN105049062A (zh) 钱式搜索装置、存储装置以及钱式搜索方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171024

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180921

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190507