JP2009512919A - 改良されたdmac変換メカニズムのためのシステム及び方法 - Google Patents

改良されたdmac変換メカニズムのためのシステム及び方法 Download PDF

Info

Publication number
JP2009512919A
JP2009512919A JP2008533979A JP2008533979A JP2009512919A JP 2009512919 A JP2009512919 A JP 2009512919A JP 2008533979 A JP2008533979 A JP 2008533979A JP 2008533979 A JP2008533979 A JP 2008533979A JP 2009512919 A JP2009512919 A JP 2009512919A
Authority
JP
Japan
Prior art keywords
dma
page number
real page
dma command
valid
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
JP2008533979A
Other languages
English (en)
Other versions
JP5039889B2 (ja
Inventor
キング、マシュー、エドワード
リウ、ペイチュン、ピーター
ムイ、デイビッド
チー、ジェミン
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 JP2009512919A publication Critical patent/JP2009512919A/ja
Application granted granted Critical
Publication of JP5039889B2 publication Critical patent/JP5039889B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Abstract

【課題】改良されたDMAC変換メカニズムのためのシステム及び方法を提供する。
【解決手段】DMAコマンドは、DMAコマンドの転送サイズと、コンピュータ・システムが一度に転送するデータの量とに基づいて“展開”される。第1DMAリクエストについて、DMAキューは、アドレス変換を行うようにメモリ管理ユニットに要求する。DMAキューはMMUから実ページ番号を受け取り、その後のロールアウト・リクエストに関してDMAキューは、転送が次のページ内へ移るまではMMUにアクセスせずに、その実ページ番号をバス・インターフェース・ユニットに提供する。ロールアウト・ロジックは、各DMAリクエスト後にDMAコマンドの転送サイズをデクリメントし、新しいページに達したか否かを判定し、DMAコマンドが完了したか否かを判定し、後のDMAリクエストのためにライトバック情報をDMAキューに送る。
【選択図】図3

Description

本発明は、改良されたDMAコントローラ変換メカニズムのためのシステム及び方法に関する。特に、本発明は、DMAコマンド・ロールアウト時に実ページ番号を使用するために実ページ番号をDMAコマンド・フィールドに格納するためのシステム及び方法に関する。
コンピュータ・システム・アプリケーションは、通例、データを格納し検索するために実効アドレス又は間接アドレスを指定する。データ格納又は検索リクエストを実行するために、コンピュータ・システムは、実効アドレスを、メモリ内の物理的位置に対応する実アドレス又は物理アドレスに変換する。
コンピュータ・システムは、通例、実効アドレスから実アドレスへの変換を提供するメモリ管理ユニット(MMU)を含む。1つの構成では、DMAキューは、常に、全てのロード命令及び格納命令についてアドレス変換のためにMMUにアクセスし、それは待ち時間を増大させ、より多くの電力を消費する。
他の1つの構成は二次レベルのMMUと組み合わせて実効アドレス実アドレス変換器(effective to real address translator(ERAT))を使用する。ERATは、前のアドレス変換を記憶したルックアップ・テーブルを含む。DMAキューがDMAリクエスト(実効アドレスを含む)をERATに送ると、ERATは、実効アドレス一致を求めてそのルックアップ・テーブルを参照する。もし一致があれば、ERATは対応する実アドレスを提供し、MMUアクセスはバイパスされる。しかし、もしERATがDMAリクエストの実効アドレスに対応するエントリを突き止めなければ、ERATは“ミス”をMMUに送り、MMUは上記第1の構成に関して論じられたものと同じステップを実行する。
MMUは、対応する実ページ番号を特定すると、その実ページ番号をERATに送り、それをERATは自分のテーブルにロードする。この構成を用いて、ERATは回路性能向上を提供する。なぜならば、ERATが実効アドレスを突き合わせるときにMMUはアクセスされなくても良いからである。しかし、見出される難題は、ERATが良好な“ヒット率”を得るためにはERATのルックアップ・テーブルが多数のエントリを含んでいなければならないことであり、これは大量の電力と物理的領域とを消費し得る。更に、見いだされるもう一つの難題は、ERATが依然として各DMAリクエストのためにルックアップを実行することであり、これも待ち時間を増大させる。
従って、必要とされるのは、改良された実効アドレスから実アドレスへの変換メカニズムのためのシステム及び方法である。
DMAコマンド・ロールアウト時に実ページ番号を使用するために実ページ番号をDMAコマンド・フィールドに格納するためのシステム及び方法を用いて上記の難題が解決されることが分かった。DMAキューは、メモリ管理ユニットから実ページ番号を受け取って、その実ページ番号を後のDMAリクエストのために対応するDMAコマンド・フィールドに格納する。この様に、DMAキューはアドレス変換のためにMMUに頻繁にはアクセスせず、その結果として、待ち時間及び電力消費が少ないことを通してシステム性能を向上させる。
DMAキューは、対応するDMAマコマンド・フィールドを有するDMAコマンドを含み、DMAコマンド・フィールドは1)キュー・エントリ有効ビット、2)実効アドレス・フィールド、3)実アドレス有効ビット、4)実ページ番号フィールド、5)転送タイプ・フィールド、及び6)転送サイズ・フィールドを含む。キュー・エントリ有効ビットは、対応するDMAコマンドが有効であるか否かを特定する。実効アドレス・フィールドは、対応するDMAコマンドの実効アドレスを含む。実アドレス有効ビットは、実ページ番号フィールド内の実ページ番号が有効であるか否かを特定する。転送タイプ・フィールドは、ロード又は格納などの、DMAコマンドのタイプを特定する。また、転送サイズ・フィールドは、残っている転送されるべきデータの量を含む。
DMAキューは、何時でも発行され得る(例えば、依存性無し)DMAコマンドを特定する。コマンドがDMAキューからディスパッチされた後、下流側のロジックは、アドレス変換のためにMMUにアクセスするか否かを決定するためにDMAコマンドの対応する実アドレス有効ビットを調べる。もしDMAコマンドの実アドレス有効ビットがセットされていれば、実ページ番号フィールドに含まれている実ページ番号はマルチプレクサを通してバス・インターフェース・ユニットに送られ、そのマルチプレクサはDMAキューから実ページ番号を受け取るように構成されている。更に、DMAキューはDMAリクエスト(実効アドレスを含む)とコマンド・パラメータ(転送サイズを含む)とをロールアウト・ロジックに送る。ロールアウト・ロジックは、転送サイズをデクリメントし、DMAキューが現存する実ページ番号を後のロールアウトDMAリクエストのために使用し得るか否かを判定し、“ライトバック情報”をDMAキューに送る。次に、DMAキューは、そのライトバック情報をDMAコマンドのコマンド・フィールドに格納する。この様な次第で、DMAキューが同じDMAコマンドを“ロールアウト”して他のDMAリクエストを実行するとき、下流側のロジックは、実アドレス有効ビットを調べ、もしそれがセットされていれば実ページ番号をDMAコマンドの実ページ番号出力から抽出して、それをバス・インターフェース・ユニットに送る。その結果として、MMUは頻繁にはアクセスされず、そのために全体としてのシステムの性能が向上する。
1つの実施態様では、実アドレス有効ビットの値に関わらず、DMAリクエストはハードウェア制約により自動的にMMUに送られる。この実施態様では、DMAロジックは、変換リクエストが必要とされるか否かを判定するために実アドレス有効ビットを他のパラメータと共に使用する。変換リクエスト又は実効アドレス有効リクエストはDMAロジックからMMUに送られる。このリクエストがアサートされれば、MMUは対応する実ページ番号を突き止めて、出力される新しい実ページ番号を選択するマルチプレクサを通して新しい実ページ番号をバス・インターフェース・ユニットに送る。更に、MMUはその新しい実ページ番号をDMAキューに送り、ここでそれは後のDMAリクエストのために対応する実ページ番号フィールドに書き戻される。
MMUがアドレス変換を行うとき、ロールアウト・ロジックはDMAリクエストをコマンド・パラメータと共に受け取る。ロールアウト・ロジックは、転送サイズをデクリメントし、MMUがアドレス変換に成功したか否かを判定し、ライトバック情報をDMAキューに送り、それをDMAキューはDMAコマンドの対応するコマンド・フィールドに後のDMAリクエストのために格納する。
叙上は要約であるので、やむを得ずに単純化、一般化、及び細部の省略を含んでおり、従って、この要約が単なる例証に過ぎなくて、決して限定を意図するものではないことが当業者に認められるであろう。請求項のみによって定義される本発明の他の側面、独創的特徴、及び利点は、以下に提示される非限定的な詳しい記述において明らかになるであろう。
添付図面を参照することにより、本発明はより良く理解され、その多くの目的、特徴、及び利点は当業者にとって明らかにされ得る。
下記は、本発明の例について詳しい記述を提供するべく意図されており、本発明自体を限定すると解されるべきではない。この記述の後の請求項で定義されている発明の範囲に任意の数の変形が属し得る。
図1は、実効アドレスを実ページ番号に変換するメモリ管理ユニット(MMU)を示す線図である。図1は、DMAコマンド(例えば、メモリ・ロード及び格納オペレーション)を処理するために現存する技術により使用されるアドレス変換構成を示す。DMAコマンドは、DMAコマンドの転送サイズと、コンピュータ・システムが一度に転送するデータの量とに基づいて“展開(unroll)”される。例えば、コンピュータ・システムが128バイト・インクリメントでデータを転送し、DMAコマンドが512バイトであるならば、そのDMAコマンドは4個のDMAリクエスト(128×4=512)に展開される。
図1はDMAキュー100、MMU120、及びバス・インターフェース・ユニット140を含む。DMAキュー100は何時でも発行され得る(例えば、依存性無し)DMAコマンドを特定してDMAリクエスト110をMMU120に送り、それは、DMAコマンドに対応する実効アドレスを含む。MMU120は、DMAリクエスト110を受け取って、実効アドレスと対応する実ページ番号とを含むルックアップ・テーブルにアクセスする。DMAリクエスト110に含まれている実効アドレスがそのルックアップ・テーブルに格納されている1つの実効アドレスと一致すれば、MMU120は対応する実ページ番号130をバス・インターフェース・ユニット140に送る。
これに反して、もしMMU120がDMAリクエスト110に対応する一致実効アドレスを発見しなければ、MMU120は“ミス”があったことをDMAキュー100に知らせる。MMU120は、また、変換情報をメモリからリクエストしてルックアップ・テーブルにロードする。ロード動作が完了した後、MMU120は、前にミスした同じDMAリクエストを再送するようにDMAキュー100に信号する。
この様に、図1に示されている構成は、たとえDMAリクエストが同じDMAコマンドについての複数のDMAリクエストの一部であっても、各DMAリクエストについてルックアップ又はメモリ・アクセスを実行し、それは非能率的で、プロセッサの性能を低下させる。
図2は、実効アドレス実アドレス変換器(ERAT)と、アドレス変換を実行するメモリ管理ユニット(MMU)とを示す線図である。図2は、代わりのアドレス変換構成を示す。ERAT200は、前のアドレス変換結果を追跡するので、各々のDMAリクエストについてMMU120にアクセスするわけではない。しかし、後述されるように、ERAT200は依然として各DMAリクエストについてルックアップを実行し、それも電力及び記憶領域に関して非能率的ではあるが図1の構成より改善した待ち時間を有する。
DMAキュー100は何時でも発行され得るDMAコマンドに対応するDMAリクエスト110をERAT200に送り、それはそのDMAコマンドに対応する実効アドレスを含む。ERAT200は、実効アドレスと、対応する実ページ番号とを含むルックアップ・テーブルにアクセスする。ERAT200は、DMAリクエスト110に含まれている実効アドレスについてのエントリをルックアップ・テーブルが含むか否かを調べる。もしDMAリクエスト110に含まれている実効アドレスがルックアップ・テーブルに格納されている1つの実効アドレスと一致すれば、ERAT200は実ページ番号130をバス・インターフェース・ユニット140に送る。DMAキュー100、DMAリクエスト110、実ページ番号130、及びバス・インターフェース・ユニット140は、図1に示されているものと同じである。
一方、もしERAT200がDMAリクエスト110の実効アドレスに対応するマッチ(一致するもの)を発見しなければ、ERAT200はミス220をMMU120に送る。MMU120は、このとき、DMAリクエスト110に含まれている実効アドレスについてアドレス変換を行う。
MMU120は、DMAリクエスト110の実効アドレスと一致するものがあるか否かを調べるために(例えば、図1で論じられたステップ)、実効アドレスと対応する実ページ番号とを含む自分のルックアップ・テーブルにアクセスする。もしルックアップ・テーブルがその実効アドレスを含んでいれば、MMU120はそれに対応する実ページ番号を特定してMMU RPN230をERAT200に送る。ERAT200は、実効アドレスとMMU RPN230とを、後の参照のために自分のルックアップ・テーブルに含める。更に、DMAリクエストは再送されなければならない。そのリクエストが再び発行されると、ERAT200はその実効アドレスを突き合わせ、該RPNをバス・インターフェース・ユニットに供給する。MMU120は、図1に示されているものと同じである。
もしMMU120がDMAリクエスト100の実効アドレスに対応するエントリを自分のルックアップ・テーブルにおいて特定しなければ、MMU120は正しいアドレス変換を得るためにメモリにアクセスする(例えば、図1で論じられたステップ)。MMU120がDMAリクエスト100の実効アドレスと対応する実ページ番号を特定すると、MMU120はMMU RPN230をERAT200に送り、それをERAT200は自分のルックアップ・テーブルに格納する。DMAリクエストは再び発行されなければならず、そのときERAT200は実効アドレスを突き合わせてRPN130をBIU140に供給する。理解され得るように、たとえDMAリクエストが同じDMAコマンドについての複数のDMAリクエストの一部であったとしても、DMAキュー100は各々のDMAリクエストについてアドレス変換を実行するためにERAT200にアクセスする。
図3は、DMAキューがMMUから実ページ番号を受け取って、その実ページ番号を後のDMAリクエストのために対応するDMAコマンド・フィールドに格納することを示す線図である。この様なものとして、図3に示されている構成は、図1及び2に示されている構成より効率的である。
DMAキュー300は、対応するDMAマコマンド・フィールドを有するDMAコマンドを含み、DMAコマンド・フィールドは1)キュー・エントリ有効ビット、2)実効アドレス・フィールド、3)実アドレス有効ビット、4)実ページ番号フィールド、5)転送タイプ、及び6)転送サイズ・フィールドを含む。キュー・エントリ有効ビットは、対応するDMAコマンドが有効であるか否かを特定する。実効アドレス・フィールドは、対応するDMAコマンドの実効アドレスを含む。実アドレス有効ビットは、実ページ番号フィールドに含まれている実ページ番号が有効であるか否かを特定する。転送タイプは、ロード又は格納などの、DMAコマンドのタイプを特定する。また、転送サイズ・フィールドは、残っている転送されるべきデータの量を含む(DMAコマンド・フィールドに関して、更に詳しくは図5及び対応するテキストを参照されたい)。
DMAキュー300は、何時でも発行され得る(例えば、依存性無し)DMAコマンドを特定し、アドレス変換のためにMMU320にアクセスするか否かを決定するためにDMAコマンドの対応する実アドレス有効ビットを調べる。もしDMAコマンドの実アドレス・ビットがセットされていれば、DMAキュー300は実ページ番号フィールドから実ページ番号を抽出して実ページ番号360をマルチプレクサ370を通してバス・インターフェース・ユニット380に送り、このマルチプレクサはDMAキュー300から実ページ番号を受け取るように構成されている。更に、DMAキュー300はロールアウト・ロジック330にDMAリクエスト308及びコマンド・パラメータ325を送り、それはDMAコマンドの転送サイズを含む。ロールアウト・ロジック330は、転送サイズをデクリメントし、DMAキュー300が現存する実ページ番号を後のロールアウトDMAリクエストのために使用し得るか否かを判定し、ライトバック情報340をDMAキュー300に送る(ロールアウト処理に関して、更に詳しくは図7及び対応するテキストを参照されたい)。次に、DMAキュー300は、そのライトバック情報340をDMAコマンドのコマンド・フィールドにロードする。従って、DMAキュー300が他のDMAリクエストを実行するために同じDMAコマンドを“ロールアウト”するとき、DMAキュー300は、実アドレス有効ビットを調べ、もしそれがセットされていれば実ページ番号をDMAコマンドの実ページ番号フィールドから抽出して、実ページ番号360をバス・インターフェース・ユニット380に送る。その結果として、MMU320は頻繁にはアクセスされず、そのために全体としてのシステムの性能が向上する。
ロジック310はMMU320に送られる実効アドレス(EA)リクエスト有効315を制御し、それは数個の要素に基づく。第1に、実モードでは、MMU320はどの様な変換も行わないので、EAリクエスト有効315はアサート解除される。第2に、“同期”及び“エイエイオ(eieio)”のようなコマンド・タイプは変換を必要としないので、EAリクエスト有効315はアサート解除されたままである。第3に、この始めの2つの条件が無いとき、ロジック310は、EAリクエスト有効315がアサートされるべきか否かを判定するためにRA有効305を使用する。
ロジック310は、DMAコマンドの実アドレス有効ビットがセットされておらず(上記第3の条件)、従ってアドレス変換を必要とすることを確認すると、ロジック310はEAリクエスト有効315をアクティブ化する。同時に、DMAキュー300はDMAリクエスト308をDMAキュー300からMMU320に送る。MMU320は、対応する実ページ番号を突き止めて新しい実ページ番号350をマルチプレクサ370を通してバス・インターフェース・ユニット380に送り、該マルチプレクサは新しい実ページ番号350を入力として選択する。更に、MMU320は新しい実ページ番号350をDMAキュー300に送り、それをDMAキュー300は後のDMAリクエストのために対応する実ページ番号フィールドにロードする。
もしMMU320がDMAリクエスト308の実効アドレスに対応するエントリを自分のルックアップ・テーブルにおいて確認しなければ、MMU320は、正しいアドレス変換を得るためにメモリにアクセスする。MMUがその変換をメモリからロードするまではコマンドが再発行されないように、該DMAコマンドについてMMU発行依存性がセットされる。MMU発行依存性がクリアすると、DMAコマンドが再発行され、その実効アドレスは“ヒット”を生じさせる。更に詳しくは、図7及び8と、対応するテキストとを参照されたい。
EAリクエスト有効315の状態を決定するために始めの2つの要素(上で論じられた)が存在しないときにRA有効305がアサートされているとロジック310が確認したときには、変換は不要であるので、ロジック310はEAリクエスト有効315をアサートしない。この場合、DMA300は実ページ番号360をマルチプレクサ370を介してBIU380に供給する。
ロールアウト・ロジック330は、DMAリクエスト308とコマンド・パラメータ325とを受け取る。ロールアウト・ロジック330は、転送サイズをデクリメントし、MMU320がアドレス変換に成功したか否かを判定し、ライトバック情報340をDMAキュー300に送り、それをDMAキュー300はDMAコマンドの対応するコマンド・フィールドに格納する(ロールアウト処理に関して、更に詳しくは図7及び対応するテキストを参照されたい)。
図4は、3つの異なる構成に基づく、複数のDMAリクエストとそれらのアドレス変換場所とを示すテーブルである。テーブル400は、図1−3に示されている構成に夫々対応する列420から440までを含む。列420から440までは、DMAコマンドがロールアウトされるときにアドレス変換を提供するためのDMAリクエスト・アクティビティを含む。図4に示されている例は、4KBのデータを転送することを要求するDMAコマンドに対応し、コンピュータ・システムはデータを128バイト・インクリメントで転送する。従って、そのDMAコマンドを実行するために、32個のリクエスト(列410により示される)が必要とされる(128B×32=4KB)。
列420は、図1に示されている実施態様について、DMAキューが32個のリクエストの各々についてメモリ管理ユニットにアクセスすることを示す。列430は、図2に示されている実施態様について、第1リクエストについてはDMAキューがERATにアクセスし、それがMMUにアクセスすることを示す。2番目から32番目のリクエストについては、DMAキューはERATにアクセスし、それはERATのルックアップ・テーブルから実ページ番号を提供するので、MMUはアクセスされない。
列440は、本書に記載されている発明について(図3)、DMAキューが第1リクエストについてMMUにアクセスし、その後は、最初のDMAリクエスト後にDMAキューが実ページ番号をDMAコマンドの対応するDMAコマンド・フィールドに格納するので、2番目から32番目までのリクエストについては自分自身で実ページ番号をバス・インターフェース・ユニットに提供することを示す。
図5は、DMAコマンド及び対応するコマンド・フィールドを有するDMAキューを示す線図である。DMAキュー300は、図3に示されているものと同じであり、特定のDMAコマンドに対応するDMAコマンド・フィールド(列510から560まで)を含む。
列510は、対応するDMAコマンドが有効であるか否かを表すキュー・エントリ有効ビットを含む。DMAコマンドは、対応するデータの全体が転送されるまでは有効であり続ける。例えば、データを128バイト・インクリメントで転送するシステムと128バイト以下のデータを転送することを要求するDMAコマンドとについては、キュー・エントリ有効ビットは1転送の間有効であり続け、その後にリセットされる。他の1つの例では、128バイト・インクリメントでデータを転送するシステムと、512バイトのデータを転送することを要求するDMAコマンドとについては、キュー・エントリ有効ビットは4つの転送がバス・インターフェース・ユニットに対して首尾よく行われるまで(128×4)有効であり続け、その後にキュー・エントリ有効ビットはリセットされる。
列520はDMAコマンド実効アドレスを含み、これは実ページ番号に変換されて列540に格納される。列530は、列540に含まれている実ページ番号が有効であるか否かを表す実アドレス有効ビットを含む。512バイトのデータを転送することを要求するDMAコマンドについての上記の例を用いると、第1転送時にはそのDMAコマンドの実ページ番号フィールドは有効な実ページ番号を持っておらず、従って実アドレス有効ビットはセットされていない。DMAキュー300は、第1転送時に、セットされた実アドレス有効ビットを含むロールアウト・ロジックからのライトバック情報と共に、MMUからの実ページ番号を受け取る。従って、2番目から4番目までの転送の時には、DMAキュー300は、列540に置かれている実ページ番号をバス・インターフェース・ユニットに送り、2番目から4番目までの転送についてはMMUにアクセスしない。
列550は、それがロード・オペレーション又は格納オペレーションであるかなど、DMAコマンドの対応する転送タイプを含む。“同期”及び“eieio”などの、MMUによる変換を必要としない他のコマンドもDMAキューから出ることができる。列560は、DMAコマンド転送サイズ値を含む転送サイズ・フィールドである。転送サイズ値は、対応するDMAコマンドについて、残っている転送されるべきデータの量に対応する。512バイトのデータを転送することを要求するDMAコマンドについての上記の例を用いると、第1転送前には転送サイズ値は512バイトである。第2転送前には、転送サイズ値は384バイト(512B−128B)であり、これはロールアウト・ロジックから受け取られるデクリメントされた転送サイズである(転送サイズをデクリメントすることに関して、更に詳しくは図7及び対応するテキストを参照されたい)。第3転送前には、転送サイズ値は256バイト(384B−128B)である。そして、第4転送前には、転送サイズ値は128バイトである。
DMAキュー300は行570から595までを含み、これらはDMAコマンドに対応する。行570及び595は、対応するDMAコマンドが有効であることを示し(列510)、列540において有効な実アドレス(列530)を含む。行580は、対応するDMAコマンドが有効であることを示すが(列510)列540において有効な実アドレスを含まない(列530)。行590は、対応するDMAコマンドが有効でないことを示し(列510)、列540において有効な実アドレスを含んでいない(列530)。
図6は、DMAコマンドをロールアウトするDMAキューでとられるステップを示す高レベル・フローチャートである。DMAキューは、実ページ番号をバス・インターフェース・ユニット自体に送るか、それともメモリ管理ユニット(MMU)にアドレス変換を実行するように要求するかを決定するためにDMAコマンド・フィールドに含まれる情報を使用する(DMAコマンド・パラメータに関して、更に詳しくは図5及び対応するテキストを参照されたい)。
処理は600から始まり、ステップ605でDMAキューは何時でも発行され得る(例えば依存性無し)DMAコマンドを特定する。DMAコマンドの対応する実アドレス有効ビットがセットされていてDMAコマンドの対応する実ページ番号が有効であることを示しているか否かが判定される(判定610)。
システムが実モードで動作していなくて、コマンドのタイプがアドレス変換を必要とするコマンド・タイプであるとすれば、もしDMAコマンドの対応する実アドレス有効ビットがセットされているならば判定610は“はい”ブランチ612へ分岐し、ステップ650で処理はコマンド・パラメータをロールアウト処理に送る。そのコマンド・パラメータは、実アドレス有効ビット値と、例えば4KBのデータなどの、DMAコマンドがロード又は格納したいデータの量に対応する転送サイズとを含む。ロールアウト処理は、そのコマンド・パラメータを受け取って、転送サイズを転送サイズ許容量だけデクリメントするなど、コマンド・パラメータを適宜に改変する(ロールアウト処理ステップに関して、更に詳しくは図7及び対応するテキストを参照されたい)。
DMAキューは、DMAコマンド・フィールドのうちの1つからDMAコマンドの実ページ番号を抽出し、ステップ660でその実ページ番号をバス・インターフェース・ユニット380に送る。バス・インターフェース・ユニット380は図3に示されているものと同じであり、実ページ番号は、バス・インターフェース・ユニット380に到達する前に、図3に示されているマルチプレクサ370などのマルチプレクサを通過することができる。
ステップ670で、DMAキューはロールアウト処理からライトバック情報を受け取る。ライトバック情報は、実アドレス有効ビットと、上記のデクリメントされた転送サイズとを含む。DMAキューはステップ680で後のDMAリクエストのためにライトバック情報をDMAコマンドの対応するDMAコマンド・フィールドにロードする。
一方、もしDMAコマンドの実アドレス有効ビットがセットされていないとDMAキューが識別したならば、判定610は“いいえ”ブランチ618に分岐して、ステップ620でDMAキューはコマンド・パラメータをロールアウト処理に送る。ステップ625で、DMAキューは変換リクエストをメモリ管理ユニット(MMU)に送り、それはアドレス変換を行う。図3に示されているMMU320のようなMMUは、アドレス変換を行って実ページ番号をバス・インターフェース・ユニット380に送る。MMUは、また、実ページ番号をDMAキューに送り、それをDMAキュー処理はステップ630で受け取る。
1つの実施態様では、実効アドレスに対応するテーブル・エントリをMMUが自分のテーブルにおいて突き止めなかったならば、MMUは“ミス”をロールアウト処理に送ってメモリから変換をフェッチする。変換をロードした後、MMU処理は、対応するコマンドを再発行するようにDMAキューに知らせるために“依存性をクリアする(Clear Dependency)”をDMAキューに送る(MMU処理に関して、更に詳しくは図8及び対応するテキストを参照されたい)。
ステップ640で、DMAキューはライトバック情報をロールアウト処理から受け取り、ステップ645で、DMAキューはライトバック情報と実ページ番号とをDMAコマンド・フィールドにロードする。
DMAコマンドが完了したか否かが判定される(判定690)。もしDMAコマンドが更なるロールアウトを必要とするならば(例えば、キュー・エントリ有効ビットがセットされている)、判定690は“はい”ブランチ692に分岐し、それはループバックしてDMAコマンド処理を続行する。このルーピングはDMAコマンドがロールアウトされるまで続き、その時点で判定690は“いいえ”ブランチ698に分岐して、DMAコマンド処理は699で終了する。
図7は、DMAコマンド転送サイズをデクリメントすること及びライトバック情報をDMAキューに提供することなど、ロールアウト処理でとられるステップを示すフローチャートである。ロールアウト処理は700から始まり、ステップ705でロールアウト処理はDMAキュー処理からコマンド・パラメータを受け取る(DMAキュー処理に関して、更に詳しくは図6及び対応するテキストを参照されたい)。コマンド・パラメータは、実アドレス有効ビットと転送サイズとを含む。
実アドレス有効ビットの状態を調べることによって実ページ番号が有効であるか否かが判定される(判定710)。実アドレス有効ビットがセットされているときには、DMAキューは実ページ番号をバス・インターフェース・ユニットに提供する。実ページ番号がセットされていないときには、DMAキューは、アドレス変換を実行して実ページ番号をバス・インターフェース・ユニットとDMAキューとに提供するようにメモリ管理ユニット(MMU)にリクエストする。
もし実ページ番号が有効であれば、判定710は“はい”ブランチ718に分岐して、処理はメモリ管理ユニット・リクエスト・ステップをバイパスする。一方、もし実ページ番号が有効でなければ、判定710は“いいえ”ブランチ712に分岐して、処理は、DMAリクエストの実効アドレスに対応する実ページ番号をMMUが突き止めたか否かを表すヒット信号又はミス信号をステップ715でMMUから受け取る(MMU処理に関して、更に詳しくは図8及び対応するテキストを参照されたい)。
MMUがアドレス変換を行ったか否かが判定される(判定720)。もしMMUがアドレス変換を行っていなければ、判定720は“いいえ”ブランチ722に分岐して、処理は、その特定の命令がMMUがアドレス変換を行うことに依存するということをDMAキューに知らせるMMU発行依存性ビットをセットする(ステップ725)。後に、MMUがメモリから変換を受け取ったときに、MMUはMMU発行依存性をクリアするためにDMAロジックに信号を送る。MMUミス・クリア信号がMMUから受け取られるまでは、DMAコマンドは再発行されない(更に詳しくは、図8及び対応するテキストを参照されたい)。
一方、もしMMUがアドレス変換を行ったならば、判定720は“はい”ブランチ728に分岐し、処理はステップ730で実アドレス有効ビットをセットし、それは、ロールアウト処理がDMAキュー処理に送るライトバック情報に含められる(下記を参照されたい)。
ステップ735で、処理は、コマンド・パラメータで受け取った(上記ステップ705)転送サイズから許容される最大転送サイズを引くことによってDMAコマンドの転送サイズをデクリメントする。例えば、もし受け取られた転送サイズが384バイトであり、許容される最大転送サイズが128バイトであるならば、デクリメントされた転送サイズは256バイトである。デクリメント後の転送サイズを分析することによって、それ以上のDMAリクエストが必要とされるか否かが判定される(判定740)。すなわち、もしデクリメント後の転送サイズがゼロならば、それ以上のDMAリクエストは不要である。しかし、もし転送サイズがゼロでなければ、DMAコマンドを完了するためにDMAリクエストがもっと必要である。
もしそれ以上のDMAリクエストが不要であれば、判定740は“いいえ”ブランチ742に分岐して、処理は、キュー有効ビットをリセットし、それは、対応するDMAコマンドが完了したので最早有効ではないということを意味する(ステップ745)。一方、もしDMAリクエストがもっと必要であれば、判定740は“はい”ブランチ748に分岐して、処理は、ステップ750で実効アドレスを次のアドレスにインクリメントする。
DMAコマンドがページの終わりに達したか否かが判定される(判定760)。例えば、メモリ構成は4KBインクリメントのページを持ち得る。もし処理がページの終わりに達したならば、判定760は“はい”ブランチ768に分岐して処理はステップ770で実アドレス有効ビットをリセットし、それは、DMAコマンドの次の変換のためにアドレス変換を行うようにMMUにリクエストするようにDMAキューに知らせる。一方、もし処理がページの終わりに達していなければ、判定760は“いいえ”ブランチ762に分岐して、実アドレス有効ビットをリセットするステップをバイパスする。
ステップ780で、ロールアウト処理はライトバック情報をDMAキュー処理に送る。ライトバック情報は、キュー有効ビット、実アドレス有効ビット、及びデクリメントされた転送サイズなど、最近の変更を含む。キュー・エントリ有効ビットを調べることによって、DMAコマンドが更なるDMAリクエストを必要とするか否かが判定される(判定790)。もしキュー・エントリ有効ビットがセットされていれば、判定790は“はい”ブランチ792に分岐し、処理はループバックしてDMAコマンドのためにそれ以上のDMAリクエストを処理する。このルーピングはDMAコマンドが完了するまで続き、その時点で判定790は“いいえ”ブランチ798に分岐し、ロールアウト処理が799で終了する。
図8は、変換リクエストを受け取って実ページ番号をバス・インターフェース・ユニット及びDMAキューに提供するメモリ管理ユニットでとられるステップを示すフローチャートである。本書に記載されている実施態様を用いると、DMAコマンドが有効な実ページ番号をそのDMAコマンド・フィールドのうちの1つに含んでおらず、転送タイプが変換を必要とするものであり、システムが仮想モードで動作している(すなわち、実モードは非アクティブである)ときには、DMAキューはメモリ管理ユニット(MMU)にアクセスする。
MMU処理は800から始まり、ステップ810でMMUはDMAキューからDMAリクエストを受け取る。ステップ820で、処理はDMAリクエストから実効アドレスを抽出する。MMUは、実効アドレスに対応する実ページ番号を突き止めるためにステップ830でMMUテーブル840にアクセスする。MMUテーブル840は、実効アドレスと、対応する実ページ番号とのリストを含む。
実効アドレスに対応するテーブル・エントリをMMUテーブル840が含んでいたか否かが判定される(判定850)。もしMMUがテーブル・エントリを突き止めたならば、判定850は“はい”ブランチ852に分岐し、ステップ855で処理はヒット信号をロールアウト処理に送る(ロールアウト処理に関して、更に詳しくは図7及び対応するテキストを参照されたい)。ステップ860で、MMUは、その突き止められた実ページ番号をバス・インターフェース・ユニット380及びDMAキュー処理に送り、MMU処理は890で終了する。DMAキュー処理は、その実ページ番号を後のDMAリクエストのために使用するために、DMAコマンドと共にその実ページ番号を格納する。バス・インターフェース・ユニット380は、図3に示されているものと同じである。
一方、もしMMUがMMUテーブル840において実効アドレスに対応するテーブル・エントリを突き止めなければ、判定850は“いいえ”ブランチ858に分岐し、処理は“ミス”をロールアウト処理に送って(ステップ870)変換をメモリ・ストア875からフェッチし、それはMMUテーブル840にロードされる。その変換をロードした後、MMU処理は“依存性をクリアする”をステップ885でDMAキューに送り、MMU処理は890で終了する。メモリ・ストア875は、コンピュータ・ハード・ドライブなどの、不揮発性記憶域に格納され得る。
図9は、情報処理システムを示し、それは、本書に記載されている計算オペレーションを実行することのできるコンピュータ・システムの単純化された例である。ブロードバンド・プロセッサ・アーキテクチャ(BPA)900は、単一チップ上の複数の異種プロセッサ(チップ上のシステム(system−on−a−chip))と、共通メモリと、共通バスとを含む。それらの異種プロセッサは、共通メモリ及び共通バスを共有する異なる命令セットを有するプロセッサである。例えば、それらの異種プロセッサのうちの1つはRISC命令セットを使用するPower PC(IBM社の登録商標)であって良く、その他の異種プロセッサはベクトル命令セットを使用する共働処理ユニット(a synergistic processing unit)であって良く、それら両方が同じメモリ空間を共有する。
BPA900は、共働処理ユニット(SPC)910,930、及び950を含む。各SPCは、バス・インターフェース・ユニット(BIU)に結合されたDMAコントローラ(DMAC)に結合されているプロセッサ・コアを含む。SPC910はプロセッサ・コア915、DMAC920、及びBIU925を含む。SPC930はプロセッサ・コア935、DMAC940、及びBIU945を含む。そして、SPC950はプロセッサ・コア955、DMAC960、及びBIU965を含む。
BPA900は処理ユニット975も含み、これはオペレーティング・システム(OS)978を走らせる。例えば、処理ユニット975はBPA900に埋め込まれたPower PC(IBM社の登録商標)コアであり得、OS978はリナックス・オペレーティング・システムであり得る。処理ユニット975は、BPA900のために共通メモリ・マップ・テーブルを管理する。メモリ・マップ・テーブルは、L2メモリ980と、SPC910,930、及び950に含まれる非プライベート・メモリなどの、BPA900に含まれる記憶場所に対応する。
各SPCはデータ情報を処理するために使用され、各SPCは異なる命令セットを持ち得る。例えば、BPA900は無線通信システムで使用され得、各SPCは、変調、チップ・レート処理、符号化、及びネットワーク・インターフェーシングなどの、別々の処理タスクに責任を持ち得る。他の例では、各SPCは、同一の命令セットを持つことができて、並列処理から利益を得るオペレーションを実行するために並列に使用され得る。各SPCは共働処理ユニット(SPU)を含む。SPUは、好ましくは、デジタル・シグナル・プロセッサ、マイクロコントローラ、マイクロプロセッサ、或いはこれらのコアの組み合わせなどの、単一命令多重データ(SIMD)プロセッサである。好ましい実施態様では、各SPUはローカル・メモリと、レジスタと、4つの浮動小数点ユニットと、4つの整数ユニットとを含む。しかし、必要とされる処理パワーにより、もっと多数の或いはもっと少数の浮動小数点ユニット及び整数ユニットが使用され得る。
SPC910,930、及び950はプロセッサ・エレメント・バス970に接続されており、これは制御SPC、処理ユニット975、L2メモリ980、メモリ・コントローラ985、及びI/Oコントローラ990の間で情報を移動させる。メモリ・コントローラ985はデータを格納し検索するために記憶装置988と通信し、I/Oコントローラ990はI/O装置995と通信し、それらは周辺装置である。
図9に記載されているコンピュータ・システムは本書に記載されているプロセスを実行することができるが、このコンピュータ・システムは単にコンピュータ・システムの一例に過ぎない。他の多くのコンピュータ・システム・デザインが本書に記載されているプロセスを実行できることを当業者は認めるであろう。
本発明の好ましいインプリメンテーションの1つはクライアント・アプリケーション、すなわち、例えばコンピュータのランダム・アクセス・メモリに常駐することのできるコード・モジュール内の命令のセット(プログラム・コード)である。コンピュータにより必要とされるまでは、命令のセットは、例えばハード・ディスク・ドライブなどの他のコンピュータ・メモリに、又は光ディスク(最終的にCD ROMで使用される)若しくはフロッピー・ディスク(最終的にフロッピー・ディスク・ドライブで使用される)などの取り外し可能なメモリに格納され、或いはインターネット又は他のコンピュータ・ネットワークを介してダウンロードされ得る。従って、本発明は、コンピュータで使用されるコンピュータ・プログラム製品として実現され得る。更に、上記の種々の方法はソフトウェアにより選択的に起動され或いは再設定される汎用コンピュータにおいて便利に実行されるけれども、それらの方法がハードウェアで、ファームウェアで、或いは、所要の方法ステップを実行するように構成された専用装置で実行され得ることも当業者は認めるであろう。
本発明の特定の実施態様が図示され記述されたけれども、本書の教示に基づいて本発明とその広い諸側面から逸脱すること無く変更及び改変をなし得ることは当業者にとっては明らかであろう。従って、添付されている請求項は、本発明の真の範囲内にあるような全ての変更及び改変をその範囲内に含むべきものである。更に、本発明が添付されている請求項によってのみ定義されることが理解されなければならない。導入された請求項要素の特定の個数が意図されている場合には、そのような意図は請求項において明示的に記述され、そしてそのような記述が無い場合にはその様な限定は存在しないということが当業者に理解されるであろう。理解を助ける非限定的な例を挙げると、添付されている請求項は、請求項要素を導入するために“少なくとも1つ”及び“1つ以上”という前置きの句を含んでいる。
実効アドレスを実ページ番号に変換するメモリ管理ユニット(MMU)を示す線図である。 実効アドレス実アドレス変換器(ERAT)と、アドレス変換を実行するメモリ管理ユニット(MMU)とを示す線図である。 MMUから実ページ番号を受け取って、その実ページ番号を、後のDMAリクエストでの使用のために対応するDMAコマンド・フィールドに格納するDMAキューを示す線図である。 複数のDMAリクエストと、3つの異なる構成に基づいてアドレス変換がどの様に行われるかとを示すテーブルである。 DMAコマンド及び対応するコマンド・フィールドを有するDMAキューを示す線図である。 DMAコマンドを送出或いは発行するときに行われるステップを示す高レベル・フローチャートである。 DMAコマンド転送サイズをデクリメントすること及びライトバック情報をDMAキューに提供することなどの、ロールアウト処理時に行われるステップを示すフローチャートである。 変換リクエストを受け取って実ページ番号をバス・インターフェース・ユニット及びDMAキューに提供するメモリ管理ユニットにおいて行われるステップを示すフローチャートである。 本書に記載されている計算オペレーションを実行することのできるコンピュータ・システムの単純化された例である情報処理システムを示す。

Claims (23)

  1. 複数のDMAコマンド・フィールドを含むDMAコマンドをDMAキューにおいて選択するステップと、
    前記DMAコマンド・フィールドのうちの1つに含まれている実ページ番号が有効であるか否かを判定するステップと、
    前記実ページ番号が有効であると判定したことに応答して、前記DMAコマンドを処理するために前記実ページ番号を前記DMAキューから提供するステップと、
    を含む、コンピュータにより実行される方法。
  2. 前記複数のDMAコマンド・フィールドのうちの1つに含まれている、前記実ページ番号が有効であるか否かを表す実アドレス有効ビットを調べるステップと、
    前記実ページ番号が有効でないと判定したことに応答して、変換リクエストをメモリ管理ユニットに送るステップと、
    前記DMAコマンドを処理するために新しい実ページ番号を前記メモリ管理ユニットから提供するステップと、
    を更に含む、請求項1の方法。
  3. もし前記実ページ番号が有効ならば前記実ページ番号を選択し、もし前記実ページ番号が有効でなければ前記新しい実ページ番号を選択するようにマルチプレクサを設定するステップを更に含む、請求項2の方法。
  4. 前記メモリ管理ユニットが前記変換リクエストに対応する新しい実ページ番号を突き止めたか否かを判定するステップと、
    前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して、前記新しい実ページ番号を前記複数のDMAコマンド・フィールドのうちの1つに格納するステップと、
    前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して前記実アドレス有効ビットをセットするステップと、
    を更に含む、請求項2の方法。
  5. デクリメントされた転送サイズと前記実ページ番号とを含むライトバック情報を受け取るステップと、
    前記ライトバック情報を前記複数のDMAコマンド・フィールドに格納するステップと、
    を更に含む、請求項1の方法。
  6. 前記複数のDMAコマンド・フィールドのうちの1つに含まれている転送サイズを確認するステップと、
    対応するDMAコマンドのために転送されるデータの量に対応する最大転送サイズ許容値を検出するステップと、
    前記最大転送サイズ許容値を前記転送サイズから引いて前記デクリメントされた転送サイズをもたらすステップと、
    を更に含む、請求項5の方法。
  7. 前記デクリメントされた転送サイズに基づいて、前記DMAコマンドに対応するそれ以上のDMAリクエストが不要であることを確認するステップと、
    前記DMAコマンドに対応するそれ以上のDMAリクエストが不要であることを確認したことに応答して前記複数のDMAコマンド・フィールドのうちの1つに含まれているキュー・エントリ有効ビットをリセットするステップと、
    を更に含む、請求項6の方法。
  8. 前記引くステップの後に、前記DMAコマンドに対応する実効アドレスをインクリメントするステップと、
    インクリメントされた前記実効アドレスに基づいてページの終わりに達したか否かを判定するステップと、
    前記ページの終わりに達したと判定したことに応答して前記複数のDMAコマンド・フィールドのうちの1つに含まれている実アドレス有効ビットをリセットするステップと、
    を更に含む、請求項6の方法。
  9. 前記複数のDMAコマンド・フィールドのうちの少なくとも1つは、キュー・エントリ有効ビット・フィールド、実アドレス有効ビット・フィールド、及び実ページ番号フィールドから成るグループから選択される、請求項1の方法。
  10. 前記方法はブロードバンド・プロセッサ・アーキテクチャを用いて実行され、前記ブロードバンド・プロセッサ・アーキテクチャは複数の異種プロセッサと、共通メモリと、共通バスとを含み、
    前記複数の異種プロセッサは、異なる命令セットを使用し、前記共通メモリ及び前記共通バスを共有する、
    請求項1の方法。
  11. 前記ブロードバンド・プロセッサ・アーキテクチャはチップ上のシステム(a system−on−a−chip)である、請求項10の方法。
  12. 1つ以上のプロセッサと、
    前記プロセッサによりアクセスされ得るメモリと、
    前記プロセッサによりアクセスされ得る1つ以上の不揮発性記憶装置と、
    DMAコマンドを処理するためのDMAコマンド・ツールと、
    を含む情報処理システムであって、
    前記DMAコマンド・ツールは、
    前記メモリに含まれるDMAキューにおいて、複数のDMAコマンド・フィールドを含むDMAコマンドを選択し、
    前記DMAコマンド・フィールドのうちの1つに含まれている実ページ番号が有効であるか否かを判定し、
    前記実ページ番号が有効であると判定したことに応答して、前記DMAコマンドを処理するために前記実ページ番号を前記DMAキューから提供することができる、前記情報処理システム。
  13. 前記DMAコマンド・ツールは、更に、
    前記メモリに含まれている、前記実ページ番号が有効であるか否かを表す実アドレス有効ビットを調べ、
    前記実ページ番号が有効でないと判定したことに応答して、変換リクエストをメモリ管理ユニットに送り、
    前記DMAコマンドを処理するために新しい実ページ番号を前記メモリ管理ユニットから提供し、
    もし前記実ページ番号が有効ならば前記実ページ番号を選択し、もし前記実ページ番号が有効でなければ前記新しい実ページ番号を選択するようにマルチプレクサを設定することができる、
    請求項12の情報処理システム。
  14. 前記DMAコマンド・ツールは、更に、
    前記メモリ管理ユニットが前記変換リクエストに対応する新しい実ページ番号を突き止めたか否かを判定し、
    前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して、前記新しい実ページ番号を前記メモリに含まれている前記複数のDMAコマンド・フィールドのうちの1つに格納し、
    前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して前記複数のDMAコマンド・フィールドのうちの1つに含まれる前記実アドレス有効ビットをセットすることができる、
    請求項13の情報処理システム。
  15. 前記DMAコマンド・ツールは、更に、
    デクリメントされた転送サイズと前記実ページ番号とを含むライトバック情報を受け取り、
    前記ライトバック情報を前記メモリに含まれている前記複数のDMAコマンド・フィールドに格納することができる、
    請求項12の情報処理システム。
  16. 前記DMAコマンド・ツールは、更に、
    前記複数のDMAコマンド・フィールドのうちの1つに含まれている転送サイズを確認し、
    対応するDMAコマンドのために転送されるデータの量に対応する最大転送サイズ許容値を検出し、
    前記最大転送サイズ許容値を前記転送サイズから引いて前記デクリメントされた転送サイズをもたらし、
    前記デクリメントされた転送サイズに基づいて、前記DMAコマンドに対応するそれ以上のDMAリクエストが不要であることを確認し、
    前記DMAコマンドに対応するそれ以上のDMAリクエストが不要であることを確認したことに応答して前記複数のDMAコマンド・フィールドのうちの1つに含まれているキュー・エントリ有効ビットをリセットすることができる、
    請求項15の情報処理システム。
  17. 前記情報処理システムはブロードバンド・プロセッサ・アーキテクチャであり、前記ブロードバンド・プロセッサ・アーキテクチャは複数の異種プロセッサと、共通メモリと、共通バスとを含み、前記複数の異種プロセッサは、異なる命令セットを使用し、前記共通メモリ及び前記共通バスを共有する、請求項12の情報処理システム。
  18. 前記情報処理システムはチップ上のシステム(a system−on−a−chip)である、請求項12の情報処理システム。
  19. 前記情報処理システムは、ゲーム機、ノートブック・コンピュータ、パーソナル・コンピュータ、及びハンドヘルド装置から成るグループから選択されたシステムに含まれる、請求項12の情報処理システム。
  20. コンピュータ可読コードを有するコンピュータ操作可能な媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ可読コードは、
    DMAキューにおいて、複数のDMAコマンド・フィールドを含むDMAコマンドを選択し、
    前記DMAコマンド・フィールドのうちの1つに含まれている実ページ番号が有効であるか否かを判定し、
    前記実ページ番号が有効であると判定したことに応答して、前記DMAコマンドを処理するために前記実ページ番号を前記DMAキューから提供することができる、
    前記コンピュータ・プログラム製品。
  21. 前記コンピュータ可読コードは、更に、
    前記実ページ番号が有効であるか否かを表す実アドレス有効ビットを調べ、
    前記実ページ番号が有効でないと判定したことに応答して、変換リクエストをメモリ管理ユニットに送り、
    前記DMAコマンドを処理するために新しい実ページ番号を前記メモリ管理ユニットから提供し、
    もし前記実ページ番号が有効ならば前記実ページ番号を選択し、もし前記実ページ番号が有効でなければ前記新しい実ページ番号を選択するようにマルチプレクサを設定することができる、
    請求項20のコンピュータ・プログラム製品。
  22. 前記コンピュータ可読コードは、更に、
    前記メモリ管理ユニットが前記変換リクエストに対応する新しい実ページ番号を突き止めたか否かを判定し、
    前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して、前記新しい実ページ番号を前記複数のDMAコマンド・フィールドのうちの1つに格納し、
    前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して前記複数のDMAコマンド・フィールドのうちの1つに含まれる前記実アドレス有効ビットをセットすることができる、
    請求項21のコンピュータ・プログラム製品。
  23. 前記コンピュータ可読コードは、更に、
    デクリメントされた転送サイズと前記実ページ番号とを含むライトバック情報を受け取り、
    前記ライトバック情報を前記複数のDMAコマンド・フィールドに格納することができる、
    請求項20のコンピュータ・プログラム製品。
JP2008533979A 2005-10-07 2006-09-27 改良されたdmac変換メカニズムのためのシステム及び方法 Active JP5039889B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/246,585 US7644198B2 (en) 2005-10-07 2005-10-07 DMAC translation mechanism
US11/246,585 2005-10-07
PCT/EP2006/066806 WO2007042400A1 (en) 2005-10-07 2006-09-27 System and method for improved dmac translation mechanism

Publications (2)

Publication Number Publication Date
JP2009512919A true JP2009512919A (ja) 2009-03-26
JP5039889B2 JP5039889B2 (ja) 2012-10-03

Family

ID=37700756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008533979A Active JP5039889B2 (ja) 2005-10-07 2006-09-27 改良されたdmac変換メカニズムのためのシステム及び方法

Country Status (5)

Country Link
US (1) US7644198B2 (ja)
EP (1) EP1934763B1 (ja)
JP (1) JP5039889B2 (ja)
CN (1) CN101278269B (ja)
WO (1) WO2007042400A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013058018A (ja) * 2011-09-07 2013-03-28 Toshiba Corp リモートアクセスシステム、電子機器およびリモートアクセス処理方法
JP2019032859A (ja) * 2011-04-01 2019-02-28 インテル コーポレイション 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490177B2 (en) * 2006-01-23 2009-02-10 Infineon Technologies Ag System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture
JP4908017B2 (ja) * 2006-02-28 2012-04-04 富士通株式会社 Dmaデータ転送装置及びdmaデータ転送方法
US7716389B1 (en) * 2006-03-17 2010-05-11 Bitmicro Networks, Inc. Direct memory access controller with encryption and decryption for non-blocking high bandwidth I/O transactions
US8165301B1 (en) 2006-04-04 2012-04-24 Bitmicro Networks, Inc. Input-output device and storage controller handshake protocol using key exchange for data security
US7984229B2 (en) * 2007-03-09 2011-07-19 Freescale Semiconductor, Inc. Pipelined tag and information array access with speculative retrieval of tag that corresponds to information access
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US9135190B1 (en) 2009-09-04 2015-09-15 Bitmicro Networks, Inc. Multi-profile memory controller for computing devices
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
KR20120083160A (ko) 2011-01-17 2012-07-25 삼성전자주식회사 메모리 관리 유닛, 이를 포함하는 장치들, 및 이의 동작 방법
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
CN110007869B (zh) * 2019-04-12 2020-06-30 苏州浪潮智能科技有限公司 一种内存数据拷贝方法、装置、设备及计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63245545A (ja) * 1987-03-31 1988-10-12 Toshiba Corp Dma方式
JPH0436852A (ja) * 1990-05-31 1992-02-06 Nec Home Electron Ltd Dma制御装置
JPH05216809A (ja) * 1992-02-06 1993-08-27 Nec Corp Dma転送方式
JPH1049481A (ja) * 1996-08-05 1998-02-20 Fujitsu Ltd 情報処理装置及びそのデータ転送方法
JPH11184797A (ja) * 1997-12-18 1999-07-09 Nec Eng Ltd Dma制御装置及びその制御方法並びにその制御プログラムを記録した記録媒体

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930008050B1 (ko) * 1990-02-16 1993-08-25 가부시끼가이샤 히다찌세이사꾸쇼 원칩 마이크로프로세서 및 그 버스시스템
EP0447145B1 (en) * 1990-03-12 2000-07-12 Hewlett-Packard Company User scheduled direct memory access using virtual addresses
US6128669A (en) * 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor
US6070200A (en) * 1998-06-02 2000-05-30 Adaptec, Inc. Host adapter having paged data buffers for continuously transferring data between a system bus and a peripheral bus
US6611883B1 (en) * 2000-11-16 2003-08-26 Sun Microsystems, Inc. Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6918023B2 (en) * 2002-09-30 2005-07-12 International Business Machines Corporation Method, system, and computer program product for invalidating pretranslations for dynamic memory removal
US7359381B2 (en) * 2004-01-30 2008-04-15 Hewlett-Packard Development Company, L.P. Parallel hardware arrangement for correlating an external transport address pair with a local endpoint association
US7657667B2 (en) * 2004-03-25 2010-02-02 International Business Machines Corporation Method to provide cache management commands for a DMA controller
US8006001B2 (en) * 2004-09-22 2011-08-23 Lsi Corporation Method and apparatus for manipulating direct memory access transfers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63245545A (ja) * 1987-03-31 1988-10-12 Toshiba Corp Dma方式
JPH0436852A (ja) * 1990-05-31 1992-02-06 Nec Home Electron Ltd Dma制御装置
JPH05216809A (ja) * 1992-02-06 1993-08-27 Nec Corp Dma転送方式
JPH1049481A (ja) * 1996-08-05 1998-02-20 Fujitsu Ltd 情報処理装置及びそのデータ転送方法
JPH11184797A (ja) * 1997-12-18 1999-07-09 Nec Eng Ltd Dma制御装置及びその制御方法並びにその制御プログラムを記録した記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019032859A (ja) * 2011-04-01 2019-02-28 インテル コーポレイション 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法
JP2013058018A (ja) * 2011-09-07 2013-03-28 Toshiba Corp リモートアクセスシステム、電子機器およびリモートアクセス処理方法
US9037629B2 (en) 2011-09-07 2015-05-19 Kabushiki Kaisha Toshiba Remote access system, electronic apparatus and method of processing remote access

Also Published As

Publication number Publication date
WO2007042400A1 (en) 2007-04-19
EP1934763A1 (en) 2008-06-25
EP1934763B1 (en) 2012-09-19
JP5039889B2 (ja) 2012-10-03
US7644198B2 (en) 2010-01-05
CN101278269A (zh) 2008-10-01
CN101278269B (zh) 2011-08-10
US20070083680A1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
JP5039889B2 (ja) 改良されたdmac変換メカニズムのためのシステム及び方法
US7752350B2 (en) System and method for efficient implementation of software-managed cache
TWI317478B (en) Hard disk drive cache memory and playback device
JP5709988B2 (ja) メモリデバイスの消費電力を減らす方法およびシステム
US11586441B2 (en) Method and apparatus for virtualizing the micro-op cache
US6401192B1 (en) Apparatus for software initiated prefetch and method therefor
US6138208A (en) Multiple level cache memory with overlapped L1 and L2 memory access
US7600097B1 (en) Detecting raw hazards in an object-addressed memory hierarchy by comparing an object identifier and offset for a load instruction to object identifiers and offsets in a store queue
US20090132749A1 (en) Cache memory system
JPH10187533A (ja) キャッシュシステム、プロセッサ及びプロセッサを動作させる方法
JPH1055307A (ja) コンピュータ・システム
US7398383B2 (en) Method and system for using internal FIFO RAM to improve system boot times
US20120324195A1 (en) Allocation of preset cache lines
US6629206B1 (en) Set-associative cache-management using parallel reads and serial reads initiated during a wait state
US6446143B1 (en) Methods and apparatus for minimizing the impact of excessive instruction retrieval
US20080065855A1 (en) DMAC Address Translation Miss Handling Mechanism
US8661169B2 (en) Copying data to a cache using direct memory access
US6389527B1 (en) Microprocessor allowing simultaneous instruction execution and DMA transfer
US10606756B2 (en) Impeding malicious observation of CPU cache operations
JP2007207249A (ja) ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ
US7203811B2 (en) Non-fenced list DMA command mechanism
US9645825B2 (en) Instruction cache with access locking
JP3045959B2 (ja) スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置
JPS6237752A (ja) 別々の命令及びデ−タインタ−フエ−ス及びキヤツシユを持つたマイクロプロセサを有するマルチプルバスシステム
US20070226479A1 (en) Determining coherency between a non-volatile memory and a system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20101217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20101217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110304

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111227

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120110

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: 20120410

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120426

R150 Certificate of patent or registration of utility model

Ref document number: 5039889

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3