説明

入出力制御装置

【課題】複数タスクから構成されるソフトウェアプログラムを複雑化することなく、かつ主記憶装置に対するアクセス要求を調停するハードウェアを複雑化することなくデータの一貫性を保証することができる入出力制御装置を得る。
【解決手段】タスク情報管理部41は、各タスクと、データ入出力領域31への排他アクセス対象となる周辺装置7との関係を各タスクの実行順に示す入出力制御テーブル42を用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置7を求める。排他アクセス信号出力部45は、タスク情報管理部41で求められた排他アクセス対象となる周辺装置7を示す排他アクセス信号を出力する。周辺装置インタフェース6は排他アクセス信号に基づいて、排他アクセス対象の周辺装置からの入出力を停止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多種多様な周辺装置が複数接続され、データ入出力と演算を伴う制御処理を繰返し、かつ並列実行する入出力制御装置に関するものである。
【背景技術】
【0002】
入出力制御装置は、モータ駆動装置やセンサ装置などの多種多様な周辺装置が複数接続される。また、周辺装置の動作を制御するために、周辺装置の状態を取得するデータ入力処理、取得されたデータを基に制御用データを生成するデータ演算処理、制御用データを周辺装置に設定するデータ出力処理などを切り替えながら次々と実行する。一般的に、これらの処理は、入出力の対象となる周辺装置の種類や演算処理の内容に応じて複数の有限個からなるソフトウェアプログラム実行単位(以下、タスクと記す)に分割される。即ち、入出力制御装置における制御処理は、複数のタスクを切り替えながら特定の順序で次々と繰返し実行することによって実現される。
【0003】
更に、制御処理の高速化を目的として、複数基のプロセッサを用いてタスクを並列実行できるように入出力制御装置は構成される。例えば、あるタスクの実行中に、次実行タスクの演算処理に必要なデータの入力処理を並列実行する。あるいは、前実行タスクの演算処理によって生成された制御用データの出力処理を並列実行する。入出力処理を並列実行することによって、タスク処理時間のうち入出力処理にかかる時間を削減できる。特に、主記憶装置とプロセッサとの間の入出力処理は、周辺装置とプロセッサとの間の入出力処理より高速である。このため、演算処理と並列に主記憶装置と周辺装置との間で入出力処理を実行し、演算処理に必要なデータの入力と制御用データの出力を主記憶装置に対して実行することによって、複数タスクの繰返し実行にかかる処理時間を短縮化できる。
【0004】
一方、演算処理と入出力処理を並列実行する場合、データの一貫性が保証されるように制御する必要がある。ここで、データの一貫性制御とは、主記憶装置に格納されたデータを用いた演算処理の実行中に、主記憶装置の同一データに対する入出力処理が実行されないように排他制御することを意味する。排他制御を実現する従来技術として、例えば特許文献1ではマルチプロセッサシステムにおけるロックフラグを用いた排他制御手段が開示されている。また、別の手法として、例えば、特許文献2では複数のメモリアクセス要求の調停をアドレス値の比較、即ちアドレス一致検出によって排他制御を行う装置の構成が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−185348号公報
【特許文献2】特許第3990569号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1で開示されているロックフラグを用いた排他制御手段の場合、ソフトウェアとして実装されるプログラムによってロック取得要求とロック解放要求を行う命令(以下、ロックフラグ操作命令と記す)の実行が指示される。その際、並列実行中の2つの処理が他方の処理によって取得されたロックを互いに要求し、双方の処理が停止状態に陥るデッドロックを避けるようにプログラムを構成する必要がある。従って、複数タスクが次々と繰返し実行されるようにプログラムが構成される入出力制御装置では、デッドロックを避けつつ、ロックフラグ操作命令を用いて排他制御が行われるようにプログラムが構成される必要がある。このため、ソフトウェアプログラムが複雑化するという問題があった。
【0007】
また、特許文献2で開示されているアドレス一致検出による排他制御手段の場合、複数のアクセス要求元からのアクセス要求が主記憶装置に割り当てられたアドレス空間内の同一アドレスに対するものか否かを判定する手段が必要となる。一般的に、このようなアドレス一致検出は、ハードウェアとして実装されるアドレス一致検出回路によって行われる。しかし、アドレス一致検出回路は、主記憶装置に対するアクセス要求を調停する手段を備えた一般的な主記憶制御装置のハードウェア構成には含まれないため、ハードウェアが複雑化するという問題があった。
【0008】
本発明は、以上の点を鑑みて実施されたものであり、複数タスクから構成されるソフトウェアプログラムを複雑化することなく、かつ主記憶装置に対するアクセス要求を調停するハードウェアを複雑化することなくデータの一貫性を保証することができる入出力制御装置の提供を目的としている。
【課題を解決するための手段】
【0009】
この発明に係る入出力制御装置は、複数のタスクを順次切り替えながら繰返し実行し、かつ外部接続された周辺装置との間でデータ入出力処理を実行する入出力制御装置において、タスクを実行するタスク実行装置と、周辺装置との間で入出力するデータを格納するデータ入出力領域を含み、タスクが演算処理を行う際のデータを記録する主記憶装置と、各タスクと、データ入出力領域への排他アクセス対象となる周辺装置との関係を各タスクの実行順に示す入出力制御テーブルを有し、入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求めるタスク情報管理部と、タスク情報管理部で求められた排他アクセス対象となる周辺装置からの入出力を停止する周辺装置インタフェースとを備えたものである。
【発明の効果】
【0010】
この発明の入出力制御装置は、各タスクと、データ入出力領域への排他アクセス対象となる周辺装置との関係を各タスクの実行順に示す入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求め、その周辺装置からの入出力を停止するようにしたので、タスクを構成するソフトウェアプログラムを複雑化させることなく、また、主記憶装置に対するアクセス要求を調停するハードウェアを複雑化させることもなく、データの一貫性を保証することができる。
【図面の簡単な説明】
【0011】
【図1】この発明の実施の形態1による入出力制御装置を示す構成図である。
【図2】この発明の実施の形態1による入出力制御装置のデータ入出力領域のメモリマップを示す説明図である。
【図3】この発明の実施の形態1による入出力制御装置の入出力制御テーブルを示す説明図である。
【図4】この発明の実施の形態1による入出力制御装置の動作を示すシーケンス図である。
【図5】この発明の実施の形態1による入出力制御装置のタスク情報管理部における入出力制御テーブルの検索方法を示す説明図である。
【図6】この発明の実施の形態1による入出力制御装置の周辺装置インタフェースの制御フローを示すフローチャートである。
【図7】この発明の実施の形態2による入出力制御装置を示す構成図である。
【図8】この発明の実施の形態3による入出力制御装置を示す構成図である。
【図9】この発明の実施の形態3による入出力制御装置の排他アクセス信号制御レジスタと論理和回路を示す構成図である。
【発明を実施するための形態】
【0012】
実施の形態1.
図1は、本発明の実施の形態1における入出力制御装置の基本構成を示す図である。図1に示す入出力制御装置1は、タスク実行装置2、主記憶装置3、入出力処理制御部4、接続バス5、周辺装置インタフェース(I/F)6を備える。入出力処理制御部4は、入出力制御テーブル42、タスクIDレジスタ43、排他アクセス信号制御レジスタ44を備えるタスク情報管理部41と、排他アクセス信号出力部45とを含む。更に、入出力制御装置1に接続される複数の周辺装置7は、周辺装置インタフェース6を介して接続バス5に接続される。
【0013】
タスク実行装置2は、入出力制御装置1における制御処理のうちデータ演算処理を行うタスクを実行する。一般的に、タスク実行装置2として、汎用プロセッサ、マイクロコントローラ(マイコン)、ASIC(Application Specific Integrated Circuit)などが用いられる。入出力制御装置1の制御処理が複数個のタスクから構成される場合、タスク実行装置2はタスクを切り替えながら特定の順序で次々と実行していく。タスク切替は、タスク実行装置2によってそれまで実行されていたタスクの処理が完了し、次に実行されるべきタスクの実行を開始するための処理である。一般的に、タスク切替は、基本ソフトウェア(OS:Operating System)によって提供される機能の1つであるタスクスケジューラによって実行される。あるいは、OSによって提供される別の機能の1つであるタスク実行同期用のセマフォを用いた手段もある。あるいは、一定時間経過する毎に割込み信号をタスク実行装置2に対して出力するハードウェアを用いて、この割込み信号を契機にタスク切替を行う機能が実行されるようにタスク実行装置2を構成する手段もある。本発明における入出力制御装置では、複数個のタスクが特定の順序で次々と繰返し実行される限り、どのようなタスク切替手段であっても構わない。
【0014】
主記憶装置3は、タスク実行装置2で実行されるタスクが演算処理を行う際に利用する演算前・演算途中・演算後の各データが記憶される。また、主記憶装置3には、周辺装置インタフェース6を介して複数接続される各々の周辺装置7に対して、主記憶装置3の個別のアドレス空間が関連付けられるようにデータ入出力領域31が構成される。図2は、データ入出力領域31の構成例を示す図である。この図2は、例として5基の周辺装置7と関連付けられるデータ入出力領域31について示しており、他のデータ入出力領域31の図示は省略している。各々のデータ入出力領域31は、非連続領域として構成されていても連続領域として構成されていてもよい。また、各々のデータ入出力領域31の領域サイズが異なっていてもよい。例えば、図2に図示したデータ入出力領域31の構成例では、領域(1)(2)は異なる領域サイズの非連続領域として、領域(3)(4)(5)は等しい領域サイズの連続領域としてそれぞれ構成される。
【0015】
入出力処理制御部4のタスク情報管理部41に含まれるタスクIDレジスタ43は、タスク実行装置2で実行中のタスクを一意に識別するためのタスクID値を記憶するためのレジスタである。また、排他アクセス信号制御レジスタ44は、排他アクセス信号出力部45によって出力される排他アクセス信号の出力オン・オフを制御するビット値を記憶するためのレジスタである。
【0016】
入出力制御テーブル42は、タスクIDレジスタ43と排他アクセス信号制御レジスタ44に設定される値の組が保持される。図3は、入出力制御テーブル42の構成例を示す図である。図3に示した入出力制御テーブル42は、N基の周辺装置7が入出力制御装置1に接続され、M個のタスクがタスク実行装置2によって次々と繰返し実行される場合の構成が示されている(N、Mは1以上の整数値)。図3に示されているように、入出力制御テーブル42には、M個のタスクそれぞれに対応するタスクIDレジスタ43と排他アクセス信号制御レジスタ44の両レジスタに設定される値の組が保持される。また、この設定値の組は、タスクの実行順序に対応して保持される。即ち、タスクIDがIDtask1であるタスクの次に実行されるタスクは、タスクIDがIDtask2であるタスクとなる。
【0017】
タスクIDレジスタ43と排他アクセス信号制御レジスタ44の設定値の組を入出力制御テーブル42に保持する手段として、例えば、図3に図示したタスクIDレジスタ設定値(IDtask1,IDtask2,・・・,IDtaskM)と、各タスクIDと組となる排他アクセス信号制御レジスタ設定値が、入出力制御装置1の起動時に入出力制御テーブル42に設定されるようにソフトウェアプログラムが構成されていてもよい。あるいは、図3に図示したタスクIDレジスタ設定値(IDtask1,IDtask2,・・・,IDtaskM)と、各タスクIDと組となる排他アクセス信号制御レジスタ設定値がワイヤードロジックによってハードウェア化されていてもよい。
【0018】
排他アクセス信号制御レジスタ44の各ビット値は、周辺装置インタフェース6を介して外部接続される周辺装置7と1対1に関連付けされる。具体的には、1基目の周辺装置7は排他アクセス信号制御レジスタのビット0(最下位ビット)を関連付けされ、2基目の周辺装置7と排他アクセス信号制御レジスタのビット1を関連付けされる、といった要領で全ての周辺装置7は排他アクセス信号制御レジスタ44の各ビットと関連付けされる。その際、ビット値が1であれば排他制御が行われる周辺装置7として、ビット値が0であれば演算処理と並列に入出力処理を実行できる周辺装置7として、排他アクセス信号出力部45から認識される。
【0019】
排他アクセス信号出力部45は、排他アクセス信号制御レジスタ44の各ビット値と対応して、ビット値が1となっている周辺装置7によるデータ入出力処理を停止させるための排他アクセス信号を周辺装置インタフェース6に対して出力する。
【0020】
周辺装置インタフェース6は、入出力制御装置1の接続バス5と周辺装置7との間に設置され、主記憶装置3と周辺装置7との間で実行されるデータ入出力処理を中継する。また、排他アクセス信号出力部45から出力される排他アクセス信号を受信し、排他アクセス信号の受信中は周辺装置7によるデータ入出力処理を停止させる機能を持つ。
【0021】
次に、実施の形態1における入出力制御装置1の動作を図4を基に説明する。図4は、入出力制御装置1の動作を示すシーケンス図である。
タスク実行装置2は、タスク切替発生時にタスク情報管理部41に対してタスク切替信号を出力する。
タスク情報管理部41は、タスク実行装置2からタスク切替信号を受信すると、タスクIDレジスタ43と排他アクセス信号制御レジスタ44の値を更新する。これらのレジスタを更新する際に必要となるレジスタ値をタスク情報管理部41が取得する方法を図5を基に説明する。
【0022】
図5は、図3で示した入出力制御テーブル42の例を用いて、タスク切替信号受信時にタスクIDレジスタ43と排他アクセス信号制御レジスタ44に設定すべき値を特定する手段が示されている。タスク情報管理部41は、タスク切替信号受信時にタスクIDレジスタ43に保持されている値、即ち、タスク切替発生前に実行中であったタスクのタスクID(TIDprev)と同じタスクID値を持つタスク情報が保持されている行を入出力制御テーブル42の先頭からタスクID値の比較によって検索する。図5に示した例の場合、TIDprevはIDtask2であり、タスク情報管理部41は入出力制御テーブル42からタスクIDがIDtask2である行を検索する。この検索によってタスクIDがIDtask2である行が特定されると、タスク実行装置2で次に実行されるタスクのタスクID(TIDnext)は、IDtask2の次の行に保持されているIDtask3であることがわかる。このため、排他アクセス信号制御レジスタ44を更新するためのレジスタ値(ECRnext)は、入出力制御テーブル42のIDtask3の行に格納されている排他アクセス信号制御レジスタ設定値を示すビット列であることが特定される。
【0023】
また、TIDprevがM番目に実行されるタスクを示すタスクID(IDtaskM)であった場合、タスク実行装置2で実行されるタスクの実行が1周したことになる。入出力制御装置1において、タスクは特定の順序で次々と繰返し実行されるため、TIDnextは入出力制御テーブル42の先頭行に保持されているIDtask1となる。
【0024】
次実行タスクのタスク情報であるTIDnextとECRnextが入出力制御テーブル42の検索によって特定されると、タスク情報管理部41は、ECRnextを排他アクセス信号制御レジスタ44に設定し、TIDnextをタスクIDレジスタ43に設定する。
【0025】
排他アクセス信号出力部45は、タスク情報管理部41によって排他アクセス信号制御レジスタ44に設定されたECRnextの各ビット値に従って、各ビット値と対応する周辺装置インタフェース6に対して排他アクセス信号を出力する。
【0026】
周辺装置7は、周辺装置インタフェース6を介して、主記憶装置3のデータ入出力領域31との間で入出力処理を実行する。この入出力処理は、周辺装置7からデータ入出力領域31へのデータ転送(入力処理)と、データ入出力領域31から周辺装置7へのデータ転送(出力処理)がある。周辺装置インタフェース6における入出力処理の制御を図6を用いて説明する。図6は、周辺装置インタフェース6の制御フローを示すフローチャートである。周辺装置7は、周辺装置インタフェース6に対して、データ転送要求(入力処理、または出力処理)を通知し、周辺装置インタフェース6はこれを受信する(ステップST1)。周辺装置インタフェース6は、排他アクセス信号出力部45によって出力される排他アクセス信号を受信していない場合(ステップST2)、データ転送を実行し(ステップST3)、入出力処理を完了させる。一方、ステップST2において、排他アクセス信号を受信中の場合、当該排他アクセス信号がオフになるまで周辺装置7によるデータ入出力領域31への入出力処理を停止させる。
【0027】
このような入出力制御装置1において、制御処理を行うタスクは、特定の順序で次々と切り替わりながらタスク実行装置2によって繰返し実行される。また、タスクは、周辺装置7に対して直接入出力処理を実行する代わりに、データ入出力領域31に対して入出力処理を実行することによって、演算処理に必要なデータの入力処理と制御用データの出力処理が実現される。
【0028】
一方、周辺装置7と、各々の周辺装置7に関連付けられたデータ入出力領域31との間で実行される入出力処理は、タスクによる制御用データの演算処理と並列に実行される。その際、データ入出力領域31の一貫性制御は、排他アクセス信号出力部45によって出力される排他アクセス信号を周辺装置インタフェース6が受信し、周辺装置7の入出力処理を停止させることによって実現される。
【0029】
以上に述べた、実施の形態1による入出力制御装置1の構成とすることによって、前述のロックフラグ操作命令を用いることなく、データ入出力領域31のデータの一貫性を保証することができる。即ち、タスクを構成するソフトウェアプログラムを複雑化させることなく、単純な構成で排他制御が実現できるという効果が得られる。また、タスク実行装置2で実行中のタスクとアクセス競合を起こさない周辺装置7による入出力処理は、タスクの演算処理と並列に実行することができる。従って、複数タスクの繰返し実行にかかる処理時間を短縮化できるという効果が得られる。
【0030】
以上説明したように、実施の形態1の入出力制御装置によれば、複数のタスクを順次切り替えながら繰返し実行し、かつ外部接続された周辺装置との間でデータ入出力処理を実行する入出力制御装置において、タスクを実行するタスク実行装置と、周辺装置との間で入出力するデータを格納するデータ入出力領域を含み、タスクが演算処理を行う際のデータを記録する主記憶装置と、各タスクと、データ入出力領域への排他アクセス対象となる周辺装置との関係を各タスクの実行順に示す入出力制御テーブルを有し、入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求めるタスク情報管理部と、タスク情報管理部で求められた排他アクセス対象となる周辺装置からの入出力を停止する周辺装置インタフェースとを備えたので、タスクを構成するソフトウェアプログラムを複雑化させることなく、また、主記憶装置に対するアクセス要求を調停するハードウェアを複雑化させることもなく、データの一貫性を保証することができる。
【0031】
また、実施の形態1の入出力制御装置によれば、タスク情報管理部は、実行中のタスクの情報を保持するタスクIDレジスタと、排他アクセス対象の周辺装置であるか否かの情報を保持する排他アクセス信号制御レジスタとを有し、タスク実行装置からタスク切替が発生したことを示すタスク切替信号が出力された場合、入出力制御テーブルを参照して次に実行するタスクと排他アクセス対象となる周辺装置の情報とを取得して、次のタスクをタスクIDレジスタに設定すると共に、排他アクセス対象となる周辺装置の情報を排他アクセス信号制御レジスタに設定し、かつ、排他アクセス信号制御レジスタの設定値に基づいて排他アクセス信号を出力する排他アクセス信号出力部を備え、周辺装置インタフェースは排他アクセス信号に基づいて周辺装置からの入出力処理を停止するようにしたので、簡単な構成で排他アクセス制御を行うことができる。
【0032】
実施の形態2.
図7は、本発明の実施の形態2における入出力制御装置1aの基本構成を示す図である。図1に示した実施の形態1の入出力制御装置1との違いは、実施の形態1における入出力制御テーブル42が主記憶装置3によって保持される点である。即ち、実施の形態2では、タスク情報管理部41aではなく、主記憶装置3上に入出力制御テーブル32が保持されている。尚、入出力制御テーブル32の構成は実施の形態1における入出力制御テーブル42と同様である。入出力制御装置1aにおけるその他の構成については実施の形態1と同様であるため、図1に示した構成と同一部分には同一符号を付してその説明を省略する。
【0033】
主記憶装置3によって入出力制御テーブル32が保持されるような構成であっても、実施の形態1で説明した入出力処理装置1と基本的な動作は同様である。即ち、実施の形態2においても、図4に示したようなシーケンスで排他アクセス制御が行われる。そして、このような動作によって、実施の形態1と同様に、データ入出力領域31の一貫性制御が実現される。
【0034】
このように、実施の形態2による入出力制御装置1aの構成とすることによって、所望の排他制御を実現しつつ、実施の形態1と比較して入出力処理制御部4に含まれるタスク情報管理部41の構成を簡素化することができる。即ち、単純なハードウェア構成で実施の形態1と同様の効果が得られる。
【0035】
以上説明したように、実施の形態2の入出力制御装置によれば、複数のタスクを順次切り替えながら繰返し実行し、かつ外部接続された周辺装置との間でデータ入出力処理を実行する入出力制御装置において、タスクを実行するタスク実行装置と、周辺装置との間で入出力するデータを格納するデータ入出力領域を含み、タスクが演算処理を行う際のデータを記録する主記憶装置と、主記憶装置上に設けられ、各タスクと、データ入出力領域への排他アクセス対象となる周辺装置との関係を各タスクの実行順に示す入出力制御テーブルと、入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求めるタスク情報管理部と、タスク情報管理部で求められた排他アクセス対象となる周辺装置からの入出力を停止する周辺装置インタフェースとを備えたので、実施の形態1の効果に加えて、更に構成を簡素化することができる。
【0036】
実施の形態3.
図8は、本発明の実施の形態3における入出力制御装置1bの基本構成を示す図である。図1に示した実施の形態1の入出力制御装置1との違いは、実施の形態2と同様に入出力制御テーブル32を主記憶装置3に配置した点に加えて、複数のタスク実行装置2−1,2−2を備え、更に、タスク情報管理部41bは、複数のタスク実行装置2−1,2−2と同数のタスクIDレジスタ43−1,43−2と排他アクセス信号制御レジスタ44−1,44−2と論理和回路46とを含むように入出力制御装置1bが構成されている点である。各々のタスク実行装置2−1,2−2では、実施の形態1に示されたタスク実行装置2と同様に、複数タスクを切り替えながら特定の順序で次々と繰返し実行する。
【0037】
図9は、本発明の実施の形態3による入出力制御装置1bにおいて、2基のタスク実行装置2−1,2−2を備える場合の排他アクセス信号制御レジスタ44−1,44−2と論理和回路46の構成を示した図である。図9に示される2本の排他アクセス信号制御レジスタ44−1は、タスク実行装置2−1と、排他アクセス信号制御レジスタ44−2はタスク実行装置2−2と、それぞれ1対1に対応する。即ち、図9の排他アクセス信号制御レジスタ44−1は、タスク実行装置2−1で実行中のタスクに関する排他アクセス信号制御レジスタの設定値が書き込まれるように構成される。同様に、排他アクセス信号制御レジスタ44−2は、タスク実行装置2−2で実行中のタスクに関する排他アクセス信号制御レジスタの設定値が書き込まれるように構成される。
【0038】
一方、排他アクセス信号出力部45に対する排他アクセス信号出力オン・オフの制御は、図9に示されるN個の論理和回路46−1〜46−Nによって、2本の排他アクセス信号制御レジスタ44−1と排他アクセス信号制御レジスタ44−2の各ビット値の論理和を求め、排他アクセス信号出力部45の制御に適用することによって実現される。尚、図9において、論理和回路46−1,・・・,46−Nは、それぞれ排他アクセス信号制御レジスタ44−1,44−2におけるビット0,・・・,N−3,N−2,N−1の論理和演算を行う演算回路である。
【0039】
このように構成された実施の形態3の入出力制御装置1bでは、タスク実行装置2−1,2−2のいずれかからタスク切替信号が出力された場合、タスク情報管理部41bは、そのタスク実行装置2−1,2−2に対応した排他アクセス信号制御レジスタ44−1,44−2の値を更新する。ここでの基本的な動作は図4及び図5に示した動作と同様である。そして、排他アクセス信号制御レジスタ44−1,44−2の値が論理和回路46によって論理和演算され、排他アクセス信号出力部45は、この論理和出力に基づいて排他アクセス信号を出力する。周辺装置インタフェース6の動作は実施の形態1または2と同様である。
【0040】
尚、図8及び図9に示した構成では、2基のタスク実行装置2−1,2−2を備える場合の入出力制御装置1bの構成が示されているが、更に多くのタスク実行装置2−1,2−2,・・・を備えるように入出力制御装置1bが構成されてもよい。即ち、K基のタスク実行装置2−1,2−2,・・・,2−Kと、K組のタスクIDレジスタ43−1,43−2,・・・,43−K及び排他アクセス信号制御レジスタ44−1,44−2,・・・,44−Kを備える入出力制御装置1bとして構成されてもよい(Kは1以上の整数値)。また、K基の排他アクセス信号制御レジスタ44−1,44−2,・・・,44−Kを備えた場合、K値入力の論理和回路46−1,・・・,46−Nによって、これら排他アクセス信号制御レジスタ44−1,44−2,・・・,44−Kの各ビット値の論理和を求め、排他アクセス信号出力部45の制御に適用することによって排他アクセス信号出力オン・オフの制御を実現することができる。
【0041】
以上に述べた、実施の形態3による入出力制御装置1bの構成とすることによって、タスクを構成するソフトウェアプログラムを複雑化させることなく、演算処理を行うタスクの並列実行数を高めることができ、複数タスクの繰返し実行にかかる処理時間を実施の形態1,2の入出力制御装置1,1aと比較して更に短縮できるという効果が得られる。
また、上記実施の形態3では、実施の形態2に対して複数のタスク実行装置2−1,2−2を備えて例を説明したが、実施の形態1の構成に対して適用しても良い。
【0042】
以上のように、実施の形態3の入出力制御装置によれば、タスク実行装置は複数設けられ、かつ、タスクIDレジスタおよび排他アクセス信号制御レジスタは、それぞれ、各タスク実行装置で実行されるタスクに対応して複数設けられ、排他アクセス信号出力部は、複数の排他アクセス信号制御レジスタの論理和出力に基づいて排他アクセス信号を出力するようにしたので、タスクを並列実行する場合でもデータの一貫性を保証することができる。
【符号の説明】
【0043】
1,1a,1b 入出力制御装置、2,2−1,2−2 タスク実行装置、3 主記憶装置、4 入出力処理制御部、5 接続バス、6 周辺装置インタフェース、7 周辺装置、31 データ入出力領域、32,42 入出力制御テーブル、41 タスク情報管理部、43,43−1,43−2 タスクIDレジスタ、44,44−1,44−2 排他アクセス信号制御レジスタ、45 排他アクセス信号出力部、46,46−1〜46−N 論理和回路。

【特許請求の範囲】
【請求項1】
複数のタスクを順次切り替えながら繰返し実行し、かつ外部接続された周辺装置との間でデータ入出力処理を実行する入出力制御装置において、
前記タスクを実行するタスク実行装置と、
前記周辺装置との間で入出力するデータを格納するデータ入出力領域を含み、前記タスクが演算処理を行う際のデータを記録する主記憶装置と、
前記各タスクと、前記データ入出力領域への排他アクセス対象となる周辺装置との関係を当該各タスクの実行順に示す入出力制御テーブルを有し、当該入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求めるタスク情報管理部と、
前記タスク情報管理部で求められた排他アクセス対象となる周辺装置からの入出力を停止する周辺装置インタフェースとを備えた入出力制御装置。
【請求項2】
複数のタスクを順次切り替えながら繰返し実行し、かつ外部接続された周辺装置との間でデータ入出力処理を実行する入出力制御装置において、
前記タスクを実行するタスク実行装置と、
前記周辺装置との間で入出力するデータを格納するデータ入出力領域を含み、前記タスクが演算処理を行う際のデータを記録する主記憶装置と、
前記主記憶装置上に設けられ、前記各タスクと、前記データ入出力領域への排他アクセス対象となる周辺装置との関係を当該各タスクの実行順に示す入出力制御テーブルと、
前記入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求めるタスク情報管理部と、
前記タスク情報管理部で求められた排他アクセス対象となる周辺装置からの入出力を停止する周辺装置インタフェースとを備えた入出力制御装置。
【請求項3】
タスク情報管理部は、実行中のタスクの情報を保持するタスクIDレジスタと、排他アクセス対象の周辺装置であるか否かの情報を保持する排他アクセス信号制御レジスタとを有し、タスク実行装置からタスク切替が発生したことを示すタスク切替信号が出力された場合、入出力制御テーブルを参照して次に実行するタスクと排他アクセス対象となる周辺装置の情報とを取得して、当該次のタスクを前記タスクIDレジスタに設定すると共に、前記排他アクセス対象となる周辺装置の情報を前記排他アクセス信号制御レジスタに設定し、
かつ、前記排他アクセス信号制御レジスタの設定値に基づいて排他アクセス信号を出力する排他アクセス信号出力部を備え、
周辺装置インタフェースは前記排他アクセス信号に基づいて周辺装置からの入出力処理を停止することを特徴とする請求項1または請求項2記載の入出力制御装置。
【請求項4】
タスク実行装置は複数設けられ、かつ、タスクIDレジスタおよび排他アクセス信号制御レジスタは、それぞれ、各タスク実行装置で実行されるタスクに対応して複数設けられ、
排他アクセス信号出力部は、前記複数の排他アクセス信号制御レジスタの論理和出力に基づいて排他アクセス信号を出力することを特徴とする請求項3記載の入出力制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate