(57)【要約】【課題】優先順位の低いデータの滞留時間が長くなることを抑制可能にしたデータ転送装置を提供する。【解決手段】予め決められた優先順位に対応して設けられ、入力されるデータを保存し、データの保存時間を計測する複数のバッファ部と、複数のバッファ部に格納されるデータの出力順序を優先順位にしたがって決める調停回路と、複数のバッファ部のそれぞれが計測する保存時間のうち、いずれかの保存時間が第１の閾値に達すると、保存時間が第１の閾値に達したデータの出力順序を、調停回路が決めた出力順序のうち最も早い順序に設定する制御部と、を有する。【選択図】図１
2013235370.tif 000002
【特許請求の範囲】
【請求項１】
予め決められた優先順位に対応して設けられ、入力されるデータを保存し、該データの保存時間を計測する複数のバッファ部と、
前記複数のバッファ部に格納されるデータの出力順序を、前記優先順位にしたがって決める調停回路と、
前記複数のバッファ部のそれぞれが計測する前記保存時間のうち、いずれかの保存時間が第１の閾値に達すると、該保存時間が第１の閾値に達したデータの出力順序を、前記調停回路が決めた出力順序のうち最も早い順序に設定する制御部と、
を有するデータ転送装置。
【請求項２】
請求項１記載のデータ転送装置において、
前記複数のバッファ部のそれぞれは、
前記データを格納するためのメモリと、
前記データが入力された時刻から前記保存時間を計測し、該保存時間が前記第１の閾値以上になると、アラーム信号を前記制御部に出力する検出部と、
前記データが前記メモリに格納されると、データの読み出しを要求する旨のリクエスト信号を前記調停回路に出力し、該リクエスト信号の出力を規制するためのマスク信号を前記制御部から受信すると、前記メモリにデータが格納されていても、前記リクエスト信号を前記調停回路に出力しないＲＥＱ制御部と、を有し、
前記調停回路は、前記リクエスト信号を出力するバッファ部のうち、前記優先順位が最も高いバッファ部に対して、データ出力を許可する旨のＡＣＫ信号を出力し、
前記制御部は、前記複数のバッファ部のうち、いずれかのバッファ部から前記アラーム信号を受信すると、該バッファ部よりも前記優先順位の高いバッファ部に前記マスク信号を出力する、データ転送装置。
【請求項３】
請求項２記載のデータ転送装置において、
前記複数のバッファ部のそれぞれは、
前記メモリから出力されるデータの転送処理にかかる時間を計測し、計測した時間が第２の閾値に達すると、前記アラーム信号を前記制御部に送信するＡＣＫ時間計測部をさらに有する、データ転送装置。
【請求項４】
予め決められた優先順位に対応して設けられ、転送対象のデータを保存するための複数のバッファ部を有するデータ転送装置によるデータ転送方法であって、
前記複数のバッファ部に格納されるデータの出力順序を前記優先順位にしたがって設定し、
前記複数のバッファ部に格納されるデータの保存時間を計測し、
前記保存時間が所定の時間に達するデータがあると、該データの出力順序を最も早い順序に設定する、データ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置およびデータ転送方法に関する。
【背景技術】
【０００２】
モバイルワイヤレス通信では、高速データ通信が可能な携帯端末のユーザ数の増加に伴ってデータ処理量が多くなり、また、個々の通信におけるブロックの転送量も大きくなり、データの転送量が爆発的に大きくなっている。
【０００３】
データの転送処理を行うデータ転送装置には、通信用に割り当てられた周波数帯域を示すチャネルに対応して、転送対象のデータを一時的に保存するためのメモリとして機能する複数のＦＩＦＯ（First In First Out）を備えているものがある。このデータ転送装置は、複数のチャネルに予め設定された優先順位にしたがって、複数のＦＩＦＯに蓄積されたデータを順次出力する制御を行う。具体的には、データ転送装置は、優先順位の高いチャネルのデータを優先して転送処理を行い、優先順位の高いチャネルのＦＩＦＯが空になってから優先順位の低いＦＩＦＯのデータの転送処理を開始する。
【０００４】
データ転送装置が上記のような制御を行うと、ユーザ数に合わせてチャネル数が多くなると、チャネルの優先順位が低くなるほど、データの滞留時間が長くなる傾向がある。また、全体のデータ処理量が増えると、優先順位の低いチャネルのデータは、滞留時間が積み重なり、優先順位の高いチャネルのデータに比べて、出力されるまでの時間が大幅に遅くなってしまうことがある。
【０００５】
また、優先順位の高いチャネルのデータの出力が続くと、優先順位の低いチャネルのデータは転送されるまで長時間待たされることになる。いずれかのＦＩＦＯが、データの蓄積数が蓄積可能なデータ数に到達したＦＵＬＬ状態になると、データ転送装置は、そのチャネルのデータを受け入れることができなくなり、チャネルのパフォーマンスが低下してしまう。
【０００６】
この問題を解決するためのバス装置の一例が特許文献１に開示されている。
【０００７】
この文献に開示されたバス装置は、データの蓄積数の多いＦＩＦＯから優先的にデータを出力し、複数のＦＩＦＯのそれぞれに蓄積されたデータの数が同等になると、予め設定された優先順位にしたがってデータを出力している。この場合、優先順位の低いデータの蓄積数が優先順位の高いデータの蓄積数を超えると、バス装置が優先順位の低いデータを出力するので、優先順位の低いデータの滞留時間が長くなるのを抑制することが可能となる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−３１６８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に開示されたバス装置では、優先順位の低いデータの蓄積数が優先順位の高いデータの蓄積数よりも少ない状態が続くと、優先順位の高いデータの転送処理が継続して行われ、優先順位の低いデータの滞留時間が長くなるという問題を解決できない。その反対に、優先順位の低いデータの蓄積数が優先順位の高いデータの蓄積数よりも多い状態が続くと、優先順位の高いデータの方が優先順位の低いデータよりも滞留時間が長くなってしまうことになる。
【００１０】
本発明は上述したような技術が有する問題点を解決するためになされたものであり、優先順位の低いデータの滞留時間が長くなることを抑制可能にしたデータ転送装置およびデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するための本発明のデータ転送装置は、
予め決められた優先順位に対応して設けられ、入力されるデータを保存し、該データの保存時間を計測する複数のバッファ部と、
前記複数のバッファ部に格納されるデータの出力順序を、前記優先順位にしたがって決める調停回路と、
前記複数のバッファ部のそれぞれが計測する前記保存時間のうち、いずれかの保存時間が第１の閾値に達すると、該保存時間が第１の閾値に達したデータの出力順序を、前記調停回路が決めた出力順序のうち最も早い順序に設定する制御部と、
を有する構成である。
【００１２】
また、本発明のデータ転送方法は、予め決められた優先順位に対応して設けられ、転送対象のデータを保存するための複数のバッファ部を有するデータ転送装置によるデータ転送方法であって、
前記複数のバッファ部に格納されるデータの出力順序を前記優先順位にしたがって設定し、
前記複数のバッファ部に格納されるデータの保存時間を計測し、
前記保存時間が所定の時間に達するデータがあると、該データの出力順序を最も早い順序に設定するものである。
【発明の効果】
【００１３】
本発明によれば、優先順位が低く、長時間滞留していたデータを出力させることができ、出力データの大幅な遅延を防ぐことができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態のデータ転送装置の一構成例を示すブロック図である。
【図２】図１に示すＲＥＱ制御部の一構成例を示すブロック図である。
【図３】図１に示す調停回路の一構成例を示すブロック図である。
【図４】第１の実施形態のデータ転送装置の動作手順を示すフローチャートである。
【図５】動作タイミングの一例を示す図である。
【図６】第２の実施形態のデータ転送装置の一構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
本実施形態のデータ転送装置の構成を説明する。図１は本実施形態のデータ転送装置の一構成例を示すブロック図である。
【００１６】
本実施形態のデータ転送装置３は、チャネル１〜チャネルｘ（ｘは２以上の整数）に対応して設けられたバッファ部１０−１〜１０−ｘと、チャネル１〜チャネルｘに予め設定された優先順位を考慮してバッファ部１０−１〜１０−ｘからのデータの読み出し順序を調停する調停回路１５と、バッファ部１０−１〜１０−ｘに格納されるデータの保存時間を監視する制御部１６とを有する。
【００１７】
バッファ部１０−１〜１０−ｘのそれぞれは、図１に示すように、ＦＩＦＯ１２と、ＲＥＱ制御部１３と、アラーム（ＡＬＭ）検出部１４とを有する。
【００１８】
マスタ１１は、ＦＩＦＯ１２へのデータの書き込みが可能か否かを示す信号wrreqと、ＦＩＦＯ１２がＦＵＬＬ状態であるか否かを示す信号であるＦＵＬＬ信号s10 fullを監視する。マスタ１１は、ＦＵＬＬ信号s10 fullが非アクティブであり、信号wrreqがアクティブであるとき、データの書き込みの合図としてライトイネーブル信号s2 weをＦＩＦＯ１２に送信し、転送対象のデータs1 dataをＦＩＦＯ１２に格納する。また、マスタ１１は、ＦＵＬＬ信号s10 fullがアクティブであるとき、ＦＩＦＯ１２に対するデータの書き込みを制限する。
【００１９】
本実施形態では、チャネルの優先順位が、チャネル１＞チャネル２＞・・・＞チャネルｘであるものとする。チャネル１の優先順位が最も高く、チャネルｘの優先順位が最も低いものとする。以下に、図１に示した各構成について詳しく説明する。
【００２０】
ＦＩＦＯ１２は、マスタ１１から入力されるデータを格納するとともに、データを保持しているか否かを示す信号emptynとして、データの読み出しを要求する旨の信号であるリードリクエスト信号s3 rdreqをＲＥＱ制御部１３に出力する。本実施形態では、ＦＩＦＯ１２は、データを保持していない場合、リードリクエスト信号s3 rdreqとしてＬｏｗレベルの電圧（「０」の情報）を出力し、データを保持している場合、リードリクエスト信号s3 rdreqとしてＨｉｇｈレベルの電圧（「１」の情報）を出力する。ＦＩＦＯ１２は、格納するデータの数が蓄積可能な最大値に達するＦＵＬＬ状態になると、ＦＵＬＬ信号s10 fullの情報を０から１に切り替える。
【００２１】
また、ＦＩＦＯ１２は、データの読み出し要求に対して、データ出力の許否を示す応答信号となるＡＣＫ信号s6 ackが調停回路１５から入力される。ＦＩＦＯ１２は、ＡＣＫ信号s6 ackの情報が０から１に変わると、読み出し対象のデータs8 rddataを調停回路１５に出力する。読み出し対象のデータは、ＦＩＦＯ１２が保持しているデータのうち、保存時間が最も長いデータである。ＦＩＦＯ１２は、ＡＣＫ信号s6 ackの情報が１のとき、データs8 rddataとして、保存時間が長いデータから順に調停回路１５に出力する。
【００２２】
図２は図１に示すＲＥＱ制御部の一構成例を示すブロック図である。
【００２３】
本実施形態におけるＲＥＱ制御部１３は、図２に示すように、リクエスト信号s5 reqの出力を制御する論理ゲートとして機能するＡＮＤ回路２１を有する。ＡＮＤ回路２１には、ＦＩＦＯ１２からリードリクエスト信号s3 rdreqが入力され、制御部１６からマスク信号s4 maskが入力される。
【００２４】
マスク信号s4 maskは、ＦＩＦＯ１２から調停回路１５へのデータ読み出し要求をマスクするため信号である。マスク信号s4 maskは、リードリクエスト信号s3 rdreqをマスクするとき「０」の情報であり、リードリクエスト信号s3 rdreqをマスクしないとき「１」の情報である。ＡＮＤ回路２１は、リードリクエスト信号s3 rdreqおよびマスク信号s4 maskの論理積を計算し、その結果として、０または１の情報のリクエスト信号s5 reqを出力する。以下では、リードリクエスト信号s3 rdreqがマスクされた状態をマスク状態と称し、リードリクエスト信号s3 rdreqがマスクされていない状態を非マスク状態と称する。
【００２５】
図２に示す構成により、ＲＥＱ制御部１３は、リードリクエスト信号s3 rdreqおよびマスク信号s4 maskの両方が１の情報であるとき、１の情報のリクエスト信号s5 reqを調停回路１５に出力する。一方、リードリクエスト信号s3 rdreqの情報が１であっても、マスク信号s4 maskが０の情報であると、ＲＥＱ制御部１３は、０の情報のリクエスト信号s5 reqを調停回路１５に出力する。
【００２６】
ＡＬＭ検出部１４は、ＲＥＱ制御部１３から出力されるリクエスト信号s5 reqがアクティブになってから、ＡＣＫ信号s6 ackがアクティブになるまでの時間を計測するカウンタ（不図示）を有する。この計測値はデータがＦＩＦＯ１２に入力された時刻からの保存時間に相当する。「リクエスト信号s5 reqがアクティブになる」とは、リクエスト信号s5 reqが０から１の情報に変わることを意味する。また、「ＡＣＫ信号s6 ackがアクティブになる」とは、ＡＣＫ信号s6 ackが０から１の情報に変わることを意味する。
【００２７】
ＡＬＭ検出部１４は、ＡＣＫ信号s6 ackがアクティブになる前に、カウンタが計測する計測値が予め設定された閾値ＴＨ１に達すると、データの保存時間が閾値ＴＨ１に達したことを警告するための信号であるＡＬＭ信号s7 almを制御部１６に出力する。以下では、データの保存時間が閾値ＴＨ１以上になった状態を「アラーム状態」と称する。本実施形態では、ＡＬＭ検出部１４は、計測値が閾値ＴＨ１に達する前までは、ＡＬＭ信号s7 almとして０の情報を制御部１６に出力し、計測値が閾値ＴＨ１に達すると、ＡＬＭ信号s7 almとして１の情報を制御部１６に出力する。
【００２８】
続いて、調停回路１５の構成を説明する。図３は図１に示す調停回路の一構成例を示すブロック図である。
【００２９】
調停回路１５は、チャネル１からチャネルｘのリクエスト信号s5 reqの入力に対して優先順位を考慮し、読み出し要求のあったバッファ部のうち、優先順位の最も高いチャネルのバッファ部に対してＡＣＫ信号s6 ackを出力する。このような調停回路１５の回路の一例を、図３を参照して説明する。
【００３０】
図３に示すように、調停回路１５は、ＡＮＤ回路３１−１〜３１−（ｘ−１）と、フリップフロップ回路（以下では、ＦＦ回路と表記する）３３−１〜３３−ｘとを有する。ＦＦ回路３３−１〜３３−ｘは、チャネル１〜チャネルｘに対応して設けられている。
【００３１】
ｋを１から（ｘ−１）のうちの任意の整数として、図３に示す構成の回路動作を簡単に説明する。ＡＮＤ回路３１−ｋには、チャネルｋのリクエスト信号s5 reqの反転信号と、チャネル（ｋ＋１）のリクエスト信号s5 reqとが入力される。
【００３２】
チャネルｋに対応するバッファ部１０−ｋとチャネル（ｋ＋１）に対応するバッファ部１０−（ｋ＋１）のそれぞれにデータが蓄積されている場合、それぞれのバッファ部から出力されるリクエスト信号s5 reqの情報は１となる。ＡＮＤ回路３１−ｋは、バッファ部１０−ｋからリクエスト信号s5 reqの反転信号として０が入力され、バッファ部１０−（ｋ＋１）からリクエスト信号s5 reqの情報として１が入力されるので、０の情報をＦＦ回路３３−（ｋ＋１）のＳ端子に出力する。
【００３３】
このとき、ＦＦ回路３３−ｋは、バッファ部１０−ｋからＳ端子に１が入力されるため、１の情報のＡＣＫ信号s6 ackをバッファ部１０−ｋに出力する。ＦＦ回路３３−（ｋ＋１）は、ＡＮＤ回路３１−ｋからＳ端子に０が入力されるため、０の情報のＡＣＫ信号s6 ackをバッファ部１０−（ｋ＋１）に出力する。
【００３４】
調停回路１５は、バッファ部１０−ｋから受け取るデータs8 rddataをデータs9 dataとして出力すると、リセット信号をＦＦ回路３３−１〜３３−ｘのそれぞれのＲ端子に出力する。このように、調停回路１５は、１つのデータの転送が完了する度に、リセット信号をＦＦ回路３３−１〜３３−ｘのそれぞれのＲ端子に出力する。バッファ部１０−ｋに蓄積されているデータの数がゼロになると、バッファ部１０−ｋからＦＦ回路３３−ｋのＳ端子に入力されるリクエスト信号s5 reqの情報が１から０に変わる。ＦＦ回路３３−ｋは、リクエスト信号s5 reqの情報が１から０に変わっても、ＡＣＫ信号s6 ackの情報を１のまま維持するが、Ｒ端子にリセット信号が入力されると、ＡＣＫ信号s6 ackの情報を１から０に切り替える。
【００３５】
また、バッファ部１０−ｋから出力されるリクエスト信号s5 reqの情報が１から０に変わるので、その反転信号となる１の情報がＡＮＤ回路３１−ｋに入力される。ＡＮＤ回路３１−ｋは、バッファ部１０−（ｋ＋１）から入力されるリクエスト信号s5 reqの情報も１なので、１の情報をＦＦ回路３３−（ｋ＋１）のＳ端子に出力する。ＦＦ回路３３−（ｋ＋１）は、ＡＮＤ回路３１−ｋからＳ端子に１の情報が入力されるため、１の情報のＡＣＫ信号s6 ackをバッファ部１０−（ｋ＋１）に出力する。このようにして、転送処理の対象が、優先順位の高いチャネルｋのデータから優先順位の低いチャネル（ｋ＋１）のデータにシフトする。
【００３６】
上述した構成により、調停回路１５は、同時に複数のチャネルのリクエスト信号s5 reqがアクティブになると、その中で一番優先順位の高いチャネルのＡＣＫ信号s6 ackを出力する。そして、調停回路１５は、一番優先順位の高いチャネルのバッファ部に蓄積されたデータの数がゼロになると、リクエスト信号s5 reqがアクティブになっているチャネルのうち、次に優先順位の高いチャネルのデータ転送処理に移行する。このようにして、データ転送処理がチャネルの優先順位に対応して順次行われる。
【００３７】
次に、制御部１６の構成を説明する。
【００３８】
制御部１６は、プログラムにしたがって処理を実行するＣＰＵ（Central Processing Unit）（不図示）と、プログラムを記憶するメモリ（不図示）とを有する。
【００３９】
制御部１６は、バッファ部１０−１〜１０−ｘから入力されるＡＬＭ信号s7 almを監視する。制御部１６は、各バッファ部から入力されるＡＬＭ信号s7 almのうち、いずれかのＡＬＭ信号s7 almが０から１の情報に変わると、アラーム状態になったチャネルのバッファ部を特定する。そして、制御部１６は、アラーム状態になったチャネルよりも優先順位の高いチャネルのバッファ部に対して、リクエスト信号s5 reqをマスクするために、０の情報のマスク信号s4 maskを出力する。
【００４０】
また、制御部１６は、バッファ部１０−１〜１０−ｘから入力されるＦＵＬＬ信号s10 fullを参照し、各バッファ部のＦＩＦＯ１２がＦＵＬＬ状態であるか否かを監視する。制御部１６は、バッファ部１０−１〜１０−ｘのうち、いずれかのバッファ部のＦＩＦＯ１２がＦＵＬＬ状態になると、ＦＵＬＬ状態のＦＩＦＯ１２のチャネルのデータ転送を優先し、ＦＵＬＬ状態ではないＦＩＦＯ１２のチャネルのデータ転送を制限するために、ＦＵＬＬ状態ではないＦＩＦＯ１２のバッファ部に対して、０の情報のマスク信号s4 maskを出力する。
【００４１】
次に、本実施形態のデータ転送装置３の動作を説明する。
【００４２】
図４は本実施形態のデータ転送装置の動作手順を示すフローチャートである。図５は動作タイミングの一例を示す図である。図５の横軸は時間軸である。
【００４３】
ここでは、説明を簡単にするために、ｎ＝２とし、使用するチャネルをチャネル１およびチャネル２の場合とする。また、チャネル１の方がチャネル２よりも優先順位が高いものとする。また、ＡＬＭ検出部１４における、転送待ちの時間を計測するカウンタ（不図示）の計測値をカウンタ値と称する。さらに、予め設定された閾値ＴＨ１を「９９９９」とし、カウンタ値が「９９９９」になったときをアラーム状態とする。
【００４４】
時刻Ｔ１において、チャネル１のバッファ部１０−１とチャネル２のバッファ部１０−２のそれぞれのＦＩＦＯ１２にデータ１が格納されると、これらのＦＩＦＯ１２は、１の情報のリードリクエスト信号s3 rdreqを出力する。それと同時に、これらのバッファ部のＲＥＱ制御部１３は、制御部１６から入力されるマスク信号s4 maskが非マスク状態を示す「１」の情報なので、リクエスト信号s5 reqはマスクされず、１の情報のリクエスト信号s5 reqを調停回路１５に出力する。
【００４５】
調停回路１５は、チャネル１とチャネル２のリクエスト信号s5 reqが入力されると、チャネル２よりも優先順位の高いチャネル１のバッファ部１０−１に対して、１の情報のＡＣＫ信号s6 ackを出力する（ステップ１０１）。バッファ部１０−１のＦＩＦＯ１２に入力されるＡＣＫ信号s6 ackの情報が０から１に変わることで、チャネル１のＦＩＦＯ１２は、データs8 rddataを調停回路１５に出力する。調停回路１５は、バッファ部１０−１のＦＩＦＯ１２からデータs8 rddataを受信すると、受信したデータs8 rddataをデータs9 dataとして外部に出力する。
【００４６】
一方、調停回路１５は、チャネル１よりも優先順位の低いチャネル２のバッファ部１０−２に対して出力するＡＣＫ信号s6 ackの情報を、０のまま維持する。チャネル２のＡＬＭ検出部１４では、カウンタ（不図示）が時刻Ｔ１を起点に指定のタイミングでカウントを開始する（ステップ１０２）。指定のタイミングとは、例えば、データが入力された時刻Ｔ１である。
【００４７】
時刻Ｔ２で、チャネル１のデータ転送処理が終了したので、バッファ部１０−１のＦＩＦＯ１２は、出力するリードリクエスト信号s3 rdreqの情報を１から０に変える。これにより、バッファ部１０−１のＲＥＱ制御部１３は、調停回路１５に出力するリクエスト信号s5 reqの情報を０にする。
【００４８】
調停回路１５は、チャネル１のリクエスト信号s5 reqが０の情報になると、チャネル１のバッファ部１０−１に出力するＡＣＫ信号s6 ackの情報を０にすると同時に、転送待ちしていた、チャネル２のバッファ部１０−２に出力するＡＣＫ信号s6 ackの情報を１にする。バッファ部１０−２のＦＩＦＯ１２に入力されるＡＣＫ信号s6 ackの情報が０から１に変わることで、チャネル２のＦＩＦＯ１２は、データs8 rddataを調停回路１５に出力する。調停回路１５は、バッファ部１０−２のＦＩＦＯ１２からデータs8 rddataを受信すると、受信したデータs8 rddataをデータs9 dataとして外部に出力する。
【００４９】
また、チャネル２のＡＬＭ検出部１４では、カウンタ（不図示）は、時刻Ｔ２でカウンタ値が９０に達しているが、ＦＩＦＯ１２に蓄積されていたデータ１の転送処理が開始されたため、カウンタ値をリセットして、カウンタ値を９０から０に戻す。
【００５０】
時刻Ｔ３で、チャネル１のＦＩＦＯ１２に新たなデータ２〜６が格納されると、ＦＩＦＯ１２がＲＥＱ制御部１３に出力するリードリクエスト信号s3 rdreqの情報が１になり、ＲＥＱ制御部１３が調停回路１５に出力するリクエスト信号s5 reqの情報が１になる。時刻Ｔ３では、チャネル２のデータ１がまだ転送処理中なので、調停回路１５からバッファ部１０−１に入力されるＡＣＫ信号s6 ackの情報は０のままなので、バッファ部１０−１は転送待ち状態となる。そのため、チャネル１のＡＬＭ検出部１４のカウンタ（不図示）はカウントを開始する。
【００５１】
時刻Ｔ４で、チャネル２のデータ１の転送処理が終了したので、調停回路１５は、バッファ部１０−２に出力するＡＣＫ信号s6 ackの情報を１から０に変更し、バッファ部１０−１に出力するＡＣＫ信号s6 ackの情報を０から１に変更する。これにより、データ転送処理の対象はチャネル２のデータからチャネル１のデータに移行する。チャネル１のＡＬＭ検出部１４のカウンタ（不図示）は、カウンタ値をリセットして、カウンタ値を５から０に戻す。
【００５２】
一方、時刻Ｔ４に、チャネル２のＦＩＦＯ１２に新たなデータ２が格納されると、ＦＩＦＯ１２がＲＥＱ制御部１３に出力するリードリクエスト信号s3 rdreqの情報が１のままであり、ＲＥＱ制御部１３が調停回路１５に出力するリクエスト信号s5 reqの情報も１の状態が維持される。この時刻Ｔ４では、調停回路１５は、チャネル１のデータ２〜６の転送処理を開始したので、バッファ部１０−２に出力するＡＣＫ信号s6 ackの情報を１から０に変更し、バッファ部１０−２は転送待ち状態となる。バッファ部１０−２のＦＩＦＯ１２は再び転送待ち状態になるので、チャネル２のＡＬＭ検出部１４のカウンタ（不図示）は、カウントを開始する（ステップ１０２）。
【００５３】
時刻Ｔ５になると、チャネル２のＡＬＭ検出部１４のカウンタ（不図示）のカウンタ値が閾値ＴＨ１の「９９９９」に達したので、ＡＬＭ検出部１４は、アラーム状態になったことを制御部１６に通知するために、制御部１６に出力するＡＬＭ信号s7 almの情報を０から１に変更する。
【００５４】
制御部１６は、チャネル２のＡＬＭ検出部１４から入力されるＡＬＭ信号s7 almの情報が０から１に変わると、ＡＬＭ検出部１４で計測されているカウンタ値が閾値ＴＨ１以上になるまで、チャネル２のＦＩＦＯ１２に蓄積されているデータが滞留していることを認識する。続いて、制御部１６は、時刻Ｔ６で、チャネル１のＲＥＱ制御部１３に出力するマスク信号s4 maskの情報を１から０に変更する。
【００５５】
チャネル１のＲＥＱ制御部１３は、ＦＩＦＯ１２から入力されるリードリクエスト信号s3 rdreqの情報が１であるが、制御部１６から入力されるマスク信号s4 maskの情報が０なので、調停回路１５に出力するリクエスト信号s5 reqの情報を１から０に変更する。その結果、バッファ部１０−１から調停回路１５へのリクエスト信号がマスクされ、チャネル１のデータに関する転送要求が一時的に制限される。
【００５６】
チャネル１のデータについては転送処理が制限されるため、時刻Ｔ７で、調停回路１５は、チャネル１のデータ５の転送を終了したところで、次のデータ６の転送処理を一旦中止するために、バッファ部１０−１に出力するＡＣＫ信号s6 ackの情報を１から０に変更する。また、調停回路１５は、バッファ部１０−２に出力するＡＣＫ信号s6 ackの情報を０から１に変更する（ステップ１０３）。これにより、データ転送処理の対象はチャネル１のデータからチャネル２のデータに移行し、チャネル２のデータの出力順序が最も早い順序に設定される。
【００５７】
このようにして、チャネル２よりも優先順位の高いチャネル１のＦＩＦＯ１２にデータが蓄積されているにもかかわらず、チャネル２のＦＩＦＯ１２で長時間滞留していたデータを転送処理することが可能となる。
【００５８】
チャネル２のデータ２が転送処理されたので、チャネル２のＡＬＭ検出部１４のカウンタ（不図示）はカウンタ値をリセットして０に戻す。チャネル２のＦＩＦＯ１２がアラーム状態でなくなるので、ＡＬＭ検出部１４は、制御部１６に出力するＡＬＭ信号s7 almの情報を１から０に変更する。
【００５９】
時刻Ｔ８で、制御部１６は、チャネル２のＡＬＭ検出部１４から入力されるＡＬＭ信号s7 almの情報が０であることを認識すると、チャネル１のＲＥＱ制御部１３に出力するマスク信号s4 maskの情報を０から１に戻す。チャネル１のＲＥＱ制御部１３は、ＦＩＦＯ１２から入力されるリードリクエスト信号s3 rdreqの情報が１であり、制御部１６から入力されるマスク信号s4 maskの情報が１になるので、調停回路１５に出力するリクエスト信号s5 reqの情報を０から１に戻す。これにより、チャネル１のデータに関する転送制限が解除される。
【００６０】
時刻Ｔ９で、調停回路１５は、チャネル２のデータ２の転送処理を終了すると、チャネル１のデータ６の転送処理を開始する。
【００６１】
上述したように、本実施形態のデータ転送装置では、バースト的にチャネルにデータが入力される場合や、マスタの異常などで、あるチャネルのデータの出力が長時間継続するような場合があっても、制御部は、長時間滞留しているデータがあることを、アラームの通知で認識することが可能となる。そして、制御部は、長時間滞留しているデータがあることを認識すると、優先順位の高いチャネルのデータの出力を制限する制御を行っている。そのため、優先順位が低く、長時間滞留していたデータを出力させることが可能となり、出力データの大幅な遅延を防ぐことができる。
【００６２】
データ転送装置が各チャネルのＦＩＦＯがＦＵＬＬ状態か否かを監視していれば、優先順位の低いチャネルのＦＩＦＯに蓄積されたデータの滞留時間が長くなっていることを認識可能と考えることもできる。しかし、優先順位の低いチャネルのＦＩＦＯに蓄積されたデータの量がＦＵＬＬ状態に満たず、優先順位の高いチャネルのデータ転送処理が続くと、装置にどこも異常がないのに、データ転送装置は、優先順位の低いデータが長い時間滞留していることに気付かない。この場合、データの出力が大幅に遅延してしまうことになる。
【００６３】
この問題に対して、本実施形態では、ＦＩＦＯに保存されるデータの量に関係なく、ＦＩＦＯ１２に保存されたデータの滞留時間が所定の時間よりも長くなっていることが、アラーム状態として制御部１６に通知される。そのため、制御部１６は、アラーム状態になったＦＩＦＯ１２のデータの転送処理の優先順位を高くすることが可能となる。
【００６４】
（第２の実施形態）
本実施形態は、データの転送処理にかかる時間も考慮して、滞留しているデータの転送処理をスムーズに行うものである。
【００６５】
本実施形態のデータ転送装置の構成を説明する。図６は本実施形態のデータ転送装置の一構成例を示すブロック図である。なお、本実施形態では、第１の実施形態と同様な構成についての詳細な説明を省略する。
【００６６】
図６に示すように、本実施形態のデータ転送装置３では、バッファ部１０−１〜１０−ｘのそれぞれに、ＡＣＫ時間測定部１７が設けられている。第１の実施形態で説明したように、ＡＬＭ検出部１４は、ＦＩＦＯ１２のリクエスト信号s5 reqがアクティブになってからＡＣＫ信号s6 ackがアクティブになるまでの「データ転送待ち時間」を計測している。これに対して、ＡＣＫ時間測定部１７は、調停回路１５から入力されるＡＣＫ信号s6 ackの情報を監視し、ＡＣＫ信号s6 ackの情報が「１」の状態の時間を測定する。
【００６７】
ＡＣＫ時間測定部１７が測定する時間は、自分と同じチャネルのＦＩＦＯ１２から出力されるデータが転送処理されている時間を意味する。つまり、この時間は、データ転送処理にかかる時間のうち、そのチャネルが占有している時間に相当する。以下では、この時間を「データ転送処理時間」と称する。
【００６８】
制御部１６は、各バッファ部のＡＣＫ時間測定部１７から入力されるデータ転送処理時間s11 countを監視する。制御部１６は、データ転送処理時間が予め設定された閾値ＴＨ２以上であると、そのバッファ部に対応するチャネルのデータ転送処理に異常が発生したと認識する。そして、制御部１６は、異常が発生したと認識したチャネルよりも優先順位の高いチャネルのバッファ部に出力するマスク信号s4 maskを１から０に変更する制御を行う。
【００６９】
なお、本実施形態のデータ転送処理装置の動作については、データ出力順序の変更制御の判断材料の一つとして、データ転送処理時間が追加されることを除いて、第１の実施形態と同様なため、その詳細な説明を省略する。
【００７０】
また、本実施形態では、制御部１６が各バッファ部から入力されるデータ転送処理時間s11 countと閾値ＴＨ２とを比較することによって、異常が発生したか否かを判断する場合で説明したが、各バッファ部のＡＣＫ時間測定部１７が、データ転送処理に異常が発生したか否かを判定してもよい。この場合、ＡＣＫ時間測定部１７には、予め閾値ＴＨ２が格納されている。そして、ＡＣＫ時間測定部１７は、データ転送処理時間s11 countが閾値ＴＨ２未満であれば、０の情報のＡＬＭ信号s7 almを制御部１６に出力し、データ転送処理時間s11 countが閾値ＴＨ２以上になると、ＡＬＭ信号s7 almの情報を０から１に切り替える。
【００７１】
本実施形態のデータ転送装置は、データ転送処理に異常が発生したと認識すると、異常が発生したチャネルよりも優先順位の低いチャネルにデータ転送処理の対象を変更している。そのため、優先順位の高いチャネルのデータ転送処理に発生した異常によって、優先順位の低いチャネルのデータの滞留時間がさらに長くなってしまうことを防げる。
【００７２】
なお、上述の実施形態では、データ転送装置３とは別にマスタ１１が設けられた場合で説明したが、データ転送装置３の機能の他にマスタ１１の機能を備えたデータ処理装置に、本発明のデータ転送方法を適用してもよい。
【符号の説明】
【００７３】
３    データ転送装置
１０−１〜１０−ｘ    バッファ部
１１    マスタ
１２    ＦＩＦＯ
１３    ＲＥＱ制御部
１４    ＡＬＭ検出部
１５    調停回路
１６    制御部
１７    ＡＣＫ時間測定部
【図１】
2013235370.tif 000003
【図２】
2013235370.tif 000004
【図３】
2013235370.tif 000005
【図４】
2013235370.tif 000006
【図５】
2013235370.tif 000007
【図６】
2013235370.tif 000008