JP2001265609A - 演算処理装置 - Google Patents

演算処理装置

Info

Publication number
JP2001265609A
JP2001265609A JP2000073675A JP2000073675A JP2001265609A JP 2001265609 A JP2001265609 A JP 2001265609A JP 2000073675 A JP2000073675 A JP 2000073675A JP 2000073675 A JP2000073675 A JP 2000073675A JP 2001265609 A JP2001265609 A JP 2001265609A
Authority
JP
Japan
Prior art keywords
thread
register
information
stack machine
stack
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.)
Pending
Application number
JP2000073675A
Other languages
English (en)
Inventor
Yosuke Baba
洋介 馬場
Hiroyuki Yanagi
博之 柳
Motoyuki Katou
意之 加藤
Shinji Nakagawa
伸二 中川
Yasuhiro Nishimura
康裕 西村
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2000073675A priority Critical patent/JP2001265609A/ja
Priority to US09/809,080 priority patent/US6772412B2/en
Publication of JP2001265609A publication Critical patent/JP2001265609A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Executing Machine-Instructions (AREA)
  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【課題】 ハードウェア資源の削減、スレッド切替え処
理の高速化を実現する。 【解決手段】 Java制御機構2には、プログラマブルロ
ジックによるスレッド切替え制御回路3が組み込まれ
る。スタックマシン制御装置1は、切替え先のスレッド
の識別情報を格納するためのスレッド切替えレジスタ1
0を具備し、スレッド切替えレジスタ10への新たな情
報の格納をトリガとして、スレッド切替え制御回路3
に、切替先のスレッドおよび実行中のスレッドの識別情
報を送信する。スレッド切替え制御回路3は、送信され
た識別情報を判別して、スタックマシン制御装置1内の
制御レジスタ群9の各情報を実行中のスレッドに設定さ
れたレジスタ情報待避領域7に待避させ、切替え先のス
レッドに設定されたレジスタ情報待避領域7のレジスタ
情報を読み出して、制御レジスタ群9に設定する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数種のプログラム
(スレッド)にそれぞれ作業領域を確保しつつ各スレッ
ドを切り替えながら実行するスタックマシンに関するも
ので、特にこのスタックマシンの実行スレッドの切替え
を制御する技術に関連する。
【0002】
【従来の技術】サン・マイクロシステムズ社が開発した
オブジェクト指向プログラム言語「Java」(同社保有の
登録商標)によるプログラムは、バイトコードに変換さ
れることにより、プラットフォームに依存せずに、Java
インタプリタを有する実行環境で動作する。
【0003】これらJavaのバイトコードを実行可能な制
御機構(以下「Java制御機構」という)を具備するコン
ピュータでは、「スタックマシン」と呼ばれる仮想マシ
ンが形成され、その上でJavaによる複数種のプログラム
(スレッド)を実行することができる。このスタックマ
シンは、各スレッド用の作業領域が設定されるメモリ領
域(スタック)と、このスタック内に作業領域を積みな
がら各スレッドを実行する制御装置(以下「スタックマ
シン制御装置」という)とから成る。
【0004】前記スタックマシン制御装置は、具体的に
はコンピュータのプロセッサ内に形成されるもので、実
行中のスレッドやそのスレッド内のプログラムの実行位
置など、プログラムの実行状態を示す各種ポインタを格
納するために、プロセッサ内の所定数のレジスタが割り
当てられる。(以下これらのレジスタを「制御レジスタ
群」、制御レジスタ群に格納される情報を「レジスタ情
報」という。)スタックマシン制御装置は、バイトコー
ドのプログラムの実行結果に基づき制御レジスタ群や実
行スレッドの作業領域に情報の読み書きを行うことによ
り、選択中のスレッドに応じた処理を実行する。
【0005】前記スタックマシン制御装置において、実
行するスレッドを切り替えるには、前記制御レジスタ群
の現時点での設定値を待避させた後、切替え先のスレッ
ドについて以前に待避させたレジスタ情報(ただし新た
に起動したスレッドについては初期状態のレジスタ情
報)を読み出して制御レジスタ群にセットし、プログラ
ムの実行状態を変更する必要がある。この切替え制御
は、切替え制御用のプログラムにより実施される。ただ
しこのプログラムをスタックマシン制御装置内で実行す
ると、その実行に伴って前記制御レジスタ群の設定値が
変動して待避処理に支障が生じるため、従来は、別のス
タックおよびその制御機構を用いて、切替え制御専用の
スレッドを実行するようにしている。
【0006】図4は、スタックマシンを有する演算処理
装置の従来の構成を示す。図中の21は、前記したマル
チスレッド処理用のスタックマシン制御装置、22は、
前記スレッド切替え制御用のスレッド(以下「システム
スレッド」という)を実行するためのスタックマシン制
御装置(以下「システムスタック制御装置」という)で
あって、両者は、バイトコードの実行機能を具備するJa
va制御機構23に含まれる。
【0007】各スタックマシン制御装置21,22に
は、それぞれ制御レジスタ群24,25、およびこれら
制御レジスタ群24,25への情報の読書きを管理する
ためのプログラムロジック回路(図示せず)が含まれて
いる。制御レジスタ群24,25には、制御対象のスタ
ックの先頭位置を示すスタック先頭ポインタ,プログラ
ムの実行位置を示すプログラムカウンタ,各メソッドに
用いられるローカル変数の格納位置を示すローカル変数
ポインタなどのレジスタが含まれる。なおスタックマシ
ン制御装置21のプログラムロジック回路には、スレッ
ドを切り替える必要が生じたことを判別してシステムス
タック制御装置22にスレッドの切替え要求を送るため
の判別回路(図示せず)が含まれている。
【0008】図中の26は、演算処理装置内のメモリ
(RAM)であって、各スタックマシン制御装置21,
22に対応する2種類のスタック(プログラムスタック
27およびシステムスタック28)が設定される。マル
チスレッド処理用のプログラムスタック27には、立ち
上げられた各スレッド毎に固有の作業領域29が設定さ
れる。(ただしここでは図示を簡単にするため、スレッ
ド1,スレッド2と名付けた2つのスレッドの作業領域
29のみを示す。)一方、システムスタック28には、
前記システムスレッドの作業領域31が設定される。こ
れらのスレッド作業領域29,31には、それぞれその
スレッドにおいてメソッド実行用のプログラムが呼び出
される都度、そのプログラム用の作業領域(フレーム)
が積み重ねられる。
【0009】プログラムスタックの各スレッド作業領域
29には、それぞれ他のスレッドへの切替え時に前記ス
タックマシン制御装置21の制御レジスタ群24の各レ
ジスタ情報を待避させるための待避領域30が設定され
る(以下この領域を「レジスタ情報待避領域30」とい
う)。なお図4では、便宜上、各スレッド毎に1セット
ずつのレジスタ情報待避領域30を、それぞれそのスレ
ッド作業領域29のブロックの外に示しているが、実際
には、スレッド作業領域29内に設定された各フレーム
毎に、その内部の所定位置にレジスタ情報待避領域30
が確保される。またここでは図示していないが、各スレ
ッド作業領域29には、それぞれそのスレッド内で実行
中のメソッドのフレームを識別するためのポインタ(以
下、「カレントフレームポインタ」という)が格納され
ている。
【0010】図5は、上記構成の演算処理装置における
処理の手順を示す。なお図中、点線の矩形Aはスタック
マシン制御装置21による処理の範囲を、矩形Bはシス
テムスタック制御装置22による処理の範囲を、それぞ
れ示す。図中、ST1では、スタックマシン制御装置2
1は、プログラムスタック27内の実行中のスレッドの
作業領域29および内部の制御レジスタ群24に情報を
読み書きしつつ、そのスレッドの処理を実行している。
この実行下でイベントの発生などにより他のスレッドを
実行する必要が生じたことを判別すると、ST2からS
T3に進んで、システムスタック制御装置22にスレッ
ド切替え要求を送信する。
【0011】システムスタック制御装置22は、前記ス
レッド切替え要求を受けて前記システムスレッドを実行
し、スタックマシン制御装置21内の制御レジスタ群2
4から各レジスタ情報を読み出して、これらを実行中の
スレッドのレジスタ情報待避領域30(この場合、前記
カレントフレームポインタの示すアクセス中のフレーム
内の待避領域をいう)に待避させる(ST4)。そして
つぎのST5では、切替え先のスレッドについて、その
スレッド作業領域29のカレントフレームフレームのレ
ジスタ情報待避領域30からレジスタ情報を読み出し
て、スタックマシン制御装置21の制御レジスタ群24
にセットする。これにより、スタックマシン制御装置2
1の実行すべきスレッドが切り替えられ、ST1に戻る
と、切り替えられたスレッドの実行が開始される。
【0012】なお前記システムスタック制御装置22に
代えて、図6に示すように、Java制御機構23外に、他
の言語のプログラムによりスレッドの切替え制御を実行
するソフトウェア機構32(たとえばC言語のプログラ
ム実行機構)が設定される場合もある。このソフトウェ
ア実行機構32は、メモリ26内に設定された作業領域
33にアクセスしつつ前記スレッド切替え用のプログラ
ムを実行することにより、前記図5のBと同様の処理を
行うもので、これによりスタックマシン制御装置22か
らのスレッドの切替え要求に応じたスレッドの切替えが
実施されることになる。
【0013】
【発明が解決しようとする課題】切替え制御用のシステ
ムスタック制御装置22を設定する図4の構成では、シ
ステムスレッドの実行のために、システムスタック制御
装置22に個別の制御レジスタ群25を設定する必要が
あるので、レジスタ資源の消費量が多くなる。またメモ
リ26内にも複数のスタックを設定する必要があるの
で、メモリ資源の消費量も多くなる、といった問題が生
じる。
【0014】また他の言語によるソフトウェア機構32
を設ける図6の構成では、メモリ内に切替え制御用のプ
ログラムの格納領域や作業領域を設ける必要があるた
め、やはりメモリ資源の消費量が多くなる。また別言語
による切替え制御用のプログラムの開発にも労力やコス
トがかかる、という問題がある。
【0015】さらにソフトウェアによる切替え制御で
は、処理時間が長くなるので、特にイベントの発生など
に応じて速やかにスレッドを切り替える必要があるリア
ルタイム処理用の機器では、このような切替え処理に時
間を要するシステムの導入は困難となる。
【0016】この発明は上記問題点に着目してなされた
もので、スタックマシンを動作させる制御機構自身がス
レッドの切替え制御を実行することにより、ハードウェ
ア資源やスレッド切替え制御機構の開発工数を削減する
こと、ならびにスレッド切替え処理の高速化を実現する
ことを目的とする。
【0017】
【課題を解決するための手段】請求項1の発明にかかる
演算処理装置には、複数のスレッドにそれぞれ個別の作
業領域を確保しつつ、各スレッドを切り替えながら実行
するスタックマシンが組み込まれるとともに、このスタ
ックマシンを動作させる制御機構に、スタックマシンか
らのスレッド切替え要求を受け付けてその要求に応じた
スレッドの切替え制御を実行するスレッド切替え制御回
路が含まれている。前記スレッド切替え制御回路は、前
記スタックマシンからのスレッドの切替え要求により切
替え先のスレッドを判別する判別手段と、前記スレッド
の切替え要求に応じて、前記スタックマシン内の制御レ
ジスタ群に格納されたプログラムの実行状態を示すレジ
スタ情報を、実行中のスレッドに設定されたレジスタ情
報待避領域に待避させるレジスタ情報待避手段と、前記
レジスタ情報待避手段による待避処理の終了後に、前記
判別手段により判別された切替え先のスレッドのレジス
タ情報待避領域からレジスタ情報を読み出して、前記ス
タックマシンの制御レジスタ群に格納するレジスタ情報
設定手段とを具備している。
【0018】前記制御機構は、スタックマシンを動作さ
せるためのプログラム実行環境が設定されたプロセッサ
であって、たとえばスタックマシンがJavaのプログラム
により記述されたスレッドを実行する場合、Javaのバイ
トコードを実行するインタプリタによるプログラム実行
環境を具備する制御機構が設定される。
【0019】スタックマシンの制御装置は前記制御機構
に組み込まれるもので、制御レジスタ群としてプロセッ
サが具備する任意のレジスタが割り当てられる。スタッ
クマシンは、制御レジスタ群を必要に応じて書き換えな
がら、これらレジスタ群のレジスタ情報に応じて実行中
のスレッドの作業領域にアクセスすることにより、スレ
ッドを実行する。
【0020】請求項2の発明では、前記スタックマシン
は、切替え先のスレッドの識別情報を格納するためのレ
ジスタを具備し、プログラムの実行に応じてこのレジス
タ内に新たな情報が格納されたことに応じて、前記スレ
ッドの切替え要求を行うように構成される。なお前記レ
ジスタには、制御レジスタ群と同様に、プロセッサが具
備する所定のレジスタが割り当てられる。
【0021】請求項3の発明では、前記スタックマシン
は、前記レジスタに切替え先のスレッドを識別する新た
な情報が格納されたことに応じて、そのレジスタに格納
された切替え先のスレッドの識別情報および実行中のス
レッドの識別情報をスレッド切替え制御回路に送信する
ことにより、前記スレッドの切替え要求を行うように設
定される。
【0022】請求項4の発明では、前記スレッド切替え
制御回路を、プログラマブルロジックにより形成する。
【0023】
【作用】スタックマシンは、内部の制御レジスタ群に対
する読書きを実行しつつ所定のスレッドを実行する。こ
のスレッド実行中に、他のスレッドの実行が必要となる
と、スタックマシンは、制御機構内のスレッド切替え制
御回路に、スレッドの切替え要求を送信する。スレッド
切替え制御回路は、この切替え要求に応じて、制御レジ
スタ群の実行中のスレッドに関するレジスタ情報を、そ
のスレッドのレジスタ情報待避領域に待避させ、代わり
に、前記切替え要求により判別した切替え先のスレッド
を実行するためのレジスタ情報を制御レジスタ群に格納
する。これによりスタックマシンの実行スレッドが切り
替えられ、切替え先のスレッドを実行することが可能と
なる。
【0024】請求項2の発明では、スタックマシンにお
いて、切替え先のスレッドを示す情報用のレジスタへの
情報の格納をトリガとして、そのレジスタに格納された
情報に応じたスレッドの切替え制御が実行される。さら
に請求項3の発明では、前記レジスタへの情報の格納を
トリガとして、スタックマシンからスレッド切替え制御
回路に、前記レジスタへの実行中のスレッドおよび切替
え先のスレッドの識別情報を送信するので、スレッド切
替え制御回路において、実行中のスレッドや切替え先の
スレッドを認識し、レジスタ情報の待避および復元処理
を実行することが可能となる。
【0025】請求項4の発明では、プログラマブルロジ
ックによりスレッド切替え制御回路を形成することによ
り、プロセッサ内に組込み可能な小型の回路を実現する
ことができる。
【0026】
【実施例】図1は、この発明が適用された演算処理装置
の構成例を示す。図中、1は、複数のスレッドを実行す
るためのスタックマシン制御装置であって、インタプリ
タ方式のJava制御機構2の一部を構成する。また4は、
各スレッドの作業領域を順に設定するためのスタックで
あって、演算処理装置のメモリ8内の所定位置に設定さ
れる。これらスタックマシン制御装置1とスタック4と
により、スタックマシンが構成される。
【0027】前記Java制御機構2は、前記スタックマシ
ン制御装置1のほか、Javaのソースプログラムより変換
されたバイトコードを実行する機構(図示せず)や、前
記スタックマシン制御装置1の実行スレッドの切替え制
御のためのスレッド切替え制御回路3を具備する。なお
スレッド制御装置3は、プロセッサ内に組み込まれたプ
ログラマブルロジック回路により構成される。
【0028】スタックマシン制御装置1は、各種レジス
タやレジスタ情報の読書きを管理するプログラマブルロ
ジック回路などにより構成されている。スタックマシン
制御装置1は、必要に応じて、スレッド切替え制御回路
3にスレッドの切替え制御を要求しつつ、切り替えられ
たスレッドを構成するバイトコードを実行することによ
り、前記スタック4を用いたマルチスレッド処理を実行
するもので、スタック4内の各スレッドの作業領域5に
は、それぞれ呼び出されたメソッドのフレーム6が順に
積み重ねられる。また各スレッドの所定位置には、前記
した実行中のフレーム6を識別するためのカレントフレ
ームポインタが格納される。なお図示例では、前記図
4,6と同様に、スレッド1,スレッド2の2つのスレ
ッドについての作業領域5を示す。また各スレッド作業
領域5内のフレーム6には、スレッド作業領域5内に確
保された順に1,2,3の数字を付してある。
【0029】スタックマシン制御装置1には、従来と同
様に、スタック先頭ポインタ,プログラムカウンタ,ロ
ーカル変数ポインタの各レジスタ情報を格納するための
制御レジスタ群9が設定されるほか、切替え先のスレッ
ドを識別する情報を格納するためのスレッド切替えレジ
スタ10が含まれる。また前記したプログラマブルロジ
ック回路内には、このスレッド切替えレジスタ10への
新規情報の格納を判別して、スレッド切替え制御回路に
スレッド切替え要求を送るための判別回路(図示せず)
が含まれる。なおスレッドの識別情報とは、各スレッド
に固有に付与された識別コード、スレッド作業領域の先
頭アドレスなどの情報をいう。
【0030】各フレーム6には、図2に示すように、前
記制御レジスタ群9の各レジスタ情報を待避させるため
のレジスタ情報待避領域7のほか、プログラムの実行に
より得た演算結果を格納するためのオペランドスタック
14,メソッドの具備するローカル変数の格納領域15
などが設定される。
【0031】なお図1において、斜線で示すフレーム6
(スレッド1ではフレーム3、スレッド2ではフレーム
2)は、それぞれスレッド1,2が実行中のメソッドの
フレーム(カレントフレーム)であって、図示されてい
るレジスタ情報待避領域7は、これらカレントフレーム
内に設定されたものである。
【0032】この実施例のスタックマシン制御装置1
は、実行中のスレッドにおいて他のスレッドへの切替え
が必要となったとき、その切替え先のスレッドの識別情
報を前記スレッド切替えレジスタ10に格納する。スタ
ック制御装置1内の判別回路は、前記スレッド切替えレ
ジスタ10への識別情報の格納をトリガーとして、新た
に格納された識別情報、および実行中のスレッドの識別
情報を、スレッド切替え制御回路3に送信する。
【0033】前記スレッド切替え制御回路3は、スレッ
ド切替え判別部11,レジスタ情報待避処理部12,レ
ジスタ情報復元処理部13の各処理部を具備する。スレ
ッド切替え判別部11は、前記スタックマシン制御装置
1からの識別情報の送信を受けて、スレッドの切替え要
求が発生していることを判別し、さらにその送信内容か
ら実行中のスレッドおよび切替え先のスレッドを判別す
る。
【0034】レジスタ情報待避処理部12は、前記スレ
ッド切替え判別部11より実行中のスレッドの識別情報
を受け取ると、前記スタックマシン制御装置1の制御レ
ジスタ群9から各レジスタ情報を読み出して、これらを
実行中のスレッドの作業領域5内に待避させる。一方、
レジスタ情報復元処理部13には、スレッド切替え判別
部11より切替え先のスレッドの識別情報が与えられて
おり、前記レジスタ情報待避処理部12による待避処理
の終了を受けて、前記切替え先のスレッドの作業領域5
に待避させていたレジスタ情報を読み出し、これらをス
タックマシン制御装置1内の制御レジスタ群9に格納す
る。なお上記のレジスタ情報の待避ならびに復元するレ
ジスタ情報の読出しは、いずれも、対象とするスレッド
のカレントフレームに対して行われるものである。
【0035】図3は、上記図1の構成における一連の処
理手順を示す。なお図中の矩形Aはスタックマシン制御
装置1による処理の範囲、矩形Bはスレッド切替え制御
回路3による処理の範囲である。以下、この図3の流れ
に沿って、スレッド1の第3のメソッドを実行している
状態からスレッド2の第2のメソッドを実行している状
態に切り替える際の処理手順を説明する。
【0036】ST1で、スタックマシン制御装置1は、
前記スレッド1の作業領域5において、内部の制御レジ
スタ群9およびカレントフレームであるフレーム3のオ
ペランドスタック14やローカル変数格納領域15に情
報を読み書きして、スレッド1の第3のメソッドを実行
している。この状態下で、スレッド2への切替えが必要
となると、ST2からST3へと移行し、スレッド切替
えレジスタ10に、切替え先のスレッド2の識別情報が
書き込まれる。
【0037】つぎのST4では、前記スレッド切替えレ
ジスタ10への識別情報の格納を受けて、この新たに格
納されたスレッド2の識別情報および実行中のスレッド
1の識別情報が、スレッド切替え制御回路3に送信され
る。スレッド切替え制御回路3では、ST5で送信され
た各識別情報を判別した後、つぎのST6で、スタック
マシン制御装置1の制御レジスタ群9から各レジスタ情
報を読み出す。そして実行中のスレッド1の作業領域5
において、前記読み出したレジスタ情報を、前記フレー
ム3のレジスタ情報待避領域7に待避させる。
【0038】ついでスレッド切替え制御回路3は、前記
切替え先の識別情報の示すスレッド2の作業領域5にア
クセスし、その領域内のカレントフレームポインタを取
得する。そしてこのポインタの示すカレントフレーム
(フレーム2)のレジスタ情報待避領域7から各レジス
タ情報を読み出して、それぞれの情報をスタックマシン
制御装置1の制御レジスタ群9に格納する(ST7)。
【0039】この一連の制御により、スタックマシン制
御装置1は、スレッド1の第3のメソッドを実行してい
る状態からスレッド2の第2のメソッドを実行している
状態に切り替わることになる。なおこのメソッドの終了
後も、スレッド切替えを行う必要が生じなければ、引き
続きスレッド2の処理が実行されることになる。またス
レッド2の実行中に再びスレッド1に切り替える必要が
生じると、前記ST1〜7の手順により、制御レジスタ
群9の各レジスタ情報がスレッド2のカレントフレーム
6内に待避させられた後、前記スレッド1のフレーム3
に待避させていたレジスタ情報が制御レジスタ群9に復
元され、スレッド1の第3のメソッドの実行が再開され
ることになる。
【0040】上記図1の構成によれば、スタックマシン
の動作を実現するJava制御機構2内にプログラマブルロ
ジック回路によるスレッド切替え制御回路3を組み込ん
でいるので、システムスタック制御装置を設ける図4の
構成のように、スレッド切替え制御のためのレジスタ資
源やメモリ資源を設ける必要がなく、ハードウェア構成
の小型化を実現することができる。
【0041】また別言語によるソフトウェア機構を設け
る図6の構成と比較しても、プログラムの格納領域や作
業領域に要したメモリ資源が不要となってハードウェア
を小型化できる。しかも前記スレッド切替え制御回路3
はプログラマブルロジック回路によるハードウェアとし
て提供されるから、スタックマシン制御装置1と連動し
て動くソフトウェアを開発するのに比べ、開発作業に要
する労力やコストを大幅に削減することができる。
【0042】さらにハードウェアの処理によりスタック
マシン制御装置1側からのスレッド切替え要求に応じた
レジスタ情報の待避や復元を高速で実行できるから、ソ
フトウェアによりスレッド切替えを制御する従来の方法
に比べ、はるかに高速のスレッド切替えを実現すること
ができる。
【0043】なお上記図1の構成では、インタプリタ方
式のJava制御機構によりスタックマシンを形成している
が、スタックマシンを動かすプログラムはJavaに限定さ
れるものではなく、Javaと同様に、複数のプログラム毎
の作業領域を併設するようなメモリ使用方法を採用する
プログラムであれば、この発明を適用することができ
る。
【0044】
【発明の効果】上記したようにこの発明にかかる演算処
理装置は、スタックマシンの制御機構にスレッド切替え
制御用の回路を組み込むことにより、スレッド切替え処
理の高速化を実現するとともに、レジスタやメモリの消
費量を削減してハードウェア資源の負担を減らすことが
できる。また別言語による切替え制御用のプログラムを
開発する場合よりも開発工数を削減できるから、労力や
コストをかけずに、マルチスレッド処理機能を具備する
演算処理装置を提供することができる。さらにハードウ
ェアの処理によりイベントの発生などに応じた高速のス
レッド切替えを実行できるから、リアルタイム処理を必
要とする機器に最適な演算処理装置を提供することがで
きる。
【図面の簡単な説明】
【図1】この発明が適用された演算処理装置の構成を示
すブロック図である。
【図2】1フレーム内のデータ構成を示す説明図であ
る。
【図3】スレッドの切替え処理についての処理手順を示
すフローチャートである。
【図4】従来の演算処理装置の構成を示すブロック図で
ある。
【図5】スレッドの切替え処理についての従来の処理手
順を示すフローチャートである。
【図6】スレッドの切替え制御をソフトウェア機構によ
り行う場合の演算処理装置の構成を示すブロック図であ
る。
【符号の説明】
1 スタックマシン制御装置 2 Java制御機構 3 スレッド切替え制御回路 4 スタック 7 レジスタ情報待避領域 11 スレッド切替え判別部 12 レジスタ情報待避処理部 13 レジスタ情報復元処理部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 加藤 意之 京都府京都市右京区花園土堂町10番地 オ ムロン株式会社内 (72)発明者 中川 伸二 京都府京都市右京区花園土堂町10番地 オ ムロン株式会社内 (72)発明者 西村 康裕 京都府京都市右京区花園土堂町10番地 オ ムロン株式会社内 Fターム(参考) 5B098 DD02 DD08 GA05 GC01 GD02 GD14

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数のスレッドにそれぞれ個別の作業領
    域を確保しつつ、各スレッドを切り替えながら実行する
    スタックマシンが組み込まれた演算処理装置であって、 前記スタックマシンを動作させる制御機構には、スタッ
    クマシンからのスレッド切替え要求を受け付けてその要
    求に応じたスレッドの切替え制御を実行するスレッド切
    替え制御回路が含まれており、 前記スレッド切替え制御回路は、 前記スタックマシンからのスレッドの切替え要求により
    切替え先のスレッドを判別する判別手段と、 前記スレッドの切替え要求に応じて、前記スタックマシ
    ン内の制御レジスタ群に格納されたプログラムの実行状
    態を示すレジスタ情報を、実行中のスレッドに設定され
    たレジスタ情報待避領域に待避させるレジスタ情報待避
    手段と、 前記レジスタ情報待避手段による待避処理の終了後に、
    前記判別手段により判別された切替え先のスレッドのレ
    ジスタ情報待避領域からレジスタ情報を読み出して、前
    記スタックマシンの制御レジスタ群に格納するレジスタ
    情報設定手段とを具備して成る演算処理装置。
  2. 【請求項2】 前記スタックマシンは、切替え先のスレ
    ッドの識別情報を格納するためのレジスタを具備し、プ
    ログラムの実行に応じてこのレジスタ内に新たな情報が
    格納されたことに応じて、前記スレッドの切替え要求を
    行う請求項1に記載された演算処理装置。
  3. 【請求項3】 前記スタックマシンは、前記レジスタに
    切替え先のスレッドを識別する新たな情報が格納された
    ことに応じて、そのレジスタに格納された切替え先のス
    レッドの識別情報および実行中のスレッドの識別情報を
    スレッド切替え制御回路に送信することにより、前記ス
    レッドの切替え要求を行う請求項1または2に記載され
    た演算処理装置。
  4. 【請求項4】 前記スレッド切替え制御回路は、プログ
    ラマブルロジックにより形成される請求項1に記載され
    た演算処理装置。
JP2000073675A 2000-03-16 2000-03-16 演算処理装置 Pending JP2001265609A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000073675A JP2001265609A (ja) 2000-03-16 2000-03-16 演算処理装置
US09/809,080 US6772412B2 (en) 2000-03-16 2001-03-16 Data processing device equipped with a thread switching circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000073675A JP2001265609A (ja) 2000-03-16 2000-03-16 演算処理装置

Publications (1)

Publication Number Publication Date
JP2001265609A true JP2001265609A (ja) 2001-09-28

Family

ID=18591884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000073675A Pending JP2001265609A (ja) 2000-03-16 2000-03-16 演算処理装置

Country Status (2)

Country Link
US (1) US6772412B2 (ja)
JP (1) JP2001265609A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783836A (zh) * 2016-08-31 2018-03-09 中国电信股份有限公司 基于Linux容器控制Web应用资源的方法和装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512724B1 (en) * 1999-11-19 2009-03-31 The United States Of America As Represented By The Secretary Of The Navy Multi-thread peripheral processing using dedicated peripheral bus
US7518993B1 (en) * 1999-11-19 2009-04-14 The United States Of America As Represented By The Secretary Of The Navy Prioritizing resource utilization in multi-thread computing system
US6871204B2 (en) * 2000-09-07 2005-03-22 Oracle International Corporation Apparatus and method for mapping relational data and metadata to XML
US20040128488A1 (en) * 2002-12-26 2004-07-01 Thimmannagari Chandra M. R. Strand switching algorithm to avoid strand starvation
US20040128476A1 (en) * 2002-12-26 2004-07-01 Robert Nuckolls Scheme to simplify instruction buffer logic supporting multiple strands
US6836778B2 (en) * 2003-05-01 2004-12-28 Oracle International Corporation Techniques for changing XML content in a relational database
US7395527B2 (en) 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US8381037B2 (en) 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7458078B2 (en) * 2003-11-06 2008-11-25 International Business Machines Corporation Apparatus and method for autonomic hardware assisted thread stack tracking
US7360064B1 (en) 2003-12-10 2008-04-15 Cisco Technology, Inc. Thread interleaving in a multithreaded embedded processor
US7441101B1 (en) 2003-12-10 2008-10-21 Cisco Technology, Inc. Thread-aware instruction fetching in a multithreaded embedded processor
US7206922B1 (en) 2003-12-30 2007-04-17 Cisco Systems, Inc. Instruction memory hierarchy for an embedded processor
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7895382B2 (en) 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
JP4046086B2 (ja) * 2004-01-21 2008-02-13 トヨタ自動車株式会社 可変圧縮比内燃機関
US7987453B2 (en) * 2004-03-18 2011-07-26 International Business Machines Corporation Method and apparatus for determining computer program flows autonomically using hardware assisted thread stack tracking and cataloged symbolic data
EP1759315B1 (en) * 2004-06-23 2010-06-30 Oracle International Corporation Efficient evaluation of queries using translation
US7516121B2 (en) * 2004-06-23 2009-04-07 Oracle International Corporation Efficient evaluation of queries using translation
US7668806B2 (en) 2004-08-05 2010-02-23 Oracle International Corporation Processing queries against one or more markup language sources
US8463801B2 (en) * 2005-04-04 2013-06-11 Oracle International Corporation Effectively and efficiently supporting XML sequence type and XQuery sequence natively in a SQL system
US7895597B2 (en) * 2005-09-15 2011-02-22 Nokia Corporation Method, apparatus and computer program product enabling full pre-emptive scheduling of green threads on a virtual machine
US7805573B1 (en) * 2005-12-20 2010-09-28 Nvidia Corporation Multi-threaded stack cache
US7617384B1 (en) 2006-11-06 2009-11-10 Nvidia Corporation Structured programming control flow using a disable mask in a SIMD architecture
US8312254B2 (en) * 2008-03-24 2012-11-13 Nvidia Corporation Indirect function call instructions in a synchronous parallel thread processor
CN103106097B (zh) * 2013-03-12 2016-02-10 无锡江南计算技术研究所 一种即时编译***中的栈运算优化方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3231571B2 (ja) * 1994-12-20 2001-11-26 日本電気株式会社 順序付きマルチスレッド実行方法とその実行装置
US5933627A (en) * 1996-07-01 1999-08-03 Sun Microsystems Thread switch on blocked load or store using instruction thread field
US6256775B1 (en) * 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783836A (zh) * 2016-08-31 2018-03-09 中国电信股份有限公司 基于Linux容器控制Web应用资源的方法和装置
CN107783836B (zh) * 2016-08-31 2020-10-09 中国电信股份有限公司 基于 Linux 容器控制Web 应用资源的方法和装置

Also Published As

Publication number Publication date
US6772412B2 (en) 2004-08-03
US20020010733A1 (en) 2002-01-24

Similar Documents

Publication Publication Date Title
JP2001265609A (ja) 演算処理装置
US8151275B2 (en) Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS
JPH02267634A (ja) 割込み処理装置
JP3970609B2 (ja) プロセッサシステム
US6820153B2 (en) Interrupt processing and memory management method in an operation processing device and a device using the same
JP2003202999A (ja) 仮想計算機システム
JPS603229B2 (ja) 情報処理方式
JPH06324861A (ja) Cpu制御システム及び制御方法
JP4037941B2 (ja) 制御装置
JP3022398B2 (ja) 仮想計算機方式
JP2000029508A (ja) プログラマブルコントローラ
JPH02133833A (ja) インサーキツトエミユレータ制御装置
JPS6218932B2 (ja)
JPH08272757A (ja) マルチプロセッサシステム及びプログラム起動方法
JPH0259829A (ja) マイクロコンピュータ
JPH0683986A (ja) シングルチップ・マイクロコンピュータ
JPS63108448A (ja) 入出力要求制御方式
JPH0991237A (ja) 周辺装置のリソース管理装置
JPH05224711A (ja) プログラマブルコントローラの制御方法
JP2002182901A (ja) コプロセッサデータアクセス制御装置、その方法およびその命令フォーマット
JPH08249022A (ja) マルチプロセッサ演算装置、および該装置を有するプログラマブルコントローラ
JPH03154130A (ja) タスクスイッチング方式
JPH01240941A (ja) 情報処理装置
JPS60167025A (ja) 情報出力装置
JPH0216663A (ja) 情報処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060404

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060808