JPH064314A - タスク間同期通信装置 - Google Patents
タスク間同期通信装置Info
- Publication number
- JPH064314A JPH064314A JP15961392A JP15961392A JPH064314A JP H064314 A JPH064314 A JP H064314A JP 15961392 A JP15961392 A JP 15961392A JP 15961392 A JP15961392 A JP 15961392A JP H064314 A JPH064314 A JP H064314A
- Authority
- JP
- Japan
- Prior art keywords
- task
- priority
- data
- queue buffer
- inter
- 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.)
- Pending
Links
Abstract
(57)【要約】
【目的】 キューバッファ内の情報を減少させる手段を
備えたタスク間同期通信装置を提供する。 【構成】 キューバッファ1に格納された通信データの
数をカウンタ2に格納し、このカウンタ2の値に基づ
き、キューバッファ1で送信/受信する生産者/消費者
タスク6,7のプライオリティが登録されているプライ
オリティ管理テーブル4をプライオリティ制御部3が参
照して、このプライオリティ制御部3の制御により、生
産者/消費者タスク6,7の実行タスクをディスパッチ
ャ5で切り替える。
備えたタスク間同期通信装置を提供する。 【構成】 キューバッファ1に格納された通信データの
数をカウンタ2に格納し、このカウンタ2の値に基づ
き、キューバッファ1で送信/受信する生産者/消費者
タスク6,7のプライオリティが登録されているプライ
オリティ管理テーブル4をプライオリティ制御部3が参
照して、このプライオリティ制御部3の制御により、生
産者/消費者タスク6,7の実行タスクをディスパッチ
ャ5で切り替える。
Description
【0001】
【産業上の利用分野】本発明は、ワープロ及びデータベ
ース等の情報処理装置、あるいはロボット等の制御装置
のタスク間同期通信装置に係り、特に通信情報を分割し
て送受信し、かつ部分的な高速処理を必要とするタスク
間同期通信装置に関する。
ース等の情報処理装置、あるいはロボット等の制御装置
のタスク間同期通信装置に係り、特に通信情報を分割し
て送受信し、かつ部分的な高速処理を必要とするタスク
間同期通信装置に関する。
【0002】
【従来の技術】従来のタスク間同期通信装置は、図6に
示すように、ハードディスク106のコントローラ10
5が読み出し及び書き込みコマンドを受け取ってから、
読み出し及び書き込み装置を介してアクセスすべきデー
タの転送を開始するまでの遅延時間を必要とし、CPU
103はコントローラ105の待ち時間中に実行される
データ処理及び書き込みデータを用意するタスクと、コ
ントローラ105を制御するタスク間の同期通信とで使
用されている。
示すように、ハードディスク106のコントローラ10
5が読み出し及び書き込みコマンドを受け取ってから、
読み出し及び書き込み装置を介してアクセスすべきデー
タの転送を開始するまでの遅延時間を必要とし、CPU
103はコントローラ105の待ち時間中に実行される
データ処理及び書き込みデータを用意するタスクと、コ
ントローラ105を制御するタスク間の同期通信とで使
用されている。
【0003】アドレス及びデータバス108は、CPU
103が主記憶装置101あるいはハードディスク10
6を指定するために使用され、CPU103と指定され
たターゲット間のデータ転送に用いる。
103が主記憶装置101あるいはハードディスク10
6を指定するために使用され、CPU103と指定され
たターゲット間のデータ転送に用いる。
【0004】コントローラ105は、CPU103が発
行するコマンドを装置毎に定められた電気信号に変換し
たり、逆に装置の状態情報をCPU103が理解できる
データに変換するために用いられ、ハードディスク10
6との間で転送されるデータを保持するバッファを備え
ている。
行するコマンドを装置毎に定められた電気信号に変換し
たり、逆に装置の状態情報をCPU103が理解できる
データに変換するために用いられ、ハードディスク10
6との間で転送されるデータを保持するバッファを備え
ている。
【0005】CPU103は、主記憶装置101あるい
は内部レジスタと、このバッファとの間のデータ転送
と、読み出したデータの加工処理あるいは書き込みデー
タの準備処理を行う。
は内部レジスタと、このバッファとの間のデータ転送
と、読み出したデータの加工処理あるいは書き込みデー
タの準備処理を行う。
【0006】まず、第1の手順では、CPU103が入
力データのアドレスをバッファ内にコピーし、コントロ
ーラ105にその旨を知らせ、コントローラ105はそ
の入力動作が完了するとフラグを立てる。
力データのアドレスをバッファ内にコピーし、コントロ
ーラ105にその旨を知らせ、コントローラ105はそ
の入力動作が完了するとフラグを立てる。
【0007】CPU103は、このフラグを成功するま
でテストし続け、テストに成功するとCPU103が読
み出されたデータをバッファから取り出し、読み出され
たデータの加工処理を行い、出力も同様の手順で行われ
る。
でテストし続け、テストに成功するとCPU103が読
み出されたデータをバッファから取り出し、読み出され
たデータの加工処理を行い、出力も同様の手順で行われ
る。
【0008】このように、データの加工処理とコントロ
ーラ105の制御処理を順次行うと、CPU103はコ
ントローラ105が未だ稼働中であるかどうかのフラグ
テストだけの処理に消費されてしまう。
ーラ105の制御処理を順次行うと、CPU103はコ
ントローラ105が未だ稼働中であるかどうかのフラグ
テストだけの処理に消費されてしまう。
【0009】第2の手順では、CPU103が入力デー
タのアドレスをバッファ内にコピーし、コントローラ1
05にその旨を知らせ、予め入力が終了しているデータ
の加工処理を実行する。
タのアドレスをバッファ内にコピーし、コントローラ1
05にその旨を知らせ、予め入力が終了しているデータ
の加工処理を実行する。
【0010】コントローラ105は、その入力動作が完
了するとCPU103に割り込みを発生し、CPU10
3が読み出されたデータをバッファから取り出し、コン
トローラ105に次のコマンドを発行して、割り込まれ
た処理に制御を戻す。
了するとCPU103に割り込みを発生し、CPU10
3が読み出されたデータをバッファから取り出し、コン
トローラ105に次のコマンドを発行して、割り込まれ
た処理に制御を戻す。
【0011】データの加工処理のような消費者タスクを
優先して割り込みを遅延すると、図7の(A)に示すタ
イミングで処理が実行され、入力されたデータをキュー
バッファに蓄積してもキューバッファが空になるまで、
読み出されたデータの加工処理を実行してしまい、結
局、処理時間が長くかかることになる。
優先して割り込みを遅延すると、図7の(A)に示すタ
イミングで処理が実行され、入力されたデータをキュー
バッファに蓄積してもキューバッファが空になるまで、
読み出されたデータの加工処理を実行してしまい、結
局、処理時間が長くかかることになる。
【0012】逆に、コントローラ105の制御処理のよ
うな生産者タスクを優先して割り込みに即時応答する
と、図7の(B)に示すタイミングで処理が実行され
る。
うな生産者タスクを優先して割り込みに即時応答する
と、図7の(B)に示すタイミングで処理が実行され
る。
【0013】ただし、キューバッファに格納できるデー
タ量には制限があるので、キューバッファが満杯になっ
た場合には、データのキューバッファへの書き込み動作
がキューバッファに空きが生じるまで遅延され、出力も
同様の手順で行われ同様の現象が起こる。
タ量には制限があるので、キューバッファが満杯になっ
た場合には、データのキューバッファへの書き込み動作
がキューバッファに空きが生じるまで遅延され、出力も
同様の手順で行われ同様の現象が起こる。
【0014】
【発明が解決しようとする課題】このような、従来のタ
スク間同期通信装置では、キューバッファ内の情報を減
少させる手段を持っていないため、キューバッファが満
杯になった時点で、生産者タスクと消費者タスクのタス
ク切り替えが頻繁に生じてオーバーヘッドを生じる。
スク間同期通信装置では、キューバッファ内の情報を減
少させる手段を持っていないため、キューバッファが満
杯になった時点で、生産者タスクと消費者タスクのタス
ク切り替えが頻繁に生じてオーバーヘッドを生じる。
【0015】また、生産者タスクが全てのデータを生産
し終わった段階で、初めて消費者タスクがCPU103
を独占し、かつ処理が加速するために、データが生産さ
れる途中段階を見るとデータがキューバッファ中にあ
り、加工されていない状態で停滞することになる。
し終わった段階で、初めて消費者タスクがCPU103
を独占し、かつ処理が加速するために、データが生産さ
れる途中段階を見るとデータがキューバッファ中にあ
り、加工されていない状態で停滞することになる。
【0016】さらに、消費者タスクがVRAMを使用
し、グラフィックスアクセラレータと共有している場
合、常に生産者タスクが優先されるために、消費者タス
クがVRAM及びグラフィックスアクセラレータを獲得
したまま実行権を失い、グラフィックスアクセラレータ
等の装置の待ち状態時間が増加する。
し、グラフィックスアクセラレータと共有している場
合、常に生産者タスクが優先されるために、消費者タス
クがVRAM及びグラフィックスアクセラレータを獲得
したまま実行権を失い、グラフィックスアクセラレータ
等の装置の待ち状態時間が増加する。
【0017】
【課題を解決するための手段】上述の課題を解決するた
めに、本発明のタスク間同期通信装置は、通信データを
格納するキューバッファと、このキューバッファに格納
された通信データの数を保持するカウンタと、上記通信
データの送/受信を行う各タスクの実行プライオリティ
を、カウンタ値に基づき変更するプライオリティ制御部
とを具備したことを特徴とする。
めに、本発明のタスク間同期通信装置は、通信データを
格納するキューバッファと、このキューバッファに格納
された通信データの数を保持するカウンタと、上記通信
データの送/受信を行う各タスクの実行プライオリティ
を、カウンタ値に基づき変更するプライオリティ制御部
とを具備したことを特徴とする。
【0018】また、本発明のタスク間同期通信装置は、
マルチプロセッサと、このマルチプロセッサの指令の下
に、送信データを格納する共有キューバッファと、この
キューバッファに格納された通信データの数を保持する
カウンタと、上記マルチプロセッサの各プロセッサ間の
通信データの送/受信を行う各タスクの実行プライオリ
ティを、カウンタ値に基づき変更するプライオリティ制
御部とを具備したことを特徴とする。
マルチプロセッサと、このマルチプロセッサの指令の下
に、送信データを格納する共有キューバッファと、この
キューバッファに格納された通信データの数を保持する
カウンタと、上記マルチプロセッサの各プロセッサ間の
通信データの送/受信を行う各タスクの実行プライオリ
ティを、カウンタ値に基づき変更するプライオリティ制
御部とを具備したことを特徴とする。
【0019】さらに、本発明のタスク間同期通信装置
は、上記送信タスクのプライオリティを上げる場合、送
信タスクが送信あるいは受信タスクが受信を行った時
に、上記プライオリティ制御部の各タスクの実行プライ
オリティを変更することを特徴とする。
は、上記送信タスクのプライオリティを上げる場合、送
信タスクが送信あるいは受信タスクが受信を行った時
に、上記プライオリティ制御部の各タスクの実行プライ
オリティを変更することを特徴とする。
【0020】
【実施例】以下、本発明の一実施例を図面を参照して説
明する。
明する。
【0021】図1は、本発明の一実施例によるタスク間
同期通信装置のブロック構成図である。
同期通信装置のブロック構成図である。
【0022】図2は、本発明の一実施例によるタスク間
同期通信装置が対象とする生産者タスクのフローチャー
トである。
同期通信装置が対象とする生産者タスクのフローチャー
トである。
【0023】図3は、本発明の一実施例によるタスク間
同期通信装置が対象とする消費者タスクのフローチャー
トである。
同期通信装置が対象とする消費者タスクのフローチャー
トである。
【0024】図4は、本発明の一実施例によるタスク間
同期通信装置のプライオリティ制御部のフローチャート
である。
同期通信装置のプライオリティ制御部のフローチャート
である。
【0025】図5は、本発明の一実施例によるタスク間
同期通信装置の実行状態を示すタイムチャートである。
同期通信装置の実行状態を示すタイムチャートである。
【0026】本発明の一実施例によるタスク間同期通信
装置は、図1に示すような構成で、キューバッファ1
が、例えばOSの管理の下にシステムコールのみでアク
セスされ、かつ主記憶装置中の部分領域に通信データを
複数個格納している。
装置は、図1に示すような構成で、キューバッファ1
が、例えばOSの管理の下にシステムコールのみでアク
セスされ、かつ主記憶装置中の部分領域に通信データを
複数個格納している。
【0027】カウンタ2は、例えばセマフォ手法を用い
てアクセスを制御される主記憶装置中の部分領域であ
り、キューバッファ1に格納されている通信データの個
数を保持し、キューバッファが空と満杯の時に、各々受
信を試みた消費者タスク7や送信を試みた生産者タスク
6の実行権を、ディスパッチャ5に通知することで剥奪
する。
てアクセスを制御される主記憶装置中の部分領域であ
り、キューバッファ1に格納されている通信データの個
数を保持し、キューバッファが空と満杯の時に、各々受
信を試みた消費者タスク7や送信を試みた生産者タスク
6の実行権を、ディスパッチャ5に通知することで剥奪
する。
【0028】プライオリティ制御部3は、例えばCPU
で実行されるOSプログラムの一部であり、カウンタ2
の値に基づき、プライオリティ管理テーブル4に登録さ
れた、キューバッファ1を介してデータの送受信をする
生産者タスク6及び消費者タスク7のプライオリティの
変更を行なう。
で実行されるOSプログラムの一部であり、カウンタ2
の値に基づき、プライオリティ管理テーブル4に登録さ
れた、キューバッファ1を介してデータの送受信をする
生産者タスク6及び消費者タスク7のプライオリティの
変更を行なう。
【0029】プライオリティ管理テーブル4は、例えば
主記憶装置に記憶されたハッシュテーブルであり、優先
度毎に実行可能状態のタスクを記憶している。
主記憶装置に記憶されたハッシュテーブルであり、優先
度毎に実行可能状態のタスクを記憶している。
【0030】タスク切り替えを行うディスパッチャ5
は、プライオリティ管理テーブル4を参照し、例えば優
先権スケジューリング手法に従って、生産者タスク6や
消費者タスク7などの実行タスクの切り替えを行う。
は、プライオリティ管理テーブル4を参照し、例えば優
先権スケジューリング手法に従って、生産者タスク6や
消費者タスク7などの実行タスクの切り替えを行う。
【0031】生産者タスク6は、例えば図2に示すよう
な処理を行うタスクであり、消費者タスク7に対して、
キューバッファ1を介してデータを送信する。
な処理を行うタスクであり、消費者タスク7に対して、
キューバッファ1を介してデータを送信する。
【0032】消費者タスク7は、例えば図3に示すよう
な処理を行うタスクであり、キューバッファ1を介し
て、生産者タスク6の送信したデータを受信する。
な処理を行うタスクであり、キューバッファ1を介し
て、生産者タスク6の送信したデータを受信する。
【0033】次に、本発明の一実施例によるタスク間同
期通信装置の動作について図1〜図5を参照し説明す
る。
期通信装置の動作について図1〜図5を参照し説明す
る。
【0034】まず、初期状態では優先権は生産者タスク
6が持ち、生産者タスク6が図2に示すような処理を行
い、例えばハードディスク等の装置を制御するコントロ
ーラに読み込むアドレスを通知して待ち状態に入る。
6が持ち、生産者タスク6が図2に示すような処理を行
い、例えばハードディスク等の装置を制御するコントロ
ーラに読み込むアドレスを通知して待ち状態に入る。
【0035】その後、待ち状態から復帰し、処理21で
データを読み込んで次のステップに進み、処理22で読
み込みが終了であるかどうかをチェックし、終了であれ
ば処理を終了する、データを読み出せた場合には処理2
3に進む。
データを読み込んで次のステップに進み、処理22で読
み込みが終了であるかどうかをチェックし、終了であれ
ば処理を終了する、データを読み出せた場合には処理2
3に進む。
【0036】初期状態のキューバッファ1は空であり、
処理23では実行権を奪われることなくキューバッファ
1にデータを格納し、カウンタ2に値「1」が保持され
て次のステップに進む。
処理23では実行権を奪われることなくキューバッファ
1にデータを格納し、カウンタ2に値「1」が保持され
て次のステップに進む。
【0037】処理24では、次に読み込むべきアドレス
をコントローラに通知し、コントローラからの割り込み
がくるまで待ち状態になり、ディスパッチャ5はプライ
オリティ管理テーブル4を検索し、最も優先度の高いタ
スクに実行権を与え、消費者タスク7が実行権を得て図
3に示す処理を行う。
をコントローラに通知し、コントローラからの割り込み
がくるまで待ち状態になり、ディスパッチャ5はプライ
オリティ管理テーブル4を検索し、最も優先度の高いタ
スクに実行権を与え、消費者タスク7が実行権を得て図
3に示す処理を行う。
【0038】処理31で、キューバッファ1からデータ
を取り出す。
を取り出す。
【0039】ここでは、通信データ量が非常に大きい場
合を想定し、キューバッファ1からデータを「取り出
す」のは、実際にはキューバッファ1内のデータを読み
出す権利を得ることと同等であり、取り出しが行われて
も処理32の処理が終了し、キューバッファ1内のデー
タの読み出し権利を放棄するまで、カウンタ2の値は変
化しないものとする。
合を想定し、キューバッファ1からデータを「取り出
す」のは、実際にはキューバッファ1内のデータを読み
出す権利を得ることと同等であり、取り出しが行われて
も処理32の処理が終了し、キューバッファ1内のデー
タの読み出し権利を放棄するまで、カウンタ2の値は変
化しないものとする。
【0040】先程、生産者タスクが処理23でデータを
格納したので、空ではないので実行権を奪われることな
く次のステップに進み、処理32は、例えば取りだした
画像データをVRAMに描画するなどの加工処理を行
う。
格納したので、空ではないので実行権を奪われることな
く次のステップに進み、処理32は、例えば取りだした
画像データをVRAMに描画するなどの加工処理を行
う。
【0041】この処理の途中でハードディスクからのデ
ータ読み出しが終了したことをコントローラが割り込み
によって通知し、ディスパッチャ5に制御が移る。
ータ読み出しが終了したことをコントローラが割り込み
によって通知し、ディスパッチャ5に制御が移る。
【0042】そこで、ディスパッチャ5はプライオリテ
ィ管理テーブル4を検索し、今まで実行していた消費者
タスク7よりも、コントローラの割り込みによって実行
可能状態になった生産者タスク6の方が優先度が高いの
で、実行タスクを切り替えて生産者タスク6に制御が移
る。
ィ管理テーブル4を検索し、今まで実行していた消費者
タスク7よりも、コントローラの割り込みによって実行
可能状態になった生産者タスク6の方が優先度が高いの
で、実行タスクを切り替えて生産者タスク6に制御が移
る。
【0043】上述と同様に処理が行われ、カウンタ2が
値「2」を保持し、同様に生産者タスク6は待ち状態に
移行し、消費者タスク7に制御が戻る。
値「2」を保持し、同様に生産者タスク6は待ち状態に
移行し、消費者タスク7に制御が戻る。
【0044】処理32を終えた時、カウンタ2は値
「1」を保持し、処理33で描画処理の終了判定を行
い、終了しないときは処理31に戻る。
「1」を保持し、処理33で描画処理の終了判定を行
い、終了しないときは処理31に戻る。
【0045】このように、実行タスクが遷移していく過
程において、予め、例えば 0 ≦ A ≦ B ≦ キューバッファのサイズ の関係にある定数A,Bを設定し、プライオリティ制御
部3が図4に示すように、キューバッファ1に対し送受
信されるタイミングで呼び出され、処理41でキューバ
ッファ内の通信データの数をチェックする。
程において、予め、例えば 0 ≦ A ≦ B ≦ キューバッファのサイズ の関係にある定数A,Bを設定し、プライオリティ制御
部3が図4に示すように、キューバッファ1に対し送受
信されるタイミングで呼び出され、処理41でキューバ
ッファ内の通信データの数をチェックする。
【0046】チェックした結果に基づき終了、または処
理42、あるいは処理43を行い、初期段階でキューバ
ッファ1は空の状態からカウンタ2が値「A」になるま
で徐々に通信データが蓄積されていく。
理42、あるいは処理43を行い、初期段階でキューバ
ッファ1は空の状態からカウンタ2が値「A」になるま
で徐々に通信データが蓄積されていく。
【0047】カウンタ2が値「A」になった時、生産者
タスク6に対して相対的に消費者タスク7のプライオリ
ティを下げようとするが、すでに生産者タスク6に比べ
て消費者タスク7のプライオリティが低いので何も処理
されない。
タスク6に対して相対的に消費者タスク7のプライオリ
ティを下げようとするが、すでに生産者タスク6に比べ
て消費者タスク7のプライオリティが低いので何も処理
されない。
【0048】その後、カウンタ2の値が「B」になった
時、消費者タスク7に対して総体的に、生産者タスク6
のプライオリティを下げて、消費者タスク7を優先タス
クにする。
時、消費者タスク7に対して総体的に、生産者タスク6
のプライオリティを下げて、消費者タスク7を優先タス
クにする。
【0049】また、消費者タスク7が優先タスクになる
と、コントローラからの割り込みが起こった時にも、デ
ィスパッチャ5は消費者タスク7に実行権を与え続け、
図5に示すように、連続して消費者タスク7が実行され
てカウンタ2の値は減少を続け、カウンタ2の値が
「A」になった時、生産者タスク6に対して総体的に消
費者タスク7のプライオリティを下げて、生産者タスク
6を優先タスクにする。
と、コントローラからの割り込みが起こった時にも、デ
ィスパッチャ5は消費者タスク7に実行権を与え続け、
図5に示すように、連続して消費者タスク7が実行され
てカウンタ2の値は減少を続け、カウンタ2の値が
「A」になった時、生産者タスク6に対して総体的に消
費者タスク7のプライオリティを下げて、生産者タスク
6を優先タスクにする。
【0050】以下、同様の処理を繰り返す。次に、従来
のタスク間同期通信装置を図面を参照して説明する。
のタスク間同期通信装置を図面を参照して説明する。
【0051】図6は、従来のタスク間同期通信装置にお
ける構成例である。
ける構成例である。
【0052】図7は、従来のタスク間同期通信装置にお
ける、消費者タスクが常に優先タスクである時のタイム
チャート(A)及び生産者タスクが常に優先タスクであ
る時のタイムチャート(B)である。
ける、消費者タスクが常に優先タスクである時のタイム
チャート(A)及び生産者タスクが常に優先タスクであ
る時のタイムチャート(B)である。
【0053】従来のタスク間同期通信装置は、図6に示
すように、ハードディスク106のコントローラ105
が読み出し及び書き込みコマンドを受け取ってから、読
み出し及び書き込み装置を介してアクセスすべきデータ
の転送を開始するまでの遅延時間を必要とし、CPU1
03はコントローラ105の待ち時間中に実行されるデ
ータ処理及び書き込みデータを用意するタスクと、コン
トローラ105を制御するタスク間の同期通信とで使用
されている。
すように、ハードディスク106のコントローラ105
が読み出し及び書き込みコマンドを受け取ってから、読
み出し及び書き込み装置を介してアクセスすべきデータ
の転送を開始するまでの遅延時間を必要とし、CPU1
03はコントローラ105の待ち時間中に実行されるデ
ータ処理及び書き込みデータを用意するタスクと、コン
トローラ105を制御するタスク間の同期通信とで使用
されている。
【0054】アドレス及びデータバス108は、CPU
103が主記憶装置101あるいはハードディスク10
6を指定するために使用され、CPU103と指定され
たターゲット間のデータ転送に用いる。
103が主記憶装置101あるいはハードディスク10
6を指定するために使用され、CPU103と指定され
たターゲット間のデータ転送に用いる。
【0055】コントローラ105は、CPU103が発
行するコマンドを装置毎に定められた電気信号に変換し
たり、逆に装置の状態情報をCPU103が理解できる
データに変換するために用いられ、ハードディスク10
6との間で転送されるデータを保持するバッファを備え
ている。
行するコマンドを装置毎に定められた電気信号に変換し
たり、逆に装置の状態情報をCPU103が理解できる
データに変換するために用いられ、ハードディスク10
6との間で転送されるデータを保持するバッファを備え
ている。
【0056】CPU103は、主記憶装置101あるい
は内部レジスタと、このバッファとの間のデータ転送
と、読み出したデータの加工処理あるいは書き込みデー
タの準備処理を行う。
は内部レジスタと、このバッファとの間のデータ転送
と、読み出したデータの加工処理あるいは書き込みデー
タの準備処理を行う。
【0057】まず、第1の手順では、CPU103が入
力データのアドレスをバッファ内にコピーし、コントロ
ーラ105にその旨を知らせ、コントローラ105はそ
の入力動作が完了するとフラグを立てる。
力データのアドレスをバッファ内にコピーし、コントロ
ーラ105にその旨を知らせ、コントローラ105はそ
の入力動作が完了するとフラグを立てる。
【0058】CPU103は、このフラグを成功するま
でテストし続け、テストに成功するとCPU103が読
み出されたデータをバッファから取り出し、読み出され
たデータの加工処理を行い、出力も同様の手順で行われ
る。
でテストし続け、テストに成功するとCPU103が読
み出されたデータをバッファから取り出し、読み出され
たデータの加工処理を行い、出力も同様の手順で行われ
る。
【0059】このように、データの加工処理とコントロ
ーラ105の制御処理を順次行うと、CPU103はコ
ントローラ105が未だ稼働中であるかどうかのフラグ
テストだけの処理に消費されてしまう。
ーラ105の制御処理を順次行うと、CPU103はコ
ントローラ105が未だ稼働中であるかどうかのフラグ
テストだけの処理に消費されてしまう。
【0060】第2の手順では、CPU103が入力デー
タのアドレスをバッファ内にコピーし、コントローラ1
05にその旨を知らせ、予め入力が終了しているデータ
の加工処理を実行する。
タのアドレスをバッファ内にコピーし、コントローラ1
05にその旨を知らせ、予め入力が終了しているデータ
の加工処理を実行する。
【0061】コントローラ105は、その入力動作が完
了するとCPU103に割り込みを発生し、CPU10
3が読み出されたデータをバッファから取り出し、コン
トローラ105に次のコマンドを発行して、割り込まれ
た処理に制御を戻す。
了するとCPU103に割り込みを発生し、CPU10
3が読み出されたデータをバッファから取り出し、コン
トローラ105に次のコマンドを発行して、割り込まれ
た処理に制御を戻す。
【0062】データの加工処理のような消費者タスクを
優先し割り込みを遅延すると、図7の(A)に示すタイ
ミングで処理が実行され、入力されたデータをキューバ
ッファに蓄積してもキューバッファが空になるまで、読
み出されたデータの加工処理を実行してしまい、結局、
処理時間が長くかかることになる。
優先し割り込みを遅延すると、図7の(A)に示すタイ
ミングで処理が実行され、入力されたデータをキューバ
ッファに蓄積してもキューバッファが空になるまで、読
み出されたデータの加工処理を実行してしまい、結局、
処理時間が長くかかることになる。
【0063】逆に、コントローラ105の制御処理のよ
うな生産者タスクを優先し割り込みに即時応答すると、
図7の(B)に示すタイミングで処理が実行される。
うな生産者タスクを優先し割り込みに即時応答すると、
図7の(B)に示すタイミングで処理が実行される。
【0064】ただし、キューバッファに格納できるデー
タ量には制限があるので、キューバッファが満杯になっ
た場合には、データのキューバッファへの書き込み動作
がキューバッファに空きが生じるまで遅延され、出力も
同様の手順で行われ同様の現象が起こる。
タ量には制限があるので、キューバッファが満杯になっ
た場合には、データのキューバッファへの書き込み動作
がキューバッファに空きが生じるまで遅延され、出力も
同様の手順で行われ同様の現象が起こる。
【0065】
【発明の効果】以上説明したように、本発明のタスク間
同期通信装置によれば、キューバッファに格納されてい
る通信データの数量に基づき、通信タスクのプライオリ
ティをプライオリティ制御部で制御することで、通信デ
ータの処理を高速化する効果がある。
同期通信装置によれば、キューバッファに格納されてい
る通信データの数量に基づき、通信タスクのプライオリ
ティをプライオリティ制御部で制御することで、通信デ
ータの処理を高速化する効果がある。
【0066】また、キューバッファが満杯時のタスク切
り替えがなくなるので、タスク切り替えの回数が減少
し、システム全体の処理を高速化する効果がある。
り替えがなくなるので、タスク切り替えの回数が減少
し、システム全体の処理を高速化する効果がある。
【0067】さらに、各タスクがVRAMを描画アクセ
ラレータと共有している場合、装置を占有したRUN状
態が減少するため、装置の有効活用を図る効果がある。
ラレータと共有している場合、装置を占有したRUN状
態が減少するため、装置の有効活用を図る効果がある。
【図1】本発明の一実施例によるタスク間同期通信装置
のブロック構成図である。
のブロック構成図である。
【図2】本発明の一実施例によるタスク間同期通信装置
が対象とする生産者タスクのフローチャートである。
が対象とする生産者タスクのフローチャートである。
【図3】本発明の一実施例によるタスク間同期通信装置
が対象とする消費者タスクのフローチャートである。
が対象とする消費者タスクのフローチャートである。
【図4】本発明の一実施例によるタスク間同期通信装置
のプライオリティ制御部のフローチャートである。
のプライオリティ制御部のフローチャートである。
【図5】本発明の一実施例によるタスク間同期通信装置
の実行状態を示すタイムチャートである。
の実行状態を示すタイムチャートである。
【図6】従来のタスク間同期通信装置における構成例で
ある。
ある。
【図7】従来のタスク間同期通信装置における、消費者
タスクが常に優先タスクである時のタイムチャート
(A)及び生産者タスクが常に優先タスクである時のタ
イムチャート(B)である。
タスクが常に優先タスクである時のタイムチャート
(A)及び生産者タスクが常に優先タスクである時のタ
イムチャート(B)である。
1 キューバッファ 2 カウンタ 3 プライオリティ制御部 4 プライオリティ制御部(プライオリティ管理テーブ
ル) 5 プライオリティ制御部(ディスパッチャ) 6 キューバッファ(生産者タスク) 7 キューバッファ(消費者タスク)
ル) 5 プライオリティ制御部(ディスパッチャ) 6 キューバッファ(生産者タスク) 7 キューバッファ(消費者タスク)
Claims (4)
- 【請求項1】 通信データを格納するキューバッファ
と、このキューバッファに格納された通信データの数を
保持するカウンタと、上記通信データの送/受信を行う
各タスクの実行プライオリティを、カウンタ値に基づき
変更するプライオリティ制御部とを具備したことを特徴
とするタスク間同期通信装置。 - 【請求項2】 マルチプロセッサと、このマルチプロセ
ッサの指令の下に、送信データを格納する共有キューバ
ッファと、このキューバッファに格納された通信データ
の数を保持するカウンタと、上記マルチプロセッサの各
プロセッサ間の通信データの送/受信を行う各タスクの
実行プライオリティを、カウンタ値に基づき変更するプ
ライオリティ制御部とを具備したことを特徴とするタス
ク間同期通信装置。 - 【請求項3】 上記送信タスクのプライオリティを上げ
る場合は、送信タスクが送信あるいは受信タスクが受信
を行った時に、上記プライオリティ制御部の各タスクの
実行プライオリティを変更することを特徴とする請求項
1記載のタスク間同期通信装置。 - 【請求項4】 上記送信タスクのプライオリティを上げ
る場合は、送信タスクが送信あるいは受信タスクが受信
を行った時に、上記プライオリティ制御部の各タスクの
実行プライオリティを変更することを特徴とする請求項
2記載のタスク間同期通信装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15961392A JPH064314A (ja) | 1992-06-18 | 1992-06-18 | タスク間同期通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15961392A JPH064314A (ja) | 1992-06-18 | 1992-06-18 | タスク間同期通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH064314A true JPH064314A (ja) | 1994-01-14 |
Family
ID=15697543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15961392A Pending JPH064314A (ja) | 1992-06-18 | 1992-06-18 | タスク間同期通信装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH064314A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11312093A (ja) * | 1998-04-28 | 1999-11-09 | Hitachi Ltd | 分散処理システム |
JP2005509943A (ja) * | 2001-11-13 | 2005-04-14 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | セマフォを使用する効率的なfifo通信 |
JP2008009970A (ja) * | 2006-05-29 | 2008-01-17 | Matsushita Electric Ind Co Ltd | 情報処理装置、情報処理方法及び情報処理プログラム |
GB2508683A (en) * | 2013-03-23 | 2014-06-11 | Throughputer Inc | Inter-task communication in a multi-stage manycore processor |
US10061615B2 (en) | 2012-06-08 | 2018-08-28 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10133599B1 (en) | 2011-11-04 | 2018-11-20 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10318353B2 (en) | 2011-07-15 | 2019-06-11 | Mark Henrik Sandstrom | Concurrent program execution optimization |
-
1992
- 1992-06-18 JP JP15961392A patent/JPH064314A/ja active Pending
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11312093A (ja) * | 1998-04-28 | 1999-11-09 | Hitachi Ltd | 分散処理システム |
JP2005509943A (ja) * | 2001-11-13 | 2005-04-14 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | セマフォを使用する効率的なfifo通信 |
JP2008009970A (ja) * | 2006-05-29 | 2008-01-17 | Matsushita Electric Ind Co Ltd | 情報処理装置、情報処理方法及び情報処理プログラム |
US10318353B2 (en) | 2011-07-15 | 2019-06-11 | Mark Henrik Sandstrom | Concurrent program execution optimization |
US10514953B2 (en) | 2011-07-15 | 2019-12-24 | Throughputer, Inc. | Systems and methods for managing resource allocation and concurrent program execution on an array of processor cores |
US10133599B1 (en) | 2011-11-04 | 2018-11-20 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10963306B2 (en) | 2011-11-04 | 2021-03-30 | Throughputer, Inc. | Managing resource sharing in a multi-core data processing fabric |
US10133600B2 (en) | 2011-11-04 | 2018-11-20 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10620998B2 (en) | 2011-11-04 | 2020-04-14 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US10310901B2 (en) | 2011-11-04 | 2019-06-04 | Mark Henrik Sandstrom | System and method for input data load adaptive parallel processing |
US10310902B2 (en) | 2011-11-04 | 2019-06-04 | Mark Henrik Sandstrom | System and method for input data load adaptive parallel processing |
US20210303354A1 (en) | 2011-11-04 | 2021-09-30 | Throughputer, Inc. | Managing resource sharing in a multi-core data processing fabric |
US10430242B2 (en) | 2011-11-04 | 2019-10-01 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US10437644B2 (en) | 2011-11-04 | 2019-10-08 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US10789099B1 (en) | 2011-11-04 | 2020-09-29 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US11150948B1 (en) | 2011-11-04 | 2021-10-19 | Throughputer, Inc. | Managing programmable logic-based processing unit allocation on a parallel data processing platform |
US11928508B2 (en) | 2011-11-04 | 2024-03-12 | Throughputer, Inc. | Responding to application demand in a system that uses programmable logic components |
USRE47945E1 (en) | 2012-06-08 | 2020-04-14 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
USRE47677E1 (en) | 2012-06-08 | 2019-10-29 | Throughputer, Inc. | Prioritizing instances of programs for execution based on input data availability |
US10061615B2 (en) | 2012-06-08 | 2018-08-28 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10942778B2 (en) | 2012-11-23 | 2021-03-09 | Throughputer, Inc. | Concurrent program execution optimization |
GB2508683A (en) * | 2013-03-23 | 2014-06-11 | Throughputer Inc | Inter-task communication in a multi-stage manycore processor |
GB2508683B (en) * | 2013-03-23 | 2014-11-12 | Throughputer Inc | Program execution optimization for multi-stage manycore processors |
US8782665B1 (en) | 2013-03-23 | 2014-07-15 | Throughputer, Inc. | Program execution optimization for multi-stage manycore processors |
US11188388B2 (en) | 2013-08-23 | 2021-11-30 | Throughputer, Inc. | Concurrent program execution optimization |
US11347556B2 (en) | 2013-08-23 | 2022-05-31 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11385934B2 (en) | 2013-08-23 | 2022-07-12 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11500682B1 (en) | 2013-08-23 | 2022-11-15 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11687374B2 (en) | 2013-08-23 | 2023-06-27 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11816505B2 (en) | 2013-08-23 | 2023-11-14 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11915055B2 (en) | 2013-08-23 | 2024-02-27 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11036556B1 (en) | 2013-08-23 | 2021-06-15 | Throughputer, Inc. | Concurrent program execution optimization |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6725457B1 (en) | Semaphore enhancement to improve system performance | |
US8743131B2 (en) | Course grain command buffer | |
US7590990B2 (en) | Computer system | |
US20030177288A1 (en) | Multiprocessor system | |
KR100708096B1 (ko) | 버스 시스템 및 그 실행 순서 조정방법 | |
US11038783B2 (en) | Method and apparatus for managing network connection, and storage medium | |
WO2006123547A1 (ja) | 情報処理装置、システム、方法およびプロセッサ | |
JPH064314A (ja) | タスク間同期通信装置 | |
US9015719B2 (en) | Scheduling of tasks to be performed by a non-coherent device | |
JPH09218859A (ja) | マルチプロセッサ制御システム | |
JPH06282515A (ja) | データ処理装置 | |
JPH04120652A (ja) | 並列処理装置 | |
JPH1185673A (ja) | 共有バスの制御方法とその装置 | |
JPH03241442A (ja) | ストアバッファ制御方式 | |
JPH01305461A (ja) | バス使用権制御方式 | |
EP0341670A2 (en) | Processing time allocation system and method | |
JP3317150B2 (ja) | 情報処理装置 | |
US10025750B2 (en) | Transmission device, controller, and system comprising transmission device and controller | |
JPS6145348A (ja) | バス優先権制御方式 | |
JPH0773136A (ja) | コンピュータシステムの動作方法 | |
JPH02222058A (ja) | マルチプロセッサシステム | |
JPH05134980A (ja) | バスシステム | |
JPS6143369A (ja) | マルチプロセツサシステム | |
JPH02143364A (ja) | 処理の優先制御方法およびプロセッサシステム | |
JPH03116335A (ja) | 非特権cpuから特権cpuヘの乗り移り方式 |