JPS62208132A - Electronic computer - Google Patents

Electronic computer

Info

Publication number
JPS62208132A
JPS62208132A JP61050586A JP5058686A JPS62208132A JP S62208132 A JPS62208132 A JP S62208132A JP 61050586 A JP61050586 A JP 61050586A JP 5058686 A JP5058686 A JP 5058686A JP S62208132 A JPS62208132 A JP S62208132A
Authority
JP
Japan
Prior art keywords
bus
receiver
output
memory
selector
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
JP61050586A
Other languages
Japanese (ja)
Inventor
Yutaka Iizuka
裕 飯塚
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP61050586A priority Critical patent/JPS62208132A/en
Publication of JPS62208132A publication Critical patent/JPS62208132A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To execute processing required for message sending within a short period and to improve the execution speed of small talk by changing the sequence of a microprogram when a method is to be found out during the execution of a program. CONSTITUTION:When a message sending is generated during the execution of small talk 80 after initializing a method cache and the method is to be found, the contents of a receiver are written from an ALU 110 to a receiver register 201 and a selector register 202 through a bus Y 107 and a hush circuit 206 hushes the receiver and selector and adds the hushed contents to an address line of a memory 217. The output of the register 201 is compared with the output receiver of the memory 217 by a comparator (1) 209, the contents of the register 202 is compared with the output selector of the memory 217 by a comparator (2) 210, and at the time of coincidence, '1' is outputted respectively. The memory 217 simultaneously outputs a method, an index and an effective flag. At the time of reading the method, the index is outputted to a bus 103 to control the execution sequence of a microprogram.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はオブジェクト指向言語を実行する電子計算機に
関し、更に詳細にはSmalltalk −80の専用
電子計算機におけるハードウェア・メソッド・キャッシ
ュに関する。
DETAILED DESCRIPTION OF THE INVENTION Field of the Invention The present invention relates to computers running object-oriented languages, and more particularly to hardware method caching in Smalltalk-80 special purpose computers.

(従来の技術) 近年、電子計算機の分野においては、従来から広く用い
られている手続き指向言語(手続きでプログラムを記述
する)に代えて、オブジェクト指向言語(内部状態とし
ての値と手続きを持つオブジェクトでプログラムを記述
する)の使用が提案されている。オブジェクト指向言語
としては、Smalltalk−80が代表的なものと
して知られている。これに関しては、次の文献に詳しい
ニスモールトーク−80:ザ ラングエツジ アンドイ
ツツ インプレメンテ−ジョン、アデイソンーウエスレ
イ 11371 、1983年5月(Smalltal
k−80: THE LANGUAGE AND  I
TS IMPLE−MENTATION、ADDISO
N−WESLEY11371゜May 1983 )。
(Prior art) In recent years, in the field of electronic computers, object-oriented languages (objects with values and procedures as internal states) are being used instead of procedure-oriented languages (programs are written using procedures), which have traditionally been widely used. It has been proposed to use Smalltalk-80 is known as a typical object-oriented language. For more information on this, please refer to the following literature: Small Talk-80: The Language and Germans Implementation, Addison-Wesley, 11371, May 1983.
k-80: THE LANGUAGE AND I
TS IMPLE-MENTATION, ADDISO
N-WESLEY11371゜May 1983).

第4図は、Smalltalk −80実行用計算機の
一構成例を示すブロック図である。同図において、シー
ケンサ101はCバス102とNバス103に接続され
、マイクロ・プログラム・メモリ104はNバス103
とCバス102に接続される。レジスタAlO3はAバ
ス106とYバス107に接続され、レジスタB108
はBバス109とYバス107に接続される。
FIG. 4 is a block diagram showing an example of the configuration of a computer for executing Smalltalk-80. In the figure, a sequencer 101 is connected to a C bus 102 and an N bus 103, and a micro program memory 104 is connected to a C bus 102 and an N bus 103.
and C bus 102. Register AIO3 is connected to A bus 106 and Y bus 107, and register B108
is connected to B bus 109 and Y bus 107.

ALUlloはAバス106、Bバス109、Yパス1
07とNバス103に接続される。また、Cバス102
からは、レジスタAlO3、レジスタB108、ALU
lloへ接続される。メモリインターフェース111は
Aバス106、Yバス107と外部バス112に接続さ
れる。メモリ113は外部バス112に接続される。
ALUllo has A bus 106, B bus 109, and Y pass 1.
07 and N bus 103. Also, C bus 102
From register AIO3, register B108, ALU
Connected to llo. Memory interface 111 is connected to A bus 106, Y bus 107, and external bus 112. Memory 113 is connected to external bus 112.

制御部114は計算機全体をコントロールしている。A control unit 114 controls the entire computer.

次に、本計算機を動作させるには、第5図に示すような
3相のクロックを制御部114から全体へ供給する。計
算機はこのクロックに同期して動作する。3相のクロッ
クをCLKI 、CLK2 。
Next, to operate this computer, a three-phase clock as shown in FIG. 5 is supplied from the control section 114 to the entire computer. The computer operates in synchronization with this clock. The three-phase clocks are CLKI and CLK2.

