(57)【要約】【課題】共通の外部メモリへアクセスする複数機器の中の一部に対して適用した場合であっても、消費電力を低減可能なデータ処理回路を提供すること。【解決手段】本発明は、メモリ２にバーストアクセスするデータ処理回路であって、初期アドレスから始まり、アドレス変化に伴う反転ビット数が最小となるように、一連のアクセス先アドレスを生成するアドレス生成手段（第３のレジスタ４０，カウンタ７１）と、メモリ２へ書き込みを行うデータ或いはメモリ２から読み出しを行ったデータを保持する第２のレジスタ３０と、第２のレジスタ３０からデータを読み出して、アクセス先アドレス順に、メモリ２へ書き込むか、或いは、アクセス先アドレス順に、メモリ２からデータを読み出して、第２のレジスタ３０に書き込む第２のＭＵＸ／ＤＥＭＵＸ６２と、を有する。【選択図】        図１
2009217714.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリにバーストアクセスするデータ処理回路であって、
前記外部メモリにバーストアクセスする際に、アクセスする初期アドレスから始まり、
アドレス変化に伴う反転ビット数が最小となるように、一連のアクセス先アドレスを生成するアドレス生成手段と、
前記外部メモリへ書き込みを行うデータ或いは前記外部メモリから読み出しを行ったデータを保持するデータ保持手段と、
前記データ保持手段から保持されたデータを読み出して、前記アクセス先アドレス順に、前記外部メモリへ書き込むか、或いは、前記アクセス先アドレス順に、前記外部メモリからデータを読み出して、前記データ保持手段に書き込むデータ処理手段と、
を有することを特徴とするデータ処理回路。
【請求項２】
前記アドレス生成手段は、一つのビットを変化させて前記アクセス先アドレスを生成することを特徴とする請求項１に記載のデータ処理回路。
【請求項３】
前記アドレス生成手段は、前記初期アドレスの下位ビットをグレイコードに変換することにより前記アクセス先アドレスを生成することを特徴とする請求項１または２に記載のデータ処理回路。
【請求項４】
請求項１、２または３に記載のデータ処理回路と、
キャッシュメモリと、
を有し、
前記データ処理回路によるバーストアクセス処理を利用して、前記キャッシュメモリに対してデータの読み出し処理および書き込み処理を実行することを特徴とするキャッシュシステム。
【請求項５】
請求項１、２または３に記載のデータ処理回路と、
外部から取得したデータを一時的に格納するためのデータバッファと、
を有し、
前記データ処理回路によるバーストアクセス処理を利用して、２つの外部メモリ間のＤＭＡ転送を実行することを特徴とするデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部メモリとの間でデータのバースト転送を行うデータ処理回路に関する。
【背景技術】
【０００２】
近年、メモリなどの半導体分野では、微細化の進展に伴い、信号線等の配線部分で消費される電力の全消費電力に対する割合が大きくなってきている。そのため、配線部分で消費される電力を低減する技術の検討が盛んに行われている。一例として、外部メモリとの接続に利用するＩ／Ｏピンを駆動させる際の消費電力を低減させる技術が記載されている（例えば、特許文献１参照）。
【０００３】
しかしながら、特許文献１に記載の変換装置は変動するビットの数が少なくなるように、アドレスデータの変換のみを単純に行っているだけである。そのため、当該変換装置を共通の外部メモリにアクセスする機器が複数存在するシステムの一部の機器にのみ適用してアドレス変換を行うようにした場合、各機器間でアドレスとデータの対応関係が一致しなくなるという問題が生じる。
【０００４】
したがって、特許文献１に記載の変換装置は、共通の外部メモリにアクセスするすべての機器に対して適用しなければならないという制限があり、共通の外部メモリにアクセスする複数の機器の中の一部に対して適用して消費電力を低減させることが不可能であった。
【０００５】
【特許文献１】特開２００６−２５１８３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、共通の外部メモリへアクセスする複数機器の中の一部に対して適用した場合であっても、消費電力を低減可能なデータ処理回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願発明の一態様によれば、外部メモリにバーストアクセスするデータ処理回路であって、前記外部メモリにバーストアクセスする際に、アクセスする初期アドレスから始まり、アドレス変化に伴う反転ビット数が最小となるように、一連のアクセス先アドレスを生成するアドレス生成手段と、前記外部メモリへ書き込みを行うデータ或いは前記外部メモリから読み出しを行ったデータを保持するデータ保持手段と、前記データ保持手段から保持されたデータを読み出して、前記アクセス先アドレス順に、前記外部メモリへ書き込むか、或いは、前記アクセス先アドレス順に、前記外部メモリからデータを読み出して、前記データ保持手段に書き込むデータ処理手段と、を有することを特徴とするデータ処理回路が提供される。
【発明の効果】
【０００８】
本発明によれば、共通の外部メモリへアクセスする複数機器の中の一部に対して適用した場合であっても、消費電力を低減可能なデータ処理回路を提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下に添付図面を参照して、この発明にかかるデータ処理回路の最良な実施の形態を詳細に説明する。
【００１０】
（第１の実施の形態）
本実施の形態では、データ処理回路をライトバック方式のキャッシュシステムに適用した場合の例について説明する。ここでは、一例として、ＣＰＵに内蔵されたキャッシュシステムの場合について説明する。
【００１１】
図１は、第１の実施の形態にかかるデータ処理回路を備えたキャッシュシステムの構成例を示すブロック図である。このキャッシュシステム１は、外部のメモリ２との間でデータの読み出しおよび書き込みを行うＣＰＵに内蔵され、図示していないＣＰＵコアからの指示に従い、アドレスバスＡ１にアクセス先のアドレスを順次出力しながら、データバスＤ１を介してメモリ２へバーストアクセスする。なお、外部装置２０１および２０２は、メモリ２に対してアクセスを行う他の装置であり、本実施の形態では一般的なキャッシュシステムであるものとして説明を行う。また、アドレスバス幅およびデータバス幅は共に８ビットであるものとして以下の説明を行う。
【００１２】
つづいて、キャッシュシステム１の構成について説明する。キャッシュシステム１は、キャッシュメモリ１０と、第１のレジスタ２０、第２のレジスタ３０、第３のレジスタ４０および第４のレジスタ５０と、第１のＭＵＸ／ＤＥＭＵＸ（マルチプレクサ／デマルチプレクサ）６１および第２のＭＵＸ／ＤＥＭＵＸ６２と、ＭＵＸ（マルチプレクサ）６３と、カウンタ７１と、比較器７２と、を備える。なお、第３のレジスタ４０およびカウンタ７１がアドレス生成手段を構成する。また、第２のＭＵＸ／ＤＥＭＵＸ６２がデータ処理手段を構成する。
【００１３】
キャッシュメモリ１０は、メモリ２から読み出したデータを、その格納先アドレスの上位ビットであるタグとともに保持しておく。またキャッシュメモリ１０は、複数のラインフィールド１０0〜１０3を含み、各ラインフィールドは、タグを格納するためのタグフィールド１１およびデータを格納するためのデータフィールド１２により構成される。なお、図１に示した構成では、キャッシュメモリ１０に格納可能なライン数（エントリ数）は４となる。
【００１４】
第１のレジスタ２０は、ＣＰＵコアから受け取ったメモリ２内の領域を示すアドレスを格納する。また第１のレジスタ２０は、ＣＰＵコアから取得したアドレスの上位ビット（タグ）を格納するためのタグフィールド２１と、アドレスの先頭から５ビット目と６ビット目を格納するインデックスフィールド２２と、７ビット目と８ビット目を格納するワードアドレスフィールド２３と、を含んでいる。
【００１５】
第２のレジスタ３０は、メモリ２へ書き込むデータまたはメモリ２から読み出したデータとそのタグを格納する。また第２のレジスタ３０は、タグを格納するためのタグフィールド３１およびデータを格納するためのデータフィールド３２を含んでいる。
【００１６】
第３のレジスタ４０は、アドレスバスＡ１に接続され、当該アドレスバスＡ１へ出力するアドレスデータを格納する。また第３のレジスタ４０は、第２のレジスタ３０内のタグフィールド３１に格納されたタグおよび第１のレジスタ２０のインデックスフィールド２２に格納されたインデックスを取得して保持し、また、カウンタ７１から情報が出力された場合、出力値を取得して保持しておく。また、保持しているデータをメモリ２へバーストアクセスする際のアクセス先のアドレスデータとしてアドレスバスＡ１へ出力する。
【００１７】
第４のレジスタ５０は、ＣＰＵコアに対して出力するデータおよびそのタグを格納する。また第４のレジスタ５０は、タグを格納するためのタグフィールド５１およびデータを格納するためのデータフィールド５２を含んでいる。
【００１８】
第１のＭＵＸ／ＤＥＭＵＸ６１は、キャッシュメモリ１０に格納された複数のデータの中のいずれか一つをそのタグとともに選択する。また、キャッシュメモリ１０を構成する各ラインフィールドの中から、メモリ２から読み出され第２のレジスタ３０に格納されているデータおよびそのタグを格納するラインフィールドを選択する。
【００１９】
第２のＭＵＸ／ＤＥＭＵＸ６２は、メモリ２に対してデータを書き込む場合、カウンタ７１から出力される値（後述するグレイコード）に基づいて特定される、第２のレジスタ３０のデータフィールド３２内の領域、からデータを読み出し、データバスＤ１へ出力する。また、メモリ２からデータを読み出す場合、データバスＤ１からデータを取得し、カウンタ７１から出力される値に基づいて特定される、第２のレジスタ３０のデータフィールド３２内の領域、へ上記取得したデータを格納する。
【００２０】
ＭＵＸ６３は、ＣＰＵコアへ出力するデータとして、第４のレジスタ５０に格納されたデータの中から選択する。
【００２１】
カウンタ７１は、キャッシュシステム１がメモリ２に対してバーストアクセスする際にグレイコードを生成し、第３のレジスタ４０および第２のＭＵＸ／ＤＥＭＵＸ６２へ出力する。
【００２２】
比較器７２は、第１のレジスタ２０内のタグフィールド２１に格納された情報と第４のレジスタ５０のタグフィールド５１に格納された情報を比較し、比較結果をＣＰＵコアへ出力する。
【００２３】
まず、上記構成のキャッシュメモリ１が外部のメモリ２へバーストアクセスする場合の動作について簡単に説明する。ここでは、キャッシュメモリ１が保持しているデータをメモリ２に対してバースト書き込みする場合の動作について説明する。なお、説明を簡単化するため、ここでは、メモリ２へ書き込むデータが既に第２のレジスタ３０に書き込まれており、また、第１のレジスタ２０には、メモリ２へのバーストアクセスにて最初にアクセスする領域のアドレスが書き込まれているものとする。
【００２４】
バーストアクセスを開始した場合、カウンタ７１がカウントを開始し、カウント開始時点においてカウンタ７１は、まず初期値を出力する。この初期値を受け取った第３のレジスタ４０からは、初期値に応じたアドレスデータがアドレスバスＡ１に対して出力される。また、第２のＭＵＸ／ＤＥＭＵＸ６２は、カウンタ７１から出力された初期値に基づいて、データバスＤ１へ出力するデータをデータフィールド３２に格納されたデータの中から選択する。この結果、データフィールド３２に格納されたデータの中のカウンタ７１の出力値（初期値）に対応するデータがデータバスＤ１へ出力される。これ以降、カウンタ７１は、周期的にカウントアップを行い、第３のレジスタ４０および第２のＭＵＸ／ＤＥＭＵＸ６２へ出力し、カウント７１からの出力値に更新する。第３のレジスタ４０からアドレスバスＡ１へ出力されるアドレスデータはカウンタ７１からの出力値が更新されるとそれに応じて更新される。また、第２のＭＵＸ／ＤＥＭＵＸ６２は、カウンタ７１からの出力値が更新されると更新後の値に対応するデータをデータフィールド３２から取得し、データバスＤ１へ出力する。
【００２５】
つづいて、キャッシュシステム１がキャッシュメモリ１０に格納されたデータをＭＵＸ６３経由でＣＰＵコアへ出力する場合の動作について簡単に説明する。
【００２６】
ＣＰＵコアからメモリ２が保持しているデータの取得を要求するメモリアクセス要求を受けた場合、当該データの格納先を示すアドレス情報は第１のレジスタ２０へ格納される。そして、第１のレジスタ２０内のインデックスフィールド２２に格納された情報に基づいて第１のＭＵＸ／ＤＥＭＵＸ６１がキャッシュメモリ１０内のラインフィールド１０0〜１０3の中の一つを選択し、第４のレジスタ５０へ出力する。選択されたラインフィールドのタグフィールド１１内のデータ，データフィールド１２内のデータは、第４のレジスタ５０のタグフィールド５１，データフィールド５２へそれぞれ複写される。ＭＵＸ６３は、第１のレジスタ２０内のワードアドレスフィールド２３に格納された情報に対応するデータをデータフィールド５２から取得し、ＣＰＵコアへ出力する。また、比較器７２は、タグフィールド２１に格納された情報とタグフィールド５１に格納された情報を比較し、その結果を示す比較結果情報を出力する。なお、タグフィールド２１に格納された情報とタグフィールド５１に格納された情報が一致する場合がキャッシュヒット、一致しない場合がキャッシュミスとなる。また、ＣＰＵコアは、比較器７２から受け取った比較結果情報がタグフィールド５１内の情報とタグフィールド５１内の情報が一致している旨を示す場合、ＭＵＸ６３から出力されているデータが所望データ（上記データ取得要求に対応するデータ）であると判断し、このデータを取り込む。
【００２７】
つづいて、キャッシュシステム１が本実施の形態のデータ処理回路を利用してメモリ２へバーストアクセスする場合の動作について、図面を参照しながら詳細に説明する。ここでは、ＣＰＵコアからメモリ２へのアクセス要求を受け、このアクセス要求に対応するデータ（ＣＰＵコアにとっての所望データ）をキャッシュメモリ１０内に保持していない場合に実行するバーストアクセス動作について説明する。また、キャッシュメモリ１０内に保持しているデータはダーティな状態（書き換えられている状態）であるものとして説明を行う。
【００２８】
キャッシュシステム１は、ＣＰＵコアからメモリ２へのメモリアクセス要求を受けた場合、ＣＰＵコアから受け取ったアクセス先のアドレスを第１のレジスタ２０へ格納する。ここで、図２は、メモリアクセス要求に含まれるアクセス先のアドレスを第１のレジスタ２０へ格納した時点におけるキャッシュシステム１の状態を示す図であり、具体的には、11111000番地へのメモリアクセス要求を受けた場合の例を示している。なお、キャッシュメモリ１０内のラインフィールド１１2には、予め８ビットのデータ‘ａ’，‘ｂ’，‘ｃ’，‘ｄ’がそれぞれ格納されていたものとする。また、他のラインフィールドにも既にデータが格納されているものとする。
【００２９】
アクセス先アドレスを第１のレジスタ２０へ格納すると、キャッシュシステム１は、格納されたアクセス先アドレスに対応するデータをキャッシュメモリ１０内に保持しているかどうかの確認、すなわちキャッシュヒット／ミスのチェックを行う。
【００３０】
具体的には、第１のＭＵＸ／ＤＥＭＵＸ６１が、第１のレジスタ２０のインデックスフィールド２２に格納されているインデックスを取り込み、さらに、取り込んだインデックスに対応するキャッシュメモリ１０内のラインフィールドを選択し、選択したラインフィールド内のタグフィールド１１に格納されているタグおよびデータフィールド１２に格納されているデータを第４のレジスタ５０へ読み出す。この結果、選択したラインフィールド内に格納されているタグがタグフィールド５１へ複写され、データがデータフィールド５２へ複写される。図３は、この処理が実行された直後の状態を示す図であり、タグフィールド５１には“0100”が格納され、データフィールド５２には‘ａ’，‘ｂ’，‘ｃ’，‘ｄ’が順番に格納された状態を示している。
【００３１】
次に、比較器７２が第１のレジスタ２０のタグフィールド２１に格納されている情報と第４のレジスタ５０のタグフィールド５１に格納されている情報とを読み出して比較する。これらが一致していれば、ＣＰＵコアが要求しているデータを保持しており（キャッシュヒット）、一致していなければ保持していない（キャッシュミス）こととなる。今回の例（図３参照）では、タグフィールド２１に“1111”が格納され、タグフィールド５１には“0100”が格納されているため、比較器７２は、キャッシュミスと判断する。なお、ＭＵＸ６３は、キャッシュヒット／ミスのチェック結果に関係なく第１のレジスタ２０内のワードアドレスフィールド２３に格納されている情報に対応するデータをデータフィールド５２から取得し、ＣＰＵコアへ出力する。
【００３２】
そして、キャッシュミスが発生した場合、キャッシュシステム１は、ＣＰＵコアが要求しているデータをメモリ２から取得する必要がある。一方、メモリ２からデータを取得するためには取得した情報を格納するための領域を確保する必要がある。そのため、キャッシュシステム１は、メモリ２へバーストアクセスを行い、上記選択したラインフィールドに格納されているデータをメモリ２へ書き戻すことにより、メモリ２から新たに読み出すデータを格納するための領域を確保する。以下、書き戻し動作を図４および図５に基づいて説明する。
【００３３】
キャッシュシステム１では、図４に示したように、まず、第１のＭＵＸ／ＤＥＭＵＸ６１が、メモリ２へ書き戻すキャッシュライン（上記処理でキャッシュミスと判定したキャッシュライン）内のデータおよびそのタグをキャッシュメモリ１０（ラインフィールド１１2）から読み出し、第２のレジスタ３０に格納する。この結果第２のレジスタ３０のタグフィールド３１に“0100”が格納され、データフィールド３２には‘ａ’，‘ｂ’，‘ｃ’，‘ｄ’が順番に格納される。次に、第２のレジスタ３０のデータフィールド３２に格納されたデータ（ａ，ｂ，ｃ，ｄ）は、データバス幅である８ビット毎に（すなわち、ａ，ｂ，ｃ，ｄ毎に）、データバスＤ１へバースト出力される。
【００３４】
ここで、本実施の形態のデータ処理回路がデータフィールド３２に格納されたデータをバースト出力する動作を図５に基づいて詳細に説明する。
【００３５】
キャッシュシステム１がバースト転送を開始した時点では、カウンタ７１から初期値“00”出力される。そのため、第３のレジスタ４０に格納された情報は“01001000”となり、これがアクセス先アドレスとしてアドレスバスＡ１へ出力される。またこのとき、カウンタ７１の出力値（初期値“00”）は第２のＭＵＸ／ＤＥＭＵＸ６２にも出力され、第２のＭＵＸ／ＤＥＭＵＸ６２は、受け取った値に対応するデータを選択してデータバスＤ１へ出力する。図４に示した例の場合、第２のＭＵＸ／ＤＥＭＵＸ６２は、データ‘ａ’を選択して出力する。
【００３６】
その後所定時間が経過してカウンタ７１がカウントアップすると、カウンタ７１からの出力値が“01”に変化する。これに伴って、第３のレジスタ４０に格納された情報は“01001001”となり、この値がアドレスバスＡ１へ出力され、第２のＭＵＸ／ＤＥＭＵＸ６２からは、データ‘ｂ’が出力される。
【００３７】
その後、さらにカウンタ７１がカウントアップした場合、カウンタ７１がグレイコードを生成するカウンタであるため、その出力値は“11”に変化する。これに伴って、第３のレジスタ４０からアドレスバスＡ１へは“01001011”が出力される。またこのとき、第２のＭＵＸ／ＤＥＭＵＸ６２は、カウンタからの出力値“11”に対応付けられたデータ‘ｄ’を選択する。その結果、データバスＤ１へは‘ｄ’が出力され、アドレスバスＡ１に出力されるアドレスとデータバスＤ１に出力されるデータの対応関係が維持される。
【００３８】
またさらにカウンタ７１がカウントアップした場合、カウンタ７１は“10”を出力し、これに伴って、第３のレジスタ４０からアドレスバスＡ１へは“01001010”が出力され、第２のＭＵＸ／ＤＥＭＵＸ６２からはデータバスＤ１へはアドレス“01001010”に対応した‘ｃ’が出力される。
【００３９】
ここで、カウンタ７１が出力する２ビットの情報（グレイコード）について説明する。カウンタ７１は、カウントアップごとに２ビット出力のうちの１ビットのみを変化させることとして、２ビット同時に変化させることはしない。たとえば、初期値（初期出力）が「00」であれば「00」→「01」→「11」→「10」→「00」→「01」…の順番、または「00」→「10」→「11」→「01」→「00」→「10」…の順番で出力値を変化させる。そのため、通常の２ビットカウンタ（出力値をインクリメントして「00」→「01」→「10」→「11」→「00」と変化させるカウンタ）と比較して、ビットを変化させる回数が少なくなる。よって、キャッシュシステム１は、カウンタ７１に代えて通常の２ビットカウンタを使用した場合よりもアドレスバスＡ１での消費電力を低く抑えることができる。また、カウンタ７１の出力値に対応したデータを選択して出力することとしたので、バースト転送処理の前後でアドレスとデータの対応関係が変化することもない（対応関係が維持される）。
【００４０】
以上の動作により、キャッシュシステム１は、メモリ２に対して、キャッシュメモリ１０内のラインフィールドに格納されたデータを書き戻す。なお、上記動作例で示した書き戻し処理を実行した場合、メモリ２の01001000の領域に'ａ’が書き込まれ、01001001の領域に'ｂ’が書き込まれ、01001010の領域に'ｃ’が書き込まれ、01001011の領域に'ｄ’が書き込まれることとなる。
【００４１】
これに対して、外部装置２０１および２０２が備えるキャッシュシステムでは、メモリ２に対してバーストアクセスを行う場合、バーストアクセスを行う領域の先頭アドレスをインクリメントしながらアクセス先アドレスを生成する。そのため、上述したキャッシュシステム１の動作例と同様に01001000〜01001011に対してバーストアクセスによるデータ書き込みを行う場合、外部装置２０１および２０２は、アドレスバスＡ１への出力値を「01001000」→「01001001」→「01001010」→「01001011」の順番で変化させ、またこのとき、データバスＤ１に対して'ａ’，'ｂ’，'ｃ’，'ｄ’を順番に出力する。すなわち、01001000〜01001011へのバーストアクセスによるデータ書き込みでは、まず01001000の領域に'ａ’が書き込まれ、次に01001001の領域に'ｂ’が書き込まれ、次にアドレス01001010の領域に'ｃ’が書き込まれ、最後に01001011の領域に'ｄ’が書き込まれる。
【００４２】
したがって、本実施の形態のキャッシュシステム１によるバーストアクセス処理では、外部装置２０１および２０２によるバーストアクセス処理と比較して、アドレスバスＡ１へ出力するアドレスデータの順番およびデータバスＤ１に出力するデータの順番は異なるものの、最終的には、第２のレジスタ３０に格納されているすべてのデータがメモリ２内の格納すべき場所へ正しく格納される。すなわち、バーストアクセス処理の前後で、各データとアドレスとの対応関係は維持される。
【００４３】
また、メモリ２からデータを読み出し、キャッシュメモリ１０へ格納する場合のバーストアクセス動作は、上記のメモリ２へデータをバースト転送する場合と同様である。以下に、バーストアクセスを行い、メモリ２からデータを読み出す場合の動作を簡単に説明する。
【００４４】
メモリ２からデータを読み出す際のバーストアクセスにおいても上記のメモリ２へデータをバースト転送する場合と同様に、バーストアクセスの開始に合わせてカウンタ７１がカウントを開始し、カウンタ７１から出力される情報は第３のレジスタ４０およびＭＵＸ／ＤＥＭＵＸ６２へ渡される。そして、第３のレジスタ４０は、カウンタ７１から受け取った情報に対応したアドレスデータをアドレスバスＡ１へ出力する。一方、ＭＵＸ／ＤＥＭＵＸ６２は、メモリ２からデータバスＤ１へ出力されたデータを取得し、さらに、カウンタ７１から受け取った情報に基づいて特定される、第２のセレクタ３０のデータフィールド３２内の領域に、取得したデータを格納する。メモリ２に対するバーストアクセスが終了すると、メモリ２から読み出され、第２のセレクタ３０へ格納されているデータは、第１のＭＵＸ／ＤＥＭＵＸ６１を介してキャッシュメモリ１０へ格納される。
【００４５】
参考までに、通常の２ビットカウンタを使用し、シーケンシャルアクセスを行うキャッシュシステムによる書き戻し動作では、アドレスバスＡ１への出力が「01001000」→「01001001」（１ビット変化）→「01001010」（２ビット変化）→「01001011」（１ビット変化）と変化し、合計４ビットが変化する（４回のスイッチング動作が発生する）が、本実施の形態にかかるキャッシュシステム１による書き戻し動作では、「01001001」→「01001011」（１ビット変化）→「01001010」（１ビット変化）→「01001000」（１ビット変化）と変化し、合計３ビットの変化となる。
【００４６】
また、カウンタが初期値として“00”以外を出力する場合（クリティカルワードファースト機能を持つカウンタの場合）、スイッチング回数はさらに少なくなる。例えば、上記例の４バイト転送をアドレス「01001001」から開始した場合、一般的なキャッシュシステムでは「01001001」→「01001010」（２ビット変化）→「01001011」（１ビット変化）→「01001000」（２ビット変化）と変化し、スイッチング総数は５回であるが、本実施の形態にかかるキャッシュシステム１では、上述したように、スイッチング総数は３回となる。
【００４７】
また、本実施の形態では、説明を簡単化するために、バーストアクセス時に変化するアドレスのビット数が２の場合について説明を行ったが、３ビット以上が変化する場合も同様に、たとえばグレイコードカウンタを利用して、キャッシュシステム１は、スイッチング回数が従来よりも低減されるようにアドレスデータ出力を制御する。
【００４８】
このように、本実施の形態では、メモリ２へバーストアクセスによりデータを転送する場合、カウンタ７１により生成されたグレイコードを用いて、アドレスバスを介してメモリ２へ出力するアクセス先アドレスを１ビットずつ変化させることとした。またこのとき、メモリ２へ出力するデータを第２のレジスタ３０から選択する第２のＭＵＸ／ＤＥＭＵＸ６２は、カウンタ７１により生成されたグレイコードに基づいて、メモリ２へ出力されるアクセス先アドレスに対応するデータを選択することとした。これにより、バーストアクセス時に変化するアドレスビットの数（スイッチング回数）を従来よりも低減し、また、バーストアクセスにて扱う各データとそれらに対応するアドレスとの対応関係を、バーストアクセス処理の前後で維持することができる。したがって、複数の装置が共通の外部メモリへアクセスする構成のシステムにおいて、一部の装置に対して本実施の形態にかかるデータ処理回路を適用した場合であっても、各装置間でのアドレスとデータの対応関係が一致した状態を維持しつつ各装置と共通外部メモリとの間のアドレスバスにおける消費電力を個別に低減することができる。
【００４９】
また、共通外部メモリにアクセスする各装置の中で、バーストアクセスを実行する頻度が高い装置にのみ本実施の形態にかかるデータ処理回路を適用するなど、柔軟な使用方法をとることができる。また、本実施の形態にかかるデータ処理回路を適用した場合、消費電力に加えてスイッチングノイズを低減させることもできる。
【００５０】
この効果は、特に公知例と比較した場合に違いが明確になる。公知例では、外部メモリにアクセスする各機器と外部メモリとの間にグレイコードを利用してアドレスを変換する変換装置を設け、この変換装置が、各機器から出力される連続したアドレスデータをグレイコードを利用して変換することにより、各機器が外部メモリへデータを転送する際のアドレスバスにおける消費電力を低減している。この場合、例えば、４つのアドレス「ａ０，ａ１，ａ２，ａ３」がこの順番どおりに入力された場合に「ａ０，ａ１，ａ３，ａ２」へと変換する変換装置を利用して、これらのアドレス「ａ０，ａ１，ａ２，ａ３」に対応する４つのデータ「ｄ０，ｄ１，ｄ２，ｄ３」を機器αが外部メモリへバースト転送する場合の動作について考える。この場合、転送元の機器αから変換装置までの間における各アドレスとデータの対応関係は、「ａ０−ｄ０」（ａ０とｄ０が対応していることを示す），「ａ１−ｄ１」，「ａ２−ｄ２」，「ａ３−ｄ３」となる。また、変換装置から外部メモリまでの間における対応関係は「ａ０−ｄ０」，「ａ１−ｄ１」，「ａ３−ｄ２」，「ａ２−ｄ３」となる。そして、外部メモリのアドレスａ０にはデータｄ０、アドレスａ１にはデータｄ１、アドレスａ２にはデータｄ３、アドレスａ３にはデータｄ２、が書き込まれる。この状態で、変換装置を介さずに外部メモリへアクセスする他の機器βがアドレスａ０〜ａ３から情報を読み出した場合、読み出したデータとアドレスの対応関係は、外部メモリに格納されている状態でのアドレスとデータの対応関係が維持されるので「ａ０−ｄ０」，「ａ１−ｄ１」，「ａ３−ｄ２」，「ａ２−ｄ３」となる。この結果、機器αにおけるアドレスとデータの対応関係と機器βにおけるアドレスの対応関係が一致しなくなる。すなわち、機器αと機器βが同じアドレスを指定してデータを読み出したにもかかわらず異なるデータが読み出されることとなる。
【００５１】
なお、図６は、アクセス先アドレスをインクリメントしながら生成する方式である従来の方式でビットを変化させた場合の合計スイッチング回数と、本実施の形態の方式を適用してビットを変化させた場合の合計スイッチング回数との比較結果を示す図であり、グレイコードカウンタを利用してスイッチング回数を低減させた場合の例を示している。図６に示したように、バーストアクセス時に変化するビット数が増えるほど効果が大きくなり、グレイコードカウンタを利用した場合には、変化するビット数が増えるとスイッチング回数がシーケンシャルアクセス方式適用時の約半分となる。
【００５２】
また、キャッシュシステムの構成は、上述した図１の構成に限定されない。たとえば、図７に示した構成とすることも可能である。図７に示したキャッシュシステム１ａでは、図１に示したキャッシュシステムと比較して、第２のレジスタ３０と第２のＭＵＸ／ＤＥＭＵＸ６２に代えて双方向シフトレジスタ３０ａを備え、さらに、ＭＵＸ６３に代えてＭＵＸ６３ａを備えた構成としている。なお、双方向シフトレジスタ３０ａは、タグフィールド３１ａとデータフィールド３２ａにより構成され、メモリ２へデータを書き込む場合とメモリ２からデータを読み出す場合とでシフト方向が逆になるように制御される。
【００５３】
キャッシュシステム１ａでは、メモリ２へバーストアクセスを行い読み出したデータは、読み出した順番通りに双方向シフトレジスタ３０ａ内のデータフィールド３２ａに格納された後キャッシュメモリ１０へ格納される。すなわち、データフィールド３２ａには、アドレスバスＡ１に出力される値の変化順に対応した順番でデータが格納される。一方、アドレスバスＡ１へ出力されるアドレス先アドレスは、上記キャッシュシステム１と同様に、カウンタ７１から出力されるグレイコードを利用して生成される。したがって、キャッシュメモリ１０の各キャッシュラインに格納されるデータの順番が本来のアドレス順（値がインクリメントされていくアドレス順）とは異なった順番となる。そのため、ＭＵＸ６３ａは、本来のアドレスに対応したデータがＣＰＵコアへ出力されるように、第４のレジスタ５０のデータフィールド５２からの出力を選択する。
【００５４】
また、上記説明では、外部装置２０１および２０２が一般的なキャッシュシステムの場合の例について示したが、メモリ２に対して一般的なバーストアクセス（アクセス先アドレスをインクリメントしながら生成するバーストアクセス）を行う機能を有していればキャッシュシステムでなくてもよい。
【００５５】
（第２の実施の形態）
つづいて、第２の実施の形態について説明する。上述した第１の実施の形態では、データ処理回路をキャッシュシステムに適用した場合の例について説明を行ったが、本実施の形態では、ＤＭＡ（Direct  Memory  Access）コントローラに適用した場合の例について説明する。
【００５６】
図８は、第２の実施の形態にかかるデータ処理回路を備え、ＤＭＡコントローラとして動作するデータ転送装置の構成例を示す図である。このデータ転送装置３は、ＣＰＵ６からの指示に従い、アドレスバスＡ２およびデータバスＤ２を介して接続された外部のメモリ４とメモリ５との間におけるＤＭＡ転送を実現する。また、ＤＭＡ転送での各メモリからのデータ読み出し時および各メモリに対するデータ書込み時においては、バーストアクセスを行う。
【００５７】
データ転送装置３は、入力ソースアドレスレジスタ１１１と、入力デスティネーションアドレスレジスタ１１２と、データ保持バッファ１１３と、ＭＵＸ１２１と、ＭＵＸ／ＤＥＭＵＸ１２２と、出力ソースアドレスレジスタ１３１と、出力デスティネーションアドレスレジスタ１３２と、カウンタ１４１と、を備えている。また、データ保持バッファ１１３は、データ格納領域１１３0〜１１３3を含んでいる。
【００５８】
入力ソースアドレスレジスタ１１１は、ＣＰＵ６から受け取った、ＤＭＡ転送の処理対象データの格納位置を示すソースアドレスを格納する。
【００５９】
入力デスティネーションアドレスレジスタ１１２は、ＣＰＵ６から受け取った、処理対象データの転送先を示すデスティネーションアドレスを格納する。
【００６０】
データ保持バッファ１１３は、ＤＭＡ転送の処理対象データを一時的に格納する。
【００６１】
ＭＵＸ１２１は、２系統の信号を入力とし、そのいずれか一方を選択出力する。
【００６２】
ＭＵＸ／ＤＥＭＵＸ１２２は、データ保持バッファ１１３内に格納されたデータ列の中からデータバスＤ２のバス幅に応じたビット数のデータを選択出力する。
【００６３】
出力ソースアドレスレジスタ１３１は、アドレスバスＡ２に対して出力するソースアドレスを格納する。
【００６４】
出力デスティネーションアドレスレジスタ１３２は、アドレスバスＡ２に対して出力するデスティネーションアドレスを格納する。
【００６５】
カウンタ１４１は、データ転送装置３がメモリ４または５に対してバーストアクセスする際にグレイコードを生成し、出力ソースアドレスレジスタ１３１、出力デスティネーションアドレスレジスタ１３２およびＭＵＸ／ＤＥＭＵＸ１２２へ出力する。
【００６６】
なお、データ転送装置３による１回あたりの転送サイズは４バイト固定とし、転送時に指定するアドレスは４バイトアラインでなければならないシステムの例とする。また、アドレスバス幅およびデータバス幅が共に８ビットであるものとして以下の説明を行う。
【００６７】
つづいて、データ転送装置３が本実施の形態にかかるデータ処理回路を利用して行うＤＭＡ転送動作について、図面を参照しながら説明する。ここでは、一例として、メモリ４に格納された４バイトのデータをメモリ５へＤＭＡ転送する場合の動作を説明する。なお、アドレス00000000〜01111111がメモリ４にマッピングされ、アドレス10000000〜11111111がメモリ５にマッピングされているものとし、処理対象データ（転送されるデータ）のソースアドレスは00001100、デスティネーションアドレスは10001000とする。また、アドレス00001100から始まる４バイトには、図９に示したようなデータが格納されているものとし、‘ａ’，‘ｂ’，‘ｃ’，‘ｄ’はそれぞれ８ビットのデータとする。
【００６８】
まず、ＣＰＵ６は、処理対象データのソースアドレス（00001100）およびデスティネーションアドレス（10001000）を、データバスＤ２を介してデータ転送装置３へ出力する。データ転送装置３では、ＣＰＵ６から受け取ったソースアドレスが入力ソースアドレスレジスタ１１１へ格納され、デスティネーションアドレスが入力デスティネーションアドレスレジスタ１１２へ格納される。また、ＣＰＵ６は、データ転送装置３に対してＤＭＡ転送の開始指示を出す。データ転送装置３は、ＣＰＵ６からＤＭＡ転送開始指示を受けた場合、出力ソースアドレスレジスタ１３１の上位６ビットの情報として入力ソースアドレスレジスタ１１１に格納されているソースアドレスの上位６ビットの値を読み込む。また、出力デスティネーションアドレスレジスタ１３２の上位６ビットの情報として、入力デスティネーションアドレスレジスタ１１２に格納されているデスティネーションアドレスの上位６ビットの値を読み込む。
【００６９】
次に、データ転送装置３は、出力ソースアドレスレジスタ１３１に格納されたソースアドレスについてのバーストリード要求をメモリ４に対して発行する。そして、ＭＵＸ１２１が出力ソースアドレスレジスタ１３１から出力されるソースアドレス情報を選択してアドレスバスＡ２へ出力し、また、出力したソースアドレス情報に対応するデータをデータバスＤ２経由で取得する。なお、取得したデータはデータ保持バッファ１１３に格納される。また、カウンタ１４１は、バーストリードのタイミングに同期してカウントアップし、２ビットの出力値をカウント数に応じて変化させる。これにより、ＭＵＸ１２１を介してアドレスバスＡ２へ出力されるソースアドレス情報が順次変化し、メモリ４のアドレス00001100〜00001111の領域に格納された４バイトのデータがデータ転送装置３のデータ保持バッファ１１３に取り込まれる。
【００７０】
ここで、カウンタ１４１は、上述した第１の実施の形態のキャッシュシステム１が備えたカウンタ７１と同様のグレイコードカウンタであり、２ビット出力のうちの１ビットのみを変化させ、出力値がグレイコードとなるように動作する。
【００７１】
本実施の形態にかかるデータ処理回路によるバーストリード動作を図１０に基づいて詳しく説明する。バーストリードを開始した時点で、データ転送装置３では、カウンタ１４１から初期値“00”が出力される。そのため、出力ソースアドレスレジスタ１３１に格納された情報は“00001100”となり、これがアクセス先アドレスとしてアドレスバスＡ２へ出力される。すると、メモリ４は、アドレスバスＡ２の状態（アクセス先アドレス）に対応する領域に格納されたデータをデータバスＤ２へ出力する。具体的には‘ａ’が出力される。一方、データ転送装置３では、カウンタ１４１の出力値はＭＵＸ／ＤＥＭＵＸ１２２にも出力され、ＭＵＸ１２１は、カウンタ１４１の出力値に対応するデータ保持バッファ１１３内の領域（データ格納領域１１３0〜１１３3のいずれか）へメモリ４からデータバスＤ２へ出力されたデータを格納する。この結果、図１０に示したように、メモリ４からデータ‘ａ’が読み出され、データ保持バッファ１１３内に格納される。
【００７２】
その後所定時間が経過すると、データ転送装置３では、カウンタ１４１がカウントアップすると、カウンタ１４１からの出力値が“01”に変化する。これに伴って、出力ソースアドレスレジスタ１３１に格納された情報は“00001101”となり、この値がアドレスバスＡ２へ出力され、メモリ４からはデータ‘ｂ’が出力される。そして、カウンタ１４１の出力値に対応するデータ保持バッファ内１１３のデータ格納領域へデータ‘ｂ’が格納される。
【００７３】
その後、データ転送装置３で、さらにカウンタ１４１がカウントアップした場合、カウンタ１４１がグレイコードを生成するカウンタであるため、その出力値は“11”に変化する。これに伴って、出力ソースアドレスレジスタ１３１からアドレスバスＡ２へは“00001111”が出力され、データ転送装置３は、カウンタ１４１の出力値に対応するデータ保持バッファ１１３内のデータ格納領域へメモリ４から出力されたデータ‘ｄ’を格納する。
【００７４】
またさらに、データ転送装置３で、カウンタ１４１がカウントアップした場合、カウンタ１４１は“10”を出力し、これに伴って、出力ソースアドレスレジスタ１３１からアドレスバスＡ２へは“00001110”が出力される。そして、データ転送装置３は、カウンタ１４１の出力値に対応するデータ保持バッファ１１３内のデータ格納領域へメモリ４から出力されたデータ‘ｃ’を格納する。
【００７５】
なお、アドレスバスＡ２に出力される一連のアドレスデータは、本来のアドレス順（小さい値から順番に出力される並び順）とは異なった順番で出力されるが、これに伴って、データバスＤ２に出力されるデータの順番も「ａ」→「ｂ」→「ｄ」→「ｃ」と変化する。また、データバスＤ２に出力されたデータをデータ保持バッファ１１３内に格納する際には、アドレスバスＡ２へ出力するアドレスを生成するために利用しているカウンタ１４１の出力値を参照し、カウンタ１４１の出力値に対応した領域に格納する。したがって、アドレスとデータの対応関係はバーストリード処理の前後において維持される。
【００７６】
データ転送装置３は、４バイトのデータについてのバーストリードが終了すると、出力デスティネーションアドレスレジスタ１３２に格納されたデスティネーションアドレスについてのバーストライト要求をメモリ５に対して発行する。バーストライトを行う場合、ＭＵＸ１２１は、出力デスティネーションアドレスレジスタ１３２から出力されるデスティネーションアドレス情報を選択してアドレスバスＡ２へ出力する。また、データバスＤ２に対しては、データ保持バッファ１１３に格納されたデータ（バーストリード処理にてメモリ４から取得した４バイトのデータ）を順次出力する。すなわち、ＭＵＸ／ＤＥＭＵＸ１２２が、データ保持バッファ１１３からの出力データをカウンタ１４１からの出力値に応じて選択し、データバスＤ２へ出力する。
【００７７】
ここで、カウンタ１４１は、バーストリードを行う場合と同様に、バーストライトのタイミングに同期してカウントアップし、２ビットの出力値をカウント数に応じて変化させる。これにより、ＭＵＸ１２１を介してアドレスバスＡ２へ出力されるデスティネーションアドレス情報が順次変化し、メモリ５のアドレス10001000〜10001011の領域に４バイトのデータが格納される。このデータ転送装置３がメモリ５へデータを格納する場合の、カウンタ１４１出力、ＭＵＸ１２１出力（出力ソースアドレスレジスタ１３１出力，出力デスティネーションアドレスレジスタ１３２出力）、アドレスバスＡ２上のアドレスデータおよびデータバスＤ２上のデータの対応関係は、図１０に示したタイミングチャートの右半分に示したものとなる。
【００７８】
本実施の形態にかかるデータ処理回路によるバーストライト動作を図１０に基づいて詳しく説明する。バーストライトを開始した時点で、データ転送装置３では、カウンタ１４１から初期値“00”出力される。そのため、出力デスティネーションアドレスレジスタ１３２に格納された情報は“10001000”となり、これがアクセス先アドレスとしてアドレスバスＡ２へ出力される。またこのとき、ＭＵＸ／ＤＥＭＵＸ１２２は、データ保持バッファ１１３内の、カウンタ１４１からの出力値に対応する領域に格納されたデータをデータバスＤ２へ出力する。具体的には‘ａ’が出力される。一方、メモリ５は、データバスＤ２へ出力された情報を取得し、アドレスバスＡ２の状態（アクセス先アドレス）に対応する領域に格納する。すなわち、データ‘ａ’がメモリ５内のアドレス“10001000”の領域へ格納される。
【００７９】
その後所定時間が経過すると、データ転送装置３では、カウンタ１４１がカウントアップし、その出力値が“01”に変化する。これに伴って、出力デスティネーションアドレスレジスタ１３２に格納された情報は“10001001”となり、この値がアドレスバスＡ２へ出力される。このとき、ＭＵＸ／ＤＥＭＵＸ１２２は、データ保持バッファ１１３内の、カウンタ１４１からの出力値に対応する領域に格納されたデータ‘ｂ’をデータバスＤ２へ出力する。一方、メモリ５では、データバスＤ２へ出力された情報をアドレスバスＡ２の状態（アクセス先アドレス）に対応する領域に格納する。すなわち、データ‘ｂ’がメモリ５内のアドレス“10001001”の領域へ格納される。
【００８０】
その後、データ転送装置３で、カウンタ１４１がカウントアップした場合、カウンタ１４１がグレイコードを生成するカウンタであるため、その出力値は“11”に変化する。これに伴って、出力デスティネーションアドレスレジスタ１３２からアドレスバスＡ２へは“10001011”が出力される。このとき、ＭＵＸ／ＤＥＭＵＸ１２２は、データ保持バッファ１１３内の、カウンタ１４１からの出力値に対応する領域に格納されたデータ‘ｄ’をデータバスＤ２へ出力する。一方、メモリ５では、データバスＤ２へ出力された情報をアドレスバスＡ２の状態（アクセス先アドレス）に対応する領域に格納する。すなわち、データ‘ｄ’がメモリ５内のアドレス“10001011”の領域へ格納される。
【００８１】
またさらに、データ転送装置３で、カウンタ１４１がカウントアップした場合、カウンタ１４１は“10”を出力し、これに伴って、出力デスティネーションアドレスレジスタ１３２からアドレスバスＡ２へは“10001010”が出力される。このとき、ＭＵＸ／ＤＥＭＵＸ１２２は、データ保持バッファ１１３内の、カウンタ１４１からの出力値に対応する領域に格納されたデータ‘ｃ’をデータバスＤ２へ出力する。一方、メモリ５では、データバスＤ２へ出力された情報をアドレスバスＡ２の状態（アクセス先アドレス）に対応する領域に格納する。すなわち、データ‘ｃ’がメモリ５内のアドレス“10001010”の領域へ格納される。
【００８２】
なお、アドレスバスＡ２に出力されるアドレスデータは、本来のアドレス順（小さい値から順番に出力される並び順）とは異なった順番で出力されるが、これに伴って、データバスＤ２に出力されるデータの順番も「ａ」→「ｂ」→「ｄ」→「ｃ」と変化する。したがって、アドレスとデータの対応関係はバーストライト処理の前後において維持される。
【００８３】
以上の動作を実行することにより、メモリ４からメモリ５へのＤＭＡ転送が完了となる。なお、カウンタ１４１として通常の２ビットカウンタを使用する従来のデータ転送装置によるＤＭＡ転送動作では、アドレスバスＡ２への出力が「00001100」→「00001101」（１ビット変化）→「00001110」（２ビット変化）→「00001111」（１ビット変化）→「10001000」（４ビット変化）→「10001001」（１ビット変化）→「10001010」（２ビット変化）→「00001011」（１ビット変化）と変化し、合計１２ビットが変化する。これに対して、本実施の形態にかかるデータ転送装置３によるＤＭＡ転送動作では、アドレスバスＡ２への出力が「00001100」→「00001101」（１ビット変化）→「00001111」（１ビット変化）→「00001110」（１ビット変化）→「10001000」（３ビット変化）→「10001001」（１ビット変化）→「10001011」（１ビット変化）→「00001010」（１ビット変化）と変化し、合計９ビットの変化となる。
【００８４】
本実施の形態では、説明を簡単化するために、バーストアクセス時に変化するアドレスのビット数が２の場合について説明を行ったが、３ビット以上が変化する場合も同様に、データ転送装置３は、スイッチング回数が従来よりも低減されるようにアドレスデータ出力を制御する。
【００８５】
このように、本実施の形態のデータ転送装置は、メモリ４に格納されたデータをメモリ５へＤＭＡ転送する場合、まず、カウンタ１４１により生成されたグレイコードを用いて、アドレスバスに出力するアクセス先アドレスを１ビットずつ変化させながらメモリ４から所望データのバーストリードを行い、次に、カウンタ１４１により生成されたグレイコードを用いて、アドレスバスに出力するアクセス先アドレスを１ビットずつ変化させながら、上記メモリ４から取得した所望データのメモリ５へのバーストライトを行うこととした。またこのとき、カウンタ１４１からの出力値に対応したデータ保持バッファ１１３内の領域へメモリ４から読み出した各データを一旦格納することとした。これにより、ＤＭＡ転送におけるバーストアクセス時に変化するアドレスビットの数（スイッチング回数）を従来よりも低減し、また、バーストアクセス対象の各データとそれらに対応するアドレスとの対応関係を、バーストアクセス処理の前後で維持することができる。したがって、複数の装置が共通の外部メモリへアクセスする構成のシステムにおいて、一部の装置に対して本実施の形態にかかるデータ処理回路を適用した場合であっても、各装置間でのアドレスとデータの対応関係が一致した状態を維持しつつ各装置と共通外部メモリとの間のアドレスバスにおける消費電力を個別に低減することができる。
【００８６】
また、共通外部メモリにアクセスする各装置の中で、バーストアクセスを実行する頻度が高い装置にのみ本実施の形態にかかるデータ処理回路を適用するなど、柔軟な使用方法をとることができる。また、本実施の形態にかかるデータ処理回路を適用した場合、消費電力に加えてスイッチングノイズを低減させることもできる。
【００８７】
なお、上記第１および第２の実施の形態の説明では、カウンタの出力がグレイコード２ビットの場合について示したが、出力が３ビット以上のカウンタを使用する場合、グレイコード以外を出力するカウンタであっても通常のカウンタを使用した場合と比較してスイッチング回数を低減できる。たとえば、出力が３ビットの場合、通常のカウンタ使用時には、出力値が「000」→「001」→「010」→「011」→「100」→「101」→「110」→「111」と変化し、合計スイッチング回数は１１回となる。これに対して、仮に「000」→「001」→「011」→「111」→「110」→「100」→「101」→「010」と出力する場合、合計スイッチング回数は９回となり、スイッチング回数が低減される。なお、グレイコードを出力した場合の合計スイッチング回数は７回である。したがって、本実施の形態は、グレイコードを出力するカウンタを使用する場合に限定されず、通常のカウンタよりもスイッチング回数が低減される順番で出力値を変化させるカウンタであれば、どのようなカウンタでも利用可能である。
【図面の簡単な説明】
【００８８】
【図１】第１の実施の形態にかかるデータ処理回路を備えたキャッシュシステムの構成例を示すブロック図。
【図２】メモリアクセス要求を受けた場合のキャッシュシステムの動作例を示す図。
【図３】キャッシュヒット／ミスのチェックを行う場合のキャッシュシステムの動作例を示す図。
【図４】書き戻し動作を行う場合のキャッシュシステムの動作例を示す図。
【図５】書き戻し動作のタイミングチャート例を示す図。
【図６】従来方式を適用してバーストアクセスを行った場合の合計スイッチング回数と、第１の実施の形態にかかる方式を適用した場合の合計スイッチング回数との比較結果を示す図。
【図７】第１の実施の形態にかかるデータ処理回路を備えたキャッシュシステムの他の構成例を示すブロック図。
【図８】第２の実施の形態にかかるデータ処理回路を備えたデータ転送装置の構成例を示す図。
【図９】ＤＭＡ転送の対象データの一例を示す図。
【図１０】第２の実施の形態にかかるデータ転送装置によるＤＭＡ転送動作のタイミングチャート例を示す図。
【符号の説明】
【００８９】
１，１ａ  キャッシュシステム、２，４，５  メモリ、３  データ転送装置、１０  キャッシュメモリ、２０  第１のレジスタ、３０  第２のレジスタ、４０  第３のレジスタ、５０  第４のレジスタ、３０ａ  双方向シフトレジスタ、６１  第１のＭＵＸ／ＤＥＭＵＸ、６２  第２のＭＵＸ／ＤＥＭＵＸ、１２２  ＭＵＸ／ＤＥＭＵＸ、６３，６３ａ，１２１  ＭＵＸ、７１，１４１  カウンタ、７２  比較器、１１１  入力ソースアドレスレジスタ、１１２  入力デスティネーションアドレスレジスタ、１１３  データ保持バッファ、１３１  出力ソースアドレスレジスタ、１３２  出力デスティネーションアドレスレジスタ。
【図１】
2009217714.tif 000003
【図２】
2009217714.tif 000004
【図３】
2009217714.tif 000005
【図４】
2009217714.tif 000006
【図５】
2009217714.tif 000007
【図６】
2009217714.tif 000008
【図７】
2009217714.tif 000009
【図８】
2009217714.tif 000010
【図９】
2009217714.tif 000011
【図１０】
2009217714.tif 000012