(58)【調査した分野】(Int.Cl.,DB名)
複数のバンクに区分されているとともに前記バンク各々が複数のページに区分されたデータ記憶領域を有するメモリーに対してアクセスコマンドを発行するメモリーアクセス装置であって、
複数のマスター各々から入力される前記メモリーに対するアクセス要求を一時記憶するキューイングバッファーと、
前記アクセス要求の要求元のデータバッファーにおけるデータのリード処理またはライト処理の余裕状況を示すバッファー余裕情報を前記要求元から取得するバッファー余裕情報取得部と、
前記バッファー余裕情報が取得されてからの経過時間に応じて前記バッファー余裕情報を更新する余裕情報更新部と、
前記要求元各々の前記バッファー余裕情報が予め定められた限界状態に至ったか否かを判定する限界判定部と、
前記キューイングバッファーに存在する前記アクセス要求の中からキャッシュコヒーレンシの維持を制約条件とする順番で1つずつ前記アクセス要求を選択する選択部と、
前記選択部により順次選択される前記アクセス要求に対応するアクセスコマンドを前記メモリーへ発行するコマンド発行部と、を備え、
前記選択部は、
前記キューイングバッファーにそれぞれ前記バッファー余裕情報に対応する複数の前記アクセス要求が存在する場合に、前記限界状態に至ったと判定された前記バッファー余裕情報に対応する第1アクセス要求を前記限界状態に至っていないと判定された前記バッファー余裕情報に対応する第2アクセス要求よりも優先して選択する第1選択部と、
前記キューイングバッファーに前記第1アクセス要求が存在せず、かつ、複数の前記第2アクセス要求が存在する場合に、直近に発行された前記アクセスコマンドとの間でバンク競合によるオーバーヘッドが生じない前記第2アクセス要求を前記バンク競合によるオーバーヘッドが生じる前記第2アクセス要求よりも優先して選択する第2選択部と、を含む、メモリーアクセス装置。
前記第1選択部は、前記キューイングバッファーに複数の前記第1アクセス要求が存在する場合に、前記バンク競合によるオーバーヘッドが生じない前記第1アクセス要求を前記バンク競合によるオーバーヘッドが生じる前記第1アクセス要求よりも優先して選択する、請求項1に記載のメモリーアクセス装置。
前記第2選択部は、前記キューイングバッファーに前記バンク競合によるオーバーヘッドが生じない前記第2アクセス要求が複数存在する場合に、前記限界状態により近い前記バッファー余裕情報に対応する前記第2アクセス要求を優先して選択する、請求項1または請求項2に記載のメモリーアクセス装置。
前記選択部は、前記キューイングバッファーに前記バッファー余裕情報取得部に対して前記バッファー余裕情報を提供した前記要求元からの前記アクセス要求と前記バッファー余裕情報を提供しなかった前記要求元からの前記アクセス要求とが存在する場合に、前記バッファー余裕情報を提供した前記要求元からの前記アクセス要求を前記バッファー余裕情報を提供しなかった前記要求元からの前記アクセス要求よりも優先して選択する、請求項1から請求項3のいずれか1項に記載のメモリーアクセス装置。
複数のバンクに区分されているとともに前記バンク各々が複数のページに区分されたデータ記憶領域を有するメモリーに対してアクセスコマンドを発行する際に、複数のマスター各々から入力される前記メモリーに対するアクセス要求を一時記憶するキューイングバッファーを参照し、前記アクセス要求に対応する前記アクセスコマンドを前記メモリーに発行する順序を制御するメモリーアクセス制御方法であって、
前記アクセス要求の要求元のデータバッファーにおけるデータのリード処理またはライト処理の余裕状況を示すバッファー余裕情報を前記要求元から取得する工程と、
前記バッファー余裕情報が取得されてからの経過時間に応じて前記バッファー余裕情報を更新する工程と、
前記要求元各々の前記バッファー余裕情報が予め定められた限界状態に至ったか否かを判定する工程と、
前記キューイングバッファーに存在する前記アクセス要求の中からキャッシュコヒーレンシの維持を制約条件とする順番で1つずつ前記アクセス要求を選択する工程と、
前記選択部により順次選択される前記アクセス要求に対応するアクセスコマンドを前記メモリーへ発行する工程と、を有し、
前記アクセス要求を選択する工程は、
前記キューイングバッファーに複数の前記アクセス要求が存在する場合に、前記限界状態に至ったと判定された前記バッファー余裕情報に対応する第1アクセス要求を前記限界状態に至っていないと判定された前記バッファー余裕情報に対応する第2アクセス要求よりも優先して選択する工程と、
前記キューイングバッファーに前記第1アクセス要求が存在せず、かつ、複数の前記第2アクセス要求が存在する場合に、直近に発行された前記アクセスコマンドとの間でバンク競合によるオーバーヘッドが生じない前記第2アクセス要求を前記バンク競合によるオーバーヘッドが生じる前記第2アクセス要求よりも優先して選択する工程と、を含む、メモリーアクセス制御方法。
【発明を実施するための形態】
【0014】
以下、添付図面を参照しながら、本発明の実施形態について説明する。なお、以下の実施形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格を有さない。
【0015】
[画像形成装置の構成]
まず、
図1を参照しつつ、本発明の実施形態に係るメモリーアクセス装置10を備える画像処理装置100の概略構成について説明する。画像処理装置100は、メモリーアクセス装置10の適用例の1つである。
【0016】
図1が示す画像処理装置100は、原稿から画像を読み取る画像読取装置の機能および記録シートへ画像を形成する画像形成装置の機能を兼ね備えた複合機である。なお、画像処理装置100が、前記画像形成装置、前記画像読取装置、前記画像形成装置および前記画像読取装置の機能を備える複写機または前記画像読取装置の機能および画像送信機能を備えるファクシミリ装置などであることも考えられる。
【0017】
画像処理装置100は、SDRAM9、メモリーアクセス装置10、スキャン部20、スキャン制御部30、プリント部40、プリント制御部50、通信制御部60および画像処理部70などを備える。メモリーアクセス装置10、スキャン制御部30、プリント制御部50、通信制御部60および画像処理部70は、それぞれバス80に接続されおり、バス80を通じて相互にデータの受け渡しが可能である。
【0018】
スキャン部20は、前記原稿に光を走査する不図示の光学系、および原稿からの反射光の光量を画素ごとに検出して原稿画像データを出力する不図示のイメージセンサーなどを備える。
【0019】
スキャン制御部30は、スキャン部20を制御して前記原稿画像データを取得する。さらに、スキャン制御部30は、メモリーアクセス装置10を通じて前記原稿画像データをSDRAM9に書き込む処理なども実行する。例えば、スキャン制御部30は、SDRAM9を介して前記原稿画像データを画像処理部70、プリント制御部50または通信制御部60などの他の機器に引き渡す場合がある。
【0020】
プリント部40は、周知の電子写真方式の画像形成処理によって前記記録シートに画像を形成する。プリント部40は、不図示の像担持体およびその周辺機器を備え、前記像担持体から前記記録シートに現像剤の画像を転写するとともにその画像を前記記録シートに定着させる。
【0021】
プリント制御部50は、プリント部40を制御する。プリント制御部50は、他の機器から記録用画像データを取得し、その記録用画像データ基づく画像を前記記録シートに形成する処理をプリント部40に実行させる。
【0022】
通信制御部60は、パーソナルコンピューターなどの外部装置との間でデータの送受信を行うとともに、バス80を通じて他の機器とデータの受け渡しを行う。例えば、通信制御部60は、前記外部機器から画像データを受信し、その画像データを前記記録用画像データとして前記プリント制御部50に引き渡す。
【0023】
また、通信制御部60は、スキャン制御部30から前記原稿画像データを取得し、その原稿画像データを含むデータを前記外部装置へ送信する。
【0024】
画像処理部70は、バス80を通じて他の機器から得た画像データに対する画像処理を実行する。画像処理部70による画像処理の対象は、例えば、スキャン制御部30から前記通信制御部60を通じて前記外部装置へ送信される画像データまたは前記スキャン制御部30から前記プリント制御部50へ引き渡される前記原稿画像データなどである。例えば、画像処理部70は、他の機器から得た前記画像データに対し、画像回転処理、ハーフトーン処理またはサイズカット処理などの画像処理を施す。
【0025】
SDRAM9は、高速でデータの書き込みおよび読み出しが可能なメモリーである。SDRAM9は、バス80に接続された機器から発行されるアクセスコマンドの内容に従ってそのデータ領域へのデータの記録および前記データ領域に記録されているデータの出力を行う。
【0026】
SDRAM9の前記データ記憶領域は、複数のバンクに区分されており、前記バンク各々が複数のページに区分されている。SDRAM9は、メモリーアクセス装置10によって前記ページ単位で活性化され、活性化された前記ページがアクセス可能になる。
【0027】
SDRAM9において、1つの前記バンク内の前記ページと他の前記バンク内の前記ページとを独立して活性化することが可能である。そのため、異なる前記バンクへのアクセスが続く場合、大きなオーバーヘッドが生じず、連続して高速なアクセスが可能である。
【0028】
一方、1つの前記バンク内における異なる前記ページへのアクセスが続く場合、バンク競合による比較的大きなオーバーヘッドが生じる。以下、前記バンク競合によるオーバーヘッドのことをバンク競合オーバーヘッドと称する。
【0029】
例えば、同一の前記バンクにおける第1ページおよび第2ページ各々へのリードアクセスコマンドが連続して発行される場合を考える。この場合、先に活性化された前記第1ページのクローズ処理が終了した後に前記第2ページを活性化するステップが必要である。このステップにおいて、前記第1ページの前記クローズ処理に要する時間が比較的長いため、前記第2ページの活性化コマンドの発行までの待ち時間が、前記バンク競合オーバーヘッドとなる。
【0030】
本実施形態では、主としてメモリーアクセス装置10がSDRAM9に対して前記アクセスコマンドを発行する。この場合、スキャン制御部30、プリント制御部50、通信制御部60および画像処理部70の各々が、バス80を通じてメモリーアクセス装置10に向けてSDRAM9へのアクセス要求の列を含むアクセス要求トランザクションを出力する。
【0031】
一般に、メモリーアクセス装置10は、DMAC(Direct Memory Access Controller)などと称される。前記アクセス要求の1つはリードアクセス要求であり、これに対応する前記アクセスコマンドはリードアクセスコマンドである。前記アクセス要求の他の1つはライトアクセス要求であり、これに対応する前記アクセスコマンドはライトアクセスコマンドである。
【0032】
以下の説明において、メモリーアクセス装置10に対して前記アクセス要求トランザクションを出力する機器のことを、メモリーアクセス装置10に対してマスターと称する。本実施形態における前記マスターは、スキャン制御部30、プリント制御部50、通信制御部60および画像処理部70の各々である。なお、前記マスターがクライアントと称される場合もある。
【0033】
前記マスター各々は、リードデータバッファー81およびライトデータバッファー82を備える。リードデータバッファー81は、前記マスターがメモリーアクセス装置10に対して出力する前記リードアクセス要求に対応するリードデータを記憶するバッファーである。ライトデータバッファー82は、前記マスターがメモリーアクセス装置10に対して出力する前記ライトアクセス要求に対応するライトデータを記憶するバッファーである。
【0034】
図1が示す例では、スキャン制御部30が第1リードデータバッファー81aおよび第1ライトデータバッファー82aを備える。同様に、プリント制御部50が第2リードデータバッファー81bおよび第2ライトデータバッファー82bを備える。同様に、画像処理部70が第3リードデータバッファー81cおよび第3ライトデータバッファー82cを備える。同様に、通信制御部60が第4リードデータバッファー81dおよび第4ライトデータバッファー82dを備える。
【0035】
前記リードデータは、前記マスターが前記リードアクセス要求を出力したときにSDRAM9からバス80を通じてリードデータバッファー81へ転送される。さらに、前記リードデータは、前記マスターによって読み出されることによりリードデータバッファー81から消去される。
【0036】
前記ライトデータは、前記マスターが前記ライトアクセス要求を出力する際に前記マスターによってライトデータバッファー82へ格納される。さらに、前記ライトデータは、ライトデータバッファー82からバス80を通じてSDRAM9へ転送されることによってライトデータバッファー82から消去される。
【0037】
前記リードアクセス要求を出力した前記マスターにおいて、リードデータバッファー81における前記リードデータの残存量は、データのリード処理の余裕度を表す。即ち、リードデータバッファー81における前記リードデータの残存量が少ないほど前記ロード処理におけるアンダーフローが生じやすくなる。前記アンダーフローは、SDRAM9からリードデータバッファー81への前記リードデータの転送が間に合わずに前記マスターによる前記リード処理が継続できなくなる状態である。
【0038】
また、前記ライトアクセス要求を出力した前記マスターにおいて、ライトデータバッファー82の空き容量は、データのライト処理の余裕度を表す。即ち、ライトデータバッファー82の空き容量が少ないほど前記ライト処理におけるオーバーフローが生じやすくなる。前記オーバーフローは、ライトデータバッファー82からSDRAM9への前記ライトデータの転送が間に合わずに前記マスターによる前記ライト処理が継続できなくなる状態である。
【0039】
従って、リードデータバッファー81における前記リードデータの残量は、前記リード処理におけるデータ蓄積状況の余裕度を示す。即ち、リードデータバッファー81において、前記リードデータの残量が少ないほど前記リード処理におけるデータ蓄積状況の余裕度が小さい。
【0040】
また、ライトデータバッファー82の空き容量は、前記ライト処理におけるデータ蓄積状況の余裕度を示す。即ち、ライトデータバッファー82において、空き容量が少ないほど前記ライト処理におけるデータ蓄積状況の余裕度が小さい。
【0041】
メモリーアクセス装置10は、SDRAM9に対して前記アクセスコマンドを発行する装置である。メモリーアクセス装置10は、前記マスターから入力されるアクセス要求トランザクションに含まれるアクセス要求キューを前記オーバーヘッドが減少するように並べ替え、並べ替え後の順序で前記アクセスコマンドをSDRAM9へ発行する。前記アクセス要求キューは、SDRAM9に対する前記アクセス要求の列である。
【0042】
メモリーアクセス装置10は、データ転送レートを保証する必要がある前記アクセス要求トランザクションを受けた場合、それを他の前記アクセス要求トランザクションよりも優先して処理する必要がある。これにより、前記アンダーフローおよび前記オーバーフローの発生を防ぐことによるデータ転送レートの保証が可能になる。
【0043】
以下の説明において、前記アクセス要求トランザクションに含まれる前記アクセス要求各々のことを要求パケットと称する場合がある。さらに、データ転送レートを保証する必要がある前記アクセス要求トランザクションにおける前記要求パケットのことを保証パケットと称する場合がある。
【0044】
メモリーアクセス装置10は、複数の前記保証パケットを受け取った場合にも、SDRAM9に対するアクセス権の調停を行い、全ての前記保証パケットについてその要求元における前記アンダーフローおよび前記オーバーフローの発生を防ぐことが求められる。
【0045】
例えば、前記マスターにおけるリードデータバッファー81およびライトデータバッファー82のデータ蓄積状況に基づいてSDRAM9に対するアクセス権の調停を行うことが知られている。
【0046】
ところで、メモリーアクセス装置10において、リードデータバッファー81およびライトデータバッファー82における前記余裕度がより小さい前記マスターからの前記保証パケット(アクセス要求)がより優先的に処理される場合、SDRAM9の総帯域が低下してしまう場合がある。即ち、優先される前記保証パケットの処理において比較的大きな前記バンク競合オーバーヘッドが生じ、これがSDRAM9の総帯域を低下させるおそれがある。
【0047】
一方、メモリーアクセス装置10は、SDRAM9へのアクセスにおいて、後述するアクセス調停処理を実行することによって前記バンク競合オーバーヘッドを隠蔽することができる。これにより、メモリーアクセス装置10は、前記バンク競合のオーバーヘッドが発生することによるSDRAM9の総帯域の低下を抑制しつつ、データ転送レートを保証する必要がある前記保証パケットを優先的に処理できる。
【0048】
[メモリーアクセス装置]
次に、
図2,3を参照しつつ、メモリーアクセス装置10について説明する。メモリーアクセス装置10は、要求トランザクション入力部1と、アクセス要求分割部2と、複数のキューイングバッファー3と、アクセス要求選択部4と、コマンド発行部5とを備える。
【0049】
キューイングバッファー3各々は、パケット記憶部31と、余裕情報記憶部32と、余裕情報更新部33と、限界判定部34と、滞留時間計時部35とを含む。
【0050】
メモリーアクセス装置10は、例えばASIC(Application Specific Integrated Circuit)またはDSP(digital Signal Processor)などによって構成されている。
【0051】
要求トランザクション入力部1は、SDRAM9への前記アクセス要求の列を含むアクセス要求トランザクションを前記マスターから取得する処理を実行する。前記アクセス要求トランザクションは、バス80を通じて前記マスターから要求トランザクション入力部1へ入力される。
【0052】
前記アクセス要求トランザクションは、SDRAM9に対して前記データ記憶領域に記憶されているデータを読み出す処理を要求する前記リードアクセス要求と、SDRAM9に対して前記データ記憶領域にデータを記録する処理を要求する前記ライトアクセスとを含む。前記リードアクセス要求および前記ライトアクセス要求は、その要求の種類の情報と、前記データ記憶領域におけるアドレスを指定する行アドレス情報および列アドレス情報とを含む。
【0053】
さらに、要求トランザクション入力部1は、データ転送レートを保証する必要がある前記アクセス要求である前記保証パケットの要求元からバッファー余裕情報を取得する。従って、前記アクセス要求トランザクションにおける複数の前記要求パケットのうち、対応する前記バッファー余裕情報が存在するものが前記保証パケットであり、そうでないものは前記保証パケットではない。
【0054】
前記リードアクセス要求の前記バッファー余裕情報は、前記要求元におけるリードデータバッファー81の前記リードデータの残量の情報である。前記ライトアクセス要求の前記バッファー余裕情報は、前記要求元におけるライトデータバッファー82の空き容量の情報である。
【0055】
即ち、要求トランザクション入力部1は、前記アクセス要求の要求元のデータバッファーにおけるデータのリード処理またはライト処理の余裕状況を示す前記バッファー余裕情報を前記要求元から取得する工程を実行する。なお、要求トランザクション入力部1はバッファー余裕情報取得部の一例である。
【0056】
メモリーアクセス装置10は、前記保証パケットを出力する可能性がある前記マスターとサイドバンド信号線800で接続されている。以下の説明において、前記保証パケットを出力する前記マスターのことを保証要求マスターと称する。前記保証要求マスターは、メモリーアクセス装置10に対して前記バッファー余裕情報を提供した前記マスターである。
【0057】
要求トランザクション入力部1は、前記保証要求マスターからサイドバンド信号線800を通じて前記バッファー余裕情報を取得する。サイドバンド信号線800を通じて前記保証要求マスターからメモリーアクセス装置10へ伝送される前記バッファー余裕情報は、そのバッファー余裕情報に対応する前記アクセス要求が前記保証パケットであることを通知する情報でもある。
【0058】
従って、メモリーアクセス装置10は、キューイングバッファー3に存在する前記要求パケット(前記アクセス要求)のうち、余裕情報記憶部32内に対応する前記バッファー余裕情報が存在するものを前記保証パケットであると判定し、それ以外のものを前記保証パケットではないと判定する。以下の説明において、前記保証パケットではない前記アクセス要求(前記要求パケット)のことを通常パケットと称する。
【0059】
前記通常パケットの出力元は、メモリーアクセス装置10に対して前記バッファー余裕情報を提供しなかった前記アクセス要求の要求元である。以下、前記バッファー余裕情報を提供しなかった前記アクセス要求の要求元のことを通常要求マスターと称する。
【0060】
アクセス要求分割部2は、前記マスターから入力される前記アクセス要求トランザクションを前記要求パケットごとに分割してキューイングバッファー3のパケット記憶部31に格納する。さらに、アクセス要求分割部2は、前記保証パケットに対応する前記バッファー余裕情報を前記保証パケットの格納先であるキューイングバッファー3の余裕情報記憶部32に格納する。
【0061】
キューイングバッファー3のパケット記憶部31は、前記マスター各々から入力される前記アクセス要求トランザクションにおける前記要求パケット(前記アクセス要求)各々を一時記憶する。キューイングバッファー3の余裕情報記憶部32は、パケット記憶部31内の前記要求パケットに対応する前記バッファー余裕情報を一時記憶する。
【0062】
キューイングバッファー3の余裕情報更新部33は、余裕情報記憶部32内の前記バッファー余裕情報を、前記バッファー余裕情報が取得されてからの経過時間に応じて更新する工程を実行する。前記保証要求マスターから得られる前記バッファー余裕情報は、それを取得した時点における前記保証要求マスターの状況を示す情報である。前記保証要求マスターの状況は、リードデータバッファー81およびライトデータバッファー82へのアクセス処理が進行することにより時間の経過とともに変化する。
【0063】
例えば、余裕情報更新部33は、予め定められた周期で前記バッファー余裕情報の値を予め定められた単位減算値ずつ減算することによって前記バッファー余裕情報を更新する。前記単位減算値は、前記周期の期間における前記リード処理または前記ライト処理の進行に伴う前記リードデータバッファー81または前記ライトデータバッファー82の蓄積データの変化量に相当する。
【0064】
なお、余裕情報更新部33が、最新の前記バッファー余裕情報を前記保証要求マスターから随時取得し、前記余裕情報記憶部32の情報を取得した前記バッファー余裕情報に更新することも考えられる。
【0065】
限界判定部34は、余裕情報記憶部32に記憶されている最新の前記バッファー余裕情報が予め定められた限界状態に至ったか否かを判定する工程を実行する。限界判定部34は、最新の前記バッファー余裕情報が前記限界状態に至ったと判定した場合、その判定結果をアクセス要求選択部4へ通知する。
【0066】
前記限界状態は、前記保証要求マスターにおいて前記アンダーフローおよび前記オーバーフローを引き起こさないためにパケット記憶部31内の前記保証パケットに対応する前記アクセスコマンドをSDRAM9へ発行すべきタイミングの限界が来ている状態を意味する。但し、前記限界状態と判定されるタイミングは、真の限界のタイミングに対して若干の余裕が見込まれたタイミングである。
【0067】
従って、パケット記憶部31内の前記保証パケットに対応する前記アクセスコマンドの発行が、少なくとも前記バッファー余裕情報が前記限界状態であると判定された時点またはその時点から若干の余裕時間内に行われれば、前記保証要求マスターにおけるデータ転送レートが保証される。
【0068】
滞留時間計時部35は、パケット記憶部31における前記要求パケットの滞留時間を計時する。前記滞留時間は、前記要求パケットがメモリーアクセス装置10に入力されてからの経過時間でもある
【0069】
さらに、滞留時間計時部35は、前記限界状態であると判定された前記バッファー余裕情報に対応する前記保証パケットがパケット記憶部31に残留している場合に、前記限界状態の判定結果が得られてからの経過時間も計時する。以下、この計時時間のことを限界後滞留時間と称する。
【0070】
前記滞留時間および前記限界後滞留時間は、滞留時間計時部35からアクセス要求選択部4へ通知される。
【0071】
アクセス要求選択部4は、キューイングバッファー3各々に存在する前記要求パケット(前記アクセス要求)の中からキャッシュコヒーレンシの維持を制約条件とする予め定められた選択ルールに従った順番で1つずつ前記要求パケットを選択するパケット選択工程を実行する。
【0072】
即ち、アクセス要求選択部4は、SDRAM9に対して前記アクセスコマンドを発行する際に、キューイングバッファー3を参照し、前記要求パケット(前記アクセス要求)に対応する前記アクセスコマンドをSDRAM9に発行する順序を制御する。
【0073】
前記制約条件は、SDRAM9の前記データ記憶領域における同一アドレスをアクセス対象とする前記要求パケットが存在する場合に、前記要求トランザクションにおけるそれらの前後の関係を維持した順番で前記要求パケットを選択することである。前記パケット選択工程の詳細については後述する。
【0074】
コマンド発行部5は、アクセス要求選択部4により順次選択される前記要求パケットに対応する前記アクセスコマンドをSDRAM9へ発行するコマンド発行工程を実行する。以下の説明において、最後に発行された前記要求パケットに対応する前記アクセスコマンドのことを直近発行コマンドと称する。
【0075】
さらに、コマンド発行部5は、前記要求コマンドに対応する前記リードアクセスコマンドおよび前記ライトアクセスコマンドの一方に付随して必要な活性化コマンドおよびプリチャージコマンドもSDRAM9に発行する。
【0076】
より具体的には、コマンド発行部5は、前記行アドレス情報を含む前記活性化コマンドを発行した後に、前記列アドレス情報を含む前記リードアクセスコマンドまたは前記ライトアクセスコマンドを発行し、さらに前記プリチャージコマンドを発行する。コマンド発行部5は、SDRAM9の仕様によって予め定められたタイミングで各コマンドを発行する。
【0077】
コマンド発行部5によって発行された前記アクセスコマンドに対応する前記要求パケット、即ち、アクセス要求選択部4がコマンド発行用に選択した前記要求パケットは、キューイングバッファー3から消去される。
【0078】
[アクセスコマンド発行順序の具体例]
続いて、
図3を参照しつつ、前記アクセス要求トランザクションにおける各アクセス要求に対応するコマンドの発行順序の具体例について説明する。
図3は、メモリーアクセス装置10におけるSDRAM9への前記アクセスコマンドの発行手順の一例を示すフローチャートである。より具体的には、
図3は、アクセス要求選択部4がキューイングバッファー3に存在する複数の前記要求コマンドから前記アクセスコマンドの発行の対象を選択するルールの一例を示す。
【0079】
以下の説明において、S1,S2,・・・は、アクセス要求選択部4またはコマンド発行部5が実行する各工程の識別符号を表す。
【0080】
<工程S1>
まず、アクセス要求選択部4は、複数のキューイングバッファー3に存在する複数の前記要求パケットについてコヒーレンシを維持するという前記制約条件を満たすために必要なコマンド発行順序の制約状況を判定する。そして、アクセス要求選択部4は、次のコマンド発行の対象とするとコヒーレンシが維持されなくなる前記要求パケット(前記アクセス要求)を、以下に示される工程S2〜S9における判定処理および選択処理の対象から除外する。
【0081】
<工程S2>
さらに、アクセス要求選択部4は、複数のキューイングバッファー3のいずれに前記保証パケットが存在するかを判定する。例えば、アクセス要求選択部4は、本工程において、前記保証パケットを記憶するキューイングバッファー3の識別情報のリストと、前記通常パケットを記憶するキューイングバッファー3の識別情報のリストとを作成する。
【0082】
そして、アクセス要求選択部4は、複数のキューイングバッファー3のいずれかに前記保証パケットが存在する場合に、実行する処理を後述する工程S3〜S9へ移行させる。一方、前記保証パケットが存在しない場合、アクセス要求選択部4は、実行する処理を後述する工程S10〜S12へ移行させる。
【0083】
工程S3〜S9の処理は、前記保証要求マスターからの前記要求パケット(前記保証パケット)をコマンド発行の対象として選択する処理である。一方、工程S10〜S12の処理は、前記通常要求マスターからの前記要求パケット(前記通常パケット)をコマンド発行の対象として選択する処理である。
【0084】
従って、アクセス要求選択部4が実行する工程S2〜S9は、前記保証要求マスターからの前記要求パケットを前記通常要求マスターからの前記要求パケットよりも優先して選択する工程の一例である。
【0085】
<工程S3>
前記保証パケットが存在する場合、アクセス要求選択部4は、複数のキューイングバッファー3に前記バッファー余裕情報が前記限界状態に至ったと判定された前記保証パケットが存在するか否かを判定する。以下の説明において、前記限界状態であると判定された前記バッファー余裕情報に対応する前記保証パケットのことを限界パケットと称する。
【0086】
そして、アクセス要求選択部4は、複数のキューイングバッファー3のいずれかに前記限界パケットが存在する場合に、実行する処理を後述する工程S4〜S6へ移行させる。一方、前記限界パケットが存在しない場合、アクセス要求選択部4は、実行する処理を後述する工程S7〜S9へ移行させる。
【0087】
工程S4〜S6の処理は、前記限界パケットをコマンド発行の対象として選択する処理である。一方、工程S7〜S9の処理は、前記限界パケット以外の前記保証パケットをコマンド発行の対象として選択する処理である。
【0088】
従って、工程S3〜S9は、キューイングバッファー3に複数の前記要求パケットが存在する場合に、前記限界パケットを前記限界パケット以外の前記保証パケットよりも優先して選択する処理である。
【0089】
工程S3〜S9を実行するアクセス要求選択部4は、キューイングバッファー3に複数の前記保証パケットが存在する場合に、前記限界状態に至ったと判定された前記バッファー余裕情報に対応する前記限界パケット(第1アクセス要求)をその他の前記保証パケット(第2アクセス要求)よりも優先して選択する(第1選択部の一例)。
【0090】
<工程S4>
前記限界パケットが存在する場合、アクセス要求選択部4は、キューイングバッファー3に前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じない前記限界パケットが存在するか否かを判定する。前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じない前記限界パケットのことを非競合限界パケットと称する。また、前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じる前記限界パケットのことを競合限界パケットと称する。
【0091】
<工程S5>
前記非競合限界パケットが存在する場合、アクセス要求選択部4は、前記非競合限界パケットをコマンド発行対象として選択する。これに応じて、コマンド発行部5が、選択された前記非競合限界パケットに対応する前記アクセスコマンドをSDRAM9へ発行する。その後、処理が工程S1へ移行される。
【0092】
工程S5において、複数の前記非競合限界パケットが存在する場合、アクセス要求選択部4は、予め定められた非競合限界パケット選択ルールに従って、前記非競合限界パケットを1つずつ選択する。例えば、前記非競合限界パケット選択ルールは、複数の前記非競合限界パケットの中から前記限界後滞留時間がより長いもの先に選択するというルールであることが考えられる。
【0093】
<工程S6>
前記限界パケットが存在し、かつ、前記非競合限界パケットが存在しない場合、即ち、存在する前記限界パケットの全てが前記競合限界パケットである場合、アクセス要求選択部4は、前記競合限界パケットをコマンド発行対象として選択する。これに応じて、コマンド発行部5が、選択された前記競合限界パケットに対応する前記アクセスコマンドをSDRAM9へ発行する。その後、処理が工程S1へ移行される。
【0094】
工程S6において、複数の前記競合限界パケットが存在する場合、アクセス要求選択部4は、予め定められた競合限界パケット選択ルールに従って、前記競合限界パケットを1つずつ選択する。例えば、前記競合限界パケット選択ルールは、複数の前記競合限界パケットの中から前記限界後滞留時間がより長いもの先に選択するというルールであることが考えられる。
【0095】
工程S4〜S6を実行するアクセス要求選択部4は、キューイングバッファー3に複数の前記限界パケット(第1アクセス要求)が存在する場合に、前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じない前記限界パケットを前記バンク競合オーバーヘッドが生じる前記限界パケットよりも優先して選択する(第1選択部の一例)。
【0096】
<工程S7>
キューイングバッファー3に前記保証パケットが存在し、かつ、前記限界パケットが存在しない場合、アクセス要求選択部4は、キューイングバッファー3に前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じない前記保証パケットが存在するか否かを判定する。前記限界パケット以外の前記保証パケットのうち、前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じないものを非競合保証パケットと称し、その他の前記保証パケットのことを競合保証パケットと称する。
【0097】
<工程S8>
前記非競合保証パケットが存在する場合、アクセス要求選択部4は、前記非競合保証パケットをコマンド発行対象として選択する。これに応じて、コマンド発行部5が、選択された前記非競合保証パケットに対応する前記アクセスコマンドをSDRAM9へ発行する。その後、処理が工程S1へ移行される。
【0098】
工程S8において、複数の前記非競合保証パケットが存在する場合、アクセス要求選択部4は、予め定められた非競合保証パケット選択ルールに従って、前記非競合保証パケットを1つずつ選択する。例えば、前記非競合保証パケット選択ルールは、複数の前記非競合保証パケットの中から前記限界状態により近い前記バッファー余裕情報に対応する前記非競合保証パケットを優先して選択するというルールであることが考えられる。
【0099】
<工程S9>
前記保証パケットが存在し、かつ、前記限界パケットが存在せず、かつ、前記非競合保証パケットが存在しない場合、即ち、存在する前記保証パケットの全てが前記競合保証パケットである場合、アクセス要求選択部4は、前記競合保証パケットをコマンド発行対象として選択する。これに応じて、コマンド発行部5が、選択された前記競合保証パケットに対応する前記アクセスコマンドをSDRAM9へ発行する。その後、処理が工程S1へ移行される。
【0100】
工程S9において、複数の前記競合保証パケットが存在する場合、アクセス要求選択部4は、予め定められた競合保証パケット選択ルールに従って、前記競合保証パケットを1つずつ選択する。例えば、前記競合保証パケット選択ルールは、複数の前記競合保証パケットの中から前記限界状態により近い前記バッファー余裕情報に対応する前記競合保証パケットを優先して選択するというルールであることが考えられる。
【0101】
工程S7〜S9を実行するアクセス要求選択部4は、キューイングバッファー3に前記限界パケット(第1アクセス要求)が存在せず、かつ、複数の前記保証パケット(第2アクセス要求)が存在する場合に、前記直近発行マンドとの間で前記バンク競合オーバーヘッドが生じない前記保証パケットを前記バンク競合オーバーヘッドが生じる前記保証パケットよりも優先して選択する(第2選択部の一例)。
【0102】
前述の例示では、工程S8,S9を実行するアクセス要求選択部4は、キューイングバッファー3に前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じない前記限界パケット以外の前記保証パケット(第2アクセス要求)が複数存在する場合に、前記限界状態により近い前記バッファー余裕情報に対応する前記保証パケットを優先して選択する(第2選択部の一例)。
【0103】
<工程S10>
キューイングバッファー3に前記保証パケットが存在しない場合、即ち、キューイングバッファー3に存在する前記要求パケットの全てが前記通常パケットである場合、アクセス要求選択部4は、キューイングバッファー3に前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じない前記通常パケットが存在するか否かを判定する。前記通常パケットのうち、前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じないものを非競合通常パケットと称し、その他の前記通常パケットのことを競合通常パケットと称する。
【0104】
<工程S11>
前記非競合通常パケットが存在する場合、アクセス要求選択部4は、前記非競合通常パケットをコマンド発行対象として選択する。これに応じて、コマンド発行部5が、選択された前記非競合通常パケットに対応する前記アクセスコマンドをSDRAM9へ発行する。その後、処理が工程S1へ移行される。
【0105】
工程S11において、複数の前記非競合通常パケットが存在する場合、アクセス要求選択部4は、予め定められた非競合通常パケット選択ルールに従って、前記非競合通常パケットを1つずつ選択する。例えば、前記非競合通常パケット選択ルールは、複数の前記非競合通常パケットの中から前記滞留時間がより長いもの先に選択するというルールであることが考えられる。
【0106】
<工程S12>
前記保証パケットが存在せず、かつ、前記非競合通常パケットが存在しない場合、即ち、存在する前記通常パケットの全てが前記競合通常パケットである場合、アクセス要求選択部4は、前記競合通常パケットをコマンド発行対象として選択する。これに応じて、コマンド発行部5が、選択された前記競合保証パケットに対応する前記アクセスコマンドをSDRAM9へ発行する。その後、処理が工程S1へ移行される。
【0107】
工程S12において、複数の前記競合通常パケットが存在する場合、アクセス要求選択部4は、予め定められた競合通常パケット選択ルールに従って、前記競合通常パケットを1つずつ選択する。例えば、前記競合通常パケット選択ルールは、複数の前記競合通常パケットの中から前記滞留時間がより長いもの先に選択するというルールであることが考えられる。
【0108】
アクセス要求選択部4およびコマンド発行部5は、入力された前記アクセス要求トランザクションにおける全ての前記要求コマンドの選択および選択された前記要求コマンドに対応する前記アクセスコマンドの発行が終了するまで、工程S1からの処理を繰り返す。
【0109】
以上に示したように、本実施形態におけるアクセス要求選択部4およびコマンド発行部5は、キューイングバッファー3に複数の前記保証パケットが存在する場合に、前記限界パケットを他の前記保証パケットよりも優先して処理する(S3〜S6)。これにより、前記アンダーフローおよび前記オーバーフローの発生を防ぐことによるデータ転送レートの保証が可能になる。
【0110】
また、キューイングバッファー3に前記保証パケットと前記通常パケットとが存在する場合に、アクセス要求選択部4およびコマンド発行部5は、前記保証パケットを前記通常パケットよりも優先して処理する。従って、データ転送レートを保証する必要がある前記保証要求マスターからの前記アクセス要求が、それ以外の前記アクセス要求(前記通常パケット)の処理によって滞ることがない。
【0111】
さらに、アクセス要求選択部4およびコマンド発行部5は、キューイングバッファー3に前記限界パケットが存在せず、かつ、複数の前記保証パケットが存在する場合に、前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じない前記保証パケットを前記バンク競合オーバーヘッドが生じる前記保証パケットよりも優先して処理する(S7〜S9)。その結果、前記バンク競合オーバーヘッドの発生によるSDRAM9の総帯域の低下を抑制することができる。
【0112】
また、アクセス要求選択部4およびコマンド発行部5は、複数の前記限界パケットが存在する場合においても、前記直近発行コマンドとの間で前記バンク競合オーバーヘッドが生じない前記限界パケットを優先して処理する(S4〜S6)。これにより、前記バンク競合オーバーヘッドの発生によるSDRAM9の総帯域の低下を抑制する効果がより高まる。
【0113】
また、前述したように、前記限界パケット以外の前記保証パケットが複数存在する場合に、アクセス要求選択部4が、前記限界状態により近い前記バッファー余裕情報に対応する前記保証パケットを優先して選択することが考えられる(S8,S9)。これにより、前記アンダーフローおよび前記オーバーフローの発生をより確実に防ぐことができる。
【0114】
<応用例>
メモリーアクセス装置10において、余裕情報更新部33、限界判定部34および滞留時間計時部35のうちの一部または全部が、キューイングバッファー3とは別個に設けられることが考えられる。例えば、限界判定部34および滞留時間計時部35のうちの一部または全部が、アクセス要求選択部4に含まれることなどが考えられる。
【0115】
メモリーアクセス装置10において、キューイングバッファー3に前記限界パケットが存在せず、かつ、前記限界パケット以外の前記保証パケットおよび前記滞留時間が予め定められた上限を超えた前記通常パケットとが存在する場合が考えられる。この場合に、アクセス要求選択部4が、前記滞留時間が前記上限を超えた前記通常パケットを前記保証パケットよりも優先して選択することが考えられる。
図3に示される例では、そのような選択を行う工程は、処理が工程S3から工程S7へ移行する間に追加される。
【0116】
メモリーアクセス装置10が、例えば携帯情報端末などの画像処理装置100以外の情報処理装置に適用されることも考えられる。
【0117】
なお、本発明に係るメモリーアクセス装置およびメモリーアクセス制御方法は、各請求項に記載された発明の範囲において、以上に示された実施形態および応用例を自由に組み合わせること、或いは実施形態および応用例を適宜、変形するまたは一部を省略することによって構成されることも可能である。