JPS5828611B2 - Interrupt method for list processing - Google Patents

Interrupt method for list processing

Info

Publication number
JPS5828611B2
JPS5828611B2 JP54119447A JP11944779A JPS5828611B2 JP S5828611 B2 JPS5828611 B2 JP S5828611B2 JP 54119447 A JP54119447 A JP 54119447A JP 11944779 A JP11944779 A JP 11944779A JP S5828611 B2 JPS5828611 B2 JP S5828611B2
Authority
JP
Japan
Prior art keywords
interrupt
address
chain
field
list processing
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
Application number
JP54119447A
Other languages
Japanese (ja)
Other versions
JPS5556277A (en
Inventor
ウイリアム・ジヨージ・ケンプク
ジヨン・ウオーレン・マツカロウ
フランク・ジエラルド・ソルテイス
リチヤード・タツド・ターナー
ロイ・ルイス・ホフマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS5556277A publication Critical patent/JPS5556277A/en
Publication of JPS5828611B2 publication Critical patent/JPS5828611B2/en
Expired legal-status Critical Current

Links

Description

【発明の詳細な説明】 本発明はディジタル計算機システムのメモリ中に記憶さ
れた情報の処理に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to processing information stored in the memory of a digital computer system.

情報は要素の連鎖リストとして編成されている。Information is organized as a chained list of elements.

各要素は例えばデータ記録を含むように使用する事がで
きる。
Each element can be used, for example, to contain a data record.

要素の連鎖リストの形にデータ記録を編成すると、例え
ばデータの検索や更新を容易にできる。
Organizing data records in the form of a chained list of elements can facilitate retrieval and updating of data, for example.

計算機システムにおけるリスト処理とは、記憶装置中の
連鎖リスト上の要素を例えば挿入、除去もしくは検索す
るといった操作を意味する。
List processing in a computer system refers to operations such as inserting, removing, or searching elements on a chained list in a storage device.

連鎖リストはキュー(待ち行列)とも呼ばれる。A chained list is also called a queue.

第1図は典型的な連鎖リスト2の構造を示す。FIG. 1 shows the structure of a typical chained list 2.

連鎖リスト2のヘッダ4は、リストについてのステータ
ス情報4s及びリスト上の最初の要素のアドレス4aを
含む。
The header 4 of the linked list 2 contains status information 4s about the list and the address 4a of the first element on the list.

連鎖リスト2は又複数の要素6,8及び10も含む。Linked list 2 also includes a plurality of elements 6, 8 and 10.

領土の隣接する要素は記憶装置中で必ずしも隣り合って
いる必要はない。
Adjacent elements of a territory do not necessarily have to be adjacent in storage.

各要素は、リスト上の次の要素のアドレスを符号化する
ためのアドレス・フィールド6a〜10a、優先順位番
号を符号化するためのキー・フィールド6に〜10k及
びデータ・フィールド6d〜10dを含む。
Each element includes an address field 6a-10a for encoding the address of the next element on the list, a key field 6-10k for encoding a priority number and a data field 6d-10d. .

キー・フィールド中の優先順位番号はリスト上の要素を
配列するために使われる。
The priority number in the key field is used to order the elements on the list.

例えば要素は、最も小さな値のキーをリストの最初にし
て、キーの値の増加する順にリスト上に配置する事がで
きる。
For example, elements can be arranged on a list in order of increasing key value, with the lowest value key at the beginning of the list.

特願昭53−77554号はそのような連鎖リストの処
理に特に適した計算機システムを開示している。
Japanese Patent Application No. 53-77554 discloses a computer system particularly suitable for processing such chained lists.

典型的なリスト処理動作の中に、連鎖リスト中の要素を
除去及び挿入する動作がある。
Among typical list processing operations are removing and inserting elements in chained lists.

所望のキー値を持つ要素を除去する動作は、所望のキー
値を持つ要素が来るまで1度に1要素ずつリストを検索
してゆく動作を含む。
The act of removing an element with a desired key value involves searching the list one element at a time until an element with the desired key value is found.

次にこの要素は、その要素のアドレス・フィールド中に
含まれるアドレスを鎖の上の前の要素のアドレス・フィ
ールドに移す事によってリストから除去される。
This element is then removed from the list by moving the address contained in that element's address field to the address field of the previous element on the chain.

このようにして鎖は除去された要素を迂回するようにさ
れる。
In this way the chain is forced to bypass the removed element.

挿入動作も通常同様の方式で実行される。挿入及び除去
動作の順次的性質並びに鎖が非常に長い可能性のある事
から、リスト処理動作は非常に時間のかかる可能性があ
る。
Insertion operations are typically performed in a similar manner. List processing operations can be very time consuming due to the sequential nature of insert and remove operations and the fact that chains can be very long.

このためリスト処理動作は割込み可能で、計算機が時折
性の事柄を処理できるようにする事が望ましい。
For this reason, it is desirable that list processing operations be interruptible, allowing the computer to process occasional tasks.

過去において使われた1つの解決方法は鎖の中の隣り合
った要素の処理の間で割込みの発生を許す事である。
One solution used in the past is to allow interrupts to occur between processing of adjacent elements in the chain.

もし割込みが生ずると、リスト処理動作はそのまま終り
、後で最初から再開始される。
If an interrupt occurs, the list processing operation simply ends and is later restarted from the beginning.

この方式の欠点は、もし鎖が非常に長く割込みがかなり
頻繁であればリスト処理動作が終了できない状況が生じ
る事である。
The disadvantage of this approach is that if the chain is very long and the interruptions are fairly frequent, a situation may arise where the list processing operation cannot be completed.

もし1本の鎖の要素が仮想記憶システムの違ったページ
に記載されていると、付加的な困難が生じ得る。
Additional difficulties may arise if elements of one chain are listed on different pages of the virtual storage system.

そのような場合主記憶装置中に記憶されている鎖のある
要素のアドレス・フィールドが、例えば現在主記憶装置
中に存在しないがディスク上に記憶されているページの
中にある要素を参照するかもしれない。
In such a case, the address field of an element of the chain stored in main memory may refer to an element that, for example, is not currently in main memory, but is in a page stored on disk. unknown.

このアドレスに出会った検索動作は「ページ不在」を発
生し、これは参照されたページをロードするのみならず
検索の再開始も生じさせる。
Search operations encountering this address will generate a "page not found", which will cause not only the referenced page to be loaded but also to restart the search.

しかし領土の以前の要素を含むページは新しくロードさ
れたページのための余地を作るために主記憶装置から除
去されてしまっているかもしれない。
However, the page containing the territory's previous elements may have been removed from main memory to make room for the newly loaded page.

従ってその場合元々参照された要素に出会う前に第2の
ページ不在が発生するであろう。
Therefore, in that case a second page fault will occur before the originally referenced element is encountered.

非常に長い鎖に関して、そのようなページ不在とロード
動作が周期的に生じ元々参照された要素に到達できない
事があり得る。
For very long chains, such page faults and load operations can occur periodically and the originally referenced element may not be reachable.

仮想記憶システムにおけるそのような周期的なページ不
在とロードの振舞は「スラッシング(thrashin
g ) jと呼ばれ非常にやっかいな問題であり得る。
Such periodic page fault and load behavior in a virtual memory system is called "thrashing".
g) It is called j and can be a very troublesome problem.

本発明のリスト処理方式は、上記の先行技術の問題を回
避しながら、リスト処理動作が割込みに続いて再開始す
る事を可能にする。
The list processing scheme of the present invention allows list processing operations to be restarted following an interrupt while avoiding the problems of the prior art described above.

特に本発明の方式は順次的リスト処理動作の割込みと再
開始を許す。
In particular, the present scheme allows for interrupting and restarting sequential list processing operations.

リスト処理動作は、ディジタル計算機の記憶装置中にあ
る複数の要素を順次にアクセスするステップを含む。
List processing operations involve sequentially accessing a plurality of elements in a digital computer's storage.

リスト処理動作はリスト処理記述子によって識別される
List processing operations are identified by list processing descriptors.

各要素は次にアクセスすべき要素のアドレスを符号化す
るアドレス・フィールドを含む。
Each element includes an address field encoding the address of the next element to be accessed.

符号化は次の要素の2進数アドレスである事が好ましい
Preferably, the encoding is the binary address of the next element.

アドレス・フィールドによって順序の指定された複数の
要素は要素の鎖を定義する。
Multiple elements ordered by an address field define a chain of elements.

鎖の始まりはヘッダによって定められ、ヘッダは鎖の最
初の要素のアドレスを符号化するアドレス・フィールド
を含ム。
The beginning of the chain is defined by a header, which contains an address field encoding the address of the first element of the chain.

本発明の方式は、順次的リスト処理動作に割込むべき事
を示す割込み信号を受は取るステップを含む。
The method of the present invention includes the step of receiving and taking an interrupt signal indicating that a sequential list processing operation is to be interrupted.

本発明の方式は、さらに鎖のヘッダ中のビジー・ビット
位置を、領土のリスト処理動作に割込がかけられた事を
示す状態にセットするステップを含む。
The method further includes the step of setting a busy bit position in the chain header to indicate that the territory listing operation has been interrupted.

例えばビジー・ビット位置は論理値1にセットされる。For example, the busy bit position is set to a logic one.

本発明の方式はさらに、割込み信号を受は取った時にリ
スト処理動作によってアクセスされていた要素のアドレ
スを鎖ヘッダの割込みアドレス・フィールドにロードす
るステップを含む。
The method further includes the step of loading the interrupt address field of the chain header with the address of the element being accessed by the list operation when the interrupt signal is received.

又鎖ヘッダの割込み動作フィールドはリスト動作の記述
子がロードされる。
Also, the interrupt action field of the chain header is loaded with the list action descriptor.

本発明の方式は又、要求されたリスト処理動作を実行す
るという要求を受は取るステップを含む。
The method of the present invention also includes the step of accepting and taking requests to perform requested list processing operations.

要求がなされたリスト処理動作はアクセス要求記述子を
持つ。
The requested list processing operation has an access request descriptor.

これは鎖ヘッダの割込み動作フィールドに記憶されてい
る記述子と同一であってもなくてもよい。
This may or may not be the same descriptor stored in the interrupt action field of the chain header.

要求されたリスト処理動作を実行するための要求が許可
されるか否かはヘッダ中に記憶された情報及びアクセス
要求記述子に依存する。
Whether a request to perform a requested list processing operation is granted depends on the information stored in the header and the access request descriptor.

従って本発明の方法はさらに、ヘッダからビジー・ビッ
トの状態を読取るステップ及びアクセス要求記述子をヘ
ッダの割込み動作フィールドに記憶された記述子と比較
するステップを含む。
Accordingly, the method further includes the steps of reading the status of the busy bit from the header and comparing the access request descriptor with the descriptor stored in the interrupt action field of the header.

次に3つの択一的ステップのうち1つが取られる。One of three alternative steps is then taken.

第1の択一的ステップは、もしビジー・ビットの状態が
領土のリスト処理動作に割込みが行なわれた事を示し且
つアクセス要求記述子がヘッダの割込み動作フィールド
に記憶された記述子と一致するならば、ヘッダの割込み
アドレス・フィールドにアドレスが記憶された要素にお
いて要求されたリスト処理動作を再開始するステップで
ある。
The first alternative step is to determine if the state of the busy bit indicates that the territory list processing operation has been interrupted and the access request descriptor matches the descriptor stored in the interrupt operation field of the header. If so, the step is to restart the requested list processing operation at the element whose address is stored in the interrupt address field of the header.

第2の択一的ステップは、もしビジー・ビットの状態が
領土のリスト処理動作の割込みを示し且つアクセス要求
記述子がヘッダの割込み動作フィールド中に記憶された
記述子と一致しなかったならば、要求されたリスト処理
動作の再開始を禁止するというステップである。
A second alternative step is if the state of the busy bit indicates an interrupt of the territory's list processing operation and the access request descriptor did not match the descriptor stored in the interrupt operation field of the header. , prohibiting restart of the requested list processing operation.

第3の択一的ステップは、もしビジー・ビットの状態が
領土のリスト処理動作に割込みが行なわれなかった事を
示すならば、鎖の最初の要素において要求されたリスト
処理動作が再開始されるというステップである。
A third alternative step is to restart the requested list operation in the first element of the chain if the state of the busy bit indicates that the territory's list operation was not interrupted. This is the step of

本発明の1つの特徴は、その方法が仮想記憶計算機シス
テムにおいて割込み可能なリスト処理を許す事である。
One feature of the invention is that the method allows interruptible list processing in a virtual memory computer system.

割込みのなされたリスト処理動作は割込みの起きた領土
の要素から再開始されるので、上記のスラッシングの問
題は避けられる。
The thrashing problem described above is avoided because the interrupted list processing operation is restarted from the element in the territory where the interruption occurred.

本発明の第2の特徴は、割込み期間中の鎖に記憶された
データの保護に関する。
A second feature of the invention relates to the protection of data stored on the chain during interrupt periods.

もし第1のリスト処理動作に割込みが生じたならば、動
作が実行されていた鎖の要素は割込みの過程中いかなる
第2のリスト処理動作によっても変更されないであろう
If a first list processing operation is interrupted, the element of the chain on which the operation was being performed will not be modified by any second list processing operation during the course of the interruption.

第1のリスト処理動作が再開始された時、領土のデータ
は割込み以前と同じ状態になっているであろう。
When the first list processing operation is restarted, the territory's data will be in the same state as before the interruption.

本発明の方法は結線(hard−wired )論理回
路を用いて計算機システムで実施できる。
The method of the present invention can be implemented on a computer system using hard-wired logic circuits.

さらにもし計算機システムがマイクロプログラム方式の
CPUを持つならば、本発明の方法はCPUをマイクロ
プログラムする事によって実施できるであろう。
Furthermore, if the computer system has a microprogrammed CPU, the method of the present invention could be implemented by microprogramming the CPU.

以下リスト処理に特に適したディジタル計算システムで
実施された本発明の詳細な説明する。
The following is a detailed description of the invention as implemented in a digital computing system particularly suited for list processing.

そのディジタル計算システムは前に引用した特願昭53
−77554号に開示されており、そのアーキテクチャ
及びリスト処理命令のレパートリに関する詳細について
は上記文献を参照されたい。
The digital calculation system is based on the patent application filed in 1983, cited earlier.
For details regarding its architecture and repertoire of list processing instructions, please refer to the above documents.

本発明の実施を容易にする上記装置の変更は以下に掲げ
る。
Modifications of the above apparatus that facilitate the implementation of the invention are listed below.

第2図を見ると、命令レジスタ20は3つのフイールド
、即ちOPコード・フィールド24、ベース・レジスタ
・フィールド26及びアドレス・フィールド28を含ん
でいる。
Referring to FIG. 2, instruction register 20 includes three fields: an OP code field 24, a base register field 26, and an address field 28.

opコード・フィールド24はSENDM命令という機
械語命令を含んでいる。
Opcode field 24 contains a machine language instruction called the SENDM instruction.

SENDM命令はあるリスト処理動作(上記出願の明細
書参照)を要求する。
The SENDM instruction requests certain list processing operations (see specification of said application).

本発明を理解する目的には、SENDM命令は送信/受
信キュー(SRQ)と呼ばれる鎖の適当な優先順位位置
に送信/受信メツセージ(SRM)と呼ばれる要素を挿
入させるという事だけで充分である。
For purposes of understanding the invention, it is sufficient to know that the SENDM command causes an element called a send/receive message (SRM) to be inserted at the appropriate priority position in a chain called a send/receive queue (SRQ).

SENDM命令はタスク・ディスパッチング要素(TD
K)と呼ばれるシステム・オブジェクトの制御の下に実
行される(上記明細書参照)。
The SENDM instruction is a task dispatching element (TD
K) (see above).

従ってSENDM命令を実行するタスク・ディスパッチ
ング要素のアドレスはSENDM命令の記述子として役
立たせる事ができる。
Therefore, the address of the task dispatching element that executes the SENDM instruction can serve as a descriptor for the SENDM instruction.

命令レジスタ20のアドレス・フィールド28は送信/
受信キュー30のヘッダ34の記憶装置中の位置のアド
レスを含む。
The address field 28 of the instruction register 20 is
Contains the address of the location in storage of the header 34 of the receive queue 30.

命令レジスタ20のベース・レジスタ・フィールド26
は、SENDM動作によって送信/受信キュー30に挿
入すべき非連鎖送信/受信メツセージ48の記憶装置中
の位置のアドレスを含むベース・レジスタ46を識別す
る。
Base register field 26 of instruction register 20
identifies a base register 46 containing the address of the location in storage of the unchained send/receive message 48 to be inserted into the send/receive queue 30 by a SENDM operation.

非連鎖送信/受信メツセージ48はキー・フィールド4
8k、アドレス・フィールド48a及びデータ・フィー
ルド48dを含む。
Unchained Send/Receive Message 48 Key Field 4
8k, including an address field 48a and a data field 48d.

ヘッダ34に加えて、送信/受信キュー30は第1、第
2及び第3の送信/受信メツセージ31〜33を有する
In addition to the header 34, the send/receive queue 30 has first, second and third send/receive messages 31-33.

谷送信/受信メツセージはキー・フィールド31に〜3
3k、アドレス・フィールド31a〜33a及びデータ
・フィールド31d〜33dを含む。
Valley send/receive messages are in key field 31~3
3k, address fields 31a-33a and data fields 31d-33d.

キー・フィールド31に〜33kに記憶される数字は、
送信/受信メツセージ31〜33を領土に置く順序を決
定するそれらの間の相対的優先順位を確立する。
The numbers stored in key field 31 to 33k are:
A relative priority is established between the sent/received messages 31-33 which determines the order in which they are placed in the territory.

第1の送信/受信メツセージ31のアドレス・フィール
ド31aは第2の送信/受信メツセージ32のアドレス
を含み、第2の送信/受信メツセージ32のアドレス・
フィールド32aは同様に第3の送信/受信メツセージ
33のアドレスを含む。
The address field 31a of the first sent/received message 31 contains the address of the second sent/received message 32;
Field 32a likewise contains the address of the third sent/received message 33.

第3の送信/受信メツセージ33のアドレス・フィール
ド33aはゼロを含み、これはそのメツセージが送信/
受信キュー30の最後の要素である事を意味する。
The address field 33a of the third sent/received message 33 contains zero, which means that the message is sent/received.
This means that it is the last element of the receive queue 30.

第1の送信/受信メツセージ31のアドレスはヘッダ3
4の第1SRMアドレス・フィールド35に記憶されて
いる。
The address of the first sent/received message 31 is header 3
SRM address field 35 of No. 4.

又ヘッダ34はステータス・フィールド36、ビジー・
ビット・フィールド37、割込み動作フィールド38、
割込みアドレス・フィールド39及び第1TDEアドレ
ス・フィールド40も有する。
The header 34 also includes a status field 36, a busy
bit field 37, interrupt operation field 38,
It also has an interrupt address field 39 and a first TDE address field 40.

ステータス・フィールド36も第1TDEアドレス・フ
ィールド40も本発明の新規な態様のいずれにも無関係
なので、これ以上説明しない。
Neither status field 36 nor first TDE address field 40 are relevant to any of the novel aspects of the present invention and will not be further described.

ビジー・ビット37、割込み動作38及び割込みアドレ
ス39の各フィールドの意味は実施例と共に以下説明す
る。
The meaning of each field of busy bit 37, interrupt operation 38 and interrupt address 39 will be explained below along with an example.

