JP3973337B2 - 記憶素子及びそれを用いた記憶装置 - Google Patents
記憶素子及びそれを用いた記憶装置 Download PDFInfo
- Publication number
- JP3973337B2 JP3973337B2 JP2000035691A JP2000035691A JP3973337B2 JP 3973337 B2 JP3973337 B2 JP 3973337B2 JP 2000035691 A JP2000035691 A JP 2000035691A JP 2000035691 A JP2000035691 A JP 2000035691A JP 3973337 B2 JP3973337 B2 JP 3973337B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- ram
- packet
- bits
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明はデータ処理装置の記憶素子及び記憶装置の構造に係り、特に記憶素子と記憶制御機構間の高信頼性をもった高速転送に関する。
【0002】
【従来の技術】
近年、マイクロプロセッサの動作速度の向上に伴い、主記憶装置等を構成する記憶素子(DRAM)の構造/方式に変化が生じている。従来は、DRAMチップの外部からクロックの供給を受けない非同期型のDRAMが主流であった。この非同期型RAMにおける高速化(高スループット化)技術としては、EDO方式に見られるように、DRAMのアドレスが連続する複数個のデータを単ピッチで切り替えて処理する方式が提案/採用されていた。
【0003】
ところが、DRAMコントローラ(記憶制御機構)とDRAMの間を非同期形態の転送で行なっていては、その転送能力の向上には限界がでてくる。プロセッサスピードが数百MHzにも高速化している状況に対応するためには、コントローラとDRAM間の転送を「クロック同期型」に転換していく必要が生じてきた。
【0004】
この背景から生まれたのが、シンクロナスDRAM(SDRAM)である。この技術は、コントローラとSDRAMに対してデータ転送などを行うための同期クロックを供給し、SDRAM側では入出力部にレジスタを設け、当該同期クロックを用いることでメモリアクセスに於ける伝送線路上での処理をパイプライン化して高速(高スループット)転送を図ろうとするものである。実際に製品として登場しているSDRAMのデータ転送周波数は、66MHzから始まり100MHz、133MHzへと高速化が進展している。
【0005】
更に、データ転送レートを向上させる方式として、ダブル・データ・レート(DDR)のSDRAMも提案されている。これは、クロックとアドレス系信号の切り替わり位置は従来のSDRAMと同様とし、データについてのみ、クロックの立ち上がりエッジと立ち下がりエッジに同期してデータを転送するものである。これにより、データ転送レートは、従来のSDRAMに対して単純に2倍の性能向上が可能となる。但し、DRAMとしてのインタフェースは、従来のDRAMと同様に、アドレスはロウとカラムの2回に分けて転送する方式であり、データも立ち上がり/立ち下がりの両者のデータ転送を基本としている点を除けば、従来DRAMと同じである。従って、一般的には、システムでのメモリ管理単位である8バイトのデータ幅を実現するために、複数個のDRAM(SDRAM、DDR-SDRAM)をデータ幅方向に並列に並べる構成を採るのが一般的である。
【0006】
これに対し、最近、基本的な考え方を転換してデータ転送の高速化を図る動きが急になってきた。「ダイレクトRambus/コンカレントRambus」や「SLDRAM」の市場への登場である。これら技術の基本的な考え方は、コントローラとDRAM間インタフェース線の数を削減する代わりに、その信号線当たりの転送周波数を極限まで上昇させて、総合的なデータ転送能力を確保しようとするものである。インタフェース信号本数が少なくなれば、高品質な伝送線路の確保(プリント配線基板での安定したパターンの設計)やコントローラ内の制御回路を、高品質なディレイ設計による回路で実現することができる。
【0007】
これは「多様化するポスト・シンクロナスDRAM、3種類が併存へ」、日経エレクトロニクス、no.707、p39-48に詳しく述べられているように、大量の信号線を扱う場合に比べて高速化を狙うことが可能となる。
【0008】
この様な考え方のRAMでは、コントローラとDRAM間の情報のやりとりをパケットの形態で行う方式が採られている。これは、確保したインタフェース信号本数では、1回のメモリアクセスに必要なアドレス情報やデータが1タイミング(スロット)では転送できないこと、及びこの本質的制約を考慮すると、アクセス効率向上の観点から、データをある程度の固まりの単位で転送する必要が生じるためである。つまり、アドレス等のアクセス制御情報の転送時間と同程度以上のデータ転送時間を基本単位にしないと、アクセス要求の転送ピッチがアクセス制御情報のピッチで決まってしまう為にスループットが稼げない事になる為である。
【0009】
このパケットの形態の例を図1に示す。コントローラとDRAM間のインタフェースに於いて、情報と併走する形でクロックが授受され、このクロックに同期して制御信号A0-7、データ信号D0-7が転送される。パケットは、クロック10周期分を1パケットとしており、クロック1周期分をスロットと呼ぶ。制御系は、4スロットを使用して情報が転送され、データも10スロットをかけて10バイト(8ビットx10スロット)が転送される。なお、データ1パケットの最小単位は10スロットであるが、連続的なデータを読み書きする場合には、10スロットを基本単位に、パケット長をn倍化することも可能である。
【0010】
また図2には、SDRAMを使用した場合と、パケット型DRAMを使用した場合の、メモリコントローラとRAMの接続形態イメージを示す。(a)の従来型は、先に述べたSDRAM等を並列に並べた場合のコントローラ5000と、記憶素子群5010,5011,5012,…,5082との接続を示すものである。各記憶素子群とコントローラ5000の間のデータパスは8ビット幅であり、8バイト幅のデータを構成するために8個の記憶素子を並べている。これに対し(b)のパケット型は、データパスのスピードを上げる代わりに信号本数を削減し、単位時間当たりのデータ転送量を(a)の構成と同等にしようとするものである。ここで6000はコントローラ、6010,6011,6012はパケット型データ授受方式に対応した記憶素子群である。
【0011】
ここで明確なように、パケット型DRAMを使用する方が、同じ転送能力を実現する為に並列に並べるべきRAM数が減少する事になる。この点は、実装面で大きなメリットである。しかし、一方で、このメリットを享受する為に信頼性の面で大きな問題を抱えてしまっている。
【0012】
【発明が解決しようとする課題】
大量の記憶素子(DRAM等)を使用した記憶装置に於いて、装置としての高い信頼性を確保するために、記憶素子1チップが故障しても訂正可能な冗長ビット付加方式(ECC:Error Checking and Correcting)が従来から採用されてきた。例えば、図2に示す従来の構造に対しては、1チップ当たり8ビットを割当て、8バイトを10個のDRAMで構成するように、2系統のDRAM群を追加することで対応している。本来の情報は64ビットであり、残りの16ビットが冗長ビットである。この冗長ビットの数であれば、8ビットのバースト(固まり・連続)誤りを訂正することができる。つまり、1個のDRAM障害が発生しても、正しいデータを得ることができる。この結果、記憶装置の信頼性を大幅に向上させる事が可能になる。ここで示した情報ビット数と訂正バーストビット数と冗長ビット数の関係は、「誤り検出・訂正符号の最近の動向」、情報処理、Vol25-No7、p688-696等に示されている。
【0013】
ところが、パケットの形態でデータの授受を行い、連続する8バイト等のデータが1チップの記憶素子に書き込まれており、1チップからデータが読み出されるような場合には、従来のようにデータがいくつかのチップに分散されて書き込まれているのではないため上記のような誤り訂正機構を備えることは不可能である。これが、連続データを一つのチップとの授受で実現する場合の最大の課題となる。
【0014】
また、パケットの形態でデータの授受を行わない記憶素子の場合でも、その素子のデータビット幅が広い場合には同様の問題が発生してしまう。例えば、8ビットバースト誤りに対応した誤り訂正符号を採用していても、16ビット幅の記憶素子を使用する装置では、1チップ障害を救済する事ができない。換言すれば、記憶素子へのアクセス方式に依らず、1チップが受け持つデータのビット幅が広い場合には、1チップ障害が発生した時の救済が極めて難しくなるという事である。
【0015】
また、システムの信頼性を向上させようとする場合、何らかのデメリットが生じることがある。例えば、実現論理規模の増加や消費電力の増加などである。ゲート規模の増加に対しては、システムで当該機能をサポートするか否かの判断時に決定してしまうが、消費電力に関しては、システムの動作状態/動作内容/動作対象によって信頼性に対する要求が変わりうるので有れば、事情が異なる。つまり、オペレーティングシステムが動作している際のメモリ領域で救済不能の障害が発生すると、システムは停止せざるを得ない場合が有る。一方、アプリケーションによっては、一般のプログラム走行に関する障害に対し、当該プログラムの再実行をすることで救済する事も可能である。このような場合、信頼性を要求される処理(消費電力:大)用とその他の処理(消費電力:中以下)用で、動作を切り替えることで、システムの適正な電力消費を実現することが可能となる。これに関しては、メモリアクセス性能面でも同様な事が言える。高信頼性モードで動作させると、性能的にも制約を受ける場合がある。このような場合にも、当該モードを真に信頼性が必要な処理に限定する事が有効である。
【0016】
【課題を解決するための手段】
上記課題を解決する為に、メモリコントローラからのデータを記憶素子に書き込むときに、各記憶素子に与えられた書き込みデータを記憶素子毎に部分的にマスクすることにより複数個の記憶素子に分散させて書き込む回路を設けた。
【0017】
【発明の実施の形態】
『実施例1』
図3は、メモリ制御信号及びデータをパケットの形態で授受するインタフェースを備える記憶制御機構(MC:Memory Controller)10と記憶素子(RAM:Random Access Memory)20,21…29とを接続した記憶装置の構成を示したものであり、第1の実施例を説明する為の図面である。ここで、当該MCとRAMは、信頼性を高める為に、1つの制御パケットで起動されたデータパケットを、RAM20、21…29に分散して書き込みまたは読み出す機構を備える。また、アクセスする記憶領域によって、データをRAM20、21…29に分散するかまたは1つのRAMに集中させるかを使い分ける為に、MC10内にアクセスするアドレスと2種類の転送形態(分散アクセスモード転送/集中アクセスモード転送)の対応を示すテーブル110を備え、転送形態を判定した結果を行アドレスパケットに取り込む為の、アドレスパケット生成用のマルチプレクサ機構120に対する信号線110Aを備えており、RAM20内にはコントロールレジスタ220が保持しているDevice-IDから、自分が担当するスロットを特定する為の機構を備えている。
【0018】
図で各RAMはアドレスパケット線120Aとデータ線140Aとはそれぞれ直接接続されている。一方、信号線130AはRAMのそれぞれに設けられたコントロールレジスタ220を通って直列にシフトレジスタのように接続されている。初期状態において、信号線130Aにはシリアルデータコントローラ130に次々と設定されるDevice IDが送信され、これによって、各記憶素子のコントロールレジスタ220のそれぞれには自Deviceアドレス(Device ID)が設定される。
【0019】
まず、図3に示したMC10及びRAM20、21…29内の構成について説明する。(なお、RAM20、21…29は同一論理部品である。従って以降RAM内の構成及び処理については図示してあるRAM20で説明する。)
MC10内にはMC内部アドレス線からのアドレス信号(データのアクセスアドレス)、及びマスク情報を含むMC内部コマンド信号線からのコマンド信号と、アドレス情報等をパケット形態に変換するマルチプレクサ機構120、アドレスと転送形態の対応を示すテーブル110、アドレスとテーブルの比較結果を出力するEAb(Extra Address bit)110Aと、MC内部データをパケット形態に変換するマルチプレクサ機構140、及びデータパケットをMC内部データに変換するデマルチプレクサ機構141と、RAM20、21…29に対するDevice-ID等の個別のデータをコントロールするシリアルデータコントローラ130を備える。RAM20、21…29中のRAM20内には、アドレスパケット線120Aからの信号をRAM内部アドレスに変換するデマルチプレクサ機構210、アドレスパケットから取り出したアドレス210Aのデコーダ211と、アドレスパケットから取り出したEAb210CをEnable信号とし、コントロールレジスタ220が保持するDevice-IDをデコードするDevice-IDデコーダ221と、デコード結果を出力する信号線221Aと、221Aからのデコードされた信号、及びEAb210Cとアドレスパケットから取り出したマスク情報210Bから、マスキングするデータスロットをセレクトする書き込みデータセレクタ240と、その結果を出力する信号線240A、MC10からのデータパケットを、RAM内部データに変換するデマルチプレクサ機構233と、アドレスデコーダ211からのコマンド信号211B、及びマスク情報信号240Aの結果から、メモリアレイ230に対してデータの書き込み/読み出しを実行する回路231と、メモリアレイ230から読み出したRAM内部データをパケット形態に変換するマルチプレクサ機構232と、パケット化された読み出しデータ250Aの内、MC10に対して転送するデータスロットを、EAb210C及びDevice-IDデコード結果221Aからセレクトする回路である読み出しデータセレクタ250を備える。また、各RAMの個別データをMC10がコントロールする為のインタフェース線20Aを備える。
【0020】
RAM20,21…29に対するアクセス命令が発行された場合、アクセスするアドレスに対応するテーブル110内の1ビットを読み出す。テーブル110には、図4に示す様にあらかじめアドレスによる転送形態を規定しておく。これは一例に過ぎずMC内部アドレスに対するモードビットの境界線は複数本あっても良い。ここでは通常の信頼性を必要とするデータについてアドレスの上位に集め、モードビットを「0」(集中アクセスモード)とし、特に高い信頼性を持たせたいデータに付いてはアドレスの下位に集めモードビットを「1」(分散アクセスモード)にしている。一般には要求される信頼性はアドレスに依存しないから何本もの境界線が存在することもある。
【0021】
テーブル110から読み出した転送形態を指定するEAb110Aは、分散アクセス型のデータ転送を行なう記憶領域へのアクセスであった場合は「1」である。EAb110Aは通常「0」であり、同一データパケットを分散させない集中アクセス型のデータ転送時にも「0」が読み出される。EAb110Aはマルチプレクサ機構120でアドレスパケットに取り込み、チップ/バンク/コマンド/アドレス情報と共に信号線120AでRAM20、21…29に転送する。
【0022】
この時のアドレスパケットの構造を、パケット形態でアドレス/データを転送するRambusインタフェースを備えるMC−RAM間の、行アドレスパケットを例に図5のタイムチャートで示す。モードを示すEAbビットとアドレスの上位ビットであるデバイスアドレスビットDR0〜4(最大32のデバイス(RAM)を指定できる)とデバイス内アドレスビットであるa0〜17が送られる。アドレスパケット120Aは、RAM20内でデマルチプレクサ機構210を介して、アドレス情報210Aのみアドレスデコーダ211に入力される。アドレスパケットに取り込んでいたEAb110Aは、信号線210Cにより書き込みデータセレクタ240、及び読み出しデータセレクタ250及びDevice-IDデコーダ221に出力される。Device-IDのデコード結果221A及びEAb110Aは、書き込みデータセレクタ240でRAM20に書き込むデータスロットセレクトに、また読み出しデータセレクタ250でRAM20から読み出すデータスロットのセレクトに用いる。同一書き込みデータパケット中のスロットのセレクトは、Device-IDでセレクトした以外のタイミングのスロットをマスクすることで実現する。
【0023】
以上の構成でのデータの書き込みまたは読み出しの概念図を図6に示す。集中アクセスモード時の書き込み状況は例えば網掛けが施されたRAM0の左上の10バイトのように1つのデバイス上に集中して書き込まれる。また、読み出し時も当該部分が総てメモリコントローラに転送される。一方、分散アクセスモード時は、書き込み時はRAM0のみが最初のタイミングでマスクが「1」になり、1バイトが書き込まれ、以下図示のように分散されて書き込まれる。読み出し時はそれぞれ網掛けの部分以外はハイインピーダンスとなって網掛け部分のみが連続してメモリコントローラに転送される。
【0024】
図7はあるRAM内の書き込みデータセレクタ240の内部の図である。書き込みデータセレクタ240は同じものが各RAMに備えられている。Device-IDのデコード結果221Aと、EAb210CをAND回路241A、242A…245Aで論理和をとることで、分散アクセスモード時にはDevice-IDに対応した1スロットがセレクトされる。分散アクセスモードのときはMCから送られるマスク情報210Bは総て「0」であり、EAb210Cは「1」である。集中アクセスモードのときは指定された任意のゲートに「1」が入力され、EAb210Cは「0」である。マスク情報240Aは分散モードのとき分散モードであることをEAb210Cが示し、且つDevice IDデコード結果221Aが「1」を示しているものだけ「1」となる。なお、マスクビットが「1」のビット位置にのみデータが書き込まれる。
【0025】
このようにマスクビットはDevice IDをデコードすることによって作られる。分散アクセスモードでマスクビットが「1」となる位置はRAM0〜9内の書き込みセレクタ240毎にそれぞれ異なる。
【0026】
図8はスロット1を担当するRAM(記憶素子)内での、書き込みデータスロットをセレクトした後のデータパケット構造である。スロット(Byte)毎に設定されているマスクビット(M0〜9)を、Device IDで指定したスロット1用マスクビット(M1)のみ「1」にし、それ以外を「0」にして担当スロット以外のデータスロットをマスクする。ちなみにRAM2内の書き込みデータセレクタ240ではマスクビットM2のみが「1」となる。以下同様に、各RAMにおいてマスクビットが「1」になるマスクビット番号が1ずつずれて行く。このようにしてデータ線140Aにより各RAMに共通に与えられたデータパケットは各RAM内で作られたマスクビットにより、1つのRAMについて1つのスロットが選択される。こうして、図6に分散アクセスモード時として示したようにデータが1バイト(1スロット)ずつ異なるRAMに書き込まれて行く。なお、分散アクセスモード時には書き込みアドレスのDeviceアドレスは使用されない。
【0027】
EAbが「0」の場合(集中アクセスモード転送時)はアドレスによって指定されたある選択されたRAMのみの全てのマスクビットが「1」になり、1つのRAMに全データスロットが書き込まれる。図6ではRAM0が指定されている。
【0028】
分散アクセスモードでの読み出し命令時は、メモリセルから読み出されたデータ250Aの内、Device IDで指定された当該RAMが担当するタイミングに対応するデータスロットをセレクトしMC10に送出する。図9は読み出しデータセレクタ250内部の図である。出力回路271のEnableにEAb210Cを使用し、そのEnable信号を出力するタイミングをDevice IDのデコード結果221Aからセレクトする。もう少し詳述すると、分散アクセスモードではRAM0〜9の総てのメモリアレイからそれぞれデータが読み出される。
【0029】
各RAMには図9に示す読み出しデータセレクタ250が備えられている。そして、読み出されたデータのそれぞれが自RAM中の読み出しデータセレクタ250に与えられる。それぞれの読み出しデータセレクタ250のアンドゲート251Bからアンドゲート255BにはDevice IDデコード結果即ちデータ列のどのバイトを選択するかの情報が与えられる。これは当然RAM毎に異なっている。一方、分散アクセスモードを示すEAb210Cが各段について1スロット(1バイト)の時間差でアンドゲート251Bからアンドゲート255Bに与えられる。従って、アンドゲート251B〜255Bは1スロット(1バイト)の時間差でオンになる。よって、あるRAMでは読み出されたデータのうち有意なスロットのときにアンドゲート251がオンになる。結果として、図6のように分散して書き込まれていたデータが1つのパケットとしてデータ線140A上に作り上げられて行く。
【0030】
図10はスロット1を担当するRAM内での、読み出しデータスロットをセレクトした後のデータパケット構造である。セレクトされたスロットの8ビット以外は、ハイ・インピーダンス出力となる。一方、他のスロットを担当するRAM内では別のスロットがセレクトされる。こうして、RAM20、21…29から読み出された各タイミングのデータスロットは、データバス上で1つのパケットとなり、MC10内のデマルチプレクサ機構141でMC内部データに変換される。
【0031】
EAbが「0」の場合(集中アクセスモード転送時)は読み出しアドレスのDeviceアドレスで指定される1つのRAMから全データスロットが読み出される。
【0032】
なお、本実施例では、2種類のアクセスモードをダイナミックに切り替える場合の実現方法を示しているが、メモリアクセスを分散モード固定とした装置であっても、最低限必要な「高信頼性の確保」を実現することは可能である。
【0033】
図11はこれまでに説明してきた、メモリ制御信号及びデータをパケットの形態で授受するインタフェースを備えるMC−RAM間における、分散アクセスモード転送でのRAM障害救済法、及びMC−RAM間のデータ転送の時間関係を詳細に示す為の図である。700はMC、800、810…890はRAM、900はクロック発振器である。また、A−1は書き込みデータパケットのタイムチャート、A−2は読み出しデータパケットのタイムチャートである。
【0034】
先にも説明したように、装置としての高い信頼性を確保する為に、従来からRAM1個が故障しても訂正可能な冗長ビット付加方式(ECC:Error Checking and Correcting)が採用されてきた。当実施例でも、MC700とRAM800、810…890間のデータの授受に関して、64ビット(8Byte)のデータに対して、16ビットの冗長ビットを付加し、8ビットのバースト誤りを訂正可能な冗長ビット付加方式を採用している。従って冗長ビットを含む80ビットを1つのパケット(8ビット×10スロット)として1つのチャネルに接続された複数個(当実施例では10個)のRAM800、810…890に対して転送する形態を採っている。この冗長ビットの数であれば、8ビットのバースト(固まり・連続)誤りを訂正することができる。
【0035】
集中アクセスモード転送時は、1つのRAMに対して1つのデータパケット全て(全データスロット)の書き込み/読み出しを行なう為、当該RAMの8ビットを越える固定障害が発生した場合には対処できない。しかし、分散アクセスモード転送を採用しRAM800、810…890でパケット内のスロット(当実施例では8ビット)をセレクトし、書き込み/読み出しすることにより、RAM1個の固定障害が発生しても、8ビットバースト以内に抑える事ができる為、障害の救済が可能である。
【0036】
次に、当実施例での時間関係について説明する。分散アクセスモード転送時データの送出タイミングは、MC700への読み出し時には、MC700に対して遠い方のRAM890からデータパケット中の早いタイミングスロットに割り当て、MC700からの書き込み時には、MC700に対して近い方のRAM800からデータパケット中の早いタイミングスロットに割り当てる。
【0037】
図中A−1は書き込み時のデータパケットのタイムチャート、A−2は読み出し時のデータパケットのタイムチャートである。この方式によれば、それぞれの命令時に使用するクロック900の各RAM800、810…890間での位相差は、書き込み時には、RAM800に対して全パケットを書き込む時のタイミングのデータパケット送出を行なうことで吸収できる。また読み出し時には、RAM890に対する全パケットを読み出す時のタイミングでデータパケットを受け取ることで吸収できる。但し、読み出しデータパケットをMC700内部データに変換、若しくは書き込みデータパケットにMC700内部データから変換する時に、スロット単位でデータの入れ替えが必要になる。例えば、書き込みデータパケットのスロット順を標準とした場合、読み出しデータパケットのスロット順をMC700内で逆転させる必要がある。しかしこれは比較的簡単なスイッチング回路で実現できる。なお、図11中 同一RAM内の縦軸方向はパケット形態で転送する時の時間軸を表わしている。
【0038】
『実施例2』
図12はデータの転送形態を指定するEAbを、アドレスパケットに取り込みRAMに転送する第1の実施例に対して、MC30−RAM40、41…49間にEAb専用のインタフェース350Aを設けることを特徴とする第2の実施例を説明する為の図面である。(なお、RAM40、41…49は同一論理部品である。従って以降RAM内の構成及び処理については図示してあるRAM40で説明する。)
MC30内には第1の実施例と同じく、アクセスするアドレスと転送形態(分散アクセスモード転送/集中アクセスモード転送)の対応を示すテーブル310を備え、アクセスするアドレスに対応してテーブル310から読み出された結果310Aを、データの転送形態を指定する信号としてRAM40に出力する。RAM40内では同信号を受け取り、書き込みデータスロットのセレクト処理、及び読み出しデータスロットのセレクト処理に使用する。但し、テーブルから読み出された結果310Aはアドレスパケット用のマルチプレクサ機構320に出力するのではなく、バッファ350に出力してアドレスパケットと同タイミングで、専用のインタフェース信号線350Aを介してRAM40に転送する。RAM40内ではバッファ460で同信号を受け取り、Device IDデコーダ421と書き込みデータセレクタ440及び読み出しデータセレクタ450で、分散アクセスモード転送時にデータスロットセレクトのEnable信号として使用する。なお、書き込みデータスロットのセレクト処理、及び読み出しデータスロットのセレクト処理に関しては、第1の実施例と同様である。図中30はMC、40、41…49はRAM、320、340、432はマルチプレクサ機構、341、410、433はデマルチプレクサ機構、330はシリアルデータコントローラ、420はコントロールレジスタ、411はアドレスデコーダ、430はメモリアレイ、431は書き込み/読み出し回路である。
【0039】
これはEAbがアドレスパケットに載らない(空きがない)ときに有効である。
【0040】
『実施例3』
図13は、第1・2の実施例と同様MC50内に、アクセスするアドレスと転送形態の対応を示すテーブル510を備え、データ転送形態を判定する機能を有し、RAM60、61…69内部にもアクセスするアドレスと転送形態の対応を示すテーブル660を備えて、MC50とRAM60、61…69それぞれで、転送形態を判定する機構を備えることを特徴とする第3の実施例を説明する為の図面である。(なお、RAM60、61…69は同一論理部品である。従って以降RAM内の構成及び処理については図示してあるRAM60で説明する。)
MC50からパケット形態で転送されたきたアドレス520Aから、アクセスするアドレスに対応するテーブル660内の1ビットを読み出す。当テーブル660は、先に第1の実施例で説明した図3のMC10内のテーブル110と同様に図4で示した機能を有する。読み出した結果660Aは、Device-IDデコーダ621と書き込みデータセレクタ640及び読み出しデータセレクタ650で、分散アクセスモード転送時にデータスロットセレクトのEnable信号として使用する。なお、書き込みデータスロットのセレクト処理、及び読み出しデータスロットのセレクト処理に関しては、第1の実施例と同様である。図中520、540、632はマルチプレクサ機構、541、610、633はデマルチプレクサ機構、530はシリアルデータコントローラ、620はコントロールレジスタ、611はアドレスデコーダ、630はメモリアレイ、631は書き込み/読み出し回路である。
【0041】
この実施例によれば、EAbがパケットに載らない場合有効であると共に、MCとRAM間のピン数を減らすことが出来る。
【0042】
『実施例4』
図14はパラレル型のインタフェースを備えるMC100とRAM200、201…209間に、信頼性を高める為に、1つの制御コマンドで起動されたデータを、RAM200、201…209に分散して書き込みまたは読み出す機構を備え、アクセスする記憶領域によって、データをRAM200、201…209に分散または1つのRAMに集中させるかを使い分ける為に、MC100内にアクセスするアドレスが2種類の転送形態(分散アクセスモード転送/集中アクセスモード転送)のどちらに当たるかを判定する回路1110を備え、転送形態を判定した結果1110Aから、全データビット(本実施例では16ビット)のどのデータビットを、書き込みまたは読み出すかを指定する為の信号線1030A・1040Aを備えることを特徴とする第4の実施例を説明する為の図面である。(なお、RAM200、201…209は同一論理部品である。従って以降RAM内の構成及び処理については図示してあるRAM200で説明する。)この例はデータの上位、下位に分けて分散させるものである。
【0043】
図中のMC100内の1100は判定回路1110を含む制御回路、1010はアドレス信号の出力バッファ、1020はマスク信号以外のコマンド信号の出力用バッファ、1030はデータ上位ビットに対応するマスク信号の出力バッファ、1040はデータ下位ビットに対応するマスク信号の出力バッファ、1050はRAM200、201…209に対する書き込みデータの出力バッファ、1060はRAM200、201…209から読み出したデータの入力バッファである。RAM200内の2010はアドレス信号の入力バッファ、2020はコントロールレジスタ、2030はデータ上位ビットに対応するマスク信号の入力バッファ、2040はデータ下位ビットに対応するマスク信号の入力バッファ、2050はRAM200に対する書き込みデータの入力バッファ、2060はRAM200から読み出したデータの出力バッファ、2070はアドレスデコーダ、2080はチップセレクト信号2020AをEnableとして、データ上位ビットのマスク信号2030A及びデータ下位ビットのマスク信号2040Aからマスキングする書き込みデータをセレクトする書き込みデータセレクタ、2090はチップセレクト信号2020AをEnableとして、データ上位ビットに対応するマスク信号2030A、及びデータ下位ビットに対応するマスク信号2040Aから、マスキングする読み出しデータをセレクトする読み出しデータセレクタ、2100はメモリアレイ、2110はアドレスデコーダ2070からのコマンド信号2070B、及びマスク情報信号2080Aの結果から、メモリアレイ2100に対してデータの書き込み/読み出しを実行する回路である。
【0044】
RAM200、201…209に対するアクセス命令が発行された場合、アクセスするアドレスから制御回路1100の判定回路1110で転送形態の判定を行なう。判定回路1110は第1の実施例で示したテーブル110と同等の機能を持つ回路である。判定回路1110からの判定結果1110Aは、分散アクセス型のデータ転送を行なう記憶領域へのアクセスであった場合は「1」である。判定結果1110Aは通常「0」であり、同一コマンドで起動されたデータを分散させない集中アクセス型のデータ転送時にも「0」である。判定結果1110Aは制御回路1100からの上位/下位8ビットに対応するマスクビットに対する出力バッファのEnable信号となる。RAM200に転送された上位8ビットに対応するマスク信号1030A及び下位8ビットに対応するマスク信号1040Aは、書き込みデータセレクタ2080でRAM200に書き込む8ビットデータセレクトに、また読み出しデータセレクタ2090でRAM200から読み出す8ビットデータのセレクトに用いる。
【0045】
図15に書き込みデータセレクタ内部の図を示す。チップセレクト信号と各8ビットに対応するマスク信号をAND回路2081・2082で論理和をとることで、分散アクセスモード時にマスクする8ビットがセレクトされる。
【0046】
図16に読み出しデータセレクタ2090内部の図を示す。出力回路2094・2095のEnableに、チップセレクト信号と各8ビットに対応するマスク信号をAND回路2091A・2092Aで論理和した結果を使用することで、分散アクセスモード時に読み出す8ビットがセレクトされる。この時、マスクした8ビットはハイ・インピーダンス出力である。本実施例では、MC内の80ビットのデータを5チャネルに16ビットずつ分配する方式を採っている。従って、MC内データ出力バッファ1050及びデータ入力バッファ1060は80ビットであり、RAM200内のデータ入力バッファ2050及びデータ出力バッファ2060は16ビットである。このデータ16ビットは、同一チャネル上のRAM205にも接続されている。なお、アドレス/コマンド/マスク信号はRAM200、201…209共通である。但し、RAM205、206…209に接続するマスク信号は、例えばRAM200のバッファ2030に入力される上位8ビットに対応するマスク信号を、RAM205ではバッファ2040に対応する側に入力して、下位8ビットに対応するマスク信号として扱い、RAM200のバッファ2040に入力される下位8ビットに対応するマスク信号を、RAM205ではバッファ2030に対応する側に入力して、上位8ビットに対応するマスク信号として扱う。この方式によれば、MC100−RAM200、201…209間にインタフェース信号を増やすことなく、80ビットのデータを10個のRAMに対し8ビット毎に分散して書き込みまたは読み出す事が可能である。
【0047】
図17は第4の実施例で説明したパラレル型のインタフェースを備えるMC3000−RAM4000、4010…4090間の分散アクセスモード転送で、RAM障害を救済する為に、MC3000とRAM4000、4010…4090間の接続チャネルを複数セット(当実施例では5セット)備え、各チャネルに複数個のRAM(当実施例では2個)が接続され、5つのチャネルに64ビット(8Byte)のデータを分配するようなMC3000内のデータ分配回路及び各チャネルの制御回路を備える応用例を説明する為の図面である。当実施例ではMC3000とRAM4000、4100…4900間のデータの授受に関して、64ビット(8Byte)のデータに対して、16ビットの冗長ビットを付加して、8ビットのバースト誤りを訂正する方式を採用している。5つのチャネルを持つMC3000から、冗長ビットを含む80ビットを16ビット×5セットに分割して、1つのチャネルに接続された2個のRAM(例えばRAM4000&4500)に対して転送する形態を採っている。集中アクセスモード転送時はRAM4000、4100…4400の5個、またはRAM4500、4600…4900の5個に対して各16ビットずつ80ビットの書き込み/読み出しを行なう為、RAM4000、4100…4400またはRAM4500、4600…4900でRAM1個の固定障害で8ビットを越える障害が発生した場合には対処できない。しかし、分散アクセスモード転送を採用し各RAMに8ビットデータを書き込み/読み出しすることにより、RAM1個の固定障害が発生しても8ビットバースト以内に抑える事ができる為、障害の救済が可能である。
【0048】
なお、上記実施例ではスロット毎に対応するRAMの割り当てを変更する分散転送モードの例を示したが、分散転送モードで信号線毎にRAMへの割り当てを行なう方式であっても良い。
【0049】
【発明の効果】
以上説明したように、高速化を狙ったパケット方式でコントローラと記憶素子間の情報の授受を行う装置に於いて、1パケットを構成する複数個のデータスロットを各々異なる記憶素子に割り付けてアクセスする機構を備えることにより、記憶素子1個の障害が発生しても救済可能なシステムを提供する事ができる。
【図面の簡単な説明】
【図1】従来のパケット型でデータの授受を行なう記憶素子のタイムチャートを示す図。
【図2】従来型のインタフェースを備えるDRAMとMCの接続図、及びパケット型のインタフェースを備えるDRAMとMCの接続図。
【図3】本発明の第1の実施例を示す図。
【図4】テーブル110の構造を示す図。
【図5】Extra address bit を持つ制御装置のアドレスパケット構造例を示す図。
【図6】第1の実施例におけるデータの書き込み状態のイメージを示す図。
【図7】書き込みデータセレクタ240の内部回路を示す図。
【図8】書き込みデータスロット選択後のデータパケット構造を示す図。
【図9】読み出しデータセレクタ250の内部回路を示す図。
【図10】読み出しデータスロット選択後のデータパケット構造を示す図。
【図11】分散アクセスモードのときの書き込み、読み出しのタイミング制御を示す図。
【図12】本発明の第2の実施例を示す図。
【図13】本発明の第3の実施例を示す図。
【図14】本発明の第4の実施例を示す図。
【図15】書き込みデータセレクタ2080の内部回路を示す図。
【図16】読み出しデータセレクタ2090の内部回路を示す図。
【図17】第4の実施例の応用を示す図。
【符号の説明】
10:MC(メモリコントローラ)、20:RAM、110:アクセスモード判定テーブル、120:マルチプレクサ、130:シリアルデータコントローラ、140:マルチプレクサ、141:デマルチプレクサ、210:デマルチプレクサ、211:アドレスデコーダ、220:コントロールレジスタ、221:Device IDデコーダ、230:メモリアレイ、231:書き込み読み出し回路、232:パケットを形成するマルチプレクサ、233:データパケットのデマルチプレクサ、240:書き込みデータセレクタ、250:読み出しデータセレクタ。
Claims (1)
- メモリコントローラと複数の記憶素子との間を複数のスロットからなるデータパケットの形態でデータの授受を行なう記憶装置であって、前記メモリコントローラにあって、集中アクセスモードか分散アクセスモードかを指定する回路と、各記憶素子にあって、分散アクセスモードが指定されたとき自記憶素子にのみ書き込みをするパケット中の任意のデ−タを選択するマスク情報を生成し、集中モードが指定されたとき前記メモリコントローラで指定された前記記憶素子の1つにおいてのみパケット中の全デ−タについて書き込みを選択するマスク情報を生成する生成回路とを備えたことを特徴とする記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000035691A JP3973337B2 (ja) | 2000-02-08 | 2000-02-08 | 記憶素子及びそれを用いた記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000035691A JP3973337B2 (ja) | 2000-02-08 | 2000-02-08 | 記憶素子及びそれを用いた記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001222472A JP2001222472A (ja) | 2001-08-17 |
JP3973337B2 true JP3973337B2 (ja) | 2007-09-12 |
Family
ID=18559857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000035691A Expired - Fee Related JP3973337B2 (ja) | 2000-02-08 | 2000-02-08 | 記憶素子及びそれを用いた記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3973337B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060036826A1 (en) * | 2004-07-30 | 2006-02-16 | International Business Machines Corporation | System, method and storage medium for providing a bus speed multiplier |
JP5165233B2 (ja) * | 2005-12-09 | 2013-03-21 | 三星電子株式会社 | メモリシステム |
WO2008022434A1 (en) * | 2006-08-22 | 2008-02-28 | Mosaid Technologies Incorporated | Modular command structure for memory and memory system |
JP6287571B2 (ja) | 2014-05-20 | 2018-03-07 | 富士通株式会社 | 演算処理装置、情報処理装置、及び、演算処理装置の制御方法 |
-
2000
- 2000-02-08 JP JP2000035691A patent/JP3973337B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001222472A (ja) | 2001-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10672458B1 (en) | Memory system topologies including a buffer device and an integrated circuit memory device | |
US7844771B2 (en) | System, method and storage medium for a memory subsystem command interface | |
US7313644B2 (en) | Memory device interface | |
US7729151B2 (en) | System including a buffered memory module | |
JP5231642B2 (ja) | メモリモジュール内の独立制御式仮想メモリ装置 | |
US20060036826A1 (en) | System, method and storage medium for providing a bus speed multiplier | |
US7305574B2 (en) | System, method and storage medium for bus calibration in a memory subsystem | |
US20230410890A1 (en) | Memory System Topologies Including A Memory Die Stack | |
JP3973337B2 (ja) | 記憶素子及びそれを用いた記憶装置 | |
US20060161698A1 (en) | Architecture for accessing an external memory | |
JP2009104682A (ja) | 半導体記憶装置と品種展開方法 | |
JP2000066962A (ja) | 記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040408 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060801 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060815 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061013 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20061013 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070227 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070420 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070515 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070612 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100622 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100622 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110622 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110622 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120622 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |