(57)【特許請求の範囲】
【請求項１】
複数のバンク、及びページモード機能を有するＲＡＭを備える電子機器であって、
複数のマスターからの前記ＲＡＭへのアクセス要求を調停する調停部と、
前記ＲＡＭへのアクセス制御を行うメモリー制御部と、を備え、
前記調停部は、
複数のマスターからのアクセス要求を受け付ける受付手段と、
バンクアドレス及びロウアドレスを対応付けたマスク情報を記憶するマスク記憶手段と、
前記マスク記憶手段に記憶されたマスク情報のバンクアドレス及びロウアドレスと、受け付けたアクセス要求に含まれるバンクアドレス及びロウアドレスとを比較し、当該受け付けたアクセス要求によりページミスが発生するか否かを判定するマスク判定手段と、
ページミスが発生するアクセス要求については、前記メモリー制御部への出力を停止し、ページミスが発生しないアクセス要求については、前記メモリー制御部に出力するアクセス要求出力手段と、
前記アクセス要求出力手段により出力されたアクセス要求に含まれるバンクアドレス及びロウアドレスを、前記マスク情報として前記マスク記憶手段に記憶するマスク設定手段と、有し、
前記メモリー制御部は、
前記調停部からアクセス要求を受け付ける受付手段と、
前記受け付けたアクセス要求に従って前記ＲＡＭにアクセスするアクセス手段と、を有し、
前記電子機器は、マスターごとに、ページミスの判定を有効又は無効に設定可能であり、
前記アクセス要求にはマスターを識別する識別情報が含まれ、
前記マスク判定手段は、有効に設定されているマスターのアクセス要求について、判定を行い、無効に設定されているマスターのアクセス要求については、判定を行わない、
ことを特徴とする電子機器。
【請求項２】
複数のバンク、及びページモード機能を有するＲＡＭを備える電子機器であって、
複数のマスターからの前記ＲＡＭへのアクセス要求を調停する調停部と、
前記ＲＡＭへのアクセス制御を行うメモリー制御部と、を備え、
前記調停部は、
複数のマスターからのアクセス要求を受け付ける受付手段と、
バンクアドレス及びロウアドレスを対応付けたマスク情報を記憶するマスク記憶手段と、
前記マスク記憶手段に記憶されたマスク情報のバンクアドレス及びロウアドレスと、受け付けたアクセス要求に含まれるバンクアドレス及びロウアドレスとを比較し、当該受け付けたアクセス要求によりページミスが発生するか否かを判定するマスク判定手段と、
ページミスが発生するアクセス要求については、前記メモリー制御部への出力を停止し、ページミスが発生しないアクセス要求については、前記メモリー制御部に出力するアクセス要求出力手段と、
前記アクセス要求出力手段により出力されたアクセス要求に含まれるバンクアドレス及びロウアドレスを、前記マスク情報として前記マスク記憶手段に記憶するマスク設定手段と、有し、
前記メモリー制御部は、
前記調停部からアクセス要求を受け付ける受付手段と、
前記受け付けたアクセス要求に従って前記ＲＡＭにアクセスするアクセス手段と、を有し、
前記電子機器は、前記ＲＡＭを複数備え、
前記マスク判定手段による判定は、ＲＡＭごとに行われる、
ことを特徴とする電子機器。
【請求項３】
請求項１又は２に記載の電子機器であって、
前記メモリー制御部は、
各アクセス要求による前記ＲＡＭへのアクセスが終了する所定のタイミングを、当該アクセス要求に含まれるバンクアドレスとともに前記調停部に通知する通知手段を有し、
前記調停部は、
前記通知を受け付けて、当該通知に含まれるバンクアドレスと対応するバンクアドレスを含むマスク情報を、前記マスク記憶手段から削除するマスク解除手段を有し、
前記マスク判定手段は、受け付けた各アクセス要求について、ページミスが発生しないと判定するまで判定を行う、
ことを特徴とする電子機器。
【請求項４】
請求項３に記載の電子機器であって、
前記通知手段は、プリチャージコマンドを発行する又は発行したタイミングを、前記ＲＡＭへのアクセスが終了する所定のタイミングとして、通知する、
ことを特徴とする電子機器。
【請求項５】
請求項１〜４のいずれか一項に記載の電子機器であって、
前記マスク判定手段は、前記受け付けたアクセス要求に含まれるバンクアドレスが前記マスク記憶手段に記憶されたマスク情報のバンクアドレスと異なる場合、又は、前記受け付けたアクセス要求に含まれるバンクアドレス及びロウアドレスが前記マスク記憶手段に記憶されたマスク情報のバンクアドレス及びロウアドレスと同じである場合に、ページミスが発生しないと判定する、
ことを特徴とする電子機器。
【請求項６】
請求項１〜５のいずれか一項に記載の電子機器であって、
各マスターには、優先度が設定されており、
前記アクセス要求出力手段は、複数のマスターのアクセス要求が競合する場合、優先度の高いアクセス要求を先に出力し、
前記マスク判定手段は、優先度により出力が後になったアクセス要求について、ページミスが発生しないと判定するまで判定を行う、
ことを特徴とする電子機器。
【請求項７】
請求項１〜６のいずれか一項に記載の電子機器であって、
マスターは、スキャン画像データの読み込み処理、圧縮処理、色変換処理、外部装置からの画像データの読み込み処理の少なくとも一以上を含む機能単位である、
ことを特徴とする電子機器。
【請求項８】
請求項１〜７のいずれか一項に記載の電子機器であって、
前記電子機器は、画像処理装置である、
ことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置などの電子機器に関し、特に、電子機器におけるＤＲＡＭ（Dynamic Random Access Memory）などのＲＡＭに対するアクセス制御に関する。
【背景技術】
【０００２】
ＤＲＡＭに対するアクセスは、例えば、（１）バンクアドレスとロウアドレスとを指定してバンクを活性化させるアクティブコマンド処理、（２）カラムアドレスを指定してリード／ライトを指示するコマンド処理、（３）バンクを非活性にするプリチャージコマンド処理、の順番で行われる。
【０００３】
また、ＤＲＡＭには、複数のメモリーバンクを有するものがあり、上記の一連の手順は、各バンクに対して並列的（独立的に）に制御することができる（例えば、「マルチバンクアクセス」と呼ばれる。）。マルチバンクアクセス機能により、あるバンクを活性化している間にも、他のバンクを活性化させることが可能である。そして、ＤＲＡＭアクセス全体におけるデータ転送の比率（帯域）を向上させ、ＤＲＡＭアクセスのパフォーマンスを向上することができる（例えば、特許文献１）。
【０００４】
また、ＤＲＡＭの各バンクには、同一ロウアドレスで指定されるページ（記憶領域）が複数含まれる。バンクアドレスとロウアドレスが同じアクセス要求が前のアクセス要求に続いてされる場合には、プリチャージコマンド処理（３）を行わずに、異なるカラムアドレスにアクセスできる。この機能は、例えば、「ページモード」と呼ばれ、連続してアクセス可能な場合は、「ページヒット」と呼ばれる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２６８９４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ページモードにおいて、バンクアドレスが等しい場合でも、ロウアドレスが異なる場合（例えば、「ページミス（ページミスヒット）」と呼ばれる。）、プリチャージコマンド処理（３）と、アクティブコマンド処理（１）を実行しなくてはならない。その結果、レイテンシーが増加し、ＤＲＡＭアクセスの効率が低下し、電子機器の高いパフォーマンスが得られなくなる。
【０００７】
そこで、本発明は、ページミスを発生させるアクセス要求よりも他のアクセス要求を優先させて、レイテンシーを低減させる一手段を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するための本発明の一態様は、複数のバンク、及びページモード機能を有するＲＡＭを備える電子機器であって、複数のマスターからの前記ＲＡＭへのアクセス要求を調停する調停部と、前記ＲＡＭへのアクセス制御を行うメモリー制御部と、を備え、前記調停部は、複数のマスターからのアクセス要求を受け付ける受付手段と、バンクアドレス及びロウアドレスを対応付けたマスク情報を記憶するマスク記憶手段と、前記マスク記憶手段に記憶されたマスク情報のバンクアドレス及びロウアドレスと、受け付けたアクセス要求に含まれるバンクアドレス及びロウアドレスとを比較し、当該受け付けたアクセス要求によりページミスが発生するか否かを判定するマスク判定手段と、ページミスが発生するアクセス要求については、前記メモリー制御部への出力を停止し、ページミスが発生しないアクセス要求については、前記メモリー制御部に出力するアクセス要求出力手段と、前記アクセス要求出力手段により出力されたアクセス要求に含まれるバンクアドレス及びロウアドレスを、前記マスク情報として前記マスク記憶手段に記憶するマスク設定手段と、有し、前記メモリー制御部は、前記調停部からアクセス要求を受け付ける受付手段と、前記受け付けたアクセス要求に従って前記ＲＡＭにアクセスするアクセス手段と、を有する、ことを特徴とする。
【０００９】
ここで、前記メモリー制御部は、各アクセス要求による前記ＲＡＭへのアクセスが終了する所定のタイミングを、当該アクセス要求に含まれるバンクアドレスとともに前記調停部に通知する通知手段を有し、前記調停部は、前記通知を受け付けて、当該通知に含まれるバンクアドレスと対応するバンクアドレスを含むマスク情報を、前記マスク記憶手段から削除するマスク解除手段を有し、前記マスク判定手段は、受け付けた各アクセス要求について、ページミスが発生しないと判定するまで判定を行う、ことを特徴としていてもよい。
【００１０】
また、前記通知手段は、プリチャージコマンドを発行する又は発行したタイミングを、前記ＲＡＭへのアクセスが終了する所定のタイミングとして、通知する、ことを特徴としていてもよい。
【００１１】
また、前記マスク判定手段は、前記受け付けたアクセス要求に含まれるバンクアドレスが前記マスク記憶手段に記憶されたマスク情報のバンクアドレスと異なる場合、又は、前記受け付けたアクセス要求に含まれるバンクアドレス及びロウアドレスが前記マスク記憶手段に記憶されたマスク情報のバンクアドレス及びロウアドレスと同じである場合に、ページミスが発生しないと判定する、ことを特徴としていてもよい。
【００１２】
また、マスターごとに、ページミスの判定を有効又は無効に設定可能であり、前記アクセス要求にはマスターを識別する識別情報が含まれ、前記マスク判定手段は、有効に設定されているマスターのアクセス要求について、判定を行い、無効に設定されているマスターのアクセス要求については、判定を行わない、ことを特徴としていてもよい
【００１３】
また、各マスターには、優先度が設定されており、前記アクセス要求出力手段は、複数のマスターのアクセス要求が競合する場合、優先度の高いアクセス要求を先に出力し、前記マスク判定手段は、優先度により出力が後になったアクセス要求について、ページミスが発生しないと判定するまで判定を行う、ことを特徴としていてもよい。
【００１４】
また、前記ＲＡＭを複数備え、前記マスク判定手段による判定は、ＲＡＭごとに行われる、ことを特徴としていてもよい。
【００１５】
また、マスターは、スキャン画像データの読み込み処理、圧縮処理、色変換処理、外部装置からの画像データの読み込み処理の少なくとも一以上を含む機能単位である、ことを特徴としていてもよい。
【００１６】
また、前記電子機器は、画像処理装置である、ことを特徴としていてもよい。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態の一例に係る、画像処理装置のハードウェアの概略構成を示すブロック図である。
【図２】本発明の一実施形態の一例に係る、メモリー制御ＡＳＩＣのハードウェアの概略構成を示すブロック図である。
【図３】本発明の一実施形態の一例に係る、調停回路及びメモリーコントローラーの機能構成を示すブロック図である。
【図４】本発明の一実施形態の一例に係る、マスク制御テーブルの構成を説明する図である。
【図５】本発明の一実施形態の一例に係る、調停回路のリクエスト受付処理を示すフロー図である。
【図６】本発明の一実施形態の一例に係る、調停回路のマスク解除処理を示すフロー図である。
【図７】本発明の一実施形態の一例に係る、マスク機能オンの場合のリクエスト間の処理の関係を説明する図である。
【図８】本発明の一実施形態の一例に係る、マスク機能オンの場合のリクエスト間の処理の関係を説明するタイミングチャートである。
【図９】本発明の一実施形態の一例に係る、マスク機能オフのリクエスト間の処理の関係を説明するタイミングチャートである。
【発明を実施するための形態】
【００１８】
本発明の一実施形態の一例を、図面を参照して説明する。
【００１９】
図１は、本発明の一実施形態の一例に係る、画像処理装置のハードウェアの概略構成を示すブロック図である。
【００２０】
電子機器としての画像処理装置１００は、例えば、プリンター、コピー機、複合機、スキャナーなどの装置である。画像処理装置１００は、情報処理装置２００と接続される。
【００２１】
情報処理装置２００は、ＣＰＵと、ＲＡＭと、ＲＯＭと、ハードディスク等の補助記憶装置と、ディスプレイと、キーボードやマウス等の入力装置と、通信インターフェイスと、など（いずれも不図示）を備えた一般的なコンピューターで実現される。情報処理装置２００では、アプリケーションプログラムや、ドライバープログラム（例えば、プリンタードライバープログラム）が実行される。
【００２２】
画像処置装置１００は、画像処理装置１００における各種処理を制御する電子機器制御装置としてのコントローラー１１０と、印刷媒体への印刷や原稿の読み取りを実行するエンジン部１６０と、ユーザーとの入出力インターフェイスである操作パネル１７０とを備えている。
【００２３】
コントローラー１１０は、ＣＰＵ１２０と、メモリー制御ＡＳＩＣ（Application Specific Integrated Circuit）１３０と、ＳＤＲＡＭ（Synchronous DRAM）１４０と、Ｉ／Ｏ（Input / Output）制御ＡＳＩＣ１５０と、を備える。コントローラー１１０は、エンジン部１６０、操作パネル１７０等の各種機構を制御し、各種画像処理などを含む印刷機能、ファクシミリ機能、スキャナー機能、コピー機能などを実現する。ただし、コントローラー１１０は、この構成に限定されず、例えば、ＣＰＵ１２０をメモリー制御ＡＳＩＣ１３０に内蔵させてもよい。
【００２４】
ＣＰＵ１２０は、メモリー制御ＡＳＩＣ１３０を介してＳＤＲＡＭ１４０にアクセスし、各種データの読み書きを行うことで各種処理を実行する。ＣＰＵ１２０は、ＳＤＲＡＭ１４０にアクセスするためのアクセス要求（リクエスト）を、メモリー制御ＡＳＩＣ１３０に対して出す。
【００２５】
メモリー制御ＡＳＩＣ１３０は、ＣＰＵ１２０、Ｉ／Ｏ制御ＡＳＩＣ１５０、エンジン部１６０からのＳＤＲＡＭ１４０へのアクセスを制御する。メモリー制御ＡＳＩＣ１３０は、ＣＰＵ１２０を介さない、ＳＤＲＡＭ１４０へのダイレクトメモリーアクセス（Direct Memory Access）を制御するようにしてもよい。
【００２６】
ＳＤＲＡＭ１４０は、メモリー制御ＡＳＩＣ１３０が制御を行うメモリーである。ＳＤＲＡＭ１４０は、バンクを複数有し、マルチバンクアクセス機能を有する。各バンクには、同一ロウアドレスで指定されるページが複数含まれ、ＳＤＲＡＭ１４０は、ページモードで動作可能である。すなわち、同一バンクアドレス及びロウアドレスに対しては、プリチャージコマンド処理を行わずに、異なるカラムアドレスで連続的にアクセスすることができる。
【００２７】
Ｉ／Ｏ制御ＡＳＩＣ１５０は、外部機器（操作パネル１７０や、情報処理装置２００など）とのデータの送受信を制御する。なお、図示していないが、Ｉ／Ｏ制御ＡＳＩＣ１５０は、例えば、イーサネット（登録商標）やＵＳＢなどに準拠した通信インターフェイスと接続され、該通信インターフェイスを介して情報処理装置２００と通信を行う。
【００２８】
エンジン部１６０は、印刷機能、ファクシミリ機能、スキャナー機能、コピー機能等を実現するための給排紙機構、印字機構、スキャン機構等である。
【００２９】
操作パネル１７０は、ユーザーの操作を受け付けるためのユニットである。操作パネル１７０は、例えば、ＬＣＤなどのディスプレイと、ディスプレイの表示面側に設けられたタッチパネルを有する。操作パネル１７０は、ボタンキーなどの各種ハードスイッチを有していてもよい。
【００３０】
以上、画像処置装置１００のハードウェア構成について説明した。もちろん、この構成は、本願発明の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。また、一般的な画像処置装置１００が備える他の構成を排除するものではない。例えば、ＳＤＲＡＭ１４０と同等の機能を有するメモリーであれば、他のＲＡＭであってもよい。
【００３１】
図２は、本発明の一実施形態の一例に係る、メモリー制御ＡＳＩＣのハードウェアの概略構成を示すブロック図である。
【００３２】
メモリー制御ＡＳＩＣ１３０は、インターフェイス部１３１と、調停回路１３２と、メモリーコントローラー１３３とを備えている。
【００３３】
本図では、ＳＤＲＡＭ１４０へのアクセスを行う複数のマスター１〜Ｍを図示している。マスターとは、ＳＤＲＡＭ１４０にアクセスを行う所定の単位であり、ＣＰＵ１２０、Ｉ／Ｏ制御ＡＳＩＣ１５０、エンジン部１６０などのユニット単位に限られず、より細かな処理単位、機能単位であってもよい。例えば、スキャン画像データの読み込み処理、圧縮処理、色変換処理、可搬型記憶媒体からのデータ読み込み処理、などである。
【００３４】
インターフェイス部１３１は、ＣＰＵ１２０、Ｉ／Ｏ制御ＡＳＩＣ１５０、エンジン部１６０などのマスターからのアクセス要求を受け付け、調停回路１３２に通知する。
【００３５】
なお、アクセス要求には、例えば、マスターを識別する識別情報、バンクアドレス、ロウアドレス、カラムアドレス、ライト／リードなどの指示の識別情報、ライト対象のデータなどが含まれる。
【００３６】
調停回路１３２は、通知されたアクセス要求を受け付け、メモリーコントローラー１３３に通知する。調停回路１３２は、複数のアクセス要求を同タイミングで受け付けた場合には、１つのアクセス要求を選択してメモリーコントローラー１３３に通知する制御を行う。
【００３７】
なお、調停回路１３２の特徴的な構成については、後述する。
【００３８】
メモリーコントローラー１３３は、調停回路１３２からアクセス要求を受け付けると、ＳＤＲＡＭ１４０に対して所定のコマンドを発行して、アクセス要求に基づくアクセス制御を行う。
【００３９】
具体的には、メモリーコントローラー１３３は、アクセス要求を受け付ける毎に、当該アクセス要求が同一ページ（その時点でオープンしているページ）へのアクセス要求であるか否か判定する。
【００４０】
メモリーコントローラー１３３は、同一ページへのアクセス要求ではないと判定した場合（ページミスヒット）には、オープンしているページをクローズするためのプリチャージコマンドをＳＤＲＡＭ１４０に発行し、その後、アクセス要求がされたページをオープンするためのアクティブコマンドをＳＤＲＡＭ１４０に発行して、コマンド処理（リード／ライトコマンドの発行）を行う。一方、同一ページへのアクセス要求であると判定した場合には、プリチャージコマンド及びアクティブコマンドを発行せずに、コマンド処理を行う。
【００４１】
上記のメモリーコントローラー１３３のアクセス制御は、バンクごとに独立して並列的に実行可能である（マルチバンクアクセス）。すなわち、別のバンクに属するページに対しては、ページのクローズを待たずに、それぞれオープンすることができる。
【００４２】
例えば、マスターＸのバンクアドレス０００に対するリードコマンドとプリチャージコマンドとの間に、マスターＹのバンクアドレス００１に対するアクティブコマンドを発行し、マスターＹのバンクアドレス００１に対するリードコマンドとプリチャージコマンドとの間に、マスターＺのバンクアドレス０１０に対するアクティブコマンドを発行するようにできる。
【００４３】
ここで、ページミスが発生する場合には、次のような問題がある。
【００４４】
例えば、同じ優先度のアクセス要求が連続してメモリーコントローラー１３３に入力される状況において、同一バンクへのアクセス要求が連続した後、他のバンクへのアクセス要求が来る場合を考える。同一バンクへのアクセス要求間でページミスが発生した場合、当該ページミスによるレイテンシーが、前記他のバンクへのアクセス要求へ影響する。すなわち、前記他のバンクへのアクセス要求の処理の開始が遅れることとなる。このように、ページミスの発生により、アクセス効率が低下することがある。
【００４５】
そこで、本実施形態では、調停回路１３２において、アクセス要求ごとに、ページミスを発生させるアクセス要求であるか否かを判断し、ページミスを発生させるアクセス要求である場合には、その後のページミスを発生させないアクセス要求を優先してメモリーコントローラー１３３に通知する。
【００４６】
図３、及び図４を参照して、具体的に説明する。
【００４７】
図３は、本発明の一実施形態の一例に係る、調停回路及びメモリーコントローラーの機能構成を示すブロック図である。図４は、本発明の一実施形態の一例に係る、マスク制御テーブルの構成を説明する図である。
【００４８】
調停回路１３２は、マスク制御部３００を有する。
【００４９】
マスク制御部３００は、アクセス要求を受け付けた場合、当該アクセス要求が、当該アクセス要求よりも前にメモリーコントローラー１３３に出力した他のアクセス要求であって処理が終了していないアクセス要求と、ページミスを発生させないかどうかを判定する。当該アクセス要求がページミスを発生させる場合は、当該アクセス要求の出力を所定期間停止させ、その後のページミスを発生させないアクセス要求を、優先的に出力する。
【００５０】
上記の制御を行うため、マスク制御部３００は、図４に示すようなマスク制御テーブル４００を用いる。マスク制御テーブル４００は、バンクアドレス４１０とロウアドレス４２０とを対応付けたデータ（以下、「マスクデータ」とも呼ぶ。）を一以上格納する領域を有する。
【００５１】
マスク制御部３００は、アクセス要求を受け付けた際に、当該アクセス要求に含まれるバンクアドレスとロウアドレスを、マスク制御テーブル４００に格納されているマスクデータと比較する。
【００５２】
マスク制御テーブル４００にマスクデータが格納されていない場合、又は、受け付けたアクセス要求に含まれるバンクアドレスが、いずれのマスクデータのバンクアドレスとも異なる場合（マルチバンクアクセス可能な場合）、又は、受け付けたアクセス要求に含まれるロウアドレスが、該アクセス要求のバンクアドレスと等しいバンクアドレスを含むマスクデータのロウアドレスと等しい場合（ページヒットの場合）、マスク制御部３００は、当該受け付けたアクセス要求をメモリーコントローラー１３３に出力する。すなわち、アクセス要求のアクセス先バンクがマスクされていない（マスククリア（マスク解除）されている）場合、アクセス要求の出力が可能である。
【００５３】
一方、上記以外の場合、すなわち、受け付けたアクセス要求に含まれるロウアドレスが、該アクセス要求のバンクアドレスと等しいバンクアドレスを含むマスクデータのロウアドレスと異なる場合（ページミスヒットの場合）、マスク制御部３００は、当該アクセス要求の出力を所定期間停止する。すなわち、アクセス要求のアクセス先バンクがマスクされている（マスク設定されている）場合、出力が抑止される。
【００５４】
マスク制御部３００は、メモリーコントローラー１３３にアクセス要求を出力する際に、当該アクセス要求に含まれるバンクアドレスとロウアドレスを取得し、これらを対応付けたマスクデータを、マスク制御テーブル４００に格納する。これにより、マスクが設定される。
【００５５】
また、マスク制御部３００は、メモリーコントローラー１３３から、マスククリア信号を受け付ける。マスククリア信号には、バンクアドレスが含まれている。マスク制御部３００は、マスククリア信号に含まれるバンクアドレスと等しいバンクアドレスを含むマスクデータを、マスク制御テーブル４００から削除する。これにより、マスクが解除され、マスクが設定されてから解除されるまでの所定期間出力が停止されていたアクセス要求が、出力されるようになる。
【００５６】
上述のマスク制御テーブル４００を用いたマスク機能は、マスターごとに管理することができる。例えば、マスク制御部３００は、マスターの識別情報ごとに、マスク制御のオン／オフ（有効／無効）の設定を記憶する。そして、マスク制御部３００は、マスク機能がオフのマスターのアクセス要求を、マスク制御テーブル４００を参照せずにメモリーコントローラー１３３に出力する。なお、マスク機能がオフの場合でも、出力したアクセス要求に対応するマスク設定を実行する。
【００５７】
各マスターのマスク機能のオン／オフ設定は、例えば、ＣＰＵ１２０が、操作パネル１７０や情報処理装置からのユーザーの指示を受け付けて、マスターごとに設定変更することができる。全てのマスターについて、同時にオン／オフを設定できてもよい。
【００５８】
各マスターのマスク機能をオンに設定するかオフに設定するかは、マスターの処理の優先度を基準とすればよい。すなわち、オフ設定は、ページミスが発生する場合あっても当該マスターのアクセス要求よりも後のアクセス要求が優先されないため、処理の優先度がより高いマスターに適している。例えば、スキャンデータの読み込み処理など、他のマスターのアクセス要求が割り込まない方が好ましいマスターに適している。
【００５９】
メモリーコントローラー１３３は、メイン制御部３１０と、バンク制御部３２０とを有する。
【００６０】
メイン制御部３１０は、調停回路１３２から入力されたアクセス要求に従って、ＳＤＲＡＭ１４０にアクセスを行う。アクセス制御の方法は、メモリーコントローラー１３３の説明で上述したとおりである。
【００６１】
バンク制御部３２０は、各アクセス要求のＳＤＲＡＭ１４０へのアクセスが終了するタイミングを検出し、アクセスが終了したバンクのバンクアドレスを含むマスククリア信号を、調停回路１３２に出力する。バンク制御部３２０は、アクセスが終了するタイミングとして、メイン制御部３１０がプリチャージコマンドを発行するタイミングを検出する。なお、マスク解除のトリガーを調停回路１３２が検出できればよいので、アクセスが終了するタイミングは、プリチャージコマンドの発行と同時に限られず、所定時間前でも後でもよい。
【００６２】
本実施形態では、マスククリア信号の出力タイミングを、バンク制御部３２０で決定している。バンク制御部３２０は、メイン制御部３１０と同様にメモリーコントローラー１３３内に含まれ、メイン制御部３１０によるコマンド処理の状態を知ることができるため、プリチャージコマンドが発行されるタイミングを、遅延なく（より正確に）検出することができる。
【００６３】
以上の各構成要素は、調停回路１３２及びメモリーコントローラー１３３の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。調停回路１３２及びメモリーコントローラー１３３の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００６４】
次に、上記の調停回路１３２の特徴的な動作について説明する。
【００６５】
図５は、本発明の一実施形態の一例に係る、調停回路のリクエスト受付処理を示すフロー図である。本フローは、例えば、画像処理装置１００の動作中に実行される。本フローは、マスターごとの処理を示している。
【００６６】
Ｓ１０では、調停回路１３２のマスク制御部３００は、アイドル状態に遷移し、処理をＳ２０に進める。
【００６７】
Ｓ２０では、マスク制御部３００は、アクセス要求（リクエスト）を受け付けたか否かを判定する。アクセス要求を受け付けた場合（Ｓ２０：Ｙｅｓ）、処理をＳ３０に進める。アクセス要求がない場合（Ｓ２０：Ｎｏ）、判定を継続する。
【００６８】
Ｓ３０では、マスク制御部３００は、Ｓ２０で受け付けた処理対象のアクセス要求の要求元のマスターのマスク機能が、オンに設定されているか否かを判定する。オンである場合（Ｓ３０：Ｙｅｓ）、処理をＳ４０に進める。オフである場合（Ｓ３０：Ｎｏ）、処理をＳ６０に進める。
【００６９】
Ｓ４０では、マスク制御部３００は、処理対象のアクセス要求のアクセス対象のバンクがマスク中か否かを判定する。
【００７０】
具体的には、マスク制御部３００は、処理対象のアクセス要求に含まれるバンクアドレスとロウアドレスを、マスク制御テーブル４００に格納されているマスクデータと比較する。マスク制御テーブル４００にマスクデータが格納されていない場合、又は、受け付けたアクセス要求に含まれるバンクアドレスが、いずれのマスクデータのバンクアドレスとも異なる場合（マルチバンクアクセス可能な場合）、又は、受け付けたアクセス要求に含まれるロウアドレスが、該アクセス要求のバンクアドレスと等しいバンクアドレスを含むマスクデータのロウアドレスと等しい場合（ページヒットの場合）、マスク制御部３００は、アクセス対象のバンクがマスク中でないと判定し（Ｓ４０：Ｎｏ）、処理をＳ６０に進める。一方、処理対象のアクセス要求に含まれるロウアドレスが、該アクセス要求のバンクアドレスと等しいバンクアドレスを含むマスクデータのロウアドレスと異なる場合（ページミスヒットの場合）、マスク制御部３００は、アクセス対象のバンクがマスク中であると判定し（Ｓ４０：Ｙｅｓ）、処理をＳ５０に進める。
【００７１】
Ｓ５０では、マスク制御部３００は、マスクがクリアされたか否かを判定する。具体的には、マスク制御部３００は、処理対象のアクセス要求のアクセス対象のバンクがマスク中でないか否かを判定する。マスク中である場合（Ｓ５０：Ｎｏ）、判定を継続する。マスク中でない場合（Ｓ５０：Ｙｅｓ）、処理をＳ６０に進める。なお、Ｓ５０の判定条件は、Ｓ４０と同様である。
【００７２】
Ｓ６０では、マスク制御部３００は、処理対象のマスターのアクセス要求よりも優先順位が高い他のマスターのアクセス要求があるか否かを判定する。この処理は、アクセス要求が競合する場合に行われる通常の調停処理であり、マスク制御部３００は、予め設定されたマスターの優先度に応じて、判定を行う。優先順位が高い他のアクセス要求がある場合（Ｓ６０：Ｙｅｓ）、処理をＳ３０に戻す。優先順位が高い他のアクセス要求がない場合（Ｓ６０：Ｎｏ）、処理をＳ７０に進める。
【００７３】
Ｓ７０では、マスク制御部３００は、マスク設定を行う。具体的には、処理対象のアクセス要求に含まれるバンクアドレスとロウアドレスを取得し、これらを対応付けたマスクデータを、マスク制御テーブル４００に格納する。そして、処理をＳ８０に進める。
【００７４】
Ｓ８０では、マスク制御部３００は、処理対象のアクセス要求を、メモリーコントローラー１３３に出力する。そして、処理をＳ１０に戻す。
【００７５】
図６は、本発明の一実施形態の一例に係る、調停回路のマスク解除処理を示すフロー図である。本フローは、例えば、画像処理装置１００の動作中に実行される。
【００７６】
Ｓ１１０では、マスク制御部３００は、メモリーコントローラー１３３からマスククリア信号を受信したか否かを判定する。マスククリア信号を受信した場合（Ｓ１１０：Ｙｅｓ）、処理をＳ１２０に進める。マスククリア信号を受信していない場合（Ｓ１１０：Ｎｏ）、判定を継続する。
【００７７】
Ｓ１２０では、マスク制御部３００は、マスクをクリアする。具体的には、Ｓ１１０で受信したマスククリア信号に含まれるバンクアドレスと等しいバンクアドレスを含むマスクデータを、マスク制御テーブル４００から削除する。そして、処理をＳ１１０に戻す。
【００７８】
上述の図４、５の各フローの各処理単位は、調停回路１３２の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。調停回路１３２の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【００７９】
上述のように調停回路１３２が動作することにより、ページミスを発生させないアクセス要求が優先してメモリーコントローラー１３３に通知されるようになる。具体的に、図７〜９の例を用いて説明する。
【００８０】
図７は、本発明の一実施形態の一例に係る、マスク機能オンの場合のリクエスト間の処理の関係を説明する図である。
【００８１】
本図では、優先順位が同じリクエストＡ（バンクアドレス０、ロウアドレス１）、リクエストＢ（バンクアドレス０、ロウアドレス２）、及び、リクエストＣ（バンクアドレス１、ロウアドレス１）が、リクエストＡ、Ｂ、Ｃの順で調停回路１３２に入力されるものとする。リクエストＡとＢ間では、ページミスが発生するものとする。また、いずれのバンクにもマスクが設定されていないものとする。
【００８２】
リクエストＡが発生すると（Ａ１）、アクセス対象であるバンク０、ロウアドレス１にマスク設定が行われ（Ａ２）、メモリーコントローラー１３３出力され（Ａ３）、マスクがクリアされる（Ａ４）。
【００８３】
リクエストＢが発生すると（Ｂ１）、Ａ１においてバンク０、ロウアドレス１に対してマスクが設定されているため、マスククリア待ちとなる（Ｂ２）。Ａ４においてバンク０のマスクがクリアされると、アクセス対象であるバンク０、ロウアドレス２にマスク設定が行われ（Ｂ３）、メモリーコントローラー１３３出力され（Ｂ４）、マスクがクリアされる（Ｂ５）。
【００８４】
リクエストＣ発生すると（Ｃ１）、バンク１に対してマスクが設定されていないため、アクセス対象であるバンク１、ロウアドレス１にマスク設定が行われ（Ｃ２）、メモリーコントローラー１３３出力され（Ｃ３）、マスクがクリアされる（Ｃ４）。
【００８５】
このように、ページミスを発生させるリクエストＢの出力が所定期間抑止され、リクエストＢよりもよりも後に発生したリクエストＣが優先的に出力される。
【００８６】
図８は、本発明の一実施形態の一例に係る、マスク機能オンの場合のリクエスト間の処理の関係を説明するタイミングチャートである。
【００８７】
本図では、優先順位が同じリクエストＡ（A_REQ）（バンクアドレス（A_BANK）０）、リクエストＢ（B_REQ）（バンクアドレス（B_BANK）０）、及び、リクエストＣ（C_REQ）（バンクアドレス（C_BANK）１）が、リクエストＡ、Ｂ、Ｃの順で調停回路１３２に入力されている。リクエストＡとＢ間では、ページミスが発生するものとする。なお、いずれのバンクにもマスクが設定されていないものとする。
【００８８】
調停回路１３２は、リクエストＢの出力によりページミスが発生すると判定できるので、リクエストＢの出力を抑止し、リクエストＢよりも先にリクエストＣを出力する。メモリーコントローラー１３３は、リクエストＡ、リクエストＣの順に処理を行い、各リクエストのプリチャージコマンド処理（auto-precharge）のタイミングの直前に、マスククリア信号を調停回路１３２に出力する。
【００８９】
調停回路１３２は、リクエストＡのプリチャージコマンド処理（auto-precharge(A_REQ, bank 0)）に対応するマスククリア信号Ａを受信することにより、バンク０のマスクをクリアするので、リクエストマスク期間を終了し、出力を抑止していたリクエストＢを出力する。
【００９０】
図９は、本発明の一実施形態の一例に係る、マスク機能オフのリクエスト間の処理の関係を説明するタイミングチャートである。
【００９１】
調停回路１３２は、マスク機能がオフとなっているので、リクエストＡ、Ｂ、Ｃの順で、メモリーコントローラー１３３に出力を行う。メモリーコントローラー１３３は、リクエストＡ、Ｂ、Ｃの順に処理を行う。しかし、リクエストＡ、Ｂ間でページミスが発生するため、リクエストＡのプリチャージコマンド処理（auto-precharge(A_REQ, bank 0)）が終了するまで、リクエストＢを実行することができない。また、リクエストＢを処理するまでリクエストＣを実行することができない。
【００９２】
従って、図８と図９を比較すると分かるように、マスク機能を使用しない場合、ページミスの発生により、リクエストＣのレイテンシーを回避することができない。一方、マスク機能を使用する場合、リクエストＣのレイテンシーを回避することができる。また、リクエストＢについても、リクエストＣとの関係では、マルチバンクアクセス可能であるため、レイテンシーを回避することができる。結果として、ＤＲＡＭアクセスの効率の低下をできる限り防ぎ、電子機器の高いパフォーマンスを得やすくなる。
【００９３】
なお、図７〜９の各種処理や信号の間隔などは、一例であり、図示したとおりのものに限られない。
【００９４】
以上、本発明の一実施形態について説明した。本実施形態によれば、ページミスを発生させるアクセス要求よりも他のアクセス要求を優先させて、レイテンシーを低減させることができる。
【００９５】
なお、上記の本発明の実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正および変形例が当業者にとって明らかである。
【００９６】
例えば、メモリーコントローラー１３３は、マスククリア信号を出力する構成を有さないようにしてもよい。この場合、調停回路１３２は、例えば、アクセス要求を出力してから所定時間の経過を判定し、所定時間が経過した場合に、当該アクセス要求に対応するマスクを解除するようにすればよい。
【００９７】
また、例えば、画像処理装置１００は、ＳＤＲＡＭ１４０を複数チップ有するようにしてもよい。この場合は、異なるチップ間では、それぞれ並列的にアクセスが可能であるため、調停回路１３２は、異なるチップへのアクセス要求間では、マスクされていないと判定する。調停回路１３２は、マスク制御テーブル４００を、チップごとに設け、チップごとにマスク制御を行うようにしてもよい。
【符号の説明】
【００９８】
１００：画像処理装置、１１０：コントローラー、１２０：ＣＰＵ、１３０：メモリー制御ＡＳＩＣ、１３１：インターフェイス部、１３２：調停回路、１３３：メモリーコントローラー、１４０：ＳＤＲＡＭ、１５０：Ｉ／Ｏ制御ＡＳＩＣ、１６０：エンジン部、１７０：操作パネル、２００：情報処理装置、３００：マスク制御部、３１０：メイン制御部、３２０：バンク制御部、４００：マスク制御テーブル、４１０：バンクアドレス、４２０：ロウアドレス
【図１】
0005594127.tif 000002
【図２】
0005594127.tif 000003
【図３】
0005594127.tif 000004
【図４】
0005594127.tif 000005
【図５】
0005594127.tif 000006
【図６】
0005594127.tif 000007
【図７】
0005594127.tif 000008
【図８】
0005594127.tif 000009
【図９】
0005594127.tif 000010