JP5652648B2 - 外部デバイスアクセス装置およびコンピュータプログラム - Google Patents

外部デバイスアクセス装置およびコンピュータプログラム Download PDF

Info

Publication number
JP5652648B2
JP5652648B2 JP2010226759A JP2010226759A JP5652648B2 JP 5652648 B2 JP5652648 B2 JP 5652648B2 JP 2010226759 A JP2010226759 A JP 2010226759A JP 2010226759 A JP2010226759 A JP 2010226759A JP 5652648 B2 JP5652648 B2 JP 5652648B2
Authority
JP
Japan
Prior art keywords
unit
access request
external device
buffer
access
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.)
Active
Application number
JP2010226759A
Other languages
English (en)
Other versions
JP2012079275A (ja
Inventor
正毅 矢倉
正毅 矢倉
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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2010226759A priority Critical patent/JP5652648B2/ja
Publication of JP2012079275A publication Critical patent/JP2012079275A/ja
Application granted granted Critical
Publication of JP5652648B2 publication Critical patent/JP5652648B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、複数の外部デバイスに対するアクセスが同時並行的に発生する外部デバイスアクセス装置および情報処理装置を外部デバイスアクセス装置として機能させるコンピュータプログラムに関する。
図7は、従来の外部デバイスアクセス装置の外部デバイスに対するアクセス手順について説明する図である。本図において、外部デバイスアクセス装置のMPU(Micro Processing Unit)300では、プログラム単位A310a、プログラム単位B310b、プログラム単位C310cが起動しており、プログラム切替部301により、プログラム単位310の実行が切替えられている(特に区別する必要がないときは、プログラム単位310と総称する。後述する送信処理モジュール311、受信処理モジュール312、外部デバイス201等および実施例の記載についても同様とする)。ここで、プログラム切替部301は、プログラム単位A310a、プログラム単位B310b、プログラム単位C310cの順で実行を切替えるものとする。
各プログラム単位310は、送信処理モジュール311と、受信処理モジュール312を含んでおり、これらのモジュールにしたがって、外部デバイスアクセス装置に接続された外部デバイス(1)201a、外部デバイス(2)201b、外部デバイス(3)201c…外部デバイス(N)201nに対するアクセス処理を行なう。
また、外部デバイスアクセス装置のメモリ領域にはバッファ321が設けられている。プログラム単位310は、外部デバイス201にアクセス要求を送ると、外部デバイス201から応答があるまでプログラムの実行が止まり、処理を保留する。バッファ321は、外部デバイス201からの応答を待つ間、アクセス要求を保持するために用いられる。プログラム単位310が外部デバイス201からの応答待ち状態になると、プログラム切替部301は、次のプログラム単位310に実行を切替える。
外部デバイス201からの応答を待っているプログラム単位310が応答を受信すると、実行順にかかわらず、受信処理モジュール312が、応答処理を行ない、バッファ321を解放する。
図7と図8を参照して、プログラム単位310の外部デバイスへのアクセス手順について説明する。まず、実行対象となったプログラム単位A310aが、送信処理モジュール311aにしたがって、アクセス要求をバッファ321に蓄積し、外部デバイス201に送信する。そして、応答待ち状態となり、プログラム単位B310bに実行が切替えられる。
プログラム単位B310bも同様に、送信処理モジュール311bにしたがって、アクセス要求をバッファ321に蓄積し、外部デバイス201に送信する。そして、応答待ち状態となり、プログラム単位B310cに実行が切替えられる。
プログラム単位C310cも同様に、送信処理モジュール311cにしたがって、アクセス要求をバッファ321に蓄積し(図7、図8の1]蓄積)、外部デバイス201に送信する(2]送信)。そして、応答待ち状態となる。
プログラム単位A310aに外部デバイス201から応答があると、受信処理モジュール311aにしたがって、応答処理を行ない、バッファ321を解放する。プログラム単位B310bに外部デバイス201から応答があると、受信処理モジュール311bにしたがって、応答処理を行ない、バッファ321を解放する。プログラム単位C310cに外部デバイス201から応答があると(3]応答)、受信処理モジュール311bにしたがって、応答処理を行ない(4]応答処理)、バッファ321を解放する(5]解放)。
特開2006−139766号公報
バッファ321の数は有限であるが、その上限を超えて送信要求が発生した場合にも対応できるように、外部デバイスアクセス装置のメモリ領域には、図9に示すように待ち行列322が設けられている。待ち行列322は、バッファ321の上限を超えて蓄積できなくなったアクセス要求に関する情報をFIFOで格納する領域である。なお、待ち行列322に蓄積されるアクセス要求に関する情報は、バッファ321に蓄積されるアクセス要求よりも情報量が少なく、サイズが小さいものとする。
図9、図10を参照し、待ち行列322を使用したときのアクセス手順についてプログラム単位C310cに注目して説明する。ここでは、プログラム単位A310aがアクセス要求をバッファ321に蓄積し、さらに、プログラム単位B310bがアクセス要求をバッファ321に蓄積した時点で、バッファ321がすべて埋まったものとする。
このため、プログラム単位C310cからのアクセス要求は、バッファ321に蓄積することはできず、アクセス要求に関する情報が待ち行列322に蓄積される(図9、図10の1]待ち行列に蓄積)。
プログラム単位A310aに外部デバイス201から応答(2]応答)があると、プログラム単位A310aは、応答処理を行ない(3]応答処理)、バッファ321を解放する(4]バッファ解放)。また、プログラム単位B310bに外部デバイス201から応答があると、プログラム単位B310bは、応答処理を行ない、バッファ321を解放する。
バッファが解放された後、実行順がプログラム単位C310cに切替えられると、プログラム単位C310cは、待ち行列322に蓄積されているアクセス要求に関する情報を、バッファ321に詰め替え(5]詰替)、外部デバイス201に送信する(6]送信)。そして、応答待ち状態となる。
このように、待ち行列322に蓄積された後の詰替処理と外部デバイス201へのアクセス要求送信は、実行順が回ってきて送信処理実行の際に行なわれるため、図10に示すように、1]待ち行列に蓄積してから、6]送信するまでに送信遅延が発生する。
この送信遅延は、送信関連処理だけでなく、送信関連処理以外の処理を行ないたいために、所定期間内に行なう送信関連処理の回数や、時間に制限を持たせている場合に顕著となる。例えば、図11に示すように、1秒間に行なえる送信関連処理を1回に制限している場合には、プログラム単位C310cの処理スケジュールが示すように、バッファ321が埋まっており、待ち行列に蓄積されると、プログラム単位A310aのバッファ解放によりバッファ321に空きができても、詰替を行なってアクセス要求を送信できるのは、次の1秒サイクルになってしまい、送信遅延が拡大することになり。この送信遅延は、通信以外の処理にも影響を与え、通信以外の処理の実行も遅延することになる。
また、別例として、従来の外部デバイスアクセス装置の外部デバイスに対するアクセスは、図12、図13に示すような手順で行なわれる場合もある。別例においても、バッファ321が埋まっている場合、プログラム単位C310cからのアクセス要求は、アクセス要求に関する情報が待ち行列322に蓄積される(図12、図13の1]待ち行列に蓄積)。
そして、プログラム単位A310aに外部デバイス201から応答(2]応答)があると、プログラム単位A310aは、応答処理を行ない(3]応答処理)、バッファ321を解放するとともに(4]バッファ解放)、待ち行列322に蓄積されているアクセス要求に関する情報を、バッファ321に詰め替える(5]詰替)。すなわち、バッファ321の解放を行なったプログラム単位310がアクセス要求の詰め替え処理を引き続き行なう。
その後、実行順がプログラム単位C310cに切替えられると、プログラム単位C310cは、バッファ321に詰め替えられているアクセス要求を、外部デバイス201に送信する(6]送信)。そして、応答待ち状態となる。
この場合も、実際にアクセス要求を送信するのは、実行順がプログラム単位C310cに切替えられたタイミングであるため、図13に示すように、1]待ち行列に蓄積してから、6]送信するまでに送信遅延が発生することになる。
また、この送信遅延は、上記の例と同様に、送信関連処理だけでなく送信関連処理以外の処理を行ないたいために、所定期間内に行なう送信関連処理の回数や、時間に制限を持たせている場合に顕著となる。例えば、図14に示すように、1秒間に行なえる送信関連処理を1回に制限している場合には、プログラム単位C310cの処理スケジュールが示すように、バッファ321が埋まっており、待ち行列に蓄積されると、プログラム単位A310aがバッファ321を解放して詰替を行なっても、アクセス要求を送信できるのは、次の1秒サイクルになってしまい、送信遅延が拡大することになり。この遅延は、通信以外の処理にも影響を与え、通信以外の処理の実行も遅延することになる。
そこで、本発明は、外部デバイスへのアクセス要求を蓄積するバッファに空きがない場合におけるアクセス要求の送信待ち時間を短縮することを目的とする。
上記課題を解決するため、本発明によれば、外部デバイスに対するアクセス処理を行なうための送信処理部と受信処理部とを含んだ処理実行単位を複数有し、前記処理実行単位を切替えて実行させる制御部と、前記送信処理部による外部デバイスに対するアクセス要求を蓄積するバッファ部と、前記バッファ部に空きがない場合に、前記アクセス要求に関する情報を蓄積する待ち行列部とを備え、前記受信処理部は、外部デバイスからアクセス要求に対する応答を受信すると、応答処理を行ない、対応するバッファ部を解放した後、前記待ち行列部にアクセス要求に関する情報が蓄積されている場合には、当該アクセス要求に関する情報の前記バッファへの詰替を行なうとともに、当該アクセス要求に関する情報に対応するアクセス要求を、対応する外部デバイスに送信することを特徴とする外部デバイスアクセス装置が提供される。
また、本発明によれば、外部デバイスに対するアクセス処理を行なうための送信処理部と受信処理部とを含んだ処理実行単位を複数有し、前記処理実行単位を切替えて実行させる制御部と、前記送信処理部による外部デバイスに対するアクセス要求を蓄積するバッファ部と、前記バッファ部に空きがない場合に、前記アクセス要求に関する情報を蓄積する待ち行列部として情報処理装置を機能させるコンピュータプログラムであって、前記受信処理部は、外部デバイスからアクセス要求に対する応答を受信すると、応答処理を行ない、対応するバッファ部を解放した後、前記待ち行列部にアクセス要求に関する情報が蓄積されている場合には、当該アクセス要求に関する情報の前記バッファへの詰替を行なうとともに、当該アクセス要求に関する情報に対応するアクセス要求を、対応する外部デバイスに送信することを特徴とするコンピュータプログラムが提供される。
本発明によれば、受信処理において、バッファの解放を行なうとともに、待ち行列に蓄積されたアクセス要求に関する情報に対応するアクセス要求を外部デバイスに送信するため、外部デバイスへのアクセス要求を蓄積するバッファに空きがない場合におけるアクセス要求の送信待ち時間を短縮することができる。
本実施形態に係る外部デバイスアクセスシステムの構成を示すブロック図である。 MPUで起動するプログラム単位について説明するための図である。 本実施形態における受信処理モジュールの動作について説明するためのフローチャートである。 本実施形態の受信処理の手順について説明するための図である。 本実施形態の受信処理の手順について説明するための図である。 1秒間に行なえる送信関連処理を1回に制限している場合の本実施形態の処理スケジュールを説明するための図である。 従来の外部デバイスアクセス装置の外部デバイスに対するアクセス手順について説明するための図である。 プログラム単位の外部デバイスへのアクセス手順について説明するための図である。 待ち行列について説明するための図である。 待ち行列を使用したときのアクセス手順について説明するための図である。 1秒間に行なえる送信関連処理を1回に制限している場合の処理スケジュールを説明するための図である。 従来の外部デバイスアクセス装置の外部デバイスに対するアクセス手順の他の例について説明するための図である。 プログラム単位の外部デバイスへのアクセス手順の他の例について説明するための図である。 1秒間に行なえる送信関連処理を1回に制限している場合の処理スケジュールを説明するための図である。
本発明の実施の形態について図面を参照して説明する。図1は、本実施形態に係る外部デバイスアクセスシステムの構成を示すブロック図である。本図に示すように外部デバイスアクセスシステムは、外部デバイスアクセス装置10が、複数台の外部デバイス201と接続されて構成される。例えば、外部デバイスアクセス装置10は、フィールド・コントロール・システムとして、外部デバイス201をフィールド機器とすることができるが、外部デバイスアクセスシステムは、これらの装置に限られない。また、外部デバイスアクセス装置10は、所定のコンピュータプログラムをインストールした汎用的な情報処理装置を用いて構成することもできる。
外部デバイスアクセス装置10は、MPU100と、メモリ120と、外部デバイスと通信を行なうための通信I/F140とを備えており、それぞれが内部バスによって接続されている。ここで、MPU100は、制御部として機能する。
図2に示すように、外部デバイスアクセス装置10のMPU100では、プログラム単位A110a、プログラム単位B110b、プログラム単位C110cが起動しており、プログラム切替部101により、プログラム単位110の実行が切替えられている。ここで、プログラム切替部101は、プログラム単位A110a、プログラム単位B110b、プログラム単位C110cの順で実行を切替えるものとする。
各プログラム単位110は、送信処理モジュール111と、受信処理モジュール112を含んでおり、これらのモジュールにしたがって、外部デバイスアクセス装置10に接続された外部デバイス(1)201a、外部デバイス(2)201b、外部デバイス(3)201c…外部デバイス(N)201nに対するアクセス処理を行なう。
なお、プログラム単位110は、処理実行単位として機能し、送信処理モジュール111は、送信処理部として機能し、受信処理モジュール112は、受信処理部として機能する。
また、外部デバイスアクセス装置10のメモリ120には、バッファ部として機能するバッファ121および待ち行列部として機能する待ち行列122が設けられている。バッファ121は、プログラム単位110が、外部デバイス201にアクセス要求送信後、外部デバイス201からの応答を待つ間、アクセス要求を保持するために用いられる。待ち行列122は、バッファ121が埋まっている場合に、アクセス要求に関する情報を蓄積するために用いられる。
次に、本実施形態における受信処理モジュール112の動作について図3のフローチャートを参照して説明する。本図に示すように、送信処理モジュール111により、アクセス要求が外部デバイス201に送信され、応答待ち状態にあるときに、外部デバイス201から応答があった場合(S101:Yes)は、応答に対する応答処理を行なって(S102)、バッファ121を解放する(S103)。
その後、待ち行列122にアクセス要求に関する情報が蓄積されているかどうかを判定し(S104)、待ち行列122にアクセス要求に関する情報が蓄積されていれば(S104:Yes)、アクセス要求の詰替を行なう(S105)。アクセス要求の詰替は、例えば、待ち行列122にアクセス要求に関する情報を蓄積したプログラム単位110を動作させたり、待ち行列122にアクセス要求に関する情報を蓄積したプログラム単位110から情報を取得することで行なうことができる。
さらに、受信処理モジュール112は、詰め替えられたアクセス要求を外部デバイスに対して送信する(S106)。このように、本実施形態では、受信処理モジュール112における応答処理において、バッファの解放を行なった際に、待ち行列122にアクセス要求に関する情報が蓄積されている場合には、詰替を実行するのみならず、アクセス要求の送信まで実行することにより、待ち行列122への蓄積からアクセス要求送信までの送信遅延を短縮するようにしている。
図4、図5を参照して、本実施形態の受信処理の手順についてプログラム単位A110cに注目して説明する。ここでは、プログラム単位A110aが、アクセス要求をバッファ121に蓄積し、さらに、プログラム単位B110bが、アクセス要求をバッファ121に蓄積した時点で、バッファ121がすべて埋まったものとする。
このため、プログラム単位C110cからのアクセス要求は、バッファ121に蓄積することはできず、アクセス要求に関する情報が待ち行列122に蓄積される(図4、図5の1]待ち行列に蓄積)。
プログラム単位A110aに外部デバイス201から応答(2]応答)があると、プログラム単位A110aは、応答処理を行ない(3]応答処理)、バッファ121を解放するとともに(4]バッファ解放)、待ち行列122に蓄積されているアクセス要求に関する情報を、バッファ121に詰め替える(5]詰替)。そして、さらに、詰め替えたアクセス要求を外部デバイス201に対して送信する(6]送信)。
この結果、図5に示すように、プログラム単位C110cでは、従来のスケジュールと比較して、待ち行列122に蓄積してからアクセス要求が送信されるまでの送信待ち時間が短縮されることになる。
また、この送信待ちの短縮は、送信関連処理だけでなく送信関連処理以外の処理を行ないたいために、所定期間内に行なう送信関連処理の回数や、時間に制限を持たせている場合にも効果を奏する。例えば、図6に示すように、1秒間に行なえる送信関連処理を1回に制限している場合には、プログラム単位C110cの処理スケジュールが示すように、プログラム単位A110aがバッファ121を解放した後、詰替および送信を行なうため、従来のスケジュールと比較して、待ち行列122に蓄積してからアクセス要求が送信されるまでの送信待ち時間が大きく短縮されることになる。また、この送信待ち時間の短縮により、通信以外の処理の実行待ち時間を短縮することができる。
10…外部デバイスアクセス装置、101…プログラム切替部、110…プログラム単位、111…送信処理モジュール、112…受信処理モジュール、120…メモリ、121…バッファ、122…待ち行行列、140…通信I/F、201…外部デバイス、301…プログラム切替部、310…プログラム単位、311…送信処理モジュール、312…受信処理モジュール、321…バッファ、322…待ち行列

Claims (2)

  1. 外部デバイスに対するアクセス処理を行なうための送信処理部と受信処理部とを含んだ処理実行単位を複数有し、前記処理実行単位を切替えて実行させる制御部と、
    前記送信処理部による外部デバイスに対するアクセス要求を蓄積するバッファ部と、
    前記バッファ部に空きがない場合に、前記アクセス要求に関する情報を蓄積する待ち行列部とを備え、
    前記受信処理部は、外部デバイスからアクセス要求に対する応答を受信すると、応答処理を行ない、対応するバッファ部を解放した後、前記待ち行列部にアクセス要求に関する情報が蓄積されている場合には、他の処理実行単位が行なったアクセス要求であっても、当該アクセス要求に関する情報の前記バッファへの詰替を行なうとともに、当該アクセス要求に関する情報に対応するアクセス要求を、対応する外部デバイスに送信することを特徴とする外部デバイスアクセス装置。
  2. 外部デバイスに対するアクセス処理を行なうための送信処理部と受信処理部とを含んだ処理実行単位を複数有し、前記処理実行単位を切替えて実行させる制御部と、
    前記送信処理部による外部デバイスに対するアクセス要求を蓄積するバッファ部と、
    前記バッファ部に空きがない場合に、前記アクセス要求に関する情報を蓄積する待ち行列部として情報処理装置を機能させるコンピュータプログラムであって、
    前記受信処理部は、外部デバイスからアクセス要求に対する応答を受信すると、応答処理を行ない、対応するバッファ部を解放した後、前記待ち行列部にアクセス要求に関する情報が蓄積されている場合には、他の処理実行単位が行なったアクセス要求であっても、当該アクセス要求に関する情報の前記バッファへの詰替を行なうとともに、当該アクセス要求に関する情報に対応するアクセス要求を、対応する外部デバイスに送信することを特徴とするコンピュータプログラム。
JP2010226759A 2010-10-06 2010-10-06 外部デバイスアクセス装置およびコンピュータプログラム Active JP5652648B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010226759A JP5652648B2 (ja) 2010-10-06 2010-10-06 外部デバイスアクセス装置およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010226759A JP5652648B2 (ja) 2010-10-06 2010-10-06 外部デバイスアクセス装置およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2012079275A JP2012079275A (ja) 2012-04-19
JP5652648B2 true JP5652648B2 (ja) 2015-01-14

Family

ID=46239393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010226759A Active JP5652648B2 (ja) 2010-10-06 2010-10-06 外部デバイスアクセス装置およびコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP5652648B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644789A (en) * 1995-01-19 1997-07-01 Hewlett-Packard Company System and method for handling I/O requests over an interface bus to a storage disk array
JP3257484B2 (ja) * 1997-11-05 2002-02-18 日本電気株式会社 コンピュータの通信フロー制御方式,方法および記録媒体
JP2001209607A (ja) * 2000-01-27 2001-08-03 Nec Software Nagano Ltd ドライバ、デバイスのドライブ方法、オペレーティングシステム、記録媒体
US8661458B2 (en) * 2008-03-11 2014-02-25 Nec Corporation Multiprocessor system, and method for shared use of devices among operating systems of multiprocessor system

Also Published As

Publication number Publication date
JP2012079275A (ja) 2012-04-19

Similar Documents

Publication Publication Date Title
JP4456490B2 (ja) Dma装置
US8615629B2 (en) Access scheduler
JP4723260B2 (ja) ソースデバイスに対するリクエストをスケジューリングする装置及び方法
TWI498918B (zh) 存取緩衝器
EP2548127B1 (en) Requests and data handling in a bus architecture
KR100932408B1 (ko) 스위치 매트릭스를 통한 데이터 전송을 개선하는 흐름 제어방법
EP2377026B1 (en) Resolving contention between data bursts
WO2011089660A1 (ja) バス調停装置
US20140122790A1 (en) Dynamic priority management of memory access
JP2007079789A (ja) 計算機システム及びイベント処理方法
US7975090B2 (en) Method for efficient I/O controller processor interconnect coupling supporting push-pull DMA read operations
JP2009508215A (ja) メモリアクセス要求の遅延アービトレーション
US9367349B2 (en) Multi-core system and scheduling method
EP1895432B1 (en) Multiprocessor system
JP3999943B2 (ja) マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
JP5652648B2 (ja) 外部デバイスアクセス装置およびコンピュータプログラム
JP4856413B2 (ja) 演算処理装置、情報処理装置、及び演算処理装置の制御方法
JP2007249357A (ja) 情報処理装置、分散処理システム及びタスク管理方法
US9442761B2 (en) Sequence controller
WO2013062109A1 (ja) I/oデバイス制御システムおよびi/oデバイス制御方法
JP4924970B2 (ja) データ処理システム
JP4877317B2 (ja) 情報処理装置、割り込み制御方法
JP2015208004A (ja) 複数の待ち行列のうちの1つを選択する方法
JP2017102560A (ja) データバッファ装置、及びfifo制御方法
JP2007323256A (ja) 割込制御方法および情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140710

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141105

R150 Certificate of patent or registration of utility model

Ref document number: 5652648

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250