JP5230960B2 - データバスインバージョンを使う低電力バランスコード - Google Patents

データバスインバージョンを使う低電力バランスコード Download PDF

Info

Publication number
JP5230960B2
JP5230960B2 JP2007098643A JP2007098643A JP5230960B2 JP 5230960 B2 JP5230960 B2 JP 5230960B2 JP 2007098643 A JP2007098643 A JP 2007098643A JP 2007098643 A JP2007098643 A JP 2007098643A JP 5230960 B2 JP5230960 B2 JP 5230960B2
Authority
JP
Japan
Prior art keywords
data
bits
bit
flag
significant
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
Application number
JP2007098643A
Other languages
English (en)
Other versions
JP2007282237A (ja
Inventor
升浚 ▲ぺ▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2007282237A publication Critical patent/JP2007282237A/ja
Application granted granted Critical
Publication of JP5230960B2 publication Critical patent/JP5230960B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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/14Handling requests for interconnection or transfer
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/02Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1048Data bus control circuits, e.g. precharging, presetting, equalising

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Dc Digital Transmission (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、メモリリフレッシュ(refresh)に必要な電力を減らすための方法及び装置に係り、より詳細には、メモリのリフレッシュ期間の間に使われるバランシングコーディングのための方法及び装置に関する。
インターフェースシステムは、基本的に情報を信号に変換する送信器(transmitter)、前記信号を伝送する伝送媒体、前記信号を受信して使うことができる情報に変換する受信器とを含む。
通常のインターフェースシステムに使われるドライバーは、インバーター型であり、例えば、データが1である時は電流パスがなく、データが0である時は前記伝送媒体を介して電流パスがある。
したがって、前記データレベルによって前記ドライバーの全体電流消耗は変化することができ、これは結果的に同時スイッチングノイズ(Simultaneous Switching Noise、SSN)を発生させうる。
また、前記インターフェースシステムの電圧源の間の寄生インダクタンスは、ノイズ、例えば、ジッタ(jitter)の原因になり、前記データ信号の電圧マージン(voltage margin)や時間マージンを減少させうる。結局ノイズは、データ周波数及びシステム性能を低下させうる。
速くて高性能(例えば、減少されたノイズ)の伝送(transmission)を提供するのに使われうる多くのコーディング技術が存在する。
相異なるコーディング技術は、相異なるトレードオフ(tradoffs)、例えば、deployment、オーバーへッド(overhead)、遷移密度(transition density)及びDCバランス、アライメント(alignment)、エラー(保護、検出、複製(replications))、及び複雑性(complexity、ゲート数(gate count))を提供できる。
8B/10Bは、ストリーム(stream)内に0と1との数が同一になるように保証することで適切なDCバランスを保証する效果的な遷移(transitions)、整列の容易性(前記バイトがビットストリーム内で開始する所を探すこと)、強靭性(robustness、エラーに対する耐性(tolerance))、及び低いデザイン複雑度(low design complexity)を提供する広く使われるコーディング技術の一つである。
前記8B/10Bコーディング方法は、8ビットシンボルを10ビットシンボルにマッピングする。前記8B/10B内で使われるすべてのコードは、3ないし10の遷移を有する。
各コードワードは、一つの列(row)で4個よりさらに多い1または0を発生させないか、または一つよりさらに大きい不均衡(imbalance)をもたらさない。このような性質を用いてそれぞれのキャラクター(character)は、二つのマッピング(前記コード及び前記コードの反転)に割り当てられ、前記伝送過程は、+1と−1との間で不一致(running disparity)を維持するために適当なコード(+/−)を選択できる。
これは、二つのシンボルのストリングで0ほど1が存在するということを意味し、列であまりにも多い0または1が存在しないということを意味する。
これは、インタシンボル干渉(intersymbol interference)を減らすのに助けになるために高速(high rates)で伝送される必要がある信号のために重要な特性(attribute)である。
このようなすべての特性は、8B/10Bが最も広く使われるコーディング方法になるようにした。しかし、8B/10Bは、25%の大きいオーバーヘッド(例えば、データの比率より25%さらに大きいシンボル比率)、高いコーディング複雑性(high coding complexity)、及び大きいレイアウト面積(large layout area)を有する。
また、さらに速いコンピュータ装置(computing devices)のための要求が増加するにつれてこのような装置が動作する周波数が増加して来た。このようなさらに高い周波数はさらに多い電力を要求する。大部分のコンピューティングシステムは、保存されたデータを維持するために周期的なリフレッシングを要求することができる動的メモリ(dynamic memories)を使う。
典型的に、マルチビットデータが“1”をさらに多く含むほど、前記マルチビットデータをリフレッシュするのにさらに多い電力が要求される。
図9に図示されたデータバスインバージョン(Data Bus Inversion、DBI)方法は、前記8B/10B方法のコーディングの複雑性、レイアウト面積、及び電力消耗を減らすために使われうる。
具体的に、前記DBI方法は、マルチビットデータ(例えば、8ビットデータ)を受信する段階(S910)、及び前記マルチビットデータで0と1との数を計算する段階(S920)を含む。
その次に、S930段階で、0の数が既定の値(k、例えば、8ビットデータに対して4)を超過するか否かが決定されうる。
S940段階で、前記既定の値(k)が超過されれば、前記データワードは反転されることができ、フラグ(flag)は第1値(例えば、1)に設定しうる。
S950段階で、前記既定の値(k)が超過されていなければ、前記データワードは維持されることができ、前記フラグは第2値(例えば、0)に設定しうる。
前記データは、前記フラグ値によってデコーディングされうる。前記フラグは、インバージョン指示器(inversion indicator)としての役割を果す。
しかし、前記DBI方法が使われてもデータ“0”の数は、一つから四つの間であり得る。したがって、前記最高電流消耗は、相変らず4×IDQ(静的電流(quiescent current))であり得る。ここで、1×IDQは、一つのDQ当り電流消耗の量を表わす。
本発明が果そうとする技術的な課題は、前記関連技術(related art)の制限と短所とに起因した一つ以上の問題を実質的に克服するバランスコーディングのための方法及び装置を提供することにある。
したがって、メモリリフレッシュに必要な電力消耗を減らす方法及び装置を提供することが本発明の一実施形態の一特徴である。
メモリリフレッシュの間にノイズを減らす方法及び装置を提供することが本発明の一実施形態の一特徴である。
メモリリフレッシュの間に使うバランシングコーディングのための方法及び装置を提供することが本発明の一実施形態の一特徴である。
前述した本発明の特徴、本発明の他の特徴及び長所のうち少なくとも一つは、ゼロ(zero)とDBI最大値との間で相異なる場合のためのゼロの数の間に第1デルタを有するデータであるデータバスインバージョンを使ってエンコーディングされたデータを受信する段階、前記DBIデータのうち(across the DBI data)ゼロの数をバランスするために前記DBIデータをバランスコーディングする段階、及びゼロよりさらに大きくて前記DBI最大値より小さいか同じである最小数と前記最小数に前記第1デルタより小さな第2デルタを加えたものと同一の最大数との間で、相異なる場合のためのゼロの数を有するデータを出力する段階を含む方法を提供することによって実現されうる。
前記第2デルタは、前記第1デルタの2分の1になりうる。前記バランスコーディングは、n回反復されることができ、前記第2デルタは、前記第1デルタを2で割ったものより大きいか同じであり得る。
前記バランスコーディングは、それぞれの場合のためにマルチビットデータとインバージョン指示器とを含むDBIデータ内のデータ“0”の数をカウンティングする段階、前記データ“0”の数を前記最小数と比べる段階、前記数が前記最小数より大きいか同じである時にフラグを“1”に設定し、前記フラグと前記DBIデータとをエンコーディングされたデータに出力する段階、前記数が前記最小数より小さい時に前記フラグを“0”に設定する段階、前記データ“0”の数に1を加算したものが前記最小数より大きいか同じである時に前記フラグ及び前記DBIデータをエンコーディングされたデータに出力する段階、及びデータ“0”の数に1を加算したものが前記最小数より小さい時に前記マルチビットデータ内の少なくとも最下位2ビットの値を変更し、前記インバージョン指示器、前記フラグ、及び前記変更されたマルチビットデータをエンコーディングされたデータに出力する段階とを含みうる。
前記変更する段階は、前記少なくとも最下位2ビットをインバーティングする段階を含みうる。前記変更する段階は、前記少なくとも最下位2ビットをゼロに設定する段階を含みうる。
変更された前記少なくとも最下位2ビットは、前記マルチビットデータのビットの数の2分の1より小さく、前記マルチビットデータのビットの数の4分の1より大きいか同じであり得る。
前記バランスコーディングは、n回反復されうる。変更された前記少なくとも最下位2ビットは、前記マルチビットデータのビットの数を2で割ったものより小さく、前記マルチビットデータのビットの数を2n+1で割ったものより大きいか同じであり得る。
前記出力段階は、前記エンコーディングされたデータをメモリに保存する段階を含みうる。前記方法は、前記メモリに保存されたエンコーディングされたデータを読み取る段階、及び前記インバージョン指示器の値、前記フラグの値、及び前記少なくとも最下位2ビットの値によって前記少なくとも最下位2ビットを保存する段階とを含みうる。前記方法は、前記インバージョン指示器の値によって前記マルチビットデータを反転させる段階を含みうる。
前述した本発明の特徴、本発明の他の特徴及び長所のうち少なくとも一つは、マルチビットデータ及びインバージョン指示器を含むデータバスインバージョンデータを受信し、前記DBIデータ内のデータ“0”の数がゼロより大きくてDBI最大ゼロの数より小さいか同じであるデータ“0”の最小数より小さい時に第1値になり、前記DBIデータ内のデータ“0”の数が前記最小数より大きいか同じである時に第2値になるフラグを出力し、またデータ“0”の数に1を加算したものが前記最小数より小さい時にトリガー信号を出力するロジックレベル検出器と、前記ロジックレベル検出器から前記マルチビットデータの少なくとも最下位2ビットと前記トリガー信号とを受信し、前記トリガー信号に応答して前記少なくとも最下位2ビットを変更し、一方では変更されていない前記最下位ビットを出力するマルチプレクサを含むバランシング部と、を備えるシステムを提供することで実現されうる。
また、前記バランシング部は、前記変更されていない前記最下位ビットを除いたマルチビットデータ、前記インバージョン指示器、及び前記フラグをさらに出力できる。
前記マルチプレクサは、前記少なくとも最下位2ビットを反転させるか前記少なくとも最下位2ビットをゼロに設定できる。
前記バランシング部は、n回使われることができ、前記最下位ビットの数は前記マルチビットデータのビットの数を2で割ったものより小さく、前記マルチビットデータのビットの数を2n+1で割ったものより大きいか同じように変更されうる。
前記システムは、前記バランシング部からの出力を保存するためのメモリを含みうる。前記システムは、前記インバージョン指示器、前記フラグ、前記最下位ビットを除いたマルチプルビットデータ及び前記最下位ビットを受信し、前記インバージョン指示器の値、前記フラグの値、及び前記マルチビットデータの前記少なくとも最下位ビットの値によって前記最下位ビットを復旧し、一方では変更されていない前記最下位ビットを出力するバランスリバーシング部を含みうる。
前記システムは、前記インバージョン指示器、前記少なくとも最下位2ビット及び前記フラグを受信し、前記インバージョン指示器、前記フラグ、及び前記少なくとも最下位2ビットのパターンが前記最下位ビットが変更されたということを表わす時にトリガー(trigger)信号を出力するパターン検出器と、前記最下位ビット及び前記トリガー信号を受信し、前記トリガー信号に応答して前記最下位ビットを復旧し、一方では変更されていない前記最下位ビットを出力するマルチプレクサを含むバランスリバーシング部と、を含みうる。
前記バランスリバーシング部は、前記最下位ビットを除いた前記インバージョン指示器及びマルチビットデータをさらに出力できる。
前記システムは、前記インバージョン指示器及び前記マルチビットデータを受信し、前記マルチビットデータを復旧するデコーディング部を含みうる。
前述した本発明の特徴、本発明の他の特徴及び長所のうち少なくとも一つは、プロセッサによって実行される時、前記プロセッサが前述した何れか方法を実行させる実行可能な命令を提供する記録媒体を提供することによって実現されうる。
本発明によれば、メモリリフレッシュに必要な電力消耗を減らしうる。また、メモリリフレッシュの間にノイズを減らしうる。
前記技術的課題を果たすための本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施形態を例示する添付図面及び添付図面に記載された内容を参照しなければならない。以下、添付した図面を参照して、本発明の望ましい実施形態を説明することによって、本発明を詳しく説明する。各図面に付された同じ参照符号は、同じ部材を表わす。
本発明の実施形態によるコーディング方法は、2以上のフラグ(例えば、電力消費及び/またはノイズをさらに減少させるためのインバージョン指示器に追加して一つ以上のフラグ)を使うことができる。
図1は、本発明の一実施形態によるエンコーディング方法のフローチャートである。まず、S110段階で、前記マルチビットデータ内のデータ“0”の数がカウントされうる。次に、S120段階で、この数が既定の値(Z)と比較されうる。前記既定の値(Z)は、前記マルチビットデータ内のビットの数の半分と同じかさらに大きくなりうる。
S130段階で、前記既定の値(Z)が超過されれば、前記マルチビットデータは反転されることができ、第1フラグFlag1は、第1値(例えば、1)に設定しうる。
S140段階で、前記既定の値(Z)が超過されていなければ、前記マルチビットデータは維持されることができ、前記第1フラグFlag1は、第2値(例えば、0)に設定しうる。前記第1フラグFlag1は、前記インバージョン指示器としての役割を果す。
次に、S150段階で、前記S110段階でカウントされたデータ“0”の数と前記第1フラグFlag1の値との和が既定の値(M)と比較されうる。前記既定の値(M)は、前記既定の値(Z)と同一であり得る。
S170段階で、前記和が前記Mより少なければ、第2フラグFlag2は、第1値(例えば、0)に設定しうる。S180段階では、S110段階でカウントされた前記データ“0”の数、前記第1フラグFlag1の値、及び前記第2フラグFlag2の値の和が前記既定の値(M)と比較されうる。
前記和が前記Mと同じかさらに大きければ、前記マルチビットデータは維持されることができ、前記方法は前記データを伝送できるS191段階に進行しうる。
前記和が前記Mより小さければ、前記マルチビットデータのうち少なくとも2ビットはゼロに変更(change)されうる。例えば、前記マルチビットデータ内でビットの数の半分までゼロに変更されうる。次に、前記方法は、前記データを伝送できるS191段階に進行しうる。
S160段階で、前記和が前記Mと同じかさらに大きければ、前記マルチビットデータは維持されることができ、前記第2フラグFlag2は、第2値(例えば、1)に設定しうる。次に、前記方法は、前記データを伝送できるS191段階に進行しうる。
図2は、本発明の一実施形態による8ビットデータのためのコーディングテーブルを表わす。図2に図示されたように、前記マルチビットデータ(ここでは、8ビットデータ)は、エンコーディングされたデータ内のゼロの数を一つないし少なくともマルチビットの数の半分(例えば、4)の間の範囲にあるようにする前記DBI方法が適用可能である。
次に、前記DBIコーディングされたデータは、前記マルチビットデータのうちゼロの数の範囲内の差を減らし、それによってノイズを減らすために図1に図示されたS150ないしS190過程を経る。
具体的に、CASE1ないしCASE5で、ゼロの数が前記既定の値(Z)を超過するので、前記マルチビットデータは反転されることができ、前記第1フラグFlag1は、第1値(例えば、1)に設定しうる。
一方、CASE6ないしCASE9で、ゼロの数が前記既定の値(Z)を超過しないので、前記マルチビットデータは維持されることができ、前記第1フラグFlag1は、第2値(例えば、0)に設定しうる。
図2に図示されたように、バランスエンコーディングの間に前記DBIエンコーディング後にゼロの数の前記範囲に対する中間数(例えば、2)より小さな数を有する場合(ここでは、CASE1、CASE2、及びCASE9)に対しては、前記第2フラグFlag2は、第1値(例えば、0)になるように設定しうる。
他のすべての場合のためには、前記第2フラグFlag2は、第2値(例えば、1)になるように設定しうる。前記第1フラグFlag1及び前記第2フラグFlag2のための前記第1及び第2値は、同一ではないこともある。
ある場合(case)に対する全体ゼロの数が相変らず前記中間数より小さな場合(例えば、CASE1)、前記データの多数の最下位ビット(least significant bits、例えば、最後の2ビット)は、2ビットデータ(230)によって指示されたようにゼロに設定しうる。したがって、ゼロの数は、2個から4個の間の範囲にある。
したがって、前記コードはバランスされることができ、例えば、相異なる場合の間のデルタ(delta)は減少しうる。具体的に、前記デルタは、4IDQから2IDQに減少しうる。
図3は、本発明の一実施形態によるマルチビットデータをデコーディングするためのフローチャートである。S310段階で、前記エンコーディングされたマルチビットデータ、前記第1フラグFlag1、及び前記第2フラグFlag2は受信されうる。
S320段階で、パターン一致が決定されうる。例えば、前記第2フラグFlag2値と前記ゼロの数とがチェックされうる。
S330段階で、前記第2フラグFlag2がゼロであり、前記ゼロの数が前記Mより大きい場合、前記コード化されたマルチビットデータ内の前記ゼロは、S340段階に進行する前に1に復旧されうる。そうではなければ、前記プロセスは、S340段階に進行しうる。
前記第1フラグFlag1値が決定されうる。S340段階で、前記第1フラグFlag1が1であれば、前記マルチビットデータは反転されうる。S360段階で、前記第1フラグFlag1が1ではなければ、前記マルチビットデータは維持されうる。
図4は、シングルエンド並列データインターフェースシステム700のブロック図である。前記システム700は、送信器710及び受信器720を含む。
前記送信器710は、データ保存部711、エンコーディング部800、及びドライバー部714を含む。前記エンコーディング部800は、DBIエンコーディング部810及びバランス部820を含む。前記エンコーディング部800については、図5A及び図5Bと関連して下記でさらに詳しく説明する。
前記受信器720は、デコーディング部900及びデータ保存部723を含みうる。前記デコーディング部900は、バランスリバーシング部(balance reversing unit)910及びDBIデコーディング部920を含みうる。
前記デコーディング部900については、図6A及び図6Bと関連して下記でさらに詳しく説明する。
図5Aは、前記エンコーディング部800のブロック図を表わし、図5Bは、前記DBIエンコーディング部810及び前記バランス部820を含む前記エンコーディング部800の概略図を表わす。
前記バランス部820は、マルチプレクサ(MUX)821及びロジックレベル検出器822を含みうる。例えば、8ビットデータの各ビットに対して前記8ビットデータのうち最初の6ビットのデータは、前記ロジックレベル検出器822に出力されることができ、一方では如何なる追加プロセッシング(processing)もなしにDQ1ないしDQ6として前記バランス部820を介してパス(pass)されうる。
前記8ビットデータのうち最後の2ビットも前記ロジックレベル検出器822及び前記MUX821に出力されうる。前記第1フラグFlag1も前記ロジックレベル検出器822に出力されることができ、一方では如何なる追加プロセッシングもなしに前記バランス部820を介してパスされうる。
前記MUX821も外部から前記2ビットデータ830を受信することができ、前記ロジックレベル検出器822からトリガーTを受信できる。前記トリガーTは、前記8ビットデータ及び前記第1フラグFlag1内にあるゼロの数によって決定されうる。
前記MUX821は、DQ7及びDQ8を出力することができ、前記ロジックレベル検出器822は、前記第2フラグFlag2を出力できる。
図5Bに図示されたように、前記ロジックレベル検出器822は、ANDゲート及び2個のORゲートを含むことができ、前記MUX821は、一対のマルチプレクサ(Multiplexers)を含みうる。
具体的に、前記マルチビットデータの各ビットと前記第1フラグFlag1は、AND演算されることができ、演算結果は前記トリガーTとして前記MUX821に出力されうる。
前記トリガーTが1である時、前記入力データIN7、IN8は維持されることができ、前記出力データDQ7、DQ8に出力されうる。
前記トリガーTが0である時、前記出力データDQ7、DQ8は、ゼロに出力されうる。
前記トリガーTは、また前記ORゲートのうち最後のORゲートに出力されうる。残ったANDゲートは、個別的に反転された順次な入力を有する前記マルチビットデータ及び前記第1フラグFlag1をAND演算した結果を前記ORゲートのうち最初のORゲートに出力できる。
前記最初のORゲートは、演算結果を前記最後のORゲートに出力することができ、その次に、前記最後のORゲートは、前記第2フラグFlag2を出力できる。
図6Aは、前記デコーディング部900のブロック図を表わし、図6Bは、前記バランスリバーシング部910及び前記DBIデコーディング部920を含む前記デコーディング部900の概略図を表わす。前記バランスリバーシング部910は、MUX911及びパターン検出器(pattern detector)912を含みうる。
前記8ビットデータのうち前記最初の6ビットデータは、如何なる追加プロセッシングもなしに前記バランスリバーシング部910を介して前記DBIデコーディング部920にパスされうる。
前記8ビットデータのうち最後の2ビットは、前記パターン検出器912及び前記MUX911に出力されうる。前記第1フラグFlag1も前記パターン検出器912に出力されることができ、一方では如何なる追加プロセッシングもなしに前記バランスリバーシング部910を介してパスできる。
また、前記MUX911は、外部から2ビットデータ(“11”)を受信することができ、前記パターン検出器912からトリガーQを受信できる。前記トリガーQは、前記8ビットデータのうち前記最後の2ビットデータ、前記第1フラグFlag1、及び前記第2フラグFlag2によって決定されうる。
次に、前記MUX911は、前記DBIデコーディング部920に前記最後の2ビットデータを出力できる。
図6Bに図示されたように、前記パターン検出器912は、前記第1フラグFlag1と前記DQ7、DQ8、及び前記第2フラグFlaq2の反転された入力を受信するANDゲートとを含むことができ、演算結果を前記トリガーQとして前記MUX911に出力できる。
前記トリガーQが1である時、前記出力データDQ7、DQ8は、1に復旧されうる。前記トリガーQが0である時、前記出力データDQ7、DQ8は、維持されうる。
図7A及び図7Bは、コーディングしていない信号と本発明の一実施形態によってコーディングされた信号に対するアイダイヤグラム(eye diagrams)を表わす。図7A及び図7Bに図示されたように、本発明の一実施形態によるコーディングは顕著に、例えば、半分以上ジッタを減少させうる。
図8は、本発明の他の実施形態による8ビットデータに対するコーディングテーブルを表わす。図8に図示されたように、前記マルチビットデータ(ここでは、8ビットデータ)は、先にエンコーディングされたデータ内にゼロの数が0ないし少なくとも前記マルチビットの半分ほどの範囲にあるようにする前記DBI方法を受けられうる。
次に、前記DBIコーディングされたデータは、前記マルチビットデータのうちゼロの数の範囲において差を減らし、それによってノイズを減らすために図1のS150段階ないしS180段階を経られうる。
しかし、ゼロが十分ではない時、前記最下位ビット、ここでは、前記マルチビットデータの最後の3ビットを強制にゼロにするよりは前記最下位ビットが反転されうる。
例えば、図8に図示されたように、ゼロの数の範囲内の中間数(例えば、2)より小さいか同じである場合(ここでは、CASE1、CASE2、CASE3、CASE8、及びCASE9)に対して前記第2フラグFlag2は、ゼロになるように設定しうる。すべての他の場合に対しては、前記第2フラグFlag2は、1になるように設定しうる。
前記ゼロの数が相変らず前記中間数より小さいか同じである場合(例えば、CASE1、CASE2、及びCASE9)、前記データの前記最後の3ビットが反転されうる。したがって、いま前記ゼロの数は、3ないし5の間の範囲にあり得る。したがって、ノイズが減少されながら相異なる場合の間にデルタは減少する。具体的に、例えば、前記デルタは、4IDQから2IDQに減少する。
本発明の実施形態が説明の便宜上、8ビットワードであるマルチビットデータと関連して記述されたが、本発明の実施形態によるバランスコーディングは、他のマルチビットデータ(例えば、16ビットデータ、64ビットデータなど)にも拡張されうる。
ここでは、説明の便宜上、単に一つのバランスコーディングのみが説明されたが反復されたバランスコーディングも適用可能である。
例えば、nバランスコーディングが使われる時、最初のマルチビットデータ内のゼロの最大数とゼロの最小数との間の最初デルタ(Δi)は、2(n+1)まで減少しうる。n=0は、単にデータバスインバージョン(DBI)だけが起きたということ、例えば、如何なるバランスコーディングも実行されなかったということを表わす。
すなわち、nバランスコーディング後に結果として生ずるデルタ(Δn)は、次の数式1を満足できる。
また、ゼロに設定されるか反転される最下位ビットとして使われうるmビットを有するマルチビットデータ内のビットの数(x)は、次の数式2を満足できる。
以上、本発明の実施形態が開示され、特定用語が適用されたとしても、それらは一般的で技術的な意味として使われて解釈されるものであり、制限的な目的のためのものではない。例えば、本発明の実施形態による前記マルチビットデータのバランシングは、ソフトウェア、例えば、機械によって接近された時、前記機械が本発明の方法によって前記マルチビットデータをバランスさせるデータを含む機械接近可能な媒体(machine−accessible medium)を有する一つの製品として具現可能である。
また、8ビットデータとしてマルチビットデータの例を挙げたが、本発明の実施形態は、他のサイズのマルチビットデータにも適用可能である。それぞれの追加的なフラグは、コーディングされたデータの間のデルタを2の因数(a factor of two)まで減少させうる。
したがって、当業者ならば、これより多様な変形及び均等な他実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決まるべきである。
メモリリフレッシュに必要な電力を減らすための方法及び装置関連の技術分野に適用可能である。
本発明の一実施形態によるエンコーディング過程に対するフローチャートである。 本発明の一実施形態によるコーディングテーブルを表わす図である。 本発明の一実施形態によるエンコーディング過程に対するフローチャートである。 本発明の一実施形態によるシングルエンド並列データインターフェースシステムのブロック図を表わす。 本発明の一実施形態による図4に図示されたエンコーディング部のブロック図である。 本発明の一実施形態による図5Aに図示されたエンコーディング部の概略図である。 本発明の一実施形態による図4に図示されたデコーディング部のブロック図である。 本発明の一実施形態による図6Aに図示されたデコーディング部の概略図である。 コーディングを使っていないアイダイヤグラムを表わす図である。 本発明の一実施形態によるコーディングを使ったアイダイヤグラムを表わす図である。 本発明の一実施形態によるコーディングテーブルを表わす図である。 一般的なエンコーディング方法のフローチャートである。
符号の説明
700:シングルエンド並列データインターフェースシステム
710:送信器 711:データ保存部
714:ドライバー部 720:受信器
723:データ保存部 800:エンコーディング部
810:DBIエンコーディング部 820:バランス部
821:マルチプレクサ(MUX) 822:ロジックレベル検出器
900:デコーディング部 910:バランスリバーシング部
911:MUX 912:パターン検出器
920:DBIデコーディング部

Claims (19)

  1. データバスインバージョン(DBI)を使ってエンコーディングされたデータを受信する段階であって、前記データは、前記データのビット数の半分に対応する第1デルタを有する、段階と、
    前記データのデータ“0”の数をバランスするために前記データをバランスコーディングする段階と、
    ゼロより大きいが前記ビット数の半分と同じか小さい最小数と、前記第1デルタより小さな第2デルタを前記最小数に加えた最大数との間で相異なるデータ“0”の数を有するデータを出力する段階と、
    を備え
    前記バランスコーディング段階は、
    それぞれのケースに対して、マルチビットデータとインバージョンインジケータとを含むDBIデータ内のデータ“0”の数をカウンティングする段階と、
    前記データ“0”の数を前記最小数と比べる段階と、
    前記数が前記最小数より大きいか同じである時、フラグを“1”に設定し、前記フラグと前記DBIデータとをエンコーディングされたデータに出力する段階と、
    前記数が前記最小数より小さい時、前記フラグを“0”に設定する段階と、
    前記データ“0”の数に1を加算したものを前記最小数と比べる段階と、
    前記データ“0”の数に1を加算したものが前記最小数より大きいか同じである時、前記フラグ及び前記DBIデータをエンコーディングされたデータに出力する段階と、
    データ“0”の数に1を加算したものが前記最小数より小さい時、前記マルチビットデータ内の少なくとも最下位2ビットの値を変更し、前記インバージョンインジケータ、前記フラグ、及び前記変更されたマルチビットデータをエンコーディングされたデータに出力する段階と、
    を備えることを特徴とする方法。
  2. 前記第2デルタは、前記第1デルタの2分の1であることを特徴とする請求項1に記載の方法。
  3. 前記バランスコーディングは、n回反復され、前記第2デルタは、前記第1デルタを2で割ったものより大きいか同じであることを特徴とする請求項1に記載の方法。
  4. 前記変更する段階は、
    少なくとも最下位2ビットをインバーティングする段階を含むことを特徴とする請求項に記載の方法。
  5. 前記変更する段階は、
    少なくとも最下位2ビットをゼロに設定する段階を含むことを特徴とする請求項に記載の方法。
  6. 前記少なくとも最下位2ビットは、前記マルチビットデータのビットの数の2分の1より小さく、前記マルチビットデータのビットの数の4分の1より大きいか同じように変更されることを特徴とする請求項に記載の方法。
  7. 前記バランスコーディングは、n回反復され、前記少なくとも最下位2ビットは、前記マルチビットデータのビットの数を2で割ったものより小さく、前記マルチビットデータのビットの数を2n+1で割ったものより大きいか同じように変更されることを特徴とする請求項に記載の方法。
  8. 前記出力段階は、
    前記エンコーディングされたデータをメモリに保存する段階を含むことを特徴とする請求項に記載の方法。
  9. 前記方法は、
    前記メモリに保存されたエンコーディングされたデータを読み取る段階と、
    前記インバージョンインジケータの値、前記フラグの値、及び前記少なくとも最下位2ビットの値によって前記少なくとも最下位2ビットを保存する段階と、をさらに備えることを特徴とする請求項に記載の方法。
  10. 前記方法は、
    前記インバージョンインジケータによって前記マルチビットデータを反転させる段階をさらに備えることを特徴とする請求項に記載の方法。
  11. バランシング部を備えるシステムにおいて、
    前記バランシング部は、
    マルチビットデータ及びインバージョンインジケータを含むデータバスインバージョンデータを受信し、前記DBIデータ内のデータ“0”の数がゼロより大きく、前記マルチビットデータのビット数の半分より小さいか同じであるデータ“0”の最小数より小さい時に第1値になり、前記DBIデータ内のデータ“0”の数が前記最小数より大きいか同じである時に第2値になるフラグを出力し、またデータ“0”の数に1を加算したものが前記最小数より小さい時にトリガー信号を出力するロジックレベル検出器と、
    前記ロジックレベル検出器から前記マルチビットデータの少なくとも最下位2ビットと前記トリガー信号とを受信し、前記トリガー信号に応答して前記少なくとも最下位2ビットを変更し、一方では変更されていない前記最下位ビットを出力するマルチプレクサと、
    を備え、
    前記バランシング部は、
    前記変更されていない前記最下位ビットを除いたマルチビットデータ、前記インバージョンインジケータ、及び前記フラグをさらに出力することを特徴とするシステム。
  12. 前記マルチプレクサは、前記少なくとも最下位2ビットを反転させることを特徴とする請求項11に記載のシステム。
  13. 前記マルチプレクサは、前記少なくとも最下位2ビットをゼロに設定することを特徴とする請求項11に記載のシステム。
  14. 前記バランシング部は、n回使われ、最下位ビットの数は、前記マルチビットデータのビットの数を2で割ったものより小さく、前記マルチビットデータのビットの数を2n+1で割ったものより大きいか同じように変更されることを特徴とする請求項11に記載のシステム。
  15. 前記システムは、前記バランシング部からの出力を保存するためのメモリをさらに備えることを特徴とする請求項11に記載のシステム。
  16. 前記システムは、前記インバージョンインジケータ、前記フラグ、前記最下位ビットを除いたマルチプルビットデータ及び前記最下位ビットを受信し、前記インバージョンインジケータの値、前記フラグの値、及び前記フラグの前記少なくとも最下位2ビットの値によって前記最下位ビットを復旧し、一方では変更されていない前記最下位ビットを出力するバランスリバーシング部をさらに備えることを特徴とする請求項11に記載のシステム。
  17. 前記システムは、
    バランスリバーシング部をさらに備え、
    前記バランスリバーシング部は、
    前記インバージョンインジケータ、前記少なくとも最下位2ビット及び前記フラグを受信し、前記インバージョンインジケータ、前記フラグ、及び前記少なくとも最下位2ビットのパターンが前記最下位ビットが変更されたということを表わす時にトリガー(trigger)信号を出力するパターン検出器と、
    前記最下位ビット及び前記トリガー信号を受信し、前記トリガー信号に応答して前記最下位ビットを復旧し、一方では変更されていない前記最下位ビットを出力するマルチプレクサと、を含み、
    前記バランスリバーシング部は、前記最下位ビットを除いた前記インバージョンインジケータ及びマルチビットデータをさらに出力することを特徴とする請求項11に記載のシステム。
  18. 前記システムは、
    前記インバージョンインジケータ及び前記マルチビットデータを受信し、前記マルチビットデータを復旧するデコーディング部をさらに備えることを特徴とする請求項17に記載のシステム。
  19. プロセッサによって実行される時、前記プロセッサが方法を実行させる実行可能な命令を提供する記録媒体(machine−readable medium)において、
    前記方法は、
    マルチビットデータとインバージョンインジケータとを含むデータバスインバージョン(DBI)データ内のデータ“0”の数をカウンティングする段階と、
    前記データ“0”の数をゼロより大きくて前記マルチビットデータのビット数の半分より小さいか同じであるデータ“0”の最小数と比べる段階と、
    前記数が前記最小数より大きいか同じである時、フラグを“1”に設定し、前記フラグと前記DBIデータとをエンコーディングされたデータに出力する段階と、
    前記数が前記最小数より小さい時、前記フラグを“0”に設定する段階と、
    前記データ“0”の数に1を加算したものと前記最小数とを比べる段階と、
    前記データ“0”の数に1を加算したものが前記最小数より大きいか同じである時、前記フラグ及び前記DBIデータをエンコーディングされたデータに出力する段階と、
    前記データ“0”の数に1を加算したものが前記最小数より小さい時、前記マルチビットデータ内の少なくとも最下位2ビットの値を変更し、前記インバージョンインジケータ、前記フラグ、及び前記変更されたマルチビットデータをエンコーディングされたデータに出力する段階と、
    を備えることを特徴とする記録媒体。
JP2007098643A 2006-04-04 2007-04-04 データバスインバージョンを使う低電力バランスコード Active JP5230960B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060030751A KR100877680B1 (ko) 2006-04-04 2006-04-04 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치
KR10-2006-0030751 2006-04-04

Publications (2)

Publication Number Publication Date
JP2007282237A JP2007282237A (ja) 2007-10-25
JP5230960B2 true JP5230960B2 (ja) 2013-07-10

Family

ID=38604683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007098643A Active JP5230960B2 (ja) 2006-04-04 2007-04-04 データバスインバージョンを使う低電力バランスコード

Country Status (5)

Country Link
US (1) US7495587B2 (ja)
JP (1) JP5230960B2 (ja)
KR (1) KR100877680B1 (ja)
CN (1) CN101079317B (ja)
TW (1) TW200818719A (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100902051B1 (ko) * 2007-07-12 2009-06-15 주식회사 하이닉스반도체 오류 검사 코드 생성장치 및 방법
US8581920B2 (en) * 2007-09-27 2013-11-12 Rambus Inc. Utilizing masked data bits during accesses to a memory
US7501963B1 (en) * 2007-10-17 2009-03-10 Micron Technology, Inc. Balanced data bus inversion
US7522073B1 (en) * 2007-11-30 2009-04-21 Qimonda North America Corp. Self-adapted bus inversion
US7616133B2 (en) 2008-01-16 2009-11-10 Micron Technology, Inc. Data bus inversion apparatus, systems, and methods
FR2928757B1 (fr) * 2008-03-14 2014-06-20 Centre Nat Rech Scient Procede et dispositif de codage, systeme electronique et support d'enregistrement associes
US7729166B2 (en) * 2008-07-02 2010-06-01 Mosaid Technologies Incorporated Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same
US8918597B2 (en) * 2008-08-29 2014-12-23 Infineon Technologies Ag Digital data inversion flag generator circuit
US7899961B2 (en) * 2008-09-02 2011-03-01 Qimonda Ag Multi-mode bus inversion method and apparatus
US20100245582A1 (en) * 2009-03-25 2010-09-30 Syclipse Technologies, Inc. System and method of remote surveillance and applications therefor
JP5575237B2 (ja) * 2009-07-13 2014-08-20 ラムバス・インコーポレーテッド 組み合わせデータマスクおよびデータバス反転を用いたデータ符号化
US8581755B2 (en) 2010-01-20 2013-11-12 Rambus Inc. Multiple word data bus inversion
US8260992B2 (en) * 2010-04-12 2012-09-04 Advanced Micro Devices, Inc. Reducing simultaneous switching outputs using data bus inversion signaling
US9420307B2 (en) 2011-09-23 2016-08-16 Qualcomm Incorporated Coding reference pictures for a reference picture set
US9264717B2 (en) 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
US8909840B2 (en) 2011-12-19 2014-12-09 Advanced Micro Devices, Inc. Data bus inversion coding
KR101960242B1 (ko) 2012-09-18 2019-03-20 삼성전자주식회사 신체 영역 네트워크 또는 저전력 네트워크에서 직류 발란싱을 수행하는 최소 에너지 코딩 방법 및 장치
JP6095768B2 (ja) * 2013-03-04 2017-03-15 富士機械製造株式会社 データベース、データベースの構築方法、通信装置及び電子部品装着装置
KR102029148B1 (ko) * 2013-09-02 2019-10-07 에스케이하이닉스 주식회사 반도체 장치 및 그의 동작 방법
US9252802B2 (en) * 2014-02-07 2016-02-02 Qualcomm Incorporated Encoding for partitioned data bus
KR20150099928A (ko) 2014-02-24 2015-09-02 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템
US20150317204A1 (en) * 2014-04-30 2015-11-05 Lsi Corporation Systems and Methods for Efficient Data Refresh in a Storage Device
US9665527B2 (en) * 2014-12-09 2017-05-30 Intel Corporation Dynamic bus inversion with programmable termination level to maintain programmable target ratio of ones and zeros in signal lines
US10540304B2 (en) 2017-04-28 2020-01-21 Advanced Micro Devices, Inc. Power-oriented bus encoding for data transmission
KR102441578B1 (ko) * 2017-10-27 2022-09-07 삼성전자주식회사 다중 데이터 버스 반전 동작을 수행하는 방법 및 메모리 장치
KR20210149543A (ko) * 2020-06-02 2021-12-09 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US11756592B2 (en) * 2020-09-29 2023-09-12 Samsung Electronics Co., Ltd. Memory device supporting DBI interface and operating method of memory device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173429B1 (en) * 1997-03-14 2001-01-09 Harris Corporation Apparatus for providing error correction data in a digital data transfer system
AU2002211646A1 (en) * 2000-11-07 2002-05-21 Intel Corporation Method and apparatus for reducing simultaneous switching output noise using dynamic bus inversion
US6633951B2 (en) 2001-03-15 2003-10-14 Intel Corporation Method for reducing power consumption through dynamic memory storage inversion
US20040068594A1 (en) 2002-10-08 2004-04-08 Anthony Asaro Method and apparatus for data bus inversion
KR100578219B1 (ko) 2004-12-30 2006-05-12 주식회사 하이닉스반도체 온-칩 데이터 전송 제어장치 및 그 제어방법
DE102005013322B3 (de) * 2005-03-22 2006-10-05 Infineon Technologies Ag Schaltung zur Erzeugung eines Datenbitinvertierungsflags (DBI)
KR100656448B1 (ko) 2005-11-29 2006-12-11 주식회사 하이닉스반도체 반도체 메모리의 dbi 신호 생성장치 및 방법

Also Published As

Publication number Publication date
KR100877680B1 (ko) 2009-01-09
KR20070099373A (ko) 2007-10-09
CN101079317A (zh) 2007-11-28
US20070242508A1 (en) 2007-10-18
CN101079317B (zh) 2012-01-18
US7495587B2 (en) 2009-02-24
TW200818719A (en) 2008-04-16
JP2007282237A (ja) 2007-10-25

Similar Documents

Publication Publication Date Title
JP5230960B2 (ja) データバスインバージョンを使う低電力バランスコード
US6999516B1 (en) Technique for emulating differential signaling
US7978099B2 (en) 17B/20B coding system
JP3590209B2 (ja) 変調符号化方法
KR0165441B1 (ko) 디지털 데이터 채널 부호화 및 복호화방법과 그 장치
US7962837B2 (en) Technique for reducing parity bit-widths for check bit and syndrome generation for data blocks through the use of additional check bits to increase the number of minimum weighted codes in the hamming code H-matrix
JPS6081925A (ja) 誤り訂正装置
US7392461B2 (en) Decoding for algebraic geometric code associated with a fiber product
JPWO2008056612A1 (ja) 情報セキュリティ装置
JPH0821957B2 (ja) コード化方法
US6456208B1 (en) Technique to construct 32/33 and other RLL codes
JP2007282235A (ja) 同時スイッチングノイズを低減するプリアンブルを含むdcバランスエンコーディングされたデータのための送受信方法及びシステム
US7339500B2 (en) Encoding method and decoding method
EP0902544B1 (en) Modulating device and demodulating device
US11757567B2 (en) Devices and methods for encoding and decoding to implement a maximum transition avoidance coding with minimum overhead
EP1143624A2 (en) Decoding apparatus and decoding method
JPS60180222A (ja) 符号誤り訂正装置
JP5284069B2 (ja) メモリシステム及びメモリアクセス方法
US8166356B2 (en) Memory system and memory access method
MX2010014341A (es) Método para codificar una cantidad de bits de una sección de datos y método correspondiente de descodificacion, método para codificar o descodificar datos de audio y/o video, método para transmitir datos de audio y/o video y medio de almacenamiento q
US7274312B2 (en) High rate coding for media noise
US7855665B1 (en) Enumerative DC-RLL constrained coding
KR20140046381A (ko) 고착 고장을 갖는 메모리 셀을 수용하기 위한 리던던트 비트의 인코딩 및 디코딩
JPH1198021A (ja) 復調装置および復調方法、並びに伝送媒体
KR0185944B1 (ko) (1,7)변조코드를 이용하는 복호화방법 및 그 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130321

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5230960

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250