JPH09146904A - アドレス空間共有システム - Google Patents
アドレス空間共有システムInfo
- Publication number
- JPH09146904A JPH09146904A JP7310174A JP31017495A JPH09146904A JP H09146904 A JPH09146904 A JP H09146904A JP 7310174 A JP7310174 A JP 7310174A JP 31017495 A JP31017495 A JP 31017495A JP H09146904 A JPH09146904 A JP H09146904A
- Authority
- JP
- Japan
- Prior art keywords
- address
- space
- stack
- thread
- address space
- 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
Landscapes
- Multi Processors (AREA)
Abstract
分散処理システム等におけるアドレス空間共有システム
に関し,実行中の任意のスレッド(プロセス)を他のプ
ロセッサに移動させる場合に生じるアドレス衝突の問題
を回避し,ローカル・メモリ空間を有効に利用できるよ
うにすることを目的とする。 【解決手段】各プロセッサ11,11'のアドレス空間を,複
数のスレッドが共有する空間と,スタック等のスレッド
間で共有しない空間とに分割する。各プロセッサ10,10'
にCPUアドレス/論理アドレス変換回路12,12'を設
け,後者の非共有空間へのアクセスの場合には,そのア
クセス要求アドレスにベース・レジスタ15の値を加えて
アドレス変換を行うことにより,スタック等のアドレス
空間を相対化して任意に平行移動できるようにする。
Description
が協調して処理を進める並列分散処理システムにおい
て,複数のプロセッサまたはスレッドがアドレス空間を
共有して動作するアドレス空間共有システムに関する。
複雑さおよび並列処理のためのプログラミングの困難さ
から一部の専門家の独占物となってしまっているが,単
一のCPUによる処理のボトルネックが顕在化している
現在,一般の計算機ユーザにも容易で高性能な並列処理
を可能とする環境の提供が急務となっている。
調して処理を進める並列処理分散システム,特に,LA
N,WAN環境でヘテロジーニァスな複数のプロセッサ
を1クラスタとして協調させながら一つのタスクを並列
分散処理させるようなシステム環境が考えられている。
このような並列処理環境を一般ユーザに提供する際に問
題となるのは,簡易性と習得のし易さとであるが,これ
は性能との間にトレードオフの関係を生ずる。
をかなりの程度犠牲にするか,または簡易性のために大
幅な性能の低下を甘受せざるを得ない。性能に関し,プ
ロセッサ間のデータ転送の遅延とスループットが問題に
なるが,これは,本質的にはデータ転送の遅延の問題に
還元できる。並列度の高い計算では,転送するデータの
単位が小さく,転送量に関係のない転送回数だけに依存
する遅延が主だからである。転送回数に依存する遅延を
全体として減らすためには,転送するデータをある程度
バッファに蓄積しておいて,まとめて一度に転送する必
要があるが,このバッファの大きさをどの程度にすると
最適であるのかは,因子が複雑に絡み合っているため,
事実上実験してみないことには分からない。
は,それを並列実行の単位に分割しなければならない。
しかし,より小さな単位に分割すればそれだけ多くのC
PUが利用可能になる代わりに,実行の単位が小さくな
ることによる同期のオーバヘッド,コンテキスト・スイ
ッチの増加によるオーバヘッド,データの遅延,データ
転送量の増加,メモリのフラグメンテーションによるペ
ージングの増加等を招くことになり,ここでもまた,ト
レードオフを生じる。
ログラムの高速化,大規模化のメリットを享受できるよ
うにすることが望まれているが,現状では,ある程度の
性能を得るためには,エンドユーザにもエキスパート・
ユーザの持つ並列処理の煩雑なノウハウを獲得してプロ
グラムのチューニングをしてもらわなければならないと
いう矛盾に直面する。
理のための高級言語,例えば,手続き型として,Occ
am(A.Burns, PROGRAMMING IN occam 2, Addison-Wes
ley,1988), HPF(High Performance Fortran Foru
m, High Performance FortranLanguage Specification,
1994),関数型として,CLEAN(R.Plasmeijer and
M.van Eekelen, Functional Programming and Paralle
l Graph Rewriting, Addison-Wesley,1993),論理型と
して,PARLOG(T.Conlon, Programmingin PARLO
G, Addison-Wesley,1989)のような高級言語が開発され
ている。
ースとして,例えばPVM(A.Geist,A.Beguelin,J.Don
garra,W.Jiang,R.Manchek and V.Sunderam, PVM:Parall
el Virtual Machine - A Users' Guide and Tutorial f
or Networked Parallel Computing -, MIT press,1994
),MPI(Message Passing Interface Forum, MPI:
A Message-Passing Interface Standard, May 5,199
4)が開発されている。
か,性能を出すためにはエキスパート並みのノウハウが
必要であり,また,高レベルのライブラリは,未だにエ
ンドユーザが使えるようなレベルに達していない。
ベルの手続き型の逐次言語と並列処理のための命令言語
を組み合わせる方法(I.Foster, R.Olson and S.Tueck
e, Productive Parallel Programming, Scientific Pro
gramming, Vol.1,pp.51-66, 1992; L.A.Crowl and T.J.
LeBlanc, Parallel Programming with Control Abstrac
tion, ACM Transactions on Programming Languages an
d Systems, Vol.16,No.3,pp.524-576, 1994)が提案さ
れている。
ドユーザであるのではなく,逐次処理のエキスパートで
あるが並列処理に関しては比較的エンドユーザに近い人
を対象として,低レベルの逐次言語のチューニングと並
列処理のチューニングとを分離し,並列処理のインタフ
ェース部分だけに簡易で画一化されたチューニング・ス
タイルを導入するものである。
え方にもとづくものであるが,並列処理インタフェース
部分のさらなる画一化とエキスパート・ユーザのための
汎用性とを推進し,逐次処理部分とのインタフェースに
柔軟性を持たせるために,全体を手続き型言語の意味論
で統一することを図っている。
ムのもとでの,ネットワーク上のワークステーション
群,あるいは専用のマルチCPUの並列計算機上で並列
プログラムを実行するとき,共有メモリ機構(仮想共有
メモリ機構を含む。以下同様。)を使用して全てのCP
Uに共有するアドレス空間(実アドレス空間または論理
アドレス空間)を構成する方法は,単一のCPUを使用
したプログラミングに最も近い並列プログラミングを可
能とする方法として知られている。また,スタックその
他,各種のバッファ等のアドレス空間は,他のCPUと
共有させる必要はないので,全てのアドレス空間を共有
させるのではなく,アドレス空間の一部を各CPUにロ
ーカルになるようにする方法もある。
ッドと呼ばれる計算主体が,それぞれ共有するアドレス
空間の中で,ときに同期を取りながら相互に並列に処理
を進めるものである。各スレッドは,自分専用のスタッ
クを使用し,他のスレッドと共有するアドレス空間上
で,CPUを排他的に使用して処理を進める。すなわ
ち,スレッドは,自分専用のデータ領域あるいは一時的
なデータをスタック上に確保してCPUの演算に使用し
たり,他のスレッドにCPU使用権を明け渡す時にCP
Uのレジスタの中身を自分のスタック上に退避し,次に
CPU使用権が自分に明け渡された時に,退避しておい
たレジスタの中身を元に戻すことにより,スレッド毎の
CPUの状態の一貫性を保持する。
の専用空間の集まりであるのに,全てのCPUで共有さ
れてしまうと,あるCPUのスレッドが使用しているた
めに他のCPUには自分で使えないメモリのアドレス空
間が多くできてしまうという問題が生じる。
を置く方式の場合でも,スレッドを他のCPUに移動さ
せるときに,前と同じアドレス空間にスタックを配置し
なければならないので,スレッドが移動可能である場合
には,実際上,スタックを(仮想)共有アドレスに配置
しなければならず,アドレス空間の利用効率が悪くなっ
てしまう。
ある。図5(A)に示すように,CPUiで実行してい
たスレッドAを他のCPUjに移動させて,CPUj上
でスレッドAの実行を継続する場合,CPUjのアドレ
ス空間においても,CPUiのアドレス空間のスレッド
A用スタックと同じ位置にスタックを配置する必要があ
る。しかし,すでに他のスレッドC用スタックがその位
置にある場合には,アドレスの衝突が生じるので,スレ
ッドの移動が不可となる。
図5(B)に示すように,あらかじめスタックのアドレ
ス空間に全てのスレッド用のスタックが重なることのな
いように,領域をリザーブしておく必要が生じ,アドレ
ス空間という重要な資源を無駄に使用することになって
しまう。
モリ・システムにおいて,スレッドまたはプロセスが移
動しても,スタック等のアドレス衝突が起きないように
し,これによってアドレス空間の有効利用を可能にする
ことを目的とする。
間を共有空間と他のCPUに共有されないローカル・ア
ドレス空間に分け,さらにローカル・アドレス空間中に
スタック・アドレス専用のスタック空間を構成する。そ
して,CPUからのスタック空間以外のアドレスへのメ
モリアクセスに対してはアドレス変換を行わず,スタッ
ク空間のアドレスのメモリへのアクセスに限り,自動的
にアドレスを原点からのオフセットに変換して,専用の
レジスタ(スタック・ベース・レジスタ:sbr)の中
身を足し合わせるようにする。
例えば,図1(A)に示すように,ネットワーク10で
結合された複数のプロセッサ11,11’上でプロセッ
サ使用権を得る計算主体である複数のスレッド13a〜
13dが動作するシステムにおいて,各プロセッサ1
1,11’のメモリのアドレス空間を,複数のスレッド
が共有する第1のアドレス空間と,スレッド間で共有し
ない第2のアドレス空間とに分割して構成する。なお,
ここでは,プロセッサ使用権を得る計算主体をスレッド
として説明するが,この計算主体がプロセスであって
も,本発明を同様に適用することができる。
メモリにアクセスする際に指定したアドレス(これをC
PUアドレスという)の一部を,他のアドレス(これを
論理アドレスという)に変換するCPUアドレス/論理
アドレス変換回路12,12’を備える。
2,12’は,例えば図1(B)に示すような,空間判
別回路14,ベース・レジスタ15,加算回路16,ア
ドレスレジスタ17からなる回路である。
リアクセス要求が,アドレス空間中の共有アドレス空間
(例えばスタック空間以外の空間)に対するものである
か,またはスレッド間で共有しないアドレス空間(例え
ばスタック空間)に対するものであるかを判別する回路
である。
有しない空間を相対アドレス空間とするためのベース・
アドレスを保持する手段であって,例えばスレッドごと
のスタックのオフセット値であるスタック・ベース・ア
ドレスを保持する。加算回路16は,アクセス要求がス
タック空間等のスレッド間で共有しない空間に対するも
のである場合に,ベース・レジスタ15に保持したベー
ス・アドレスを,アクセス要求のアドレスに加算する回
路である。
がスタック空間等の非共有空間を示すとき,加算回路1
6でベース・アドレスを加算したアドレスを保持し,ま
たCPUアドレスが共有空間を示す場合には,そのCP
Uアドレスをそのまま保持し,それを論理アドレスとし
て出力する。
路12,12’によって,図1(C)に示すように,C
PUアドレス空間での各スレッドのスタック空間の位置
は,論理アドレス空間ではアドレスの原点からベース・
レジスタ15の値sbrが加算された位置へ移動可能と
なり,アドレスの衝突を回避することが可能となる。
高性能な実行環境を提供するために,例えばネットワー
ク化されたヘテロジーニァスなクラスタ上で,実行中の
任意のスレッド(またはプロセス)を適度に移動(マイ
グレート)させながら全体の処理を進めることを可能に
することと,ネットワーク上のプロセス間を高速なスト
リーム通信で結び付けることを実現する。
っている時間にCPUを他のプロセスの処理に割り当て
ることで,CPUの利用効率を上げると共に他のプロセ
スの実行による通信をも時間的にオーバラップさせて全
体として平均した場合の通信のレイテンシを低下させる
ことを可能とするシステムの提供を図る。
での柔軟な対応のために計算機に依存しない仮想コード
(中間コード)方式を採用するとともに,さらに,任意
の時点でのスレッド(プロセス)・マイグレーションを
可能とするために仮想共有メモリ機構を採用する。
プリタとをネットワーク上に複数分散配置して,仮想共
有メモリ上のリモート・メモリへのアクセスを高速な通
信に変換しながら処理を進める。
送することもできるが,仮想コードを予め各サーバに保
持させて,移動の度の転送を不要とすることもできる。
他のCPUのヒープ領域へのアクセスは,プロセスの実
行中に毎回トラップしてその都度データをセル単位で転
送する。したがって,この場合には,スレッドの移動時
に仮想コードとヒープ領域のデータを転送する必要がな
く,プロセスのスタック領域と仮想コードのインタプリ
タが使用する数個のレジスタの中身だけを転送すればよ
い。
れば移動時に転送する必要はないが,スタックにアクセ
スできるのは,それを使用して処理を進めるプロセスだ
けであるので,仮想共有メモリを使用すると全てのサー
バ上にメモリ空間をリザーブしてしまい,全サーバで利
用可能なローカル・メモリ量が小さくなってしまう。ま
た,仮想共有メモリのオーバヘッドもあるため効率が低
下してしまう。
とするためには,仮想コードをネットワーク上でポジシ
ョン・インデペンダントにしておく必要がある。そのた
めには,仮想コードに表れる全てのメモリ・アドレスを
仮想的に全ての計算機で共有させることが必要である。
オペレーティング・システム(OS)のレベルでサポー
トするためには,大掛かりな仕組みの仮想共有メモリ
(D.Lenoski,J.Laudon,K.Gharachorloo,A.Gupta,J.Henn
essy, The Directory-Based Cache Coherent Protocol
for the DASH multiprocessor, IEEE Proceedings of t
he 17th Annual International Symposium on Computer
Architecture, pp.148-159, 1990)を採用しなければな
らない。
スタックを移動できるようにするために,仮想コードの
設計時に,仮想スタック・アドレス空間を仮想コードの
内部レジスタであるスタック・ベース・レジスタ(sb
r)を用いて相対アドレス化する。つまり,実際の計算
機上では任意の時点でスタックの中身を別のアドレスに
コピーし,そのアドレスの先頭をスタック・ベース・レ
ジスタにセットすることにより,矛盾なく実行が継続で
きるようにする。
で最初のプロセスが動き出す直前にリザーブされたメモ
リ空間にオンデマンドで全体を一度にコピーすればよ
い。他のライトを伴うメモリ空間およびヒープ領域は,
セルという可変長のライト・ワンスのメモリ単位で管理
し,この限定されたセルへのアクセスに関してのみ仮想
共有メモリを構築している。
するメモリ空間,プロセスのスタック空間,ストリーム
のバッファ等はすべてローカルな計算機上に取ることが
できるので,仮想共有メモリが扱わなければならない対
象であるセル空間はかなり小さい。しかも,セルは,ラ
イト・ワンスなので,セル・データのキャッシュのコヒ
ーレンスを保つ仕組みが省略でき,一度作られたセルの
キャッシュを恒久的なローカルなデータとして,キャッ
シュのコヒーレンスを保つ仕組みのコストなしに保持す
ることができる。これにより,仮想共有メモリ機構を用
いることによるオーバヘッドを減少させることができ
る。
リ機構が使用する論理アドレスに変換する処理を説明す
る図である。図2において,スタック空間以外のCPU
アドレスxであるAは,そのまま論理アドレスxのA’
に変換され,スタック空間のCPUアドレスであるB
は,一旦,原点からのオフセットyに変換された後,ス
タック・ベース・レジスタ(sbr)の値を足され,論
理アドレス(sbr+y)に変換される。
CPUレベルで実装するため,あらかじめアドレス変換
のために最適化したアルゴリズムまたは回路を作り込む
ことができ,プログラムのレベルで明示的にアドレス変
換を施す場合に比べ,非常に高速で,これによるオーバ
ヘッドを非常に小さくすることができる。
を払うことにより,CPUの数が増加すればするほど,
CPUが有効に使用することができるアドレス空間を全
体的に見て大きくすることができるというスケーラビリ
ティを確保できる。
ットワーク上の複数のワークステーション(プロセッサ
30,30’,…)で並列計算させるための言語を作
り,そのインタプリタ用に本方式のスタック・ベース・
レジスタを持つ仮想コードを設計し,それを実現してい
る。この言語は,任意のスレッドが任意の時点で他のプ
ロセッサに移動することが可能であるように設計されて
いる。
レッド・スケジューラ33,33’は,プロセッサ間で
通信を行いながら,各スレッドの実行制御およびプロセ
ッサ間の移動制御を行う手段である。スレッド・スケジ
ューラ33,33’が管理するスレッド制御テーブル3
4,34’には,各スレッドの実行に関する制御情報と
して,例えば,スレッドを識別するスレッドID,スレ
ッド実行時間,スレッド実行権,そのスレッドが割り当
てられているプロセッサ(CPU)番号,どのようなと
きにスレッドのマイグレーションを行うかについての移
動条件,スタック・ベース・レジスタ(sbr)の値,
スタック・ポインタ(sp)の値等が格納されている。
スレッド制御テーブル34,34’は,プロセッサ3
0,30’がスレッドの実行スケジューリングを行うと
き,他のプロセッサへのスレッドの転送を行うときに,
登録,更新,削除される。
ロセッサ30’へ移動するところを示している。ここ
で,スレッドAは,プロセッサ30上ではアドレス空間
31のスレッド・スタックAを使用しているが,移動先
のプロセッサ30’のアドレス空間31’では,既にス
レッドCがスレッド・スタックAのアドレスを使用して
いるので,従来の方式では,スレッド・スタックAを移
動させることができない状態である。
のスレッドAは,sbrというスタック・ベース・レジ
スタの値を持っており,これによってスタック専用のア
ドレス空間を相対化している。したがって,スレッドA
をプロセッサ30からプロセッサ30’に移動させたと
きに,プロセッサ30’上でスタック・ベース・レジス
タの値をスレッド・スタックCに重ならないようにsb
r’に変えることにより,スレッドAはプロセッサ3
0’上でスレッド・スタックAを問題なく使用すること
ができる。
・ベース・レジスタの値の変更だけでよいのは,プロセ
ッサのスタック空間のアドレスへのアクセスが,全てs
brに関する相対値になっているためである。また,プ
ロセッサ上で使用されるアドレス空間と仮想メモリのア
ドレス空間(論理アドレス空間)とが,sbrを用いた
アドレス変換を介して間接的に対応付けられていること
から,プロセッサ上でロード,ストアされるアドレス,
およびその他の計算に表れるアドレスが,全てプロセッ
サのCPUアドレスになっているためである。
br)を使用した相対スタック・アドレス空間では,移
動前と移動後とでアクセス要求元へ意識させることな
く,スタックの場所を論理アドレス空間内で自由に平行
移動させることができるので,OS間のネゴシエーショ
ンなしに,移動してきたスレッドのスタックを,空いて
いる任意のスタック空間にコピーすることができる。
0からプロセッサ30’に移動させる場合に,スレッド
・スケジューラ33は,スレッドAの移動により移動先
のプロセッサ30’のアドレス空間31’でアドレスの
衝突が発生するかどうかを判断することなく,スレッド
Aの制御情報をプロセッサ30’のスレッド・スケジュ
ーラ33’に渡し,スレッドAを移動させることができ
る。
は,スレッド・スタックAをアドレス空間31’におけ
る空きのスタック空間に割り当て,アドレス空間31’
の原点からの相対値であるsbr’をスレッドAのスレ
ッド制御情報へ設定し,実行スケジュールの契機にスレ
ッドAにプロセッサ使用権を与えて,スレッドAを実行
させる。
は,スタック・ベース・レジスタ(sbr)からの相対
値を保持し,スレッドの移動後もその値が保持される。
なお,図1(B)に示すCPUアドレス/論理アドレス
変換回路における空間判別回路14において,受け取っ
たCPUアドレスがスタック空間であるかそれ以外の空
間であるかを判別する方法として,本実施例では,CP
Uアドレスの上位2ビットが“11”の場合にスタック
空間,上位2ビットが“11”以外の場合にスタック空
間以外の空間と判断し,上位2ビットが“11”であっ
て加算回路16によりベース・レジスタ15の値(sb
r)を加算する際には,CPUアドレスの上位2ビット
をマスクし,上位2ビットを“00”にしてから,加算
している。
利用して行うのではなく,例えば命令コードから得られ
る制御信号等を利用して行うようにしてもよい。図4
は,図3に示すスレッド・スケジューラの処理を中心と
した処理フローチャートである。この処理フローチャー
トは,各CPU(プロセッサ)内のOSと各スレッドの
処理の流れを示しており,他のCPU(OS)からのス
レッドの受信(ステップS1〜S4),他のCPU(O
S)へのスレッドの送信(ステップS5〜S8),自C
PU内のスレッドの実行制御(ステップS9〜S15)
の3つのループから構成されている。
らのスレッドの転送要求の有無を判定する。転送要求が
あれば,ステップS2の処理を行い,転送要求がなけれ
ばステップS5の処理へ進む。
らスレッド・スタックを受信し,その内容をアドレス空
間の空き領域にコピーする。ステップS3では,スレッ
ド・スタックをコピーしたアドレス空間の先頭を,その
スタック用のスタック・ベース・レジスタsbrの退避
領域に設定する。この移動したスレッドのsbrの値の
変更は,CPUがスタック用に確保したスタック制御テ
ーブル上のsbr用領域に書き込むことで実行する。
ら転送されたスタックを用いるスレッドの制御情報を受
信し,スレッド制御テーブルに設定する。その後,ステ
ップS1へ戻る。
スレッド制御テーブルにおける移動条件をチェックし,
移動するスレッドを決定する。ステップS6では,移動
条件を満足するスレッドが存在するかどうかを判定し,
存在する場合にはステップS7の処理を行い,存在しな
い場合はステップS9の処理へ進む。
移動条件に合致したスレッドのスレッド・スタックを転
送する。ステップS8では,他のCPU(OS)へ転送
したスタックのスレッドの制御情報をスレッド制御テー
ブルから転送し,スレッド制御テーブルにおけるその情
報を消去する。その後,ステップS5へ戻る。
定する。ステップS10では,実行するスレッドが存在
するかどうかを判定する。存在する場合にはステップS
11の処理を行い,実行可能な状態にあるスレッドが存
在しない場合には,ステップS1へ戻る。
レジスタ(sbr)の値を,実行するスタックのスタッ
ク制御テーブルから得て,スタック・ベース・レジスタ
に設定する。
あったその他のレジスタの中身を戻し,そのスレッドへ
コンテキスト・スイッチを行ってCPU使用権を与え
る。ステップS13では,スレッドを実行する。
止または中断する事象の発生により,レジスタのスタッ
クへの退避とOSへのコンテキスト・スイッチを行う。
ステップS15では,スレッド制御テーブルへのスタッ
ク・ベース・レジスタ(sbr)の値を退避し,また,
スレッド実行時間などのスレッド制御テーブルの更新を
行う。
にスタックへのアクセスを,相対的なアドレスで行わせ
る専用のベース・レジスタを設けること,ネットワー
ク上で結合された計算機群または並列計算機で,(仮
想)共有メモリ機構を使うとき,(仮想)共有メモリの
対象にならないローカル・メモリ空間にスタック専用の
相対アドレス空間を作ること,アドレス空間を分割
し,一部に専用のベース・レジスタを使った相対アドレ
ス空間を作ることにより,共有メモリあるいは仮想共有
メモリ機構を用いるシステムにおけるローカル・メモリ
空間の有効利用が可能になる。
スタック空間をプロセッサ(CPU)間で独立に扱うこ
とができるので,適切にスレッドを各プロセッサに分配
すると,全体として,スタック空間を(仮想)共有させ
た場合に可能な最大のスレッド数にプロセッサ数を掛け
た数に近いスレッドを動かすことができ,より大規模な
計算が可能となる。また,スレッド1個当たりのスタッ
クの大きさをより大きくして,大きなデータをスタック
上に置くことができるようになる。
ある。
である。
Claims (2)
- 【請求項1】 複数のプロセッサ上でプロセッサ使用権
を得る計算主体である複数のプロセスまたはスレッドが
動作するシステムにおいて,メモリのアドレス空間が,
複数のプロセスまたはスレッドが共有する第1のアドレ
ス空間と,プロセスまたはスレッド間で共有しない第2
のアドレス空間とに分割して構成され,前記各プロセッ
サは,前記第2のアドレス空間の全部または特定部分を
相対アドレス空間とするためのベース・アドレスを保持
する手段と,プロセスまたはスレッドからのメモリアク
セス要求が前記第2のアドレス空間の全部または特定部
分に対するものであるかどうかを判別する手段と,アク
セス要求が前記第2のアドレス空間の全部または特定部
分に対するものである場合に,アクセス要求のアドレス
に前記ベース・アドレスを加算してアドレスを変換する
手段とを備えたことを特徴とするアドレス空間共有シス
テム。 - 【請求項2】 請求項1記載のアドレス空間共有システ
ムにおいて,前記第2のアドレス空間の全部または特定
部分は,各プロセスまたはスレッドがスタックとして使
用するスタック空間であることを特徴とするアドレス空
間共有システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP31017495A JP3639366B2 (ja) | 1995-11-29 | 1995-11-29 | アドレス空間共有システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP31017495A JP3639366B2 (ja) | 1995-11-29 | 1995-11-29 | アドレス空間共有システム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09146904A true JPH09146904A (ja) | 1997-06-06 |
| JP3639366B2 JP3639366B2 (ja) | 2005-04-20 |
Family
ID=18002071
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP31017495A Expired - Fee Related JP3639366B2 (ja) | 1995-11-29 | 1995-11-29 | アドレス空間共有システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3639366B2 (ja) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6769121B1 (en) | 1999-01-22 | 2004-07-27 | Nec Corporation | Program execution device and process migrating method thereof and storage medium which stores process migration control program |
| WO2005106662A1 (en) * | 2004-05-03 | 2005-11-10 | Sony Computer Entertainment Inc. | Systems and methods for task migration |
| JP2008234156A (ja) * | 2007-03-19 | 2008-10-02 | Nec Corp | メモリアクセス装置及び方法 |
| JP2009199414A (ja) * | 2008-02-22 | 2009-09-03 | Renesas Technology Corp | マイクロコンピュータ |
| CN101226488B (zh) | 2008-01-25 | 2010-06-02 | 中兴通讯股份有限公司 | 多实例应用程序在内核态地址空间冲突的解决方法及系统 |
| WO2012093488A1 (ja) | 2011-01-07 | 2012-07-12 | 富士通株式会社 | スケジューリング方法、およびマルチコアプロセッサシステム |
| WO2012105174A1 (ja) * | 2011-01-31 | 2012-08-09 | パナソニック株式会社 | プログラム生成装置、プログラム生成方法、プロセッサ装置及びマルチプロセッサシステム |
| JP2015526821A (ja) * | 2012-08-20 | 2015-09-10 | キャメロン,ドナルド,ケヴィン | 処理リソース割り当て |
| US20210389985A1 (en) * | 2020-06-12 | 2021-12-16 | Hon Hai Precision Industry Co., Ltd. | Data processing method, electronic device, and storage medium |
-
1995
- 1995-11-29 JP JP31017495A patent/JP3639366B2/ja not_active Expired - Fee Related
Cited By (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6769121B1 (en) | 1999-01-22 | 2004-07-27 | Nec Corporation | Program execution device and process migrating method thereof and storage medium which stores process migration control program |
| WO2005106662A1 (en) * | 2004-05-03 | 2005-11-10 | Sony Computer Entertainment Inc. | Systems and methods for task migration |
| US7437536B2 (en) | 2004-05-03 | 2008-10-14 | Sony Computer Entertainment Inc. | Systems and methods for task migration |
| JP2008234156A (ja) * | 2007-03-19 | 2008-10-02 | Nec Corp | メモリアクセス装置及び方法 |
| CN101226488B (zh) | 2008-01-25 | 2010-06-02 | 中兴通讯股份有限公司 | 多实例应用程序在内核态地址空间冲突的解决方法及系统 |
| US8095742B2 (en) | 2008-02-22 | 2012-01-10 | Renesas Electronics Corporation | Microcomputer with address translation circuit |
| JP2009199414A (ja) * | 2008-02-22 | 2009-09-03 | Renesas Technology Corp | マイクロコンピュータ |
| WO2012093488A1 (ja) | 2011-01-07 | 2012-07-12 | 富士通株式会社 | スケジューリング方法、およびマルチコアプロセッサシステム |
| US9367459B2 (en) | 2011-01-07 | 2016-06-14 | Fujitsu Limited | Scheduling method and multi-core processor system |
| WO2012105174A1 (ja) * | 2011-01-31 | 2012-08-09 | パナソニック株式会社 | プログラム生成装置、プログラム生成方法、プロセッサ装置及びマルチプロセッサシステム |
| JP5875530B2 (ja) * | 2011-01-31 | 2016-03-02 | 株式会社ソシオネクスト | プログラム生成装置、プログラム生成方法、プロセッサ装置及びマルチプロセッサシステム |
| JP2015526821A (ja) * | 2012-08-20 | 2015-09-10 | キャメロン,ドナルド,ケヴィン | 処理リソース割り当て |
| US20210389985A1 (en) * | 2020-06-12 | 2021-12-16 | Hon Hai Precision Industry Co., Ltd. | Data processing method, electronic device, and storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3639366B2 (ja) | 2005-04-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8091078B2 (en) | Dynamically partitioning processing across a plurality of heterogeneous processors | |
| CN1278235C (zh) | 用于向一处理器让与资源的系统 | |
| US6816947B1 (en) | System and method for memory arbitration | |
| US8352938B2 (en) | System, method and program to migrate a virtual machine | |
| US9996401B2 (en) | Task processing method and virtual machine | |
| WO2021254135A1 (zh) | 任务执行方法及存储设备 | |
| CN103729480B (zh) | 一种多核实时操作系统多个就绪任务快速查找及调度方法 | |
| US6256704B1 (en) | Task management for data accesses to multiple logical partitions on physical disk drives in computer systems | |
| US20080162834A1 (en) | Task Queue Management of Virtual Devices Using a Plurality of Processors | |
| US20050091473A1 (en) | System and method for managing a plurality of processors as devices | |
| JP4507791B2 (ja) | 複数のプロセッサにソフトウェアをロードするシステムおよび方法 | |
| JP2004326753A (ja) | 仮想計算機環境におけるロックの管理 | |
| WO2007084700A2 (en) | System and method for thread handling in multithreaded parallel computing of nested threads | |
| CN111309649A (zh) | 一种数据传输和任务处理方法、装置及设备 | |
| US9052957B2 (en) | Method and system for conducting intensive multitask and multiflow calculation in real-time | |
| US20250285206A1 (en) | Gpu-sharing method and apparatus for serverless inference loads | |
| CN116339968A (zh) | 一种计算资源和缓存资源调度方法、装置及系统 | |
| JP2002196960A (ja) | ファイル入出力制御方法、ファイル管理サーバ及び並列計算機システム | |
| CA1304513C (en) | Multiple i/o bus virtual broadcast of programmed i/o instructions | |
| JP3639366B2 (ja) | アドレス空間共有システム | |
| CN115981833A (zh) | 一种任务处理方法及装置 | |
| JP3546694B2 (ja) | マルチスレッド計算機システム及びマルチスレッド実行制御方法 | |
| CN113448897A (zh) | 适用于纯用户态远端直接内存访问的数组结构及优化方法 | |
| US7406554B1 (en) | Queue circuit and method for memory arbitration employing same | |
| RU2238584C2 (ru) | Способ организации персистентной кэш памяти для многозадачных, в том числе симметричных многопроцессорных компьютерных систем и устройство для его осуществления |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040113 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040315 |
|
| 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: 20050111 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050114 |
|
| R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080121 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090121 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100121 Year of fee payment: 5 |
|
| LAPS | Cancellation because of no payment of annual fees |