JPH0421892B2 - - Google Patents
Info
- Publication number
- JPH0421892B2 JPH0421892B2 JP27033184A JP27033184A JPH0421892B2 JP H0421892 B2 JPH0421892 B2 JP H0421892B2 JP 27033184 A JP27033184 A JP 27033184A JP 27033184 A JP27033184 A JP 27033184A JP H0421892 B2 JPH0421892 B2 JP H0421892B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- processor
- language
- language processing
- trap
- 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
Links
- 238000012545 processing Methods 0.000 claims description 137
- 238000000034 method Methods 0.000 claims description 67
- 230000008569 process Effects 0.000 claims description 66
- 238000004886 process control Methods 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は関数型/論理型言語処理装置、特に、
いわゆるLispマシンやTrologマシン等の専用処
理装置であつて、関数型言語や論理型言語の処理
については、言語処理用プロセツサが処理し、言
語処理単位として与えられたプロセスについての
スケジユーリングおよびトラツプ処理、ガーベ
ジ・コレクシヨン等を、汎用の逐次処理型プロセ
ツサで処理する関数型/論理型言語処理装置に関
するものである。[Detailed Description of the Invention] [Industrial Application Field] The present invention relates to a functional/logical language processing device, in particular,
It is a dedicated processing device such as a so-called Lisp machine or a Trolog machine, and when processing functional or logical languages, a language processing processor handles the scheduling and trapping of a process given as a language processing unit. The present invention relates to a functional/logical language processing device that performs processing, garbage collection, etc. using a general-purpose sequential processing processor.
最近、人工知能の研究が盛んになり、そのプロ
グラミング言語として、Lisp等に代表される関数
型言語や、Prolog等に代表される論理型言語が
注目されている。そして、それらの言語を効率的
に処理する各種専用の処理装置が開発されてい
る。
Recently, research on artificial intelligence has become active, and functional languages such as Lisp and logical languages such as Prolog are attracting attention as programming languages. Various specialized processing devices have been developed to efficiently process these languages.
第6図は従来のバツクエンド型Lispマシンのシ
ステム例を示している。 Figure 6 shows an example of a conventional back-end Lisp machine system.
第6図において、1は汎用計算機によるホスト
処理装置、2はコンソール・デイスプレイ、3は
磁気デイスク装置等の外部記憶装置、4はチヤネ
ル結合装置等のチヤネル・インタフエース装置、
5′は言語処理用の主記憶、6′は言語処理用プロ
セツサを表す。 In FIG. 6, 1 is a host processing unit made of a general-purpose computer, 2 is a console display, 3 is an external storage device such as a magnetic disk device, 4 is a channel interface device such as a channel coupling device,
5' represents a main memory for language processing, and 6' represents a processor for language processing.
オペレータとシステムとの交信は、ホスト処理
装置1のコンソール・デイスプレイ2を介して行
われる。例えば、予め外部記憶装置3に用意され
たLispにより記述されたプログラムの実行が要求
されると、ホスト処理装置1は、チヤネル・イン
タフエース装置4を介して、そのプログラムを主
記憶5′に転送し、言語処理用プロセツサ6′へそ
の実行を依頼する。 Operator communication with the system is via the console display 2 of the host processor 1. For example, when a request is made to execute a program written in Lisp prepared in advance in the external storage device 3, the host processing device 1 transfers the program to the main memory 5' via the channel interface device 4. Then, the language processing processor 6' is requested to execute it.
言語処理用プロセツサ6′は、Lsip言語をマイ
クロプログラム制御により解釈・実行し、処理結
果をチヤネル・インタフエース装置4を介して、
ホスト処理装置1へ通知する。 The language processing processor 6' interprets and executes the Lsip language under microprogram control, and sends the processing results via the channel interface device 4.
The host processing device 1 is notified.
言語処理用プロセツサ6′は、Lisp関数やマイ
クロプログラムにより、その制御動作が規定され
るが、ホスト処理装置1からの処理要求を多重に
処理しようとする場合、その各処理要求をスケジ
ユーリングするオペレーテイング・システムが必
要となる。また、主記憶5′に関連して各種トラ
ツプ処理や、主記憶5′上の不要領域を回収する
いわゆるガーベジ・コレクシヨン等の処理を実行
する必要がある。 The control operations of the language processing processor 6' are defined by Lisp functions and microprograms, but when processing multiple processing requests from the host processing device 1, each processing request must be scheduled. An operating system is required. Furthermore, it is necessary to perform various types of trap processing and so-called garbage collection processing for recovering unnecessary areas on the main memory 5' in connection with the main memory 5'.
従来、言語処理用プロセツサ6′が、その命令
体系によつて、処理要求のスケジユーリングや各
種トラツプ処理等を行うようにされているため、
そのオペレーテイング・システムをLisp関数やマ
イクロプログラムにより記述しなければならず、
次のような問題があつた。 Conventionally, the language processing processor 6' has been configured to perform processing request scheduling and various trap processing, etc., according to its instruction system.
The operating system must be written using Lisp functions and microprograms,
I had the following problem.
スケジユーリングやトラツプ処理中に、ガー
ベジ・コレクシヨンが起きると、制御用情報が
失われることがあるので、ガーベジ・コレクシ
ヨンの対象となるLisp関数を使用することがで
きず、使用可能な関数が制限される。 If garbage collection occurs during scheduling or trap processing, control information may be lost, so Lisp functions that are subject to garbage collection cannot be used, and the functions that can be used are limited. be done.
マイクロプログラムにより記述した部分は、
デバツグが困難であり、バグが発生した場合、
そのエラー個所の検出や修正が難しい。 The part written by the microprogram is
If debugging is difficult and a bug occurs,
It is difficult to detect and correct the error location.
特にガーベジ・コレクシヨンに対する対策が
難しく、またオペレーテイング・システムの機
能拡張等を行う場合に、言語処理用プロセツサ
6′が実行可能な命令体系が、オペレーテイン
グ・システムの記述に適していないため、開発
工数が多くかかる。 In particular, it is difficult to take measures against garbage collection, and when expanding the functionality of an operating system, the command system that can be executed by the language processor 6' is not suitable for writing an operating system. It takes a lot of man-hours.
本発明は上記問題点の解決を図り、スケジユー
リングやトラツプ処理専用のプロセツサを置き、
従来、言語処理用プロセツサが持つていたオペレ
ーテイング・システムの機能に相当する処理を、
その新たに設けたプロセツサで実行するようにし
て、言語処理用プロセツサの処理負担を軽減する
と共に、言語処理用プロセツサ内に、レジスタ等
がトラツプ発生時に自動的に退避されるハードウ
エアスタツクを設けることにより、トラツプ処理
等を言語処理用プロセツサの外部で処理すること
による処理矛盾の発生を防止したものである。即
ち、本発明の関数型/論理型言語処理装置は、リ
スト処理可能な関数型言語または論理型言語を処
理する関数型/論理型言語処理装置において、言
語処理単位をプロセスとして管理し、該プロセス
に関する実行のスケジユールを行うと共に、ガー
ベジ・コレクシヨンを含むトラツプ処理を実行す
るプロセス制御用プロセツサと、上記各プロセス
に関する関数型言語または論理型言語による処理
をマイクロプログラム制御により実行する言語処
理用プロセツサと、仮想記憶管理がなされ、各プ
ロセスに領域が割り当てられる主記憶と、プロセ
ス制御に関する上記プロセス制御用プロセツサと
上記言語処理用プロセツサとのインタフエース用
メモリとを備えると共に、上記言語処理用プロセ
ツサは、トラツプ発生時に内部状態情報が退避さ
れるシステム用ハードウエアスタツクを備え、上
記プロセス制御用プロセツサは、上記インタフェ
ース用メモリを介して上記言語処理用プロセツサ
に対し処理すべきプロセス環境情報を通知するよ
う構成されていることを特徴としている。以下、
図面を参照しつつ、実施例に従つて説明する。
The present invention aims to solve the above problems by providing a processor dedicated to scheduling and trap processing.
Conventionally, language processing processors perform processing equivalent to the operating system functions.
By having the newly installed processor execute it, the processing load on the language processing processor is reduced, and at the same time, a hardware stack is provided in the language processing processor where registers, etc. are automatically saved when a trap occurs. This prevents processing inconsistencies caused by processing trap processing and the like outside the language processing processor. That is, the functional/logical language processing device of the present invention manages a language processing unit as a process in a functional/logical language processing device that processes a list-processable functional language or a logical language. a process control processor that schedules execution of the above processes and executes trap processing including garbage collection; a language processing processor that executes processing using a functional language or a logical language regarding each of the above processes under microprogram control; The processor includes a main memory in which virtual memory is managed and an area is allocated to each process, and a memory for an interface between the process control processor and the language processing processor related to process control. A system hardware stack is provided in which internal state information is saved when an occurrence occurs, and the process control processor is configured to notify the language processing processor of process environment information to be processed via the interface memory. It is characterized by being below,
An embodiment will be described with reference to the drawings.
第1図は本発明の一実施例システム構成図、第
2図は第1図図示プロセス制御用プロセツサの内
部処理構成図、第3図はシステム用ハードウエア
スタツクの説明図、第4図はトラツプ発生時にお
ける制御を説明するための図、第5図は割込み発
生時における処理説明図を示す。
FIG. 1 is a system configuration diagram of an embodiment of the present invention, FIG. 2 is an internal processing configuration diagram of the process control processor shown in FIG. 1, FIG. 3 is an explanatory diagram of the system hardware stack, and FIG. FIG. 5 is a diagram for explaining control when a trap occurs, and FIG. 5 is an explanatory diagram of processing when an interrupt occurs.
第1図中、符号1ないし4は第6図に対応し、
5は主記憶、6は言語処理用プロセツサ、7はプ
ロセスのスケジユーリングおよびトラツプ処理等
を実行するプロセス制御用プロセツサ、8はロー
カルメモリ、9はキユーターミナル、10−1な
いし10−2はプロセス管理テーブル、13は高
速メモリ、14は高速メモリ13へのレジスタ退
避状態を示す使用フラグ、15はシステム用ハー
ドウエアスタツク、16は言語処理用プロセツサ
6が言語処理に用いるハードウエアスタツク、1
7はマイクロプログラムが格納される制御メモリ
(CS)、18は演算装置、19はレジスタ・フア
イルをを含む言語処理用プロセツサ内の各種レジ
スタを表す。 In FIG. 1, numerals 1 to 4 correspond to FIG. 6,
5 is a main memory, 6 is a language processing processor, 7 is a process control processor that executes process scheduling and trap processing, etc., 8 is a local memory, 9 is a queue terminal, 10-1 and 10-2 are A process management table, 13 is a high-speed memory, 14 is a usage flag indicating the register saving state to the high-speed memory 13, 15 is a system hardware stack, 16 is a hardware stack used by the language processing processor 6 for language processing, 1
Reference numeral 7 represents a control memory (CS) in which a microprogram is stored, 18 represents an arithmetic unit, and 19 represents various registers in the language processing processor including a register file.
ホスト処理装置1とのソフトウエア・インタフ
エースは、第6図に示した従来の例と同様である
と考えてよい。即ち、ホスト処理装置1における
ソフトウエアは、従来のものをそのまま用いるこ
とが可能である。主記憶5は、仮想記憶管理がな
されており、ホスト処理装置1からのLisp言語の
処理要求単位毎に、プロセスという資源の割当て
単位が対応づけられ、各プロセスに主記憶5の領
域が割当てられる。 The software interface with the host processing device 1 may be considered to be similar to the conventional example shown in FIG. That is, the conventional software in the host processing device 1 can be used as is. The main memory 5 is managed by virtual memory, and a resource allocation unit called a process is associated with each Lisp language processing request unit from the host processing device 1, and an area of the main memory 5 is allocated to each process. .
言語処理用プロセツサ6のハードウエアスタツ
ク16、制御用メモリ17、演算装置18および
各種レジスタ19については、従来のLispマシン
と同様であると考えてよい。即ち、言語処理用プ
ロセツサ6は、予め制御用メモリ17に用意され
たマイクロ命令を、レジスタ19を利用して演算
装置18により実行し、Lisp言語を処理するよう
になつている。ハードウエアスタツク16は、
Lisp関数の情報引き継ぎ等に用いられる。 The hardware stack 16, control memory 17, arithmetic unit 18, and various registers 19 of the language processing processor 6 can be considered to be the same as those of a conventional Lisp machine. That is, the language processing processor 6 executes microinstructions prepared in advance in the control memory 17 by the arithmetic unit 18 using the register 19 to process the Lisp language. The hardware stack 16 is
Used to inherit information from Lisp functions.
本発明の場合、言語処理用プロセツサ6には、
特にシステム用ハードウエアスタツク15が設け
られる。システム用ハードウエアスタツク15
は、言語処理用プロセツサ6の実行を中断させる
トラツプや割込み要求ガ発生した場合に、各種レ
ジスタ19の内容等の言語処理用プロセツサ6に
おける内部状態情報が自動的に格納されるメモリ
回路である。シシテム用ハードウエアスタツク1
5は、例えば第3図に示す如く、ポインタ部21
とレジスタ格納部22とからなり、レジスタ格納
部22は、各プロセスに対応してブロツク化され
ている。ポインタ部21は、プロセスを一意に識
別するプロセス番号PNOによりアクセスされ、
そのプロセスのレジスタ情報等が格納されるレジ
スタ格納部22の領域を指示する。 In the case of the present invention, the language processing processor 6 includes:
In particular, a system hardware stack 15 is provided. System hardware stack 15
is a memory circuit in which internal state information in the language processing processor 6, such as the contents of various registers 19, is automatically stored when a trap or interrupt request that interrupts the execution of the language processing processor 6 occurs. System hardware stack 1
5 is a pointer section 21 as shown in FIG. 3, for example.
and a register storage section 22, and the register storage section 22 is divided into blocks corresponding to each process. The pointer section 21 is accessed by a process number PNO that uniquely identifies a process,
Indicates an area of the register storage section 22 where register information and the like of the process is stored.
プロセス制御用プロセツサ7は、ローカルメモ
リ8に予め用意された命令をフエツチして実行す
る装置であつて、例えばミニ・コンピユータやマ
イクロ・コンピユータ等によつて実現される。プ
ロセス制御用プロセツサ7は、従来、言語処理用
プロセツサ6が処理していたオペレーテイング・
システムに相当する処理を専用に処理する。即
ち、ホスト処理装置1からの要求によるプロセス
の制御や、主記憶5の仮想記憶管理に伴つて生じ
るトラツプ処理等を、機械語命令を逐次処理する
ことにより実行する。各プロセスに関する情報
は、プロセス管理テーブル10−1,…により、
管理され、プロセス管理テーブル10−1,…
は、処理要求順や待ち状態によつて、キユーター
ミナル9からキユーイングされて、管理される。 The process control processor 7 is a device that fetches and executes instructions prepared in advance in the local memory 8, and is realized by, for example, a mini computer or a micro computer. The process control processor 7 performs operating functions that were conventionally handled by the language processing processor 6.
Dedicate processing equivalent to the system. That is, process control based on requests from the host processing device 1, trap processing that occurs in conjunction with virtual memory management of the main memory 5, and the like are executed by sequentially processing machine language instructions. Information regarding each process is provided by the process management table 10-1,...
managed, process management table 10-1,...
are queued from the queue terminal 9 and managed according to the order of processing requests and waiting status.
高速メモリ13は、プロセス制御用プロセツサ
7と言語処理用プロセツサ6とのインタフエース
用のキヤツシユ・メモリである。例えば、言語処
理用プロセツサ6が処理するプロセスの切換え時
に、システム用ハードウエアスタツク15に退避
されたレジスタ情報等が、高速メモリ13にセー
ブされ、新たに実行すべきプロセスのレジスタ情
報等が、高速メモリ13を介して、プロセス制御
用プロセツサ7から言語処理用プロセツサ6へ引
き渡される。使用フラグ14は、システム用ハー
ドウエアスタツク15の内容が、高速メモリ13
に格納されたか否かを、プロセス制御用プロセツ
サ7に通知するためのフラグである。 The high-speed memory 13 is a cache memory for interfacing the process control processor 7 and the language processing processor 6. For example, when switching the process processed by the language processing processor 6, the register information saved in the system hardware stack 15 is saved in the high-speed memory 13, and the register information etc. of the process to be newly executed is The data is transferred from the process control processor 7 to the language processing processor 6 via the high-speed memory 13. The use flag 14 indicates that the contents of the system hardware stack 15 are in the high-speed memory 13.
This is a flag for notifying the process control processor 7 whether or not the data has been stored.
プロセス制御用プロセツサ7の内部処理構成
は、例えば第2図図示のようになつている。割込
み解析部30は、トラツプや通常の割込みが発生
した場合に制御が移行され、その割込み原因を解
析して、割込みに対応する各種処理部を起動する
ものである。 The internal processing configuration of the process control processor 7 is, for example, as shown in FIG. When a trap or normal interrupt occurs, control is transferred to the interrupt analysis section 30, which analyzes the cause of the interrupt and activates various processing sections corresponding to the interrupt.
割込み解析部30の起動原因が、例えばメモリ
に関連するトラツプである場合には、トラツプ処
理部31が呼び出され、トラツプ処理部31は、
そのトラツプの要求する処理を実行する。また、
ガーベジ・コレクシヨンの場合には、ガーベジ・
コレクタ32が起動され、ガーベジ・コレクタ3
2は、不要となつた主記憶5上の領域を回収する
処理を実行する。トラツプ処理部31およびガー
ベジ・コレクタ32の処理は、マイクロ命令や
Lisp関数等によつて記述する必要がなく、通常の
汎用計算機等が用いる言語を使用することができ
るので、比較的容易に作成することができる。 If the cause of activation of the interrupt analysis section 30 is, for example, a memory-related trap, the trap processing section 31 is called, and the trap processing section 31 performs the following operations.
Perform the processing requested by the trap. Also,
For garbage collection, the garbage
Collector 32 is started and garbage collector 3
2 executes processing to recover areas on the main memory 5 that are no longer needed. The processing of the trap processing unit 31 and garbage collector 32 is performed using microinstructions and
It does not need to be written using Lisp functions or the like, and a language used by ordinary general-purpose computers can be used, so it can be created relatively easily.
割込み解析部30の起動原因が、プロセス間通
信や、ホスト処理装置1からの処理要求等である
場合には、スケジユーラ33が起動される。スケ
ジユーラ33は、処理要求の具体的な内容によ
り、次のようにプロセス制御を行う。要求が、ホ
スト処理装置1からのプロセス開設要求である場
合、LOGON処理部37を呼び出し、プロセス管
理テーブルを作成して、新たなプロセスを発生さ
せる。また、プロセス終了要求である場合には、
TSSEND処理部34を呼び出して、そのプロセ
スを抹消する処理を実行する。 When the cause of activation of the interrupt analysis unit 30 is inter-process communication, a processing request from the host processing device 1, etc., the scheduler 33 is activated. The scheduler 33 performs process control as follows depending on the specific content of the processing request. If the request is a process establishment request from the host processing device 1, the LOGON processing unit 37 is called, a process management table is created, and a new process is generated. Also, if it is a process termination request,
The TSSEND processing unit 34 is called to execute processing to delete the process.
例えば入出力命令の完了等、プロセスへの通知
事象が発生した場合には、POST処理部36を呼
び出し、そのプロセスの待ち状態を解除し、実行
可能状態に再キユーイングする処理を実行する。
一方、プロセスが事象発生待ち要求を発した場合
には、WAIT処理部35によつて、そのプロセ
スを待ち状態に設定する。 For example, when a notification event occurs to a process, such as the completion of an input/output command, the POST processing unit 36 is called, the process is released from a waiting state, and the process is requeued to an executable state.
On the other hand, when a process issues a request to wait for an event occurrence, the WAIT processing unit 35 sets the process to a waiting state.
他のプロセスを実行させることができる状態に
なると、スリープ処理部38へ制御が移行され
る。スリープ処理部38は、プロセス管理テーブ
ルを参照し、実行可能なプロセスを選択し、主記
憶環境設定部39へ制御を渡す。主記憶環境設定
部39は、選択されたプロセスに関する主記憶5
上の仮想記憶環境を整える処理を実行する。次に
タイマ関係制御部40により、そのプロセスの処
理時間等に関連する時間情報の切換えを行う。そ
して、プロセス切換え部41を起動する。プロセ
ス切換え部41は、新たに実行するプロセスのプ
ロセス管理テーブルから、レジスタ情報等を取り
出し、高速メモリ13にその内容を格納して、プ
ロセス環境を設定する。そして、言語処理用プロ
セツサ6へ処理要求を発する。これによつて、新
たなプロセスが、言語処理用プロセツサ6によつ
て処理されることになる。 When a state is reached in which other processes can be executed, control is transferred to the sleep processing unit 38. The sleep processing unit 38 refers to the process management table, selects an executable process, and passes control to the main memory environment setting unit 39. The main memory environment setting unit 39 configures the main memory 5 related to the selected process.
Execute the process to prepare the virtual memory environment above. Next, the timer-related control unit 40 switches time information related to the processing time and the like of the process. Then, the process switching unit 41 is activated. The process switching unit 41 extracts register information and the like from the process management table of the newly executed process, stores the contents in the high speed memory 13, and sets the process environment. Then, a processing request is issued to the language processing processor 6. As a result, a new process will be processed by the language processing processor 6.
次にトラツプ発生時における制御を、第4図に
従つて説明する。 Next, control when a trap occurs will be explained with reference to FIG.
トラツプが発生すると、言語処理用プロセツ
サ6における処理が中断され、言語処理用プロ
セツサ6が現在使用しているレジスタ情報等
が、システム用ハードウエアスタツク15へセ
ーブされる。 When a trap occurs, the processing in the language processing processor 6 is interrupted, and register information and the like currently used by the language processing processor 6 is saved in the system hardware stack 15.
それと同時にプロセス制御用プロセツサ7へ
トラツプ要求が伝達され、プロセス制御用プロ
セツサ7は、そのトラツプ要求に対応する処理
を実行する。トラツプ切換えフラグ50は、ト
ラツプが通常のトラツプであるか、ガーベジ・
コレクシヨンを要求するトラツプであるかを示
すフラグであり、このフラグがONのとき、ガ
ーベジ・コレクタ32により、ガーベジ・コレ
クシヨンが実行される。なお、ガーベジ・コレ
クシヨンは、そのガーベジ・コレクシヨン要求
が起きたユーザ・プロセスの領域が対象とさ
れ、その実行の間、言語処理用プロセツサ6
は、プロセス切換えにより、他のユーザ・プロ
セスを処理できる。 At the same time, a trap request is transmitted to the process control processor 7, and the process control processor 7 executes processing corresponding to the trap request. The trap switching flag 50 indicates whether the trap is a normal trap or a garbage trap.
This flag indicates whether a trap requests collection. When this flag is ON, garbage collection is executed by the garbage collector 32. Note that garbage collection targets the area of the user process where the garbage collection request occurred, and during its execution, the language processing processor 6
can handle other user processes by process switching.
プロセス制御用プロセツサ7は、トラツプ処
理が終了すると、その終了を言語処理用プロセ
ツサ6へ通知する。 When the trap processing is completed, the process control processor 7 notifies the language processing processor 6 of the completion.
言語処理用プロセツサ6は、トラツプ終了通
知を受けると、システム用ハードウエアスタツ
ク15にセーブしておいたレジスタ情報等をロ
ードする。 When the language processing processor 6 receives the trap completion notification, it loads the saved register information and the like into the system hardware stack 15.
そして、トラツプが起きたプロセスの実行を
再開する。なお、プロセス制御用プロセツサ7
におけるトラツプ処理において、主記憶5上の
プログラム等のスワツプイン/スワツプアウト
が発生した場合には、後述する割込み処理の場
合と同様にして、プロセス切換えを行い、他の
実行可能なプロセスの処理を実行する。 Then, execution of the trapped process is resumed. In addition, the process control processor 7
In the trap processing, if a swap-in/swap-out of a program, etc. on the main memory 5 occurs, the process is switched in the same manner as the interrupt processing described later, and the processing of another executable process is executed. .
トラツプ以外の割込みが発生した場合には、
第5図に示すように制御される。 If an interrupt other than a trap occurs,
It is controlled as shown in FIG.
言語処理用プロセツサ6は、割込み要求に
対し、レジスタ情報等を高速メモリ13にセー
ブする。なお、高速メモリ13へのレジスタ情
報等のセーブ中には、使用フラグ14をONに
セツトし、セーブが終了したときに、使用フラ
グ14をOFFにする。 The language processing processor 6 saves register information and the like in the high speed memory 13 in response to an interrupt request. Note that while register information, etc. is being saved to the high-speed memory 13, the use flag 14 is set to ON, and when the saving is completed, the use flag 14 is turned OFF.
それと同時にプロセス制御用プロセツサ7
は、割込み要求の解析を行い、スケジユーラ3
3によるプロセスのスケジユーリング、および
デイスパツチ処理を行う。 At the same time, the process control processor 7
analyzes the interrupt request and sends it to scheduler 3.
Process scheduling and dispatch processing according to step 3 are performed.
デイスパツチ処理において、言語処理用プロ
セツサ6のレジスタ情報等を使用するとき、使
用フラグ14を参照して、セーブが終了してい
るかどうかをチエツクする。終了していれば、
そのレジスタ情報等を当該割込みに関連するプ
ロセス管理テーブルに設定する。 When using the register information of the language processor 6 in the dispatch process, the use flag 14 is referred to to check whether the save has been completed. If it is finished,
The register information and the like are set in the process management table related to the interrupt.
次に、新たに実行すべきプロセスのレジスタ
情報等をそのプロセス管理テーブルから得て、
高速メモリ13に設定する。 Next, obtain the register information of the process to be newly executed from the process management table,
Set in high-speed memory 13.
そして、言語処理用プロセツサ6へ割込みに
よるスケジユーリングの終了を通知する。プロ
セス制御用プロセツサ7は、その後、次の割込
み等によるスケジユーリング契機を待つ。 Then, the language processing processor 6 is notified of the end of scheduling by interrupt. The process control processor 7 then waits for a scheduling opportunity such as the next interrupt.
言語処理用プロセツサ6は、プロセス制御用
プロセツサ7から、スケジユーリング終了通知
を受けると、高速メモリ13から新たなプロセ
スに係るレジスタ情報等をロードする。 When the language processing processor 6 receives the scheduling completion notification from the process control processor 7, it loads register information and the like related to the new process from the high speed memory 13.
言語処理用プロセツサ6へ、新たなプロセス
のレジスタ情報等が設定されることにより、そ
の後、言語処理用プロセツサ6は、切換わつた
プロセスの処理を実行することとなる。 By setting the register information of the new process to the language processing processor 6, the language processing processor 6 will thereafter execute the processing of the switched process.
上記実施例では、言語処理用プロセツサ6とし
て、Lisp言語を扱うものについて説明したが、い
わゆる、Prologマシン等、他の言語処理専用の
処理装置に対しても、同様にプロセス制御用プロ
セツサ7によつて、各種トラツプ処理およびプロ
セスのスケジユーリング処理を実行できることは
言うまでもない。 In the above embodiment, the language processing processor 6 is described as one that handles the Lisp language, but the process control processor 7 can also be used for other processing devices dedicated to language processing, such as a so-called Prolog machine. Needless to say, various types of trap processing and process scheduling processing can be executed.
以上説明した如く、本発明によれば、従来、言
語処理用プロセツサの命令処理体系では困難であ
つたトラツプ処理やスケジユーリング処理につい
て、通常の計算機の命令処理機能により実行する
ことが可能になる。従つて、開発が容易になると
共に、デバツタも容易になり、機能変更や拡張に
対しても柔軟に対処できるようになる。また、言
語処理用プロセツサの処理負担が軽くなることか
ら、処理性能が向上する。
As explained above, according to the present invention, it becomes possible to execute trap processing and scheduling processing, which have been difficult with the instruction processing system of a language processing processor, using the instruction processing function of a normal computer. . Therefore, development becomes easier, debugging becomes easier, and function changes and expansions can be dealt with flexibly. Furthermore, since the processing load on the language processing processor is reduced, processing performance is improved.
第1図は本発明の一実施例システム構成図、第
2図は第1図図示プロセス制御用プロセツサの内
部処理構成図、第3図はシステム用ハードウエア
スタツクの説明図、第4図はトラツプ発生時にお
ける制御を説明するための図、第5図は割込み発
生時における処理説明図、第6図は従来のバツク
エンド型Lispマシンのシステム例を示す。
図中、1はホスト処理装置、2はコンソール・
デイスプレイ、3は外部記憶装置、4はチヤネ
ル・インタフエース装置、5は主記憶、6は言語
処理用プロセツサ、7はプロセス制御用プロセツ
サ、8はローカルメモリ、9はキユーターミナ
ル、10−1ないし10−2はプロセス管理テー
ブル、13は高速メモリ、14は使用フラグ、1
5はシステム用ハードウエアスタツク、16はハ
ードウエアスタツク、17は制御用メモリ、18
は演算装置、19はレジスタを表す。
FIG. 1 is a system configuration diagram of an embodiment of the present invention, FIG. 2 is an internal processing configuration diagram of the process control processor shown in FIG. 1, FIG. 3 is an explanatory diagram of the system hardware stack, and FIG. FIG. 5 is a diagram for explaining control when a trap occurs, FIG. 5 is an explanatory diagram of processing when an interrupt occurs, and FIG. 6 shows an example of a system of a conventional back-end Lisp machine. In the figure, 1 is the host processing unit, 2 is the console
a display, 3 an external storage device, 4 a channel interface device, 5 a main memory, 6 a language processing processor, 7 a process control processor, 8 a local memory, 9 a queue terminal, 10-1 to 10-2 is a process management table, 13 is a high-speed memory, 14 is a usage flag, 1
5 is a system hardware stack, 16 is a hardware stack, 17 is a control memory, 18
1 represents an arithmetic unit, and 19 represents a register.
Claims (1)
語を処理する関数型/論理型言語処理装置におい
て、 言語処理単位をプロセスとして管理し、該プロ
セスに関する実行のスケジユールを行うと共に、
ガーベジ・コレクシヨンを含むトラツプ処理を実
行するプロセス制御用プロセツサと、 上記各プロセスに関する関数型言語または論理
型言語による処理をマイクロプログラム制御によ
り実行する言語処理用プロセツサと、 仮想記憶管理がなされ、各プロセスに領域が割
り当てられる主記憶と、 プロセス制御に関する上記プロセス制御用プロ
セツサと上記言語処理用プロセツサとのインタフ
エース用メモリとを備えると共に、 上記言語処理用プロセツサは、トラツプ発生時
に内部状態情報が退避されるシステム用ハードウ
エアスタツクを備え、 上記プロセス制御用プロセツサは、上記インタ
フエース用メモリを介して上記言語処理用プロセ
ツサに対し処理すべきプロセス環境情報を通知す
るよう構成されていることを特徴とする関数型/
論理型言語処理装置。[Scope of Claims] 1. In a functional/logical language processing device that processes a functional language or a logical language capable of list processing, the language processing unit is managed as a process, and the execution of the process is scheduled.
A process control processor that executes trap processing including garbage collection, a language processing processor that executes processing using a functional language or logical language regarding each of the above processes under microprogram control, and virtual memory management is performed for each process. and a memory for interfacing between the process control processor and the language processing processor related to process control, and the language processing processor saves internal state information when a trap occurs. The process control processor is configured to notify the language processing processor of process environment information to be processed via the interface memory. function type/
Logical language processor.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27033184A JPS61148535A (en) | 1984-12-21 | 1984-12-21 | Function type/logical type language processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27033184A JPS61148535A (en) | 1984-12-21 | 1984-12-21 | Function type/logical type language processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61148535A JPS61148535A (en) | 1986-07-07 |
JPH0421892B2 true JPH0421892B2 (en) | 1992-04-14 |
Family
ID=17484767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27033184A Granted JPS61148535A (en) | 1984-12-21 | 1984-12-21 | Function type/logical type language processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61148535A (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01180044A (en) * | 1988-01-11 | 1989-07-18 | Mitsubishi Electric Corp | Data processor |
US6591358B2 (en) * | 2001-01-26 | 2003-07-08 | Syed Kamal H. Jaffrey | Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU |
-
1984
- 1984-12-21 JP JP27033184A patent/JPS61148535A/en active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS61148535A (en) | 1986-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6513057B1 (en) | Heterogeneous symmetric multi-processing system | |
EP2316069B1 (en) | Lazy handling of end of interrupt messages in a virtualized environment | |
US8607009B2 (en) | Concurrent virtual machine snapshots and restore | |
JP3659062B2 (en) | Computer system | |
US5799188A (en) | System and method for managing variable weight thread contexts in a multithreaded computer system | |
KR930000592B1 (en) | Task searching apparatus | |
EP0491342A2 (en) | Method for fast communication between user program and operating system | |
CN111459623B (en) | Method, device and computer for restoring running of application program | |
JPH05197568A (en) | Computer system and method of event management | |
JPH0895821A (en) | Method and device for multitask program debugging | |
JPH04137046A (en) | Operating system for electronic computer | |
US20240126593A1 (en) | User-mode interrupt request processing method and apparatus | |
US10241829B2 (en) | Information processing device, information processing method, recording medium, calculation processing device, calculation processing method | |
JPH05216689A (en) | Computer apparatus and computer-apparatus operating method | |
JPH0421892B2 (en) | ||
JPH0192843A (en) | Data processing apparatus and method | |
JP2866588B2 (en) | System and method for transferring control between processing processes | |
JP2542573B2 (en) | System Freeze Start Method | |
WO2023169289A1 (en) | Method and apparatus for switching execution status of process | |
JPS61184643A (en) | Starting control system for virtual computer | |
JP2003005987A (en) | Emulation device | |
US20210208928A1 (en) | Interrupt servicing in userspace | |
JPS6346861B2 (en) | ||
JPH05216690A (en) | Computer apparatus and computer-apparatus operating method | |
JPH0340035A (en) | Multi-task processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |