(57)【要約】【課題】構成を複雑化することなく、効率的にデータ読み出し時間を短縮できるデータ読み出し装置を提供する。【解決手段】複数の先読み回路Ｃ１，Ｃ２，Ｃ３は、データ保管部５の予め定められたアドレスからデータを先読みする。選択手段３１は、先読み回路Ｃ１，Ｃ２，Ｃ３で先読みしたデータの中から必要なデータを選択する。選択手段３１によりデータが選択された場合、当該先読み回路Ｃ１，Ｃ２，Ｃ３は、データ保管部５の予め定められたアドレスから次のデータを先読みする。【選択図】図１
2008242870.tif 000002
【特許請求の範囲】
【請求項１】
データの先読みにより読み出し時間を短縮するデータ読み出し装置において、
データ保管部の予め定められたアドレスからデータを先読みする複数の先読み回路と、
前記先読み回路で先読みしたデータの中から必要なデータを選択する選択手段と、
を備え、
前記選択手段によりデータが選択された場合、当該先読み回路は、前記データ保管部の予め定められたアドレスから次のデータを先読みすることを特徴とするデータ読み出し装置。
【請求項２】
前記先読み回路により先読みされるデータのアドレスは、アドレス初期値と、加算値とにより規定され、次のアドレスは、現在のアドレスに前記加算値を加算することで求められることを特徴とする請求項１に記載のデータ読み出し装置。
【請求項３】
個々の前記先読み回路に与えられる前記アドレス初期値は、互いに非連続の値であることを特徴とする請求項２に記載のデータ読み出し装置。
【請求項４】
前記加算値は、１以外の整数であることを特徴とする請求項２または３に記載のデータ読み出し装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの先読みにより読み出し時間を短縮するデータ読み出し装置に関する。
【背景技術】
【０００２】
プログラマブルコントローラにより、フィールド機器の状態や計測値、あるいは稼動実績などのデータを用いた情報処理を実行させる場合、格納されたデータを随時読み出しながら、ＭＰＵなどの演算処理装置において、各種演算、印刷、他のコンピュータへのデータ転送等の処理が実行される。データが格納されるデータ保管部には、通常、ＳＲＡＭ、フラッシュメモリ等の半導体メモリが使用される。一般に、演算処理装置は高速でデータ読み出す能力を有するが、データ保管部はその速度に対応することができず、遅延回路を設けることにより、データ保管部からのデータ読み出しが終了するまで演算処理装置を待機させる方法が採られる場合がある。
【０００３】
また、データの読み出しにかかる時間を短縮する技術としては、キャッシュ回路や先読み回路を用いる方法がある。キャッシュ回路を用いる場合には、１度読み出したアドレスとデータを、読み出し時間を短時間にできる半導体メモリに保管しておき、次回、同一アドレスからデータを読み出す際には、データ保管部ではなく、この半導体メモリからデータを読み出すことで読み出し時間を短縮している。
【０００４】
一方、先読み回路は、連続したアドレスのデータをデータ保管部から読み出す場合等に用いられる。例えば、アドレス値「０ｘ１０００」のデータを読み出した後、演算処理装置が他の情報処理、例えば演算や通信処理を行っている間に、先読み回路が次のアドレス値「０ｘ１００１」のデータを読み出し、先読み回路内の高速な半導体メモリに保管する。次に、演算処理装置がアドレス値「０ｘ１００１」のデータを読み出そうとした際には、低速なデータ保管部ではなく、先読み回路から読み出すことで、読み出し時間が短縮される。
【特許文献１】特開平１１−２８２６３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、遅延回路を設ける場合には、データ保管部からデータを読み出すのに長時間を要し、その間、データ読み出しのために演算処理装置が待たされる。このため、高速な演算処理装置をしようしたとしても、システムとしての高速化を図ることができない。
【０００６】
また、キャッシュ回路を用いる方法は、過去のアドレスと同一アドレスからの読み出しを行う場合には効果を発揮する。しかし、例えば、プログラマブルコントローラが一定時間ごとに計測値や機器情報を読み出し、これを他の機器へ転送するような処理を行う場合には、同一アドレスのデータを繰り返し読み出すことはなく、読み出し時間を短縮できない。
【０００７】
また、先読み回路を用いることは、連続するアドレスから順次データを読み出す場合に効果がある。しかし、例えば、アドレス値「０ｘ１０００」の計測データを読み出した後、アドレス値「０ｘ２０００」の機器情報を読み出し、次に、アドレス値「０ｘ１００２」およびアドレス値「０ｘ２００１」の計測データおよび機器情報を読み出すような場合には、効果が抑制される。さらに、このような読み込み手順に対応するため、次に読み込まれるデータのアドレスを予測する複雑な機構を用意することもできるが、回路構成が大規模になってしまう。
【０００８】
本発明の目的は、構成を複雑化することなく、効率的にデータ読み出し時間を短縮できるデータ読み出し装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明のデータ読み出し装置は、データの先読みにより読み出し時間を短縮するデータ読み出し装置において、データ保管部の予め定められたアドレスからデータを先読みする複数の先読み回路と、前記先読み回路で先読みしたデータの中から必要なデータを選択する選択手段と、を備え、前記選択手段によりデータが選択された場合、当該先読み回路は、前記データ保管部の予め定められたアドレスから次のデータを先読みすることを特徴とする。
このデータ読み出し装置によれば、複数の先読み回路により、予め定められたアドレスからデータを先読みし、データが選択された先読み回路は、予め定められたアドレスから次のデータを先読みするので、データの読み出し時間を短縮できる。
【００１０】
前記先読み回路により先読みされるデータのアドレスは、アドレス初期値と、加算値とにより規定され、次のアドレスは、現在のアドレスに前記加算値を加算することで求められてもよい。
【００１１】
個々の前記先読み回路に与えられる前記アドレス初期値は、互いに非連続の値であってもよい。
【００１２】
前記加算値は、１以外の整数であってもよい。
【発明の効果】
【００１３】
本発明のデータ読み出し装置によれば、複数の先読み回路により、予め定められたアドレスからデータを先読みし、データが選択された先読み回路は、予め定められたアドレスから次のデータを先読みするので、データの読み出し時間を短縮できる。
【発明を実施するための最良の形態】
【００１４】
以下、図１〜図３を参照して、本発明によるデータ読み出し装置の一実施形態について説明する。
【００１５】
図１は、本実施形態のデータ読み出し装置を用いた情報処理システムの構成を示すブロック図、図２は先読み回路の構成を示すブロック図である。この情報処理システムは、プログラマブルコントローラを用いて構成されている。
【００１６】
図１に示すように、本実施形態のデータ読み出し装置１００は、情報処理装置としてのＣＰＵ４と、データ群を格納するデータ保管部５との間に接続され、データ保管部５に格納されたデータを随時、ＣＰＵ４に与える機能を有する。
【００１７】
図１に示すように、データ読み出し装置１００は、ＣＰＵ４で使用されるデータをデータ保管部５からそれぞれ先読みする先読み回路Ｃ１、先読み回路Ｃ２および先読み回路Ｃ３と、先読み回路Ｃ１、先読み回路Ｃ２および先読み回路Ｃ３で読み込まれたデータから１つのデータを選択するためのデータ切替回路１と、読み出しアドレスを選択するためのアドレス切替回路２と、データ切替回路１およびアドレス切替回路２を制御する制御部３と、を備える。図１に示すように、制御部３は選択手段３１を構成する。
【００１８】
図２に示すように、先読み回路Ｃ１は、データ保管部５から先読みされたデータのアドレスを順次、記憶するアドレスＦＩＦＯ６１と、データ保管部５から先読みされたデータを順次、記憶するデータＦＩＦＯ６２と、データ保管部５から先読みされるデータのアドレスを格納するアドレスレジスタ６３と、アドレスレジスタ６３のアドレスにアドレス加算値を加算する加算器６４と、アドレス初期値を格納する格納部６５と、上記アドレス加算値を格納する格納部６６と、アドレスＦＩＦＯ６１に記憶されたアドレスとＣＰＵ４から指定された読み出しアドレスとを比較するアドレス比較器６７と、を具備する。
【００１９】
格納部６５に格納される上記アドレス初期値は、先読み回路Ｃ１により先読みされる最初のデータのアドレス値を示す。また、格納部６６に格納される上記アドレス加算値は、先読み回路Ｃ１により順次先読みされるデータのアドレス値の差分を示す。例えば、アドレス初期値を「０ｘ１０００」、アドレス加算値を「０ｘ０００２」とした場合、先読み回路Ｃ１は、アドレス値「０ｘ１０００」、アドレス値「０ｘ１００２」、アドレス値「０ｘ１００４」、アドレス値「０ｘ１００６」・・・の順にデータを読み込む。アドレス加算値として補数を用いることで、アドレス値を減らしていくこともできる。例えば、１６進でアドレスの桁数が４桁の場合、「０ｘ０００２」の１の補数は、「０ｘｆｆｆｅ」となる。
【００２０】
先読み回路Ｃ１では、順次、先読みされるデータのアドレス値を加算器６４により算出し、アドレスレジスタ６３に格納する。先読み回路Ｃ１は、アドレスレジスタ６３に格納されているアドレス値を読み出しアドレス（読み出しアドレス＃１）として、データ保管部５のデータを先読みする。
【００２１】
読み出されたデータはデータＦＩＦＯ６２に、そのデータの読み出しアドレス＃１はアドレスＦＩＦＯ６１に、それぞれ格納される。
【００２２】
先読み回路Ｃ２および先読み回路Ｃ３も、先読み回路Ｃ１と同様に構成されており、アドレス初期値およびアドレス加算値が個々に設定される。
【００２３】
次に、データ読み出し装置１００の動作について説明する。
【００２４】
図３は、データ読み出し装置１００の制御部３の動作手順を示すフローチャートである。
【００２５】
図３のステップＳ１では、ＣＰＵ４からデータの読み出しアドレス（読み出しアドレス＃０）が指定されるのを待って、ステップＳ２へ進む。図１および図２に示すように、ＣＰＵ４で指定された読み出しアドレス＃０は、先読み回路Ｃ１〜Ｃ３に与えられ、それぞれの先読み回路のアドレス比較器６７では、アドレスＦＩＦＯ６１に格納されている読み出しアドレス（読み出しアドレス＃１、＃２、＃３）と、読み出しアドレス＃０とを比較する。両者が一致した場合には、アドレス比較器６７からアドレス一致信号を出力する。
【００２６】
次に、ステップＳ２では、先読み回路Ｃ１からアドレス一致信号が出力されているか否か判断し、判断が肯定されればステップＳ３へ進み、判断が否定されればステップＳ４へ進む。
【００２７】
ステップＳ３では、選択手段３１（図１）から出力データ制御信号を出力することでデータ切替回路１を制御し、先読み回路Ｃ１の読み出しデータ＃１を最終読み出しデータとしてＣＰＵ４に渡す。また、出力アドレス制御信号によりアドレス切替回路２を制御し、先読み回路Ｃ１を選択する。先読み回路Ｃ１は、加算器６４により算出されアドレスレジスタ６３に格納された次の読み出しアドレスのデータ（読み出しデータ）を、データ保管部５から先読みする動作に移行する。
【００２８】
ステップＳ３の処理の後、ステップＳ１へ戻る。
【００２９】
次に、ステップＳ４では、先読み回路Ｃ２からアドレス一致信号が出力されているか否か判断し、判断が肯定されればステップＳ５へ進み、判断が否定されればステップＳ６へ進む。
【００３０】
ステップＳ５では、選択手段３１から出力データ制御信号を出力することでデータ切替回路１を制御し、先読み回路Ｃ２の読み出しデータ＃２を最終読み出しデータとしてＣＰＵ４に渡す。また、出力アドレス制御信号によりアドレス切替回路２を制御し、先読み回路Ｃ２を選択する。先読み回路Ｃ２は、加算器６４により算出されアドレスレジスタ６３に格納された次の読み出しアドレスのデータ（読み出しデータ）を、データ保管部５から先読みする動作に移行する。
【００３１】
ステップＳ５の処理の後、ステップＳ１へ戻る。
【００３２】
次に、ステップＳ６では、先読み回路Ｃ３からアドレス一致信号が出力されているか否か判断し、判断が肯定されればステップＳ７へ進み、判断が否定されればステップＳ８へ進む。
【００３３】
ステップＳ７では、選択手段３１から出力データ制御信号を出力することでデータ切替回路１を制御し、先読み回路Ｃ３の読み出しデータ＃３を最終読み出しデータとしてＣＰＵ４に渡す。また、出力アドレス制御信号によりアドレス切替回路２を制御し、先読み回路Ｃ３を選択する。先読み回路Ｃ３は、加算器６４により算出されアドレスレジスタ６３に格納された次の読み出しアドレスのデータ（読み出しデータ）を、データ保管部５から先読みする動作に移行する。
【００３４】
ステップＳ７の処理の後、ステップＳ１へ戻る。
【００３５】
次に、ステップＳ８では、選択手段３１から出力データ制御信号を出力することでデータ切替回路１を制御し、データ保管部５とＣＰＵ４とを接続し、ステップＳ１へ戻る。この場合、ＣＰＵ４はデータ保管部５から読み出しアドレス＃０の読み出しデータ＃０を読み出す。ステップＳ８の処理は、いずれの先読み回路からもアドレス一致信号が出力されない場合に実行され、この場合には、データの読み出し時間は、データ保管部５によって規定されることになる。
【００３６】
このように、本実施形態のデータ読み出し装置１００によれば、ＣＰＵ４が所定の情報処理を実行している間に、先読み回路Ｃ１〜Ｃ３によりデータを先読みし、読み出しアドレスが一致するデータが先読み回路Ｃ１〜Ｃ３のいずれかにある場合には、ＣＰＵ４は当該データを該当する先読み回路からに読み出している。このため、データの読み出しに要する時間を短縮できる。
【００３７】
例えば、データ保管部５からのデータの読み出し時間を１００ｎｓ、先読み回路Ｃ１〜Ｃ３からＣＰＵ４へのデータの読み出し時間を１０ｎｓとする。また、先読み回路Ｃ１のアドレス初期値を「０ｘ１０００」、先読み回路Ｃ１の加算値を「０ｘ０００２」、先読み回路Ｃ２のアドレス初期値を「０ｘ３０００」、先読み回路Ｃ２の加算値を「０ｘｆｆｆｆ」、先読み回路Ｃ３のアドレス初期値を「０ｘ４０００」、先読み回路Ｃ３の加算値を「０ｘ０００１」とする。
【００３８】
ＣＰＵ４がアドレス値「０ｘ１０００」、「０ｘ３０００」、「０ｘ４０００」、「０ｘ１００２」、「０ｘ２ｆｆｆ」、「０ｘ４００１」の順に、計６データを読み出す場合、ＣＰＵ４がデータ読み出しに要する時間は、
６×１０ｎｓ＝６０ｎｓ
となり、ＣＰＵ４がデータ保管部５から直接データを読み込む場合の時間
６×１００ｎｓ＝６００ｎｓ
と比較して大幅に短縮される。
【００３９】
先読み回路Ｃ１〜Ｃ３におけるデータ保管部５からのデータの読み出し時間は１００ｎｓである。しかし、通常、ＣＰＵ４ではデータ読み出し以外の情報処理に長時間（１００ｎｓ以上）を費やすため、先読み回路Ｃ１〜Ｃ３によるデータの先読みが、ＣＰＵ４のデータ読み出しのタイミングに間に合わないという事態は事実上発生しない。
【００４０】
なお、同様に６つのデータを読み出す場合、仮に、先読み回路が２つであれば、ＣＰＵ４がデータ読み出しに要する時間は、
４×１０ｎｓ＋２×１００ｎｓ＝２４０ｎｓ
となる。
【００４１】
また、本実施形態のデータ読み出し装置１００では、先読み回路Ｃ１〜Ｃ３に任意のアドレス初期値およびアドレス加算値を設定できるため、情報処理の内容に応じて適切な先読みのアルゴリズムを得ることができる。例えば、アドレス初期値として、先読み回路ごとに連続しない互いに離れた値を設定できる。また、アドレス加算値として、２以上の整数や、負の整数を与えることもできる。
【００４２】
アドレス初期値およびアドレス加算値はプログラムの一部またはプログラムに対応するデータとして与えることができ、ユーザがそれらの値を自由に設定できる。プログラマブルコントローラの情報処理で読み出されるデータの順序は、プログラムに従っているため、本実施形態で示した方法は、複雑な機構を用いて次に読み出されるデータのアドレスを予測する方法よりも合理的といえる。
【００４３】
以上説明したように、本発明のデータ読み出し装置によれば、複数の先読み回路により、予め定められたアドレスからデータを先読みし、データが選択された先読み回路は、予め定められたアドレスから次のデータを先読みするので、データの読み出し時間を短縮できる。
【００４４】
本発明の適用範囲は上記実施形態に限定されることはない。本発明は、データの先読みにより読み出し時間を短縮するデータ読み出し装置に対し、広く適用することができる。
【図面の簡単な説明】
【００４５】
【図１】一実施形態のデータ読み出し装置を用いた情報処理システムの構成を示すブロック図。
【図２】先読み回路の構成を示すブロック図。
【図３】データ読み出し装置の制御部の動作手順を示すフローチャート。
【符号の説明】
【００４６】
５      データ保管部
３１    選択手段
１００  データ読み出し装置
Ｃ１，Ｃ２，Ｃ３  先読み回路
【図１】
2008242870.tif 000003
【図２】
2008242870.tif 000004
【図３】
2008242870.tif 000005