JP3034873B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP3034873B2
JP3034873B2 JP63162624A JP16262488A JP3034873B2 JP 3034873 B2 JP3034873 B2 JP 3034873B2 JP 63162624 A JP63162624 A JP 63162624A JP 16262488 A JP16262488 A JP 16262488A JP 3034873 B2 JP3034873 B2 JP 3034873B2
Authority
JP
Japan
Prior art keywords
register
bank
register bank
banks
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP63162624A
Other languages
English (en)
Other versions
JPH0214330A (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP63162624A priority Critical patent/JP3034873B2/ja
Priority to US07/372,696 priority patent/US5179685A/en
Priority to KR1019890009094A priority patent/KR920003474B1/ko
Publication of JPH0214330A publication Critical patent/JPH0214330A/ja
Application granted granted Critical
Publication of JP3034873B2 publication Critical patent/JP3034873B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数のレジスタバンクに分割したレジスタ
フアイル等の記憶装置を、複数の集合に分けて管理する
機構を有する情報処理装置に係り、特に手続き型言語で
書かれたプログラムの実行を制御するアクテイベーシヨ
ンレコードを複数のタスクの実行に対して管理するのに
好適な記憶領域の管理機構を有する情報処理装置に関す
る。
〔従来の技術〕
従来、複数のレジスタバンクに分割したレジスタフア
イルの利用法については、エム・ジー・エツチ・カタベ
ニス著、リデユースト、インストラクシヨン・セツト・
コンピユータ・アーキテクチヤズ・フオ・ブイ・エル・
エス・アイ(1985年)第52頁から64頁(M.G.H.Kateveni
s.Reduced Instruction Set Computer Architectur
es for VLSI,pp.52〜64、The MIT Press,1985)に
おいて論じられている。この手法では、プロシージヤが
呼び出される毎に1つずつ生成され、プログラムの実行
を制御する情報を保持するアクテイベーシヨンレコード
は、チツプ内のレジスタフアイル上に実現されたレジス
タバンクに割り付けられる。ポインタCWP(Current Wi
ndow Pointer)は、現時点でプログラムの実行を制御
しているアクテイベーシヨンレコードが割り付けられて
いるレジスタバンクを常に指し示すものとする。そし
て、プログラム中のあるプロシージヤの実行中に別のプ
ロシージヤが呼びだされると、ポインタCWPは、その値
に1を加え、それをレジスタバンクの数で割つたときの
剰余を値として採り、新たに生成されるアクテイベーシ
ヨンレコードが、新しいポインタCWP値が指し示すレジ
スタバンクに割り付けられる。これにより複数のレジス
タバンクが順環して割り付けられて行く。
ところで、プロシージヤ呼び出しのネストが深くなつ
ていくと、アクテイベーシヨンレコードの割り付けの際
にすでにレジスタフアイル上のすべてのレジスタバンク
が使用されている場合があり、これをレジスタフアイル
のオーバーフローという。このような場合は、レジスタ
フアイル上に割り付けられているアクテイベーシヨンレ
コードのうち最も古く生成されたものを主記憶上に退避
し、これ迄それが割り付けられていたレジスタバンク
を、新たに生成されたアクテイベーシヨンレコードを割
り付けるレジスタバンクとして用いる。
一方、プロシージヤからの復帰の処理(現在実行中の
プロシージヤから、これを呼出したプロシージヤへ移す
処理)では、ポインタCWPが、その値から1を引き、そ
れをレジスタバンクの数で割つたときの剰余を値として
採ることによつて、それまでプログラムの実行を制御し
ていたレジスタバンクが開放され、新しいポインタCWP
値が指し示すレジスタバンクに割り付けられているアク
テイベーシヨンレコードにプログラム実行の制御が移
る。
また、プロシージヤからの復帰が連続的に発生し、プ
ロシージヤからの復帰処理において、プログラム実行の
制御を移すべきアクテイベーシヨンレコードが、レジス
タフアイル上のレジスタバンクに割り付けられてない場
合が生じ、これをレジスタフアイルのアンダーフローと
いう。これは、そのアクテイベーシヨンレコードが主記
憶上に退避されているためであり、このような場合は、
主記憶上に退避されているアクテイベーシヨンレコード
のうち最新のものをレジスタフアイル上のレジスタバン
クに取り込み、そのアクテイベーシヨンレコードにプロ
グラム実行の制御を移す。
又、上記従来技術では、ある時点でレジスタフアイル
中のレジスタバンクに割り付けられているすべてのアク
テイベーシヨンレコードは、同一のタスクの実行を制御
するもののみであり、相隣り合うレジスタバンクに割り
付けられているアクテイベーシヨンレコードは、互いに
プロシージヤ呼び出しにおける、呼び出し側と呼び出さ
れ側との関係にあることが明らかである。従つて、複数
のタスクの実行を管理する際のタスクスイツチの処理で
は、レジスタフアイル上のレジスタバンクに割り付けら
れているアクテイベーシヨンレコードのすべてを主記憶
上に一旦退避し、新たにプログラムの実行制御が移るタ
スクのアクテイベーシヨンレコードをレジスタフアイル
上のレジスタバンクに割り付けなければならない。
〔発明が解決しようとする課題〕
上記従来技術は、現に実行する1つのタスクのみのア
クテイベーシヨンレコードを命令処理装置内のレジスタ
フアイル上に保持するだけであつて、複数のタスクの効
率良い実行管理法について全く配慮がなされていない。
そのため、従来技術では、タスクスイツチ時にレジスタ
フアイル中に保持されているすべてのアクテイベーシヨ
ンレコードを主記憶に退避し、新たに実行するタスクの
アクテイベーシヨンレコード群の中の一つをレジスタフ
アイル中に取り込む処理が必要となる。そして、この処
理を行なう間、本来行なうべきプログラムの実行は停止
する。
従つて上記従来技術を用いて、レジスタフアイル上の
レジスタバクに割付けるアクテイベーシヨンレコードの
管理を行なつた場合、レジスタフアイルの容量を増や
し、レジスタフアイル上に保持されるアクテイベーシヨ
ンレコードの数を増やすことによつて、レジスタフアイ
ルのオーバーフロー、アンダーフローの頻度を低下さ
せ、レジスタフアイルのオーバーフロー、アンダーフロ
ー時のアクテイベーシヨンレコードの主記憶上への退避
・回復による実行性能の低下をある程度防ぐことは可能
である。しかし、レジスタフアイル中に、1度に1つの
タスクのアクテイベーシヨンレコードしか保持しない方
法では、タスクスイツチの働く頻度は変わらず、その処
理におけるレジスタフアイル上のアクテイベーシヨンの
主記憶上への退避・回復の処理にかかる時間は増大し、
結局全体の実行性能の低下をまねくという問題があつ
た。
従つて、本発明の目的は、命令処理装置内のレジスタ
フアイルを管理する情報処理装置において、この命令処
理装置内のレジスタフアイルの容量を増大することが実
現可能となりつつある最近の近況において、タスクスイ
ツチ時に必要であつたレジスタフアイル中の全アクテイ
ベーシヨンレコードの主記憶への退避を不要にすること
でタスクスイツチ時にかかるオーバーヘツドを大幅に低
減し、しかもレジスタフアイル中に保持するアクテイベ
ーシヨンレコードの数の増加を可能とし、それによつて
レジスタフアイルのオーバーフロー・アンダーフローの
頻度を大幅に低減し、本来実行すべきプログラムの処理
性能を上げることにある。
〔課題を解決するための手段〕
上記目的を達成するため、本発明の情報処理装置は、
まずその基本発明において、命令処理装置内のレジスタ
フアイル中のすべてのレジスタバンクに番地(バンク番
号)を付し、このレジスタフアイルをそれぞれ複数のレ
ジスタからなる複数個のレジスタバンクに分割する。
又、複数のタスクのそれぞれを実行し又その管理をする
ために複数のスタツクフレームが形成されるが、特に、
本発明では、複数のタスクのそれぞれに属するスタツク
フレームを構成しているアクテイベーシヨンレコードの
集合即ち群(各群が当該タスクに属するアクテイベーシ
ヨンレコードの全部又は一部から成る場合を含む)を、
いずれもレジスタフアイル中のレジスタバンクに割り付
けるように構成する。更に、タスクの実行に際して、ア
クテイベーシヨンレコードの割り付けられたレジスタバ
ンクの順序関係(処理順)等、その処理を管理するため
に、前記のバンク番号によつて表現されるレジスタバン
クポインタで、個々のレジスタバンクを指示する。
具体的な発明において、前記レジスタバンクポインタ
は、隣り合うレジスタバンクの一方に設けたリンクレジ
スタに保持され、該レジスタバンクポインタが隣り合う
レジスタバンクの他方を指示することにより、これらレ
ジスタバンク同志が連結されて、リンクリストを構成す
る。レジスタバンクポインタでレジスタバンクを双方向
に連結して双方向リンクリストとすることができる。
更に、各々のタスクに対し、そのアクテイベーシヨン
レコードを割り付けたレジスタバンクの双方向リンクト
リストの先頭と最後尾のレジスタバンクポインタ、主記
憶装置上のスタツクフレーム上に最後に割り付けられた
アクテイベーシヨンレコードのアドレス、大域変数等、
タスクの内部状態を表す情報を保持するタスクコントロ
ールブロツクをレジスタバンク上に設ける。このように
して作成されたタスクの実行を制御するデータ構造を複
数のタスクのそれぞれに対し用意し、さらに、これらの
データ構造に対して、現在実行中のタスクに関するもの
を先頭とする双方向リンクトリストを作成することによ
つて、複数のタスクの実行を管理する待ち行列を表現す
る。
まだ、まだアクテイベーシヨンレコードの割り付けら
れていないレジスタバンクをレジスタバンクポインタで
連結したリスト、つまり待機バンクリストを形成するこ
とで、レジスタバンクのアクテイベーシヨンレコードの
割り付け処理に備える。
〔作用〕
上記構成に基づく作用を説明する。本発明によれば、
複数のタスクにそれぞれ属しているアクテイベーシヨン
レコード群(集合)は、いずれも(主記憶装置上ではな
くて)命令処理装置内のレジスタフアイル上のレジスタ
バンクに設けられているので、タスクスイツチ時に、従
来のように、いちいち、それまでレジスタフアイル上に
あつたすべてのアクテイベーシヨンレコードを主記憶装
置へ退避させ、主記憶装置から新しいタスクに関するア
クテイベーシヨンレコードをレジスタフアイルに取り込
む必要はなく、新旧タスクに関するアクテイベーシヨン
レコードの切り替えをレジスタフアイル上で短時間で行
なうことができる。又レジスタバンクポインタによりリ
ンクリストを構成したので、レジスタバンク間の順序関
係の変化に対する柔軟な対応も可能となる。
次に、具体的な発明につき、その作用を詳しく説明す
る。複数のタスクの実行を管理する待ち行列は、それぞ
れのタスクに対し設けられているタスクコントロールブ
ロツクに関して、現在実行中のタスクのタスクコントロ
ールブロツクを先頭とし、レジスタバンクポインタによ
つて双方向に連結することにより、形成される。また、
タスクの実行を管理する待ち行列の先頭と最後尾のタス
クに対応するタスクコントロールブロツクはそれぞれ二
つのポインタTQF,TQEによつて指示される。それによつ
て、タスクスイツチの処理は、タスクの実行の優先順位
を決定するアルゴリズムに従つて,複数のタスクの実行
を管理する待ち行列を更新するだけで実現できるので、
誤動作することがない。
一つのタスクに関して、その実行を制御するアクテイ
ベーシヨンレコードの集合(群)は次のように動作す
る。即ち、最後に生成されたアクテイベーシヨンレコー
ドが先頭に位置づけられ、プロシージヤ呼び出しにおけ
る呼び出し側と呼び出され側に対応するアクテイベーシ
ヨンレコードは、それぞれが割り付けられているレジス
タバンクを指示するレジスタバンクポインタによつて双
方向に連結され、その先頭と最後尾のそれぞれがこのタ
スクのタスクコントロールブロツクに保持された二つの
ポインタARFとAREとによつて管理される双方向リンクト
リストを形成する。それによつて、現在実行中のプロシ
ージヤからそれを呼び出したところへの復帰は次のよう
にして行なわれる。即ち、今までその実行を制御してい
たアクテイベーシヨンレコード(つまりARFが指し示す
レジスタバンクに割り付けられているアクテイベーシヨ
ンレコード)を解放し、該アクテイベーシヨンレコード
を割り付けていたレジスタバンクか持つレジスタバンク
ポインタの値(該レジスタバンクの1つ手前のレジスタ
バンクの番号)をARFの値とし、そのアクテイベーシヨ
ンレコードにプログラムの実行の制御を移すので、誤動
作することがない。またARFとAREが同じレジスタバンク
を指している場合、プログラムの実行の制御を移すべき
アクテイベーシヨンレコードは、主記憶装置上に割り付
けられていくことになり、そのアクテイベーシヨンレコ
ードの割り付けられているレジスタバンク中の該アクテ
イベーシヨンレコードを呼び出したアクテイベーシヨン
レコードを指し示す情報を保持しているレジスタには、
主記憶装置上に割り付けられたアクテイベーシヨンレコ
ードが位置するアドレスが保持されている。そのアドレ
スによつて、復帰する先のプロシージヤの実行を制御す
る主記憶装置上に割り付けられたアクテイベーシヨンレ
コードを、レジスタフアイルに取り込むことができる。
レジスタフアイルにオーバーフローが起り、あるタスク
のプログラムの実行を制御するデータ構造を主記憶装置
上に退避することが要求されている場合、タスクの実行
を管理する待ち行列の最後尾に位置するタスクコントロ
ールブロツクのAREが指すアクテイベーシヨンレコード
を主記憶上のそのタスクのスタツクフレーム上に退避す
ることによつて、レジスタバンクが確保できるので、誤
動作することはない。なお、このような状態は、まだア
クテイベーシヨンレコードの割り付けられていないレジ
スタバンクのリストの先頭を指す待機バンクポインタの
値がレジスタバンクの総数を越えることによつて認識さ
れる。
〔実施例〕
以下、本発明の実施例を図により説明する。
第1図は、本発明の一実施例の記憶領域の管理機構の
概念図である。同図で、レジスタフアイル1は複数のレ
ジスタバンク7(7a〜7ai,7b〜7bi,7c〜7ci)に分割さ
れ、これらのレジスタバンク7a〜7ciには、それぞれタ
スクコントロールバンク2(2a〜2c)とアクテイベーシ
ヨンレコード3(3a1〜3ai,3b1〜3bi,3c1〜3ci)が割り
付けられ、そしてそれらを連結するレジスタバンクポイ
ンタ5(5a〜5b,5a1〜5ai,5b1〜5bi,5c1〜5ci)を用い
て、タスクの実行を制御するデータ構造が構成される。
このデータ構造を複数のタスクに対して設けることで、
複数の(第1図では3個の)タスクの実行を管理する機
構が構成される。なお、ここで、各レジスタバンク7に
は、バンク番号(アドレス)が付けられるが、このアド
レスは、実際の物理アドレスを示すものではなく、論理
的アドレスを示すものである。
通常のコンピユータシステムでは、複数のタスクのプ
ログラムの実行の制御は、主記憶上に設けられたタスク
コントロールブロツクと、スタツクフレームとからなる
データ構造を用いて行なわれる。これに対し、本実施例
では、このタスクコントロールブロツクと、スタツクフ
レームを構成するアクテイベーシヨンレコードは、主記
憶装置にではなくて、命令処理装置内に設けられ、レジ
スタ番地空間を持つレジスタフアイル1を分割したレジ
スタバンク7(7a〜7ci)に割り付ける構成とする。
レジスタフアイル中のレジスタバンク7は、タスクの
実行を管理するタスクコントロールブロツク2を割り付
けたもの7a〜7cと、タスク内においてプログラムの実行
を制御し、プロシージヤ呼び出し毎に生成されるアクテ
イベーシヨンレコード3を割り付けたもの7a1〜7ai,7b1
〜7bi,7c1〜7ciと、これらの情報がまだ割り付けられて
いないレジスタバンク7(7r1〜7rj)である待機バンク
4(41〜4j)とに分類される。各々のタスクコントロー
ルブロツク2には、アクテイベーシヨンレコードを割り
付けたレジスタバンクの双方向リンクリストの先頭と最
後尾のレジスタバンクポインタ、主記憶装置上のスタツ
クフレーム上で最後に割り付けられたアクテイベーシヨ
ンレコードのアドレス、大域変数など、タスクの内部状
態を表わす情報が保持される。
待機バンク4は、アクテイベーシヨンレコード3やタ
スクコントロールブロツク2をレジスタバンク7に割り
付ける処理に備えるもので、これらの情報がまだ割り付
けられていないレジスタバンク7の集合をレジスタバン
クポインタ5により連結したリストである待機バンクリ
ストを形成する。そして、アクテイベーシヨンレコード
3やタスクコントロールブロツク2をレジスタバンク7
に割り付ける処理に際し、その待機バンクリストから待
機バンク4が一つ取り出され、それらの情報を割り付け
るのに用いられる。また、アクテイベーシヨンレコード
3やタスクコントロールブロツク2を開放する処理に際
し、それまでアクテイベーシヨンレコード3やタスクコ
ントロールブロツク2が割り付けられていたレジスタバ
ンク7が待機バンク4として、待機バンクリストに連結
される。
本実施例のタスクのプログラムの実行の制御を行なう
データ構造は、レジスタフアイル1中のレジスタバンク
7に割り付けられたアクテイベーシヨンレコード3の集
合とタスクコントロールブロツク2とによつて構成さ
れ、それぞれが割り付けられているレジスタバンク7を
指し示すレジスタバンクポインタ5によつて連結されて
いる。
あるタスクに属するアクテイベーシヨンレコード3の
集合は、その要素の各々がレジスタバンクポインタ5に
よつて双方向に連結されたリンクトリストを構成する。
このアクテイベーシヨンレコード3のリンクトリスト
における順序関係は、プロシージヤ呼び出しにおける呼
び出し側(各ポインタ5の矢の後端側)に対応するアク
テイベーシヨンレコード3と呼び出され側(各ポインタ
5の矢の先端側)に対応するアクテイベーシヨンレコー
ド3とを示している。つまり、個々のアクテイベーシヨ
ンレコード3が持つ双方向のレジスタバンクポインタ5
のうち、このリンクトリストの後尾方向のレジスタバン
クポインタ5(第1図で上向きのポインタ5、例えば5
a11)は、このアクテイベーシヨンレコード3(例えば3
a2)が次に実行を制御するプロシージヤを呼び出した時
点でそれまで実行を制御していたアクテイベーシヨンレ
コード3(例えば3a1)を指し示し、一方このリンクト
リストの先頭方向の(第1図で下向きの)レジスタバン
クポインタ5(例えば5a12)は、このアクテイベーシヨ
ンレコード3(例えば3a1)が実行を制御するプロシー
ジヤが現に実行中に、さらに呼び出した次のプロシージ
ヤの実行を制御するアクテイベーシヨンレコード3(例
えば3a2)を指し示す。そしてこのリンクトリストの先
頭に位置するアクテイベーシヨンレコード3(例えば3
ai)は、そのアクテイベーシヨンレコード3aiのリンク
トリストが属するタスクにおいて、最後に呼び出された
プロシージヤに対応するもので、そのタスクが実行状態
にあるときは、レジスタフアイル1中のレジスタバンク
7に割り付けられたこのリンクトリストの先頭に位置す
るアクテイベーシヨンレコード3aiは、その時点でのプ
ログラムの実行を直接制御するものとして用いられる。
また、あるタスクが実行状態にあるときにプロシージヤ
が呼び出されると、新たにアクテイベーシヨンレコード
3(例えば3ai+1、図示せず)が生成され、それがレジ
スタフアイル1に割り付けられ、そのタスクに属するア
クテイベーシヨンレコード3のリンクトリストの先頭に
レジスタバンクポインタ5を操作し連結され、それがそ
の時点でのプログラムの実行を制御する。またあるタス
クが実行状態にあるときに実行中のプロシージヤからそ
れを呼び出したプロシージヤへの復帰が起きると、それ
までそのタスクのプロシージヤの実行を制御していたア
クテイベーシヨンレコード3を解放し、前のアクテイベ
ーシヨンレコードにレジスタバンクポインタ6を保持す
る。
以上述べてきたのが、レジスタフアイル1中のレジス
タバンク7に取り付けられたアクテイベーシヨンレコー
ド3の集合とタスクコントロールブロツク2とからな
る、タスクのプログラムの実行の制御を行なうためのデ
ータ構造である。
ところで、通常のコンピユータシステムでは、複数の
タスクの管理は、主記憶番地空間を持つ主記憶装置上に
設けられたタスクコントロールブロツクを要素とするキ
ユーが形成され、それによつて複数のタスクに対しその
実行の優先順位に従つた待ち行列の管理を行なつてい
る。それに対し本実施例では、上記タスクのプログラム
の実行の制御を行なうためのデータ構造をそれぞれのタ
スク毎に設け、複数のタスクの実行を管理する待ち行列
のキユーは、それぞれのタスクに対し設けられているタ
スクコントロールブロツク2に関して、現在実行中のレ
ジスタコントロール2を先頭とし、レジスタバンクポイ
ンタ5(5a,5b………)によつて双方向に連結すること
により形成される。そして、タスクの実行を管理する待
ち行列の先頭(例えば2c)と後尾(例えば2a)のタスク
に対応するタスクコントロールブロツク2はそれぞれ二
つのレジスタバンクポインタ8(8c,8a)によつて指し
示される。
タスクが消滅されるとき、又はタスクが実行可能状態
から待ち状態に変化したときは、レジスタフアイル1上
のレジスタバンク7に割り付けられたそのタスクの実行
を制御するデータ構造を構成するアクテイベーシヨンレ
コード3の集合とタスクコントロールブロツク2が解放
される。
さらに、タスクスイツチの処理は、タスクの実行の優
先順位を決定するアリゴリズムに従つて、複数のタスク
の実行を管理する待ち行列を操作することで実現され
る。
ところで、プロシージヤ呼び出しのネストが深くなつ
ていくと、アクテイベーシヨンレコード3の割り付けの
際にすでにレジスタフアイル1上のすべてのレジスタバ
ンク7が使用されており、レジスタフアイル1のオーバ
ーフローが発生する場合がある。このような場合は、レ
ジスタフアイル1上のレジスタバンク7に割り付けられ
ているアクテイベーシヨンレコード3、またはタスクコ
ントロールブロツク2を前記主記憶番地空間をもつ主記
憶装置(図示せず)上に退避し、それが割り付けられて
いたレジスタバンク7を用いて、新たに生成されたアク
テイベーシヨンレコード3を割り付け、そのタスクのア
クテイベーシヨンレコード3のリンクトリストの先頭に
新たなアクテイベーシヨンレコードを連結し、それを用
いてプログラム実行の制御を行なう。
一方プロシージヤからの復帰が連続的に発生し、プロ
シージヤからの復帰処理において、プログラム実行の制
御を移すべきアクテイベーシヨンレコード3が、レジス
タフアイル1上のレジスタバンク7に割り付けられてい
ない場合が生じる。これは、そのアクテイベーシヨンレ
コード3が主記憶上に退避されているためであり、この
ような場合は、主記憶上に退避されているアクテイベー
シヨンレコード3を取り込み、レジスタフアイル1上の
レジスタバンク7に割り付け、それをそのタスクにおけ
る一つからなるアクテイベーシヨンレコード3のリンク
トリストとし、それを用いてプログラム実行の制御を行
なう。
以上述べたレジスタフアイル1上のレジスタバンク7
に割り付けられているアクテイベーシヨンレコード3、
またはタスクコントロールブロツク2を主記憶上に退避
する処理を採用することにより、通常のコンピユータシ
ステムにおける複数のタスクに対する実行の待ち行列
は、本実施例では、主記憶上に割り付けられているタス
クコントロールブロツクの集合とレジスタフアイル1上
のレジスタバンク7に割り付けられているタスクコント
ロールブロツク2の集合とによつて構成される。従つて
本実施例によるタスクスイツチの処理における複数のタ
スクの実行優先順位の変化に伴う複数のタスクの実行を
管理する待ち行列の操作は、主記憶上に割り付けられて
いるタスクコントロールブロツクの集合とレジスタフア
イル1上のレジスタバンク7に割り付けられているタス
クコントロールブロツク2の集合とに対して行なわれ
る。
従つて、タスクスイツチの処理における複数のタスク
の実行優先順位の変化に伴う複数のタスクの実行を管理
する待ち行列の操作によつて、主記憶上に退避されたタ
スクコントロールブロツクをレジスタフアイル1上に取
り込み、それをレジスタバンク7に割り付け処理する際
に、すでにレジスタフアイル1上のすべてのレジスタバ
ンク7が使用されていることによるレジスタフアイル1
のオーバーフローが発生する場合がある。そのような場
合には、レジスタフアイル1上のレジスタバンク7に割
り付けられているアクテイベーシヨンレコード3、また
はタスクコントロールブロツク2を主記憶上に退避し、
それまで割り付けられていたレジスタバンク7を用いて
レジスタフアイル1上に取り込むべきタスクコントロー
ルブロツク2を割り付け、それによつて、該タスクコン
トロールブロツク2は、タスクの実行の優先順位を決定
するアルゴリズムに従つて、複数のタスクの実行を管理
する待ち行列に挿入される。
本実施例によれば、同時に複数のタスクのプログラム
の実行を制御するアクテイベーシヨンレコード3をレジ
スタフアイル1中に保持することが可能となるので、従
来技術では必要であつたタスクスイツチ時のレジスタフ
アイル1中に保持されているすべてのアクテイベーシヨ
ンレコード3を主記憶へ退避する必要がなくなる効果が
ある。これによつて、複数のタスクを切換えるタスクス
イツチ処理を行なうのに、いちいち主記憶装置へアクテ
イベーシヨンレコードを退避したり、これを主記憶装置
からレジスタフアイル上に取り込んだりする必要がなく
なり、レジスタフアイル上だけでタスクスイツチ処理を
行なうことも可能となるので、該スイツチ処理に要する
時間が短縮され、オーバーヘツドを大幅に低減すること
ができる。また、従来技術では、レジスタフアイル1の
容量を増大し、レジスタフアイル1中に保持するアクテ
イベーシヨンレコード3の数を増やすと、タスクスイツ
チ処理にかかる時間が増大し、本来実行すべきプログラ
ムを処理する性能が低下するため、レジスタフアイル1
中に保持するアクテイベーシヨンレコード3の数は限ら
れていたが、本実施例によればその処理性能を低下する
ことなくレジスタフアイル1中に保持するアクテイベー
シヨンレコード3の数を増やすことが可能であるので、
レジスタフアイル1の容量が増大するに従つて、タスク
スイツチの処理、プロシージヤ呼び出しの処理、および
プロシージヤからの復帰の処理において発生するレジス
タフアイル1のオーバーフロー、アンダーフローの頻度
を低減できる効果がある。
第2図(a)〜(c)は、レジスタバンクポインタ16
(第1図の5に対応)の表現形式、レジスタバンクポイ
ンタ16を用いたレジスタバンク12(第1図の7に対応)
のリンクトリストの構成法、及び、レジスタバンク12中
のレジスタのアクセス方式を説明する概念図である。
本実施例では、レジスタフアイル11は2のn乗(以
下、2↑nと記す)個のレジスタからなり、個々のレジ
スタにはアドレス(番地)が付けられている。また,レ
ジスタフアイル11中のすべてのレジスタバンク12は、そ
れぞれ、(2↑m)個のレジスタにより構成される。従
つてレジスタフアイル11中のレジスタバンク12の総数
は、(2↑(n−m))個となる。レジスタフアイル11
中のすべてのレジスタバンク12には0から((2↑(n
−m))−1)までのバンク番号が付けられており、そ
のバンク番号を用いて個々のレジスタバンク12を指し示
すのがレジスタバンクポインタ16である。
レジスタCABP(Current Active BankPointer)13
は、現在アクセスしようとしているレジスタバンク12を
指し示すレジスタバンクポインタ16を保持している。そ
してバンク内レジスタセレクトポインタ15によりa番目
のレジスタのアクセスが指定されると、レジスタCABP13
が指し示すレジスタバンク12中のa番目のレジスタがア
クセスされる。このアクセス機構を実現するために本実
施例では、nビツトのレジスタセレクトポインタ14が形
成される。該レジスタセレクトポインタ14は上位(n−
m)ビツトを、レジスタCABP13の(n−m)ビツトの値
とし、下位mビツトを、機械語命令の実行においてアク
セスを指定したレジスタバンク中でa番目のレジスタを
示すmビツトのバンク内レジスタセレクトポインタ15の
値とする。そして、ポインタ14の値が指し示すアドレス
のレジスタフアイル11中のレジスタがアクセスに関与す
るものである。
第2図(b)は本実施例のレジスタバンクポインタ19
(191,192)を用いて個々のレジスタバンク18(181,1
82,183)を連結することでレジスタバンク18のリンクト
リストを構成したものである。レジスタフアイル17中の
個々のレジスタバンク18には、レジスタバンクポインタ
19(191,192)を保持するレジスタバンクポインタレジ
スタ20(201,202,203)を設けてある。そしてレジスタ
バンク18(例えば181)は、レジスタバンクポインタレ
ジスタ20(例えば201)に、レジスタバンク18(例えば1
82)を指示しているレジスタバンクポインタ19(例えば
191)を保持することにより、二つのレジスタバンク18
(181,182)が連結されていることを示している。また
連結されている二つのレジスタバンク18の一方(例えば
181)が他方のレジスタバンク(例えば182)のレジスタ
バンクポインタ19(例えば191)を保持することによ
り、二つのレジスタバンク18における順序関係が示され
る。
第2図(c)は本実施例のレジスタバンクポインタ1
9,19′,(191,192,19′1,19′)を用いて個々のレジ
スタバンク18(181,182,183)を双方向に連結すること
でレジスタバンク18のリンクトリストを構成したもので
ある。レジスタフアイル17中の個々のレジスタバンク18
には、レジスタバンクポインタ19,19′を保持する2つ
のレジスタバンクポインタレジスタ20,20′(201,202,2
03,20′1,20′2,20′)を設けてある。そして二つの
レジスタバンクポインタ19,19′のうち一方19がリンク
トリスト上で先頭方向(図で右側)に隣接するレジスタ
バンク18を指示するレジスタバンクポインタ19であり、
他方19′がリンクトリスト上で後尾方向(図で左側)に
隣接するレジスタレジスタバンク18を指示するレジスタ
バンクポインタ19である。また連結されている二つのレ
ジスタバンク18における順序関係は、それぞれがリンク
トリスト上で先頭に近い(右寄り)か、後尾に近い(左
寄り)かによつて示される。
本実施例によれば、第2図(a)のように、レジスタ
フアイル11に付けられたアドレスに即してレジスタバン
ク12に番号を付け、それを用いてレジスタバンクポイン
タ16を表現しているので、現在アクセスしようとしてい
るレジスタバンク12を指し示すレジスタバンクポインタ
16とアクセスを指定したレジスタバンク12中のレジスタ
を示すバンク内レジスタセレクトポインタ15の値によつ
て、実際にアクセスが行なわれるレジスタフアイル11中
のレジスタを指し示す機構が容易に実現できる効果があ
る。
また、第2図(b)(c)のように、このレジスタバ
ンクポインタ19を用いてレジスタバンク18のリンクトリ
ストを構成することで、複数のレジスタバンク18間の順
序関係を示すことが可能となり、その順序関係の変化に
伴いレジスタバンク18のリンクトリストの柔軟な管理が
実現できる効果がある。
第3図は、本発明の待機バンク21(第1図の4に相
当)の管理機構を示した概念図である。
待機バンク21(211,212,……21j)のそれぞれは、リ
ンクレジスタ24(241,242,……,24j)を待ち、そこにレ
ジスタバンクポインタ22(221,222,……)を保持するこ
とによつて連結されたリンクトリストを構成する。そし
て、このリンクトリストの最後尾に位置する待機バンク
21j中のリンクレジスタ24jには、レジスタフアイル中の
レジスタバンクに付けられたすべての番号を越える値、
つまり(2↑(n−m))以上の値を設定することで、
その待機バンク21jが最後尾に位置することを示す。ま
た待機バンクリストレジスタ23は、待機バンク21が形成
するリンクトリストの先頭に位置する待機バンク211
指し示すレジスタバンクポインタ22fを保持する。
アクテイベーシヨンレコード、又はタスクコントロー
ルブロツクをレジスタバンクに割り付ける際は、待機バ
ンクリストレジスタ23が指し示す待機バンク211をリン
クトリストから切り離し、それを用いて処理を実現す
る。その際待機バンクリストレジスタ23の値は、それま
で待機バンクリストレジスタ23が指し示していた待機バ
ンク211のリンクレジスタ241が保持していた値212とな
る。従つて、リンクトリストから切り離した待機バンク
211がリンクトリストの最後尾に位置するもの21jである
場合は、待機バンククリストレジスタ23にはレジスタフ
アイル中のレジスタバンクに付けられたすべてのバンク
番号を越える値、つまり(2↑(n−m))以上の値が
設定される。よつて、リンクトリストから待機バンク21
を切り離す処理において、待機バンクリストレジスタ23
の値が(2↑(n−m))以上である場合は、レジスタ
フアイルのオーバーフローが発生したことを示す。
本実施例によれば、レジスタバンクの割り付け処理
は、待機バンクリストレジスタ23の値の更新だけで実現
でき、またレジスタフアイル中に待機バンクが存在する
か否かは、待機バンクリストレジスタ23の値が(2↑
(n−m))以上であるか否かをチエツクするだけで実
現できる効果がある。
第4図は、本発明の、個々のタスクの実行を制御する
タスクコントロールブロツク31とアクテイベーシヨンレ
コード32(321,322,……,32j)からなるデータ構造を示
した説明図である。
タスクのプログラムの実行を制御するアクテイベーシ
ヨンレコード32の集合は、それぞれのアクテイベーシヨ
ンレコード32が二つのレジスタ、先頭方向リンクレジス
タ35(351,352,……,35i)と、後尾方向リンクレジスタ
36(361,362,……,36i)を待ち、それぞれがリンクトリ
スト上で、先頭方向(図の下側)に隣接するアクテイベ
ーシヨンレコード32のレジスタバンクポインタ37(371,
372,……37i)と後尾方向(図の上側)に隣接するアク
テイベーシヨンレコード32のレジスタバンクポインタ37
(37′1,37′2,……37′)とを保持することで、双方
向のリンクトリストを形成する。そしてタスクコントロ
ールブロツク31中の二つのレジスタARF(Activation Re
cord Front)34,ARE(Activation Record End)33はそ
れぞれ、そのタスクのプログラムの実行を制御するアク
テイベーシヨンレコード32のリンクトリストの先頭と後
尾とを指し示すレジスタバンクポインタ37fと37eを保持
する。
プロシーシヤ呼び出しの際に、新たに生成されるアク
テイベーシヨンレコード32(例えば32i+1,図示せず)
は、リンクトリスト上においてARF34が指し示すアクテ
イベーシヨンレコード32(例えば32i)の前に挿入され
る。従つて、新たに生成されたアクテイベーシヨンレコ
ード32の後尾方向リンクレジスタ36(例えば36i+1,図示
せず)には、それまでARF34が指し示していたポインタ3
7fの値(即ち、アクテイベーシヨンレコード32iが割り
付けられていたレジスタバンク番号)が設定され、それ
までARF34が指し示していたアクテイベーシヨンレコー
ド32iの先頭方向リンクレジスタ35iには、新たに生成さ
れたアクテイベーシヨンレコード32i+1が割り付けられ
たレジスタバンクを指し示すレジスタバンクポインタ37
i+1(図示せず)の値が設定され、さらにその後にその
値がARF34にも設定される。
現在実行中のプロシージヤを呼び出したプロシージヤ
への復帰処理を行なう際には、ARF34が指し示すアクテ
イベーシヨンレコード32iが解放され、ARF34が指し示す
アクテイベーシヨンレコード32iの後尾方向リンクレジ
スタ36iの値(アクテイベーシヨンレコード32i-1)がAR
F34に設定される。その際解放されるアクテイベーシヨ
ンレコード32iがARE33の指し示すもの(321)である場
合は、復帰すべきアクテイベーシヨンレコード32i-1
主記憶上に退避されていることを示す。従つて、退避さ
れているアクテイベーシヨンレコード32i-1即ち320をレ
ジスタフアイル中に取り込む必要があり、それが主記憶
上のどこにあるかを示すアドレスが、ARE33の指し示す
アクテイベーシヨンレコード321の後尾方向リンクレジ
スタ361に保持されている。
レジスタフアイルのオーバーフローが発生し、あるタ
スクのプログラムの実行を制御するデータ構造を主記憶
上に退避することが要求された場合、ARE33が指し示す
アクテイベーシヨンレコード32一つ(例えば321)が主
記憶へ退避される。その退避先の主記憶上のアドレス
は、そのアクテイベーシヨンレコード321の後尾方向リ
ンクレジスタ361の値をもとに算出される。主記憶へア
クテイベーシヨンレコード32を退避した後、ARE33に、
退避されたアクテイベーシヨンレコード321の先頭方向
リンクレジスタ351が保持していた値(レコード322)が
設定され、新しいARE33の値が指し示すアクテイベーシ
ヨンレコード322の後尾方向リンクレジスタ362には、先
に算出した、レジスタバンクから退避したアクテイベー
シヨンレコード321の主記憶上のアドレスが設定され
る。また、アクテイベーシヨンレコード32を主記憶へ退
避した結果、あるタスクのプログラムの実行を制御する
レジスタフアイル中に保持されているデータ構造がタス
クコントロールブロツク31のみになる場合がある。その
ような場合に備え、レジスタフアイル中に保持されてい
るタスクコントロールブロツク31は、そのタスクに関し
てレジスタフアイル中に保持されているアクテイベーシ
ヨンレコード32の数を示すレジスタARC(Activation Re
cord Counter)38を持つ。そして主記憶上に退避するこ
とが要求されたデータ構造によりプログラムの実行の制
御されるあるタスクが、レジスタフアイル中に保持され
ているアクテイベーシヨンレコード32を伴わない場合、
すなわち、そのタスクコントロールブロツク31中のARC3
8が0である場合は、そのタスクのタスクコントロール
ブロツク31が主記憶上に退避される。(なお、タスクコ
ントロールブロツク31を主記憶上に退避する処理の詳細
は、第5図により後述する。) 本実施例によれば、レジスタフアイル上のレジスタバ
ンクに割り付けたタスクコントロールブロツク31とアク
テイベーシヨンレコード32の集合を用いて、タスクのプ
ログラムの実行を効率良く制御することが可能となる効
果がある。
第5図は、本発明のレジスタフアイル上に保持された
タスクコントロールブロツク41(第2図の2に対応)を
レジスタバンクポインタ47によつて連結し、リンクトリ
ストを形成し、それによつてタスク実行待ち行列を管理
する方式を説明した概念図である。
レジスタフアイル上に保持された各タスクコントロー
ルブロツク41(411,412,……41k)は実行可能状態にあ
るタスクの実行を管理するものであり、それぞれの中に
設けられたタスクリンクレジスタ46(461,462,……4
6k)が他のタスクコントロールブロツク41(412,413,…
…)を指し示すレジスタバンクポインタ47(471,472,…
…)を保持することにより連結され、リンクトリストを
形成する。タスクコントロールブロツク41のリンクトリ
スト上で表現される各要素間の順序関係は、それぞれの
タスクコントロールブロツク41が管理するタスクの実行
優先順位を示す。二つのレジスタTQF44,TQE45は、レジ
スタバンクポインタ47f,47eにより、それぞれレジスタ
フアイル上に保持されたタスクコントロールブロツク41
のリンクトリストの先頭(第5図で最上端)と後尾(同
図で最下端)に位置するタスクコントロールブロツク41
1と41kを指し示し、先頭に位置するタスクコントロール
ブロツク411は、現在実行中のタスクを管理するもので
ある。
TQF44が指し示すタスクコントロールブロツク411中の
ARE431の値は、レジスタCACR48に保持される。このレジ
スタCACR48は、第2図で示したレジスタCABPの機能を有
し、現在実行されているプログラムの制御を司るアクテ
イベーシヨンレコードの効率良いアクセスに備える。
レジスタフアイルのオーバーフローが発生し、あるタ
スクのプログラムの実行を制御するデータ構造を主記憶
上に退避する際、レジスタフアイル上のレジスタバンク
に割り付けられているアクテイベーシヨンレコードのみ
ならず、タスクコントロールブロツク41をも主記憶上に
退避する場合がある。従つて、複数のタスクに対する実
行の待ち行列は、本実施例では、主記憶上に割り付けら
れているタスクコントロールブロツクの集合とレジスタ
フアイル上のレジスタバンクに割り付けられているタス
クコントロールブロツク41の集合とによつて構成され
る。主記憶上に割り付けられているタスクコントロール
ブロツクの集合も、それぞれのタスクの実行優先順位に
したがつたキユーを形成しており、本実施例のタスクに
対する実行の待ち行列において、主記憶上に割り付けら
れているタスクブロツクのキユーは、レジスタフアイル
上に保持されたタスクコントロールブロツク41が形成す
るリンクトリストの後に接続されているものとみなす。
そのために、本実施例では、タスクリンクレジスタ46
(461,462,……,46k)を設ける。そして、TQE45が指し
示す、レジスタフアイル上に保持されたタスクコントロ
ールブロツク41k(リンクトリストタスクコントロール
ブロツク411〜41kの最後尾に位置するタスクコントロー
ルブロツク)のタスクリンクレジスタ46kには、主記憶
上に割り付けられているタスクコントロールブロツクの
キユーのアドレスが保持されている。つまり、レジスタ
フアイル上に保持されたタスクコントロールブロツク41
には、主記憶上に割り付けられているタスクコントロー
ルブロツクよりも、それが管理するタスクの実行優先順
位として、より高い優先順位で実行されるタスクのタス
クコントロールブロツク41が割り付けられる。
レジスタフアイル上に保持されたタスクコントロール
ブロツク41により実行の管理されるタスクが、実行可能
状態からサスペンド状態に変化すると、そのタスクコン
トロールブロツク41は、タスク実行待ち行列を管理する
リンクトリストより切り離され、サスペンド状態にある
タスクを管理するデータベースに移されると共に、それ
までそれが割り付けられていたレジスタバンクが解放さ
れる。
一方、サスペンド状態にあるタスクが、実行可能状態
に変化すると、そのタスクの実行を管理するタスクコン
トロールブロツクがこのタスクに対する実行の待ち行列
に挿入される。その際、そのタスクの実行優先順位に応
じて、その実行を管理するタスクコントロールブロツク
が、レジスタフアイル上に保持されたタスクコントロー
ルブロツク41となる場合と、主記憶上に割り付けられる
タスクコントロールブロツクとなる場合とがある。
レジスタフアイル上に保持されたタスクコントロール
ブロツク41となる場合は、そのタスクコントロールブロ
ツクがレジスタフアイルに取り込まれ、レジスタバンク
にそれが割り付けられた後、タスク実行待ち行列を管理
するリンクトリストに挿入される。
またタスクスイツチによりタスクの実行優先順位が変
化した場合、その変化がレジスタフアイル上に保持され
たタスクコントロールブロツク41が管理するタスク間に
とどまるならば、レジスタフアイル上のタスク実行待ち
行列を管理するリンクトリストを操作するだけで、その
処理が実現できる。しかし、そうでない場合は、そのタ
スクの実行優先順位に応じて、その実行を管理するタス
クコントロールブロツクが、レジスタフアイル上に保持
されたタスクコントロールブロツク41から主記憶上に割
り付けられるタスクコントロールブロツクとなる場合
と、主記憶上に割り付けられたタスクコントロールブロ
ツクからレジスタフアイル上に保持されたタスクコント
ロールブロツク41になる場合とがある。その際その処理
に伴い、レジスタフアイル上に保持されたタスクコント
ロールブロツク41の主記憶上への退避処理、主記憶上の
タスクコントロールブロツクのレジスタフアイルへの取
り込み処理、およびレジスタバンクの割り付け処理、解
放処理が行なわれる。
本実施例によれば、レジスタフアイル上に表現したタ
スクコントロールブロツク41のリンクトリストを用い
て、複数のタスク実行待ち行列を管理することが可能と
なるので、同時に複数のタスクのプログラムの実行を制
御するアクテイベーシヨンレコードをレジスタフアイル
中に保持することが可能となり、それによつて、従来技
術では必要であつたタスクスイツチ時のレジスタフアイ
ル中に保持されているすべてのアクテイベーシヨンレコ
ードを主記憶装置へ退避する必要がなくなり、これによ
つてタスクスイツチ処理のオーバーヘツドを大幅に低減
させられる効果がある。
〔発明の効果〕
以上詳しく述べたように、本発明の情報処理装置によ
れば、複数のタスクに関し、内部に大容量レジスタフア
イルをもつ命令処理装置でプログラムを実行する際、一
つのレジスタフアイル中に複数のタスクに属するアクテ
イベーシヨンレコードを保持できるので、従来技術では
必要であつたタスクスイツチ時における、レジスタフア
イルの中に保持されている全アクテイベーシヨンレコー
ドを主記憶装置に退避する必要がなくなる効果を奏す
る。
またそれによつて、タスクスイツチの処理にかかる時
間は、レジスタフアイルに保持しているアクテイベーシ
ヨンレコードの数に依存しないので、命令処理装置内の
レジスタフアイル容量の増大にともない、タスクスイツ
チ時のオーバーヘツドを増大することなく、レジスタフ
アイルに保持するアクテイベーシヨンレコードの数を増
やすことが可能となり、それによつてレジスタフアイル
のオーバーフロー、アンダーフローの頻度を大幅に低減
でき、それに伴うレジスタフアイル上に保持されたアク
テイベーシヨンレコードの主記憶装置上への退避処理、
およびレジスタフアイル上への回復処理の頻度を大幅に
低減できる効果を奏する。
更に、タスクスイツチによりタスクの実行優先順位が
変化した場合でも、タスク実行を管理する待ち行列の操
作はレジスタフアイル上のタスクコントロールブロツク
のリンクトリストを操作するだけで、その処理が実現で
きるので、この処理にかかつていたオーバーヘツドを大
幅に低減できる効果がある。
【図面の簡単な説明】
第1図は本発明の情報処理装置におけるレジスタバンク
上にタスクの実行を制御するデータ構造を表現すると共
に複数のタスクの実行を管理する機構を説明するための
概念図、第2図(a)(b)(c)は本発明のレジスタ
バンクポインタの表現形式とレジスタバンクのリンクト
リストの構成法とレジスタバンク中のレジスタのアクセ
ス方式とをそれぞれ説明する概念図、第3図は本発明の
待機バンクの管理機構を示した概念図、第4図は本発明
の個々のタスクの実行を制御するタスクコントロールブ
ロツクとアクテイベーシヨンレコードとからなるデータ
構造を示した説明図、第5図は本発明のタスクコントロ
ールブロツクのリンクトリストによつてタスク実行待ち
行列を管理する方式を説明した概念図である。 1,11,17……レジスタフアイル、2,31,41……タスクコン
トロールブロツク、3,32……アクテイベーシヨンレコー
ド、4,21……待機バンク、5,6,8,16,19,22,37,47……レ
ジスタバンクポインタ、7,12,18……レジスタバンク、1
3……CABP、14……レジスタセレクトポインタ、15……
バンク内レジスタセレクトポインタ、20……レジスタバ
ンクポインタレジスタ、23……待機バンクリストレジス
タ、24……リンクレジスタ、33,42……ARE、34,43……A
RF、35……先頭方向リンクレジスタ、36……後尾方向リ
ンクレジスタ、38……ARF、44……TQF、45……TQE、46
……タスクリンクレジスタ、48……CACR。
フロントページの続き (56)参考文献 特開 昭63−86035(JP,A) 特開 昭62−242243(JP,A) 特開 昭53−86123(JP,A) 特開 昭58−109957(JP,A) 特開 昭53−142843(JP,A) 特開 昭62−286128(JP,A) 特開 昭63−180163(JP,A) 特開 昭59−33558(JP,A) 特開 昭62−98431(JP,A) インターフェース1983年6月号(CQ 出版社)、p.189〜193 (58)調査した分野(Int.Cl.7,DB名) G06F 9/46,9/42,9/34 G06F 12/00,12,06,15/78

Claims (18)

    (57)【特許請求の範囲】
  1. 【請求項1】主記憶装置と、前記主記憶装置とは独立に
    命令処理装置内でレジスタ番地空間を持つレジスタファ
    イルとを備え、該レジスタファイルが、それぞれ複数の
    レジスタから成る複数のレジスタバンクにより構成され
    る情報処理装置において、前記レジスタファイルは、レ
    ジスタバンクポインタを用いて複数のレジスタバンクを
    接続したレジスタバンク群を形成すると共に、レジスタ
    バンクポインタを用いて前記レジスタバンク群を接続し
    た複数レジスタバンク群を形成し、前記複数レジスタバ
    ンク群の生成、及び、前記レジスタバンク群へのレジス
    タバンクの付加のために、未使用のレジスタバンクをレ
    ジスタバンクポインタにより接続した待機レジスタバン
    クリストを形成して構成されたことを特徴とする情報処
    理装置。
  2. 【請求項2】前記レジスタバンク群にタスクの実行を制
    御するアクティベーションレコード群を保持し、前記複
    数レジスタバンク群に複数のタスクのアクティベーショ
    ンレコード群を保持することを特徴とする請求項1記載
    の情報処理装置。
  3. 【請求項3】主記憶装置と、前記主記憶装置とは独立に
    命令処理装置内でレジスタ番地空間を持つレジスタファ
    イルとを備え、該レジスタファイルが、それぞれ複数の
    レジスタから成る複数のレジスタバンクにより構成され
    る情報処理装置において、複数のタスクをそれぞれ実行
    するため各々のタスクにそれぞれ属する複数のアクティ
    ベーションレコード群を、各アクティベーションレコー
    ドが前記レジスタバンクの各々に対応するようにして、
    前記複数のレジスタバンク上に割り付ける手段と、前記
    レジスタファイルに作成された一部のレジスタバンク上
    に前記複数のタスクのそれぞれの実行を管理するタスク
    コントロールブロックを割り付ける手段と、前記各々の
    タスクに属する各アクティベーションレコードの割り付
    けられた個々のレジスタバンクを指示してその処理を管
    理するためのレジスタバンクポインタと、前記タスクコ
    ントロールブロックの割り付けられた個々のレジスタバ
    ンクを指示して、それらの動作を制御するためのレジス
    タバンクポインタとを備えたことを特徴とする情報処理
    装置。
  4. 【請求項4】前記複数のレジスタバンクにはそれぞれバ
    ンク番号が付与され、前記レジスタバンクポインタは前
    記バンク番号によってアクティベーションレコード又は
    タスクコントロールブロックの割り付けられたレジスタ
    バンクを指示するように構成した請求項3記載の情報処
    理装置。
  5. 【請求項5】前記複数のレジスタバンクの隣り合うもの
    同志を相互に連結することにより、該複数のレジスタバ
    ンクを管理するように構成した請求項3又は4記載の情
    報処理装置。
  6. 【請求項6】前記複数のレジスタバンクのそれぞれにリ
    ンクレジスタを設け、該リンクレジスタ上に、該レジス
    タバンクに隣り合う他のレジスタバンクを指示するレジ
    スタバンクポインタを保持させることによって、これら
    2つのレジスタバンクを相互に連結するように構成した
    ことを特徴とする請求項5記載の情報処理装置。
  7. 【請求項7】前記リンクレジスタ上に保持されたレジス
    タバンクポインタによって、該リンクレジスタの設けら
    れたレジスタバンクと、該レジスタバンクポインタが指
    示する前記隣り合う他のレジスタバンクとの間の処理順
    を表現するように構成したことを特徴とする請求項6記
    載の情報処理装置。
  8. 【請求項8】前記複数のレジスタバンクを相互に前記レ
    ジスタバンクポインタで連結することによって、複数の
    レジスタバンクを管理するリンクトリストを構成したこ
    とを特徴とする請求項4又は5記載の情報処理装置。
  9. 【請求項9】前記レジスタバンクのリンクトリストの先
    頭及び後尾を定め、個々のレジスタバンクの先頭からの
    位置によって、該リンクトリスト上でのレジスタバンク
    の処理順を定めるように構成したことを特徴とする請求
    項8記載の情報処理装置。
  10. 【請求項10】前記複数のレジスタバンクの各々に2つ
    のリンクレジスタを設け、一方のリンクレジスタが該レ
    ジスタバンクのリンクトリスト上で先頭方向に隣り合う
    レジスタバンクを指示するレジスタバンクポインタを保
    持し、他方のリンクレジスタが該レジスタバンクのリン
    クトリスト上で後尾方向に隣り合うレジスタバンクを指
    示するレジスタバンクポインタを保持することにより、
    リンクトリスト上の個々のレジスタバンクが双方向に連
    結され、それによってレジスタバンクの双方向リンクト
    リストが形成され、前記複数のレジスタバンクを管理す
    るように構成したことを特徴とする請求項8又は9記載
    の情報処理装置。
  11. 【請求項11】前記複数のレジスタバンクをレジスタバ
    ンクポインタで連結することにより形成したレジスタバ
    ンクのリンクトリストを、一つのレジスタファイル上に
    複数設け、それにより前記複数のレジスタバンクの管理
    を行なうように構成したことを特徴とする請求項9又は
    10記載の情報処理装置。
  12. 【請求項12】前記複数のリンクトリストのうちの一部
    を、複数のアクティベーションレコード等の情報からな
    る集合(群)を割り付けた複数のレジスタバンクからな
    るリンクトリストとし、その他のレジスタバンクのリン
    クトリストを、まだ該情報の集合を割り付けていない待
    機レジスタバンクの集合を連結したリンクトリストと
    し、レジスタバンクへ複数の情報からなる集合を割り付
    ける処理に備えるように構成したことを特徴とする請求
    項11記載の情報処理装置。
  13. 【請求項13】レジスタバンクへ複数のアクティベーシ
    ョンレコード等の情報からなる集合を割り付ける処理に
    際し、既にすべてのレジスタファイル上のレジスタバン
    クに情報が割り付けられている場合、既に情報を割り付
    けられているレジスタバンクのうちから一つを選び、そ
    のレジスタバンクが保持している情報を主記憶装置に退
    避し、そのレジスタバンクを用いてレジスタバンクへ情
    報を割り付ける処理を行なうように構成したことを特徴
    とする請求項12記載の情報処理装置。
  14. 【請求項14】プログラムの実行を制御するスタックフ
    レームをアクティベーションレコードの集合により形成
    し、プロシージャ呼び出し毎に次々に生成されるアクテ
    ィベーションレコードの集合をレジスタファイル上のレ
    ジスタバンクに割り付け、隣り合う2つのレジスタバン
    クのリンクトリスト上における順序関係によって、前記
    プロシージャ呼び出しにおける呼び出した側のアクティ
    ベーションレコードと呼び出された側のアクティベーシ
    ョンレコードとの関係を示すように構成したことを特徴
    とする請求項12又は13記載の情報処理装置。
  15. 【請求項15】複数のタスクの実行を制御するために、
    それぞれのタスクに属するレジスタファイル上のアクテ
    ィベーションレコード群のリンクトリストの先頭と後尾
    を指示するレジスタバンクポインタを設けると共に、そ
    れぞれのタスクの実行の制御に必要な情報を保持するタ
    スクコントロールブロックを各レジスタバンク上に対応
    して設けることによって、複数のタスクの実行をそれぞ
    れ制御する複数のデータ構造を形成したことを特徴とす
    る請求項12又は13記載の情報処理装置。
  16. 【請求項16】各々のタスクのタスクコントロールブロ
    ックを各々のタスクの実行優先順位に従いレジスタバン
    クポインタによって連結すると共に、現在実行中のタス
    クのタスクコントロールブロックを先頭とするリンクト
    リストを形成することによって、複数のタスクの実行の
    管理を行なうタスク実行管理待ち行列を表現するように
    構成したことを特徴とする請求項15記載の情報処理装
    置。
  17. 【請求項17】現在アクセスしようとしているレジスタ
    バンクを指示するレジスタバンクポインタを保持してい
    るレジスタ(CABP)を設け、更に、機械語命令の実行に
    よりa番目のレジスタのアクセスが指定されると、前記
    レジスタ(CABP)が指し示すレジスタバンク中のa番目
    のレジスタがアクセスされるように構成したことを特徴
    とする請求項1ないし16のうち1記載の情報処理装置。
  18. 【請求項18】2のn乗個のレジスタからなるレジスタ
    ファイルをそれぞれ2のm乗個のレジスタにより構成さ
    れる2の(n−m)乗個のレジスタバンクに分割し、上
    位(n−m)ビットを前記レジスタ(CABP)の(n−
    m)ビット、下位mビットを機械語命令の実行において
    アクセスを指定したレジスタバンク中で特定のレジスタ
    を示すmビットの値とするnビットのレジスタセレクト
    ポインタを形成し、その値によってアクセスに関与する
    レジスタファイル中のレジスタを指示するように構成し
    たことを特徴とする請求項17記載の情報処理装置。
JP63162624A 1988-07-01 1988-07-01 情報処理装置 Expired - Fee Related JP3034873B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP63162624A JP3034873B2 (ja) 1988-07-01 1988-07-01 情報処理装置
US07/372,696 US5179685A (en) 1988-07-01 1989-06-28 Information processing apparatus
KR1019890009094A KR920003474B1 (ko) 1988-07-01 1989-06-29 정보처리장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63162624A JP3034873B2 (ja) 1988-07-01 1988-07-01 情報処理装置

Publications (2)

Publication Number Publication Date
JPH0214330A JPH0214330A (ja) 1990-01-18
JP3034873B2 true JP3034873B2 (ja) 2000-04-17

Family

ID=15758147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63162624A Expired - Fee Related JP3034873B2 (ja) 1988-07-01 1988-07-01 情報処理装置

Country Status (3)

Country Link
US (1) US5179685A (ja)
JP (1) JP3034873B2 (ja)
KR (1) KR920003474B1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325536A (en) * 1989-12-07 1994-06-28 Motorola, Inc. Linking microprocessor interrupts arranged by processing requirements into separate queues into one interrupt processing routine for execution as one routine
US5404550A (en) * 1991-07-25 1995-04-04 Tandem Computers Incorporated Method and apparatus for executing tasks by following a linked list of memory packets
US5479656A (en) * 1992-05-13 1995-12-26 Rawlings, Iii; Joseph H. Method and system for maximizing data files stored in a random access memory of a computer file system and optimization therefor
US5568639A (en) * 1993-11-24 1996-10-22 Menai Corporation Method and apparatus for providing an object-oriented file structuring system on a computer
KR0179840B1 (ko) * 1995-09-22 1999-05-15 문정환 레지스터 제어장치
JP3991443B2 (ja) * 1998-04-27 2007-10-17 ソニー株式会社 タスク切り替え方法及びデータ処理装置
US6772300B1 (en) * 2000-08-30 2004-08-03 Intel Corporation Method and apparatus for managing out of order memory transactions
US7228402B2 (en) * 2002-01-02 2007-06-05 Intel Corporation Predicate register file write by an instruction with a pending instruction having data dependency
US7631307B2 (en) * 2003-12-05 2009-12-08 Intel Corporation User-programmable low-overhead multithreading
JP4578119B2 (ja) * 2004-02-23 2010-11-10 大日本印刷株式会社 情報処理装置および情報処理装置におけるセキュリティ確保方法
US7634621B1 (en) * 2004-07-13 2009-12-15 Nvidia Corporation Register file allocation
US7487319B2 (en) * 2004-11-18 2009-02-03 International Business Machines Corporation Resource allocation unit queue
US8046566B2 (en) * 2007-05-14 2011-10-25 International Business Machines Corporation Method to reduce power consumption of a register file with multi SMT support
US8938590B2 (en) * 2008-10-18 2015-01-20 Micron Technology, Inc. Indirect register access method and system
US20140348101A1 (en) * 2011-12-14 2014-11-27 Optis Cellular Technology, Llc Buffer resource management method and telecommunication equipment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4777588A (en) * 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance
US4734852A (en) * 1985-08-30 1988-03-29 Advanced Micro Devices, Inc. Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
JPS6298434A (ja) * 1985-10-25 1987-05-07 Hitachi Ltd デ−タ処理システム
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
インターフェース1983年6月号(CQ出版社)、p.189〜193

Also Published As

Publication number Publication date
KR900002186A (ko) 1990-02-28
JPH0214330A (ja) 1990-01-18
KR920003474B1 (ko) 1992-05-01
US5179685A (en) 1993-01-12

Similar Documents

Publication Publication Date Title
JP3034873B2 (ja) 情報処理装置
US5983324A (en) Data prefetch control method for main storage cache for protecting prefetched data from replacement before utilization thereof
Thompson UNIX time-sharing system: UNIX Implementation
JP5142995B2 (ja) メモリページ管理
JPH0612386A (ja) プロセス内のスレッドを同期するための方法およびシステム
JPH03180941A (ja) 外部記憶装置群のスペース管理方法
JPH04195577A (ja) マルチプロセッサにおけるタスクスケジューリング方式
DE19516937A1 (de) Hierarchisches Cachesystem für einen Computer
EP0221358B1 (en) Sort string generation in a staged storage system
JPH06332625A (ja) ファイルのデータ多重化方法及びデータ処理システム
US5678024A (en) Method and system for dynamic performance resource management within a computer based system
CN108733585A (zh) 缓存***及相关方法
JP3964821B2 (ja) プロセッサ、キャッシュシステム及びキャッシュメモリ
US6154814A (en) Cache device that reduces waiting time necessary for a given subsequent request to gain access to the cache
JPS6336538B2 (ja)
JP2001290704A (ja) マルチプロセス制御装置及びマルチプロセス制御方法
JPS603229B2 (ja) 情報処理方式
JPH06214874A (ja) メモリ管理方式
JP3076303B2 (ja) 情報処理装置
Lohmann et al. Hard Real-Time Memory-Management in a Single Clock Cycle (on FPGAs)
JP2526728B2 (ja) ディスクキャッシュ自動利用方式
JP3022829B2 (ja) 記憶装置の自動割り当て装置
JPH076045A (ja) 多重処理システムにおけるメモリ管理方法
JPH07230358A (ja) 多重化ボリューム装置
JP3737742B2 (ja) プロセッサ用インストラクション処理方法及びインストラクション処理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees