(57)【特許請求の範囲】
【請求項１】
記憶装置を管理する上での単位である単位記憶領域が複数集合して構成される記憶装置と、
前記記憶装置に対しデータ読み出し要求を行って前記記憶装置からデータを読み出す複数の読み出し手段と、
前記複数の読み出し手段によるデータ伝送を調停する調停手段と、
前記記憶装置と前記複数の読み出し手段の間に介在され、前記調停手段による調停のもとでデータを伝送するデータバスと、
前記記憶装置と前記データバスとの間に介在され、前記データバスを介して伝送された前記データ読み出し要求を単位記憶領域毎の複数の読み出し要求へと分割する単一の要求分割手段と、
前記要求分割手段により分割された複数の読み出し要求による各単位記憶領域への読み出し順序が予め定められた順序でない場合に、予め定められた順序となるように、分割された複数の読み出し要求を並び替える要求並べ替え手段と、
前記複数の読み出し手段のうち読み出し要求を行なった読み出し手段と、前記データバスとの間に介在され、前記要求並べ替え手段により並べ替えた読み出し要求の順序によって前記記憶装置から読み出されたデータを、並び替え前の読み出し要求の順序と対応する順序へと並び替えるデータ並び替え手段と、
を有するデータ処理装置。
【請求項２】
前記要求並べ替え手段は、読み出し先の単位記憶領域を指定する識別子が線型に循環するように、分割された読み出し要求を並び替える
請求項１記載のデータ処理装置。
【請求項３】
前記データバスには、複数の読み出し手段が接続されており、
前記データ並び替え手段は、複数の前記読み出し手段のうち、各単位記憶領域への読み出し順が予め定められた順序となっていない読み出し要求を行なう前記読み出し手段毎に設けられている
請求項１又は２記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関する。
【背景技術】
【０００２】
特許文献１は、複数のバスマスタから１つのＤＲＡＭにアクセス要求が発行されるメモリアクセスシステムにおいて、メモリ制御装置は、受け付けた連続した複数のアクセス要求について、ＤＲＡＭのバンク順に連続したアクセス要求に並べ替えて、ＤＲＡＭへのアクセスを行うことについて開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０-２７００６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、記憶装置及びデータが伝送される伝送部の利用効率を向上させることができるデータ処理装置を提供することである。
【課題を解決するための手段】
【０００５】
［データ処理装置］
請求項１に係る本発明は、記憶装置を管理する上での単位である単位記憶領域が複数集合して構成される記憶装置と、前記記憶装置に対しデータ読み出し要求を行って前記記憶装置からデータを読み出す複数の読み出し手段と、前記複数の読み出し手段によるデータ伝送を調停する調停手段と、前記記憶装置と前記複数の読み出し手段の間に介在され、前記調停手段による調停のもとでデータを伝送するデータバスと、前記記憶装置と前記データバスとの間に介在され、前記データバスを介して伝送された前記データ読み出し要求を単位記憶領域毎の複数の読み出し要求へと分割する単一の要求分割手段と、前記要求分割手段により分割された複数の読み出し要求による各単位記憶領域への読み出し順序が予め定められた順序でない場合に、予め定められた順序となるように、分割された複数の読み出し要求を並び替える要求並べ替え手段と、前記複数の読み出し手段のうち読み出し要求を行なった読み出し手段と、前記データバスとの間に介在され、前記要求並べ替え手段により並べ替えた読み出し要求の順序によって前記記憶装置から読み出されたデータを、並び替え前の読み出し要求の順序と対応する順序へと並び替えるデータ並び替え手段と、を有するデータ処理装置である。
【０００６】
請求項２に係る本発明は、前記要求並べ替え手段は読み出し先の単位記憶領域を指定する識別子が線型に循環するように分割された読み出し要求を並び替える請求項１記載のデータ処理装置、である。
【０００７】
請求項３に係る本発明は、前記データバスには、複数の読み出し手段が接続されており、前記データ並び替え手段は、複数の前記読み出し手段のうち、各単位記憶領域への読み出し順が予め定められた順序となっていない読み出し要求を行なう前記読み出し手段毎に設けられている請求項１記載のデータ処理装置である。
【発明の効果】
【０００８】
請求項１に係る本発明によれば、本構成を有していない場合と比べ、記憶装置及びデータが伝送される伝送部の利用効率を向上させることができるデータ処理装置を提供することができる。
【０００９】
請求項２に係る本発明によれば、請求項１に係る発明の効果に加え、本構成を有していない場合と比べ、記憶装置の利用効率を向上させることができる。
【００１０】
請求項３に係る本発明によれば、請求項１又は２に係る本発明によって奏される効果に加え、本構成を有していない場合に比べ、回路規模を抑えたデータ処理装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るデータ処理装置の一例であるメモリアクセスシステム１０の構成を示すブロック図である。
【図２】メモリアクセスシステム１０の動作を示すフローチャートである。
【図３】（ａ）は、メモリアクセスシステム１０によるデータの読み出しの一例を示すタイミングチャートである。（ｂ）は、メモリアクセスシステムによるデータの読み出しについての比較例を示すタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。
図１は、本発明の実施形態に係るデータ処理装置の一例であるメモリアクセスシステム１０の構成を示すブロック図である。
【００１３】
メモリアクセスシステム１０は、記憶装置１２、バスマスタ１４〜１８、バス２０、バス調停部２２、要求分割部２４、要求並べ替え部２６、メモリ制御装置２８、及びデータ並べ替え部３０から構成されている。
【００１４】
記憶装置１２は、ＤＲＡＭ（Dynamic Random Access Memory）であり、例えば、ＤＤＲ３−ＳＤＲＡＭ（Double Data Rate3 Synchronous Dynamic Random Access Memory）として構成されている。
【００１５】
記憶装置１２は、記憶装置を管理する上での単位である単位記憶領域（バンク）が複数集合して構成されており、本実施形態では、バンク０〜バンク３からなる４つのバンクを有している。したがって、アドレス空間が４つのバンクに対応するよう分割されており、各バンクを識別する識別子であるバンクアドレスを指定することにより、バンクを指定することができる。
【００１６】
また、本実施形態では、記憶装置１２は、メモリ制御装置２８との間の転送におけるデータ幅は６４ビット（８バイト）であり、バースト長が８のバースト転送が可能な構成となっている。したがって、記憶装置１２へは、６４バイト単位の入出力が可能である。以下の説明では、記憶装置１２への１回のバースト転送において入出力が可能なデータ量をバーストアクセスサイズと呼ぶ。上記例の場合、バーストアクセスサイズは６４バイトとなる。
【００１７】
バスマスタ１４〜１８は、それぞれＤＭＡ（Direct Memory Access）機能を有する装置である。バスマスタ１４及び１６は、バス２０に接続されており、バスマスタ１８は、データ並べ替え手段３０を介して、バス２０に接続されている。
【００１８】
バスマスタ１４〜１８は、バス２０を介して、ＤＲＡＭ２８からのデータの読み出しを行なう機能を有している。なお、バス２０には、バスマスタ１４〜１８以外にＣＰＵが接続されていてもよいし、バス２０に接続されるバスマスタの数も３に限定されない。
【００１９】
バスマスタ１４〜１８は、記憶装置１２からデータを読み出す場合、読み出し要求を発行し、バス２０へ出力する。
【００２０】
バス２０は、バス調停部２２による調停のもと、データが伝送される伝送部として機能する。バス２０には、バスマスタ１４〜１８が記憶装置１２から読み出すデータ、バスマスタ１４〜１８から発行される読み出し要求などが伝送される。
【００２１】
バス調停部２２は、バスマスタ１４〜１８によるバス２０の使用において、競合が発生しないようにバスの使用権限を調停する。
【００２２】
要求分割部２４は、バス２０を介して入力された読み出し要求を複数の読み出し要求へと分割し、分割した読み出し要求を要求並べ替え部２６へ出力する回路であり、バス２０及び要求並べ替え部２６と接続されている。
【００２３】
より具体的には、要求分割部２４は、読み出し要求をバーストアクセスサイズに分割する。例えば、「アドレス＝０ｘｂ４０から２５６バイト読み出す」という読み出し要求が入力されると、以下のようなバーストアクセスサイズ（本実施形態では６４バイト）ごとの４つの読み出し要求に分割し、要求並べ替え部２６へ出力する。
【００２４】
読み出し要求１「アドレス＝０ｘｂ４０から６４バイト読み出す」
読み出し要求２「アドレス＝０ｘｂ８０から６４バイト読み出す」
読み出し要求３「アドレス＝０ｘｂｃ０から６４バイト読み出す」
読み出し要求４「アドレス＝０ｘｃ００から６４バイト読み出す」
【００２５】
なお、本実施形態では、アドレスのうちビット７，ビット６がバンクアドレスとして割り振られている。例えば、上記の読み出し要求１では、ビット７は０でありビット６は１であるから、バンクアドレスは０１（２進数）であり、１０進数表記するとバンクアドレスは１となる。したがって、読み出し要求１は、記憶装置１２のバンク１から６４バイトのデータを読み出す要求となる。
【００２６】
同様に、読み出し要求２は、バンク２から６４バイトのデータを読み出す要求となり、読み出し要求３は、バンク３から６４バイトのデータを読み出す要求となり、読み出し要求４は、バンク０から６４バイトのデータを読み出す要求となる。
【００２７】
要求並べ替え部２６は、要求分割部２４により分割された読み出し要求を予め定められた順序に並べ替えてメモリ制御装置２８へ出力する回路であり、要求分割部２４及びメモリ制御装置２８と接続されている。なお、分割された読み出し要求が予め定められた順序と同じ順序である場合には、要求並べ替え部２６は並べ替えを行なわない。
【００２８】
一般に、インターリーブ方式によるＤＲＡＭへのアクセスでは、連続するトランザクションの各バンクアドレスが線型に循環すると最大転送性能を発揮することができる。例えば、本実施形態では、読み出し要求が指定するバンクアドレスが「０→１→２→３→０→１→２→・・・」と線型に循環すると最大転送性能を発揮できる。
【００２９】
本実施形態では、要求並べ替え部２６は、記憶装置１２への読み出しにおいてバンクアドレスが線型に循環するように、分割された読み出し要求を並べ替えてメモリ制御装置２８へ出力する。したがって、読み出し要求１〜４として示した上記の例では、以下の順に並べ替えられる。
【００３０】
順序１：読み出し要求４「アドレス＝０ｘｃ００から６４バイト読み出す」
順序２：読み出し要求１「アドレス＝０ｘｂ４０から６４バイト読み出す」
順序３：読み出し要求２「アドレス＝０ｘｂ８０から６４バイト読み出す」
順序４：読み出し要求３「アドレス＝０ｘｂｃ０から６４バイト読み出す」
【００３１】
上記順序では、バンクアドレスは「０→１→２→３」の順となる。なお、本実施形態では、バンクアドレスが昇順となるように並べ替えているが、降順であってもよい。また、要求並べ替え部２６は、記憶装置１２への入出力の効率を上げるための並べ替えを行なえばよく、したがって、バンクアドレスが線型に循環する順序ではなく他の順序でもよい。
【００３２】
メモリ制御装置２８は、要求並べ替え部２６により並べ替えられた順序で、各読み出し要求に対応する命令を記憶装置１２に対して発行し、データを読み出す制御を行なう。また、メモリ制御装置２８は、記憶装置１２から読み出されたデータを記憶装置１２からの応答の順序のままバス２０へと出力する制御を行なう。
【００３３】
上記の読み出し要求１〜４を例に説明すると、メモリ制御装置２８は、各読み出し要求に対する読み出しデータを、以下の順序でバス２０へと出力する。
【００３４】
順序１：アドレス＝０ｘｃ００からの６４バイトの読み出しデータ（読み出し要求４に対する読み出しデータ）
順序２：アドレス＝０ｘｂ４０からの６４バイトの読み出しデータ（読み出し要求１に対する読み出しデータ）
順序３：アドレス＝０ｘｂ８０からの６４バイトの読み出しデータ（読み出し要求２に対する読み出しデータ）
順序４：アドレス＝０ｘｂｃ０からの６４バイトの読み出しデータ（読み出し要求３に対する読み出しデータ）
【００３５】
データ並べ替え部３０は、バス２０とバスマスタ１８との間に介在しており、バス２０を介して入力された読み出しデータを元の読み出し要求に合わせて並べ直して、バスマスタ１８に出力する。すなわち、データ並べ替え部３０は、要求並べ替え部２６によって並べ替えられた読み出し要求の順序に従って読み出されたデータを、要求並べ替え部２６による並び替えがなされる前の読み出し要求の順序と対応する順序へと並び替える。
【００３６】
上記の読み出し要求１〜４を例に説明すると、データ並べ替え部３０は、以下の順序へと読み出しデータを並び替える。
【００３７】
順序１：アドレス＝０ｘｂ４０からの６４バイトの読み出しデータ（読み出し要求１に対する読み出しデータ）
順序２：アドレス＝０ｘｂ８０からの６４バイトの読み出しデータ（読み出し要求２に対する読み出しデータ）
順序３：アドレス＝０ｘｂｃ０からの６４バイトの読み出しデータ（読み出し要求３に対する読み出しデータ）
順序４：アドレス＝０ｘｃ００からの６４バイトの読み出しデータ（読み出し要求４に対する読み出しデータ）
【００３８】
なお、データ並べ替え部３０は、バスマスタ毎に設ける必要はない。例えば、バスマスタ１４及び１６から発行される読み出し要求の順序が、予め定められた順序であることにより要求並べ替え部２６における並べ替えが不要である場合には、データ並べ替え部３０設ける必要がない。このように、要求並べ替え部２６による並べ替えを要するバスマスタのみにデータ並べ替え部３０を設ければ、回路規模を抑制することができる。
【００３９】
次に、メモリアクセスシステム１０の動作を説明する。図２は、メモリアクセスシステム１０の動作を示すフローチャートである。
【００４０】
ステップ１００（Ｓ１００）において、バスマスタ１４乃至１８は、読み出し要求を発行する。
【００４１】
ステップ１０２（Ｓ１０２）において、要求分割部２４は、バス２０を介して入力された読み出し要求をバーストアクセスサイズの読み出し要求へと分割し、要求並べ替え部２６へ出力する。
【００４２】
ステップ１０４（Ｓ１０４）において、要求並べ替え部２６は、入力された読み出し要求を並べ替える必要があるか否かを判定する。入力された読み出し要求の順序が、記憶装置１２への読み出しにおいてバンクアドレスが線型に循環する順序となっていない場合にはステップ１０６へ移行し、線型に循環する順序である場合にはステップ１１４へ移行する。
【００４３】
ステップ１０６（Ｓ１０６）において、要求並べ替え部２６は、記憶装置１２への読み出しにおいてバンクアドレスが線型に循環するように読み出し要求を並べ替え、メモリ制御装置２８へ出力する。
【００４４】
ステップ１０８（Ｓ１０８）において、メモリ制御装置２８は、要求並べ替え部２６によって並べ替えられた順序でデータの読み出しを行ない、読み出したデータをそのままの順序でバス２０へ出力する。
【００４５】
ステップ１１０（Ｓ１１０）において、データ並べ替え部３０は、バス２０を介して入力された読み出しデータを元の読み出し要求に合わせて並べ直し、並べ直した順序により読み出しデータをバスマスタ１８へ出力する。
【００４６】
ステップ１１２（Ｓ１１２）において、バスマスタは読み出し要求に対応した読み出しデータを取得し、データの読み出し動作を終了する。
【００４７】
なお、ステップ１１４（Ｓ１１４）では、バスマスタの発行した読み出し要求に対する分割後の読み出し要求について、メモリ制御装置２８は、ステップ１０８と同様、データの読み出しを行ない、読み出したデータをそのままの順序でバス２０へ出力し、ステップ１１２へと移行する。
【００４８】
図３（ａ）は、メモリアクセスシステム１０によるデータの読み出しの一例を示すタイミングチャートである。
【００４９】
ここで、図３に示すＡ，Ｂ，及びＣは、それぞれバスマスタから出力された読み出し要求Ａ，Ｂ及びＣを示す。読み出し要求Ａは、例えば、バスマスタ１４から出力された「アドレス＝０ｘｃ００から２５６バイト読み出す」という読み出し要求である。読み出し要求Ｂは、例えば、バスマスタ１８から出力された「アドレス＝０ｘｂ４０から２５６バイト読み出す」という読み出し要求である。読み出し要求Ｃは、例えば、バスマスタ１８から出力された「アドレス＝０ｘｅｃ０から２５６バイト読み出す」という読み出し要求である。
【００５０】
図３（ａ）に示した例では、図中の「１．バスマスタからの読み出し要求」に示すように、読み出し要求Ａが出力され、その後、読み出し要求Ｂが出力され、さらにその後、読み出し要求Ｃが出力されている。
【００５１】
バスマスタからの読み出し要求があると、次に、図３（ａ）における「２．記憶装置への読み出し要求」に示すように、記憶装置１２に対する読み出し要求が、要求分割部２４によって分割された複数の読み出し要求となる。図３では、Ａ０〜Ａ３が、それぞれ読み出し要求Ａを分割した読み出し要求を示している。同様に、Ｂ０〜Ｂ３が、読み出し要求Ｂについて分割した読み出し要求を示し、Ｃ０〜Ｃ３が、読み出し要求Ｃについて分割した読み出し要求を示している。ここで、読み出し要求Ａの分割後の読み出し要求は、例えば以下の通りである。
【００５２】
読み出し要求Ａ０「アドレス＝０ｘｃ００から６４バイト読み出す」
読み出し要求Ａ１「アドレス＝０ｘｃ４０から６４バイト読み出す」
読み出し要求Ａ２「アドレス＝０ｘｃ８０から６４バイト読み出す」
読み出し要求Ａ３「アドレス＝０ｘｃｃ０から６４バイト読み出す」
【００５３】
したがって、読み出し要求Ａ０，Ａ１，Ａ２，Ａ３の順であると、読み出し先のバンクアドレスが０，１，２，３と推移し、バンクアドレスが線型に変化している。一方、読み出し要求Ｂの分割後の読み出し要求は、例えば以下の通りである。
【００５４】
読み出し要求Ｂ１「アドレス＝０ｘｂ４０から６４バイト読み出す」
読み出し要求Ｂ２「アドレス＝０ｘｂ８０から６４バイト読み出す」
読み出し要求Ｂ３「アドレス＝０ｘｂｃ０から６４バイト読み出す」
読み出し要求Ｂ０「アドレス＝０ｘｃ００から６４バイト読み出す」
【００５５】
したがって、読み出し先のバンクアドレスが１，２，３，０と変化する。よって、このままであると、読み出し要求Ａ及び読み出し要求Ｂの分割後の読み出し要求は、読み出し先のバンクアドレスが０，１，２，３，１，２，３，０と変化することとなり、連続した読み出し要求について、バンクアドレスが線型に循環しない。
【００５６】
さらにその後の読み出し要求Ｃについても、同様に、バンクアドレスが線型に循環しないこととなる。
【００５７】
よって、読み出し要求Ｂ及び読み出し要求Ｃは、要求並べ替え手段２６により分割後の読み出し要求の並べ替えが行なわれ、一連の読み出し要求の読み出し先のバンクアドレスが０，１，２，３，０，１，２，３，０，１，２，３の順となり、バンクアドレスが線型に循環するようになる。そして、図３（ａ）における「２．記憶装置への読み出し要求」に示すように、並べ替えられた読み出し要求によって記憶装置１２へ読み出しが行なわれる。
【００５８】
次に、図３（ａ）における「３．読み出しデータ」に示すように、並べ替えられた読み出し要求に対する応答として、読み出しデータが記憶装置１２から出力される。なお、図３において、ａ０〜ａ３は、それぞれ読み出し要求Ａ０〜Ａ３に対する応答を示している。また、同様に、ｂ０〜ｂ３は、それぞれ読み出し要求Ｂ０〜Ｂ３に対する応答を示し、ｃ０〜ｃ３は、それぞれ読み出し要求Ｃ０〜Ｃ３に対する応答を示している。
【００５９】
次に、図３（ａ）における「４．読み出しデータ」に示すように、読み出されたデータが、読み出した順でそのままバス２０へ出力される。
【００６０】
最後に、図３（ａ）における「５．並べ直された読み出しデータ」に示すように、読み出し要求の並べ替えが行なわれた読み出し要求Ｂ及びＣに対応する読み出しデータについて、データ並べ替え部３０による並べ替えが行なわれ、バスマスタ１８は、並べ直された読み出しデータを取得する。
【００６１】
なお、分割後の読み出し要求の並べ替えを行なわない場合、読み出し要求Ａ及びその後の読み出し要求Ｂのバンクアドレスの推移は、上述の通り０，１，２，３，１，２，３，０と変化することとなる。この場合、読み出し要求Ｂについての読み出しを行なうタイミングを１サイクル遅らせることで対応することとなる。
【００６２】
すなわち、読み出し要求Ａにおけるバンク３への読み出しの次のタイミングでの読み出しはバンク０への読み出しが望ましく、バンク１への読み出しはさらに次のタイミングで行うことが望ましい。したがって、読み出し要求Ｂのバンク１への読み出しは、読み出し要求Ａにおけるバンク３への読み出しの次のタイミングではなく、１サイクル遅らせたさらに次のタイミングとなる。
【００６３】
同様に、読み出し要求Ｃについての読み出しにおいても、２サイクル遅らせる必要が生じ、読み出し要求Ａ，Ｂ，及びＣの読み出しでは、合計３サイクル遅らせる必要が生じる。
【００６４】
これに対し、本実施形態のように、読み出し要求の並べ替えを行なう場合は、読み出しのタイミングを遅らせる必要がないため、図３（ａ）に示すように、記憶装置１２の帯域を効率的に利用することができる。
【００６５】
なお、図３（ａ）に示した例では、記憶装置１２への読み出しにおいてバンクアドレスが線型に循環する順序となっている要求である読み出し要求Ａの出力元をバスマスタ１４としたが、データ並べ替え部３０と接続されているバスマスタ１８が出力してもよい。ただし、バスマスタ１８が出力した場合、読み出し要求Ａは、読み出し要求の並べ替えが不要であるため、データ並べ替え部３０においても読み出しデータの並べ替えは行なわれない。
【００６６】
図３（ｂ）は、本実施形態に係るメモリアクセスシステム１０と比較される比較例を示すタイミングチャートである。図３（ｂ）に示した比較例では、図３（ａ）と同様、読み出し要求Ａ，Ｂ，及びＣがバスマスタから出力された様子を示す。
【００６７】
図３（ｂ）に示す比較例でも、図３（ａ）と同様、バスマスタから出力された読み出し要求は、分割及び並べ替えが行なわれ、並べ替えられた読み出し要求に対する応答として、読み出しデータが記憶装置１２から出力される。
【００６８】
しかし、比較例では、図３（ｂ）における「４．読み出しデータ」に示すように、読み出しデータがバス２０へと出力される前に読み出しデータの並べ替えが行なわれ、バス２０への読み出しデータの出力が遅れる。
【００６９】
これに対し、本実施形態では、バス２０から取得した読み出しデータをデータ並べ替え部３０により並べ替えている。結果として、図３（ａ）に示すように、バスの帯域が効率的に利用されることになる。
【符号の説明】
【００７０】
１０          メモリアクセスシステム
１２          記憶装置
１４〜１８    バスマスタ
２０          バス
２２          バス調停部
２４          要求分割部
２６          要求並べ替え部
２８          メモリ制御装置
３０          データ並べ替え部
【図１】
0005720989.tif 000002
【図２】
0005720989.tif 000003
【図３】
0005720989.tif 000004