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
Application number
JP8193570A
Other languages
English (en)
Other versions
JP3575572B2 (ja
Inventor
M Kaiser John
ジョン・エム・カイザー
E Maule Warren
ウォーレン・イー・モール
G Scheaf Robert
ロバート・ジー・シャーフ
W Victor David
デビッド・ダブリュー・ビクター
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0997230A publication Critical patent/JPH0997230A/ja
Application granted granted Critical
Publication of JP3575572B2 publication Critical patent/JP3575572B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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/423Bus 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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/655Same 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

(57)【要約】 【課題】 バーチャル・メモリ・データ処理システムに
おいてデータを転送するデータ転送方法及びそのデータ
処理システムを提供する。 【解決手段】 PowerPC外部制御命令を用いて変換した
アドレスをシステムのメモリ・コントローラに配置され
ているデータ移動エンジンに転送すると共に、前に転送
したパラメータを前記メモリ・コントローラ内の制御レ
ジスタに転送する。最小のプロセッサ・オーバーヘッド
及びバス帯域幅利用によりシステム・メモリとI/O装置
との間で高速度のデータ転送を達成する。本発明のシス
テム及び方法はメモリとグラフィック・アダプタ又はマ
ルチメディア装置のような装置との間で多量のデータを
転送するのに有用である。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明はデータ転送方法及び
データ処理システムに関し、特にシステム・メモリと前
記データ処理システムに接続された装置との間でデータ
を転送するデータ転送方法及びデータ処理システムに関
する。
【0002】
【従来の技術】現在、最近のコンピュータ・システム
は、アプリケーション・プログラムに利用可能とするメ
モリがその機械(いわゆるリアル・メモリ)に実際に存
在するメモリよりも多く存在するバーチャル・メモリの
概念を用いている。オペレーティング・システム及びハ
ードウエアはアプリケーションにこのメモリが実在して
いると思わせるので、このメモリはバーチャルと呼ばれ
るが、プロセッサ(又は複数のプロセッサ)によりアク
セス可能な物理メモリに実際に存在していなくともよ
く、代わってシステムのハード・ディスクに割り付けら
れる。ハードウエア及びソフトウェアは、プログラムが
発行するバーチャル・アドレスをリアル物理メモリか又
はハード・ディスクのどこかに実際に存在するアドレス
に変換する。これは、典型的には4Kバイトである1ペ
ージを単位として実行される。
【0003】これらの変換は、常時実行され、かつ速や
かに行われる必要があるので、プロセッサ・ハードウエ
アにおける「アドレス変換バッファ(translation look
aside buffer : TBL )」に保持されている。あるページ
がプロセッサによりアクセスされ、それがリアル・メモ
リに存在していないときは、ページ・フォールト割り込
みが発生し、ソフトウェアはディスクからページを持ち
込み、メモリ内のリアル・ページに対してこれをマップ
させる。これをディスクからのページにより置換する前
に、ディスクからのページを置くリアル・メモリ空間に
空きがないときは、ソフトウェアは、まず、ディスクに
コピーすべきページを選択してメモリ空間を凍結させ
る。これはページ・スワッピングと呼ばれる。
【0004】ソフトウェアは、メモリからリアル・ペー
ジを除去するためにアドレス変換バッファ(TBL)を変更
させるので、古いアドレスがこれ以上古いリアル・ペー
ジ位置にマップすることはない。これをTBLの無効化と
呼ぶ。そのときに、このバーチャル・アドレスを参照す
ると、ソフトウェアはページ・フォールトを検出し、こ
れがリアル・メモリに存在せず、ハード・ディスクにつ
いて探すべきことを知る。ハード・ディスクから新しい
ページを開いたときは、TBLを変更してメモリ内の当該
リアル・ページ・アドレスに新しいバーチャル・アドレ
スをマップさせる。
【0005】更に、今日のコンピュータ・システムも1
以上のプロセッサからなり、各プロセッサは実行を高速
化するためにリアル・メモリから最近に使用したデータ
のコピーを含むキャッシュ・メモリを有する。プロセッ
サがデータをメモリからフェッチする又はメモリに記憶
するときは、このデータをキャッシュ・メモリにロード
又はセーブする。同じような技術は、最近使用していな
かったときにメモリにデータをセーブさせるため、及び
プロセッサ(又は複数のプロセッサ)により現在アクセ
スされているキャッシュのあるセクションをデータによ
り更新するために用いられる。通常、これは、動作の速
度を増加させるために完全にハードウエアにより実行さ
れる。プロセッサがキャッシュされたデータをアクセス
しているときは、外部バス又はメモリを作動させること
はないので、極めて効果的となる。
【0006】これら型式のコンピュータ・システムで
は、メモリ(又はプロセッサ・キャッシュにおいてデー
タを変更してもよいときはプロセッサ・キャッシュ)と
I/O(入出力)装置との間でデータを移動させるために
いくつかの代替が現在存在する。第1の代替はプロセッ
サ発行ロードを有することであり、そのときはPIO(プ
ログラムI/O)を用いて装置に直接記憶させる。プロセ
ッサは、その内部レジスタのうちの一つにロード命令を
用いてメモリ(又はキャッシュ)をアクセスする。ハー
ドウエアはTLBを用いてバーチャル・アドレスを変換し
て、リアル・メモリ(キャッシュ)位置からデータを検
索する。前述のように、データがリアル・メモリに現在
存在しないときは、ページ・フォールトが発生し、また
オペレーティング・システム(「OS」)ソフトウェアはデー
タをスワップしてアクセスが発生する。データがプロセ
ッサ・レジスタに存在すると、I/O位置に対するストア
を用いてI/O装置に書き込まれる。(I/O装置がデータの
ソースであり、かつメモリが目標のときは、逆の手順が
用いられる。)
【0007】この方法は、プログラムに関しては簡単で
あるが、プロセッサはI/O装置の速度により遅くされる
ので、多くのプロセッサ・サイクルを費やすと共に、バ
ースト転送が利用できず、また転送がプロセッサのオペ
ランド・サイズ(ワード、二重ワード等)に限定される
ので、システム・バス及びI/Oバス帯域幅を費やす欠点
がある。このようにして4Kページのデータ転送は、典
型的なワード・サイズのオペランドのロード及びストア
を用いたときに、このようなオペレーションを1000
も必要とすることになる。
【0008】一般的な他の代替は、メモリからI/Oに、
又はその逆に複数ブロックのデータを転送するために直
接メモリ・アクセス(DMA)オペレーションを用いるこ
とである。これは、更に効果的なバースト転送を用い、
かつ(もしシステム構成のために、トラフィックがメイ
ン・システム(プロセッサ/メモリ・バス)から切り離
されたままとなり得るときは、)潜在的にシステム・バ
スの帯域幅を使用しないことにより、第1の代替よりも
多くのCPUサイクルをセーブする利点がある。しか
し、以下で詳細に説明するように、依然としてDMAセッ
トアップを含み、かつ終了の割り込みを取り扱う際に、
ここでもOSカーネルに係わる大きなオーバーヘッドが
存在する。
【0009】
【発明が解決しようとする課題】DMAセットアップは、
アプリケーションがI/Oのバーチャル・ページのうちの
1ページからいくつかのデータを書き込みたい、又は読
み出したいときに、I/O DMA装置がこれらのバーチャル
・アドレスを典型的には判断できず、またデータがメモ
リに存在するのか、又はハード・ディスクに存在するの
かも判らないことから複雑なものとなる。前述のよう
に、OSのソフトウェアはアプリケーション・データを
ディスクに一時的にページアウトしてスワップさせてし
まっているかもしれない。
【0010】DMA転送をセットアップするために、プロ
セッサは、バーチャル・アドレスからリアル・メモリ・
アドレスに変換したソース(又は目標)メモリ・アドレ
スを得て、かつ転送を実行している間に、リアル・ペー
ジをメモリに「保持する(pin)」OSソフトウェアを有す
る必要がある。これらのオペレーションは共にOSカー
ネル呼び出しに係わり、OSカーネル呼び出しはプロセ
ッサ・サイクルにおいて高価になる恐れがある。オペレ
ーションを「保持(pinning)」するとは、リアル・ペー
ジ・マネジャにとって、OSソフトウェアによりディスク
にページを移して、置換することができないリアル・ペ
ージをマークすることである。これが許容されたのであ
れば、I/O装置は、破滅的な結果となる転送を要求する
ものを除き、アプリケーションにデータを転送すること
ができる。
【0011】更に、グラフィック・スクリーン・ペイン
ティング又はマルチメディア装置転送のようなデータ集
約的な転送のときは、CPUオーバーヘッド又はシステム
・バス帯域幅が限定要素となる。
【0012】従って、当該技術分野において、データを
転送する改良された、バーチャル・メモリ・データ処理
システムにおけるシステム及び方法が要求されている。
【0013】
【課題を解決するための手段】本発明は、ソースから目
標(ターゲット)にデータを転送する方法に関連したデ
ータ処理システム及び方法を提供することにより、以上
の要求を満足させるものであって、前記システム及び方
法は、(1)目標のアドレスを判断するステップと、
(2)転送すべきデータの量を判断するステップと、
(3)転送すべきデータのアドレスを判断するステップ
であって、前記転送すべきデータのアドレスが前記ソー
スに対応しているステップと、(4)転送エンジンのア
ドレスを判断して前記データの転送を実行するステップ
と、(5)ステータス情報を記憶すべきメモリ位置のア
ドレスを判断するステップであって、前記ステータス情
報がデータの転送に関連しているステップと、(6)前
記目標の前記アドレス、転送すべき前記データの前記
量、及びステータス情報を記憶すべき前記メモリ位置の
前記アドレスを前記転送エンジンに送出するステップ
と、(7)前記転送エンジンに転送すべき前記データの
前記アドレスを送出するステップと、(8)前記目標の
前記アドレス、転送すべき前記データの前記量、ステー
タス情報を記憶すべき前記メモリ位置の前記アドレス、
及び前記転送エンジンにより転送すべき前記データの前
記アドレスを受け取るステップと、(9)既存のデータ
の転送が既に進行しているか否かを判断するステップ
と、(10)前記既存のデータの転送が進行しているこ
とを判断したときは、前記データの前記転送を破棄する
ステップと、(11)前記ソースから複数のデータ部分
を読み出し、かつ前記目標にこれらのデータ部分を書き
込む複数対の読み出し/書き込み命令を発行するステッ
プと、(12)あるカウントに到達したときに前記複数
対の読み出し/書き込み命令を停止させるステップであ
って、前記カウントが転送すべき前記データの前記量に
依存しているステップと、(13)前記データを前記ソ
ースから、前記ステータス情報を記憶すべき前記メモリ
位置に対する前記目標へ転送したこと標識を書き込むス
テップと、(14)前記メモリ位置に関連するアドレス
の前記プロセッサによりポーリングするステップと、
(15)前記ポーリングするステップに応答して他のデ
ータ転送を開始するステップとを含む。
【0014】本発明の一実施例において、前記データ処
理システムはパワー・ピー・シー(PowerPC)アーキテク
チャのものであり、前記転送エンジンにより転送される
べき前記データの前記アドレスには、下記命令、eciwx
(インデックスされたワードによる外部制御イン)、又
はecowx(インデックスされたワードによる外部制御ア
ウト)のうちの一つが付随する。
【0015】以上、以下に続く本発明の詳細な説明を良
く理解できるようにするために、本発明の特徴及び技術
的な効果を概要的に説明した。以下、本発明の請求の範
囲の要旨を形成する本発明の付加的な特徴及び効果を説
明する。
【0016】
【発明の実施の形態】以下の説明では、本発明の十分な
理解を得るために特定のワード又はバイト長のような多
くの特定的な詳細を説明する。しかし、このような特定
的な詳細がなくても本発明を実施できることは、当該技
術分野に習熟する者に明らかであろう。他の場合では、
不必要な詳細により説明が不明確とならないように、周
知の回路はブロック図形式により示されている。大抵の
部分において、タイミング要件に関する詳細等について
は、本発明の完全な理解を得るために、詳細は不必要、
かつ当該技術分野に通常に習熟する者の習熟範囲内であ
る限り、削除した。
【0017】ここで、図面を参照すると、説明した要素
は必ずしも一定の割合で示されてはいない。また、同一
又は類似の要素はいくつかの図面を通して同一参照番号
により表されている。
【0018】以下に詳細に説明するように、本発明は、
データ処理システム用のメモリ・コントローラ内でデー
タ移動エンジンを用いることにより、メモリとデータ処
理システムに接続された装置との間でより効率的なデー
タの転送を得ることである。このデータ移動エンジンは
転送に固有のパラメータ及び命令を受け取って、起動し
たプロセッサと更に係わることなく、転送を実行するよ
うに進行する。
【0019】本発明は、IBM及びコトローラにより製
造されているPowerPCコンピュータ・アーキテクチャに
よる実施について説明されている。しかし、本発明の要
旨はメモリと他の装置との間のブロック・データの転送
を用いて任意型式のコンピュータ・アーキテクチャによ
り実施されてもよい。(本発明は、データ処理システム
内の別個の2つのメモリ位置間におけるデータの転送に
対しても動作し得ることに注意すべきである。)
【0020】本発明はPowerPCアーキテクチャ内で以下
で説明する2つの命令を効率的に使用するようにしてい
る。これらの命令は一連のオペレーションを実行するよ
うにPowerPCアーキテクチャにより設計されている。こ
れらの命令は、PowerPCアーキテクチャにより、又は本
発明を用いて他の任意のコンピュータ・アーキテクチャ
により、対応する一組のプログラム命令により置換され
てもよい。
【0021】以下の説明は、システム・メモリからデー
タ処理システムに接続されたI/O装置にデータを転送す
ることに関連している。しかし、ここで指摘する任意の
他の転送も同じようにして実行されてもよい。
【0022】PowerPCアーキテクチャでは、メモリから
ロードする又はメモリに記憶するように機能する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頁を参照すべきである。
【0023】図1を参照すると、対称的なマルチプロセ
シング・システム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が他のプロセッサ要求をサービスしてビジ
ーでないときは、メモリ・バースト・サイズ転送を用い
て転送を行えるようにする。
【0024】データ移動エンジン109はメモリ・コン
トローラ101内に実施され、かつここで説明したよう
に固有な方法により構築された周知の直接メモリ・アク
セス(DMA)装置を含むものでよく。
【0025】データ移動エンジン109に接続されてい
るのは、以下で説明される転送を制御するプロセッサ1
02、103により直接プログラム可能な制御レジスタ
(CR)111〜制御レジスタ(RA)114である。制御レジ
スタ(CR)111〜制御レジスタ(RA)114はデータ移動
エンジン109内に配置されてもよいことに注意すべき
である。
【0026】制御レジスタ(CR)111は、データ転送の
長さ、(メモリ105への又はからの)データ転送の方
向を表すビット、及びデータ転送中に目標アドレスを増
加させるか否かを表すビットにより初期化される制御レ
ジスタ(CR)である。
【0027】制御レジスタ(AR)112は、I/Oアダプタ
106のリアル・アドレスに初期化されるアダプタ・ア
ドレス・レジスタである。制御レジスタ(AR)112はメ
モリ・メモリ転送用のリアル・メモリ・アドレスにより
ロードされてもよいことに注意すべきである。
【0028】制御レジスタ(WAR)113は、オペレーシ
ョンの完了ステータス・インジケータを置くために用い
られるメモリ位置のリアル・アドレスに初期化される書
き戻しアドレス・レジスタ(WAR)である。このステー
タスは転送進行についてチェックするためにプロセッサ
102、103によりポーリング(読み出)されてもよ
い。しかし、プロセッサ102、103にとってはWAR
により指示されたメモリ位置を読み出すのがより効率的
である。なぜならば、メモリ位置をそのキャッシュにキ
ャッシュさせることができ、かつプロセッサ102、1
03がシステム・バス104をアクセスして完了ステー
タスをポーリングする必要がないからである。
【0029】データ移動エンジン109が転送を終了す
ると、指示された制御レジスタ(WAR)113のメモリ位
置にステータスを記憶し、制御レジスタ(WAR)113は
プロセッサのキャッシュ・データを無効にし、プロセッ
サ102、103はメモリ105からの完了ステータス
を含む更新位置を自動的に読み出す。換言すれば、制御
レジスタ(WAR)113はメモリ105内の位置を指すこ
とができ、ここでデータ移動エンジン109は、データ
の転送を完了したこと、又は以下で説明する他の種々の
ステータス情報を表しているデータを記憶する。これが
バス107上で発生すると、このステータスの書き戻し
もシステム・バス104上に送出されるので、プロセッ
サ102、103はメモリ位置のアドレス及び書き込み
命令を調べることができる。これはデータ転送を開始す
るプロセッサにおけるキャッシュ・ライン(例えばキャ
ッシュ115)を無効にする。
【0030】データ移動エンジン109は、プロセッサ
・オペランド・サイズではなく、かつバーチャル・リア
ル・メモリ・アドレスを変換してメモリ・ページを「固
定」する際に係わるセットアップ・オーバーヘッドなし
に、メモリ・アクセスを集中的に行うバースト転送を用
いて、1ページのデータまで転送するのに用いられても
よい。
【0031】次に図2を参照すると、本発明による処理
がステップ201から開始する。この処理は、システム
100にプログラムされた一組の命令としてハードワイ
ヤされても即ち記憶されてもよい。
【0032】この転送は、転送すべきデータのソース又
は行き先であるI/Oアダプタ106のリアル・アドレス
を有する第1のプログラムの制御レジスタ(AR)112
と、データ移動エンジン109のRIDを有する内部プロ
セッサ・レジスタ(EAR)(外部アクセス・レジスタ)
117とをプログラムする。これらの値は、転送アプリ
ケーション(グラフィック・インテンシブ・コンピュー
タ・プログラムのようなデータを転送するアプリケーシ
ョン・プログラム)、典型的にはデバイス・ドライバに
より通常知られており、ハードウエアにより構成されて
いる。即ち、システムが初期化されれば、これらの値は
変化しない。
【0033】次に、プロセッサは、ステータス・メール
ボックスとして用いるように、システムのメモリ105
におけるメモリ位置を制御レジスタ(WAR)113にプロ
グラムする。これは、そのプログラムに編集されている
ので、変化しない。この処理はOSからこの位置のアド
レスを得てこれを固定する必要があるが、しかしプログ
ラムが実行されている間は変化しない。
【0034】次に、ステップ203において、処理は前
述のように制御レジスタ(CR)111に長さ、方向及び自
動増加値を書き込む。
【0035】図3を参照すると、前記レジスタ値を制御
レジスタ(CR)111〜制御レジスタ(WAR)113に記憶
するためにメモリ・コントローラ101内で実行される
処理が説明されている。ステップ301において、レジ
スタ値がプロセッサ102からメモリ・コントローラ1
01内の制御レジスタ(CR)111〜制御レジスタ(RA)1
14に記憶される。ステップ302において、これらの
レジスタ値がこれら制御レジスタに配置される。ステッ
プ303は、この処理が終了したことを示す。
【0036】ステップ204において、メモリ105か
ら又はへ移動するデータ領域を指示させるecowx又はeci
wx命令を発行する。プロセッサ102は、リアル・アド
レスに対するecowx又はeciwx命令が用いるバーチャル・
アドレスの変換を行い、これと内部プロセッサ・レジス
タ(EAR)117に記憶されているRIDをシステム・バス1
04に転送する。
【0037】ecowx又はeciwx命令を用いる代わりに、プ
ロセッサ102は、図5のフローチャートに示したと同
様に対応する一組のプログラム命令を実行してもよい。
ステップ51において、プロセッサ102は転送すべき
データのメモリ位置に対する実効アドレス(バーチャル
・アドレス)を計算する。次に、ステップ52におい
て、プロセッサ102はこの実効アドレスを評価する。
次に、ステップ53において、この実効アドレスをレジ
スタ(TLB)116を用いてリアル・アドレスに変換す
る。その後、ステップ54において、このリアル・アド
レスをシステム・バス104に送出する。
【0038】この残りの説明ではecowx又はeciwx命令の
使用について行う。しかしながら、図5に示すプログラ
ム命令セットを代わりに使用しもよい。図5に示すプロ
グラム命令セットを使用するときは、プロセッサ102
からシステム・バス104を介してメモリ・コントロー
ラ101へ送出されるリアル・アドレスは、制御レジス
タ(RA)114内に記憶されてもよい。
【0039】ステップ204に応答して、メモリ・コン
トローラ101は、ecowx/ecowx命令コードを捕捉し、
RIDをそれ自身のものとしてデコードし、そのアドレス
をデータ移動エンジン109に転送する。データ移動エ
ンジン109はecowxにより渡されたデータを使用せ
ず、またeciwxに対してダミー・データを渡す。データ
移動エンジン109が必要とするデータは制御レジスタ
(CR)111、制御レジスタ(WAR)113及び制御レジス
タ(AR)112に既に存在するので、データ移動エンジン
109は何のデータも必要としない。ecowx/eciwx命令
を受け取った後にデータ移動エンジン109内で実行さ
れる処理については、図4に関連して以下で更に詳細に
説明する。
【0040】図2を再び参照すると、ステップ205に
おいて、プロセッサ102はキャッシュ115から完了
ステータス・ワードを読み取る。この完了ステータス・
ワードは、転送を完了したことを表す、転送したパラメ
ータが「不正」であったことを表す、ページを過ぎたこ
とを表す、又はページをスワップしたことを表す。
【0041】次に、ステップ206において、読み出し
完了ステータス・ワードに応答して、プロセッサ102
は、前記パラメータが正しく転送され、かつ/又は「正
常」パラメータであったかを判断する。ノーならば、ス
テップ207において処理は終了し、かつプログラムは
異常終了となる。しかしながら、パラメータが「正常」
であると判断されると、処理はステップ208に進み、
転送は完了したか否かを判断する。ノーのときは、処理
がステップ209に進み、転送はページ境界を越えたこ
と、又はTLBオペレーションを調べたためにデータ移動
エンジン109が終結してページがスワップされた恐れ
があることを表していることを完了ステータスが表して
いるかどうかを判断する。いずれも発生しなかったとき
は、プロセッサ102内の処理はステップ205に戻
り、ステータス・ワードを再び読み出す。
【0042】このループは、制御レジスタ(WAR)11
3に示すメモリ位置にステータス書き戻しの調べにより
ステップ206、208、209について異なる一組の
データが得られるまで、プロセッサ102内で継続す
る。ステップ208において、完了ステータス・ワード
が、メモリ105からI/Oアダプタ106へ又はその逆
のデータの転送を完了したことを表しているときは、処
理はステップ210に進み、システム100に接続され
ている新しいデバイスへの転送が要求されているか否か
を判断する。イエスのときは、処理はステップ202に
進み、EAR、AR及びWAR値をプログラムする。
【0043】新しいデバイスを表していなかったとき
は、処理がステップ211に進み、I/Oアダプタ106
へ又はからの他の転送が要求されているか否かを判断す
る。I/Oアダプタ106へ又はから他のデータ・ブロッ
クを転送すべきときは、処理はステップ203に進み、
メモリ105からI/Oアダプタ106へ又はその逆へ新
しいデータの転送のために長さ、方向及び自動増加値に
関する新しい情報により、レジスタ(CR)111がプログ
ラムされる。他の転送が要求されていないときは、処理
はステップ212において終了する。
【0044】リアル・メモリ位置を固定するパフォーマ
ンス問題を解決するために、データ移動エンジン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にお
いて調べを終了する。
【0045】図2を参照して、ステップ209におい
て、ステータスを読み込んだプロセッサ102がページ
を越えた、又はTLB停止が発生したことを検出すると、
ステップ213に進み、完了したデータ転送の長さを読
み出し、ステップ214においてこれを転送開始アドレ
ス+1バイトに加算し、ステップ215において通常の
メモリからの読み出しを行う。これは、新しいページ位
置がまだメモリにあるか否かを調べるために行われる。
ステップ216においてページ・フォールトが発生して
いると、オペレーティング・システムはこの処理を中断
し、ステップ217において参照したページをスワップ
し、次いでステップ215において読み出しを反復する
処理に戻る。ページ・フォールトが発生していないとき
は、処理はステップ218に進み、もとの転送サイズか
ら既に転送した長さを引いてステップ219に進み、新
しい長さを制御レジスタ(CR)111に記憶する。次い
で、処理はステップ220に進み、新しい開始点を反映
するようにもとのアドレスを調整し、次いで制御はステ
ップ204に戻り、ecowx/eciwx命令を再発行する。そ
こで、データ転送が再開される。
【0046】次に図4に戻り、ステップ401において
ecowx/eciwx命令を受け取ることにより、メモリ・コン
トローラ101内で実施した処理を開始する。次に、ス
テップ402において、処理は、データの転送が既に進
行しているか否かを判断する。イエスのときは、新しい
データ転送を終了し、ステータス書き戻しオペレーショ
ン内で制御レジスタ(WAR)113により指示されたメモ
リ位置にこの終了が書き込まれる。ステップ413にお
いてこのステータスの記憶を実行する。メモリ・コント
ローラ101内の処理はステップ414により完了す
る。この終了ステータスはプロセッサ102により調べ
られ、キャッシュ115内の対応するキャッシュ・ライ
ンを無効にし、従ってステップ205においてこのステ
ータス・ワードを読み出すことができる。
【0047】転送が進行していないときは、処理がステ
ップ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への書き込みが対をなす。
【0048】次に、ステップ405において、処理は、
データ転送が完了したか否かを判断する。イエスのとき
は、ステップ408において制御レジスタ(WAR)113
内の値により指示されたメモリ位置に対する次の書き込
みのために、この完了ステータスをセットする。この完
了ステータスは、図2の判断ブロック208に示す処理
において用いられる。
【0049】データの転送が完了していないときは、処
理がステップ406に進み、処理は前述のようにTLB停
止フラグがセットされているか否かを判断する。データ
移動エンジン109がTLB停止フラグのセットを検出す
ると(ステップ406)、処理はステップ409に進
み、「ページ・スワップの可能性のために転送を停止」
として完了ステータスをセットさせる。ステップ406
においてTLB停止フラグのセットが検出されないとき
は、オペレーションはステップ407に進み、ページ境
界を越えようとしているか否かを調べるためにテストを
実行する。イエスのときは、ステータスをセットしてペ
ージ越えを表す。ステップ409及び410はいずれも
制御レジスタ(CR)111内の長さを更新して転送を終了
するまでに何回バイトを転送したかを表す(ステップ4
15)。処理はステップ413に進み、制御レジスタ(W
AR)113を用いてステータスをメモリに記憶し、ステ
ップ414において転送を終了する。
【0050】ステップ407において、ページ境界を越
えていないときは、処理はステップ404に戻ってデー
タの転送を継続する。
【0051】PowerPC外部制御命令を用いて変換したア
ドレスをメモリ・コントローラ101内に前にセットア
ップした制御レジスタ(CR)111〜制御レジスタ(RA)1
14と共に、メモリ・コントローラ101に配置されて
いるデータ移動エンジン109に転送すると、高速デー
タ転送が最小のCPUオーバーヘッド及び小さなシステ
ム帯域幅の使用により達成される。この方法はメモリと
グラフィック又はマルチメディア装置との間で多量のデ
ータを転送するために特に有用である。
【0052】まとめとして、本発明の構成に関して以下
の項を開示する。
【0053】(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)更に、前記ポーリングするステップに応答して
他のデータ転送を開始させるステップを含む上記(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)に記載のデータ転送方法。
【図面の簡単な説明】
【図1】本発明により構築されたデータ処理システムを
示したものである。
【図2】本発明によるフローチャートである。
【図3】図1に示すメモリ・コントローラ内のレジスタ
の値を記憶するフローチャートである。
【図4】本発明による転送エンジンのオペレーションに
従ったフローチャートである。
【図5】バーチャル・アドレスをリアル・アドレスに変
換するフローチャートである。
【図6】TLBオペレーションを検出するフローチャート
である。
【符号の説明】
101 メモリ・コントローラ 102、103 プロセッサ 104 システム・バス 105 メモリ 106 I/Oアダプタ 109 データ移動エンジン 110 データ・バッファ 111〜114 制御レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウォーレン・イー・モール アメリカ合衆国78613、テキサス州、シー ダー・パーク、タク・ロード 12131 (72)発明者 ロバート・ジー・シャーフ アメリカ合衆国12477、ニューヨーク州、 ソージャーティーズ、ティンバーウォー ル・ロード 103 (72)発明者 デビッド・ダブリュー・ビクター アメリカ合衆国78681、テキサス州、ラウ ンド・ロック、ニューランド・ドライブ 3810

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムにおいて、ソース装置
    から目標装置へデータを転送するデータ転送方法であっ
    て、 パラメータ及び1以上の命令をプロセッサからメモリ・
    コントローラへ送出して前記ソース装置から前記目標装
    置へ前記データの前記転送を実行するステップであっ
    て、前記パラメータには前記目標装置のアドレス、及び
    転送する前記データの量の指定が含まれ、かつ前記1以
    上の命令には転送する前記データのアドレスが含まれて
    いる前記ステップと、 データ移動エンジンにより制御された前記メモリ内の前
    記パラメータ及び前記1以上の命令を受け取るステップ
    と、 前記ソース装置から前記目標装置へ前記データの前記転
    送を実行するステップとを含むデータ転送方法。
  2. 【請求項2】前記ソース装置は前記メモリ・コントロー
    ラに接続されたメモリ装置である請求項1に記載のデー
    タ転送方法。
  3. 【請求項3】前記目標装置は前記メモリ・コントローラ
    に接続されたメモリ装置である請求項1に記載のデータ
    転送方法。
  4. 【請求項4】前記目標装置は前記メモリ装置に接続され
    たI/O装置である請求項2に記載のデータ転送方法。
  5. 【請求項5】前記I/O装置はマルチメディア・アダプタ
    である請求項4に記載のデータ転送方法。
  6. 【請求項6】前記ソース装置は前記メモリ・コントロー
    ラに接続されたI/O装置である請求項3に記載のデータ
    転送方法。
  7. 【請求項7】前記データ処理システムは前記メモリ・コ
    ントローラに接続された複数のプロセッサを有する対称
    マルチプロセッサ・システムである請求項1に記載のデ
    ータ転送方法。
  8. 【請求項8】前記実行するステップは、更に、 前記ソース装置から複数のデータ部分を読み出し、かつ
    前記目標装置へこれら複数のデータ部分を書き込む複数
    対の読み出し/書き込み命令のを発行するステップと、 あるカウントに到達したときに複数対の前記読み出し/
    書き込み命令の発行を停止させるステップであって、前
    記カウントは転送する前記データの前記量を指定する前
    記パラメータに従っている前記ステップとを含む請求項
    1に記載のデータ転送方法。
  9. 【請求項9】前記パラメータは、更に、前記データの前
    記転送のステータスを指定するステータス・データを記
    憶するシステム・メモリ内におけるアドレスを含み、前
    記データ転送方法は、更に、 前記システム・メモリ内の前記アドレスに前記ステータ
    ス・データを書き込み、前記データの前記転送の前記ス
    テータスを指定するステップと、 前記システム・メモリ内の前記アドレスに前記ステータ
    ス・データを書き込み、前記データの転送の前記ステー
    タスを指定するステップとを含む請求項1に記載のデー
    タ転送方法。
  10. 【請求項10】前記ステータス・データは、前記ソース
    装置から前記目標装置に前記データが転送されたか否か
    を指定する請求項9に記載の方法。
  11. 【請求項11】前記ステータス・データはページの境界
    を越えたことを指定する請求項9に記載のデータ転送方
    法。
  12. 【請求項12】前記ステータス・データはTLBオペレー
    ションを検出したことを表示し、かつ前記データ移動エ
    ンジンは前記調べるオペレーションにより前記TLB オペ
    レーションを検出する請求項9に記載のデータ転送方
    法。
  13. 【請求項13】更に、前記ステータス・データを記憶す
    るために前記プロセッサにより前記システム・メモリ内
    の前記アドレスをポーリングするステップを含む請求項
    9に記載のデータ転送方法。
  14. 【請求項14】更に、前記ポーリングするステップに応
    答して他のデータ転送を開始させるステップを含む請求
    項13に記載のデータ転送方法。
  15. 【請求項15】更に、 転送する前記データの前記アドレスに対応する実効アド
    レスを計算するステップと、 前記データ移動エンジンのアドレスを計算するステップ
    と、前記実効アドレスをリアル・アドレスに変換するス
    テップとを含み、前記リアル・アドレスは前記データ移
    動エンジンに送出される請求項1に記載のデータ転送方
    法。
  16. 【請求項16】前記データ処理システムはPowerPCアー
    キテクチャのものであり、かつ前記1以上の命令は次の
    eciwx(インデックスされたワードにおける外部制
    御)、及びecowx(インデックスされたワードにおける
    外部制御)のうちの一つからなる請求項12に記載のデ
    ータ転送方法。
  17. 【請求項17】更に、 前のデータ転送が進行中であることを判断したのとき
    は、前記転送を破棄するステップを含む請求項1に記載
    のデータ転送方法。
  18. 【請求項18】更に、 パラメータが不正であることを判断したのときは、前記
    転送を破棄するステップを含む請求項1に記載のデータ
    転送方法。
  19. 【請求項19】データ処理システムにおいて、 プロセッサと、 メモリ・コントローラであって、データ移動エンジンを
    含む前記メモリ・コントローラと、 前記メモリ・コントローラに接続されたメモリと、 前記メモリ・コントローラに前記プロセッサを接続させ
    るバスと、 前記メモリ・コントローラに接続されたI/O装置と、 前記プロセッサから前記メモリ・コントローラに複数の
    パラメータ及び1以上の命令を送出して前記メモリから
    前記I/O装置へデータの転送を実行させる手段であっ
    て、前記パラメータは前記I/O装置のアドレス及び転送
    すべき前記データの量の指定を含み、かつ前期以上の命
    令が転送すべき前期データのアドレスを含む前記手段
    と、 前記データ移動エンジンにより前記メモリ・コントロー
    ラ内に前記複数のパラメータ及び前記1以上の命令を受
    け取る手段と、 前記メモリから前記I/O装置へ前記データの転送を実行
    する手段とを含むデータ処理システム。
  20. 【請求項20】前記I/O装置はグラフィック・アダプタ
    である、請求項19に記載のデータ処理システム。
  21. 【請求項21】前記データ処理システムは、前記メモリ
    ・コントローラに接続された複数のプロセッサを有する
    対称マルチプロセッサ・システムである、請求項19に
    記載のデータ処理システム。
  22. 【請求項22】前記実行する手段は、更に、 前記メモリからデータの複数部分を読み出し、かつ前記
    I/O装置にこれらデータの複数部分を書き込む複数対の
    読み出し/書き込み命令を発行する手段と、 あるカウントに到達したときに複数対の前記読み出し/
    書き込み命令の発行を停止させるステップであって、前
    記カウントは転送する前記データの前記量を指定する前
    記パラメータに従っている前記手段とを含む、請求項1
    9に記載のデータ処理システム。
  23. 【請求項23】前記パラメータは、更に、前記メモリ・
    コントローラ内の複数のレジスタに記憶され、更に、前
    記データの前記転送のステータスを指定するステータス
    ・データを記憶するシステム・メモリ内のアドレスを含
    み、更に、 前記システム・メモリ内の前記アドレスに前記ステータ
    ス・データを書き込み、前記データの前記転送の前記ス
    テータスを指定する手段を含む、請求項19に記載のデ
    ータ処理システム。
  24. 【請求項24】前記ステータス・データは、前記メモリ
    装置から前記I/O装置に前記データが転送されたか否か
    を指定する、請求項23に記載のデータ処理システム。
  25. 【請求項25】更に、 前記システム・メモリ内に前記アドレスのプロセッサに
    よりポーリングして前記ステータス・データを記憶する
    手段を含む、請求項24に記載のデータ処理システム。
  26. 【請求項26】更に、 転送する前記データの前記アドレスに対応する実効アド
    レスを計算する前記プロセッサにおける手段と、 前記データ移動エンジンのアドレスを計算する前記プロ
    セッサにおける手段と、 前記実効アドレスをリアル・アドレスに変換する前記プ
    ロセッサにおける手段とを含み、前記リアル・アドレス
    は前記データ移動エンジンに送出される、請求項22に
    記載のデータ処理システム。
  27. 【請求項27】前記データ処理システムはPowerPCアー
    キテクチャのものであり、かつ前記1以上の命令は次の
    eciwx(インデックスされたワードにおける外部制
    御)、及びecowx(インデックスされたワードにおける
    外部制御)のうちの一つからなる、請求項19に記載の
    データ処理システム。
  28. 【請求項28】ソースから目標にデータを転送する、デ
    ータ処理システムにおけるデータ転送方法であって、 前記目標のアドレスを判断するステップと、 転送すべきデータの量を判断するステップと、 転送すべきデータのアドレスを判断するステップであっ
    て、前記転送すべきデータのアドレスが前記ソースに対
    応しているステップと、 転送エンジンのアドレスを判断して前記データの前記転
    送を実行するステップと、 ステータス情報を記憶すべきメモリ位置のアドレスを判
    断するステップであって、前記ステータス情報が前記デ
    ータの前記転送に関連しているステップと、 前記目標の前記アドレス、転送すべき前記データの前記
    量、及びステータス情報を記憶すべき前記メモリ位置の
    前記アドレスを前記転送エンジンに送出するステップ
    と、 前記転送エンジンに転送すべき前記データの前記アドレ
    スを送出するステップと、 前記目標の前記アドレス、転送すべき前記データの前記
    量、ステータス情報を記憶すべき前記メモリ位置の前記
    アドレス、及び前記転送エンジンにより転送すべき前記
    データの前記アドレスを受け取るステップと、 既存のデータの転送が既に進行しているか否かを判断す
    るステップと、 前記既存のデータの転送が進行していることを判断した
    ときは、前記データの前記転送を破棄するステップと、 前記ソースから複数のデータ部分を読み出し、かつ前記
    目標にこれらのデータ部分を書き込む複数対の読み出し
    /書き込み命令を発行するステップと、 あるカウントに到達したときに前記複数対の読み出し/
    書き込み命令を停止させるステップであって、前記カウ
    ントが転送すべき前記データの前記量に依存しているス
    テップと、 前記データを前記ソースから、前記ステータス情報を記
    憶すべき前記メモリ位置に対する前記目標へ転送したこ
    との指定を書き込むステップと、 前記メモリ位置に関連するアドレスの前記プロセッサに
    よりポーリングするステップと、 前記ポーリングするステップに応答して他のデータ転送
    を開始するステップとを含むデータ転送方法。
  29. 【請求項29】前記データ処理システムがパワー・ピー
    ・シー(PowerPC)アーキテクチャのものであり、前記転
    送エンジンにより転送されるべき前記データの前記アド
    レスには下記命令 eciwx(インデックスされたワードによる外部制御イ
    ン)、又はecowx(インデックスされたワードによる外
    部制御アウト)のうちの一つが付随する、請求項28に
    記載のデータ転送方法。
  30. 【請求項30】更に、 ページ除去オペレーションを検出したときは、前記デー
    タの前記転送を一時的に中断するステップを含む、請求
    項28に記載のデータ転送方法。
JP19357096A 1995-09-29 1996-07-23 データ転送方法及びシステム Expired - Fee Related JP3575572B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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