(57)【要約】【課題】ＳＤＲＡＭ等へのリードアクセスおよびリードデータの順序の整合性が求められる場合でも、リソースの追加およびレイテンシの増大を回避しつつ、バンク競合によるオーバーヘッドを隠蔽できること。【解決手段】アクセス要求分別部２は、アクセス要求トランザクションをリードアクセスキューとライトアクセスキューとに分別する。それらアクセスキューは、同一バンク内の異なるページをアクセス先とする連続する２つの要求の間で複数の単位リードキューおよび複数の単位ライトキューに区分される。コマンド発行部７は、前記アクセス要求トランザクション内での順序に従って前記単位リードキューを順次選択し、前記単位リードキューに対応するコマンドと前記単位ライトキューに対応するコマンドとを交互にＳＤＲＡＭ９に発行する。【選択図】図２
2016085684.tif 000002
【特許請求の範囲】
【請求項１】
複数のバンクに区分されているとともに前記バンク各々が複数のページに区分されたデータ記憶領域を有するメモリーに対してアクセスコマンドを発行するメモリーアクセス装置であって、
外部から入力される前記メモリーへのアクセス要求の列を含むアクセス要求トランザクションをリードアクセス要求が並ぶリードアクセスキューとライトアクセス要求が並ぶライトアクセスキューとに分別するアクセス要求分別部と、
前記リードアクセスキューを一時記憶する第１キューイングバッファーと、
前記ライトアクセスキューを一時記憶する第２キューイングバッファーと、
前記リードアクセスキューを、前記メモリーにおける同一の前記バンク内の異なる前記ページをアクセス先とする連続する２つの前記リードアクセス要求の間で区分することによってそれぞれ１つ以上の前記リードアクセス要求を含む複数の単位リードキューに区分するリードキュー区分部と、
前記ライトアクセスキューを、前記メモリーにおける同一の前記バンク内の異なる前記ページをアクセス先とする連続する２つの前記ライトアクセス要求の間で区分することによってそれぞれ１つ以上の前記ライトアクセス要求を含む複数の単位ライトキューに区分するライトキュー区分部と、
前記単位リードキュー各々を前記アクセス要求トランザクション内での前記リードアクセス要求の順序に従って順次選択するとともに、前記単位ライトキュー各々を順次選択し、少なくとも前記第１キューイングバッファー内の全ての前記単位リードキューに対応するコマンドまたは前記第２キューイングバッファー内の全ての前記単位ライトキューに対応するコマンドが発行されるまで、選択した前記単位リードキューに対応するコマンドと前記単位ライトキューに対応するコマンドとを交互に前記メモリーに発行するコマンド発行部と、を備えるメモリーアクセス装置。
【請求項２】
前記コマンド発行部は、前記ライトアクセスキューから次に発行対象とする前記単位ライトキューを選択する際に、キャッシュコヒーレンシの維持を制約条件として、最後に発行した前記単位リードキューにおける最後の前記リードアクセス要求に対応するコマンドである直近リードアクセスコマンドとの間で生じるアクセスの種類の切り替わりによるオーバーヘッド時間が、前記直近リードアクセスコマンドと次の次に発行予定の前記単位リードキューにおける最初の前記リードアクセス要求に対応するコマンドとの間で生じるバンク競合によるオーバーヘッド時間に最も近いものを選択する、請求項１に記載のメモリーアクセス装置。
【請求項３】
前記リードキュー区分部は、対応するコマンドが前記メモリーに連続して発行された場合にバンク競合によるオーバーヘッドが予め定められた許容範囲に収まる前記リードアクセス要求の列ごとに、当該リードアクセス要求の列を前記単位リードキューとして区分し、
前記ライトキュー区分部は、対応するコマンドが前記メモリーに連続して発行された場合にバンク競合によるオーバーヘッドが予め定められた許容範囲に収まる前記ライトアクセス要求の列ごとに、当該ライトアクセス要求の列を前記単位ライトキューとして区分する、請求項１または請求項２に記載のメモリーアクセス装置。
【請求項４】
前記アクセス要求トランザクションの優先度を判定する判定部をさらに備え、
前記アクセス要求分別部は、前記判定部により判定される前記優先度が同じ前記アクセス要求トランザクションごとに前記リードアクセスキューと前記ライトアクセスキューとの分別を行い、
前記優先度が同じ前記アクセス要求トランザクションごとに、前記リードアクセスキューを記憶する複数の前記第１キューイングバッファーおよび前記ライトアクセスキューを記憶する複数の前記第２キューイングバッファーを備え、
前記リードキュー区分部および前記ライトキュー区分部は、前記優先度ごとに前記単位リードキューの区分および前記単位ライトキューの区分を行い、
前記コマンド発行部は、前記優先度の高いものから順に前記単位リードキューおよび前記単位ライトキューの選択およびコマンド発行の処理を行う、請求項１から請求項３のいずれか１項に記載のメモリーアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリーアクセス装置に関する。
【背景技術】
【０００２】
一般に、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）のデータ記憶領域は、複数のバンクに区分されており、前記バンク各々は複数のページに区分されている。前記ＳＤＲＡＭは、前記メモリーアクセス装置によって前記ページ単位で活性化され、活性化された前記ページがアクセス可能になる。
【０００３】
また、前記ＳＤＲＡＭにおいて、異なる前記バンク各々の前記ページを独立して活性化することが可能である。そのため、異なる前記バンクへのアクセスが続く場合、大きなオーバーヘッドが生じず、連続して高速なアクセスが可能である。
【０００４】
一方、１つの前記バンク内における異なる前記ページへのアクセスが続く場合、バンク競合による比較的大きなオーバーヘッドが生じる。即ち、１つの前記バンク内でのアクセスにおいては、先に活性化された前記ページのクローズ処理が終了した後に次の前記ページを活性化するステップが必要であり、このステップが前記バンク競合によるオーバーヘッドとなる。
【０００５】
一般に、前記ＳＤＲＡＭのようなメモリーに対するデータの書き込みおよび読み出しのためのアクセスは、メモリーアクセス装置によって制御される。また、前記メモリーアクセス装置が、マスターから入力されたメモリーへのアクセス要求の列を含むアクセス要求トランザクションを前記バンク単位のアクセス要求に分割し、分割された前記アクセス要求の順序を入れ替えた上で、前記アクセス要求に対応するコマンドを前記ＳＤＲＡＭに発行することが知られている（例えば、特許文献１参照）。この場合、前記コマンドの発行順序の最適化により、前記バンク競合によるオーバーヘッドの一部が隠蔽される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２６０４７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、前記メモリーアクセス装置において、前記マスターからのリードアクセスの要求順序と、前記マスターへのリードデータの出力順序との整合性が求められる場合がある。また、複数のリードアクセスコマンドが発行された場合、前記リードアクセスコマンドの発行順序に対応して各データが並ぶリードデータ列が得られる。
【０００８】
従って、前記メモリーアクセス装置は、前記リードアクセス要求の入力順序と異なる順序で複数の前記リードアクセスコマンドを発行する場合、前記リードアクセスコマンドの発行順序に対応した第１のリードデータ列と、本来の順序に並べ替えられた後の第２のリードデータ列とを保持する必要がある。この場合、前記メモリーアクセス装置において、データバッファーなどの追加のリソースが必要になる。さらに、前記リードデータ列の並べ替えのために、前記アクセス要求の入力から前記リードデータ列の出力までのレイテンシが増大する。
【０００９】
本発明の目的は、ＳＤＲＡＭなどのメモリーへのアクセスにおいて、リードアクセスの要求順序とリードデータの出力順序との整合性が求められる場合でも、リソースの追加およびレイテンシの増大を回避しつつ、バンク競合によるオーバーヘッドを隠蔽することができるメモリーアクセス装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一の局面に係るメモリーアクセス装置は、メモリーに対してアクセスコマンドを発行するメモリーアクセス装置である。前記メモリーは、複数のバンクに区分されているとともに前記バンク各々が複数のページに区分されたデータ記憶領域を有する。前記メモリーアクセス装置は、アクセス要求分別部と、第１キューイングバッファーと、第２キューイングバッファーと、リードキュー区分部と、ライトキュー区分部と、コマンド発行部とを備える。前記アクセス要求列分別部は、外部から入力される前記メモリーへのアクセス要求の列を含むアクセス要求トランザクションをリードアクセス要求が並ぶリードアクセスキューとライトアクセス要求が並ぶライトアクセスキューとに分別する。前記第１キューイングバッファーは、前記リードアクセスキューを一時記憶する。前記第２キューイングバッファーは、前記ライトアクセスキューを一時記憶する。前記リードキュー区分部は、前記リードアクセスキューをそれぞれ１つ以上の前記リードアクセス要求を含む複数の単位リードキューに区分する。前記リードキュー区分部は、前記リードアクセスキューを前記メモリーにおける同一の前記バンク内の異なる前記ページをアクセス先とする連続する２つの前記リードアクセス要求の間で区分する。前記ライトキュー区分部は、前記ライトアクセスキューをそれぞれ１つ以上の前記ライトアクセス要求を含む複数の単位ライトキューに区分する。前記ライトキュー区分部は、前記ライトアクセスキューを前記メモリーにおける同一の前記バンク内の異なる前記ページをアクセス先とする連続する２つの前記ライトアクセス要求の間で区分する。前記コマンド発行部は、前記単位リードキュー各々を前記アクセス要求トランザクション内での前記リードアクセス要求の順序に従って順次選択する。さらに、前記コマンド発行部は、前記単位ライトキュー各々を順次選択する。さらに、前記コマンド発行部は、少なくとも前記第１キューイングバッファー内の全ての前記単位リードキューに対応するコマンドまたは前記第２キューイングバッファー内の全ての前記単位ライトキューに対応するコマンドが発行されるまで選択した前記単位リードキューと前記単位ライトキューとを交互に前記メモリーに発行する。
【発明の効果】
【００１１】
本発明によればＳＤＲＡＭなどのメモリーへのアクセスにおいて、リードアクセスの要求順序とリードデータの出力順序との整合性が求められる場合でも、リソースの追加およびレイテンシの増大を回避しつつ、バンク競合によるオーバーヘッドを隠蔽することができるメモリーアクセス装置を提供することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の第１実施形態に係るメモリーアクセス装置を備える画像処理装置のブロック図である。
【図２】図２は、本発明の第１実施形態に係るメモリーアクセス装置のブロック図である。
【図３】図３は、アクセス要求トランザクションの各アクセス要求に対応するコマンドがそのまま発行された場合および本発明の第１実施形態に係るメモリーアクセス装置が各アクセス要求に対応するコマンドを発行した場合の各々におけるコマンド実行状況の一例を模式的に示すタイムチャートである。
【図４】図４は、本発明の第１実施形態に係るメモリーアクセス装置が一時記憶するリードアクセスキューおよびライトアクセスキューの一例を模式的に示す図である。
【図５】図５は、本発明の第２実施形態に係るメモリーアクセス装置のブロック図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照しながら、本発明の実施形態について説明する。なお、以下の実施形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格を有さない。
【００１４】
［第１実施形態］
まず、図１を参照しつつ、本発明の第１実施形態に係るメモリーアクセス装置１０を備える画像処理装置１００の概略構成について説明する。画像処理装置１００は、メモリーアクセス装置１０の適用例の１つである。
【００１５】
図１が示す画像処理装置１００は、原稿から画像を読み取る画像読取装置の機能および記録シートへ画像を形成する画像形成装置の機能を兼ね備えた複合機である。なお、画像処理装置１００が、前記画像形成装置、前記画像読取装置、前記画像形成装置および前記画像読取装置の機能を備える複写機または前記画像読取装置の機能および画像送信機能を備えるファクシミリ装置などであることも考えられる。
【００１６】
画像処理装置１００は、ＳＤＲＡＭ９、メモリーアクセス装置１０、スキャン部２０、スキャン制御部３０、プリント部４０、プリント制御部５０、通信制御部６０および画像処理部７０などを備える。メモリーアクセス装置１０、スキャン制御部３０、プリント制御部５０、通信制御部６０および画像処理部７０は、それぞれバス８０に接続されおり、バス８０を通じて相互にデータの受け渡しが可能である。
【００１７】
スキャン部２０は、前記原稿に光を走査する不図示の光学系、および原稿からの反射光の光量を画素ごとに検出して原稿画像データを出力する不図示のイメージセンサーなどを備える。
【００１８】
スキャン制御部３０は、スキャン部２０を制御して前記原稿画像データを取得する。さらに、スキャン制御部３０は、メモリーアクセス装置１０を通じて前記原稿画像データをＳＤＲＡＭ９に書き込む処理なども実行する。例えば、スキャン制御部３０は、ＳＤＲＡＭ９を介して前記原稿画像データを画像処理部７０、プリント制御部５０または通信制御部６０などの他の機器に引き渡す場合がある。
【００１９】
プリント部４０は、周知の電子写真方式の画像形成処理によって前記記録シートに画像を形成する。プリント部４０は、不図示の像担持体およびその周辺機器を備え、前記像担持体から前記記録シートに現像剤の画像を転写するとともにその画像を前記記録シートに定着させる。
【００２０】
プリント制御部５０は、プリント部４０を制御する。プリント制御部５０は、他の機器から記録用画像データを取得し、その記録用画像データ基づく画像を前記記録シートに形成する処理をプリント部４０に実行させる。
【００２１】
通信制御部６０は、パーソナルコンピューターなどの外部装置との間でデータの送受信を行うとともに、バス８０を通じて他の機器とデータの受け渡しを行う。例えば、通信制御部６０は、前記外部機器から画像データを受信し、その画像データを前記記録用画像データとして前記プリント制御部５０に引き渡す。
【００２２】
また、通信制御部６０は、スキャン制御部３０から前記原稿画像データを取得し、その原稿画像データを含むデータを前記外部装置へ送信する。
【００２３】
画像処理部７０は、バス８０を通じて他の機器から得た画像データに対する画像処理を実行する。画像処理部７０による画像処理の対象は、例えば、スキャン制御部３０から前記通信制御部６０を通じて前記外部装置へ送信される画像データまたは前記スキャン制御部３０から前記プリント制御部５０へ引き渡される前記原稿画像データなどである。例えば、画像処理部７０は、他の機器から得た前記画像データに対し、画像回転処理、ハーフトーン処理またはサイズカット処理などの画像処理を施す。
【００２４】
ＳＤＲＡＭ９は、高速でデータの書き込みおよび読み出しが可能なメモリーである。ＳＤＲＡＭ９は、バス８０に接続された機器から発行されるアクセスコマンドの内容に従ってそのデータ領域へのデータの記録および前記データ領域に記録されているデータの出力を行う。
【００２５】
ＳＤＲＡＭ９の前記データ記憶領域は、複数のバンクに区分されており、前記バンク各々が複数のページに区分されている。ＳＤＲＡＭ９は、メモリーアクセス装置１０によって前記ページ単位で活性化され、活性化された前記ページがアクセス可能になる。
【００２６】
ＳＤＲＡＭ９において、１つの前記バンク内の前記ページと他の前記バンク内の前記ページとを独立して活性化することが可能である。そのため、異なる前記バンクへのアクセスが続く場合、大きなオーバーヘッドが生じず、連続して高速なアクセスが可能である。
【００２７】
一方、１つの前記バンク内における異なる前記ページへのアクセスが続く場合、バンク競合による比較的大きなオーバーヘッドが生じる。
【００２８】
例えば、同一の前記バンクにおける第１ページおよび第２ページ各々へのリードアクセスコマンドが連続して発行される場合を考える。この場合、先に活性化された前記第１ページのクローズ処理が終了した後に前記第２ページを活性化するステップが必要である。このステップにおいて、前記第１ページの前記クローズ処理に要する時間が比較的長いため、前記第２ページの活性化コマンドの発行までの待ち時間が、前記バンク競合によるオーバーヘッドとなる。
【００２９】
また、一般的なＳＤＲＡＭ９において、アクセス先に関わらず、リードアクセスおよびライトアクセスの一方と他方とが連続する場合、アクセスの種類の切り替わりによるオーバーヘッドが生じる。このオーバーヘッドは、前記バンク競合によるオーバーヘッドと同程度に比較的大きなオーバーヘッドである。
【００３０】
本実施形態では、主としてメモリーアクセス装置１０がＳＤＲＡＭ９に対して前記アクセスコマンドを発行する。この場合、スキャン制御部３０、プリント制御部５０、通信制御部６０および画像処理部７０の各々が、バス８０を通じてメモリーアクセス装置１０に向けてＳＤＲＡＭ９へのアクセス要求の列を含むアクセス要求トランザクションを出力する。一般に、メモリーアクセス装置１０は、ＤＭＡＣ（Direct Memory Access Controller）などと称される。前記アクセス要求の１つはリードアクセス要求であり、これに対応する前記アクセスコマンドはリードアクセスコマンドである。前記アクセス要求の他の１つはライトアクセス要求であり、これに対応する前記アクセスコマンドはライトアクセスコマンドである。
【００３１】
以下の説明において、メモリーアクセス装置１０に対して前記アクセス要求トランザクションを出力する機器のことを、メモリーアクセス装置１０に対してマスターと称する。本実施形態における前記マスターは、スキャン制御部３０、プリント制御部５０、通信制御部６０および画像処理部７０の各々である。なお、前記マスターがクライアントと称される場合もある。
【００３２】
メモリーアクセス装置１０は、ＳＤＲＡＭ９に対して前記アクセスコマンドを発行する装置である。メモリーアクセス装置１０は、前記マスターから入力されるアクセス要求トランザクションに含まれるアクセス要求キューを前記オーバーヘッドが減少するように並べ替え、並べ替え後の順序で前記アクセスコマンドをＳＤＲＡＭ９へ発行する。前記アクセス要求キューは、ＳＤＲＡＭ９に対する前記アクセス要求の列である。
【００３３】
ところで、前記マスターからのリードアクセスの要求順序と、前記マスターへのリードデータの出力順序との整合性が求められる場合がある。また、複数のリードアクセスコマンドが発行された場合、前記リードアクセスコマンドの発行順序に対応して各データが並ぶリードデータ列が得られる。
【００３４】
従って、前記アクセス要求トランザクション内のリードアクセス要求の順序と異なる順序で複数の前記リードアクセスコマンドが発行される場合、前記リードアクセスコマンドの発行順序で並ぶ第１のリードデータ列と、本来の順序に並べ替えられた後の第２のリードデータ列とを保持することが必要になる。この場合、データバッファーなどの追加のリソースが必要になる。さらに、前記リードデータ列の並べ替えのために、前記アクセス要求の入力から前記リードデータ列の出力までのレイテンシが増大する。
【００３５】
メモリーアクセス装置１０は、後述する構成を備えることにより、ＳＤＲＡＭ９へのアクセスにおいて、リードアクセスの要求順序とリードデータの出力順序との整合性が求められる場合でも、前記リソースの追加および前記レイテンシの増大を回避しつつ、前記バンク競合による前記オーバーヘッドを隠蔽することができる。
【００３６】
［メモリーアクセス装置］
次に、図２を参照しつつ、メモリーアクセス装置１０について説明する。メモリーアクセス装置１０は、要求トランザクション入力部１と、アクセス要求分別部２と、第１キューイングバッファー３と、第２キューイングバッファー４と、アクセスキュー区分部５と、コマンド発行部６と、メモリーアクセス部７とを備える。
【００３７】
アクセスキュー区分部５は、リードキュー区分部５１およびライトキュー区分部５２を含む。コマンド発行部６は、単位リードキュー選択部６１と、単位ライトキュー選択部６２と、コマンド交互発行部６３とを含む。
【００３８】
メモリーアクセス部７は、コマンド発行調整部７１と、リードデータバッファー７２と、データ出力部７３と、ライトデータバッファー７４と、データ入力部７５とを含む。
【００３９】
メモリーアクセス装置１０は、例えばＡＳＩＣ（Application Specific Integrated Circuit）またはＤＳＰ（digital Signal Processor）などによって構成されている。
【００４０】
要求トランザクション入力部１は、ＳＤＲＡＭ９への前記アクセス要求の列を含むアクセス要求トランザクションを前記マスターから取得する処理を実行する。前記アクセス要求トランザクションは、バス８０を通じて前記マスターから要求トランザクション入力部１へ入力される。
【００４１】
前記アクセス要求トランザクションは、ＳＤＲＡＭ９に対して前記データ記憶領域に記憶されているデータを読み出す処理を要求する前記リードアクセス要求と、ＳＤＲＡＭ９に対して前記データ記憶領域にデータを記録する処理を要求する前記ライトアクセスとを含む。前記リードアクセス要求および前記ライトアクセス要求は、その要求の種類の情報と、前記データ記憶領域におけるアドレスを指定する行アドレス情報および列アドレス情報とを含む。
【００４２】
アクセス要求分別部２は、前記マスターから入力されるメモリーアクセスの前記アクセス要求トランザクションをリードアクセスキューとライトアクセスキューとに分別する。前記リードアクセスキューは、前記リードアクセス要求が並ぶキューであり、前記ライトアクセス要求が並ぶキューである。
【００４３】
アクセス要求分別部２は、前記アクセス要求トランザクションにおける複数の前記リードアクセス要求相互の順番を変更することなく前記リードアクセスキューを生成する。また、アクセス要求分別部２は、前記アクセス要求トランザクションにおける複数の前記ライトアクセス要求相互の順番を変更することなく前記ライトアクセスキューを生成する。
【００４４】
即ち、アクセス要求分別部２は、前記アクセス要求トランザクションを連続する前記リードアクセス要求と前記ライトアクセス要求との間において分割する。さらに、アクセス要求分別部２は、分割により得られる複数の前記リードアクセス要求を前記アクセス要求トランザクション内での順序のまま前記リードアクセスキューとして編成する。また、アクセス要求分別部２は、分割により得られる複数の前記ライトアクセス要求を前記アクセス要求トランザクション内での順序のまま前記ライトアクセスキューとして編成する。
【００４５】
前述したように、前記リードアクセス要求および前記ライトアクセス要求の一方と他方とが連続する場合、即ち、前記リードアクセスコマンドおよび前記ライトアクセスコマンドの一方と他方とが連続する場合、アクセスの種類の切り替わりによるオーバーヘッドが発生する。以下、このオーバーヘッドのことをアクセス切替オーバーヘッドと称する。アクセス要求分別部２は、前記アクセス要求トランザクションを前記アクセス切替オーバーヘッドが生じる位置で分割する。
【００４６】
第１キューイングバッファー３は、前記リードアクセスキューを一時記憶するバッファーである。第２キューイングバッファー４は、前記ライトアクセスキューを一時記憶するバッファーである。即ち、アクセス要求分別部２は、前記リードアクセスキューを第１キューイングバッファー３に記録し、前記ライトアクセスキューを第２キューイングバッファー４に記録する。
【００４７】
アクセスキュー区分部５は、前記リードアクセスキューおよび前記ライトアクセスキューの各々を、ＳＤＲＡＭ９に対して発行されるそれぞれ１まとまりの前記アクセス要求の列である複数の単位アクセスキューに区分する処理を実行する。
【００４８】
リードキュー区分部５１は、前記リードアクセスキューをそれぞれ１つ以上の前記リードアクセス要求を含む複数の単位リードキューに区分する。ライトキュー区分部５２は、前記ライトアクセスキューをそれぞれ１つ以上の前記ライトアクセス要求を含む複数の単位リードキューに区分する。
【００４９】
リードキュー区分部５１は、前記リードアクセスキューをＳＤＲＡＭ９における同一の前記バンク内の異なる前記ページをアクセス先とする連続する２つの前記リードアクセス要求の間で区分する。前述したように、同一の前記バンク内の異なる前記ページをアクセス先とする連続する２つの前記リードアクセス要求の間においては、それらに対応するコマンドが発行されるときに前記バンク競合によるオーバーヘッドが発生する。
【００５０】
同様に、ライトキュー区分部５２は、前記ライトアクセスキューを前記メモリーにおける同一の前記バンク内の異なる前記ページをアクセス先とする連続する２つの前記ライトアクセス要求の間で区分する。同一の前記バンク内の異なる前記ページをアクセス先とする連続する２つの前記ライトアクセス要求の間においては、それらに対応するコマンドが発行されるときに前記バンク競合によるオーバーヘッドが発生する。
【００５１】
以下、前記バンク競合によるオーバーヘッドのことをバンク競合オーバーヘッドと称する。アクセスキュー区分部５は、前記リードアクセスキューおよび前記ライトアクセスキューの各々を、前記バンク競合オーバーヘッドが生じる位置で区分する。
【００５２】
アクセスキュー区分部５は、予め定められた計算ルールに従って、前記アクセス要求トランザクション内の複数の前記アクセス要求各々に対応するコマンドが発行された場合に生じるオーバーヘッドの時間を計算することができる。
【００５３】
例えば、リードキュー区分部５１は、前記リードアクセスキューにおける前記リードアクセス要求各々に対応するコマンドが、先頭側から順に連続して発行された場合に生じる前記バンク競合オーバーヘッドの時間を積算する。そして、リードキュー区分部５１は、前記バンク競合オーバーヘッドの時間の積算結果が予め定められた許容範囲に収まる前記リードアクセス要求の列ごとに、そのリードアクセス要求の列を前記単位リードキューとして区分する。
【００５４】
同様に、ライトキュー区分部５２は、前記ライトアクセスキューにおける前記ライト要求各々に対応するコマンドが、先頭側から順に連続して発行された場合に生じる前記バンク競合オーバーヘッドの時間を積算する。そして、ライトキュー区分部５２は、前記バンク競合オーバーヘッドの時間の積算結果が予め定められた許容範囲に収まる前記ライトアクセス要求の列ごとに、そのライトアクセス要求の列を前記単位ライトキューとして区分する。
【００５５】
前記リードアクセスキューにおける前記単位リードキュー各々の区分位置の情報は、リードキュー区分部５１から単位リードキュー選択部６１へ通知される。同様に、前記ライトアクセスキューにおける前記単位ライトキュー各々の区分位置の情報は、ライトキュー区分部５２から単位ライトキュー選択部６２へ通知される。
【００５６】
コマンド発行部６の単位リードキュー選択部６１は、第１キューイングバッファー３に記憶されている前記単位リードキューを１つずつ選択する処理を実行する。その際、単位リードキュー選択部６１は、前記アクセス要求トランザクション内での前記リードアクセス要求の順序に従って前記単位リードキュー各々を順次選択する。
【００５７】
コマンド発行部６の単位ライトキュー選択部６２は、第２キューイングバッファー４に記憶されている前記単位ライトキューを１つずつ選択する処理を実行する。その際、単位ライトキュー選択部６２は、単位リードキュー選択部６１が順次選択する前記単位リードキューと単位ライトキュー選択部６２が順次選択する前記単位ライトキューとが交互に発行された場合に、キャッシュコヒーレンシが維持されることを制約条件として前記単位ライトキューを順次選択する。
【００５８】
コマンド発行部６のコマンド交互発行部６３は、単位リードキュー選択部６１が順次選択する前記単位リードキューに対応するコマンドと、単位ライトキュー選択部６２が順次選択する前記単位ライトキューに対応するコマンドとを交互にＳＤＲＡＭ９に発行する。本実施形態では、コマンド交互発行部６３は、少なくとも第１キューイングバッファー３内の全ての前記単位リードキューに対応するコマンドまたは第２キューイングバッファー４内の全ての前記単位ライトキューに対応するコマンドが発行されるまで、前記単位リードキューに対応するコマンドおよび前記単位ライトキューに対応するコマンドを交互にＳＤＲＡＭ９に発行する。その際、コマンド交互発行部６３は、後述するコマンド発行調整部７１を介して前記単位リードキューおよび前記単位ライトキューの各々に対応するコマンドをＳＤＲＡＭ９に発行する。
【００５９】
前記単位リードキューおよび前記単位ライトキューの一方の全てについて選択および対向コマンドの発行が行われた後、コマンド交互発行部６３は、第１キューイングバッファー３または第２キューイングバッファー４において未選択のまま残っている前記単位リードキューまたは前記単位ライトキューを順次選択し、選択したキューに対応するコマンドを順次発行する。
【００６０】
前記制約条件は、ＳＤＲＡＭ９の前記データ記憶領域の同一アドレスをアクセス対象とする前記単位リードキューおよび前記単位ライトキューが存在する場合に、前記要求トランザクションにおけるそれらの前後の関係を維持することである。
【００６１】
以下の説明において、最後に発行された前記単位リードキューのコマンドにおける最後の前記リードアクセスコマンドのことを直近リードアクセスコマンドと称する。
【００６２】
例えば、単位ライトキュー選択部６２が、前記キャッシュコヒーレンシが維持されることを制約条件として、以下に示されるようなオーバーヘッド時間の比較に基づく選択ルールに従って前記単位ライトキューを選択することが考えられる。
【００６３】
前記選択ルールは、前記直近リードアクセスコマンドとの間で生じる前記アクセス切替オーバーヘッドの時間が、前記直近リードアクセスコマンドと次の次に発行予定の前記単位リードキューにおける最初の前記リードアクセス要求に対応するコマンドとの間で生じる前記バンク競合オーバーヘッドの時間に最も近い前記単位ライトキューを選択するというルールである。
【００６４】
コマンド発行調整部７１は、コマンド発行部６から順次発行される前記単位リードキューおよび前記単位ライトキュー各々に対応する前記リードアクセスコマンドおよび前記ライトアクセスコマンドを、コマンド発行部６からの発行順序のままＳＤＲＡＭ９に発行する。その際、コマンド発行調整部７１は、前記リードアクセスコマンドおよび前記ライトアクセスコマンドに付随して必要な活性化コマンドおよびプリチャージコマンドもＳＤＲＡＭ９に発行する。
【００６５】
より具体的には、コマンド発行調整部７１は、前記行アドレス情報を含む前記活性化コマンドを発行した後に、前記列アドレス情報を含む前記リードアクセスコマンドまたは前記ライトアクセスコマンドを発行し、さらに前記プリチャージコマンドを発行する。コマンド発行調整部７１は、ＳＤＲＡＭ９の仕様によって予め定められたタイミングで各コマンドを発行する。
【００６６】
コマンド発行部６によって発行された前記単位リードキューおよび前記単位ライトキューの各々は、第１キューイングバッファー３および第２キューイングバッファー４の各々から消去される。
【００６７】
リードデータバッファー７２は、前記リードアクセスコマンドの発行に応じてＳＤＲＡＭ９から読み出されたリードデータを一時記憶するバッファーである。データ出力部７３は、リードデータバッファー７２内の前記リードデータを、バス８０を通じて前記マスターへ転送するインターフェイスである。
【００６８】
前記リードデータの転送先は、コマンド発行部６からコマンド発行調整部７１を通じてＳＤＲＡＭ９に発行された前記リードアクセスコマンドを含む前記アクセス要求トランザクションを出力した前記マスターである。前記マスターへ転送された前記リードデータは、リードデータバッファー７２から消去される。
【００６９】
データ入力部７５は、前記マスターから前記ライトアクセス要求を含む前記アクセス要求トランザクションとともに出力されるライトデータを、バス８０を通じて取得するインターフェイスである。ライトデータバッファー７４は、データ入力部７５が取得した前記ライトデータを一時記憶するバッファーである。
【００７０】
ＳＤＲＡＭ９は、前記ライトアクセスコマンドを受けた際に指定された前記データ記憶領域の前記アドレスに前記ライトデータを記録する。ＳＤＲＡＭ９に記録された前記ライトデータは、ライトデータバッファー７４から消去される。
【００７１】
［アクセスコマンド発行順序の具体例］
続いて、図３，４を参照しつつ、前記アクセス要求トランザクションにおける各アクセス要求に対応するコマンドの発行順序の具体例について説明する。図３は、前記アクセス要求トランザクションにおける前記アクセス要求に対応するコマンドの実行状況の一例を模式的に示すタイムチャートである。
【００７２】
図３に示される第１タイムチャートＴｃ１は、前記アクセス要求トランザクションの各アクセス要求に対応するコマンドが元の順序のまま発行された場合におけるコマンド実行状況の一例を模式的に示すタイムチャートである。第２タイムチャートＴｃ２は、前記要求トランザクションを受けたメモリーアクセス装置１０が前記アクセスコマンドを発行した場合におけるコマンド実行状況の一例を模式的に示すタイムチャートである。
【００７３】
第１タイムチャートＴｃ１および第２タイムチャートＴｃ２各々の元になる前記アクセス要求トランザクションは同じである。以下の説明において、そのアクセス要求トランザクションのことをサンプル要求トランザクションと称する。
【００７４】
図３において、Ｒ１〜Ｒ６は前記リードアクセス要求を表し、ＷＩ〜Ｗ３は前記ライトアクセス要求を表し、Ｘ１〜Ｘ８は前記オーバーヘッドを表す。
【００７５】
第１タイムチャートＴｃ１において、第１リードアクセス要求Ｒ１および第２リードアクセス要求Ｒ２は、それぞれ同一の前記バンクにおける異なる前記ページへの前記アクセス要求である。そのため、第１リードアクセス要求Ｒ１および第２リードアクセス要求Ｒ２の各コマンドが連続して発行されることにより、前記バンク競合オーバーヘッドである第１オーバーヘッドＸ１が生じている。第４リードアクセス要求Ｒ４のコマンドと第５リードアクセス要求Ｒ５のコマンドとの間においても生じている第４オーバーヘッドＸ４も前記バンク競合オーバーヘッドである。
【００７６】
第１タイムチャートＴｃ１において、第２リードアクセス要求Ｒ２および第３リードアクセス要求Ｒ３は、それぞれ異なる前記バンクへの前記アクセス要求である。そのため、第２リードアクセス要求Ｒ２および第３リードアクセス要求Ｒ３の各コマンドが連続して発行されることにより、大きなオーバーヘッドが生じず、連続して高速なアクセスが可能となる。
【００７７】
第１タイムチャートＴｃ１において、種類が異なる第３リードアクセス要求Ｒ３および第１ライトアクセス要求Ｗ１の各コマンドが連続して発行されている。そのため、前記アクセス切替オーバーヘッドである第２オーバーヘッドＸ２が生じる。
【００７８】
第１ライトアクセス要求Ｗ１のコマンドと第４リードアクセス要求Ｒ４のコマンドとの間と、第５リードアクセス要求Ｒ５、第２ライトアクセス要求Ｗ２、第６リードアクセス要求Ｒ６および第３ライトアクセス要求Ｗ３の各々のコマンドの間と、第３ライトアクセス要求Ｗ３のコマンドの実行後とにおいて生じている第２オーバーヘッドＸ２、第３オーバーヘッドＸ３、第５オーバーヘッドＸ５、第６オーバーヘッドＸ６および第７オーバーヘッドＸ７および第８オーバーヘッドも、前記アクセス切替オーバーヘッドである。
【００７９】
一方、メモリーアクセス装置１０は、前記マスターから入力される前記サンプル要求トランザクションに含まれる複数の前記アクセス要求のキューを、前記オーバーヘッドが減少するように並べ替え、並べ替え後の順序で前記アクセス要求各々に対応するコマンドをＳＤＲＡＭ９へ発行する。
【００８０】
図４は、前記サンプル要求トランザクションを受けたメモリーアクセス装置１０が一時記憶する前記リードアクセスキューＲｑおよびライトアクセスキューＷｑの一例を模式的に示す図である。
【００８１】
メモリーアクセス装置１０において、アクセス要求分別部２は、前記サンプル要求トランザクションを、リードアクセス要求Ｒ１〜Ｒ６が並ぶ前記リードアクセスキューＲｑと、前記ライトアクセス要求Ｗ１〜Ｗ３が並ぶ前記ライトアクセスキューＷｑとに分別する。
【００８２】
また、図４は、リードキュー区分部５１が前記リードアクセスキューＲｑを複数の前記単位リードキューＲｕ１〜Ｒｕ５に区分し、ライトキュー区分部５２が前記ライトアクセスキューＷｑを複数の前記単位ライトキューＷｕ１〜Ｗｕ３に区分した例を示す。
【００８３】
便宜上、図４が示す例は、前記リードアクセスキューＲｑが、ＳＤＲＡＭ９における同一の前記バンク内の異なる前記ページをアクセス先とする連続する２つの前記リードアクセス要求の間の全てが区分位置である場合の例である。
【００８４】
同様に、図４が示す例は、前記ライトアクセスキューＷｑが、ＳＤＲＡＭ９における同一の前記バンク内の異なる前記ページをアクセス先とする連続する２つの前記ライトアクセス要求の間の全てが区分位置である場合の例である。
【００８５】
そして、図３の第２タイムチャートＴｃ２が示すように、コマンド発行部６が、前記単位リードキューＲｕ１〜Ｒｕ６に対応するコマンドと前記単位ライトキューＷｕ１〜Ｗｕ３に対応するコマンドとを交互に発行する。その際、前記単位リードキューＲｕ１〜Ｒｕ６に対応するコマンドの発行順序は、前記サンプル要求トランザクション内での前記リードアクセス要求Ｒ１〜Ｒ６の順序に従った順序である。
【００８６】
なお、便宜上、図３の第２タイムチャートＴｃ２が示す例では、前記単位ライトキューＷｕ１〜Ｗｕ３に対応するコマンドの発行順序も、前記サンプル要求トランザクション内での前記ライトアクセス要求Ｗ１〜Ｗ３の順序に従った順序になっている。
【００８７】
前記サンプル要求トランザクションが処理される場合、前記アクセス切替オーバーヘッド（Ｘ２，Ｘ３，Ｘ５，Ｘ６，Ｘ７，Ｘ８）は必ず生じるオーバーヘッドである。
【００８８】
そして、メモリーアクセス装置１０においては、前記リードアクセスキューＲｑが、前記バンク競合オーバーヘッド（Ｘ１，Ｘ４）が生じる前記アクセス要求の間の位置で前記単位リードキューＲｕ１〜Ｒｕ６に区分される。
【００８９】
さらに、メモリーアクセス装置１０においては、前記単位リードキューＲｕ１〜Ｒｕ６と前記単位ライトキューＷｕ１〜Ｗｕ３とが交互に発行される。そのため、前記バンク競合オーバーヘッド（Ｘ１，Ｘ４）が、前記アクセス切替オーバーヘッド（Ｘ２，Ｘ３，Ｘ５，Ｘ６，Ｘ７，Ｘ８）の一部と重なる。
【００９０】
図３の第２タイムチャートＴｃ２が示す例では、第１オーバーヘッドＸ１が第２オーバーヘッドＸ２と重なり、第４オーバーヘッドＸ４が第７オーバーヘッドＸ７と重なっている。そのため、前記バンク競合オーバーヘッドにおける前記アクセス切替オーバーヘッドと重なる部分が隠蔽される。その結果、ＳＤＲＡＭ９へのアクセス効率が向上する。
【００９１】
ここで、第１リードアクセス要求Ｒ１に対応するコマンドが前記直近リードアクセスコマンドである場合に、コマンド発行部６の単位ライトキュー選択部６２が次の前記単位ライトキューを選択する状況の例について説明する。この状況において、単位ライトキュー選択部６２が、前記キャッシュコヒーレンシの維持を制約条件として、前述したようにオーバーヘッド時間の比較に基づく前記選択ルールに従って前記単位ライトキュー（Ｗｕ１）を選択することが考えられる。
【００９２】
前記選択ルールに従って前記単位ライトキュー（Ｗｕ１）が選択されれば、前記アクセス切替オーバーヘッド（Ｘ２）と重なる時間が最も長い前記バンク競合オーバーヘッド（Ｘ１）が選択される。その結果、前記バンク競合オーバーヘッドの隠蔽時間がより長くなり、ＳＤＲＡＭ９へのアクセス効率がより向上する。
【００９３】
また、前記アクセス要求トランザクション内の前記リードアクセス要求各々に対応する前記リードアクセスコマンドは、メモリーアクセス装置１０に入力される順序に従った順序で、即ち、前後関係が変更されることなく発行される。この場合、本来の順序の前記リードデータの列が、リードデータバッファー７２に記録される。
【００９４】
従って、メモリーアクセス装置１０が採用されれば、ＳＤＲＡＭ９に対するリードアクセスの要求順序と前記リードデータの出力順序との整合性が求められる場合でも、前記リードデータの並べ替えは不要である。その結果、前記リードデータの並べ替えのためにリードデータバッファー７２などのリソースを追加する必要がない。さらに、前記リードデータの並べ替えに伴う前記レイテンシの増大が生じることもない。
【００９５】
また、前記単位リードキューおよび前記単位ライトキューが、前記バンク競合オーバーヘッドが予め定められた許容範囲に収まる１つ以上の前記アクセス要求ごとに区分されれば、前記アクセス切替オーバーヘッドの発生回数を抑制することができる。
【００９６】
［第２実施形態］
次に、図５を参照しつつ、本発明の第２実施形態に係るメモリーアクセス装置１０Ａについて説明する。図５はメモリーアクセス装置１０Ａの概略構成を示すブロック図である。図５において、図１〜４に示される構成要素と同じ構成要素は、同じ参照符号が付されている。
【００９７】
メモリーアクセス装置１０Ａは、図２が示すメモリーアクセス装置１０と比較して、一部の構成要素が追加された構成を有している。以下、メモリーアクセス装置１０Ａにおけるメモリーアクセス装置１０と異なる点について説明する。
【００９８】
メモリーアクセス装置１０Ａは、メモリーアクセス装置１０の構成に優先度判定部８が追加された構成を備える。さらに、メモリーアクセス装置１０Ａは、複数の第１キューイングバッファー３および複数の第２キューイングバッファー４を備える。図５が示す例では、アクセス要求分別部２が優先度判定部８を含む。
【００９９】
本実施形態において、要求トランザクション入力部１に入力される前記要求トランザクションは、優先度の情報を含む。前記優先度の情報は、例えば、前記マスターによって前記要求トランザクションに含められた情報である。また、優先度判定部８が、前記マスター各々と前記優先度との対応関係の情報を予め記憶していることも考えられる。この場合、前記優先度の情報は、前記要求トランザクションの要求元の前記マスターを識別する情報である。
【０１００】
また、第１キューイングバッファー３および第２キューイングバッファー４は、前記優先度の候補ごとに設けられている。例えば、前記優先度の候補が、第１優先度およびそれより優先度合の低い第２優先度の２種類である場合、メモリーアクセス装置１０は、２つの第１キューイングバッファー３および２つの第２キューイングバッファー４を備える。図５が示す例は、第１キューイングバッファー３および第２キューイングバッファー４が２つずつ設けられた例である。
【０１０１】
優先度判定部８は、入力される前記要求トランザクションに含まれる前記優先度の情報を参照することによって前記要求トランザクションごとの前記優先度を判定する。
【０１０２】
そして、アクセス要求分別部２は、優先度判定部８により判定される前記優先度が同じ前記アクセス要求トランザクションごとに前記リードアクセスキューと前記ライトアクセスキューとの分別を行う。
【０１０３】
また、第１キューイングバッファー３各々は、前記優先度が同じ前記アクセス要求トランザクションについて分別された前記リードアクセスキューのみを一時記憶する。同様に、第２キューイングバッファー４各々は、前記優先度が同じ前記アクセス要求トランザクションについて分別された前記ライトアクセスキューのみを一時記憶する。
【０１０４】
即ち、メモリーアクセス装置１０Ａは、前記優先度が同じ前記アクセス要求トランザクションごとに、前記リードアクセスキューを記憶する複数の前記第１キューイングバッファー３および前記ライトアクセスキューを記憶する複数の前記第２キューイングバッファー４を備える。
【０１０５】
メモリーアクセス装置１０Ａにおいて、リードキュー区分部５１およびライトキュー区分部５２は、前記優先度ごとに前記単位リードキューの区分および前記単位ライトキューの区分を行う。同様に、コマンド発行部６は、前記優先度の高いものから順に前記単位リードキューおよび前記単位ライトキューの選択およびコマンド発行の処理を行う。
【０１０６】
メモリーアクセス装置１０Ａが採用されれば、前記要求トランザクションごとに前記リートアクセスコマンドの発行順序が本来の前後関係に維持されつつ、前記優先度の高い前記アクセス要求トランザクションから順に処理される。
【０１０７】
従って、前記優先度の異なる前記要求トランザクションが混在して入力される場合でも、前記リソースの追加および前記レイテンシの増大を回避しつつ、前記要求トランザクションごとに前記リードアクセスの要求順序と前記リードデータの出力順序との整合性を確保することができる。
【０１０８】
＜応用例＞
メモリーアクセス装置１０，１０Ａが、例えば携帯情報端末などの画像処理装置１００以外の情報処理装置に適用されることも考えられる。
【０１０９】
なお、本発明に係るメモリーアクセス装置は、各請求項に記載された発明の範囲において、以上に示された実施形態および応用例を自由に組み合わせること、或いは実施形態および応用例を適宜、変形するまたは一部を省略することによって構成されることも可能である。
【符号の説明】
【０１１０】
１      ：要求トランザクション入力部
２      ：アクセス要求分別部
３      ：第１キューイングバッファー
４      ：第２キューイングバッファー
５      ：アクセスキュー区分部
６      ：コマンド発行部
７      ：メモリーアクセス部
８      ：優先度判定部
９      ：ＳＤＲＡＭ
１０，１０Ａ：メモリーアクセス装置
２０    ：スキャン部
３０    ：スキャン制御部
４０    ：プリント部
５０    ：プリント制御部
５１    ：リードキュー区分部
５２    ：ライトキュー区分部
６０    ：通信制御部
６１    ：単位リードキュー選択部
６２    ：単位ライトキュー選択部
６３    ：コマンド交互発行部
７０    ：画像処理部
７１    ：コマンド発行調整部
７２    ：リードデータバッファー
７３    ：データ出力部
７４    ：ライトデータバッファー
７５    ：データ入力部
８０    ：バス
１００  ：画像処理装置
Ｒ１〜Ｒ６：リードアクセス要求
Ｒｑ    ：リードアクセスキュー
Ｒｕ１〜Ｒｕ６：単位リードキュー
Ｔｃ１  ：第１タイムチャート
Ｔｃ２  ：第２タイムチャート
Ｗ１〜Ｗ３：ライトアクセス要求
Ｗｑ    ：ライトアクセスキュー
Ｗｕ１〜Ｗｕ３：単位ライトキュー
Ｘ１〜Ｘ７：オーバーヘッド
【図１】
2016085684.tif 000003
【図２】
2016085684.tif 000004
【図３】
2016085684.tif 000005
【図４】
2016085684.tif 000006
【図５】
2016085684.tif 000007