(57)【要約】データバス（１２４），特にＰＣＩバス（１２４）を介してデータを伝送する方法が記載されている。本発明に基づく方法においては，計算ユニットのメインメモリ（１２０）内に，第２の付加的なメモリ領域（１３０）が形成されて，その中に複数のメモリページ（１２８）のすべての物理アドレス（１３６，１３８）が格納される。データ伝送の間に，必要とされる物理アドレスが，自立的に伝送される。
2005518607.tif 000002
【特許請求の範囲】
【請求項１】
複数のページ（８２，８４，１２８）に分割されており，かつ，第１のメモリ領域（１１０，１２６）及び第２のメモリ領域（１１２，１３０）を備え，物理アドレス（７８，１３６，１３８）によって前記ページ（８２，８４，１２８）にアクセス可能なメモリ装置（１６，１０６，１２０）と，データバス（２２，５２，１２４）を介して前記メモリ装置（１６，１０６，１２０）に接続される電子ユニット（４０，１２２）との間で，前記データバス（２２，５２，１２４）を介してデータを伝送する方法であって：
前記第１のメモリ領域（１１０，１２６）はデータを記憶するために設けられており，前記第２のメモリ領域（１１２，１３０）には前記第１のメモリ領域（１１０，１２６）に含まれる複数の前記ページ（８２，８４，１２８）の物理アドレス（７８，１３６，１３８）が格納されており，データ伝送の間に必要とされる前記物理アドレス（７８，１３６，１３８）が前記第２のメモリ領域（１１２，１３０）から自立的に電子ユニット（４０，１２２）へ伝送されることを特徴とする，データバスを介したデータ伝送方法。
【請求項２】
前記データ伝送の開始時に，前記第２のメモリ領域（１１２，１３０）のスタートアドレス（１３８）が前記電子ユニット（４０，１２２）へ伝送されることを特徴とする，請求項１に記載のデータバスを介したデータ伝送方法。
【請求項３】
前記データ伝送の際に，データが前記電子ユニット（４０，１２２）によって前記メモリ装置（１６，１０６，１２０）へ書き込まれることを特徴とする，請求項１または２に記載のデータバスを介したデータ伝送方法。
【請求項４】
前記データ伝送の際に，前記メモリ装置（１６，１０６，１２０）に格納されている前記データが，前記電子ユニット（４０，１２２）によって読み出されることを特徴とする，請求項１または２に記載のデータバスを介したデータ伝送方法。
【請求項５】
前記データバス（２２，５２，１２４）が，ＰＣＩバス（２２，５２，１２４）であることを特徴とする，請求項１から４のいずれか１項に記載のデータバスを介したデータ伝送方法。
【請求項６】
前記メモリ装置（１６，１０６，１２０）が，電子的な計算ユニット（１００，１２１）のマザーボード（１１０）上に配置されたメインメモリ（１６，１０６，１２０）であって；
前記電子ユニット（４０，１２２）として，前記マザーボード（１１０）のプラグインスペース（６０）へ挿入されるプラグインカード（４０，１２２）が設けられていることを特徴とする，請求項１から５のいずれか１項に記載のデータバスを介したデータ伝送方法。
【請求項７】
前記物理アドレス（７８，１３６，１３８）が，ダイレクトメモリアクセス（ＤＭＡ）によって前記電子ユニット（４０，１２２）へ伝送されることを特徴とする，請求項１から６のいずれか１項に記載のデータバスを介したデータ伝送方法。
【請求項８】
複数のページ（８２，８４，１２８，１３２）に分割されており，かつ，第１のメモリ領域（１１０，１２６）及び第２のメモリ領域（１１２，１３０）を備えるメモリ装置であって：
前記第１のメモリ領域（１１０，１２６）はデータを記憶するために設けられており，かつ，前記第２のメモリ領域（１１２，１３０）には，前記第１のメモリ領域（１１０，１２６）に含まれる複数の前記ページ（８２，８４，１２８）の物理アドレス（７８，１３６，１３８）が格納されていることを特徴とするメモリ装置。
【請求項９】
請求項８に記載のメモリ装置（１６，１０６，１２０）を，電子的な計算ユニット（１００）のマザーボード（１１０）上に配置されているメインメモリ（１６，１０６，１２０）として使用することを特徴とする使用方法。
【請求項１０】
電子的な計算ユニット（１００，１２１）のマザーボードであって，メインメモリ（１６，１０６，１２０）として請求項８に記載のメモリ装置（１６，１０６，１２０）が用いられることを特徴とするマザーボード。
【請求項１１】
マザーボード（１１０）及び前記マザーボード（１１０）上に配置されているメインメモリ（１６，１０６，１２０）を有する電子的な計算ユニットであって，前記メインメモリ（１６，１０６，１２０）として請求項８に記載のメモリ装置（１６，１０６，１２０）が設けられていることを特徴とする電子的な計算ユニット。
【請求項１２】
データバス（２２，５２，１２４）を介して互いに接続されている請求項８に記載のメモリ装置（１６，１０６，１２０）及び電子ユニット（４０，１２２）を備えることを特徴とするシステム。
【請求項１３】
電子的な計算装置，電子ユニット及び請求項８に記載のメモリ装置及びが１つの構成部材内に組み込まれていることを特徴とする，電子装置。
【請求項１４】
コンピュータプログラムがコンピュータまたは同様な計算ユニット（１００，１２１），特に請求項１１に記載の電子的な計算ユニット（１００，１２１）において実行される場合に，請求項１から７のいずれか１項に記載の方法の全ステップを実施するためのプログラムコードを含むことを特徴とするコンピュータプログラム。
【請求項１５】
コンピュータプログラムがコンピュータまたは同様な計算ユニット（１００，１２１），特に請求項１１に記載の電子的な計算ユニット（１００，１２１）において実行される場合に，請求項１から７のいずれか１項に記載の方法を実施するためのプログラムコードがコンピュータ読取り可能なデータ記憶媒体に記憶されていることを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
一般的なパーソナルコンピュータ（ＰＣ）は，簡単に拡張できることを特徴としており，それはたとえば，ＰＣのマザーボード上の拡張プラグインスペースへ差し込まれる，いわゆるプラグインカードによって行うことができる。近年では，これらの拡張のためにいわゆるＰＣＩバス（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）を使用することが広く知られている。これは，データバスの機械的および電気的な特性の他に，バスメンバーの構成も定義する。
【背景技術】
【０００２】
ＵＳ特許公報５７，７６５，００８には，拡張カードのための拡張スロットが設けられているメインボードを有するコンピュータが開示されている。これらのカードは，ＰＣＩバスを介してマザーボードと接続されている。
【０００３】
拡張スロットの１つには，いわゆる「ライザーカード（riser card）」が設けられており，そこにまた幾つかの拡張カードを差し込むことができる。このようにして多数の拡張カードをマザーボード内へ差し込むことができ，従って多様な機能を実現することができる。
【０００４】
各ＰＣＩ拡張カードは，ＰＣＩバスへ接続されるために，ＰＣＩインターフェイスを必要とする。これは，特殊な独自の集積回路（ＰＣＩブリッジ）か，あるいはハードウェア記述言語で実装されるＰＣＩインターフェイス（ＰＣＩコア）とすることができる。後者は，自由に定義可能な付加的なロジックと共に，たとえばＦＰＧＡ（ＦＰＧＡ：Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）のような，プログラミング可能なロジックモジュールに埋め込むことができる。
【０００５】
ＰＣＩバスへ接続する２つの変形例は，ＰＣＩバスをこれらのインターフェイスモジュールを介して，ローカルの自己定義可能なロジック，たとえばローカルのバス（Ｐｒｏｐｒｉｅｔａｒｙ  ｂｕｓ）へ接続する拡張カードの開発を許すものである。ＦＰＧＡに基づく方法を使用する場合には，ローカルのロジックを絶対的に自由に構成することができる。商業的なＰＣＩブリッジの場合においては，ローカルのインターフェイスは，この回路のメーカーによって定義されている。
【０００６】
ＰＣを始動させる場合に，ＰＣＩバスのセルフコンフィグレーション（プラグアンドプレイ）が行われた後に，拡張カードにおいて自己のローカルロジックを初期化することが必要である。初期化が行われた後に，カードはその固有の駆動，たとえばコンピュータへのデータの読込みを開始することができる。拡張カードとＰＣの駆動システムの間の通信（初期化，データ転送）は，ドライバが担当する。そのドライバは，拡張カードの特殊な特性に適合しており，従ってカードを正しく初期化することのできるプログラム（ソフトウェア）である。さらに，ドライバは，拡張カードとの通信のために提供される，駆動システムのインターフェイスを拡張カードへコピーする。ドライバはさらに，駆動システムのデータ読取りおよび書込み要求を適切な形式で拡張カードへ伝える。
【０００７】
駆動システム側からのデータ転送要求の他に，拡張カードがＰＣに対して，拡張カードがデータを必要とし，あるいは渡そうとしていることを信号で伝達することも可能である。拡張カード側からの信号伝達は，ＰＣの正常なシーケンシャルなプログラムシーケンスを中断する，いわゆる中断要求（インターラプト）によって行われる。拡張カード側からインターラプトが作動された場合には，この中断のためにドライバから提供されるソフトウェアルーチン，いわゆるインターラプトサービスルーチン（ＩＳＲ）へ処理が移る。
【０００８】
ＩＳＲは，インターラプトを用いて中断要求の種類を認識してそれを扱う。具体的にはたとえばカードからデータを読み出して，ＰＣのメインメモリへ格納し，それによって読み出されたデータを以降の処理のための利用プログラムへ提供するなどであるＩＳＲ内のコードは，中断の期間を最小限に抑え，従ってシステム全体の能力を不必要に損なうことのないようにするために，できるだけ短くかつコンパクトにされる。
【０００９】
プロセッサがドライバを用いてメインメモリと拡張カードとの間でデータ伝送を実施する場合の他に，さらに，直接的なメモリアクセス，いわゆるＤＭＡ（ＤＭＡ：Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ：ダイレクトメモリアクセス）によるデータ伝送が行われる場合もある。ＤＭＡにおいては，拡張カードがＰＣメインメモリへダイレクトアクセスを行う。そのために，カードのためのデータを読み出し，あるいはデータを書き込もうとする対象であるメインメモリ領域は，そのスタートアドレスによって直接カードへ伝達される。それに続いてカードはＰＣＩバス上でコントロールを獲得して（マスター），スタートアドレスによって定義されたメインメモリとＰＣＩ拡張カードとの間でデータを，プロセッサを煩わせることなく自立的に伝達する。データ伝送が終了した後に，ドライバに成功したデータ伝送を伝えるために，カードはインターラプトを作動させる。
【００１０】
ウィンドウズＮＴ／２０００のような最近の駆動システムあるいはリナックスも，いわゆるマルチタスキング駆動システムである。それは，同時にされるべき複数の処理が，それぞれミリ秒単位の小さいタイムスライスの形式のプロセスタイムを使用することを意味している。このタイムスライス処理によって，ＰＣのユーザーには，すべてのアクティブな処理が同時に行われているという印象を生じさせる。しかし物理的には，進行している処理の数に関係なく，メインメモリの唯一の制限された範囲のみが提供される。そのため，最近のプロセッサは，この制限を迂回して，すべての処理にそれによって必要とされるメモリを提供するために，仮想メモリという概念を使用している。
【００１１】
仮想メモリという概念は，わずかな物理メモリしか提供されない場合でも（たとえば１２８ＭＢ），全ての処理に対して極めて大きい（仮想の）メインメモリ（たとえば２ＧＢ）が提供されていると装うことに基づいている。これは，メモリが多数の小さい単位，いわゆるページに分割されることによって，達成される。この種のページの典型的な大きさは，４，０６９バイトである。１つの処理が（たとえばデータまたはプログラムコードのために）メモリを要求した場合に，その処理には必要とされるメモリが所定のページ数の形式で提供される。メモリをページに分割することは，最近のすべてのプロセッサによってはハードウェアにより支援される。１つの処理がメモリにアクセスするとすぐに，いわゆるメモリマネージメントユニット（ＭＭＵ）が仮想のメモリアドレスを物理的なアドレスに変換する。ある処理Ａのタイムスライスが完了し，次の処理Ｂも，まさに第１の処理Ａによって利用されているメモリを同様に必要とした場合には，第１の処理Ａのためのページが，たとえばハードディスクへ待避される。それによって処理Ａのデータまたはコードは失われないが，それにもかかわらず処理Ｂは，以前にＡが利用していた物理的なメモリを利用することができる。
【００１２】
ＰＣＩ拡張カードとＰＣのメインメモリとの間でより大きいデータ量，たとえばビデオデータを伝送しようとする場合には，ＰＣのメインメモリ内にこのデータのためにそれに応じた大きさの領域がリザーブされる。リザーブされた領域が１メモリページ（たとえば４，０９６バイト）よりも大きい場合には，この領域は必然的に複数のメモリページから構成される。その場合にこれらのページは，論理的に互いに連続した仮想アドレスを有する。これらの仮想アドレスは，ＭＭＵによって物理的に設けられているメモリへコピーされる。その場合に，変換によって仮想アドレスは必ずしも物理的に連続したアドレス上にコピーされる必要はない。
【００１３】
従って仮想ページに対応する物理的なページは，ＰＣの物理的なメインメモリ内で広く点在することができる。それに対してＰＣバスを介してのデータ転送は，メモリの物理的なアドレスよってのみ行われる。従って，ＤＭＡが仮想メモリ内で連続しているデータを正しい順序で読み，あるいはデータを，次にそれが仮想メモリ内で連続するように書き込むためには，ＤＭＡは個々のページにランダムに付与されている物理的なメモリアドレスにアクセスしなければならない。これは，ＤＭＡで伝送時に常に４，０９６バイトしか読み出しあるいは書き込むことができないことを意味している。
【００１４】
この問題は，現在では，ドライバが各仮想のメモリページに対して物理的なアドレスを求めて，拡張カードに提供することによって，解決される。今日の従来技術によれば，そのための２つの方法が知られている。第１の方法によれば，拡張カード上のＰＣＩインターフェイスは，メインメモリのメモリアドレスのための制限されたレジスタメモリを有している。第２の方法によれば，拡張カード上のＰＣＩインターフェイスは，完全なデータセットのためのすべてのページアドレスを記録することのできる，十分なレジスタメモリを有している。
【００１５】
説明するための例として，以下では，ＣＣＩＲ解像度を有するビデオ画像を拡張カードからコンピュータへ伝送しようとしていると，仮定する。
【００１６】
ＣＣＩＲ画像は，７２０＊５７６画素からなる。各画素は，ＹＣｂＣｒフォーマットにおいて２バイトを必要とし，それに基づいて１つのＣＣＩＲ画像のために，７２０＊５７６＊２バイト＝８２９，４４０バイトのデータが生じる。
【００１７】
この８２９，４４０バイトは，ＰＣのメインメモリ内で，８２９，４４０／４，０９６＝２０２．５，従って２０３ページを占める。
【００１８】
第１の方法によれば，拡張カード上のＰＣＩインターフェイスは，メインメモリのページアドレスのための制限された（レジスタ）−メモリを有している。拡張カードが，たとえばメモリアドレスのために８つのレジスタを有している場合には（８＊３２ビット＝３２バイト），データ転送の開始前にこの８つのレジスタを有効なアドレスによって初期化しなければならない。その後，最大で，８＊４，０９６＝３２，７８６バイトを自立的にカードからＤＭＡによってＰＣのメインメモリへ伝達することができる。各ＤＭＡの後に，成功した伝送を認識させて，それによって８つの新しいメモリアドレスを要求するために，インターラプトを作動させなければならない。たとえば，秒当たり２５ＣＣＩＲ画像をコンピュータへ転送すると仮定すると，次のようになる。
８２９，４４０＊２５  ｌ／ｓ＝２０，７６３，０００バイト／ｓ
２０，７３６，０００バイト／ｓ／３２，７６８バイト＝６３２，８  ｌ／ｓ
【００１９】
従って，１秒の画像データを転送するためだけに，秒当たり６３３のインターラプトが必要となる。
【００２０】
第２の方法によれば，拡張カード上のＰＣＩインターフェイスは，完全なＣＣＩＲ画像のためのすべてのページアドレスを記録することができるようにするために，十分な（レジスタ）−メモリを有する。従ってこれは，それぞれ３２ビットを有する少なくとも２０３のレジスタを必要とする。（つまり，合計で８１２バイトを必要とする。）
【００２１】
従って各画像のために，１つのインターラプトしか必要とされず，そのインターラプトが成功したデータ転送を認識して次の画像のために再び２０３の（新しい）アドレスを要求する。従って秒当たり２５画像の場合には，秒当たり２５のインターラプトが生じる。
【発明の開示】
【発明が解決しようとする課題】
【００２２】
上述した第１の方法においては，システムのパフォーマンスはインターラプト要求の数が多いことにより，著しく損なわれる。これらの要求の各々はシステムに，その時の処理を中断して，ＣＰＵレジスタ値の実際の内容を一時的に記憶し，そのインターラプトのためのソースを求めて，それに応じたＩＳＲを実施することを強制する。次に，古いＣＰＵレジスタ値を再形成した後に，その前に中断された処理に戻る。
【００２３】
この方法の利点は，記憶すべきページアドレスの数が少ないことにより，拡張カードのＰＣＩインターフェイス内に必要とされるアドレスレジスタが少なくて済むことにある（メモリスペースは，チップ面積ないしＦＰＧＡリソースに等しい）。
【００２４】
第２の方法は，第１の方法とは異なり，著しく向上したパフォーマンスを提供する。というのは，システムは少ないインターラプト要求を処理すれば済むからである。しかしこの利点は，ハードウェアの明らかなコスト増によって購われる。ハードウェアコスト（チップ面積ないしＦＰＧＡリソース）は，上述した例において第１の方法におけるものよりも係数２５だけ高くなる。
【課題を解決するための手段】
【００２５】
本発明に基づく方法は，特にページに分割されており，物理アドレスによってページへアクセスすることのできるメモリ装置と，データバスを介してメモリ装置と接続されている電子ユニットとの間で，データバスを介してデータを伝送するために用いられる。
【００２６】
メモリ装置は，本発明によれば，第１と第２のメモリ領域を備えている。第１のメモリ領域はデータを記憶するために設けられており，第２のメモリ領域には，第１のメモリ領域に含まれるページの，あるいはメモリ装置全体に含まれるページの，物理アドレスが格納されている。その場合に第２のメモリ領域に格納されている物理アドレスの順序は，第１のメモリ領域の仮想ページの順序と一致する。
【００２７】
データ伝送の間に，必要とされる物理アドレスが第２のメモリ領域から自立的に電子ユニットへ伝送される。従って電子ユニットは，物理アドレスの位置を知っている。自立的な伝送というのは，メモリ装置に対応づけられたシステムプロセッサの介入なしでの伝送を意味している。従って本方法は，電子ユニットが自立的に，かつシステムプロセッサの介入なしでメモリ装置からデータを伝送することができる，という考えをアドレスの自立的な伝送に拡大したものである。
【００２８】
本発明に基づく方法は，ＰＣＩインターフェイスとドライバにおけるハードウェアおよびソフトウェアの実装の変更を内容としている。ハードウェアの実装は，標準ＩＣ技術であるＰＣＩブリッジにおいても，ハードウェア記述言語であるＰＣＩコアにおいても，利用可能である。ソフトウェア部分は，使用される駆動システムに依存せず，かつ各ドライバに実装することができる。
【００２９】
好ましくはデータ伝送の開始時に，第２のメモリ領域のスタートアドレスが，電子ユニットへ伝達される。従って電子ユニットには，メモリ装置のページの物理アドレスの位置，従って物理的な場所が知らされている。
【００３０】
本発明に基づく方法は，データを電子ユニットからメモリ装置へ書き込むのにも，メモリ装置内に格納されているデータを読み出すのにも適している。
【００３１】
データバスとして，特にＰＣにおいて広く普及している，ＰＣＩバスを使用してもよい。
【００３２】
本発明に基づく方法の形態において，メモリ装置は，電子定な計算ユニット（コンピュータ）のマザーボード上に配置されているメインメモリであることが望ましい。電子ユニットとしては，マザーボードの拡張スロットへ差し込まれるプラグインカードのような拡張カードが設けられている。この場合において，電子的な計算ユニットのＣＰＵは，システムプロセッサである。
【００３３】
典型的に，物理アドレスはダイレクトメモリアクセス（ＤＭＡ）によって電子ユニットへ伝送される。
【００３４】
本発明に基づくメモリ装置は，ページに分割されており，かつ第１のメモリ領域と第２のメモリ領域とを有している。第１のメモリ領域は，データのために設けられている。すなわちこの第１のメモリ領域には読み出すべきデータが格納されており，またはこの第１のメモリ領域にデータが書き込まれる。第２のメモリ領域には，第１のメモリ領域に含まれる複数のページの各々の物理アドレスが格納されている。これらのアドレスは，第１のメモリ領域に格納されているデータへのアクセスを可能にし，かつ／または第１のメモリ領域への書込みを可能にする。
【００３５】
本発明に基づくメモリ装置は，好ましくは，電子的な計算ユニットにおけるマザーボード上に配置されたメインメモリとして使用される。
【００３６】
電子的な計算ユニット（コンピュータ）の本発明に基づくマザーボードは，本発明に基づくメモリ装置がメインメモリとして用いられることを特徴としている。
【００３７】
本発明に基づく電子的な計算ユニットは，メインメモリを有している。メインメモリとして，本発明に基づくメモリ装置が設けられている。計算ユニットのＣＰＵは，システムプロセッサとして用いられる。メインメモリは，好ましくはマザーボード上に配置されている。
【００３８】
本発明に基づくシステムは，本発明に基づくメモリ装置と本発明に基づく電子ユニットとを有している。これらは，データおよびアドレスを伝送するために，データバス，好ましくはＰＣＩバスを介して，互いに接続されている。
【００３９】
ＣＰＵのような電子的な計算装置，メモリ装置および電子ユニットが１つの構成部分に集積されている，本発明に基づく電子的な装置は，コンパクトなシステムである。このシステムにおいては，たとえば１つのカード上に，あるいは特に個々のチップ内に（ＳｏＣ：System on Chip）すべてのコンポーネントが集積されている。
【００４０】
本発明に基づくコンピュータプログラムは，上述した方法のすべてのステップを実施するためのプログラムコードを含んでいる。コンピュータプログラムは，コンピュータまたは計算ユニット，特に本発明に基づく電子的な計算ユニット上で実行される。
【００４１】
本発明に基づくコンピュータプログラム製品は，上記プログラムコードを備えており，コンピュータ読取り可能なデータ記憶媒体に記憶されている。
【００４２】
本発明の他の利点と形態は，明細書と添付の図面から明らかにされる。
【００４３】
なお，上述した特徴と以下でさらに詳細に説明する特徴は，それぞれ記載の組合わせにおいてだけでなく，他の組み合わせにおいて，あるいは単独でも，本発明の枠を逸脱することなく，使用可能である。
【発明の効果】
【００４４】
従って本発明に基づく方法は，上述した２つの方法の利点，すなわち，わずかなメモリしか必要としないという利点と，わずかなシステム負荷しか生じさせないという利点とを組み合わせ，それぞれの欠点を回避している。従って本方法は，それぞれ従来使用されていたデータ伝送方法に従って，インターラプト要求の数の著しい減少と，それに伴ってシステムパフォーマンスの著しい向上を可能にする。また，他の場合には，ＰＣＩインターフェイスの実現に必要とされる，ハードウェア資源の需要を著しく減少させることができる。その場合に本来のデータ伝送の種類は，変化を受けず，従って影響を受けない。ただ，ページアドレスの伝送の種類と方法が変化するのみである。
【００４５】
従って本発明に基づく方法によれば，１つには，データ伝送のために必要なすべてのアドレスを，電子ユニットのメモリ内に保持することは，もはや必要とされない。従って第２の方法の欠点，すなわち電子ユニットのインターフェイス内部の高いメモリ需要は，回避される。他方で，電子ユニットがもはやすべての物理アドレスを記憶しないにもかかわらず，第１の方法におけるように，所定の数のアドレスに関する処理が行われた後にシステムへインターラプト要求が送信されて，それによって，その時に進行している処理の中断が作動されることはない。
【発明を実施するための最良の形態】
【００４６】
本発明を，実施例を用いて図面に示し，以下で図面を参照して詳細に説明する。
【００４７】
図１には，ＰＣＩシステムの基本構造が，全体を参照符号１０で示されている。
【００４８】
図には，ＣＰＵ１２，いわゆるホストブリッジ１４，メインメモリ１６，第１のＰＣＩカード１８，第２のＰＣＩカード２０およびＰＣＩバス２２が示されている。
【００４９】
第１のＰＣＩカード１８は，第１のＰＣＩインターフェイス２４と第１のローカルロジック２６を有している。第２のＰＣＩカード２０は，同様に，第２のＰＣＩインターフェイス２８と第２のローカルロジック３０を有している。
【００５０】
ＰＣＩカード１８と２０は，インターフェイス，すなわちＰＣＩインターフェイス２４又は２８によってＰＣＩバス２２に接続されている。従ってローカルロジック２６と３０も，ＰＣＩバス２２に接続されている。
【００５１】
ＣＰＵ１２とメインメモリ１６の接続は，ホストブリッジ１４を介して行われる。
【００５２】
図２には，スロットシート４２を有する拡張カードの一例であるプラグインカード４０が示されている。
【００５３】
プラグインカード４０には，ＰＣＩブロック４４が設けられており，それもまたローカルロジック４６とＰＣＩインターフェイス４８を有している。双方向矢印５０によって示されるように，ＰＣＩインターフェイス４８は，電子的な計算ユニットのマザーボードのＰＣＩバス５２と接続されている。
【００５４】
プラグインカード４０は，さらに，第１の論理ブロック５４，第２の論理ブロック５６および第３の論理ブロック５８が設けられている。さらに，プラグコネクタ６０が示されており，そのプラグコネクタはプラグインカード４０の堅固な保持を保証し，かつデータ交換のための端子を有している。
【００５５】
ローカルロジック４６は，ローカルのバス６２を介して第１と第２の論理ブロック５４および５６と接続されている。ローカルロジック４６と第３の論理ブロック５８の間には，直接的な結合６４も存在している。
【００５６】
図３では，仮想的なアドレスと物理的なアドレスの間の関係が明らかにされている。
【００５７】
以下で仮想メモリとも称する，メモリの仮想的な編成７０と，以下で物理メモリとも称する，メモリの物理的な編成７２が示されている。仮想メモリ７０内には，データ要素７４が含まれている。参照符号７６で示す記載０ｘ１４，０ｘ１３および０ｘ１２は，仮想アドレスの例である。物理アドレスの例である０ｘＡ９，０ｘ７Ｄおよび０ｘ０５は，参照符号７８で示されている。
【００５８】
仮想メモリ７０内のデータ要素７４は，仮想アドレス７６によって識別される，３つのページ８２を有している。これらのページ８２は，論理的に互いに連続する仮想アドレスを有している。参照符号８４によって，物理メモリ７２内の物理的なページが示されている。矢印８６は，仮想メモリ７０の，物理メモリ７２への割当てを示している。図から明らかなように，仮想ページ８２に相当する物理的なページ８４は，メインメモリ内に分散している。仮想アドレス７６は，ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）によって物理的に存在するメモリ７２上にコピーされる。
【００５９】
ＰＣＩバス上でのデータ転送は，物理メモリ７２の物理アドレス７８によってのみ行われうる。ＤＭＡが仮想メモリ７０内でつながっているデータを正しい順序で読み出し，またはデータを，それが次に仮想メモリ７０内でつながるように書き込むために，ランダムに分配された物理的なメモリアドレス７８へ転送の際にアクセスしなければならない。
【００６０】
図４は，本発明に基づく電子的な計算ユニットの好ましい実施形態を，全体を参照符号１００で示している。計算ユニット１００は，たとえばコンピュータやＰＣである。マザーボード１０２が示されており，その上にＣＰＵ１０４とメモリ装置１０６，すなわち電子的な計算ユニット１００のメインメモリ１０６が配置されている。ＣＰＵ１０４とメインメモリ１０６は，スタンダードバスを介して互いに接続されている。
【００６１】
メインメモリ１０６は，第１のメモリ領域１１０と第２のメモリ領域１１２を有している。第１のメモリ領域１１０は，データのために設けられている。これは，この領域内にアクセスすべきデータが格納されており，かつ／または第１のメモリ領域１１０内へたとえばプラグインカード４０から，データを書き込むことができることを意味している。第２のメモリ領域１１２は，第１のメモリ領域１１０のページまたはメインメモリ１０６全体のページの物理アドレス７８を有している。
【００６２】
図５には，ＰＣＩバス１２４を介して接続されている，電子的な計算ユニット１２１と拡張カード１２２の間の協働が説明されている。電子的な計算ユニット１２１は，メインメモリ１２０を有している。
【００６３】
参照符号１２６は，ページ１２８に分割された，メインメモリ１２０の第１のメモリ領域を示している。１つのページ１２８は，基本的に４，０９６バイトである。
【００６４】
第２のメモリ領域，すなわちアドレスメモリスペース１３２に分割されている，アドレステーブルのためのメモリ領域は，参照符号１３０で示されている。
【００６５】
符号１３４で示す記載（０ｘＥ．７０００他）は，論理的に互いに連続している仮想アドレスである。記載１３６（０ｘ３，３００他）は，第１のメモリ領域１２６に含まれる複数のページ１２８に任意に付与された物理的なアドレスである。矢印１３７は，第２のメモリ領域１３０内に含まれているアドレステーブルのデータが，第１のメモリ領域１２６のページ１２８に付与されている物理アドレス１３６と対応していることを説明している。すなわち第２のメモリ領域１３０内には，第１のメモリ領域１２６の物理アドレス１３６がアドレステーブルとして含まれている。
【００６６】
符号１３８で示す記載０ｘ１．９０２０と０ｘ１．９０００は，第２のメモリ領域１３０のアドレスメモリスペース１３２に付与されている物理的なアドレスである。記載０ｘ１．９０００は，アドレステーブルの物理的なベースアドレス，すなわち必要とされるスタートアドレスである。
【００６７】
ＰＣＩ拡張カード１２２内には，拡張カード１２２のローカルレジスタを有する，レジスタメモリ１４０が設けられている。このレジスタ内に，第２のメモリ領域１３０の必要とされる物理的なアドレス１３８が格納されている。記載０ｘ１．９０００は，アドレステーブルのベースアドレスを表している。記載０ｘ１．９０２０は，例えばアドレスブロック長さが８である場合に，アドレステーブルに基づく次のアドレスブロックのためのベースアドレスを示している。
【００６８】
アドレスメモリ１４２内には，ローカルの目標アドレス，すなわち第２のメモリ領域１３０の内容，すなわち第１のメモリ領域１２６の物理的なアドレスが含まれている。例では，深さが８のレジスタであって，それがＰＣＩ−Ｍａｓｔｅｒ−ＤＭＡを介してＰＣＩ拡張カード１２２により満たされる。従ってアドレスメモリ１４２は，８つのページ１２８のアドレスを有している。レジスタメモリ１４０とアドレスメモリ１４２の間には，アドレス管理ロジック１４４が設けられている。
【００６９】
初期化する際に，ドライバはＰＣのメインメモリ内に，画像データによって必要とされる大きさを有する第１のメモリ領域１２６を作成する。この大きさを用いてドライバは，第１のメモリ領域１２６が占める，必要とされるメモリページ１２８の数を計算する。それに基づいて第１のメモリ領域１３０が作成され，第１のメモリ領域１２６の物理アドレス１３６が求められて（図５において０ｘＦ．６０００，０ｘ０．２０００など），第２のメモリ領域１３０に格納される。第２のメモリ領域１３０内のアドレステーブルの物理的なベースアドレス，スタートアドレス（この場合においては０ｘ１．９０００）を，ドライバが拡張カードに伝達する。拡張カードは，その値をローカルレジスタに，この場合においてはレジスタメモリ１４０に格納する。
【００７０】
データ伝送のスタート時に，拡張カード１２２は，アドレステーブルのベースアドレス１３８（０ｘ１．９０００）に基づいて，データ伝送のために予約されている領域のメモリページ１２８の，たとえば８つのベースアドレス１３６（０ｘＦ．６０００，０ｘ０．２０００など）をＰＣのメインメモリ１２０からＰＣＩ−Ｍａｓｔｅｒ−ＤＭＡを介して読み出して，ローカルのアドレスメモリ１４２に格納することを開始する。それに続いて，データが同様にＰＣＩ−Ｍａｓｔｅｒ−ＤＭＡを介して，上記でそのアドレス１３６を取得したメモリページ１２８内へ転送される。８＊４，０９６のデータバイトが転送されるとすぐに，カードは他のＰＣＩ−Ｍａｓｔｅｒ−ＤＭＡサイクルにおいて，次の８つのメモリページのための新しいベースアドレス，すなわち物理アドレス１３６を獲得する。
【００７１】
ＰＣＩコントローラの内部のロジックは，従来のロジックの他に，アドレステーブルのためのメモリアドレスを管理するために用いられる，他のレジスタを持たなければならない。データメモリのためのアドレスの管理におけるのと同様に，ここでもアドレスは一時的に記憶され（０ｘ１．９０２０），そのメモリセルもアドレスを有しており（０ｘＣ．００００），そのアドレスが利用すべき次のメモリページを指示する。既知の第１の方法に基づくインターラプト要求を作動させる代わりに，ローカルのアドレスレジスタがＰＣＩコントローラによって自立的に更新される。
【００７２】
本発明に基づく方法によって，目標アドレスレジスタの数が少なく，従ってハードウェア資源を節約できるにもかかわらず，データブロック当たり１つのインターラプトしか作動されないことが，可能である。この１つのインターラプトは，データブロックの大きさにほぼ無関係でもある。４メガバイトよりも大きいデータブロックの場合においては，場合によっては複数のアドレステーブルが使用される。というのは，その場合にはアドレステーブル自体が１つより多いメモリページを占め，あるいはデータブロック当たり１つより大きいインターラプト要求を介してアドレステーブルの更新が要求されるからである。
【００７３】
図６には，本発明に基づく方法の好ましい実施形態がフローチャートで示されている。参照符号１５０は，ドライバによって実施される処理ステップを示している。参照符号１５２は，拡張カード内で実施される処理ステップを示している。
【００７４】
ステップ１５４において，第１のメモリ領域，すなわちデータのためのメモリ（データメモリ）が定められ，ステップ１５６においては，アドレステーブル，つまり第２のメモリ領域が定められる。次に，ステップ１５８において，データメモリの物理的なアドレスが求められて，アドレステーブルに格納される。
【００７５】
矢印１６０で示すように，拡張カードの初期化とアドレステーブルのスタートアドレスの伝送が行われる。
【００７６】
矢印１６２で示すように，データ伝送の開始時に，まずステップ１６４においてアドレステーブルの第１の部分がＰＣのメインメモリから拡張カードのローカルメモリへ読み込まれる。次に，ステップ１６６において，メモリページｘ＋０のデータの伝送が行われる。データブロックがまだ完全に伝送されていない場合には，ステップ１６８においてメモリページｘ＋１のデータの伝送が行われる。このプロセスは，ステップ１７２においてメモリページｘ＋７のデータの伝送が実施されるまで，１７０で繰り返される。伝送は，破線の矢印１７４で示されるように，ＰＣＩ−Ｍａｓｔｅｒ−ＤＭＡを介して行われる。
【００７７】
ステップ１７６において，伝送すべきデータブロックが最後に来たか，すなわちすでに完全に伝送されたか，が調べられる。そうでない場合には，矢印１７８に示すように，シーケンスは処理ステップ１６４へ戻る。データブロックが完全に伝送されている場合には，矢印１８０で示すように，インターラプトが行われる。
【００７８】
次に，ステップ１８２において受信されたデータが処理される。または新しいデータが送信のために準備される。
【００７９】
ＰＣＩ拡張カードは，バスマスターとして自立的に，かつシステムプロセッサの介入なしで，データをＤＭＡによってＰＣのメインメモリから読み出し，あるいはそこへ書き込むことができる。しかしそのために拡張カードは，メインメモリページの，読み出しまたは書き込むべき物理的なアドレスを必要とする。従来技術で説明した２つの方法においては，このアドレスはドライバによって，従ってシステムプロセッサないしはＣＰＵによって，ＰＣＩインターフェイスのレジスタメモリへアクティブに書き込まれる。
【００８０】
本発明に基づく方法は，拡張カードがＣＰＵの介入なしでＤＭＡによってデータを自立的に伝送することができるようにする考え方を，アドレスの自立的な伝送にも拡張するものである。データメモリとして用いられる，ＰＣのメインメモリ内の第１のメモリ領域の他に，さらに第２の，通常はより小さいメモリ領域が形成される。この第２のメモリ領域内に，ドライバが，第１のメモリ領域を構成する，メモリページのすべての物理的なアドレスを格納する。
【００８１】
データ伝送の開始時に，拡張カード上のＰＣＩインターフェイスに，第２のメモリ領域のためのスタートアドレスのみが伝送される。従って拡張カードに，メインメモリページの物理的なアドレスの位置が知らされる。データ伝送の間に，拡張カードは第１のメモリ領域にデータを書き込むために必要な目標アドレスまたは第１のメモリ領域からデータを読み込むために必要な供給源のアドレスを，それぞれ必要に応じて第２のメモリ領域から自立的に取得することができる。従って，一方では，完全なデータ伝送のために必要とされるすべてのアドレスを拡張カード上のメモリ内に保持することは，もはや必要なくなる。従って上述した２つの方法の欠点，すなわち拡張カード上のＰＣＩインターフェイス内部の高いメモリ需要は，解決される。他方では，拡張カードがもはやすべての物理的アドレスを記憶しないにもかかわらず，第１の方法におけるように，処理された８つのアドレスの後にインターラプト要求がシステムへ送信されて，それによって進行している処理が中断されることはない。
【００８２】
カードは，次のページアドレスを自身でＤＭＡによって第２のメモリ領域からカード内部のアドレスレジスタへ読み込む。従って各データブロックのために，１つのインターラプトしか作動されない。従って第１の方法に基づく多数のインターラプトが，回避される。ＩＳＲの内部で，もはやページアドレスを伝送する必要もないので，ルーチンを処理するための時間も同様に著しく減少させることができる。
【００８３】
その場合にアドレスのための第２のメモリ領域は，１ページの大きさ，従ってたとえば４，０６９バイトをできるだけ上回らないようにされる。というのは，そうでないと第２のメモリ領域内に保持されているアドレスのためにも，複数のページアドレスが必要となってしまうからである。しかしこれは，一般的に，以下の例が示すように，まったく十分である。
【００８４】
最近のプロセッサにおいては，アドレスは３２ビット，従って４バイトの大きさである。従って，１メモリページ内に，４，０９６バイト／４バイト＝１０２４の（ページ）アドレスを格納することが可能である。これに１０２４ページが応答する。従って，このようにしてアドレス可能なメモリ領域は，１，０２４＊４，０９５バイト＝４，１９４，３０４バイト＝４メガバイトとなる。
【００８５】
しかしそれとは関係なく，上記発明は１つより多いこの種のアドレステーブルのためにも使用することができる。従って広範なデータ量の伝送も考えられる。この場合においては複数のメモリページがアドレステーブルとして定義され，そのスタートアドレスがＰＣＩインターフェイス内に格納される。
【図面の簡単な説明】
【００８６】
【図１】ＰＣＩシステムの基本構造を概略的に示している。
【図２】ＰＣＩインターフェイスを有する拡張カードを示している。
【図３】バーチャルアドレスと物理的なアドレスの間の関係を説明するものである。
【図４】本発明に基づく電子的な計算ユニットの好ましい実施形態を概略的に示している。
【図５】本発明に基づくメモリ装置と拡張カードとの協働を説明している。
【図６】本発明に基づく方法の好ましい実施形態を示すフローチャートである。
【図１】
2005518607.tif 000003
【図２】
2005518607.tif 000004
【図３】
2005518607.tif 000005
【図４】
2005518607.tif 000006
【図５】
2005518607.tif 000007
【図６】
2005518607.tif 000008
【国際調査報告】
2005518607.tif 000009
2005518607.tif 000010
2005518607.tif 000011
2005518607.tif 000012
2005518607.tif 000013
2005518607.tif 000014