(57)【特許請求の範囲】
【請求項１】
ＪＥＤＥＣ準拠ＤＩＭＭ及びＪＥＤＥＣ非準拠ＤＩＭＭが着脱可能に装着されるＤＩＭＭコネクタ手段と、
前記ＤＩＭＭコネクタ手段に装着されているＤＩＭＭがＪＥＤＥＣ準拠ＤＩＭＭとＪＥＤＥＣ非準拠ＤＩＭＭのいずれであるかのＤＩＭＭの種別を判別するＤＩＭＭ種別判別手段と、
前記ＤＩＭＭに搭載され該ＤＩＭＭの構成情報及び搭載メモリチップの情報を格納するＳＰＤに格納されている情報を読み取って、該ＳＰＤの情報及び前記ＤＩＭＭ種別判別手段の判別結果に基づいて該ＤＩＭＭのアクセス制御を行うメモリ制御手段と、を備え、
前記メモリ制御手段は、前記ＤＩＭＭ種別判断手段による判別結果に応じて、前記ＳＰＤの設定値に不正があるかを判断し、その判断結果に応じて前記ＤＩＭＭのアクセス制御を行うことを特徴とするメモリシステム。
【請求項２】
前記メモリ制御手段は、前記ＤＩＭＭがＪＥＤＥＣ非準拠ＤＩＭＭであると判別された場合にのみ、前記ＳＰＤの設定値に不正があるかを判断することを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記ＪＥＤＥＣ非準拠ＤＩＭＭは、
少なくとも複数のRankを有しRank毎に容量の異なるメモリチップが搭載されているＤＩＭＭと、２つのメモリチップと終端抵抗を搭載して３２ｂｉｔで１RankとなるＤＩＭＭと、を含んでいることを特徴とする請求項１または請求項２記載のメモリシステム。
【請求項４】
前記ＤＩＭＭ種別判別手段は、
前記ＳＰＤ情報に基づいて前記ＤＩＭＭの種別を判別することを特徴とする請求項１から請求項３のいずれかに記載のメモリシステム。
【請求項５】
前記ＤＩＭＭ種別判別手段は、
前記ＤＩＭＭの所定のピンに対して設定されている特定のピン状態に基づいて前記ＤＩＭＭの種別を判別することを特徴とする請求項１から請求項４のいずれかに記載のメモリシステム。
【請求項６】
ＤＩＭＭコネクタ手段に着脱可能に装着されているＤＩＭＭがＪＥＤＥＣ準拠ＤＩＭＭとＪＥＤＥＣ非準拠ＤＩＭＭのいずれであるかのＤＩＭＭの種別を判別するＤＩＭＭ種別判別処理ステップと、
前記ＤＩＭＭに搭載され該ＤＩＭＭの構成情報及び搭載メモリチップの情報を格納するＳＰＤに格納されている情報を読み取って、該ＳＰＤの情報及び前記ＤＩＭＭ種別判別処理ステップでの判別結果に基づいて該ＤＩＭＭのアクセス制御を行うメモリ制御処理ステップと、を有し、
前記メモリ制御処理ステップにおいて、前記ＤＩＭＭ種別判断処理ステップでの判別結果に応じて、前記ＳＰＤの設定値に不正があるかを判断し、その判断結果に応じて前記ＤＩＭＭのアクセス制御を行うことを特徴とするメモリ制御方法。
【請求項７】
コンピュータに、
ＤＩＭＭコネクタ手段に着脱可能に装着されているＤＩＭＭがＪＥＤＥＣ準拠ＤＩＭＭとＪＥＤＥＣ非準拠ＤＩＭＭのいずれであるかのＤＩＭＭの種別を判別するＤＩＭＭ種別判別処理と、
前記ＤＩＭＭに搭載され該ＤＩＭＭの構成情報及び搭載メモリチップの情報を格納するＳＰＤに格納されている情報を読み取って、該ＳＰＤの情報及び前記ＤＩＭＭ種別判別処理での判別結果に基づいて該ＤＩＭＭのアクセス制御を行うメモリ制御処理と、を実行させ、
前記メモリ制御処理において、前記ＤＩＭＭ種別判断処理での判別結果に応じて、前記ＳＰＤの設定値に不正があるかを判断し、その判断結果に応じて前記ＤＩＭＭのアクセス制御を行うことを特徴とするメモリ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステム、メモリ制御方法及びメモリ制御プログラムに関し、詳細には、高速メモリを制御するメモリシステム、メモリ制御方法及びメモリ制御プログラムに関する。
【背景技術】
【０００２】
近年、プリンタ装置、複合装置、スキャナ装置等の画像処理装置及びコンピュータ等の情報処理装置においては、処理の高速化及びメモリの大容量化が進み、高速で大容量の揮発性メモリとして、ＤＤＲ３−ＳＤＲＡＭ（Double-Data-Rate3 Synchronous Dynamic Random Access Memory）が用いられることが多くなってきている。ＤＤＲ３−ＳＤＲＡＭは、ＤＤＲ−ＳＤＲＡＭから派生して、低電圧・高クロック動作化されることで、ＤＤＲ２−ＳＤＲＡＭ、ＤＤＲ３−ＳＤＲＡＭへと進化してきたものであり、ＳＤＲＡＭは、システムバスに同期して動作するＤＲＡＭ（Dynamic Random Access Memory）である。
【０００３】
ＤＤＲ３−ＳＤＲＡＭは、現在、主に、１Ｇｂと２Ｇｂが販売されているが、ＤＩＭＭ（Dual Inline Memory Module）として搭載されており、ＤＩＭＭ規格は、ＪＥＤＥＣ（Joint Electron Device Engineering Council）で標準化が行われていて、搭載されるＳＲＡＭチップの種類毎に多種の規格が存在する。ＤＲＡＭの種類としては、例えば、ＳＤＲ−ＳＲＡＭ（Single Data Rate SDRAM）、ＤＤＲ１−ＳＲＡＭ、ＤＤＲ２−ＳＲＡＭ及びＤＤＲ３−ＳＲＡＭ等があり、ＪＥＤＥＣで規定されているＤＤＲ３のＤＩＭＭに対してより小さなサイズでモジュールを提供するための規格であるＳＯ−ＤＩＭＭ（small outline dual in-line memory module）としては、以下のようなものがある。これらは、全て６４bit用のＤＩＭＭとして定義されており、基本的に、ＤＩＭＭインターフェイスは、アドレス、データ、制御信号からなっている。
【０００４】
Rawcard-A（２Rank  ×１６  ＳＲＡＭ）
Rawcard-B（１Rank  ×８  ＳＲＡＭ）
Rawcard-C（１Rank  ×１６  ＳＲＡＭ）
Rawcard-D（２Rank  ×８  ｓｔａｃｋｅｄ  ＳＲＡＭ）
Rawcard-F（２Rank  ×８  ＳＲＡＭ）
したがって、ＤＤＲ３−ＳＲＡＭの容量が１チップ毎に、１Ｇｂまたは２Ｇｂ（１Ｇｂ／２Ｇｂ）であるものとすると、実現可能な１ＤＩＭＭでの容量は、
Rawcard-A（２Rank  ×１６  ＳＲＡＭ）→１ＧＢ／２ＧＢ（デバイス８個）
Rawcard-B（１Rank  ×８  ＳＲＡＭ）→５１２ＭＢ／１ＧＢ（デバイス８個）
Rawcard-C（１Rank  ×１６  ＳＲＡＭ）→５１２ＭＢ／１ＧＢ（デバイス４個）
Rawcard-D（２Rank  ×８  ｓｔａｃｋｅｄ  ＳＲＡＭ）→１ＧＢ／２ＧＢ（デバイス８個）
Rawcard-F（２Rank  ×８  ＳＲＡＭ）→１ＧＢ／２ＧＢ（デバイス１６個）
となる。なお、現在、３２bitでのＤＤＲ３−ＳＲＡＭのＳＯ−ＤＩＭＭの規定は存在していない。
【０００５】
すなわち、ＳＯ−ＤＩＭＭにおいて、１ＤＩＭＭでの容量のバリエーションは、デバイスを８個使用した場合には、５１２ＭＢ、１ＧＢ、２ＧＢとなり、デバイスを４個使用した場合には、５１２ＭＢ、１ＧＢとなる。ＪＥＤＥＣ  Rawcard-Aまたは、ＪＥＤＥＣ  Rawcard-Bである必要がある。
【０００６】
すなわち、６４bitのバス幅で、１ＧＢから２ＧＢの間の容量で足りているシステムにおいては、２ＧＢを使用し、低容量の５１２ＭＢを使用する場合であっても、最低４つのデバイスを必要として、５１２ＭＢ未満の容量に対しては、５１２ＭＢを使用するしか選択方法がないという状況となっている。その結果、コストの観点から非常に無駄なシステムとなってしまっている。
【０００７】
また、メモリコントローラだけでなく、メモリ自体も、ＤＤＲ１→ＤＤＲ２→ＤＤＲ３へと変遷しており、古いデバイスであるＤＤＲ１等は、利用することが困難になってきている。
【０００８】
そして、従来、高周波動作に対応するとともに、プリント基板のパターン設計を容易にすることを目的として、ＳＲＡＭ−ＤＩＭＭモジュール外部で、ＣＳ（Chip Select）０とＣＳ２、ＣＳ１とＣＳ３を接続し、外部から接続するＤＱＭ（Data Mask）信号を近い２グループとすることで、データ信号の信号配線の差を少なくして、信号の遅延や反射を抑えることが開示されている（特許文献１参照）。
【０００９】
すなわち、この従来技術は、例えば、ＳＤＲ−ＳＲＡＭの６４bit用ＤＩＭＭを３２bitで使用する場合、データ信号（Data信号）のグループとＤＱＭ信号（データマスク信号）をそれぞれ分岐させて接続し、６４bitのデータバスを半分の３２bitのデータバス幅として使用することを可能にしている。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、ＪＥＤＥＣの規定では、ＤＤＲ３−ＳＲＡＭ等の６４bit対応のＤＩＭＭは、１Ｇｂ、２Ｇｂ等の大容量のメモリであり、このようなＤＩＭＭの挿入されるインターフェイスとして、ＳＯ−ＤＩＭＭ等の小サイズモジュール用のインターフェイスを用いる場合であっても、上記公報記載の従来技術の６４bitを３２bitの変換方法を用いると、バス幅は３２bitになるが、ＤＩＭＭに搭載されるＤＲＡＭデバイス等のメモリチップ自体の個数は変わらないため、メモリシステムとして必要とするメモリ容量が低容量であるときに、メモリ容量をメモリシステムとして必要なメモリ容量に抑えることができず、コストを抑制する上で、改良の必要があった。
【００１１】
そこで、本発明は、ＪＥＤＥＣ準拠とＪＥＤＥＣ非準拠の双方のＤＩＭＭを、適切に判別して、安価にかつ適切にメモリアクセスすることを目的としている。
【課題を解決するための手段】
【００１２】
本発明は、上記目的を達成するために、ＤＩＭＭコネクタ手段に着脱可能に装着されているＤＩＭＭがＪＥＤＥＣ準拠ＤＩＭＭとＪＥＤＥＣ非準拠ＤＩＭＭのいずれであるかのＤＩＭＭの種別を判別し、該ＤＩＭＭに搭載され該ＤＩＭＭの構成情報及び搭載メモリチップの情報を格納するＳＰＤに格納されている情報を読み取って、該ＳＰＤの情報及び該ＤＩＭＭ種別判別の判別結果に基づいて該ＤＩＭＭのアクセス制御を行い、前記ＤＩＭＭ種別判断手段による判別結果に応じて、前記ＳＰＤの設定値に不正があるかを判断し、前記判断結果に応じて前記ＤＩＭＭのアクセス制御を行うことを特徴としている。
【発明の効果】
【００１３】
本発明によれば、ＪＥＤＥＣ準拠とＪＥＤＥＣ非準拠の双方のＤＩＭＭを、適切に判別して、安価にかつ適切にメモリアクセスすることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施例を適用したメモリシステムの平面図。
【図２】ＪＥＤＥＣに準拠したRawcard-AのＤＩＭＭを示す図。
【図３】ＪＥＤＥＣに準拠したRawcard-CのＤＩＭＭを示す図。
【図４】Rawcard-Aの搭載するＤＲＡＭを変更したＪＥＤＥＣ非準拠ＤＩＭＭの一例を示す図。
【図５】Rawcard-Cの搭載するＤＲＡＭを２つに変更したＪＥＤＥＣ非準拠ＤＩＭＭの一例を示す図。
【図６】ＪＥＤＥＣのＳＰＤのアドレスマップを示す図。
【図７】図６のＪＥＤＥＣのＳＰＤのアドレスマップの続きを示す図。
【図８】メモリ制御処理を示すフローチャート。
【図９】装着されたＤＩＭＭがＪＥＤＥＣオリジナルか否かをハードウェアで判断する場合の説明図。
【発明を実施するための形態】
【００１５】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１６】
図１〜図９は、本発明のメモリシステム、メモリ制御方法及びメモリ制御プログラムの一実施例を示す図であり、図１は、本発明のメモリシステム、メモリ制御方法及びメモリ制御プログラムの一実施例を適用したメモリシステム１の概略構成図である。
【００１７】
図１において、メモリシステム１は、プリント基板２上にメモリコントローラ３、ＤＩＭＭコネクタ４及びＤＩＭＭコネクタ４とメモリコントローラ３を接続するメモリ配線５が配設されている。
【００１８】
ＤＩＭＭコネクタ（ＤＩＭＭコネクタ手段）４は、ＤＩＭＭ１０が着脱可能に装着されるＳＯ−ＤＩＭＭである。ＤＩＭＭコネクタ４は、図１の右側に示すように、ＪＥＤＥＣに準拠したRawcard-AとRawcard-C、固有（ＪＥＤＥＣ非準拠）のＤＩＭＭとして、例えば、１．５ＧＢの１．５Ｇｂ−ＤＩＭＭ、５１２ＭＢ／２５６ＭＢの３２bit−ＤＩＭＭ等が選択的に装着可能となっており、ＪＥＤＥＣ準拠のRawcard-Aは、上述のように、２ＧＢか１ＧＢ、Rawcard-Cは、１ＧＢか５１２ＭＢである。
【００１９】
ＤＩＭＭコネクタ４は、ＤＩＭＭ１０が、Rawcard-A、Rawcard-Cであるときには、ＪＥＤＥＣで規定されているため、標準的なメモリであればそのまま使用することができる。
【００２０】
すなわち、ＤＩＭＭ１０が、ＪＥＤＥＣ規定のＤＤＲ３  ＳＯ−ＤＩＭＭ：Rawcard-Aの場合、図２に示すように、ｘ１６のデバイス（ＤＲＡＭ）を８個搭載する２RankのＤＩＭＭとなり、ＤＩＭＭ１０には、そのＤＩＭＭ１０の特性を記録するためのＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory ）からなるＳＰＤ（Serial Presence Detect）を搭載していて、ＳＰＤには、ＤＩＭＭ１０の構成や搭載されているチップの情報、特に、Rank毎の容量が規定されているため、基本的に、それぞれのRankは同容量、すなわち、搭載されるデバイスの容量は全て同じになる。したがって、Rawcard-Aの場合、搭載されるｘ１６のデバイス（メモリチップ）は、１Ｇｂのデバイスであれば、全体容量が１ＧＢ、２Ｇｂのデバイスであれば、全体容量が２ＧＢとなる。
【００２１】
また、ＤＩＭＭ１０が、ＪＥＤＥＣ規定のＤＤＲ３  ＳＯ−ＤＩＭＭ：Rawcard-Cの場合、図３に示すように、通常、ｘ１６のデバイス（ＤＲＡＭ）を４個搭載する１RankのＤＩＭＭとなり、２０４PinのＳＯ−ＤＩＭＭインターフェイス（ＤＩＭＭコネクタ）４に搭載されるＪＥＤＥＣ規定のＤＩＭＭの中では最小構成のＤＩＭＭであって、搭載される全容量は、搭載されるｘ１６のデバイスが、１Ｇｂのデバイスであると、５１２ＭＢの容量、２Ｇｂのデバイスであると、１ＧＢの容量となる。
【００２２】
そして、メモリシステム１は、ＤＩＭＭ１０としては、上述のように、ＪＥＤＥＣ準拠のＤＩＭＭ以外に、例えば、Rawcard-Aの場合、図４に示すように、ＤＲＡＭを、Rank毎に異なる容量のデバイスとし、Rand０には、１ＧｂのＤＲＡＭを４つ搭載するＤＩＭＭ１０ａ、Rank１には、２ＧｂのＤＲＡＭを４つ搭載するＤＩＭＭ１０ｂを用いることで、合計で、１．５ＧＢのＤＩＭＭ１０（以下、適宜、１．５ＧＢ−ＤＩＭＭという。）とすることができる。
【００２３】
すなわち、ＪＥＤＥＣに準拠しているRawcard-A（ＤＤＲ３のＳＯ−ＤＩＭＭ）の場合、図２に示したように、ｘ１６のデバイスを８個搭載する２RankのＤＩＭＭとなっており、ＤＩＭＭ１０は、そのＤＩＭＭ１０の特性を記録するためのＥＥＰＲＯＭからなるＳＰＤ１１を搭載していて、ＳＰＤ１１には、ＤＩＭＭの構成や搭載されているメモリチップ（デバイス）の情報、特に、Rank毎の容量が規定されているため、基本的に、それぞれのRankは同容量、すなわち、搭載されるデバイスの容量は全て同じになる。したがって、搭載されるｘ１６のデバイスは、１Ｇｂのデバイスであれば、全体容量が１ＧＢ、２Ｇｂのデバイスであれば、全体容量が２ＧＢとなる。このＳＰＤ１１の規定によるメモリシステム１の処理については後述する。
【００２４】
また、メモリシステム１は、ＪＥＤＥＣ規定のＤＤＲ３  ＳＯ−ＤＩＭＭ：Rawcard-Cの場合、図３に示したように、通常、ｘ１６のデバイス（ＤＲＡＭ）を４個搭載する１RankのＤＩＭＭとなり、２０４PinのＳＯ−ＤＩＭＭインターフェイスに搭載されるＪＥＤＥＣ規定のＤＩＭＭの中では最小構成のＤＩＭＭであって、搭載される全容量は、搭載されるｘ１６のデバイスが、１Ｇｂのデバイスであると、５１２ＭＢの容量、２Ｇｂのデバイスであると、１ＧＢの容量となる。
【００２５】
そして、本実施例のメモリシステム１は、ＤＩＭＭ１０としては、上述のように、ＪＥＤＥＣに準拠する場合だけでなく、図５に示すように、ＤＩＭＭ１０ｃとして、２つのデバイス（ＤＲＡＭ）のみを搭載し、残りの２つは搭載せずに、終端抵抗２１を接続することで、２つのＤＩＭＭ１０ｃで３２bitのＤＩＭＭ１０を構成している。
【００２６】
したがって、ｘ１６のデバイス（ＤＲＡＭ）を２つ搭載して、合計３２bitのバス幅を実現したＤＩＭＭ（以下、適宜、３２bit−ＤＩＭＭという。）１０として、１Ｇｂのデバイスであると、最低２５６ＭＢの容量のＤＩＭＭ１０を構成することができる。すなわち、２５６ＭＢという低容量のメモリを低価格で実現することができるとともに、２０４PinのＤＩＭＭコネクタ４は、６４bit、３２bitでアサインが変わらないため、共通のインターフェイスであるＤＩＭＭコネクタ４を使用することができる。
【００２７】
そして、メモリシステム１は、メモリコントローラ（ＤＩＭＭ種別識別手段、メモリ制御手段）３が、ＤＩＭＭコネクタ４に装着されたＤＩＭＭ１０を、ＤＩＭＭ１０のＳＰＤ１１、２２に基づいて、ＤＩＭＭ１０の情報、特に、１．５ＧＢ−ＤＩＭＭや３２bit−ＤＩＭＭが挿入されたことを認識して、挿入されたＤＩＭＭ１０に対応した使用を行う。例えば、３２bitのＤＩＭＭ１０が装着されたときには、バス幅を３２bitに切り替えて使用する。
【００２８】
ところが、１．５ＧＢ−ＤＩＭＭ、３２bit−ＤＩＭＭは、ＪＥＤＥＣで規定されている範囲外となるため、ＤＩＭＭ１０のＳＰＤ１１、２２に、１．５ＧＢ−ＤＩＭＭまたは３２bit−ＤＩＭＭであることを示す情報を付加する。
【００２９】
すなわち、ＪＥＤＥＣで規定されているＳＰＤは、図６及び図７に示すようなアドレスマップとなっており、上述のように、ＤＩＭＭ１０の構成や搭載されているメモリチップの情報等が格納されている。標準的なメモリシステムでは、電源ＯＮ時に、ＳＰＤの情報を読み出すことで、そのメモリシステムに搭載されているメモリの情報を認識して、該メモリ情報に合った設定をメモリコントローラ３に行う。
【００３０】
図６及び図７に示すＳＰＤ１１、２２において、Byte Number ３：Module Type、Byte Number ４：SDRAM Density and Banks、Byte Number ７：Module Organization、Byte Number ８：Module Memory Bus Widthがあり、本実施例のＤＩＭＭ１０は、これらのByte Numberの情報に特別な情報を記録する。
【００３１】
すなわち、Byte Number ３：Module Typeは、搭載されているＤＩＭＭ１０の種類を示す情報が格納され、ＤＩＭＭ１０には、形状も構成も異なる、ＲＤＩＭＭ、ＵＤＩＭＭ、ＳＯ−ＤＩＭＭ、Ｍｉｃｒｏ−ＤＩＭＭ等種々あるため、このByte Number ３：Module Typeで搭載しているＤＩＭＭの種類を特定している。本実施例では、ＳＯ−ＤＩＭＭを用いたメモリシステム１を取り上げているため、Byte Number ３：Module Typeには、搭載しているＤＩＭＭとして、ＳＯ−ＤＩＭＭが記録される。
【００３２】
Byte Number ４：SDRAM Density and Banksは、ＤＩＭＭ１０に搭載されているチップ毎のメモリの容量情報が格納されており、ＪＥＤＥＣのＳＰＤでは、ＤＩＭＭに搭載されている全てのＤＲＡＭ容量が同一容量であるとして設定されているため、Byte Number ４：SDRAM Density and Banksで設定されている値が、ＤＩＭＭ１０に搭載されているチップ全てが同じ容量であるとして取り扱うことになる。
【００３３】
Byte Number ７：Module Organizationは、ＤＩＭＭ１０のRankと各チップのbit幅の情報が格納される。例えば、Rawcard-Aの場合、Rank数は２、搭載されるチップはｘ１６のbit幅のチップであるので、Byte Number ７：Module Organizationに格納される情報は、２Rank／ｘ１６となる。
【００３４】
Byte Number ８：Module Memory Bus Widthは、ＤＩＭＭ１０のバス幅の情報が格納され、６４bitか、３２bitの情報が格納される。例えば、Rawcard-Aであれば、Byte Number ８：Module Memory Bus Widthには、６４bitが格納される。
【００３５】
メモリシステム１は、メモリコントローラ３が、ＳＰＤ１１、２２の情報に基づいて、ＤＩＭＭ１０を読み取ったときに、正常に使用できるか否かのチェックも行う。例えば、メモリコントローラ３は、ＳＰＤ１１、２２が、正確、かつ、確実に記載されていない場合には、立ち上げを行うことなく、エラー（ＥＲＲＯＲ）処理を行う場合がある。
【００３６】
そして、ＤＩＭＭ１０が、１．５ＧＢ−ＤＩＭＭであると、１．５ＧＢ−ＤＩＭＭは、図３に示したように、２RankのRawcard-Aを基礎として、搭載するＤＲＡＭがRank毎に容量が異なるＤＩＭＭである。ところが、チップ毎の容量を記載するByte Number ４：SDRAM Density and BanksはＤＩＭＭ１０に搭載されている全てのＤＲＡＭが対象となるため、例えば、１ＧｂをＳＰＤ１１、２２に記載した場合、メモリシステム１は、１ＧＢとしてしか認識しないことになり、問題である。
【００３７】
また、ＤＩＭＭ１０が、３２bit−ＤＩＭＭであると、３２bit−ＤＩＭＭは、図４に示したように、ＪＥＤＥＣのＳＯ−ＤＩＭＭでは、全く規定されていないＤＩＭＭとなる。すなわち、ＪＥＤＥＣでは、ＳＯ−ＤＩＭＭの３２bit自体が存在しないこととなっているため、Byte Number ３：Module Typeで、ＳＯ−ＤＩＭＭが記録されていながら、Byte Number ８：Module Memory Bus Widthで、３２bitが記録されていると、エラー（ＥＲＲＯＲ）として取り扱うことがある。
【００３８】
そこで、本実施例のメモリシステム１は、メモリコントローラ３が、後述するように、ＤＩＭＭ１０がＪＥＤＥＣ準拠のＤＩＭＭであるか、図３に示した１．５Ｇ．Ｂ−ＤＩＭＭや図５に示した３２bit−ＤＩＭＭ等のＪＥＤＥＣ非準拠のＤＩＭＭであるかを判別して、それぞれに適したメモリ情報をメモリコントローラ３に設定してメモリ制御処理を行う。
【００３９】
メモリコントローラ３は、ＣＰＵ（Central Processing Unit ）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等を備えており、ＣＰＵが、ＲＯＭ内のプログラムに基づいてＲＡＭをワークメモリとして利用しつつ、メモリアクセスを制御する。
【００４０】
すなわち、メモリシステム１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Versatile Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明のメモリ制御方法を実行するメモリ制御プログラムを読み込んでＲＯＭ等に導入することで、後述するＤＩＭＭ１０の種別を正確に判断して、ＤＩＭＭ１０の種別に適切なメモリアクセスを制御するメモリ制御方法を実行するメモリ制御装置として構築されている。このメモリ制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００４１】
次に、本実施例の作用について説明する。本実施例のメモリシステム１は、ＤＩＭＭコネクタ４に装着されたＳＯ−ＤＩＭＭのピン形式のＤＩＭＭ１０がＪＥＤＥＣ準拠（ＪＥＤＥＣオリジナル）のＤＩＭＭであるか、上記１．５Ｇ．Ｂ−ＤＩＭＭや３２bit−ＤＩＭＭ等の特有（ＪＥＤＥＣ非準拠）のＤＩＭＭであるかを判別して装着されたＤＩＭＭ１０に適したメモリ情報の設定を行なって、メモリ制御処理を行う。
【００４２】
すなわち、メモリシステム１は、通常、システムの電源がＯＮ（オン）されると、ＤＩＭＭ１０のアクセスを許可する前に、メモリコントローラ３が、ＳＰＤ１１、２２を読み取ってＳＰＤ１１、２２の設定に不正があると、ＳＰＤ１１、２２の情報のメモリコントローラ３への設定を行うことなく、エラー（ＥＲＲＯＲ）処理を行っている。このＳＰＤ１１、２２の設定の不正には、ＳＯ−ＤＩＭＭのＤＩＭＭコネクタ４の場合、ＪＥＤＥＣでは、上述のように、Rawcard-Aにおいては、ｘ１６のデバイス８個搭載する２RankのＤＩＭＭとなっていて、それに反するＳＰＤの情報は、不正となり、また、各Rank毎の容量が規定されていて、それぞれのRanは同容量、すなわち、搭載されるメモリチップの容量は全て同容量となる。また、Rawcard-Cの場合、ｘ１６のメモリチップ（デバイス）を４個搭載する１RankのＤＩＭＭであり、ｘ１６のメモリチップが１Ｇｂであれば、５１２ＭＢ、２Ｇｂのメモリチップであれば、１ＧＢが、全体の容量となる。
【００４３】
ところが、メモリシステム１は、例えば、その必要とするメモリ容量が、２ＧＢであれば、２ＧＢのRawcard-Aを１枚使用するか、１ＧＢのRawcard-Cを２枚使用することで構成することができるが、必要とするメモリ容量が、１．５ＧＢであると、１ＧＢのRawcard-Aを１枚に、５１２ＭＢのRawcard-Cを１枚足すか、１ＧＢのRawcard-Cを１枚に、５１２ＭＢのRawcard-Cを１枚足す等の２枚のＤＩＭＭを用いて構成する必要があり、２ＧＢを構成するRawcard-Aを１枚用いる場合に比較して、コストが高くつくとともに、レイアウトも大きくなり、１．５ＧＢを必要とする場合にも、従来では、２ＧＢを構成するRawcard-Aを１枚用いることとなって、不必要なメモリチップを搭載するだけでなく、コストが高くつくという問題があった。
【００４４】
そこで、本実施例のメモリシステム１は、ＤＩＭＭ１０として、ＪＥＤＥＣ準拠のＤＩＭＭ１０だけでなく、１．５ＧＢ−ＤＩＭＭ、３２bit−ＤＩＭＭ等のＪＥＤＥＣ非準拠のＤＩＭＭ１０の装着をも可能とし、装着されたＤＩＭＭ１０がＪＥＤＥＣオリジナル（ＪＥＤＥＣ準拠）のＤＩＭＭ１０であるか、固有（ＪＥＤＥＣ非準拠）のＤＩＭＭ１０であるかを、判断し、ＪＥＤＥＣオリジナルのＤＩＭＭ１０であるときには、ＳＰＤ１１、２２の情報に応じた設定をメモリコントローラ３に行ってメモリであるＤＩＭＭ１０及びメモリコントローラ３の初期設定を行なった後に、メモリアクセスを開始する。
【００４５】
そして、本実施例のメモリシステム１は、ＤＩＭＭ１０が固有のＤＩＭＭ１０であると、固有のＤＩＭＭ１０のＳＰＤ１１、２２に設定されている情報に不正がないか判断して、不正がないときには、ＳＰＤ１１、２２の情報に応じた設定をメモリコントローラ３に行ってメモリであるＤＩＭＭ１０及びメモリコントローラ３の初期設定を行なった後に、メモリアクセスを開始する。
【００４６】
すなわち、メモリシステム１は、図８に示すように、ＤＩＭＭ１０がＤＩＭＭコネクタ４に装着されている状態で、電源がオン（ＯＮ）されると、メモリコントローラ３が、シリアル通信によって、ＤＩＭＭ１０のＳＰＤ１１、２２の内容を読み込み（ステップＳ１０１）、ＤＩＭＭ１０がオリジナルのＤＩＭＭ１０であるかチェックする（ステップＳ１０２）。
【００４７】
このＪＥＤＥＣオリジナルＤＩＭＭであるか否かの判断は、例えば、図６に示したＳＰＤ１１、２２のByte Number ３：Module Typeで、ＪＥＤＥＣ上においてRESERVEになっているbitをオリジナルＤＩＭＭに割り当てておいて、メモリコントローラ３が、この値を読み出してＪＥＤＥＣオリジナルＤＩＭＭであるか否かを判断してもよいし、あるいは、ＳＰＤのＪＥＤＥＣ規定上、完全にRESERVEとなっているByte Number、例えば、Byte Number １３等に特定の値を登録しておいて、メモリコントローラ３が、このByte Numberの値を読み出すことで、オリジナルＤＩＭＭであるか否かの判断を行ってもよい。
【００４８】
また、上記方法にあっては、ＳＰＤ１１、２２の１箇所のみを調べて、ＪＥＤＥＣオリジナルＤＩＭＭであるかどうかを判別しているため、市中に出回っているＤＩＭＭが同様のＳＰＤのByteを書き換えていた場合、そのＤＩＭＭがＤＩＭＭコネクタ４にＤＩＭＭ１０として装着された場合、ＪＥＤＥＣオリジナルＤＩＭＭとして誤認識する可能性がある。
【００４９】
そこで、上記２つのＪＥＤＥＣオリジナルＤＩＭＭ有無の判断方法を合わせて用いたり、Byte Number ３とByte Number １１７−１１９の製造者情報で判断する等のように、ＳＰＤ１１、２２の複数の値で判断することにより、ＪＥＤＥＣオリジナルＤＩＭＭの判断の正確性をより一層向上させてもよい。
【００５０】
そして、ステップＳ１０２で、装着されているＤＩＭＭ１０がＪＥＤＥＣオリジナルＤＩＭＭの場合、メモリコントローラ３は、該オリジナルＤＩＭＭ１０の設定値をＳＰＤ１１、２２から読み出して（ステップＳ１０３）、メモリコントローラ３に該オリジナルＤＩＭＭ１０に合った設定を行い（ステップＳ１０４）、ＤＩＭＭ１０及びメモリコントローラ３の初期化を行って（ステップＳ１０５）、初期化が完了すると、メモリアクセスの開始を可能な状態として処理を終了する（ステップＳ１０６）。
【００５１】
ステップＳ１０２で、装着されているＤＩＭＭ１０がＪＥＤＥＣのオリジナルＤＩＭＭでないときには、メモリコントローラ３は、ＳＰＤ１１、２２の設定データに不正がないか判断する（ステップＳ１０７）。すなわち、メモリコントローラ３は、ＪＥＤＥＣで規定されていない値がＳＰＤ１１、２２に書き込まれていないか確認し、例えば、ＪＥＤＥＣの規定には、Byte7のBit3-5、2-0は共に「111」設定は無い(Reserve)こととなっているが、ＳＰＤ１１、２２のByte7のBit3-5、2-0を読み込んだときに、「111」であると、ＳＰＤ１１、２２の設定データに不正があると判断する。
【００５２】
ステップＳ１０７で、ＳＰＤ１１の設定データに不正がないときには、メモリコントローラ３は、該ＤＩＭＭ１０の設定値をＳＰＤ１１、２２から読み出してメモリコントローラ３内に設定し（ステップＳ１０８）、メモリであるＤＩＭＭ１０及びメモリコントローラ３の初期化を行って（ステップＳ１０９）、初期化が完了すると、メモリアクセスの開始を可能な状態として処理を終了する（ステップＳ１１０）。
【００５３】
ステップＳ１０７で、ＳＰＤ１１、２２の設定データに不正があると、メモリコントローラ３は、メモリシステム１の適用されている装置、例えば、複合装置の操作表示部にエラー通知表示するエラー（ＥＲＲＯＲ）処理を行ったり、デバッグ処理を行い（ステップＳ１１１）、ＤＩＭＭ１０、すなわち、メモリのアクセスを禁止して、処理を終了する（ステップＳ１１２）。
【００５４】
また、上記ＤＩＭＭ１０がＪＥＤＥＣオリジナルＤＩＭＭであるか否かの判断において、上述のように、ＤＩＭＭ１０がオリジナルのＤＩＭＭであるか否かの判断を、ＳＰＤ１１、２２の内容に基づいて行うと、判断基準をメモリコントローラ３のＲＯＭ等に格納されている内容に照らし合わせて判断することとなるため、ＲＯＭ等の内容に左右されることとなり、市中に出回っているＤＩＭＭが同様のＳＰＤのByteを書き換えていた場合、そのＤＩＭＭがＤＩＭＭコネクタ４にＤＩＭＭ１０として装着されると、ＪＥＤＥＣオリジナルＤＩＭＭとして誤認識する可能性がある。
【００５５】
そこで、ＤＩＭＭ１０がオリジナルのＤＩＭＭであるか否かの判断を、図９に示すように、ハードウェア的に行うようにしてもよい。
【００５６】
すなわち、図９において、ＪＥＤＥＣで規定されているPinのうち、１２２Pinの未接続（Non Connection）であるＮ．Ｃ端子を、オリジナルＤＩＭＭ判別用のPinとして割り当て、このPinを所定の状態、例えば、図９の右側下に図示するように、例えば、ＤＩＭＭ１０の内部でＰｕｌｌ−Ｕｐ（プルアップ）状態とし、メモリコントローラ３が、この端子がＨｉｇｈ（ハイ）かＬｏｗ（ロー）かを検知することで、ＤＩＭＭ１０がオリジナルＤＩＭＭであるか否かを判別するようにしてもよい。
【００５７】
または、ユーザが専用に使用する外部からアクセス可能なスイッチ等によって、オリジナルＤＩＭＭであるか否かを切り替えて判別制御するようにしてもよいが、この場合には、ユーザに作業を促すことになり、ユーザに手間が発生するだけでなく、ユーザが、スイッチの切り替えを忘れると、オリジナルＤＩＭＭと認識されないおそれがある。
【００５８】
このように、本実施例のメモリシステム１は、ＤＩＭＭコネクタ（ＤＩＭＭコネクタ手段）４に着脱可能に装着されているＤＩＭＭ１０がＪＥＤＥＣ準拠ＤＩＭＭとＪＥＤＥＣ非準拠ＤＩＭＭのいずれであるかのＤＩＭＭの種別をメモリコントローラ３が判別し、メモリコントローラ３が、該ＤＩＭＭ１０に搭載され該ＤＩＭＭ１０の構成情報及び搭載メモリチップ（ＤＲＡＭ等）の情報等を格納するＳＰＤに格納されている情報を読み取って、該ＳＰＤの情報及び該ＤＩＭＭ種別判別の判別結果に基づいて該ＤＩＭＭ１０のアクセス制御を行っている。
【００５９】
したがって、ＤＩＭＭコネクタ４にＪＥＤＥＣ準拠とＪＥＤＥＣ非準拠の双方のＤＩＭＭ１０を装着可能とすることができるとともに、装着されたＤＩＭＭ１０がＪＥＤＥＣ準拠とＪＥＤＥＣ非準拠のいずれであるかを適切に判別することができ、ＤＩＭＭ１０として必要なメモリ容量のメモリのみを搭載したＤＩＭＭを用いて、安価にかつ適切にメモリアクセスすることができる。
【００６０】
また、本実施例のメモリシステム１は、ＪＥＤＥＣ準拠ＤＩＭＭ及びＪＥＤＥＣ非準拠ＤＩＭＭが、ＳＯ−ＤＩＭＭであり、ＤＩＭＭコネクタ４が、該ＳＯ−ＤＩＭＭであるＪＥＤＥＣ準拠ＤＩＭＭ及びＪＥＤＥＣ非準拠ＤＩＭＭに対応したコネクタである。
【００６１】
したがって、ＪＥＤＥＣで規定されているＤＤＲ３のＤＩＭＭに対してより小さなサイズでモジュールを提供するための規格に対応したＳＯ−ＤＩＭＭを利用することができ、ＪＥＤＥＣ準拠とＪＥＤＥＣ非準拠の双方のＤＩＭＭを、適切に判別して、より一層小型で安価にメモリアクセスすることができる。
【００６２】
さらに、本実施例のメモリシステム１は、前記ＪＥＤＥＣ非準拠ＤＩＭＭが、少なくとも複数のRankを有しRank毎に容量の異なるメモリチップが搭載されているＤＩＭＭと、２つのメモリチップと終端抵抗を搭載して３２bitで１RankとなるＤＩＭＭと、を含んでいる。
【００６３】
したがって、ＪＥＤＥＣ準拠のＤＩＭＭでは実現することのできない１．５ＧＢや３２bitで１RankのＤＩＭＭを用いることができ、より一層適切なメモリ容量のＤＩＭＭを、安価にかつ適切にメモリアクセスすることができる。
【００６４】
また、本実施例のメモリシステム１は、メモリコントローラ（ＤＩＭＭ種別判別手段）３が、ＤＩＭＭ１０のＳＰＤ情報に基づいて該ＤＩＭＭの種別を判別している。
【００６５】
したがって、新たに特別な構成を用いることなく、安価かつ適切にＤＩＭＭの種別を判別することができ、より一層小型で安価にメモリアクセスすることができる。
【００６６】
さらに、本実施例のメモリシステム１は、メモリコントローラ（ＤＩＭＭ種別判別手段）３が、ＤＩＭＭ１０の所定のピン（図９では、ＮＣの１２２Pin）に対して設定されている特定のピン状態（図９では、Ｐｕｌｌ−Ｕｐ状態）に基づいて該ＤＩＭＭ１０の種別を判別している。
【００６７】
したがって、ＪＥＤＥＣ準拠とＪＥＤＥＣ非準拠の双方のＤＩＭＭを、適切に判別して、より一層小型で安価にメモリアクセスすることができる。
【００６８】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００６９】
１  メモリシステム
２  プリント基板
３  メモリコントローラ
４  ＤＩＭＭコネクタ
５  メモリ配線
１０  ＤＩＭＭ
１０ａ、１０ｂ、１０ｃ  ＤＩＭＭ
１１、２２  ＳＰＤ
【先行技術文献】
【特許文献】
【００７０】
【特許文献１】特開２００１−２４３１１４号公報
【図１】
0005703967.tif 000002
【図２】
0005703967.tif 000003
【図３】
0005703967.tif 000004
【図４】
0005703967.tif 000005
【図５】
0005703967.tif 000006
【図６】
0005703967.tif 000007
【図７】
0005703967.tif 000008
【図８】
0005703967.tif 000009
【図９】
0005703967.tif 000010