JP2844626B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2844626B2
JP2844626B2 JP319789A JP319789A JP2844626B2 JP 2844626 B2 JP2844626 B2 JP 2844626B2 JP 319789 A JP319789 A JP 319789A JP 319789 A JP319789 A JP 319789A JP 2844626 B2 JP2844626 B2 JP 2844626B2
Authority
JP
Japan
Prior art keywords
selector
message
local
cache area
cache
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.)
Expired - Fee Related
Application number
JP319789A
Other languages
English (en)
Other versions
JPH02183337A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP319789A priority Critical patent/JP2844626B2/ja
Publication of JPH02183337A publication Critical patent/JPH02183337A/ja
Application granted granted Critical
Publication of JP2844626B2 publication Critical patent/JP2844626B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、オブジェクト指向型言語で書かれたプロ
グラムを実行するマイクロプロセッサの応用技術に関
し、例えばスモールトーク(Smalltalk)と呼ばれる言
語で動作するマイクロプロセッサにおけるメソッド(手
続き)の探索方式に利用して有効な技術に関する。
〔従来の技術及び発明が解決しようとする課題〕
オブジェクト指向型の言語で書かれたプログラムにお
いては、オブジェクトにメッセージを送付し、オブジェ
クトのメソッドを起動することによってプログラムが実
行される。従来のメソッド結合アルゴリズムでは、メッ
セージ送信が起こるとメッセージの受け手をスタックか
ら取り出し、メッセージ内のメッセージセレクタと受け
手のクラスから、ハッシュ関数によりハッシュ値を求め
ている。通常、この関数はメッセージセレクタとクラス
の排他的論理和を取るようになっている。そして、この
ハッシュ値に基づいてメソッド・キャシュと呼ばれるテ
ーブルを引いてメソッドを探し、メソッド・キャッシュ
内にメソッドがあれば(このチェックはセレクタとクラ
スが各々一致しているかどうかによって行われる(第5
図参照))メソッド・ハンドルとプリミティブ指標とを
使って実行するコードを求める。このとき、プリミティ
ブ指標の値がゼロならば、メソッド・ハンドルが示すオ
ブジェクトの中のメソッドのコード領域から、バイトコ
ード(命令コード)を順次読み出して実行していく。な
お、メソッドキャッシュを用いたメソッド探索方式につ
いては、例えば特開昭62-98433号公報に記載された「オ
ブジェクト指向型命令分岐装置」あるいは特開昭62-130
428号公報に記載された「情報処理装置」がある。
このように、従来のメソッド探索では、実行するコー
ドを求めるのに多くの処理を必要とするため時間がかか
り、プログラムの実行速度が遅くなるという問題点があ
った。
この発明は、オブジェクト指向型言語で書かれたプロ
グラムを実行するマイクロプロセッサにおいて、プログ
ラム実行速度を向上させた情報処理装置を提供すること
を目的とする。
〔課題を解決するための手段及び作用〕
上記問題を解決するために、この発明に係わる情報処
理装置は、オブジェクト指向言語で記述されたプログラ
ムを実行することができる情報処理装置において、メソ
ッドキャッシュ領域を、メッセージ送信に含まれるメッ
セージセレクタのうち、動的に多く起動され、静的にバ
イトコード解読時にセレクタ名が決定されるスペシャル
セレクタに対応するローカルメソッドキャッシュ領域
と、その他のメッセージセレクタである普通のセレクタ
に対応するグローバルメソッドキャッシュ領域とに分離
したメソッドキャッシュと、前記メッセージセレクタが
スペシャルセレクタである場合、受け手のクラス名をも
とに前記ローカルメソッドキャッシュ領域を検索してメ
ソッド探索処理を行う処理手段とを具備したことを特徴
とし、これにより実行するコードを容易かつ迅速に検索
できるようにしている。
また、前記メソッドキャッシュの前記ローカルメソッ
ドキャッシュ領域に前記スペシャルセレクタの種別に対
応した複数のローカルメソッドキャッシュ領域を設け、
前記処理手段は、前記メッセージセレクタがスペシャル
セレクタである場合、該メッセージセレクタの種別に対
応したローカルメソッドキャッシュ領域を検索してメソ
ッド検索処理を行うことを特徴とし、これにより、特定
されたセレクタのメソッドキャッシュを直ちに検索でき
るようにしている。
さらに、前記処理手段は、前記スペシャルセレクタの
メソッド検索処理を行う際、前記ローカルメソッドキャ
ッシュ領域で検索された受け手のクラス名と現在のメッ
セージの受け手のクラス名との一致確認後に、メソッド
がプリミティブか否かの判断を最初に行うことを特徴と
し、これにより、メッセージセレクタに対応して、さら
に実行速度の向上を図ることができるようにしている。
〔実施例〕
以下、この発明に係わる情報処理装置を、オブジェク
ト指向型言語であるスモールトークで記述したプログラ
ムのメソッド探索に適用した場合を例にして説明する。
第1図は、この発明に係わる情報処理装置のマイクロ
プロセッサ内部でのセレクタの構成を示す説明図であ
る。マイクロプロセッサ1の内部には、スペシャルセレ
クタ2と普通のセレクタ3の2種類のセレクタが設定さ
れ、スペシャルセレクタ2にはローカル・メソッドキャ
ッシュ群11a、11b…11nが設けられ、普通のセレクタ3
にはグローバル・メソッドキャッシュ12が設けられてい
る。ただし、ローカル・メソッドキャッシュやグローバ
ル・メソッドキャッシュの数は、1つでもよいし、複数
でもよい。
第2図は、スペシャルセレクタ2のローカル・メソッ
ドキャッシュの構成を示す説明図である。各メソッドキ
ャッシュ11a、11b…11nのフィールドには、3つの領域
が設けられており、最初の領域にはメッセージの受けて
のクラス名が入り、次の領域にはメソッド・ハンドル
が、最後の領域にはプリミティブ指標が入っている。第
3図は、普通のセレクタ3のグローバル・メソッドキャ
ッシュ12の構成を示す説明図である。このグローバル・
メソッドキャッシュ12の各フィールドには、4つの領域
が設けられており、最初の領域にメッセージ・セレクタ
が、次の領域にクラス名が入っている。これ以外の構成
は第2図のローカル・メソッドキャッシュと同様であ
る。このローカル・メソッドキャッシュは、後述するメ
ソッド探索の制御プログラムにより実行される。
オブジェクト指向言語のセレクタには、上述したよう
にスペシャルセレクタと普通のセレクタがある。特性上
の相違としては、静的には、スペシャルセレクタはバイ
トコード解読時にセレクタ名も決定されるが、普通のセ
レクタのセレクタ名はこの時には決定されない。また、
スペシャルセレクタは数が限定されており少ないが、普
通のセレクタは非常に多い。一方、動的には、起動され
るスペシャルセレクタではプリミティブが大部分を占め
るが、普通のセレクタではフルセンド(新たな環境生成
を伴う)が多くなる。このように、セレクタはそれぞれ
の特性に合わせて設定される。例えば、スペシャルセレ
クタはバイトコード解読時のセレクタも特定できるた
め、そのセレクタ用のメソッドキャッシュをすぐに引く
ことができる。また、メッセージの受け手のクラスをハ
ッシュ値とすれば、従来のようにメッセージセレクタと
受け手のクラスから、ハッシュ値を算出する必要がな
く、ヒットしたかどうかのチェックもクラスだけを照合
すればよい。更に、種類が少ない割りに動的に多く起動
されるスペシャルセレクタの各々にメソッドキャッシュ
を設けることにより、全体的なキャッシュのヒット率を
向上させることができる。この他、例えば比較的多く起
動されるスペシャルセレクタには大きめのメソッドキャ
ッシュを、あまり起動されないセレクタには小さめのメ
ソッドキャッシュを設定することにより、各セレクタに
合せた最適化を行うことも可能となる。
なお、起動されるスペシャルセレクタではプリミティ
ブが大部分を占めるため、キャッシュされていた受け手
のクラスと現在のクラスが一致しているかどうかを確認
した後では、メソッドがプリミティブかどうかの検査を
最初に行い、以下、メソッドがフルセンドかどうか、受
け手のインスタンス変数を返すのかどうか、受け手自身
を返すのかどうかの順に検査を行う。なお、普通のセレ
クタの場合には、第5図に示すように、まず、メソッド
がフルセンドかどうかの検査を行い、以下、メソッドが
プリミティブかどうか、受け手のインスタンス変数を返
すのかどうか、受け手自身を返すのかどうかの順に検査
を行う。
この実施例では、メソッドキャッシュとして第2図と
第3図に示した2種類のメソッドキャッシュを設け、ス
ペシャルセレクタには、スペシャルセレクタの種別毎
に、第2図に示したローカル・メソッドキャッシュ11
a、11b…、11nの一つを割り当て、普通のセレクタには
第3図のグローバル・メソッドキャッシュ12を使用する
ようにしている。
次に、第1図のマイクロプロセッサ1によりメソッド
探索を行う場合の処理手順を第4図のフローチャートに
基づいて説明する。
まず、メッセージの受け手のクラスをハッシュ値とし
(ステップ101)、メソッドキャッシュを引く(ステッ
プ102)。次に、キャッシュされていたメッセージの受
け手のクラスと現在のクラスが一致しているかどうかを
判断し(ステップ103)、クラスが一致していなければ
クラス階層を辿ってメソッドを探索する(ステップ10
4)。そして、探索したメソッドがプリミティブかどう
かを判断し(ステップ105)、プリミティブであればプ
リミティブの処理を行う(ステップ106)。また、ステ
ップ105でメソッドがプリミティブでないときは、メソ
ッドがフルセンドかどうか判断する(ステップ107)。
ここでメソッドがフルセンドであればフルセンドの処理
を行い(ステップ108)、フルセンドでなければメソッ
ドがインスタンス変数を返すのかどうかを判断する(ス
テップ109)。ここで変数を返す場合はステップ110に進
み、変数を返さないときはメッセージの受け手自身を返
す(ステップ111)。
なお、上記実施例では、スモールトークで記述したプ
ログラムを実行可能なマイクロプロセッサに適用した場
合について説明したが、この発明はこれに限定されるも
のではなく、スモールトーク以外のオブジェクト指向言
語で書かれたプログラムにおいて、プロシージャと呼ば
れる手続きを探索する場合にも適用することができる。
〔発明の効果〕
以上説明したように、この発明に係わる情報処理装置
では、メソッドキャッシュ領域を、メッセージ送信に含
まれるメッセージセレクタのうち、動的に多く起動さ
れ、静的にバイトコード解読時にセレクタ名が決定され
るスペシャルセレクタに対応するローカルメソッドキャ
ッシュ領域と、その他のメッセージセレクタである普通
のセレクタに対応するグローバルメソッドキャッシュ領
域とに分離し、前記メッセージセレクタがスペシャルセ
レクタである場合、受け手のクラス名をもとに前記ロー
カルメソッドキャッシュ領域を検索してメソッド探索処
理を行うようにし、実行するコードを容易かつ迅速に検
索できる。
また、前記ローカルメソッドキャッシュ領域に前記ス
ペシャルセレクタの種別に対応した複数のローカルメソ
ッドキャッシュ領域を設け、前記メッセージセレクタが
スペシャルセレクタである場合、該メッセージセレクタ
の種別に対応したローカルメソッドキャッシュ領域を検
索してメソッド探索処理を行うようにし、特定されたセ
レクタのメソッドキャッシュを直ちに検索できる。
さらに、前記スペシャルセレクタのメソッド探索処理
において、前記ローカルメソッドキャッシュ領域で検索
された受け手のクラス名と現在のメッセージの受け手の
クラス名との一致確認後に、メソッドがプリミティブか
否かの判断を最初に行うようにし、メッセージセレクタ
に対応して、さらに実行速度の向上を図ることができ
る。
【図面の簡単な説明】
第1図はマイクロプロセッサ内部でのセレクタの構成を
示す説明図、第2図はスペシャルセレクタ専用のメソッ
ドキャッシュの構成を示す説明図、第3図は普通のセレ
クタ用のグローバル・メソッドキャッシュの構成を示す
説明図、第4図はマイクロプロセッサによりスペシャル
セレクタに対応するメソッド探索を行う場合の処理手順
を示すフローチャート、第5図はマイクロプロセッサに
よりメソッド検索を行う場合の従来の処理手順を示すフ
ローチャートである。 1……マイクロプロセッサ、2……スペシャルセレク
タ、3……普通のセレクタ、11a、11b〜11n……ローカ
ル・メソッドキャッシュ、12……グローバル・メソッド
キャッシュ。

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】オブジェクト指向言語で記述されたプログ
    ラムを実行することができる情報処理装置において、 メソッドキャッシュ領域を、メッセージ送信に含まれる
    メッセージセレクタのうち、動的に多く起動され、静的
    にバイトコード解読時にセレクタ名が決定されるスペシ
    ャルセレクタに対応するローカルメソッドキャッシュ領
    域と、その他のメッセージセレクタである普通のセレク
    タに対応するグローバルメソッドキャッシュ領域とに分
    離したメソッドキャッシュと、 前記メッセージセレクタがスペシャルセレクタである場
    合、受け手のクラス名をもとに前記ローカルメソッドキ
    ャッシュ領域を検索してメソッド探索処理を行う処理手
    段と を具備したことを特徴とする情報処理装置。
  2. 【請求項2】前記メソッドキャッシュの前記ローカルメ
    ソッドキャッシュ領域に前記スペシャルセレクタの種別
    に対応した複数のローカルメソッドキャッシュ領域を設
    け、 前記処理手段は、前記メッセージセレクタがスペシャル
    セレクタである場合、該メッセージセレクタの種別に対
    応したローカルメソッドキャッシュ領域を検索してメソ
    ッド探索処理を行う ことを特徴とする請求項(1)に記載の情報処理装置。
  3. 【請求項3】前記処理手段は、前記スペクトルセレクタ
    のメソッド探索処理を行う際、前記ローカルメソッドキ
    ャッシュ領域で検索された受け手のクラス名と現在のメ
    ッセージの受け手のクラス名との一致確認後に、メソッ
    ドがプリミティブか否かの判断を最初に行うことを特徴
    とする請求項(2)に記載の情報処理装置。