OP1アドレス・レジスタ41に加えて、CTDEアド
レス・レジスタ42及びPCHアドレス・レジスタ43
が、SENDM動作に関係のある記憶装置中の項目のア
ドレスを記憶するために使われる。
In addition to OP1 address register 41, CTDE address register 42 and PCH address register 43
is used to store the addresses of items in storage that are relevant to SENDM operations.

CTDEアドレス・レジスタ42はSENDM命令を実
行する現在のタスク・ディスパッチング要素のアドレス
を記憶する。
CTDE address register 42 stores the address of the current task dispatching element executing a SENDM instruction.

従ってCTDEアドレス・レジスタ42に記憶されたア
ドレスはSENDM命令の記述子として役立つ。
The address stored in CTDE address register 42 thus serves as a descriptor for the SENDM instruction.

PCHアドレス・レジスタ43は、S E N D M
命令によってアクセスされた送信/受信メツセージのア
ドレス・フィールドを指示するアドレスを記憶する。
The PCH address register 43 is S E N D M
Stores an address pointing to the address field of the sent/received message accessed by the instruction.

本発明によるSENDM命令の割込みと再開始を第2図
及び第3図を参照して以下説明する。
Interruption and restart of the SENDM instruction according to the present invention will now be described with reference to FIGS. 2 and 3.

以下の説明中で非連鎖送信/受信メツセージ48のキー
奇骨の値は第3の送信/受信メツセージ33のキー奇骨
の値よりも大きいものと考える。
In the following description, it will be assumed that the key odd value of the non-chain transmitted/received message 48 is greater than the key odd value of the third transmitted/received message 33.

従ってSENDM動作は送信/受信メツセージ48を送
信/受信キュー30の末端に挿入する。
The SENDM operation therefore inserts the send/receive message 48 at the end of the send/receive queue 30.

第2図はSENDM動作の過程中の割込み直前の計算機
の状態を図式的に示す。
FIG. 2 schematically shows the state of the computer immediately before an interrupt during the course of a SENDM operation.

OP1アドレス・レジスタ41はSENDM動作によっ
てアクセスされる送信/受信キュー30のヘッダ34の
アドレスを含む。
OP1 address register 41 contains the address of the header 34 of transmit/receive queue 30 that is accessed by a SENDM operation.

PCHアドレス・レジスタ43は第2の送信/受信メツ
セージ32のアドレス・フィールド32aのアドレスを
含み、結局それは第3の送信/受信メツセージ33のア
ドレスを含む。
The PCH address register 43 contains the address of the address field 32a of the second send/receive message 32, which in turn contains the address of the third send/receive message 33.

従って第3の送信/受信メツセージのキー・フィールド
33に中のキー値が非連鎖送信/受信メツセージ48の
キー・フィールド48に中に記憶された値と比較される
The key value in the key field 33 of the third sent/received message is therefore compared with the value stored in the key field 48 of the unchained sent/received message 48.

第2図に示された状態で、どの割込みもCPU中のSE
NDM命令以上の優先順位を持たない。
In the situation shown in Figure 2, any interrupt will be sent to the SE in the CPU.
It has no higher priority than the NDM command.

リスト処理命令が進行中なので、ヘッダ34のビジー・
ビット・フィールド37は論理値ゼロである。
Since a list processing instruction is in progress, the busy flag in header 34
Bit field 37 is a logical zero.

ビジー・ビット・フィールドがゼロの時、ヘッダ34の
割込み動作フィールド38もアドレス割込みフィールド
39もアクセスされないのでこれら2つのフィールドは
任意の数値を含み得る。
When the busy bit field is zero, neither the interrupt action field 38 nor the address interrupt field 39 of the header 34 is accessed, so these two fields can contain arbitrary numbers.

第3図は割込みに続いてSENDM動作が再開始した後
の計算機の状態を図式的に説明している。
FIG. 3 diagrammatically illustrates the state of the computer after SENDM operations are restarted following an interrupt.

割込みは第2の送信/受信メツセージ32がアクセスさ
れた後で第3の送信/受信メツセージ33がアクセスさ
れる前に生じた。
The interrupt occurred after the second send/receive message 32 was accessed and before the third send/receive message 33 was accessed.

割込みはタスク・ディスパッチング要素をアクティブ・
ステータスから移し、SENDM命令の実行を停止させ
る。
Interrupts activate and activate task dispatching elements.
Move from the status and stop execution of the SENDM command.

第3図の状態の前に割込み信号が生じると、PCHアド
レス・レジスタ43中のアドレスがヘッダ34の割込み
アドレス・フィールドに記憶される。
If an interrupt signal occurs before the state of FIG. 3, the address in PCH address register 43 is stored in the interrupt address field of header 34.

CTDEアドレス・レジスタ42中のアドレスは割込み
動作フィールド38に記憶される。
The address in CTDE address register 42 is stored in interrupt operation field 38.