CLK3と表わすと、CLKIとCLK2の差はクロッ
ク周期の20%に設定する。又CLK2とCLK3の差
も、クロック周期の20%に設定する。パイプライン・
ステージ内のタイミングとして、CLK2の立上りをT
o、C’LK3の立上9をT1、CLKIの立下シをT
2、CLK2の立下シをT3、CLK3の立下シをT4
、CLKIの立上シをT5、CLK2の立上シをT6と
定義する。第6図はこの構成全体の時間関係を表わした
図である。まず、シーケンサ101から1ステージ目の
ToからT4までの間、Nバス103へ、マイクロ・プ
ログラムのアドレスを出力する。Nバス103は、オー
プンコレクタのバスであシ負論理である。lステージ目
のT4から2ステージ目のToまでの間は、Nバス10
3はかならず「0」状態を保つ。マイクロ・プログラム
・メモリ104はNバス103からマイクロ・プログラ
ムのアドレスを入力し、メモリのアクセスを開始する。
When expressed as CLK3, the difference between CLKI and CLK2 is set to 20% of the clock period. The difference between CLK2 and CLK3 is also set to 20% of the clock cycle. pipeline·
As the timing within the stage, the rising edge of CLK2 is
o, C'LK3 rising 9 is T1, CLKI falling 9 is T1
2. T3 is the falling edge of CLK2, T4 is the falling edge of CLK3.
, CLKI start-up time is defined as T5, and CLK2 start-up time is defined as T6. FIG. 6 is a diagram showing the time relationship of this entire configuration. First, the sequencer 101 outputs the address of the microprogram to the N bus 103 from To to T4 in the first stage. The N bus 103 is an open collector bus and has negative logic. From T4 of the 1st stage to To of the 2nd stage, N bus 10
3 always remains in the "0" state. The micro program memory 104 receives the micro program address from the N bus 103 and starts accessing the memory.

マイクロ・プログラム・メモリ104はマイクロ・プロ
グラムのアドレスをT1からT3のタイミングでトラン
スペレントにラッチし、2ステージ目のT1まで保持す
る。マイクロ・プログラム・メモリ104は、メモリア
クセスの結果得たマイクロ命令を、1ステージ目のT3
から2ステージ目のT1までCバス102に出力する。
The micro program memory 104 transparently latches the micro program address at the timing from T1 to T3, and holds it until T1 of the second stage. The micro program memory 104 stores the micro instructions obtained as a result of memory access at T3 in the first stage.
It is output to the C bus 102 from T1 to the second stage.

Cバス102はスリーステートのバスであjり、TIか
らT3まではハイ・インピーダンス状態であシ、複数の
マイクロ・プログラム・メモリ104からの出力をゆる
している。次に、レジスタA 105はlステージ目の
T3から2ステージ目のToのタイミングで、Cバス1
02の内容ヲトランスベレントラツチする。Cバス10
2 ハ、lステージ目のT5には確定している。ラッチ
したマイクロ命令がレジスタA 105からの出力を指
定しているなら、レジスタAlO3は、メモリアクセス
を1ステージ目のT5から2ステージ目のT1までに行
ない、2ステージ目のTOからT4までの間得られたデ
ータをAバス106に出力する。
The C bus 102 is a three-state bus, and TI to T3 are in a high impedance state, allowing output from a plurality of micro program memories 104. Next, the register A 105 registers the C bus 1 at the timing from T3 of the lth stage to To of the second stage.
Transparently latch the contents of 02. C bus 10
2 C, it is confirmed at T5 of the lth stage. If the latched microinstruction specifies the output from register A 105, register AlO3 performs memory access from T5 in the first stage to T1 in the second stage, and from TO to T4 in the second stage. The obtained data is output to the A bus 106.

同様に、レジスタB108は1ステージ目のT3から2
ステージ目のToのタイミングで、Cバス102の内容
ヲトランスベレントラツチする。ラッチしたマイクロ命
令がレジスタB108からの出力を指定しているなら、
レジスタB108はメモリアクセスを1ステージのT5
から2ステージ目のT1までに行ない、2ステージ目の
TOからT4tでの間、得られたデータをBバス109
に出力する。次にマイクロ命令で指定された場合、AL
UIIOはAバスlO6、Bバス109の内容を2ステ
ージ目のT1からT3tでのタイミングでトランスベレ
ントラツチし、ALUオペレーションを行なう。演算は
3ステージ目のT2″!でに行ない、結果をラッチし、
3ステージ目のT2から3ステージ目のT6までの間Y
バス107に出力する。Yパス107はスリーステート
のパスであ、9、ToからT2まではハイ・インピーダ
ンス状態であシ、複数の演算ユニットからの出力をゆる
している。Aバス106、Bバス109も同様にスリー
ステートのパスであり、T4から次のTOまではハイ・
インピーダンス状態であシ、複数のレジスタなどからの
出力をゆるしている。A L U 110は演算の結果
条件フラッグをNパス103に出力する。出力するタイ
ミングは、3ステージ目のTOからT4までの間である
。Nパス103上では、シーケンサ101からのマイク
ロ・プログラムのアドレスとA L U 110からの
条件フラッグがワイヤードORされ条件スキップを行な
う。外部パス112に接続されたメモリ113などにデ
ータを書き込む場合、メモリ・インターフェース111
はYバス107からアドレス情報と、書き込むデータを
受は取り、外部バス112に出力する。
Similarly, register B108 is 2 from T3 in the first stage.
The contents of the C bus 102 are transversely latched at the timing of To in the second stage. If the latched microinstruction specifies output from register B108, then
Register B108 performs one stage of memory access at T5.
to T1 of the second stage, and the data obtained from TO to T4t of the second stage is transferred to the B bus 109.
Output to. Next, if specified by a microinstruction, AL
The UIIO transversely latches the contents of the A bus lO6 and the B bus 109 at the timing from T1 to T3t of the second stage, and performs an ALU operation. The calculation is performed at T2''! of the third stage, the result is latched,
Y from T2 of the 3rd stage to T6 of the 3rd stage
Output to bus 107. The Y path 107 is a three-state path, and is in a high impedance state from 9.To to T2, allowing output from a plurality of arithmetic units. Similarly, the A bus 106 and B bus 109 are three-state paths, and are high from T4 to the next TO.
In the impedance state, output from multiple registers is allowed. The ALU 110 outputs the result condition flag of the operation to the N path 103. The output timing is between TO of the third stage and T4. On the N path 103, the address of the microprogram from the sequencer 101 and the condition flag from the ALU 110 are wired ORed to perform condition skipping. When writing data to the memory 113 connected to the external path 112, the memory interface 111
receives address information and data to be written from the Y bus 107 and outputs it to the external bus 112.

外部バス112に接続されたメモリなどからデータを読
み出す場合、メモリ・インターフェース111はYバス
107からアドレス情報を受けとシ、外部バス112に
出力する。メモリ・インターフェース111はメモリア
クセスの結果得られたデータを外部バス112を通じて
受は取シ、Aバス106に出力する。そのタイミングは
上記のとうシである。なお、外部バスの一例としてはV
MEバスなどがあげられる。
When reading data from a memory or the like connected to the external bus 112 , the memory interface 111 receives address information from the Y bus 107 and outputs it to the external bus 112 . The memory interface 111 receives and receives data obtained as a result of memory access through the external bus 112 and outputs it to the A bus 106. The timing is as described above. Note that an example of an external bus is V
Examples include ME bus.

Smalltalk −80を高速に実行する場合、メ
ツセージのレシーバとセレクタから、実際に実行するメ
ソッドを求めるためのメソッドキャッシュが必要になる
。メソッドキャッシュは1〜4にワード程度のテーブル
であシ、外部メモリ上に置かれる。テーブルのキーとな
るのはレシーバ、セレクタであシそれぞれ16ビツト程
度の長さを持つので、ハツシュ関数により10〜12ピ
ツトに縮め、テーブルの1つのエントリをポイントする
。テーブルのエントリは一例としてレシーバ、セレクタ
、メソッド、ブリミイテイブインデックスでアシ、キー
となるレシーバ、セレクタと二ントリ内のレシーバ、セ
レクタが一致すればヒツトであシ、メソッド、ブリミイ
テイブインデックスは有効である。一方、一致しなけれ
ば別の方法でメソッド、ブリミイテイプインデックスを
求めなければならない。従来のSmalltalk−8
0専用電子計算機は以上の動作をマイクロコードにより
実現していた。
To execute Smalltalk-80 at high speed, a method cache is required to find the method to be actually executed from the message receiver and selector. The method cache is a table of about 1 to 4 words and is placed on external memory. Since the keys of the table are the receiver and selector, each having a length of about 16 bits, they are shortened to 10 to 12 bits using a hash function and point to one entry in the table. For example, the entries in the table are receiver, selector, method, primitive index, receiver as key, selector and receiver in two entries, if the selector matches, it is a human, method, primitive index. is valid. On the other hand, if they do not match, another method must be used to find the brimmy tape index. Conventional Smalltalk-8
The 0-only electronic computer achieved the above operations using microcode.

(発明が解決しようとする問題点) しかしながら上記構成の装置では、レシーバ、セレクタ
からメソッド、ブリミイテイプインデックスを求めるの
にマイクロ命令が数十ステップとメモリアクセスが数回
必要で、時間がかかシ、Smalltalk−80を実
行する上でのネックとなっていた。
(Problem to be Solved by the Invention) However, in the device with the above configuration, it takes several tens of microinstruction steps and several memory accesses to obtain the method and brimitage index from the receiver and selector, which takes time. However, this has become a bottleneck in running Smalltalk-80.

本発明は以上述べたメソッド、ブリミイテイブインデッ
クスを求めるのに時間がかかるという欠点を除去し、S
malltalk−80を高速に実行する電子計算機を
提供することを目的とする。
The present invention eliminates the disadvantage of the method described above that it takes time to obtain a primitive index, and
The purpose of the present invention is to provide an electronic computer that can execute malltalk-80 at high speed.

(問題点を解決するための手段) 本発明はオブジェクト指向言語を実行する電子計算機を
対象とし、前記従来技術の問題点を解決するため、マイ
クロプログラムから直接書き込めるレシーバを保持す名
第1の手段と、マイクロプログラムから直接書き込める
セレクタを保持する第2の手段と、第1の手段からのレ
シーバと第2の手段からのセレクタをハツシュしてポイ
ンタとして出力する第3の手段と、メソッド、インデッ
クスを登録するためのキャッシュテーブルを有し第3の
手段のポインタによりレシーバ、セ°レクタ、メソッド
、インデックス、有効フラッグを出力する第4の手段と
、第4の手段からのメソッドをパスに出力する第5の手
段と、第4の手段からのレシーバと第1の手段からのレ
シーバとを比較する第6の手段と、第4の手段からのセ
レクタと第2の手段からのレシーバとを比較する第7の
手段と、第4の手段からの有効フラッグと、第6の手段
の出力と、第7の手段の出力との論理演算を行なう第8
の手段と、第8の手段の演算結果にしたがいインデック
スをマイクロプログラムバスに出力しマイクロプログラ
ムのシーケンスを制御する第9の手段と、マイクロプロ
グラムからレシーバ、セレクタ、メソッド、インデック
ス、有効フラグを第4の手段に同時に書き込む第10の
手段とから成るメソッド・キャッシュを設けたものであ
る。
(Means for Solving the Problems) The present invention is directed to an electronic computer that executes an object-oriented language, and in order to solve the problems of the prior art described above, the present invention provides a first means for maintaining a receiver that can be written directly from a microprogram. a second means for holding a selector that can be written directly from the microprogram; a third means for hashing the receiver from the first means and the selector from the second means and outputting it as a pointer; a fourth means that has a cache table for registration and outputs the receiver, selector, method, index, and valid flag using the pointer of the third means; and a fourth means that outputs the method from the fourth means to the path. a sixth means for comparing the receiver from the fourth means and the receiver from the first means; and a sixth means for comparing the selector from the fourth means and the receiver from the second means. an eighth means for performing a logical operation on the valid flag from the seventh means, the output of the sixth means, and the output of the seventh means;
a ninth means for controlling the sequence of the microprogram by outputting an index to the microprogram bus according to the calculation result of the eighth means; and a fourth means for outputting the receiver, selector, method, index, and valid flag from the microprogram to the microprogram bus A method cache consisting of a tenth means for simultaneously writing to the first means is provided.

(作用) プログラム実行中にメツセージ・センドが起シメソッド
を求める場合、マイクロプログラムの制御により、第1
の手段にはレシーバが書き込まれ、第2の手段にはセレ
クタが書き込まれ、両者の保持が行なわれる。第3の手
段は第1の手段のレシーバと第2の手段のセレクタを受
取シ、これらをハツシュして第4の手段へのポインタと
して出力する。第4の手段は第3の手段からのポインタ
に相応するエントリを出力し、第5の手段はこのうちメ
ソッドをバスに出力する。一方、第6の手段は第1の手
段からのレシーバと第4の手段からのレシーバが一致し
ているか否か比較する。第7の手段は第2の手段からの
セレクタと第4の手段からのセレクタが一致しているか
否かを比較する。
(Function) When a message send method is requested during program execution, the first
A receiver is written in the first means, a selector is written in the second means, and both are held. The third means receives the receiver of the first means and the selector of the second means, hashes them, and outputs them as a pointer to the fourth means. The fourth means outputs an entry corresponding to the pointer from the third means, and the fifth means outputs the method among them to the bus. On the other hand, the sixth means compares whether the receiver from the first means and the receiver from the fourth means match. The seventh means compares whether the selector from the second means and the selector from the fourth means match.

第8の手段は、第6の手段の出力と、第7の手段の出力
と、第4の手段からの有効フラグとの論理演算を行なう
。例えば第8の手段の論理和か”1”のときには、第9
の手段はインデックスをマイクロプログラムバスに出力
し、マイクロプログラムのシーケンスを変更する。また
、第8の手段の論理和がO”のときには、第4の手段に
メソッド、インデックスが登録されていなかったという
ことなので、第10の手段はマイクロプログラムにより
レシーバ、セレクタ、メソッド、インデックス、有効フ
ラグを同時に第4の手段に書き込む。以上によυ、短時
間でメツセージ・センドに必要な処理が可能となシ、S
malltalk −80が高速で実行可能となる。し
たがって前記従来技術の問題点が解決される。
The eighth means performs a logical operation on the output of the sixth means, the output of the seventh means, and the valid flag from the fourth means. For example, when the logical sum of the eighth means is "1", the ninth means
The means output the index to the microprogram bus and change the sequence of the microprogram. In addition, when the logical sum of the eighth means is O'', it means that no method or index is registered in the fourth means, so the tenth means is a receiver, selector, method, index, valid The flags are written to the fourth means at the same time.Through the above, it is possible to perform the necessary processing for message sending in a short time.
malltalk-80 can be executed at high speed. Therefore, the problems of the prior art described above are solved.

(実施例) 以下、本発明の実施例を図面を参照して詳細に説明する
(Example) Hereinafter, an example of the present invention will be described in detail with reference to the drawings.

第1図は本実施例の電子計算機の特徴部分であるメソッ
ド・キャッシュの構成を詳細に示すブロック図、第2図
は本実施例の電子計算機の概略ブロック図である。まず
、第2図によりミ子計算機の全体構成を説明する。シー
ケンサ101はCバス102とNバス103に接続され
、マイクロ・プログラム・メモ!J104はNバス10
3ト、Cバス102に接続される。レジスタAlO3は
Aバス106とYパス107に接続され、レジスタB1
08はBバス109とYパス107に接続される。A 
L U 110はAバス106 、 Bパス109 、
 Yパス107とNバス103に接続される。また、C
バス102からは、レジスタAlO3、レジスタB 1
08 、 ALU 110へ接続される。
FIG. 1 is a block diagram showing in detail the structure of a method cache, which is a characteristic part of the computer of this embodiment, and FIG. 2 is a schematic block diagram of the computer of this embodiment. First, the overall configuration of the Miko computer will be explained with reference to FIG. A sequencer 101 is connected to a C bus 102 and an N bus 103, and a micro program memo! J104 is N bus 10
3 and connected to the C bus 102. Register AIO3 is connected to A bus 106 and Y path 107, and register B1
08 is connected to the B bus 109 and the Y path 107. A
L U 110 is A bus 106, B path 109,
It is connected to the Y path 107 and the N bus 103. Also, C
From the bus 102, register AlO3, register B1
08, connected to ALU 110.

メモリ・インターフェース1111dAバス106 、
 Yバス107と外部バス112に接続される。メモリ
113は外部バス112に接続される。制御部114は
全体をコントロールしている。メソッド・キャッシュ1
15はAバス106 、 Yバス107 、 Cバス1
02 、 Nバス103に接続される。メソッド・キャ
ッシュ115以外は従来の電子計算機と同一である。
Memory interface 1111dA bus 106,
It is connected to Y bus 107 and external bus 112. Memory 113 is connected to external bus 112. A control section 114 controls the entire system. method cache 1
15 is A bus 106, Y bus 107, C bus 1
02 and N bus 103. Everything except the method cache 115 is the same as a conventional electronic computer.

次に、メソッド・キャッシュ115の内部構成について
第1図に基づき詳細に説明する。
Next, the internal structure of the method cache 115 will be explained in detail based on FIG.

第1図に示すように、メソッド・キャッシュ115ハ、
レシーバレジスタ201、セレクタレジスタ202、ド
ライバ203、メソッドレジスタ204、マルチプレク
サ(1) 205、ハツシュ回路206、ドライバ20
7゜208、コンパレータ(1) 209 、 (2)
 210 、  ドライバ211゜212、マルチプレ
クサ(2)213、ANDゲート214、オープンコレ
クタNANDドライバ215、ドライバ216、メモリ
217及び制御部i18よシ構成される。各要素の接続
関係について述べると、Yバス107はマルチプレクサ
(1) 205の一方の入力とドライバ203の入力に
接続される。Yパス107のLSBを除いた部分はレシ
ーバレジスタ201、セレクタレジスタ202及びメソ
ッドレジスタ204の各入力に接続される。レシーバレ
ジスタ201の出カバハツシュ回路206の一方の入力
、ドライバ207の入力及びコンパレータ(1) 20
9の一方の入力にそれぞれ接続される。セレクタレジス
タ202の出力はハツシュ回路206のもう一方の入力
、ドライバ208の入力及びコンパレータ(2)210
の一方の入力に、それぞれ接続される。ハツシュ回路2
06の出力はマルチプレクサ(1) 205のもう一方
の入力に接続される。マルチプレクサ(1) 205の
出力はメモリ217のアドレス線に接続される。ドライ
バ207の出力はコンパレータ(1) 209のもう一
方の入力とメモリ217のI10線に接続される。ドラ
イバ208の出力はコンパレータ(2)210のもう一
方の入力とメモリ217のI10線に接続される。ドラ
イバ203の出力はメモリ217のI10線とオープン
コレクタNANDドライバ215の一方の入力に接続さ
れる。
As shown in FIG. 1, a method cache 115,
Receiver register 201, selector register 202, driver 203, method register 204, multiplexer (1) 205, hash circuit 206, driver 20
7゜208, comparator (1) 209, (2)
210, drivers 211 and 212, multiplexer (2) 213, AND gate 214, open collector NAND driver 215, driver 216, memory 217, and controller i18. Regarding the connection relationship between each element, the Y bus 107 is connected to one input of the multiplexer (1) 205 and the input of the driver 203. A portion of the Y path 107 excluding the LSB is connected to each input of a receiver register 201, a selector register 202, and a method register 204. One input of the output hash circuit 206 of the receiver register 201, the input of the driver 207, and the comparator (1) 20
9, respectively. The output of the selector register 202 is the other input of the hash circuit 206, the input of the driver 208 and the comparator (2) 210.
are connected to one input of each. Hash circuit 2
The output of 06 is connected to the other input of multiplexer (1) 205. The output of multiplexer (1) 205 is connected to the address line of memory 217. The output of driver 207 is connected to the other input of comparator (1) 209 and to the I10 line of memory 217. The output of driver 208 is connected to the other input of comparator (2) 210 and to the I10 line of memory 217. The output of driver 203 is connected to the I10 line of memory 217 and one input of open collector NAND driver 215.

メソッドレジスタ204の出力はドライバ2110入力
に接続される。ドライバ211の出力はメモリ217の
I10線とドライバ216の入力に接続される。
The output of method register 204 is connected to the driver 2110 input. The output of driver 211 is connected to the I10 line of memory 217 and the input of driver 216.

ドライバ216の出力はAパス106に接続される。The output of driver 216 is connected to A-path 106.

ドライバ216はAバス106のLSBには常にrlJ
を出力する。マルチプレクサ(2)213の入力はそれ
ぞれ「0」と「1」である。マルチプレクサ(2)21
3の出力はドライバ212の入力に接続される。ドライ
バ212の出力はメモリ217のVO線とANDゲ−)
 214の第1の入力に接続される。コンパレータ(1
) 209の出力はANDゲート214の第2の入力に
接続される。コンパレータ(2)210の出力はAND
ゲート214の第3の入力に接続される。ANDゲ−)
 214の出力はオープンコレクタNANDドライバ2
15のもう一方の入力に接続される。オーブンコレクタ
NANDドライバ215の出力はNパス103に接続さ
れる。制御部218はメソッド・キャッシュ全体をコン
トロールしている。
Driver 216 always has rlJ on the LSB of A bus 106.
Output. The inputs of multiplexer (2) 213 are "0" and "1", respectively. Multiplexer (2) 21
The output of 3 is connected to the input of driver 212. The output of the driver 212 is ANDed with the VO line of the memory 217)
214. Comparator (1
) 209 is connected to the second input of AND gate 214. The output of comparator (2) 210 is AND
Connected to a third input of gate 214. AND game)
214 output is open collector NAND driver 2
15 is connected to the other input. The output of oven collector NAND driver 215 is connected to N path 103. A control unit 218 controls the entire method cache.

次に、動作について説明する。まずメソッド・キャッシ
ュを初期化するために、マルチプレクサ(1) 205
をYバス107側に切シ換え、マルチプレクサ(2)2
13を「0」側に切シ換える。次に、ALUIIOから
Yパス107、マルチプレクサ(1) 205を通じア
ドレスOをメモリ217のアドレス線に加える。次に、
メモリ217にライトパルスを加え、ドライバ212を
アクティブにして、「0」を有効フラッグピットに書き
込む。すなわち、そのエントリは無効となる。メモリ2
17のアドレスをOからテーブルのエントリの最後まで
、上記と同様に「0」を有効フラッグビットに書き込み
、テーブルのすべてのエントリを無効にする。
Next, the operation will be explained. First, to initialize the method cache, multiplexer (1) 205
to the Y bus 107 side, and multiplexer (2) 2
13 to the "0" side. Next, address O is applied from ALUIIO to the address line of memory 217 through Y path 107 and multiplexer (1) 205. next,
A write pulse is applied to memory 217 to activate driver 212 and write a "0" to the valid flag pit. In other words, the entry becomes invalid. memory 2
17 address from O to the end of the table entry, "0" is written to the valid flag bit in the same way as above, invalidating all entries in the table.

次にSmal l talk −80実行中に、メツセ
ージ。
Next, while running Small talk-80, I received a message.

センドが起シ、メソッドを求める場合であるが、メモリ
217は常にアクティブ状態であシ、データをI10線
に出力している。ドライバ207、ドライバ208、ド
ライバ203、ドライバ211、ドライバ212はディ
スエーブル状態である。マルチプレクサ(1) 205
はハツシュ回路206側を選択している。
When a send occurs and a method is requested, the memory 217 is always in an active state and outputs data to the I10 line. Driver 207, driver 208, driver 203, driver 211, and driver 212 are disabled. Multiplexer (1) 205
selects the hash circuit 206 side.

まず、A L U 110からYバス107を通じ、レ
シーバをレシーバレジスタ201に書き込む。次にAL
UlloからYバス107を通じセレクタをセレクタレ
ジスタ202に書き込む。書き込むタイミングはそれぞ
れ3ステージ目のT5(第6図参照)である。
First, the receiver is written into the receiver register 201 from the ALU 110 via the Y bus 107. Next, A.L.
The selector is written from Ullo to the selector register 202 via the Y bus 107. The writing timing is T5 of the third stage (see FIG. 6).

ハフ シ二回路206 ハレシーバ、セレクタヲハッシ
ュし、マルチプレクサ(1) 205を通じ、メモリ2
17のアドレス線に加える。第3図はハツシュ回路20
6の一例を示す図である。第3図の例はレシーバ、セレ
クタは16ビツト、キャッシュテーブルのサイズは4に
ワードで、マルチプレクサ(1) 205へのアドレス
出力は12ピツトの場合である。メモリ217は加えら
れたアドレスに対応するエントリをI10線に出力する
。コンパレータ(1) 209はレシーバレジスタ20
1の出力と、メモリ217から出力されるレシーバを比
較し、一致していれば「1」を出力する。コンパレータ
(2)210はセレクタレジスタ202の出力と、メモ
リ217から出力されるセレクタを比較し、一致してい
れば「1」を出力する。
The hashing circuit 206 hashes the receiver, selector, and the memory 2 through the multiplexer (1) 205.
Add to address line 17. Figure 3 shows the hashish circuit 20.
FIG. 6 is a diagram showing an example of No. 6; In the example shown in FIG. 3, the receiver and selector are 16 bits, the cache table size is 4 words, and the address output to multiplexer (1) 205 is 12 bits. Memory 217 outputs the entry corresponding to the added address to line I10. Comparator (1) 209 is receiver register 20
The output of "1" is compared with the receiver output from the memory 217, and if they match, "1" is output. Comparator (2) 210 compares the output of selector register 202 and the selector output from memory 217, and outputs "1" if they match.

どちらも、一致していなければ「0」を出力する。If both do not match, "0" is output.

同時に、メモリ217はメソッドとインデックスと有効
フラッグを出力している。
At the same time, the memory 217 is outputting the method, index, and valid flag.

マイクロ命令により、メソッドをメソッド・キャッシュ
115から読み出す場合、2ステージ目のToからT4
まで、ドライバ216をアクティブにして、メモリ21
7からのメソッドをAバス106に出力する。メソッド
はポインタであるので、Aバス106のLSBには常に
rOJを出力する。Aバス106にメソッドを出力する
と同時にANDゲート214では、メモリ217からの
有効フラッグとコンパレータ(1) 209の出力と、
コンパレ=り(2)210の出力とのANDをとシ、結
果が「1」であれば、オープンコレクタNANDドライ
バ215からインデツクスをNバス103に出力し、マ
イクロプログラムの実行シーケンスをコントロールする
。インデックスは一例として12ビット程度である。イ
ンデックスをNバス103に出力するのは2ステージ目
のTOからT4の間である。
When reading a method from the method cache 115 using a microinstruction, from To to T4 in the second stage
Activate the driver 216 until the memory 21
The method from 7 is output to the A bus 106. Since the method is a pointer, rOJ is always output to the LSB of the A bus 106. At the same time as outputting the method to the A bus 106, the AND gate 214 outputs the valid flag from the memory 217 and the output of the comparator (1) 209.
Comparison (2) AND with the output of 210 is performed, and if the result is "1", the index is output from the open collector NAND driver 215 to the N bus 103 to control the execution sequence of the microprogram. The index is, for example, about 12 bits. The index is output to the N bus 103 between TO and T4 in the second stage.

一方、ANDゲート214の出力が「0」であった時に
はメソッド・キャッシュ115にはメソッド。
On the other hand, when the output of the AND gate 214 is "0", the method is stored in the method cache 115.

インデックスが登録されていなかったということである
から、別の方法でメソッド、インデックスを求めキャッ
シュテーブルに登録する必要がある。
Since the index was not registered, it is necessary to find a method and index using another method and register it in the cache table.

マイクロプログラムによりメソッドとインデックスを求
め、まずメソッドをメソッドレジスタ204に書き込む
。書き込むタイミングは3ステージ目のT5である。次
にマルチプレクサ(2)213の入力を「1」側に切シ
換え、ALUIIOからインデックスをYバス107に
出力すると同時に、メモリ217にライトパルスを加え
、ドライバ207、ドライバ208、ドライバ203、
ドライバ211、ドライバ212をアクティブにして、
レシーバ、セレクタ、メソッド、インデックス、有効フ
ラッグ=1を同時に書き込む。書き込むタイミングは3
ステージ目のT5である。一度書き込めばそのエントリ
は有効であシ、後に同じレシーバ、セレクタによりメソ
ッド、インデックスが求められた時には、前記のように
メソッド、インデックスを得ることができる。
The method and index are determined by the microprogram, and the method is first written into the method register 204. The writing timing is T5 of the third stage. Next, the input of multiplexer (2) 213 is switched to the "1" side, the index is output from ALUIIO to Y bus 107, and at the same time a write pulse is applied to memory 217, driver 207, driver 208, driver 203,
Activate driver 211 and driver 212,
Write receiver, selector, method, index, and valid flag = 1 at the same time. The writing timing is 3
This is stage T5. Once written, the entry is valid, and when a method or index is later requested by the same receiver or selector, the method or index can be obtained as described above.

以上、本発明の一実施例について詳細に述べてきたが、
この実施例によれば、メソッド・キャッシュをマイクロ
プログラムから直接コントロール可能とfx9、又ハツ
シュ回路206、コンパレータ209 、210により
求めるメソッド、インデックスがテーブルに登録されて
いるかどうかを短時間に判定できる。更にインデックス
情報を12ビツトというように広くとシ、ブリミイテイ
ブインデックスのみならずアーギュメント数、テンポラ
リ変数の数、コンテキストの大きさなどを複合して格納
することにより短時間でメツセージ・センドに必要な処
理を行なえる。したがって本実施例はSmalltal
k −80を高速に実行可能である。
Although one embodiment of the present invention has been described in detail above,
According to this embodiment, the method cache can be directly controlled from the microprogram, and it can be determined in a short time whether or not the desired method and index are registered in the table using the hash circuit 206 and the comparators 209 and 210. Furthermore, by widening the index information to 12 bits and storing not only the primitive index but also the number of arguments, the number of temporary variables, the size of the context, etc., it is possible to quickly send messages in a short time. processing. Therefore, this embodiment is small.
k-80 can be executed at high speed.

(発明の効果) 以上詳細に説明したように、本発明によれば、メソッド
、ブリミイテイプインデックスを短時間で求めることが
できるので、Smalltalk −80を高速に実行
する電子計算機を提供することができる。
(Effects of the Invention) As described in detail above, according to the present invention, it is possible to obtain a method and a brimmy tape index in a short time, so it is possible to provide a computer that can execute Smalltalk-80 at high speed. can.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の一実施例におけるメソッド・キャッシ
ュの構成を示すブロック図、第2図は本発明の一実施例
の全体構成を示すブロック図、第3図はハツシュ回路の
説明図、第4図は従来のSmalltalk−80実行
用計算機の構成を示す1172図、第5図は第4図の計
算機で用いられる3相クロツクを示す図、第6図は第4
図の計算機におけるマイクロプログラムによるバスのタ
イミングを示す図である。 101・・・シーケンサ、102・・・Cバス、103
・・・Nバス、104・・・マイクロ・プログラム・メ
モリ、105・・・レジスタA、  106・・・Nバ
ス、107・・・Yバス、108・・・レジスタB、 
 109・・・Bバス、110・・・A L U。 111・・・メモリ・インとエース、112・・・外部
バス、113・・・メモリ、114・・・制御部、11
5・・・メソッド・キャッシュ、201・・・レシーバ
レジスタ、202・・・セレクタレジスタ、203・・
・ドライバ、204・・・メソッドレジスタ、205・
・・マルチプレクサ(1)、206・・・ノ1ツシュ回
路、207 、208・・・ドライバ、209 、21
0・・・コンパレータ(1) 、 (2)、211 、
212・・・ドライノく、213・・・マルチプレクサ
(2)、214・・・ANDゲート、215・・・オー
プンコレクタNANDドライバ、216・・・ドライバ
、217・・・メモリ、218・・・制御部。
FIG. 1 is a block diagram showing the structure of a method cache in an embodiment of the present invention, FIG. 2 is a block diagram showing the overall structure of an embodiment of the present invention, FIG. 3 is an explanatory diagram of a hash circuit, 4 is a diagram showing the configuration of a conventional Smalltalk-80 execution computer, FIG. 5 is a diagram showing a three-phase clock used in the computer shown in FIG. 4, and FIG.
FIG. 3 is a diagram showing bus timing according to a microprogram in the computer shown in the figure. 101...Sequencer, 102...C bus, 103
...N bus, 104...Micro program memory, 105...Register A, 106...N bus, 107...Y bus, 108...Register B,
109...B bus, 110...ALU. 111...Memory in and ace, 112...External bus, 113...Memory, 114...Control unit, 11
5... Method cache, 201... Receiver register, 202... Selector register, 203...
・Driver, 204...Method register, 205・
...Multiplexer (1), 206...No.1 switch circuit, 207, 208...Driver, 209, 21
0... Comparator (1), (2), 211,
212... Dry node, 213... Multiplexer (2), 214... AND gate, 215... Open collector NAND driver, 216... Driver, 217... Memory, 218... Control unit .

Claims (1)

【特許請求の範囲】 オブジェクト指向言語を実行する電子計算機において、 マイクロプログラムから直接書き込めるレシーバを保持
する第1の手段と、 マイクロプログラムから直接書き込めるセレクタを保持
する第2の手段と、 第1の手段からのレシーバと第2の手段からのセレクタ
をハッシュしてポインタとして出力する第3の手段と、 メソッド、インデックスを登録するためのキャッシュテ
ーブルを有し、第3の手段のポインタによりレシーバ、
セレクタ、メソッド、インデックス、有効フラッグを出
力する第4の手段と、第4の手段からのメソッドをバス
に出力する第5の手段と、 第4の手段からのレシーバと第1の手段からのレシーバ
とを比較する第6の手段と、 第4の手段からのセレクタと第2の手段からのレシーバ
とを比較する第7の手段と、 第4の手段からの有効フラッグと、第6の手段の出力と
、第7の手段の出力との論理演算を行なう第8の手段と
、 第8の手段の演算結果にしたがいインデックスをマイク
ロプログラムバスに出力し、マイクロプログラムのシー
ケンスを制御する第9の手段と、マイクロプログラムか
らレシーバ、セレクタ、メソッド、インデックス、有効
フラグを第4の手段に同時に書き込む第10の手段とか
ら成るメソッド・キャッシュを有することを特徴とする
電子計算機。
[Scope of Claims] In an electronic computer that executes an object-oriented language, a first means for holding a receiver that can be written directly from a microprogram, a second means for holding a selector that can be written for directly from a microprogram, and a first means for holding a receiver that can be written directly from a microprogram. and a third means for hashing the receiver from the receiver and the selector from the second means and outputting it as a pointer, and a cache table for registering methods and indexes.
a fourth means for outputting a selector, a method, an index, and a valid flag; a fifth means for outputting a method from the fourth means onto a bus; a receiver from the fourth means and a receiver from the first means; a sixth means for comparing the selector from the fourth means and the receiver from the second means; a valid flag from the fourth means; an eighth means for performing a logical operation on the output and the output of the seventh means; and a ninth means for outputting an index to the microprogram bus according to the operation result of the eighth means and controlling the sequence of the microprogram. and tenth means for simultaneously writing receivers, selectors, methods, indexes, and valid flags from the microprogram to the fourth means.
JP61050586A 1986-03-10 1986-03-10 Electronic computer Pending JPS62208132A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61050586A JPS62208132A (en) 1986-03-10 1986-03-10 Electronic computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61050586A JPS62208132A (en) 1986-03-10 1986-03-10 Electronic computer

Publications (1)

Publication Number Publication Date
JPS62208132A true JPS62208132A (en) 1987-09-12

Family

ID=12863075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61050586A Pending JPS62208132A (en) 1986-03-10 1986-03-10 Electronic computer

Country Status (1)

Country Link
JP (1) JPS62208132A (en)

Similar Documents

Publication Publication Date Title
JP2745949B2 (en) A data processor that simultaneously and independently performs static and dynamic masking of operand information
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
JP2776132B2 (en) Data processing system with static and dynamic masking of information in operands
US4980819A (en) Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system
JP2840444B2 (en) Method for operating an arithmetic pipeline and data processing apparatus
JPH02190930A (en) Software instruction executing apparatus
KR970011208B1 (en) Pipelined register cache
JPS6312049A (en) Microcomputer
US5410721A (en) System and method for incrementing a program counter
JPH0362243A (en) Apparatus for quickening memory access in information processing system
JPS62208132A (en) Electronic computer
EP0374598A2 (en) Control store addressing from multiple sources
JP3876771B2 (en) Information processing apparatus and cache flush control method used therefor
JPH01273132A (en) Microprocessor
JPH06149669A (en) System and device for transferring cache data
JPH07182165A (en) Processing method/device for instruction with committing condition
JP2001265651A (en) Data processor
JPH11306044A (en) Data processor
JPS59229659A (en) Data processing method
JPH0228828A (en) Maximum value and minimum value detecting circuit
JP2847729B2 (en) Information processing device
JPS61237145A (en) Controlling system for store buffer
JPH01265346A (en) Semiconductor integrated circuit
JPS62159237A (en) Electronic computer
JPS62208131A (en) Electronic computer