JPH0997230A - データ転送方法及びシステム - Google Patents
データ転送方法及びシステムInfo
- Publication number
- JPH0997230A JPH0997230A JP8193570A JP19357096A JPH0997230A JP H0997230 A JPH0997230 A JP H0997230A JP 8193570 A JP8193570 A JP 8193570A JP 19357096 A JP19357096 A JP 19357096A JP H0997230 A JPH0997230 A JP H0997230A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- address
- memory
- transferred
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/423—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/655—Same page detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
おいてデータを転送するデータ転送方法及びそのデータ
処理システムを提供する。 【解決手段】 PowerPC外部制御命令を用いて変換した
アドレスをシステムのメモリ・コントローラに配置され
ているデータ移動エンジンに転送すると共に、前に転送
したパラメータを前記メモリ・コントローラ内の制御レ
ジスタに転送する。最小のプロセッサ・オーバーヘッド
及びバス帯域幅利用によりシステム・メモリとI/O装置
との間で高速度のデータ転送を達成する。本発明のシス
テム及び方法はメモリとグラフィック・アダプタ又はマ
ルチメディア装置のような装置との間で多量のデータを
転送するのに有用である。
Description
データ処理システムに関し、特にシステム・メモリと前
記データ処理システムに接続された装置との間でデータ
を転送するデータ転送方法及びデータ処理システムに関
する。
は、アプリケーション・プログラムに利用可能とするメ
モリがその機械(いわゆるリアル・メモリ)に実際に存
在するメモリよりも多く存在するバーチャル・メモリの
概念を用いている。オペレーティング・システム及びハ
ードウエアはアプリケーションにこのメモリが実在して
いると思わせるので、このメモリはバーチャルと呼ばれ
るが、プロセッサ(又は複数のプロセッサ)によりアク
セス可能な物理メモリに実際に存在していなくともよ
く、代わってシステムのハード・ディスクに割り付けら
れる。ハードウエア及びソフトウェアは、プログラムが
発行するバーチャル・アドレスをリアル物理メモリか又
はハード・ディスクのどこかに実際に存在するアドレス
に変換する。これは、典型的には4Kバイトである1ペ
ージを単位として実行される。
かに行われる必要があるので、プロセッサ・ハードウエ
アにおける「アドレス変換バッファ(translation look
aside buffer : TBL )」に保持されている。あるページ
がプロセッサによりアクセスされ、それがリアル・メモ
リに存在していないときは、ページ・フォールト割り込
みが発生し、ソフトウェアはディスクからページを持ち
込み、メモリ内のリアル・ページに対してこれをマップ
させる。これをディスクからのページにより置換する前
に、ディスクからのページを置くリアル・メモリ空間に
空きがないときは、ソフトウェアは、まず、ディスクに
コピーすべきページを選択してメモリ空間を凍結させ
る。これはページ・スワッピングと呼ばれる。
ジを除去するためにアドレス変換バッファ(TBL)を変更
させるので、古いアドレスがこれ以上古いリアル・ペー
ジ位置にマップすることはない。これをTBLの無効化と
呼ぶ。そのときに、このバーチャル・アドレスを参照す
ると、ソフトウェアはページ・フォールトを検出し、こ
れがリアル・メモリに存在せず、ハード・ディスクにつ
いて探すべきことを知る。ハード・ディスクから新しい
ページを開いたときは、TBLを変更してメモリ内の当該
リアル・ページ・アドレスに新しいバーチャル・アドレ
スをマップさせる。
以上のプロセッサからなり、各プロセッサは実行を高速
化するためにリアル・メモリから最近に使用したデータ
のコピーを含むキャッシュ・メモリを有する。プロセッ
サがデータをメモリからフェッチする又はメモリに記憶
するときは、このデータをキャッシュ・メモリにロード
又はセーブする。同じような技術は、最近使用していな
かったときにメモリにデータをセーブさせるため、及び
プロセッサ(又は複数のプロセッサ)により現在アクセ
スされているキャッシュのあるセクションをデータによ
り更新するために用いられる。通常、これは、動作の速
度を増加させるために完全にハードウエアにより実行さ
れる。プロセッサがキャッシュされたデータをアクセス
しているときは、外部バス又はメモリを作動させること
はないので、極めて効果的となる。
は、メモリ(又はプロセッサ・キャッシュにおいてデー
タを変更してもよいときはプロセッサ・キャッシュ)と
I/O(入出力)装置との間でデータを移動させるために
いくつかの代替が現在存在する。第1の代替はプロセッ
サ発行ロードを有することであり、そのときはPIO(プ
ログラムI/O)を用いて装置に直接記憶させる。プロセ
ッサは、その内部レジスタのうちの一つにロード命令を
用いてメモリ(又はキャッシュ)をアクセスする。ハー
ドウエアはTLBを用いてバーチャル・アドレスを変換し
て、リアル・メモリ(キャッシュ)位置からデータを検
索する。前述のように、データがリアル・メモリに現在
存在しないときは、ページ・フォールトが発生し、また
オペレーティング・システム(「OS」)ソフトウェアはデー
タをスワップしてアクセスが発生する。データがプロセ
ッサ・レジスタに存在すると、I/O位置に対するストア
を用いてI/O装置に書き込まれる。(I/O装置がデータの
ソースであり、かつメモリが目標のときは、逆の手順が
用いられる。)
あるが、プロセッサはI/O装置の速度により遅くされる
ので、多くのプロセッサ・サイクルを費やすと共に、バ
ースト転送が利用できず、また転送がプロセッサのオペ
ランド・サイズ(ワード、二重ワード等)に限定される
ので、システム・バス及びI/Oバス帯域幅を費やす欠点
がある。このようにして4Kページのデータ転送は、典
型的なワード・サイズのオペランドのロード及びストア
を用いたときに、このようなオペレーションを1000
も必要とすることになる。
又はその逆に複数ブロックのデータを転送するために直
接メモリ・アクセス(DMA)オペレーションを用いるこ
とである。これは、更に効果的なバースト転送を用い、
かつ(もしシステム構成のために、トラフィックがメイ
ン・システム(プロセッサ/メモリ・バス)から切り離
されたままとなり得るときは、)潜在的にシステム・バ
スの帯域幅を使用しないことにより、第1の代替よりも
多くのCPUサイクルをセーブする利点がある。しか
し、以下で詳細に説明するように、依然としてDMAセッ
トアップを含み、かつ終了の割り込みを取り扱う際に、
ここでもOSカーネルに係わる大きなオーバーヘッドが
存在する。
アプリケーションがI/Oのバーチャル・ページのうちの
1ページからいくつかのデータを書き込みたい、又は読
み出したいときに、I/O DMA装置がこれらのバーチャル
・アドレスを典型的には判断できず、またデータがメモ
リに存在するのか、又はハード・ディスクに存在するの
かも判らないことから複雑なものとなる。前述のよう
に、OSのソフトウェアはアプリケーション・データを
ディスクに一時的にページアウトしてスワップさせてし
まっているかもしれない。
セッサは、バーチャル・アドレスからリアル・メモリ・
アドレスに変換したソース(又は目標)メモリ・アドレ
スを得て、かつ転送を実行している間に、リアル・ペー
ジをメモリに「保持する(pin)」OSソフトウェアを有す
る必要がある。これらのオペレーションは共にOSカー
ネル呼び出しに係わり、OSカーネル呼び出しはプロセ
ッサ・サイクルにおいて高価になる恐れがある。オペレ
ーションを「保持(pinning)」するとは、リアル・ペー
ジ・マネジャにとって、OSソフトウェアによりディスク
にページを移して、置換することができないリアル・ペ
ージをマークすることである。これが許容されたのであ
れば、I/O装置は、破滅的な結果となる転送を要求する
ものを除き、アプリケーションにデータを転送すること
ができる。
ティング又はマルチメディア装置転送のようなデータ集
約的な転送のときは、CPUオーバーヘッド又はシステム
・バス帯域幅が限定要素となる。
転送する改良された、バーチャル・メモリ・データ処理
システムにおけるシステム及び方法が要求されている。
標(ターゲット)にデータを転送する方法に関連したデ
ータ処理システム及び方法を提供することにより、以上
の要求を満足させるものであって、前記システム及び方
法は、(1)目標のアドレスを判断するステップと、
(2)転送すべきデータの量を判断するステップと、
(3)転送すべきデータのアドレスを判断するステップ
であって、前記転送すべきデータのアドレスが前記ソー
スに対応しているステップと、(4)転送エンジンのア
ドレスを判断して前記データの転送を実行するステップ
と、(5)ステータス情報を記憶すべきメモリ位置のア
ドレスを判断するステップであって、前記ステータス情
報がデータの転送に関連しているステップと、(6)前
記目標の前記アドレス、転送すべき前記データの前記
量、及びステータス情報を記憶すべき前記メモリ位置の
前記アドレスを前記転送エンジンに送出するステップ
と、(7)前記転送エンジンに転送すべき前記データの
前記アドレスを送出するステップと、(8)前記目標の
前記アドレス、転送すべき前記データの前記量、ステー
タス情報を記憶すべき前記メモリ位置の前記アドレス、
及び前記転送エンジンにより転送すべき前記データの前
記アドレスを受け取るステップと、(9)既存のデータ
の転送が既に進行しているか否かを判断するステップ
と、(10)前記既存のデータの転送が進行しているこ
とを判断したときは、前記データの前記転送を破棄する
ステップと、(11)前記ソースから複数のデータ部分
を読み出し、かつ前記目標にこれらのデータ部分を書き
込む複数対の読み出し/書き込み命令を発行するステッ
プと、(12)あるカウントに到達したときに前記複数
対の読み出し/書き込み命令を停止させるステップであ
って、前記カウントが転送すべき前記データの前記量に
依存しているステップと、(13)前記データを前記ソ
ースから、前記ステータス情報を記憶すべき前記メモリ
位置に対する前記目標へ転送したこと標識を書き込むス
テップと、(14)前記メモリ位置に関連するアドレス
の前記プロセッサによりポーリングするステップと、
(15)前記ポーリングするステップに応答して他のデ
ータ転送を開始するステップとを含む。
理システムはパワー・ピー・シー(PowerPC)アーキテク
チャのものであり、前記転送エンジンにより転送される
べき前記データの前記アドレスには、下記命令、eciwx
(インデックスされたワードによる外部制御イン)、又
はecowx(インデックスされたワードによる外部制御ア
ウト)のうちの一つが付随する。
く理解できるようにするために、本発明の特徴及び技術
的な効果を概要的に説明した。以下、本発明の請求の範
囲の要旨を形成する本発明の付加的な特徴及び効果を説
明する。
理解を得るために特定のワード又はバイト長のような多
くの特定的な詳細を説明する。しかし、このような特定
的な詳細がなくても本発明を実施できることは、当該技
術分野に習熟する者に明らかであろう。他の場合では、
不必要な詳細により説明が不明確とならないように、周
知の回路はブロック図形式により示されている。大抵の
部分において、タイミング要件に関する詳細等について
は、本発明の完全な理解を得るために、詳細は不必要、
かつ当該技術分野に通常に習熟する者の習熟範囲内であ
る限り、削除した。
は必ずしも一定の割合で示されてはいない。また、同一
又は類似の要素はいくつかの図面を通して同一参照番号
により表されている。
データ処理システム用のメモリ・コントローラ内でデー
タ移動エンジンを用いることにより、メモリとデータ処
理システムに接続された装置との間でより効率的なデー
タの転送を得ることである。このデータ移動エンジンは
転送に固有のパラメータ及び命令を受け取って、起動し
たプロセッサと更に係わることなく、転送を実行するよ
うに進行する。
造されているPowerPCコンピュータ・アーキテクチャに
よる実施について説明されている。しかし、本発明の要
旨はメモリと他の装置との間のブロック・データの転送
を用いて任意型式のコンピュータ・アーキテクチャによ
り実施されてもよい。(本発明は、データ処理システム
内の別個の2つのメモリ位置間におけるデータの転送に
対しても動作し得ることに注意すべきである。)
で説明する2つの命令を効率的に使用するようにしてい
る。これらの命令は一連のオペレーションを実行するよ
うにPowerPCアーキテクチャにより設計されている。こ
れらの命令は、PowerPCアーキテクチャにより、又は本
発明を用いて他の任意のコンピュータ・アーキテクチャ
により、対応する一組のプログラム命令により置換され
てもよい。
タ処理システムに接続されたI/O装置にデータを転送す
ることに関連している。しかし、ここで指摘する任意の
他の転送も同じようにして実行されてもよい。
ロードする又はメモリに記憶するように機能する2つの
外部装置制御命令が存在し、プロセッサがバーチャル・
アドレスをリアル物理アドレスに変換し、かつプロセッ
サのアドレス・バス上に送出し、次いでその(システ
ム)データ・バスからのデータ・ワードによりレジスタ
をロードするか、又は汎用レジスタ(GPR)からのデー
タ・ワードをプロセッサ(システム)データ・バスを通
して記憶する。これに加えて、これらの命令は、付加的
なピンを用いてこれらのオペレーションと共にリソース
識別パラメータ(RID)を指定できる。このために、Power
PCアーキテクチャは、システムにおいて32リソースまで
許容する5ビット・フィールドまでを提供する。このRI
Dは、アドレス・バス上の物理アドレス、及びデータ・
バス上のそれ自身に固有な目的のデータを用いるリソー
スを選択するために一つのアドレスとして用いられても
よい。これらの命令は、ストア型式の命令用にインデッ
クスされた外部制御出力ワード(ecowx)、及びロード
型式命令用にインデックスされた外部制御入力ワード
(eciwx)と呼ばれる。本発明は、以下でこれらの命令
を用いてデータ移動エンジン(リソース)に対して通信
をする。これらの命令を更に説明するために、ここでは
引用により関連されるブックIII、PowerPCオペレーティ
ング環境アーキテクチャ、付録A、( Book III, PowerP
C Operating Enviroment Archtecture, Appendix A )第
489頁〜第493頁を参照すべきである。
シング・システム100が示されている。システム10
0は、システム・アドレス及びデータ・バス104によ
り、システムに接続されたN(Nは正の整数である。)
プロセッサ102、103と、メモリ・コントローラ1
01とを含み、メモリ・コントローラ101はシステム
100用のメモリ105を制御すると共に、プロセッサ
102、103を種々のI/Oバス108にブリッジさせ
ている。I/Oアダプタ106はI/Oバス108に接続され
ているのが示されている。I/Oアダプタ106は、知ら
れている任意の又は意図しているI/O装置、例えばディ
スプレイ・アダプタ、グラフィック・アダプタ、又はマ
ルチメディア装置用のアダプタであってもよい。更に、
システムのメモリ・コントローラ101に配置されてい
るのは、固有のRIDアドレスを有するデータ移動エンジ
ン(転送リソース)109である。メモリ・コントロー
ラ101にデータ移動エンジン109を配置させると、
メモリ105が他のプロセッサ要求をサービスしてビジ
ーでないときは、メモリ・バースト・サイズ転送を用い
て転送を行えるようにする。
トローラ101内に実施され、かつここで説明したよう
に固有な方法により構築された周知の直接メモリ・アク
セス(DMA)装置を含むものでよく。
るのは、以下で説明される転送を制御するプロセッサ1
02、103により直接プログラム可能な制御レジスタ
(CR)111〜制御レジスタ(RA)114である。制御レジ
スタ(CR)111〜制御レジスタ(RA)114はデータ移動
エンジン109内に配置されてもよいことに注意すべき
である。
長さ、(メモリ105への又はからの)データ転送の方
向を表すビット、及びデータ転送中に目標アドレスを増
加させるか否かを表すビットにより初期化される制御レ
ジスタ(CR)である。
106のリアル・アドレスに初期化されるアダプタ・ア
ドレス・レジスタである。制御レジスタ(AR)112はメ
モリ・メモリ転送用のリアル・メモリ・アドレスにより
ロードされてもよいことに注意すべきである。
ョンの完了ステータス・インジケータを置くために用い
られるメモリ位置のリアル・アドレスに初期化される書
き戻しアドレス・レジスタ(WAR)である。このステー
タスは転送進行についてチェックするためにプロセッサ
102、103によりポーリング(読み出)されてもよ
い。しかし、プロセッサ102、103にとってはWAR
により指示されたメモリ位置を読み出すのがより効率的
である。なぜならば、メモリ位置をそのキャッシュにキ
ャッシュさせることができ、かつプロセッサ102、1
03がシステム・バス104をアクセスして完了ステー
タスをポーリングする必要がないからである。
ると、指示された制御レジスタ(WAR)113のメモリ位
置にステータスを記憶し、制御レジスタ(WAR)113は
プロセッサのキャッシュ・データを無効にし、プロセッ
サ102、103はメモリ105からの完了ステータス
を含む更新位置を自動的に読み出す。換言すれば、制御
レジスタ(WAR)113はメモリ105内の位置を指すこ
とができ、ここでデータ移動エンジン109は、データ
の転送を完了したこと、又は以下で説明する他の種々の
ステータス情報を表しているデータを記憶する。これが
バス107上で発生すると、このステータスの書き戻し
もシステム・バス104上に送出されるので、プロセッ
サ102、103はメモリ位置のアドレス及び書き込み
命令を調べることができる。これはデータ転送を開始す
るプロセッサにおけるキャッシュ・ライン(例えばキャ
ッシュ115)を無効にする。
・オペランド・サイズではなく、かつバーチャル・リア
ル・メモリ・アドレスを変換してメモリ・ページを「固
定」する際に係わるセットアップ・オーバーヘッドなし
に、メモリ・アクセスを集中的に行うバースト転送を用
いて、1ページのデータまで転送するのに用いられても
よい。
がステップ201から開始する。この処理は、システム
100にプログラムされた一組の命令としてハードワイ
ヤされても即ち記憶されてもよい。
は行き先であるI/Oアダプタ106のリアル・アドレス
を有する第1のプログラムの制御レジスタ(AR)112
と、データ移動エンジン109のRIDを有する内部プロ
セッサ・レジスタ(EAR)(外部アクセス・レジスタ)
117とをプログラムする。これらの値は、転送アプリ
ケーション(グラフィック・インテンシブ・コンピュー
タ・プログラムのようなデータを転送するアプリケーシ
ョン・プログラム)、典型的にはデバイス・ドライバに
より通常知られており、ハードウエアにより構成されて
いる。即ち、システムが初期化されれば、これらの値は
変化しない。
ボックスとして用いるように、システムのメモリ105
におけるメモリ位置を制御レジスタ(WAR)113にプロ
グラムする。これは、そのプログラムに編集されている
ので、変化しない。この処理はOSからこの位置のアド
レスを得てこれを固定する必要があるが、しかしプログ
ラムが実行されている間は変化しない。
述のように制御レジスタ(CR)111に長さ、方向及び自
動増加値を書き込む。
レジスタ(CR)111〜制御レジスタ(WAR)113に記憶
するためにメモリ・コントローラ101内で実行される
処理が説明されている。ステップ301において、レジ
スタ値がプロセッサ102からメモリ・コントローラ1
01内の制御レジスタ(CR)111〜制御レジスタ(RA)1
14に記憶される。ステップ302において、これらの
レジスタ値がこれら制御レジスタに配置される。ステッ
プ303は、この処理が終了したことを示す。
ら又はへ移動するデータ領域を指示させるecowx又はeci
wx命令を発行する。プロセッサ102は、リアル・アド
レスに対するecowx又はeciwx命令が用いるバーチャル・
アドレスの変換を行い、これと内部プロセッサ・レジス
タ(EAR)117に記憶されているRIDをシステム・バス1
04に転送する。
ロセッサ102は、図5のフローチャートに示したと同
様に対応する一組のプログラム命令を実行してもよい。
ステップ51において、プロセッサ102は転送すべき
データのメモリ位置に対する実効アドレス(バーチャル
・アドレス)を計算する。次に、ステップ52におい
て、プロセッサ102はこの実効アドレスを評価する。
次に、ステップ53において、この実効アドレスをレジ
スタ(TLB)116を用いてリアル・アドレスに変換す
る。その後、ステップ54において、このリアル・アド
レスをシステム・バス104に送出する。
使用について行う。しかしながら、図5に示すプログラ
ム命令セットを代わりに使用しもよい。図5に示すプロ
グラム命令セットを使用するときは、プロセッサ102
からシステム・バス104を介してメモリ・コントロー
ラ101へ送出されるリアル・アドレスは、制御レジス
タ(RA)114内に記憶されてもよい。
トローラ101は、ecowx/ecowx命令コードを捕捉し、
RIDをそれ自身のものとしてデコードし、そのアドレス
をデータ移動エンジン109に転送する。データ移動エ
ンジン109はecowxにより渡されたデータを使用せ
ず、またeciwxに対してダミー・データを渡す。データ
移動エンジン109が必要とするデータは制御レジスタ
(CR)111、制御レジスタ(WAR)113及び制御レジス
タ(AR)112に既に存在するので、データ移動エンジン
109は何のデータも必要としない。ecowx/eciwx命令
を受け取った後にデータ移動エンジン109内で実行さ
れる処理については、図4に関連して以下で更に詳細に
説明する。
おいて、プロセッサ102はキャッシュ115から完了
ステータス・ワードを読み取る。この完了ステータス・
ワードは、転送を完了したことを表す、転送したパラメ
ータが「不正」であったことを表す、ページを過ぎたこ
とを表す、又はページをスワップしたことを表す。
完了ステータス・ワードに応答して、プロセッサ102
は、前記パラメータが正しく転送され、かつ/又は「正
常」パラメータであったかを判断する。ノーならば、ス
テップ207において処理は終了し、かつプログラムは
異常終了となる。しかしながら、パラメータが「正常」
であると判断されると、処理はステップ208に進み、
転送は完了したか否かを判断する。ノーのときは、処理
がステップ209に進み、転送はページ境界を越えたこ
と、又はTLBオペレーションを調べたためにデータ移動
エンジン109が終結してページがスワップされた恐れ
があることを表していることを完了ステータスが表して
いるかどうかを判断する。いずれも発生しなかったとき
は、プロセッサ102内の処理はステップ205に戻
り、ステータス・ワードを再び読み出す。
3に示すメモリ位置にステータス書き戻しの調べにより
ステップ206、208、209について異なる一組の
データが得られるまで、プロセッサ102内で継続す
る。ステップ208において、完了ステータス・ワード
が、メモリ105からI/Oアダプタ106へ又はその逆
のデータの転送を完了したことを表しているときは、処
理はステップ210に進み、システム100に接続され
ている新しいデバイスへの転送が要求されているか否か
を判断する。イエスのときは、処理はステップ202に
進み、EAR、AR及びWAR値をプログラムする。
は、処理がステップ211に進み、I/Oアダプタ106
へ又はからの他の転送が要求されているか否かを判断す
る。I/Oアダプタ106へ又はから他のデータ・ブロッ
クを転送すべきときは、処理はステップ203に進み、
メモリ105からI/Oアダプタ106へ又はその逆へ新
しいデータの転送のために長さ、方向及び自動増加値に
関する新しい情報により、レジスタ(CR)111がプログ
ラムされる。他の転送が要求されていないときは、処理
はステップ212において終了する。
ンス問題を解決するために、データ移動エンジン109
は、ページを固定することなく動作する。このために、
データ移動エンジン109は、プロセッサ102、10
3がページをディスクにスワップする前に、互いに無効
ページに送出するTLBオペレーションについて、システ
ム・バス104を常時「調べる」。図6を参照して、デ
ータ移動エンジン109がシステム・バス104を調べ
ることによりTLBオペレーションを検出したときは(ス
テップ501)、このようなスワップが発生するかも知
れないことを表す。転送が活性のときは、TLBオペレー
ションは無視される(ステップ502、505、50
6)。転送が進行中であり、かつこれが制御レジスタ(C
R)111に転送する現在長がある実施の定義値より小さ
いということによって表される「ほとんど」完了(ステ
ップ503)であるときは、メモリ・コントローラ10
1はTLBオペレーションを「再試行」することになり、
これをプロセッサにより再発行させる。これは、転送が
終了するまで継続する。ステップ503において、転送
が完了間近でないないときは、ロジックはステップ50
4に進み、次の便宜的な点で終了するために転送エンジ
ンをテストするフラグをセットする(ステップ209で
使用)。次いで、ステップ509において、メモリ・コ
ントローラ101はTLBを無視し、ステップ510にお
いて調べを終了する。
て、ステータスを読み込んだプロセッサ102がページ
を越えた、又はTLB停止が発生したことを検出すると、
ステップ213に進み、完了したデータ転送の長さを読
み出し、ステップ214においてこれを転送開始アドレ
ス+1バイトに加算し、ステップ215において通常の
メモリからの読み出しを行う。これは、新しいページ位
置がまだメモリにあるか否かを調べるために行われる。
ステップ216においてページ・フォールトが発生して
いると、オペレーティング・システムはこの処理を中断
し、ステップ217において参照したページをスワップ
し、次いでステップ215において読み出しを反復する
処理に戻る。ページ・フォールトが発生していないとき
は、処理はステップ218に進み、もとの転送サイズか
ら既に転送した長さを引いてステップ219に進み、新
しい長さを制御レジスタ(CR)111に記憶する。次い
で、処理はステップ220に進み、新しい開始点を反映
するようにもとのアドレスを調整し、次いで制御はステ
ップ204に戻り、ecowx/eciwx命令を再発行する。そ
こで、データ転送が再開される。
ecowx/eciwx命令を受け取ることにより、メモリ・コン
トローラ101内で実施した処理を開始する。次に、ス
テップ402において、処理は、データの転送が既に進
行しているか否かを判断する。イエスのときは、新しい
データ転送を終了し、ステータス書き戻しオペレーショ
ン内で制御レジスタ(WAR)113により指示されたメモ
リ位置にこの終了が書き込まれる。ステップ413にお
いてこのステータスの記憶を実行する。メモリ・コント
ローラ101内の処理はステップ414により完了す
る。この終了ステータスはプロセッサ102により調べ
られ、キャッシュ115内の対応するキャッシュ・ライ
ンを無効にし、従ってステップ205においてこのステ
ータス・ワードを読み出すことができる。
ップ403に進み、制御レジスタ(CR)111〜制御レジ
スタ(RA)114内の転送されたパラメータが「正常」か
否かを判断する。いずれかのパラメータが「不正」のと
きは、ステップ412においてこのステータスがセット
され、ステップ412において制御レジスタ(WAR)11
3内の値により指示されたメモリ位置に記憶される。し
かし、全てのパラメータが「正常」のときは、処理はス
テップ404に進み、データ移動エンジン109により
1単位又はブロックのデータが転送される。これは、対
をなす読み出し/書き込み命令をメモリ・コントローラ
101に発行することにより、実行される。これは、図
1において読み出し/書き込み命令の複数対をデータ・
バッファ110に転送するものとして示されており、デ
ータ・バッファ110はメモリ105から読み出したデ
ータを受け取り、続いてI/Oアダプタ106に書き込む
ことなり、もし制御レジスタ(CR)111内の方向ビット
がI/Oアダプタ106からメモリ105への転送を示し
ているのであれば、I/Oアダプタ106からの読み出し
及び次のメモリ105への書き込みが対をなす。
データ転送が完了したか否かを判断する。イエスのとき
は、ステップ408において制御レジスタ(WAR)113
内の値により指示されたメモリ位置に対する次の書き込
みのために、この完了ステータスをセットする。この完
了ステータスは、図2の判断ブロック208に示す処理
において用いられる。
理がステップ406に進み、処理は前述のようにTLB停
止フラグがセットされているか否かを判断する。データ
移動エンジン109がTLB停止フラグのセットを検出す
ると(ステップ406)、処理はステップ409に進
み、「ページ・スワップの可能性のために転送を停止」
として完了ステータスをセットさせる。ステップ406
においてTLB停止フラグのセットが検出されないとき
は、オペレーションはステップ407に進み、ページ境
界を越えようとしているか否かを調べるためにテストを
実行する。イエスのときは、ステータスをセットしてペ
ージ越えを表す。ステップ409及び410はいずれも
制御レジスタ(CR)111内の長さを更新して転送を終了
するまでに何回バイトを転送したかを表す(ステップ4
15)。処理はステップ413に進み、制御レジスタ(W
AR)113を用いてステータスをメモリに記憶し、ステ
ップ414において転送を終了する。
えていないときは、処理はステップ404に戻ってデー
タの転送を継続する。
ドレスをメモリ・コントローラ101内に前にセットア
ップした制御レジスタ(CR)111〜制御レジスタ(RA)1
14と共に、メモリ・コントローラ101に配置されて
いるデータ移動エンジン109に転送すると、高速デー
タ転送が最小のCPUオーバーヘッド及び小さなシステ
ム帯域幅の使用により達成される。この方法はメモリと
グラフィック又はマルチメディア装置との間で多量のデ
ータを転送するために特に有用である。
の項を開示する。
ス装置から目標装置へデータを転送するデータ転送方法
であって、パラメータ及び1以上の命令をプロセッサか
らメモリ・コントローラへ送出して前記ソース装置から
前記目標装置へ前記データの前記転送を実行するステッ
プであって、前記パラメータには前記目標装置のアドレ
ス、及び転送する前記データの量の指定が含まれ、かつ
前記1以上の命令には転送する前記データのアドレスが
含まれている前記ステップと、データ移動エンジンによ
り制御された前記メモリ内の前記パラメータ及び前記1
以上の命令を受け取るステップと、前記ソース装置から
前記目標装置へ前記データの前記転送を実行するステッ
プとを含むデータ転送方法。 (2)前記ソース装置は前記メモリ・コントローラに接
続されたメモリ装置である上記(1)に記載のデータ転
送方法。 (3)前記目標装置は前記メモリ・コントローラに接続
されたメモリ装置である上記(1)に記載のデータ転送
方法。 (4)前記目標装置は前記メモリ装置に接続されたI/O
装置である上記(2)に記載のデータ転送方法。 (5)前記I/O装置はマルチメディア・アダプタである
上記(4)に記載のデータ転送方法。 (6)前記ソース装置は前記メモリ・コントローラに接
続されたI/O装置である上記(3)に記載のデータ転送
方法。 (7)前記データ処理システムは前記メモリ・コントロ
ーラに接続された複数のプロセッサを有する対称マルチ
プロセッサ・システムである上記(1)に記載のデータ
転送方法。 (8)前記実行するステップは、更に、前記ソース装置
から複数のデータ部分を読み出し、かつ前記目標装置へ
これら複数のデータ部分を書き込む複数対の読み出し/
書き込み命令のを発行するステップと、あるカウントに
到達したときに複数対の前記読み出し/書き込み命令の
発行を停止させるステップであって、前記カウントは転
送する前記データの前記量を指定する前記パラメータに
従っている前記ステップとを含む上記(1)に記載のデ
ータ転送方法。 (9)前記パラメータは、更に、前記データの前記転送
のステータスを指定するステータス・データを記憶する
システム・メモリ内におけるアドレスを含み、前記デー
タ転送方法は、更に、前記システム・メモリ内の前記ア
ドレスに前記ステータス・データを書き込み、前記デー
タの前記転送の前記ステータスを指定するステップと、
前記システム・メモリ内の前記アドレスに前記ステータ
ス・データを書き込み、前記データの転送の前記ステー
タスを指定するステップとを含む上記(1)に記載のデ
ータ転送方法。 (10)前記ステータス・データは、前記ソース装置か
ら前記目標装置に前記データが転送されたか否かを指定
する上記(9)に記載の方法。 (11)前記ステータス・データはページの境界を越え
たことを指定する上記(9)に記載のデータ転送方法。 (12)前記ステータス・データはTLBオペレーション
を検出したことを表示し、かつ前記データ移動エンジン
は前記調べるオペレーションにより前記TLB オペレーシ
ョンを検出する上記(9)に記載のデータ転送方法。 (13)更に、前記ステータス・データを記憶するため
に前記プロセッサにより前記システム・メモリ内の前記
アドレスをポーリングするステップを含む上記(9)に
記載のデータ転送方法。 (14)更に、前記ポーリングするステップに応答して
他のデータ転送を開始させるステップを含む上記(1
3)に記載のデータ転送方法。 (15)更に、転送する前記データの前記アドレスに対
応する実効アドレスを計算するステップと、前記データ
移動エンジンのアドレスを計算するステップと、前記実
効アドレスをリアル・アドレスに変換するステップとを
含み、前記リアル・アドレスは前記データ移動エンジン
に送出される上記(1)に記載のデータ転送方法。 (16)前記データ処理システムはPowerPCアーキテク
チャのものであり、かつ前記1以上の命令は次のeciwx
(インデックスされたワードにおける外部制御)、及び
ecowx(インデックスされたワードにおける外部制御)
のうちの一つか らなる上記(12)に記載のデータ転送方法。(17)
更に、前のデータ転送が進行中であることを判断したの
ときは、前記転送を破棄するステップを含む上記(1)
に記載のデータ転送方法。 (18)更に、パラメータが不正であることを判断した
のときは、前記転送を破棄するステップを含む上記
(1)に記載のデータ転送方法。 (19)データ処理システムにおいて、プロセッサと、
メモリ・コントローラであって、データ移動エンジンを
含む前記メモリ・コントローラと、前記メモリ・コント
ローラに接続されたメモリと、前記メモリ・コントロー
ラに前記プロセッサを接続させるバスと、前記メモリ・
コントローラに接続されたI/O装置と、前記プロセッサ
から前記メモリ・コントローラに複数のパラメータ及び
1以上の命令を送出して前記メモリから前記I/O装置へ
データの転送を実行させる手段であって、前記パラメー
タは前記I/O装置のアドレス及び転送すべき前記データ
の量の指定を含み、かつ前期以上の命令が転送すべき前
期データのアドレスを含む前記手段と、前記データ移動
エンジンにより前記メモリ・コントローラ内に前記複数
のパラメータ及び前記1以上の命令を受け取る手段と、
前記メモリから前記I/O装置へ前記データの転送を実行
する手段とを含むデータ処理システム。 (20)前記I/O装置はグラフィック・アダプタであ
る、上記(19)に記載のデータ処理システム。 (21)前記データ処理システムは、前記メモリ・コン
トローラに接続された複数のプロセッサを有する対称マ
ルチプロセッサ・システムである、上記(19)に記載
のデータ処理システム。 (22)前記実行する手段は、更に、前記メモリからデ
ータの複数部分を読み出し、かつ前記I/O装置にこれら
データの複数部分を書き込む複数対の読み出し/書き込
み命令を発行する手段と、あるカウントに到達したとき
に複数対の前記読み出し/書き込み命令の発行を停止さ
せるステップであって、前記カウントは転送する前記デ
ータの前記量を指定する前記パラメータに従っている前
記手段とを含む、上記(19)に記載のデータ処理シス
テム。 (23)前記パラメータは、更に、前記メモリ・コント
ローラ内の複数のレジスタに記憶され、更に、前記デー
タの前記転送のステータスを指定するステータス・デー
タを記憶するシステム・メモリ内のアドレスを含み、更
に、前記システム・メモリ内の前記アドレスに前記ステ
ータス・データを書き込み、前記データの前記転送の前
記ステータスを指定する手段を含む、上記(19)に記
載のデータ処理システム。 (24)前記ステータス・データは、前記メモリ装置か
ら前記I/O装置に前記データが転送されたか否かを指定
する、上記(23)に記載のデータ処理システム。 (25)更に、前記システム・メモリ内に前記アドレス
のプロセッサによりポーリングして前記ステータス・デ
ータを記憶する手段を含む、上記(24)に記載のデー
タ処理システム。 (26)更に、転送する前記データの前記アドレスに対
応する実効アドレスを計算する前記プロセッサにおける
手段と、前記データ移動エンジンのアドレスを計算する
前記プロセッサにおける手段と、前記実効アドレスをリ
アル・アドレスに変換する前記プロセッサにおける手段
とを含み、前記リアル・アドレスは前記データ移動エン
ジンに送出される、上記(22)に記載のデータ処理シ
ステム。 (27)前記データ処理システムはPowerPCアーキテク
チャのものであり、かつ前記1以上の命令は次のeciwx
(インデックスされたワードにおける外部制御)、及び
ecowx(インデックスされたワードにおける外部制御)
のうちの一つからなる、上記(19)に記載のデータ処
理システム。 (28)ソースから目標にデータを転送する、データ処
理システムにおけるデータ転送方法であって、前記目標
のアドレスを判断するステップと、転送すべきデータの
量を判断するステップと、転送すべきデータのアドレス
を判断するステップであって、前記転送すべきデータの
アドレスが前記ソースに対応しているステップと、転送
エンジンのアドレスを判断して前記データの前記転送を
実行するステップと、ステータス情報を記憶すべきメモ
リ位置のアドレスを判断するステップであって、前記ス
テータス情報が前記データの前記転送に関連しているス
テップと、前記目標の前記アドレス、転送すべき前記デ
ータの前記量、及びステータス情報を記憶すべき前記メ
モリ位置の前記アドレスを前記転送エンジンに送出する
ステップと、前記転送エンジンに転送すべき前記データ
の前記アドレスを送出するステップと、前記目標の前記
アドレス、転送すべき前記データの前記量、ステータス
情報を記憶すべき前記メモリ位置の前記アドレス、及び
前記転送エンジンにより転送すべき前記データの前記ア
ドレスを受け取るステップと、既存のデータの転送が既
に進行しているか否かを判断するステップと、前記既存
のデータの転送が進行していることを判断したときは、
前記データの前記転送を破棄するステップと、前記ソー
スから複数のデータ部分を読み出し、かつ前記目標にこ
れらのデータ部分を書き込む複数対の読み出し/書き込
み命令を発行するステップと、あるカウントに到達した
ときに前記複数対の読み出し/書き込み命令を停止させ
るステップであって、前記カウントが転送すべき前記デ
ータの前記量に依存しているステップと、前記データを
前記ソースから、前記ステータス情報を記憶すべき前記
メモリ位置に対する前記目標へ転送したことの指定を書
き込むステップと、前記メモリ位置に関連するアドレス
の前記プロセッサによりポーリングするステップと、前
記ポーリングするステップに応答して他のデータ転送を
開始するステップとを含むデータ転送方法。 (29)前記データ処理システムがパワー・ピー・シー
(PowerPC)アーキテクチャのものであり、前記転送エン
ジンにより転送されるべき前記データの前記アドレスに
は下記命令eciwx(インデックスされたワードによる外
部制御イン)、又はecowx(インデックスされたワード
による外部制御アウト)のうちの一つが付随する、上記
(28)に記載のデータ転送方法。 (30)更に、ページ除去オペレーションを検出したと
きは、前記データの前記転送を一時的に中断するステッ
プを含む、上記(28)に記載のデータ転送方法。
示したものである。
の値を記憶するフローチャートである。
従ったフローチャートである。
換するフローチャートである。
である。
Claims (30)
- 【請求項1】データ処理システムにおいて、ソース装置
から目標装置へデータを転送するデータ転送方法であっ
て、 パラメータ及び1以上の命令をプロセッサからメモリ・
コントローラへ送出して前記ソース装置から前記目標装
置へ前記データの前記転送を実行するステップであっ
て、前記パラメータには前記目標装置のアドレス、及び
転送する前記データの量の指定が含まれ、かつ前記1以
上の命令には転送する前記データのアドレスが含まれて
いる前記ステップと、 データ移動エンジンにより制御された前記メモリ内の前
記パラメータ及び前記1以上の命令を受け取るステップ
と、 前記ソース装置から前記目標装置へ前記データの前記転
送を実行するステップとを含むデータ転送方法。 - 【請求項2】前記ソース装置は前記メモリ・コントロー
ラに接続されたメモリ装置である請求項1に記載のデー
タ転送方法。 - 【請求項3】前記目標装置は前記メモリ・コントローラ
に接続されたメモリ装置である請求項1に記載のデータ
転送方法。 - 【請求項4】前記目標装置は前記メモリ装置に接続され
たI/O装置である請求項2に記載のデータ転送方法。 - 【請求項5】前記I/O装置はマルチメディア・アダプタ
である請求項4に記載のデータ転送方法。 - 【請求項6】前記ソース装置は前記メモリ・コントロー
ラに接続されたI/O装置である請求項3に記載のデータ
転送方法。 - 【請求項7】前記データ処理システムは前記メモリ・コ
ントローラに接続された複数のプロセッサを有する対称
マルチプロセッサ・システムである請求項1に記載のデ
ータ転送方法。 - 【請求項8】前記実行するステップは、更に、 前記ソース装置から複数のデータ部分を読み出し、かつ
前記目標装置へこれら複数のデータ部分を書き込む複数
対の読み出し/書き込み命令のを発行するステップと、 あるカウントに到達したときに複数対の前記読み出し/
書き込み命令の発行を停止させるステップであって、前
記カウントは転送する前記データの前記量を指定する前
記パラメータに従っている前記ステップとを含む請求項
1に記載のデータ転送方法。 - 【請求項9】前記パラメータは、更に、前記データの前
記転送のステータスを指定するステータス・データを記
憶するシステム・メモリ内におけるアドレスを含み、前
記データ転送方法は、更に、 前記システム・メモリ内の前記アドレスに前記ステータ
ス・データを書き込み、前記データの前記転送の前記ス
テータスを指定するステップと、 前記システム・メモリ内の前記アドレスに前記ステータ
ス・データを書き込み、前記データの転送の前記ステー
タスを指定するステップとを含む請求項1に記載のデー
タ転送方法。 - 【請求項10】前記ステータス・データは、前記ソース
装置から前記目標装置に前記データが転送されたか否か
を指定する請求項9に記載の方法。 - 【請求項11】前記ステータス・データはページの境界
を越えたことを指定する請求項9に記載のデータ転送方
法。 - 【請求項12】前記ステータス・データはTLBオペレー
ションを検出したことを表示し、かつ前記データ移動エ
ンジンは前記調べるオペレーションにより前記TLB オペ
レーションを検出する請求項9に記載のデータ転送方
法。 - 【請求項13】更に、前記ステータス・データを記憶す
るために前記プロセッサにより前記システム・メモリ内
の前記アドレスをポーリングするステップを含む請求項
9に記載のデータ転送方法。 - 【請求項14】更に、前記ポーリングするステップに応
答して他のデータ転送を開始させるステップを含む請求
項13に記載のデータ転送方法。 - 【請求項15】更に、 転送する前記データの前記アドレスに対応する実効アド
レスを計算するステップと、 前記データ移動エンジンのアドレスを計算するステップ
と、前記実効アドレスをリアル・アドレスに変換するス
テップとを含み、前記リアル・アドレスは前記データ移
動エンジンに送出される請求項1に記載のデータ転送方
法。 - 【請求項16】前記データ処理システムはPowerPCアー
キテクチャのものであり、かつ前記1以上の命令は次の
eciwx(インデックスされたワードにおける外部制
御)、及びecowx(インデックスされたワードにおける
外部制御)のうちの一つからなる請求項12に記載のデ
ータ転送方法。 - 【請求項17】更に、 前のデータ転送が進行中であることを判断したのとき
は、前記転送を破棄するステップを含む請求項1に記載
のデータ転送方法。 - 【請求項18】更に、 パラメータが不正であることを判断したのときは、前記
転送を破棄するステップを含む請求項1に記載のデータ
転送方法。 - 【請求項19】データ処理システムにおいて、 プロセッサと、 メモリ・コントローラであって、データ移動エンジンを
含む前記メモリ・コントローラと、 前記メモリ・コントローラに接続されたメモリと、 前記メモリ・コントローラに前記プロセッサを接続させ
るバスと、 前記メモリ・コントローラに接続されたI/O装置と、 前記プロセッサから前記メモリ・コントローラに複数の
パラメータ及び1以上の命令を送出して前記メモリから
前記I/O装置へデータの転送を実行させる手段であっ
て、前記パラメータは前記I/O装置のアドレス及び転送
すべき前記データの量の指定を含み、かつ前期以上の命
令が転送すべき前期データのアドレスを含む前記手段
と、 前記データ移動エンジンにより前記メモリ・コントロー
ラ内に前記複数のパラメータ及び前記1以上の命令を受
け取る手段と、 前記メモリから前記I/O装置へ前記データの転送を実行
する手段とを含むデータ処理システム。 - 【請求項20】前記I/O装置はグラフィック・アダプタ
である、請求項19に記載のデータ処理システム。 - 【請求項21】前記データ処理システムは、前記メモリ
・コントローラに接続された複数のプロセッサを有する
対称マルチプロセッサ・システムである、請求項19に
記載のデータ処理システム。 - 【請求項22】前記実行する手段は、更に、 前記メモリからデータの複数部分を読み出し、かつ前記
I/O装置にこれらデータの複数部分を書き込む複数対の
読み出し/書き込み命令を発行する手段と、 あるカウントに到達したときに複数対の前記読み出し/
書き込み命令の発行を停止させるステップであって、前
記カウントは転送する前記データの前記量を指定する前
記パラメータに従っている前記手段とを含む、請求項1
9に記載のデータ処理システム。 - 【請求項23】前記パラメータは、更に、前記メモリ・
コントローラ内の複数のレジスタに記憶され、更に、前
記データの前記転送のステータスを指定するステータス
・データを記憶するシステム・メモリ内のアドレスを含
み、更に、 前記システム・メモリ内の前記アドレスに前記ステータ
ス・データを書き込み、前記データの前記転送の前記ス
テータスを指定する手段を含む、請求項19に記載のデ
ータ処理システム。 - 【請求項24】前記ステータス・データは、前記メモリ
装置から前記I/O装置に前記データが転送されたか否か
を指定する、請求項23に記載のデータ処理システム。 - 【請求項25】更に、 前記システム・メモリ内に前記アドレスのプロセッサに
よりポーリングして前記ステータス・データを記憶する
手段を含む、請求項24に記載のデータ処理システム。 - 【請求項26】更に、 転送する前記データの前記アドレスに対応する実効アド
レスを計算する前記プロセッサにおける手段と、 前記データ移動エンジンのアドレスを計算する前記プロ
セッサにおける手段と、 前記実効アドレスをリアル・アドレスに変換する前記プ
ロセッサにおける手段とを含み、前記リアル・アドレス
は前記データ移動エンジンに送出される、請求項22に
記載のデータ処理システム。 - 【請求項27】前記データ処理システムはPowerPCアー
キテクチャのものであり、かつ前記1以上の命令は次の
eciwx(インデックスされたワードにおける外部制
御)、及びecowx(インデックスされたワードにおける
外部制御)のうちの一つからなる、請求項19に記載の
データ処理システム。 - 【請求項28】ソースから目標にデータを転送する、デ
ータ処理システムにおけるデータ転送方法であって、 前記目標のアドレスを判断するステップと、 転送すべきデータの量を判断するステップと、 転送すべきデータのアドレスを判断するステップであっ
て、前記転送すべきデータのアドレスが前記ソースに対
応しているステップと、 転送エンジンのアドレスを判断して前記データの前記転
送を実行するステップと、 ステータス情報を記憶すべきメモリ位置のアドレスを判
断するステップであって、前記ステータス情報が前記デ
ータの前記転送に関連しているステップと、 前記目標の前記アドレス、転送すべき前記データの前記
量、及びステータス情報を記憶すべき前記メモリ位置の
前記アドレスを前記転送エンジンに送出するステップ
と、 前記転送エンジンに転送すべき前記データの前記アドレ
スを送出するステップと、 前記目標の前記アドレス、転送すべき前記データの前記
量、ステータス情報を記憶すべき前記メモリ位置の前記
アドレス、及び前記転送エンジンにより転送すべき前記
データの前記アドレスを受け取るステップと、 既存のデータの転送が既に進行しているか否かを判断す
るステップと、 前記既存のデータの転送が進行していることを判断した
ときは、前記データの前記転送を破棄するステップと、 前記ソースから複数のデータ部分を読み出し、かつ前記
目標にこれらのデータ部分を書き込む複数対の読み出し
/書き込み命令を発行するステップと、 あるカウントに到達したときに前記複数対の読み出し/
書き込み命令を停止させるステップであって、前記カウ
ントが転送すべき前記データの前記量に依存しているス
テップと、 前記データを前記ソースから、前記ステータス情報を記
憶すべき前記メモリ位置に対する前記目標へ転送したこ
との指定を書き込むステップと、 前記メモリ位置に関連するアドレスの前記プロセッサに
よりポーリングするステップと、 前記ポーリングするステップに応答して他のデータ転送
を開始するステップとを含むデータ転送方法。 - 【請求項29】前記データ処理システムがパワー・ピー
・シー(PowerPC)アーキテクチャのものであり、前記転
送エンジンにより転送されるべき前記データの前記アド
レスには下記命令 eciwx(インデックスされたワードによる外部制御イ
ン)、又はecowx(インデックスされたワードによる外
部制御アウト)のうちの一つが付随する、請求項28に
記載のデータ転送方法。 - 【請求項30】更に、 ページ除去オペレーションを検出したときは、前記デー
タの前記転送を一時的に中断するステップを含む、請求
項28に記載のデータ転送方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US536560 | 1995-09-29 | ||
US08/536,560 US5765022A (en) | 1995-09-29 | 1995-09-29 | System for transferring data from a source device to a target device in which the address of data movement engine is determined |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0997230A true JPH0997230A (ja) | 1997-04-08 |
JP3575572B2 JP3575572B2 (ja) | 2004-10-13 |
Family
ID=24139017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19357096A Expired - Fee Related JP3575572B2 (ja) | 1995-09-29 | 1996-07-23 | データ転送方法及びシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US5765022A (ja) |
JP (1) | JP3575572B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006072473A (ja) * | 2004-08-31 | 2006-03-16 | Fuji Xerox Co Ltd | データ転送方法および装置 |
JP2015043235A (ja) * | 2010-05-11 | 2015-03-05 | クアルコム,インコーポレイテッド | データ値を変換して記憶するための命令を用いた代理メモリアクセスエージェントの構成 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3256442B2 (ja) * | 1996-08-27 | 2002-02-12 | 日本電気株式会社 | データ転送制御回路 |
US5915124A (en) * | 1997-01-03 | 1999-06-22 | Ncr Corporation | Method and apparatus for a first device accessing computer memory and a second device detecting the access and responding by performing sequence of actions |
US6105113A (en) * | 1997-08-21 | 2000-08-15 | Silicon Graphics, Inc. | System and method for maintaining translation look-aside buffer (TLB) consistency |
US6449665B1 (en) | 1999-10-14 | 2002-09-10 | Lexmark International, Inc. | Means for reducing direct memory access |
US6567902B1 (en) * | 2000-08-15 | 2003-05-20 | Juniper Networks. Inc. | Systems and methods for packing data into a destination register |
US6662289B1 (en) * | 2001-05-15 | 2003-12-09 | Hewlett-Packard Development Company, Lp. | Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems |
US6973520B2 (en) * | 2002-07-11 | 2005-12-06 | International Business Machines Corporation | System and method for providing improved bus utilization via target directed completion |
US6981072B2 (en) * | 2003-06-05 | 2005-12-27 | International Business Machines Corporation | Memory management in multiprocessor system |
US7895411B2 (en) * | 2003-10-02 | 2011-02-22 | Nvidia Corporation | Physics processing unit |
US20050086040A1 (en) * | 2003-10-02 | 2005-04-21 | Curtis Davis | System incorporating physics processing unit |
US7739479B2 (en) * | 2003-10-02 | 2010-06-15 | Nvidia Corporation | Method for providing physics simulation data |
US7219170B2 (en) * | 2003-12-04 | 2007-05-15 | Intel Corporation | Burst transfer register arrangement |
US20050251644A1 (en) * | 2004-05-06 | 2005-11-10 | Monier Maher | Physics processing unit instruction set architecture |
WO2006045216A1 (fr) * | 2004-10-28 | 2006-05-04 | Magima Digital Information Co., Ltd. | Dispositif et procede d'arbitrage |
US7650266B2 (en) * | 2005-05-09 | 2010-01-19 | Nvidia Corporation | Method of simulating deformable object using geometrically motivated model |
US7636800B2 (en) * | 2006-06-27 | 2009-12-22 | International Business Machines Corporation | Method and system for memory address translation and pinning |
US8239657B2 (en) * | 2007-02-07 | 2012-08-07 | Qualcomm Incorporated | Address translation method and apparatus |
US7627744B2 (en) * | 2007-05-10 | 2009-12-01 | Nvidia Corporation | External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level |
US8307136B2 (en) * | 2009-08-03 | 2012-11-06 | National Instruments Corporation | Data movement system and method |
US8458371B2 (en) * | 2009-08-03 | 2013-06-04 | National Instruments Corporation | Peripheral devices integrated into a processing chain |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4016545A (en) * | 1975-07-31 | 1977-04-05 | Harris Corporation | Plural memory controller apparatus |
JPS57138079A (en) * | 1981-02-20 | 1982-08-26 | Toshiba Corp | Information processor |
US5251303A (en) * | 1989-01-13 | 1993-10-05 | International Business Machines Corporation | System for DMA block data transfer based on linked control blocks |
EP0439260B1 (en) * | 1990-01-23 | 1998-08-19 | Hewlett-Packard Company | Distributed processing apparatus and method for use in global rendering |
KR930008050B1 (ko) * | 1990-02-16 | 1993-08-25 | 가부시끼가이샤 히다찌세이사꾸쇼 | 원칩 마이크로프로세서 및 그 버스시스템 |
JP3369580B2 (ja) * | 1990-03-12 | 2003-01-20 | ヒューレット・パッカード・カンパニー | 直接メモリアクセスを行うためのインターフェース装置及び方法 |
US5390304A (en) * | 1990-09-28 | 1995-02-14 | Texas Instruments, Incorporated | Method and apparatus for processing block instructions in a data processor |
US5379381A (en) * | 1991-08-12 | 1995-01-03 | Stratus Computer, Inc. | System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations |
US5341494A (en) * | 1993-02-12 | 1994-08-23 | Compaq Computer Corporation | Memory accessing system with an interface and memory selection unit utilizing write protect and strobe signals |
US5596376A (en) * | 1995-02-16 | 1997-01-21 | C-Cube Microsystems, Inc. | Structure and method for a multistandard video encoder including an addressing scheme supporting two banks of memory |
-
1995
- 1995-09-29 US US08/536,560 patent/US5765022A/en not_active Expired - Fee Related
-
1996
- 1996-07-23 JP JP19357096A patent/JP3575572B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006072473A (ja) * | 2004-08-31 | 2006-03-16 | Fuji Xerox Co Ltd | データ転送方法および装置 |
JP2015043235A (ja) * | 2010-05-11 | 2015-03-05 | クアルコム,インコーポレイテッド | データ値を変換して記憶するための命令を用いた代理メモリアクセスエージェントの構成 |
Also Published As
Publication number | Publication date |
---|---|
US5765022A (en) | 1998-06-09 |
JP3575572B2 (ja) | 2004-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0997230A (ja) | データ転送方法及びシステム | |
JP3016575B2 (ja) | 複数キャッシュ・メモリ・アクセス方法 | |
JP3431626B2 (ja) | データ処理装置 | |
JP3285644B2 (ja) | キャッシュメモリを有するデータプロセッサ | |
US4701844A (en) | Dual cache for independent prefetch and execution units | |
US6456891B1 (en) | System and method for transparent handling of extended register states | |
JP4531890B2 (ja) | 原子的更新処理を実行する方法 | |
JP3289661B2 (ja) | キャッシュメモリシステム | |
US6226695B1 (en) | Information handling system including non-disruptive command and data movement between storage and one or more auxiliary processors | |
US5379394A (en) | Microprocessor with two groups of internal buses | |
JPH0345407B2 (ja) | ||
US5671231A (en) | Method and apparatus for performing cache snoop testing on a cache system | |
JPS6263350A (ja) | キヤツシユメモリを具えた情報処理装置 | |
JPH0997214A (ja) | 補助プロセッサのためのアドレス変換を含む情報処理システム | |
US5745728A (en) | Process or renders repeat operation instructions non-cacheable | |
JPH06161893A (ja) | メモリアクセス方法およびシステム | |
US20060149940A1 (en) | Implementation to save and restore processor registers on a context switch | |
US4648033A (en) | Look-aside buffer LRU marker controller | |
JP4490585B2 (ja) | 周辺ステータスについての内部レジスタを有するプロセッサまたはコア論理演算装置 | |
EP0156307A2 (en) | Pipelined processor having dual cache memories | |
US4628450A (en) | Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor | |
JP3445873B2 (ja) | データプリフェッチ方法およびそのための情報処理装置 | |
JP3161422B2 (ja) | マイクロコンピュータ | |
KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 | |
JPH0628258A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040105 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040218 |
|
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: 20040615 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20040616 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040630 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070716 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080716 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |