(57)【要約】【課題】複数タスクから構成されるソフトウェアプログラムを複雑化することなく、かつ主記憶装置に対するアクセス要求を調停するハードウェアを複雑化することなくデータの一貫性を保証することができる入出力制御装置を得る。【解決手段】タスク情報管理部４１は、各タスクと、データ入出力領域３１への排他アクセス対象となる周辺装置７との関係を各タスクの実行順に示す入出力制御テーブル４２を用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置７を求める。排他アクセス信号出力部４５は、タスク情報管理部４１で求められた排他アクセス対象となる周辺装置７を示す排他アクセス信号を出力する。周辺装置インタフェース６は排他アクセス信号に基づいて、排他アクセス対象の周辺装置からの入出力を停止する。【選択図】図１
2011192024.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを順次切り替えながら繰返し実行し、かつ外部接続された周辺装置との間でデータ入出力処理を実行する入出力制御装置において、
前記タスクを実行するタスク実行装置と、
前記周辺装置との間で入出力するデータを格納するデータ入出力領域を含み、前記タスクが演算処理を行う際のデータを記録する主記憶装置と、
前記各タスクと、前記データ入出力領域への排他アクセス対象となる周辺装置との関係を当該各タスクの実行順に示す入出力制御テーブルを有し、当該入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求めるタスク情報管理部と、
前記タスク情報管理部で求められた排他アクセス対象となる周辺装置からの入出力を停止する周辺装置インタフェースとを備えた入出力制御装置。
【請求項２】
複数のタスクを順次切り替えながら繰返し実行し、かつ外部接続された周辺装置との間でデータ入出力処理を実行する入出力制御装置において、
前記タスクを実行するタスク実行装置と、
前記周辺装置との間で入出力するデータを格納するデータ入出力領域を含み、前記タスクが演算処理を行う際のデータを記録する主記憶装置と、
前記主記憶装置上に設けられ、前記各タスクと、前記データ入出力領域への排他アクセス対象となる周辺装置との関係を当該各タスクの実行順に示す入出力制御テーブルと、
前記入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求めるタスク情報管理部と、
前記タスク情報管理部で求められた排他アクセス対象となる周辺装置からの入出力を停止する周辺装置インタフェースとを備えた入出力制御装置。
【請求項３】
タスク情報管理部は、実行中のタスクの情報を保持するタスクＩＤレジスタと、排他アクセス対象の周辺装置であるか否かの情報を保持する排他アクセス信号制御レジスタとを有し、タスク実行装置からタスク切替が発生したことを示すタスク切替信号が出力された場合、入出力制御テーブルを参照して次に実行するタスクと排他アクセス対象となる周辺装置の情報とを取得して、当該次のタスクを前記タスクＩＤレジスタに設定すると共に、前記排他アクセス対象となる周辺装置の情報を前記排他アクセス信号制御レジスタに設定し、
かつ、前記排他アクセス信号制御レジスタの設定値に基づいて排他アクセス信号を出力する排他アクセス信号出力部を備え、
周辺装置インタフェースは前記排他アクセス信号に基づいて周辺装置からの入出力処理を停止することを特徴とする請求項１または請求項２記載の入出力制御装置。
【請求項４】
タスク実行装置は複数設けられ、かつ、タスクＩＤレジスタおよび排他アクセス信号制御レジスタは、それぞれ、各タスク実行装置で実行されるタスクに対応して複数設けられ、
排他アクセス信号出力部は、前記複数の排他アクセス信号制御レジスタの論理和出力に基づいて排他アクセス信号を出力することを特徴とする請求項３記載の入出力制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多種多様な周辺装置が複数接続され、データ入出力と演算を伴う制御処理を繰返し、かつ並列実行する入出力制御装置に関するものである。
【背景技術】
【０００２】
入出力制御装置は、モータ駆動装置やセンサ装置などの多種多様な周辺装置が複数接続される。また、周辺装置の動作を制御するために、周辺装置の状態を取得するデータ入力処理、取得されたデータを基に制御用データを生成するデータ演算処理、制御用データを周辺装置に設定するデータ出力処理などを切り替えながら次々と実行する。一般的に、これらの処理は、入出力の対象となる周辺装置の種類や演算処理の内容に応じて複数の有限個からなるソフトウェアプログラム実行単位（以下、タスクと記す）に分割される。即ち、入出力制御装置における制御処理は、複数のタスクを切り替えながら特定の順序で次々と繰返し実行することによって実現される。
【０００３】
更に、制御処理の高速化を目的として、複数基のプロセッサを用いてタスクを並列実行できるように入出力制御装置は構成される。例えば、あるタスクの実行中に、次実行タスクの演算処理に必要なデータの入力処理を並列実行する。あるいは、前実行タスクの演算処理によって生成された制御用データの出力処理を並列実行する。入出力処理を並列実行することによって、タスク処理時間のうち入出力処理にかかる時間を削減できる。特に、主記憶装置とプロセッサとの間の入出力処理は、周辺装置とプロセッサとの間の入出力処理より高速である。このため、演算処理と並列に主記憶装置と周辺装置との間で入出力処理を実行し、演算処理に必要なデータの入力と制御用データの出力を主記憶装置に対して実行することによって、複数タスクの繰返し実行にかかる処理時間を短縮化できる。
【０００４】
一方、演算処理と入出力処理を並列実行する場合、データの一貫性が保証されるように制御する必要がある。ここで、データの一貫性制御とは、主記憶装置に格納されたデータを用いた演算処理の実行中に、主記憶装置の同一データに対する入出力処理が実行されないように排他制御することを意味する。排他制御を実現する従来技術として、例えば特許文献１ではマルチプロセッサシステムにおけるロックフラグを用いた排他制御手段が開示されている。また、別の手法として、例えば、特許文献２では複数のメモリアクセス要求の調停をアドレス値の比較、即ちアドレス一致検出によって排他制御を行う装置の構成が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１８５３４８号公報
【特許文献２】特許第３９９０５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１で開示されているロックフラグを用いた排他制御手段の場合、ソフトウェアとして実装されるプログラムによってロック取得要求とロック解放要求を行う命令（以下、ロックフラグ操作命令と記す）の実行が指示される。その際、並列実行中の２つの処理が他方の処理によって取得されたロックを互いに要求し、双方の処理が停止状態に陥るデッドロックを避けるようにプログラムを構成する必要がある。従って、複数タスクが次々と繰返し実行されるようにプログラムが構成される入出力制御装置では、デッドロックを避けつつ、ロックフラグ操作命令を用いて排他制御が行われるようにプログラムが構成される必要がある。このため、ソフトウェアプログラムが複雑化するという問題があった。
【０００７】
また、特許文献２で開示されているアドレス一致検出による排他制御手段の場合、複数のアクセス要求元からのアクセス要求が主記憶装置に割り当てられたアドレス空間内の同一アドレスに対するものか否かを判定する手段が必要となる。一般的に、このようなアドレス一致検出は、ハードウェアとして実装されるアドレス一致検出回路によって行われる。しかし、アドレス一致検出回路は、主記憶装置に対するアクセス要求を調停する手段を備えた一般的な主記憶制御装置のハードウェア構成には含まれないため、ハードウェアが複雑化するという問題があった。
【０００８】
本発明は、以上の点を鑑みて実施されたものであり、複数タスクから構成されるソフトウェアプログラムを複雑化することなく、かつ主記憶装置に対するアクセス要求を調停するハードウェアを複雑化することなくデータの一貫性を保証することができる入出力制御装置の提供を目的としている。
【課題を解決するための手段】
【０００９】
この発明に係る入出力制御装置は、複数のタスクを順次切り替えながら繰返し実行し、かつ外部接続された周辺装置との間でデータ入出力処理を実行する入出力制御装置において、タスクを実行するタスク実行装置と、周辺装置との間で入出力するデータを格納するデータ入出力領域を含み、タスクが演算処理を行う際のデータを記録する主記憶装置と、各タスクと、データ入出力領域への排他アクセス対象となる周辺装置との関係を各タスクの実行順に示す入出力制御テーブルを有し、入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求めるタスク情報管理部と、タスク情報管理部で求められた排他アクセス対象となる周辺装置からの入出力を停止する周辺装置インタフェースとを備えたものである。
【発明の効果】
【００１０】
この発明の入出力制御装置は、各タスクと、データ入出力領域への排他アクセス対象となる周辺装置との関係を各タスクの実行順に示す入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求め、その周辺装置からの入出力を停止するようにしたので、タスクを構成するソフトウェアプログラムを複雑化させることなく、また、主記憶装置に対するアクセス要求を調停するハードウェアを複雑化させることもなく、データの一貫性を保証することができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１による入出力制御装置を示す構成図である。
【図２】この発明の実施の形態１による入出力制御装置のデータ入出力領域のメモリマップを示す説明図である。
【図３】この発明の実施の形態１による入出力制御装置の入出力制御テーブルを示す説明図である。
【図４】この発明の実施の形態１による入出力制御装置の動作を示すシーケンス図である。
【図５】この発明の実施の形態１による入出力制御装置のタスク情報管理部における入出力制御テーブルの検索方法を示す説明図である。
【図６】この発明の実施の形態１による入出力制御装置の周辺装置インタフェースの制御フローを示すフローチャートである。
【図７】この発明の実施の形態２による入出力制御装置を示す構成図である。
【図８】この発明の実施の形態３による入出力制御装置を示す構成図である。
【図９】この発明の実施の形態３による入出力制御装置の排他アクセス信号制御レジスタと論理和回路を示す構成図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、本発明の実施の形態１における入出力制御装置の基本構成を示す図である。図１に示す入出力制御装置１は、タスク実行装置２、主記憶装置３、入出力処理制御部４、接続バス５、周辺装置インタフェース（Ｉ／Ｆ）６を備える。入出力処理制御部４は、入出力制御テーブル４２、タスクＩＤレジスタ４３、排他アクセス信号制御レジスタ４４を備えるタスク情報管理部４１と、排他アクセス信号出力部４５とを含む。更に、入出力制御装置１に接続される複数の周辺装置７は、周辺装置インタフェース６を介して接続バス５に接続される。
【００１３】
タスク実行装置２は、入出力制御装置１における制御処理のうちデータ演算処理を行うタスクを実行する。一般的に、タスク実行装置２として、汎用プロセッサ、マイクロコントローラ（マイコン）、ＡＳＩＣ（Application Specific Integrated Circuit）などが用いられる。入出力制御装置１の制御処理が複数個のタスクから構成される場合、タスク実行装置２はタスクを切り替えながら特定の順序で次々と実行していく。タスク切替は、タスク実行装置２によってそれまで実行されていたタスクの処理が完了し、次に実行されるべきタスクの実行を開始するための処理である。一般的に、タスク切替は、基本ソフトウェア（ＯＳ：Operating System）によって提供される機能の１つであるタスクスケジューラによって実行される。あるいは、ＯＳによって提供される別の機能の１つであるタスク実行同期用のセマフォを用いた手段もある。あるいは、一定時間経過する毎に割込み信号をタスク実行装置２に対して出力するハードウェアを用いて、この割込み信号を契機にタスク切替を行う機能が実行されるようにタスク実行装置２を構成する手段もある。本発明における入出力制御装置では、複数個のタスクが特定の順序で次々と繰返し実行される限り、どのようなタスク切替手段であっても構わない。
【００１４】
主記憶装置３は、タスク実行装置２で実行されるタスクが演算処理を行う際に利用する演算前・演算途中・演算後の各データが記憶される。また、主記憶装置３には、周辺装置インタフェース６を介して複数接続される各々の周辺装置７に対して、主記憶装置３の個別のアドレス空間が関連付けられるようにデータ入出力領域３１が構成される。図２は、データ入出力領域３１の構成例を示す図である。この図２は、例として５基の周辺装置７と関連付けられるデータ入出力領域３１について示しており、他のデータ入出力領域３１の図示は省略している。各々のデータ入出力領域３１は、非連続領域として構成されていても連続領域として構成されていてもよい。また、各々のデータ入出力領域３１の領域サイズが異なっていてもよい。例えば、図２に図示したデータ入出力領域３１の構成例では、領域（１）（２）は異なる領域サイズの非連続領域として、領域（３）（４）（５）は等しい領域サイズの連続領域としてそれぞれ構成される。
【００１５】
入出力処理制御部４のタスク情報管理部４１に含まれるタスクＩＤレジスタ４３は、タスク実行装置２で実行中のタスクを一意に識別するためのタスクＩＤ値を記憶するためのレジスタである。また、排他アクセス信号制御レジスタ４４は、排他アクセス信号出力部４５によって出力される排他アクセス信号の出力オン・オフを制御するビット値を記憶するためのレジスタである。
【００１６】
入出力制御テーブル４２は、タスクＩＤレジスタ４３と排他アクセス信号制御レジスタ４４に設定される値の組が保持される。図３は、入出力制御テーブル４２の構成例を示す図である。図３に示した入出力制御テーブル４２は、Ｎ基の周辺装置７が入出力制御装置１に接続され、Ｍ個のタスクがタスク実行装置２によって次々と繰返し実行される場合の構成が示されている（Ｎ、Ｍは１以上の整数値）。図３に示されているように、入出力制御テーブル４２には、Ｍ個のタスクそれぞれに対応するタスクＩＤレジスタ４３と排他アクセス信号制御レジスタ４４の両レジスタに設定される値の組が保持される。また、この設定値の組は、タスクの実行順序に対応して保持される。即ち、タスクＩＤがＩＤｔａｓｋ１であるタスクの次に実行されるタスクは、タスクＩＤがＩＤｔａｓｋ２であるタスクとなる。
【００１７】
タスクＩＤレジスタ４３と排他アクセス信号制御レジスタ４４の設定値の組を入出力制御テーブル４２に保持する手段として、例えば、図３に図示したタスクＩＤレジスタ設定値（ＩＤｔａｓｋ１，ＩＤｔａｓｋ２，・・・，ＩＤｔａｓｋＭ）と、各タスクＩＤと組となる排他アクセス信号制御レジスタ設定値が、入出力制御装置１の起動時に入出力制御テーブル４２に設定されるようにソフトウェアプログラムが構成されていてもよい。あるいは、図３に図示したタスクＩＤレジスタ設定値（ＩＤｔａｓｋ１，ＩＤｔａｓｋ２，・・・，ＩＤｔａｓｋＭ）と、各タスクＩＤと組となる排他アクセス信号制御レジスタ設定値がワイヤードロジックによってハードウェア化されていてもよい。
【００１８】
排他アクセス信号制御レジスタ４４の各ビット値は、周辺装置インタフェース６を介して外部接続される周辺装置７と１対１に関連付けされる。具体的には、１基目の周辺装置７は排他アクセス信号制御レジスタのビット０（最下位ビット）を関連付けされ、２基目の周辺装置７と排他アクセス信号制御レジスタのビット１を関連付けされる、といった要領で全ての周辺装置７は排他アクセス信号制御レジスタ４４の各ビットと関連付けされる。その際、ビット値が１であれば排他制御が行われる周辺装置７として、ビット値が０であれば演算処理と並列に入出力処理を実行できる周辺装置７として、排他アクセス信号出力部４５から認識される。
【００１９】
排他アクセス信号出力部４５は、排他アクセス信号制御レジスタ４４の各ビット値と対応して、ビット値が１となっている周辺装置７によるデータ入出力処理を停止させるための排他アクセス信号を周辺装置インタフェース６に対して出力する。
【００２０】
周辺装置インタフェース６は、入出力制御装置１の接続バス５と周辺装置７との間に設置され、主記憶装置３と周辺装置７との間で実行されるデータ入出力処理を中継する。また、排他アクセス信号出力部４５から出力される排他アクセス信号を受信し、排他アクセス信号の受信中は周辺装置７によるデータ入出力処理を停止させる機能を持つ。
【００２１】
次に、実施の形態１における入出力制御装置１の動作を図４を基に説明する。図４は、入出力制御装置１の動作を示すシーケンス図である。
タスク実行装置２は、タスク切替発生時にタスク情報管理部４１に対してタスク切替信号を出力する。
タスク情報管理部４１は、タスク実行装置２からタスク切替信号を受信すると、タスクＩＤレジスタ４３と排他アクセス信号制御レジスタ４４の値を更新する。これらのレジスタを更新する際に必要となるレジスタ値をタスク情報管理部４１が取得する方法を図５を基に説明する。
【００２２】
図５は、図３で示した入出力制御テーブル４２の例を用いて、タスク切替信号受信時にタスクＩＤレジスタ４３と排他アクセス信号制御レジスタ４４に設定すべき値を特定する手段が示されている。タスク情報管理部４１は、タスク切替信号受信時にタスクＩＤレジスタ４３に保持されている値、即ち、タスク切替発生前に実行中であったタスクのタスクＩＤ（ＴＩＤｐｒｅｖ）と同じタスクＩＤ値を持つタスク情報が保持されている行を入出力制御テーブル４２の先頭からタスクＩＤ値の比較によって検索する。図５に示した例の場合、ＴＩＤｐｒｅｖはＩＤｔａｓｋ２であり、タスク情報管理部４１は入出力制御テーブル４２からタスクＩＤがＩＤｔａｓｋ２である行を検索する。この検索によってタスクＩＤがＩＤｔａｓｋ２である行が特定されると、タスク実行装置２で次に実行されるタスクのタスクＩＤ（ＴＩＤｎｅｘｔ）は、ＩＤｔａｓｋ２の次の行に保持されているＩＤｔａｓｋ３であることがわかる。このため、排他アクセス信号制御レジスタ４４を更新するためのレジスタ値（ＥＣＲｎｅｘｔ）は、入出力制御テーブル４２のＩＤｔａｓｋ３の行に格納されている排他アクセス信号制御レジスタ設定値を示すビット列であることが特定される。
【００２３】
また、ＴＩＤｐｒｅｖがＭ番目に実行されるタスクを示すタスクＩＤ（ＩＤｔａｓｋＭ）であった場合、タスク実行装置２で実行されるタスクの実行が１周したことになる。入出力制御装置１において、タスクは特定の順序で次々と繰返し実行されるため、ＴＩＤｎｅｘｔは入出力制御テーブル４２の先頭行に保持されているＩＤｔａｓｋ１となる。
【００２４】
次実行タスクのタスク情報であるＴＩＤｎｅｘｔとＥＣＲｎｅｘｔが入出力制御テーブル４２の検索によって特定されると、タスク情報管理部４１は、ＥＣＲｎｅｘｔを排他アクセス信号制御レジスタ４４に設定し、ＴＩＤｎｅｘｔをタスクＩＤレジスタ４３に設定する。
【００２５】
排他アクセス信号出力部４５は、タスク情報管理部４１によって排他アクセス信号制御レジスタ４４に設定されたＥＣＲｎｅｘｔの各ビット値に従って、各ビット値と対応する周辺装置インタフェース６に対して排他アクセス信号を出力する。
【００２６】
周辺装置７は、周辺装置インタフェース６を介して、主記憶装置３のデータ入出力領域３１との間で入出力処理を実行する。この入出力処理は、周辺装置７からデータ入出力領域３１へのデータ転送（入力処理）と、データ入出力領域３１から周辺装置７へのデータ転送（出力処理）がある。周辺装置インタフェース６における入出力処理の制御を図６を用いて説明する。図６は、周辺装置インタフェース６の制御フローを示すフローチャートである。周辺装置７は、周辺装置インタフェース６に対して、データ転送要求（入力処理、または出力処理）を通知し、周辺装置インタフェース６はこれを受信する（ステップＳＴ１）。周辺装置インタフェース６は、排他アクセス信号出力部４５によって出力される排他アクセス信号を受信していない場合（ステップＳＴ２）、データ転送を実行し（ステップＳＴ３）、入出力処理を完了させる。一方、ステップＳＴ２において、排他アクセス信号を受信中の場合、当該排他アクセス信号がオフになるまで周辺装置７によるデータ入出力領域３１への入出力処理を停止させる。
【００２７】
このような入出力制御装置１において、制御処理を行うタスクは、特定の順序で次々と切り替わりながらタスク実行装置２によって繰返し実行される。また、タスクは、周辺装置７に対して直接入出力処理を実行する代わりに、データ入出力領域３１に対して入出力処理を実行することによって、演算処理に必要なデータの入力処理と制御用データの出力処理が実現される。
【００２８】
一方、周辺装置７と、各々の周辺装置７に関連付けられたデータ入出力領域３１との間で実行される入出力処理は、タスクによる制御用データの演算処理と並列に実行される。その際、データ入出力領域３１の一貫性制御は、排他アクセス信号出力部４５によって出力される排他アクセス信号を周辺装置インタフェース６が受信し、周辺装置７の入出力処理を停止させることによって実現される。
【００２９】
以上に述べた、実施の形態１による入出力制御装置１の構成とすることによって、前述のロックフラグ操作命令を用いることなく、データ入出力領域３１のデータの一貫性を保証することができる。即ち、タスクを構成するソフトウェアプログラムを複雑化させることなく、単純な構成で排他制御が実現できるという効果が得られる。また、タスク実行装置２で実行中のタスクとアクセス競合を起こさない周辺装置７による入出力処理は、タスクの演算処理と並列に実行することができる。従って、複数タスクの繰返し実行にかかる処理時間を短縮化できるという効果が得られる。
【００３０】
以上説明したように、実施の形態１の入出力制御装置によれば、複数のタスクを順次切り替えながら繰返し実行し、かつ外部接続された周辺装置との間でデータ入出力処理を実行する入出力制御装置において、タスクを実行するタスク実行装置と、周辺装置との間で入出力するデータを格納するデータ入出力領域を含み、タスクが演算処理を行う際のデータを記録する主記憶装置と、各タスクと、データ入出力領域への排他アクセス対象となる周辺装置との関係を各タスクの実行順に示す入出力制御テーブルを有し、入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求めるタスク情報管理部と、タスク情報管理部で求められた排他アクセス対象となる周辺装置からの入出力を停止する周辺装置インタフェースとを備えたので、タスクを構成するソフトウェアプログラムを複雑化させることなく、また、主記憶装置に対するアクセス要求を調停するハードウェアを複雑化させることもなく、データの一貫性を保証することができる。
【００３１】
また、実施の形態１の入出力制御装置によれば、タスク情報管理部は、実行中のタスクの情報を保持するタスクＩＤレジスタと、排他アクセス対象の周辺装置であるか否かの情報を保持する排他アクセス信号制御レジスタとを有し、タスク実行装置からタスク切替が発生したことを示すタスク切替信号が出力された場合、入出力制御テーブルを参照して次に実行するタスクと排他アクセス対象となる周辺装置の情報とを取得して、次のタスクをタスクＩＤレジスタに設定すると共に、排他アクセス対象となる周辺装置の情報を排他アクセス信号制御レジスタに設定し、かつ、排他アクセス信号制御レジスタの設定値に基づいて排他アクセス信号を出力する排他アクセス信号出力部を備え、周辺装置インタフェースは排他アクセス信号に基づいて周辺装置からの入出力処理を停止するようにしたので、簡単な構成で排他アクセス制御を行うことができる。
【００３２】
実施の形態２．
図７は、本発明の実施の形態２における入出力制御装置１ａの基本構成を示す図である。図１に示した実施の形態１の入出力制御装置１との違いは、実施の形態１における入出力制御テーブル４２が主記憶装置３によって保持される点である。即ち、実施の形態２では、タスク情報管理部４１ａではなく、主記憶装置３上に入出力制御テーブル３２が保持されている。尚、入出力制御テーブル３２の構成は実施の形態１における入出力制御テーブル４２と同様である。入出力制御装置１ａにおけるその他の構成については実施の形態１と同様であるため、図１に示した構成と同一部分には同一符号を付してその説明を省略する。
【００３３】
主記憶装置３によって入出力制御テーブル３２が保持されるような構成であっても、実施の形態１で説明した入出力処理装置１と基本的な動作は同様である。即ち、実施の形態２においても、図４に示したようなシーケンスで排他アクセス制御が行われる。そして、このような動作によって、実施の形態１と同様に、データ入出力領域３１の一貫性制御が実現される。
【００３４】
このように、実施の形態２による入出力制御装置１ａの構成とすることによって、所望の排他制御を実現しつつ、実施の形態１と比較して入出力処理制御部４に含まれるタスク情報管理部４１の構成を簡素化することができる。即ち、単純なハードウェア構成で実施の形態１と同様の効果が得られる。
【００３５】
以上説明したように、実施の形態２の入出力制御装置によれば、複数のタスクを順次切り替えながら繰返し実行し、かつ外部接続された周辺装置との間でデータ入出力処理を実行する入出力制御装置において、タスクを実行するタスク実行装置と、周辺装置との間で入出力するデータを格納するデータ入出力領域を含み、タスクが演算処理を行う際のデータを記録する主記憶装置と、主記憶装置上に設けられ、各タスクと、データ入出力領域への排他アクセス対象となる周辺装置との関係を各タスクの実行順に示す入出力制御テーブルと、入出力制御テーブルを用いて、現在、実行されているタスクから排他アクセス対象となる周辺装置を求めるタスク情報管理部と、タスク情報管理部で求められた排他アクセス対象となる周辺装置からの入出力を停止する周辺装置インタフェースとを備えたので、実施の形態１の効果に加えて、更に構成を簡素化することができる。
【００３６】
実施の形態３．
図８は、本発明の実施の形態３における入出力制御装置１ｂの基本構成を示す図である。図１に示した実施の形態１の入出力制御装置１との違いは、実施の形態２と同様に入出力制御テーブル３２を主記憶装置３に配置した点に加えて、複数のタスク実行装置２−１，２−２を備え、更に、タスク情報管理部４１ｂは、複数のタスク実行装置２−１，２−２と同数のタスクＩＤレジスタ４３−１，４３−２と排他アクセス信号制御レジスタ４４−１，４４−２と論理和回路４６とを含むように入出力制御装置１ｂが構成されている点である。各々のタスク実行装置２−１，２−２では、実施の形態１に示されたタスク実行装置２と同様に、複数タスクを切り替えながら特定の順序で次々と繰返し実行する。
【００３７】
図９は、本発明の実施の形態３による入出力制御装置１ｂにおいて、２基のタスク実行装置２−１，２−２を備える場合の排他アクセス信号制御レジスタ４４−１，４４−２と論理和回路４６の構成を示した図である。図９に示される２本の排他アクセス信号制御レジスタ４４−１は、タスク実行装置２−１と、排他アクセス信号制御レジスタ４４−２はタスク実行装置２−２と、それぞれ１対１に対応する。即ち、図９の排他アクセス信号制御レジスタ４４−１は、タスク実行装置２−１で実行中のタスクに関する排他アクセス信号制御レジスタの設定値が書き込まれるように構成される。同様に、排他アクセス信号制御レジスタ４４−２は、タスク実行装置２−２で実行中のタスクに関する排他アクセス信号制御レジスタの設定値が書き込まれるように構成される。
【００３８】
一方、排他アクセス信号出力部４５に対する排他アクセス信号出力オン・オフの制御は、図９に示されるＮ個の論理和回路４６−１〜４６−Ｎによって、２本の排他アクセス信号制御レジスタ４４−１と排他アクセス信号制御レジスタ４４−２の各ビット値の論理和を求め、排他アクセス信号出力部４５の制御に適用することによって実現される。尚、図９において、論理和回路４６−１，・・・，４６−Ｎは、それぞれ排他アクセス信号制御レジスタ４４−１，４４−２におけるビット０，・・・，Ｎ−３，Ｎ−２，Ｎ−１の論理和演算を行う演算回路である。
【００３９】
このように構成された実施の形態３の入出力制御装置１ｂでは、タスク実行装置２−１，２−２のいずれかからタスク切替信号が出力された場合、タスク情報管理部４１ｂは、そのタスク実行装置２−１，２−２に対応した排他アクセス信号制御レジスタ４４−１，４４−２の値を更新する。ここでの基本的な動作は図４及び図５に示した動作と同様である。そして、排他アクセス信号制御レジスタ４４−１，４４−２の値が論理和回路４６によって論理和演算され、排他アクセス信号出力部４５は、この論理和出力に基づいて排他アクセス信号を出力する。周辺装置インタフェース６の動作は実施の形態１または２と同様である。
【００４０】
尚、図８及び図９に示した構成では、２基のタスク実行装置２−１，２−２を備える場合の入出力制御装置１ｂの構成が示されているが、更に多くのタスク実行装置２−１，２−２，・・・を備えるように入出力制御装置１ｂが構成されてもよい。即ち、Ｋ基のタスク実行装置２−１，２−２，・・・，２−Ｋと、Ｋ組のタスクＩＤレジスタ４３−１，４３−２，・・・，４３−Ｋ及び排他アクセス信号制御レジスタ４４−１，４４−２，・・・，４４−Ｋを備える入出力制御装置１ｂとして構成されてもよい（Ｋは１以上の整数値）。また、Ｋ基の排他アクセス信号制御レジスタ４４−１，４４−２，・・・，４４−Ｋを備えた場合、Ｋ値入力の論理和回路４６−１，・・・，４６−Ｎによって、これら排他アクセス信号制御レジスタ４４−１，４４−２，・・・，４４−Ｋの各ビット値の論理和を求め、排他アクセス信号出力部４５の制御に適用することによって排他アクセス信号出力オン・オフの制御を実現することができる。
【００４１】
以上に述べた、実施の形態３による入出力制御装置１ｂの構成とすることによって、タスクを構成するソフトウェアプログラムを複雑化させることなく、演算処理を行うタスクの並列実行数を高めることができ、複数タスクの繰返し実行にかかる処理時間を実施の形態１，２の入出力制御装置１，１ａと比較して更に短縮できるという効果が得られる。
また、上記実施の形態３では、実施の形態２に対して複数のタスク実行装置２−１，２−２を備えて例を説明したが、実施の形態１の構成に対して適用しても良い。
【００４２】
以上のように、実施の形態３の入出力制御装置によれば、タスク実行装置は複数設けられ、かつ、タスクＩＤレジスタおよび排他アクセス信号制御レジスタは、それぞれ、各タスク実行装置で実行されるタスクに対応して複数設けられ、排他アクセス信号出力部は、複数の排他アクセス信号制御レジスタの論理和出力に基づいて排他アクセス信号を出力するようにしたので、タスクを並列実行する場合でもデータの一貫性を保証することができる。
【符号の説明】
【００４３】
１，１ａ，１ｂ  入出力制御装置、２，２−１，２−２  タスク実行装置、３  主記憶装置、４  入出力処理制御部、５  接続バス、６  周辺装置インタフェース、７  周辺装置、３１  データ入出力領域、３２，４２  入出力制御テーブル、４１  タスク情報管理部、４３，４３−１，４３−２  タスクＩＤレジスタ、４４，４４−１，４４−２  排他アクセス信号制御レジスタ、４５  排他アクセス信号出力部、４６，４６−１〜４６−Ｎ  論理和回路。
【図１】
2011192024.tif 000003
【図２】
2011192024.tif 000004
【図３】
2011192024.tif 000005
【図４】
2011192024.tif 000006
【図５】
2011192024.tif 000007
【図６】
2011192024.tif 000008
【図７】
2011192024.tif 000009
【図８】
2011192024.tif 000010
【図９】
2011192024.tif 000011