(57)【特許請求の範囲】
【請求項１】
高速ページアクセスに対応するメモリを転送対象とするＤＭＡ転送装置であって、
転送元となる第一メモリ領域において、前記第一メモリ領域の先頭アドレス、前記第一メモリ領域における一または複数存在するページ境界、及び前記第一メモリ領域の末尾アドレスによって、それぞれ区切られた複数の転送元部分領域を判別する第一判別部と、
転送先であり、前記第一メモリ領域の先頭アドレスに対し、ページ領域における相対位置を示すアドレスが異なる先頭アドレスを有する第二メモリ領域において、前記第二メモリ領域の先頭アドレス、前記第二メモリ領域における一または複数存在するページ境界、及び前記第二メモリ領域の末尾アドレスによって、それぞれ区切られた複数の転送先部分領域を判別する第二判別部と、
データ保持機能を有するバッファ部と、
前記バッファ部の空き領域のサイズと、第１転送元部分領域のサイズとを比較し、前記バッファ部の空き領域のサイズが前記第１転送元部分領域のサイズよりも大きい場合に、前記第１転送元部分領域の第１データを読み出して前記バッファ部に書き込みを行うことを決定し、前記バッファ部に保持されている前記第１データのデータサイズと、先頭アドレスとページ境界とで区切られた第１転送先部分領域のサイズとを比較し、前記第１データのデータサイズが前記第１転送先部分領域のサイズよりも大きい場合に、前記第１データのうち、前記第１転送先部分領域と同じサイズの第２データを前記バッファ部から読み出して前記第１転送先部分領域に書き込みを行うことを決定するリード／ライト決定部と、
前記リード／ライト決定部の決定に従って、前記第１転送元部分領域から前記第１データを読み出して前記バッファ部への書き込みと、前記バッファ部から前記第２データを読み出して前記第１転送先部分領域への書き込みと、を行なうアクセス制御部と、
を有するＤＭＡ転送装置。
【請求項２】
前記バッファ部は１ポートメモリであり、
前記アクセス制御部は、前記リード／ライト決定部の決定に従って、前記第１転送元部分領域から前記第１データを読み出して前記バッファ部への書き込みと、前記バッファ部から前記第２データを読み出して前記第１転送先部分領域への書き込みと、のいずれかを行なう請求項１記載のDMA転送装置。
【請求項３】
請求項１に記載のＤＭＡ転送装置であって、
転送対象である前記メモリが前記第１転送元部分領域から構成される場合において、
前記リード／ライト決定部は、前記アクセス制御部が前記バッファ部から前記第２データを読み出して前記転送先部分領域への書き込みを行った後、前記第１データのうち前記第２データ以外の第３データを前記バッファ部から読み出して、前記第１転送先部分領域における末尾アドレスの次のアドレスを先頭アドレスとする第２転送先部分領域に書き込みを行うことを決定するＤＭＡ転送装置。
【請求項４】
転送対象である前記メモリが複数の転送元部分領域のデータを含む場合において、
前記リード／ライト決定部は、前記アクセス制御部が前記バッファ部から前記第２データを読み出して前記第１転送先部分領域への書き込みを行った後、前記バッファ部の空き領域のサイズと、前記第１転送元部分領域における末尾アドレスの次のアドレスを先頭アドレスとする第２転送元部分領域のサイズとを比較し、前記バッファ部の空き領域のサイズが前記第２転送元部分領域のサイズよりも大きい場合に、前記第２転送元部分領域の第４データを読み出して前記バッファ部に書き込みを行うことを決定する請求項１記載のＤＭＡ転送装置。
【請求項５】
前記リード／ライト決定部は、前記第１データのうち前記第２データ以外の第３データおよび前記第４データと、前記第１転送先部分領域における末尾アドレスの次のアドレスを先頭アドレスとする第２転送先部分領域のサイズとを比較し、前記第３データおよび前記第４データのデータサイズが前記第２転送先部分領域のサイズよりも大きい場合に、前記第３データおよび前記第４データのうち、前記第２転送先部分領域と同じサイズのデータを前記バッファ部から読み出して前記第２転送先部分領域に書き込みを行うことを決定する請求項４に記載のＤＭＡ転送装置。
【請求項６】
前記バッファ部は２つのバスに接続される２ポートメモリであり、
前記アクセス制御部は、前記リード／ライト決定部の決定に従って、前記転送元部分領域から前記第１データを読み出して前記バッファ部への書き込みと、前記バッファ部から前記第２データを読み出して前記転送先部分領域への書き込みと、を独立に行なうアクセス制御部と、
を有する請求項１記載のＤＭＡ転送装置。
【請求項７】
高速ページアクセスに対応するメモリを転送対象とするＤＭＡ転送方法であって、
転送元となる第一メモリ領域において、前記第一メモリ領域の先頭アドレス、前記第一メモリ領域における一または複数存在するページ境界、及び前記第一メモリ領域の末尾アドレスによって、それぞれ区切られた複数の転送元部分領域を判別し、
転送先であり、前記第一メモリ領域の先頭アドレスに対し、ページ領域における相対位置を示すアドレスが異なる先頭アドレスを有する第二メモリ領域において、前記第二メモリ領域の先頭アドレス、前記第二メモリ領域における一または複数存在するページ境界、及び前記第二メモリ領域の末尾アドレスによって、それぞれ区切られた複数の転送先部分領域を判別し、
データ保持機能を有するバッファ部の空き領域のサイズと、前記転送元部分領域のサイズとを比較し、前記バッファ部の空き領域のサイズが前記転送元部分領域のサイズよりも大きい場合に、前記転送元部分領域の第１データを読み出して前記バッファ部に書き込みを行うことを決定し、
前記バッファ部に保持されている前記第１データのデータサイズと前記転送先部分領域のサイズとを比較し、前記第１データのデータサイズが前記転送先部分領域のサイズよりも大きい場合に、前記第１データのうち、前記転送先部分領域と同じサイズの第２データを前記バッファ部から読み出して前記転送先部分領域に書き込みを行うことを決定し、
書き込みを行うか否かの決定に従って、前記転送元部分領域から前記第１データを読み出して前記バッファ部への書き込みと、前記バッファ部から前記第２データを読み出して前記転送先部分領域への書き込みと、を行なうＤＭＡ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
高速ページアクセス可能なメモリに対してページ単位での連続アクセスを保証するＤＭＡデータ転送装置
【０００２】
【従来の技術】
従来のＤＭＡデータ転送装置は、メモリ−メモリ間又はメモリ−入出力装置間で、高速にデータ転送を行なう。
同じバスに接続されたメモリ間の転送及び同じメモリの異なる記憶領域間の転送では、ＤＭＡデータ転送装置は、転送元の記憶領域から読み出したデータをＤＭＡデータ転送装置内のバッファに一時的に保持しさらにバッファから転送先の記憶領域に書き込むことにより、ＤＭＡデータ転送を行なう。このバッファは、メモリに対する１回のアクセスサイズ以上の容量を有する。従来の典型的なＤＭＡデータ転送は、１アクセスサイズのデータ毎に、転送元からの読み出し、バッファへの格納、バッファから転送先記憶領域への書き込みを行っている。これにより必要最小限のバッファサイズにてＤＭＡデータ転送が可能になる。
【０００３】
またバッファサイズがアクセスサイズの複数倍の大きさである場合には、ＤＭＡ転送装置は、転送元からバッファサイズ分になるまでデータを読み出してバッファに格納し、バッファからバッファサイズ分のデータを転送先記憶領域書き込む。この場合は、読み出し、書き込みはバッファサイズを単位になされる。
【０００４】
【発明が解決しようとする課題】
ところで、近年高速ページアクセス可能なＳＤＲＡＭが主記憶として用いられているが、このＳＤＲＡＭが転送対象である場合に、ＳＤＲＡＭの高速性能が犠牲になり、その有用性が十分に活用できないという問題があった。なぜなら従来のＤＭＡ転送装置は、転送元からバッファへの読み出し、バッファから転送先への書き込みにおいてページ境界とは無関係にアクセスするからである。
【０００５】
本発明は、高速ページアクセス可能なメモリと相性が良く、その性能を犠牲にすることなく高速なＤＭＡ転送を実現する有用なＤＭＡ転送装置を提供することを目的する。
【０００６】
【課題を解決するための手段】
本発明のＤＭＡ転送装置は、高速ページアクセスに対応するメモリを対象とするＤＭＡ転送装置であって、転送対象となるメモリ領域を構成する複数の部分領域であって、前記メモリ領域の先頭とページ境界との間、ページ境界間及びページ境界と前記メモリ領域の末尾との間の各部分領域を判別する判別手段と、判別された部分領域毎に高速ページアクセスを行なうアクセス手段とを備える。
【０００７】
また、本発明のＤＭＡ転送装置は、転送元となる第１メモリ領域を構成する複数の転送元部分領域であって、前記第１メモリ領域の先頭とページ境界との間、ページ境界間及びページ境界と前記第１メモリ領域の末尾との間の各転送元部分領域を判別する第１判別手段と、転送先となる第２メモリ領域を構成する複数の転送先部分領域であって、前記第２メモリ領域の先頭とページ境界との間、ページ境界間及びページ境界と前記第２メモリ領域の末尾との間の各転送先部分領域を判別する第２判別手段と、第１判別手段に判別された転送元部分領域から高速ページアクセスによりデータを読み出してバッファ手段に格納し、バッファ手段に格納されたデータを第２判別手段により判別された転送先部分領域に高速ページアクセスにより書き込むアクセス手段とを備える。
【０００８】
また、本発明のＤＭＡ転送システムは、優先度が異なる複数のＤＭＡチャネルを有するＤＭＡ転送システムであって、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルのＤＭＡ転送要求を受付け、ＤＭＡ転送の完了までＤＭＡ転送要求を保持する複数の受付手段と、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルのＤＭＡ転送要求に指定された転送対象のメモリ領域について、当該メモリ領域を構成する複数の部分領域であって、前記メモリ領域の先頭とページ境界との間、ページ境界間及びページ境界と前記メモリ領域の末尾との間の各部分領域を判別する複数の判別手段と、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルの判別手段により判別された部分領域毎に高速ページアクセスを指示するアクセス要求を生成する複数のアクセス要求生成手段と、各ＤＭＡチャネルに共用され、転送すべきデータを一時的に保持するバッファ手段と、調停手段とを備える。ここで、調停手段は、複数の受付け手段において、ただ１つのＤＭＡチャネルに対するＤＭＡ転送要求が保持されている場合には、当該ＤＭＡチャネルに対応するアクセス要求に従ってアクセスを行い、ＤＭＡ転送要求が保持されていて、かつ、優先度の高いＤＭＡチャネルに対するＤＭＡ転送要求が受付けられた場合には、先行するＤＭＡ転送要求のＤＭＡチャネルに対応する判別手段及びアクセス要求生成手段に対してバッファ手段を空にしてから中断するよう指示し、バッファ手段が空になった時点で優先度の高いＤＭＡチャネルのアクセス要求に従ってアクセスを行い、優先度の高いＤＭＡ転送完了後に、先行するＤＭＡ転送要求のＤＭＡチャネルに対応する判別手段及びアクセス要求生成手段に対してＤＭＡ転送を再開するよう指示する。
【０００９】
また、本発明のＤＭＡ転送システムは、複数のＤＭＡチャネルを有するＤＭＡ転送システムであって、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルのＤＭＡ転送要求を受付け、ＤＭＡ転送の完了までＤＭＡ転送要求を保持する複数の受付手段と、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルのＤＭＡ転送要求に指定された転送対象のメモリ領域について、当該メモリ領域を構成する複数の部分領域であって、前記メモリ領域の先頭とページ境界との間、ページ境界間及びページ境界と前記メモリ領域の末尾との間の各部分領域を判別する複数の判別手段と、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルの判別手段により判別された部分領域毎に高速ページアクセスを指示するアクセス要求を生成する複数のアクセス要求生成手段と、各ＤＭＡチャネルに共用され、２つのバスに接続された２ポートメモリであるバッファ手段と、調停手段とを備える。ここで、調停手段は、複数の受付け手段において、ただ１つのＤＭＡチャネルに対するＤＭＡ転送要求が保持されている場合には、当該ＤＭＡチャネルに対応するアクセス要求に従ってアクセスを行い、既にＤＭＡ転送要求が保持されていて、かつ、他のＤＭＡチャネルに対するＤＭＡ転送要求が受付けられ、かつ、先行するＤＭＡ転送の転送先と新たなＤＭＡ転送の転送元とが異なるバス上のメモリである場合には、転送中の全転送データについての転送元からの読み出しが完了し、かつ、バッファ手段に他のＤＭＡチャネルの最初の部分領域の読み出しサイズ分の空き領域が存在するという状態になった時点で、他のＤＭＡチャネルの最初の部分領域の読み出しを開始する。
【００１０】
【発明の実施の形態】
＜第１の実施の形態＞
＜全体構成＞
図１は、本発明の第１の実施の形態におけるＤＭＡ(Direct Memory Access)転送装置を備える情報処理装置の主要部の構成を示すブロック図である。同図の情報処理装置は、例えばデジタル衛星放送受信装置（以下ＳＴＢ(Set Top Box)と呼ぶ）や、ＤＶＤ(Digital Video/Versatile Disk)、ＤＶＤーＲＡＭ等の光ディスク記録再生装置などの装置全体の制御に用いられ、Ｉ／Ｏ部５、ＳＤＲＡＭ４、ＳＤＲＡＭ  Ｉ／Ｆ３、ＣＰＵ２、ＤＭＡ転送装置１を備える。
【００１１】
Ｉ／Ｏ部５は、ＭＰＥＧストリームの入出力や、リモコン（図外）からのキーデータの入力を行なう。
ＳＤＲＡＭ４は、高速ページアクセスに対応するメモリである。高速ページアクセスとは、予め定められたページと呼ばれる連続する記憶領域に対して高速にアクセスすることである。本実施の形態ではＳＤＲＡＭ４は３２ビット（以下、３２ビットを１ワードとする）のデータ幅であり、１ページを４ワード（１６バイト）毎の連続する記憶領域とする。ここで、１ページの大きさは、２ワード、８ワード等他の大きさにすることもできるが、ＣＰＵ２のキャッシュフィルサイズ（キャッシュメモリを更新する単位）と同じ大きさにすることが望ましい。ＳＤＲＡＭ  Ｉ／Ｆ３の構成を対ＣＰＵ２と対ＤＭＡ転送装置１とで共通化でき簡略化できるからである。本実施の形態ではキャッシュフィルサイズも１６バイトであるものとする。
【００１２】
ＳＤＲＡＭ  Ｉ／Ｆ３は、ＤＭＡ転送装置１、ＣＰＵ２からバス上に送出されるアクセス信号群（アドレス、データ、各種制御信号）を、ＳＤＲＡＭ４の入出力仕様に変換してＳＤＲＡＭ４をアクセスする。
ＣＰＵ２は、内部にキャッシュメモリを有し、情報処理装置全体の制御を行ない、ＤＭＡ転送要求をＤＭＡ転送装置１に設定する。図１におけるＤＭＡ転送は、ＳＤＲＡＭ４からＳＤＲＡＭ４への（つまりＳＤＲＡＭ４内の異なる記憶領域間）転送と、ＳＤＲＡＭ４とＩ／Ｏ部５との間の転送と、ＳＤＲＡＭ４とＭＰＥＧデコーダ（図外）との間の転送等がある。
【００１３】
ＤＭＡ転送装置１は、ＳＤＲＡＭ４の異なる記憶領域間、ＳＤＲＡＭ４とＩ／Ｏ部５間等でＤＭＡ転送を行なう。その際、ＤＭＡ転送装置１は、転送元又は転送先がＳＤＲＡＭ４である場合には、ＳＤＲＡＭ４中の転送対象の領域内に存在するページ境界より区切られる部分領域を判別し、部分領域毎に対して高速ページアクセスにより連続的にアクセスを行なう。
＜ＤＭＡ転送装置１の構成＞
図２は、ＤＭＡ転送装置１の構成を示すブロック図である。同図のようにＤＭＡ転送装置１は、モード設定部１００、読み出し管理部２００、読み出し決定部２１０、書き込み管理部３００、書き込み決定部３１０、アクセス決定部１１０、アクセス制御部１２０、バッファ１３０を備えて構成される。図中の矢線に付与された（）内は、当該符号のレジスタ類の内容が入出力されることを意味する。
【００１４】
モード設定部１００は、ＣＰＵ２から設定されるＤＭＡ転送要求を保持するレジスタ１０１〜１０５を備える。ここで、ＤＭＡ転送要求は、ＳＤＲＡＭ４の異なる領域間や、ＳＤＲＡＭ４とＩ／Ｏ部５間でＣＰＵ２を介さないＤＭＡ転送を要求する各種パラメータを含む。各種パラメータは、(1)ＤＭＡ転送サイズ、(2)読み出し先頭アドレス、(3)書き込み先頭アドレス、(4)アドレッシングモード、(5)アクセスサイズ等を含む。ここで(1)「転送サイズ」はＤＭＡ転送すべき全データ長（バイト数とする）を示す。(2)「読み出し先頭アドレス」は転送元（ＳＤＲＡＭ４やＩ／Ｏ部５等）に記憶された転送すべきデータの先頭アドレスを指す。(3)「書き込み先頭アドレス」は転送先（ＳＤＲＡＭ４やＩ／Ｏ部５等）の先頭アドレスを指す。(4)「アドレッシングモード」は、転送元、転送先のそれぞれについてアドレス昇順にアクセスするかアドレス固定でアクセスするかを示す。(5)「アクセスサイズ」は、転送元、転送先のそれぞれについて１回のアクセスで読み出し又は書き込むべきデータサイズを指す。本実施の形態では、アクセスサイズは３２ビットであるものとする。
【００１５】
レジスタ１０１〜１０５は、順に転送サイズ、読み出し先頭アドレス、書き込み先頭アドレス、アドレッシングモード、アクセスサイズを保持し、ＤＭＡ転送要求によるＤＭＡ転送終了後にクリアされる。以下ではレジスタ１０１〜１０３の各保持内容を、TRANSFER_SIZE_101、SRC_A_102、DST_A_103と略記する。
読み出し管理部２００は、TRANSFER_SIZE_101とSRC_A_10とで特定される転送元記録領域内における、未読み出しのデータの先頭アドレス（以下REMAIN_R_A_201と略す）と、未読み出しのデータサイズ（以下REMAIN_R_SIZE_202と略す）とを管理する。そのため、読み出し管理部２００はアドレスカウンタ２０１とデータカウンタ２０２とを備える。
【００１６】
アドレスカウンタ２０１は、ＤＭＡ転送要求がモード設定部１００に発行されたときに、レジスタ１０２から入力されるSRC_A_102をREMAIN_R_A_201の初期値として保持し、さらに、アドレッシングモードがアドレス昇順である場合には、読み出しを完了した部分領域のバイト数についての通知を読み出し決定部２１０から受ける毎に、通知されたバイト数をREMAIN_R_A_201に加算することにより、REMAIN_R_A_201が次の部分領域の先頭アドレスを指すように更新する。上記の読み出しを完了した部分領域のバイト数は、アクセス制御部１２０によって転送元の部分領域のデータが読み出されバッファ１３０へ格納された時点で、読み出し決定部２１０から通知される。一方、アドレッシングモードがアドレス固定である場合には、アドレスカウンタ２０１は、レジスタ１０２から入力されるSRC_A_102を記憶したままＤＭＡ転送中に更新しない。
【００１７】
データカウンタ２０２は、ＤＭＡ転送要求がモード設定部１００に発行されたときに、TRANSFER_SIZE_101をREMAIN_R_SIZE_202の初期値として保持し、さらに、読み出しを完了した部分領域のバイト数が読み出し決定部２１０から通知される毎に、REMAIN_R_SIZE_202から当該バイト数を減算することにより更新する。その結果、REMAIN_R_SIZE_202は、TRANSFER_SIZE_101の内の未読み出しのデータサイズを表すことになる。
【００１８】
読み出し決定部２１０は、部分領域判定部２１１、アドレスレジスタ２１２、サイズレジスタ２１３とを備え、ＤＭＡ転送要求がモード設定部１００に発行された後、REMAIN_R_A_201及びREMAIN_R_SIZE_202により特定される未読み出しデータの記憶領域内における、ページ境界により区切られる部分領域を判別し、判別した部分領域毎の先頭アドレス（以下PARTIAL_R_A_212と略す。）をアドレスレジスタ２１２に、判別した部分領域のサイズ（PARTIAL_R_SIZE_213）をサイズレジスタ２１３に設定する。設定後、読み出し決定部２１０は、アクセス制御部１２０から当該部分領域の読み出しおよびバッファ１３０への格納を完了した旨の通知を受けると、サイズレジスタ２１３のPARTIAL_R_SIZE_213を、読み出しを完了した部分領域のサイズとして読み出し管理部２００に通知し、再度上記と同様にして次の部分領域を判別してアドレスレジスタ２１２、サイズレジスタ２１３に設定する。
【００１９】
図３に、読み出し決定部２１０によって判別される部分領域の一例を示す。同図は、ＳＤＲＡＭ４中の転送元の記憶領域を示している。この転送元の記憶領域は、５００Ｃ（１６進）番地から始まる２８バイト分の記憶領域、つまり、SRC_A_102が５００Ｃ番地、TRANSFER_SIZE_101が２８バイト（７ワード：図中の▲１▼〜▲７▼）であるものとする。ＳＤＲＡＭ４のページサイズは１６バイト（４ワード）であるので、転送すべきデータ（図中の▲１▼〜▲７▼の７ワード）は３つのページに跨って格納される。
【００２０】
この場合、読み出し決定部２１０は、次の第１〜第３の部分領域を順に判別する。第１の部分領域は（PARTIAL_R_A_212、PARTIAL_R_SIZE_213）＝(500C,4)で表されるワード▲１▼の記憶領域である。第２の部分領域は(5010,16)で表されるワード▲２▼〜▲５▼の記憶領域である。第３の部分領域は(5020,8)で表されるワード▲６▼▲７▼の記憶領域である。このように各部分領域は、ページ境界を含まないので高速ページアクセスに適している。
【００２１】
書き込み管理部３００は、TRANSFER_SIZE_101とDST_A_103とで特定される転送先記録領域内における、未書き込み領域の先頭アドレス（REMAIN_W_A_301と略す）と、未書き込みデータサイズ（REMAIN_W_SIZE_302と略す）とを管理する。そのため、書き込み管理部３００はアドレスカウンタ３０１とデータカウンタ３０２とを備える。
【００２２】
アドレスカウンタ３０１は、ＤＭＡ転送要求がモード設定部１００に発行されたときに、レジスタ１０３から入力されるDST_A_103を初期値として保持し、さらに、アドレッシングモードがアドレス昇順である場合には、書き込みを完了した部分領域のバイト数についての通知を書き込み決定部３１０から受ける毎に、通知されたバイト数をREMAIN_W_A_301に加算することにより、REMAIN_W_A_301が次の部分領域の先頭アドレスを指すように更新する。上記の書き込みを完了した部分領域のバイト数は、アクセス制御部１２０によって転送先の部分領域にデータが書き込まれた時点で、書き込み決定部３１０から通知される。一方、アドレッシングモードがアドレス固定である場合には、アドレスカウンタ３０１は、レジスタ１０３から入力されるDST_A_103を記憶したままＤＭＡ転送中は更新しない。
【００２３】
データカウンタ３０２は、ＤＭＡ転送要求がモード設定部１００に発行されたときに、TRANSFER_SIZE_101をREMAIN_W_SIZE_302の初期値として保持し、さらに、書き込みを完了した部分領域のバイト数が書き込み決定部３１０から通知される毎に、REMAIN_W_SIZE_302から当該バイト数を減算することにより更新する。その結果、REMAIN_R_SIZE_202は、TRANSFER_SIZE_101の内の未読み出しのデータサイズを表すことになる。
【００２４】
書き込み決定部３１０は、部分領域判定部３１１、アドレスレジスタ３１２、サイズレジスタ３１３を備え、ＤＭＡ転送要求がモード設定部１００に発行された後、REMAIN_W_A_301及びREMAIN_W_SIZE_302により特定される未書き込みの記憶領域内における、ページ境界により区切られる部分領域を判別し、判別した部分領域毎の先頭アドレス（以下PARTIAL_W_A_312と略す）をアドレスレジスタ３１２に、判別した部分領域のサイズ（以下PARTIAL_W_SIZE_313と略す）をサイズレジスタ３１３に設定する。設定後、アクセス制御部１２０から当該部分領域への書き込みを完了した旨の通知を受けると、サイズレジスタ３１３のPARTIAL_W_SIZE_313を、書き込みを完了したサイズとして書き込み管理部３００に通知し、再度上記と同様にして次の部分領域を判別してアドレスレジスタ３１２、サイズレジスタ３１３に次の部分領域を設定する。
【００２５】
図４に、書き込み決定部３１０によって判別される部分領域の一例を示す。同図は、ＳＤＲＡＭ４中の転送先の記憶領域の一部分を示している。この転送先記憶領域は、6008番地から始まる２８バイト分の記憶領域、つまり、DST_A_103が6008（１６進）番地、TRANSFER_SIZE_101が２８バイト（７ワード：図中の▲１▼〜▲７▼）であるものとする。ＳＤＲＡＭ４のページサイズは１６バイト（４ワード）であるので、転送先の記憶領域（図中の▲１▼〜▲７▼）は３つのページに跨って格納されている。
【００２６】
この場合、書き込み決定部３１０は、次の第４〜第６の部分領域を順に判別する。第４の部分領域は（PARTIAL_W_A_302、PARTIAL_W_SIZE_303）＝(6008,8)で表されるワード▲１▼▲２▼の記憶領域である。第５の部分領域は(6010,16)で表されるワード▲３▼〜▲６▼の記憶領域である。第６の部分領域は(6020,4)で表されるワード▲７▼の記憶領域である。このように各部分領域は、ページ境界を含まないので高速ページアクセスに適している。
【００２７】
アクセス決定部１１０は、バッファ管理部１１１、リード／ライト決定部１１２を備え、読み出し決定部２１０によって決定された転送元の部分領域からの読み出し及びバッファ１３０への格納（以下リードと略す）と、バッファ１３０に格納されたデータの読み出し及び書き込み決定部３１０によって決定された転送先の部分領域への書き込み（以下ライトと略す）のうちどちらをアクセス制御部１２０に実行させるかを、バッファ１３０のデータ量に応じて決定する。
【００２８】
バッファ管理部１１１は、REMAIN_R_SIZE_202とREMAIN_W_SIZE_302とが入力され、REMAIN_R_SIZE_202からREMAIN_W_SIZE_302を減算することにより、バッファ１３０に一時的に保持されているデータ量を算出する。
リード／ライト決定部１１２は、バッファ管理部１１１に算出されたデータ量がPARTIAL_W_SIZE_313よりも小さい場合には、アクセス制御部１２０に読み出しを実行させると決定し、そうでない場合には、ライトをアクセス制御部１２０に実行させると決定する。
【００２９】
アクセス制御部１２０は、リード／ライト決定部１１２に決定に従って、読み出し決定部２１０により転送元の部分領域からデータを読み出してバッファ１３０への格納し、また、バッファ１３０に格納されたデータを読み出して書き込み決定部３１０によって決定された転送先の部分領域への書き込みを行なう。
バッファ１３０は、転送元から読み出されたデータを一時的に保持し、さらに転送先に書き込まれた時点で消去される。バッファ１３０のサイズは、３２バイト（２ページ分）とする。
＜部分領域判定部２１１の構成例＞
図５は、部分領域判定部２１１の詳細な構成例を示すブロック図である。同図のように部分領域判定部２１１は、減算器２１１ａ、比較器２１１ｂ、セレクタ２１１ｃとからなる。
【００３０】
減算器２１１ａは、ページサイズに相当する定数（１０Ｈ）から、REMAIN_R_A_201の下位４ビットを減算する。この減算結果は、REMAIN_R_A_201から直近のページ境界までのバイト数を意味し、本実施の形態では図６に示すように４種類の値の何れかになる。
比較器２１１ｂは、減算結果のバイト数（図中のＡ）と、REMAIN_R_SIZE_202（図中のＢ）との大小関係を比較する。
【００３１】
セレクタ２１１ｃは、REMAIN_R_SIZE_202の方が減算結果よりも大きい場合には減算結果を選択し、そうでない場合（つまり未読み出しのデータが直近のページ境界より手前までしか存在しない場合）にはREMAIN_R_SIZE_202を選択し、選択結果を次に読み出すべき部分領域のデータサイズPARTIAL_R_SIZE_213としてサイズレジスタ２１３に出力する。
【００３２】
このようにして１つの部分領域のデータサイズが決定される。また部分領域の先頭アドレスは、REMAIN_R_A_201（アドレスカウンタ２０１によって更新される）がそのものである。REMAIN_R_A_201は、セレクタ２１１ｃの出力がサイズレジスタ２１３に設定されるのと同時に、PARTIAL_R_A_212としてアドレスレジスタ２１２に設定される。
＜部分領域判定部３１１＞
部分領域判定部３１１も図７、８に示すような構成により転送先の部分領域を順次判別する。図７、８は、図５、図６に示した部分領域判定部２１１とほぼ同様の構成であるので、説明を省略する。
＜動作説明＞
以上のように構成された本発明の第１の実施の形態におけるＤＭＡ転送装置１について、その動作を説明する。
【００３３】
図９は、図３、４に示した転送元、転送先の記憶領域間において、ＤＭＡ転送する様子を示す説明図である。この場合、ＣＰＵ２は、モード設定部１００にTＤＭＡ転送要求として、TRANSFER_SIZE_101＝２８（バイト、１０進）、SRC_A_102＝５００Ｃ（１６進）、DST_A_103＝６００８（１６進）を設定し、レジスタ１０４にはアドレッシングモードとして転送元、転送先ともにアドレス昇順を、レジスタ１０５にはアクセスサイズとして４バイト）を設定する。
【００３４】
この設定を受けて、ＤＭＡ転送装置１は、転送元の記憶領域からの読み出し（ＳＤＲＡＭ４→バッファ１３０）を同図の（１）（２）（４）の部分領域毎に、転送先の記憶領域への書き込み（バッファ１３０→ＳＤＲＡＭ４）を同図の（３）（５）（６）の部分領域毎に、数字の順に行なう。
図１０は、図９のＤＭＡ転送のタイミングを示すタイムチャートである。同図において、XBRDはリード信号（負論理）、XBWTはライト信号（負論理）、ADRはアドレス、SIZEはアクセスサイズ、DATAはリード／ライトデータ、XACKはアクノリッジ信号を意味する。これらの信号は、アクセス制御部１２０とＳＤＲＡＭ  Ｉ／Ｆ３との間で入出力される。以下、順を追って説明する。
【００３５】
（１）  ＤＭＡ転送要求の設定により読み出し管理部２００は、REMAIN_R_A_201＝５００Ｃ（１６進）、REMAIN_R_SIZE_202＝２８（１０進）を初期値として保持する。また、書き込み管理部３００は、REMAIN_W_A_301＝６００８、REMAIN_W_SIZE_302＝２８を初期値として保持する。
読み出し決定部２１０は、読み出し管理部２００のREMAIN_R_A_201、REMAIN_R_SIZE_202及びアドレッシングモード（アドレス昇順）、アクセスサイズに基づいて、最初の部分領域のサイズを判別する。最初の部分領域は、図５の転送元のワード▲１▼を記憶する領域と判別され、その結果、アドレスレジスタ２１２、サイズレジスタ２１３は、PARTIAL_R_A_212＝５００Ｃ（１６進）、PARTIAL_R_SIZE_213＝４（１０進）に設定される。
【００３６】
これと並行して、書き込み決定部３１０は、同様に、転送先のワード▲１▼▲２▼の記憶領域を最初の部分領域と判別し、アドレスレジスタ３１２にPARTIAL_W_A_312＝６００８を、サイズレジスタ３１３にPARTIAL_W_SIZE_313＝８を設定する。
このようにして転送元の部分領域と転送先の部分領域とが設定された後、アクセス決定部１１０は、バッファ管理部１１１により管理されているバッファ１３０のデータ量が０なので、読み出し決定部２１０により設定された転送元の部分領域の読み出しをアクセス制御部１２０に指示する。
【００３７】
この指示を受けてアクセス制御部１２０は、転送元の最初の部分領域（図中のワード▲１▼を記憶する領域）からデータを読み出しバッファ１３０に書き込む（図９、図１０の（１））。
（２）  転送元の最初の部分領域（ワード▲１▼）の読み出し完了後、アクセス制御部１２０は、読み出し決定部２１０に読み出しを完了した旨を通知し、さらに読み出し決定部２１０は、PARTIAL_R_SIZE_213を読み出しを完了したサイズとして読み出し管理部２００に通知する。
【００３８】
この通知により、読み出し管理部２００は、REMAIN_R_A_201、REMAIN_R_SIZE_202を、５０１０ｈ、２４（バイト）に更新する。一方書き込み決定部３１０は、アクセス制御部１２０から書き込みを完了した旨の通知を受けていないので、更新することなくPARTIAL_W_A_312＝６００８、PARTIAL_W_SIZE_313＝８のままである。
【００３９】
この時点でアクセス決定部１１０は、バッファ１３０に１ワードしか格納されていないので、読み出し決定部２１０により設定された転送元の部分領域の読み出しをすると決定し、その旨をアクセス制御部１２０に指示する。
この指示を受けてアクセス制御部１２０は、転送元の２番目の部分領域（ワード▲２▼〜▲５▼）からデータを高速ページアクセスにより読み出してバッファ１３０に書き込む（図９、図１０の（２））。
【００４０】
（３）転送元の２番目の部分領域の読み出し完了後、読み出し管理部２００、読み出し決定部２１０は、REMAIN_R_A_201＝５０２０（１６進）、REMAIN_R_SIZE_202＝８（１０進）、PARTIAL_R_A_212＝５０２０（１６進）、PARTIAL_R_SIZE_213  サイズレジスタ２１３＝８に更新する。
この時点でアクセス決定部１１０は、バッファ１３０に５ワード格納されているので、書き込み決定部３１０により設定された転送先の最初の部分領域の読み出しをすると決定し、その旨をアクセス制御部１２０に指示する。
【００４１】
この指示を受けてアクセス制御部１２０は、バッファ１３０からデータを読み出し転送先の最初の部分領域（ワード▲１▼▲２▼）に連続アクセスにより書き込む（図９、図１０の（３））。
（４）〜（６）以下、同様にＤＭＡ転送装置１は図９、図１０の（４）の部分領域の読み出し、（５）の部分領域の書き込み、（６）の部分領域の書き込みを順次行なう。
【００４２】
このように、ＤＭＡ転送装置１は図９の（２）の読み出し、（３）の書き込み（４）の読み出し、（５）の書き込みでは、高速ページアクセスを行なう。
つまり、ＤＭＡ転送装置１転送元、転送先それぞれについて、最初と最後の部分領域以外の部分領域に対しては１ページを単位として高速ページアクセスを行い、また、最初と最後の部分領域でも２ワード以上の場合に高速ページアクセスを行なう。これにより、ＤＭＡ転送装置１は高速にＤＭＡ転送を完了することができる。また、バッファ１３０の記憶容量は少なくとも２ページ分（より正確には（２ページのサイズ）−（１ワード））だけでよい。
【００４３】
なお、上記実施の形態では、転送元及び転送先の両者がＳＤＲＡＭ４である場合を説明したが、いずれか一方がＳＤＲＡＭ４である場合には、ＳＤＲＡＭ４に対して部分領域毎にアクセスすればよい。
＜第２の実施の形態＞
本実施の形態のＤＭＡ転送システムは、バッファ１３０を共用する複数のＤＭＡチャネルを有し、異なるＤＭＡチャネルのＤＭＡ転送要求が競合していない場合には、各ＤＭＡチャネルともに第１の実施の形態と同様に部分領域毎にアクセスし、ＤＭＡ転送要求が競合する場合（ＤＭＡ転送中により優先度の高い他のＤＭＡチャネルのＤＭＡ転送要求が発行された場合）には、ＤＭＡ転送を中断して、優先度の高いＤＭＡ転送を実行してから、元のＤＭＡ転送を再開する。この中断については、ＤＭＡ転送システムは、優先度の低い実行中のＤＭＡ転送のバッファに残されたデータを、部分領域毎のアクセスではなくページ境界とは無関係に順次転送先に書き込んでバッファを空にしてから、ＤＭＡ転送を中断する。
【００４４】
図１１は、本発明の第２の実施の形態におけるＤＭＡ転送システムの構成を示すブロック図である。このＤＭＡ転送システムは、ＤＭＡチャネル０に対応するＤＭＡ転送装置６、ＤＭＡチャネル１に対応するＤＭＡ転送装置７、バッファ１３０、アクセス要求調停部１４００から構成される。ＤＭＡチャネル１の優先度はＤＭＡチャネル０の優先度よりも高いものとする。
【００４５】
アクセス要求調停部１４００は、ＤＭＡ転送装置６からのＤＭＡチャネル０のアクセス要求と、ＤＭＡ転送装置７からのＤＭＡチャネル１のアクセス要求とが入力され、両者が競合する場合にはそれらを調停する。ここでアクセス要求とは、上記部分領域又はページ境界を含むメモリ領域に対するリード又はライトの要求をいう。
【００４６】
具体的には、アクセス要求調停部１４００は、ＤＭＡ転送装置６、７にＤＭＡチャネル０、１の未完了のＤＭＡ転送要求が設定されているか否かを判定する。この判定は、例えば、書き込み管理部１３００、書き込み管理部２３００にそれぞれ保持されている未書き込みデータサイズ（REMAIN_W_SIZE_1302、REMAIN_W_SIZE_2302）が０であるか否かによる。
【００４７】
判定の結果、一方のＤＭＡチャネルのＤＭＡ転送要求が設定されている場合には、アクセス要求調停部１４００は、そのチャネルのアクセス要求を受け付け、ＳＤＲＡＭ  Ｉ／Ｆ３に出力する。
ＤＭＡチャネル１のＤＭＡ転送中により優先度の低いＤＭＡチャネル０のＤＭＡ転送要求が設定された場合、アクセス要求調停部１４００は、ＤＭＡチャネル１のＤＭＡ転送が完了してから、ＤＭＡチャネル０のアクセス要求を受け付け、ＳＤＲＡＭ  Ｉ／Ｆ３に出力する。
【００４８】
ＤＭＡチャネル０のＤＭＡ転送中により優先度の高いＤＭＡチャネル１のＤＭＡ転送要求が設定された場合、アクセス要求調停部１４００は、ＤＭＡ転送装置６に中断指示を出力し、中断指示に応じてＤＭＡ転送装置６からバッファ１３０が空になった旨の通知を受けると、ＤＭＡ転送装置７からＤＭＡチャンネル１のアクセス要求を受け付けＳＤＲＡＭ  Ｉ／Ｆ３に出力する。これによりＤＭＡチャネル１のＤ間転送が完了すると、ＤＭＡ転送装置６に再開指示を出力する。
【００４９】
ＤＭＡ転送装置６は、モード設定部１１００、アクセス決定部１１１０、アクセス制御部１１２０、読み出し管理部１２００、読み出し決定部１２１０、書き込み管理部１３００、書き込み決定部１３１０から構成される。
このうちモード設定部１１００、読み出し管理部１２００、読み出し決定部１２１０、書き込み管理部１３００は、図２に示したモード設定部１００、読み出し管理部２００、読み出し決定部２１０、書き込み管理部３００と同じ構成要素である。以下同じ構成要素については説明を省略し、異なる点を中心に説明する。
【００５０】
アクセス決定部１１１０は、図２に示したアクセス決定部１１０と同じ機能を有し、加えて、アクセス要求調停部１４００からアクセス制御部１１２０を介してＤＭＡ転送の中断指示、再開指示により転送中のＤＭＡを中断、再開するよう構成される。図１２に示すようにアクセス決定部１１１０は、バッファ管理部１１１１、リード／ライト決定部１１１２から構成される。
【００５１】
バッファ管理部１１１１は、図２に示したバッファ管理部１１１と同様にバッファ１３０のデータ量を管理する。
リード／ライト決定部１１１２は、図２に示したリード／ライト決定部１１２と比べて次の機能が追加されている。
すなわち、リード／ライト決定部１１１２は、アクセス制御部１１２０から中断指示を受けた場合に、以後リードを行なうという決定を行なわず、部分領域判定部１３１１の動作を一時的に禁止し、バッファ管理部１１１１に算出されたデータ量を書き込み決定部１３１０に通知し、サイズレジスタ１３１３に当該データ量を設定する。さらに、バッファ管理部１１１１に算出されたデータ量が”０”になったとき、バッファ１３０が空になった旨をアクセス制御部１１２０を介してアクセス要求調停部１４００に通知する。
【００５２】
また、リード／ライト決定部１１１２は、ＤＭＡ転送中にアクセス制御部１１２０から再開指示を受けた場合に、部分領域判定部１３１１の動作禁止を解除し、図２に示したリード／ライト決定部１１２と同様の判定を行なう。
書き込み決定部１３１０は、図１２に示すように部分領域判定部１３１１、アドレスレジスタ１３１２、サイズレジスタ１３１３とからなる。
【００５３】
アドレスレジスタ１３１２、サイズレジスタ１３１３は、図２に示したアドレスレジスタ３１２、サイズレジスタ３１３と同じである。ただし、PARTIAL_W_SIZE_313  サイズレジスタ１３１３は、リード／ライト決定部１１１２が中断指示を受けたときは、リード／ライト決定部１１１２からデータ量を直接設定される。これにより、サイズレジスタ１３１３には、バッファ１３０に残っているデータのサイズが設定される。
【００５４】
部分領域判定部１３１１は、リード／ライト決定部１１１２により一時的に動作を禁止される点以外は、図２に示した部分領域判定部３１１と同じである。
アクセス制御部１１２０は、図２に示したアクセス制御部１２０の機能に加えて、アクセス要求調停部１４００から入力される中断指示及び再開指示をアクセス決定部１１１０に出力し、アクセス決定部１１１０から入力されるバッファ１３０が空になった旨の通知をアクセス要求調停部１４００に出力する。
【００５５】
ＤＭＡ転送装置７は、モード設定部２１００、アクセス決定部２１１０、アクセス制御部２１２０、読み出し管理部２２００、読み出し決定部２２１０、書き込み管理部２３００、書き込み決定部２３１０から構成される。この構成は、図２に示したＤＭＡ転送装置１と同じ構成であるので説明を省略する。
＜動作説明＞
図１３は、本実施形態のＤＭＡ転送システムにおけるＤＭＡ転送のタイミングを示すタイムチャートである。同図において、XBRD、XBWT、ADR、SIZE、DATA、XACKは図１０と同じである。同図では、ＤＭＡ転送装置６（ＤＭＡチャネル０）には図３、４、１０と同様のＤＭＡ転送要求が設定され、同図のＴ１のタイミングでＤＭＡ転送装置７（ＤＭＡチャネル１）に他のＤＭＡ転送要求が設定された場合のタイミングを示す。
【００５６】
同図では、（１）（２）（３）は、図１０と同様に、ＤＭＡチャネル０の転送元の部分領域からの読み出し（１）（２）と、転送先の部分領域への書き込み（３）のタイミングを示している。
部分領域への書き込み（３）の実行中に優先度の高いＤＭＡチャネル１のＤＭＡ転送要求がモード設定部２１００に設定されたものとする。
【００５７】
アクセス要求調停部１４００は、ＤＭＡチャネル１のＤＭＡ転送要求が設定されていると判定し、既にＤＭＡチャネル０のＤＭＡ転送要求が設定されているので、ＤＭＡ転送装置６に中断指示を出す。この中断指示により、ＤＭＡ転送装置６内のリード／ライト決定部１１１２は、同図の（３）が完了したとき、新たにリードを行なうと決定しないで、バッファ１３０内に存在するデータ量をサイズレジスタ１３１３に設定して、ライトを行なうと決定する。これによりアクセス制御部１１２０は、ＤＭＡチェネル０の転送データでバッファ１３０に残っているデータの全てを転送先の記憶領域に書き込む（同図（７））。
【００５８】
この書き込み完了後、リード／ライト決定部１１１２は、バッファ１３０が空になった旨をアクセス要求調停部１４００に通知する。この通知を受けてアクセス要求調停部１４００は、ＤＭＡチャネル１に対するアクセス要求を優先してＤＭＡ転送装置７から受付けて、ＳＤＲＡＭ  Ｉ／Ｆ３に出力する（同図（８））。
【００５９】
この後、アクセス要求調停部１４００は、ＤＭＡチャネル１のＤＭＡデータ転送が完了していると判定した場合、ＤＭＡ転送装置６に再開指示を出す。
このように本実施の形態におけるＤＭＡデータ転送システムによれば、各チャネル毎に独立したバッファを備える必要がなく、回路規模を抑えたままデータ転送中に他のチャネルから優先度の高いＤＭＡ転送要求が発生した場合に実行中のＤＭＡ転送を一時中断して、優先度の高いＤＭＡ転送要求を先に処理することができる。
＜第３の実施の形態＞
図１４は、本発明の第３の実施の形態におけるＤＭＡ転送装置８の構成を示すブロック図である。同図は、図２と比べて、アクセス決定部１１０、書き込み管理部３００、アクセス制御部１２０、バッファ１３０の代わりにそれぞれアクセス決定部４１１０、アクセス制御部４１２０、バッファ４１３０を備えている点が異なっている。図２と同じ符号の構成要素は同じ機能を有するので説明を省略し、以下異なる点を中心に説明する。
【００６０】
バッファ４１３０は、書き込みと読み出しとの並行動作可能な２ポートメモリである。バッファ４１３０の２つのポートは異なるバスに接続されている。１つのポートはＳＤＲＡＭ  Ｉ／Ｆ３を介してＳＤＲＡＭ４に接続され、他のポートはＳＤＲＡＭ  Ｉ／Ｆ４００３を介してＳＤＲＡＭ４００４に接続される。いずれのポートからも読み出し動作と書き込み動作とが可能である。一方のポートからの書き込み動作と同時に他方のポートからの読み出し動作が可能である。
【００６１】
アクセス決定部４１１０は、バッファ４１３０に保持されているデータ量（バイト数）をバッファ４１３０から直接取得して管理する。したがって、バッファ４１３０に１ワードの書き込み及び読み出しが行われる毎に、アクセス決定部４１１０は、データ量を更新することになる。さらに、アクセス決定部４１１は、読み出し決定部２１０に決定された部分領域のサイズ(PARTIAL_R_SIZE_213)以上の空き領域がバッファ４１３０に存在すればリードを行なうと決定し、また、書き込み決定部３１０に決定された部分領域のサイズ(PARTIAL_W_SIZE_313)以上のデータがバッファ４１３０に存在すればライトを行なうと決定する。転送元部分領域のリードの決定と、転送先の部分領域のライトの決定とは、択一になされるのではなく独立に行われるので、ライトの決定タイミングが第１の実施の形態に比べて早くなる。
【００６２】
アクセス制御部４１２０は、ＳＤＲＡＭ４とＳＤＲＡＭ４００４に対する読み出しと書き込みとを並行して行なう。すなわち、アクセス制御部４１２０は、読み出し決定部２１０により決定された部分領域の読み出しを行い、これと並行して、書き込み決定部４３１０から入力されるアドレスに基づいて転送先領域に書き込みを行なう。
＜動作説明＞
図１５は、本実施形態のＤＭＡ転送装置におけるＤＭＡ転送のタイミングを示すタイムチャートである。
【００６３】
同図において上半分はアクセス制御部４１２０からＳＤＲＡＭ  Ｉ／Ｆ３に出力される信号群を、下半分はＳＤＲＡＭ  Ｉ／Ｆ４００３に出力される信号群を示している。また、転送元はＳＤＲＡＭ４の５００８番地から７ワード分の領域、転送先はＳＤＲＡＭ４００４の６００Ｃ番地から７ワード分の領域としている。
【００６４】
図１５と図１０とを比較すると、図１５では部分領域への書き込み（同図（３）（５）（６））の開始タイミングが早くなっている。これは、アクセス決定部４１１０がバッファ４１３０に保持されているデータ量をワード単位に管理しているので、アクセス決定部４１１０は、転送先の部分領域への書き込みデータサイズ分のデータがバッファ４１３０に書き込まれた時点でライトを決定することができるからである。
【００６５】
このように本実施の形態におけるＤＭＡ転送装置によれば、部分領域毎に高速ページアクセスを行なうことに加えて、転送元メモリと転送元メモリが異なるバスに接続されている場合に、転送元メモリからの読み出しと、転送先メモリへの書き込みを並列に実行することができる。
＜第４の実施の形態＞
第２の実施の形態ではＤＭＡチャネル０、１ともに同一のメモリ（ＳＤＲＡＭ４）又は同一バス上の異なるメモリを転送対象としていたが、本実施形態では、異なるバス上のメモリも転送対象とするＤＭＡ転送システムについて説明する。
【００６６】
図１６は、本発明の第４の実施の形態におけるＤＭＡ転送システムの構成を示すブロック図である。同図は、第２の実施の形態における図１１と比較して、アクセス要求調停部１４００の代わりにアクセス要求調停部４４００を、バッファ１３０の代わりにバッファ４１３０を備える点が異なっている。図１１と同じ符号の構成要素は同じ機能であるので説明を省略し、以下異なる点を中心に説明する。
【００６７】
バッファ４１３０は、書き込みと読み出しとの並行動作可能な２ポートメモリである。バッファ４１３０の２つのポートは異なるバスに接続されている。１つのポートはＳＤＲＡＭ  Ｉ／Ｆ３を介してＳＤＲＡＭ４に接続され、他のポートはＳＤＲＡＭ  Ｉ／Ｆ４００３を介してＳＤＲＡＭ４００４に接続される。いずれのポートからも読み出し動作と書き込み動作とが可能である。
【００６８】
図１７にバッファ４１３０の構成例を示す。同図のバッファ４１３０は、マルチプレクサ４１３０ａ、ＦＩＦＯ４１３０ｂ、デマルチプレクサ４１３０マルチプレクサ４１３０ａ、ＦＩＦＯ４１３０ｂ、デマルチプレクサ４１３０ｃとからなる。ポート０、１は、いずれもマルチプレクサ４１３０ａ及びデマルチプレクサ４１３０ｃに接続されている。これにより、バッファ４１３０は、一方のポートからの書き込み動作と他方のポートからの読み出し動作とを並列実行可能である。
【００６９】
アクセス要求調停部４４００は、ＤＭＡチャネル０のＤＭＡ転送中に優先度の高いＤＭＡチャネル１の転送要求が設定され、かつ、ＤＭＡチャネル０の転送先メモリとＤＭＡチャネル１の転送元メモリが同じメモリ又は同一バス上のメモリである場合には、第２の実施形態におけるアクセス要求調停部１４００と同じ動作を行う。
【００７０】
また、アクセス要求調停部４４００は、ＤＭＡ転送中に他のＤＭＡチャネルの転送要求が設定され、転送先メモリとＤＭＡチャネルの転送元メモリが異なるバス上のメモリである場合には、ＤＭＡ転送における全転送データについての転送元からの読み出しが完了し、かつ、バッファ４１３０にＤＭＡチャネルの最初の部分領域の読み出しサイズ分の空き領域が存在するという状態になった時点で、ＤＭＡチャネルの最初の部分領域の読み出しを開始する。
【００７１】
図１８（ａ）〜図１８（ｆ）に、ＤＭＡチャンネル０の転送先とＤＭＡチャネル１の転送元とが異なるメモリである場合を示す。同図においてＳＲＣ０、ＤＳＴ０はＤＭＡチャネル０の転送元の記憶領域、転送先の記憶領域を、ＳＲＣ１、ＤＳＴ１はＤＭＡチャネル１の転送元の記憶領域、転送先の記憶領域をそれぞれ示す。また、図中の▲１▼を付した破線は、ＤＭＡチャネル０の最後の部分領域の読み出し（メモリ→バッファ４１３０）を、▲２▼の矢線はＤＭＡチャネル０の最後の部分領域の書き込み（バッファ４１３０→メモリ）を意味する。また▲３▼の矢線はＤＭＡチャネル１の最初の部分領域の読み出し（メモリ→バッファ４１３０）を意味する。アクセス要求調停部４４００は、▲２▼と▲３▼とが異なるバスに接続された２つのメモリへの書き込みと読み出しであるので並列実行する。
＜動作説明＞
図１９は、図１８（ａ）の場合の動作例を示すタイムチャートである。
【００７２】
同図において上半分はアクセス要求調停部４４００からＳＤＲＡＭ  Ｉ／Ｆ３に出力される信号群を、下半分はＳＤＲＡＭ  Ｉ／Ｆ４００３に出力される信号群を示している。図中の▲１▼▲２▼▲３▼は図１８（ａ）の▲１▼▲２▼▲３▼に対応する。
同図のようにアクセス要求調停部４４００は、ＤＭＡチャネル０のＤＭＡ転送中に、ＤＭＡチャネル１の転送要求が設定され、ＤＭＡチャンネル０の転送先とＤＭＡチャネル１の転送元とが異なるメモリ（ＳＤＲＡＭ４と４００４）である場合には、ＤＭＡチャネル０の全転送データについて転送元からの読み出しが完了し（図中▲１▼の完了時点）、かつ、バッファ４１３０にＤＭＡチャネル１の最初の部分領域の読み出しサイズ分の空き領域が存在するという状態になった時点で（図中▲３▼の開始時点）、ＤＭＡチャネル１の最初の部分領域の読み出しを開始するように制御する。
【００７３】
以上のように本実施の形態におけるＤＭＡ転送システムによれば、ＤＭＡ転送中に他のＤＭＡチャネルのＤＭＡ転送要求が設定され、先行する転送中の転送先メモリと、新たに設定されたＤＭＡ転送要求の転送先メモリとが異なるバスに接続されている場合に、アクセス要求調停部４４００は、先行するＤＭＡ転送の最後の部分領域の読み出しが完了し、かつバッファ４１３０に他のＤＭＡチャネルの最初の部分領域のサイズ分の空きが生じた時点で、新たなＤＭＡ転送要求の読み出しを開始するので、連続する２つのＤＭＡ転送要求によるバス使用効率を向上させることができる。
【００７４】
なお、図１８（ａ）〜（ｆ）では、ＤＭＡチャネル０のＤＭＡ転送中にＤＭＡチャネル１のＤＭＡ転送要求が設定された場合を示しているが、逆の場合つまりＤＭＡチャネル１のＤＭＡ転送中にＤＭＡチャネル０のＤＭＡ転送要求が設定された場合も、先行するＤＭＡ転送の転送先メモリと新たなＤＭＡ転送の転送元メモリとが異なるバス上にある限り同様である。
【００７５】
本実施の形態におけるＤＭＡ転送システムは、３つ以上のＤＭＡ転送装置を備える構成としてもよい。その場合、アクセス要求調停部は、全てのＤＭＡ転送装置から最後の部分領域の読み出しを完了したことを検出し、かつ、各ＤＭＡ転送装置における転送先と転送元のメモリを判別し、それらに基づいて図１９のような制御を行うようにすればよい。
＜その他＞
なお、上記各実施の形態において、転送元及び転送先が何れも高速ページアクセス可能なメモリであることを前提に説明したが、転送元及び転送先の一方が高速ページアクセス可能なメモリである場合には、高速ページアクセス可能なメモリに対してのみ、ページ境界で区切られた部分領域毎にアクセスすることになる。例えば、高速ページアクセス可能なメモリと、固定アドレスが割り当てられたＩ／Ｏとの間のＤＭＡ転送であっても、メモリに対する高速ページアクセスを保証することができ、かつバッファ１３０又は４１３０のバッファ容量が少なくてもよい。
【００７６】
また、上記第１の実施の形態において減算器２１１ａの代わりに、図６のREMAIN_R_A_201の下位４ビットを入力し、減算結果と同じ値を出力する入出力論理をもつ論理回路又はテーブルを備えてもよい。
【００７７】
【発明の効果】
（１）本発明のＤＭＡ転送装置は、高速ページアクセスに対応するメモリを対象とするＤＭＡ転送装置であって、転送対象となるメモリ領域を構成する複数の部分領域であって、前記メモリ領域の先頭とページ境界との間、ページ境界間及びページ境界と前記メモリ領域の末尾との間の各部分領域を判別する判別手段と、判別された部分領域毎に高速ページアクセスを行なうアクセス手段とを備える。
【００７８】
この構成によれば、ＤＭＡ転送装置は、転送元と転送先の少なくとも一方が高速ページアクセス可能なメモリである場合に、転送対象のメモリ領域内においてページ境界により区切られた部分領域毎に、高速ページアクセスすることを保証できる。その結果、本ＤＭＡ転送装置は、メモリの性能を犠牲にすることなく、高速ページアクセス可能なメモリと相性が良く、バスの遊休期間を低減しＤＭＡ転送時間を短縮することができる。
【００７９】
（２）前記判別手段は、転送対象となる領域の先頭アドレスを初期値として保持し、アクセス手段により高速ページアクセスがなされる毎に、保持内容を転送対象のメモリ領域のうち未転送の領域の先頭アドレスに更新するアドレス更新手段と、転送対象となる領域のデータサイズを初期値として保持し、アクセス手段により高速ページアクセスがなされる毎に保持内容を、転送対象のデータサイズのうちの未転送データサイズに更新するデータサイズ更新手段と、アドレス更新手段に初期値として保持される先頭アドレスから直近のページ境界までの部分領域を判別し、アドレス更新手段が更新する毎に、更新後の先頭アドレスから直近のページ境界又は前記メモリ領域の末尾までの次の部分領域を判別する部分領域判別手段とを備えるように構成してもよい。
【００８０】
この構成によれば、判別手段は、高速ページアクセスがなされる毎に、転送対象のメモリ領域の先頭から直近のページ境界までの部分領域、そのページ境界から次のページ境界までの部分領域、・・・、ページ境界から前記メモリ領域の末尾までの部分領域というように複数の部分領域を順次判別することと、アクセス手段が各部分領域に対して高速ページアクセスすることとを並行して行なうことができる。
【００８１】
（３）前記部分領域判別手段は、アドレス更新手段に保持された先頭アドレスから直近のページ境界または前記メモリ領域の末尾までのサイズを判別するサイズ判別手段と、サイズ判別手段により判別されたサイズを部分領域のサイズとして保持するサイズ保持手段とを備え、前記アクセス手段は、アドレス更新手段に保持されている先頭アドレスからサイズ保持手段に保持されたサイズ分の部分領域を高速ページアクセスするように構成してもよい。
【００８２】
この構成によれば、部分領域判定手段は、先頭アドレスとサイズとの組みというパラメータにより表される部分領域を判別するので、アクセス手段に高速ページアクセスに適したパラメータを出力することができる。
（４）前記サイズ判別手段は、ページ領域のサイズから、アドレス更新手段に保持された先頭アドレスの下位ビットであってページ領域内の相対位置を表す下位ビットを減算することにより、直近のページ境界までのサイズを算出する減算手段と、減算手段により算出されたサイズと、データサイズ更新手段に保持された未転送データサイズとを比較する比較手段と、比較手段の比較の結果、大きくない方を選択する選択手段とを備え、前記サイズ保持手段は、選択手段の選択結果を部分領域のサイズとして保持する構成としてもよい。
【００８３】
この構成によれば、サイズ判定手段は、減算と比較という簡単な構成により部分領域のサイズを判別することができる。
（５）また、本発明のＤＭＡ転送装置は、高速ページアクセスに対応するメモリを転送対象とするＤＭＡ転送装置であって、転送元となる第１メモリ領域を構成する複数の転送元部分領域であって、前記第１メモリ領域の先頭、ページ境界及び前記第１メモリ領域の末尾の何れかとページ境界とにより区切られた複数の転送元部分領域を判別する第１判別手段と、転送先となる第２メモリ領域を構成する複数の転送先部分領域であって、前記第２メモリ領域の先頭、ページ境界及び前記第２メモリ領域の末尾の何れかとページ境界とにより区切られた複数の転送先部分領域を判別する第２判別手段と、第１判別手段に判別された転送元部分領域から高速ページアクセスによりデータを読み出し、第２判別手段により判別された転送先部分領域に読み出されたデータを高速ページアクセスにより書き込むアクセス手段とを備える。
【００８４】
この構成によれば、ＤＭＡ転送装置は、転送元と転送先とが高速ページアクセス可能なメモリである場合に、転送対象の第１、第２メモリ領域内においてページ境界により区切られた転送元部分領域、転送先部分領域毎に、高速ページアクセスすることを保証できる。その結果、本ＤＭＡ転送装置は、メモリの性能を犠牲にすることなく、高速ページアクセス可能なメモリと相性が良く、バスの遊休期間を低減しＤＭＡ転送時間を短縮することができる。
【００８５】
（６）前記第１判別手段は、第１メモリ領域の先頭アドレスを初期値として保持し、アクセス手段のアクセスに応じて保持内容を、第１メモリ領域のうち未転送の領域の先頭アドレスに更新する第１アドレス更新手段と、第１メモリ領域のデータサイズを初期値として保持し、アクセス手段のアクセスに応じて保持内容を、第１メモリ領域のデータサイズのうちの未転送データサイズに更新する第１データサイズ更新手段と、第１アドレス更新手段に初期値として保持された先頭アドレスから直近のページ境界までの転送元部分領域を判別し、第１アドレス更新手段が更新する毎に、更新後の先頭アドレスから直近のページ境界又は前記第１メモリ領域の末尾までの次の転送元部分領域を判別する第１部分領域判別手段とを備える。
【００８６】
この構成によれば、第１判別手段は、高速ページアクセスがなされる毎に、第１メモリ領域の先頭から直近のページ境界までの転送元部分領域、そのページ境界から次のページ境界までの転送元部分領域、・・・、ページ境界から前記第１メモリ領域の末尾までの転送元部分領域というように複数の転送元部分領域を順次判別することと、アクセス手段が各転送元部分領域に対して高速ページアクセスすることとを並行して行なうことができる。
【００８７】
（７）また、前記第１部分領域判別手段は、第１アドレス更新手段に保持された先頭アドレスから直近のページ境界または前記第１メモリ領域の末尾までのデータサイズを判別する第１サイズ判別手段と、第１サイズ判別手段により判別されたサイズを転送元部分領域のサイズとして保持する第１サイズ保持手段とを備える。前記アクセス手段は、第１アドレス保持手段に保持された先頭アドレスから、第１サイズ保持手段に保持されたサイズ分の転送元部分領域を高速ページアクセスにより読み出す。
【００８８】
この構成によれば、第１部分領域判定手段は、先頭アドレスとサイズとの組みというパラメータにより表される部分領域を判別するので、アクセス手段に高速ページアクセスに適したパラメータを出力することができる。
（８）前記第１サイズ判別手段は、ページ領域のサイズから、第１アドレス更新手段に保持された先頭アドレスの下位ビットであってページ領域内の相対位置を表す下位ビットを減算することにより、直近のページ境界までのサイズを算出する第１減算手段と、第１減算手段により算出されたサイズと、第１データサイズ更新手段に保持された未転送データサイズとを比較する第１比較手段と、第１比較手段の比較の結果、大きくない方を選択する第１選択手段とを備え、前記第１サイズ保持手段は、第１選択手段の選択結果を部分領域のサイズとして保持する。
【００８９】
この構成によれば、第１サイズ判定手段は、減算と比較という簡単な構成により部分領域のサイズを判別することができる。
（９）前記第２判別手段は、第２メモリ領域の先頭アドレスを初期値として保持し、アクセス手段のアクセスに応じて保持内容を、第２メモリ領域のうち未転送の領域の先頭アドレスに更新する第２アドレス更新手段と、第２メモリ領域のデータサイズを初期値として保持し、アクセス手段のアクセスに応じて保持内容を、第２メモリ領域のデータサイズのうちの未転送データサイズに更新する第２データサイズ更新手段と、第２アドレス更新手段に初期値として保持された先頭アドレスから直近のページ境界までの転送先部分領域を判別し、第２アドレス更新手段が更新する毎に、更新後の先頭アドレスから直近のページ境界又は前記第２メモリ領域の末尾までの次の転送先部分領域を判別する第２部分領域判別手段とを備える。
【００９０】
この構成によれば、第２判別手段が第２メモリ領域の先頭から直近のページ境界までの部分領域、そのページ境界から次のページ境界までの部分領域、・・・、ページ境界から前記メモリ領域の末尾までの部分領域というように複数の部分領域を順次判別することと、アクセス手段が各部分領域に対して高速連続アクセスすることとを並行して行なうことができる。
【００９１】
（１０）前記第２部分領域判別手段は、第２アドレス更新手段に保持された先頭アドレスから直近のページ境界または前記第２メモリ領域の末尾までのサイズを判別する第２サイズ判別手段と、第２サイズ判別手段により判別されたサイズを転送先部分領域のサイズとして保持する第２サイズ保持手段とを備え、前記アクセス手段は、第２アドレス保持手段に保持された先頭アドレスから、第２サイズ保持手段に保持されたサイズ分の転送先部分領域を高速ページアクセスに書き込む。
【００９２】
この構成によれば、第２部分領域判別手段は、転送対象のメモリ領域の先頭から直近のページ境界までの部分領域、そのページ境界から次のページ境界までの部分領域、・・・、ページ境界から前記メモリ領域の末尾までの部分領域というように複数の部分領域を順次判別することと、アクセス手段が各部分領域に対して高速連続アクセスすることとを並行して行なうことができる。
【００９３】
（１１）前記第２サイズ判別手段は、ページ領域のサイズから、第２アドレス更新手段に保持された先頭アドレスの下位ビットであってページ領域内の相対位置を表す下位ビットを減算することにより、直近のページ境界までのサイズを算出する第２減算手段と、第２減算手段により算出されたサイズと、第２データサイズ更新手段に保持された未転送データサイズとを比較する第２比較手段と、第２比較手段の比較の結果、大きくない方を選択する第２選択手段とを備え、前記第２サイズ保持手段は、第２選択手段の選択結果を部分領域のサイズとして保持する。
【００９４】
この構成によれば、第２サイズ判定手段は、減算と比較という簡単な構成により部分領域のサイズを判別することができる。
（１２）また、本発明のＤＭＡ転送装置は、転送元となる第１メモリ領域を構成する複数の転送元部分領域であって、前記第１メモリ領域の先頭とページ境界との間、ページ境界間及びページ境界と前記第１メモリ領域の末尾との間の各転送元部分領域を判別する第１判別手段と、転送先となる第２メモリ領域を構成する複数の転送先部分領域であって、前記第２メモリ領域の先頭とページ境界との間、ページ境界間及びページ境界と前記第２メモリ領域の末尾との間の各転送先部分領域を判別する第２判別手段と、第１判別手段に判別された転送元部分領域から高速ページアクセスによりデータを読み出してバッファ手段に格納し、バッファ手段に格納されたデータを第２判別手段により判別された転送先部分領域に高速ページアクセスにより書き込むアクセス手段とを備える。
【００９５】
この構成によれば、ＤＭＡ転送装置は、転送元と転送先の両者が高速ページアクセス可能なメモリである場合に、転送元の第１メモリ領域内においてページ境界により区切られた転送元部分領域毎に高速ページアクセスによる読み出しをすることを保証できる。加えて、転送先の第２メモリ領域内においてページ境界により区切られた転送先部分領域毎に高速yージアクセスによる書き込みをすることを保証できる。その結果、バスの遊休期間を低減しＤＭＡ転送時間を短縮することができる。
【００９６】
（１３）また、前記第１メモリ領域と第２メモリ領域とは、同一メモリ内の領域又は同じバスに接続された異なるメモリ内の領域であって、前記アクセス手段は、バッファ手段に保持されているデータのサイズ及びバッファ手段の空きサイズと、転送元部分領域のサイズ及び転送先部分領域のサイズとを比較して、比較結果に応じて転送元部分領域の読み出しと転送先部分領域の書き込みの何れを行なうかを決定するリード／ライト決定手段と、リード／ライト決定手段の決定に従って転送元部分領域からの読み出しと転送先部分領域への書き込みとを行なうアクセス制御手段とを備える。
【００９７】
（１４）前記バッファ手段は、ページ領域の２倍からメモリのアクセスサイズを引いた容量を少なくとも有し、前記リード／ライト決定手段は、バッファ手段の空きサイズが第１判別手段により判別された転送元部分領域のサイズ以上である場合はリードを行なうと判定し、バッファ管理手段に取得されたデータサイズが、第２判別手段により判別された転送先部分領域のサイズ以上である場合は、ライトを行なうと決定する。
【００９８】
この構成によれば、転送元部分領域毎に高速ページアクセスによる読み出しを行い、転送先部分領域毎にも高速ページアクセスによる書き込みをすることを保証できる。さらに、バッファ手段の記憶容量は、ページ領域の２倍からメモリのアクセスサイズを引いた容量を少なくとも有するだけでよいので、少ないバッファ容量で効率よくＤＭＡ転送を実現できる。
【００９９】
（１５）前記バッファ手段は２つのバスに接続される２ポートメモリであり、前記第１メモリ領域と第２メモリ領域とは、異なるバスに接続されたメモリ内の領域であり、前記アクセス手段は、バッファ手段に保持されているデータのサイズとバッファ手段の空きサイズとに応じて、転送元部分領域からの読み出しを行なうか否かと決定し、これと独立に、転送先部分領域への書き込みを行なうか否かを決定するリード／ライト決定手段と、リード／ライト決定手段の決定に従って転送元部分領域からの読み出しと転送先部分領域への書き込みとを行なうアクセス制御手段とを備える。
【０１００】
この構成によれば、転送元の第１メモリ領域と転送先の第２メモリ領域とが異なるバスに接続されたメモリ内の領域である場合に、ページ境界で区切られた転送元部分領域からバッファへの転送と、バッファから転送先部分領域への転送とを並行して行うことができ、しかも、少ないバッファ容量で効率よくＤＭＡ転送を実現できる。
【０１０１】
（１７）本発明は、優先度が異なる複数のＤＭＡチャネルを有するＤＭＡ転送システムであって、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルのＤＭＡ転送要求を受付け、ＤＭＡ転送の完了までＤＭＡ転送要求を保持する複数の受付手段と、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルのＤＭＡ転送要求に指定された転送対象のメモリ領域について、当該メモリ領域を構成する複数の部分領域であって、前記メモリ領域の先頭とページ境界との間、ページ境界間及びページ境界と前記メモリ領域の末尾との間の各部分領域を判別する複数の判別手段と、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルの判別手段により判別された部分領域毎に高速ページアクセスを指示するアクセス要求を生成する複数のアクセス要求生成手段と、各ＤＭＡチャネルに共用され、転送すべきデータを一時的に保持するバッファ手段と、調停手段とを備える。ここで、調停手段は、複数の受付け手段において、ただ１つのＤＭＡチャネルに対するＤＭＡ転送要求が保持されている場合には、当該ＤＭＡチャネルに対応するアクセス要求に従ってアクセスを行い、ＤＭＡ転送要求が保持されていて、かつ、優先度の高いＤＭＡチャネルに対するＤＭＡ転送要求が受付けられた場合には、先行するＤＭＡ転送要求のＤＭＡチャネルに対応する判別手段及びアクセス要求生成手段に対してバッファ手段を空にしてから中断するよう指示し、バッファ手段が空になった時点で優先度の高いＤＭＡチャネルのアクセス要求に従ってアクセスを行い、優先度の高いＤＭＡ転送完了後に、先行するＤＭＡ転送要求のＤＭＡチャネルに対応する判別手段及びアクセス要求生成手段に対してＤＭＡ転送を再開するよう指示する。
【０１０２】
この構成によれば、転送対象のメモリ領域内においてページ境界により区切られた部分領域毎に、高速ページアクセスすることを保証できるとともに、ＤＭＡ転送中に優先度の高い他のＤＭＡ転送要求が受け付けられた場合に、先行するＤＭＡ転送を中断して、優先度の高いＤＭＡ転送に切り替えて実行することができる。
【０１０３】
（１８）前記先行するＤＭＡチャネルに対応する判別手段は、調停手段から中断を指示されたとき、バッファ手段に保持されているデータに対応する転送先領域を判別し、前記先行するＤＭＡチャネルに対応するアクセス要求生成手段は、調停手段から中断を指示されたとき、判別手段に判別された転送先領域に対するアクセス要求を生成し、前記調停手段は当該アクセス要求に従って高速ページアクセスを行う。
【０１０４】
この構成によれば、調停手段から中断を指示されたとき、判別手段がバッファ手段に保持されているデータに対応する転送先領域を判別し、アクセス要求手段が判別された転送先領域にバッファ手段内のデータを書き込むようアクセス要求を生成し、調停手段が当該アクセス要求を実行するので、中断指示後速やかにバッファ手段を空にし、優先度の高いＤＭＡチャネルに移行することができる。
【０１０５】
（１９）前記先行するＤＭＡチャネルに対応する判別手段は、調停手段から再開を指示されたとき、転送対象のメモリ領域中の未転送の領域を構成する部分領域を判別する。
この構成によれば、再開を指示されたとき判別手段は、中断されていた未転送領域から部分領域の判別を再開するので、再開指示の後速やかに元のＤＭＡ転送に復帰することができる。
【０１０６】
（２０）また、本発明は、複数のＤＭＡチャネルを有するＤＭＡ転送システムであって  ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルのＤＭＡ転送要求を受付け、ＤＭＡ転送の完了までＤＭＡ転送要求を保持する複数の受付手段と、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルのＤＭＡ転送要求に指定された転送対象のメモリ領域について、当該メモリ領域を構成する複数の部分領域であって、前記メモリ領域の先頭とページ境界との間、ページ境界間及びページ境界と前記メモリ領域の末尾との間の各部分領域を判別する複数の判別手段と、ＤＭＡチャネル毎に設けられ、対応するＤＭＡチャネルの判別手段により判別された部分領域毎に高速ページアクセスを指示するアクセス要求を生成する複数のアクセス要求生成手段と、各ＤＭＡチャネルに共用され、２つのバスに接続された２ポートメモリであるバッファ手段と、調停手段とを備える。ここで、調停手段は、複数の受付け手段において、ただ１つのＤＭＡチャネルに対するＤＭＡ転送要求が保持されている場合には、当該ＤＭＡチャネルに対応するアクセス要求に従ってアクセスを行い、既にＤＭＡ転送要求が保持されていて、かつ、他のＤＭＡチャネルに対するＤＭＡ転送要求が受付けられ、かつ、先行するＤＭＡ転送の転送先と新たなＤＭＡ転送の転送元とが異なるバス上のメモリである場合には、転送中の全転送データについての転送元からの読み出しが完了し、かつ、バッファ手段に他のＤＭＡチャネルの最初の部分領域の読み出しサイズ分の空き領域が存在するという状態になった時点で、他のＤＭＡチャネルの最初の部分領域の読み出しを開始する。
【０１０７】
この構成によれば、転送対象のメモリ領域内においてページ境界により区切られた部分領域毎に、高速ページアクセスすることを保証できるとともに、先行するＤＭＡ転送においてメモリ領域からバッファへの全データの読み出しが終わった後、先行するＤＭＡ転送の書き込みと、新たなＤＭＡ転送の書き込みとを並列に実行することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるＤＭＡ転送装置を備える情報処理装置の主要部の構成を示すブロック図である。
【図２】ＤＭＡ転送装置の構成を示すブロック図である。
【図３】読み出し決定部によって判別される部分領域の一例を示す。
【図４】書き込み決定部によって判別される部分領域の一例を示す。
【図５】部分領域判定部の詳細な構成例を示すブロック図である。
【図６】ページサイズに相当する定数から、未読み出しの領域の先頭アドレスの下位４ビットを減算した結果であって、当該先頭アドレスからから直近のページ境界までのバイト数を示す図である。
【図７】部分領域判定部の詳細な構成例を示すブロック図である。
【図８】ページサイズに相当する定数から、未書き込みの領域の先頭アドレスの下位４ビットを減算した結果であって、当該先頭アドレスからから直近のページ境界までのバイト数を示す図である。
【図９】図３、４に示した転送元、転送先の記憶領域間において、ＤＭＡ転送する様子を示す説明図である。
【図１０】図９のＤＭＡ転送のタイミングを示すタイムチャートである。
【図１１】本発明の第２の実施の形態におけるＤＭＡ転送システムの構成を示すブロック図である。
【図１２】アクセス決定部の詳細な構成を示すブロック図である。
【図１３】ＤＭＡ転送システムにおけるＤＭＡ転送のタイミングを示すタイムチャートである。
【図１４】本発明の第３の実施の形態におけるＤＭＡ転送装置８の構成を示すブロック図である。
【図１５】本実施形態のＤＭＡ転送装置におけるＤＭＡ転送のタイミングを示すタイムチャートである。
【図１６】本発明の第４の実施の形態におけるＤＭＡ転送システムの構成を示すブロック図である。
【図１７】２ポートのバッファの構成例を示す。
【図１８】ＤＭＡチャンネル０の転送先とＤＭＡチャネル１の転送元とが異なるメモリである場合を示す説明図である。。
【図１９】図１８（ａ）の場合の動作例を示すタイムチャートである。
【符号の説明】
１    ＤＭＡ転送装置
２    ＣＰＵ
３    ＳＤＲＡＭ  Ｉ／Ｆ
４    ＳＤＲＡＭ
５    Ｉ／Ｏ部
１００    モード設定部
１０１〜１０５  レジスタ
１１０    アクセス決定部
１１１    バッファ管理部
１１２    リード／ライト決定部
１２０    アクセス制御部
１３０    バッファ
２００    読み出し管理部
２０１    アドレスカウンタ
２０２    データカウンタ
２１０    読み出し決定部
２１１    部分領域判定部
２１１ａ  減算器
２１１ｂ  比較器
２１１ｃ  セレクタ
２１２    アドレスレジスタ
２１３    サイズレジスタ
３００    書き込み管理部
３０１    アドレスカウンタ
３０２    データカウンタ
３１０    書き込み決定部
３１１    部分領域判定部
３１２    アドレスレジスタ
３１３    サイズレジスタ
４１１    アクセス決定部
【図１】
0004536189.tif 000002
【図２】
0004536189.tif 000003
【図３】
0004536189.tif 000004
【図４】
0004536189.tif 000005
【図５】
0004536189.tif 000006
【図６】
0004536189.tif 000007
【図７】
0004536189.tif 000008
【図８】
0004536189.tif 000009
【図９】
0004536189.tif 000010
【図１０】
0004536189.tif 000011
【図１１】
0004536189.tif 000012
【図１２】
0004536189.tif 000013
【図１３】
0004536189.tif 000014
【図１４】
0004536189.tif 000015
【図１５】
0004536189.tif 000016
【図１６】
0004536189.tif 000017
【図１７】
0004536189.tif 000018
【図１８】
0004536189.tif 000019
【図１９】
0004536189.tif 000020