JPH0214330A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH0214330A JPH0214330A JP63162624A JP16262488A JPH0214330A JP H0214330 A JPH0214330 A JP H0214330A JP 63162624 A JP63162624 A JP 63162624A JP 16262488 A JP16262488 A JP 16262488A JP H0214330 A JPH0214330 A JP H0214330A
- Authority
- JP
- Japan
- Prior art keywords
- register
- bank
- task
- banks
- register bank
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving 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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明は、複数のレジスタバンクに分割したレジスタフ
ァイル等の記憶装置を、複数の集合に分けて管理する機
構を有する情報処理装置に係り、特に手続き型言語で書
かれたプログラムの実行を制御するアクティベーション
レコードを複数のタスクの実行に対して管理するのに好
適な記憶領域の管理機構を有する情報処理装置に関する
。
ァイル等の記憶装置を、複数の集合に分けて管理する機
構を有する情報処理装置に係り、特に手続き型言語で書
かれたプログラムの実行を制御するアクティベーション
レコードを複数のタスクの実行に対して管理するのに好
適な記憶領域の管理機構を有する情報処理装置に関する
。
従来、複数のレジスタバンクに分割したレジスタファイ
ルの利用法については、エム・ジー・エッチ・カタベニ
ス著、リデュースト、インストラクション・セット・コ
ンピュータ・アーキテクチャズ・フオ・ブイ・エル・ニ
ス・アイ(1985年)第52頁から64頁(M、G、
H,Katevenis。
ルの利用法については、エム・ジー・エッチ・カタベニ
ス著、リデュースト、インストラクション・セット・コ
ンピュータ・アーキテクチャズ・フオ・ブイ・エル・ニ
ス・アイ(1985年)第52頁から64頁(M、G、
H,Katevenis。
Reduced In5truction Set
Con+puterArchitectures
for VLSI + pp、 52〜64
゜The MIT Press、 1985)に
おいて論じられている。この手法では、プロシージャが
呼び出される毎に1つずつ生成され、プログラムの実行
を制御する情報を保持するアクティベーションレコード
は、チップ内のレジスタファイル上に実現されたレジス
タバンクに割り付けられる。ポインタCWP (Cur
rent Window Po1nter)は、現
時点でプログラムの実行を制御しているアクテイヘーシ
ョンレコードが割り付けられているレジスタバンクを常
に指し示すものとする。そして、プログラム中のあるプ
ロシージャの実行中に別のプロシージャが呼びだされる
と、ポインタcwPは、その値に1を加え、それをレジ
スタバンクの数で割ったときの剰余を値として採り、新
たに生成されるアクティベーションレコードが、新しい
ポインタCWP値が指し示すレジスタバンク上割り付け
られる。これにより複数のレジスタバンクが順環して割
り付けられて行く。
Con+puterArchitectures
for VLSI + pp、 52〜64
゜The MIT Press、 1985)に
おいて論じられている。この手法では、プロシージャが
呼び出される毎に1つずつ生成され、プログラムの実行
を制御する情報を保持するアクティベーションレコード
は、チップ内のレジスタファイル上に実現されたレジス
タバンクに割り付けられる。ポインタCWP (Cur
rent Window Po1nter)は、現
時点でプログラムの実行を制御しているアクテイヘーシ
ョンレコードが割り付けられているレジスタバンクを常
に指し示すものとする。そして、プログラム中のあるプ
ロシージャの実行中に別のプロシージャが呼びだされる
と、ポインタcwPは、その値に1を加え、それをレジ
スタバンクの数で割ったときの剰余を値として採り、新
たに生成されるアクティベーションレコードが、新しい
ポインタCWP値が指し示すレジスタバンク上割り付け
られる。これにより複数のレジスタバンクが順環して割
り付けられて行く。
ところで、プロシージャ呼び出しのネストが深くなって
いくと、アクティベーションレコードの割り付けの際に
すでにレジスタファイル上のすべてのレジスタバンクが
使用されている場合があり、これをレジスタファイルの
オーバーフローという。
いくと、アクティベーションレコードの割り付けの際に
すでにレジスタファイル上のすべてのレジスタバンクが
使用されている場合があり、これをレジスタファイルの
オーバーフローという。
このような場合は、レジスタファイル上に割り付けられ
ているアクティベーションレコードのうち最も古(生成
されたものを主記憶上に退避し、これ迄それが割り付け
られていたレジスタバンクを、新たに生成されたアクテ
ィベーションレコードを割り付けるレジスタバンクとし
て用いる。
ているアクティベーションレコードのうち最も古(生成
されたものを主記憶上に退避し、これ迄それが割り付け
られていたレジスタバンクを、新たに生成されたアクテ
ィベーションレコードを割り付けるレジスタバンクとし
て用いる。
一方、プロシージャからの復帰の処理(現在実行中のプ
ロシージャから、これを呼出したプロシージャへ移す処
理)では、ポインタCWPが、その値から1を引き、そ
れをレジスタバンクの数で割ったときの剰余を値として
採ることによって、それまでプログラムの実行を制御し
ていたレジスタバンクが開放され、新しいポインタCW
P値が指し示すレジスタバンクに割り付けられているア
クティベーションレコードにプログラム実行の制御が移
る。
ロシージャから、これを呼出したプロシージャへ移す処
理)では、ポインタCWPが、その値から1を引き、そ
れをレジスタバンクの数で割ったときの剰余を値として
採ることによって、それまでプログラムの実行を制御し
ていたレジスタバンクが開放され、新しいポインタCW
P値が指し示すレジスタバンクに割り付けられているア
クティベーションレコードにプログラム実行の制御が移
る。
また、プロシージャからの復帰が連続的に発生し、プロ
シージャからの復帰処理において、プログラム実行の制
御を移すべきアクティベーションレコードが、レジスタ
ファイル上のレジスタバンクに割り付けられてない場合
が生じ、これをレジスタファイルのアンダーフローとい
う。これは、そのアクテ・イベーションレコードが主記
憶上に退避されているためであり、このような場合は、
主記憶上に退避されているアクティベーションレコード
のうち最新のものをレジスタファイル上のレジスタバン
クに取り込み、そのアクティベーションレコードにプロ
グラム実行の制御を移す。
シージャからの復帰処理において、プログラム実行の制
御を移すべきアクティベーションレコードが、レジスタ
ファイル上のレジスタバンクに割り付けられてない場合
が生じ、これをレジスタファイルのアンダーフローとい
う。これは、そのアクテ・イベーションレコードが主記
憶上に退避されているためであり、このような場合は、
主記憶上に退避されているアクティベーションレコード
のうち最新のものをレジスタファイル上のレジスタバン
クに取り込み、そのアクティベーションレコードにプロ
グラム実行の制御を移す。
又、上記従来技術では、ある時点でレジスタファイル中
のレジスタバンクに割り付けられているすべてのアクテ
ィベーションレコードは、同一のタスクの実行を制御す
るもののみであり、相隣り合・)レジスタバンクに割り
付けられているアクティベーションレコードは、互いに
プロシージャ呼び出しにおける、呼び出し側と呼び出さ
れ側との関係にあることが明らかである。従って、複数
のタスクの実行を管理する際のタスクスイッチの処理で
は、レジスタファイル上のレジスタバンクに割り付けら
れているアクティベーションレコードのすべてを主記憶
上に一旦退避し、新たにプログラムの実行制御が移るタ
スクのアクティベーションレコードをレジスタファイル
上のレジスタバンクに割り付けなければならない。
のレジスタバンクに割り付けられているすべてのアクテ
ィベーションレコードは、同一のタスクの実行を制御す
るもののみであり、相隣り合・)レジスタバンクに割り
付けられているアクティベーションレコードは、互いに
プロシージャ呼び出しにおける、呼び出し側と呼び出さ
れ側との関係にあることが明らかである。従って、複数
のタスクの実行を管理する際のタスクスイッチの処理で
は、レジスタファイル上のレジスタバンクに割り付けら
れているアクティベーションレコードのすべてを主記憶
上に一旦退避し、新たにプログラムの実行制御が移るタ
スクのアクティベーションレコードをレジスタファイル
上のレジスタバンクに割り付けなければならない。
上記従来技術は、現に実行する1つのタスクのみのアク
ティベーションレコードを命令処理装置内のレジスタフ
ァイル上に保持するだけであって、複数のタスクの効率
良い実行管理法について全く配慮がなされていない。そ
のため、従来技術では、タスクスイッチ時にレジスタフ
ァイル中に保持されているすべてのアクティベーション
レコードを主記憶に退避し、新たに実行するタスクのア
クティベーションレコード群の中の一つをレジスタファ
イル中に取り込む処理が必要となる。そして、この処理
を行なう間、本来行なうべきプログラムの実行は停止す
る。
ティベーションレコードを命令処理装置内のレジスタフ
ァイル上に保持するだけであって、複数のタスクの効率
良い実行管理法について全く配慮がなされていない。そ
のため、従来技術では、タスクスイッチ時にレジスタフ
ァイル中に保持されているすべてのアクティベーション
レコードを主記憶に退避し、新たに実行するタスクのア
クティベーションレコード群の中の一つをレジスタファ
イル中に取り込む処理が必要となる。そして、この処理
を行なう間、本来行なうべきプログラムの実行は停止す
る。
従って上記従来技術を用いて、レジスタファイル上のレ
ジスタバンクに割付けるアクティベーションレコードの
管理を行なった場合、レジスタファイルの容量を増やし
、レジスタファイル上に保持されるアクティベーション
レコードの数を増やすことによって、レジスタファイル
のオーバーフロー、アンダーフローの頻度を低下させ、
レジスタファイルのオーバーフロー、アンダーフロー時
のアクティベーションレコードの主記憶上への退避・回
復による実行性能の低下をある程度防ぐことは可能であ
る。しかし、レジスタファイル中に、1度に1つのタス
クのアクティベーションレコードしか保持しない方法で
は、タスクスイッチの働く頻度は変わらず、その処理に
おけるレジスタファイル上のアクテイベーションの主記
憶上への退避・回復の処理にかかる時間は増大し、結局
全体の実行性能の低下をまねくという問題があった。
ジスタバンクに割付けるアクティベーションレコードの
管理を行なった場合、レジスタファイルの容量を増やし
、レジスタファイル上に保持されるアクティベーション
レコードの数を増やすことによって、レジスタファイル
のオーバーフロー、アンダーフローの頻度を低下させ、
レジスタファイルのオーバーフロー、アンダーフロー時
のアクティベーションレコードの主記憶上への退避・回
復による実行性能の低下をある程度防ぐことは可能であ
る。しかし、レジスタファイル中に、1度に1つのタス
クのアクティベーションレコードしか保持しない方法で
は、タスクスイッチの働く頻度は変わらず、その処理に
おけるレジスタファイル上のアクテイベーションの主記
憶上への退避・回復の処理にかかる時間は増大し、結局
全体の実行性能の低下をまねくという問題があった。
従って、本発明の目的は、命令処理装置内のレジスタフ
ァイルを管理する情報処理装置において、この命令処理
装置内のレジスタファイルの容量を増大することが実現
可能となりつつある最近の近況において、タスクスイッ
チ時に必要であったレジスタファイル中の全アクティベ
ージコンレコードの主記憶への退避を不要にすることで
タスクスイッチ時にかかるオーバーヘッドを大幅に低減
し、しかもレジスタファイル中に保持するアクティベー
ジコンレコードの数の増加を可能とし、それによってレ
ジスタファイルのオーバーフロー・アンダーフローの頻
度を大幅に低減し、本来実行すべきプログラムの処理性
能を上げることにある。
ァイルを管理する情報処理装置において、この命令処理
装置内のレジスタファイルの容量を増大することが実現
可能となりつつある最近の近況において、タスクスイッ
チ時に必要であったレジスタファイル中の全アクティベ
ージコンレコードの主記憶への退避を不要にすることで
タスクスイッチ時にかかるオーバーヘッドを大幅に低減
し、しかもレジスタファイル中に保持するアクティベー
ジコンレコードの数の増加を可能とし、それによってレ
ジスタファイルのオーバーフロー・アンダーフローの頻
度を大幅に低減し、本来実行すべきプログラムの処理性
能を上げることにある。
上記目的を達成するため、本発明の情報処理装置は、ま
ずその基本発明において、命令処理装置内のレジスタフ
ァイル中のすべてのレジスタバンクに番地(バンク番号
)を付し、このレジスタファイルをそれぞれ複数のレジ
スタからなる複数個のレジスタバンクに分割する。又、
複数のタスクのそれぞれを実行し又その管理をするため
に複数のスタックフレームが形成されるが、特に、本発
明では、複数のタスクのそれぞれに属するスタックフレ
ームを構成しているアクティベージコンレコードの集合
即ち群(各群が当該タスクに属するアクティベージコン
レコードの全部又は一部から成る場合を含む)を、いず
れもレジスタファイル中のレジスタバンクに割り付ける
ように構成する。
ずその基本発明において、命令処理装置内のレジスタフ
ァイル中のすべてのレジスタバンクに番地(バンク番号
)を付し、このレジスタファイルをそれぞれ複数のレジ
スタからなる複数個のレジスタバンクに分割する。又、
複数のタスクのそれぞれを実行し又その管理をするため
に複数のスタックフレームが形成されるが、特に、本発
明では、複数のタスクのそれぞれに属するスタックフレ
ームを構成しているアクティベージコンレコードの集合
即ち群(各群が当該タスクに属するアクティベージコン
レコードの全部又は一部から成る場合を含む)を、いず
れもレジスタファイル中のレジスタバンクに割り付ける
ように構成する。
更に、タスクの実行に際して、アクティベージコンレコ
ードの割り付けられたレジスタバンクの順序関係(処理
順)等、その処理を管理するために、前記のバンク番号
によって表現されるレジスタバンクポインタで、個々の
レジスタバンクを指示する。
ードの割り付けられたレジスタバンクの順序関係(処理
順)等、その処理を管理するために、前記のバンク番号
によって表現されるレジスタバンクポインタで、個々の
レジスタバンクを指示する。
具体的な発明において、前記レジスタバンクポインタは
、隣り合うレジスタバンクの一方に設けたリンクレジス
タに保持され、該レジスタバンクポインタが隣り合うレ
ジスタバンクの他方を指示することにより、これらレジ
スタバンク同志が連結されて、リンクリストを構成する
。レジスタバンクポインタでレジスタバンクを双方向に
連結して双方向リンクリストとすることができる。
、隣り合うレジスタバンクの一方に設けたリンクレジス
タに保持され、該レジスタバンクポインタが隣り合うレ
ジスタバンクの他方を指示することにより、これらレジ
スタバンク同志が連結されて、リンクリストを構成する
。レジスタバンクポインタでレジスタバンクを双方向に
連結して双方向リンクリストとすることができる。
更に、各々のタスクに対し、そのアクティベージコンレ
コードを割り付けたレジスタバンクの双方向リンクトリ
ストの先頭と最後尾のレジスタバンクポインタ、主記憶
装置上のスタックフレーム上に最後に割り付けられたア
クティベージコンレコードのアドレス、入城変数等、タ
スクの内部状態を表す情報を保持するタスクコントロー
ルブロックをレジスタバンク上に設ける。このようにし
て作成されたタスクの実行を制御するデータ構造を複数
のタスクのそれぞれに対し用意し、さらに、これらのデ
ータ構造に対して、現在実行中のタスクに関するものを
先頭とする双方向リンクトリストを作成することによっ
て、複数のタスクの実行を管理する待ち行列を表現する
。
コードを割り付けたレジスタバンクの双方向リンクトリ
ストの先頭と最後尾のレジスタバンクポインタ、主記憶
装置上のスタックフレーム上に最後に割り付けられたア
クティベージコンレコードのアドレス、入城変数等、タ
スクの内部状態を表す情報を保持するタスクコントロー
ルブロックをレジスタバンク上に設ける。このようにし
て作成されたタスクの実行を制御するデータ構造を複数
のタスクのそれぞれに対し用意し、さらに、これらのデ
ータ構造に対して、現在実行中のタスクに関するものを
先頭とする双方向リンクトリストを作成することによっ
て、複数のタスクの実行を管理する待ち行列を表現する
。
まだ、まだアクティベージコンレコードの割り付けられ
ていないレジスタバンクをレジスタバンクポインタで連
結したリスト、つまり待機バンクリストを形成すること
で、レジスタバンクのアクティベージコンレコードの割
り付は処理に備える。
ていないレジスタバンクをレジスタバンクポインタで連
結したリスト、つまり待機バンクリストを形成すること
で、レジスタバンクのアクティベージコンレコードの割
り付は処理に備える。
〔作用〕
上記構成に基づく作用を説明する。本発明にょれば、複
数のタスクにそれぞれ属しているアクティベージコンレ
コード群(集合)は、いずれも(主記憶装置上ではなく
て)命令処理装置内のレジスタファイル上のレジスタバ
ンクに設けられているので、タスクスイッチ時に、従来
のように、いちいち、それまでレジスタファイル上にあ
ったすべてのアクティベージコンレコードを主記憶装置
へ退避させ、主記憶装置から新しいタスクに関するアク
ティベージコンレコードをレジスタファイルに取り込む
必要はなく、新旧タスクに関するアクティベージコンレ
コードの切り替えをレジスタファイル上で短時間で行な
うことができる。又レジスタバンクポインタによりリン
クリストを構成したので、レジスタバンク間の順序関係
の変化に対する柔軟な対応も可能となる。
数のタスクにそれぞれ属しているアクティベージコンレ
コード群(集合)は、いずれも(主記憶装置上ではなく
て)命令処理装置内のレジスタファイル上のレジスタバ
ンクに設けられているので、タスクスイッチ時に、従来
のように、いちいち、それまでレジスタファイル上にあ
ったすべてのアクティベージコンレコードを主記憶装置
へ退避させ、主記憶装置から新しいタスクに関するアク
ティベージコンレコードをレジスタファイルに取り込む
必要はなく、新旧タスクに関するアクティベージコンレ
コードの切り替えをレジスタファイル上で短時間で行な
うことができる。又レジスタバンクポインタによりリン
クリストを構成したので、レジスタバンク間の順序関係
の変化に対する柔軟な対応も可能となる。
次に、具体的な発明につき、その作用を詳しく説明する
。複数のタスクの実行を管理する待ち行列は、それぞれ
のタスクに対し設けられているタスクコントロールブロ
ックに関して、現在実行中のタスクのタスクコントロー
ルブロックを先頭とし、レジスタバンクポインタによっ
て双方向に連結することにより、形成される。また、タ
スクの実行を管理する待ち行列の先頭と最後尾のタスク
に対応するタスクコントロールブロックはそれぞれ二つ
のポインタTQF、TQEによって指示される。それに
よって、タスクスイッチの処理は、タスクの実行の優先
順位を決定するアルゴリズムに従って、複数のタスクの
実行を管理する待ち行列を更新するだけで実現できるの
で、誤動作することがない。
。複数のタスクの実行を管理する待ち行列は、それぞれ
のタスクに対し設けられているタスクコントロールブロ
ックに関して、現在実行中のタスクのタスクコントロー
ルブロックを先頭とし、レジスタバンクポインタによっ
て双方向に連結することにより、形成される。また、タ
スクの実行を管理する待ち行列の先頭と最後尾のタスク
に対応するタスクコントロールブロックはそれぞれ二つ
のポインタTQF、TQEによって指示される。それに
よって、タスクスイッチの処理は、タスクの実行の優先
順位を決定するアルゴリズムに従って、複数のタスクの
実行を管理する待ち行列を更新するだけで実現できるの
で、誤動作することがない。
一つのタスクに関して、その実行を制御するアクティベ
ーションレコードの集合(群)は次のように動作する。
ーションレコードの集合(群)は次のように動作する。
即ち、最後に生成されたアクティベーションレコードが
先頭に位置づけられ、プロシージャ呼び出しにおける呼
び出し側と呼び出され側に対応するアクティベーション
レコードは、それぞれが割り付けられているレジスタバ
ンクを指示するレジスタバンクポインタによって双方向
に連結され、その先頭と最後尾のそれぞれがこのタスク
のタスクコントロールブロックに保持された二つのポイ
ンタARPとAREとによって管理される双方向リンク
トリストを形成する。それによって、現在実行中のプロ
シージャからそれを呼び出したところへの復帰は次のよ
うにして行なわれる。即ち、今までその実行を制御して
いたアクティベーションレコード(つまりARPが指し
示すレジスタバンクに割り付けられているアクティベー
ションレコード)を解放し、該アクティベーションレコ
ードを割り付けていたレジスタバンクが持つレジスタバ
ンクポインタの値(該レジスタバンクの1つ手前のレジ
スタバンクの番号)ヲARPの値とし、そのアクティベ
ーションレコードにプログラムの実行の制御を移すので
、誤動作することがない。またARPとAREが同じレ
ジスタバンクを指している場合、プログラムの実行の制
御を移すべきアクティベーションレコードは、主記憶装
置上に割り付けられていくことになり、そのアクティベ
ーションレコードの割り付けられているレジスタバンク
中の該アクティベーションレコードを呼び出したアクテ
ィベーションレコードを指し示す情報を保持しているレ
ジスタには、主記憶装置上に割り付けられたアクティベ
ーションレコードが位置するアドレスが保持されている
。
先頭に位置づけられ、プロシージャ呼び出しにおける呼
び出し側と呼び出され側に対応するアクティベーション
レコードは、それぞれが割り付けられているレジスタバ
ンクを指示するレジスタバンクポインタによって双方向
に連結され、その先頭と最後尾のそれぞれがこのタスク
のタスクコントロールブロックに保持された二つのポイ
ンタARPとAREとによって管理される双方向リンク
トリストを形成する。それによって、現在実行中のプロ
シージャからそれを呼び出したところへの復帰は次のよ
うにして行なわれる。即ち、今までその実行を制御して
いたアクティベーションレコード(つまりARPが指し
示すレジスタバンクに割り付けられているアクティベー
ションレコード)を解放し、該アクティベーションレコ
ードを割り付けていたレジスタバンクが持つレジスタバ
ンクポインタの値(該レジスタバンクの1つ手前のレジ
スタバンクの番号)ヲARPの値とし、そのアクティベ
ーションレコードにプログラムの実行の制御を移すので
、誤動作することがない。またARPとAREが同じレ
ジスタバンクを指している場合、プログラムの実行の制
御を移すべきアクティベーションレコードは、主記憶装
置上に割り付けられていくことになり、そのアクティベ
ーションレコードの割り付けられているレジスタバンク
中の該アクティベーションレコードを呼び出したアクテ
ィベーションレコードを指し示す情報を保持しているレ
ジスタには、主記憶装置上に割り付けられたアクティベ
ーションレコードが位置するアドレスが保持されている
。
そのアドレスによって、復帰する先のプロシージャの実
行を制御する主記憶装置上に割り付けられたアクティベ
ーションレコードを、レジスタファイルに取り込むこと
ができる。レジスタファイルにオーバフローが起り、あ
るタスクのプログラムの実行を制御するデータ構造を主
記憶装置上に退避することが要求されている場合、タス
クの実行を管理する待ち行列の最後尾に位置するタスク
コントロールブロックのAREが指すアクティベーショ
ンレコードを主記憶上のそのタスクのスタックフレーム
上に退避することによって、レジスタバンクが確保でき
るので、誤動作することはない。
行を制御する主記憶装置上に割り付けられたアクティベ
ーションレコードを、レジスタファイルに取り込むこと
ができる。レジスタファイルにオーバフローが起り、あ
るタスクのプログラムの実行を制御するデータ構造を主
記憶装置上に退避することが要求されている場合、タス
クの実行を管理する待ち行列の最後尾に位置するタスク
コントロールブロックのAREが指すアクティベーショ
ンレコードを主記憶上のそのタスクのスタックフレーム
上に退避することによって、レジスタバンクが確保でき
るので、誤動作することはない。
なお、このような状態は、まだアクティベーションレコ
ードの割り付けられていないレジスタバンクのリストの
先頭を指す待機バンクポインタの値がレジスタバンクの
総数を越えることによって認識される。
ードの割り付けられていないレジスタバンクのリストの
先頭を指す待機バンクポインタの値がレジスタバンクの
総数を越えることによって認識される。
以下、本発明の実施例を図により説明する。
第1図は、本発明の一実施例の記憶領域の管理機構の概
念図である。同図で、レジスタファイル1は複数のレジ
スタバンク7N?、〜7.t、7−〜1w、7C〜”r
ci)に分割され、これらのレジスタバンク7、〜7
etには、それぞれタスクコントロールバンク2 (2
,〜2c)とアクティベーションレコード3 (3−
+〜3.□、3b1〜3b直。
念図である。同図で、レジスタファイル1は複数のレジ
スタバンク7N?、〜7.t、7−〜1w、7C〜”r
ci)に分割され、これらのレジスタバンク7、〜7
etには、それぞれタスクコントロールバンク2 (2
,〜2c)とアクティベーションレコード3 (3−
+〜3.□、3b1〜3b直。
3CI〜3 ei)が割り付けられ、そしてそれらを連
結するレジスタバンクポインタ5 (5,〜Ob+5□
〜5 air 5 bl〜5 bk+ 5c+〜5
ci)を用いて、タスクの実行を制御するデータ構造
が構成される。
結するレジスタバンクポインタ5 (5,〜Ob+5□
〜5 air 5 bl〜5 bk+ 5c+〜5
ci)を用いて、タスクの実行を制御するデータ構造
が構成される。
このデータ構造を複数のタスクに対して設けることで、
複数の(第1図では3個の)タスクの実行を管理する機
構が構成される。なお、ここで、各レジスタバンク7に
は、バンク番号(アドレス)が付けられるが、このアド
レスは、実際の物理アドレスを示すものではなり、論理
的アドレスを示すものである。
複数の(第1図では3個の)タスクの実行を管理する機
構が構成される。なお、ここで、各レジスタバンク7に
は、バンク番号(アドレス)が付けられるが、このアド
レスは、実際の物理アドレスを示すものではなり、論理
的アドレスを示すものである。
通常のコンピュータシステムでは、複数のタスクのプロ
グラムの実行の制御は、主記憶上に設けられたタスクコ
ントロールブロックと、スタックフレームとからなるデ
ータ構造を用いて行なわれる。これに対し、本実施例で
は、このタスクコントロールブロックと、スタックフレ
ームを構成するアクティベーションレコードは、主記憶
装置にではなくて、命令処理装置内に設けられ、レジス
タ番地空間を持つレジスタファイル1を分割したレジス
タバンク7 (7,〜7cりに割り付ける構成とする。
グラムの実行の制御は、主記憶上に設けられたタスクコ
ントロールブロックと、スタックフレームとからなるデ
ータ構造を用いて行なわれる。これに対し、本実施例で
は、このタスクコントロールブロックと、スタックフレ
ームを構成するアクティベーションレコードは、主記憶
装置にではなくて、命令処理装置内に設けられ、レジス
タ番地空間を持つレジスタファイル1を分割したレジス
タバンク7 (7,〜7cりに割り付ける構成とする。
レジスタファイル中のレジスタバンク7は、タスクの実
行を管理するタスクコントロールブロック2を割り付け
たもの7.〜7cと、タスク内においてプログラムの実
行を制御し、プロシージャ呼び出し毎に生成されるアク
ティベーションレコード3を割り付けたもの7□〜?、
五、7に、〜7bt。
行を管理するタスクコントロールブロック2を割り付け
たもの7.〜7cと、タスク内においてプログラムの実
行を制御し、プロシージャ呼び出し毎に生成されるアク
ティベーションレコード3を割り付けたもの7□〜?、
五、7に、〜7bt。
7 cl〜7ciと、これらの情報がまだ割り付けられ
ていないレジスタバンク? (7,、〜7.J)である
待機バンク4 (41〜4J)とに分類される。各々の
タスクコントロールブロック2には、アクティベーショ
ンレコードを割り付けたレジスタバンクの双方向リンク
リストの先頭と最後尾のレジスタバンクポインタ、主記
憶装置上のスタックフレーム上で最後に割り付けられた
アクティベーションレコードのアドレス、入城変数など
、タスクの内部状態を表わす情報が保持される。
ていないレジスタバンク? (7,、〜7.J)である
待機バンク4 (41〜4J)とに分類される。各々の
タスクコントロールブロック2には、アクティベーショ
ンレコードを割り付けたレジスタバンクの双方向リンク
リストの先頭と最後尾のレジスタバンクポインタ、主記
憶装置上のスタックフレーム上で最後に割り付けられた
アクティベーションレコードのアドレス、入城変数など
、タスクの内部状態を表わす情報が保持される。
待機バンク4は、アクティベーションレコード3やタス
クコントロールブロック2をレジスタバンク7に割り付
ける処理に備えるもので、これらの情報がまだ割り付け
られていないレジスタバンク7の集合をレジスタバンク
ポインタ5により連結したリストである待機バンクリス
トを形成する。
クコントロールブロック2をレジスタバンク7に割り付
ける処理に備えるもので、これらの情報がまだ割り付け
られていないレジスタバンク7の集合をレジスタバンク
ポインタ5により連結したリストである待機バンクリス
トを形成する。
そして、アクティベーションレコード3やタスクコント
ロールブロック2をレジスタバンク7に割り付ける処理
に際し、その待機バンクリストから待機バンク4が一つ
取り出され、それらの情報を割り付けるのに用いられる
。また、アクティベーションレコード3やタスクコント
ロールブロック2を開放する処理に際し、それまでアク
ティベーションレコード3やタスクコントロールブロッ
ク2が割り付けられていたレジスタバンク7が待機バン
ク4として、待機バンクリストに連結される。
ロールブロック2をレジスタバンク7に割り付ける処理
に際し、その待機バンクリストから待機バンク4が一つ
取り出され、それらの情報を割り付けるのに用いられる
。また、アクティベーションレコード3やタスクコント
ロールブロック2を開放する処理に際し、それまでアク
ティベーションレコード3やタスクコントロールブロッ
ク2が割り付けられていたレジスタバンク7が待機バン
ク4として、待機バンクリストに連結される。
本実施例のタスクのプログラムの実行の制御を行なうデ
ータ構造は、レジスタファイル1中のレジスタバンク7
に割り付けられたアクティベーションレコード3の集合
とタスクコントロールブロック2とによって構成され、
それぞれが割り付けられているレジスタバンク7を指し
示すレジスタバンクポインタ5によって連結されている
。
ータ構造は、レジスタファイル1中のレジスタバンク7
に割り付けられたアクティベーションレコード3の集合
とタスクコントロールブロック2とによって構成され、
それぞれが割り付けられているレジスタバンク7を指し
示すレジスタバンクポインタ5によって連結されている
。
あるタスクに属するアクティベーションレコード3の集
合は、その要素の各々がレジスタバンクポインタ5によ
って双方向に連結されたリンクトリストを構成する。
合は、その要素の各々がレジスタバンクポインタ5によ
って双方向に連結されたリンクトリストを構成する。
このアクティベーションレコード3のリンクトリストに
おける順序関係は、プロシージャ呼び出しにおける呼び
出し側(各ポインタ5の矢の後端側)に対応するアクテ
ィベーションレコード3と呼び出され側(各ポインタ5
の矢の先端側)に対応するアクティベーションレコード
3とを示している。つまり、個々のアクティベーション
レコード3が持つ双方向のレジスタバンクポインタ5の
うち、このリンクトリストの後尾方向のレジスタバンク
ポインタ5 (第1図で上向きのポインタ5、例えば5
.II)は、このアクティベーションレコード3(例え
ば3□)が次に実行を制御するプロシージャを呼び出し
た時点でそれまで実行を制御していたアクティベーショ
ンレコード3 (例えば31)を指し示し、一方このリ
ンクトリストの先頭方向の(第1図で下向きの)レジス
タバンクポインタ5 (例えば5□、)は、このアクテ
ィベーションレコード3 (例えば31)が実行を制御
するプロシージャが現に実行中に、さらに呼び出した次
のプロシージャの実行を制御するアクティベーションレ
コード3 (例えば3.2)を指し示す。
おける順序関係は、プロシージャ呼び出しにおける呼び
出し側(各ポインタ5の矢の後端側)に対応するアクテ
ィベーションレコード3と呼び出され側(各ポインタ5
の矢の先端側)に対応するアクティベーションレコード
3とを示している。つまり、個々のアクティベーション
レコード3が持つ双方向のレジスタバンクポインタ5の
うち、このリンクトリストの後尾方向のレジスタバンク
ポインタ5 (第1図で上向きのポインタ5、例えば5
.II)は、このアクティベーションレコード3(例え
ば3□)が次に実行を制御するプロシージャを呼び出し
た時点でそれまで実行を制御していたアクティベーショ
ンレコード3 (例えば31)を指し示し、一方このリ
ンクトリストの先頭方向の(第1図で下向きの)レジス
タバンクポインタ5 (例えば5□、)は、このアクテ
ィベーションレコード3 (例えば31)が実行を制御
するプロシージャが現に実行中に、さらに呼び出した次
のプロシージャの実行を制御するアクティベーションレ
コード3 (例えば3.2)を指し示す。
そしてこのリンクトリストの先頭に位置するアクティベ
ーションレコード3 (例えば31)は、そのアクティ
ベーションレコード311(のリンクトリストが属する
タスクにおいて、最後に呼び出されたプロシージャに対
応するもので、そのタスクが実行状態にあるときは、レ
ジスタファイル1中のレジスタバンク7に割り付けられ
たこのリンクトリストの先頭に位置するアクティベーシ
ョンレコード31.は、その時点でのプログラムの実行
を直接制御するものとして用いられる。また、あるタス
クが実行状態にあるときにプロシージャが呼び出される
と、新たにアクティベーションレコード3(例えば3れ
。い図示せず)が生成され、それがレジスタファイル1
に割り付けられ、そのタスクに属するアクティベーショ
ンレコード3のリンクトリストの先頭にレジスタバンク
ポインタ5を操作し連結され、それがその時点でのプロ
グラムの実行を制御する。またあるタスクが実行状態に
あるときに実行中のプロシージャからそれを呼び出した
プロシージャへの復帰が起きると、それまでそのタスク
のプロシージャの実行を制御していたアクティベーショ
ンレコード3を解放し、前のアクティベーションレコー
ドにレジスタバンクポインタ6を保持する。
ーションレコード3 (例えば31)は、そのアクティ
ベーションレコード311(のリンクトリストが属する
タスクにおいて、最後に呼び出されたプロシージャに対
応するもので、そのタスクが実行状態にあるときは、レ
ジスタファイル1中のレジスタバンク7に割り付けられ
たこのリンクトリストの先頭に位置するアクティベーシ
ョンレコード31.は、その時点でのプログラムの実行
を直接制御するものとして用いられる。また、あるタス
クが実行状態にあるときにプロシージャが呼び出される
と、新たにアクティベーションレコード3(例えば3れ
。い図示せず)が生成され、それがレジスタファイル1
に割り付けられ、そのタスクに属するアクティベーショ
ンレコード3のリンクトリストの先頭にレジスタバンク
ポインタ5を操作し連結され、それがその時点でのプロ
グラムの実行を制御する。またあるタスクが実行状態に
あるときに実行中のプロシージャからそれを呼び出した
プロシージャへの復帰が起きると、それまでそのタスク
のプロシージャの実行を制御していたアクティベーショ
ンレコード3を解放し、前のアクティベーションレコー
ドにレジスタバンクポインタ6を保持する。
以上述べてきたのが、レジスタファイル1中のレジスタ
バンク7に取り付けられたアクティベーションレコード
3の集合とタスクコントロールブロック2とからなる、
タスクのプログラムの実行の制御を行なうためのデータ
構造である。
バンク7に取り付けられたアクティベーションレコード
3の集合とタスクコントロールブロック2とからなる、
タスクのプログラムの実行の制御を行なうためのデータ
構造である。
ところで、通常のコンピュータシステムでは、複数のタ
スクの管理は、主記憶番地空間を持つ主記憶装置上に設
けられたタスクコントロールブロックを要素とするキュ
ーが形成され、それによって複数のタスクに対しその実
行の優先順位に従った待ち行列の管理を行なっている。
スクの管理は、主記憶番地空間を持つ主記憶装置上に設
けられたタスクコントロールブロックを要素とするキュ
ーが形成され、それによって複数のタスクに対しその実
行の優先順位に従った待ち行列の管理を行なっている。
それに対し本実施例では、上記タスクのプログラムの実
行の制御を行なうためのデータ構造をそれぞれのタスク
毎に設け、複数のタスクの実行を管理する待ち行列のキ
ューは、それぞれのタスクに対し設けられているタスク
コントロールブロック2に関して、現在実行中のレジス
タコントロール2を先頭とし、レジスタバンクポインタ
5 (5a、5b・・・・・・・・・)によって双方
向に連結することにより形成される。
行の制御を行なうためのデータ構造をそれぞれのタスク
毎に設け、複数のタスクの実行を管理する待ち行列のキ
ューは、それぞれのタスクに対し設けられているタスク
コントロールブロック2に関して、現在実行中のレジス
タコントロール2を先頭とし、レジスタバンクポインタ
5 (5a、5b・・・・・・・・・)によって双方
向に連結することにより形成される。
そして、タスクの実行を管理する待ち行列の先頭(例え
ば2c)と後尾(例えば2a)のタスクに対応するタス
クコントロールブロック2はそれぞれ二つのレジスタバ
ンクポインタ8 (8c、8a)によって指し示され
る。
ば2c)と後尾(例えば2a)のタスクに対応するタス
クコントロールブロック2はそれぞれ二つのレジスタバ
ンクポインタ8 (8c、8a)によって指し示され
る。
タスクが消滅されるとき、又はタスクが実行可能状態か
ら待ち状態に変化したときは、レジスタファイル1上の
レジスタバンク7に割り付けられたそのタスクの実行を
制御するデータ構造を構成するアクティベーションレコ
ード3の集合とタスクコントロールブロック2が解放さ
れる。
ら待ち状態に変化したときは、レジスタファイル1上の
レジスタバンク7に割り付けられたそのタスクの実行を
制御するデータ構造を構成するアクティベーションレコ
ード3の集合とタスクコントロールブロック2が解放さ
れる。
さらに、タスクスイッチの処理は、タスクの実行の優先
順位を決定するアリプリズムに従って、複数のタスクの
実行を管理する待ち行列を操作することで実現される。
順位を決定するアリプリズムに従って、複数のタスクの
実行を管理する待ち行列を操作することで実現される。
ところで、プロシージャ呼び出しのネストが深くなって
いくと、アクティベーションレコード3の割り付けの際
にすでにレジスタファイル1上のすべてのレジスタバン
ク7が使用されており、レジスタファイル1のオーバー
フローが発生する場合がある。このような場合は、レジ
スタファイル1上のレジスタバンク7に割り付けられて
いるアクティベーションレコード3、またはタスクコン
トロールブロック2を前記主記憶番地空間をもつ主記憶
装置(図示せず)上に退避し、それが割り付けられてい
たレジスタバンク7を用いて、新たに生成されたアクテ
ィベーションレコード3を割り付け、そのタスクのアク
ティベーションレコード3のリンクトリストの先頭に新
たなアクティベーションレコードを連結し、それを用い
てプログラム実行の制御を行なう。
いくと、アクティベーションレコード3の割り付けの際
にすでにレジスタファイル1上のすべてのレジスタバン
ク7が使用されており、レジスタファイル1のオーバー
フローが発生する場合がある。このような場合は、レジ
スタファイル1上のレジスタバンク7に割り付けられて
いるアクティベーションレコード3、またはタスクコン
トロールブロック2を前記主記憶番地空間をもつ主記憶
装置(図示せず)上に退避し、それが割り付けられてい
たレジスタバンク7を用いて、新たに生成されたアクテ
ィベーションレコード3を割り付け、そのタスクのアク
ティベーションレコード3のリンクトリストの先頭に新
たなアクティベーションレコードを連結し、それを用い
てプログラム実行の制御を行なう。
一方プロシージャからの復帰が連続的に発生し、プロシ
ージャからの復帰処理において、プログラム実行の制御
を移すべきアクティベーションレコード3が、レジスタ
ファイル1上のレジスタバンク7に割り付けられていな
い場合が生じる。これは、そのアクティベーションレコ
ード3が主記憶上に退避されているためであり、このよ
うな場合は、主記憶上に退避されているアクティベーシ
ョンレコード3を取り込み、レジスタファイル1上のレ
ジスタバンク7に割り付け、それをそのタスクにおける
一つからなるアクティベーションレコ−ド3のリンクト
リストとし、それを用いてプログラム実行の制御を行な
う。
ージャからの復帰処理において、プログラム実行の制御
を移すべきアクティベーションレコード3が、レジスタ
ファイル1上のレジスタバンク7に割り付けられていな
い場合が生じる。これは、そのアクティベーションレコ
ード3が主記憶上に退避されているためであり、このよ
うな場合は、主記憶上に退避されているアクティベーシ
ョンレコード3を取り込み、レジスタファイル1上のレ
ジスタバンク7に割り付け、それをそのタスクにおける
一つからなるアクティベーションレコ−ド3のリンクト
リストとし、それを用いてプログラム実行の制御を行な
う。
以上述べたレジスタファイル1上のレジスタバンク7に
割り付けられているアクティベーションレコード3、ま
たはタスクコントロールブロック2を主記憶上に退避す
る処理を採用することにより、通常のコンピュータシス
テムにおける複数のタスクに対する実行の待ち行列は、
本実施例では、主記憶上に割り付けられているタスクコ
ントロールブロックの集合とレジスタファイルl上のレ
ジスタバンク7に割り付けられているタスクコントロー
ルブロック2の集合とによって構成される。
割り付けられているアクティベーションレコード3、ま
たはタスクコントロールブロック2を主記憶上に退避す
る処理を採用することにより、通常のコンピュータシス
テムにおける複数のタスクに対する実行の待ち行列は、
本実施例では、主記憶上に割り付けられているタスクコ
ントロールブロックの集合とレジスタファイルl上のレ
ジスタバンク7に割り付けられているタスクコントロー
ルブロック2の集合とによって構成される。
従って本実施例によるタスクスイッチの処理における複
数のタスクの実行優先順位の変化に伴う複数のタスクの
実行を管理する待ち行列の操作は、主記憶上に割り付け
られているタスクコントロールブロックの集合とレジス
タファイル1上のレジスタバンク7に割り付けられてい
るタスクコントロールブロック2の集合とに対して行な
われる。
数のタスクの実行優先順位の変化に伴う複数のタスクの
実行を管理する待ち行列の操作は、主記憶上に割り付け
られているタスクコントロールブロックの集合とレジス
タファイル1上のレジスタバンク7に割り付けられてい
るタスクコントロールブロック2の集合とに対して行な
われる。
従って、タスクスイッチの処理における複数のタスクの
実行優先順位の変化に伴う複数のタスクの実行を管理す
る待ち行列の操作によって、主記憶上に退避されたタス
クコントロールブロックをレジスタファイル1上に取り
込み、それをレジスタバンク7に割り付は処理する際に
、すでにレジスタファイル1上のすべてのレジスタバン
ク7が使用されていることによるレジスタファイル1の
オーバーフローが発生する場合がある。そのような場合
には、レジスタファイル1上のレジスタバンク7に割り
付けられているアクティベーションレコード3、または
タスクコントロールブロック2を主記憶上に退避し、そ
れまで割り付けられていたレジスタバンク7を用いてレ
ジスタファイル1上に取り込むべきタスクコントロール
ブロック2を割り付け、それによって、該タスクコント
ロールブロック2は、タスクの実行の優先順位を決定す
るアルゴリズムに従って、複数のタスクの実行を管理す
る待ち行列に挿入される。
実行優先順位の変化に伴う複数のタスクの実行を管理す
る待ち行列の操作によって、主記憶上に退避されたタス
クコントロールブロックをレジスタファイル1上に取り
込み、それをレジスタバンク7に割り付は処理する際に
、すでにレジスタファイル1上のすべてのレジスタバン
ク7が使用されていることによるレジスタファイル1の
オーバーフローが発生する場合がある。そのような場合
には、レジスタファイル1上のレジスタバンク7に割り
付けられているアクティベーションレコード3、または
タスクコントロールブロック2を主記憶上に退避し、そ
れまで割り付けられていたレジスタバンク7を用いてレ
ジスタファイル1上に取り込むべきタスクコントロール
ブロック2を割り付け、それによって、該タスクコント
ロールブロック2は、タスクの実行の優先順位を決定す
るアルゴリズムに従って、複数のタスクの実行を管理す
る待ち行列に挿入される。
本実施例によれば、同時に複数のタスクのプログラムの
実行を制御するアクティベーションレコード3をレジス
タファイル1中に保持することが可能となるので、従来
技術では必要であったタスクスイッチ時のレジスタファ
イル1中に保持されているすべてのアクティベーション
レコード3を主記憶へ退避する必要がなくなる効果があ
る。これによって、複数のタスクを切換えるタスクスイ
ッチ処理を行なうのに、いちいち主記憶装置へアクティ
ベーションレコードを退避したり、これを主記憶装置か
らレジスタファイル上に取り込んだりする必要がなくな
り、レジスタファイル上だけでタスクスイッチ処理を行
なうことも可能となるので、該スイッチ処理に要する時
間が短縮され、オーバーヘッドを大幅に低減することが
できる。
実行を制御するアクティベーションレコード3をレジス
タファイル1中に保持することが可能となるので、従来
技術では必要であったタスクスイッチ時のレジスタファ
イル1中に保持されているすべてのアクティベーション
レコード3を主記憶へ退避する必要がなくなる効果があ
る。これによって、複数のタスクを切換えるタスクスイ
ッチ処理を行なうのに、いちいち主記憶装置へアクティ
ベーションレコードを退避したり、これを主記憶装置か
らレジスタファイル上に取り込んだりする必要がなくな
り、レジスタファイル上だけでタスクスイッチ処理を行
なうことも可能となるので、該スイッチ処理に要する時
間が短縮され、オーバーヘッドを大幅に低減することが
できる。
また、従来技術では、レジスタファイル1の容量を増大
し、レジスタファイル1中に保持するアクティベーショ
ンレコード3の数を増やすと、タスクスイッチ処理にか
かる時間が増大し、本来実行すべきプログラムを処理す
る性能が低下するため、レジスタファイル1中に保持す
るアクティベーションレコード3の数は限られていたが
、本実施例によればその処理性能を低下することなくレ
ジスタファイル1中に保持するアクティベーションレコ
ード3の数を増やすことが可能であるので、レジスタフ
ァイル1の容量が増大するに従って、タスクスイッチの
処理、プロシージャ呼び出しの処理、およびプロシージ
ャからの復帰の処理において発生するレジスタファ・f
ルlのオーバーフローアンダーフローの頻度を低減でき
る効果がある。
し、レジスタファイル1中に保持するアクティベーショ
ンレコード3の数を増やすと、タスクスイッチ処理にか
かる時間が増大し、本来実行すべきプログラムを処理す
る性能が低下するため、レジスタファイル1中に保持す
るアクティベーションレコード3の数は限られていたが
、本実施例によればその処理性能を低下することなくレ
ジスタファイル1中に保持するアクティベーションレコ
ード3の数を増やすことが可能であるので、レジスタフ
ァイル1の容量が増大するに従って、タスクスイッチの
処理、プロシージャ呼び出しの処理、およびプロシージ
ャからの復帰の処理において発生するレジスタファ・f
ルlのオーバーフローアンダーフローの頻度を低減でき
る効果がある。
第2図(a)〜(C1は、レジスタバンクポインタ16
(第1図の5に対応)の表現形式、レジスタバンクポイ
ンタ16を用いたレジスタバンク12 (第1図の7に
対応)のリンクトリストの構成法、及び、レジスタバン
ク12中のレジスタのアクセス方式を説明する概念図で
ある。
(第1図の5に対応)の表現形式、レジスタバンクポイ
ンタ16を用いたレジスタバンク12 (第1図の7に
対応)のリンクトリストの構成法、及び、レジスタバン
ク12中のレジスタのアクセス方式を説明する概念図で
ある。
本実施例では、レジスタファイル11は2のn乗(以下
、2 i nと記す)個のレジスタからなり、個々のレ
ジスタにはアドレス(番地)が付けられている。また、
レジスタファイル11中のすべてのレジスタバンク12
は、それぞれ、(2↑m)個のレジスタにより構成され
る。従ってレジスタファイル11中のレジスタバンク1
2の総数は、(2↑ (n−m))個となる。レジスタ
ファイル11中のすべてのレジスタバンク12にはOか
ら((2↑ (n−m))−1)までのバンク番号が付
けられており、そのバンク番号を用いて個々のレジスタ
バンク12を指し示すのがレジスタバンクポインタ16
である。
、2 i nと記す)個のレジスタからなり、個々のレ
ジスタにはアドレス(番地)が付けられている。また、
レジスタファイル11中のすべてのレジスタバンク12
は、それぞれ、(2↑m)個のレジスタにより構成され
る。従ってレジスタファイル11中のレジスタバンク1
2の総数は、(2↑ (n−m))個となる。レジスタ
ファイル11中のすべてのレジスタバンク12にはOか
ら((2↑ (n−m))−1)までのバンク番号が付
けられており、そのバンク番号を用いて個々のレジスタ
バンク12を指し示すのがレジスタバンクポインタ16
である。
レジスタCABP (Current Active
BankPointer) 13は、現在アクセ
スしようとしているレジスタバンク12を指し示すレジ
スタバンクポインタ16を保持している。そしてバンク
内レジスタセレクトポインタ15によりa番目のレジス
タのアクセスが指定されると、レジスタCABP13が
指し示すレジスタバンク12中のa番目のレジスタがア
クセスされる。このアクセス機構を実現するために本実
施例では、nビットのレジスタセレクトポインタ14が
形成される。該レジスタセレクトポインタ14は上位(
n−m)ビットを、レジスタCABP 13の下位(n
−m)ビットの値とし、下位mビットを、機械語命令の
実行においてアクセスを指定したレジスタバンク中でa
番目のレジスタを示すmビットのバンク内レジスタセレ
クトポインタ15の値とする。そして、ポインタ14の
値が措し示すアドレスのレジスタファイル11中のレジ
スタがアクセスに関与するものである。
BankPointer) 13は、現在アクセ
スしようとしているレジスタバンク12を指し示すレジ
スタバンクポインタ16を保持している。そしてバンク
内レジスタセレクトポインタ15によりa番目のレジス
タのアクセスが指定されると、レジスタCABP13が
指し示すレジスタバンク12中のa番目のレジスタがア
クセスされる。このアクセス機構を実現するために本実
施例では、nビットのレジスタセレクトポインタ14が
形成される。該レジスタセレクトポインタ14は上位(
n−m)ビットを、レジスタCABP 13の下位(n
−m)ビットの値とし、下位mビットを、機械語命令の
実行においてアクセスを指定したレジスタバンク中でa
番目のレジスタを示すmビットのバンク内レジスタセレ
クトポインタ15の値とする。そして、ポインタ14の
値が措し示すアドレスのレジスタファイル11中のレジ
スタがアクセスに関与するものである。
第2図(ト))は本実施例のレジスタバンクポインタ1
9 (19,,19□)を用いて個々のレジスタバンク
1B (181,18g、18:+)を連結することで
レジスタバンク18のリンクトリストを構成したもので
ある。レジスタファイル17中の個々のレジスタバンク
18には、レジスタバンクポインタ19 (19,,
19□)を保持するレジスタバンクポインタレジスタ2
0 (20,,20□。
9 (19,,19□)を用いて個々のレジスタバンク
1B (181,18g、18:+)を連結することで
レジスタバンク18のリンクトリストを構成したもので
ある。レジスタファイル17中の個々のレジスタバンク
18には、レジスタバンクポインタ19 (19,,
19□)を保持するレジスタバンクポインタレジスタ2
0 (20,,20□。
203)を設けである。そしてレジスタバンク18(例
えば18.)は、レジスタバンクポインタレジスタ20
(例えば20.)に、レジスタバンク18 (例えば
18□)を指示しているレジスタバンクポインタ19
(例えば19.)を保持することにより、二つのレジス
タバンク18(18,。
えば18.)は、レジスタバンクポインタレジスタ20
(例えば20.)に、レジスタバンク18 (例えば
18□)を指示しているレジスタバンクポインタ19
(例えば19.)を保持することにより、二つのレジス
タバンク18(18,。
1st)が連結されていることを示している。まり連結
されている二つのレジスタバンク18の一方(例えば1
8I)が他方のレジスタバンク(例えば1st)のレジ
スタバンクポインタ19 (例えば19.)を保持する
ことにより、二つのレジスタバンク18における順序関
係が示される。
されている二つのレジスタバンク18の一方(例えば1
8I)が他方のレジスタバンク(例えば1st)のレジ
スタバンクポインタ19 (例えば19.)を保持する
ことにより、二つのレジスタバンク18における順序関
係が示される。
第2図(C1は本実施例のレジスタバンクポインタ19
.19’、 (191,19□、19 ’、、19
’ffi )を用いて個々のレジスタバンク18 (
181,18□。
.19’、 (191,19□、19 ’、、19
’ffi )を用いて個々のレジスタバンク18 (
181,18□。
18、)を双方向に連結することでレジスタバンク18
のリンクトリストを構成したものである。
のリンクトリストを構成したものである。
レジスタファイル17中の個々のレジスタバンク1日に
は、レジスタバンクポインタ19.19’を保持する2
つのレジスタバンクポインタレジスタ20.20’ (
20,,20□、203.20’、。
は、レジスタバンクポインタ19.19’を保持する2
つのレジスタバンクポインタレジスタ20.20’ (
20,,20□、203.20’、。
20’z、20’、)を設けである。そして二つのレジ
スタバンクポインタ19.19’のうち一方19がリン
クトリスト上で先頭方向(図で右側)に隣接するレジス
タバンク18を指示するレジスタバンクポインタ19で
あり、他方19′がリンクトリスト上で後尾方向(図で
左側)に隣接するレジスタレジスタバンク18を指示す
るレジスタバンクポインタ19である。また連結されて
いる二つのレジスタバンク18における順序関係は、そ
れぞれがリンクトリスト上で先頭に近い(右寄り)か、
後尾に近い(左寄り)かによって示される。
スタバンクポインタ19.19’のうち一方19がリン
クトリスト上で先頭方向(図で右側)に隣接するレジス
タバンク18を指示するレジスタバンクポインタ19で
あり、他方19′がリンクトリスト上で後尾方向(図で
左側)に隣接するレジスタレジスタバンク18を指示す
るレジスタバンクポインタ19である。また連結されて
いる二つのレジスタバンク18における順序関係は、そ
れぞれがリンクトリスト上で先頭に近い(右寄り)か、
後尾に近い(左寄り)かによって示される。
本実施例によれば、第2図(a)のように、レジスタフ
ァイル11に付けられたアドレスに即してレジスタバン
ク12に番号を付け、それを用いてレジスタバンクポイ
ンタ16を表現しているので、現在アクセスしようとし
ているレジスタバンク12を指し示すレジスタバンクポ
インタ16とアクセスを指定したレジスタバンク12中
のレジスタを示すバンク内レジスタセレクトポインタ1
5の値によって、実際にアクセスが行なわれるレジスタ
ファイル11中のレジスタを指し示′す機構が容易に実
現できる効果がある。
ァイル11に付けられたアドレスに即してレジスタバン
ク12に番号を付け、それを用いてレジスタバンクポイ
ンタ16を表現しているので、現在アクセスしようとし
ているレジスタバンク12を指し示すレジスタバンクポ
インタ16とアクセスを指定したレジスタバンク12中
のレジスタを示すバンク内レジスタセレクトポインタ1
5の値によって、実際にアクセスが行なわれるレジスタ
ファイル11中のレジスタを指し示′す機構が容易に実
現できる効果がある。
また、第2図(bl (C1のように、このレジスタバ
ンクポインタ19を用いてレジスタバンク18のすツク
トリストを構成することで、複数のレジスタバンク18
間の順序関係を示すことが可能となり、その順序関係の
変化に伴いレジスタバンク18のリンクトリストの柔軟
な管理が実現できる効果がある。
ンクポインタ19を用いてレジスタバンク18のすツク
トリストを構成することで、複数のレジスタバンク18
間の順序関係を示すことが可能となり、その順序関係の
変化に伴いレジスタバンク18のリンクトリストの柔軟
な管理が実現できる効果がある。
第3図は、本発明の待機バンク21 (第1図の4に相
当)の管理機構を示した概念図である。
当)の管理機構を示した概念図である。
待機バンク21(21,,21□、・・・・・・21j
)のそれぞれは、リンクレジスタ24(24,,24□
。
)のそれぞれは、リンクレジスタ24(24,,24□
。
・・・・・・、24j)を待ち、そこにレジスタバンク
ポインタ22(22,,22□、・・・・・・)を保持
することによって連結されたリンクトリストを構成する
。
ポインタ22(22,,22□、・・・・・・)を保持
することによって連結されたリンクトリストを構成する
。
そして、このリンクトリストの最後尾に位置する待機バ
ンク21j中のリンクレジスタ24jには、レジスタフ
ァイル中のレジスタバンクに付けられたすべての番号を
越える値、つまり(2↑ (n −m))以上の値を設
定することで、その待機バンク21jが最後尾に位置す
ることを示す。また待機バンクリストレジスタ23は、
待機バンク21が形成するリンクトリストの先頭に位置
する待機バンク211を指し示すレジスタバンクポイン
タ22、を保持する。
ンク21j中のリンクレジスタ24jには、レジスタフ
ァイル中のレジスタバンクに付けられたすべての番号を
越える値、つまり(2↑ (n −m))以上の値を設
定することで、その待機バンク21jが最後尾に位置す
ることを示す。また待機バンクリストレジスタ23は、
待機バンク21が形成するリンクトリストの先頭に位置
する待機バンク211を指し示すレジスタバンクポイン
タ22、を保持する。
アクティベーションレコード、又はタスクコントロール
ブロックをレジスタバンクに割り付ける際は、待機バン
クリストレジスタ23が指し示す待機バンク21+をリ
ンクトリストから切り離し、それを用いて処理を実現す
る。その際待機バンクリストレジスタ23の値は、それ
まで待機バンクリストレジスタ23が指し示していた待
機バンク21、のリンクレジスタ24.が保持していた
値21□となる。従って、リンクトリストから切り離し
た待機バンク21.がリンクトリストの最後尾に位置す
るもの21jである場合は、待機バンククリストレジス
タ23にはレジスタファイル中のレジスタバンクに付け
られたすべてのバンク番号を越える値、つまり(2↑
(n−m))以上の値が設定される。よって、リンクト
リストから待機バンク21を切り離す処理において、待
機バンクリストレジスタ23の値が(2↑ (n−m)
)以上である場合は、レジスタファイルのオーバーフロ
ーが発生したことを示す。
ブロックをレジスタバンクに割り付ける際は、待機バン
クリストレジスタ23が指し示す待機バンク21+をリ
ンクトリストから切り離し、それを用いて処理を実現す
る。その際待機バンクリストレジスタ23の値は、それ
まで待機バンクリストレジスタ23が指し示していた待
機バンク21、のリンクレジスタ24.が保持していた
値21□となる。従って、リンクトリストから切り離し
た待機バンク21.がリンクトリストの最後尾に位置す
るもの21jである場合は、待機バンククリストレジス
タ23にはレジスタファイル中のレジスタバンクに付け
られたすべてのバンク番号を越える値、つまり(2↑
(n−m))以上の値が設定される。よって、リンクト
リストから待機バンク21を切り離す処理において、待
機バンクリストレジスタ23の値が(2↑ (n−m)
)以上である場合は、レジスタファイルのオーバーフロ
ーが発生したことを示す。
本実施例によれば、レジスタバンクの割り件は処理は、
待機バンクリストレジスタ23の値の更新だけで実現で
き、またレジスタファイル中に待機バンクが存在するか
否かは、待機バンクリストレジスタ23の値が(2t
(n −m) )以上であるか否かをチエツクするだ
けで実現できる効果がある。
待機バンクリストレジスタ23の値の更新だけで実現で
き、またレジスタファイル中に待機バンクが存在するか
否かは、待機バンクリストレジスタ23の値が(2t
(n −m) )以上であるか否かをチエツクするだ
けで実現できる効果がある。
第4図は、本発明の、個々のタスクの実行を制御するタ
スクコントロールブロック31とアクテイベーションレ
コー)’32 (32,,32□、・・・・・・32
、)からなるデータ構造を示した説明図である。
スクコントロールブロック31とアクテイベーションレ
コー)’32 (32,,32□、・・・・・・32
、)からなるデータ構造を示した説明図である。
タスクのプログラムの実行を制御するアクティベーショ
ンレコードλ32の集合は、それぞれのアクティベーシ
ョンレコード32が二つのレジスタ、先頭方向リンクレ
ジスタ35(35,,35□。
ンレコードλ32の集合は、それぞれのアクティベーシ
ョンレコード32が二つのレジスタ、先頭方向リンクレ
ジスタ35(35,,35□。
・・・・・・、351)と、後尾方向リンクレジスタ3
6(36,,36□、・・・・・・36りを待ち、それ
ぞれがリンクトリスト上で、先頭方向(図の下側)に隣
接するアクティベーションレコード32のレジスタバン
クポインタ37(37,,37□、・・・・・・371
)と後尾方向(図の上側)に隣接するアクティベーショ
ンレコード32のレジスタバンクポインタ37(37’
、、37’Z、・・・・・・37’i)とを保持するこ
とで、双方向のリンクトリストを形成する。そしてタス
クコントロールブロック31中の二つのレジスタARP
(Activatlon Record Front)
34、 ARE (Activation Reco
rd End) 33はそれぞれ、そのタスクのプロ
グラムの実行を制御するアクティベーションレコード3
2のリンクトリストの先頭と後尾とを指し示すレジスタ
バンクポインタ37fと37.を保持する。
6(36,,36□、・・・・・・36りを待ち、それ
ぞれがリンクトリスト上で、先頭方向(図の下側)に隣
接するアクティベーションレコード32のレジスタバン
クポインタ37(37,,37□、・・・・・・371
)と後尾方向(図の上側)に隣接するアクティベーショ
ンレコード32のレジスタバンクポインタ37(37’
、、37’Z、・・・・・・37’i)とを保持するこ
とで、双方向のリンクトリストを形成する。そしてタス
クコントロールブロック31中の二つのレジスタARP
(Activatlon Record Front)
34、 ARE (Activation Reco
rd End) 33はそれぞれ、そのタスクのプロ
グラムの実行を制御するアクティベーションレコード3
2のリンクトリストの先頭と後尾とを指し示すレジスタ
バンクポインタ37fと37.を保持する。
プロシーシャ呼び出しの際に、新たに生成されるアクテ
ィベーションレコード32(例えば32b。
ィベーションレコード32(例えば32b。
図示せず)は、リンクトリスト上においてARF34が
指し示すアクティベーションレコード32(例えば32
五)の前に挿入される。従って、新たに生成されたアク
ティベーションレコード32の後尾方向リンクレジスタ
36(例えば36i*I+図示せず)には、それまでA
RP34が指し示していたポインタ37.の値(即ち、
アクティベーションレコード32iが割り付けられてい
たレジスタバンク番号)が設定され、それまでARF3
4が指し示していたアクティベーションレコード32i
の先頭方向リンクレジスタ35Lには、新たに生成され
たアクティベーションレコード321.がυ1り付けら
れたレジスタバンクを指し示すレジスタバンクポインタ
37i、、(図示せず)の値が設定され、さらにその後
にその値がARF34にも設定される。
指し示すアクティベーションレコード32(例えば32
五)の前に挿入される。従って、新たに生成されたアク
ティベーションレコード32の後尾方向リンクレジスタ
36(例えば36i*I+図示せず)には、それまでA
RP34が指し示していたポインタ37.の値(即ち、
アクティベーションレコード32iが割り付けられてい
たレジスタバンク番号)が設定され、それまでARF3
4が指し示していたアクティベーションレコード32i
の先頭方向リンクレジスタ35Lには、新たに生成され
たアクティベーションレコード321.がυ1り付けら
れたレジスタバンクを指し示すレジスタバンクポインタ
37i、、(図示せず)の値が設定され、さらにその後
にその値がARF34にも設定される。
現在実行中のプロシージャを呼び出したプロシージャへ
の復帰処理を行なう際には、ARF34が指し示すアク
ティベーションレコード32.が解放され、ARF34
が指し示すアクティベーションレコード32、の後尾方
向リンクレジスタ36+の値(アクティベーションレコ
ード32i−、)がARF34に設定される。その際解
放されるアクティベーションレコード321がARE3
3の指し示すもの(32,)である場合は、復帰すべき
アクティベーションレコード32i−1は主記憶上に退
避されていることを示す。従って、退避されているアク
ティベーションレコード32i−+即ち32、をレジス
タファイル中に取り込む必要があり、それが主記憶上の
どこにあるかを示すアドレスが、ARE33の指し示す
アクティベーションレコード321の後尾方向リンクレ
ジスタ361に保持されている。
の復帰処理を行なう際には、ARF34が指し示すアク
ティベーションレコード32.が解放され、ARF34
が指し示すアクティベーションレコード32、の後尾方
向リンクレジスタ36+の値(アクティベーションレコ
ード32i−、)がARF34に設定される。その際解
放されるアクティベーションレコード321がARE3
3の指し示すもの(32,)である場合は、復帰すべき
アクティベーションレコード32i−1は主記憶上に退
避されていることを示す。従って、退避されているアク
ティベーションレコード32i−+即ち32、をレジス
タファイル中に取り込む必要があり、それが主記憶上の
どこにあるかを示すアドレスが、ARE33の指し示す
アクティベーションレコード321の後尾方向リンクレ
ジスタ361に保持されている。
レジスタファイルのオーバーフローが発生し、あるタス
クのプログラムの実行を制御するデータ構造を主記憶上
に退避することが要求された場合、ARE33が指し示
すアクティベーションレコード32一つ(例えば321
)が主記憶へ退避される。その退避先の主記憶上のアド
レスは、そのアクーi−イベーションレコード32.の
i& 里方向リンクレジスタ361 の値をもとに算出
される。主記憶へアクティベーションレコード32を退
避した後、ARE33に、退避されたアクティベーショ
ンレコード321 の先頭方向リンクレジスタ35゜が
保持していた値(レコード32□)が設定され、新しい
ARE33の値が指し示すアクティベーションレコード
32□の後尾方向リンクレジスタ36゜には、先に算出
した、レジスタバンクから退避したアクティベーション
レコード321の主記憶上のアドレスが設定される。ま
た、アクティベーションレコード32を主記憶へ退避し
た結果、あるタスクのプログラムの実行を制御するレジ
スタファイル中に保持されているデータ構造がタスクコ
ントロールブロック31のみになる場合がある。
クのプログラムの実行を制御するデータ構造を主記憶上
に退避することが要求された場合、ARE33が指し示
すアクティベーションレコード32一つ(例えば321
)が主記憶へ退避される。その退避先の主記憶上のアド
レスは、そのアクーi−イベーションレコード32.の
i& 里方向リンクレジスタ361 の値をもとに算出
される。主記憶へアクティベーションレコード32を退
避した後、ARE33に、退避されたアクティベーショ
ンレコード321 の先頭方向リンクレジスタ35゜が
保持していた値(レコード32□)が設定され、新しい
ARE33の値が指し示すアクティベーションレコード
32□の後尾方向リンクレジスタ36゜には、先に算出
した、レジスタバンクから退避したアクティベーション
レコード321の主記憶上のアドレスが設定される。ま
た、アクティベーションレコード32を主記憶へ退避し
た結果、あるタスクのプログラムの実行を制御するレジ
スタファイル中に保持されているデータ構造がタスクコ
ントロールブロック31のみになる場合がある。
そのような場合に備え、レジスタファイル中に保持され
ているタスクコントロールブロック31は、そのタスク
に関してレジスタファイル中に保持されているアクティ
ベーションレコード32の数を示すレジスタA RC(
Activation Record Co−unte
r ) 38を持つ。そして主記憶上に退避すること
が要求されたデータ構造によりプログラムの実行の制御
されるあるタスクが、レジスタファイル中に保持されて
いるアクティベーションレコード32を伴わない場合、
すなわち、そのタスクコントロールブロック31中のA
RC38がOである場合は、そのタスクのタスクコント
ロールブロック31が主記憶上に退避される。(なお、
タスクコントロールブロック31を主記憶上に退避する
処理の詳細は、第5図により後述する。)本実施例によ
れば、レジスタファイル上のレジスタバンクに割り付け
たタスクコントロールブロック31とアクティベーショ
ンレコード32の集合を用いて、タスクのプログラムの
実行を効率良く制御することが可能となる効果がある。
ているタスクコントロールブロック31は、そのタスク
に関してレジスタファイル中に保持されているアクティ
ベーションレコード32の数を示すレジスタA RC(
Activation Record Co−unte
r ) 38を持つ。そして主記憶上に退避すること
が要求されたデータ構造によりプログラムの実行の制御
されるあるタスクが、レジスタファイル中に保持されて
いるアクティベーションレコード32を伴わない場合、
すなわち、そのタスクコントロールブロック31中のA
RC38がOである場合は、そのタスクのタスクコント
ロールブロック31が主記憶上に退避される。(なお、
タスクコントロールブロック31を主記憶上に退避する
処理の詳細は、第5図により後述する。)本実施例によ
れば、レジスタファイル上のレジスタバンクに割り付け
たタスクコントロールブロック31とアクティベーショ
ンレコード32の集合を用いて、タスクのプログラムの
実行を効率良く制御することが可能となる効果がある。
第5図は、本発明のレジスタファイル上に保持されたタ
スクコントロールブロック41 (第2図の2に対応)
をレジスタバンクポインタ47によって連結し、リンク
トリストを形成し、それによってタスク実行待ち行列を
管理する方式を説明した概念図である。
スクコントロールブロック41 (第2図の2に対応)
をレジスタバンクポインタ47によって連結し、リンク
トリストを形成し、それによってタスク実行待ち行列を
管理する方式を説明した概念図である。
レジスタファイル上に保持された各タスクコントロール
ブロック41(41,,41□、・・・・・・41k)
は実行可能状態にあるタスクの実行を管理するものであ
り、それぞれの中に設けられたタスクリンクレジスタ4
6(46,,46□、・・・・・・46k)が他のタス
クコントロールブロック41(41□、41s。
ブロック41(41,,41□、・・・・・・41k)
は実行可能状態にあるタスクの実行を管理するものであ
り、それぞれの中に設けられたタスクリンクレジスタ4
6(46,,46□、・・・・・・46k)が他のタス
クコントロールブロック41(41□、41s。
・・・・・・)を指し示すレジスタバンクポインタ47
(47,,47□、・・・・・・)を保持することによ
り連結され、リンクトリストを形成する。タスクコント
ロールブロック41のリンクトリスト上で表現される各
要素間の順序関係は、それぞれのタスクコントロールブ
ロック41が管理するタスクの実行優先順位を示す。二
つのレジスタTQF44.TQE45は、レジスタバン
クポインタ4’L、47゜により、それぞれレジスタフ
ァイル上に保持されたタスクコントロールブロック41
のリンクトリストの先頭(第5図で最上端)と後尾(同
図で最下端)に位置するタスクコントロールブロック4
1゜と41kを指し示し、先頭に位置するタスクコント
ロールブロック41.は、現在実行中のタスクを管理す
るものである。
(47,,47□、・・・・・・)を保持することによ
り連結され、リンクトリストを形成する。タスクコント
ロールブロック41のリンクトリスト上で表現される各
要素間の順序関係は、それぞれのタスクコントロールブ
ロック41が管理するタスクの実行優先順位を示す。二
つのレジスタTQF44.TQE45は、レジスタバン
クポインタ4’L、47゜により、それぞれレジスタフ
ァイル上に保持されたタスクコントロールブロック41
のリンクトリストの先頭(第5図で最上端)と後尾(同
図で最下端)に位置するタスクコントロールブロック4
1゜と41kを指し示し、先頭に位置するタスクコント
ロールブロック41.は、現在実行中のタスクを管理す
るものである。
TQF44が指し示すタスクコントロールブロック41
.中のA RE 43 rの値は、レジスタCACR4
8に保持される。このレジスタCACR48は、第2図
で示したレジスタCABPの機能を有し、現在実行され
ているプログラムの制御を司るアクティベーションレコ
ードの効率良いアクセスに備える。
.中のA RE 43 rの値は、レジスタCACR4
8に保持される。このレジスタCACR48は、第2図
で示したレジスタCABPの機能を有し、現在実行され
ているプログラムの制御を司るアクティベーションレコ
ードの効率良いアクセスに備える。
レジスタファイルのオーバーフローが発生し、あるタス
クのプログラムの実行を制御するデータ構造を主記憶上
に退避する際、レジスタファイル上のレジスタバンクに
割り付けられているアクティベーションレコードのみな
らず、タスクコントロールブロック41をも主記憶上に
退避する場合がある。従って、複数のタスクに対する実
行の待ち行列は、本実施例では、主記憶上に割り付けら
れているタスクコントロールブロックの集合とレジスタ
ファイル上のレジスタバンクに割り付けられているタス
クコントロールブロック41の集合とによって構成され
る。主記憶上に割り付けられているタスクコントロール
ブロックの集合も、それぞれのタスクの実行優先順位に
したがったキューを形成しており、本実施例のタスクに
対する実行の待ち行列において、主記憶上に割り付けら
れているタスクブロックのキューは、レジスタファイル
上に保持されたタスクコントロールブロック41が形成
するリンクトリストの後に接続されているものとみなす
。
クのプログラムの実行を制御するデータ構造を主記憶上
に退避する際、レジスタファイル上のレジスタバンクに
割り付けられているアクティベーションレコードのみな
らず、タスクコントロールブロック41をも主記憶上に
退避する場合がある。従って、複数のタスクに対する実
行の待ち行列は、本実施例では、主記憶上に割り付けら
れているタスクコントロールブロックの集合とレジスタ
ファイル上のレジスタバンクに割り付けられているタス
クコントロールブロック41の集合とによって構成され
る。主記憶上に割り付けられているタスクコントロール
ブロックの集合も、それぞれのタスクの実行優先順位に
したがったキューを形成しており、本実施例のタスクに
対する実行の待ち行列において、主記憶上に割り付けら
れているタスクブロックのキューは、レジスタファイル
上に保持されたタスクコントロールブロック41が形成
するリンクトリストの後に接続されているものとみなす
。
そのために、本実施例では、タスクリンクレジスタ46
(46,,46□、・・・・・・、46k)を設け
る。
(46,,46□、・・・・・・、46k)を設け
る。
そして、TQE45が指し示す、レジスタファイル上に
保持されたタスクコントロールブロック41k(リンク
トリストタスクコントロールブロック41.〜41にの
最後尾に位置するタスクコントロールブロック)のタス
クリンクレジスタ46゜には、主記憶上に割り付けられ
ているタスクコントロールブロックのキューのアドレス
が保持されている。つまり、レジスタファイル上に保持
されたタスクコントロールブロック41には、主記憶上
に割り付けられているタスクコントロールブロックより
も、それが管理するタスクの実行優先順位として、より
高い優先順位で実行されるタスクのタスクコントロール
ブロック41が割り付けられる。
保持されたタスクコントロールブロック41k(リンク
トリストタスクコントロールブロック41.〜41にの
最後尾に位置するタスクコントロールブロック)のタス
クリンクレジスタ46゜には、主記憶上に割り付けられ
ているタスクコントロールブロックのキューのアドレス
が保持されている。つまり、レジスタファイル上に保持
されたタスクコントロールブロック41には、主記憶上
に割り付けられているタスクコントロールブロックより
も、それが管理するタスクの実行優先順位として、より
高い優先順位で実行されるタスクのタスクコントロール
ブロック41が割り付けられる。
レジスタファイル上に保持されたタスクコントロールブ
ロック41により実行の管理されるタスクが、実行可能
状態からサスペンド状態に変化すると、そのタスクコン
トロールブロック41は、タスク実行待ち行列を管理す
るリンクトリストより切り離され、サスペンド状態にあ
るタスクを管理するデータベースに移されると共に、そ
れまでそれが割り付けられていたレジスタバンクが解放
される。
ロック41により実行の管理されるタスクが、実行可能
状態からサスペンド状態に変化すると、そのタスクコン
トロールブロック41は、タスク実行待ち行列を管理す
るリンクトリストより切り離され、サスペンド状態にあ
るタスクを管理するデータベースに移されると共に、そ
れまでそれが割り付けられていたレジスタバンクが解放
される。
一方、サスペンド状態にあるタスクが、実行可能状態に
変化すると、そのタスクの実行を管理するタスクコント
ロールブロックがこのタスクに対する実行の待ち行列に
挿入される。その際、そのタスクの実行優先順位に応じ
て、その実行を管理するタスクコントロールブロックが
、レジスタファイル上に保持されたタスクコントロール
ブロック41となる場合と、主記憶上に割り付けられる
タスクコントロールブロックとなる場合とがある。
変化すると、そのタスクの実行を管理するタスクコント
ロールブロックがこのタスクに対する実行の待ち行列に
挿入される。その際、そのタスクの実行優先順位に応じ
て、その実行を管理するタスクコントロールブロックが
、レジスタファイル上に保持されたタスクコントロール
ブロック41となる場合と、主記憶上に割り付けられる
タスクコントロールブロックとなる場合とがある。
レジスタファイル上に保持されたタスクコントロールブ
ロック41となる場合は、そのタスクコントロールブロ
ックがレジスタファイルに取り込まれ、レジスタバンク
にそれが割り付けられた後、タスク実行待ち行列を管理
するリンクトリストに挿入される。
ロック41となる場合は、そのタスクコントロールブロ
ックがレジスタファイルに取り込まれ、レジスタバンク
にそれが割り付けられた後、タスク実行待ち行列を管理
するリンクトリストに挿入される。
またタスクスイッチによりタスクの実行優先順位が変化
した場合、その変化がレジスタファイル上に保持された
タスクコントロールブロック41が管理するタスク間に
とどまるならば、レジスタファイル上のタスク実行待ち
行列を管理するリンクトリストを操作するだけで、その
処理が実現できる。しかし、そうでない場合は、そのタ
スクの実行優先順位に応じて、その実行を管理するタス
クコントロールブロックが、レジスタファイル上に保持
されたタスクコントロールブロック41から主記憶上に
割り付けられるタスクコントロールブロックとなる場合
と、主記憶上に割り付けられたタスクコントロールブロ
ックからレジスタファイル上に保持されたタスクコント
ロールブロック41になる場合とがある。その際その処
理に伴い、17ジスタフアイル上に保持されたタスクコ
ントロールブロック41の主記憶上への退避処理、主記
憶上のタスクコントロールブロックのレジスタファイル
への取り込み処理、およびレジスタバンクの割り付は処
理、解放処理が行なわれる。
した場合、その変化がレジスタファイル上に保持された
タスクコントロールブロック41が管理するタスク間に
とどまるならば、レジスタファイル上のタスク実行待ち
行列を管理するリンクトリストを操作するだけで、その
処理が実現できる。しかし、そうでない場合は、そのタ
スクの実行優先順位に応じて、その実行を管理するタス
クコントロールブロックが、レジスタファイル上に保持
されたタスクコントロールブロック41から主記憶上に
割り付けられるタスクコントロールブロックとなる場合
と、主記憶上に割り付けられたタスクコントロールブロ
ックからレジスタファイル上に保持されたタスクコント
ロールブロック41になる場合とがある。その際その処
理に伴い、17ジスタフアイル上に保持されたタスクコ
ントロールブロック41の主記憶上への退避処理、主記
憶上のタスクコントロールブロックのレジスタファイル
への取り込み処理、およびレジスタバンクの割り付は処
理、解放処理が行なわれる。
本実施例によれば、レジスタファイル上に表現したタス
クコントロールブロック41のリンクトリストを用いて
、複数のタスク実行待ち行列を管理することが可能とな
るので、同時に複数のタスクのプログラムの実行を制御
するアクティベーションレコードをレジスタファイル中
に保持することが可能となり、それによって、従来技術
では必要であったタスクスイッチ時のレジスタファイル
中に保持されているすべてのアクティベーションレコー
ドを主記憶装置へ退避する必要がなくなり、これによっ
てタスクスイッチ処理のオーバーヘッドを大幅に低減さ
せられる効果がある。
クコントロールブロック41のリンクトリストを用いて
、複数のタスク実行待ち行列を管理することが可能とな
るので、同時に複数のタスクのプログラムの実行を制御
するアクティベーションレコードをレジスタファイル中
に保持することが可能となり、それによって、従来技術
では必要であったタスクスイッチ時のレジスタファイル
中に保持されているすべてのアクティベーションレコー
ドを主記憶装置へ退避する必要がなくなり、これによっ
てタスクスイッチ処理のオーバーヘッドを大幅に低減さ
せられる効果がある。
ししl二詳しく運べたように、本発明の情報処理装置に
よれば、複数のタスクに関し、内部に大容量レジスタフ
ァイルをもつ命令処理装置でプログラムを実行する際、
一つのレジスタファイル中に複数のタスクに属するアク
テイペーションレコードを保持できるので、従来技術で
は必要であったタスクスイッチ時における、レジスタフ
ァイルの中に保持されている全アクティベーションレコ
ードを主記憶装置に退避する必要がな(なる効果を奏す
る。
よれば、複数のタスクに関し、内部に大容量レジスタフ
ァイルをもつ命令処理装置でプログラムを実行する際、
一つのレジスタファイル中に複数のタスクに属するアク
テイペーションレコードを保持できるので、従来技術で
は必要であったタスクスイッチ時における、レジスタフ
ァイルの中に保持されている全アクティベーションレコ
ードを主記憶装置に退避する必要がな(なる効果を奏す
る。
またそれによって、タスクスイッチの処理にかかる時間
は、レジスタファイルに保持しているアクティベーショ
ンレコードの数に依存しないので、命令処理装置内のレ
ジスタファイル容量の増大にともない、タスクスイッチ
時のオーバー−\ラドを増大することなく、レジスタフ
ァイルに保持するアクティベーションレコードの数を増
やす、7゛とが可能となり、それによってレジスタファ
イルのオーバーフロー、アンダーフローの頻度を大幅に
低減でき、それに伴うレジスタファイル上に保持された
アクティベーションレコードの主記憶装置上への退避処
理、およびレジスタファイル上への回復処理の頻度を大
幅に低減できる効果を奏する。
は、レジスタファイルに保持しているアクティベーショ
ンレコードの数に依存しないので、命令処理装置内のレ
ジスタファイル容量の増大にともない、タスクスイッチ
時のオーバー−\ラドを増大することなく、レジスタフ
ァイルに保持するアクティベーションレコードの数を増
やす、7゛とが可能となり、それによってレジスタファ
イルのオーバーフロー、アンダーフローの頻度を大幅に
低減でき、それに伴うレジスタファイル上に保持された
アクティベーションレコードの主記憶装置上への退避処
理、およびレジスタファイル上への回復処理の頻度を大
幅に低減できる効果を奏する。
更に、タスクスイッチによりタスクの実行優先順位が変
化した場合でも、タスク実行を管理する待ち行列の操作
はレジスタファイル上のタスクコントロールブロックの
リンクトリストを操作するだけで、その処理が実現でき
るので、この処理にかかつていたオーバーヘッドを大幅
に低減できる効果がある。
化した場合でも、タスク実行を管理する待ち行列の操作
はレジスタファイル上のタスクコントロールブロックの
リンクトリストを操作するだけで、その処理が実現でき
るので、この処理にかかつていたオーバーヘッドを大幅
に低減できる効果がある。
第1図は本発明の情報処理装置におけるレジスタバンク
上にタスクの実行を制御するデータ構造を表現すると共
に複数のタスクの実行を管理する機構を説明するための
概念図、第2図tar (’)) (C1は本発明のレ
ジスタバンクポインタの表現形式とレジスタバンクのリ
ンクトリストの構成法とレジスタバンク中のレジスタの
アクセス方式とをそれぞれ説明する概念図、第3図は本
発明の待機バンクの管理機構を示した概念図、第4図は
本発明の個々のタスクの実行を制御するタスクコントロ
ールブロックとアクティベーションレコードとからなる
データ構造を示した説明図、第5図は本発明のタスクコ
ントロールブロックのリンクトリストによつてタスク実
行待ち行列を管理する方式を説明した概念図である。 1.11.17・・・・・・・・・レジスタファイル、
2゜31.41・・・・・・・・・タスクコントロール
ブロック、3.32・・・・・・・・・アクティベーシ
ョンレコード、4゜21・・・・・・・・・待機バンク
、5,6,8,16,19゜22.37.47・・・・
・・・・・レジスタバンクポインタ、?、12.18・
・・・・・・・・レジスタバンク、13・・・・・・・
・・CABP、14・・・・・・・・・レジスタセレク
トポインタ、15・・・・・・・・・バンク内レジスタ
セレクトポインタ、20・・・・・・・・・レジスタバ
ンクポインタレジスタ、23・・・・・・・・・待機バ
ンクリストレジスタ、24・旧・・・・・リンクレジス
タ、33.42・・・・・・・・・ARE、34゜43
・・・・・・・・・ARF、35・・・・・・・・・先
頭方向リンクレジスタ、36・・・・・・・・・後尾方
向リンクレジスタ、38・・・・・・・・・ARF、4
4・・・・・・・・・TQF、45・・・・・・・・・
TQE、46・・・・・・・・・タスクリンクレジスタ
、48・・・・・・・・・CACR。 第 図(CI) 第 図(b) で 第 図(C) 第 図 第 図
上にタスクの実行を制御するデータ構造を表現すると共
に複数のタスクの実行を管理する機構を説明するための
概念図、第2図tar (’)) (C1は本発明のレ
ジスタバンクポインタの表現形式とレジスタバンクのリ
ンクトリストの構成法とレジスタバンク中のレジスタの
アクセス方式とをそれぞれ説明する概念図、第3図は本
発明の待機バンクの管理機構を示した概念図、第4図は
本発明の個々のタスクの実行を制御するタスクコントロ
ールブロックとアクティベーションレコードとからなる
データ構造を示した説明図、第5図は本発明のタスクコ
ントロールブロックのリンクトリストによつてタスク実
行待ち行列を管理する方式を説明した概念図である。 1.11.17・・・・・・・・・レジスタファイル、
2゜31.41・・・・・・・・・タスクコントロール
ブロック、3.32・・・・・・・・・アクティベーシ
ョンレコード、4゜21・・・・・・・・・待機バンク
、5,6,8,16,19゜22.37.47・・・・
・・・・・レジスタバンクポインタ、?、12.18・
・・・・・・・・レジスタバンク、13・・・・・・・
・・CABP、14・・・・・・・・・レジスタセレク
トポインタ、15・・・・・・・・・バンク内レジスタ
セレクトポインタ、20・・・・・・・・・レジスタバ
ンクポインタレジスタ、23・・・・・・・・・待機バ
ンクリストレジスタ、24・旧・・・・・リンクレジス
タ、33.42・・・・・・・・・ARE、34゜43
・・・・・・・・・ARF、35・・・・・・・・・先
頭方向リンクレジスタ、36・・・・・・・・・後尾方
向リンクレジスタ、38・・・・・・・・・ARF、4
4・・・・・・・・・TQF、45・・・・・・・・・
TQE、46・・・・・・・・・タスクリンクレジスタ
、48・・・・・・・・・CACR。 第 図(CI) 第 図(b) で 第 図(C) 第 図 第 図
Claims (1)
- 【特許請求の範囲】 1、主記憶装置と、前記主記憶装置とは独立に命令処理
装置内でレジスタ番地空間を持つレジスタファイルと、
前記レジスタファイルを分割することにより作製され、
それぞれ複数のレジスタから成る複数のレジスタバンク
とを有する情報処理装置において、複数のタスクをそれ
ぞれ実行するため各々のタスクにそれぞれ属する複数の
アクティベーションレコード群を、各アクティベーショ
ンレコードが前記レジスタバンクの各々に対応するよう
にして、前記複数のレジスタバンク上に割り付ける手段
と、前記各々のタスクに属する各アクティベーションレ
コード群を構成するアクティベーションレコードの割り
付けられた個々のレジスタバンクを指示してその処理を
管理するためのレジスタバンクポインタとを備えたこと
を特徴とする情報処理装置。 2、前記レジスタファイルに作成された一部のレジスタ
バンク上に前記複数のタスクのそれぞれの実行を管理す
るタスクコントロールブロックを割り付ける手段と、前
記タスクコントロールブロックの割り付けられた個々の
レジスタバンクを指示して、それらの動作を制御するた
めのレジスタバンクポインタとを備えたことを特徴とす
る請求項1記載の情報処理装置。 3、前記複数のレジスタバンクにはそれぞれバンク番号
が付与され、前記レジスタバンクポインタは前記バンク
番号によつてアクティベーションレコード又はタスクコ
ントロールブロックの割り付けられたレジスタバンクを
指示するように構成した請求項1又は2記載の情報処理
装置。 4、前記複数のレジスタバンクの隣り合うもの同志を相
互に連結することにより、該複数のレジスタバンクを管
理するように構成した請求項1、2、又は3記載の情報
処理装置。5、前記複数のレジスタバンクのそれぞれに
リンクレジスタを設け、該リンクレジスタ上に、該レジ
スタバンクに隣り合う他のレジスタバンクを指示するレ
ジスタバンクポインタを保持させることによつて、これ
ら2つのレジスタバンクを相互に連結するように構成し
たことを特徴とする請求項4記載の情報処理装置。 6、前記リンクレジスタ上に保持されたレジスタバンク
ポインタによつて、該リンクレジスタの設けられたレジ
スタバンクと、該レジスタバンクポインタが指示する前
記隣り合う他のレジスタバンクとの間の処理順を表現す
るように構成したことを特徴とする請求項5記載の情報
処理装置。 7、前記複数のレジスタバンクを相互に前記レジスタバ
ンクポインタで連結することによつて、複数のレジスタ
バンクを管理するリンクトリストを構成したことを特徴
とする請求項5又は6記載の情報処理装置。 8、前記レジスタバンクのリンクトリストの先頭及び後
尾を定め、個々のレジスタバンクの先頭からの位置によ
つて、該リンクトリスト上でのレジスタバンクの処理順
を定めるように構成したことを特徴とする請求項7記載
の情報処理装置。 9、前記複数のレジスタバンクの各々に2つのリンクレ
ジスタを設け、一方のリンクレジスタが該レジスタバン
クのリンクトリスト上で先頭方向に隣り合うレジスタバ
ンクを指示するレジスタバンクポインタを保持し、他方
のリンクレジスタが該レジスタバンクのリンクトリスト
上で後尾方向に隣り合うレジスタバンクを指示するレジ
スタバンクポインタを保持することにより、リンクトリ
スト上の個々のレジスタバンクが双方向に連結され、そ
れによつてレジスタバンクの双方向リンクトリストが形
成され、前記複数のレジスタバンクを管理するように構
成したことを特徴とする請求項7又は8記載の情報処理
装置。 10、前記複数のレジスタバンクをレジスタバンクポイ
ンタで連結することにより形成したレジスタバンクのリ
ンクトリストを、一つのレジスタファイル上に複数設け
、それにより前記複数のレジスタバンクの管理を行なう
ように構成したことを特徴とする請求項8又は9記載の
情報処理装置。 11、前記複数のリンクトリストのうちの一部を、複数
のアクティベーションレコード等の情報からなる集合(
群)を割り付けた複数のレジスタバンクからなるリンク
トリストとし、その他のレジスタバンクのリンクトリス
トを、まだ該情報の集合を割りつけていない待機レジス
タバンクの集合を連結したリンクトリストとし、レジス
タバンクへ複数の情報からなる集合を割り付ける処理に
備えるように構成したことを特徴とする請求項10記載
の情報処理装置。 12、レジスタバンクへ複数のアクティベーションレコ
ード等の情報からなる集合を割りつける処理に際し、既
にすべてのレジスタファイル上のレジスタバンクに情報
が割り付けられている場合、既に情報を割り付けられて
いるレジスタバンクのうちから一つを選び、そのレジス
タバンクが保持している情報を主記憶装置に退避し、そ
のレジスタバンクを用いてレジスタバンクへ情報を割り
付ける処理を行なうように構成したことを特徴とする請
求項11記載の情報処理装置。 13、プログラムの実行を制御するスタックフレームを
アクティベーションレコードの集合により形成し、プロ
シージャ呼び出し毎に次々に生成されるアクティベーシ
ョンレコードの集合をレジスタファイル上のレジスタバ
ンクに割り付け、隣り合う2つのレジスタバンクのリン
クトリスト上における順序関係によつて、前記プロシー
ジャ呼び出しにおける呼び出した側のアクティベーショ
ンレコードと呼び出された側のアクティベーションレコ
ードとの関係を示すように構成したことを特徴とする請
求項11又は12記載の情報処理装置。 14、ブロック構造を持つプログラミング言語で記述さ
れたプログラムの実行の制御において、変数の可視性を
制御するスタティックリンクをレジスタバンクポインタ
を用いて表現することを特徴とする請求項11ないし1
3記載の情報処理装置。 15、複数のタスクの実行を制御するために、それぞれ
のタスクに属するレジスタファイル上のアクティベーシ
ョンレコード群のリンクトリストの先頭と後尾を指示す
るレジスタバンクポインタを設けると共に、それぞれの
タスクの実行の制御に必要な情報を保持するタスクコン
トロールブロックを各レジスタバンク上に対応して設け
ることによつて、複数のタスクの実行をそれぞれ制御す
る複数のデータ構造を形成したことを特徴とする請求項
11又は12記載の情報処理装置。 16、各々のタスクのタスクコントロールブロックを各
々のタスクの実行優先順位に従いレジスタバンクポイン
タによつて連結すると共に、現在実行中のタスクのタス
クコントロールブロックを先頭とするリンクトリストを
形成することによつて、複数のタスクの実行の管理を行
なうタスク実行管理待ち行列を表現するように構成した
ことを特徴とする請求項15記載の情報処理装置。 17、現在アクセスしようとしているレジスタバンクを
指示するレジスタバンクポインタを保持しているレジス
タ(CABP)を設け、更に、機械語命令の実行により
a番目のレジスタのアクセスが指定されると、前記レジ
スタ(CABP)が指し示すレジスタバンク中のa番目
のレジスタがアクセスされるように構成したことを特徴
とする請求項1ないし16記載の情報処理装置。 18、2のn乗(以下、2↑nと記す)個のレジスタか
らなるレジスタファイルをそれぞれ(2↑m)個のレジ
スタにより構成される(2↑(n−m))個のレジスタ
バンクに分割し、上位(n−m)・ビットを前記レジス
タ(CABP)の下位(n−m)ビット、下位mビット
を機械語命令の実行においてアクセスを指定したレジス
タバンク中で特定のレジスタを示すmビットの値とする
nビットのレジスタセレクトポインタを形成し、その値
によつてアクセスに関与するレジスタファイル中のレジ
スタを指示するように構成したことを特徴とする請求項
17記載の情報処理装置。
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 true JPH0214330A (ja) | 1990-01-18 |
| JP3034873B2 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)
| 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 |
| BR112014014414A2 (pt) * | 2011-12-14 | 2017-06-13 | Optis Cellular Tech Llc | método de gerenciamento de recurso de armazenamento temporário e equipamento de telecomunicação |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| 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 |
| 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 |
-
1988
- 1988-07-01 JP JP63162624A patent/JP3034873B2/ja not_active Expired - Fee Related
-
1989
- 1989-06-28 US US07/372,696 patent/US5179685A/en not_active Expired - Fee Related
- 1989-06-29 KR KR1019890009094A patent/KR920003474B1/ko not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| US5179685A (en) | 1993-01-12 |
| KR900002186A (ko) | 1990-02-28 |
| KR920003474B1 (ko) | 1992-05-01 |
| JP3034873B2 (ja) | 2000-04-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0214330A (ja) | 情報処理装置 | |
| KR940003324B1 (ko) | 입출력 제어시스템 | |
| JPS5897944A (ja) | 複数マイクロプロセツサ間デ−タ転送方式 | |
| JP2003271448A (ja) | スタック管理方法及び情報処理装置 | |
| US7434222B2 (en) | Task context switching RTOS | |
| US6757679B1 (en) | System for building electronic queue(s) utilizing self organizing units in parallel to permit concurrent queue add and remove operations | |
| US10379899B2 (en) | Systems and methods for frame presentation and modification in a networking environment | |
| JPS62105241A (ja) | デ−タプロセツサ用シ−ケンス制御装置 | |
| JP2579008B2 (ja) | 時分割マルチタスク実行装置 | |
| JP2975253B2 (ja) | 多重化ボリューム装置 | |
| JP3076303B2 (ja) | 情報処理装置 | |
| JPS603229B2 (ja) | 情報処理方式 | |
| KR100294314B1 (ko) | 데이터처리시스템및방법과그런시스템과의통신시스템 | |
| JP2574349B2 (ja) | 時分割マルチタスク実行装置 | |
| JP2002278774A (ja) | プロセッサ内の機能単位の制御時に命令語を生成する方法と装置 | |
| JP2534797B2 (ja) | キュ―イング制御方式 | |
| JP4182615B2 (ja) | タスク管理装置 | |
| JPS63280356A (ja) | 仮想ディスク装置のバッファ管理方式 | |
| JPH0344328B2 (ja) | ||
| JPH0667976A (ja) | ハードウェア制御ソフトウェアによるキャッシュメモリ制御方式 | |
| JPH06103065A (ja) | 命令プリフェッチ装置 | |
| JPS6222149A (ja) | プロセス切り換え方式 | |
| JPH08292906A (ja) | 更新バッファ管理装置 | |
| JPH04294438A (ja) | チャネルパス選択方式 | |
| JPH02118859A (ja) | 索引検索バッファ管理方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |