(57)【特許請求の範囲】
【請求項１】
メモリコントローラと複数の記憶素子との間を複数のスロットからなるデータパケットの形態でデータの授受を行なう記憶装置であって、前記メモリコントローラにあって、集中アクセスモードか分散アクセスモードかを指定する回路と、各記憶素子にあって、分散アクセスモードが指定されたとき自記憶素子にのみ書き込みをするパケット中の任意のデ−タを選択するマスク情報を生成し、集中モードが指定されたとき前記メモリコントローラで指定された前記記憶素子の１つにおいてのみパケット中の全デ−タについて書き込みを選択するマスク情報を生成する生成回路とを備えたことを特徴とする記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理装置の記憶素子及び記憶装置の構造に係り、特に記憶素子と記憶制御機構間の高信頼性をもった高速転送に関する。
【０００２】
【従来の技術】
近年、マイクロプロセッサの動作速度の向上に伴い、主記憶装置等を構成する記憶素子(DRAM)の構造／方式に変化が生じている。従来は、DRAMチップの外部からクロックの供給を受けない非同期型のDRAMが主流であった。この非同期型RAMにおける高速化(高スループット化)技術としては、EDO方式に見られるように、DRAMのアドレスが連続する複数個のデータを単ピッチで切り替えて処理する方式が提案／採用されていた。
【０００３】
ところが、DRAMコントローラ(記憶制御機構)とDRAMの間を非同期形態の転送で行なっていては、その転送能力の向上には限界がでてくる。プロセッサスピードが数百MHzにも高速化している状況に対応するためには、コントローラとDRAM間の転送を「クロック同期型」に転換していく必要が生じてきた。
【０００４】
この背景から生まれたのが、シンクロナスDRAM(SDRAM)である。この技術は、コントローラとSDRAMに対してデータ転送などを行うための同期クロックを供給し、SDRAM側では入出力部にレジスタを設け、当該同期クロックを用いることでメモリアクセスに於ける伝送線路上での処理をパイプライン化して高速(高スループット)転送を図ろうとするものである。実際に製品として登場しているSDRAMのデータ転送周波数は、66MHzから始まり100MHz、133MHzへと高速化が進展している。
【０００５】
更に、データ転送レートを向上させる方式として、ダブル・データ・レート(DDR)のSDRAMも提案されている。これは、クロックとアドレス系信号の切り替わり位置は従来のSDRAMと同様とし、データについてのみ、クロックの立ち上がりエッジと立ち下がりエッジに同期してデータを転送するものである。これにより、データ転送レートは、従来のSDRAMに対して単純に２倍の性能向上が可能となる。但し、DRAMとしてのインタフェースは、従来のDRAMと同様に、アドレスはロウとカラムの２回に分けて転送する方式であり、データも立ち上がり／立ち下がりの両者のデータ転送を基本としている点を除けば、従来DRAMと同じである。従って、一般的には、システムでのメモリ管理単位である8バイトのデータ幅を実現するために、複数個のDRAM(SDRAM、DDR-SDRAM)をデータ幅方向に並列に並べる構成を採るのが一般的である。
【０００６】
これに対し、最近、基本的な考え方を転換してデータ転送の高速化を図る動きが急になってきた。「ダイレクトRambus／コンカレントRambus」や「SLDRAM」の市場への登場である。これら技術の基本的な考え方は、コントローラとDRAM間インタフェース線の数を削減する代わりに、その信号線当たりの転送周波数を極限まで上昇させて、総合的なデータ転送能力を確保しようとするものである。インタフェース信号本数が少なくなれば、高品質な伝送線路の確保(プリント配線基板での安定したパターンの設計)やコントローラ内の制御回路を、高品質なディレイ設計による回路で実現することができる。
【０００７】
これは「多様化するポスト・シンクロナスDRAM、３種類が併存へ」、日経エレクトロニクス、no.707、p39-48に詳しく述べられているように、大量の信号線を扱う場合に比べて高速化を狙うことが可能となる。
【０００８】
この様な考え方のRAMでは、コントローラとDRAM間の情報のやりとりをパケットの形態で行う方式が採られている。これは、確保したインタフェース信号本数では、1回のメモリアクセスに必要なアドレス情報やデータが1タイミング(スロット)では転送できないこと、及びこの本質的制約を考慮すると、アクセス効率向上の観点から、データをある程度の固まりの単位で転送する必要が生じるためである。つまり、アドレス等のアクセス制御情報の転送時間と同程度以上のデータ転送時間を基本単位にしないと、アクセス要求の転送ピッチがアクセス制御情報のピッチで決まってしまう為にスループットが稼げない事になる為である。
【０００９】
このパケットの形態の例を図1に示す。コントローラとDRAM間のインタフェースに於いて、情報と併走する形でクロックが授受され、このクロックに同期して制御信号A0-7、データ信号D0-７が転送される。パケットは、クロック１０周期分を１パケットとしており、クロック１周期分をスロットと呼ぶ。制御系は、４スロットを使用して情報が転送され、データも１０スロットをかけて１０バイト(８ビットx１０スロット)が転送される。なお、データ１パケットの最小単位は１０スロットであるが、連続的なデータを読み書きする場合には、１０スロットを基本単位に、パケット長をn倍化することも可能である。
【００１０】
また図2には、SDRAMを使用した場合と、パケット型DRAMを使用した場合の、メモリコントローラとRAMの接続形態イメージを示す。(a)の従来型は、先に述べたSDRAM等を並列に並べた場合のコントローラ5000と、記憶素子群5010,5011,5012,…,5082との接続を示すものである。各記憶素子群とコントローラ5000の間のデータパスは８ビット幅であり、８バイト幅のデータを構成するために８個の記憶素子を並べている。これに対し(b)のパケット型は、データパスのスピードを上げる代わりに信号本数を削減し、単位時間当たりのデータ転送量を(a)の構成と同等にしようとするものである。ここで6000はコントローラ、6010,6011,6012はパケット型データ授受方式に対応した記憶素子群である。
【００１１】
ここで明確なように、パケット型DRAMを使用する方が、同じ転送能力を実現する為に並列に並べるべきRAM数が減少する事になる。この点は、実装面で大きなメリットである。しかし、一方で、このメリットを享受する為に信頼性の面で大きな問題を抱えてしまっている。
【００１２】
【発明が解決しようとする課題】
大量の記憶素子(DRAM等)を使用した記憶装置に於いて、装置としての高い信頼性を確保するために、記憶素子1チップが故障しても訂正可能な冗長ビット付加方式(ECC：Error Checking and Correcting)が従来から採用されてきた。例えば、図2に示す従来の構造に対しては、1チップ当たり8ビットを割当て、8バイトを10個のDRAMで構成するように、２系統のDRAM群を追加することで対応している。本来の情報は64ビットであり、残りの16ビットが冗長ビットである。この冗長ビットの数であれば、8ビットのバースト(固まり・連続)誤りを訂正することができる。つまり、１個のDRAM障害が発生しても、正しいデータを得ることができる。この結果、記憶装置の信頼性を大幅に向上させる事が可能になる。ここで示した情報ビット数と訂正バーストビット数と冗長ビット数の関係は、「誤り検出・訂正符号の最近の動向」、情報処理、Vol25-No7、p688-696等に示されている。
【００１３】
ところが、パケットの形態でデータの授受を行い、連続する8バイト等のデータが1チップの記憶素子に書き込まれており、１チップからデータが読み出されるような場合には、従来のようにデータがいくつかのチップに分散されて書き込まれているのではないため上記のような誤り訂正機構を備えることは不可能である。これが、連続データを一つのチップとの授受で実現する場合の最大の課題となる。
【００１４】
また、パケットの形態でデータの授受を行わない記憶素子の場合でも、その素子のデータビット幅が広い場合には同様の問題が発生してしまう。例えば、8ビットバースト誤りに対応した誤り訂正符号を採用していても、16ビット幅の記憶素子を使用する装置では、1チップ障害を救済する事ができない。換言すれば、記憶素子へのアクセス方式に依らず、1チップが受け持つデータのビット幅が広い場合には、1チップ障害が発生した時の救済が極めて難しくなるという事である。
【００１５】
また、システムの信頼性を向上させようとする場合、何らかのデメリットが生じることがある。例えば、実現論理規模の増加や消費電力の増加などである。ゲート規模の増加に対しては、システムで当該機能をサポートするか否かの判断時に決定してしまうが、消費電力に関しては、システムの動作状態/動作内容/動作対象によって信頼性に対する要求が変わりうるので有れば、事情が異なる。つまり、オペレーティングシステムが動作している際のメモリ領域で救済不能の障害が発生すると、システムは停止せざるを得ない場合が有る。一方、アプリケーションによっては、一般のプログラム走行に関する障害に対し、当該プログラムの再実行をすることで救済する事も可能である。このような場合、信頼性を要求される処理(消費電力：大)用とその他の処理(消費電力：中以下)用で、動作を切り替えることで、システムの適正な電力消費を実現することが可能となる。これに関しては、メモリアクセス性能面でも同様な事が言える。高信頼性モードで動作させると、性能的にも制約を受ける場合がある。このような場合にも、当該モードを真に信頼性が必要な処理に限定する事が有効である。
【００１６】
【課題を解決するための手段】
上記課題を解決する為に、メモリコントローラからのデータを記憶素子に書き込むときに、各記憶素子に与えられた書き込みデータを記憶素子毎に部分的にマスクすることにより複数個の記憶素子に分散させて書き込む回路を設けた。
【００１７】
【発明の実施の形態】
『実施例１』
図3は、メモリ制御信号及びデータをパケットの形態で授受するインタフェースを備える記憶制御機構（MC：Memory Controller）10と記憶素子（RAM：Random Access Memory）20，21…29とを接続した記憶装置の構成を示したものであり、第１の実施例を説明する為の図面である。ここで、当該MCとRAMは、信頼性を高める為に、１つの制御パケットで起動されたデータパケットを、ＲＡＭ２０、２１…２９に分散して書き込みまたは読み出す機構を備える。また、アクセスする記憶領域によって、データをＲＡＭ２０、２１…２９に分散するかまたは1つのRAMに集中させるかを使い分ける為に、ＭＣ１０内にアクセスするアドレスと2種類の転送形態（分散アクセスモード転送／集中アクセスモード転送）の対応を示すテーブル１１０を備え、転送形態を判定した結果を行アドレスパケットに取り込む為の、アドレスパケット生成用のマルチプレクサ機構１２０に対する信号線１１０Ａを備えており、ＲＡＭ２０内にはコントロールレジスタ２２０が保持しているDevice-IDから、自分が担当するスロットを特定する為の機構を備えている。
【００１８】
図で各ＲＡＭはアドレスパケット線１２０Ａとデータ線１４０Ａとはそれぞれ直接接続されている。一方、信号線１３０ＡはＲＡＭのそれぞれに設けられたコントロールレジスタ２２０を通って直列にシフトレジスタのように接続されている。初期状態において、信号線１３０Ａにはシリアルデータコントローラ１３０に次々と設定されるＤｅｖｉｃｅ  ＩＤが送信され、これによって、各記憶素子のコントロールレジスタ２２０のそれぞれには自Ｄｅｖｉｃｅアドレス（Ｄｅｖｉｃｅ  ＩＤ）が設定される。
【００１９】
まず、図3に示したＭＣ１０及びＲＡＭ２０、２１…２９内の構成について説明する。（なお、ＲＡＭ２０、２１…２９は同一論理部品である。従って以降ＲＡＭ内の構成及び処理については図示してあるＲＡＭ２０で説明する。）
ＭＣ１０内にはＭＣ内部アドレス線からのアドレス信号(データのアクセスアドレス)、及びマスク情報を含むＭＣ内部コマンド信号線からのコマンド信号と、アドレス情報等をパケット形態に変換するマルチプレクサ機構１２０、アドレスと転送形態の対応を示すテーブル１１０、アドレスとテーブルの比較結果を出力するＥＡｂ（Extra Address bit）１１０Ａと、ＭＣ内部データをパケット形態に変換するマルチプレクサ機構１４０、及びデータパケットをＭＣ内部データに変換するデマルチプレクサ機構１４１と、ＲＡＭ２０、２１…２９に対するDevice-ID等の個別のデータをコントロールするシリアルデータコントローラ１３０を備える。ＲＡＭ２０、２１…２９中のＲＡＭ２０内には、アドレスパケット線１２０Ａからの信号をＲＡＭ内部アドレスに変換するデマルチプレクサ機構２１０、アドレスパケットから取り出したアドレス２１０Ａのデコーダ２１１と、アドレスパケットから取り出したＥＡｂ２１０ＣをEnable信号とし、コントロールレジスタ２２０が保持するDevice-IDをデコードするDevice-IDデコーダ２２１と、デコード結果を出力する信号線２２１Ａと、２２１Ａからのデコードされた信号、及びＥＡｂ２１０Ｃとアドレスパケットから取り出したマスク情報２１０Ｂから、マスキングするデータスロットをセレクトする書き込みデータセレクタ２４０と、その結果を出力する信号線２４０Ａ、ＭＣ１０からのデータパケットを、ＲＡＭ内部データに変換するデマルチプレクサ機構２３３と、アドレスデコーダ２１１からのコマンド信号２１１Ｂ、及びマスク情報信号２４０Ａの結果から、メモリアレイ２３０に対してデータの書き込み／読み出しを実行する回路２３１と、メモリアレイ２３０から読み出したＲＡＭ内部データをパケット形態に変換するマルチプレクサ機構２３２と、パケット化された読み出しデータ２５０Ａの内、ＭＣ１０に対して転送するデータスロットを、ＥＡｂ２１０Ｃ及びDevice-IDデコード結果２２１Ａからセレクトする回路である読み出しデータセレクタ２５０を備える。また、各ＲＡＭの個別データをＭＣ１０がコントロールする為のインタフェース線２０Ａを備える。
【００２０】
ＲＡＭ２０，２１…２９に対するアクセス命令が発行された場合、アクセスするアドレスに対応するテーブル１１０内の1ビットを読み出す。テーブル１１０には、図4に示す様にあらかじめアドレスによる転送形態を規定しておく。これは一例に過ぎずＭＣ内部アドレスに対するモードビットの境界線は複数本あっても良い。ここでは通常の信頼性を必要とするデータについてアドレスの上位に集め、モードビットを「０」(集中アクセスモード)とし、特に高い信頼性を持たせたいデータに付いてはアドレスの下位に集めモードビットを「１」（分散アクセスモード）にしている。一般には要求される信頼性はアドレスに依存しないから何本もの境界線が存在することもある。
【００２１】
テーブル１１０から読み出した転送形態を指定するＥＡｂ１１０Ａは、分散アクセス型のデータ転送を行なう記憶領域へのアクセスであった場合は「１」である。ＥＡｂ１１０Ａは通常「０」であり、同一データパケットを分散させない集中アクセス型のデータ転送時にも「０」が読み出される。ＥＡｂ１１０Ａはマルチプレクサ機構１２０でアドレスパケットに取り込み、チップ／バンク／コマンド／アドレス情報と共に信号線１２０ＡでＲＡＭ２０、２１…２９に転送する。
【００２２】
この時のアドレスパケットの構造を、パケット形態でアドレス／データを転送するRambusインタフェースを備えるＭＣ−RAM間の、行アドレスパケットを例に図5のタイムチャートで示す。モードを示すＥＡｂビットとアドレスの上位ビットであるデバイスアドレスビットＤＲ０〜４（最大３２のデバイス（ＲＡＭ）を指定できる）とデバイス内アドレスビットであるａ０〜１７が送られる。アドレスパケット１２０Ａは、ＲＡＭ２０内でデマルチプレクサ機構２１０を介して、アドレス情報２１０Ａのみアドレスデコーダ２１１に入力される。アドレスパケットに取り込んでいたＥＡｂ１１０Ａは、信号線２１０Ｃにより書き込みデータセレクタ２４０、及び読み出しデータセレクタ２５０及びDevice-IDデコーダ２２１に出力される。Device-IDのデコード結果２２１Ａ及びＥＡｂ１１０Ａは、書き込みデータセレクタ２４０でＲＡＭ２０に書き込むデータスロットセレクトに、また読み出しデータセレクタ２５０でＲＡＭ２０から読み出すデータスロットのセレクトに用いる。同一書き込みデータパケット中のスロットのセレクトは、Device-IDでセレクトした以外のタイミングのスロットをマスクすることで実現する。
【００２３】
以上の構成でのデータの書き込みまたは読み出しの概念図を図６に示す。集中アクセスモード時の書き込み状況は例えば網掛けが施されたＲＡＭ０の左上の１０バイトのように１つのデバイス上に集中して書き込まれる。また、読み出し時も当該部分が総てメモリコントローラに転送される。一方、分散アクセスモード時は、書き込み時はＲＡＭ０のみが最初のタイミングでマスクが「１」になり、１バイトが書き込まれ、以下図示のように分散されて書き込まれる。読み出し時はそれぞれ網掛けの部分以外はハイインピーダンスとなって網掛け部分のみが連続してメモリコントローラに転送される。
【００２４】
図７はあるＲＡＭ内の書き込みデータセレクタ２４０の内部の図である。書き込みデータセレクタ２４０は同じものが各ＲＡＭに備えられている。Device-IDのデコード結果２２１Ａと、ＥＡｂ２１０ＣをAND回路２４１Ａ、２４２Ａ…２４５Ａで論理和をとることで、分散アクセスモード時にはDevice-IDに対応した１スロットがセレクトされる。分散アクセスモードのときはＭＣから送られるマスク情報２１０Ｂは総て「０」であり、ＥＡｂ２１０Ｃは「１」である。集中アクセスモードのときは指定された任意のゲートに「１」が入力され、ＥＡｂ２１０Ｃは「０」である。マスク情報２４０Ａは分散モードのとき分散モードであることをＥＡｂ２１０Ｃが示し、且つＤｅｖｉｃｅ  ＩＤデコード結果２２１Ａが「１」を示しているものだけ「１」となる。なお、マスクビットが「１」のビット位置にのみデータが書き込まれる。
【００２５】
このようにマスクビットはＤｅｖｉｃｅ  ＩＤをデコードすることによって作られる。分散アクセスモードでマスクビットが「１」となる位置はＲＡＭ０〜９内の書き込みセレクタ２４０毎にそれぞれ異なる。
【００２６】
図８はスロット1を担当するRAM(記憶素子)内での、書き込みデータスロットをセレクトした後のデータパケット構造である。スロット（Byte）毎に設定されているマスクビット（M０〜９）を、Ｄｅｖｉｃｅ  ＩＤで指定したスロット1用マスクビット（M１）のみ「１」にし、それ以外を「０」にして担当スロット以外のデータスロットをマスクする。ちなみにＲＡＭ２内の書き込みデータセレクタ２４０ではマスクビットＭ２のみが「１」となる。以下同様に、各ＲＡＭにおいてマスクビットが「１」になるマスクビット番号が１ずつずれて行く。このようにしてデータ線１４０Ａにより各ＲＡＭに共通に与えられたデータパケットは各ＲＡＭ内で作られたマスクビットにより、１つのＲＡＭについて１つのスロットが選択される。こうして、図６に分散アクセスモード時として示したようにデータが１バイト(１スロット)ずつ異なるＲＡＭに書き込まれて行く。なお、分散アクセスモード時には書き込みアドレスのＤｅｖｉｃｅアドレスは使用されない。
【００２７】
ＥＡｂが「０」の場合（集中アクセスモード転送時）はアドレスによって指定されたある選択されたＲＡＭのみの全てのマスクビットが「１」になり、１つのＲＡＭに全データスロットが書き込まれる。図６ではＲＡＭ０が指定されている。
【００２８】
分散アクセスモードでの読み出し命令時は、メモリセルから読み出されたデータ２５０Ａの内、Ｄｅｖｉｃｅ  ＩＤで指定された当該ＲＡＭが担当するタイミングに対応するデータスロットをセレクトしＭＣ１０に送出する。図９は読み出しデータセレクタ２５０内部の図である。出力回路２７１のEnableにＥＡｂ２１０Ｃを使用し、そのEnable信号を出力するタイミングをＤｅｖｉｃｅ  ＩＤのデコード結果２２１Ａからセレクトする。もう少し詳述すると、分散アクセスモードではＲＡＭ０〜９の総てのメモリアレイからそれぞれデータが読み出される。
【００２９】
各ＲＡＭには図９に示す読み出しデータセレクタ２５０が備えられている。そして、読み出されたデータのそれぞれが自ＲＡＭ中の読み出しデータセレクタ２５０に与えられる。それぞれの読み出しデータセレクタ２５０のアンドゲート２５１Ｂからアンドゲート２５５ＢにはＤｅｖｉｃｅ  ＩＤデコード結果即ちデータ列のどのバイトを選択するかの情報が与えられる。これは当然ＲＡＭ毎に異なっている。一方、分散アクセスモードを示すＥＡｂ２１０Ｃが各段について１スロット（１バイト）の時間差でアンドゲート２５１Ｂからアンドゲート２５５Ｂに与えられる。従って、アンドゲート２５１Ｂ〜２５５Ｂは１スロット（１バイト）の時間差でオンになる。よって、あるＲＡＭでは読み出されたデータのうち有意なスロットのときにアンドゲート２５１がオンになる。結果として、図６のように分散して書き込まれていたデータが１つのパケットとしてデータ線１４０Ａ上に作り上げられて行く。
【００３０】
図１０はスロット1を担当するRAM内での、読み出しデータスロットをセレクトした後のデータパケット構造である。セレクトされたスロットの8ビット以外は、ハイ・インピーダンス出力となる。一方、他のスロットを担当するＲＡＭ内では別のスロットがセレクトされる。こうして、ＲＡＭ２０、２１…２９から読み出された各タイミングのデータスロットは、データバス上で１つのパケットとなり、ＭＣ１０内のデマルチプレクサ機構１４１でＭＣ内部データに変換される。
【００３１】
ＥＡｂが「０」の場合（集中アクセスモード転送時）は読み出しアドレスのＤｅｖｉｃｅアドレスで指定される１つのＲＡＭから全データスロットが読み出される。
【００３２】
なお、本実施例では、２種類のアクセスモードをダイナミックに切り替える場合の実現方法を示しているが、メモリアクセスを分散モード固定とした装置であっても、最低限必要な「高信頼性の確保」を実現することは可能である。
【００３３】
図１１はこれまでに説明してきた、メモリ制御信号及びデータをパケットの形態で授受するインタフェースを備えるＭＣ−ＲＡＭ間における、分散アクセスモード転送でのＲＡＭ障害救済法、及びＭＣ−ＲＡＭ間のデータ転送の時間関係を詳細に示す為の図である。７００はＭＣ、８００、８１０…８９０はＲＡＭ、９００はクロック発振器である。また、Ａ−１は書き込みデータパケットのタイムチャート、Ａ−２は読み出しデータパケットのタイムチャートである。
【００３４】
先にも説明したように、装置としての高い信頼性を確保する為に、従来からＲＡＭ１個が故障しても訂正可能な冗長ビット付加方式（ECC：Error Checking and Correcting）が採用されてきた。当実施例でも、ＭＣ７００とＲＡＭ８００、８１０…８９０間のデータの授受に関して、６４ビット（８Byte）のデータに対して、１６ビットの冗長ビットを付加し、8ビットのバースト誤りを訂正可能な冗長ビット付加方式を採用している。従って冗長ビットを含む８０ビットを１つのパケット（８ビット×１０スロット）として１つのチャネルに接続された複数個（当実施例では１０個）のＲＡＭ８００、８１０…８９０に対して転送する形態を採っている。この冗長ビットの数であれば、8ビットのバースト（固まり・連続）誤りを訂正することができる。
【００３５】
集中アクセスモード転送時は、１つのRAMに対して1つのデータパケット全て（全データスロット）の書き込み／読み出しを行なう為、当該RAMの8ビットを越える固定障害が発生した場合には対処できない。しかし、分散アクセスモード転送を採用しＲＡＭ８００、８１０…８９０でパケット内のスロット（当実施例では8ビット）をセレクトし、書き込み／読み出しすることにより、ＲＡＭ１個の固定障害が発生しても、8ビットバースト以内に抑える事ができる為、障害の救済が可能である。
【００３６】
次に、当実施例での時間関係について説明する。分散アクセスモード転送時データの送出タイミングは、ＭＣ７００への読み出し時には、ＭＣ７００に対して遠い方のＲＡＭ８９０からデータパケット中の早いタイミングスロットに割り当て、ＭＣ７００からの書き込み時には、ＭＣ７００に対して近い方のＲＡＭ８００からデータパケット中の早いタイミングスロットに割り当てる。
【００３７】
図中Ａ−１は書き込み時のデータパケットのタイムチャート、Ａ−２は読み出し時のデータパケットのタイムチャートである。この方式によれば、それぞれの命令時に使用するクロック９００の各ＲＡＭ８００、８１０…８９０間での位相差は、書き込み時には、ＲＡＭ８００に対して全パケットを書き込む時のタイミングのデータパケット送出を行なうことで吸収できる。また読み出し時には、ＲＡＭ８９０に対する全パケットを読み出す時のタイミングでデータパケットを受け取ることで吸収できる。但し、読み出しデータパケットをＭＣ７００内部データに変換、若しくは書き込みデータパケットにＭＣ７００内部データから変換する時に、スロット単位でデータの入れ替えが必要になる。例えば、書き込みデータパケットのスロット順を標準とした場合、読み出しデータパケットのスロット順をＭＣ７００内で逆転させる必要がある。しかしこれは比較的簡単なスイッチング回路で実現できる。なお、図１１中 同一ＲＡＭ内の縦軸方向はパケット形態で転送する時の時間軸を表わしている。
【００３８】
『実施例２』
図1２はデータの転送形態を指定するＥＡｂを、アドレスパケットに取り込みＲＡＭに転送する第１の実施例に対して、ＭＣ３０−ＲＡＭ４０、４１…４９間にＥＡｂ専用のインタフェース３５０Ａを設けることを特徴とする第２の実施例を説明する為の図面である。（なお、ＲＡＭ４０、４１…４９は同一論理部品である。従って以降RAM内の構成及び処理については図示してあるＲＡＭ４０で説明する。）
ＭＣ３０内には第１の実施例と同じく、アクセスするアドレスと転送形態（分散アクセスモード転送／集中アクセスモード転送）の対応を示すテーブル３１０を備え、アクセスするアドレスに対応してテーブル３１０から読み出された結果３１０Ａを、データの転送形態を指定する信号としてＲＡＭ４０に出力する。ＲＡＭ４０内では同信号を受け取り、書き込みデータスロットのセレクト処理、及び読み出しデータスロットのセレクト処理に使用する。但し、テーブルから読み出された結果３１０Ａはアドレスパケット用のマルチプレクサ機構３２０に出力するのではなく、バッファ３５０に出力してアドレスパケットと同タイミングで、専用のインタフェース信号線３５０Ａを介してＲＡＭ４０に転送する。ＲＡＭ４０内ではバッファ４６０で同信号を受け取り、Ｄｅｖｉｃｅ  ＩＤデコーダ４２１と書き込みデータセレクタ４４０及び読み出しデータセレクタ４５０で、分散アクセスモード転送時にデータスロットセレクトのEnable信号として使用する。なお、書き込みデータスロットのセレクト処理、及び読み出しデータスロットのセレクト処理に関しては、第１の実施例と同様である。図中３０はＭＣ、４０、４１…４９はＲＡＭ、３２０、３４０、４３２はマルチプレクサ機構、３４１、４１０、４３３はデマルチプレクサ機構、３３０はシリアルデータコントローラ、４２０はコントロールレジスタ、４１１はアドレスデコーダ、４３０はメモリアレイ、４３１は書き込み／読み出し回路である。
【００３９】
これはＥＡｂがアドレスパケットに載らない(空きがない)ときに有効である。
【００４０】
『実施例３』
図1３は、第１・２の実施例と同様ＭＣ５０内に、アクセスするアドレスと転送形態の対応を示すテーブル５１０を備え、データ転送形態を判定する機能を有し、ＲＡＭ６０、６１…６９内部にもアクセスするアドレスと転送形態の対応を示すテーブル６６０を備えて、ＭＣ５０とＲＡＭ６０、６１…６９それぞれで、転送形態を判定する機構を備えることを特徴とする第３の実施例を説明する為の図面である。（なお、ＲＡＭ６０、６１…６９は同一論理部品である。従って以降ＲＡＭ内の構成及び処理については図示してあるＲＡＭ６０で説明する。）
ＭＣ５０からパケット形態で転送されたきたアドレス５２０Ａから、アクセスするアドレスに対応するテーブル６６０内の1ビットを読み出す。当テーブル６６０は、先に第１の実施例で説明した図3のＭＣ１０内のテーブル１１０と同様に図4で示した機能を有する。読み出した結果６６０Ａは、Device-IDデコーダ６２１と書き込みデータセレクタ６４０及び読み出しデータセレクタ６５０で、分散アクセスモード転送時にデータスロットセレクトのEnable信号として使用する。なお、書き込みデータスロットのセレクト処理、及び読み出しデータスロットのセレクト処理に関しては、第１の実施例と同様である。図中５２０、５４０、６３２はマルチプレクサ機構、５４１、６１０、６３３はデマルチプレクサ機構、５３０はシリアルデータコントローラ、６２０はコントロールレジスタ、６１１はアドレスデコーダ、６３０はメモリアレイ、６３１は書き込み／読み出し回路である。
【００４１】
この実施例によれば、ＥＡｂがパケットに載らない場合有効であると共に、ＭＣとＲＡＭ間のピン数を減らすことが出来る。
【００４２】
『実施例４』
図1４はパラレル型のインタフェースを備えるＭＣ１００とＲＡＭ２００、２０１…２０９間に、信頼性を高める為に、１つの制御コマンドで起動されたデータを、ＲＡＭ２００、２０１…２０９に分散して書き込みまたは読み出す機構を備え、アクセスする記憶領域によって、データをＲＡＭ２００、２０１…２０９に分散または1つのＲＡＭに集中させるかを使い分ける為に、ＭＣ１００内にアクセスするアドレスが2種類の転送形態（分散アクセスモード転送／集中アクセスモード転送）のどちらに当たるかを判定する回路１１１０を備え、転送形態を判定した結果１１１０Ａから、全データビット（本実施例では１６ビット）のどのデータビットを、書き込みまたは読み出すかを指定する為の信号線１０３０Ａ・１０４０Ａを備えることを特徴とする第４の実施例を説明する為の図面である。（なお、ＲＡＭ２００、２０１…２０９は同一論理部品である。従って以降ＲＡＭ内の構成及び処理については図示してあるＲＡＭ２００で説明する。）この例はデータの上位、下位に分けて分散させるものである。
【００４３】
図中のＭＣ１００内の１１００は判定回路１１１０を含む制御回路、１０１０はアドレス信号の出力バッファ、１０２０はマスク信号以外のコマンド信号の出力用バッファ、１０３０はデータ上位ビットに対応するマスク信号の出力バッファ、１０４０はデータ下位ビットに対応するマスク信号の出力バッファ、１０５０はＲＡＭ２００、２０１…２０９に対する書き込みデータの出力バッファ、１０６０はＲＡＭ２００、２０１…２０９から読み出したデータの入力バッファである。ＲＡＭ２００内の２０１０はアドレス信号の入力バッファ、２０２０はコントロールレジスタ、２０３０はデータ上位ビットに対応するマスク信号の入力バッファ、２０４０はデータ下位ビットに対応するマスク信号の入力バッファ、２０５０はＲＡＭ２００に対する書き込みデータの入力バッファ、２０６０はＲＡＭ２００から読み出したデータの出力バッファ、２０７０はアドレスデコーダ、２０８０はチップセレクト信号２０２０ＡをEnableとして、データ上位ビットのマスク信号２０３０Ａ及びデータ下位ビットのマスク信号２０４０Ａからマスキングする書き込みデータをセレクトする書き込みデータセレクタ、２０９０はチップセレクト信号２０２０ＡをEnableとして、データ上位ビットに対応するマスク信号２０３０Ａ、及びデータ下位ビットに対応するマスク信号２０４０Ａから、マスキングする読み出しデータをセレクトする読み出しデータセレクタ、２１００はメモリアレイ、２１１０はアドレスデコーダ２０７０からのコマンド信号２０７０Ｂ、及びマスク情報信号２０８０Ａの結果から、メモリアレイ２１００に対してデータの書き込み／読み出しを実行する回路である。
【００４４】
ＲＡＭ２００、２０１…２０９に対するアクセス命令が発行された場合、アクセスするアドレスから制御回路１１００の判定回路１１１０で転送形態の判定を行なう。判定回路１１１０は第１の実施例で示したテーブル１１０と同等の機能を持つ回路である。判定回路１１１０からの判定結果１１１０Ａは、分散アクセス型のデータ転送を行なう記憶領域へのアクセスであった場合は「１」である。判定結果１１１０Ａは通常「０」であり、同一コマンドで起動されたデータを分散させない集中アクセス型のデータ転送時にも「０」である。判定結果１１１０Ａは制御回路１１００からの上位／下位8ビットに対応するマスクビットに対する出力バッファのEnable信号となる。ＲＡＭ２００に転送された上位8ビットに対応するマスク信号１０３０Ａ及び下位8ビットに対応するマスク信号１０４０Ａは、書き込みデータセレクタ２０８０でＲＡＭ２００に書き込む8ビットデータセレクトに、また読み出しデータセレクタ２０９０でＲＡＭ２００から読み出す8ビットデータのセレクトに用いる。
【００４５】
図１５に書き込みデータセレクタ内部の図を示す。チップセレクト信号と各8ビットに対応するマスク信号をAND回路２０８１・２０８２で論理和をとることで、分散アクセスモード時にマスクする8ビットがセレクトされる。
【００４６】
図1６に読み出しデータセレクタ２０９０内部の図を示す。出力回路２０９４・２０９５のEnableに、チップセレクト信号と各8ビットに対応するマスク信号をAND回路２０９１Ａ・２０９２Ａで論理和した結果を使用することで、分散アクセスモード時に読み出す8ビットがセレクトされる。この時、マスクした8ビットはハイ・インピーダンス出力である。本実施例では、ＭＣ内の８０ビットのデータを５チャネルに１６ビットずつ分配する方式を採っている。従って、ＭＣ内データ出力バッファ１０５０及びデータ入力バッファ１０６０は８０ビットであり、ＲＡＭ２００内のデータ入力バッファ２０５０及びデータ出力バッファ２０６０は１６ビットである。このデータ１６ビットは、同一チャネル上のＲＡＭ２０５にも接続されている。なお、アドレス／コマンド／マスク信号はＲＡＭ２００、２０１…２０９共通である。但し、ＲＡＭ２０５、２０６…２０９に接続するマスク信号は、例えばＲＡＭ２００のバッファ２０３０に入力される上位8ビットに対応するマスク信号を、ＲＡＭ２０５ではバッファ２０４０に対応する側に入力して、下位8ビットに対応するマスク信号として扱い、ＲＡＭ２００のバッファ２０４０に入力される下位8ビットに対応するマスク信号を、ＲＡＭ２０５ではバッファ２０３０に対応する側に入力して、上位8ビットに対応するマスク信号として扱う。この方式によれば、ＭＣ１００−ＲＡＭ２００、２０１…２０９間にインタフェース信号を増やすことなく、８０ビットのデータを１０個のＲＡＭに対し8ビット毎に分散して書き込みまたは読み出す事が可能である。
【００４７】
図1７は第４の実施例で説明したパラレル型のインタフェースを備えるＭＣ３０００−ＲＡＭ４０００、４０１０…４０９０間の分散アクセスモード転送で、ＲＡＭ障害を救済する為に、ＭＣ３０００とＲＡＭ４０００、４０１０…４０９０間の接続チャネルを複数セット（当実施例では５セット）備え、各チャネルに複数個のＲＡＭ（当実施例では２個）が接続され、５つのチャネルに６４ビット（８Byte）のデータを分配するようなＭＣ３０００内のデータ分配回路及び各チャネルの制御回路を備える応用例を説明する為の図面である。当実施例ではＭＣ３０００とＲＡＭ４０００、４１００…４９００間のデータの授受に関して、６４ビット（8Byte）のデータに対して、１６ビットの冗長ビットを付加して、8ビットのバースト誤りを訂正する方式を採用している。5つのチャネルを持つＭＣ３０００から、冗長ビットを含む８０ビットを１６ビット×5セットに分割して、１つのチャネルに接続された2個のＲＡＭ（例えばＲＡＭ４０００＆４５００）に対して転送する形態を採っている。集中アクセスモード転送時はＲＡＭ４０００、４１００…４４００の5個、またはＲＡＭ４５００、４６００…４９００の5個に対して各１６ビットずつ８０ビットの書き込み／読み出しを行なう為、ＲＡＭ４０００、４１００…４４００またはＲＡＭ４５００、４６００…４９００でＲＡＭ１個の固定障害で8ビットを越える障害が発生した場合には対処できない。しかし、分散アクセスモード転送を採用し各RAMに8ビットデータを書き込み／読み出しすることにより、ＲＡＭ１個の固定障害が発生しても8ビットバースト以内に抑える事ができる為、障害の救済が可能である。
【００４８】
なお、上記実施例ではスロット毎に対応するＲＡＭの割り当てを変更する分散転送モードの例を示したが、分散転送モードで信号線毎にＲＡＭへの割り当てを行なう方式であっても良い。
【００４９】
【発明の効果】
以上説明したように、高速化を狙ったパケット方式でコントローラと記憶素子間の情報の授受を行う装置に於いて、１パケットを構成する複数個のデータスロットを各々異なる記憶素子に割り付けてアクセスする機構を備えることにより、記憶素子１個の障害が発生しても救済可能なシステムを提供する事ができる。
【図面の簡単な説明】
【図１】従来のパケット型でデータの授受を行なう記憶素子のタイムチャートを示す図。
【図２】従来型のインタフェースを備えるDRAMとMCの接続図、及びパケット型のインタフェースを備えるDRAMとMCの接続図。
【図３】本発明の第１の実施例を示す図。
【図４】テーブル110の構造を示す図。
【図５】Extra address bit を持つ制御装置のアドレスパケット構造例を示す図。
【図６】第１の実施例におけるデータの書き込み状態のイメージを示す図。
【図７】書き込みデータセレクタ240の内部回路を示す図。
【図８】書き込みデータスロット選択後のデータパケット構造を示す図。
【図９】読み出しデータセレクタ250の内部回路を示す図。
【図１０】読み出しデータスロット選択後のデータパケット構造を示す図。
【図１１】分散アクセスモードのときの書き込み、読み出しのタイミング制御を示す図。
【図１２】本発明の第２の実施例を示す図。
【図１３】本発明の第３の実施例を示す図。
【図１４】本発明の第４の実施例を示す図。
【図１５】書き込みデータセレクタ2080の内部回路を示す図。
【図１６】読み出しデータセレクタ2090の内部回路を示す図。
【図１７】第４の実施例の応用を示す図。
【符号の説明】
１０：ＭＣ（メモリコントローラ）、２０：ＲＡＭ、１１０：アクセスモード判定テーブル、１２０：マルチプレクサ、１３０：シリアルデータコントローラ、１４０：マルチプレクサ、１４１：デマルチプレクサ、２１０：デマルチプレクサ、２１１：アドレスデコーダ、２２０：コントロールレジスタ、２２１：Ｄｅｖｉｃｅ  ＩＤデコーダ、２３０:メモリアレイ、２３１：書き込み読み出し回路、２３２：パケットを形成するマルチプレクサ、２３３：データパケットのデマルチプレクサ、２４０：書き込みデータセレクタ、２５０：読み出しデータセレクタ。
【図１】
0003973337.tif 000002
【図２】
0003973337.tif 000003
【図３】
0003973337.tif 000004
【図４】
0003973337.tif 000005
【図５】
0003973337.tif 000006
【図６】
0003973337.tif 000007
【図７】
0003973337.tif 000008
【図８】
0003973337.tif 000009
【図９】
0003973337.tif 000010
【図１０】
0003973337.tif 000011
【図１１】
0003973337.tif 000012
【図１２】
0003973337.tif 000013
【図１３】
0003973337.tif 000014
【図１４】
0003973337.tif 000015
【図１５】
0003973337.tif 000016
【図１６】
0003973337.tif 000017
【図１７】
0003973337.tif 000018