(57)【要約】【課題】プロセッサの負荷を上げることなく、汎用プロセッサを用いた場合にソフトウェアの変更を最小にしつつ、メモリコピー処理を削減可能なデータ転送処理装置及びデータ転送方法を提供すること。【解決手段】アドレステーブル管理ユニット１３０は、バスマスタ１１０からのメモリコピー要求が発生した場合、転送先のアドレス領域を転送元のアドレス領域を参照するようにアドレステーブル１３１を更新して、メモリのコピーを行うことなく、コピー完了であることをバスマスタ１１０に通知する。また、アドレステーブル管理ユニット１３０は、転送先の領域へバスマスタ１１０から読み出しのアクセスが発生した場合、転送元の領域にアクセスさせ、仮想的に転送先の領域をアクセスしているようにバスマスタ１１０に通知する。【選択図】図２
2013061922.tif 000002
【特許請求の範囲】
【請求項１】
バスと、
前記バスに接続され、転送するデータのヘッダ解析のプロトコル処理を行うバスマスタと、
前記バスに設置され、前記バスマスタからのアクセスに対するアドレスを変換するアドレステーブルを管理するアドレステーブル管理手段と、
転送されたデータをカーネル層に保持するメモリと、
外部で信号処理されたデータを、前記メモリへ転送する第１インタフェース手段と、
前記バスマスタによるプロトコル処理後のアプリケーションデータを格納する第２インタフェース手段と、
前記バスマスタからの指示により前記第１インタフェース手段から前記メモリへのＤＭＡデータ転送と、前記メモリから前記第１インタフェース手段へのＤＭＡデータ転送とを行うＤＭＡ転送手段と、を備え、
前記アドレステーブル管理手段は、
前記バスマスタからメモリコピー要求が発生した場合、転送先のアドレス領域を転送元のアドレス領域を参照するように前記アドレステーブルを更新して、前記メモリのコピーを行うことなく、コピー完了であることを前記バスマスタに通知する、データ転送処理装置。
【請求項２】
前記アドレステーブル管理手段は、転送先の領域へ前記バスマスタから読み出しのアクセスが発生した場合、転送元の領域にアクセスさせ、仮想的に転送先の領域をアクセスしているように前記バスマスタに通知する、請求項１記載のデータ転送処理装置。
【請求項３】
前記アドレステーブル管理手段は、転送先の領域への書き込みがあった場合、前記ＤＭＡ転送手段を起動してデータのコピーを実施し、かつデータのコピー動作が完了するまで前記バスマスタの処理を停止し、コピー動作完了後、転送先の前記アドレステーブルを更新する、請求項１記載のデータ転送処理装置。
【請求項４】
前記アドレステーブル管理手段は、転送元のデータの開放要求があり、かつコピー動作がされていない場合、前記アドレステーブルの転送元のアドレス管理情報を、転送先アドレスへアクセスするように更新する、請求項１記載のデータ転送処理装置。
【請求項５】
前記アドレステーブル管理手段は、転送先のデータの開放要求があり、かつコピー動作がされていない場合、前記アドレステーブルの転送先のアドレス管理情報を破棄する、請求項１記載のデータ転送処理装置。
【請求項６】
前記アドレステーブル管理手段は、データコピーが必要になった場合、メモリ使用帯域を計測し、メモリ使用帯域が設定値以上の場合にはコピーを実施せず、設定値以下になった場合にデータのコピーを実施する、請求項１記載のデータ転送処理装置。
【請求項７】
前記アドレステーブル管理手段は、前記アドレスの置き換えの管理を、アドレス単位で行う、請求項１記載のデータ転送処理装置。
【請求項８】
前記アドレステーブル管理手段は、前記アドレスの置き換えの管理を、指定されたページ単位で行う、請求項１記載のデータ転送処理装置。
【請求項９】
前記アドレステーブル管理手段は、前記アドレスの置き換えの管理を、アドレス単位と指定されたページ単位との組み合わせで行う、請求項１記載のデータ転送処理装置。
【請求項１０】
バスに接続されたバスマスタとメモリと、前記バスマスタからのアクセスに対するアドレスを変換するアドレステーブルとを有するデータ転送方法であって、
前記バスマスタからメモリコピー要求が発生した場合、転送先のアドレス領域を転送元のアドレス領域を参照するように前記アドレステーブルを更新するステップと、
前記メモリのコピーを行うことなく、コピー完了であることを前記バスマスタに通知するステップと、
転送先の領域へ前記バスマスタから読み出しのアクセスが発生した場合、転送元の領域にアクセスするステップと、
仮想的に転送先の領域をアクセスしているように前記バスマスタに通知するステップと、を有するデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送処理装置及びデータ転送方法に関し、特に、通信技術により広帯域のデジタル信号を転送することができるデータ転送処理装置及びデータ転送方法に関する。
【背景技術】
【０００２】
近年、通信によるデータの転送速度が向上しており、その転送速度はギガビット・イーサネット(登録商標)に代表されるものとして、１Ｇビット／秒のデータ転送が要求されている。更にはWireless Gigabit Alliance（WiGig）などの無線通信規格において、理論上の最大スループットである７Ｇビット／秒を達成するものも存在する。
【０００３】
図１は、データ通信を行うデータ転送処理装置の構成を示すブロック図である。
【０００４】
図１に示すように、データ転送処理装置１０は、バスマスタ１１、メモリ１２、バス１３、外部ＩＦ（Interface）１４，１５、及びＤＭＡ（Direct Memory Access）部１６を備える。
【０００５】
バスマスタ１１は、主に転送するデータのヘッダ解析等のプロトコル処理を行うためのプロセッサである。プロトコル処理の代表的なものとして、ＴＣＰ/ＩＰ（Transmission Control Protocol/Internet Protocol）、ＵＤＰ/ＩＰ（User Datagram Protocol/Internet Protocol）がある。大容量のデータを高速でダウンロードするアプリケーションでは、ＴＣＰ／ＩＰが一般的に適用される。バスマスタ１１は、メモリ１２を使用してプロトコル処理を実施する。
【０００６】
メモリ１２は、外部ＩＦ１４から転送されたデータをカーネル層に保持する。
【０００７】
バス１３は、バスマスタ１１、メモリ１２、外部ＩＦ１４、外部ＩＦ１５、及びＤＭＡ部１６の各ブロックと接続されている。各ブロックは、バス１３を介してデータを転送する。
【０００８】
外部ＩＦ１４は、外部で信号処理されたデータを、メモリ１２へ転送するインタフェースである。
【０００９】
外部ＩＦ１５は、バスマスタ１１（プロセッサ）によるプロトコル処理後のアプリケーションデータを外部に転送するインタフェースである。外部ＩＦ１４，１５は、例えばＳＤカードや、Flash SSDなどの接続デバイスから構成される。
【００１０】
ＤＭＡ部１６は、バスマスタ１１からの指示で外部ＩＦ１４からメモリ１２へのＤＭＡデータ転送と、メモリ１２から外部ＩＦ１５へのＤＭＡデータ転送とを行う。
【００１１】
次に、データ転送処理の流れについて説明する。
【００１２】
データ転送処理装置１０は、ベースバンドＬＳＩ等の外部ブロックでネットワークからの信号の復調が完了したことを受けて、以下のデータ転送処理を行う。
【００１３】
バスマスタ１１は、復調データを、外部ＩＦ１４からＤＭＡ部１６を介してメモリ１２へ転送させる。バスマスタ１１は、メモリ１２へ転送されたデータに対して、ヘッダ解析等のプロトコル処理を行う。この時、プロトコル処理を行うデータは、オペレーションシステムのカーネル層に格納されており、アプリケーションがアクセスするためのユーザ層には格納されていない。
【００１４】
バスマスタ１１は、プロトコル処理後のデータをユーザ層にコピーする。プロトコル処理後のデータをユーザ層にコピーすることで、アプリケーションがアクセス可能になる。バスマスタ１１は、ユーザ層へのコピーが完了した場合、コピー後のデータを外部ＩＦ１５を介してアプリケーションが使用するメモリ等に転送する。コピー後のデータをアプリケーションが使用するメモリ等に転送することで、アプリケーションがコピー後のデータを使用可能になる。
【００１５】
このような形態で、通信におけるデータ処理及びデータの転送を行う場合には、カーネル層からユーザ層へのメモリコピー処理は必ず実施される処理である。
【００１６】
近年、携帯電話端末で多く採用されているオープンソースであるLinuxオペレーションシステムにおいて、通信プロトコル処理からアプリケーションデータを生成する上で、メモリコピーは回避できない事象となっている。これまでの数Ｍビット／秒までのデータ通信においては前記メモリコピーで要する処理負荷としてデータ転送処理全体に占める割合は少なかった。
【００１７】
しかし、Ｇビット／秒を超えるデータ転送を実現させる上で、データ転送処理全体の中でメモリコピー処理の占める割合が支配的になってくる。
【００１８】
特許文献１には、同一のデータを必要な数だけコピーするデータ転送処理装置が記載されている。特許文献１記載のデータ転送処理装置は、データ一時保存手段から読み出されるデータをコピーによってそれぞれ異なったメモリ領域にＤＭＡ転送する。これにより、データ通信において、メモリコピーの回数を削減させる。
【００１９】
特許文献２には、メモリ間コピーをなくして映像フレームデータの送受信処理を高速化する映像転送方法が記載されている。特許文献２記載の映像転送方法は、映像入出力カード側からのアクセス時にはユーザ空間の番地を有する仮想アドレスに変換し、ネットワークインタフェースカード側からのアクセス時にはカーネル空間の番地を有する仮想アドレスに変換して映像フレームデータのバッファ用のメモリ空間を共有する。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２００９−３１９５４号公報
【特許文献２】特開２００２−９９９８号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
しかしながら、このような従来のデータ転送処理装置にあっては、以下の課題があった。
【００２２】
特許文献１は、最終的にコピーが必要なデータに対しては、メモリコピーを行わなければならない。
【００２３】
特許文献２は、アドレス変換テーブルの管理は、プロセッサが行わなければならず、プロセッサの処理負荷を十分削減させることができていない。また、１つの物理アドレスに対し、２つの仮想アドレスを保持するアドレス変換テーブル自体をＣＰＵが保持している。このため、ＡＲＭ（Advanced RISC Machines）のような最も携帯電話端末で適用されているプロセッサにおいて、１つのプロセス上で２つの仮想アドレスを保持することはできない。ここでいうプロセスとは、プロセッサが処理するプログラムの１つのインスタンスを意味する。
【００２４】
本発明の目的は、プロセッサの負荷を上げることなく、汎用プロセッサを用いた場合にソフトウェアの変更を最小にしつつ、メモリコピー処理を削減可能なデータ転送処理装置及びデータ転送方法を提供することである。
【課題を解決するための手段】
【００２５】
本発明のデータ転送処理装置は、バスと、前記バスに接続され、転送するデータのヘッダ解析のプロトコル処理を行うバスマスタと、前記バスに設置され、前記バスマスタからのアクセスに対するアドレスを変換するアドレステーブルを管理するアドレステーブル管理手段と、転送されたデータをカーネル層に保持するメモリと、外部で信号処理されたデータを、前記メモリへ転送する第１インタフェース手段と、前記バスマスタによるプロトコル処理後のアプリケーションデータを格納する第２インタフェース手段と、前記バスマスタからの指示により前記第１インタフェース手段から前記メモリへのＤＭＡデータ転送と、前記メモリから前記第１インタフェース手段へのＤＭＡデータ転送とを行うＤＭＡ転送手段と、を備え、前記アドレステーブル管理手段は、前記バスマスタからメモリコピー要求が発生した場合、転送先のアドレス領域を転送元のアドレス領域を参照するように前記アドレステーブルを更新して、前記メモリのコピーを行うことなく、コピー完了であることを前記バスマスタに通知する、構成を採る。
【００２６】
本発明のデータ転送方法は、バスに接続されたバスマスタとメモリと、前記バスマスタからのアクセスに対するアドレスを変換するアドレステーブルとを有するデータ転送方法であって、前記バスマスタからメモリコピー要求が発生した場合、転送先のアドレス領域を転送元のアドレス領域を参照するように前記アドレステーブルを更新するステップと、前記メモリのコピーを行うことなく、コピー完了であることを前記バスマスタに通知するステップと、転送先の領域へ前記バスマスタから読み出しのアクセスが発生した場合、転送元の領域にアクセスするステップと、仮想的に転送先の領域をアクセスしているように前記バスマスタに通知するステップと、を有する。
【発明の効果】
【００２７】
本発明によれば、データコピー要求がきた場合、アドレステーブルの書き換えを行うことで、コピー処理自体をなくすことにより、プロセッサの負荷を上げることなく、ＡＲＭのような汎用プロセッサでソフトウェアの変更を最小にしつつ、メモリコピー処理の削減を実現することができる。
【図面の簡単な説明】
【００２８】
【図１】従来のデータ通信を行うデータ転送処理装置の構成を示すブロック図
【図２】本発明の実施の形態１に係るデータ転送処理装置の構成を示す図
【図３】上記実施の形態１に係るデータ転送処理装置のアドレステーブル管理ユニットによる転送を説明する図
【図４】上記実施の形態１に係るデータ転送処理装置のページ単位を跨ぐようなデータコピー要求がきた場合の処理を説明する図
【図５】上記実施の形態１に係るデータ転送処理装置のページ単位を跨ぐようなデータコピー要求がきた場合の処理を説明する図
【図６】本発明の実施の形態２に係るデータ転送処理装置の構成を示すブロック図
【発明を実施するための形態】
【００２９】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００３０】
（実施の形態１）
図２は、本発明の実施の形態１に係るデータ転送処理装置の構成を示す図である。本実施の形態のデータ転送処理装置は、ホームネットワークの送信端末に適用することができる。
【００３１】
図２に示すように、データ転送処理装置１００は、バスマスタ１１０と、メモリ１２０と、アドレステーブル１３１を管理するアドレステーブル管理ユニット１３０と、バスコントローラ１４０と、外部ＩＦ１５０，１６０と、ＤＭＡコントローラ１７０と、を備える。
【００３２】
バスマスタ１１０は、転送するデータのヘッダ解析などのプロトコル処理を行うためのプロセッサである。バスマスタ１１０は、メモリ１２０を使用してプロトコル処理を実施する。バスマスタ１１０は、ＤＭＡコントローラ１７０に対してデータの転送要求を行う。バスマスタ１１０は、データの転送要求を行うものであればよく、例えばＣＰＵが含まれる。
【００３３】
メモリ１２０は、外部ＩＦ１５０から転送されてきたデータをカーネル層に保持する。
【００３４】
アドレステーブル管理ユニット１３０は、バスコントローラ１４０に設置され、バスマスタ１１０からのアクセスに対するアドレスを変換するアドレステーブル１３１を管理する。アドレステーブル管理ユニット１３０の機能については、下記にまとめて記載する。
【００３５】
バスコントローラ１４０は、バスマスタ１１０、メモリ１２０、外部ＩＦ１５０、外部ＩＦ１６０、及びＤＭＡコントローラ１７０と接続されている。各ブロックはバスコントローラ１４０を介してデータを転送する。
【００３６】
外部ＩＦ１５０は、外部で信号処理されたデータを、メモリ１２０へ転送するインタフェースである。
【００３７】
外部ＩＦ１６０は、バスマスタ１１０（プロセッサ）によるプロトコル処理後のアプリケーションデータを外部に転送するインタフェースである。
【００３８】
ＤＭＡコントローラ１７０は、バスマスタ１１０からの指示で外部ＩＦ１５０からメモリ１２０へのＤＭＡデータ転送と、メモリ１２０から外部ＩＦ１５０へのＤＭＡデータ転送とを行う。
【００３９】
[アドレステーブル管理ユニット１３０]
アドレステーブル管理ユニット１３０は、バスマスタ１１０からメモリコピー要求が発生した場合、転送先のアドレス領域を転送元のアドレス領域を参照するようにアドレステーブル１３１を更新する。これにより、アドレステーブル管理ユニット１３０は、メモリのコピーは行わずに、アドレステーブル１３１の更新のみで、コピー完了であることをバスマスタ１１０に通知する。また、アドレステーブル管理ユニット１３０は、転送先の領域へバスマスタ１１０から読み出しのアクセスが発生した場合、転送元の領域にアクセスさせ、仮想的に転送先の領域をアクセスしているようにバスマスタ１１０に通知する。アドレステーブル管理ユニット１３０は、具体的には以下の機能を有する。
【００４０】
（１）アドレステーブル管理ユニット１３０は、アドレスをページ単位で管理する。アドレステーブル管理ユニット１３０は、テーブル毎に物理アドレスと、仮想アドレスとを保持する。仮想アドレスは、メモリコピー要求があったときに転送元領域のページ番号に更新し、各バスマスタからの読み出しのアクセスがあるときは、仮想アドレスに対応する物理アドレスからアクセスする。
【００４１】
（２）アドレステーブル管理ユニット１３０は、バスマスタ１１０からメモリコピー要求が発生した場合、コピー先のアドレス領域をコピー元のアドレス領域を参照するようにアドレステーブル１３１を更新して、コピー完了であることをバスマスタ１１０に通知する。アドレステーブル管理ユニット１３０は、転送先の領域へバスマスタ１１０からの読み出しが発生した場合、転送元の領域から読み出しさせる。
【００４２】
（３）アドレステーブル管理ユニット１３０は、転送先の領域への書き込みがあった場合、データのコピーを実施するＤＭＡコントローラ１７０を起動し、データのコピー動作が完了するまでバスマスタ１１０の処理を停止し、コピー動作完了後転送先のアドレステーブル１３１を更新する。
【００４３】
（４）アドレステーブル管理ユニット１３０は、転送元のデータの開放要求があり、かつコピー動作がされていない場合、アドレステーブル１３１の転送元のアドレス管理情報を、転送先アドレスへアクセスするように更新する。
【００４４】
（５）アドレステーブル管理ユニット１３０は、転送先のデータの開放要求があり、かつコピー動作がされていない場合、アドレステーブル１３１の転送先のアドレス管理情報を破棄する。
【００４５】
（６）アドレステーブル管理ユニット１３０は、データコピーが必要になった場合、メモリ使用帯域を計測し、メモリ使用帯域が設定値以上の場合にはコピーを実施せず、設定値以下になった場合にデータのコピーを実施する。
【００４６】
（７）アドレステーブル管理ユニット１３０は、上記アドレスの置き換えの管理をアドレス単位で行う。アドレステーブル管理ユニット１３０は、上記アドレスの置き換えの管理を指定されたページ単位で行う。アドレステーブル管理ユニット１３０は、上記アドレスの置き換えの管理をアドレス単位と指定されたページ単位の組み合わせで行う。
【００４７】
以下、上述のように構成されたデータ転送処理装置１００の転送方法について説明する。
【００４８】
まず、外部で信号処理されたデータを、外部ＩＦ１５０によりメモリ１２０にカーネル層のデータとして転送する。
【００４９】
このデータに対して、バスマスタ１１０がヘッダ解析等のプロトコル処理を行う。
【００５０】
その後、バスマスタ１１０は、アプリケーションが使用するためにカーネル層からユーザ層にメモリコピーをメモリ１２０に対して要求する。
【００５１】
アドレステーブル管理ユニット１３０は、このメモリコピー要求に対して、アドレステーブル１３１の更新を行う。ここでのアドレステーブル１３１の更新は、転送先であるユーザ層のアドレスを、転送元であるカーネル層のアドレスに書き換えることである。
【００５２】
外部ＩＦ１６０がユーザ層のデータを読み出しするときは、外部ＩＦ１６０は、転送先の領域のアドレスに対してアクセスを行う。また、アドレステーブル管理ユニット１３０は、アドレステーブル１３１を参照し、転送元の領域へアクセスするようにアクセス先を変換する。そして、外部ＩＦ１６０は、転送元の領域のデータを読み出して転送を開始する。
【００５３】
上記転送について、図３を用いて説明する。
【００５４】
図３は、アドレステーブル管理ユニット１３０による転送を説明する図である。
【００５５】
図３は、転送元の領域をページ１、転送先の領域をページ３として、コピー処理を行う例を示す。ページ１からページ３へのコピー要求が発生したとき、アドレステーブル管理ユニット１３０は、図３（ａ）に示すページ３の仮想アドレスを、図３（ｂ）に示すページ１の領域へと書き換える。外部ＩＦ１６０が転送先領域であるページ３へアクセスしたとき、アドレステーブル管理ユニット１３０は、仮想アドレスを参照して、ページ１の領域から、データを転送する用にアドレスを変換する。
【００５６】
ここで、変換された仮想アドレスは、後述するように、転送先に対する書き込みアクセスが発生して、データのコピーを終えた後、転送元に対する書き込みアクセスが発生して、データのコピーが発生した後、データの開放が発生された後に元に戻される。
【００５７】
ページとアドレスとの関係の詳細については、図４及び図５により後述する。
【００５８】
これにより、コピー処理時間をアドレステーブル１３１の更新だけで完了することができ、メモリコピー時間を削減させることができる。
【００５９】
但し、メモリコピーを実行し、アドレステーブル１３１を更新した後、転送先の領域へ書き込みアクセスがあった場合、転送元の領域のデータを直接アクセスしてしまうと、転送元のデータに対しても書き込み処理が行われ、転送元のデータが不整合を起こしてしまう。
【００６０】
そこで、本実施の形態では、バスコントローラ１４０及びアドレステーブル管理ユニット１３０は、転送先の領域への書き込みアクセスが発生した場合には、バスマスタ１１０の書き込みアクセスを検出して、書き込みアクセスの検出後に転送元データを転送先の領域へコピーを開始する。バスコントローラ１４０がコピーをしている間、バスコントローラ１４０は、バスマスタ１１０からの書き込みアクセスを停止させる。バスコントローラ１４０は、コピー前の転送先の領域への書込みアクセスを検出して、バスマスタ１１０からのアドレス発行に対してバスマスタに対してウエイトをすることで、バスマスタ１１０からの書き込みアクセスを停止させる。
【００６１】
アドレステーブル管理ユニット１３０は、データのコピーが完了した場合、アドレステーブル１３１の転送先領域のアドレスを本来の転送先の領域のアドレスへ書き換え、転送先領域の書き込み処理を行う。
【００６２】
上記転送先領域の書き込み処理とは、仮想アドレスである転送先の領域のデータに対してデータを書き換える処理をいう。データのコピー前に仮想アドレス先のデータの書き換えを行うと、転送元の領域のデータも書き換えられてしまうため、データの整合性が取れなくなってしまう。そこで、アドレステーブル管理ユニット１３０は、データの整合性をあわせるためにデータのコピーを行う。
【００６３】
また、アドレステーブル１３１を更新した後、転送元の領域へ書き込みアクセスがあった場合、転送元の領域のデータをアクセスしてしまうと、転送先のデータに対しても書き込み処理が行われ、転送先のデータが整合性を起こしてしまう。
【００６４】
そこで、バスコントローラ１４０及びアドレステーブル管理ユニット１３０は、転送元の領域への書き込みアクセスが発生した場合には、バスマスタ１１０の書き込みアクセスを検出して、書き込みアクセス検出後に転送元データを転送先の領域へコピーを開始する。バスコントローラ１４０がコピーをしている間、バスコントローラ１４０は、バスマスタ１１０からの書き込みアクセスを停止させる。
【００６５】
アドレステーブル管理ユニット１３０は、データのコピーが完了した場合は、アドレステーブル１３１の転送先領域のアドレスを本来の転送先の領域のアドレスを書き換え、転送元の領域への書き込み処理を行う。
【００６６】
これで、アドレステーブル１３１更新後、転送元、転送先のどちらに書き込みアクセスが発生したとしても、転送元、転送元どちらのデータの整合性も保つことが可能になる。
【００６７】
次に、データの開放が発生したときの動作について説明する。
【００６８】
アドレステーブル管理ユニット１３０は、転送元の領域のデータに対して、データの開放要求があった場合、データの整合性を保つためのコピー動作を実行していない場合には、アドレステーブル１３１の転送元のアドレス管理情報を、転送先の領域のアドレスへアクセスするように更新する。これにより、転送先へ書き込みアクセスがあったとしても、先程のコピー処理を行うことなく、アドレス変換された領域へアクセスが可能となる。
【００６９】
また、アドレステーブル管理ユニット１３０は、転送先の領域のデータに対して、データの開放要求があった場合、コピー動作を実行していない場合には、アドレステーブル１３１の転送先のアドレス管理情報を破棄するように、アドレステーブル１３１を更新する。
【００７０】
次に、アドレス管理の詳細について説明する。
【００７１】
アドレステーブル管理ユニット１３０は、データコピー要求がきた場合、アドレステーブル１３１の書き換えを行う。書き換え単位としては、アドレス毎に書き換えを行うフルアソシエイト方式と、ある一定の大きさのページ単位で行うページ方式とがある。フルアソシエイト方式は、書き換えるアドレスに制限はないものの管理するテーブルの大きさが膨大になる。ページ方式は、管理テーブルの大きさは小さいものの書き換えの範囲がページ単位である必要がある。
【００７２】
図４及び図５は、ページ単位を跨ぐようなデータコピー要求がきた場合の処理を説明する図である。
【００７３】
図４に示すように、アドレス空間５００は、転送元アドレス空間５０１と、転送先アドレス空間５１０とを有する。また、図５に示すように、転送元アドレス空間５０１に対して、転送先アドレス空間５１０は、転送先アドレス空間のアドレス単位空間５１１と、転送先アドレス空間のページ単位空間５１２と、転送先アドレス空間のアドレス単位空間５１３とを有する。
【００７４】
図４及び図５に示すように、転送元のデータは、ページ単位を跨ぐ大きさである。
【００７５】
アドレステーブル管理ユニット１３０（図２参照）は、バスマスタ１１０からページ単位を跨ぐ大きさでのデータコピー要求があった場合に、先頭アドレスからページ単位境界までの空間５１１については、アドレス単位管理でアドレステーブル１３１を更新する。続いて、アドレステーブル管理ユニット１３０は、ページ単位境界先頭からページ単位で割り当て可能なアドレスまでの空間５１２をページ単位管理で更新を行う。続いて、アドレステーブル管理ユニット１３０は、残った空間５１３をアドレス単位管理で更新する。
【００７６】
このように、本実施の形態では、ページ空間境界において、転送元のデータをアドレス単位空間とページ単位空間とアドレス単位空間との３つに分割する。
【００７７】
ページ単位管理のみでは、前後のページを含めてコピーされるためにアドレスに未使用の空間が発生する可能性がある。本実施の形態により実メモリ空間の有効利用を行うことができる。
【００７８】
以上詳細に説明したように、本実施の形態のデータ転送処理装置１００は、バスマスタ１１０と、メモリ１２０と、アドレステーブル１３１を管理するアドレステーブル管理ユニット１３０と、バスコントローラ１４０と、外部ＩＦ１５０，１６０と、ＤＭＡコントローラ１７０と、を備える。アドレステーブル管理ユニット１３０は、バスコントローラ１４０に設置され、バスマスタ１１０からのアクセスに対するアドレスを変換するアドレステーブル１３１を管理する。
【００７９】
アドレステーブル管理ユニット１３０は、バスマスタ１１０からのメモリコピー要求が発生した場合、転送先のアドレス領域を転送元のアドレス領域を参照するようにアドレステーブル１３１を更新して、メモリのコピーを行うことなく、コピー完了であることをバスマスタ１１０に通知する。また、アドレステーブル管理ユニット１３０は、転送先の領域へ前記バスマスタから読み出しのアクセスが発生した場合、転送元の領域にアクセスさせ、仮想的に転送先の領域をアクセスしているようにバスマスタ１１０に通知する。
【００８０】
これにより、メモリ間でデータをコピーする必要がある場合、コピー処理自体をなくして、データ転送の高速化を実現させる。
【００８１】
本実施の形態によれば、プロセッサの負荷を上げることなく、ＡＲＭのような汎用プロセッサでソフトウェアの変更を最小にしつつ、メモリコピー処理の削減を実現することができる。具体的には、アドレステーブル管理ユニットによるアドレステーブルの変換のみでメモリコピーを行うことができる。また、バスマスタの構成を変えることなく、しかも、バスマスタからバス及びメモリへのインタフェースを変える必要のないコピー処理とそのデータアクセス方法を実現することができる。
【００８２】
（実施の形態２）
実施の形態２は、実施の形態１で行っているデータの整合性を合わせるためのコピー処理を行うときに、バスコントローラの負荷を軽減させるために追加された機能である。実施の形態２は、データコピーが必要になった場合に有効なデータ転送処理装置の構成例である。
【００８３】
図６は、本発明の実施の形態２に係るデータ転送処理装置の構成を示すブロック図である。図２と同一構成部分には同一符号を付して重複箇所の説明を省略する。
【００８４】
図６に示すように、データ転送処理装置２００は、バスマスタ１１０と、メモリ１２０と、アドレステーブル１３１を管理するアドレステーブル管理ユニット１３０と、バスアクセス解析部２４１を有するバスコントローラ２４０と、外部ＩＦ１５０，１６０と、ＤＭＡコントローラ１７０と、を備える。
【００８５】
バスコントローラ２４０は、アドレステーブル管理ユニット１３０と、バスアクセス解析部２４１とを有する。アドレステーブル管理ユニット１３０は、バスコントローラ２４０に設置され、バスマスタ１１０からのアクセスに対するアドレスを変換するアドレステーブル１３１を管理する。
【００８６】
バスアクセス解析部２４１は、バスコントローラ２４０にどれだけのアクセスが発生しているのかを解析する。バスアクセス解析部２４１は、単位時間あたりのアクセス回数、データサイズにより、バスアクセス負荷を数値化する。
【００８７】
具体的には、単位時間あたりにバスに対するアクセスの回数（例えばリード及びライトのアドレスの発行回数）をカウントして、そのカウント値があるしきい値以下であれば、バスアクセス負荷が少ないことになる。また、バス上で転送するデータのサイズの合計値を単位時間毎に測定し、その合計値があるしきい値以下であれば、バスアクセス負荷が少ないことになる。バスアクセス解析部２４１は、上記のようにしてバスアクセス負荷を数値化する。
【００８８】
以下、上述のように構成されたデータ転送処理装置２００の動作を説明する。データ転送処理装置２００の基本的な動作は、実施の形態１と同様である。データコピーが必要になった場合の特徴動作についてのみ説明する。
【００８９】
書き込み処理が発生した場合、データの整合性を保つためにデータコピーが必要になる。データコピーを行う場合、データサイズが大きいと、データコピー時にバスコントローラ１４０に負荷がかかってしまう。
【００９０】
本実施の形態では、データコピーが必要になった場合、バスコントローラ２４０内のバスアクセス解析部２４１が、バスコントローラ２４０にどれだけのアクセスが発生しているのかを解析する。バスアクセス解析部２４１は、単位時間あたりのアクセス回数、データサイズにより、バスアクセス負荷を数値化する。
【００９１】
バスアクセス解析部２４１は、アクセス負荷が定められたしきい値を超えている場合、バスコントローラ２４０に対してコピー処理を待機させる。バスコントローラ２４０は、アクセス負荷がしきい値以下になったときに、データコピーを実施する。
【００９２】
これにより、他のブロックのデータ転送に対するバスコントローラ２４０の負荷を増加させることなく、メモリコピーを実行することが可能になる。
【００９３】
実施の形態２では、バスアクセス解析部２４１がバス負荷が少ないと判断したときにアドレステーブル管理ユニット１３０及び、バスコントローラ２４０は転送元領域のデータを転送先領域にコピー処理を行うことで、他のデータアクセスに影響を与えずにコピー処理を行うことが可能になる。その結果、実施の形態１で行っているデータの整合性を合わせるためのコピー処理を行うときに、バスの負荷を軽減させることができる
【００９４】
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。
【００９５】
また、データ転送処理装置の各機能ブロックは、集積回路であるＬＳＩとして実現されてもよい。これらは個別に１チップ化されてもよいし、一部または全てを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【００９６】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【００９７】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【００９８】
本発明を詳細にまた特定の実施態様を参照して説明したが、本発明の精神と範囲を逸脱することなく様々な変更や修正を加えることができることは当業者にとって明らかである。
【００９９】
また、本実施の形態ではデータ転送処理装置、及びデータ転送方法という名称を用いたが、これは説明の便宜上であり、装置の名称はデータ転送処理装置、データ転送システム、また方法の名称はデータ処理方法等であってもよいことは勿論である。
【０１００】
また、上記データ転送処理装置を構成する各部、例えばバスの種類、その数及び接続方法などはどのようなものでもよい。
【０１０１】
また、以上説明したデータ転送方法は、このデータ転送方法を機能させるためのプログラムでも実現される。このプログラムはコンピュータで読み取り可能な記録媒体に格納されている。
【産業上の利用可能性】
【０１０２】
本発明に係るデータ転送処理装置及びデータ転送方法は、広帯域のデジタル信号を転送する通信システム等に有用である。
【符号の説明】
【０１０３】
１００，２００  データ転送処理装置
１１０  バスマスタ
１２０  メモリ
１３０  アドレステーブル管理ユニット
１３１  アドレステーブル
１４０，２４０  バスコントローラ
１５０，１６０  外部ＩＦ
１７０  ＤＭＡコントローラ
２４１  バスアクセス解析部
【図１】
2013061922.tif 000003
【図２】
2013061922.tif 000004
【図３】
2013061922.tif 000005
【図４】
2013061922.tif 000006
【図５】
2013061922.tif 000007
【図６】
2013061922.tif 000008