(57)【特許請求の範囲】
【請求項１】
第１のメモリーと第２のメモリーを制御するメモリー制御回路を備える電子機器であって、
前記第１のメモリーは、第１データバスを介して前記メモリー制御回路に接続され、
前記第２のメモリーは、前記第１データバスと第２データバスを介して前記メモリー制御回路に接続され、
前記第１データバスのバス幅Ｍ１と前記第２データバスのバス幅Ｍ２との和は、前記バス幅Ｍ１のａ倍であり、かつ、前記電子機器内の内部バスのバス幅Ｎと等しくなく、
前記メモリー制御回路は、
前記電子機器内の各部から前記内部バスを介して前記第２のメモリーへのアクセス要求を受け付けると、当該アクセス要求先のアドレスに基づいて前記第２のメモリーにｂ（ｂ＝Ｎ／（Ｍ１＋Ｍ２））回アクセスするためのコマンドを発行して、当該第２のメモリーにアクセスし、
前記電子機器内の各部から前記内部バスを介して前記第１のメモリーへのアクセス要求を受け付けると、当該アクセス要求先のアドレスに基づいて前記第１のメモリーにａ×ｂ（ａ×ｂ＝（Ｍ１＋Ｍ２）／Ｍ１×Ｎ／（Ｍ１＋Ｍ２）＝Ｎ／Ｍ１）回アクセスするためのコマンドを発行して、当該第１のメモリーにアクセスする、
ことを特徴とする電子機器。
【請求項２】
請求項１に記載の電子機器であって、
前記メモリー制御回路は、
前記第２のメモリーへのアクセス要求を受け付けると、当該アクセス要求先のアドレス値ｋに基づいて、「ｂ×ｋ＋（０）」から「ｂ×ｋ＋（ｂ−１）」までの各ロウアドレスにアクセスするためのコマンドを発行し、
前記第１のメモリーへのアクセス要求を受け付けると、当該アクセス要求先のアドレス値ｋに基づいて、「（ａ×ｂ）×ｋ＋（０）」から「（ａ×ｂ）×ｋ＋（（ａ×ｂ）−１）」までの各ロウアドレスにアクセスするためのコマンドを発行する、
ことを特徴とする電子機器。
【請求項３】
請求項１又は２に記載の電子機器であって、
前記第２のメモリーはＤＩＭＭ（Dual Inline Memory Module）である、
ことを特徴とする電子機器。
【請求項４】
請求項１〜３いずれか１項に記載の電子機器であって、
当該電子機器は、印刷装置、コピー機、スキャナー装置、又は、複合機である、
ことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器に関する。
【背景技術】
【０００２】
ＤＲＡＭ（Dynamic RAM）へのアクセスに関し、ＪＥＤＥＣ（Joint Electron Device Engineering Council）により標準化された制御方式では、チップセレクト毎において同一のデータバス幅のシステムでしか規定されていない（例えば、特許文献１にはチップセレクト毎に異なるデータバス幅を有するシステムについて記載されているが、制御方式については記載されていない）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１１６９６２号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従って、チップセレクトによってデータバス幅の異なるシステムにおいては、従来の制御方式では適切にＤＲＡＭにアクセスできない。
【０００５】
本発明は、チップセレクトによってデータバス幅の異なるシステムにおいて、適切にＤＲＡＭにアクセスする技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決する本発明の一態様は、第１のメモリーと第２のメモリーを制御するメモリー制御回路を備える電子機器であって、前記第１のメモリーは、第１データバスを介して前記メモリー制御回路に接続され、前記第２のメモリーは、前記第１データバスと第２データバスを介して前記メモリー制御回路に接続され、前記第１データバスのバス幅Ｍ１と前記第２データバスのバス幅Ｍ２との和は、前記バス幅Ｍ１のａ倍であり、かつ、前記電子機器内の内部バスのバス幅Ｎと等しくなく、前記メモリー制御回路は、前記電子機器内の各部から前記内部バスを介して前記第２のメモリーへのアクセス要求を受け付けると、当該アクセス要求先のアドレスに基づいて前記第２のメモリーにｂ（ｂ＝Ｎ／（Ｍ１＋Ｍ２））回アクセスするためのコマンドを発行して、当該第２のメモリーにアクセスし、前記電子機器内の各部から前記内部バスを介して前記第１のメモリーへのアクセス要求を受け付けると、当該アクセス要求先のアドレスに基づいて前記第１のメモリーにａ×ｂ（ａ×ｂ＝（Ｍ１＋Ｍ２）／Ｍ１×Ｎ／（Ｍ１＋Ｍ２）＝Ｎ／Ｍ１）回アクセスするためのコマンドを発行して、当該第１のメモリーにアクセスする、ことを特徴とする。
前記メモリー制御回路は、前記第２のメモリーへのアクセス要求を受け付けると、当該アクセス要求先のアドレス値ｋに基づいて、「ｂ×ｋ＋（０）」から「ｂ×ｋ＋（ｂ−１）」までの各ロウアドレスにアクセスするためのコマンドを発行し、前記第１のメモリーへのアクセス要求を受け付けると、当該アクセス要求先のアドレス値ｋに基づいて、「（ａ×ｂ）×ｋ＋（０）」から「（ａ×ｂ）×ｋ＋（（ａ×ｂ）−１）」までの各ロウアドレスにアクセスするためのコマンドを発行する、ことを特徴としてもよい。
前記第２のメモリーはＤＩＭＭ（Dual Inline Memory Module）である、ことを特徴としてもよい。
前記電子機器は、印刷装置、コピー機、スキャナー装置、又は、複合機である、ことを特徴としてもよい。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態が適用された電子機器のハードウェア構成の一例を示す図である。
【図２】コントローラーのハードウェア構成の一例を示す図である。
【図３】アドレス変換部のハードウェア構成の一例を示す図である。
【図４】アドレス変換に使用する変換テーブルの概略データ構造を示す図である。
【図５】Ｎ（＝３２）ビットアクセス時のアドレス変換の説明図と、ＤＲＡＭに格納されるデータのイメージを示す図である。
【図６】Ｍ１（＝１６）ビットアクセス時のアドレス変換の説明図と、ＤＲＡＭに格納されるデータのイメージを示す図である。
【図７】ＤＲＡＭへのアクセス処理を示すフロー図である。
【図８】Ｍ１（＝１６）ビットアクセス時の制御信号の波形を示す図である。
【図９】Ｎ（＝３２）ビットアクセス時の制御信号の波形を示す図である。
【図１０】標準ＤＲＡＭとオプションＤＲＡＭのデータバス幅の組み合わせについて示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態の一例を図面を参照して説明する。
【０００９】
図１は、本発明の一実施形態が適用された電子機器１００のハードウェア構成の一例を示す図である。図示するように、電子機器１００には、情報処理装置２００が接続される。
【００１０】
情報処理装置２００は、電子機器１００のホストコンピューターとして機能する。情報処理装置２００は、不図示の、ＣＰＵと、ＲＡＭと、ＲＯＭと、ハードディスク等の補助記憶装置と、ディスプレイと、キーボードやマウス等の入力装置と、通信インターフェイスと、を備えた一般的なコンピューターである。情報処理装置２００では、アプリケーションプログラムや、ドライバープログラム（例えば、プリンタードライバープログラム）が実行される。
【００１１】
電子機器１００は、例えば、一般的な印刷処理を実行するプリンターとして機能する。電子機器１００は、図示するように、電子機器１００における各種処理を制御する電子機器制御装置としてのコントローラー１１０と、印刷媒体への印刷や原稿の読み取りを実行するエンジン部１２０と、を備えている。
【００１２】
コントローラー１１０は、ＣＰＵ１４０と、メモリーコントローラー１５０と、ＤＲＡＭ１６０と、Ｉ／Ｏ（Input/Output）制御ＡＳＩＣ１７０と、を備える。コントローラー１１０は、エンジン部１２０等の各種機構を制御し、各種画像処理などを含む印刷機能、ファクシミリ機能、スキャナー機能、コピー機能等を実現する。ただし、コントローラー１１０は、この構成に限定されず、例えば、ＣＰＵ１４０をメモリーコントローラー１５０に内蔵させてもよい。
【００１３】
また、上記のＣＰＵ１４０と、メモリーコントローラー１５０と、Ｉ／Ｏ制御ＡＳＩＣ１７０と、を搭載した集積回路を、以下ではＳＯＣ（System On a Chip）１３０とよぶ。
【００１４】
ＣＰＵ１４０は、メモリーコントローラー１５０を介してＤＲＡＭ１６０にアクセスし、各種データの読み書きを行うことで各種処理を実行する。ＣＰＵ１２０は、ＤＲＡＭ１６０にアクセスするためのアクセス要求をメモリーコントローラー１５０に対して出す。
【００１５】
メモリーコントローラー１５０は、ＣＰＵ１４０、Ｉ／Ｏ制御ＡＳＩＣ１７０、エンジン部１２０から、ＤＲＡＭ１６０へのアクセスを制御する。ただし、メモリーコントローラー１５０は、ＣＰＵ１４０を介さない、ＤＲＡＭ１６０へのダイレクトメモリーアクセスを制御するようにしてもよい。
【００１６】
ＤＲＡＭ１６０は、メモリーコントローラー１５０が制御を行うメモリーである。ＤＲＡＭ１６０は、メモリーコントローラー１５０などを搭載したマザーボード上に直接接続される標準ＤＲＡＭ（On Board）１６１と、ＤＩＭＭ（Dual Inline Memory Module）のような複数のＤＲＡＭチップをプリント基板上に搭載したオプションＤＲＡＭ１６２と、を備える。
【００１７】
Ｉ／Ｏ制御ＡＳＩＣ１７０は、外部機器（情報処理装置２００など）とのデータの送受信を制御する。
【００１８】
エンジン部１２０は、印刷機能、ファクシミリ機能、スキャナー機能、コピー機能等を実現するための給排紙機構、印字機構、スキャン機構等であり、例えば、印刷エンジン、スキャナーエンジンなどを含む。
【００１９】
図２は、コントローラー１１０の構成について詳細に説明するための図である。図示するように、メモリーコントローラー１５０には、ＣＰＵ１４０や他のユニット（Ｉ／Ｏ制御ＡＳＩＣ１７０に接続されている機器、印刷エンジン１２０、などを指し、以下では「内部ＩＰ」とよぶ）が、内部バスを介して接続されている。この内部バスは、Ｎビットのデータバス幅を有している。
【００２０】
また、メモリーコントローラー１５０には、データバス幅の異なる外部バスを介して、標準ＤＲＡＭ１６１とオプションＤＲＡＭ１６２が接続されている。
【００２１】
図示するように、メモリーコントローラー１５０と標準ＤＲＡＭ１６１の間の第１の外部バスは、Ｍ１ビットのデータバス幅を有している。また、メモリーコントローラー１５０とオプションＤＲＡＭ１６２の間の第２の外部バスは、Ｍ２ビットのデータバス幅を有している。従って、メモリーコントローラー１５０とオプションＤＲＡＭ１６２の間の外部バスは、（Ｍ１＋Ｍ２）ビットのデータバス幅を有していることになり、メモリーコントローラー１５０と標準ＤＲＡＭ１６１の間の第１の外部バスよりも広域のデータバス幅を有する。
【００２２】
本実施形態では、Ｎ＝３２、Ｍ１＝１６、Ｍ２＝１６とし、Ｎ＝Ｍ１＋Ｍ２、Ｍ１＋Ｍ２＝２×Ｍ１の関係が成立しているものとする。すなわち、メモリーコントローラー１５０とオプションＤＲＡＭ１６２の間の外部バスは、３２ビットのデータバス幅を有していることになり、メモリーコントローラー１５０と標準ＤＲＡＭ１６１の間の第１の外部バスよりも２倍広域のデータバス幅を有する。
【００２３】
また、標準ＤＲＡＭ１６１には、１つのＤＲＡＭチップが搭載されている。標準ＤＲＡＭ１６１に搭載されたＤＲＡＭチップは、Ｍ１ビット単位でアクセス可能な第１の記憶領域を有している。
【００２４】
また、オプションＤＲＡＭ１６２には、２つのＤＲＡＭチップが搭載されている。オプションＤＲＡＭ１６２に搭載された２つのＤＲＡＭチップは、それぞれ、Ｍ１ビット単位でアクセス可能な第２の記憶領域と、Ｍ２ビット単位でアクセス可能な第３の記憶領域と、を有している。
【００２５】
また、メモリーコントローラー１５０は、主制御部１５１と、アドレス変換部１５２と、ライトバッファ１５３と、リードバッファ１５４と、インターフェイス１５５と、を有する。
【００２６】
主制御部１５１は、メモリーコントローラー１５０に備わる各ユニットを統括して制御する。例えば、主制御部１５１は、ＤＲＡＭ１６０へのデータの書き込み処理、ＤＲＡＭ１６０からのデータの読み出し処理、を制御する。
【００２７】
主制御部１５１は、ＤＲＡＭ１６０へのデータの書き込みを行う場合、内部バスを介してＤＲＡＭ１６０へのアクセス要求とともに、ライトデータを受け付ける。そして、主制御部１５１は、アクセス要求先の論理アドレス情報をアドレス変換部１５２に通知する。そして、主制御部１５１は、アドレス変換部１５２で変換された物理アドレス情報が示す記憶領域（ＤＲＡＭ１６０）に書き込むためのコマンドを発行する。これとともに、主制御部１５１は、ライトデータを、ＤＲＡＭ１６０に転送する。
【００２８】
ただし、主制御部１５１は、標準ＤＲＡＭ１６１に書き込む場合と、オプションＤＲＡＭ１６２に書き込む場合と、で異なる書き込み処理を行う。具体的には、主制御部１５１は、標準ＤＲＡＭ１６１に書き込みを行う場合には、Ｎビット単位で受信したライトデータを、複数に分割し、Ｍ１ビット単位で標準ＤＲＡＭ１６１に転送する。なお、本実施形態では、Ｎ＝２×Ｍ１の関係が成立しているため、主制御部１５１は、ライトデータを２分割することになるが、Ｎ＝Ｌ×Ｍ１の関係が成立する場合には、ライトデータをＬ分割する。また、主制御部１５１は、標準ＤＲＡＭ１６１に書き込みを行う場合には、標準ＤＲＡＭ１６１を選択する信号（チップセレクトＣＳ１）を標準ＤＲＡＭ１６１に供給する。
【００２９】
一方、主制御部１５１は、オプションＤＲＡＭ１６２に書き込みを行う場合には、Ｎビット単位で受信したライトデータを、そのままＮ（＝Ｍ１＋Ｍ２）ビット単位でオプションＤＲＡＭ１６２に転送する。なお、主制御部１５１は、オプションＤＲＡＭ１６２に書き込みを行う場合には、オプションＤＲＡＭ１６２を選択する信号（チップセレクトＣＳ２）をオプションＤＲＡＭ１６２に供給する。
【００３０】
また、主制御部１５１は、ＤＲＡＭ１６０からデータの読み出しを行う場合、内部バスを介してＤＲＡＭ１６０へのアクセス要求を受け付ける。そして、主制御部１５１は、アクセス要求先の論理アドレス情報をアドレス変換部１５２に通知する。そして、主制御部１５１は、アドレス変換部１５２で変換された物理アドレス情報が示す記憶領域（ＤＲＡＭ１６０）からデータを読み出すためのコマンドを発行する。これとともに、主制御部１５１は、リードデータを、ＤＲＡＭ１６０から読み出す。
【００３１】
ただし、主制御部１５１は、標準ＤＲＡＭ１６１から読み出す場合と、オプションＤＲＡＭ１６２から読み出す場合と、で異なる読み出し処理を行う。具体的には、主制御部１５１は、標準ＤＲＡＭ１６１から読み出しを行う場合には、Ｍ１ビット単位で複数回に分けて読み出したリードデータを、一括して（Ｎビット単位で）内部バスに転送する。なお、本実施形態では、Ｎ＝２×Ｍ１の関係が成立しているため、２回に分けてリードデータを標準ＤＲＡＭ１６１から読み出すことになるが、Ｎ＝Ｌ×Ｍ１の関係が成立する場合には、Ｌ回に分けて読み出す。また、主制御部１５１は、標準ＤＲＡＭ１６１からの読み出しを行う場合には、標準ＤＲＡＭ１６１を選択する信号（チップセレクトＣＳ１）を標準ＤＲＡＭ１６１に供給する。
【００３２】
一方、主制御部１５１は、オプションＤＲＡＭ１６２から読み出しを行う場合には、Ｎビット単位で読み出したリードデータを、そのままＮビット単位で内部バスに転送する。なお、主制御部１５１は、オプションＤＲＡＭ１６２からの読み出しを行う場合には、オプションＤＲＡＭ１６２を選択する信号（チップセレクトＣＳ２）をオプションＤＲＡＭ１６２に供給する。
【００３３】
ところで、アドレス変換部１５２は、アクセス要求先の論理アドレス情報を、物理アドレス情報に変換する処理を行う。ただし、アドレス変換部１５２についても、標準ＤＲＡＭ１６１にアクセスする場合と、オプションＤＲＡＭ１６２にアクセスする場合と、で異なるアドレス変換を行う。
【００３４】
図３は、アドレス変換部１５２の概略構成の一例を示す図である。図示するように、アドレス変換部１５２は、入力セレクタ１５２１と、Ｎビットアクセスアドレス変換部１５２２と、Ｍ１ビットアクセスアドレス変換部１５２３と、出力セレクタ１５２４と、を有する。
【００３５】
図示するように、入力セレクタ１５２１は、入力された論理アドレス情報を、Ｎビットアクセスアドレス変換部１５２２とＭ１ビットアクセスアドレス変換部１５２３のいずれかに転送する。具体的には、入力セレクタ１５２１は、オプションＤＲＡＭ１６２へのアクセスを要求されている場合には、入力された論理アドレス情報を、Ｎビットアクセスアドレス変換部１５２２に転送する。また、入力セレクタ１５２１は、標準ＤＲＡＭ１６１へのアクセスを要求されている場合には、入力された論理アドレス情報を、Ｍ１ビットアクセスアドレス変換部１５２３に転送する。
【００３６】
Ｎビットアクセスアドレス変換部１５２２は、入力セレクタ１５２１から転送された論理アドレス情報を、オプションＤＲＡＭ１６２にアクセスするために必要な物理アドレス情報に変換する。
【００３７】
図４は、アドレス変換の具体例を説明するための変換表を示す図である。図示するように、Ｎビットアクセスアドレス変換部１５２２は、入力セレクタ１５２１から論理アドレス情報が転送されると、転送された論理アドレス情報の値（例えば、「ｋ」）を、そのまま物理アドレス情報（ロウアドレス）に変換する。ただし、ｋは０以上の整数とする。
【００３８】
また、Ｍ１ビットアクセスアドレス変換部１５２３は、入力セレクタ１５２１から転送された論理アドレス情報を、標準ＤＲＡＭ１６１にアクセスするために必要な物理アドレス情報に変換する。
【００３９】
例えば、Ｍ１ビットアクセスアドレス変換部１５２３は、図４に示すように、入力セレクタ１５２１から論理アドレス情報が転送されると、転送された論理アドレス情報の値（例えば、「ｋ」）を、物理アドレス情報（ロウアドレス）に変換する。このとき、Ｍ１ビットアクセスアドレス変換部１５２３は、図示するように、１つの論理アドレス情報から、複数の物理アドレス情報（ロウアドレス）に変換する。ここで、変換された物理アドレス情報（ロウアドレス）は、「２×ｋ」と、「２×ｋ＋１」となる。なお、本実施形態では、Ｎ＝２×Ｍ１の関係が成立しているため、２つの物理アドレス情報に変換されるが、Ｎ＝Ｌ×Ｍ１の関係が成立する場合には、１つの論理アドレス情報からＬ個の物理アドレス情報に変換される。
【００４０】
また、出力セレクタ１５２４は、Ｎビットアドレス変換部１５２２とＭ１ビットアクセスアドレス変換部１５２３のいずれかから転送された物理アドレス情報を出力する。具体的には、出力セレクタ１５２４は、オプションＤＲＡＭ１６２へのアクセスを要求されている場合には、Ｎビットアドレス変換部１５２２から転送された物理アドレス情報を出力する。また、出力セレクタ１５２４は、標準ＤＲＡＭ１６１へのアクセスを要求されている場合には、Ｍ１ビットアドレス変換部１５２３から転送された物理アドレス情報を出力する。
【００４１】
図２に戻り、ライトバッファ１５３には、ＤＲＡＭ１６０へのライトデータが一時的に格納される。例えば、ライトバッファ１５３には、標準ＤＲＡＭ１６１へ書き込みを行う場合において、標準ＤＲＡＭ１６１に１回で転送できない残りのライトデータ（Ｎ−Ｍ１ビット）が格納される。
【００４２】
リードバッファ１５４には、ＤＲＡＭ１６０からのリードデータが一時的に格納される。例えば、リードバッファ１５４には、標準ＤＲＡＭ１６１から読み出しを行う場合において、標準ＤＲＡＭ１６１から複数回に分けて読み出されたリードデータが格納される。
【００４３】
インターフェイス１５５は、外部バス（第１の外部バス、第２の外部バス）を介してアクセス可能なＤＲＡＭ１６０とのデータのやりとり（書き込み、読み出し）を制御する。
【００４４】
図５は、以上のような構成からなるメモリーコントローラー１５０における、Ｎ（＝３２）ビットアクセス時のアドレス変換の一例と、ＤＲＡＭ１６０に格納されるデータのイメージを示す図である。
【００４５】
図示するように、オプションＤＲＡＭ１６２にＮビットアクセスする場合、メモリーコントローラー１５０は、アクセス要求先の論理アドレス「ｋ」をそのまま物理アドレス（ロウアドレス）「ｋ」に変換する。また、メモリーコントローラー１５０は、Ｎ（＝３２）ビット単位で受け付けたライトデータを、そのままオプションＤＲＡＭ１６２に転送する。そのため、Ｎビット単位で格納可能なオプションＤＲＡＭ１６２に対して、高速にデータを書き込むことが可能となる。
【００４６】
図６は、メモリーコントローラー１５０における、Ｍ１（＝１６）ビットアクセス時のアドレス変換の一例と、ＤＲＡＭ１６０に格納されるデータのイメージを示す図である。
【００４７】
図示するように、標準ＤＲＡＭ１６１にＭ１ビットアクセスする場合、メモリーコントローラー１５０は、アクセス要求先の論理アドレス「ｋ」をシフト演算することによって、「２×ｋ」の物理アドレス（ロウアドレス）として生成する。さらに、生成した物理アドレス（ロウアドレス）「２×ｋ」をインクリメントして生成される「２×ｋ＋１」の物理アドレスを、別のロウアドレスとして生成する。すなわち、メモリーコントローラー１５０は、アクセス要求先の論理アドレス「ｋ」から、複数のロウアドレス「２×ｋ」、「２×ｋ＋１」を生成する。また、メモリーコントローラー１５０は、Ｎ（＝３２）ビット単位で受け付けたライトデータを、Ｍ１（＝１６）ビットごとのライトデータに分割して、標準ＤＲＡＭ１６１（生成したロウアドレス「２×ｋ」、「２×ｋ＋１」が示すページ）にそれぞれ転送する。そのため、Ｍ１ビット単位で格納可能な標準ＤＲＡＭ１６１に対して、適切なページ（領域）に書き込むことが可能になるとともに、高速にデータを書き込むことができる。
【００４８】
以上、電子機器１００のハードウェア構成について説明した。もちろん、この構成は、本願発明の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。また、一般的な電子機器１００が備える他の構成を排除するものではない。
【００４９】
次に、上記のメモリーコントローラー１５０の特徴的な動作について説明する。
【００５０】
図７は、ＤＲＡＭ１６０へのアクセス処理を示すフロー図である。また、図８、図９は、アクセス処理中においてメモリーコントローラー１５０で入出力される信号（データ）の波形例を示す図である。
【００５１】
メモリーコントローラー１５０は、例えば、電源が投入されたタイミングやリセットされたタイミングで、メモリーコントローラー１５０の状態（以下では「ステート」とよぶ）をＩＤＬＥ状態とする。
【００５２】
メモリーコントローラー１５０は、ＩＤＥＬ状態において、内部バスを介してＣＰＵ１４０や内部ＩＰからＤＲＡＭ１６０へのアクセス要求を受け付けると、本フローを開始する。ここで、メモリーコントローラー１５０は、アクセス要求を受け付けたか否かの判別を、ＣＰＵ１４０や内部ＩＰから供給される所定の信号（ＭＥＭ＿ＲＥＱＸ）に基づいて行う。図８や図９に示すように、メモリーコントローラー１５０には、例えば、アクセス要求がないときはＨｉｇｈの信号（ＭＥＭ＿ＲＥＱＸ）が供給されている。そして、メモリーコントローラー１５０は、ＬＯＷの信号（ＭＥＭ＿ＲＥＱＸ）が供給されると、アクセス要求を受け付けたと判定する。また、図示するように、アクセス要求とともに、アクセス要求先のＤＲＡＭ１６０及びページを指定する論理アドレス情報（ＡＤＲ０）を受け付け、当該ページへの書き込みが要求されている場合には、ライトデータ（Ｗ＿ＤＡＴＡ０）も受け付ける。なお、メモリーコントローラー１５０は、アクセス要求を受け付けると、ステートをＡＣＳ状態として、ＤＲＡＭ１６０をアクティブにするためのコマンド（ＡＣＴ）を、外部バスを介して発行しておく。
【００５３】
図７に戻り、本フローを開始すると、メモリーコントローラー１５０の主制御部１５１は、アクセス要求とともに受け付けた論理アドレス情報（ＡＤＲ０）に基づいて、アクセス要求先のＤＲＡＭ１６０を判別する（ステップＳ１０１）。すなわち、主制御部１５１は、アクセス要求先のＤＲＡＭ１６０が、標準ＤＲＡＭ１６１であるかオプションＤＲＡＭ１６２であるか判別する。
【００５４】
ここで、主制御部１５１は、アクセス要求先のＤＲＡＭ１６０が標準ＤＲＡＭ１６１であると判別された場合には（Ｓ１０１；ＣＳ１）、標準ＤＲＡＭ１６１を選択する信号（チップセレクトＣＳ１）を標準ＤＲＡＭ１６１に供給して、処理をステップＳ１０２に移行する。
【００５５】
処理がステップＳ１０２に移行すると、主制御部１５１は、アクセス要求とともにライトデータ（Ｗ＿ＤＡＴＡ０）を受け付けているか否かに応じて、標準ＤＲＡＭ１６１へのアクセス要求が書き込み（ライト）要求であるか読み出し（リード）要求であるか判別する（ステップＳ１０２）。
【００５６】
ここで、主制御部１５１は、ライトデータ（Ｗ＿ＤＡＴＡ０）を受け付けている場合には書き込み（ライト）要求であると判定して（ステップＳ１０２；ライト）、処理をステップＳ１０３に移行する。一方、主制御部１５１は、ライトデータ（Ｗ＿ＤＡＴＡ０）を受け付けていない場合には読み出し（リード）要求であると判定して（ステップＳ１０２；リード）、処理をステップＳ１０６に移行する。
【００５７】
処理がステップＳ１０３に移行した場合には、主制御部１５１は、Ｎ（＝３２）ビット単位で受け付けたライトデータ（Ｗ＿ＤＡＴＡ０）を、第１の外部バス（データバス幅：Ｍ１）を介して標準ＤＲＡＭ１６１に１度に転送できるＭ１ビットのデータ（以下では「第１のライトデータ」とよぶ）と、残りのＮ−Ｍ１（＝Ｍ１）ビットのデータ（以下では「第２のライトデータ」とよぶ）と、に分割する。そして、主制御部１５１は、残りのＮ−Ｍ１ビットの第２のライトデータを、ライトバッファ１５３に蓄積する（ステップＳ１０３）。
【００５８】
そして、主制御部１５１は、標準ＤＲＡＭ１６１にデータ（第１のライトデータと第２のライトデータ）を書き込むためのライトコマンドを２回発行する（ステップＳ１０４）。
【００５９】
ここで、１回目に発行するライトコマンド（ＷＲ０）は、ステップＳ１０３で分割された第１のライトデータ（Ｍ１ビット分）を標準ＤＲＡＭ１６１に書き込むためのライトコマンドである。そして、１回目に発行するライトコマンド（ＷＲ０）に基づく第１のライトデータの書き込み先（ページ領域）は、アドレス変換部１５２のＭ１ビットアクセスアドレス変換部１５２３で変換された物理アドレス情報で指定される。この物理アドレス情報には、論理アドレス情報の値「ｋ」をシフト演算することによって生成されるロウアドレス「２×ｋ」が含まれている。
【００６０】
また、２回目に発行するライトコマンド（ＷＲ１）は、ステップＳ１０３で分割された第２のライトデータ（Ｎ−Ｍ１ビット分）を標準ＤＲＡＭ１６１に書き込むためのライトコマンドである。そして、２回目に発行するライトコマンド（ＷＲ１）に基づく第２のライトデータの書き込み先（ページ領域）は、アドレス変換部１５２のＭ１ビットアクセスアドレス変換部１５２３で変換された物理アドレス情報で指定される。この物理アドレス情報には、論理アドレス情報の値「ｋ」をシフト演算してからインクリメントすることによって生成されるロウアドレス「２×ｋ＋１」が含まれている。
【００６１】
こうすることにより、図６に示すように、標準ＤＲＡＭ１６１に対してＭ１ビット単位でデータを書き込むことができる。
【００６２】
ところで、１回目のライトコマンド（ＲＷ０）は、図８に示すように、ＡＣＳ状態から所定時間待機し（ステートＷ０、Ｗ１）、ステートがＷＣＳ状態となってから発行される。また、２回目のライトコマンド（ＲＷ１）は、ＷＣＳ状態から再び待機し（ステートＷ１）、ステートが再びＷＣＳ状態となってから発行される。
【００６３】
図７に戻り、主制御部１５１は、ステップＳ１０４でのライトコマンドの発行タイミングに合わせてデータ（第１のライトデータと第２のライトデータ）を標準ＤＲＡＭ１６１に送信する（ステップＳ１０５）。具体的には、図８に示すように、主制御部１５１は、１回目のライトコマンド（ＷＲ０）を発行してから、ステップＳ１０３で分割した第１のライトデータ（ＲＡＭ＿ＷＤ０）を、インターフェイス１５５を介して転送する。同様に、主制御部１５１は、２回目のライトコマンド（ＷＲ１）を発行してから、ステップＳ１０３でライトバッファ１５３に蓄積しておいた第２のライトデータ（ＲＡＭ＿ＷＤ１）を、インターフェイス１５５を介して転送する。
【００６４】
そして、標準ＤＲＡＭ１６１は、メモリーコントローラー１５０から転送された第１のライトデータ（ＲＡＭ＿ＷＤ０）を、ロウアドレス「２×ｋ」で指定されるページ（領域）に記憶する。また、標準ＤＲＡＭ１６１は、メモリーコントローラー１５０から転送された第２のライトデータ（ＲＡＷ＿ＷＤ１）を、ロウアドレス「２×ｋ＋１」で指定されるページ（領域）に記憶する。
【００６５】
その後、主制御部１５１は、標準ＤＲＡＭ１６１に対してプリチャージコマンド（ＰＲＥ）を発行してアクセス処理（本フロー）を終了させる。
【００６６】
また、処理がステップＳ１０２からステップＳ１０６に移行した場合には、主制御部１５１は、標準ＤＲＡＭ１６１からデータを読み出すためのリードコマンドを２回発行する（ステップＳ１０６）。
【００６７】
ここで、１回目に発行するリードコマンドは、Ｍ１ビット分のデータ（以下では「第１のリードデータ」とよぶ）を標準ＤＲＡＭ１６１から読み出すためのリードコマンドである。そして、１回目に発行するリードコマンドに基づく第１のリードデータの読み出し元（ページ領域）は、アドレス変換部１５２のＭ１ビットアクセスアドレス変換部１５２３で変換された物理アドレス情報で指定される。この物理アドレス情報には、論理アドレス情報の値「ｋ」をシフト演算することによって生成されるロウアドレス「２×ｋ」が含まれている。
【００６８】
そして、１回目のリードコマンドの発行に伴い、主制御部１５１は、ロウアドレス「２×ｋ」で指定されるページ（領域）に記憶されている第１のリードデータを、標準ＤＲＡＭ１６１から読み出す。それから、主制御部１５１は、読み出した第１のリードデータをリードバッファ１５４に蓄積する。
【００６９】
また、２回目に発行するリードコマンドは、１回目のリードコマンドの発行に伴い読み出された第１のリードデータに連続するＭ１ビット分のデータ（以下では「第２のリードデータ」とよぶ）を、標準ＤＲＡＭ１６１から読み出すためのライトコマンドである。そして、２回目に発行するリードコマンドに基づく第２のリードデータの読み出し元（ページ領域）は、アドレス変換部１５２のＭ１ビットアクセスアドレス変換部１５２３で変換された物理アドレス情報で指定される。この物理アドレス情報には、論理アドレス情報の値「ｋ」をシフト演算してからインクリメントすることによって生成されるロウアドレス「２×ｋ＋１」が含まれている。
【００７０】
そして、２回目のリードコマンドの発行に伴い、主制御部１５１は、ロウアドレス「２×ｋ＋１」で指定されるページ（領域）に記憶されている第２のリードデータを、標準ＤＲＡＭ１６１から読み出す。
【００７１】
次に、主制御部１５１は、ライトバッファ１５４に蓄積されている第１のリードデータ（Ｍ１ビット分）と、標準ＤＲＡＭ１６１から読み出したばかりの第２のリードデータ（Ｍ１ビット分）と、を合成してＮ（＝Ｍ１＋Ｍ１）ビットのデータを生成する。そして、主制御部１５１は、生成したＮビット分のデータを、内部バスを介してアクセス要求元（ＣＰＵ１４０や内部ＩＰ）に対して送信する（ステップＳ１０７）。
【００７２】
その後、主制御部１５１は、標準ＤＲＡＭ１６１に対してプリチャージコマンド（ＰＲＥ）を発行してアクセス処理（本フロー）を終了させる。
【００７３】
また、上記のステップＳ１０１において、ステップＳ主制御部１５１は、アクセス要求先のＤＲＡＭ１６０がオプションＤＲＡＭ１６２であると判別された場合には（Ｓ１０１；ＣＳ２）、オプションＤＲＡＭ１６２を選択する信号（チップセレクトＣＳ２）をオプションＤＲＡＭ１６２に供給して、処理をステップＳ１０８に移行する。
【００７４】
処理がステップＳ１０８に移行すると、主制御部１５１は、アクセス要求とともにライトデータ（Ｗ＿ＤＡＴＡ０）を受け付けているか否かに応じて、標準ＤＲＡＭ１６１へのアクセス要求が書き込み（ライト）要求であるか読み出し（リード）要求であるか判別する（ステップＳ１０８）。
【００７５】
ここで、主制御部１５１は、ライトデータ（Ｗ＿ＤＡＴＡ０）を受け付けている場合には書き込み（ライト）要求であると判定して（ステップＳ１０８；ライト）、処理をステップＳ１０９に移行する。一方、主制御部１５１は、ライトデータ（Ｗ＿ＤＡＴＡ０）を受け付けていない場合には読み出し（リード）要求であると判定して（ステップＳ１０８；リード）、処理をステップＳ１１１に移行する。
【００７６】
処理がステップＳ１０９に移行した場合には、主制御部１５１は、Ｎ（＝３２）ビット単位で受け付けたライトデータ（Ｗ＿ＤＡＴＡ０）を、第１の外部バス（データバス幅：Ｍ１）と第２の外部バス（データバス幅：Ｍ２）を介してオプションＤＲＡＭ１６２に書き込むためのライトコマンドを１回発行する（ステップＳ１０９）。
【００７７】
ここで、発行するライトコマンドは、内部バスを介して受け付けたＮビット分のデータを一度にオプションＤＲＡＭ１６２に書き込むためのライトコマンドである。そして、データの書き込み先（ページ領域）は、アドレス変換部１５２のＮビットアクセスアドレス変換部１５２２で変換された物理アドレス情報で指定される。この物理アドレス情報には、論理アドレス情報の値「ｋ」に等しいロウアドレス「ｋ」が含まれている。
【００７８】
こうすることにより、図５に示すように、オプションＤＲＡＭ１６２に対してＮ（＝Ｍ１＋Ｍ２）ビット単位でデータを書き込むことができる。
【００７９】
次に、主制御部１５１は、ステップＳ１０９でのライトコマンドの発行タイミングに合わせて、ライトデータをオプションＤＲＡＭ１６２に送信する（ステップＳ１１０）。
【００８０】
そして、オプションＤＲＡＭ１６２は、メモリーコントローラー１５０から転送されたライトデータを、ロウアドレス「ｋ」で指定されるページ（領域）に記憶する。
【００８１】
その後、主制御部１５１は、オプションＤＲＡＭ１６２に対してプリチャージコマンド（ＰＲＥ）を発行してアクセス処理（本フロー）を終了させる。
【００８２】
また、処理がステップＳ１０８からステップＳ１１１に移行した場合には、主制御部１５１は、オプションＤＲＡＭ１６２からデータを読み出すためのリードコマンドを１回発行する（ステップＳ１１１）。
【００８３】
ここで、発行するリードコマンドは、Ｎビット分のデータをオプションＤＲＡＭ１６２から一度に読み出すためのリードコマンドである。そして、データの読み出し元（ページ領域）は、アドレス変換部１５２のＮビットアクセスアドレス変換部１５２２で変換された物理アドレス情報で指定される。この物理アドレス情報には、論理アドレス情報の値「ｋ」に等しいロウアドレス「ｋ」が含まれている。
【００８４】
ここでのリードコマンドの発行に伴い、主制御部１５１は、ロウアドレス「ｋ」で指定されるページ（領域）に記憶されているリードデータを、オプションＤＲＡＭ１６２から読み出す。
【００８５】
次に、主制御部１５１は、オプションＤＲＡＭ１６２から読み出したばかりのリードデータ（Ｎビット分）を、内部バスを介してアクセス要求元（ＣＰＵ１４０や内部ＩＰ）に対して送信する（ステップＳ１１２）。
【００８６】
その後、主制御部１５１は、オプションＤＲＡＭ１６２に対してプリチャージコマンド（ＰＲＥ）を発行してアクセス処理（本フロー）を終了させる。
【００８７】
以上のアクセス処理により、チップセレクト（上記の例ではＣＳ１とＣＳ２）によってデータバス幅の異なるシステムにおいて、適切かつ高速にＤＲＡＭ１６０にアクセスすることができるようになる。
【００８８】
なお、上記した各フローの各処理単位は、メモリーコントローラー１５０を理解容易にするために、主な処理内容に応じて分割したものである。処理ステップの分類の仕方やその名称によって、本願発明が制限されることはない。メモリーコントローラー１５０が行う処理は、さらに多くの処理ステップに分割することもできる。また、１つの処理ステップが、さらに多くの処理を実行してもよい。
【００８９】
また、上記の実施形態は、本発明の要旨を例示することを意図し、本発明を限定するものではない。多くの代替物、修正、変形例は当業者にとって明らかである。
【００９０】
例えば、上記の実施形態では、メモリーコントローラー１５０には、１６（Ｍ１）ビットのデータバス幅を有する外部バスを介して標準ＤＲＡＭ１６１が接続されており、３２（Ｎ）ビットのデータバス幅を有する外部バス（第１の外部バスと第２の外部バス）を介してオプションＤＲＡＭ１６２が接続されている。しかし、本発明は、これに限定されない。
【００９１】
図１０は、メモリーコントローラー１５０と標準ＤＲＡＭ１６１の間の第１の外部バスについてのデータバス幅（Ｍ１ビット）と、メモリーコントローラー１５０とオプションＤＲＡＭ１６２の間の外部バスについてのデータバス幅（Ｎ＝Ｍ１＋Ｍ２ビット）と、の組み合わせの例を示す図である。
【００９２】
例えば、本発明は、図示するように、（Ｍ１，Ｎ）＝（４，３２）、（８，３２）、（１６，３２）、（４，６４）、（８，６４）、（１６，６４）、（３２，６４）であってもよい。
【００９３】
図示するような組み合わせである場合であっても、主制御部１５１は、標準ＤＲＡＭ１６１に書き込みを行う場合には、Ｎビット単位で受信したライトデータをＬ（＝Ｎ／Ｍ１）分割すればよい。そして、主制御部１５１は、標準ＤＲＡＭ１６１にデータを書き込むためのライトコマンドをａ回発行する。このとき、書き込み先のページ（領域）を指定するロウアドレスは、「Ｌ×ｋ」から「（Ｌ×ｋ）＋Ｌ−１」までインクリメントした整数値とすればよい。
【００９４】
また、同様に、標準ＤＲＡＭ１６１から読み出しを行う場合には、主制御部１５１は、Ｍ１ビット単位で読み出すためのリードコマンドをＬ（＝Ｎ／Ｍ１）回発行する。このとき、読み出し元のページ（領域）を指定するロウアドレスは、「Ｌ×ｋ」から「（Ｌ×ｋ）＋Ｌ−１」までインクリメントした整数値とすればよい。
【００９５】
また、上記の実施形態および上記の変形例では、内部バスのデータバス幅と、第１の外部バスのデータバス幅が等しい場合、すなわち、Ｎ＝Ｍ１＋Ｍ２が成立する場合の例について説明している。しかし、本発明は、これに限定されず、Ｎ≠Ｍ１＋Ｍ２であってもよい。ただし、メモリーコントローラー１５０とオプションＤＲＡＭ１６２の間の外部バス（データバス幅：Ｍ１＋Ｍ２）が、メモリーコントローラー１５０と標準ＤＲＡＭ１６１の間の第１の外部バス（データバス場は：Ｍ１）よりもａ（＝｛Ｍ１＋Ｍ２｝／Ｍ１）倍広域のデータバス幅を有しているものとする（すなわち、Ｍ１＋Ｍ２＝ａ×Ｍ１）。
【００９６】
このとき、主制御部１５１は、オプションＤＲＡＭ１６２にＭ１＋Ｍ２ビット単位で書き込みを行う場合には、Ｎビット単位で受信したライトデータをｂ（＝Ｎ／｛Ｍ１＋Ｍ２｝）分割しなければならない。そして、主制御部１５１は、オプションＤＲＡＭ１６２にデータを書き込むためのライトコマンドをｂ回発行する。このとき、書き込み先のページ（領域）を指定するロウアドレスは、「ｂ×ｋ」から「（ｂ×ｋ）＋ｂ−１」までインクリメントした整数値とすればよい。ただし、ｋは０以上の整数とする。
【００９７】
これに対し、主制御部１５１は、標準ＤＲＡＭ１６１にＭ１ビット単位で書き込みを行う場合、Ｎビット単位で受信したライトデータをａ×ｂ（＝Ｎ／Ｍ１）分割すればよい。そして、主制御部１５１は、標準ＤＲＡＭ１６１にデータを書き込むためのライトコマンドをａ×ｂ回発行する。このとき、書き込み先のページ（領域）を指定するロウアドレスは、「（ａ×ｂ）×ｋ」から「（ａ×ｂ）×ｋ＋（ａ×ｂ）−１」までインクリメントした整数値とすればよい。ただし、ｋは０以上の整数とする。
【００９８】
また、オプションＤＲＡＭ１６２から読み出しを行う場合には、主制御部１５１は、Ｍ１＋Ｍ２ビット単位で読み出すためのリードコマンドをｂ（＝Ｎ／｛Ｍ１＋Ｍ２｝）回発行する。このとき、読み出し元のページ（領域）を指定するロウアドレスは、「ｂ×ｋ」から「（ｂ×ｋ）＋ｂ−１」までインクリメントした整数値とすればよい。ただし、ｋは０以上の整数とする。
【００９９】
これに対し、主制御部１５１は、標準ＤＲＡＭ１６１から読み出しを行う場合、Ｍ１ビット単位で読み出すためのリードコマンドをａ×ｂ（＝Ｎ／Ｍ１）回発行する。このとき、読み出し元のページ（領域）を指定するロウアドレスは、「（ａ×ｂ）×ｋ」から「（ａ×ｂ）×ｋ＋（ａ×ｂ）−１」までインクリメントした整数値とすればよい。ただし、ｋは０以上の整数とする。
【符号の説明】
【０１００】
１００・・・電子機器、１１０・・・コントローラー、１２０・・・エンジン部、１３０・・・ＳＯＣ、１４０・・・ＣＰＵ、１５０・・・メモリーコントローラー、１５１・・・主制御部、１５２・・・アドレス変換部、１５３・・・ライトバッファ、１５４・・・リードバッファ、１５５・・・インターフェイス、１６０・・・ＤＲＡＭ、１６１・・・標準ＤＲＡＭ、１６２・・・オプションＤＲＡＭ、２００・・・情報処理装置、１５２１・・・入力セレクタ、１５２２・・・Ｎビットアクセスアドレス変換部、１５２３・・・Ｍ１ビットアクセスアドレス変換部、１５２４・・・出力セレクタ。
【図１】
0005471631.tif 000002
【図２】
0005471631.tif 000003
【図３】
0005471631.tif 000004
【図４】
0005471631.tif 000005
【図５】
0005471631.tif 000006
【図６】
0005471631.tif 000007
【図７】
0005471631.tif 000008
【図８】
0005471631.tif 000009
【図９】
0005471631.tif 000010
【図１０】
0005471631.tif 000011