又ヘッダのビジー・ビット・フィールド37は割込み時
に論理値1にセットされ割込み期間中論理値1を保持す
る。
Also, the header busy bit field 37 is set to a logic 1 value at the time of an interrupt and remains at a logic 1 value during the interrupt period.

割込み終了時に、SENDM命令を出したタスク・ディ
スパッチング要素はアクティブ・ステータスを再び得る
At the end of the interrupt, the task dispatching element that issued the SENDM instruction regains active status.

従ってSENDM命令が再び実行される。Therefore, the SENDM instruction is executed again.

SENDM命令の記述子即ちその命令を実行するタスク
・ディスパッチング要素のアドレスは割込み動作フィー
ルド38に記憶されたアドレスと比較される。
The descriptor of the SENDM instruction, ie the address of the task dispatching element that executes the instruction, is compared to the address stored in interrupt action field 38.

記述子が同じなので、ビジー・ビットは論理値ゼロにク
リアされSENDM命令の実行は、ヘッダ34の割込み
アドレス・フィールド39にアドレスが記憶された第2
の送信/受信メツセージ32で再開始される。
Since the descriptors are the same, the busy bit is cleared to logic zero and execution of the SENDM instruction is executed at the second address whose address is stored in the interrupt address field 39 of the header 34.
The transmission/reception message 32 is restarted.

ビジー・ビット37が論理値Oにクリアされた時、任意
のリスト処理動作が送信/受信キュー30をアクセスで
きる。
When busy bit 37 is cleared to a logical value O, any list processing operation can access transmit/receive queue 30.

もし割込まれたタスク・ディスパッチング要素でなく違
ったアドレスを持つタスク・ディスパッチング要素によ
ってSENDM命令が実行されるならば、記述子が一致
せずSENDM命令は送信/受信キュー30のアクセス
を許可されないであろう。
If the SENDM instruction is executed by a task dispatching element with a different address than the task dispatching element that was interrupted, the descriptors do not match and the SENDM instruction allows access to the send/receive queue 30. It will not be done.

上記特願昭53−77554号の計算機に組込んだ付加
的な機構は割込みの処理を容易にする。
An additional mechanism incorporated into the computer of the above-mentioned Japanese Patent Application No. 53-77554 facilitates the handling of interrupts.

計算機は、タスク・ディスパッチング要素がアクティブ
・ステータスを失なった時例えばより高い優先順位を持
つ割込みが生じた時にタスク・ディスパッチング要素の
アドレス・レジスタ及びベース・レジスタの内容を記憶
するための機構を有する。
The computer provides a mechanism for storing the contents of the address and base registers of a task dispatching element when the task dispatching element loses active status, e.g. when an interrupt with a higher priority occurs. has.

従って割込みをかけられたタスク・ディスパッチング要
素は割込みが生じた時に実行していた命令を用いて割込
み終了後動作を開始できる。
Thus, the interrupted task dispatching element can begin operation after the interrupt ends using the instruction it was executing when the interrupt occurred.

以下動作の流れを要約する。The flow of operation is summarized below.

割込み信号を受は取るとCPU中のI10ラッチがセッ
トされる。
When an interrupt signal is received, the I10 latch in the CPU is set.

I10ラッチはテストされ、もし割込みが存在しなけれ
ば通常のSENDMサイクルが実行され、もし割込みが
存在すればビジー・ビット・フィールド37がセットさ
れる。
The I10 latch is tested and if there is no interrupt then a normal SENDM cycle is performed and if there is an interrupt the busy bit field 37 is set.

その場合次にSENDM命令を実行するタスク・ディス
パッチング要素のアドレス(従ってSENDM命令の記
述子として役立つ)がヘッダ34の割込み動作フィール
ド38に記憶される。
The address of the task dispatching element that will then execute the SENDM instruction (thus serving as a descriptor for the SENDM instruction) is then stored in the interrupt action field 38 of the header 34.

次に割込み時にアクセスされていた送信/受信メツセー
ジのアドレスが割込みアドレス・フィールド39に記憶
される。
The address of the transmitted/received message being accessed at the time of the interrupt is then stored in the interrupt address field 39.

次にシステムは割込みの処理を行なう。The system then handles the interrupt.

SENDM命令を実行せよという要求があると、ビジー
・ビット・フィールド37の状態がテストされる。
When there is a request to execute a SENDM instruction, the state of busy bit field 37 is tested.

ビジー・ビットがOならば送信/受信キュー30の最初
からSENDM命令が開始される。
If the busy bit is O, the SENDM command is started from the beginning of the transmit/receive queue 30.

ビジー・ビットが1ならばそのSENDM命令を実行す
るタスク・ディスパッチング要素のアドレス(要求され
たSENDM命令の記述子として役立つ)が割込み動作
フィールド38に記憶されていた記述子と比較される。
If the busy bit is 1, the address of the task dispatching element executing that SENDM instruction (which serves as a descriptor for the requested SENDM instruction) is compared with the descriptor stored in interrupt action field 38.

2つの記述子が一致すればSENDM命令が再開始され
る。
If the two descriptors match, the SENDM instruction is restarted.

2つの記述子が不一致であればSENDM命令は禁止さ
れる。
If the two descriptors do not match, the SENDM instruction is prohibited.

本発明を上記の特定の実施例に限定する意思はない。There is no intention to limit the invention to the particular embodiments described above.

本発明を種々のリスト処理に関して割込み可能性を与え
るために用い得る事は明らかである。
It is clear that the invention can be used to provide interruptability for various list operations.

上記特願昭53−77554号に説明されているリスト
処理動作で本発明が特に適しているのは、メツセージ送
信(SENDM)、メツセージ受信(RECM)、メツ
セージ・エンキュー(ENQM)及びメツセージ・デキ
ューの命令である。
The list processing operations described in the above-mentioned Japanese Patent Application No. 77554/1983 to which the present invention is particularly suited include message sending (SENDM), message reception (RECM), message enqueue (ENQM), and message dequeue. It is a command.

以上の説明から明らかなように、本発明を用いる事によ
ってリスト処理動作が効率化される。
As is clear from the above description, list processing operations can be made more efficient by using the present invention.

本発明の割込み方式を用いる事によって、リスト命令全
体を再始動する必要なしにページ不在を処理でき、また
複数の処理命令を完了させる必要なしにCPU内におい
て異なったタスクをスケジュールできるようになる。
By using the interrupt scheme of the present invention, page faults can be handled without having to restart the entire list instruction, and different tasks can be scheduled within the CPU without having to complete multiple processing instructions.

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

第1図は従来技術の要素の連鎖の説明図、第2図は本発
明の実施例であって、割込み前のリスト処理動作中の記
憶装置中の要素の連鎖リスト及び関連レジスタの説明図
、第3図は割込み後リスト処理動作を再開始する時の第
2図の連鎖リスト及びレジスタの説明図である。 30・・・・・・送信/受信キュー 31〜33・・・
・・・送信/受信メツセージ、34・・・・・・ヘッダ
、37・・・・・・ビジー・ビット・フィールド、38
・・・・・・割込み動作フィールド、39・・・・・・
割込みアドレス・フィールド、31a〜33a、35・
・・・・・アドレス・フィールド。
FIG. 1 is an explanatory diagram of a chain of elements in the prior art, and FIG. 2 is an explanatory diagram of an embodiment of the present invention, which is an explanatory diagram of a chain list of elements in a storage device and related registers during a list processing operation before an interrupt. FIG. 3 is an explanatory diagram of the chained list and registers of FIG. 2 when restarting the list processing operation after an interrupt. 30... Send/receive queue 31-33...
...Sent/received message, 34...Header, 37...Busy bit field, 38
...Interrupt operation field, 39...
Interrupt address fields, 31a-33a, 35.
...Address field.

Claims (1)

【特許請求の範囲】 1 各要素が次の要素のアドレスを指定する符号化アド
レス・フィールドを含み、上記アドレス・フィールドに
よって順序が指定された複数個の要素が要素の鎖をなし
、上記鎖の開始点が上記鎖の最初の要素のアドレスを指
定する符号化アドレス・フィールドを含むヘッダによっ
て定められ、ディジタル計算機の記憶装置内に置かれた
上記複数の要素を順次にアクセスするステップを含むリ
スト処理動作に割込みを行なって再開始する方式であっ
て 上記リスト処理動作に割込むべき事を示す割込み信号に
応答して、 上記ヘッダ中のビジー・ビット位置を、上記リスト処理
動作に割込みがなされた事を示す状態にセットすると共
に、上記リスト処理動作によってアクセスされていた要
素のアドレスを上記ヘッダ中の割込みアドレス・フィー
ルドに、上記リスト処理動作を行なっていた命令を識別
するリスト処理記述子を割込み動作フィールドにそれぞ
れ記憶させ、 所定の割込み処理を開始し、 上記割込み処理の開始した後において、上記鎖に対する
リスト処理動作を実行する命令を受は取った時、 上記鎖のヘッダ中の上記ビジー・ビットの状態を読取る
と共に、上記受取った命令を識別する記述子と上記鎖の
ヘッダ中の上記割込み動作フィールドに記憶されている
記述子とを比較し、上記ビジー・ビットの状態が上記鎖
に対するリスト処理動作に割込みのなされた事を示し且
つ上記受取った命令を識別する記述子が上記割込み動作
フィールドに記憶されていた記述子と一致する場合は、
上記ヘッダの上記割込みアドレス・フィールドに記憶さ
れていたアドレスに位置する要素で上記要求されたリス
ト処理動作を再開始し、上記ビジー・ビットの状態が上
記鎖に対するリスト処理動作に割込みのなされた事を示
し且つ上記受取った命令を識別する記述子が上記割込み
動作フィールドに記憶されていた記述子と一致しない場
合は、上記要求されたリスト処理動作の開始を禁止し、 上記ビジー・ビットの状態が上記鎖に対するリスト処理
動作に割込みのなされなかった事を示す場合は、上記鎖
の最初の要素から上記要求されたリスト処理動作を開始
することより成る割込み方式。
[Scope of Claims] 1. Each element includes an encoded address field specifying the address of the next element, and a plurality of elements ordered by the address field form a chain of elements, List processing, the starting point of which is defined by a header containing an encoded address field specifying the address of the first element of the chain, and which comprises sequentially accessing said plurality of elements located in the storage of a digital computer. In this method, the operation is interrupted and restarted, and in response to an interrupt signal indicating that the above list processing operation should be interrupted, the busy bit position in the above header is set to indicate that the above list processing operation was interrupted. At the same time, the address of the element being accessed by the above list processing operation is set to the interrupt address field in the above header, and the list processing descriptor identifying the instruction that was performing the above list processing operation is set to interrupt. When the receiver receives a command to execute a list processing operation for the chain after starting the specified interrupt processing, the busy flag in the header of the chain is stored in the operation field. reading the state of the bit and comparing the descriptor identifying the received instruction with the descriptor stored in the interrupt action field in the header of the chain, and determining whether the state of the busy bit is a list for the chain; If the descriptor indicating that the processing operation has been interrupted and identifying the received instruction matches the descriptor stored in the interrupt operation field,
Restarting the requested list operation with the element located at the address stored in the interrupt address field of the header, and confirming that the state of the busy bit indicates that the list operation for the chain has been interrupted. and the descriptor identifying said received instruction does not match the descriptor stored in said interrupt operation field, prohibits the initiation of said requested list processing operation and sets the state of said busy bit to An interrupt method comprising initiating said requested list processing operation from the first element of said chain if the list processing operation for said chain indicates that it has not been interrupted.
JP54119447A 1978-10-23 1979-09-19 Interrupt method for list processing Expired JPS5828611B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US95398278A 1978-10-23 1978-10-23

Publications (2)

Publication Number Publication Date
JPS5556277A JPS5556277A (en) 1980-04-24
JPS5828611B2 true JPS5828611B2 (en) 1983-06-17

Family

ID=25494779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54119447A Expired JPS5828611B2 (en) 1978-10-23 1979-09-19 Interrupt method for list processing

Country Status (2)

Country Link
JP (1) JPS5828611B2 (en)
BR (1) BR7906630A (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50143446A (en) * 1974-05-08 1975-11-18
JPS5258438A (en) * 1975-11-10 1977-05-13 Hitachi Ltd Interrupt control unit for computer
JPS5318933A (en) * 1976-08-06 1978-02-21 Fujitsu Ltd Execution method of interruptable order
JPS5343449A (en) * 1976-10-01 1978-04-19 Hitachi Ltd Interruption system for electronic computer
JPS5384540A (en) * 1976-12-29 1978-07-26 Fujitsu Ltd Data processing unit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50143446A (en) * 1974-05-08 1975-11-18
JPS5258438A (en) * 1975-11-10 1977-05-13 Hitachi Ltd Interrupt control unit for computer
JPS5318933A (en) * 1976-08-06 1978-02-21 Fujitsu Ltd Execution method of interruptable order
JPS5343449A (en) * 1976-10-01 1978-04-19 Hitachi Ltd Interruption system for electronic computer
JPS5384540A (en) * 1976-12-29 1978-07-26 Fujitsu Ltd Data processing unit

Also Published As

Publication number Publication date
BR7906630A (en) 1980-06-24
JPS5556277A (en) 1980-04-24

Similar Documents

Publication Publication Date Title
US4429360A (en) Process and apparatus for interrupting and restarting sequential list-processing operations
EP0145889B1 (en) Non-spinning task locking using compare and swap
US6553487B1 (en) Device and method for performing high-speed low overhead context switch
US4320455A (en) Queue structure for a data processing system
JPS63503177A (en) Command preemption control device
US6189007B1 (en) Method and apparatus for conducting a high performance locking facility in a loosely coupled environment
JPS5983249A (en) Control of queue
US6973650B1 (en) Method of pipelined processing of program data
JPS6341093B2 (en)
JPS59149548A (en) Apparatus and method for controlling data processing system using many processors
JPH0157373B2 (en)
GB2348306A (en) Batch processing of tasks in data processing systems
JPH06504640A (en) Out-of-order job processing method and device
US5339449A (en) System and method for reducing storage channels in disk systems
US6253274B1 (en) Apparatus for a high performance locking facility
US6088757A (en) Computer program means and device for conducting high performance locking facility in a loosely coupled environment
US4679138A (en) Microsequencer in a data processing system using stack storage for controlling the sequencing of microroutines
JPS5828611B2 (en) Interrupt method for list processing
Easton Process synchronization without long-term interlock
WO1988002513A1 (en) Method and device to execute two instruction sequences in an order determined in advance
JP3781007B2 (en) Data transfer method between computers
JP3180336B2 (en) Data access method using multilayer buffer
JPS6148745B2 (en)
JPH0728836A (en) Data base retrieving method and data base system using this method
JP3460265B2 (en) Data transfer method between computers