JP3140028B2 - サブルーチンの引数の受け渡し方式 - Google Patents
サブルーチンの引数の受け渡し方式Info
- Publication number
- JP3140028B2 JP3140028B2 JP02151568A JP15156890A JP3140028B2 JP 3140028 B2 JP3140028 B2 JP 3140028B2 JP 02151568 A JP02151568 A JP 02151568A JP 15156890 A JP15156890 A JP 15156890A JP 3140028 B2 JP3140028 B2 JP 3140028B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- processing
- argument
- subroutine
- passed
- 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
Links
Landscapes
- Executing Machine-Instructions (AREA)
Description
ログラムの実行中にサブルーチンをコールする際の引数
の受け渡し方式に関し、 命令解釈部を使用することなく、オペランドの種別情
報の識別を含めた引数の高速処理を可能にすることを目
的とし、 サブルーチンコール時に、必要に応じて受け渡される
アドレス又はデータと、サブルーチン側で処理されるべ
き処理プログラムの処理アドレスを、引数として受け渡
す引数受け渡し手段と、該引数受け渡し手段を介して引
数として受け渡された処理アドレスに対応する処理プロ
グラムを、必要に応じて引数として受け渡されたアドレ
ス又はデータを用いて、実行するサブルーチン実行手段
と、を有するように構成する。
装置が、プログラムの実行中にサブルーチンをコールす
る際の引数の受け渡し方式に関する。
は、第6図に示されるような基本構成を有する。
からインストラクションバス65を介して、順次プログラ
ム命令を読み出して、その命令を評価して演算処理部62
へ渡す。評価するとは、命令の種別を判別し、それに応
じて演算処理部62での実行に必要な情報(マイクロプロ
グラムアドレス、オペランドのメモリアドレス等)を作
ることである。
を介してデータメモリ64にアクセスする等の処理を行
う。
ムメモリ63から取り出してそれを評価する処理と、演算
処理部62が命令解釈部61から渡された情報に従ってデー
タに演算処理を施す処理とは、通常、並列に実行でき
る。
が実行されている場合に、サブルーチンをコールする際
の引数の受け渡し方式には、従来、以下の2つの方式が
一般的である。
(以下、パラメータスタックと呼ぶ)に、引数とそのオ
ペランドの種別を示す識別子が共に格納される。そし
て、コールされた側のサブルーチンプログラムにおいて
は、識別子を含む引数をパラメータスタックから取り出
し、命令解釈部61へ戻して再評価する。これにより、引
数に対してどのような演算処理を行うべきかが判別さ
れ、再び演算実行部62に渡されて演算処理が実行され
る。
上に置かれ、パラメータスタックには引数のアドレスが
格納される。そして、コールされた側は、上記アドレス
によってデータメモリ64上の引数に対してアクセスを行
う。この場合、定数についても、引数として渡されるの
ではなく、一度データメモリ64上に格納され、そのアド
レスとして渡される。
するために、演算実行部62から命令解釈部61に一度制御
を移さねばならず、処理が複雑になるという問題点を有
している。また、命令解釈部61での再評価が終了するま
で演算実行部62はそれより先の演算処理を実行すること
ができず、実行時間が低下してしまうという問題点を有
している。
レスとして引数を受け渡すのであるが、引数になってい
るオペランドに特別の意味、例えば、定数に対して代入
はできない、指定されたビット幅でオペランドをアクセ
ス(リード又はライト)しなければならない、等の制限
であっても、アドレスのみの受け渡しでは上述のような
オペランドの種別情報は渡すことができないという問題
点を有している。
ドの種別情報の識別を含めた引数の高速処理を可能にす
ることを目的とする。
されるアドレス又はデータ14と、サブルーチン側で処理
されるべき処理プログラム16の処理アドレス13を、引数
12として受け渡す引数受け渡し手段11を有する。同手段
は、例えばパラメータスタックである。
渡された処理アドレス13に対応する処理プログラム16
を、必要に応じて引数12として受け渡されたアドレス又
はデータ14を用いて、実行するサブルーチン実行手段15
を有する。また、同手段は、処理アドレス13に、アクセ
ス種別に対応するアドレスオフセットを加算し、該加算
結果のアドレスに対応する処理プログラム16を実行する
ように構成してもよい。ここで、引数12として受け渡さ
れた処理アドレス13は、例えばプログラムを格納したプ
ログラムメモリ上のマクロプログラムのアドレスであ
り、必要に応じて引数12として受け渡されたアドレス又
はデータ14は、データを格納したデータメモリ上の引数
12として受け渡されるべきデータが格納されるアドレス
か、定数データそのものである。
14は、必ずしも必要なものではなく、それらのないサブ
ルーチン実行もあり得る。
れるべきアドレス又はデータ14(オペランド)の種別
は、処理アドレス13の形でサブルーチン実行手段15に渡
される。サブルーチン実行手段15は、この処理アドレス
13に基づいて、上記種別に対応する処理プログラム16を
実行する。
価を行う必要なく、オペランドの種別情報の識別を含め
たアドレス又はデータ14に対する高速処理を行うことが
できる。
する。
は、全体的には第6図と同様の基本的構成を有し、第2
図の演算実行部22及びデータメモリ23は第6図の62及び
64のそれぞれに対応する。
ンコール時の引数24を格納するスタックであり、演算実
行部22と独立に設けられても内部に設けられてもよい。
引数24のデータ構成については後述する。
場合に、サブルーチンに受け渡されるオペランドとして
は様々な種類のものがあるが、本実施例では、説明の簡
単のため、次の4種類のオペランドを対象とし、それぞ
れに識別子を定義する。
の識別子をZLとする。
の識別子をZSとする。
の4種類あるとする。
数24に対するアクセスが4種類なので、計16種類の処理
が必要である。
は、オペランドの識別子のみが判別可能であり、また、
サブルーチン側では引数24に対するアクセス種別のみが
判別可能である。従って、オペランドの識別子を引数24
に付加すれば、サブルーチン側でもオペランドの識別子
を判別することができ、適切な処理が可能となる。但
し、識別子そのもの(前述のZK、ZW、ZL、ZS等のコード
そのもの)を受け渡す方式では、「発明が解決しようと
する課題」の項で説明した如く、識別子の再評価に命令
解釈部61(第6図参照)を使用しなければならない。そ
こで、本実施例では、その識別子に対応してサブルーチ
ン側で実行されるべきマイクロプログラムのプログラム
メモリ63(第6図参照)上での処理アドレス25(第2図
参照)を受け渡すことにする。プログラムメモリ63に、
前述の16種類全ての処理に対応するマイクロプログラム
が用意されていれば、サブルーチン側でそのマイクロプ
ログラムにジャンプすることにより引数24に対する適切
な処理が可能となる。
ルーチンをコールする際には、演算実行部22が、第2図
の如く、パラメータスタック21に処理アドレス25とオペ
ランドのアドレス若しくはデータ(以下、AD/DTと呼
ぶ)26の組み合わせからなる引数24を格納する。一例と
して、演算実行部22が、サブルーチンコール時に、ZK、
ZW、ZL、ZSからなる各オペランドを、第1引数24〜第4
引数24として順次パラメータスタック21に格納すると、
第3図の如くとなる。
実行する場合、4種類のオペランドに対する前述の4種
類のアクセスは、パラメータスタック21に格納されてい
る処理アドレス25にオフセットを加えることにより区別
する。例えば、16Rのオフセットは0、32Rは8、16Wは1
6、32Wは24とする。また、オフセット0のアクセス(上
記例の場合、16R)でのZKの処理アドレス25を例えば100
0番地、ZWを1002番地、ZLを1004番地、ZSを1006番地と
すると、処理アドレス25、引数24に対するアクセス種別
及びそれに応じてサブルーチン側で実行される処理との
関係は、第4図の表のようになる。この表において、
〜は、前述の16種類の処理を示しており、それぞれ次
の如き内容である。
スa)。
同メモリを16ビットリード(第4図のアクセスc)。
同メモリを32ビットリード(第4図のアクセスd)。
スb)。
るライト)。
同メモリを16ビットライト(第4図のアドレスe)。
同メモリを32ビットライト(第4図のアドレスf)。
63上でのマイクロプログラムとしての配置は、第5図の
如くとなる。すなわち、1000〜1031番地までに〜の
各処理が格納される。これらアドレス領域に収まり切ら
ない場合は、ここから他のアドレス領域にジャンプする
命令を埋め込んでおく。例えば、処理が1000、1001番
地に収まらなければ、1001番地から更に、1032、1033、
1034、・・・番地にジャンプする。或いは、1つ1つの
処理に割り当てるアドレス領域を大きくする。例えば、
第4図におけるオフセット0でのZK、ZW、ZL、ZSの各処
理アドレス1000、1002、1004、1006を、それぞれ1000、
1004、1008、1012に変更し、オフセット0、2、4、6
を、それぞれ0、16、32、48に変更する。
ZWを引数24として受け渡し、サブルーチン側でその引数
24に対して32ビットリードを実行する、第4図の処理
の場合について説明する。第2図の演算実行部22を、サ
ブルーチンをコールする際に、パラメータスタック21
に、処理アドレス25として1002番地、AD/DT26として変
数オペランドのデータメモリ23上でのアドレスを格納す
る。演算実行部22がサブルーチンを実行する場合、処理
アドレス25=1002番地に、オフセット8(32R、第4図
参照)を加え、1010番地をプログラムメモリ63(第6図
参照)の処理アドレスとしてジャンプする。プログラム
メモリ63上の処理アドレス=1010番地には、データメモ
リ23上のAD/DT26で示されるアドレスの内容を32ビット
でリードする処理を行うためのマイクロプログラムが格
納されている。
し、サブルーチン側でその引数24に対して16ビットライ
トを実行する、第4図の処理の場合について説明す
る。第2図の演算実行部22は、サブルーチンをコールす
る際に、パラメータスタック21に、処理アドレス25とし
て1004番地、AD/DT26としてアクセス幅32ビット固定の
変数オペランドのデータメモリ23上でのアドレスを格納
する。演算実行部22がサブルーチンを実行する場合、処
理アドレス25=1004番地に、オフセット16(16W、第4
図参照)を加え、1020番地をプログラムメモリ63(第6
図参照)の処理アドレスとしてジャンプする。プログラ
ムメモリ63上の処理アドレス=1020番地には、データメ
モリ23上のAD/DT26で示されるアドレスに対して32ビッ
トでライトを行うためのマイクロプログラムが格納され
ている。すなわちこの場合は、コールした側のオペラン
ドのアクセス幅が優先されるため、16ビットでライトし
ようとしても、オペランドに指定されているアクセス幅
=32ビットで正しくライトが実行される。
ンドに対して4種類に限定されたアクセスを行う場合を
例にとって説明したが、これを更に多くの種別のオペラ
ンド及びアクセスに拡張することは容易であり、それに
より第6図の命令解釈部61を使用することなく、オペラ
ンドの種別情報の識別を含めた引数の高速処理が可能と
なる。
よって処理されるべきオペランドの種別を、処理アドレ
スの形でサブルーチン実行手段に渡すことができ、サブ
ルーチン実行手段は、この処理アドレスに基づいて、上
記種別に対応する処理プログラムを実行することが可能
となる。これにより、サブルーチン実行手段は引数に対
して再評価を行う必要なく、命令解釈と演算実行を途切
れることなく並列に行うことができ、オペランドの種別
情報の識別を含めたオペランドに対する高速処理を行う
ことが可能となる。
スでもデータでもどちらでもよく、制限されることもな
くなるという効果も生まれる。
処理の関係図、 第5図は、マイクロプログラムアクセスと処理との関係
図、 第6図は、情報処理装置の基本構成図である。 11……引数受け渡し手段、 12……引数、 13……処理アドレス、 14……アドレス又はデータ、 15……サブルーチン実行手段、 16……処理プログラム.
Claims (2)
- 【請求項1】サブルーチンに引数(12)として受け渡
す、データが格納されているアドレス又はデータ(14)
と、前記引数(12)の種類に対応してサブルーチン側で
行われる処理を行う処理プログラム(16)の処理アドレ
ス(13)を、受け渡す引数受け渡し手段(11)と、 該引数受け渡し手段を介して受け渡された前記処理アド
レス(13)に対応する処理プログラム(16)を、前記ア
ドレス又はデータ(14)を用いて、実行するサブルーチ
ン実行手段(15)と、 を有することを特徴とするサブルーチンの引数受け渡し
方式。 - 【請求項2】サブルーチンに引数(12)として受け渡
す、データが格納されているアドレス又はデータ(14)
と、前記引数(12)の種類に対応してサブルーチン側で
行われる処理を行う処理プログラム(16)の処理アドレ
ス(13)を、受け渡す引数受け渡し手段(11)と、 該引数受け渡し手段を介して受け渡された前記処理アド
レス(13)に、引数に対するアクセス命令の種別から導
き出されるアドレスオフセットを加算し、該加算結果の
アドレスに対応する処理プログラム(16)を、前記アド
レス又はデータ(14)を用いて、実行するサブルーチン
実行手段と、 を有することを特徴とするサブルーチンの引数の受け渡
し方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02151568A JP3140028B2 (ja) | 1990-06-12 | 1990-06-12 | サブルーチンの引数の受け渡し方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02151568A JP3140028B2 (ja) | 1990-06-12 | 1990-06-12 | サブルーチンの引数の受け渡し方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0444126A JPH0444126A (ja) | 1992-02-13 |
JP3140028B2 true JP3140028B2 (ja) | 2001-03-05 |
Family
ID=15521377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02151568A Expired - Fee Related JP3140028B2 (ja) | 1990-06-12 | 1990-06-12 | サブルーチンの引数の受け渡し方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3140028B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4761808B2 (ja) * | 2005-04-11 | 2011-08-31 | 株式会社東芝 | マイクロプロセッサおよびその制御方法 |
-
1990
- 1990-06-12 JP JP02151568A patent/JP3140028B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0444126A (ja) | 1992-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4715013A (en) | Coprocessor instruction format | |
US4215400A (en) | Disk address controller | |
EP0148478B1 (en) | A data processor with control of the significant bit lenghts of general purpose registers | |
US4729094A (en) | Method and apparatus for coordinating execution of an instruction by a coprocessor | |
US4731736A (en) | Method and apparatus for coordinating execution of an instruction by a selected coprocessor | |
US4750110A (en) | Method and apparatus for executing an instruction contingent upon a condition present in another data processor | |
US5021991A (en) | Coprocessor instruction format | |
EP0526911B1 (en) | A method and apparatus for coordinating execution of an instruction by a coprocessor | |
US4821231A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
US4758950A (en) | Method and apparatus for selectively delaying an interrupt of a coprocessor | |
US4914578A (en) | Method and apparatus for interrupting a coprocessor | |
JP3140028B2 (ja) | サブルーチンの引数の受け渡し方式 | |
US4994961A (en) | Coprocessor instruction format | |
US4758978A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
JPS6049352B2 (ja) | デ−タ処理装置 | |
JPH02123442A (ja) | 高速化メモリ | |
JPH0377137A (ja) | 情報処理装置 | |
JPH0635800A (ja) | マイクロプロセッサ及びそれを使用したデータ処理システム | |
US4811274A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
JP2743947B2 (ja) | マイクロプログラム制御方式 | |
JPH0585925B2 (ja) | ||
JPH02110636A (ja) | タグ・アーキテクチャマシンのデバッグ装置とそのコンパイラ | |
JPS63206834A (ja) | 命令制御におけるエラ−検出処理方式 | |
JPS61112240A (ja) | デ−タ処理装置 | |
JPH0795288B2 (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071215 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081215 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081215 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091215 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |