JP2637428B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JP2637428B2 JP2637428B2 JP62133258A JP13325887A JP2637428B2 JP 2637428 B2 JP2637428 B2 JP 2637428B2 JP 62133258 A JP62133258 A JP 62133258A JP 13325887 A JP13325887 A JP 13325887A JP 2637428 B2 JP2637428 B2 JP 2637428B2
- Authority
- JP
- Japan
- Prior art keywords
- prologue
- pointer
- address
- execution
- sequence
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Devices For Executing Special Programs (AREA)
- Memory System (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】 〔発明の技術分野〕 本発明は一般にデータ処理装置に関するものであり、
更に詳細には、たとえば、主メモリまたは補助メモリに
格納されている、一貫した規則に従って構成された複数
のデータ・オブジェクト(object)に関して演算その他
のデータ処理操作を行うデータ処理装置に関し、更には
逐次的あるいは選択的に各オブジェクトを評価するデー
タ処理装置に関する。
更に詳細には、たとえば、主メモリまたは補助メモリに
格納されている、一貫した規則に従って構成された複数
のデータ・オブジェクト(object)に関して演算その他
のデータ処理操作を行うデータ処理装置に関し、更には
逐次的あるいは選択的に各オブジェクトを評価するデー
タ処理装置に関する。
従来技術のデータ処理装置には、データを評価する際
に使用する二つの主要な処理方法すなわちアーキテクチ
ャがある。それは直接評価方式と間接評価方式である。
に使用する二つの主要な処理方法すなわちアーキテクチ
ャがある。それは直接評価方式と間接評価方式である。
従来技術の直接評価方式では、オブジェクトを評価す
る順序を決めるインタープリタ・ポインタは常に直接的
にオブジェクトを指示している。つまり、インタープリ
タ・ポインタがオブジェクトを指示するポインタ、すな
わち、オブジェクト・ポインタを指示することは決して
ない。オブジェクトを評価する時には、そのオブジェク
トに関連するコードあるいはデータが実行され、インタ
ープリタ・ポインタは一連のオブジェクト中の次のオブ
ジェクトをアドレスするように更新される。
る順序を決めるインタープリタ・ポインタは常に直接的
にオブジェクトを指示している。つまり、インタープリ
タ・ポインタがオブジェクトを指示するポインタ、すな
わち、オブジェクト・ポインタを指示することは決して
ない。オブジェクトを評価する時には、そのオブジェク
トに関連するコードあるいはデータが実行され、インタ
ープリタ・ポインタは一連のオブジェクト中の次のオブ
ジェクトをアドレスするように更新される。
従来技術の間接評価方式では、インタープリタ・ポイ
ンタは常にオブジェクトを指示するポインタを指示す
る。オブジェクトを評価する時には、そのオブジェクト
に関連するコードあるいはデータが実行され、インター
プリタ・ポインタは次のポインタをアドレスするように
更新される。
ンタは常にオブジェクトを指示するポインタを指示す
る。オブジェクトを評価する時には、そのオブジェクト
に関連するコードあるいはデータが実行され、インター
プリタ・ポインタは次のポインタをアドレスするように
更新される。
従来技術の装置による直接評価方式では、データ・オ
ブジェクトの間にポインタを単に混在させただけではオ
ブジェクトの解釈誤りを生じ、その結果、望まれてはい
ない結果が得られる。
ブジェクトの間にポインタを単に混在させただけではオ
ブジェクトの解釈誤りを生じ、その結果、望まれてはい
ない結果が得られる。
同様に、従来技術の間接方式の場合には、ポインタの
間にオブジェクトを単に混ぜただけではやはり望ましく
ない結果となってしまう。
間にオブジェクトを単に混ぜただけではやはり望ましく
ない結果となってしまう。
従来技術のデータ処理装置では、上述の欠陥を改善す
るいくつかの試みがなされてきた。具体的に言えば、直
接評価方式では、オブジェクトの本体をポインタと解釈
する概念が導入されることが時折あった。しかしなが
ら、このオブジェクトはそれ自身間接的に評価されるこ
とはできない。
るいくつかの試みがなされてきた。具体的に言えば、直
接評価方式では、オブジェクトの本体をポインタと解釈
する概念が導入されることが時折あった。しかしなが
ら、このオブジェクトはそれ自身間接的に評価されるこ
とはできない。
従来技術の間接評価方式では、その本体を実行シーケ
ンスに埋め込んだ間接オブジェクトという概念がかなり
標準的になっている。しかしながら、この概念には大き
な欠点がある。すなわち直接評価シーケンス内にあるそ
のロケーションがその構造によって固定されていて、こ
のようなオブジェクトはこの特殊な「本体が埋込まれて
いる間接的方法」によってしか評価することができな
い。
ンスに埋め込んだ間接オブジェクトという概念がかなり
標準的になっている。しかしながら、この概念には大き
な欠点がある。すなわち直接評価シーケンス内にあるそ
のロケーションがその構造によって固定されていて、こ
のようなオブジェクトはこの特殊な「本体が埋込まれて
いる間接的方法」によってしか評価することができな
い。
本発明は上述した従来技術の問題点を解消し、より柔
軟な評価形態を示すオブジェクトを用いるデータ処理装
置を提供することを目的とする。
軟な評価形態を示すオブジェクトを用いるデータ処理装
置を提供することを目的とする。
上述のような典型的な従来技術に対する改良は、現在
実行シーケンスの中に無差別に混在しているオブジェク
トとオブジェクト・ポインタを正しく且つ自動的に評価
する本発明のデータ処理装置により達成される。その
上、オブジェクトすべてを、直接的または間接的に、無
差別に実行することができる、これらオブジェクトには
一貫した規則に従った構造が与えられている。形式の異
なるオブジェクトもやはり一貫した規則に従って構成さ
れている。各オブジェクトは少くともプロローグ・アド
レス(prologue address)と本体から構成される。これ
ら2つの部分はメモリ内で隣接している。プロローグ・
アドレスはオブジェクトの実行を記述するプロローグを
アドレスする。本体はデータである。オブジェクトのプ
ロローグ・アドレスが指示された場合、すなわちアドレ
スされた場合、そのオブジェクトが指示された、すなわ
ちアドレスされたと言う。
実行シーケンスの中に無差別に混在しているオブジェク
トとオブジェクト・ポインタを正しく且つ自動的に評価
する本発明のデータ処理装置により達成される。その
上、オブジェクトすべてを、直接的または間接的に、無
差別に実行することができる、これらオブジェクトには
一貫した規則に従った構造が与えられている。形式の異
なるオブジェクトもやはり一貫した規則に従って構成さ
れている。各オブジェクトは少くともプロローグ・アド
レス(prologue address)と本体から構成される。これ
ら2つの部分はメモリ内で隣接している。プロローグ・
アドレスはオブジェクトの実行を記述するプロローグを
アドレスする。本体はデータである。オブジェクトのプ
ロローグ・アドレスが指示された場合、すなわちアドレ
スされた場合、そのオブジェクトが指示された、すなわ
ちアドレスされたと言う。
オブジェクトは単純オブジェクト(single object)
でもよいし複合オブジェクトでもよい。オブジェクトの
本体がオブジェクト及び/またはオブジェクト・ポイン
タの系列である場合には、このオブジェクトは複合オブ
ジェクトである。
でもよいし複合オブジェクトでもよい。オブジェクトの
本体がオブジェクト及び/またはオブジェクト・ポイン
タの系列である場合には、このオブジェクトは複合オブ
ジェクトである。
オブジェクトの直接実行では、インタープリタ・ポイ
ンタはオブジェクトのプロローグ・アドレスを指示す
る。このプロローグ・アドレスは実行するオブジェクト
を直接識別するメモリ内のオブジェクト実行のプロロー
グをアドレスする。オブジェクトの間接実行では、イン
タープリタ・ポインタはオブジェクト・ポインタを指示
し、このオブジェクト・ポインタは実行されるべきオブ
ジェクトであるオブジェクトのプロローグ・アドレスを
指示するすなわちアドレスする。オブジェクト・ポイン
タはメモリ内のプロローグをアドレスしないから、実行
されるオブジェクトは直接識別されることはない。
ンタはオブジェクトのプロローグ・アドレスを指示す
る。このプロローグ・アドレスは実行するオブジェクト
を直接識別するメモリ内のオブジェクト実行のプロロー
グをアドレスする。オブジェクトの間接実行では、イン
タープリタ・ポインタはオブジェクト・ポインタを指示
し、このオブジェクト・ポインタは実行されるべきオブ
ジェクトであるオブジェクトのプロローグ・アドレスを
指示するすなわちアドレスする。オブジェクト・ポイン
タはメモリ内のプロローグをアドレスしないから、実行
されるオブジェクトは直接識別されることはない。
そこで、各オブジェクトがプロローグ・アドレスと本
体を備えているという構造の一貫性をオブジェクトに与
える。またオブジェクト実行のプロローグを設ける。ま
たオブジェクト・ポインタとインタープリタ・ポインタ
を設けており、インタープリタ・ポインタとオブジェク
ト・ポインタがそのプロローグ・アドレス部分を指示す
ることによりオブジェクトを選択的に識別することがで
きる。更に、インタープリタ・ポインタがオブジェクト
・ポインタを指示することができるようにする。これに
より、最少限の処理ステップで直接または間接のオブジ
ェクト実行のため、オブジェクトとオブジェクト・ポイ
ンタを混在させて組合せることができる簡単なデータ処
理装置が提供される。これによりプログラミングを少な
くしメモリを節約し、処理のオーバーヘッドをかなり減
少させることができる。
体を備えているという構造の一貫性をオブジェクトに与
える。またオブジェクト実行のプロローグを設ける。ま
たオブジェクト・ポインタとインタープリタ・ポインタ
を設けており、インタープリタ・ポインタとオブジェク
ト・ポインタがそのプロローグ・アドレス部分を指示す
ることによりオブジェクトを選択的に識別することがで
きる。更に、インタープリタ・ポインタがオブジェクト
・ポインタを指示することができるようにする。これに
より、最少限の処理ステップで直接または間接のオブジ
ェクト実行のため、オブジェクトとオブジェクト・ポイ
ンタを混在させて組合せることができる簡単なデータ処
理装置が提供される。これによりプログラミングを少な
くしメモリを節約し、処理のオーバーヘッドをかなり減
少させることができる。
[発明の実施例] 本発明ではオブジェクト格納領域、及びオブジェクト
の実行または処理の命令を格納する固定コード領域(im
mobile code area)が設けられる。オブジェクト及びオ
ブジェクト・ポインタはオブジェクト格納領域に一緒に
無差別に格納される。各オブジェクトは固定コード領域
内のロケーションをアドレスするプロローグ・アドレス
を備えている。各オブジェクト・ポインタはオブジェク
ト格納領域内のオブジェクトをアドレスする。
の実行または処理の命令を格納する固定コード領域(im
mobile code area)が設けられる。オブジェクト及びオ
ブジェクト・ポインタはオブジェクト格納領域に一緒に
無差別に格納される。各オブジェクトは固定コード領域
内のロケーションをアドレスするプロローグ・アドレス
を備えている。各オブジェクト・ポインタはオブジェク
ト格納領域内のオブジェクトをアドレスする。
固定コード領域はオブジェクト実行シーケンスを格納
するプロローグと呼ばれる領域と、プロローグ・リダイ
レクション(redirection)シーケンスを格納する別の
領域を備えている。オブジェクト・アドレスはプロロー
グ・アドレスと呼ばれる。プロローグ・アドレスでアド
レスされた各プロローグ・ロケーションはプロローグ・
リダイレクション・シーケンスをアドレスする。インタ
ープリンタ・ポインタはオブジェクト及びオブジェクト
・ポインタを選択的にアドレスする。オブジェクトがイ
ンタープリタ・ポインタによってアドレスされるとき
は、そのプロローグ・アドレスはプロローグ・ロケーシ
ョンをアドレスし、このプロローグ・ロケーションはプ
ロローグ・リダイレクション・シーケンスをアドレスす
る。これは、いろいろな機能を持っているが、とりわけ
リダイレクション・シーケンスと実行シーケンスをとも
なうオブジェクトの直接実行を識別し、開始する。
するプロローグと呼ばれる領域と、プロローグ・リダイ
レクション(redirection)シーケンスを格納する別の
領域を備えている。オブジェクト・アドレスはプロロー
グ・アドレスと呼ばれる。プロローグ・アドレスでアド
レスされた各プロローグ・ロケーションはプロローグ・
リダイレクション・シーケンスをアドレスする。インタ
ープリンタ・ポインタはオブジェクト及びオブジェクト
・ポインタを選択的にアドレスする。オブジェクトがイ
ンタープリタ・ポインタによってアドレスされるとき
は、そのプロローグ・アドレスはプロローグ・ロケーシ
ョンをアドレスし、このプロローグ・ロケーションはプ
ロローグ・リダイレクション・シーケンスをアドレスす
る。これは、いろいろな機能を持っているが、とりわけ
リダイレクション・シーケンスと実行シーケンスをとも
なうオブジェクトの直接実行を識別し、開始する。
間接オブジェクト実行に使用するオブジェクト・ポイ
ンタはオブジェクトと入り混って格納されている。各オ
ブジェクト・ポインタは特定のオブジェクトをアドレス
する。インタープリタ・ポインタがオブジェクト・ポイ
ンタを指示している場合は、特定のオブジェクトが間接
的にアドレスされる。すなわち、その特定のオブジェク
トのプロローグ・アドレスが間接的にアドレスされる。
その特定のオブジェクトのプロローグ・アドレスは、再
び、プロローグ・ロケーションをアドレスする。これは
いろいろな機能を持っているが、とりわけ直接オブジェ
クト実行とは異なっており、しかもリダイレクション・
シーケンスをともなわない間接オブジェクト実行を識別
し、開始する。
ンタはオブジェクトと入り混って格納されている。各オ
ブジェクト・ポインタは特定のオブジェクトをアドレス
する。インタープリタ・ポインタがオブジェクト・ポイ
ンタを指示している場合は、特定のオブジェクトが間接
的にアドレスされる。すなわち、その特定のオブジェク
トのプロローグ・アドレスが間接的にアドレスされる。
その特定のオブジェクトのプロローグ・アドレスは、再
び、プロローグ・ロケーションをアドレスする。これは
いろいろな機能を持っているが、とりわけ直接オブジェ
クト実行とは異なっており、しかもリダイレクション・
シーケンスをともなわない間接オブジェクト実行を識別
し、開始する。
§ 定義 ★ プロローグ・リダイレクション・シーケンス(PRL
G) プロローグ・リダイレクション・シーケンスは固定コ
ード領域つまりメモリ中の、プロローグ初期化シーケン
ス(prologue initialization sequence,IS)によって
定められる固定ロケーションにある。
G) プロローグ・リダイレクション・シーケンスは固定コ
ード領域つまりメモリ中の、プロローグ初期化シーケン
ス(prologue initialization sequence,IS)によって
定められる固定ロケーションにある。
プロローグ・リダイレクション・シーケンスPRLGはイ
ンタープリタ・ポインタをマイクロプロセッサのワード
長だけずらすように調節することにより、ポインタを進
ませてオブジェクトの本体を通り過ぎた位置を指示さ
せ、実行をプロローグのデータ処理セグメントにリダイ
レクトする(redirect)。
ンタープリタ・ポインタをマイクロプロセッサのワード
長だけずらすように調節することにより、ポインタを進
ませてオブジェクトの本体を通り過ぎた位置を指示さ
せ、実行をプロローグのデータ処理セグメントにリダイ
レクトする(redirect)。
★ プロローグ プロローグは固定コード領域つまりメモリ内のコード
片であり、プロローグ初期化シーケンス(IS)、間接調
節シーケンス(indirect adjustment sequence,AS)、
及びデータ処理シーケンス(PS)を含んでいる。
片であり、プロローグ初期化シーケンス(IS)、間接調
節シーケンス(indirect adjustment sequence,AS)、
及びデータ処理シーケンス(PS)を含んでいる。
プロローグ初期化シーケンスISはプロローグ・リダイ
レクション・シーケンスPRLGのアドレスである。この初
期化シーケンスは2つの目的のために働く:すなわちオ
ブジェクトが直接アドレスされ実行されるときプロロー
グ・リダイレクション・シーケンスPRLGを実行させるこ
と;及びオブジェクトがオブジェクト・ポインタを経由
して間接的にアドレスされるときプロローグ間接調節シ
ーケンスASを実行させること。
レクション・シーケンスPRLGのアドレスである。この初
期化シーケンスは2つの目的のために働く:すなわちオ
ブジェクトが直接アドレスされ実行されるときプロロー
グ・リダイレクション・シーケンスPRLGを実行させるこ
と;及びオブジェクトがオブジェクト・ポインタを経由
して間接的にアドレスされるときプロローグ間接調節シ
ーケンスASを実行させること。
プロローグ・データ処理シーケンス(PS)は任意の形
式のオブジェクトに対して従来どおりのデータ処理を行
う。
式のオブジェクトに対して従来どおりのデータ処理を行
う。
★ オブジェクト オブジェクトはプロローグ・アドレス、及びデータで
ある本体を含む。プロローグ・アドレスと本体はオブジ
ェクト記憶装置すなわちメモリの中で隣接して記憶され
ている。上述の固定コード領域つまりメモリの中のプロ
ローグはオブジェクトをオブジェクト・ポインタから識
別する。
ある本体を含む。プロローグ・アドレスと本体はオブジ
ェクト記憶装置すなわちメモリの中で隣接して記憶され
ている。上述の固定コード領域つまりメモリの中のプロ
ローグはオブジェクトをオブジェクト・ポインタから識
別する。
これらのオブジェクトは種々の形式のものであってよ
い。これら種々の形式は、一貫した規則に従って構成さ
れているが、プロローグ・アドレスにより分類すなわち
識別されている。従って、プロローグ・アドレス部分が
等しければ2つのオブジェクトは同じ形式のものであ
る。この場合には本体は同じ論理構造を備えていること
になる。従って、プロローグ・アドレスはオブジェクト
実行を開始すること及びオブジェクト形式を識別するこ
との二重の目的に役立つ。第1図は、オブジェクト・メ
モリ内の、プロローグ・アドレスと本体から成る最も単
純な形態のオブジェクトを概念的に描いたものである。
第2図及び第3図はオブジェクト・メモリ内の複合オブ
ジェクトを描いてある。
い。これら種々の形式は、一貫した規則に従って構成さ
れているが、プロローグ・アドレスにより分類すなわち
識別されている。従って、プロローグ・アドレス部分が
等しければ2つのオブジェクトは同じ形式のものであ
る。この場合には本体は同じ論理構造を備えていること
になる。従って、プロローグ・アドレスはオブジェクト
実行を開始すること及びオブジェクト形式を識別するこ
との二重の目的に役立つ。第1図は、オブジェクト・メ
モリ内の、プロローグ・アドレスと本体から成る最も単
純な形態のオブジェクトを概念的に描いたものである。
第2図及び第3図はオブジェクト・メモリ内の複合オブ
ジェクトを描いてある。
★ ポインタ 本明細書に使用するポインタはアドレスであると定義
されており、ロケーション・ポインタまたはオブジェク
ト・ポインタのいずれかである。ロケーション・ポイン
タはメモリ・マップのセグメントをアドレスし、オブジ
ェクト・ポインタはオブジェクトをアドレスする。この
区別の重要性は、後に明らかになるように、解釈実行
(interpretive execution)を指示するインタープリン
タ・ポインタIが、直接実行時、オブジェクトのプロロ
ーグ・アドレスをアドレスし、間接オブジェクト実行時
には、Iはそれ自身がアドレスであるオブジェクトを特
定してアドレスするオブジェクト・ポインタをアドレス
するという、オブジェクトの実行に当って明らかであ
る。オブジェクト中のプロローグ・アドレス部はロケー
ション・ポインタである。
されており、ロケーション・ポインタまたはオブジェク
ト・ポインタのいずれかである。ロケーション・ポイン
タはメモリ・マップのセグメントをアドレスし、オブジ
ェクト・ポインタはオブジェクトをアドレスする。この
区別の重要性は、後に明らかになるように、解釈実行
(interpretive execution)を指示するインタープリン
タ・ポインタIが、直接実行時、オブジェクトのプロロ
ーグ・アドレスをアドレスし、間接オブジェクト実行時
には、Iはそれ自身がアドレスであるオブジェクトを特
定してアドレスするオブジェクト・ポインタをアドレス
するという、オブジェクトの実行に当って明らかであ
る。オブジェクト中のプロローグ・アドレス部はロケー
ション・ポインタである。
インタープリタ・ポインタは、ここで使用するよう
に、実行中のオブジェクト中の次のオブジェクトまたは
オブジェクト・ポインタOPのアドレスである。現行オブ
ジェクト・ポインタO(オブジェクト・ポインタOPでは
ない)は、ここで使用するように、今実行中の現行オブ
ジェクトのアドレスである。
に、実行中のオブジェクト中の次のオブジェクトまたは
オブジェクト・ポインタOPのアドレスである。現行オブ
ジェクト・ポインタO(オブジェクト・ポインタOPでは
ない)は、ここで使用するように、今実行中の現行オブ
ジェクトのアドレスである。
§ 直接/間接オブジェクト実行 第2図及び第3図はそれぞれ直接及び間接のオブジェ
クト実行の開始を示している。これらの図はメモリのオ
ブジェクト領域内の複合オブジェクトを描いてある。こ
れら複合オブジェクトはオブジェクト及びオブジェクト
・ポインタを無差別に混合したものから構成されてい
る。オブジェクトはすべて第1図に示すプロローグ・ア
ドレスと本体から構成されているが、第2図では、選択
されたオブジェクトだけをこのように詳しく示してあ
る。第2図において、インタープリタ・ポインタIは実
行されるべきオブジェクトとして識別されている選択さ
れたオブジェクトのプロローグ・アドレスを指示してい
る。第3図において、インタープリタ・ポインタIは実
行されるべきオブジェクトのプロローグ・アドレスを指
示するオブジェクト・ポインタOPを指し、従って実行す
るオブジェクトを間接的に選択している。
クト実行の開始を示している。これらの図はメモリのオ
ブジェクト領域内の複合オブジェクトを描いてある。こ
れら複合オブジェクトはオブジェクト及びオブジェクト
・ポインタを無差別に混合したものから構成されてい
る。オブジェクトはすべて第1図に示すプロローグ・ア
ドレスと本体から構成されているが、第2図では、選択
されたオブジェクトだけをこのように詳しく示してあ
る。第2図において、インタープリタ・ポインタIは実
行されるべきオブジェクトとして識別されている選択さ
れたオブジェクトのプロローグ・アドレスを指示してい
る。第3図において、インタープリタ・ポインタIは実
行されるべきオブジェクトのプロローグ・アドレスを指
示するオブジェクト・ポインタOPを指し、従って実行す
るオブジェクトを間接的に選択している。
後に説明するように、プログラム・カウンタは、内部
ループの開始と呼ばれるオブジェクト実行を開始する。
第2図に示すような直接オブジェクト実行では、インタ
ープリタ・ポインタIはメモリのオブジェクト領域にあ
るオブジェクトのプロローグ・アドレスを指している。
このオブジェクトは図示したプロローグ・アドレスと本
体を持ており、直接オブジェクト実行により実行するオ
ブジェクトとして識別されている。簡単に言って、内部
ループはオブジェクト領域の構成要素を逐次的または選
択的に実行する解釈機構(interpretive mechanism)で
ある。これら構成要素はオブジェクトであることもあ
り、あるいはオブジェクト・ポインタであることもあ
る。前者の場合には、オブジェクト自身は内部ループで
実行される。これは直接オブジェクト実行と定義され
る。後者の場合は、オブジェクト・ポインタによりアド
レスされるオブジェクトが内部ループで実行される。こ
の後者の場合は第3図に描いてあり、間接実行と定義さ
れる。
ループの開始と呼ばれるオブジェクト実行を開始する。
第2図に示すような直接オブジェクト実行では、インタ
ープリタ・ポインタIはメモリのオブジェクト領域にあ
るオブジェクトのプロローグ・アドレスを指している。
このオブジェクトは図示したプロローグ・アドレスと本
体を持ており、直接オブジェクト実行により実行するオ
ブジェクトとして識別されている。簡単に言って、内部
ループはオブジェクト領域の構成要素を逐次的または選
択的に実行する解釈機構(interpretive mechanism)で
ある。これら構成要素はオブジェクトであることもあ
り、あるいはオブジェクト・ポインタであることもあ
る。前者の場合には、オブジェクト自身は内部ループで
実行される。これは直接オブジェクト実行と定義され
る。後者の場合は、オブジェクト・ポインタによりアド
レスされるオブジェクトが内部ループで実行される。こ
の後者の場合は第3図に描いてあり、間接実行と定義さ
れる。
直接実行では、内部ループは現行オブジェクト・ポイ
ンタOを固定メモリ内のオブジェクトのプロローグ・ア
ドレスにセットし、オブジェクト・メモリ中のこのオブ
ジェクトの本体を指示するようにインタープリタ・ポイ
ンタIをインクリメントさせる。次に内部ループはプロ
グラム・カウンタに、現行オブジェクト・ポインタOに
よりアドレスされた固定メモリ・ロケーションの内容を
ロードする。これはその後、実行中のプロローグの残り
の部分を指示するようにインクリメントされる。これ
は、もちろん、次に実行される。
ンタOを固定メモリ内のオブジェクトのプロローグ・ア
ドレスにセットし、オブジェクト・メモリ中のこのオブ
ジェクトの本体を指示するようにインタープリタ・ポイ
ンタIをインクリメントさせる。次に内部ループはプロ
グラム・カウンタに、現行オブジェクト・ポインタOに
よりアドレスされた固定メモリ・ロケーションの内容を
ロードする。これはその後、実行中のプロローグの残り
の部分を指示するようにインクリメントされる。これ
は、もちろん、次に実行される。
間接実行の場合には、内部ループはオブジェクト・ポ
インタを実行している。第3図は、内部ループの開始時
の、オブジェクト格納領域つまりメモリの一部を描いた
ものである。ここで、インタープリタ・ポインタIはオ
ブジェクト・ポインタOPを指示しており、オブジェクト
・ポインタOPは実行するオブジェクトのプロローグ・ア
ドレスを指示している。このプロローグ・アドレスはオ
ブジェクトの形式を決定する。後に説明するように、内
部ループは現行オブジェクト・ポインタOに、インター
プリタ・ポインタIにより指示されているオブジェクト
・ポインタOPの内容(つまりプロローグ・アドレス)を
ロードする。オブジェクト・ポインタOPは実行されるべ
きオブジェクトのアドレスを持っている。インタープリ
タ・ポインタIは今度はインクリメントされて、このオ
ブジェクト・ポインタを通過した位置を指示するように
なる。またプログラム・カウンタは現行オブジェクト・
ポインタOによりアドレスされたメモリの内容、つまり
プロローグ・アドレスが、ロードされ、データ処理シー
ケンスを有するプロローグの最初の部分を指示し、その
後、インクリメントされて実行中のプロローグの残りを
指すようになり、これの部分は次に、もちろん、実行さ
れる。
インタを実行している。第3図は、内部ループの開始時
の、オブジェクト格納領域つまりメモリの一部を描いた
ものである。ここで、インタープリタ・ポインタIはオ
ブジェクト・ポインタOPを指示しており、オブジェクト
・ポインタOPは実行するオブジェクトのプロローグ・ア
ドレスを指示している。このプロローグ・アドレスはオ
ブジェクトの形式を決定する。後に説明するように、内
部ループは現行オブジェクト・ポインタOに、インター
プリタ・ポインタIにより指示されているオブジェクト
・ポインタOPの内容(つまりプロローグ・アドレス)を
ロードする。オブジェクト・ポインタOPは実行されるべ
きオブジェクトのアドレスを持っている。インタープリ
タ・ポインタIは今度はインクリメントされて、このオ
ブジェクト・ポインタを通過した位置を指示するように
なる。またプログラム・カウンタは現行オブジェクト・
ポインタOによりアドレスされたメモリの内容、つまり
プロローグ・アドレスが、ロードされ、データ処理シー
ケンスを有するプロローグの最初の部分を指示し、その
後、インクリメントされて実行中のプロローグの残りを
指すようになり、これの部分は次に、もちろん、実行さ
れる。
プロローグはすべてロケーションが固定されている。
すなわち、固定メモリ内の固定アドレスに入っている
か、あるいはマイクロコードと呼ばれる小さなプログラ
ム・ステップのリストにより論理的に実現されるか、あ
るいはハードウエアで実行される。
すなわち、固定メモリ内の固定アドレスに入っている
か、あるいはマイクロコードと呼ばれる小さなプログラ
ム・ステップのリストにより論理的に実現されるか、あ
るいはハードウエアで実行される。
§オブジェクト・サイズ インタープリタ・ポインタI、現行オブジェクト・ポ
インタO、及びプログラム・カウンタPCをインクリメン
トする際には、個々のオブジェクト・サイズを知る必要
がある。第4A図、第4B図、及び第4C図はオブジェクト・
サイズを決める3つの異なる手法を示している。
インタO、及びプログラム・カウンタPCをインクリメン
トする際には、個々のオブジェクト・サイズを知る必要
がある。第4A図、第4B図、及び第4C図はオブジェクト・
サイズを決める3つの異なる手法を示している。
第4A図においては、オブジェクト・サイズはプロロー
グだけで決まる。
グだけで決まる。
第4B図においては、オブジェクト・サイズはプロロー
グとオブジェクト本体内の長さインジケータの組合せで
決まる。このオブジェクトをサイズ計数型オブジェクト
(size counted object)と定義する。
グとオブジェクト本体内の長さインジケータの組合せで
決まる。このオブジェクトをサイズ計数型オブジェクト
(size counted object)と定義する。
第4C図においては、複合オブジェクトすなわち2次オ
ブジェクトを示している。このオブジェクト・サイズ
は、そのプロローグに対応する構造を有するエンド・マ
ーカに至るまでの(このエンド・マーカも含めて)当該
オブジェクトを構成しているオブジェクト及びオブジェ
クト・ポインタから再帰的に決まる。エンド・マーカは
固定オブジェクトまたはオブジェクト・ポインタとして
定義される。
ブジェクトを示している。このオブジェクト・サイズ
は、そのプロローグに対応する構造を有するエンド・マ
ーカに至るまでの(このエンド・マーカも含めて)当該
オブジェクトを構成しているオブジェクト及びオブジェ
クト・ポインタから再帰的に決まる。エンド・マーカは
固定オブジェクトまたはオブジェクト・ポインタとして
定義される。
§ データ処理システム 第5図は本発明の現在のところ好ましい実施例を実現
するデータ処理システムDPSのプロック図である。デー
タ処理システムDPSはマイクロプロセッサMP,ROM及びRAM
を備えており、これらはすべてバスBにより相互に接続
されている。
するデータ処理システムDPSのプロック図である。デー
タ処理システムDPSはマイクロプロセッサMP,ROM及びRAM
を備えており、これらはすべてバスBにより相互に接続
されている。
マイクロプロセッサMPは算術論理ユニットALU、イン
タープリタ・ポインタI、現行オブジェクト・ポインタ
O、プログラム・カウンタPC、内部ROM(IROM)、及び
内部RAM(IRAM)を備えている。IRAMには補助レジスタA
Rと内部カウンタICが設けられている。
タープリタ・ポインタI、現行オブジェクト・ポインタ
O、プログラム・カウンタPC、内部ROM(IROM)、及び
内部RAM(IRAM)を備えている。IRAMには補助レジスタA
Rと内部カウンタICが設けられている。
バスBは、RAM、ROM、マイクロプロセッサMP、及び入
出力装置I/Oの双方向接続を行う。バスBとマイクロプ
ロセッサMPの双方向結合は、バスBとマイクロプロセッ
サMP中のすべての要素の双方向接続を意味する。また、
マイクロプロセッサ中のすべての要素は、マイクロプロ
セッサの内部で、主として制御のため、算術論理ユニッ
トALUにより、双方向に結合されている。この双方向結
合により、その他、相互のアクセスを行ない、インター
プリタ・ポインタIをインクリメントし、現行オブジェ
クト・ポインタOをインクリメントする目的に用い、プ
ログラム・カウンタPCに対するロード、オフロード、イ
ンクリメントを行ない、またIROM、IRAM、その補助レジ
スタAR、及びその内部カウンタICをアドレスし、アクセ
スする。
出力装置I/Oの双方向接続を行う。バスBとマイクロプ
ロセッサMPの双方向結合は、バスBとマイクロプロセッ
サMP中のすべての要素の双方向接続を意味する。また、
マイクロプロセッサ中のすべての要素は、マイクロプロ
セッサの内部で、主として制御のため、算術論理ユニッ
トALUにより、双方向に結合されている。この双方向結
合により、その他、相互のアクセスを行ない、インター
プリタ・ポインタIをインクリメントし、現行オブジェ
クト・ポインタOをインクリメントする目的に用い、プ
ログラム・カウンタPCに対するロード、オフロード、イ
ンクリメントを行ない、またIROM、IRAM、その補助レジ
スタAR、及びその内部カウンタICをアドレスし、アクセ
スする。
第5図では、作図上の便宜のため、各種資源間の空間
的には別個のものであるアドレス・リンク、書込み/読
出しリンク(R/W)、及びデータ通信リンクを多重化し
て示してある。算術論理ユニットALUは入力に応答し
て、または論理処理ステップの一部として、要求を開始
する。アドレス及びR/Wコマンドがバスに乗せられてROM
/RAMへ送られ、データが解釈のため及び指定されたマイ
クロプロセッサ・ロケーションへロードするため、返さ
れる。プログラム・カウンタPCはデータ処理が行われて
いる場所及びそれがどこへ進もうとしているかを示す。
的には別個のものであるアドレス・リンク、書込み/読
出しリンク(R/W)、及びデータ通信リンクを多重化し
て示してある。算術論理ユニットALUは入力に応答し
て、または論理処理ステップの一部として、要求を開始
する。アドレス及びR/Wコマンドがバスに乗せられてROM
/RAMへ送られ、データが解釈のため及び指定されたマイ
クロプロセッサ・ロケーションへロードするため、返さ
れる。プログラム・カウンタPCはデータ処理が行われて
いる場所及びそれがどこへ進もうとしているかを示す。
ROMもここでは固定コード領域と言う。このROMの部分
にはオブジェクト領域が入っている。頻繁に使用される
オブジェクトはROM中のオブジェクト領域に格納され
る。この装置の機能は主としてデータ処理操作に関係し
ている。これら処理操作はオブジェクトの評価を含んで
いる。オブジェクトを評価するとは、その値を返すこと
またはその定義を実行することを意味している。
にはオブジェクト領域が入っている。頻繁に使用される
オブジェクトはROM中のオブジェクト領域に格納され
る。この装置の機能は主としてデータ処理操作に関係し
ている。これら処理操作はオブジェクトの評価を含んで
いる。オブジェクトを評価するとは、その値を返すこと
またはその定義を実行することを意味している。
マイクロプロセッサは次の動作を行う。
1.インタープリタ・ポインタにより指示されたロケーシ
ョン(データの単位を格納したり取出したりすることが
できる主メモリまたは補助メモリの場所)の内容を現行
オブジェクト・ポインタにコピーする。
ョン(データの単位を格納したり取出したりすることが
できる主メモリまたは補助メモリの場所)の内容を現行
オブジェクト・ポインタにコピーする。
(O←[I]) 2.メモリ・ロケーション現行オブジェクト・ポインタに
よりアドレスされたメモリ・ロケーションに存在する一
連の命令をデコードし、実行する。
よりアドレスされたメモリ・ロケーションに存在する一
連の命令をデコードし、実行する。
(PC←[O]) 3.インタープリタ・ポインタをアドレス語の大きさ(長
さ)だけインクリメントする。この大きさは、たとえ
ば、マイクロプロセッサのワード長Wで表わされる。
さ)だけインクリメントする。この大きさは、たとえ
ば、マイクロプロセッサのワード長Wで表わされる。
(I←I+W) 4.インタープリタ・ポインタを現行オブジェクト・ポイ
ンタにコピーする。
ンタにコピーする。
(O←I) 5.現行オブジェクト・ポインタをアドレス語の大きさだ
けインクリメントする。
けインクリメントする。
(O←O+W) 6.現行オブジェクト・ポインタOをIRAM中の補助レジス
タARにコピーする。
タARにコピーする。
(AR←O) 7.インタープリタ・ポインタにより指示されたロケーシ
ョンの内容を補助レジスタにコピーする。
ョンの内容を補助レジスタにコピーする。
(AR←[I]) 8.内部カウンタICをゼロにセットする。
(IC←0) 9.内部カウンタICをインクリメント及びデクリメントす
る。
る。
(IC←IC+1) (IC→IC−1) 10.内部カウンタICがゼロであるか試験して、分岐す
る。
る。
(IC=0?) 11.第9A図及び第9B図のフローチャートからわかるよう
に、補助レジスタARが指したロケーションの値が所定
の、ただし任意の集合の中のものの1つに等しいか否か
テストして分岐する。
に、補助レジスタARが指したロケーションの値が所定
の、ただし任意の集合の中のものの1つに等しいか否か
テストして分岐する。
(複合オブジェクトか?) (エンド・マークか?) ([AR]=PRLG?) 12.上述の情報に対して非分岐、非破壊でありそのエン
コードは少くともアドレスの長さのセグメントを占有
し、その最初のセグメントは、アドレスと解釈されたと
き、固定コード領域を参照することができる一連のデー
タ処理操作(プロローグ初期化シーケンスと呼ぶ)を行
う。
コードは少くともアドレスの長さのセグメントを占有
し、その最初のセグメントは、アドレスと解釈されたと
き、固定コード領域を参照することができる一連のデー
タ処理操作(プロローグ初期化シーケンスと呼ぶ)を行
う。
13.その他のデータ処理操作 ROMは好ましくは固定コード領域を構成するデータを
備えている。具体的に言えば、プロローグ・リダイレク
ション・シーケンス(PRLG)及びサポートされている各
形式のオブジェクト用のプロローグを備えることができ
る。更にオブジェクト領域の一部を含むことができる。
備えている。具体的に言えば、プロローグ・リダイレク
ション・シーケンス(PRLG)及びサポートされている各
形式のオブジェクト用のプロローグを備えることができ
る。更にオブジェクト領域の一部を含むことができる。
RAMは好ましくはデータ処理操作中新しいオブジェク
トを作り出すことができるオブジェクト領域部分を含
む。
トを作り出すことができるオブジェクト領域部分を含
む。
§ オブジェクトの実行 第5図のデータ処理装置の典型的な数種の機能を以下
に記す。その他の機能はこの説明が進むつれて明らかに
なるであろう。
に記す。その他の機能はこの説明が進むつれて明らかに
なるであろう。
O←[I]を実行するとき、次の動作が起る。
(1)ALUがアドレスIを読出し指令とともにバスに乗
せてROMまたはRAMへ送る。
せてROMまたはRAMへ送る。
(2)これに対応してアドレスIにあるデータ[I]が
ALUに読出される。
ALUに読出される。
(3)ALUは受取ったばかりのデータを現行オブジェク
ト・ポインタOに送る(第6B図)。(第8A図のデータ処
理ブロック2も参照のこと。)このデータは、たとえ
ば、固定コード・メモリ内のロケーションに対するアド
レスであり、今度はALUによって次のように処理され
る。
ト・ポインタOに送る(第6B図)。(第8A図のデータ処
理ブロック2も参照のこと。)このデータは、たとえ
ば、固定コード・メモリ内のロケーションに対するアド
レスであり、今度はALUによって次のように処理され
る。
PC←[O] (1)ALUがアドレスOを、読出し指令とともにバスに
載せる。
載せる。
(2)アドレスOにあるデータ[O]がALUに返され、A
LUはこのデータをプログラム・カウンタPCにロードする
(第6D図)。(第8A図のデータ処理ブロック4を参
照。)このデータは直接オブジェクト実行のリダイレク
ション実行シーケンス用アドレス(第6D図)か、または
間接オブジェクト実行のアドレス(第7D図)である。
LUはこのデータをプログラム・カウンタPCにロードする
(第6D図)。(第8A図のデータ処理ブロック4を参
照。)このデータは直接オブジェクト実行のリダイレク
ション実行シーケンス用アドレス(第6D図)か、または
間接オブジェクト実行のアドレス(第7D図)である。
算術論理ユニットALUはO←[I]を実行した後、イ
ンタープリタ・ポインタIをマイクロプロセッサのワー
ド長だけインクリメントして(I←I+W)、選択され
たオブジェクトの本体を指示する(第6C図)。(第8A図
のデータ処理ブロック3も参照のこと。) 第6A図ないし第6E図、第7A図ないし第7E図、第8A図な
いし第8D図、及び第9A図と第9B図は本発明の好ましい実
施例による実行シーケンスを示している。これらの図は
データ処理装置が行うオブジェクト実行シーケンスの重
要なステップの他に各オブジェクト実行シーケンスにお
けるデータ処理装置の必須要素の構成も示している。こ
の独特なプロセスと処理装置の構成は従来のマイクロプ
ロセッサで実現することができることは明らかである。
インタープリタ・ポインタI、現行オブジェクト・ポイ
ンタO、及びオブジェクト・ポインタOPを使用して本発
明のオブジェクトを評価する際の特定のシーケンスと特
定のステップは、本発明を実施する際に選択されるマイ
クロプロセッサの形式によって変る。
ンタープリタ・ポインタIをマイクロプロセッサのワー
ド長だけインクリメントして(I←I+W)、選択され
たオブジェクトの本体を指示する(第6C図)。(第8A図
のデータ処理ブロック3も参照のこと。) 第6A図ないし第6E図、第7A図ないし第7E図、第8A図な
いし第8D図、及び第9A図と第9B図は本発明の好ましい実
施例による実行シーケンスを示している。これらの図は
データ処理装置が行うオブジェクト実行シーケンスの重
要なステップの他に各オブジェクト実行シーケンスにお
けるデータ処理装置の必須要素の構成も示している。こ
の独特なプロセスと処理装置の構成は従来のマイクロプ
ロセッサで実現することができることは明らかである。
インタープリタ・ポインタI、現行オブジェクト・ポイ
ンタO、及びオブジェクト・ポインタOPを使用して本発
明のオブジェクトを評価する際の特定のシーケンスと特
定のステップは、本発明を実施する際に選択されるマイ
クロプロセッサの形式によって変る。
第6A図ないし第6E図及び第7A図ないし第7E図はオブジ
ェクトを実行するときの重要なステップを示している。
これらの図で、インタープリタ・ポインタIは矢印で示
したオブジェクト領域のメモリ・ロケーションをアドレ
スする。現行オブジェクト・ポインタOは、第5図に示
すRAM中のオブジェクト領域内かあるいは第5図に示すR
OM中の固定コード領域のオブジェクト領域のメモリ・ロ
ケーションをアドレスする。プログラム・カウンタPC
は、矢印で示したように、ROMの固定コード領域内のメ
モリ・ロケーションをアドレスする。簡単化のため、イ
ンタープリタ・ポインタI、現行オブジェクト・ポイン
タO、またはプログラム・カウンタPCの一つによりアド
レスされたロケーションが構造の残りの部分と無関係で
あるかまたは特に図示しなくともこの残りの部分からわ
かるときは、アドレスされたロケーションを示す矢印を
省略することにする。
ェクトを実行するときの重要なステップを示している。
これらの図で、インタープリタ・ポインタIは矢印で示
したオブジェクト領域のメモリ・ロケーションをアドレ
スする。現行オブジェクト・ポインタOは、第5図に示
すRAM中のオブジェクト領域内かあるいは第5図に示すR
OM中の固定コード領域のオブジェクト領域のメモリ・ロ
ケーションをアドレスする。プログラム・カウンタPC
は、矢印で示したように、ROMの固定コード領域内のメ
モリ・ロケーションをアドレスする。簡単化のため、イ
ンタープリタ・ポインタI、現行オブジェクト・ポイン
タO、またはプログラム・カウンタPCの一つによりアド
レスされたロケーションが構造の残りの部分と無関係で
あるかまたは特に図示しなくともこの残りの部分からわ
かるときは、アドレスされたロケーションを示す矢印を
省略することにする。
オブジェクト領域の代表的セグメントをこれら各図に
示してある。具体的には、オブジェクトO1,O2及びO3及
びオブジェクト・ポインタOPから成るシーケンスを示し
てある。第1のオブジェクトO1はプロローグ・アドレス
P1と本体B1から成るデータ・セグメントから構成されて
おり、本体B1の構造はプロローグ・アドレスP1がアドレ
スしているプロローグP4によって決まる。第2及び第3
のオブジェクトO2とO3は同様にプロローグ・アドレスP2
とP3、及び本体B2とB3を備えており、その構造はプロロ
ーグ・アドレスP2及びP3の両者がアドレスしているプロ
ローグP5によって決まる。プロローグ・アドレスP1から
プロローグP4への矢印、プロローグ・アドレスP2、P3か
らプロローグP5への矢印はこれらプロローグ・アドレス
によりアドレスされる固定コード領域内のロケーション
を表わしている。
示してある。具体的には、オブジェクトO1,O2及びO3及
びオブジェクト・ポインタOPから成るシーケンスを示し
てある。第1のオブジェクトO1はプロローグ・アドレス
P1と本体B1から成るデータ・セグメントから構成されて
おり、本体B1の構造はプロローグ・アドレスP1がアドレ
スしているプロローグP4によって決まる。第2及び第3
のオブジェクトO2とO3は同様にプロローグ・アドレスP2
とP3、及び本体B2とB3を備えており、その構造はプロロ
ーグ・アドレスP2及びP3の両者がアドレスしているプロ
ローグP5によって決まる。プロローグ・アドレスP1から
プロローグP4への矢印、プロローグ・アドレスP2、P3か
らプロローグP5への矢印はこれらプロローグ・アドレス
によりアドレスされる固定コード領域内のロケーション
を表わしている。
ROM内の固定コード領域の代表的セグメントもこれら
の図に示してある。具体的には、プロローグ・リダイレ
クション・シーケンスPRLGと2つのプロローグP4及びP5
を示してある。最初のプロローグP4はプロローグ初期化
シーケンスIS4、間接調整シーケンスAS4、及びデータ処
理シーケンスPS4を備えている。同様に、第2のプロロ
ーグP5はプロローグ初期化シーケンスIS5、間接調節シ
ーケンスAS5、及びデータ処理シーケンスPS5を備えてい
る。
の図に示してある。具体的には、プロローグ・リダイレ
クション・シーケンスPRLGと2つのプロローグP4及びP5
を示してある。最初のプロローグP4はプロローグ初期化
シーケンスIS4、間接調整シーケンスAS4、及びデータ処
理シーケンスPS4を備えている。同様に、第2のプロロ
ーグP5はプロローグ初期化シーケンスIS5、間接調節シ
ーケンスAS5、及びデータ処理シーケンスPS5を備えてい
る。
プロローグ初期化シーケンスIS4及びIS5からプロロー
グ・リダイレクション・シーケンスPRLGへの破線の矢印
が意味しているのは、プログラム・カウンタPCが、間接
オブジェクト実行の場合のように、プロローグ初期化シ
ーケンスIS4またはIS5のどちらかを指すようにセットさ
れるならば、プロローグ実行シーケンスが実行されるこ
とを示すということである。一方、プログラム・カウン
タPCに、直接オブジェクト実行の場合のように、プロロ
ーグ初期化シーケンスIS4またはプロローグ初期化シー
ケンスIS5のいずれかの内容がロードされれば、プログ
ラム・カウンタPCはプロローグ・リダイレクション・シ
ーケンスPRLGを指示し、このPRLGが次に実行される。
グ・リダイレクション・シーケンスPRLGへの破線の矢印
が意味しているのは、プログラム・カウンタPCが、間接
オブジェクト実行の場合のように、プロローグ初期化シ
ーケンスIS4またはIS5のどちらかを指すようにセットさ
れるならば、プロローグ実行シーケンスが実行されるこ
とを示すということである。一方、プログラム・カウン
タPCに、直接オブジェクト実行の場合のように、プロロ
ーグ初期化シーケンスIS4またはプロローグ初期化シー
ケンスIS5のいずれかの内容がロードされれば、プログ
ラム・カウンタPCはプロローグ・リダイレクション・シ
ーケンスPRLGを指示し、このPRLGが次に実行される。
内部ループ・データ処理機能はこれら各図のデータ処
理シーケンスPS4及びPS5に示されている。それらは O←[I] I←I+W PC←[O] である。
理シーケンスPS4及びPS5に示されている。それらは O←[I] I←I+W PC←[O] である。
これら個々の内部ループ機能の実行については第5図
に関連して上に説明したが、今後第6A図に関連して説明
する。
に関連して上に説明したが、今後第6A図に関連して説明
する。
§ 直接オブジェクト実行シーケンス 第6A図は直接実行の初期状態を示している。具体的に
は、インタープリタ・ポインタIはメモリRAMまたはROM
(第5図)のどちらかのオブジェクト領域内のオブジェ
クトO1のプロローグ・アドレスP1を指している。プロロ
ーグ・アドレスP1はプロローグP4のプロローグ初期化シ
ーケンスIS4をアドレスする。算術論理ユニットALUの制
御下にあるプログラム・カウンタはプロローグP4中の
「O←[I]」を指示する。これにより第6B図からわか
るように、IS4を指しているアドレス[I]の現行オブ
ジェクト・ポインタOへのロードが始まる。
は、インタープリタ・ポインタIはメモリRAMまたはROM
(第5図)のどちらかのオブジェクト領域内のオブジェ
クトO1のプロローグ・アドレスP1を指している。プロロ
ーグ・アドレスP1はプロローグP4のプロローグ初期化シ
ーケンスIS4をアドレスする。算術論理ユニットALUの制
御下にあるプログラム・カウンタはプロローグP4中の
「O←[I]」を指示する。これにより第6B図からわか
るように、IS4を指しているアドレス[I]の現行オブ
ジェクト・ポインタOへのロードが始まる。
第6B図は直接オブジェクト実行における最初のステッ
プを示しており、第6B図でP1と記してありインタープリ
タ・ポインタIで指示されたメモリ・ロケーションの内
容[I]が現行オブジェクト・ポインタOにロードされ
ている。これを破線で示してある。その結果、この場合
は、現行オブジェクト・ポインタOがプロローグP4のプ
ロローグ初期化シーケンスIS4をアドレスするつまり指
示することになる。算術論理ユニットALUはプログラム
・カウンタPCをインクリメントしてプロローグP4中の
「I←I+W」を指示し、これによりインタープリタ・
ポインタIをマイクロプロセッサのワード長だけインク
リメントする。
プを示しており、第6B図でP1と記してありインタープリ
タ・ポインタIで指示されたメモリ・ロケーションの内
容[I]が現行オブジェクト・ポインタOにロードされ
ている。これを破線で示してある。その結果、この場合
は、現行オブジェクト・ポインタOがプロローグP4のプ
ロローグ初期化シーケンスIS4をアドレスするつまり指
示することになる。算術論理ユニットALUはプログラム
・カウンタPCをインクリメントしてプロローグP4中の
「I←I+W」を指示し、これによりインタープリタ・
ポインタIをマイクロプロセッサのワード長だけインク
リメントする。
第6C図は直接オブジェクト実行の第2のステップを示
しており、インタープリタ・ポインタIがメモリ・ロケ
ーションP1を通り過ぎた位置を指示するようにインクリ
メントされ、今は第1のオブジェクトO1の本体B1を指示
している。算術論理ユニットALUはプログラム・カウン
タPCをインクリメントしてプロローグP4中の「PC←
[O]」を指すようにする。
しており、インタープリタ・ポインタIがメモリ・ロケ
ーションP1を通り過ぎた位置を指示するようにインクリ
メントされ、今は第1のオブジェクトO1の本体B1を指示
している。算術論理ユニットALUはプログラム・カウン
タPCをインクリメントしてプロローグP4中の「PC←
[O]」を指すようにする。
第6D図は直接実行の第3のステップを示す。ここで
は、算術論理ユニットALUは命令PC←[O]に応答して
現行オブジェクト・ポインタOが指示しているプロロー
グ初期化シーケンス・メモリ・ロケーションIS4の内容
[O]をプログラム・カウンタPCにロードする。その結
果、プログラム・カウンタPCは今度はプロローグ・リダ
イレクション・シーケンスPRLGをアドレスしているすな
わち指示しているので、このプロローグ・リダイレクシ
ョン・シーケンスが実行される。
は、算術論理ユニットALUは命令PC←[O]に応答して
現行オブジェクト・ポインタOが指示しているプロロー
グ初期化シーケンス・メモリ・ロケーションIS4の内容
[O]をプログラム・カウンタPCにロードする。その結
果、プログラム・カウンタPCは今度はプロローグ・リダ
イレクション・シーケンスPRLGをアドレスしているすな
わち指示しているので、このプロローグ・リダイレクシ
ョン・シーケンスが実行される。
第6E図は直接実行の第4の、そして最後のステップを
示しており、プロローグ・リダイレクション・シーケン
スの実行の結果が示されている。具体的に言えば、イン
タープリタ・ポインタIはオブジェクトO1の本体B1を超
えた位置を指示するようにインクリメントされており
(第8B図の処理ブロック9)、従ってオブジェクト領域
中で次に位置しているオブジェクト・ポインタOPを指示
する。インタープリタ・ポインタIのこの指示によって
直接オブジェクト実行に関する処理活動が始まることは
ない。現行オブジェクト・カウンタOは今度はオブジェ
クトO1の本体B1を指し、プログラム・カウンタPCはプロ
ローグP4のデータ処理シーケンスPS4を指示する。ここ
で本体B1のデータの処理が始まる。
示しており、プロローグ・リダイレクション・シーケン
スの実行の結果が示されている。具体的に言えば、イン
タープリタ・ポインタIはオブジェクトO1の本体B1を超
えた位置を指示するようにインクリメントされており
(第8B図の処理ブロック9)、従ってオブジェクト領域
中で次に位置しているオブジェクト・ポインタOPを指示
する。インタープリタ・ポインタIのこの指示によって
直接オブジェクト実行に関する処理活動が始まることは
ない。現行オブジェクト・カウンタOは今度はオブジェ
クトO1の本体B1を指し、プログラム・カウンタPCはプロ
ローグP4のデータ処理シーケンスPS4を指示する。ここ
で本体B1のデータの処理が始まる。
§ 間接オブジェクト実行 第7A図ないし第7E図は間接オブジェクト事項シーケン
スを示している。これらの図で、第7A図はインタープリ
タ・ポインタIがオブジェクト・ポインタOP(これはオ
ブジェクトO3のプロローグ・アドレスP3を指示してい
る)を指している初期状態を示している。直接オブジェ
クト実行の場合のように、ここでもプログラム・カウン
タPCは「O←[I]」の実行を開始するが、この「O←
[I]」はオブジェクトO3によってアドレスされるプロ
ローグP5中にある。
スを示している。これらの図で、第7A図はインタープリ
タ・ポインタIがオブジェクト・ポインタOP(これはオ
ブジェクトO3のプロローグ・アドレスP3を指示してい
る)を指している初期状態を示している。直接オブジェ
クト実行の場合のように、ここでもプログラム・カウン
タPCは「O←[I]」の実行を開始するが、この「O←
[I]」はオブジェクトO3によってアドレスされるプロ
ローグP5中にある。
第7B図は間接オブジェクト実行の第1のステップを示
す。算術論理ユニットALUは、実行シーケンスO←
[I]に応答して、現在、オブジェクト・ポインタOPの
プロローグ・アドレスP3を指示しているアドレスである
内容[I]を、破線で示したように、現行オブジェクト
・ポインタOにロードする。その結果、現行オブジェク
ト・ポインタOがオブジェクトO3のプロローグ・アドレ
スP3を指示する。プログラム・カウンタPCがインクリメ
ントされ、プロローグP5中の「I←I+W」の実行を開
始する。
す。算術論理ユニットALUは、実行シーケンスO←
[I]に応答して、現在、オブジェクト・ポインタOPの
プロローグ・アドレスP3を指示しているアドレスである
内容[I]を、破線で示したように、現行オブジェクト
・ポインタOにロードする。その結果、現行オブジェク
ト・ポインタOがオブジェクトO3のプロローグ・アドレ
スP3を指示する。プログラム・カウンタPCがインクリメ
ントされ、プロローグP5中の「I←I+W」の実行を開
始する。
第7C図は間接オブジェクト実行の第2のステップを示
す。インタープリタ・ポインタIは、算術論理ユニット
ALUにより、実行シーケンスI←I+Wに応答してイン
クリメントされることにより、オブジェクト・ポインタ
OPのメモリ・ロケーションの通り過ぎて、今やオブジェ
クトO2のプロローグ・アドレスP2を指示している。オブ
ジェクトO3の処理に関しては、このインタープリタ・ポ
インタIのインクリメント処理からはこれ以上の動作は
生じない。プログラム・カウンタPCがインクリメントさ
れ、プロローグP5中の「PC←[O]」の実行が開始され
る。
す。インタープリタ・ポインタIは、算術論理ユニット
ALUにより、実行シーケンスI←I+Wに応答してイン
クリメントされることにより、オブジェクト・ポインタ
OPのメモリ・ロケーションの通り過ぎて、今やオブジェ
クトO2のプロローグ・アドレスP2を指示している。オブ
ジェクトO3の処理に関しては、このインタープリタ・ポ
インタIのインクリメント処理からはこれ以上の動作は
生じない。プログラム・カウンタPCがインクリメントさ
れ、プロローグP5中の「PC←[O]」の実行が開始され
る。
第7D図は間接オブジェクト実行の第3ステップを示
す。算術論理ユニットALUは、実行シーケンスPC←
[O]に応答して、プロローグ・アドレスP3(これは
[O]である)をプログラム・カウンタPCにロードす
る。その結果、プログラム・カウンタPCは今度はプロロ
ーグP5のプロローグ初期化シーケンスIS5を指し、その
プロローグ実行シーケンスが実行される。
す。算術論理ユニットALUは、実行シーケンスPC←
[O]に応答して、プロローグ・アドレスP3(これは
[O]である)をプログラム・カウンタPCにロードす
る。その結果、プログラム・カウンタPCは今度はプロロ
ーグP5のプロローグ初期化シーケンスIS5を指し、その
プロローグ実行シーケンスが実行される。
第7E図は間接オブジェクト実行の第4のステップを示
すもので、プロローグ初期化シーケンスIS5を実行した
結果を示している。具体的に言えば、現行オブジェクト
・ポインタOはプロローグ・アドレスP3を通り過ぎた位
置を指示するようにインクリメントされているので今や
オブジェクトO3の本体B3を指示している。プログラム・
カウンタPCはインクリメントされていて、今やプロロー
グP5のデータ処理シーケンスPS5を指している。これで
本体B3のデータ処理が始まる。
すもので、プロローグ初期化シーケンスIS5を実行した
結果を示している。具体的に言えば、現行オブジェクト
・ポインタOはプロローグ・アドレスP3を通り過ぎた位
置を指示するようにインクリメントされているので今や
オブジェクトO3の本体B3を指示している。プログラム・
カウンタPCはインクリメントされていて、今やプロロー
グP5のデータ処理シーケンスPS5を指している。これで
本体B3のデータ処理が始まる。
§ データ処理のフローチャート 第8A図ないし第8D図及び第9A図、第9B図は本発明にる
データ処理装置の動作のフローチャートである。データ
処理操作のうちの本発明に関連する部分だけをこれらの
図に略示してある。それ以外の、性格上従来どうりのデ
ータ処理操作は図示してない。第8A図ないし第8D図及び
第9A図、第9B図のフローチャートは本発明を実施する際
に利用する重要なステップの好ましい実施例を描いたも
のである。
データ処理装置の動作のフローチャートである。データ
処理操作のうちの本発明に関連する部分だけをこれらの
図に略示してある。それ以外の、性格上従来どうりのデ
ータ処理操作は図示してない。第8A図ないし第8D図及び
第9A図、第9B図のフローチャートは本発明を実施する際
に利用する重要なステップの好ましい実施例を描いたも
のである。
第8A図ないし第8D図は本発明による、自動、複合、直
接、及び間接のオブジェクト実行に関係する動作のフロ
ーチャートを示す。これは反復実行ループであるから、
そのエントリを第6A図及び第7A図に示したものと一致す
るように規定してある。
接、及び間接のオブジェクト実行に関係する動作のフロ
ーチャートを示す。これは反復実行ループであるから、
そのエントリを第6A図及び第7A図に示したものと一致す
るように規定してある。
§ 初期処理段階(内部ループ) 第8A図はフローチャートの最初の部分を示す。ここで
規約上のエントリ・ポイントが結合子C1にある。最初の
処理ブロック2で、インタープリタ・ポインタIにより
アドレスされたメモリ・ロケーションP1の内容[I]
は、第5図に関連して説明したように、算術論理ユニッ
トALUの制御下で、現行オブジェクト・ポインタOにロ
ードされる。第2の処理ブロック3で、インタープリタ
・ポインタIはマイクロプロセッサMPのワード長Wだけ
インクリメントされる。第3の処理ブロック4で、プロ
グラム・カウンタPCに、現行オブジェクト・ポインタO
によりアドレスされたメモリ・ロケーションの内容
[O]がロードされる。上述の例においては、直接オブ
ジェクト実行ではこのメモリ・ロケーションはIS4であ
り、間接オブジェクト実行ではこのメモリ・ロケーショ
ンはP3である。直接オブジェクト実行の場合には、この
ことはプロローグ・リダイレクション・シーケンスPRLG
が次に実行される([O]がPRLGをアドレスする(第6D
図))ことを意味する。他方間接オブジェクト実行の場
合には、これはプロローグ初期化シーケンスIS5が次に
実行される([O]がAS5をアドレスする(第7D図))
ことを意味する。この状況を結合子C5とC6で示してあ
る。
規約上のエントリ・ポイントが結合子C1にある。最初の
処理ブロック2で、インタープリタ・ポインタIにより
アドレスされたメモリ・ロケーションP1の内容[I]
は、第5図に関連して説明したように、算術論理ユニッ
トALUの制御下で、現行オブジェクト・ポインタOにロ
ードされる。第2の処理ブロック3で、インタープリタ
・ポインタIはマイクロプロセッサMPのワード長Wだけ
インクリメントされる。第3の処理ブロック4で、プロ
グラム・カウンタPCに、現行オブジェクト・ポインタO
によりアドレスされたメモリ・ロケーションの内容
[O]がロードされる。上述の例においては、直接オブ
ジェクト実行ではこのメモリ・ロケーションはIS4であ
り、間接オブジェクト実行ではこのメモリ・ロケーショ
ンはP3である。直接オブジェクト実行の場合には、この
ことはプロローグ・リダイレクション・シーケンスPRLG
が次に実行される([O]がPRLGをアドレスする(第6D
図))ことを意味する。他方間接オブジェクト実行の場
合には、これはプロローグ初期化シーケンスIS5が次に
実行される([O]がAS5をアドレスする(第7D図))
ことを意味する。この状況を結合子C5とC6で示してあ
る。
§ プロローグ・リダイレクション・シーケンス(直接
実行) 第8B図はプロローグ・リダイレクション・シーケンス
PRLGの動作を示しており、第6A図ないし第6E図の直接オ
ブジェクト実行を扱っている。このシーケンスには第8A
図の結合子C2から結合子C2を経て入る。最初の処理ブロ
ック7で、現行オブジェクト・ポインタOの値が補助レ
ジスタAR(第5図)にロードされる。この値を便宜上
O′と呼ぶ。第2の処理ブロック8で、インタープリタ
・ポインタIの値がオブジェクト・ポインタOにロード
される。この値は今やオブジェクトO1の本体を指示して
いる(第6E図)。第3の処理ブロック9で、インタープ
リタ・ポインタIはインクリメントされることにより、
オブジェクトの本体を通り過ぎた位置を指示する。これ
は第6E図からもわかる。この動作は補助レジスタAR中の
値O′に基いている。このプロセスを示すフローチャー
トを第9A図及び第9B図に示してあり、更に説明すること
にする。第4の処理ブロック10で、プロローグ初期化シ
ーケンスが実行されなかったという事実に対して調節を
行なうのに必要な動作が行われる。これらの性質は従来
技術と同様であり、そのプロローグに割当てられたプロ
ローグ動作の細目に強く左右される。結合子C4は処理ブ
ロック10を第8D図のデータ処理ブロック17に接続する。
実行) 第8B図はプロローグ・リダイレクション・シーケンス
PRLGの動作を示しており、第6A図ないし第6E図の直接オ
ブジェクト実行を扱っている。このシーケンスには第8A
図の結合子C2から結合子C2を経て入る。最初の処理ブロ
ック7で、現行オブジェクト・ポインタOの値が補助レ
ジスタAR(第5図)にロードされる。この値を便宜上
O′と呼ぶ。第2の処理ブロック8で、インタープリタ
・ポインタIの値がオブジェクト・ポインタOにロード
される。この値は今やオブジェクトO1の本体を指示して
いる(第6E図)。第3の処理ブロック9で、インタープ
リタ・ポインタIはインクリメントされることにより、
オブジェクトの本体を通り過ぎた位置を指示する。これ
は第6E図からもわかる。この動作は補助レジスタAR中の
値O′に基いている。このプロセスを示すフローチャー
トを第9A図及び第9B図に示してあり、更に説明すること
にする。第4の処理ブロック10で、プロローグ初期化シ
ーケンスが実行されなかったという事実に対して調節を
行なうのに必要な動作が行われる。これらの性質は従来
技術と同様であり、そのプロローグに割当てられたプロ
ローグ動作の細目に強く左右される。結合子C4は処理ブ
ロック10を第8D図のデータ処理ブロック17に接続する。
プロローグの動作(間接実行) 第8C図はプロローグの動作を示す。このシーケンスに
は、間接実行の場合に、第8A図の結合子C3から結合子C3
を経て入る。最初の処理ブロック13で、プロローグ初期
化シーケンスが行われる(第7D図)。これの性質は従来
技術と同様であり、マイクロプロセッサMPの細部の動作
に強く依存する。第2の処理ブロック14で、現行オブジ
ェクト・ポインタOはインクリメントされて、現在アド
レスしているメモリ・ロケーションを通り過ぎた位置を
指示するようになる(第7E図)。実行はプロローグによ
り割当てられたデータ処理動作を用いて継続する。結合
子C4は処理ブロック14を第8D図の処理ブロック17へ接続
する。
は、間接実行の場合に、第8A図の結合子C3から結合子C3
を経て入る。最初の処理ブロック13で、プロローグ初期
化シーケンスが行われる(第7D図)。これの性質は従来
技術と同様であり、マイクロプロセッサMPの細部の動作
に強く依存する。第2の処理ブロック14で、現行オブジ
ェクト・ポインタOはインクリメントされて、現在アド
レスしているメモリ・ロケーションを通り過ぎた位置を
指示するようになる(第7E図)。実行はプロローグによ
り割当てられたデータ処理動作を用いて継続する。結合
子C4は処理ブロック14を第8D図の処理ブロック17へ接続
する。
第8D図はオブジェクト実行シーケンスの最終部分を示
す。ここへは、直接オブジェクト実行の場合第8B図の結
合子C4から、また間接オブジェクト実行の場合第8C図の
結合子C4から、結合子C4を経て入る(第6E図及び第7E
図)。このシーケンスでは、プロローグ(PS4またはPS
5)に割当てられた従来のデータ処理操作は処理ブロッ
ク17により行われ、実行は第8A図の結合子C1から規約上
のエントリ・ポイントに戻る。
す。ここへは、直接オブジェクト実行の場合第8B図の結
合子C4から、また間接オブジェクト実行の場合第8C図の
結合子C4から、結合子C4を経て入る(第6E図及び第7E
図)。このシーケンスでは、プロローグ(PS4またはPS
5)に割当てられた従来のデータ処理操作は処理ブロッ
ク17により行われ、実行は第8A図の結合子C1から規約上
のエントリ・ポイントに戻る。
§ 処理プログラム 第9A図及び第9B図のフローチャートは第8B図の処理ブ
ロック9の操作を具体化したプログラムを示す。この処
理ブロック9では、補助レジスタARに格納されている
O′と呼ばれるOの値に基いて、オブジェクト本体を通
り過ぎた位置を指示するようにインタープリタ・ポイン
タIをインクリメントする。このプログラムへはエント
リ・ポイント19を経て入る。最初のステップとして、処
理ブロック20で、内部カウンタIC(第5図)を0にセッ
トする。次に、判断ブロック22で、プログラムは、補助
レジスタAR内の値O′をテストしてこれが複合プロロー
グをアドレスしているか否か確認する。補助レジスタAR
内の値O′が複合プロローグをアドレスしていない場合
には、プログラムはインタープリタ・ポインタIを以下
の場合分けに従ってインクリメントする:すなわちO′
が固定した大きさのオブジェクト(第4A図)を示してい
るプロローグをアドレスしている場合にはその固定した
大きさだけインクリメントする;あるいは、O′がサイ
ズ計数型オブジェクト(第4B図)を示すプロローグをア
ドレスしている場合にはインタープリタ・ポインタIが
現在アドレスしている長さインジケータから計算される
大きさで決まる量だけインクリメントする(処理ブロッ
ク25)。次にプログラムは内部カウンタICがゼロである
か否かテストする(判断ブロック27)。内部カウンタIC
がゼロである場合には、プログラムは出口端末ブロック
28から出る。ゼロでない場合にはプログラムの実行は第
9B図の結合子C7に継続する。
ロック9の操作を具体化したプログラムを示す。この処
理ブロック9では、補助レジスタARに格納されている
O′と呼ばれるOの値に基いて、オブジェクト本体を通
り過ぎた位置を指示するようにインタープリタ・ポイン
タIをインクリメントする。このプログラムへはエント
リ・ポイント19を経て入る。最初のステップとして、処
理ブロック20で、内部カウンタIC(第5図)を0にセッ
トする。次に、判断ブロック22で、プログラムは、補助
レジスタAR内の値O′をテストしてこれが複合プロロー
グをアドレスしているか否か確認する。補助レジスタAR
内の値O′が複合プロローグをアドレスしていない場合
には、プログラムはインタープリタ・ポインタIを以下
の場合分けに従ってインクリメントする:すなわちO′
が固定した大きさのオブジェクト(第4A図)を示してい
るプロローグをアドレスしている場合にはその固定した
大きさだけインクリメントする;あるいは、O′がサイ
ズ計数型オブジェクト(第4B図)を示すプロローグをア
ドレスしている場合にはインタープリタ・ポインタIが
現在アドレスしている長さインジケータから計算される
大きさで決まる量だけインクリメントする(処理ブロッ
ク25)。次にプログラムは内部カウンタICがゼロである
か否かテストする(判断ブロック27)。内部カウンタIC
がゼロである場合には、プログラムは出口端末ブロック
28から出る。ゼロでない場合にはプログラムの実行は第
9B図の結合子C7に継続する。
判断ブロック22でのテストにより、補助レジスタAR内
の値O′が複合プロローグをアドレスしていない場合に
は、内部カウンタICがインクリメントされ(処理ブロッ
ク23)、プログラムの実行は処理ブロック23から第9B図
の結合子C7に継続される。
の値O′が複合プロローグをアドレスしていない場合に
は、内部カウンタICがインクリメントされ(処理ブロッ
ク23)、プログラムの実行は処理ブロック23から第9B図
の結合子C7に継続される。
上述した終結しない2つの場合のいずれにおいても、
プログラムは次に、処理ブロック31で示したように、補
助レジスタARにインタープリタ・ポインタIがアドレス
しているメモリ・ロケーションの内容[I]をロードす
る。次に処理ブロック32で示したように、インタープリ
タ・ポインタIを、このメモリ・ロケーションを通り過
ぎた位置を指示するようにインクリメントする。プログ
ラムは次に、判断ブロック33でわかるように、補助レジ
スタARが複合オブジェクトのエンド・マーカをアドレス
しているか否かテストする。補助レジスタARの内容
[I]がエンド・マーカをアドレスしている場合には、
プログラムは、処理ブロック34からわかるように、カウ
ンタをインクリメントし、第9A図の結合子C6にその実行
を継続する。補助レジスタARの内容が、判断ブロック33
でテストしたとき、エンド・マーカをアドレスしていな
い場合には、プログラムは、判断ブロック36で示すよう
に、補助レジスタARがオブジェクト・ポインタではなく
オブジェクトをアドレスしているか否かテストする。す
なわち、補助レジスタの値O′によりアドレスされるメ
モリ・ロケーションOの内容[I]が、その内容[O]
がプロローグ・リダイレクション・シーケンスPRLGのア
ドレスであるメモリ・ロケーションIS4をアドレスして
いれば、補助レジスタARはオブジェクトをアドレスして
いる。そうでない場合にはオブジェクト・ポインタOPを
アドレスしている。補助レジスタARの内容がオブジェク
トをアドレスしている場合には、プログラムは第9A図の
結合子C5に継続する。判断ブロック36で確認したとき、
補助レジスタARがオブジェクトをアドレスしていない場
合には、プログラムは処理ブロック31から再実行され
る。
プログラムは次に、処理ブロック31で示したように、補
助レジスタARにインタープリタ・ポインタIがアドレス
しているメモリ・ロケーションの内容[I]をロードす
る。次に処理ブロック32で示したように、インタープリ
タ・ポインタIを、このメモリ・ロケーションを通り過
ぎた位置を指示するようにインクリメントする。プログ
ラムは次に、判断ブロック33でわかるように、補助レジ
スタARが複合オブジェクトのエンド・マーカをアドレス
しているか否かテストする。補助レジスタARの内容
[I]がエンド・マーカをアドレスしている場合には、
プログラムは、処理ブロック34からわかるように、カウ
ンタをインクリメントし、第9A図の結合子C6にその実行
を継続する。補助レジスタARの内容が、判断ブロック33
でテストしたとき、エンド・マーカをアドレスしていな
い場合には、プログラムは、判断ブロック36で示すよう
に、補助レジスタARがオブジェクト・ポインタではなく
オブジェクトをアドレスしているか否かテストする。す
なわち、補助レジスタの値O′によりアドレスされるメ
モリ・ロケーションOの内容[I]が、その内容[O]
がプロローグ・リダイレクション・シーケンスPRLGのア
ドレスであるメモリ・ロケーションIS4をアドレスして
いれば、補助レジスタARはオブジェクトをアドレスして
いる。そうでない場合にはオブジェクト・ポインタOPを
アドレスしている。補助レジスタARの内容がオブジェク
トをアドレスしている場合には、プログラムは第9A図の
結合子C5に継続する。判断ブロック36で確認したとき、
補助レジスタARがオブジェクトをアドレスしていない場
合には、プログラムは処理ブロック31から再実行され
る。
そのプロローグ初期化シーケンスがプロローグ・リダ
イレクション・シーケンスPRLGとオブジェクト実行のた
めのマイクロプロセッサ実行命令を含むプロローグを備
えているということは、直接及び間接の双方のオブジェ
クトを可能とする特徴である。
イレクション・シーケンスPRLGとオブジェクト実行のた
めのマイクロプロセッサ実行命令を含むプロローグを備
えているということは、直接及び間接の双方のオブジェ
クトを可能とする特徴である。
第4A図ないし第4C図に明示してあるように、一貫した
規則に従ったオブジェクトはメモリ内で隣接して置かれ
ているプロローグ・アドレスと本体を有し、更に自身の
大きさの定義を有している。この定義は、第4A図に示さ
れるようにプロローグ・アドレスで規定される場合、第
4B図に示されるようにプロローグ・アドレスと長さイン
ジケータにより規定される場合、第4C図に示されるよう
に計算することができる場合がある。このような一貫性
により、インタープリタ・ポインタIに特定のインクリ
メントを施すことをともなう、逐次的、選択的、または
飛越しオブジェクト実行を可能とする。これによりプロ
グラムの量と記憶装置すなわちメモリ空間が共に最少限
となり、プロセッサのオーバーヘッドが節約される。解
釈実行において、オブジェクトの実行(直接実行)とは
オブジェクトのプロローグの実行であり、オブジェクト
・ポインタで指示されているものの実行(間接実行)と
は、指示されているもののプロローグによって指示され
ているものの実行である。
規則に従ったオブジェクトはメモリ内で隣接して置かれ
ているプロローグ・アドレスと本体を有し、更に自身の
大きさの定義を有している。この定義は、第4A図に示さ
れるようにプロローグ・アドレスで規定される場合、第
4B図に示されるようにプロローグ・アドレスと長さイン
ジケータにより規定される場合、第4C図に示されるよう
に計算することができる場合がある。このような一貫性
により、インタープリタ・ポインタIに特定のインクリ
メントを施すことをともなう、逐次的、選択的、または
飛越しオブジェクト実行を可能とする。これによりプロ
グラムの量と記憶装置すなわちメモリ空間が共に最少限
となり、プロセッサのオーバーヘッドが節約される。解
釈実行において、オブジェクトの実行(直接実行)とは
オブジェクトのプロローグの実行であり、オブジェクト
・ポインタで指示されているものの実行(間接実行)と
は、指示されているもののプロローグによって指示され
ているものの実行である。
本発明の好ましい実施例と本発明を実施する最良の態
様とを述べるにあたり、特定の構成例と手順をここに提
示したが、当業者には構成と手順の双方の変形を本発明
の教示の精神と範囲との中で行うことができることがわ
かるであろう。
様とを述べるにあたり、特定の構成例と手順をここに提
示したが、当業者には構成と手順の双方の変形を本発明
の教示の精神と範囲との中で行うことができることがわ
かるであろう。
本発明は定義されているオブジェクトに関して行なわ
れる算術演算、記号的演算、及びその他のデータ処理演
算を行なうデータ処理装置に適用できる。
れる算術演算、記号的演算、及びその他のデータ処理演
算を行なうデータ処理装置に適用できる。
[発明の効果] 以上説明したように、本発明によれば、オブジェクト
の直接実行と間接実行を自由に混在させることができる
という効果がある。
の直接実行と間接実行を自由に混在させることができる
という効果がある。
第1図は本発明の一実施例で用いられるオブジェクトの
構造の一例を示す図、第2図はオブジェクトの直接実行
の概念を説明する図、第3図はオブジェクトの間接実行
の概念を説明する図、第4A図ないし第4C図は本発明の一
実施例におけるオブジェクト・サイズの求め方について
説明する図、第5図は本発明の一実施例のデータ処理装
置のブロック図、第6A図ないし第6E図は本発明の一実施
例におけるオブジェクトの直接実行のステップを説明す
る図、第7A図ないし第7E図は本発明の一実施例における
オブジェクトの間接実行のステップを説明する図、第8A
図ないし第8D図は第6A図ないし第6E図及び第7A図ないし
第7E図に示すステップを更に説明するためのフローチャ
ート、第9A図及び第9B図は本発明の一実施例におけるイ
ンタープリタ・ポインタのインクリメント処理を説明す
るためのフローチャートである。 I:インタープリタ・ポインタ O:現行オブジェクト・ポインタ PC:プログラム・カウンタ IC:内部カウンタ AR:補助レジスタ MP:マイクロ・プロセッサ O1〜O3:オブジェクト P1〜P3:プロローグ・ポインタ B1〜B3:本体 OP:オブジェクト・ポインタ PRLG:プロローグ・リダイレクション・シーケンス P4,P5:プロローグ IS4,IS5:プロローグ初期化シーケンス AS4,AS5:間接調節シーケンス PS4,PS5:データ処理シーケンス
構造の一例を示す図、第2図はオブジェクトの直接実行
の概念を説明する図、第3図はオブジェクトの間接実行
の概念を説明する図、第4A図ないし第4C図は本発明の一
実施例におけるオブジェクト・サイズの求め方について
説明する図、第5図は本発明の一実施例のデータ処理装
置のブロック図、第6A図ないし第6E図は本発明の一実施
例におけるオブジェクトの直接実行のステップを説明す
る図、第7A図ないし第7E図は本発明の一実施例における
オブジェクトの間接実行のステップを説明する図、第8A
図ないし第8D図は第6A図ないし第6E図及び第7A図ないし
第7E図に示すステップを更に説明するためのフローチャ
ート、第9A図及び第9B図は本発明の一実施例におけるイ
ンタープリタ・ポインタのインクリメント処理を説明す
るためのフローチャートである。 I:インタープリタ・ポインタ O:現行オブジェクト・ポインタ PC:プログラム・カウンタ IC:内部カウンタ AR:補助レジスタ MP:マイクロ・プロセッサ O1〜O3:オブジェクト P1〜P3:プロローグ・ポインタ B1〜B3:本体 OP:オブジェクト・ポインタ PRLG:プロローグ・リダイレクション・シーケンス P4,P5:プロローグ IS4,IS5:プロローグ初期化シーケンス AS4,AS5:間接調節シーケンス PS4,PS5:データ処理シーケンス
フロントページの続き (56)参考文献 特開 昭60−217438(JP,A) 電子技術総合研究所彙報、第49巻第7 号(1985年)松井、外2名著、”ETA Lisp上の対象指向プログラミング 機能LEO”,P.531−543
Claims (1)
- 【請求項1】以下の(a)ないし(g)を設け、オブジ
ェクトへ直接的にも間接的にもアクセスして実行するこ
とができるデータ処理装置: (a)オブジェクト・メモリ手段; (b)オブジェクト実行のプロローグを含むオブジェク
ト実行メモリ手段; (c)前記オブジェクト・メモリ手段中に設けられたオ
ブジェクト:前記オブジェクトの各々はプロローグ・ア
ドレスと実行対象のデータを有し、前記プロローグ・ア
ドレスの各々は前記オブジェクト実行メモリ手段中のオ
ブジェクト実行のプロローグのアドレスであり、前記プ
ロローグ中の前記プロローグ・アドレスで指示されるロ
ケーションはプロローグ初期化シーケンスのアドレスを
含む; (d)前記オブジェクト・メモリ手段中に設けられたオ
ブジェクト・ポインタ:前記オブジェクト・ポインタの
各々は前記オブジェクトとは異なった構造であり、前記
オブジェクト・ポインタの各々は他のオブジェクト中の
前記プロローグ・アドレスが存在するロケーションのア
ドレスでありオブジェクト・アドレスを有する; (e)前記オブジェクトのプロローグ・アドレスと前記
オブジェクト・ポインタのオブジェクト・アドレスを選
択的にアドレスする手段; (f)前記オブジェクトのプロローグ・アドレスへの前
記選択的にアドレスする手段による直接的なアクセスに
応答して、前記オブジェクト実行メモリ手段中の前記オ
ブジェクト実行のプロローグ初期化シーケンスにアクセ
スする手段; (g)前記オブジェクトのプロローグ・アドレスへの前
記選択的にアドレスする手段による前記オブジェクト・
ポインタを介しての間接的なアクセスに応答して、前記
オブジェクト実行メモリ手段中のオブジェクト実行のプ
ロローグをアクセスする手段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US868978 | 1986-05-30 | ||
US06/868,978 US4868745A (en) | 1986-05-30 | 1986-05-30 | Data processing system and method for the direct and indirect execution of uniformly structured object types |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62288942A JPS62288942A (ja) | 1987-12-15 |
JP2637428B2 true JP2637428B2 (ja) | 1997-08-06 |
Family
ID=25352695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62133258A Expired - Lifetime JP2637428B2 (ja) | 1986-05-30 | 1987-05-28 | データ処理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US4868745A (ja) |
EP (1) | EP0248287B1 (ja) |
JP (1) | JP2637428B2 (ja) |
KR (1) | KR960014171B1 (ja) |
DE (1) | DE3750789T2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5206951A (en) * | 1987-08-21 | 1993-04-27 | Wang Laboratories, Inc. | Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types |
US5079695A (en) * | 1988-04-25 | 1992-01-07 | Hewlett-Packard Company | Object management facility which includes a snapshot facility for providing data transfer between two objects |
US4953080A (en) * | 1988-04-25 | 1990-08-28 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system |
US5438511A (en) * | 1988-10-19 | 1995-08-01 | Xerox Corporation | Disjunctive unification |
US5247679A (en) * | 1990-02-20 | 1993-09-21 | Prime Computer, Inc. | Method for sequentially registering executable program formats with unresolved pointers by assigning linkage state and invocation state thereof |
AU628753B2 (en) * | 1990-08-14 | 1992-09-17 | Digital Equipment Corporation | Method and apparatus for implementing server functions in a distributed heterogeneous environment |
AU628264B2 (en) * | 1990-08-14 | 1992-09-10 | Oracle International Corporation | Methods and apparatus for providing a client interface to an object-oriented invocation of an application |
AU639802B2 (en) * | 1990-08-14 | 1993-08-05 | Oracle International Corporation | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment |
US5293615A (en) * | 1990-11-16 | 1994-03-08 | Amada Carlos A | Point and shoot interface for linking database records to spreadsheets whereby data of a record is automatically reformatted and loaded upon issuance of a recalculation command |
JPH05233326A (ja) * | 1991-12-19 | 1993-09-10 | Internatl Business Mach Corp <Ibm> | コンピュータシステムにおいて事象を取り扱う方法及びシステム |
US5819283A (en) * | 1993-05-11 | 1998-10-06 | Apple Computer, Inc. | Method and system for the extensibility of objects |
DE69427193T2 (de) * | 1993-07-15 | 2001-09-20 | Apple Computer, Inc. | Verfahrensauswahl mit mehreren eingangspunkten |
US5581769A (en) * | 1993-12-29 | 1996-12-03 | International Business Machines Corporation | Multipurpose program object linkage protocol for upward compatibility among different compilers |
EP0667586A3 (en) * | 1994-02-14 | 1996-08-28 | Digital Equipment Corp | Database creation system. |
US5734903A (en) * | 1994-05-13 | 1998-03-31 | Apple Computer, Inc. | System and method for object oriented message filtering |
US6603797B1 (en) * | 2000-03-22 | 2003-08-05 | Interdigital Technology Corporation | Outer loop/weighted open loop power control in a time division duplex communication system |
US7181580B2 (en) * | 2003-03-27 | 2007-02-20 | International Business Machines Corporation | Secure pointers |
US7937557B2 (en) | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
US7904695B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous power saving computer |
US7752422B2 (en) * | 2006-02-16 | 2010-07-06 | Vns Portfolio Llc | Execution of instructions directly from input source |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
US7904615B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
EP1821202B1 (en) * | 2006-02-16 | 2011-01-12 | VNS Portfolio LLC | Execution of instructions directly from input source |
US20080270751A1 (en) * | 2007-04-27 | 2008-10-30 | Technology Properties Limited | System and method for processing data in a pipeline of computers |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4249241A (en) * | 1978-10-23 | 1981-02-03 | International Business Machines Corporation | Object access serialization apparatus for a data processing system |
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
US4675810A (en) * | 1981-05-22 | 1987-06-23 | Data General Corp. | Digital data processing system having a uniquely organized memory system using object-based addressing and in which operand data is identified by names accessed by name tables |
US4503492A (en) * | 1981-09-11 | 1985-03-05 | Data General Corp. | Apparatus and methods for deriving addresses of data using painters whose values remain unchanged during an execution of a procedure |
US4584639A (en) * | 1983-12-23 | 1986-04-22 | Key Logic, Inc. | Computer security system |
US5179734A (en) * | 1984-03-02 | 1993-01-12 | Texas Instruments Incorporated | Threaded interpretive data processor |
-
1986
- 1986-05-30 US US06/868,978 patent/US4868745A/en not_active Expired - Lifetime
-
1987
- 1987-05-22 DE DE3750789T patent/DE3750789T2/de not_active Expired - Fee Related
- 1987-05-22 EP EP87107434A patent/EP0248287B1/en not_active Expired - Lifetime
- 1987-05-28 JP JP62133258A patent/JP2637428B2/ja not_active Expired - Lifetime
- 1987-05-29 KR KR1019870005359A patent/KR960014171B1/ko not_active IP Right Cessation
Non-Patent Citations (1)
Title |
---|
電子技術総合研究所彙報、第49巻第7号(1985年)松井、外2名著、"ETA Lisp上の対象指向プログラミング機能LEO",P.531−543 |
Also Published As
Publication number | Publication date |
---|---|
EP0248287B1 (en) | 1994-11-30 |
DE3750789T2 (de) | 1995-07-20 |
US4868745A (en) | 1989-09-19 |
EP0248287A3 (en) | 1989-09-20 |
EP0248287A2 (en) | 1987-12-09 |
KR870011546A (ko) | 1987-12-24 |
JPS62288942A (ja) | 1987-12-15 |
KR960014171B1 (ko) | 1996-10-14 |
DE3750789D1 (de) | 1995-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2637428B2 (ja) | データ処理装置 | |
EP0145244B1 (en) | Microcomputer | |
KR850001015B1 (ko) | 오페란드(被演算函數 : Operand)간 파이프라인제어를 행하는 데이터 처리장치 | |
US5235686A (en) | Computer system having mixed macrocode and microcode | |
US3909798A (en) | Virtual addressing method and apparatus | |
JPS61276031A (ja) | デ−タ処理装置 | |
EP0220684A2 (en) | Data processing system | |
US5008807A (en) | Data processing apparatus with abbreviated jump field | |
WO2009123669A1 (en) | Virtual debug port in single-chip computer system | |
EP0098172B1 (en) | Register control processing system | |
US6229543B1 (en) | Microprocessor, and graphics processing apparatus and method using the same | |
US20020099922A1 (en) | Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline | |
US7228527B1 (en) | Method and system for structuring a procedure | |
EP0325226B1 (en) | Information processing apparatus and method | |
US20110035652A1 (en) | Conditional Cell Execution in Electronic Spreadsheets | |
AU714669B2 (en) | Peripheral device control | |
JPS6160459B2 (ja) | ||
GB2032661A (en) | Computer with added writeable control store | |
KR900008402A (ko) | 저장 및 복귀방법과 이방법의 실행에 가장 적절한 프로세서 시스템 | |
US6727903B1 (en) | Microprocessor, and graphics processing apparatus and method using the same | |
EP0183877A1 (en) | Microcomputer for time dependent processes | |
JP2506591B2 (ja) | 補助処理装置 | |
JPH065528B2 (ja) | 情報処理システム | |
JPS59170947A (ja) | マイクロプログラム多方向分岐方式 | |
JPS59153243A (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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080425 Year of fee payment: 11 |