JP2000105736A - Pciバスのためのストリ―ミング・メモリ・コントロ―ラ - Google Patents

Pciバスのためのストリ―ミング・メモリ・コントロ―ラ

Info

Publication number
JP2000105736A
JP2000105736A JP11232113A JP23211399A JP2000105736A JP 2000105736 A JP2000105736 A JP 2000105736A JP 11232113 A JP11232113 A JP 11232113A JP 23211399 A JP23211399 A JP 23211399A JP 2000105736 A JP2000105736 A JP 2000105736A
Authority
JP
Japan
Prior art keywords
data
stream
fifo
memory
pci
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
JP11232113A
Other languages
English (en)
Inventor
Uoc H Nguyen
エイチ ニユーイエン ウオク
Otto Sperber
スパーバー オットー
Khanh Q Tran
キュー トラン カン
David K Bovaird
ケイ ボーヴァード ディヴィッド
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.)
Xerox Corp
Original Assignee
Xerox Corp
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 Xerox Corp filed Critical Xerox Corp
Publication of JP2000105736A publication Critical patent/JP2000105736A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Record Information Processing For Printing (AREA)
  • Bus Control (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【課題】 高速プリンタを駆動する標準PCIデータバス
構成を修正して、より高いデータ転送速度を可能にする
ことである。 【解決手段】 PCIバス(10)を有するシステムに
おいて、多数のコピーの場合に、コンピュータ(14)
から多数のI/Oデバイス(13)へデータをより高速
度で転送することができるように,追加のメモリ(2
0)がバス(10)に取り付けられている。追加のメモ
リ(20)は、それぞれがI/Oデバイスに関連付けら
れた多数のDMAチャンネルを有している。I/Oデバ
イス(13)によって要求された1コピーは通常のコン
ピュータFIFO速度でメモリへ転送される。その後
は、そのデータの多数のコピーをより高いデータバス速
度でメモリからI/Oデバイス(13)へ転送すること
ができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、主CPUメモリとプリ
ンタに接続されたI/Oポートとの間で仲介として仕事
をするようにバス上に追加のバスメモリとそのI/Oを
設けることによって、より高いデータ転送速度を可能に
するため、高速プリンタを駆動する標準PCIデータバ
ス構成を修正することに関する。
【0002】
【従来の技術】工業規格PCI(Personal Computer Int
erconnection)バスは、コンピュータをシステム内の他
のアプリケーション・ボードに接続することができる。
コンピュータは数ある中でもCPU、主メモリ、および
キャッシュを含んでおり、これらはすべてFIFOから
成るインタフェース・チップによってバスに接続されて
おり、既製の標準コンポーネントである。PCIバス上
の任意のコンポーネントから主メモリへの「ポスト書込
み(post write)」転送の場合、コンポーネントは、デー
タを書き込むことになっているアドレスを通知(ポス
ト)し、そしてデータをFIFOにロードする。コンポ
ーネントは、そのあと、データが最後に主メモリにDM
Aロードされると仮定して、別の活動を続けることがで
きる。「読取り(read)」または「プリフェッチ(pre-fet
ch)」の場合、コンポーネントは最初にメモリ内のアド
レス(そこから必ずデータが来る)を指定し、その後F
IFOからデータを入手できるまで待たなければならな
い。処理を迅速化するために、「プリフェッチ」の場
合、もしどんなデータをコンポーネントが必要とするか
をコンピュータが知っていれば、前もってFIFOにロ
ードすることができる。
【0003】
【発明が解決しようとする課題】4つの色分解を印刷す
る高速カラープリンタを駆動するには、コンピュータの
主メモリからインタフェース・チップ内のFIFOレジ
スタを通してプリンタへデータを高い転送速度で移送す
る4個のI/Oポートがなければならない。CPUおよ
びメモリプロトコルによって作られたコマンド要求と一
緒に、この単一FIFOはスループットを制限する。各
プリンタ色分解ごとに追加のFIFOを持つようにチッ
プセットを修正できるであろうが、コンピュータのチッ
プセット全体は工業規格品であるから、チップセットの
修正は選択肢にはならない。従って、課題はより高いデ
ータスループットを可能にするためシステムをどのよう
に修正するかである。
【0004】
【課題を解決しようとする手段】解決案は、バス上に追
加のメモリ・サブシステムとそのPCIマスタ(I/O)
を設置して、最初にドキュメントをCPUの主メモリか
ら追加メモリ・サブシステムへより低いFIFO速度で
転送し、次にドキュメントをPCIバス上のメモリ・サ
ブシステムからプリンタのI/Oポートへより高いバス
速度で転送する方法である。
【0005】もちろん、2つのケースにおいて、コンピ
ュータのメモリから全ドキュメントを転送する時間はF
IFOの速度によって制限されるので、このケースで
は、システムにメモリ・サブシステムを追加する利点は
ないように見える。しかし、これが本当なのは、最初の
コピーについてだけである。もしコンピュータがコピー
を2枚以上作成しようとしていれば、追加の各コピーに
ついては、転送はより高速のバス経路に沿ってメモリ・
サブシステムからプリンタ・ポートまでだけであるか
ら、必要な時間ははるかに短い。
【0006】実際には、プリンタが現ドキュメントの追
加のコピーを作成しようとしている時や、コンピュータ
がほかに使われてないない時は、いつでもコンピュータ
は次のドキュメントをメモリ・サブシステムにローディ
ングすることができる。従って、ドキュメントのすべて
のコピーはメモリ・サブシステムからPCIバスを通し
てプリンタによってたえず受け取られているので、プリ
ンタが必要とする時にデータを実時間で提供することが
できる。
【0007】
【発明の実施の形態】図1は、PCIバス10に接続さ
れたときのすべてのコンポーネントの配置を示す。工業
規格コンピュータ11は、CPU、主メモリ、およびF
IFOを備えており,1個のチップまたはチップセット
で作られている。その他の典型的なコンポーネント、た
とえばディスクI/O12がバスに接続されている。こ
れらのコンポーネントはマスタまたはスレーブと考える
ことができる。マスタは読取りおよび書込みのときメモ
リアドレスを常に知っているが、スレーブはそうでな
い。従って、スレーブはメモリ内の開始アドレスで始ま
る大量のデータを要求し、かつそれを正しい順序で得る
ことを期待しているであろう。マスタは、データブロッ
クにアクセスし、それらを伝送し、データが正しい順序
で伝送されるようにメモリアドレスを常に知っている。
4つのプリンタI/Oカード13(各色分解について1
つ)はマスタ・コンポーネントであり、図示のようにバ
スとプリンタ14に直接取り付けられている。
【0008】これらの標準コンポーネントのほかに、多
数のFIFO23をもつPCIバスマスタ24を介して
メモリ・サブシステム20がバス10に接続されてい
る。FIFO23はこの例では8個であり、そのうちの
4個は4個のプリンタI/Oカード13の専用であり、
スレーブ・コンポーネントである。プリンタI/Oがデ
ータをメモリ・サブシステム20に書き込むことになっ
ている時、プリンタI/Oはメモリ・サブシステムの開
始メモリロケーションを指定し、データブロックをFI
FO内に置く。I/Oは、その後、データがメモリ・サ
ブシステムへDMA転送されている間、自由に何かほか
の事をすることができる。同様に、I/Oがデータを受
け取る必要がある時、I/Oはデータブロックのアドレ
スを送信し、データがFIFOにロードされるまで待つ
であろう。その後、データはFIFOからI/Oへバー
ストモードで送信される。メモリ・サブシステム20と
FIFO23は内部バス22によって接続されている。
【0009】もしPCIバスマスタ24が状態、または
ある別の種類の情報にアクセスしようとしていれば、そ
れはワード、ハーフワード、またはバイトのランダム読
取りであり、それはバーストモードでないであろう。も
し状態情報が幾つかのワードから成る、より大きな量で
あれば、バーストモードを使用することができる。これ
はバーストランダムアクセスと呼ぶことにする。もし情
報が印刷しなければならないビデオデータであれば、そ
れは一般に大きな量であり、連続データの形をしている
であろう。バーストモードは当然のことと思われる。
【0010】図1の例の場合、データの8つの高速スト
リームが使用可能にされる。データストリームは、メモ
リ・サブシステムにデータを格納するPCI書込みスト
リームと、メモリ・サブシステムからデータを読み取る
PCI読取りストリームとして定義される。データスト
リームは、転送方向(PCI書込みまたは読取りストリ
ーム)、512〜4Mバイトのレンジ、および開始アド
レスによって定義される。連続データは当然のことと思
われる。従って、現アドレスビットはFIFO23によ
って保持される。実施は、さらに、プラグアンドプレイ
のためPCI構成メモリを必要とするであろう。実施は
PCI specification rev.2.x 以降に従うであろう。
【0011】データ検査の追加形式として、PCIバス
マスタは、各プリンタI/Oカード13へ/から伝送す
ることができるデータとして内部にメモリ・サブシステ
ム内のアドレス・レンジが格納されているPCIアドレ
スレンジ比較器25を備えている。転送が許される前
に、各アドレスは方向とロケーションについて検査され
る。
【0012】以下、本発明をより詳細に説明する。PCI書込みストリーム PCIバスマスタがメモリ・サブシステムにバースト書
込みを行う時、 a. PCIアドレスは8つのレンジのアドレスと比較
され、アドレスと方向がプログラムしたものと同じであ
るかどうか判断される。 b. データは、ストリームFIFOの中にバッファさ
れる。すなわち、すべての書込みは通知(ポスト)され
る。しかし、PCIアドレスは、バッファされない。 c. 例外ケース もしPCIバーストの始めにFIFOが一杯であれば、
PCIイニシエータへ再試行サイクルが出されるであろ
う。切断肯定応答(Disconnect acknowledge)も同様に使
用できるであろうが、PCIバスマスタは同じアドレス
を繰り返すであろうと思われる。もしPCIバースト書
込みの途中にFIFOが一杯になれば、Target-Not-Rea
dyまたは切断肯定応答が出されるであろう。もしチップ
によってTarget-Not-Readyが出されたならば、メモリ書
込みが起動され、一定のデータがFIFOから動かされ
るまで、全PCIバスはホールド状態にあるであろう。
もし切断肯定応答が出されたならば、PCIバスマスタ
はPCIバスを解除し、後に前のように同じアドレスを
繰り返すであろう。 d. たいてい、メモリ書込みはより遅い時間に行われ
るであろう。そしてメモリ書込みはPCI転送から切り
離される。
【0013】2つのストリームは、アドレスレンジが同
じでも、方向が異なることがあると考えられるので、ア
ドレスと一緒に方向も検査される。
【0014】PCI読取りストリーム すべての読取りストリームデータはプリフェッチ(prefe
tch)される。プリフェッチ操作は、内部FIFOがスペ
ースをもつ限り、起きるであろう。PCIバスマスタが
メモリ・サブシステムに対しバースト読取りを行う時、 a. PCIアドレスは8つのレンジのアドレスと比較
され、アドレスと方向がプログラムしたものと同じであ
るかどうか判断される。 b. データは、たいてい、それまでにストリームFI
FO内で入手できるであろう。そしてバースト読取りは
PCIバス上で最大速度で起きるであろう。 c.例外ケース もしFIFOが空であれば、再試行サイクルがPCIイ
ニシエータへ出されるであろう。切断肯定応答も同様に
使用できるであろうが、PCIマスタは同じアドレスを
繰り返すであろうと思われる。もしPCIバースト読取
りの途中にFIFOが空になれば、Target-Not-Readyま
たは切離し肯定応答が出されるであろう。もしチップに
よってTarget-Not-Readyが出されたならば、メモリ読取
りが起動され、一定のデータがFIFOから動かされる
まで、全PCIバスはホールド状態にあるであろう。も
し切離し肯定応答が出されたならば、PCIバスマスタ
はPCIバスを解除し、後に前のように同じアドレスを
繰り返すであろう。 d. たいてい、メモリ読取りはより早い時間に行われ
るであろう。そしてメモリ読取りはPCI転送から切り
離される。
【0015】プリフェッチはFIFOの状態に基づいて
おり、FIFOが一杯でない限り、メモリ読取りは起き
るであろう。
【0016】PCI非ストリームすなわちランダム書込
ランダムPCI書込みの場合、PCIアドレスは8つの
アドレスレンジと比較される。もしイニシエータのアド
レスがアドレスレンジの1つでなく、依然としてメモリ
に割り当てられたレンジ内にあれば、アドレスとデータ
はランダム書込みFIFOにバッファされる。PCIラ
ンダム書込みは常に通知(ポスト)される。メモリの書
込みは、PCI書込みサイクルとは無関係に、より遅い
時間に起きるであろう。
【0017】PCI非ストリームすなわちランダム読取
ランダムPCI読取りの場合、PCIアドレスは同様に
8つのアドレスレンジおよびメモリの全レンジと比較さ
れる。もしアドレスが8つのアドレスレンジの1つ内に
ないが、このメモリに割り当てられたレンジ内にあれ
ば、メモリサイクルはできるだけ早く開始されるであろ
う。メモリアレイからのデータはランダム読取りFIF
Oの中に書き込まれ、直ちにPCIバスへ送られるであ
ろう。常にプリフェッチされるストリーム読取りと違っ
て、どのランダム読取りもプリフェッチされない。メモ
リからのランダム読取りデータを待ちながら、チップ
は、PCI再試行肯定応答(その場合、PCIバスマス
タはバスを解除し、後に同じアドレスを繰り返すであろ
う)、またはPCI“Target-not-Ready”(その場合、
PCIバスマスタは待ち、PCIバスをキープするであ
ろう)を出すことができる。
【0018】非線型すなわちブロック転送モード 少なくとも2つのストリームはこの能力を持っているで
あろう。ブロック転送モードは、データが32バイト×
32バイトの正方形または32バイト×16バイトの長
方形など、ブロックの形をしているモードである。この
形式のデータは一定の像形成機能、たとえば回転、また
はJPEG圧縮、等に必要である。
【0019】ブロックのサイズ(長さと幅)はプログラ
ム可能である。暗黙的に、形状(正方形または長方形)
はプログラムされた長さと幅で定義される。
【0020】もしPCI書込みストリームに対しブロッ
クモードがプログラムされれば、入力データは走査線形
であり、メモリのコンテンツはブロック形である。読取
りストリームは非変換としてプログラムしなければなら
ない。
【0021】もしPCI読取りストリームに対しブロッ
クモードがプログラムされれば、メモリのコンテンツは
走査線形であり、読取りデータはブロック形である。読
取りストリーム・チャンネルは非変換としてプログラム
しなければならない。
【0022】CCBフェッチ 連鎖制御ブロック(CCB)は、ストリーム・チャンネル
を機能させるために必要な制御語である。CCBは、送
信元アドレス、宛名アドレス、方向(ストリームの読取
り、または書込み)、転送カウント、パケットサイズ、
等を含んでいる。この情報は、チップが通知(ポスト)
された書込みを実行する、またはストリーム読取りデー
タをプリフェッチするために必要である。
【0023】ストリーム・チャンネルの最初のCCBは
常にPCIバスマスタによってセットアップされる。も
しCCBが連鎖としてプログラムされれば、チップは自
動的にCCBをフェッチし、それを実行するであろう。
CCBはPCIバスマスタによって既にメモリ・サブシ
ステムに保存されていたと想定される。CCBは前に定
義したPCIランダム書込みアクセスによってメモリに
書込まれる。
【0024】CCBは、さらに、休止することができ
る。すなわち、その実行はPCIバスマスタによってセ
ット可能な制御ビットの状態によって決まる。
【0025】CCBの連鎖/休止はXSB1およびXPC1チッ
プにおいて実施される。
【0026】インテリジェント・メモリ・コントローラ インテリジェント・メモリ・コントローラは以下の仕事
を実行する。ランダムPCI書込みおよび/または読取
りの8つのストリームのサービスに関する要求と8つの
CCBフェッチ要求とを調停すること、およびDRAM
とインタフェースして、 −通知(ポスト)されたPCI書込みFIFOからメモ
リにデータ(ページモード)をバースト書込みするこ
と、 −PCI読取りストリームFIFOのためデータ(ペー
ジモード)をバースト読取りすること、すなわちデータ
をプリフェッチすること、 −PCIランダムメモリアクセスのためデータをランダ
ム書込みまたは読取りすること、 −8つのストリームのCCBフェッチ要求のため固定バ
ースト読取りをすること、 −メモリをリフレッシュすること(Cas-before-Ras)。
【0027】要求の調停(リクエストのアービトレーシ
ョン) アービテータ24は、 −8つのストリームFIFOからの8つの要求(これら
の要求はPCI読取りストリームFIFOのためのFI
FONotFull、またはPCI書込みストリームFIFO
のためのFIFONotEmptyである)、 −ランダムPCI読取りの要求、 −ランダムPCI書込みFIFOのFIFONotEmpty、 −8つのCCBフェッチ要求、 −DRAMのリフレッシュ、 を入力として受け取る。
【0028】調停の優先順位は次の通りである。 −DRAMリフレッシュ要求(最高の優先順位) −ペンディング中のランダムPCI読取り −PCI読取りストリームFIFOのFIFONotFull −ペンディング中のランダムPCI書込み −PCI書込みストリームFIFOのFIFONotEmpty −8つのストリームFIFOからの8つのCCBフェッ
チ要求
【0029】DRAMコントローラ a. DRAM転送型 −関連するすべてのストリームについて、DRAMは、
チップによって保持されたより低いアドレスビットを用
いてページモードでアクセスされる。データはストリー
ムFIFOに格納され、またはそこから読み取られる。 −CCBフェッチは、固定4語バースト読取りであり、
データはCCBスタティックRAMに格納される。 −RASは、アクティブに維持され、次のアクセスの横列
アドレスが前のそれと異なる場合にだけ非アクティブに
される。 −DRAMコントローラは、インタリーブド・バンク
(少なくとも2つのバンク)のほかに、非インタリーブ
ド・バンクを取り扱うことができるであろう。
【0030】b. DRAM物理的インタフェース −DRAMコントローラは、幾つかの形式のDRAMた
とえば通常のDRAM、EDO DRAM、同期DRAMと
直接インタフェースできなければならない。DRAMの
型はリセット後にプログラムできる。 −DRAMテクノロジーは、さらに、256Kビット、
1Mビット、4Mビット、または16MビットのDRAM
を使用できるようにプログラムできる。 −DRAMインタフェース幅は最小限32ビットでなけ
ればならない。
【0031】ランダム動作対ストリーム動作 通常のPCI活動において、CPUはストリーム中のデ
ータにランダムにアクセスすることができる。解決しな
ければならない問題が2つある。すなわち、 1)ランダムアクセスとストリームアクセスをどのよう
に区別するか 2)同じデータがランダムにアクセスされている時、こ
のチップに対し内部のストリーミングFIFOの1つに
そのデータがある場合のデータの一貫性(dataconsisten
cy)
【0032】1.ストリームアクセスとランダムアクセ
スの区別 ランダムアクセスとストリームアクセスを区別する幾つ
かの方法がある。たとえば、 −制限: ランダムアクセスは、アクティブなストリー
ム・エリアには許されない。メモリ領域に/から転送中
のデータが存在する時、ストリームはアクティブであ
る。それらのアクティブエリアへのどのアクセスもスト
リームアクセスとみなされる。 −メモリマッピング: チップが取り扱うメモリ空間は
2つのエリア(ストリームアクセスのためのエリアと、
ランダムアクセスのためのエリア)に分けられる。 1a.制限による区別 CPUはデータにアクセスするだけ、または転送が完了
した時ストリーミングデータ転送の状態を問い合わせる
だけにすべきである。
【0033】ストリームアドレスレンジと動作の状態
(完了、進行中、等)はチップから入手できる。従っ
て、CPUはストリームデータにアクセスする前に、ス
トリームチャンネルの状態を検査する必要がある。
【0034】制限は、そのほかに、CPUがチップの内
部FIFO内にあるデータに一時的にアクセスしている
時のデータの一貫性の問題を解決するであろう。
【0035】ストリームFIFOの8つのレンジ内に現
在ないデータへのどのアクセスもランダムとみなされ
る。この状態は内部アドレス比較器によって容易に検出
できるであろう。
【0036】もし書込みアドレスがランダムとして検出
されれば、すなわち8つのレンジの1つ内になければ、
書込みデータはランダム書込みFIFOに通知(ポス
ト)されるであろう。そして、メモリの書込みは、要求
の調停後、起きるであろう。
【0037】もし読取りアドレスが8つのレンジの1つ
内になければ、すなわちランダムとして検出されれば、
2つの可能性がある。すなわち、 a. ランダムプリフェッチ読取りの場合、チップは再
試行または切断肯定応答を出し、そしてできるだけ早く
必要なデータをランダム読取りFIFOに送り込むであ
ろう。 b. 非プリフェッチ読取りの場合、チップはTarget-N
on-Readyを出し、そしてPCIマスタはDRAMからメ
モリ読取りデータが読み取られるまで待たなければなら
ないであろう。
【0038】もしランダム読取りまたは書込みアドレス
が8つのストリームアドレスレンジの1つ内に入れば、
チップはそのアクセスをストリームとみなすであろう。
そして、データがFIFOから配達されるであろう。
【0039】1b. アドレスマッピングによる区別 この方法においては、最上位アドレスビットを使用して
ストリームアクセスとランダム/IOアクセスとを区別で
きるであろう。実際には、全PCIメモリ空間は2つの
空間(ストリーミング・データのための空間と、IOすな
わちランダムアクセスのための空間)に分けられる。
【0040】データの一貫性 PCIバスマスタがランダムにメモリにアクセスするこ
とができる時、もしソフトウェアに関して制限がなけれ
ば、データの一貫性を解決しなければならない。2つの
主なケースが存在する。すなわち、 A. 現在8つのストリームFIFOの1つに同じアド
レスのデータをもつランダムアクセス B. 現在ランダム読取り書込みFIFOの1つに同じ
アドレスのデータをもつストリーミングサイクル
【0041】決められたアドレスが8つのレンジの1つ
にあるか、または8つのストリームFIFOの1つにあ
るかは、チップのアドレス比較ブロックが容易に検出す
ることができる。
【0042】以下のケースが扱われるであろう。 A. 既にストリームFIFO内にある同じデータを用
いたランダムアクセス 1. 既に以下のFIFO内にあるデータへのPCI単
一ランダム書込みアクセス −ストリーム読取りFIFO −ストリーム書込みFIFO −ストリーム読取りFIFOとストリーム書込みFIF
Oの両方 2. 既に以下のFIFO内にあるデータへのPCI単
一ランダム読取りアクセス −ストリーム読取りFIFO −ストリーム書込みFIFO −ストリーム読取りFIFOとストリーム書込みFIF
Oの両方 3. 既に以下のFIFO内にあるデータへのPCIバ
ースト・ランダム書込みアクセス −ストリーム読取りFIFO −ストリーム書込みFIFO −ストリーム読取りFIFOとストリーム書込みFIF
Oの両方 4. 既に以下のFIFO内にあるデータへのPCIバ
ースト・ランダム読取りアクセス −ストリーム読取りFIFO −ストリーム書込みFIFO −ストリーム読取りFIFOとストリーム書込みFIF
Oの両方 B. 既にランダムFIFOにある同じデータを用いた
ストリームアクセス 1. 既に以下のFIFO内のデータへのPCIストリ
ームランダム書込みアクセス −ストリーム読取りFIFO −ストリーム書込みFIFO −ストリーム読取りFIFOとストリーム書込みFIF
Oの両方 2. 既に以下のFIFO内にあるデータへのPCIス
トリームランダム読取りアクセス −ストリーム読取りFIFO −ストリーム書込みFIFO −ストリーム読取りFIFOとストリーム書込みFIF
Oの両方
【0043】A. 既にストリームFIFO内にあるデ
ータを用いたランダムアクセス a. PCI単一(非バースト)ランダム書込みアクセ
ス もしランダムアドレスがヒット(hit)であれば、同じア
ドレスに対応するデータが1またはそれ以上のストリー
ムFIFO内に存在する。幾つかのケースが存在する。
すなわち、 −もし同じデータがさらにストリーム読取りFIFO内
にあれば、ストリーム読取りFIFO内のデータは更新
され、そしてPCI書込みデータはランダム書込みFI
FOに通知(ポスト)されるであろう。 −もし同じデータがさらにストリーム書込みFIFO内
にあれば、ストリーム書込みFIFO内のデータは更新
され、そしてメモリへの書込み操作は取り消される。更
新はいずれにせよ後に書込みストリームによって行われ
るであろう。 −もし同じデータがさらにストリーム読取りFIFOと
ストリーム書込みFIFOの両方の中にあれば、両方の
FIFO内のデータは更新され、そしてPCI書込みに
対応するメモリ書込みは取り消される。メモリデータは
いずれにせよ後にPCIストリーム書込みによって更新
されるであろう。
【0044】注: もしランダム書込みFIFOが1つ
以上の通知(ポスト)された書込みを受け取ることが可
能であれば、そしてもし同じアドレスに対する連続する
書込みと読取りが存在すれば、データの読取りが最新版
であることを保証することはできない。
【0045】ランダム書込みFIFOはただ1つのラン
ダム書込みが通知(ポスト)されるように実施すること
ができるであろう。そしてソフトウェアは、同じロケー
ションに対しランダム読取りを行う前に、通知(ポス
ト)されたランダム書込みが実行されることを確かめる
であろう。
【0046】b. PCIバーストランダム書込みアク
セス もしランダムアドレスが「ヒット」であれば、同じアド
レスに対応するデータが1つまたはそれ以上のストリー
ムFIFO内に存在する。2つの主なケースが存在す
る。すなわち、 (i) バーストデータはストリームFIFO内に完全
に入っている。すなわち、 −もし同じパケットデータがさらにストリーム読取りF
IFO内にあれば、ストリーム読取りFIFO内のデー
タパケットは更新され、そしてバーストPCI書込みデ
ータはランダム書込みFIFOに通知(ポスト)される
であろう。 −もし同じパケットデータがさらにストリーム書込みF
IFO内にあれば、ストリーム書込みFIFO内のパケ
ットデータは更新され、そしてメモリへの書込み操作は
取り消される。更新はいずれにせよ後に書込みストリー
ムによって行われるであろう。 −もし同じパケットデータがさらにストリーム読取りF
IFOとストリーム書込みFIFOの両方にあれば、両
方のFIFO内のパケットデータは更新され、PCI書
込みに対応するメモリ書込みは取り消される。メモリデ
ータはいずれにせよ後にPCIストリーム書込みによっ
て更新されるであろう。
【0047】注: もしランダム書込みFIFOが1つ
以上の通知(ポスト)された書込みを受け取ることが可
能であれは、そしてもし同じアドレスに対する連続する
書込みと読取りが存在すれば、データの読取りが最新版
であることを保証することはできない。
【0048】ランダム書込みFIFOはただ1つのラン
ダム書込みが通知(ポスト)されるように実施すること
ができるであろう。そしてソフトウェアは同じロケーシ
ョンに対するランダム読取りを行う前に、通知(ポス
ト)されたランダム書込みが実施されることを確かめる
であろう。
【0049】(ii) バーストデータは一部がストリ
ームFIFOの中に入っており、一部がストリームFI
FOの外側に入っている。すなわち、 −もし「ヒット」パケットデータがさらにストリーム読
取りFIFO内にあれば、ストリーム読取りFIFO内
のパケットとオーバーラップしている部分が更新され、
そして全バーストがランダム書込みFIFOに通知(ポ
スト)されるであろう。 −もしパケットデータがさらにストリーム書込みFIF
O内にあれば,ストリーム読取りFIFO内のパケット
とオーバーラップしている部分が更新され、そして全バ
ーストがランダム書込みFIFOに通知(ポスト)され
るであろう。メモリ書込みサイクルは前のケースのよう
に取り消されない。 −もしパケットデータがさらにストリーム読取りFIF
Oとストリーム書込みFIFOの両方にあれば、2つの
FIFO内のパケットとオーバーラップしている部分が
更新され、そして全バーストがランダム書込みFIFO
に通知(ポスト)されるであろう。メモリ書込みサイク
ルは前のケースのように取り消されない。
【0050】c. PCI単一(非バースト)ランダム
読取りアクセス もしランダムアドレスが「ヒット」であれば、同じアド
レスに対応するデータが1つまたはそれ以上のストリー
ムFIFO内に存在する。幾つかのケースが存在する。
すなわち、 −もしデータアドレスがストリーム読取りFIFO上の
「ヒット」であれば、データはストリーム読取りFIF
Oの1つにある。そのデータはストリーム読取りFIF
Oからランダム読取りFIFOへ「コピー」され、PC
Iランダム読取りはランダム読取りFIFOから進行す
る。DRAM操作は必要ない。 −もしデータアドレスがストリーム書込みFIFO上の
「ヒット」であれば、データはストリーム書込みFIF
Oからランダム読取りFIFOへ「コピー」され、PC
Iランダム読取りはランダム読取りFIFOから進行す
る。DRAM動作は必要ない。 −もし同じデータがさらにストリーム読取りFIFOの
1つとストリーム書込みFIFOの1つの両方にあれ
ば、このケースは起きないはずである。すなわち,もし
データが読取りと書込みストリームの両方の中にあれ
ば、ストリームはオーバーラップしている。すなわち、
データは同じメモリ空間に書き込まれ、そして読み取ら
れる。もしこのケースが検出されれば、エラー割込みを
生じさせることができるであろう。
【0051】d. PCIバーストランダム読取りアク
セス もしランダムアドレスが「ヒット」であれば、同じアド
レスに対応するデータが1つまたはそれ以上のストリー
ムFIFO内にに存在する。2つの主なケースが存在す
る。すなわち、 (i) バーストデータはストリームFIFOの中に完
全に含まれている。すなわち、 −もし同じパケットデータがさらにストリーム読取りF
IFO内にあれば、オーバーラップしている部分はスト
リーム読取りFIFOからランダム読取りFIFOへコ
ピーされ、そしてバーストの残部はメモリから読み取ら
れるであろう。PCI読取りデータは、データがストリ
ームFIFOの中に動かされた後すぐに、PCIバスマ
スタへ配達することができる。そして同時にメモリ読取
りが開始される(ASAP)。もし読み取られたデータパケッ
トの非オーバーラップ部分がメモリから遅れていれば
(ちょうどよい時にランダム読取りFIFOの中にフェ
ッチさせられない)、すべてのデータがフェッチされる
まで、チップはTarget-not-Readyを出すであろう。 −もし同じパケットデータがさらにストリーム書込みF
IFO内にあれば、オーバーラップしている部分はスト
リーム書込みFIFOからランダム読取りFIFOへコ
ピーされる。PCIランダムバースト読取りは直ちに開
始することができる。そして同時にメモリ読取りサイク
ルはできるだけ早く開始される。もし読み取られたデー
タパケットの非オーバーラップ部分がメモリから遅れて
いれば(ちょうどよい時にランダム読取りFIFOの中
にフェッチさせられない)、すべてのデータがフェッチ
されるまで、チップはTarget-not-Readyを出すであろ
う。 −もし同じパケットデータがさらにストリーム読取りF
IFOとストリーム書込みFIFOの両方にあれば、ス
トリーム書込みFIFO内のパケットデータは更新さ
れ、そしてPCI書込みに対応するメモリ書込みが取り
消される。メモリデータはいずれにせよ後にPCIスト
リーム書込みによって更新されるであろう。
【0052】B. 既にランダムFIFO内にあるデー
タを用いたストリームアクセス a. PCIストリーム書込みサイクル もしストリーム書込みアドレスが「ヒット」であれば、
同じアドレスに対応するデータが2つのランダムFIF
Oの一方または両方に存在している。ストリームのケー
スの場合、アドレス上のヒットは、ストリームデータが
既にメモリからチップの中にフェッチされている時だけ
起きる。幾つかのサブケースが存在する。すなわち、 −もし同じデータがさらにランダム読取りFIFO内に
あれば、メモリからストリーム書込みFIFOにフェッ
チされたばかりのデータは更新され、そしてPCIスト
リーム書込みはいつものとおりに処理されるであろう。 −もし同じデータがさらにランダム書込みFIFO内に
あれば、ランダムFIFO内に存在しているデータは暗
黙的にメモリ内のデータよりも新しい。従って,ストリ
ームデータはメモリからストリームFIFOの中にフェ
ッチされ、そのあとランダム書込みFIFOからのデー
タを用いて更新される。 −もし同じデータがさらにストリーム読取りFIFOと
ストリーム書込みFIFOの両方にあれば、両FIFO
内のデータは更新され、そしてPCIストリーム書込み
はいつものとおりに処理されるであろう。
【0053】b. PCIストリーム読取りサイクル もしストリーム読取りアドレスが「ヒット」であれば、
同じアドレスに対応するデータが2つのランダムFIF
Oの一方または両方に存在している。ストリームのケー
スの場合、アドレス上のヒットは、ストリームデータが
既にメモリからチップの中にフェッチされている時だけ
起きる。いくつかのサブケースが存在する。すなわち、 −もし同じデータがさらにランダム読取りFIFO内に
あれば、ランダムFIFO内に存在しているデータは暗
黙的にストリームアクセスによってフェッチされたばか
りのデータよりも古い。従って、ランダムFIFO内の
データはストリームアクセスからのデータによって更新
される。両アクセス、すなわちランダムとストリームは
いつものとおりに進行するであろう。 −もし同じデータがさらにランダム書込みFIFO内に
あれば、ランダムFIFO内に存在しているデータは暗
黙的にメモリ内のデータよりも新しい。従って,ストリ
ームデータはメモリからストリームFIFOの中にフェ
ッチされ,そのあとランダム書込みFIFOからのデー
タによって更新される。両アクセス、すなわち1つのラ
ンダム書込みと1つのストリーム読み取りはいつものと
おりに進行するであろう。 −もし同じデータがさらにストリーム読取りFIFOと
ストリーム書込みFIFOの両方にあれば、ランダム書
込みFIFOとランダム読取りFIFO内のデータは更
新され、そしてPCIアクセスは、いつものとおりに進
行するであろう。
【図面の簡単な説明】
【図1】システムのブロック図である。
【符号の説明】
10 PCIバス 11 コンピュータ 12 ディスクI/O 13 プリンタI/Oカード 14 プリンタ 20 メモリサブシステム 22 内部バス 23 FIFO 24 PCIバスマスタ 25 PCIアドレスレンジ比較器
───────────────────────────────────────────────────── フロントページの続き (72)発明者 オットー スパーバー アメリカ合衆国 カリフォルニア州 92647 ハンティングトン ビーチ ポイ ント ローマ ドライヴ 6051 (72)発明者 カン キュー トラン アメリカ合衆国 カリフォルニア州 92620 アーヴィン ヒルサイド レーン 7 (72)発明者 ディヴィッド ケイ ボーヴァード アメリカ合衆国 カリフォルニア州 91304 ウェスト ヒルズ カンタラ ス トリート 22473

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 データバスを使用してコンピュータを複
    数のI/O手段へ接続するシステムにおいて、 前記コンピュータと前記I/O手段の間でデータを転送
    する追加のパスを作り出すように前記バスに接続された
    追加のメモリ手段を備えており、 前記追加メモリ手段は、メモリと、多数のDMAチャン
    ネルとを備えており、 前記DMAチャンネルの各々は、前記メモリと前記バス
    の間でデータを転送するためデータ格納手段を備えてお
    り、 前記データ格納手段の各々は、 a.1つのI/O手段に関連付けられており、 b.前記関連づけられたI/O手段によってアクセスさ
    れたメモリロケーションのアドレスを計算するように構
    成されている ことを特徴とするシステム。
JP11232113A 1998-08-27 1999-08-19 Pciバスのためのストリ―ミング・メモリ・コントロ―ラ Pending JP2000105736A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/141,398 US6163818A (en) 1998-08-27 1998-08-27 Streaming memory controller for a PCI bus
US09/141398 1998-08-27

Publications (1)

Publication Number Publication Date
JP2000105736A true JP2000105736A (ja) 2000-04-11

Family

ID=22495527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11232113A Pending JP2000105736A (ja) 1998-08-27 1999-08-19 Pciバスのためのストリ―ミング・メモリ・コントロ―ラ

Country Status (4)

Country Link
US (1) US6163818A (ja)
EP (1) EP0982661B1 (ja)
JP (1) JP2000105736A (ja)
DE (1) DE69928187T2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6515672B1 (en) * 1999-12-23 2003-02-04 Intel Corporation Managing prefetching from a data buffer
JP2004523837A (ja) * 2001-02-28 2004-08-05 クロスローズ・システムズ・インコーポレイテッド Scsi拡張コピーコマンドの範囲でデータフローを重複させる方法およびシステム
JP2005267148A (ja) * 2004-03-18 2005-09-29 Konica Minolta Business Technologies Inc メモリ制御装置
CN100557584C (zh) * 2005-06-09 2009-11-04 Nxp股份有限公司 用于对网络和存储器进行耦合的存储器控制器和方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459823A (en) * 1990-07-05 1995-10-17 Canon Kabushiki Kaisha Graphics engine for true colour 2D graphics
JPH04363746A (ja) * 1990-07-06 1992-12-16 Nec Corp Dma機能を有するマイクロコンピュータシステム
CA2160499A1 (en) * 1994-11-30 1996-05-31 Patrick Maurice Bland Bridge between buses in a system having a plurality of buses with different memory addressing capacities and having an arrangement for reallocating memory segments within the system memory map
US5590377A (en) * 1995-06-07 1996-12-31 Ast Research, Inc. Automatic control of distributed DMAs in a PCI bus system supporting dual ISA buses
JP3576647B2 (ja) * 1995-08-11 2004-10-13 株式会社東芝 コンピュータシステム
US5768550A (en) * 1995-11-21 1998-06-16 International Business Machines Corporation Bus interface logic system
US5774680A (en) * 1995-12-11 1998-06-30 Compaq Computer Corporation Interfacing direct memory access devices to a non-ISA bus
US5884050A (en) * 1996-06-21 1999-03-16 Digital Equipment Corporation Mechanism for high bandwidth DMA transfers in a PCI environment
US5933654A (en) * 1996-09-24 1999-08-03 Allen-Bradley Company, Llc Dynamic buffer fracturing by a DMA controller
US5978866A (en) * 1997-03-10 1999-11-02 Integrated Technology Express, Inc. Distributed pre-fetch buffer for multiple DMA channel device
US6023738A (en) * 1998-03-30 2000-02-08 Nvidia Corporation Method and apparatus for accelerating the transfer of graphical images

Also Published As

Publication number Publication date
US6163818A (en) 2000-12-19
DE69928187T2 (de) 2006-06-01
EP0982661A1 (en) 2000-03-01
EP0982661B1 (en) 2005-11-09
DE69928187D1 (de) 2005-12-15

Similar Documents

Publication Publication Date Title
KR100295074B1 (ko) 응용주문형집적회로인에러정정코드메모리제어기
US6115761A (en) First-In-First-Out (FIFO) memories having dual descriptors and credit passing for efficient access in a multi-processor system environment
JP3598321B2 (ja) 異なる周波数で動作するバス間でやりとりされるバッファリングデータ
US5941964A (en) Bridge buffer management by bridge interception of synchronization events
US8683126B2 (en) Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US5890012A (en) System for programming peripheral with address and direction information and sending the information through data bus or control line when DMA controller asserts data knowledge line
US6889266B1 (en) Method for delivering packet boundary or other metadata to and from a device using direct memory controller
US20040186931A1 (en) Transferring data using direct memory access
JPH09160861A (ja) ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム
US6898646B1 (en) Highly concurrent DMA controller with programmable DMA channels
US20010047439A1 (en) Efficient implementation of first-in-first-out memories for multi-processor systems
US5761532A (en) Direct memory access controller with interface configured to generate wait states
US5167029A (en) Data processing system and associated process using memory cards having data modify functions utilizing a data mask and an internal register
JP4046278B2 (ja) Nvm記憶装置
US7774513B2 (en) DMA circuit and computer system
JP3600536B2 (ja) 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム
JP2000105736A (ja) Pciバスのためのストリ―ミング・メモリ・コントロ―ラ
EP0690382B1 (en) Computer system with a multiplexed address bus and pipelined write operations
US20140146067A1 (en) Accessing Configuration and Status Registers for a Configuration Space
US20040123061A1 (en) Memory controlling aparatus performing the writing of data using address line
US6757775B2 (en) Batch method for accessing IDE device task registers
US20060224806A1 (en) Multi CPU system
US11775452B2 (en) Non-volatile memory controller device and non-volatile memory device
JP2594611B2 (ja) Dma転送制御装置
JP2574821B2 (ja) ダイレクトメモリアクセス・コントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091005

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091105