JPH06332721A - レジスタの使用方法 - Google Patents

レジスタの使用方法

Info

Publication number
JPH06332721A
JPH06332721A JP12111593A JP12111593A JPH06332721A JP H06332721 A JPH06332721 A JP H06332721A JP 12111593 A JP12111593 A JP 12111593A JP 12111593 A JP12111593 A JP 12111593A JP H06332721 A JPH06332721 A JP H06332721A
Authority
JP
Japan
Prior art keywords
register
task
register bank
tasks
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.)
Withdrawn
Application number
JP12111593A
Other languages
English (en)
Inventor
Katsumi Maeda
克己 前田
Hiroshi Morita
浩史 森田
Yasuhiro Takahashi
泰弘 高橋
Toru Hoshi
徹 星
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
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 Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Priority to JP12111593A priority Critical patent/JPH06332721A/ja
Publication of JPH06332721A publication Critical patent/JPH06332721A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【構成】(1)タスク毎に各タスクが使用するレジスタ
を指定でき、かつ、複数タスクで同一レジスタを共用指
定できる手段を持つ。 (2)タスクが使用するレジスタを、他のタスクが使用
している場合最近使用していないレジスタをメモリに退
避して使用する手段を持つ。 【効果】レジスタを効率的に使用でき、タスク切替えの
オーバヘッドは少ないため、システムの性能が向上す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のタスクが動作す
るマルチタスクシステムにおいて、タスクがレジスタを
共用し、かつ、タスク切替えのオーバヘッドを少なくす
る方法に関する。
【0002】
【従来の技術】複数タスクが動作するマルチタスクシス
テムにおいて、各タスク毎に使用するレジスタを分けて
使用し、タスク切替えを効率的に実現できるものとし
て、AMD社のRISC(Reduced Instruction Set Compu
ter)プロセッサであるAm29000がある。
【0003】本プロセッサは、128本のローカルレジ
スタを持っており、これらを16レジスタずつ8バンク
に区切って使用することができる。ローカルレジスタ
は、レジスタ・スタック・レジスタをベースにした間接
アドレッシングであるため、タスク切替え時の各タスク
が使用するレジスタへの切替えは、このレジスタ・スタ
ック・レジスタを変更するのみで行うことができ、レジ
スタのメモリへの退避、およびメモリからの回復は不要
であるため、タスク切替えを効率的に行うことができ
る。
【0004】
【発明が解決しようとする課題】上記従来技術のAm2
9000では、16レジスタからなるバンク8個をタス
ク毎に割り付けるため、各タスクが使用するレジスタ数
は16×n(n=1〜8)個、タスク数は最大8個に制
限される。ところが、実際のマルチタスクシステムで
は、各タスクが使用するレジスタ数は処理規模によって
異なる。また、タスク数もシステムにより異なり、8個
以上のシステムもある。
【0005】さらに、上記本プロセッサでは、タスク毎
に使用するレジスタを固定的に割り付けるため、ある時
点で一つのタスクが使用していないレジスタを他のタス
クに割り付けることができず、レジスタの使用効率が悪
いという問題が発生する。
【0006】このような問題を解決するには、任意数の
複数タスクが任意数のレジスタを共用する機構が必要で
ある。この共用を実現するには、タスク起動時、他のタ
スクがレジスタを使用していた場合、このレジスタ内容
をメモリへ退避し、タスクの処理再開時メモリからこの
レジスタ内容を回復する必要が発生する。しかし、これ
が頻繁に発生するとタスク切替え時のオーバヘッドが大
きくなり、システムの性能を低下させる。そのため、こ
のレジスタのメモリへの退避、およびメモリからの回復
は、最小限にしなければならない。
【0007】本発明の目的は、任意数の複数タスクがレ
ジスタを共用し、かつタスク切替えのオーバヘッドを少
なくする技術を提供することにある。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、次のようにした。
【0009】(1)タスク毎に各タスクが使用するレジ
スタを指定でき、かつ、複数タスクで同一レジスタを共
用指定できる手段を持つ。
【0010】(2)タスクが使用するレジスタを、他の
タスクが使用している場合最近使用していないレジスタ
をメモリに退避して使用する手段を持つ。
【0011】
【作用】上記手段により、複数タスクで同一レジスタを
共用できるため、レジスタの使用効率を上げることがで
きる。また、レジスタ内容のメモリへの退避およびメモ
リからの回復のオーバヘッドは最小限となるため、タス
ク切替えのオーバヘッドを少なくすることができる。
【0012】
【実施例】図2は、プロセッサにおける本発明の一実施
例のレジスタの使用方法を示す。本例では、レジスタ
は、レジスタnoベース200をベースにした間接アド
レッシングで指定され、かつ、レジスタをレジスタno
下限210とレジスタno上限220のペアで複数のレ
ジスタ群(以降、レジスタバンクという)に分けること
ができる。このようなレジスタの間接アドレッシングお
よびレジスタのバンク分けを行っているシステムでは、
本発明におけるタスク毎のレジスタのバンク分け、タス
ク毎のレジスタ切替えを容易に実現できる。
【0013】レジスタno下限210とレジスタno上
限220は、タスク毎のレジスタバンクがオーバフロー
した場合のレジスタの内容のメモリへの退避、レジスタ
バンクに空きができた場合のレジスタの内容のメモリか
らの回復を行うために使用される。レジスタは、レジス
タno下限210が示す若番のレジスタnoから順次レ
ジスタnoベース200を更新して使用する。レジスタ
noベース200がレジスタno上限220を越えた場
合、タスク毎のレジスタバンクがオーバフローしたと判
断し、必要なレジスタ数をレジスタno下限210が示
す若番のレジスタnoから順次メモリへ退避し、レジス
タno下限210を更新する。タスクの処理終了後タス
クが使用したレジスタnoがレジスタno下限210以
下である場合、レジスタのメモリへの退避が行われたと
判断し、これをメモリから回復する。
【0014】図3は、本発明の一つの適用システムであ
るマルチメディア通信システムである。本システムは、
データ,音声,動画を転送するシステムであり、具体的
な適用例として、テレビ電話/会議システム,マルチメ
ディアデータベース検索システムがある。本例では、I
SDN網(Integrated Services Digital Network:サー
ビス総合ディジタル網)300に接続する通信局Aと通
信局B間でテレビ電話で対話しつつ、記憶装置304に
蓄積されているマルチメディアデータを検索する。これ
を実現するには、通信装置301に、データ,音声,動
画を転送する処理が必要である。また、マルチメディア
データベース検索における音声,動画をリアルタイムに
転送するため、データ転送より処理の優先度を高くしな
ければならない。本発明は、このように複数の処理があ
り、かつ処理間に優先度が存在するシステムに適用した
場合、有効であり、効率的に処理を行うことができる。
【0015】図4は、通信装置301のソフトウェア構
造である。通信装置301は、ユーザ401(通信局の
オペレータまたはアプリケーションプログラム)からデ
ータ,音声、または動画送信要求を受けると、各データ
をISDN網300へ送信する。また、ISDN網30
0からデータ,音声、または動画を受信すると、通信装
置301は、ユーザ401へこれを通知する。
【0016】これを実現するため、通信装置301の内
部は、図4で示すとおり、リアルタイムモニタ402,
ユーザ要求解析処理タスク403,ユーザ通知処理タス
ク404,データ送受信タスク405、音声送受信タス
ク406,動画送受信タスク407,回線送受信制御4
08から構成される。リアルタイムモニタ402は、複
数タスクの切替えを行っている。
【0017】ユーザ401からのデータ,音声、または
動画送信要求は、ユーザ要求解析処理タスク403で解
析され、各処理タスク(データ送受信タスク405,音
声送受信タスク406,動画送受信タスク407のいず
れか)を起動する。各処理タスクは、各データを記憶装
置304からISDN網300へ送信する。また、IS
DN網300からデータ,音声、または動画を受信する
と、回線送受信制御408がデータ種別を解析し、各処
理タスクを起動する。各処理タスクは、各データをIS
DN網300から受信し記憶装置304へ転送する。本
例では、音声,動画送受信タスクは、データ送受信タス
ク405より処理の優先度を高くすることにより、音
声,動画のリアルタイム転送を実現する。
【0018】図5は、タスクが使用するレジスタの決定
のために使用するレジスタ管理テーブルである。これに
は、レジスタバンク定義テーブル500,レジスタバン
クグループ定義テーブル501,タスクレジスタバンク
定義テーブル502,空きレジスタバンクグループ管理
テーブル503,空きレジスタバンクno管理テーブル
504の5種類である。レジスタバンク定義テーブル5
00は、レジスタを複数のレジスタバンクに分割定義す
るテーブルであり、各レジスタバンクのレジスタnoの
下限と上限を設定する。
【0019】本例では、バンクno0,1は各々レジス
タno0〜35,レジスタno36〜71のレジスタ3
6個、バンクno2はレジスタno72〜127のレジ
スタ46個を設定している。
【0020】レジスタバンクグループ定義テーブル50
1は、レジスタバンクを複数のレジスタバンクグループ
にグループ分けするテーブルであり、各レジスタバンク
グループのレジスタバンクの上限とレジスタバンク数を
設定する。
【0021】本例では、レジスタ数36個のレジスタバ
ンクno0と1をバンクグループno0に、レジスタ数
46個のレジスタバンクno2をバンクグループno1
にしている。タスクレジスタバンクグループ定義テーブ
ル502は、各タスクが使用するバンクグループnoを
設定する。空きレジスタバンクグループ管理テーブル5
03は、各レジスタバンクグループno毎に空きのレジ
スタバンク数を管理するためのテーブルである。レジス
タバンクno管理テーブル504は、レジスタバンクn
o毎に、使用/未使用(レジスタバンクが空いている
か,使用中かを示す)、また、使用中の場合は、使用し
たタスクのタスク起動順序番号の最新番号を設定する。
レジスタバンクが使用中とは、タスクが起動してレジス
タバンクが割り付けられてから、タスクが処理を終了す
るまでの間であることを示し、具体的にはタスクが実行
中に中断したか、タスクが待ち状態であるためレジスタ
を使用していること示す。タスク起動順序番号は、タス
ク起動毎にカウントアップされる番号である。
【0022】本発明は、タスク起動時、タスクが使用す
るレジスタバンクグループを他のタスクが使用している
場合、最近使用していないレジスタをメモリに退避して
使用するが、タスク起動順序番号はこのレジスタを決め
るために使用する。即ち、タスク起動順序番号が最若番
のレジスタが最近使用されていないと判断し、このレジ
スタをメモリに退避して使用する。これにより、レジス
タの内容のメモリへの退避、およびメモリからの回復が
少なくでき、タスク切替え時のオーバヘッドを小さく
し、システムの性能が向上する。
【0023】図1は、タスクが使用するレジスタの決定
方法を示すフローチャートであり、リアルタイムモニタ
402がタスクを起動する際に実行する。
【0024】 (1)タスクが使用するレジスタに空きがある場合 タスクを起動する際、タスクレジスタバンクグループ定
義テーブル502を参照し、タスクが使用するレジスタ
バンクグループを求め(ステップ100)、さらに、空
きレジスタバンクグループ管理テーブル503のレジス
タバンクグループの空きレジスタバンク数を参照し、該
レジスタバンクグループに空きレジスタバンクがあるか
否かを判定する(ステップ101)。
【0025】空きがある場合、レジスタバンクno管理
テーブル504の使用/未使用フィールドを参照し、未
使用のレジスタバンクnoをサーチし、レジスタバンク
noを使用レジスタバンクとする(ステップ102)。
さらに、レジスタバンクno管理テーブル504のレジ
スタバンクno対応にタスク起動順序番号を設定する。
同一レジスタ数の一つまたは複数のレジスタバンクを一
つのレジスタバンクグループとし、複数のタスクで使用
するように設定すれば、レジスタバンクグループは、複
数タスクで共用できる。
【0026】 (2)タスクが使用するレジスタに空きがない場合 レジスタバンクno管理テーブル504のレジスタバン
クno対応のタスク起動順序番号を参照し、タスク起動
順序番号が最若番のレジスタバンクnoを使用レジスタ
バンクとする(ステップ103)。このように、タスク
起動順序番号が最若番のレジスタが最近使用されていな
いと判断し、このレジスタの内容をメモリに退避して使
用することにより、レジスタの内容のメモリへの退避、
およびメモリからの回復が少なくでき、タスク切替え時
のオーバヘッドは小さくなる。
【0027】タスクが使用するレジスタバンクが決まる
と、レジスタバンクno管理テーブル504のレジスタ
バンクno対応に、タスク起動順序番号を設定する。
【0028】図6は、本発明が有効となるタスク切替え
のタイムチャートおよびレジスタの決定方法の一例を示
す。本例の動作条件は、(1)データ送信タスク,ユー
ザ要求タスク,音声タスクは、同一レジスタバンクグル
ープ(レジスタバンク数は二つ)を使用する、(2)タ
スクプライオリティは、高い順に音声タスク,ユーザ要
求タスク,データ送信タスクである、(3)各タスク
は、タスクへの要求を一つずつ処理し、処理終了後は、
待ち状態にある、の三点である。
【0029】本例の動作シーケンスは、データ送信タス
クが動作中に、ユーザから要求割込みが発生しユーザ要
求タスクが動作し(この時点で、データ送信タスク,ユ
ーザ要求タスクが既にレジスタバンクを二つ使用してお
り、バンクグループに空きレジスタバンクはない)、音
声データ送信のユーザ要求は二つであったため、ユーザ
要求タスクと音声送信タスクが2回連続して動作した場
合である。
【0030】レジスタの決定は、音声送信タスクが最初
に起動された時(ステップ600)、タスク起動順序番号
が最若番のレジスタバンクno0が図1の103に従っ
て割り付けられる。本例では、音声タスクが要求を一つ
処理終了すると、再度、ユーザ要求タスクが動作する
(ステップ601)。このように、タスク切替えが同一
のタスク間で繰り返される場合、最近使用されていない
レジスタ内容をメモリへ退避し使用する本発明を用いる
と、レジスタ内容のメモリへの退避回数が少なくなり、
性能が向上する。
【0031】以上で示した実施例は、同一レジスタ数の
レジスタバンクを全て一つのレジスタバンクグループと
し、複数タスクで共用し、タスク起動時、タスクが使用
することを指定したレジスタバンクが他のタスクで使用
中であるとき、最近使用していないレジスタをメモリへ
退避し使用する例である。しかし、本方法では、リアル
タイム処理、例えば、マルチメディアデータベース検索
時、音声をリアルタイムに再生する処理を、使用レジス
タ数が異なる、複数タスクが実行する場合、各タスクが
使用するレジスタを、他のタスクが使用中なら、レジス
タの内容のメモリへの退避が発生しリアルタイム性が保
証できない。
【0032】このような場合は、関連する処理を行う複
数のタスクを一つのタスクグループにし、タスクグルー
プ毎にレジスタの内容を保存する優先度を指定し、かつ
タスクグループ毎にメモリへの退避およびメモリからの
回復を行う方が効率的である。例えば、マルチメディア
データベース検索時、音声をリアルタイムに再生する場
合、この処理を行う複数タスクを一つのタスクグループ
とし、タスクグループの、レジスタの内容を保存する優
先度を高くする。また、検索開始時、これを処理する複
数タスクが使用する全てのレジスタを確保し、検索終了
時これを解放する。レジスタの内容を保存する優先度は
高いため、処理が開始されると、他のタスクに、このレ
ジスタが割り付けられることはなく、従って、レジスタ
の内容を退避しないため、処理のリアルタイム性は保証
できる。
【0033】これを実現するため、図7に示すタスクグ
ループ管理テーブル700を使用する。また、空きレジ
スタバンクno管理テーブル504のバンクno毎のフ
ィールドにタスクグループnoを設定するフィールドを
追加する。タスクグループ管理テーブル700は、タス
クグループno毎に定義されるレジスタ内容の保存優先
度と、同じタスクグループに属する全てのタスクのタス
クIDを設定している。タスクグループの処理開始時、
まず、タスクグループ管理テーブル700の各タスクI
Dに対応するバンクグループnoをタスクレジスタバン
ク定義テーブル502を参照して求める。
【0034】次に、図1に示すフローチャートに従い、
使用するレジスタバンクnoを決める。空きレジスタバ
ンクがない場合(図1のステップ103を行っている部
分)、レジスタの内容を保存する優先度の判定を行う。
起動するタスクグループnoのレジスタ内容の保存優先
度と、空きレジスタバンクno管理テーブル504の使
用中のバンクnoに設定されたタスクグループnoのレ
ジスタ内容の保存優先度を比較し、レジスタの内容を保
存する優先度が低いバンクがあれば、このバンクを使用
する。なければステップ103を行う。決定したバンク
noはタスクグループ管理テーブル700に設定する。
タスクグループの処理終了時、タスクグループ管理テー
ブル700に設定された全てのレジスタバンクnoを未
使用にする。以上の方法により、使用するレジスタ数が
異なる、複数のタスクが処理をリアルタイムに行うこと
を可能にする。
【0035】
【発明の効果】本発明によれば、レジスタを効率的に使
用でき、かつ、タスク切替えのオーバヘッドは少ないた
め、システムの性能が向上する。
【図面の簡単な説明】
【図1】タスクが使用するレジスタの決定方法を示すフ
ローチャート。
【図2】プロセッサにおけるレジスタの使用法のブロッ
ク図。
【図3】本発明の一つの適用システムであるマルチメデ
ィア通信システムのブロック図。
【図4】通信装置のソフトウェアのブロック図。
【図5】タスクが使用するレジスタの決定のために使用
するレジスタ管理テーブルの説明図。
【図6】本発明が有効となるタスク切替えのタイムチャ
ートおよびレジスタの決定方法の一例の説明図。
【図7】タスクをグループ分けし、この単位でレジスタ
を管理するために使用するタスクグループ管理用テーブ
ルの説明図。
【符号の説明】
200…レジスタnoベース、210…レジスタno下
限、220…レジスタno上限。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 高橋 泰弘 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 星 徹 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】複数タスクが動作するマルチタスクシステ
    ムにおいて、任意数個のレジスタを一つのレジスタバン
    クとし、同一レジスタ数の一つまたは複数のレジスタバ
    ンクを一つのレジスタバンクグループとする手段、およ
    びタスク毎に各タスクが使用するレジスタバンクグルー
    プを指定する手段、タスク起動時タスク起動順序番号を
    カウントアップし、前記タスクが使用するレジスタバン
    ク毎に、前記タスクの起動順序番号を記憶する手段を持
    ち、タスク起動時に前記タスクが使用することを指定し
    たレジスタバンクグループの全レジスタバンクが他のタ
    スクで使用中である時、タスク起動順序番号が最若番の
    レジスタバンクのレジスタの内容をメモリへ退避し使用
    することを特徴とするレジスタの使用方法。
  2. 【請求項2】請求項1において、関連する処理を行う複
    数のタスクを一つのタスクグループにし、前記タスクグ
    ループ毎にレジスタの内容を保存する優先度を指定する
    手段を持ち、前記タスクグループ毎にレジスタの内容の
    メモリへの退避およびメモリからの回復を行うレジスタ
    の使用方法。
JP12111593A 1993-05-24 1993-05-24 レジスタの使用方法 Withdrawn JPH06332721A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12111593A JPH06332721A (ja) 1993-05-24 1993-05-24 レジスタの使用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12111593A JPH06332721A (ja) 1993-05-24 1993-05-24 レジスタの使用方法

Publications (1)

Publication Number Publication Date
JPH06332721A true JPH06332721A (ja) 1994-12-02

Family

ID=14803261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12111593A Withdrawn JPH06332721A (ja) 1993-05-24 1993-05-24 レジスタの使用方法

Country Status (1)

Country Link
JP (1) JPH06332721A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507034A (ja) * 2004-07-13 2008-03-06 エヌヴィディア コーポレイション 下位ポートカウントメモリーを用いたマルチポートメモリーのシミュレート

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507034A (ja) * 2004-07-13 2008-03-06 エヌヴィディア コーポレイション 下位ポートカウントメモリーを用いたマルチポートメモリーのシミュレート
US7834881B2 (en) 2004-07-13 2010-11-16 Nvidia Corporation Operand collector architecture

Similar Documents

Publication Publication Date Title
US6049817A (en) Multi-processor system
CA2200929C (en) Periodic process scheduling method
US7269179B2 (en) Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US20060206894A1 (en) Method of scheduling jobs using database management system for real-time processing
JP2741994B2 (ja) ジョブ環境動的変更機能を持つ処理装置および処理方法
KR20010080469A (ko) 작업-병렬 프로세서
US20070260777A1 (en) Queues for information processing and methods thereof
JPH06332721A (ja) レジスタの使用方法
CN111158875A (zh) 基于多模块的多任务处理方法、装置及系统
US5062046A (en) Multiple processor system having a correspondence table for transferring processing control between instruction processors
JPH06266643A (ja) サーバプログラム管理方法
US20030185227A1 (en) Secondary queue for sequential processing of related queue elements
US20040246910A1 (en) Group synchronization by subgroups
JPH03241442A (ja) ストアバッファ制御方式
JP3008521B2 (ja) 呼び出し機能実行制御方式
CN117891576A (zh) 任务调度方法、装置、电子设备及可读存储介质
JPH09259051A (ja) アラーム通知処理方式
JPH0926911A (ja) ページ情報転送処理装置
JPH0730946A (ja) 移動通信サービス制御装置
JP2000137688A (ja) 多重プロセッサシステムおよびデ―タ処理方法
KR20010058316A (ko) 세마포어를 이용한 반도체 장비의 멀티 태스킹 방법
CN117331648A (zh) 一种缓解无服务器计算冷启动问题的任务调度系统及方法
JPH1063517A (ja) リアルタイム情報処理方法およびその装置
JPH04321127A (ja) 情報処理ステーション
JPH0678022A (ja) 通信機能処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000801