JP4571403B2 - 目的地アドレスに基づいたデータシフタを使用するデータフォーマット装置 - Google Patents

目的地アドレスに基づいたデータシフタを使用するデータフォーマット装置 Download PDF

Info

Publication number
JP4571403B2
JP4571403B2 JP2003517757A JP2003517757A JP4571403B2 JP 4571403 B2 JP4571403 B2 JP 4571403B2 JP 2003517757 A JP2003517757 A JP 2003517757A JP 2003517757 A JP2003517757 A JP 2003517757A JP 4571403 B2 JP4571403 B2 JP 4571403B2
Authority
JP
Japan
Prior art keywords
data
memory device
receiving
shift register
pointer
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.)
Expired - Fee Related
Application number
JP2003517757A
Other languages
English (en)
Other versions
JP2004537805A5 (ja
JP2004537805A (ja
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 JP2004537805A publication Critical patent/JP2004537805A/ja
Publication of JP2004537805A5 publication Critical patent/JP2004537805A5/ja
Application granted granted Critical
Publication of JP4571403B2 publication Critical patent/JP4571403B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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/08Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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/10Methods 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)

Description

本発明は、目的地アドレスに基づいたデータシフタを使用するデータフォーマット装置に関する。
コンピュータシステムにおいては、中央処理装置(CPU)はアドレスを与えることによりメモリにアクセスし、そのアドレスはデータ素子を集合的に記憶しているメモリセルのグループの特有の位置を示している。最初にメモリにアクセスするときには多くの動作が行われる可能性がある。これらの動作は最初のアクセスでは比較的遅くてもよい。その後データ自身が転送される。例えばある制御信号は処理を開始するために発生される。次にアドレスがメモリに送られる。この動作のオーバーヘッドまたは潜在性のために、メモリへの最初のアクセスは比較的長い時間を取ることができ、例えば多くの装置では4乃至7クロックサイクルを要している。
メモリの待ち時間を減少させるために、ある種のメモリ装置は各アクセスに対して連続的にメモリから4つの64ビットワード(256ビットまたは32バイト)を含むデータのブロックを読取っている。この“バーストアクセスモード”または“バースティング”の利点は、連続する3つのアクセスに対して最初のアクセスのオーバーヘッドの反復を避けていることである。後続するアクセスは4乃至7クロックサイクルの代わりに1乃至3クロックサイクルに短縮されることができる。
バースティングをサポートするメモリ装置はバイトアドレス可能ではない。特定のバイトアドレスでメモリ位置をアクセスする代わりに、メモリ装置はデータ素子の多バイトブロックを検索する。データブロック内のデータ素子の幾つかはリクエストに対して有効ではない可能性がある。
データフォーマット装置はランダムアクセスメモリ(RAM)のようなソースからデータの多ブロックを取出、その多ブロックを多数の小さいブロックに分解するために使用される。小さくされた各ブロックはその後適当なローカルメモリアドレスへ送られることができる。制御プログラムは小さい各ブロック大きとそれらの目的地アドレスとを決定する。小さい各ブロックは大きなブロック内のバイト境界まで分解されることができる。目的地アドレスはまた任意のバイト境界に位置されることができる。これはデータフォーマット装置の応答特性を複雑にする。供給RAMから来るときのデータ素子がどのバイトレーンかには関係なく、データフォーマット装置は新しいアドレスに書込まれるために正確なバイトレーンにこれらのバイトがあることを確実にしなければなにない。
本発明のデータフォーマット装置はシフトレジスタおよびポインタ管理装置を含んでいる。供給ランダムアクセスメモリ(RAM)は、ローカルメモリアドレスに書込まれるメモリに対するバーストアクセス動作で検索され多バイトのデータブロックからのデータを記憶する。シフトレジスタは供給RAMからデータを受取り、そのRAMからのデータの読取りに応答して、および、データの受信先入れ先出し(FIFO)メモリへの書込みに応答して、そのデータをシフトする。ポインタ管理装置は、データがシフトレジスタ中へシフトされ、シフトレジスタからシフトされて取出されるように、データのサブブロック中の第1の有効なバイトを指示するポインタを動かすことによりFIFOの正確なバイトレーンへそのポインタを維持する
ポインタ管理装置はポインタ値に基づいたインジケータを生成し、それはシフトレジスタが一杯(またはほぼ一杯)であるか空(またはほとんど空)であるかを制御プログラムに通知する。
図1は、本発明の1実施形態によるデータフォーマット装置102 を含むメモリアクセスシステム100 を示している。メモリ制御装置104 は”バーストアクセス”モードでメモリ装置106 からデータを読取ることができ、それにおいてデータの多バイトブロックがメモリから検索され、ローカルメモリアドレスに送られる前に一次的にランダムアクセスメモリ(RAM)のような別のメモリ装置中にロードされる。データブロック中のデータ素子はリクエストに対して有効でなくてもよい。また有効なデータブロックおよびそれらの目的地アドレスはバーストアクセスされた多バイトブロック中の任意のバイト境界に位置されることができる。
データフォーマット装置102 は供給RAM108 からデータブロックを取出し、そのデータを1以上のローカルメモリアドレスに送ってもよい。データフォーマット装置102 は供給RAM108 から読取った大きい多バイトデータブロックをその大きいブロック内の適当なバイト境界において多数のもっと小さいブロックに分割することができる。小さい各ブロックはローカルメモリ115 中の目的地アドレスに送られることができる。メモリ制御装置104 は小さい各ブロックの大きさおよびそれらの目的地アドレスを決定する。
データフォーマット装置102 は、供給RAM108 からの現在の大きいブロックからどれだけの数のバイトが各目的地アドレスに対して書込まれたかの追跡を維持するためにカウンタ110 を含んでいてもよい。データフォーマット装置102 は供給RAM108 から受信されたときにどのバイトレーンのデータ素子であるかには無関係に、新しいアドレスに書込むために正確なバイトレーンにデータをシフトする。例えば、4バイトのブロックでは、最初の2バイトはアドレス2 に書込まれる必要がある。第3のバイトはアドレス10に書込まれる必要がある可能性があり、第4のバイトはアドレス7 に書込まれる必要がある可能性がある。メモリバスが図2に示されているように4バイト幅であるならば、最初の2バイトはレーン2 および3 でそれぞれ必要になり、一方、第3のバイトはバイトレーン3 中にある必要があり、第4のバイトはバイトレーン4 中にある必要がある。
データフォーマット装置102 は正確なバイトレーンにデータをシフトするシフトレジスタ112 を含んでいる。データフォーマット装置は任意の所定の瞬間に正確なバイトレーンを追跡し、決定するために別のカウンタのセット111 を使用してもよい。これらの値と、あるパラメータと、およびその現在の状態に基づいて、データフォーマット装置102 は、データ素子が受信FIFO(先入れ先出)レジスタまたはRAM116 に書込まれることが許容される前に、データを適当な位置、すなわち正しいバイトレーンにシフトする。
データ素子はRAM108 が読取られるときRAMのデータバス114 からシフトレジスタ中に書込まれる。メモリ制御装置104 からのRAM読取りストローブ信号は、読取りが発生したことをシフトレジスタに通知する。読取りが発生したとき、全体の供給RAM108 のデータバスのデータはシフトレジスタ112 の最下位の部分にコピーされ、シフトレジスタの下位の部分からのデータはシフトレジスタの上位の部分へシフトされる。シフトレジスタ112 の最上位の部分のデータは失われることができる。
シフトレジスタ112 の幅は供給RAMの速度およびワード幅と受信FIFOの速度およびワード幅との不整合に依存している。小さい不整合に対しては、供給RAMのデータバスの幅の4倍のシフトレジスタの幅で充分である。
ポインタ管理装置120 は図2に示されるようにシフトレジスタ112 中のバイトのウインドウ200 を制御する。ウインドウ200 はポインタを含み、そのポインタは、次に受信FIFO116 に書込まれるワードの最下位バイト202 を指すポインタと次に受信FIFO116 に書込まれるワードの最上位バイト204 を指すポインタ(sr ポインタ)とを含んでいる。sr ポインタは受信FIFO116 に書込まれる最初のバイトが正確なバイトレーンにあることを確実にするためにメモリ制御装置104 により与えられたアドレスオフセットを考慮に入れる。
ポインタ管理装置120 は、供給RAM108 、受信FIFO116 、メモリ制御装置104 の動作を監視し、ポインタを管理するために外部メモリアドレスおよび関連するバイトをネーブルする。例えば、ポインタは供給RAM108 から読取られたデータの量により上位へシフトされる。データ素子が受信FIFO116 に書込まれるとき、ポインタは書かれたバイトの数だけデクリメントされる。しかしながら、データがRAM108 から読込まれており、同時に受信FIFO116 に書込まれているならば、ポインタの値はどれだけの数の有効なバイトが受信FIFO116 に書込まれるかに依存している。この場合に、ポインタ値は受信FIFO116 に書込まれている有効なバイトの数により減少され、供給RAM108 から読取られているバイトの数により増加される。実際の値は次式で決定され、
raml db 幅−バイト エネーブル
ここで、“raml db 幅”はバイトで表わした供給RAMのデータバス114の幅を表し、“バイト エネーブル”は受信FIFO116 に書込まれるバイトの数を表している。
バイト エネーブルはメモリ制御装置104 により設定されることができ、所定の外部メモリアドレスに対する受信FIFO116 への書込みの都度使用される。受信FIFO116 に対する全ての書込動作は、所定の外部メモリアドレスに対する可能性のある最初と最後みを除いてram2 db 幅(すなわちバイトによる受信FIFOのデータバス117 の幅)である充分に有効なワードを含んでいることが期待される。新しいアドレスに対して書込まれた目的地のRAM108 から最初に読取られた場合に、もしもバイト エネーブルがram2 db 幅と同じ値に設定されない場合には、フルワードより少ないデータが受信FIFO116 に書込まれる。 この場合に、受信FIFOに任意の最後の書込の場合に、バイト エネーブルがポインタを調整して、それによりシフトレジスタ112 中に残されたデータ量を表す。
図3は1実施例によるポインタ管理動作300 を示すフローチャートである。以下は動作300 を記述するVerilog言語を示している。
常に(p0sedge クロックまたはp0sedge リセット)
開始
もしも(リセット)ならば、
ポインタ[4:0]<=5' h1F;
それでな、もしも(ポインタ リセット)ならば、
ポインタ[4:0]<=5' h1F;
それでな、もしも(読取り ストローブおよび書込み ストローブ)ならば、
ポインタ[4:0]<= ポインタ[4:0]+(ram1 db 幅−
バイト エネーブル[ram2 db 幅;0]);
それでな、もしも(読取り ストローブおよび書込み ストローブ)ならば、
ポインタ[4:0]<= ポインタ[4:0]+´ram1 db 幅;
それでな、もしも(書込み ストローブ)ならば、
ポインタ[4:0]<= ポインタ[4:0]−バイト エネーブル[ram2 db 幅;0]
それでなければ、
ポインタ[4:0]<= ポインタ[4:0];
終了
割当てsr ポインタ[4:0]
=ポインタ[4:0]+アドレス オフセット[´r2 log2−1:0 ];
ポインタ管理装置動作300 はクロック信号において実行する(ブロック302 )。外部メモリに対する新しいスタートアドレスが導入されるとき、ポインタ管理装置120 は、受信されたバイトがデフォルト位置から異なったレーンへシフトされる必要がある場合には、ポインタオフセット値を新しい値に変更する。この新しいスタートアドレスは信号“アドレス オフセット”として保存され、sr ポインタは次の式で示された値を割当てられる。
sr ポインタ=ポインタ[4:0]+アドレス オフセット[´r2 log2−1:0 ]
ここで、r2 log2はram2 db 幅パラメータのベース2の対数である。すなわちバイトで表した受信FIFOのデータバスの幅である。
ポインタ管理装置120 は、メモリ制御装置104 によって規定されたようにデータのブロックが終了して別のデータのブロックが開始されるとき、シフトレジスタ114 が空になったことを示す値にポインタをリセットする(ブロック305 )。この例では、空の値は1の値1Fである。ポインタはまた、ポインタリセット信号がメモリ制御装置104 により発生されたとき空の値にリセットされてもよい(ブロック306 )。
メモリ制御装置104 は、ポインタ管理装置120 に書込みストローブ信号を送ることによって受信FIFO116 にデータが書込まれるときを示す。メモリ制御装置104 はポインタ管理装置120 に読取りストローブ信号を送ることによって供給RAM108 からデータが読取られたときを示す。
読取りストローブ信号と書込みストローブ信号とが同じクロックサイクル中に受信された場合には(ブロック308 )、ポインタ管理装置120 はポインタ値をポインタの現在の値 プラス バイトで表した供給RAMのデータバス114の幅 マイナス バイト エネーブル値に等しい値に変化させる(ブロック310 )。バイト エネーブル値は可能性のある最初または最後書込みを除いた全ての書込みに対して、バイトで表した受信FIFOデータバス117 の幅である。
読取りストローブ信号が受信されたがクロックサイクル中に書込みストローブ信号がない場合(ブロック312 )には、ポインタ管理装置120 は、現在の値 マイナス バイトエネーブル値に等しい値にポインタ値を変更する(ブロック314 )。
ポインタ管理装置120 が最後の2つの条件のいずれもが真ではなく、書込みストローブ信号が受信されたことを決定した場合には、ポインタ管理装置120 はポインタの値を現在の値プラスバイトで表した供給RAMのデータバス114 の幅に等しく変更する(ブロック318 )。
ポインタ管理装置120 が前の条件がいずれも真ではなと決定した場合には(ブロック320 )、ポインタ管理装置120 はポインタの値を変更しない(ブロック322 )。
ポインタ管理動作300 の以下のような例について検討する。:
ram1 db 幅=8(バイト)
ram2 db 幅=4(バイト)
シフトレジスタ中のバイト数=32
アドレス オフセット=3
この例において15バイトが外部メモリアドレスの3に書込まれる。これは供給RAMから2回の8バイトの読取りおよび受信FIFOへの5つの4バイトの書込みを必要とする(アドレスオフセットのために4ではない)。
ポインタは図4に示されるように、シフトレジスタが空であることを示す値5'h1Fにより開始される。アドレスオフセットは、メモリ制御装置104 が次に来るデータに対する新しい外部メモリアドレスを割当てるときに3に設定される。
次に、読取りストローブ信号が発生して、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 に書込まれた全てのデータに対して影響する。
次のクロック後、書込みストローブ信号だけが発生し、読取りストローブ信号は存在しないと仮定する。バイト エネーブルは4であるがこれは第1の書込みの場合にはダミー値である。これはポインタが全ての可能なオフセットを有して適切な位置に進ことを可能にする。ポインタ管理装置120 は図6に示されているようにポインタの値を5' h07−3' h4=5' h03に変化する。受信FIFOへ書込まれる次のバイトはシフトレジスタのバイト6,5,4,3に位置するものである。その理由はsr ポインタは5' h03+2' h3=5' h06に等しいからである。
次のクロックの後、読取りストローブ信号と書込みストローブ信号が同時に発生するものと仮定する。バイト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に等しいからである。
次のクロックにおいて、書込みストローブ信号だけが発生し、読取りストローブ信号は存在しないものと仮定する。バイト エネーブルは4である。ポインタ管理装置120 は図6に示されているようにポインタの値を5' h07−3' h4=5' h03に変化する。受信FIFOへ書込まれる次のバイトはシフトレジスタのバイトで6,5,4,3に対する値である。その理由はsr ポインタは5' h03+2' h3=5' h06に等しいからである。
次のクロックにおいて、再び書込みストローブ信号だけが発生し、読取りストローブ信号は存在しない。バイト エネーブルは値4を有している。ポインタは図7に示されているようにcの値を5' h03−3' h4=5' h1Fに変化する。受信FIFOへ書込まれる次のバイトはシフトレジスタのバイトで2,1,0,および1Fに対する値である。その理由はsr ポインタは5' h1F+2' h3=5' h02に等しいからである。
最後のクロックにおいて、再び書込みストローブ信号だけが発生し、読取りストローブ信号は存在しないと仮定する。バイト エネーブルは値2を有する。ポインタはその値を5' h02−3' h2=5' h00に変化する。受信FIFOへ書込まれるバイトは存在しない。
削除
削除
この状態でポインタは値5' h00を有していることに注目すべきである。5' h1Fの値はシフトレジスタが空であることを示しているが、これはその場合ではない。その代わりにこの値は、シフトレジスタ中に有効なデータである可能性のあるさらに1つのバイトが存在することを示している。このバイトは異なった外部メモリアドレスに書込まれても書込まれてなくてもよい。これはメモリ制御装置104 がバイトにより度のようにすることを望んでいるかに依存している。データのこのバイトが全く有効ではない場合には、新しい外部メモリアドレスが発生される前にポインタ リセット信号がメモリ制御装置104 によって主張される。受信FIFO116 へ書込まれるものはない。その理由は、バイト エネーブルは所定のアドレスに対して指定されたデータのブロックの最後の書込みのためのram2 db 幅よりも小さくすることができるからである。この例に対してこれは読取りおよび書込みが完了した場合である。
シフトレジスタ112 の別の機能は供給RAMから読取らない、或いは受信FIFO116 へデータを書込もうとしないメモリ制御装置を注意することである。これらはシフトレジスタ112 が正常な動作をすることを許される状態になるまで、これらの機能を行うことからメモリ制御装置の機能を維持するために使用されることができる一時的な状態である。ポインタ値は、シフトレジスタ112 がほとんど一杯またはほとんど空であることを示し、例えばフラグを設定することによって一時的な注意を通知するために使用されることができる。例えば、シフトレジスタ112 がほとんど一杯であれば、それはこの状態をメモリ制御装置104 に示す。シフトレジスタ112 は、書込みストローブ信号が発生するまでこの状態にとどまり、それはシフトレジスタ112 から書込まれないデータを押し出すことなくデータを読取るための余裕を形成する。読取りを連続することを可能にする実際の事象の組合わせは構成に応じて異なっている。
シフトレジスタ112 がほとんど空であるとき、この状態は構成に応じてポインタが空である幾つかのバイト内であるときメモリ制御装置104 に通報される。シフトレジスタ112 は読取りストローブ信号が発生するまでこの状態にとどまってもよく、それは受信FIFO116 に書込まれるために利用されるデータが存在することを示している。前のように書込みを連続することを可能にする実際の事象の組合わせは構成に応じて異なっている。
多くの実施形態が記載されたが、それにもかかわらず、種々の変形が本発明の技術的範囲を逸脱することなく行われることができることを理解するであろう。例えばフローチャートに示されたブロックは飛び越され、或いは異なる順序で実行されても、依然として所望の結果を生成することができる。したがって、その他の実施形態は特許請求の範囲に記載された本発明の技術的範囲に含まれるものである。
本発明の1実施形態によるメモリアクセスシステムのブロック図。 書込まれるデータ素子の可動ウインドウ中のポインタを含むシフトレジスタのブロック図。 本発明の1実施形態によるポインタ管理装置動作を示すフロー図。 例示的なポインタ管理動作の異なったフェーズに対応する異なった位置のウインドウを含む図2のシフトレジスタのブロック図。 例示的なポインタ管理動作の異なったフェーズに対応する異なった位置のウインドウを含む図2のシフトレジスタのブロック図。 例示的なポインタ管理動作の異なったフェーズに対応する異なった位置のウインドウを含む図2のシフトレジスタのブロック図。 例示的なポインタ管理動作の異なったフェーズに対応する異なった位置のウインドウを含む図2のシフトレジスタのブロック図。

Claims (29)

  1. シフトレジスタ中の複数のバイトレーンへのデータを受取り、
    目的地アドレスに対するアドレスオフセット値を決定し、
    前記アドレスオフセット値に応答して、受信メモリ装置に書込まれる前記シフトレジスタ中のデータ素子のサブブロックにウインドウを移動し、前記ウインドウは前記受信メモリ装置中のバイトレーンに対応するバイトレーンを有しており、
    前記サブブロック中のデータ素子の並びを変えずに、各データ素子が正確なバイトレーンにあるように、前記サブブロック中の各データ素子を前記受信メモリ装置に書込
    前記ウインドウを移動することは、前記データの受取りと前記メモリ装置への書込みとに応じてウインドウを移動することを含む、方法。
  2. 前記データの受取りは、データ素子を含んでいるデータのブロックの受取りを含んでいる請求項1記載の方法。
  3. 前記データの受取りは、データの多バイトブロックを検索するためのメモリのバーストアクセスを含んでいる請求項2記載の方法。
  4. データのブロックは前記受信メモリ装置への書込みのために有効ではないデータ素子を含んでいる請求項3記載の方法。
  5. 前記データの受取りは、供給メモリ装置から複数のデータ素子の受取りを含んでおり、
    前記供給メモリ装置は第1のバス幅を有し、シフトレジスタは第2のバス幅を有している請求項1記載の方法。
  6. 第2のバス幅は第1のバス幅よりも大きい請求項5記載の方法。
  7. 前記ウインドウを移動することは、前記受信メモリ装置に書込まれるデータの前記サブブロック中の第1の有効なデータ素子に対応するデータ素子の位置にポインタ値を変更することを含んでいる請求項1記載の方法。
  8. 前記変更はシフトレジスタ中のデータ位置の数によるポインタ値の変更を含み、前記数は受信されたデータの大きさに対応している請求項7記載の方法。
  9. 前記変更は、受信されたデータのバイトの大きさに対応しているバイト位置の数によるポインタ値のインクリメントを含んでいる請求項7記載の方法。
  10. 前記変更は、書込まれたデータのバイトの大きさに対応するバイト位置の数によるポインタ値のデクリメントを含んでいる請求項9記載の方法。
  11. 前記ウインドウを指し示すことは、さらに、前記ポインタ値に応答するシフトレジスタの状態を指示することを含んでいる請求項7記載の方法。
  12. 前記状態は空の状態である請求項11記載の方法。
  13. 前記状態は一杯の状態である請求項11記載の方法。
  14. 第1のメモリ装置に対するアクセスを制御してそのアクセスにおいて検索されたデータ素子に対して目的地アドレスを割当てるように動作するメモリ制御装置と、
    アクセスにおいて検索された複数のデータ素子を受信するように動作する供給メモリ装置と、
    複数のバイトレーンを有し、供給メモリ装置からローカルメモリに書込まれる複数のデータ素子を受信するように動作する受信メモリ装置と、
    データフォーマット装置とを具備し、そのデータフォーマット装置は、
    供給メモリ装置から前記データ素子を受信し、前記受信メモリ装置へ前記データ素子を書込むように動作するシフトレジスタと、
    目的地アドレスに対するアドレスオフセット値を決定し、前記アドレスオフセット値に応答して、前記シフトレジスタ中のデータ素子のサブブロックにウインドウを移動するように動作するポインタ管理装置であって、前記ウインドウは前記受信メモリ装置中のバイトレーンに対応するバイトレーンを有しており、前記サブブロック中のデータ素子の並びを変えずに、前記サブブロック中の各データ素子が前記受信メモリ装置の正確なバイトレーンに書込まれるポインタ管理装置とを具備しており、
    前記ウインドウを移動することは、前記シフトレジスタ中の前記データ素子の受信と前記受信メモリ装置への書込みとに応じてウインドウを移動することを含む、装置。
  15. 前記メモリ制御装置は、マルチバイトのデータブロックを検索するバーストアクセスを制御するように動作するバーストアクセスメモリを備えている請求項14記載の装置。
  16. 前記供給メモリ装置は、ランダムアクセスメモリ(RAM)を含んでいる請求項14記載の装置。
  17. 前記受信メモリ装置は、先入れ先出(FIFO)メモリを含んでいる請求項14記載の装置。
  18. 供給メモリ装置は第1のバス幅を有し、シフトレジスタは第2のバス幅を有し、
    第2のバス幅は第1のバス幅よりも大きい請求項14記載の装置。
  19. 第2のバス幅は第1のバス幅の4倍の大きさである請求項18記載の装置。
  20. 前記ポインタ管理装置は、前記受信メモリ装置に書込まれるデータのサブブロック中の第1の有効なデータ素子の位置に対応しているシフトレジスタ中のデータ素子位置にポインタ値を変更するように構成されている請求項14記載の装置。
  21. 前記ポインタ管理装置は、ポインタ値に応答してシフトレジスタの状態を示す信号を生成するように構成されている請求項20記載の装置。
  22. 前記状態は空の状態である請求項21記載の装置。
  23. 前記状態は一杯の状態である請求項21記載の装置。
  24. マシン実行可能な命令を含んでいるマシン読取り可能な媒体を有する装置において、前記命令は、
    シフトレジスタ中の複数のバイトレーンに第1のメモリ装置からデータを受信し、
    目的地アドレスに対するアドレスオフセット値を決定し、
    前記アドレスオフセット値に応答して、第2のメモリ装置に書込まれる前記シフトレジスタ中のデータ素子のサブブロックにウインドウを移動し、前記ウインドウは前記第2のメモリ装置中のバイトレーンに対応するバイトレーンを有しており、
    前記サブブロック中のデータ素子の並びを変えずに、各データ素子が正確なバイトレーンにあるように、前記サブブロック中の各データ素子を前記第2のメモリ装置に書込むようにマシンを制御する動作を行わせ、
    前記ウインドウを移動することは、前記データの受信と前記第2のメモリ装置への書込みとに応じてウインドウを移動することを含む、装置。
  25. データをマシンに受信させるように動作させる命令は、マシンにデータ素子を含んでいるデータのブロックを受信させるように動作させる命令を含んでいる請求項24記載の装置。
  26. さらに、前記第2のメモリ装置に書込まれるデータのサブブロック中の第1の有効なデータ素子に対応するデータ素子の位置にポインタ値をマシンが変更するように動作させる命令を含んでいる請求項24記載の装置。
  27. さらに、ポインタ値に応答してシフトレジスタの状態をマシンが指示する命令を含んでいる請求項26記載の装置。
  28. 前記状態は空の状態である請求項27記載の装置。
  29. 前記状態は一杯の状態である請求項27記載の装置。
JP2003517757A 2001-07-30 2002-07-30 目的地アドレスに基づいたデータシフタを使用するデータフォーマット装置 Expired - Fee Related JP4571403B2 (ja)

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 JP2004537805A (ja) 2004-12-16
JP2004537805A5 JP2004537805A5 (ja) 2006-01-05
JP4571403B2 true 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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7583732B2 (en) * 2002-12-06 2009-09-01 Broadcom Corporation Managing bursts of data
WO2007034263A2 (en) * 2005-09-20 2007-03-29 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

Family Cites Families (15)

* Cited by examiner, † Cited by third party
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.
JPS60245062A (ja) * 1984-05-18 1985-12-04 Matsushita Electric Ind Co Ltd デ−タ転送装置
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
JPH0468453A (ja) * 1990-07-09 1992-03-04 Nec Corp データ転送装置
JPH04181454A (ja) * 1990-11-16 1992-06-29 Fujitsu Ltd データアクセス制御装置
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
GB9520824D0 (en) 1995-10-11 1995-12-13 Int Computers Ltd Data realignment method and apparatus
US6311258B1 (en) * 1997-04-03 2001-10-30 Canon Kabushiki Kaisha Data buffer apparatus and method for storing graphical data using data encoders and decoders
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

Also Published As

Publication number Publication date
KR101050649B1 (ko) 2011-07-19
EP1412859A1 (en) 2004-04-28
US6711494B2 (en) 2004-03-23
KR20040028961A (ko) 2004-04-03
EP1412859A4 (en) 2006-04-12
US20030023819A1 (en) 2003-01-30
JP2004537805A (ja) 2004-12-16
WO2003012648A1 (en) 2003-02-13
CA2454467A1 (en) 2003-02-13

Similar Documents

Publication Publication Date Title
EP0378423B1 (en) DMA controller
US6782465B1 (en) Linked list DMA descriptor architecture
US5870627A (en) System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue
US5367639A (en) Method and apparatus for dynamic chaining of DMA operations without incurring race conditions
US5251312A (en) Method and apparatus for the prevention of race conditions during dynamic chaining operations
US7165126B2 (en) Direct memory access device
US7870310B2 (en) Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system
JP4571403B2 (ja) 目的地アドレスに基づいたデータシフタを使用するデータフォーマット装置
JP2002259115A (ja) Fifoメモリ
CN101599049B (zh) 控制dma访问不连续物理地址的方法及dma控制器
EP1631911A2 (en) Method and device for transferring data between a main memory and a storage device
JP2006510083A (ja) ハードウエアにおける構成可能なメモリ分割
US6934825B1 (en) Bi-directional stack in a linear memory array
WO1999015969A1 (en) File system block sub-allocator
JP2004537805A5 (ja)
JPH10222460A (ja) データ転送制御装置
JPH06266612A (ja) Dmaコントローラ
JP2002050172A (ja) Fifo制御回路
JPH0869399A (ja) ファイル管理装置
JP2735400B2 (ja) 非同期入出力制御方式
GB2368157A (en) Byte-swapping for efficient use of memory
US7099345B2 (en) Method and system for buffering a data packet for transmission to a network
JPS6019810B2 (ja) バッファメモリ制御方式
JPH09326832A (ja) 共用バッファ装置及びその制御方法
JPH05134970A (ja) データ転送制御装置

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