JPH0444126A - サブルーチンの引数の受け渡し方式 - Google Patents
サブルーチンの引数の受け渡し方式Info
- Publication number
- JPH0444126A JPH0444126A JP15156890A JP15156890A JPH0444126A JP H0444126 A JPH0444126 A JP H0444126A JP 15156890 A JP15156890 A JP 15156890A JP 15156890 A JP15156890 A JP 15156890A JP H0444126 A JPH0444126 A JP H0444126A
- Authority
- JP
- Japan
- Prior art keywords
- address
- argument
- processing
- subroutine
- data
- 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
- 238000000034 method Methods 0.000 claims abstract description 15
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000010365 information processing Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 238000011867 re-evaluation Methods 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Abstract
め要約のデータは記録されません。
Description
グラムの実行中にサブルーチンをコールする際の引数の
受け渡し方式に関し、 命令解釈部を使用することなく、オペランドの種別情報
の識別を含めた引数の高速処理を可能にすることを目的
とし、 サブルーチンコール時に、必要に応じて受け渡されるア
ドレス又はデータと、サブルーチン側で処理されるべき
処理プログラムの処理アドレスを、引数として受け渡す
引数受け渡し手段と、該引数受け渡し手段を介して引数
として受け渡された処理アドレスに対応する処理プログ
ラムを、必要に応じて引数として受け渡されたアドレス
又はデータを用いて、実行するサブルーチン実行手段と
、を有するように構成する。
置が、プログラムの実行中にサブルーチンをコールする
際の引数の受け渡し方式に関する。
第6図に示されるような基本構成を有する。
3からインストラクションバス65を介して、順次プロ
グラム命令を読み出して、その命令を評価して演算処理
部62へ渡す。評価するとは、命令の種別を判別し、そ
れに応じて演算処理部62での実行に必要な情報(マイ
クロプログラムアドレス、オペランドのメモリアドレス
等)を作ることである。
6を介してデータメモリ64にアクセスする等の処理を
行う。
ムメモリ63から取り出してそれを評価する処理と、演
算処理部62が命令解釈部61から渡された情報に従っ
てデータに演算処理を施す処理とは、通常、並列に実行
できる。
実行されている場合に、サブルーチンをコールする際の
引数の受け渡し方式には、従来、以下の2つの方式が一
般的である。
以下、パラメータスタックと呼ぶ)に、引数とそのオペ
ランドの種別を示す識別子が共に格納される。そして、
コールされた側のサブルーチンプログラムにおいては、
識別子を含む引数をパラメータスタックから取り出し、
命令解釈部61へ戻して再評価する。これにより、引数
に対してどのような演算処理を行うべきかが判別され、
再び演算実行部62に渡されて演算処理が実行される。
上に置かれ、パラメータスタックには引数のアドレスが
格納される。そして、コールされた側は、上記アドレス
によってデータメモリ64上の引数に対してアクセスを
行う。この場合、定数についても、引数として渡される
のではなく、−度データメモリ64上に格納され、その
アドレスとして渡される。
るために、演算実行部62から命令解釈部61に一度制
御を移さねばならず、処理が複雑になるという問題点を
有している。また、命令解釈部61での再評価が終了す
るまで演算実行部62はそれより先の演算処理を実行す
ることができず、実行時間が低下してしまうという問題
点を有している。
レスとして引数を受け渡すのであるが、引数になってい
るオペランドに特別の意味、例えば、定数に対して代入
はできない、指定されたビット幅でオペランドをアクセ
ス(リード又はライト)シなければならない、等の制限
があっても、アドレスのみの受け渡しでは上述のような
オペランドの種別情報は渡すことができないという問題
点を有している。
の種別情報の識別を含めた引数の高速処理を可能にする
ことを目的とする。
れるアドレス又はデータ14と、サブルーチン側で処理
されるべき処理プログラム16の処理アドレス13を、
引数12として受け渡す引数受け渡し手段11を有する
。同手段は、例えばパラメータスタックである。
け渡された処理アドレス13に対応する処理プログラム
16を、必要に応じて引数12として受け渡されたアド
レス又はデータ14を用いて、実行するサブルーチン実
行手段15を有する。
対応するアドレスオフセットを加算し、該加算結果のア
ドレスに対応する処理プログラム16を実行するように
構成してもよい。ここで、引数12として受け渡された
処理アドレス13は、例えばプログラムを格納したプロ
グラムメモリ上のマクロプログラムのアドレスであり、
必要に応じて引数I2として受け渡されたアドレス又は
データ14は、データを格納したデータメモリ上の引数
12として受け渡されるべきデータが格納されるアドレ
スか、定数データそのものである。
14は、必ずしも必要なものではなく、それらのないサ
ブルーチン実行もあり得る。
されるべきアドレス又はデータ14(オペランド)の種
別は、処理アドレス13の形でサブルーチン実行手段1
5に渡される。ザブルーチン実行手段15は、この処理
アドレス13に基づいて、上記種別に対応する処理プロ
グラムI6を実行する。
評価を行う必要なく、オペランドの種別情報の識別を含
めたアドレス又はデータ14に対する高速処理を行うこ
とができる。
る。
、全体的には第6図と同様の基本的構成を有し、第2図
の演算実行部22及びデータメモリ23は第6図の62
及び64のそれぞれに対応する。
ンコール時の引数24を格納するスタックであり、演算
実行部22と独立に設けられても内部に設けられてもよ
い。引数24のデータ構成については後述する。
合に、サブルーチンに受け渡されるオペランドとしては
様々な種類のものがあるが、本実施例では、説明の簡単
のため、次の4種類のオペランドを対象とし、それぞれ
に識別子を定義する。
次の4種類あるとする。
数24に対するアクセスが4種類なので、計16種類の
処理が必要である。
オペランドの識別子のみが判別可能であり、また、サブ
ルーチン側では引数24に対するアクセス種別のみが判
別可能である。従って、オペランドの識別子を引数24
に付加すれば、サブルーチン側でもオペランドの識別子
を判別することができ、適切な処理が可能となる。但し
、識別子そのもの(前述のZK、ZW、ZL、ZS等の
コードそのもの)を受け渡す方式では、「発明が解決し
ようとする課題」の項で説明した如く、識別子の再評価
に命令解釈部61(第6図参照)を使用しなければなら
ない。そこで、本実施例では、その識別子に対応してサ
ブルーチン側で実行されるべきマイクロプログラムのプ
ログラムメモリ63(第6図参照)上での処理アドレス
25(第2図参照)を受け渡すことにする。プログラム
メモリ63に、前述の16種類全ての処理に対応するマ
イクロプログラムが用意されていれば、サブルーチン側
でそのマイクロプログラムにジャンプすることにより引
数24に対する適切な処理が可能となる。
ルーチンをコールする際には、演算実行部22が、第2
図の如く、パラメータスタック21に処理アドレス25
とオペランドのアドレス若しくはデータ(以下、A D
/D Tと呼ぶ)26の組み合わせからなる引数24を
格納する。−例として、演算実行部22が、サブルーチ
ンコール時に、ZK、ZW、ZL、ZSからなる各オペ
ランドを、第1引数24〜第4引数24として順次パラ
メータスタック21に格納すると、第3図の如くとなる
。
実行する場合、4種類のオペランドに対する前述の4種
類のアクセスは、パラメータスタック21に格納されて
いる処理アドレス25にオフセットを加えることにより
区別する。例えば、16R(7)オフセットは0,32
Rは8.16Wは16.32Wは24とする。また、オ
フセット0のアクセス(上記例の場合、16R)でのZ
Kの処理アドレス25を例えば1000番地、zwを1
002番地、ZLを1004番地、ZSを1006番地
とすると、処理アドレス25、引数241工 に対するアクセス種別及びそれに応じてサブルーチン側
で実行される処理との関係は、第4図の表のようになる
。この表において、■〜■は、前述の16種類の処理を
示しており、それぞれ次の如き内容である。
図のアクセスa)。
スとして、同メモリを16ビツトリード(第4図のアク
セスC)。
スとして、同メモリを32ビツトリード(第4図のアク
セスd)。
図のアクセスb)。
に対するライト)□。
でのアドレスとして、同メモリを16ビツトライト(第
4図のアドレスe)。
ドレスとして、同メモリを32ビツトライト(第4図の
アドレスf)。
リ63上でのマイクロプログラムとしての配置は、第5
図の如くとなる。すなわち、1000〜1031番地ま
でに■〜[相]の各処理が格納される。これらアドレス
領域に収まり切らない場合は、ここから他のアドレス領
域にジャンプする命令を埋め込んでおく。例えば、処理
■が1000.1001番地に収まらなければ、100
1番地がら更に、工032.1033.1034、・・
・番地にジャンプする。或いは、1つ1つの処理に割り
当てるアドレス領域を大きくする。例えば、第4図にお
けるオフセットOでのZK、ZW、ZL。
゜04.1006を、それぞれ1000,1004.1
008.1012に変更し、オフセット0,2.4.6
を、それぞれ0.16.32.48に変更する。
Wを引数24として受け渡し、サブルーチン側でその引
数24に対して32ビツトリードを実行する、第4図の
処理■の場合について説明する。第2図の演算実行部2
2は、サブルーチンをコールする際に、パラメータスタ
ック21に、処理アドレス25として1002番地、A
D/DT26として変数オペランドのデータメモリ2
3上でのアドレスを格納する。演算実行部22がサブル
ーチンを実行する場合、処理アドレス25−1002番
地に、オフセット8(32R1第4図参照)を加え、1
010番地をプログラムメモリ63(第6図参照)の処
理アドレスとしてジャンプする。プログラムメモリ63
上の処理アドレス=1010番地には、データメモリ2
3上のAD/DT26で示されるアドレスの内容を32
ビツトでリードする処理を行うためのマイクロプログラ
ムが格納されている。
し、サブルーチン側でその引数24に対して16ビツト
ライトを実行する、第4図の処理■の場合について説明
する。第2図の演算実行部22は、サブルーチンをコー
ルする際に、パラメータスタック21に、処理アドレス
25として1004番地、AD/DT26としてアクセ
ス幅32ビット固定の変数オペランドのデータメモリ2
3上でのアドレスを格納する。演算実行部22がザブル
ーチンを実行する場合、処理アドレス25−1004番
地に、オフセット16(16W、第4図参照)を加え、
1020番地をプログラムメモリ63(第6図参照)の
処理アドレスとしてジャンプする。プログラムメモリ6
3上の処理アドレス−1020番地には、データメモリ
23上のAD/DT26で示されるアドレスに対して3
2ビツトでライトを行うためのマイクロプログラムが格
納されている。すなわちこの場合は、コールした側のオ
ペランドのアクセス幅が優先されるため、16ビツトで
ライトしようとしても、オペランドに指定されているア
クセス幅−32ビツトで正しくライトが実行される。
ドに対して4種類に限定されたアクセスを行う場合を例
にとって説明したが、これを更に多くの種別のオペラン
ド及びアクセスに拡張することは容易であり、それによ
り第6図の命令解釈部61を使用することなく、オペラ
ンドの種別情報の識別を含めた引数の高速処理が可能と
なる。
って処理されるべきオペランドの種別を、処理アドレス
の形でサブルーチン実行手段に渡すことができ、サブル
ーチン実行手段は、この処理アドレスに基づいて、上記
種別に対応する処理プログラムを実行することが可能と
なる。これにより、サブルーチン実行手段は引数に対し
て再評価を行う必要なく、命令解釈と演算実行を途切れ
ることなく並列に行うことができ、オペランドの種別情
報の識別を含めたオペランドに対する高速処理を行うこ
とが可能となる。
もデータでもどちらでもよく、制限されることもなくな
るという効果も生まれる。
は、処理アドレスと引数に対するアクセス種別と処理の
関係図、 第5図は、マイクロプログラムアクセスと処理との関係
図、 第6図は、情報処理装置の基本構成図である。 11・・・引数骨は渡し手段、 12・・・引数、 13・・・処理アドレス、 14・・・アドレス又はデータ、 15・・・サブルーチン実行手段、 16・・・処理プログラム。 へ〇ウメータスタッフ バフメータスタックの7一タ構八図 剋理了ドレスど引朕(で丼するアク乞スms”iヒ処理
N場小図第 図 第 図 マイクロ10)゛ラムアF゛レスヒ タL!理 旨め関イA〜しa 第 図 債を瓦ズL理装置のA(K溝へ゛図 第 図
Claims (1)
- 【特許請求の範囲】 1)サブルーチンコール時に、必要に応じて受け渡され
るアドレス又はデータ(14)と、サブルーチン側で処
理されるべき処理プログラム(16)の処理アドレス(
13)を、引数(12)として受け渡す引数受け渡し手
段(11)と、 該引数受け渡し手段を介して引数(12)として受け渡
された前記処理アドレス(13)に対応する処理プログ
ラム(16)を、必要に応じて引数(12)として受け
渡された前記アドレス又はデータ(14)を用いて、実
行するサブルーチン実行手段(15)と、を有すること
を特徴とするサブルーチンの引数の受け渡し方式。 2)サブルーチンコール時に、必要に応じて受け渡され
るアドレス又はデータ(14)と、サブルーチン側で処
理されるべき処理プログラム(16)の処理アドレス(
13)を、引数(12)として受け渡す引数受け渡し手
段(11)と、 該引数受け渡し手段を介して引数(12)として受け渡
された前記処理アドレス(13)に、アクセス種別に対
応するアドレスオフセットを加算し、該加算結果のアド
レスに対応する処理プログラム(16)を、必要に応じ
て引数(12)として受け渡された前記アドレス又はデ
ータ(14)を用いて、実行するサブルーチン実行手段
(15)と、 を有することを特徴とするサブルーチンの引数の受け渡
し方式。
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 true JPH0444126A (ja) | 1992-02-13 |
JP3140028B2 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006293673A (ja) * | 2005-04-11 | 2006-10-26 | Toshiba Corp | マイクロプロセッサおよびその制御方法 |
-
1990
- 1990-06-12 JP JP02151568A patent/JP3140028B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006293673A (ja) * | 2005-04-11 | 2006-10-26 | Toshiba Corp | マイクロプロセッサおよびその制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3140028B2 (ja) | 2001-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4679140A (en) | Data processor with control of the significant bit lengths of general purpose registers | |
US5295251A (en) | Method of accessing multiple virtual address spaces and computer system | |
US4715013A (en) | Coprocessor instruction format | |
US5021991A (en) | Coprocessor instruction format | |
EP0526911B1 (en) | A method and apparatus for coordinating execution of an instruction by a coprocessor | |
US4758950A (en) | Method and apparatus for selectively delaying an interrupt of a coprocessor | |
US4914578A (en) | Method and apparatus for interrupting a coprocessor | |
US4314332A (en) | Memory control system | |
US4994961A (en) | Coprocessor instruction format | |
JPH0444126A (ja) | サブルーチンの引数の受け渡し方式 | |
US4758978A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
CA1302580C (en) | Apparatus and method for using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system | |
JPH0377137A (ja) | 情報処理装置 | |
JP2540959B2 (ja) | 情報処理装置 | |
JPS605976B2 (ja) | 制御ストアを組織する方法と装置 | |
JPS61184643A (ja) | 仮想計算機の起動制御方式 | |
JPH0721766B2 (ja) | Fortran入出力制御処理装置 | |
JPH02110636A (ja) | タグ・アーキテクチャマシンのデバッグ装置とそのコンパイラ | |
US4811274A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
JPS5872251A (ja) | デ−タ処理方式 | |
JPS63216134A (ja) | 中央処理装置 | |
JPH0264828A (ja) | アドレストレース回路 | |
JPS63120336A (ja) | メモリアクセスモ−ド切替え方式 | |
JPH1027153A (ja) | バス転送装置 | |
JPS58142437A (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 |