(57)【要約】【課題】バッファへのデータ格納制御を行う装置において、すべてのデータを共通バスに接続した大容量低速データメモリへ格納すると、他の装置からのデータメモリへのアクセスとの競合によりバスコンフリクトが発生する。また、すべてのデータを別の専用高速メモリ領域に保存すると、メモリとして多くの領域を必要とし、コスト、回路規模が大きくなる。【解決手段】データ格納制御装置106が、バッファへ格納する必要のあるデータ量を受信データのヘッダ内情報であるシーケンスナンバーより判別し、バッファへ格納するデータ量が少ない場合は入出力IF装置101内の低容量バッファメモリ107にデータを格納し、バッファへ格納する必要のあるデータ量が低容量バッファメモリ107容量以上になった場合には、共通バスに接続したデータメモリ102への格納に切り替える制御を行う。【選択図】  図１
2006211136.tif 000002
【特許請求の範囲】
【請求項１】
入出力インタフェース内部に設けられた内部メモリと、前記入出力インタフェース外部に設けられた外部メモリとを備えるデータ処理装置であって、
前記入出力インタフェースに入力されたデータの容量に応じて前記内部メモリおよび前記外部メモリへのデータ格納形態を適応的に変更する制御手段を備えるデータ処理装置。
【請求項２】
前記制御手段は、前記入出力インタフェースに入力されたデータの容量が前記内部メモリの容量より小さい場合はデータの格納先として前記内部メモリを選択し、前記入出力インタフェースに入力されたデータの容量が前記内部メモリの容量を越える場合はデータの格納先として前記外部メモリを選択する請求項１記載のデータ処理装置。
【請求項３】
前記制御手段は、前記入出力インタフェースに入力されたデータの容量が前記内部メモリの容量より小さい場合はデータの格納先として前記内部メモリを選択し、前記入出力インタフェースに入力されたデータの容量が前記内部メモリの容量を越える場合はデータの格納先として前記内部メモリおよび前記外部メモリを選択する請求項１記載のデータ処理装置。
【請求項４】
前記内部メモリは前記入出力インタフェースに入力された複数系統のデータに割り当てられた複数領域に分割され、
前記制御手段は各データの容量に応じて前記内部メモリ内の領域を適応的に変更する請求項１から３の何れか一項記載のデータ処理装置。
【請求項５】
前記制御手段は、前記入出力インタフェースに入力されたデータのヘッダ情報に含まれるシーケンスナンバーからデータの容量を判別してデータの格納形態を変更する請求項１から４の何れか一項記載のデータ処理装置。
【請求項６】
入出力インタフェース内部に設けられた内部メモリと、前記入出力インタフェース外部に設けられた外部メモリとを備えるデータ処理装置におけるデータ処理方法であって、
前記入出力インタフェースに入力されたデータの容量を判別し、データの容量に応じて前記内部メモリおよび前記外部メモリへのデータ格納形態を適応的に変更するデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ量が変動するデータの格納制御を行うデータ処理装置およびデータ処理方法に関する。
【背景技術】
【０００２】
従来、無線通信システムの分野において、高速大容量の下りチャネルを複数の通信端末装置が共有し、下り回線で高速パケット伝送を行うＨＳＤＰＡ（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｄｏｗｎｌｉｎｋ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）が規格化されている。ＨＳＤＰＡでは、ＷＣＤＭＡ（Ｗｉｄｅｂａｎｄ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）に基づいて、ダウンリンクで最大１０Ｍｂｐｓ以上の速度を支援する。高速の転送速度を提供するために、ＨＡＲＱ（Ｈｙｂｒｉｄ  Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  Ｒｅｑｕｅｓｔ）という技術が適用されている。ＨＡＲＱ技術では、ＭＡＣ階層と物理階層とが連携して使用され、受信に失敗したデータを再伝送させると共に、再伝送されたデータを以前の受信データと結合して、より高いデコーディング成功率を保障する。
【０００３】
しかし、ＨＡＲＱ処理は、物理階層での再送制御を行うため、受信側ＭＡＣ階層にデータが届く順番が基地局からの送信順番と異なる場合がある。そのため、データ再整理用のリオーダリング（Ｒｅｏｒｄｅｒｉｎｇ）ナンバと呼ばれる受信データの順番を入れ替える処理が必要となる。受信データの順番を入れ替える方法として、例えば、特許文献１に示すものがある。この方法では、送信側で送信データブロックに対して、伝送シーケンスナンバ（ＴＳＮ：Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｓｅｑｕｅｎｓｅ  Ｎｕｍｂｅｒ）と呼ばれる送信番号をデータブロックのヘッダに付加し、送信される。受信側のＭＡＣ階層では、受信したデータを一度、リオーダリングバッファと呼ばれるバッファに保存する。
【０００４】
ＭＡＣ階層では、ブロックが遺失されたことをデータのヘッダ内情報であるＴＳＮに基づいて検出した時、リオーダリングバッファに格納されたまま、上位階層には伝送されない。しかし、バッファ内に以前のデータブロックがすべて受信され、上位階層に伝送された時のみ、前記データはリオーダリングバッファから上位階層に伝送される。リオーダリング処理において、データ格納処理に必要なバッファを受信装置内に実装する場合、一般的に、バッファへのデータ格納のための専用メモリを設けることと、他のデータ処理のために用意していたデータメモリと共用して使用することが考えられる。
【特許文献１】特開２００３‐２８３５９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のデータ処理装置においては、バッファを他のデータ処理のために用意していたデータメモリと共用する場合、バッファすべてをデータメモリと共用すると、バッファへのデータ格納処理によるデータアクセスが追加される。このため、バッファへのデータ格納処理と他のデータ処理によるデータメモリへのアクセスが増加した場合、メモリアクセスがコンフリクトするため、メモリへのアクセス速度が低下する。一方、バッファへのデータ格納のための専用メモリを別に設ける場合、前記バスコンフリクトは回避できるが、バッファは通常、データを保存する領域として、規定された最大値分を保存する領域が必要となる。メモリ領域をデータメモリと別の領域にすべて設けてしまうと、専用メモリの容量を多く設ける必要があり、コスト、回路規模が大きくなる。
【０００６】
本発明は、アクセス速度の低下並びにコストおよび回路規模増大を回避することができるデータ処理装置およびデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のデータ処理装置は、入出力インタフェース内部に設けられた内部メモリと、前記入出力インタフェース外部に設けられた外部メモリとを備えるデータ処理装置であって、前記入出力インタフェースに入力されたデータの容量に応じて前記内部メモリおよび前記外部メモリへのデータ格納形態を適応的に変更する制御手段を備える。この構成により、データ量に応じて内部メモリおよび外部メモリへのデータ格納形態を変更することにより、常に外部メモリを使用することがなくなることからアクセス速度の低下を回避でき、また、専用メモリを低容量のできることからコストおよび回路規模増大を回避することができる。
【０００８】
本発明の前記制御手段は、前記入出力インタフェースに入力されたデータの容量が前記内部メモリの容量より小さい場合はデータの格納先として前記内部メモリを選択し、前記入出力インタフェースに入力されたデータの容量が前記内部メモリの容量を越える場合はデータの格納先として前記外部メモリを選択する。この構成によれば、データ容量が内部メモリより小さい場合は、外部メモリを使用しないため、アクセス速度の低下を回避することができる。
【０００９】
本発明の前記制御手段は、前記入出力インタフェースに入力されたデータの容量が前記内部メモリの容量より小さい場合はデータの格納先として前記内部メモリを選択し、前記入出力インタフェースに入力されたデータの容量が前記内部メモリの容量を越える場合はデータの格納先として前記内部メモリおよび前記外部メモリを選択する。この構成によれば、常に内部メモリを使用することから高速アクセスを実現することができる。
【００１０】
本発明において、前記内部メモリは前記入出力インタフェースに入力された複数系統のデータに割り当てられた複数領域に分割され、前記制御手段は各データの容量に応じて前記内部メモリ内の領域を適応的に変更する。この構成によれば、複数系統のデータに割り当てられた内部メモリの各領域をデータ容量に応じて変更することで、メモリ資源を効率良く使用することができる。
【００１１】
本発明の前記制御手段は、前記入出力インタフェースに入力されたデータのヘッダ情報に含まれるシーケンスナンバーからデータの容量を判別してデータの格納形態を変更する。この構成によれば、ヘッダ情報を利用してデータの容量を判別することができる。
【発明の効果】
【００１２】
本発明によれば、データ量に応じて内部メモリおよび外部メモリへのデータ格納形態を変更することにより、常に外部メモリを使用することがないことからアクセス速度の低下を回避でき、また、専用メモリを低容量にできることからコストおよび回路規模増大を回避することができる。
【発明を実施するための最良の形態】
【００１３】
（実施の形態１）
以下、本発明の実施の形態１について、図面を用いて説明する。
図１は、本発明の実施の形態１によるデータ処理装置の構成を示すブロック図である。本実施形態におけるデータ処理装置１００は、入出力インタフェース装置１０１、低速大容量のデータメモリ１０２、共通バス１０３、バス調停装置１０４、データメモリアクセス装置１０５により構成されている。また、入出力インタフェース装置１０１内には、データ格納制御装置１０６、高速低容量のバッファメモリ１０７、出力制御装置１０８を具備する構成である。さらに、データ格納制御装置１０６は、受信データＴＳＮ判別装置１０９を具備している。
【００１４】
データ格納制御装置１０６は、入出力インタフェース装置１０１に入力されたデータを入出力インタフェース装置１０１内の高速低容量のバッファメモリ１０７へデータを格納するか、共通バス１０３に接続された低速大容量のデータメモリ１０２にデータを格納するかを制御するものであり、内部に受信データＴＳＮ判別装置１０９を具備している。受信データＴＳＮ判別装置１０９は、受信したデータのヘッダ内に存在するＴＳＮを解読する装置である。
【００１５】
データ格納制御装置１０６は、受信データＴＳＮ格別装置１０９によって解読されたＴＳＮ情報をもとにバッファへデータを格納する必要のあるデータ量を判別する。データ格納制御装置１０６が、バッファへデータを格納する必要のあるデータ量が少ないと判断した時には、入出力インタフェース装置１０１内のバッファメモリ１０７へのデータ格納を実行する。
【００１６】
一方、データ格納制御装置１０６は、バッファへデータを格納する必要のあるデータ量が多いと判断した時には、入出力インタフェース装置１０１内のバッファメモリ１０７のデータをすべて、共通バス１０３に接続したデータメモリ１０２へコピーする。コピー処理後、受信したデータも共通バス１０３に接続したデータメモリ１０２に対しデータ格納する。
【００１７】
以後、共通バス１０３に接続したデータメモリ１０２へのデータ格納処理が開始されると、共通バス１０３に接続したデータメモリ１０２内のデータがすべて出力制御装置１０８よりデータ処理装置１００外部に出力されるまで、データメモリ１０２へのデータ格納を実行する。
【００１８】
バッファメモリ１０７は、データ格納制御装置１０６より送られた入力データを格納するバッファであり、バッファへ格納する必要のあるデータ専用に使用するため、高速アクセスが可能である。ただし、データ処理装置１００のコスト、サイズ削減の観点から低容量とする。データ格納制御装置１０６により、バッファへデータを格納するデータ量が少ないと判断された時は、バッファメモリ１０７を使用する。
【００１９】
データメモリ１０２は、共通バス１０３に接続してあり、データ格納制御装置１０６にバッファへの格納が必要なデータ量が多くなったと判断された時に、バッファとして使用される。データメモリ１０２には、前記バッファ用データの格納処理以外の処理を実行するデータメモリアクセス装置１０５が処理するデータも保存されており、低速であるが、大容量のデータを保存できる。また、データメモリアクセス装置１０５がデータメモリ１０２にアクセス中は、データ格納制御装置１０６からのアクセスはバス調停装置１０４によって待たされることとなる。
【００２０】
出力制御装置１０８は、バッファメモリ１０７、共通バス１０３に接続されたデータメモリ１０２に格納されたデータをデータ処理装置１００外部に出力する装置である。出力制御装置１０８は、すでに、データ処理装置１００外部に出力したデータに連続するＴＳＮを持つデータが、バッファメモリ１０７あるいは共通バス１０３に接続されたデータメモリ１０２にデータ格納された時には、そのデータをバッファからデータ処理装置１００外部に出力する。
【００２１】
共通バス１０３には、入出力インタフェース装置１０１内のデータ格納制御装置１０６および出力制御装置１０８とデータメモリアクセス装置１０５とがマスターとして接続され、一方、データメモリ１０２がスレーブとして接続されており、各マスターからスレーブであるデータメモリ１０２へのアクセスは、バス調停装置１０４によって、ある時間にはひとつのマスターからのアクセスのみに制御される。
【００２２】
次に、データ格納制御装置１０６の制御動作について、図２に示すフローチャートを参照しながら説明する。まず、データ格納制御装置１０６は、まだ出力制御装置１０８を介して外部へ出力されていないデータの中で、最も小さい番号を持つデータのＴＳＮが出力制御装置１０８より通知されるので、これを記憶しておく。ここでは、その番号をeｘｐｅｃｔｅｄＴＳＮとする。
【００２３】
ステップＳ１１において、入力（受信）データを受信すると、データ格納制御装置１０６は入力データを入出力インタフェース装置１０１内のバッファメモリ１０７へデータを格納するか、共通バス１０３に接続したデータメモリ１０２へデータを格納するかを判断する。このために、ステップＳ１２において、受信データＴＳＮ判別装置によって解読された、受信データに付加されたヘッダ内のＴＳＮをもとに、バッファへデータを格納する必要のあるデータ量を判別する。
【００２４】
ステップＳ１３において、共通バス１０３に接続したデータメモリ１０２内へのデータ格納を実行していないと判断され、かつステップＳ１４において、受信したデータが、eｘｐｅｃｔｅｄＴＳＮ＋（Ｎ−１）以下のＴＳＮを持つデータである場合、バッファへ格納する必要のあるデータ量は少ないと判断し、ステップＳ１５において、入出力インタフェース装置１０１内のバッファメモリ１０７へのデータ格納処理を行う。
【００２５】
ここで、Nは入出力インタフェース装置内の高速低容量のバッファメモリに保存可能な最大データ数であり、入出力インタフェース装置内の高速低容量のバッファメモリ容量によって決定される。最小Ｎ＝０の容量があればよいが、ある程度データが抜けて受信されることも許容して、入出力インタフェース装置内の高速低容量のバッファメモリ容量を増やして実装しても良い。但し、コスト、サイズ削減の観点から低容量とする。
【００２６】
バッファメモリ１０７へのデータ格納を実行中に、eｘｐｅｃｔｅｄＴＳＮのＴＳＮを持つデータを受信した場合は、バッファメモリ１０７からそのデータを順次出力していく。このため、連続するＴＳＮを受信している間は、バッファメモリ１０７へのデータ格納処理のみが実行され、バッファへのデータ格納処理による共通バス１０３へのアクセスを削減でき、共通バス１０３のコンフリクトを低減できる。
【００２７】
ステップＳ１４において、eｘｐｅｃｔｅｄＴＳＮ＋（Ｎ−１）より大きなＴＳＮを持つデータを受信した場合は、バッファへ格納する必要のあるデータ量が多いと判断し、ステップＳ１６において、バッファメモリ１０７内のデータをすべて共通バス１０３に接続したデータメモリ１０２へコピーし、受信したデータに対するデータ格納処理は、ステップＳ１７において、共通バス１０３に接続したデータメモリ１０２に対して実行する。
【００２８】
共通バス１０３に接続したデータメモリ１０２へのデータ格納処理を開始すると、データメモリ１０２からすべてのデータが出力されるまで、ステップＳ１３において、データ格納制御装置１０６は共通バス１０３に接続したデータメモリ１０２へのデータ格納処理が実行中であると判断し、共通バス１０３に接続したデータメモリ１０２へのデータ格納処理を実行する。
【００２９】
次に、実施の形態１におけるデータ処理装置１００がバッファからデータを出力する動作について、図３に示すフローチャートを用いて説明する。ステップＳ２１において、データ処理装置１００は入力データを受信し、ステップＳ２２において、図２のフローチャートのようにバッファへのデータ格納処理を実行する。ここで、ステップＳ２３において、現在、入出力インタフェース装置１０１内のバッファメモリ１０７と、共通バス１０３に接続したデータメモリ１０２とのどちらにデータ格納処理を実行しているかを判別する。
【００３０】
バッファメモリ１０７へのデータ格納処理を実行している場合には、ステップＳ２４において、eｘｐｅｃｔｅｄＴＳＮに等しいＴＳＮを持つデータが存在するか否かを検出する。
もし、存在する場合は、ステップＳ２５において、出力制御装置１０８へ該当するデータを送信し、ステップＳ２６において、バッファから送信したデータを削除する。その後、ステップＳ２７において、eｘｐｅｃｔｅｄＴＳＮを１インクリメントする。
【００３１】
ステップＳ２８において、入出力インタフェース装置１０１内の高速低容量のバッファメモリ１０７が空にならなかった場合は、ステップＳ２４で更新されたeｘｐｅｃｔｅｄＴＳＮに等しいＴＳＮを持つデータであるか否かを検索し、存在する場合はステップＳ２５以降の処理を実行する。ステップＳ２８において、入出力インタフェース装置１０１内のバッファメモリ１０７が空になった場合は、出力処理を終了する。
【００３２】
一方、ステップＳ２３において、共通バス１０３に接続したデータメモリ１０２へのデータ格納処理を実行している場合、ステップＳ２９においてeｘｐｅｃｔｅｄＴＳＮに等しいＴＳＮを持つデータが存在するかを検出する。もし、存在する場合は、ステップＳ３０において、出力制御装置１０８へ該当するデータを送信し、ステップＳ３１において、バッファから送信したデータを削除する。その後、ステップＳ３２において、eｘｐｅｃｔｅｄＴＳＮを１インクリメントする。
【００３３】
ステップＳ３３において、バッファメモリ１０７が空にならなかった場合は、ステップＳ２９で更新されたeｘｐｅｃｔｅｄＴＳＮに等しいＴＳＮを持つデータであるか否かを検索し、存在する場合はステップＳ３０以降の処理を実行する。ステップＳ３３において、バッファメモリ１０７が空になった場合は、ステップＳ３４において、データ格納制御装置１０６にデータメモリ１０２内バッファが空になったことを通知し、出力処理を終了する。
【００３４】
この結果、バッファに格納するデータ量が少ないときには、高速低容量のバッファメモリ１０７のみにデータ格納処理を行わせ、共通バス１０３に接続したデータメモリ１０２へのデータ格納処理を行わないため、データメモリアクセス装置１０５とデータ格納制御装置１０６の共通バス１０３でのバスコンフリクトを低減することができる。
【００３５】
（実施の形態２）
以下、本発明の実施の形態２について、図面を用いて説明する。
図４は、本発明の実施の形態２によるデータ処理装置の構成を示すブロック図である。実施の形態１における図１と同一部分には同一符号を付して、その重複する説明を省略する。図４に示した実施の形態２の構成と図１に示した実施の形態１の構成との違いは、入出力インタフェース装置２０１に格納データ管理装置２１０を設けて、データ格納制御装置２０６がバッファへ格納するデータ量が多いと判断された時に、高速低容量のバッファメモリ１０７とデータメモリ１０２を同時にデータ格納処理に使用して、バッファへのデータ格納を制御する点である。
【００３６】
入出力インタフェース装置２０１は前記格納データ管理装置２１０を具備し、２つのバッファ内データを管理する。データ格納制御装置２０６は、入出力インタフェース装置２０１内のバッファメモリ１０７とデータメモリ１０２の両方を、同時にバッファとして使用する。格納データ管理装置２１０はデータ格納制御装置２０６が格納したデータを管理する装置で、データ格納制御装置２０６および出力制御装置２０８に現在格納しているデータの情報を通知する。
【００３７】
データ格納制御装置２０６は、入出力インタフェース装置２０１に入力されたデータを入出力インタフェース装置２０１内のバッファメモリ１０７へデータ格納するか、データメモリ１０２にデータ格納するかを制御する。また、データ格納制御装置２０６は、受信データＴＳＮ判別装置１０９によって解読されたＴＳＮをもとにバッファに格納する必要のあるデータ量を判別する。そして、バッファへ格納する必要のあるデータ量が少ないとデータ格納制御手段２０６が判断した時には、入出力インタフェース装置２０１内の高速低容量のバッファメモリ１０７のみへデータ格納処理を実行する。
【００３８】
これに対し、バッファへ格納する必要のあるデータ量が多いと判断した時には、以後バッファメモリ１０７とデータメモリ１０２の２つのバッファを用いてデータ格納処理を実行する。実施の形態２では、実施の形態１で行った入出力インタフェース装置２０１内のバッファメモリ１０７のデータを共通バス１０３に接続したデータメモリ１０２へコピーする処理は実行しない。一度、２つのバッファへのデータ格納処理を開始すると、２つのバッファの内、共通バス１０３に接続したデータメモリ１０２内データがすべて出力制御装置２０８よりデータ処理装置２００外部に出力されるまで、２つのバッファへのデータ格納処理を実行する。
【００３９】
出力制御装置２０８は、バッファメモリ１０７およびデータメモリ１０２に格納されたデータをデータ処理装置２００外部に出力する装置である。出力制御装置２０８は、バッファメモリ１０７およびデータメモリ１０２内のデータのＴＳＮがデータ格納制御装置２０６から通知される。そして、すでにデータ処理装置２００外部に出力したデータに連続するＴＳＮを持つデータが、バッファメモリ１０７あるいはデータメモリ１０２に格納された時には、そのデータをバッファからデータ処理装置２００外部に出力する。
【００４０】
次に、実施の形態２におけるデータ処理装置２００の動作を説明する。
図５は実施の形態２におけるデータ格納制御装置２０６のデータ格納動作を示すフローチャートである。まず、データ格納制御装置２０６は、まだ出力制御装置２０８を介して外部へ出力されていないデータの中で、最も小さい番号を持つデータのＴＳＮが出力制御装置２０８より通知されるので、これを記憶しておく。ここでは、その番号をeｘｐｅｃｔｅｄＴＳＮとする。
【００４１】
また、現在高速低容量のバッファメモリ１０７およびデータメモリ１０２へ格納しているデータの中で、各々最も大きい番号を持つデータのＴＳＮを格納データ管理装置２１０が記憶している。ここでは、その番号をそれぞれｍａｘ  ＴＳＮ  ｂｕｆｆｅｒ  ｍｅｍｏｒｙおよびｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙとする。
【００４２】
これらのｍａｘ  ＴＳＮ  ｂｕｆｆｅｒ  ｍｅｍｏｒｙおよびｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙは格納データ管理装置２１０によって記憶され、データ格納制御装置２０６および出力制御装置２０８に通知する。ここで、共通バス１０３に接続されたバッファメモリ内にデータが存在する場合は、ｍａｘ  ＴＳＮ  ｂｕｆｆｅｒ  ｍｅｍｏｒｙおよびｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙには、常にｍａｘ  ＴＳＮ  ｂｕｆｆｅｒ  ｍｅｍｏｒｙ＜ｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙの関係が保たれている。
【００４３】
つまり、２つのバッファを使用する場合は、バッファメモリ１０７内データのＴＳＮはすべて共通バス１０３に接続したバッファメモリ内データのＴＳＮよりも小さいとする。共通バス１０３に接続したバッファメモリ内にデータが存在しない場合は、ｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙ＝０となる。ｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙ＝０への更新は、出力制御装置２０８からの通知に伴い実行する。
【００４４】
ステップＳ４１において、入力データを受信すると、ステップＳ４２においてデータ格納制御装置２０６は入力データを入出力インタフェース装置２０１内のバッファメモリ１０７へ入力データを格納するか、共通バス１０３に接続したデータメモリ１０２へデータを格納するかを判断する。このために、受信データＴＳＮ判別装置によって解読された、受信データに付加されたヘッダ内のＴＳＮをもとに、バッファへデータを格納する必要のあるデータ量を判別する。
【００４５】
ステップＳ４３において、入出力インタフェース装置２０１内の高速低容量のバッファメモリ１０７のみのデータ格納処理を実行しているか否かを調べる。バッファメモリ１０７のみのデータ格納処理を実行している場合には、つまり、ｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙ＝０である場合で、かつステップＳ４４において受信したデータのＴＳＮが、eｘｐｅｃｔｅｄ  ＴＳＮ＋（Ｎ−１）以下であると判断された場合は、バッファへ格納する必要のあるデータ量は少ないと判断する。そこで、ステップＳ４５において、入出力インタフェース装置２０１内のバッファメモリ１０７へのデータ格納処理を実行する。この際には、ステップＳ４６において、ｍａｘ  ＴＳＮ  ｂｕｆｆｅｒ  ｍｅｍｏｒｙをバッファへ格納したデータで最も大きいＴＳＮを持つデータのＴＳＮに更新する。
【００４６】
ステップＳ４４において受信したデータのＴＳＮが、eｘｐｅｃｔｅｄ  ＴＳＮ＋（Ｎ−１）より大きい場合は、バッファへ格納する必要のあるデータ量が多いと判断し、ステップＳ４７において、共通バス１０３に接続したデータメモリ１０２へのデータ格納処理を行う。この際には、ステップＳ４８において、ｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙに格納したデータのＴＳＮを保存する。
【００４７】
上記処理により、共通バス１０３に接続したデータメモリ１０２内にデータが存在する場合は、ステップＳ４３において、２つのバッファを用いたデータ格納処理を実行中であると判断され、共通バス１０３に接続したデータメモリ１０２内データがすべて出力制御装置２０８よりデータ処理装置２００外部に出力されるまで、共通バス１０３に接続したデータメモリ１０２へのデータ格納処理を実行する。以後、ステップＳ４９において、ｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙ以上のＴＳＮを持つデータを受信すると、そのデータは、共通バス１０３に接続したデータメモリ１０２へ格納される。
【００４８】
ステップＳ４９において、受信したデータのＴＳＮが、ｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙ以下である場合、受信したデータは抜けていたデータであると判断する。この場合、ステップＳ５０において、受信データのＴＳＮ  ＜＝ｍａｘ  ＴＳＮ  ｂｕｆｆｅｒ  ｍｅｍｏｒｙであると判断されたら、入出力インタフェース装置２０１内のバッファメモリ１０７へのデータ格納、ｍａｘ  ＴＳＮ  ｂｕｆｆｅｒ  ｍｅｍｏｒｙ＜受信データＴＳＮ＜=ｍａｘ  ＴＳＮ  ｄａｔａ  ｍｅｍｏｒｙであるなら、共通バス１０３に接続されたデータメモリ１０２へデータ格納処理を行う。
【００４９】
次に、実施の形態２におけるデータ処理装置２００が、バッファからデータを出力する動作について、図６に示すフローチャートを用いて説明する。ステップＳ６１では、データ処理装置２００にてデータを受信し、ステップＳ６２で、図５に示したバッファへのデータ格納処理を実行すると、ステップＳ６３において、入出力インタフェース装置２０１内のバッファメモリ１０７にデータが存在するかを否かを判別する。
【００５０】
バッファメモリ１０７にデータが存在する場合、ステップＳ６４において、さらにバッファメモリ１０７内にeｘｐｅｃｔｅｄＴＳＮを持つデータが存在するか否かを検出する。もし、存在する場合は、ステップＳ６５において、出力制御装置２０８へ該当するデータを送信し、ステップＳ６６において、バッファから送信したデータを削除する。その後、ステップＳ６７において、eｘｐｅｃｔｅｄＴＳＮを１インクリメントする。
【００５１】
ステップＳ６８において、入出力インタフェース装置２０１内の高速低容量のバッファメモリ１０７が空でないと判断された場合は、ステップＳ６９において共通バス１０３に接続したデータメモリ１０２にデータが存在するかを検出する。データが存在する場合は、次に、ステップＳ７０において、eｘｐｅｃｔｅｄＴＳＮのＴＳＮを持つデータが存在するか否かを判定し、あると判定された場合には、ステップＳ７１において、出力制御装置２０８へ該当するデータを送信し、ステップＳ７２において、送信したデータをデータメモリ１０２から削除する。その後、ステップＳ７３において、eｘｐｅｃｔｅｄＴＳＮを１インクリメントする。
【００５２】
続いて、ステップＳ７４において、共通バス１０３に接続したデータメモリ１０２が空になったか否かを調べ、空にならなかった場合は、ステップＳ７０で更新されたeｘｐｅｃｔｅｄＴＳＮに等しいＴＳＮを持つデータであるか否かを検索し、ＴＳＮを持つデータである場合はステップＳ７１以降の処理を実行する。ステップＳ７４において、データメモリ１０２が空になったと判定された場合は、ステップＳ７５において、データ格納制御装置２０６にデータメモリ１０２が空になったことを通知し、出力処理を終了する。なお、ステップＳ６８でバッファメモリ１０７が空と判定された場合、およびステップＳ６９でデータメモリ１０２が空と判定された場合は、データの出力処理を終了する。
【００５３】
この結果、バッファへ格納するデータ量が多い時に、２つのバッファメモリを使用することで、実施の形態１における高速低容量のバッファメモリからデータメモリへのコピー処理、およびコピーしたデータを出力制御装置から出力する処理を実行しないため、実施の形態１に比べ、さらにバスコンフリクトを削減することができる。
【００５４】
（実施の形態３）
次に、本発明の実施の形態３について、図面を用いて説明する。
図７は、本発明の実施の形態３によるデータ処理装置の構成を示すブロック図である。実施の形態１における図１と同一部分には同一符号を付して、その重複する説明を省略する。図７に示した実施の形態３の構成と図１に示した実施の形態１および２の構成との違いは、２種類のデータを処理するための、入出力インタフェース装置３０１内の構成にある。実施の形態３では、入出力インタフェース装置３０１は高速低容量のバッファメモリ３０７内にデータ１用領域Ａとデータ２用領域Ｂの２つの高速メモリ領域を有し、２種類のデータ処理のためにデータ１用データ格納制御装置３０６とデータ２用データ格納制御装置３１６、データ１用出力制御装置１０８とデータ２用出力制御装置３１８とを、それぞれ別々に具備する。
【００５５】
そして、データ１用データ格納制御装置３０６あるいはデータ２用データ格納制御装置３１６が、各々自身が処理するデータ量を判別し、１種類のバッファへ格納するデータ量が少なく、もう１種類のバッファへ格納するデータ量が多い場合には、バッファへ格納するデータ量の少ない高速低容量のバッファメモリ３０７領域の一部をバッファへ格納するデータ量の多い領域に分け与えるメモリ領域管理を行うように構成した点である。
【００５６】
データ１用データ格納制御装置３０６は、入出力インタフェース装置３０１に入力されたデータを入出力インタフェース装置３０１内の高速低容量のバッファメモリ３０７へ格納するか、データメモリ１０２に格納するかを制御する。バッファへ格納する必要があるデータ量が少ないと判断した時には、入出力インタフェース装置３０１における高速低容量のバッファメモリ３０７の領域１へデータ格納処理を実行する。
【００５７】
一方、バッファへ格納する必要のあるデータ量が多いと判断した時には、実施の形態１とは異なり、次にもう１種類のデータ用に割り当てられたデータ領域である高速低容量のバッファメモリ３０７内領域Ｂに空きがあるか否かを判別する。領域Ｂに空きがある場合、領域Ｂの一部を領域Ａ用に割り当て、領域Ａの容量を増やすように制御し、増やした領域にデータを格納する。
【００５８】
領域Ｂにも空きがない場合は、共通バス１０３に接続したデータメモリ１０２へのデータ格納処理を行い、以後の処理は、実施の形態１あるいは実施の形態２と同様の動作を行う。なお、データ２用データ格納制御装置３１６もデータ１用データ格納制御装置３０６と同様の動作を行う。また、データ１用出力制御装置１０８及びデータ２用出力制御装置３１８は実施の形態１の出力制御装置１０８と同様の動作を行う。その他の装置の動作は実施の形態１と同様である。
【００５９】
（実施の形態３）
次に、実施の形態３におけるデータ処理装置の動作を説明する。
図８は実施の形態３におけるデータ格納制御装置のデータ格納動作を示すフローチャートである。まず、ステップＳ８１において、入力データを受信すると、ステップＳ８２においてデータ１用データ格納制御装置３０６は入力データを入出力インタフェース装置３０１内の高速低容量のバッファメモリへ格納するか、共通バス１０３に接続したデータメモリ１０２へ格納するかを判断する。このために、受信データＴＳＮ判別装置１０９によって、受信データに付加されたヘッダ内のＴＳＮを解読し、バッファへ格納する必要のあるデータ量を判別する。
【００６０】
次に、ステップＳ８３において、共通バス１０３に接続したデータメモリ１０２内へのデータ格納処理を実行していないと判断され、さらにステップＳ８４において、受信したデータが、eｘｐｅｃｔｅｄＴＳＮ＋（Ｎ−１）以下のＴＳＮを持つデータであると判断された場合、バッファへ格納する必要のあるデータ量は少ないと判断し、ステップＳ８５において、入出力インタフェース装置３０１における速低容量のバッファメモリ３０７の領域Ａへのデータ格納処理を行う。
【００６１】
ステップＳ８４において、eｘｐｅｃｔｅｄＴＳＮ＋（Ｎ−１）より大きなＴＳＮを持つデータを受信した場合は、バッファへ格納する必要のあるデータ量が多いと判断し、次にステップＳ８６において、もう１種類のデータ用の領域である領域Ｂに空きがあるかどうかを判別する。領域Ｂに空きがあると判断された場合は、ステップＳ８７において、領域Ｂの一部を領域Ａへ変更し、ステップＳ８８において、その領域へのデータ格納処理を実行する。
【００６２】
ステップＳ８６において、領域Ｂにも空きがないと判断された場合には、ステップＳ８９において、高速低容量のバッファメモリ３０７内のデータをすべて共通バス１０３に接続したデータメモリ１０２へコピーする。また、受信したデータに対するデータ格納処理は、ステップＳ９０において、共通バス１０３に接続したデータメモリ１０２に対して実行する。
【００６３】
共通バス１０３に接続したデータメモリ１０２へのデータ格納処理を開始すると、共通バス１０３に接続したデータメモリ１０２からすべてのデータが出力されるまで、ステップＳ８３において、データ１用データ格納制御装置３０６は共通バス１０３に接続したデータメモリ１０２へのデータ格納処理 が実行中であると判断され、データ１用データ格納制御装置３０６は共通バス１０３に接続したデータメモリ１０２へのデータ格納処理を実行する。
【００６４】
なお、上記では実施の形態１のようにデータメモリ１０２へのデータ格納処理を開始する際に、一旦高速低容量のバッファメモリ３０７のデータをデータメモリ１０２へコピーし、その後データメモリ１０２へのデータ格納処理を実行する場合について記載した。しかし、実施の形態２のように、データメモリ１０２へのコピー処理は実行せず、データメモリ１０２と高速低容量のバッファメモリ３０７の２つを用いたデータ格納処理を行っても良い。
【００６５】
この結果、２種類のデータをバッファへ格納する場合において、１種類のバッファへ格納するデータ量が多く、もう１種類のバッファメモリに空きがある場合に、空き領域の一部を使用できるようにすることで、高速低容量のバッファメモリ３０７の使用回数をより増加させることができるため、同じ資源でよりバッファへのデータ格納処理の高速化を図ることができる。
【産業上の利用可能性】
【００６６】
本発明のデータ処理装置および方法は、データ量に応じて内部メモリおよび外部メモリへのデータ格納形態を変更することにより、常に外部メモリを使用することがなくなることからアクセス速度の低下を回避でき、また、専用メモリを低容量にできることからコストおよび回路規模増大を回避することができるという効果を有し、データ量が変動するデータの格納制御を行うデータ処理装置およびデータ処理方法等として有用である。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態１に係るデータ処理装置の構成を示すブロック図
【図２】図１におけるデータ格納制御装置によるデータ格納制御手順を示すフローチャート
【図３】図１に示すデータ処理装置がバッファからデータを出力する動作の流れを示すフローチャート
【図４】本発明の実施の形態２に係るデータ処理装置の構成を示すブロック図
【図５】図１におけるデータ格納制御装置によるデータ格納制御手順を示すフローチャート
【図６】図４に示すデータ処理装置がバッファからデータを出力する動作の流れを示すフローチャート
【図７】本発明の実施の形態３におけるデータ処理装置の構成を示すブロック図
【図８】本発明の実施の形態３に係る二つのデータ格納制御装置によるデータ格納制御手順を示すフローチャート
【符号の説明】
【００６８】
１００、２００、３００  データ処理装置
１０１、２０１、３０１  入出力インタフェース装置
１０２  低速大容量のデータメモリ
１０３  共通バス
１０４  バス調停装置
１０５  データメモリアクセス装置
１０６、２０６、３０６、３１６  データ格納制御装置
１０７、３０７  高速低容量のバッファメモリ
１０８、２０８、３０８  出力制御装置
１０９、３１９  受信データＴＳＮ判別装置
２１０  格納データ管理装置
【図１】
2006211136.tif 000003
【図２】
2006211136.tif 000004
【図３】
2006211136.tif 000005
【図４】
2006211136.tif 000006
【図５】
2006211136.tif 000007
【図６】
2006211136.tif 000008
【図７】
2006211136.tif 000009
【図８】
2006211136.tif 000010