JP2004537805A - 目的地アドレスに基づいたデータシフタを使用するデータフォーマット装置 - Google Patents
目的地アドレスに基づいたデータシフタを使用するデータフォーマット装置 Download PDFInfo
- Publication number
- JP2004537805A JP2004537805A JP2003517757A JP2003517757A JP2004537805A JP 2004537805 A JP2004537805 A JP 2004537805A JP 2003517757 A JP2003517757 A JP 2003517757A JP 2003517757 A JP2003517757 A JP 2003517757A JP 2004537805 A JP2004537805 A JP 2004537805A
- Authority
- JP
- Japan
- Prior art keywords
- data
- pointer
- shift register
- memory device
- byte
- 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.)
- Granted
Links
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000008859 change Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 abstract description 7
- 230000009172 bursting Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/08—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
【選択図】図1
Description
【0001】
本発明は、目的地アドレスに基づいたデータシフタを使用するデータフォーマット装置に関する。
【背景技術】
【0002】
コンピュータシステムにおいては、中央処理装置(CPU)はアドレスを与えることによりメモリにアクセスし、そのアドレスはデータ素子を集合的に記憶しているメモリセルのグループの特有の位置を示している。最初にメモリにアクセスするときには多くの動作が行われる可能性がある。これらの動作は最初のアクセスでは比較的遅くてもよい。その後データ自身が転送される。例えばある制御信号は処理を開始するために発生される。次にアドレスがメモリに送られる。この動作のオーバーヘッドまたは潜在性のために、メモリへの最初のアクセスは比較的長い時間を取ることができ、例えば多くの装置では4乃至7クロックサイクルを要している。
【0003】
メモリの潜在性を減少させるために、ある種のメモリ装置は各アクセスに対して連続的にメモリから4つの64ビットワード(256ビットまたは32バイト)を含むデータのブロックを読取っている。この“バーストアクセスモード”または“バースティング”の利点は、連続する3つのアクセスに対して最初のアクセスのオーバーヘッドの反復を避けていることである。後続するアクセスは4乃至7クロックサイクルの代わりに1乃至3クロックサイクルに短縮されることができる。
【0004】
バースティングをサポートするメモリ装置はバイトアドレス可能ではない。特定のバイトアドレスでメモリ位置をアクセスする代わりに、メモリ装置はデータ素子の多バイトブロックを検索する。データブロック内のデータ素子の幾つかはリクエストに対して有効ではない可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【0005】
データフォーマット装置はランダムアクセスメモリ(RAM)のようなソースからデータの多ブロックを取出すために使用され、その多ブロックを多数の小さいブロックに分解する。小さくされた各ブロックはその後適当なローカルメモリアドレスへ送られることができる。制御プログラムは小さい各ブロックは大き差とそれらの目的地アドレスとを決定する。小さい各ブロックは大きなブロック内のバイト境界まで分解されることができる。目的地アドレスはまた任意のバイト境界に位置されることができる。これはデータフォーマット装置の応答特性を複雑にする。供給RAMから来るときのデータ素子がどのバイトレーンかには関係なく、データフォーマット装置は新しいアドレスに書込まれるために正確なバイトレーンにこれらのバイトがあることを確実にしなければなにない。
【課題を解決するための手段】
【0006】
本発明のデータフォーマット装置はシフトレジスタおよびポインタ管理装置を含んでいる。供給ランダムアクセスメモリ(RAM)は、ローカルメモリアドレスに書込まれるメモリに対するバーストアクセス動作で検索される多バイトのデータブロックからのデータを記憶する。シフトレジスタは供給RAMからデータを受取り、そのRAMからのデータの読取りに応答してそのデータをシフトし、データを先入れ先出し(FIFO)メモリに書込む。ポインタ管理装置はポインタを維持し、そのポインタはデータがシフトレジスタ中へシフトされ、シフトレジスタからシフトされて取出されるようにポインタを動かすことによりFIFOの正確なバイトレーンへデータのサブブロックで第1の有効なバイトを指示する。
【0007】
ポインタ管理装置はポインタ値に基づいたインジケータを生成し、それはシフトレジスタが一杯(またはほぼ一杯)であるか空(またはほとんど空)であるかを制御プログラムに通知する。
【発明を実施するための最良の形態】
【0008】
図1は、本発明の1実施形態によるデータフォーマット装置102 を含むメモリアクセスシステム100 を示している。メモリ制御装置104 は”バーストアクセス”モードでメモリ装置106 からデータを読取ることができ、それにおいてデータの多バイトブロックがメモリから検索され、ローカルメモリアドレスに送られる前に一次的にランダムアクセスメモリ(RAM)のような別のメモリ装置中に負荷される。データブロック中のデータ素子はリクエストに対して有効でなくてもよい。また有効なデータブロックおよびそれらの目的地アドレスはバーストアクセスされた多バイトブロック中の任意のバイト境界に位置されることができる。
【0009】
データフォーマット装置102 は供給RAM108 からデータブロックを取出し、そのデータを1以上のローカルメモリアドレスに送ってもよい。データフォーマット装置102 は供給RAM108 から読取った大きい多バイトデータブロックを大きいブロック内の適当なバイト境界において多数のもっと小さいブロックに分割することができる。小さい各ブロックはローカルメモリ115 中の目的地アドレスに送られることができる。メモリ制御装置104 は小さい各ブロックの大きさおよびそれらの目的地アドレスを決定する。
【0010】
データフォーマット装置102 はカウンタ110 を含んでいてもよく、それは各目的地アドレスに対して書込まれた供給RAM108 からの現在の大きいブロックからどれだけの数のバイトの追跡を維持するために設けられている。データフォーマット装置102 は供給RAM108 から受信されたときにどのバイトレーンのデータ素子であるかには無関係に、新しいアドレスに書込むために正確なバイトレーンにデータをシフトする。例えば、4バイトのブロックでは、最初の2つのバイトはアドレス2 に書込まれる必要がある。第3のバイトはアドレス10に書込まれる必要がある可能性があり、第4のバイトはアドレス7 に書込まれる必要がある可能性がある。メモリバスが図2に示されているように4バイト幅であるならば、最初の2つのバイトはレーン2 および3 でそれぞれ必要になり、一方、第3のバイトはバイトレーン3 中にある必要があり、第4のバイトはバイトレーン4 中にある必要がある。
【0011】
データフォーマット装置102 は正確なバイトレーンにデータをシフトするシフトレジスタ112 を含んでいる。データフォーマット装置は任意の所定の瞬間に正確なバイトレーンを追跡し、決定するために別のカウンタのセット111 を使用してもよい。これらの値と、あるパラメータと、およびその現在の状態に基づいて、データフォーマット装置102 は、データ素子が受信FIFO(先入れ先出)レジスタまたはRAM116 に書込まれることが許容される前に、データを適当な位置、すなわち正しいバイトレーンにシフトする。
【0012】
データ素子はRAM108 が読取られるときRAMのデータバス114 からシフトレジスタ中に書込まれる。メモリ制御装置104 からのRAM読取りストローブ信号は、読取りが発生したシフトレジスタに通知される。読取りが発生したとき、全体の供給RAM108 のデータバスのデータはシフトレジスタ112 の最低の部分にコピーされ、シフトレジスタの低い部分からのデータはシフトレジスタの高い部分へシフトされる。シフトレジスタ112 の最高の部分のデータは失われることができる。
【0013】
シフトレジスタ112 の幅は供給RAMの速度およびワード幅と受信FIFOの速度およびワード幅との不整合に依存している。小さい不整合に対しては、供給RAMのデータバスの幅の4倍のシフトレジスタの幅で充分である。
【0014】
ポインタ管理装置120 は図2に示されるようにシフトレジスタ112 中のバイトのウインドウ200 を制御する。ウインドウ200 はポインタを含み、そのポインタは、次に受信FIFO116 に書込まれるワードの最低のバイト202 を指すポインタと次に受信FIFO116 に書込まれるワードの最高のバイト204 を指すポインタ(sr ポインタ)とを含んでいる。sr ポインタは受信FIFO116 に書込まれる最初のバイトが正確なバイトレーンにあることを確実にするためにメモリ制御装置104 により与えられたアドレスオフセットに因数分解される。
【0015】
ポインタ管理装置120 は、供給RAM108 、受信FIFO116 、メモリ制御装置104 の動作を監視し、ポインタを管理するために外部メモリアドレスおよび関連するバイトをウネーブルする。例えば、ポインタは供給RAM108 から読取られたデータの量により高いほうへシフトされる。データ素子が受信FIFO116 に書込まれるとき、ポインタは書かれたバイトの数だけデクリメントされる。しかしながら、データがRAM108 から読込まれており、同時に受信FIFO116 に書込まれているならば、ポインタの値はどれだけの数の有効なバイトが受信FIFO116 に書込まれるかに依存している。この場合に、ポインタ値は受信FIFO116 に書込まれている有効なバイトの数により減少され、供給RAM108 から読取られているバイトの数により増加される。実際の値は次式で決定され、
raml db 幅−バイト エネーブル
ここで、“raml db 幅”はバイトにおけるRAMのデータバスの幅を表し、“バイト エネーブル”は受信FIFO116 に書込まれるバイトの数を表している。
【0016】
バイト エネーブルはメモリ制御装置104 により設定されることができ、所定の外部メモリアドレスに対する受信FIFO116 への書込みの都度使用される。受信FIFO116 に対する全ての書込動作は、所定の外部メモリアドレスに対して最初と最後に書込まれる可能性のあることを除いてram2 db 幅(すなわちバイトによる受信FIFOのデータバス117 の幅)である充分に有効なワードを含んでいることが期待される。新しいアドレスに対して書込まれた目的地のRAM108 から最初に読取られた場合に、もしもバイト エネーブルがram2 db 幅と同じ値に設定されない場合には、フルワードより少ないデータが受信FIFO116 に書込まれる。この場合に、受信FIFOに任意の最後の書込の場合に、バイト エネーブルがポインタを調整して、それによりシフトレジスタ112 中に残されたデータ量を表す。
【0017】
図3は1実施例によるポインタ管理動作300 を示すフローチャートである。以下は動作300 を記述するVerilog言語を示している。
【0018】
常に(p0sedge クロックまたはp0sedge リセット)
開始
もしも(リセット)ならば、
ポインタ[4:0]≦5' h1F;
それでなければ、もしも(ポインタ リセット)ならば、
ポインタ[4:0]≦5' h1F;
それでなければ、もしも(読取り ストローブおよび書込み ストローブ)ならば、
ポインタ[4:0]≦ ポインタ[4:0]+(ram1 db 幅−
バイト エネーブル[ram2 db 幅;01]);
それでなければ、もしも(読取り ストローブおよび書込み ストローブ)ならば、
ポインタ[4:0]≦ ポインタ[4:0]+´ram1 db 幅;
それでなければ、もしも(書込み ストローブ)ならば、
ポインタ[4:0]≦ ポインタ[4:0]−バイト エネーブル[ram2 db 幅;01]);
それでなければ、
ポインタ[4:0]≦ ポインタ[4:0];
終了
割当てsr ポインタ[4:0]
=ポインタ[4:0]+アドレス オフセット[´r2 log2−1:0 ];
ポインタ管理装置動作300 はクロック信号において実行する(ブロック302 )。外部メモリに対する新しいスタートアドレスが導入されるとき、ポインタ管理装置120 は、受信されたバイトがデフォルト位置から異なったレーンへシフトされる必要がある場合には、ポインタオフセット値を新しい値に変更する。この新しいスタートアドレスは信号“アドレス オフセット”として保存され、sr ポインタは次の式で示された値を割当てられる。
【0019】
sr ポインタ=ポインタ[4:0]+アドレス オフセット[´r2 log2−1:0 ]
ここで、r2 log2はram2 db 幅パラメータのベース2の対数である。すなわちバイトで表した受信FIFOのデータバスの幅である。
【0020】
ポインタ管理装置120 は、メモリ制御装置104 によって規定されたようにデータのブロックが終了して別のデータのブロックが開始されるとき、シフトレジスタ114 が空になったことを示す値にポインタをリセットする(ブロック305 )。この例では、空の値は10進の6の値1Fである。ポインタはまた、ポインタリセット信号がメモリ制御装置104 により発生されたとき空の値にリセットされてもよい(ブロック306 )。
【0021】
メモリ制御装置104 は、ポインタ管理装置120 に書込みストローブ信号を送ることによって受信FIFO116 にデータが書込まれるときを示す。メモリ制御装置104 はポインタ管理装置120 に読取りストローブ信号を送ることによって供給RAM108 からデータが読取られたときを示す。
【0022】
読取りストローブ信号と書込みストローブ信号とが同じクロックサイクル中に受信された場合には(ブロック308 )、ポインタ管理装置120 はポインタ値をポインタの現在の値プラスバイトで表した供給RAMのデータバスの幅マイナスバイト エネーブル値に等しい値に変化させる(ブロック310 )。バイト エネーブル値は最初または最後に書込まれたものではないバイトで表した受信FIFOデータバス117 の幅である。
【0023】
読取りストローブ信号が受信されたがクロックサイクル中に書込みストローブ信号がない場合(ブロック312 )には、ポインタ管理装置120 は、現在の値マイナスバイトエネーブル値に等しい値にポインタ値を変更する(ブロック314 )。
【0024】
ポインタ管理装置120 が最後の2つの条件のいずれもが真ではなく、書込みストローブ信号が受信されたことを決定した場合には、ポインタ管理装置120 はポインタの値を現在の値プラスバイトで表した供給RAMのデータバス114 の幅に等しく変更する(ブロック318 )。
【0025】
ポインタ管理装置120 が前の条件がいずれも真ではなと決定した場合には(ブロック320 )、ポインタ管理装置120 はポインタの値を変更しない(ブロック322 )。
【0026】
ポインタ管理動作300 の以下のような例について検討する。:
ram1 db 幅=8(バイト)
ram2 db 幅=4(バイト)
シフトレジスタ中のバイト数=32
アドレス オフセット=3
この例において15バイトが外部メモリアドレスの3に書込まれる。これは供給RAMから2回の8バイトの読取りおよび受信FIFOへの5つの4バイトの書込みを必要とする(アドレスオフセットによっては4ではない)。
【0027】
ポインタは図4に示されるように、シフトレジスタが空であることを示す値5h1Fにより開始される。アドレスオフセットは、メモリ制御装置104 が次に来るデータに対する新しい外部メモリアドレスを割当てるときに3に設定される。
【0028】
次に、読取りストローブ信号が発生して、8個のデータバイトがシフトレジスタ112 中に位置されていることをポインタ管理装置120 に指示する。ポインタ管理装置120 は8をポインタの値に加えてポインタ値を5' h1F+4' h8=5' h07に変化させる。この値は5' h1Fから5' h00にワープする。それはシフトレジスタ112 が5' h1Fにおいてその最高の可能な値にあるからである。受信FIFOへ書込まれる第1のバイトはシフトレジスタ112 のバイトA,9,8,7に位置する。その理由は図5に示されるようにsr ポインタは5' h07+2' h3=5' h0Aに等しいからである。バイト7から0まではシフトレジスタ中の有効バイトである。したがってシフトレジスタのバイト7はRAM108 から読取られた第1の有効バイトである。バイト7は受信FIFO110 のためにバイトレーン0にシフトされる。このシフトはアドレス オフセットのために生じたものである。この同じシフト量は、メモリ制御装置104 が新しい外部メモリアドレスを発生するまで受信FIFO116 に書込まれた全てのデータに対して影響する。
【0029】
次のクロック後、書込みストローブ信号だけが発生し、読取りストローブ信号は存在しないと仮定する。バイト エネーブルは4であるがこれは第1の書込みの場合にはダミー値である。これはポインタが全ての可能なオフセットを有して適切な位置に進ことを可能にする。ポインタ管理装置120 は図6に示されているようにポインタの値を5' h07−3' h4=5' h03に変化する。受信FIFOへ書込まれる次のバイトはシフトレジスタのバイト6,5,4,3に位置するものである。その理由はsr ポインタは5' h03+2' h3=5' h06に等しいからである。
【0030】
次のクロックの後、読取りストローブ信号と書込みストローブ信号が同時に発生するものと仮定する。バイト7から0までにあるデータはバイト15から8へ移動し、新しいデータを読取って入力させる余裕を形成する。バイト15から8にあるデータはバイト23から16へ移動し、以下同様である。バイト エネーブルは4である。ポインタ管理装置120 は2つのファクタ:読取りおよび書込みに基づいてポインタの値を変化させる。ポインタの値は図5に示されているように5' h03+4' h8−3' h4=5' h07に変化される。受信FIFOへ書込まれる次のバイトはシフトレジスタのバイトA,9,8,7に位置するものである。その理由はsr ポインタは5' h07+2' h3=5' h0Aに等しいからである。
【0031】
次のクロックにおいて、書込みストローブ信号だけが発生し、読取りストローブ信号は存在しないものと仮定する。バイト エネーブルは4である。ポインタ管理装置120 は図6に示されているようにポインタの値を5' h07−3' h4=5' h03に変化する。受信FIFOへ書込まれる次のバイトはシフトレジスタのバイトで6,5,4,3に対する値である。その理由はsr ポインタは5' h03+2' h3=5' h06に等しいからである。
【0032】
次のクロックにおいて、再び書込みストローブ信号だけが発生し、読取りストローブ信号は存在しない。バイト エネーブルは値4を有している。ポインタは図7に示されているようにcの値を5' h03−3' h4=5' h1Fに変化する。受信FIFOへ書込まれる次のバイトはシフトレジスタのバイトで2,1,0,1Fに対する値である。その理由はsr ポインタは5' h1F+2' h3=5' h02に等しいからである。
【0033】
最後のクロックにおいて、再び書込みストローブ信号だけが発生し、読取りストローブ信号は存在しないと仮定する。バイト エネーブルは値2を有する。ポインタはその値を5' h02−3' h2=5' h00に変化する。受信FIFOへ書込まれるバイトは存在しない。
【0034】
次のクロックにおいて、再び書込みストローブ信号だけが発生し、読取りストローブ信号は存在しない。バイト エネーブルは値4である。ポインタは図7に示されているようにその値を5' h03−3' h4=5' h1Fに変化する。受信FIFOへ書込まれる次のバイトはシフトレジスタのバイトで2,1,0,および1Fに対する値である。その理由はsr ポインタは5' h1F+2' h3=5' h02に等しいからである。
【0035】
最後のクロックにおいて、再び書込みストローブ信号だけが発生し、読取りストローブ信号は存在しないと仮定する。バイト エネーブルは値2を有する。ポインタはその値を5' h02−3' h2=5' h00に変化する。受信FIFOへ書込まれるバイトは存在しない。
【0036】
この状態でポインタは値5' h00を有していることに注目すべきである。5' h1Fの値はシフトレジスタが空であることを示しているが、これはその場合ではない。その代わりにこの値は、シフトレジスタ中に有効なデータである可能性のあるさらに1つのバイトが存在することを示している。このバイトは異なった外部メモリアドレスに書込まれても書込まれてなくてもよい。これはメモリ制御装置104 がバイトにより度のようにすることを望んでいるかに依存している。データのこのバイトが全く有効ではない場合には、新しい外部メモリアドレスが発生される前にポインタ リセット信号がメモリ制御装置104 によって主張される。受信FIFO116 へ書込まれるものはない。その理由は、バイト エネーブルは所定のアドレスに対して指定されたデータのブロックの最後の書込みのためのram2 db 幅よりも小さくすることができるからである。この例に対してこれは読取りおよび書込みが完了した場合である。
【0037】
シフトレジスタ112 の別の機能は供給RAMから読取らない、或いは受信FIFO116 へデータを書込もうとしないメモリ制御装置を注意することである。これらはシフトレジスタ112 が正常な動作をすることを許される状態になるまで、これらの機能を行うことからメモリ制御装置の機能を維持するために使用されることができる一時的な状態である。ポインタ値は、シフトレジスタ112 がほとんど一杯またはほとんど空であることを示し、例えばフラグを設定することによって一時的な注意を通知するために使用されることができる。例えば、シフトレジスタ112 がほとんど一杯であれば、それはこの状態をメモリ制御装置104 に示す。シフトレジスタ112 は、書込みストローブ信号が発生するまでこの状態にとどまり、それはシフトレジスタ112 から書込まれないデータを押し出すことなくデータを読取るための余裕を形成する。読取りを連続することを可能にする実際の事象の組合わせは構成に応じて異なっている。
【0038】
シフトレジスタ112 がほとんど空であるとき、この状態は構成に応じてポインタが空である幾つかのバイト内であるときメモリ制御装置104 に通報される。シフトレジスタ112 は読取りストローブ信号が発生するまでこの状態にとどまってもよく、それは受信FIFO116 に書込まれるために利用されるデータが存在することを示している。前のように書込みを連続することを可能にする実際の事象の組合わせは構成に応じて異なっている。
【0039】
多くの実施形態が記載されたが、それにもかかわらず、種々の変形が本発明の技術的範囲を逸脱することなく行われることができることを理解するであろう。例えばフローチャートに示されたブロックは飛び越され、或いは異なる順序で実行されても、依然として所望の結果を生成することができる。したがって、その他の実施形態は特許請求の範囲に記載された本発明の技術的範囲に含まれるものである。
【図面の簡単な説明】
【0040】
【図1】本発明の1実施形態によるメモリアクセスシステムのブロック図。
【図2】書込まれるデータ素子の可動ウインドウ中のポインタを含むシフトレジスタのブロック図。
【図3】本発明の1実施形態によるポインタ管理装置動作を示すフロー図。
【図4】例示的なポインタ管理動作の異なったフェーズに対応する異なった位置のウインドウを含む図2のシフトレジスタのブロック図。
【図5】例示的なポインタ管理動作の異なったフェーズに対応する異なった位置のウインドウを含む図2のシフトレジスタのブロック図。
【図6】例示的なポインタ管理動作の異なったフェーズに対応する異なった位置のウインドウを含む図2のシフトレジスタのブロック図。
【図7】例示的なポインタ管理動作の異なったフェーズに対応する異なった位置のウインドウを含む図2のシフトレジスタのブロック図。
Claims (34)
- 複数のデータレーンにおいてデータを受取り、
目的地アドレスに対するアドレスオフセット値を決定し、
前記データを目的地アドレスに対応する1以上のデータレーンにシフトする方法。 - 前記データレーンは、バイトレーンを含んでいる請求項1記載の方法。
- 前記データの受取りは、データ素子のブロックの受取りを含んでいる請求項1記載の方法。
- 前記データの受取りは、データの多バイトブロックを検索するためのメモリのバーストアクセスを含んでいる請求項3記載の方法。
- データのブロックはアクセスのために有効ではないデータ素子を含んでいる請求項4記載の方法。
- 前記受取りは、複数のデータレーン中の第1のメモリ装置からシフトレジスタへの複数のデータ素子の受取りを含んでおり、
前記第1のメモリ装置は第1のバス幅を有し、シフトレジスタは第2のバス幅を有している請求項1記載の方法。 - 第2のバス幅は第1のバス幅よりも大きい請求項6記載の方法。
- 前記シフトはシフトレジスタ中のデータのシフトを含んでいる請求項1記載の方法。
- さらに、第2のメモリ装置に書込まれるデータのサブブロック中の第1の有効なデータ素子に対応するデータ素子位置にポインタ値を変更する請求項8記載の方法。
- 前記変更はシフトレジスタ中のデータ位置の数によるポインタ値の変更を含み、前記数は受信されたデータの大きさに対応している請求項9記載の方法。
- 前記変更は、受信されたデータのバイトの大きさに対応しているバイト位置の数によるポインタ値の構成を含んでいる請求項9記載の方法。
- さらに、第2のメモリ装置にシフトされたデータを書込み、
前記変更は、シフトレジスタ中のデータ位置の数によるポインタ値の変更を含み、この数は受信されたデータの大きさに対応している使用する請求項9記載の方法。 - 前記変更は、書込まれたデータのバイトのサイズに対応するバイト位置の数によるポインタ値のデクリメントを含んでいる請求項11記載の方法。
- さらに、ポインタ値に応答してシフトレジスタの状態を指示する請求項9記載の方法。
- 前記状態は空の状態である請求項14記載の方法。
- 前記状態は満杯の状態である請求項14記載の方法。
- 第1のメモリ装置に対するアクセスを制御してそのアクセスにおいて検索されたデータ素子に対する目的地アドレスを割当てるように動作するメモリ制御装置と、
アクセスにおいて検索された複数のデータ素子を受信するように動作する供給メモリ装置と、
複数のデータレーンを有し、供給メモリ装置からローカルメモリに書込まれる複数のデータ素子を受信するように動作する受信メモリ装置と、
データフォーマット装置とを具備し、そのデータフォーマット装置は、
供給メモリ装置からデータ素子を受信し、供給メモリ装置からのデータの受信および受信メモリ装置へのデータの書込みに応答してデータ素子をシフトするように動作するシフトレジスタと、
目的地アドレスに対応する1以上のデータレーン中へ前記データ素子をシフトするために目的地アドレスに対するアドレスオフセット値を決定するように動作するポインタ管理装置とを具備している装置。 - メモリ制御装置は、マルチバイトのデータブロックを検索するバーストアクセスを制御するように動作するバーストアクセスメモリを備えている請求項17記載の装置。
- 供給メモリ装置は、ランダムアクセスメモリ(RAM)を含んでいる請求項17記載の装置。
- 設けられたメモリ装置は、ランダムアクセスメモリ(RAM)を含んでいる請求項17記載の装置。
- 受信メモリ装置は、先入れ先出(FIFO)メモリを含んでいる請求項17記載の装置。
- 供給メモリ装置は第1のバス幅を有し、シフトレジスタは第2のバス幅を有し、
第2のバス幅は第1のバス幅よりも大きい請求項17記載の装置。 - 第2のバス幅は第1のバス幅の4倍の大きさである請求項22記載の装置。
- ポインタ管理装置は、第2のメモリ装置に書込まれるデータのサブブロック中の第1の有効なデータ素子の位置に対応するシフトレジスタ中のデータ素子位置にポインタ値を変更するように動作する請求項17記載の装置。
- ポインタ管理装置は、ポインタ値に応答してシフトレジスタの状態を示す信号を生成するように動作する請求項24記載の装置。
- 状態は空の状態である請求項25記載の装置。
- 状態は満杯の状態である請求項25記載の装置。
- マシン実行可能な命令を含んでいるマシン読取り可能な媒体を有するアーティクルにおいて、前記命令は、マシンを制御して、
複数のデータレーン中のデータを受信して目的地アドレスに対するアドレスオフセット値を決定し、
前記データを目的地アドレスに対応する1以上のデータレーンへシフトするようにマシンを制御する動作を行わせるアーティクル。 - データレーンはバイトレーンを含んでいる請求項28記載の装置。
- データをマシンに受信させるように動作させる命令は、マシンにデータ素子のブロックを受信させるように動作させる命令を含んでいる請求項28記載の装置。
- さらに、第2のメモリ装置に書込まれるデータのサブブロック中の第1の有効なデータ素子に対応するデータ素子位置にポインタ値を変更するようにマシンを動作させる命令を含んでいる請求項28記載の装置。
- さらに、ポインタ値に応答してシフトレジスタの状態をマシンに指示させる命令を含んでいる請求項31記載の装置。
- 状態は空の状態である請求項32記載の装置。
- 状態は満杯の状態である請求項32記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30906401P | 2001-07-30 | 2001-07-30 | |
US10/000,848 US6711494B2 (en) | 2001-07-30 | 2001-11-30 | Data formatter for shifting data to correct data lanes |
PCT/US2002/024139 WO2003012648A1 (en) | 2001-07-30 | 2002-07-30 | Data formatter employing data shifter based on the destination address |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004537805A true JP2004537805A (ja) | 2004-12-16 |
JP2004537805A5 JP2004537805A5 (ja) | 2006-01-05 |
JP4571403B2 JP4571403B2 (ja) | 2010-10-27 |
Family
ID=26668225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003517757A Expired - Fee Related JP4571403B2 (ja) | 2001-07-30 | 2002-07-30 | 目的地アドレスに基づいたデータシフタを使用するデータフォーマット装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6711494B2 (ja) |
EP (1) | EP1412859A4 (ja) |
JP (1) | JP4571403B2 (ja) |
KR (1) | KR101050649B1 (ja) |
CA (1) | CA2454467A1 (ja) |
WO (1) | WO2003012648A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7583732B2 (en) * | 2002-12-06 | 2009-09-01 | Broadcom Corporation | Managing bursts of data |
EP1929403B1 (en) * | 2005-09-20 | 2012-07-25 | Freescale Semiconductor, Inc. | A device having a low latency single port memory unit and a method for writing multiple data segments to a single port memory unit |
EP2055299A1 (en) * | 2007-10-23 | 2009-05-06 | Koninklijke Philips Electronics N.V. | Methods for preparing polymer microparticles |
DE102009022158A1 (de) * | 2009-05-20 | 2010-11-25 | Kathrein-Werke Kg | Antenneneinrichtung, insbesondere für eine Mobilfunkanlage, mit mehreren zugeordneten Funktionseinheiten |
US10007485B2 (en) * | 2016-01-12 | 2018-06-26 | Oracle International Corporation | Zero-delay compression FIFO buffer |
WO2019055738A1 (en) * | 2017-09-15 | 2019-03-21 | MIPS Tech, LLC | MEMORY ACCESS NOT ALIGNED |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60245062A (ja) * | 1984-05-18 | 1985-12-04 | Matsushita Electric Ind Co Ltd | デ−タ転送装置 |
JPH0468453A (ja) * | 1990-07-09 | 1992-03-04 | Nec Corp | データ転送装置 |
JPH04181454A (ja) * | 1990-11-16 | 1992-06-29 | Fujitsu Ltd | データアクセス制御装置 |
US5774697A (en) * | 1995-10-11 | 1998-06-30 | International Computers Limited | Data realignment method and apparatus |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL7713708A (nl) * | 1977-12-12 | 1979-06-14 | Philips Nv | Informatiebuffergeheugen van het "eerst-in, eerst-uit" type met vaste ingang en variabele uitgang. |
EP0206743A3 (en) * | 1985-06-20 | 1990-04-25 | Texas Instruments Incorporated | Zero fall-through time asynchronous fifo buffer with nonambiguous empty/full resolution |
JPS6428752A (en) | 1987-07-24 | 1989-01-31 | Toshiba Corp | Data processor |
US5226169A (en) | 1988-12-30 | 1993-07-06 | International Business Machines Corp. | System for execution of storage-immediate and storage-storage instructions within cache buffer storage |
US5473756A (en) * | 1992-12-30 | 1995-12-05 | Intel Corporation | FIFO buffer with full/empty detection by comparing respective registers in read and write circular shift registers |
US5651127A (en) * | 1994-03-08 | 1997-07-22 | Texas Instruments Incorporated | Guided transfers with variable stepping |
US6414687B1 (en) * | 1997-04-30 | 2002-07-02 | Canon Kabushiki Kaisha | Register setting-micro programming system |
US5978307A (en) * | 1998-05-21 | 1999-11-02 | Integrated Device Technology, Inc. | Integrated circuit memory devices having partitioned multi-port memory arrays therein for increasing data bandwidth and methods of operating same |
US5999478A (en) * | 1998-05-21 | 1999-12-07 | Integrated Device Technology, Inc. | Highly integrated tri-port memory buffers having fast fall-through capability and methods of operating same |
JP3308912B2 (ja) * | 1998-09-08 | 2002-07-29 | エヌイーシーマイクロシステム株式会社 | Fifoメモリ装置とその制御方法 |
US6330623B1 (en) | 1999-01-08 | 2001-12-11 | Vlsi Technology, Inc. | System and method for maximizing DMA transfers of arbitrarily aligned data |
-
2001
- 2001-11-30 US US10/000,848 patent/US6711494B2/en not_active Expired - Lifetime
-
2002
- 2002-07-30 EP EP02748270A patent/EP1412859A4/en not_active Withdrawn
- 2002-07-30 JP JP2003517757A patent/JP4571403B2/ja not_active Expired - Fee Related
- 2002-07-30 WO PCT/US2002/024139 patent/WO2003012648A1/en not_active Application Discontinuation
- 2002-07-30 KR KR1020047001454A patent/KR101050649B1/ko active IP Right Grant
- 2002-07-30 CA CA002454467A patent/CA2454467A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60245062A (ja) * | 1984-05-18 | 1985-12-04 | Matsushita Electric Ind Co Ltd | デ−タ転送装置 |
JPH0468453A (ja) * | 1990-07-09 | 1992-03-04 | Nec Corp | データ転送装置 |
JPH04181454A (ja) * | 1990-11-16 | 1992-06-29 | Fujitsu Ltd | データアクセス制御装置 |
US5774697A (en) * | 1995-10-11 | 1998-06-30 | International Computers Limited | Data realignment method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
CA2454467A1 (en) | 2003-02-13 |
WO2003012648A1 (en) | 2003-02-13 |
KR20040028961A (ko) | 2004-04-03 |
US20030023819A1 (en) | 2003-01-30 |
KR101050649B1 (ko) | 2011-07-19 |
JP4571403B2 (ja) | 2010-10-27 |
US6711494B2 (en) | 2004-03-23 |
EP1412859A1 (en) | 2004-04-28 |
EP1412859A4 (en) | 2006-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5765023A (en) | DMA controller having multiple channels and buffer pool having plurality of buffers accessible to each channel for buffering data transferred to and from host computer | |
EP0378423B1 (en) | DMA controller | |
US5928339A (en) | DMA-transferring stream data apparatus between a memory and ports where a command list includes size and start address of data stored in the memory | |
US5781799A (en) | DMA controller arrangement having plurality of DMA controllers and buffer pool having plurality of buffers accessible to each of the channels of the controllers | |
US20060020743A1 (en) | Multi-queue address generator for start and end addresses in a multi-queue first-in first-out memory system | |
US7436728B2 (en) | Fast random access DRAM management method including a method of comparing the address and suspending and storing requests | |
EP0509722B1 (en) | Data transfer system | |
US7870310B2 (en) | Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system | |
US6728797B2 (en) | DMA controller | |
US7523232B2 (en) | Mark/re-read and mark/re-write operations in a multi-queue first-in first-out memory system | |
US20050160202A1 (en) | Direct memory access device | |
JP2002259115A (ja) | Fifoメモリ | |
JP4571403B2 (ja) | 目的地アドレスに基づいたデータシフタを使用するデータフォーマット装置 | |
EP0637155A1 (en) | Method and system for buffering transient data | |
US6292807B1 (en) | Method for controlling pipelined memory access requests | |
JP3599692B2 (ja) | データ伝送装置 | |
KR19980056298A (ko) | 환형 큐를 이용한 동적 데이터 블럭 전송 장치 및 방법 | |
US6654861B2 (en) | Method to manage multiple communication queues in an 8-bit microcontroller | |
JP2006510083A (ja) | ハードウエアにおける構成可能なメモリ分割 | |
GB2398406A (en) | DMA with variable bit shifter | |
US6865654B2 (en) | Device for interfacing asynchronous data using first-in-first-out | |
US7099345B2 (en) | Method and system for buffering a data packet for transmission to a network | |
JPH10222460A (ja) | データ転送制御装置 | |
EP1039371A1 (en) | An apparatus and a method for handling data between two asynchronous units | |
JP2002050172A (ja) | Fifo制御回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20050208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050708 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050708 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080815 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080819 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081119 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20081127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091020 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100120 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100127 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100222 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100301 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100323 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100330 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100615 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100623 |
|
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: 20100713 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100812 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130820 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4571403 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 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |