(57)【特許請求の範囲】
【請求項１】
第一のメモリーと、前記第一のメモリーを制御するメモリー制御部と、を有する電子機器であって、
前記メモリー制御部は、
第二のメモリーが検出された場合に、前記第一のメモリーと前記第二のメモリーのバス幅を比較し、
前記第二のメモリーのバス幅が前記第一のメモリーのバス幅よりも大きい場合、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、
ことを特徴とする電子機器。
【請求項２】
請求項１に記載の電子機器であって、
前記メモリー制御部は、
メモリーマップにおけるメモリー領域のベースアドレス側から順に、前記第二のメモリーの領域、前記第一のメモリーの領域が並ぶように設定する、ことにより前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、
ことを特徴とする電子機器。
【請求項３】
請求項１又は２に記載の電子機器であって、
前記メモリー制御部は、
前記第二のメモリーのバス幅が前記第一のメモリーのバス幅以下である場合、前記第一のメモリーと前記第二のメモリーの容量を比較し、
前記第二のメモリーの容量が前記第一のメモリーの容量よりも大きい場合、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、
ことを特徴とする電子機器。
【請求項４】
請求項３に記載の電子機器であって、
前記メモリー制御部は、
前記第一のメモリー内の、選択信号により選択される一の記憶領域当たりの容量と、前記第二のメモリー内の、選択信号により選択される一の記憶領域当たりの容量とを比較し、  前記第二のメモリー内の前記記憶領域当たりの容量が前記第一のメモリー内の前記記憶領域当たりの容量よりも大きい場合に、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、
ことを特徴とする電子機器。
【請求項５】
請求項１〜４いずれか一項に記載の電子機器であって、
前記メモリー制御部は、
前記第二のメモリーが複数検出された場合、各メモリーのバス幅を比較し、
バス幅のより大きいメモリーへのアクセスが他のメモリーよりも優先するように設定する、
ことを特徴とする電子機器。
【請求項６】
請求項５に記載の電子機器であって、
前記メモリー制御部は、
前記第一のメモリー及び前記第二のメモリーのうち、いずれか２つ以上のメモリーのバス幅が同じである場合、バス幅が同じ各メモリーの容量を比較し、容量のより大きいメモリーへのアクセスが他のメモリーよりも優先するように設定する、
ことを特徴とする電子機器。
【請求項７】
請求項２に記載の電子機器であって、
前記メモリー制御部は、
アクセス要求で指定される前記メモリー領域内の位置を示すアドレスが、前記メモリー領域のうち前記第二のメモリーの領域内を示す場合、前記第二のメモリーを選択する選択信号を出力し、
前記アドレスが、前記メモリー領域のうち前記第一のメモリーの領域内を示す場合、前記第一のメモリーを選択する選択信号を出力する、
ことを特徴とする電子機器。
【請求項８】
第一のメモリーと、前記第一のメモリーを制御するメモリー制御部と、ＣＰＵと、を有する電子機器であって、
前記ＣＰＵは、
第二のメモリーが検出された場合に、前記第一のメモリーと前記第二のメモリーのバス幅を比較し、
前記第二のメモリーのバス幅が前記第一のメモリーのバス幅よりも大きい場合、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、
ことを特徴とする電子機器。
【請求項９】
請求項８に記載の電子機器であって、
前記メモリー制御部は、
前記第二のメモリーを検出した場合に、メモリーマップにおけるメモリー領域のベースアドレス側から順に、前記第一のメモリーの領域、前記第二のメモリーの領域が並ぶように設定し、
前記ＣＰＵは、
前記ベースアドレスに前記第一のメモリーの容量を加算したアドレスを、当該ＣＰＵが前記メモリー領域のアクセスに使用するアクセス用ベースアドレスとして設定し、当該アクセス用ベースアドレスに前記第二のメモリーの容量を加算したアドレスの後ろに、前記第一のメモリーの領域が続くように設定する、ことにより前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、
ことを特徴とする電子機器。
【請求項１０】
第一のメモリーと、前記第一のメモリーを制御するメモリー制御部と、を有する電子機器におけるメモリー制御方法であって、
前記メモリー制御部は、
第二のメモリーが検出された場合に、前記第一のメモリーと前記第二のメモリーのバス幅を比較し、
前記第二のメモリーのバス幅が前記第一のメモリーのバス幅よりも大きい場合、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、
ことを特徴とするメモリー制御方法。
【請求項１１】
第一のメモリーと、前記第一のメモリーを制御するメモリー制御部と、ＣＰＵと、を有する電子機器におけるメモリー制御方法であって、
前記ＣＰＵは、
第二のメモリーが検出された場合に、前記第一のメモリーと前記第二のメモリーのバス幅を比較し、
前記第二のメモリーのバス幅が前記第一のメモリーのバス幅よりも大きい場合、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、
ことを特徴とするメモリー制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、及びメモリー制御方法に関する。
【背景技術】
【０００２】
予め設置されたＤＲＡＭ（Dynamic RAM）の他に、別のＤＲＡＭを増設可能な電子機器が知られている。例えば、特許文献１には、オンボードの標準ＤＲＡＭの他に、ＤＩＭＭ（Dual Inline Memory Module）により構成されるオプションＤＲＡＭを増設可能な電子機器が記載されている。
【０００３】
また、上記のような電子機器では、複数のＤＲＡＭの物理アドレスの割り当て情報（メモリーマップ）は、ベースアドレス側から順に、標準ＤＲＡＭ、オプションＤＲＡＭが配置される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１８６８９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記のような電子機器では、標準ＤＲＡＭのバス幅よりもオプションＤＲＡＭのバス幅の方が大きい場合（例えば、標準ＤＲＡＭ：１６ｂｉｔ、オプションＤＲＡＭ：３２ｂｉｔ）、ベースアドレスに近い側のメモリー帯域の方が広いこととなる。
【０００６】
ここで、一般的に、ＣＰＵなどによるＤＲＡＭ領域（標準ＤＲＡＭ領域とオプションＤＲＡＭ領域を含む領域）の使用は、ベースアドレスに近い側に偏る。すると、上記のような電子機器では、バス幅の大きいオプションＤＲＡＭよりもバス幅の小さい標準ＤＲＡＭの方がより多く使用される（使用される領域が標準ＤＲＡＭに偏る）可能性が高まり、システムの性能を十分に発揮できない。
【０００７】
そこで、本発明は、バス幅などの性能の異なる複数のメモリーを搭載する電子機器において、そのシステムの性能をより発揮し易くすることを目的とする。
【課題を解決するための手段】
【０００８】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。
【０００９】
上記の課題を解決する本発明の第一の態様は、第一のメモリーと、前記第一のメモリーを制御するメモリー制御部と、を有する電子機器であって、前記メモリー制御部は、第二のメモリーが検出された場合に、前記第一のメモリーと前記第二のメモリーのバス幅を比較し、前記第二のメモリーのバス幅が前記第一のメモリーのバス幅よりも大きい場合、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、ことを特徴とする。
【００１０】
上記の構成によれば、バス幅の大きい第二のメモリーへのアクセスが、バス幅の小さい第一のメモリーへのアクセスよりも優先されるので、システムの性能をより発揮し易くすることができる。
【００１１】
ここで、前記メモリー制御部は、メモリーマップにおけるメモリー領域のベースアドレス側から順に、前記第二のメモリーの領域、前記第一のメモリーの領域が並ぶように設定する、ことにより前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、ことを特徴としてもよい。
【００１２】
上記の構成によれば、バス幅の大きい第二のメモリーの領域がベースアドレス側に割り当てられるので、第二のメモリーの使用の優先度が高まり、システムの性能をより発揮し易くすることができる。
【００１３】
また、前記メモリー制御部は、前記第二のメモリーのバス幅が前記第一のメモリーのバス幅以下である場合、前記第一のメモリーと前記第二のメモリーの容量を比較し、前記第二のメモリーの容量が前記第一のメモリーの容量よりも大きい場合、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、ことを特徴としてもよい。
【００１４】
上記の構成によれば、第二のメモリーのバス幅が第一のメモリーのバス幅以下の場合に、容量の大きい第二のメモリーへのアクセスが、容量の小さい第一のメモリーへのアクセスよりも優先されるので、システムの性能をより発揮し易くすることができる。
【００１５】
また、前記メモリー制御部は、前記第一のメモリー内の、選択信号により選択される一の記憶領域当たりの容量と、前記第二のメモリー内の、選択信号により選択される一の記憶領域当たりの容量とを比較し、前記第二のメモリー内の前記記憶領域当たりの容量が前記第一のメモリー内の前記記憶領域当たりの容量よりも大きい場合に、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、ことを特徴としてもよい。
【００１６】
上記の構成によれば、メモリー内に選択信号により選択される記憶領域がある場合に、当該記憶領域当たりの容量の大きい第二のメモリーへのアクセスが、当該記憶領域当たり容量の小さい第一のメモリーへのアクセスよりも優先されるので、システムの性能をより発揮し易くすることができる。
【００１７】
また、前記メモリー制御部は、前記第二のメモリーが複数検出された場合、各メモリーのバス幅を比較し、バス幅のより大きいメモリーへのアクセスが他のメモリーよりも優先するように設定する、ことを特徴としてもよい。
【００１８】
上記の構成によれば、第二のメモリーが複数のある場合にも、システムの性能をより発揮し易くすることができる。
【００１９】
また、前記メモリー制御部は、前記第一のメモリー及び前記第二のメモリーのうち、いずれか２つ以上のメモリーのバス幅が同じである場合、バス幅が同じ各メモリーの容量を比較し、容量のより大きいメモリーへのアクセスが他のメモリーよりも優先するように設定する、ことを特徴としてもよい。
【００２０】
上記の構成によれば、第二のメモリーが複数のある場合に、バス幅が同じメモリーがある場合であっても、システムの性能をより発揮し易くすることができる。
【００２１】
また、前記メモリー制御部は、アクセス要求で指定される前記メモリー領域内の位置を示すアドレスが、前記メモリー領域のうち前記第二のメモリーの領域内を示す場合、前記第二のメモリーを選択する選択信号を出力し、前記アドレスが、前記メモリー領域のうち前記第一のメモリーの領域内を示す場合、前記第一のメモリーを選択する選択信号を出力する、ことを特徴としてもよい。
【００２２】
上記の構成によれば、設定された各メモリーの領域の割り当てに基づいて、メモリー制御部によりアクセス先が選択されるので、簡易な構成でシステムの性能をより発揮し易くすることができる。
【００２３】
上記の課題を解決するための本発明の第二の態様は、第一のメモリーと、前記第一のメモリーを制御するメモリー制御部と、ＣＰＵと、を有する電子機器であって、前記ＣＰＵは、第二のメモリーが検出された場合に、前記第一のメモリーと前記第二のメモリーのバス幅を比較し、前記第二のメモリーのバス幅が前記第一のメモリーのバス幅よりも大きい場合、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、ことを特徴とする。
【００２４】
上記の構成によれば、バス幅の大きい第二のメモリーへのアクセスが、バス幅の小さい第一のメモリーへのアクセスよりも優先されるので、システムの性能をより発揮し易くすることができる。
【００２５】
ここで、前記メモリー制御部は、前記第二のメモリーを検出した場合に、メモリーマップにおけるメモリー領域のベースアドレス側から順に、前記第一のメモリーの領域、前記第二のメモリーの領域が並ぶように設定し、前記ＣＰＵは、前記ベースアドレスに前記第一のメモリーの容量を加算したアドレスを、当該ＣＰＵが前記メモリー領域のアクセスに使用するアクセス用ベースアドレスとして設定し、当該アクセス用ベースアドレスに前記第二のメモリーの容量を加算したアドレスの後ろに、前記第一のメモリーの領域が続くように設定する、ことにより前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、ことを特徴としてもよい。
【００２６】
上記の構成によれば、バス幅の大きい第二のメモリーの領域がベースアドレス側に割り当てられるので、第二のメモリーの使用の優先度が高まり、システムの性能をより発揮し易くすることができる。また、このような手段をＣＰＵにより実現することで、メモリーコントローラー等のハードウェア設計の変更がなくなる又は少なくなる。
【００２７】
上記の課題を解決するための第三の態様は、第一のメモリーと、前記第一のメモリーを制御するメモリー制御部と、を有する電子機器におけるメモリー制御方法であって、前記メモリー制御部は、第二のメモリーが検出された場合に、前記第一のメモリーと前記第二のメモリーのバス幅を比較し、前記第二のメモリーのバス幅が前記第一のメモリーのバス幅よりも大きい場合、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、ことを特徴とする。
【００２８】
上記の課題を解決するための第四の態様は、第一のメモリーと、前記第一のメモリーを制御するメモリー制御部と、ＣＰＵと、を有する電子機器におけるメモリー制御方法であって、前記ＣＰＵは、第二のメモリーが検出された場合に、前記第一のメモリーと前記第二のメモリーのバス幅を比較し、前記第二のメモリーのバス幅が前記第一のメモリーのバス幅よりも大きい場合、前記第二のメモリーへのアクセスが前記第一のメモリーへのアクセスよりも優先するように設定する、ことを特徴とする。
【００２９】
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００３０】
【図１】本発明の第一実施形態に係る電子機器の概略構成の一例を示す図である。
【図２】ＳＯＣのＤＲＡＭアクセスに関する概略構成の一例を示す図である。
【図３】メモリーコントローラーによるＤＲＡＭアドレス設定処理の一例を示すフロー図である。
【図４】優先アクセス設定の場合のメモリーマップの一例を説明する図である。
【図５】通常アクセス設定の場合のメモリーマップの一例を説明する図である。
【図６】ＣＰＵによるＤＲＡＭアドレス設定処理の一例を示すフロー図である。
【図７】優先アクセス設定の場合のＣＰＵのメモリーマップの一例を説明する図である。
【発明を実施するための形態】
【００３１】
＜第一実施形態＞
以下、本発明の第一実施形態について、図面を参照して説明する。
【００３２】
図１は、本発明の第一実施形態に係る電子機器の概略構成の一例を示す図である。図示するように、電子機器１００には、情報処理装置２００が接続される。
【００３３】
情報処理装置２００は、電子機器１００のホストコンピューターとして機能する。情報処理装置２００は、例えば、不図示の、ＣＰＵと、ＲＡＭと、ＲＯＭと、ハードディスク等の補助記憶装置と、ディスプレイと、キーボードやマウス等の入力装置と、通信インターフェイスと、を備えたコンピューターである。情報処理装置２００では、例えば、アプリケーションプログラムや、電子機器１００を制御するためのドライバープログラム（例えば、プリンタードライバープログラム）が実行される。
【００３４】
電子機器１００は、例えば、プリント機能、コピー機能等を有する複合機である。電子機器１００は、電子機器１００における各種処理を制御する電子機器制御装置としてのコントローラー１１０と、印刷媒体への印刷や原稿の読み取りを実行するエンジン部１２０と、を備えている。もちろん、電子機器は、複合機に限らず、例えば、プリンター、スキャナー、ファクシミリ、コピー機、などの装置であってもよい。
【００３５】
コントローラー１１０は、ＣＰＵ１４０と、メモリーコントローラー１５０と、ＤＲＡＭ１６０と、Ｉ／Ｏ（Input/Output）制御ＡＳＩＣ（Application Specific Integrated Circuits）１７０と、を備える。コントローラー１１０は、エンジン部１２０等の各種機構を制御し、各種画像処理などを含む印刷機能、ファクシミリ機能、スキャナー機能、コピー機能等を実現する。もちろん、コントローラー１１０は、この構成に限定されず、例えば、ＣＰＵ１４０をメモリーコントローラー１５０に内蔵させてもよい。
【００３６】
また、上記のＣＰＵ１４０と、メモリーコントローラー１５０と、Ｉ／Ｏ制御ＡＳＩＣ１７０と、を搭載した集積回路を、以下ではＳＯＣ（System On a Chip）１３０と呼ぶ。
【００３７】
ＣＰＵ１４０は、メモリーコントローラー１５０を介してＤＲＡＭ１６０にアクセスし、各種プログラムやデータの読み書きを行うことで各種処理を実行する。ＣＰＵ１２０は、ＤＲＡＭ１６０にアクセスするためのアクセス要求をメモリーコントローラー１５０に対して出す。
【００３８】
メモリーコントローラー１５０は、ＣＰＵ１４０、Ｉ／Ｏ制御ＡＳＩＣ１７０、エンジン部１２０から、ＤＲＡＭ１６０へのアクセスを制御する。もちろん、メモリーコントローラー１５０は、ＣＰＵ１４０を介さないＤＲＡＭ１６０へのダイレクトメモリーアクセス（ＤＭＡ）を制御するようにしてもよい。
【００３９】
ＤＲＡＭ１６０は、メモリーコントローラー１５０が制御を行うメモリーであり、例えば、ＤＤＲ−ＳＤＲＡＭである。本実施形態では、ＤＲＡＭ１６０は、メモリーコントローラー１５０などを搭載したコントローラー基板上に直接設置される標準ＤＲＡＭ（On Board）１６１と、ＤＩＭＭ（Dual Inline Memory Module）のような複数のＤＲＡＭチップをプリント基板上に搭載したオプションＤＲＡＭ１６２と、を備える。標準ＤＲＡＭ１６１は、通常はユーザーによりボードから取り外すことができない一方、オプションＤＲＡＭ１６２は、ユーザーによりボートに取り付けたりボードから取り外したりすることができる（着脱可能である）。
【００４０】
各ＤＲＡＭ１６０にアクセスする場合、アクセス対象のＤＲＡＭ１６０は、チップセレクト信号で選択される。ここで、複数のＤＲＡＭチップを搭載したＤＲＡＭ（本実施形態では、オプションＤＲＡＭ１６２）には、チップセレクトの単位（アクセス単位）が、複数のＤＲＡＭチップ全体であるものと、ＤＲＡＭチップごとであるものとがある。本実施形態では、オプションＤＲＡＭ１６２は、いずれの構成であってもよい。もちろん、標準ＤＲＡＭ１６２も複数のＤＲＡＭチップを搭載するようにしてもよい。
【００４１】
Ｉ／Ｏ制御ＡＳＩＣ１７０は、外部機器（情報処理装置２００など）とのデータの送受信を制御する。
【００４２】
エンジン部１２０は、印刷機能、ファクシミリ機能、スキャナー機能、コピー機能等を実現するための給排紙機構、印字機構、スキャン機構等であり、例えば、印刷エンジン、スキャナーエンジンなどを含む。
【００４３】
図２は、ＳＯＣのＤＲＡＭアクセスに関する概略構成の一例を示す図である。
【００４４】
メモリーコントローラー１５０には、ＣＰＵ１４０や、他のユニット（Ｉ／Ｏ制御ＡＳＩＣ１７０に接続されている機器、エンジン部１２０、などを指し、以下では「内部ＩＰ」とよぶ）が、内部バスを介して接続されている。また、メモリーコントローラー１５０には、標準ＤＲＡＭ１６１とオプションＤＲＡＭ１６２が、外部バスを介して接続されている。
【００４５】
本実施形態では、外部バスは、データバスグループＡと、データバスグループＢとに分けられる。データバスグループＡは、メモリーコントローラー１５０と、オプションＤＲＡＭ１６２の第１の記憶領域（ＤＲＡＭチップ）と、標準ＤＲＡＭ１６１の第１の記憶領域（ＤＲＡＭチップ）とを接続する。データバスグループＢは、メモリーコントローラー１５０と、オプションＤＲＡＭ１６２の第２の記憶領域（ＤＲＡＭチップ）とを接続し、標準ＤＲＡＭ１６１には接続されていない。
【００４６】
データバスグループＡのデータバス幅（帯域）は、ＷＡビットである。データバスグループＢのデータバス幅（帯域）は、ＷＢビットである。従って、メモリーコントローラー１５０とオプションＤＲＡＭ１６２の間のデータバス幅は、（ＷＡ＋ＷＢ）ビットであり、メモリーコントローラー１５０と標準ＤＲＡＭ１６１の間のデータバス幅よりも広い（広帯域である）。
【００４７】
本実施形態では、具体例として、ＷＡ＝１６、ＷＢ＝１６、ＷＡ＋ＷＢ＝３２であるものとする。また、標準ＤＲＡＭ１６１の容量は、１２８ＭＢであり、オプションＤＲＡＭ１６２の容量は、５１２ＭＢ（２５６ＭＢ×２）であるものとする。なお、標準ＤＲＡＭ１６１の第１の記憶領域と、オプションＤＲＡＭ１６２の第１の記憶領域には、ＷＡビット単位でアクセス可能であり、オプションＤＲＡＭ１６２の第２の記憶領域には、ＷＢビット単位でアクセス可能である。
【００４８】
また、本実施形態では、オプションＤＲＡＭ１６２のチップセレクト単位は、ＤＲＡＭ単位（５１２ＭＢ）、又はＤＲＡＭチップ単位（２５６ＭＢ）であり、標準ＤＲＡＭ１６１のチップセレクト単位は、ＤＲＡＭ単位（１２８ＭＢ）であるものとする。
【００４９】
なお、一般的に、電子機器のオプションＤＲＡＭの性能（バス幅、容量など）は、標準ＤＲＡＭの性能と同じか、より高くなることが多い。そのため、本実施形態でもそのような状況を想定した具体例となっている。
【００５０】
メモリーコントローラー１５０は、ＣＰＵ１４０や内部ＩＰから、ＤＲＡＭ１６０へのアクセス要求（ライト要求、リード要求など）を受信し、ＤＲＡＭ１６０へのアクセス処理を実行する。そのため、メモリーコントローラー１５０は、アドレスデコード部１５１と、コマンド制御部１５３と、データ制御部１５４と、インターフェイス１５５と、を有する。アドレスデコード部１５１は、チップセレクト変換部１５２を有する。
【００５１】
アドレスデコード部１５１は、アドレスデコードを行う。アドレスデコード部１５１は、例えば、アクセス要求とともに受け付けたアクセス先の物理アドレス情報（メモリーマップ上の相対的なアドレス）を、ＤＲＡＭ１６０に送信するアドレス情報に変換する。
【００５２】
また、アドレスデコード部１５１は、アクセス先の物理アドレス情報に基づいて、アクセス先のＤＲＡＭ（チップセレクト）を判別する。アクセス先が標準ＤＲＡＭ１６１である場合、標準ＤＲＡＭ１６１を選択する信号（チップセレクト信号ＣＳ１）を、標準ＤＲＡＭ１６１に出力して供給する。アクセス先がオプションＤＲＡＭ１６２である場合、オプションＤＲＡＭ１６１を選択する信号（チップセレクト信号ＣＳ２）を、オプションＤＲＡＭ１６２に出力して供給する。それから、アドレスデコード部１５１は、変換したアドレス情報を、選択されたＤＲＡＭ又はＤＲＡＭチップに出力して供給する。
【００５３】
なお、アドレスデコード部１５１は、ＤＲＡＭ内のＤＲＡＭチップ単位でチップセレクトをする必要がある場合、アクセス対象のＤＲＡＭチップに対してチップセレクト信号を供給する。例えば、オプションＤＲＡＭ１６２のチップセレクト単位がＤＲＡＭチップである場合、アドレスデコード部１５１は、アクセス先の記憶領域（ＤＲＡＭチップ）に対してチップセレクト信号を出力して供給する。
【００５４】
本実施形態では、アドレスデコード部１５１は、チップセレクト変換部１５２により、チップセレクト信号の出力先を判別する。
【００５５】
チップセレクト変換部１５２は、アクセス先の物理アドレス情報に基づいて、チップセレクト信号の出力先を決定する。そのため、チップセレクト変換部１５２は、例えば、コントローラー１１０に装着されている各ＤＲＡＭ（標準ＤＲＡＭ１６１、及びオプションＤＲＡＭ１６２）のメモリー領域の割り当て情報を有する。割り当て情報は、例えば、所定のＤＲＡＭ領域の基準アドレスであるベースアドレスから、所定の順に、各ＤＲＡＭのサイズに対応する領域を割り当てたものである。
【００５６】
ここで、チップセレクト変換部１５２は、例えば、電子機器１００の起動処理時に、コントローラー１１０のＤＲＡＭ構成を検査する。そして、検出したＤＲＡＭ構成に応じて、各ＤＲＡＭの領域の割り当て順序を異ならせる。
【００５７】
詳細は図３〜図５を参照して後述するが、本実施形態では、オプションＤＲＡＭ１６２のバス幅が標準ＤＲＡＭ１６１のバス幅よりも大きい場合、ベースアドレス側から順に、オプションＤＲＡＭ１６２の領域、標準ＤＲＡＭ領域１６１領域を並べて割り当てる（以下、この順序の割り当て設定を「優先アクセス設定」ともいう。）。
【００５８】
一方、オプションＤＲＡＭ１６２のバス幅が標準ＤＲＡＭ１６１のバス幅以下の場合、各ＤＲＡＭのチップセレクト単位の容量を比較する。そして、オプションＤＲＡＭ１６２のチップセレクト単位（第１の記憶領域と第２の記憶領域の両方、又は、記憶領域ごと）の容量が、標準ＤＲＡＭ１６１のチップセレクト単位（第１の記憶領域）の容量よりも大きい場合、ベースアドレス側から順に、オプションＤＲＡＭ１６２の領域、標準ＤＲＡＭ領域１６１領域を並べて割り当てる（優先アクセス設定）。
【００５９】
一方、オプションＤＲＡＭ１６２のチップセレクト単位の容量が、標準ＤＲＡＭ１６１のチップセレクト単位の容量以下の場合、ベースアドレス側から順に、標準ＤＲＡＭ領域１６１領域、オプションＤＲＡＭ１６２の領域、を並べて割り当てる（以下、この順序の割り当て設定を「通常アクセス設定」ともいう。）。
【００６０】
チップセレクト変換部１５２は、上記の割り当て情報を参照して、アドレスデコード部１５１から与えられたアクセス先の物理アドレス情報に対応するチップセレクト信号の出力先を決定する。なお、チップセレクト単位がＤＲＡＭチップごとである場合には、その単位でチップセレクト信号の出力先を決定する。
【００６１】
コマンド制御部１５３は、コマンド制御を行う。コマンド制御部１５３は、例えば、アクセス要求に従って、アドレスデコード部１５１で変換されたアドレス情報が示すＤＲＡＭ１６０の記憶領域に対するデータ操作（ライト、リードなど）を実行するためのコマンドを発行する。
【００６２】
データ制御部１５４は、データの制御を行う。データ制御部１５４は、例えば、アクセス要求がライト要求である場合、ライトコマンドの対象のライトデータをＤＲＡＭ１６０に転送して書き込む。また、例えば、アクセス要求がリード要求である場合、リードコマンドの対象のリードデータをＤＲＡＭ１６０から読み出して受信する。
【００６３】
インターフェイス１５５は、メモリーコントローラー１５０とＤＲＡＭ１６０との間の入出力を制御する。例えば、インターフェイス１５５は、チップセレクト信号、アドレス、コマンドなどのＤＲＡＭ１６０への送信を、信号線を介して制御する。また、インターフェイス１５５は、ＤＲＡＭ１６０とのデータの送受信（書き込み、読み出しなど）を、外部バス（データバスグループＡ、データバスグループＢ）を介して制御する。
【００６４】
上記の電子機器１００の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。また、一般的な電子機器が備える構成を排除するものではない。また、上記の電子機器１００の構成は、構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。
【００６５】
次に、上記のメモリーコントローラー１５０の特徴的な動作について説明する。
【００６６】
図３は、メモリーコントローラーによるＤＲＡＭアドレス設定処理の一例を示すフロー図である。本フローは、例えば、電子機器１００の電源がオンされて、その起動処理中に実行される。もちろん、他のタイミングで実行されてもよく、例えば、ユーザーの指示に応じて実行されてもよい。
【００６７】
ＤＲＡＭアドレス設定処理が開始されると、チップセレクト変換部１５２は、オプションＤＲＡＭを検出したか否かを判定する（Ｓ１０）。具体的には、チップセレクト変換部１５２は、コントローラー１１０のＤＲＡＭ構成（標準ＤＲＡＭ１６１の有無、オプションＤＲＡＭ１６２の有無、各ＤＲＡＭの性能（バス幅、容量、チップセレクト単位などの各種構成情報））を検査し、判定を行う。なお、本フローでは、標準ＤＲＡＭ１６１は常に検出されるものとする。
【００６８】
オプションＤＲＡＭ１６２を検出した場合（Ｓ１０：ＹＥＳ）、チップセレクト変換部１５２は、オプションＤＲＡＭ１６２のバス幅が標準ＤＲＡＭ１６１のバス幅よりも大きいか否かを判定する（Ｓ２０）。なお、本実施形態では、オプションＤＲＡＭ１６２のバス幅は、３２ビット、標準ＤＲＡＭ１６１のバス幅は、１６ビットである（図２参照）。
【００６９】
オプションＤＲＡＭ１６２のバス幅が標準ＤＲＡＭ１６１のバス幅以下である場合（Ｓ２０：ＮＯ）、チップセレクト変換部１５２は、オプションＤＲＡＭ１６２の容量が標準ＤＲＡＭ１６１の容量よりも大きいか否かを判定する（Ｓ３０）。具体的には、チップセレクト変換部１５２は、Ｓ１０で取得した各ＤＲＡＭの構成情報に基づいて、各ＤＲＡＭのチップセレクト単位の容量を特定し、比較する。
【００７０】
オプションＤＲＡＭ１６２のバス幅が標準ＤＲＡＭ１６１のバス幅よりも大きい場合（Ｓ２０：ＹＥＳ）、又は、オプションＤＲＡＭ１６２のチップセレクト単位の容量が標準ＤＲＡＭ１６１のチップセレクト単位の容量よりも大きい場合（Ｓ３０：ＹＥＳ）、チップセレクト変換部１５２は、オプションＤＲＡＭ１６２をベースアドレスに設定する（優先アクセス設定）（Ｓ４０）。
【００７１】
具体的には、チップセレクト変換部１５２は、各ＤＲＡＭのメモリー領域の割り当て情報を生成する。チップセレクト変換部１５２は、例えば、図４に示すように、システム上制御可能な最大のＤＲＡＭ領域（２ＧＢ）の物理アドレスを管理する。そして、当該ＤＲＡＭ領域（２ＧＢ）の基準アドレスであるベースアドレス（0x4000_0000）から順に、オプションＤＲＡＭ１６２の領域（0x4000_0000から0x6000_0000の直前まで）、標準ＤＲＡＭ１６１の領域（0x6000_0000から0x6800_0000の直前まで）、を並べて割り当てる。なお、ＤＲＡＭ１６０以外の領域は、空き領域（0x6800_0000から0xC000_0000の直前まで）として管理する。
【００７２】
オプションＤＲＡＭ１６２が検出されなかった場合（Ｓ１０：ＮＯ）、又は、オプションＤＲＡＭ１６２のチップセレクト単位の容量が標準ＤＲＡＭ１６１のチップセレクト単位の容量以下の場合（Ｓ３０：ＮＯ）、チップセレクト変換部１５２は、標準ＤＲＡＭ１６１をベースアドレスに設定する（通常アクセス設定）（Ｓ５０）。
【００７３】
具体的には、オプションＤＲＡＭ１６２の容量が標準ＤＲＡＭ１６１の容量以下の場合（Ｓ３０：ＮＯ）、チップセレクト変換部１５２は、各ＤＲＡＭのメモリー領域の割り当て情報を生成する。チップセレクト変換部１５２は、例えば、図５に示すように、最大ＤＲＡＭ領域（２ＧＢ）の基準アドレスであるベースアドレス（0x4000_0000）から順に、標準ＤＲＡＭ１６１の領域（0x4000_0000から0x4800_0000の直前まで）、オプションＤＲＡＭ１６２の領域（0x4800_0000から0x6800_0000の直前まで）、を並べて割り当てる。なお、ＤＲＡＭ１６０以外の領域は、空き領域（0x6800_0000から0xC000_0000の直前まで）として管理する。
【００７４】
オプションＤＲＡＭ１６２が検出されなかった場合（Ｓ１０：ＮＯ）、チップセレクト変換部１５２は、例えば、ベースアドレス（0x4000_0000）から、標準ＤＲＡＭ１６１の領域（0x4000_0000から0x4800_0000の直前まで）、を割り当てる。なお、標準ＤＲＡＭ１６１以外の領域は、空き領域（0x4800_0000から0xC000_0000の直前まで）として管理する。
【００７５】
なお、本実施形態では、電子機器のオプションＤＲＡＭの性能（バス幅、容量）が、標準ＤＲＡＭの性能と同じか、より高い場合を想定している。そのため、バス幅が等しい場合に（Ｓ２０：ＮＯ）、処理をＳ３０に進めることとなる。しかし、電子機器のオプションＤＲＡＭの性能が、標準ＤＲＡＭの性能より低い場合も想定してもよい。この場合は、例えば、Ｓ２０において、バス幅が同じであれば処理をＳ３０進め、オプションＤＲＡＭのバス幅の方が小さければ処理をＳ５０に進めるようにしてもよい。もちろん、図３と同様であってもよい。
【００７６】
Ｓ４０又はＳ５０の終了後、チップセレクト変換部１５２は、ＤＲＡＭアドレス設定処理を終了する。
【００７７】
上記のように生成した割り当て情報（Ｓ４０、Ｓ５０）を参照することにより、チップセレクト変換部１５２は、アドレスデコード部１５１から与えられたアクセス先の物理アドレス情報（0x4000_0000から0x6800_0000の直前まで）が該当するＤＲＡＭ（ＤＲＡ標準ＤＲＡＭ領域１６１、又はオプションＤＲＡＭ１６２）を特定することができる。チップセレクト単位がＤＲＡＭチップごとである場合には、物理アドレス情報が該当するＤＲＡＭチップを特定することができる。そして、チップセレクト変換部１５２は、チップセレクト信号の出力先を決定することができる。
【００７８】
上述の図２のフローの各処理単位は、メモリーコントローラー１５０の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。メモリーコントローラー１５０の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【００７９】
以上、本発明の第一実施形態の一例について説明した。本実施形態によれば、バス幅などの性能の異なる複数のメモリーを搭載する電子機器において、そのシステムの性能をより発揮し易くすることができる。
【００８０】
すなわち、本実施形態では、オプションメモリーと標準メモリーのバス幅を比較し、オプションメモリーのバス幅の方が大きい場合に、メモリーマップにおけるベースアドレス側から順に、オプションメモリー領域、標準メモリー領域を割り当てている。このような構成によれば、バス幅の大きいオプションメモリーの方がより多く使用される可能性が高まる（オプションメモリーの使用の優先度が高まる）ので、システムの性能を発揮し易くなる。
【００８１】
例えば、通常、ＣＰＵは、プログラムをＤＲＡＭに展開して実行する。また、画像データなどのサイズの大きなデータも、ワークメモリーとしてのＤＲＡＭに展開されることがある。そのため、より多く使用される領域を含むＤＲＡＭのバス幅が大きくなれば、ＤＲＡＭへのアクセス効率が向上する。そして、システムのパフォーマンス向上、大きなデータの扱いの高速化を図ることができる。例えば、プリンターであれば、ユーザーが印刷指示をしてから印刷が開始されるまでの時間や、印刷時間などを短縮することができる。また、他の機器であれば、例えば、スキャン時間、コピー時間などを短縮することができる。
【００８２】
また、本実施形態では、オプションメモリーのバス幅が標準メモリー以下である場合、オプションメモリーと標準メモリーのチップセレクト単位の容量を比較し、比較結果に応じて、チップセレクト単位の容量の大きい方のメモリーの領域をベースアドレス側に割り当てている。このような構成によれば、チップセレクトの切り替えが起きる頻度をできる限り少なくすることにより、システムの性能の低下を防ぐことができる。
【００８３】
具体的には、例えば、チップセレクト単位の容量が小さい方の第一のメモリーがベースアドレス側に割り当てられ、その次にチップセレクト単位の容量の大きい方の第二のメモリーが割り当てられた場合を考える。この場合、第一のメモリーのチップセレクト単位の容量が、使用量に対して足りなくなる可能性が高まる。この場合、第一のメモリー内のチップ間、又は第一のメモリーと第二のメモリーとの間で、チップセレクトが切り替えられる頻度が高まる。その結果、メモリーアクセス時のオーバーヘッドが発生することになる。なお、一般的に、一つのチップセレクトに継続的にアクセスする場合の方が、複数のチップセレクト間を切り替えながらアクセスする場合よりも効率が高い。
【００８４】
＜第二実施形態＞
次に、本発明の第二実施形態について、第一実施形態と異なる点を中心に説明する。
【００８５】
第一実施形態では、メモリーコントローラー１５０により、ＤＲＡＭ構成に応じて、各ＤＲＡＭの領域の割り当て順序を変更している。これに対し、本実施形態では、メモリーコントローラー１５０では、各ＤＲＡＭ領域の割り当て順序を通常アクセス設定に固定したまま、ＣＰＵによりバス幅の広いメモリーが優先的に使用されるように制御する。
【００８６】
例えば、メモリーコントローラー１５０は、電子機器１００の起動処理時に、コントローラー１１０のＤＲＡＭ構成を検査する。オプションＤＲＡＭ１６２を検出した場合には、固定的に、ベースアドレス側から順に、標準ＤＲＡＭ１６１の領域、オプションＤＲＡＭ１６２の領域を割り当てる（通常アクセス設定）。
【００８７】
一方、ＣＰＵ１４０は、電子機器１００の起動処理時に、コントローラー１１０のＤＲＡＭ構成を検査する。なお、ＤＲＡＭ構成の検査は、ＣＰＵ１４０以外のデバイス、例えば、メモリーコントローラー１５９が行ってもよい。それから、ＣＰＵ１４０は、検出したＤＲＡＭ構成に応じて、ＣＰＵ１４０がＤＲＡＭ１６０へアクセスする際に使用する割り当て情報を生成する（メモリーコントローラー１５０の割り当て情報は変更せずに、各ＤＲＡＭ領域の順序を論理的に並び替える）。
【００８８】
図６は、ＣＰＵによるＤＲＡＭアドレス設定処理の一例を示すフロー図である。本フローは、例えば、電子機器１００の電源がオンされて、起動処理中に、メモリーコントローラー１５０の割り当て情報の設定（通常アクセス設定）の終了後、ＣＰＵにおいて実行される。もちろん、他のタイミングで実行されてもよく、例えば、ユーザーの指示に応じて実行されてもよい。
【００８９】
Ｓ１１０〜Ｓ１３０は、図３のＳ１０〜Ｓ３０と同様であるので説明を省略する。ただし、各処理は、ＣＰＵ１４０が主体となって実行する。
【００９０】
オプションＤＲＡＭ１６２のバス幅が標準ＤＲＡＭ１６１のバス幅よりも大きい場合（Ｓ１２０：ＹＥＳ）、又は、オプションＤＲＡＭ１６２のチップセレクト単位の容量が標準ＤＲＡＭ１６１のチップセレクト単位の容量よりも大きい場合（Ｓ１３０：ＹＥＳ）、ＣＰＵ１４０は、ベースアドレスをオプションＤＲＡＭ１６２に変更する（優先アクセス設定）（Ｓ４０）。
【００９１】
具体的には、ＣＰＵ１４０は、各ＤＲＡＭのメモリー領域の論理的な割り当て情報を生成する。例えば、図７に示すように、ＣＰＵ１４０は、ベースアドレスを、オプションＤＲＡＭ１６２の領域の先頭（0x4800_0000（元のベースアドレスに標準ＤＲＡＭ１６１のサイズを加算したアドレス））に設定する。また、オプションＤＲＡＭ１６２の領域（0x4800_0000から0x6800_0000の直前まで）の次に、標準ＤＲＡＭ１６１の領域（0x4000_0000から0x4800_0000の直前まで）が続くように設定する。すなわち、オプションＤＲＡＭ１６２の領域、標準ＤＲＡＭ１６１の領域、の順に連続領域となるように論理的に並べ替えた割り当て情報を生成する。
【００９２】
オプションＤＲＡＭ１６２が検出されなかった場合（Ｓ１１０：ＮＯ）、又は、オプションＤＲＡＭ１６２のチップセレクト単位の容量が標準ＤＲＡＭ１６１のチップセレクト単位の容量以下の場合（Ｓ１３０：ＮＯ）、ＣＰＵは、ベースアドレスの変更を行わない（通常アクセス設定）（Ｓ１５０）。
【００９３】
Ｓ１４０又はＳ１５０の終了後、ＣＰＵ１４０は、ＤＲＡＭアドレス設定処理を終了する。
【００９４】
上記のように生成した割り当て情報（Ｓ１４０）を用いることにより、ＣＰＵ１４０は、ＤＲＡＭのメモリー領域を、ＣＰＵで論理的に設定したベースアドレス側（オプションＤＲＡＭ１６２の領域）から順に使うことができる。例えば、ＣＰＵ１４０は、各種のプログラムやデータを格納するため、ベースアドレス側から順にメモリー領域を使用する。使用量が、オプションＤＲＡＭ１６２の領域を超えた場合は、続けて標準ＤＲＡＭ１６１の領域を使用する。なお、アクセス要求を受信した際のアドレスデコード部１５１の動作は、第一実施形態で説明したとおりである。
【００９５】
なお、ＣＰＵ１４０以外の内部ＩＰについても、ＣＰＵ１４０と同様に割り当て情報を生成して、使用するようにしてもよい。
【００９６】
上述の図６のフローの各処理単位は、ＣＰＵ１４０の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。ＣＰＵ１４０の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【００９７】
以上、本発明の第二実施形態の一例について説明した。本実施形態では、第一実施形態と同様の効果を、メモリーコントローラーによるハードウェア処理ではなく、ＣＰＵによりソフトウェア処理により実現することができる。ＣＰＵにより実現することで、メモリーコントローラー等のハードウェア設計の変更がなくなる又は少なくなる。
【００９８】
なお、上記の本発明の実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正および変形例が当業者にとって明らかである。
【００９９】
例えば、上記の実施形態は、ＤＲＡＭが三つ以上の場合にも応用できる。例えば、標準ＤＲＡＭが一つ、オプションＤＲＡＭが複数、の場合などである。この場合も、各ＤＲＡＭのバス幅を比較し、ベースアドレスから、バス幅の大きい順に、各ＤＲＡＭの領域を割り当てればよい。バス幅が等しいＤＲＡＭについては、チップセレクト単位の容量を比較し、ベースアドレスに近い側から、チップセレクト単位の容量の大きい順に、各ＤＲＡＭ領域を割り当てればよい。
【０１００】
なお、本発明は、ＤＲＡＭだけでなく、バス幅などの性能の異なるメモリーを備える電子機器、メモリーシステム等に適用できる。
【符号の説明】
【０１０１】
１００：電子機器、１１０：コントローラー、１２０：エンジン部、１３０：ＳＯＣ、１４０：ＣＰＵ、１５０：メモリーコントローラー、１５１：アドレスデコード部、１５２：チップセレクト変換部、１５３：コマンド制御部、１５４：データ制御部、１５５：インターフェイス、１６０：ＤＲＡＭ、１６１：標準ＤＲＡＭ、１６２：オプションＤＲＡＭ、１７０：Ｉ／Ｏ制御ＡＳＩＣ、２００：情報処理装置
【図１】
0005790532.tif 000002
【図２】
0005790532.tif 000003
【図３】
0005790532.tif 000004
【図４】
0005790532.tif 000005
【図５】
0005790532.tif 000006
【図６】
0005790532.tif 000007
【図７】
0005790532.tif 000008