JP319789A 1989-01-10 1989-01-10 情報処理装置 Expired - Fee Related JP2844626B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP319789A JP2844626B2 (ja) 1989-01-10 1989-01-10 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP319789A JP2844626B2 (ja) 1989-01-10 1989-01-10 情報処理装置

Publications (2)

Publication Number Publication Date
JPH02183337A JPH02183337A (ja) 1990-07-17
JP2844626B2 true JP2844626B2 (ja) 1999-01-06

Family

ID=11550695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP319789A Expired - Fee Related JP2844626B2 (ja) 1989-01-10 1989-01-10 情報処理装置

Country Status (1)

Country Link
JP (1) JP2844626B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3472775B2 (ja) * 2001-10-31 2003-12-02 株式会社アプリックス 中間コード実行システム、中間コード実行方法および中間コード実行プログラム

Also Published As

Publication number Publication date
JPH02183337A (ja) 1990-07-17

Similar Documents

Publication Publication Date Title
US5949985A (en) Method and system for handling interrupts during emulation of a program
US6718364B2 (en) Method and apparatus for expedited file downloads in an applet environment
US6122638A (en) Object-oriented processor and method for caching intermediate data in an object-oriented processor
CA1266530A (en) Virtual memory address fetching
JP3808755B2 (ja) Jitコンパイラを備えた仮想計算機
JPH11272468A (ja) オブジェクト指向システムにおけるサイト特定メッセージディスパッチ
KR19990037015A (ko) 객체-지향 시스템에서 수신기 타입을 위한 인-라인데이터베이스
US7313587B1 (en) Method and apparatus for localizing Web applications
US6052530A (en) Dynamic translation system and method for optimally translating computer code
US6553426B2 (en) Method apparatus for implementing multiple return sites
Stonebraker et al. Performance enhancements to a relational database system
JP2844626B2 (ja) 情報処理装置
JPH04213135A (ja) 外部メモリアクセスシステム
JPS6167160A (ja) 仮想アドレス変換装置
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JP2000122876A (ja) 情報処理装置
US6904516B2 (en) Mechanism for enabling efficient execution of an instruction
JPH0552539B2 (ja)
JP2006164294A (ja) Jitコンパイラを備えた仮想計算機
JP2005063165A (ja) 仮想計算機の高速エミュレータ
JP3494116B2 (ja) 処理装置
JPH0731601B2 (ja) 情報処理装置
KR960003052B1 (ko) 내장된 캐쉬 메모리 유니트를 가진 마이크로프로세서
CA2053941A1 (en) System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction
JPH0630065B2 (ja) 情報検索方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees