以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
また、実施の形態において、各ブロックを構成する回路素子は、特に制限されないが、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。さらに、これらのメモリセルは、相変化メモリやReRAM(Resistive Ramdam Access Memory)のような抵抗性記憶素子を用いている。特に相変化メモリの場合の構成は、図2や図3に代表されるものである。
また、具体的な数値は、特に言及がない限り、本発明を説明するにあたって用いた数値であって、特にそれに限定されるものではない。
<<本実施の形態の概要>>
本実施の形態の代表的な目的は、半導体装置である相変化メモリへの書き込みは、データの上書きを行うのではなく、相変化メモリセルの状態を一旦、アモルファス状態あるいは結晶状態のいずれかの状態へ設定し、その後、所望のデータを書き込むことである。さらに、ホストからストレージとして管理しやすいデータ単位で動作する使い勝手の良い相変化メモリを提供することである。
上記本実施の形態の代表的な目的を達成するために、本実施の形態の代表的な特徴は、半導体装置である相変化メモリに関して、相変化メモリセルへのMバイト(1バイト=8ビット)データの書き込み方法は、ライト命令を受け取った後に、nバイト分のメモリセルを一括消去(nビット分を“0”高抵抗状態)し、プログラム(“1”のデータのみを低抵抗状態)し、これをM/n回繰り返す。
相変化メモリは、複数のデータバッファを装備し、データバッファを指定したデータバッファへの書き込みコマンドにより、指定されたデータバッファへデータを書き込む。
相変化メモリは、複数のデータバッファを装備し、データバッファを指定したデータバッファからメモリセルへのプログラムコマンドにより、指定されたデータバッファからメモリセルへデータを書き込む。
相変化メモリは、ページ、セクター、ブロック、バンクから構成され、消去コマンドにより選択されたメモリセルの全データを“0”または“1”へ設定する。相変化メモリがサポートする消去コマンドは、ページ消去、セクター消去、ブロック消去、バンク消去、チップ消去である。
相変化メモリに関して、相変化メモリセルからのMバイト(1バイト=8ビット)データの読み出し方法は、読み出し命令を受け取った後に、nバイト分毎にメモリセルを選択し、nバイト毎にデータを読み出し、これをM/n回繰り返す。
相変化メモリは、複数のデータバッファを装備し、データバッファを指定したデータバッファへのロードコマンドにより、メモリセルからデータを読み出し指定されたデータバッファへデータを転送する。相変化メモリがサポートするロードコマンドは、セクターロード、マルチセクターロードである。
相変化メモリは、複数のデータバッファを装備し、データバッファを指定したデータバッファからの読み出しコマンドにより、指定されたデータバッファからデータを読み出す。
上記本実施の形態の代表的な特徴により、本実施の形態の代表的な効果は、半導体装置である相変化メモリに関して、相変化メモリセルの状態を一旦、アモルファス状態あるいは結晶状態のいずれかの状態へ設定し、その後、所望のデータを書き込み、さらに、ホストからストレージとして管理しやすいデータ単位で動作し、ホストからの書き込みや読み出し要求時のデータサイズに合わせて、書き込みおよび読み出し動作が行われるため、高速なデータ転送が可能な、ストレージに適した使い勝手の良い相変化メモリを実現できる。
以上の本実施の形態の概要に基づいた、本発明を適用した一実施の形態である情報処理システムについて、以下において具体的に説明する。
<<情報処理システム>>
本発明を適用した一実施の形態である情報処理システムについて、図1〜図20を用いて説明する。
図1は、本発明を適用した一実施の形態である情報処理システムにおいて、その構成の一例を示すブロック図である。
本実施の形態である情報処理システムは、ホストとして機能する情報処理装置CPU_CHIPと、この情報処理装置CPU_CHIPからストレージとして機能するメモリモジュールNVMSTRとから構成される。
図1に示されるように、情報処理装置CPU_CHIPは、特に限定しないが、メモリモジュールNVMSTRへ保存されているデータを最小512バイト単位の論理アドレス(LBA:Logical Block Address)にて管理するホストコントローラであり、このメモリモジュールNVMSTRへデータの読み出しや書き込みを行う。
情報処理装置CPU_CHIPとメモリモジュールNVMSTRとを接続し、これらの間にてデータを伝送する代表的なインターフェース技術には、SDカードインターフェース、USBインターフェース、SATAインターフェース、SASインターフェース、SCSIインターフェース、PCI Expressインターフェースなどの電気信号でデータを伝送するシリアルインターフェース技術や、Light Peakインターフェースなどの光信号でデータを伝送する光インターフェース技術があり、いずれのインターフェース技術も利用できる。さらに、DIMM(Dual Inline Memory Module)などのパラレルインターフェース技術も利用できることは言うまでもない。
メモリモジュールNVMSTRは、メモリ装置NVM10〜NVM14と、これらメモリ装置を制御する制御回路STRCT0から構成されている。
制御回路STRCT0は、インターフェース回路HOST_IFと、メモリ装置RAMと、調停回路ARBと、情報処理回路STCON(CPU)と、メモリ装置NVM10〜NVM14をそれぞれ直接制御するメモリ制御装置NVCT0〜NVCT4にて構成される。メモリ装置RAMは揮発性メモリであっても不揮発性メモリであっても良い。
メモリ装置NVM10〜NVM14は、同じ構成および性能を持つ不揮発性メモリの半導体装置である。
以上の情報処理システムを構成する各装置・回路の機能は、後述する各動作で記載する通りである。
また、図2は、メモリ装置NVM10〜NVM14として利用されている不揮発性メモリNVMEMの回路構成の一例を示すブロック図であり、相変化型の不揮発メモリを例に示してある。(a)は不揮発性メモリNVMEMの回路構成、(b)はメモリセルcelの回路構成をそれぞれ示す。
不揮発性メモリNVMEMは、クロック生成回路SYMD、ステータスレジスタSTREG、アドレスおよびコマンド(アドレス・コマンド)インターフェース回路ADCMDIF、IOバッファIOBUF、制御回路CONTLOGIC、温度センサTHMO、データ制御回路DATACTL、メモリバンクBK0〜BK3から構成される。
各メモリバンクBK0〜BK3には、メモリアレイARYx(x=0〜m)、ロウアドレスラッチ回路RADLT、カラムアドレスラッチ回路CADLT、ロウデコーダROWDEC、カラムデコーダCOLDEC、データ選択回路DSW1、データバッファDBUF0およびデータバッファDBUF1が含まれる。
各メモリアレイARYx(x=0〜m)には、複数のメモリセルcelと、ビット線選択回路BSWx(x=0〜m)、センスアンプSAx(x=0〜m)およびライトドライバWDRx(x=0〜m)が含まれる。
各メモリセルcelは、複数のワード線WL0〜WLiと、複数のワード線と交差する複数のビット線BL0〜BLiとの交点に配置された書き換え可能な抵抗性記憶素子(抵抗:R+ダイオード:D)を含むメモリセルである。各ビット線選択回路BSW0〜BSWmとセンスアンプSA0〜SAmおよびライトドライバWDR0〜WDRmとの間は、データ線DT0〜DTmで接続されている。
不揮発性メモリNVMEMには、クロック信号CLK、リセット信号RST、制御信号CTLが外部から入力され、I/O信号IO[7:0]が外部との間で入出力される。
制御信号CTLは、コマンド・ラッチイネーブル信号CLE、チップイネーブル信号CEB、アドレス・ラッチイネーブル信号ALE、ライトイネーブル信号WEB、リードイネーブル信号REB、レディビジー信号RBBから構成される。
I/O信号IO[7:0]は入出力信号であり、コマンド、アドレスおよび書き込みデータが入力され、読み出しデータが出力される。
以上の不揮発性メモリNVMEMを構成する各回路の機能は、後述する各動作で記載する通りである。
<<不揮発性メモリNVMEMのメモリマップ>>
図14は、図2で示す不揮発性メモリNVMEMのメモリマップの一例を示す。特に限定はしないが、不揮発性メモリNVMEMは、ページと、ページが複数集まったセクターと、セクターが複数集まったブロックから構成される。
図14(b)は、ページが複数集まった1セクターの構成を示している。特に限定しないが、1ページは、512バイトのデータ領域(DA0〜DA15)と16バイトの冗長領域(RA0〜RA15)から構成されており、このページが16個集まり1セクターを構成している。
データ領域はプログラムやデータを格納し、冗長領域には、エラーを検出しデータを修正するために必要なECCパリティ情報や、ページが不良となったことを示す不良ページ情報などを格納する。
DA0〜DA15はそれぞれ、512バイトのデータ領域であり、RA0〜RA15はそれぞれ、16バイトの冗長領域である。
ページ0番地はデータ領域DA0と冗長領域RA0とで構成され、ページ1番地はデータ領域DA1と冗長領域RA1とで構成され、ページ2番地はデータ領域DA2と冗長領域RA2とで構成され、ページ3番地はデータ領域DA3と冗長領域RA3とで構成され、ページ4番地はデータ領域DA4と冗長領域RA4とで構成され、ページ5番地はデータ領域DA5と冗長領域RA5とで構成され、ページ6番地はデータ領域DA6と冗長領域RA6とで構成され、ページ7番地はデータ領域DA7と冗長領域RA7とで構成され、ページ8番地はデータ領域DA8と冗長領域RA8とで構成され、ページ9番地はデータ領域DA9と冗長領域RA9とで構成され、ページ10番地はデータ領域DA10と冗長領域RA10とで構成され、ページ11番地はデータ領域DA11と冗長領域RA11とで構成され、ページ12番地はデータ領域DA12と冗長領域RA12とで構成され、ページ13番地はデータ領域DA13と冗長領域RA13とで構成され、ページ14番地はデータ領域DA14と冗長領域RA14とで構成され、ページ15番地はデータ領域DA15と冗長領域RA15とで構成される。
図14(a)は、複数のセクターから構成される不揮発性メモリNVMEM全体のメモリマップを示している。
セクターアドレスは、16進数で000000番地〜3FFFFF番地まであり、128個のセクターが集まり1ブロックを構成している。
また、セクターアドレス000000番地から0FFFFF番地までがバンク0(Bank0)の領域を示し、セクターアドレス100000番地から1FFFFF番地までがバンク1(Bank1)の領域を示し、セクターアドレス200000番地から2FFFFF番地までがバンク2(Bank2)の領域を示し、セクターアドレス300000番地から3FFFFF番地までがバンク3(Bank3)の領域を示す。
<<電源投入直後の動作>>
図13は、情報処理装置CPU_CHIPおよびメモリモジュールNVMSTRへの電源投入直後の初期化動作の一例を示している。図15は、図13の初期化動作時に、情報処理回路STCON(CPU)が作成する情報処理装置CPU_CHIPからメモリモジュールNVMSTRへ入力する論理アドレスLADとメモリ装置NVM10〜NVM14の物理アドレスPAD(セクターアドレスNSAD+ページアドレスNPAD)との対応表TLTBLである。
T1(PwOn)の期間に電源が投入されると、T2(Reset)のリセット期間で制御回路STRCT0内の全回路が初期化され、メモリ装置NVM10〜NVM14も初期化される。
次のT3(RdNVM1)の期間で、情報処理回路STCON(CPU)は調停回路ARBおよびメモリ制御回路NVCT0〜NVCT4を通じて、メモリ装置NVM10〜NVM14内の全てのページに対応する冗長領域を読み出し、正常ページか不良ページかを判定する。
次のT4(TBL)の期間で、T3の判定結果に基づいて、情報処理回路STCON(CPU)は論理アドレスLADと物理アドレスPADとの対応表TLTBLを作成し、メモリ装置RAMへ保存する。
次のT5(Boot)の期間で、情報処理回路STCON(CPU)は、特に限定しないが、メモリ装置NVM14のブート領域BtAreaへ格納されているブートプログラムを読み出し、メモリ装置RAMへ格納する。
次のT5が終了したT6(Idle)の期間では、メモリモジュールNVMSTRはアイドル状態となり、情報処理装置CPU_CHIPからのアクセスを受け付けることが可能となる。
情報処理装置CPU_CHIPがメモリモジュールNVMSTR内のブートプログラムを利用し、自らを立ち上げる場合は、情報処理装置CPU_CHIPは論理アドレスLAD(Hex10000000〜1000001F)をメモリモジュールNVMSTRへ入力すると、メモリ装置RAMへ格納されているブートプログラムが読み出され、情報処理装置CPU_CHIPへ転送される。
図13のT4(TBL)の期間で、情報処理回路STCON(CPU)が作成した対応表TLTBLは、メモリ装置RAMへ保存する実施例を示したが、この対応表TLTBLは、メモリ装置NVM10〜NVM14へ保存できることは言うまでもない。
<<論理アドレスLADと物理アドレスPADとの対応表>>
図15は、図13の初期化動作時に、情報処理回路STCON(CPU)が作成する情報処理装置CPU_CHIPからメモリモジュールNVMSTRへ入力する論理アドレスLADとメモリ装置NVM10〜NVM14の物理アドレスPAD(セクターアドレスNSAD+ページアドレスNPAD)との対応表TLTBLである。
特に限定しないが、論理アドレスLADは、512バイトのデータを一つの単位とした論理ページアドレスで表される。論理アドレスLADは、16進数で0番地から1000001F番地まであり、0番地からFFFFFFF番地にはOSやアプリケーションプログラムやデータが格納され、10000000番地から1000001F番地には、ブートプログラムが格納されている。
特に限定しないが、物理アドレスPAD(セクターアドレスNASDと、ページアドレスNPADにて指定されたアドレス)は、512バイトのデータを一つの単位とした物理ページアドレスで表される。
具体的には、8Kバイトのデータを一つの単位としたセクターアドレスNASDと、セクターアドレスNASD内の512バイトのデータを一つの単位としたページアドレスNPADにて指定された物理アドレスである。
情報処理回路STCON(CPU)は、調停回路ARBおよびメモリ制御回路NVCT0を通じてメモリ装置NVM10〜NVM14の全ページに対応する冗長領域を読み出し、それぞれのページが正常か不良かを判断する。この判断の結果、情報処理回路STCON(CPU)は、以下の様に論理アドレスLADと物理アドレスPADの対応付けを行う。
(1)メモリ装置NVM10の全物理アドレスPADが正常であるため、論理アドレスLADの0番地から03FFFFFF番地は、メモリ装置NVM10の物理アドレスPADの0番地から3FFFFFF番地へ対応する。
(2)メモリ装置NVM11の物理アドレスPADの0番地から3FFFFFE番地までは正常であり、3FFFFFF番地が不良のため、論理アドレスLADの04000000番地から07FFFFFE番地は、メモリ装置NVM11の物理アドレスPADの0000000番地から3FFFFFE番地へ対応し、論理アドレスLADの07FFFFFF番地は、メモリ装置NVM14の代替領域PvArea内の物理アドレスPADの000020Fへ対応する。
(3)メモリ装置NVM12の全物理アドレスPADが正常であるため、論理アドレスLADの08000000番地から0BFFFFFF番地は、メモリ装置NVM12の物理アドレスPADの0番地から3FFFFFF番地へ対応する。
(4)メモリ装置NVM13の物理アドレスPADの0番地から3FFFFFE番地までは正常であり、3FFFFFF番地が不良のため、論理アドレスLADの0C000000番地から0FFFFFFE番地は、メモリ装置NVM13の物理アドレスPADの0000000番地から3FFFFFE番地へ対応し、論理アドレスLADの0FFFFFFF番地は、メモリ装置NVM14の代替領域PvArea内の物理アドレスPADの000021Fへ対応する。
(5)メモリ装置NVM14の全物理アドレスPADが正常であるため、論理アドレスLADの10000000番地から1000001F番地は、メモリ装置NVM14の物理アドレスPADの0000000番地から00001FF番地へ対応しており、ブートプログラムが格納されている。
また、メモリ装置NVM14の物理アドレスPADの0000200〜3FFFFFFへは代替領域PvAreaが確保される。
相変化メモリやReRAMには、書き換え回数の制限があり、書き換えを繰り返すことによって、信頼性が低下し、書き込み時に書いたデータが、読み出し時には異なるデータとなったり、書き換え時にデータが書き込まれなかったりすることが稀にある。
代替領域PvAreaは、このように不良となったアドレス(メモリ装置NVM11の物理アドレスPADの3FFFFFF番地、メモリ装置NVM13の物理アドレスPADの3FFFFFF番地)のデータを、新たな領域へ置き換えるために設けられている。代替領域の大きさは、特に限定しないが、相変化メモリやReRAMが保証する信頼性が確保できるように決めると良い。
特に限定しないが、論理アドレスLADの0番地からFFFFFFF番地にはOSやアプリケーションプログラムやデータが格納され、10000000番地から1000001F番地には、ブートプログラムが格納される。
<<書き込み動作>>
図4は、不揮発性メモリ装置NVM1x(x=0〜4)がMバイトのデータを、データバッファDBUF0を介してメモリセルcelへ書き込む際の書き込み動作の例を示している。なお、図4や以降の各図における「m*n」等の「*」は「×」(乗算)を意味するものである。
ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。この後、書き込みコマンドW10を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって書き込みコマンドW10がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。また、コマンドW10には、データバッファDBUF0あるいはDBUF1を指定する情報も含まれており、図4の例ではデータバッファDBUF0を指定している。
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、カラム・アドレスを2回(CA1、CA2)、ロウ・アドレスを3回(RA1、RA2、RA3)に分けて順に入力する。これらのアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
アドレス・コマンドインターフェース回路ADCMDIFにてアドレス、コマンドW10を解読した結果、メモリバンクBK0への読み出し命令であることを制御回路CONTLOGICへ伝えると、制御回路CONTLOGICは、メモリバンクBK0からデータを読み出すため、メモリバンクBK0を活性化する。
アドレス・コマンドインターフェース回路ADCMDIFへ入力されたロウアドレス(RA1、RA2、RA3)およびカラム・アドレスを(CA1、CA2)は制御回路CONTLOGICを通じて、それぞれ、活性化されたメモリバンクBK0のロウアドレスラッチ回路RADLTへ転送され、カラムアドレスラッチ回路CADLTへ転送される。この書き込み動作は最初に入力されたカラムアドレスから開始される。
ロウアドレスラッチ回路RADLTからロウアドレス(RA1、RA2、RA3)がロウデコーダROWDECへ転送され、ロウデコーダROWDECによってロウアドレス(RA1、RA2、RA3)に対応したワード線WLnが選択される。
次に、カラムアドレスラッチ回路CADLTからカラム・アドレス(CA1、CA2)がカラムデコーダCOLDECへ転送され、解読される。
カラムデコーダCOLDECからの解読結果は、各メモリアレイ(ARY0−n)のビット線選択回路BSW0−nへ入力され、メモリアレイ毎に一つのビット線BLが選択され、データ線DT0−nを介して書き込み(ライト)ドライバWDR0−nへ接続される。
書き込みドライバWDR0−nは、データ線DT0−nを介して、図3のような電流パルスによって、選択されたメモリセルcelを低抵抗状態や高抵抗状態にするための電流供給回路である。
メモリセルcelを高抵抗状態にする、すなわち記憶情報“0”を書き込む場合に、データ線DT0−nを介して印加するメモリセル電流Icellをリセット動作に必要な値Iresetに制御する。
メモリセルcelを低抵抗状態にする、すなわち記憶情報“1”を書き込む場合に、データ線DT0−nを介して印加するメモリセル電流Icellをセット動作に必要な値Isetに制御する。
一つのメモリバンクの中に、書き込みドライバWDRは合計n×8個存在するため、一つのメモリバンクの中で、同時にnバイトのメモリセルcelを書き込むことができる。
次に、ハイ・レベルとなっているアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動して、ライトイネーブル信号WEBの立ち上がりエッジに同期して、記憶情報DI(1)〜DI(M)が入出力線I/Ox(x=0〜7)を介して、1バイト分のデータが順次データバッファDBUF0へ入力される。
データバッファDBUF0へnバイト分のデータが入力するたびに、n×8個分の書き込みドライバWDRを通じて、nバイト分のデータが書き込まれる。以下に、その動作を示す。
先ず、最初のnバイト分のデータの書き込み動作を説明する。
データバッファDBUF0へ最初のnバイト分のデータの中で、最初の1バイト分のデータが入力した時点で、書き込みドライバWDRを通じて、カラム・アドレス{CA1、CA2}によって選択された最初のnバイト分のメモリセルを高抵抗状態(消去:ERS0)する。次に、データバッファDBUF0へ最初のnバイト分のデータがすべて入力した時点で、データバッファDBUF0に保持されているデータの中で“1”のデータのみを書き込みドライバWDRによってメモリセルを低抵抗状態(プログラム:PROG1)にする。これによって、最初のnバイト分のデータ書き込みが行われる。
次に、2番目のnバイト分のデータの書き込み動作を説明する。
データバッファDBUF0へ2番目のnバイト分のデータの中で、最初の1バイト分のデータが入力した時点で、書き込みドライバWDRを通じて、カラム・アドレス{{CA1、CA2}+(n)}によって選択された2番目のnバイト分のメモリセルを高抵抗状態(消去:ERS0)にする。次に、データバッファDBUF0へ2番目のnバイト分のデータがすべて入力した時点で、データバッファDBUF0に保持されているデータの中で“1”のデータのみを書き込みドライバWDRによってメモリセルを低抵抗状態(プログラム:PROG1)にする。これによって、2番目のnバイト分のデータ書き込みが行われる。
3番目のnバイト分のデータの書き込み動作も、上記の動作と同様に行われ、その際のカラム・アドレスは{{CA1、CA2}+(2n)}となる。
このように、開始カラムアドレス{CA1、CA2}へ順にnの倍数を加算したカラムアドレスによって選択されたnバイト分のメモリセルcelへ消去(ERS0)とプログラム(PROG1)が実行される。
Mバイトのデータを書き込む際は、消去(ERS0)とプログラム(PROG1)がM/n回生じる。
また、書き込みコマンドW10にてデータバッファDBUF1を指定した場合は、入出力線I/Ox(x=0〜7)を介してデータバッファDBUF1へ入力され、データバッファDBUF1に保持されたデータがメモリセルcelへ書き込まれる。
以上説明したように不揮発性メモリ装置NVM1x(x=0〜4)はMバイトのデータを書き込む際には、要求されたMバイトデータサイズだけの消去(ERS0)とプログラム(PROG1)動作を行う。
つまり、消去(ERS0)のデータサイズとプログラム(PROG1)のデータサイズは等しいため、余分なアドレスのデータを消去(ERS0)する必要な無いため、高速な書き込みを実現できる。
さらに、この書き込み動作において、上書きはせず、一旦、対象となるメモリセルcelを消去状態とすることで、メモリセルの抵抗値の均一化を図ることができ、安定した書き込みや読み出し動作を実現できる。
<<データバッファへの書き込み動作>>
図5は、不揮発性メモリ装置NVM1x(x=0〜4)がMバイトのデータを、データバッファDBUF0へ書き込む際の書き込み動作の例を示している。
ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。この後、書き込みコマンドWF1を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによってデータバッファ書き込みコマンドWF1がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。また、コマンドWF1には、データバッファDBUF0あるいはDBUF1を指定する情報も含まれており、図5の例ではデータバッファDBUF0を指定している。
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、カラム・アドレスを2回(CA1、CA2)、ロウ・アドレスを3回(RA1、RA2、RA3)に分けて順に入力する。これらのアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
アドレス・コマンドインターフェース回路ADCMDIFにてアドレス(CA1、CA2、RA1、RA2、RA3)およびコマンドWF1を解読した結果、メモリバンクBK0のデータバッファDBUF0への書き込み命令であることを制御回路CONTLOGICへ伝えると、制御回路CONTLOGICは、メモリバンクBK0のデータバッファDBUF0を活性化する。
次に、ハイ・レベルとなっているアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動して、ライトイネーブル信号WEBの立ち上がりエッジに同期して、記憶情報DI(1)〜DI(M)が入出力線I/Ox(x=0〜7)を介して、1バイト分のデータが順次データバッファDBUF0へ入力される。
MバイトのデータをデータバッファDBUF0へ書き込む際は、書き込み動作がM回行われる。
また、書き込みコマンドWF1にてデータバッファDBUF1を指定した場合は、データバッファDBUF1へ同様の書き込み動作が生じる。
<<データバッファからメモリセルへの書き込み動作>>
図6の(a)および(b)は、不揮発性メモリ装置NVM1x(x=0〜4)のデータバッファDBUF0へ保持されているMバイトのデータをメモリセルへ書き込む際の書き込み動作の例を示している。
先ず、図6(a)の書き込み動作について説明する。
ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。この後、書き込みコマンドPG1を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによってデータバッファ書き込みコマンドPG1がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。また、コマンドPG1には、データバッファDBUF0あるいはDBUF1を指定する情報も含まれており、図6(a)の例ではデータバッファDBUF0を指定している。
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、カラム・アドレスを2回(CA1、CA2)、ロウ・アドレスを3回(RA1、RA2、RA3)に分けて順に入力する。これらのアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
アドレス・コマンドインターフェース回路ADCMDIFにてアドレス(CA1、CA2、RA1、RA2、RA3)およびコマンドPG1を解読した結果、メモリバンクBK0のデータバッファDBUF0からメモリセルcelへの書き込み命令であることを制御回路CONTLOGICへ伝えると、制御回路CONTLOGICは、メモリバンクBK0のデータバッファDBUF0を活性化する。
次に、第2のコマンドPG11を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第2のコマンドPG11がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
その後、図4で示したメモリセルへの書き込み動作と同様に、メモリバンクBK0のデータバッファDBUF0からnバイト分毎にデータを読み出し、メモリセルを高抵抗状態(消去:ERS0)にした後、低抵抗状態(プログラム:PROG1)にする。
メモリバンクBK0のデータバッファDBUF0に保持されたMバイトのデータを書き込む際は、消去(ERS0)とプログラム(PROG1)がM/n回行われる。
また、書き込みコマンドPG1にてデータバッファDBUF1を指定した場合は、同様にデータバッファDBUF1へ保持されているMバイトのデータをメモリセルへ書き込む動作が生じる。
次に、図6(b)の消去動作が必要の無い書き込み動作について説明する。
消去動作が必要の無い書き込み動作の第1のコマンドがPG2であり、第2のコマンドがPG21である場合、図6(a)のコマンドPG1の代わりにコマンドPG2が、コマンドPG11の代わりにコマンドPG21が入力される。
また、コマンドPG2には、データバッファDBUF0あるいはDBUF1を指定する情報も含まれており、図6(b)の例ではデータバッファDBUF0を指定している。
第2のコマンドPG21を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第2のコマンドPG21がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれると、メモリバンクBK0のデータバッファDBUF0からnバイト分毎にデータを読み出し、低抵抗状態(プログラム:PROG1)にする。
メモリバンクBK0のデータバッファDBUF0に保持されたMバイトのデータを書き込む際はプログラム(PROG1)がM/n回行われる。
また、コマンドPG2にてデータバッファDBUF1を指定した場合は、同様にデータバッファDBUF1へ保持されているMバイトのデータをメモリセルへ書き込む動作が生じる。
書き込みを行うセクターが予め消去状態であれば、これらのコマンド(PG2およびPG21)を利用することによって消去動作が不要となり、書き込み時間を短縮できる。
<<消去動作>>
図7の(a)、(b)および(c)は、不揮発性メモリ装置NVM1x(x=0〜4)の消去動作である。図7の(a)はセクター消去動作、(b)はブロック消去動作、(c)はチップ消去動作の一例を示す。
先ず、図7(a)のセクター消去動作について説明する。
ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。この後、第1のセクター消去コマンドSE1を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって第1のセクター消去コマンドSE1がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、カラム・アドレスを2回(CA1、CA2)、ロウ・アドレスを3回(RA1、RA2、RA3)に分けて順に入力する。これらのアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
次に、第2のセクター消去コマンドSE11を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第2のセクター消去コマンドSE11がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
その後、図4で示したメモリセルへの消去動作と同様に、選択されたワード線WLに接続されたメモリセルcelを、ビット線BLによってnバイト分毎に選択して高抵抗状態(消去:ERS0)にする。
1セクターのデータサイズをMバイトとすると、消去動作(ERS0)がM/n回行われる。
次に、図7(b)のブロック消去動作について説明する。
ブロック消去動作の第1のコマンドがBE1であり、第2のコマンドがBE11である場合、図7(a)のコマンドSE1の代わりにコマンドBE1が、コマンドSE11の代わりにコマンドBE11が入力される。
第2のコマンドBE11を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第2のコマンドBE11がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれる。
その後、1ブロックがQ個のセクターにて構成される場合、図7(a)で示したセクター消去動作をQ回行う。
ブロック消去動作では、一つのブロック消去コマンドによって連続的に複数セクターを消去することができるため、高速消去が実現できる。
次に、図7(c)のチップ消去動作について説明する。
チップ消去動作の第1のコマンドがCE1であり、第2のコマンドがCE11である場合、図7(a)のコマンドSE1の代わりにコマンドCE1が、コマンドSE11の代わりにコマンドCE11が入力される。
第2のコマンドCE11を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第2のコマンドCE11がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれる。
その後、1チップがR個のブロックにて構成される場合、図7(b)で示したブロック消去動作をR回行う。
チップ消去動作では、一つのチップ消去コマンドによって連続的に複数ブロックを消去することができるため、高速消去が実現できる。
<<1セクターデータ読み出し動作>>
図8は、メモリ制御装置NVCTx(x=0〜4)が不揮発性メモリ装置NVM1x(x=0〜4)から1セクター分(Mバイト)のデータを、データバッファDBUF0を介して読み出す際の読み出し動作の例を示している。
ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。
次に、セクターデータ読み出しコマンドRD1を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第1のセクター読み出しコマンドRD1がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、カラム・アドレスを2回(CA1、CA2)、ロウ・アドレスを3回(RA1、RA2、RA3)に分けて順に入力する。これらのアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
次に、ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。
次に、第2のセクターデータ読み出しコマンドRD11を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第2のセクターデータ読み出しコマンドRD11がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
コマンドRD1およびRD11には、データバッファDBUF0あるいはDBUF1を指定する情報も含まれており、図8の例ではデータバッファDBUF0を指定している。
アドレス・コマンドインターフェース回路ADCMDIFにてアドレス、コマンドRD1およびコマンドRD11を解読した結果、メモリバンクBK0への読み出し命令であることを制御回路CONTLOGICへ伝えると、制御回路CONTLOGICは、メモリバンクBK0からデータを読み出すため、メモリバンクBK0を活性化する。
アドレス・コマンドインターフェース回路ADCMDIFへ入力されたロウアドレス(RA1、RA2、RA3)およびカラム・アドレス(CA1、CA2)は制御回路CONTLOGICを通じて、それぞれ、活性化されたメモリバンクBK0のロウアドレスラッチ回路RADLTへ転送され、カラムアドレスラッチ回路CADLTへ転送される。
ロウアドレスラッチ回路RADLTからロウアドレス(RA1、RA2、RA3)がロウデコーダROWDECへ転送され、ロウデコーダROWDECによってロウアドレス(RA1、RA2、RA3)に対応したワード線WLiが選択される。
次に、カラムアドレスラッチ回路CADLTからカラム・アドレス(CA1、CA2)がカラムデコーダCOLDECへ転送され、解読される。
カラムデコーダCOLDECからの解読結果は、各メモリアレイ(ARY0−m)のビット線選択回路BSW0−mへ入力され、メモリアレイ毎に一つのビット線BLiが選択され、データ線DT0−mを介してセンスアンプSA0−mへ接続される。
これによって、メモリアレイ(ARY0−m)毎に1ビットのメモリセルcelが選択されるため、一つのメモリバンクの中で同時に合計(m+1)ビットのメモリセルcel(0ビット目からmビット目)が選択される。
メモリアレイ毎に選択されたメモリセルcel(0ビット目からmビット目)から、データ線を介してそれぞれのメモリアレイに設けられたセンスアンプSA0−nへ電流が流れ、その際の電圧を計測し、参照電圧と比較することによってメモリセルcelへ記録されたデータm+1ビット分のデータDnbyteを検出する。
つまり、カラム・アドレス{CA1、CA2}によって選択された最初のnバイト(=(m+1)/8)分のデータDnbyteがメモリセルcelから同時に検出される。
例えば、メモリアレイARY0のワード線WLnとのビット線BL0上のメモリセルcelが情報“1”を記憶しており、低抵抗状態にある場合は、ビット線BL0及びデータ線DT0が充電され、センスアンプSAへその電圧が伝えられ、データ“1”が検出される。
一方、メモリアレイARY1のワード線WLnとのビット線BL0上のメモリセルcelが情報“0”を記憶しており、高抵抗状態にある場合は、ビット線BL0及びデータ線DT1は、ほぼ接地電圧VSSに保持され、センスアンプSAへその電圧が伝えられ、データ“0”が検出される。
検出された1番目のnバイト(=(m+1)/8)分のデータDnbyteはデータ選択回路DSW1を介して、コマンドRD1およびRD11によって指定されたデータバッファDBUF0へ転送される。
次のnバイト分のデータは、カラム・アドレス{{CA1、CA2}+(n)}によって選択され、データバッファDBUF0へ転送される。
このように、メモリセルcelから開始カラムアドレス{CA1、CA2}へ順にnの倍数を加算したカラムアドレスによって選択されたnバイト分のデータが順にデータバッファDBUF0へ転送される。
セクターデータ読み出し動作では、セクターサイズをMバイトとすると、メモリアレイARYからデータバッファDBUF0へのデータ転送がM/n回生じる。
メモリセルcelからデータバッファDBUF0へセクターサイズ分のデータ転送が行われている期間は、ハイ・レベルとなっているレディビジー信号RBBはロウ・レベルとなる。
このデータ転送が終了した時点で、ロウ・レベルとなっているレディビジー信号RBBがハイ・レベルとなる。
入出力信号IOの信号数が8ビット(1バイト)の場合、データバッファDBUF0へ格納されたセクターサイズ分(Mバイト)のデータはリードイネーブル信号REBの立ち下がりエッジに同期して、入出力信号IOからDO(1)〜DO(M/1)の順に出力される。
例えば、1セクターのデータサイズが2048バイトで、同時に選択されるメモリセルcelのデータサイズが16バイト(128bit)で、入出力信号IOの信号数が8ビット(1バイト)の場合は、メモリセルcelからデータバッファDBUF0へは合計128回(=2048/16)のデータ転送が行われ、データバッファDBUF0から入出力信号IOを介してデータを出力する回数は、2048回(=2048/1)となる。
また、コマンドRD1およびRD11にてデータバッファDBUF1を指定した場合は、同様に、不揮発性メモリ装置NVM1x(x=0〜4)のメモリアレイから1セクター分(Mバイト)のデータが、データバッファDBUF1を介して読み出される。
<<データサイズを指定した読み出し動作>>
図9は、不揮発性メモリ装置NVM1x(x=0〜4)から、指定されたデータサイズ分のデータを、データバッファDBUF0を介して読み出す際の読み出し動作の例を示している。
コマンドおよびアドレスを入力する動作タイミングは図8と同様である。
データサイズを指定してデータを読み出すための第1の読み出しコマンドがRD4であり、第2の読み出しコマンドがRD41である場合、図8のコマンドRD1の代わりにコマンドRD4が、コマンドRD11の代わりにコマンドRD41が入力される。
コマンドRD4およびRD41には、読み出し命令の他にデータサイズおよびデータバッファDBUF0あるいはDBUF1を指定する情報も含まれている。図9の例ではデータサイズがk×nバイトで、データバッファDBUF0を指定している。
また、メモリセルcelからデータバッファDBUF0への転送動作および入出力信号IOからの読み出し動作は図8と同様に行われる。
1番目のnバイト分のデータDnbyteはカラム・アドレス{CA1、CA2}によって選択され、データバッファDBUF0へ転送される。
2番目のnバイト分のデータは、カラム・アドレス{{CA1、CA2}+(n)}によって選択され、データバッファDBUF0へ転送される。
このように、メモリセルcelから開始カラムアドレス{CA1、CA2}へ順にnの倍数を加算したカラムアドレスによって選択されたnバイト分のデータが順にデータバッファDBUF0へ転送される。
指定したデータサイズがk×nバイトの時、メモリアレイARYからデータバッファDBUF0へのデータ転送がk回生じる。
入出力信号IOの信号数が8ビット(1バイト)の場合、データバッファDBUF0へ格納されたk×nバイト分のデータはリードイネーブル信号REBの立ち下がりエッジに同期して、入出力信号IOからDO(1)〜DO(k×n/1)の順に出力される。
例えば、指定されたデータサイズが512バイトで、同時に選択されるメモリセルcelのデータサイズが16バイトで、入出力信号IOの信号数が8ビット(1バイト)の場合は、メモリセルcelからデータバッファDBUF0へは合計32回(=512/16)のデータ転送が行われ、データバッファDBUF0から入出力信号IOを介してデータを出力する回数は512回となる。
また、コマンドRD4およびRD41にてデータバッファDBUF1を指定した場合は、同様に、不揮発性メモリ装置NVM1x(x=0〜4)のメモリアレイから、指定したデータサイズ(k×nバイト)分のデータが、データバッファDBUF1を介して読み出される。
このように、任意のデータサイズを指定した読み出し動作では、必要なサイズ分のデータのみを効率的に読み出すことができるため、高速読み出しが実現できる。
<<1セクターデータロード動作>>
図10は、不揮発性メモリ装置NVM1x(x=0〜4)のメモリアレイARY内の1セクター分(Mバイト)のデータを、データバッファDBUF0へ転送するロード動作の例を示している。
コマンドおよびアドレスを入力する動作タイミングは図8と同様である。
メモリアレイARY内の1セクター分(Mバイト)のデータをデータバッファへ転送するための第1のロードコマンドがLD1であり、第2のロードコマンドがLD11である場合、図8のコマンドRD1の代わりにコマンドLD1が、コマンドRD11の代わりにコマンドLD11が入力される。また、コマンドLD1およびLD11にはデータバッファDBUF0も指定される。
このデータバッファの指定をデータバッファDBUF1へ変更することで、メモリアレイARY内の1セクター分(Mバイト)のデータはデータバッファDBUF1へ転送される。
1セクターデータのロード動作は、図8に示したメモリセルcelからデータバッファDBUF0への転送動作と同じです。
セクターサイズをMバイト、同時に選択されたnバイト分のメモリセルcelがデータバッファDBUF0へ一度に転送されるデータサイズをnバイトとした際に、メモリアレイARYからデータバッファDBUF0へデータ転送がm回(=M/n)生じる。
メモリセルcelからデータバッファDBUF0へ1セクターサイズ分のデータ転送が行われている期間は、ハイ・レベルとなっているレディビジー信号RBBはロウ・レベルとなる。このデータ転送が終了した時点で、ロウ・レベルとなっているレディビジー信号RBBがハイ・レベルとなる。
<<マルチセクターデータロード動作>>
図11は、不揮発性メモリ装置NVM1x(x=0〜4)の、同時に全バンクのメモリアレイARY内の1セクター分(Mバイト)のデータを、各バンクのデータバッファDBUF0へ転送するロード動作の例を示している。
コマンドおよびアドレスを入力する動作タイミングは図10と同様である。
各バンクのメモリアレイARY内の1セクター分(Mバイト)のデータをデータバッファへ転送するための第1のロードコマンドがLD5であり、第2のロードコマンドがLD51である場合、図10のコマンドLD1の代わりにコマンドLD5が、コマンドLD11の代わりにコマンドLD51が入力される。また、コマンドLD5およびLD51にはデータバッファDBUF0も指定される。
このデータバッファの指定をデータバッファDBUF1へ変更することで、各バンクのメモリアレイARY内の1セクター分(Mバイト)のデータはデータバッファDBUF1へ転送される。
マルチセクターデータのロード動作は、図10に示した1セクターデータのロード動作を全バンク同時に実行する動作である。
このマルチセクターデータのロード動作により、一度にメモリアレイARYからデータバッファDBUF0へ転送されるデータが8倍(8バンク分)となるため、データ転送速度の向上が図れる。
<<データバッファからの読み出し動作>>
図12は、不揮発性メモリ装置NVM1x(x=0〜4)からMバイト分のデータを、データバッファDBUF0から読み出す際の読み出し動作の例を示している。
ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。
次に、第1のデータバッファ読み出しコマンドRF1を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第1のデータバッファ読み出しコマンドRF1がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、バンク・アドレスを1回(BA1)を入力する。このバンクアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
次に、ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。
次に、第2のデータバッファ読み出しコマンドRF11を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第2のデータバッファ読み出しコマンドRF11がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
また、コマンドRF1およびRF11には、データバッファDBUF0を指定する情報も含まれる。このデータバッファを指定する情報をデータバッファDBUF1へ変更することで、データバッファDBUF1からデータを読み出すことができる。
アドレス・コマンドインターフェース回路ADCMDIFにてアドレス、コマンドRF1およびコマンドRF11を解読した結果、メモリバンクBK0のデータバッファDBUF0への読み出し命令であることを制御回路CONTLOGICへ伝えると、制御回路CONTLOGICは、メモリバンクBK0のデータバッファDBUF0からデータを読み出すため、このデータバッファDBUF0を活性化する。
次に、入出力信号IOの信号数が8ビット(1バイト)の場合、メモリバンクBK0のデータバッファDBUF0へ格納されたMバイト分のデータは、リードイネーブル信号REBの立ち下がりエッジに同期して、入出力信号IOからDO(1)〜DO(M/1)の順に出力される。
メモリバンクBK0のデータバッファDBUF0から入出力信号IOの信号を通じてNEバイト分のデータのみを読み出す場合は、リードイネーブル信号REBの立ち下がりエッジの回数をNE回とすればよい。
このように、リードイネーブル信号REBを必要な回数分ハイ・レベルからロウ・レベルへ変化させることで、必要なデータのみを出力することができる。
<<メモリ装置(NVM10〜NVM13)の同一バンク内の並列同時動作>>
図18(a),(b)は、メモリ装置(NVM10〜NVM13)の同一バンク内の並列同時動作可能な動作を示している。また、図18(a),(b)は、図2にて記載されているメモリ装置を簡略化して示してある。
図18(a)に示すように、データバッファDBUF0およびDBUF1は、それぞれ独立にメモリバンク0(BK0)とデータ制御回路DATACTLへ接続されているため、メモリバンク0(BK0)内のデータバッファDBUF0およびDBUF1へ既に格納されているそれぞれのデータData0およびData1があれば、データバッファDBUF0へ格納されているデータData0のメモリバンク0へのプログラム動作(PG1、PG2)と、他方のデータバッファDBUF1へ格納されているデータData1の読み出し動作(RF1)は同時に実行できる。また、データバッファDBUF1に格納されているデータData1のメモリバンク0へのプログラム動作(PG1、PG2)と、他方のデータバッファDBUF0に格納されているへデータData0の読み出し動作(RF1)も同時に実行できることは言うまでもない。
図18(b)に示すように、データバッファDBUF0およびDBUF1は、それぞれ独立にメモリバンク0(BK0)とデータ制御回路DATACTLへ接続されているため、データバッファDBUF0への書き込み動作(WF1)と、他方のデータバッファDBUF1へのメモリバンク0(BK0)からの読み出し動作(LD1)は同時に実行できる。また、データバッファDBUF1への書き込み動作(WF1)と、他方のデータバッファDBUF0へのメモリバンク0(BK0)からの読み出し動作(LD1)も同時に実行できることは言うまでもない。
以上説明したように、メモリ装置(NVM10〜NVM13)では、同一メモリバンク内での同時動作が可能となるため、読み出し、書き込み及び消去動作が高速に実行できる。
<<メモリ装置(NVM10〜NVM13)の異なるバンク内間の並列同時動作>>
図19(a)〜(c)および図20(a)〜(c)は、メモリ装置(NVM10〜NVM13)の異なるバンク間での並列同時動作可能な動作を示している。また、図19(a)〜(c)および図20(a)〜(c)は、図2にて記載されているメモリ装置を簡略化して示してある。
図19(a)〜(c)および図20(a)〜(c)に示すように、メモリ装置(NVM10〜NVM13)は、メモリバンク毎にデータバッファDBUF0およびDBUF1を備えており、各データバッファは独立に各メモリバンクとデータ制御回路DATACTLへ接続されている。
このため、図19(a)に示すように、メモリバンク0(BK0)が備えているデータバッファ(DBUF0およびDBUF1)へ格納されているデータのメモリバンク0(BK0)へのプログラム動作(PG1、PG2)と、メモリバンク0とは異なるメモリバンク1(BK1)からの読み出し動作(RD1、RD4)や、メモリバンク1(BK1)のデータバッファ(DBUF1(DBUF0))へ格納されているデータの読み出し動作(RF1)は同時に実行できる。
また、図19(b)に示すように、メモリバンク0(BK0)での消去動作(SE0,BE1)と、メモリバンク0とは異なるメモリバンク1(BK1)からの読み出し動作(RD1、RD4)や、メモリバンク1(BK1)のデータバッファ(DBUF1(DBUF0))へ格納されているデータの読み出し動作(RF1)は同時に実行できる。
また、図19(c)に示すように、メモリバンク0(BK0)が備えているデータバッファ(DBUF0およびDBUF1)へのメモリバンク0(BK0)からの読み出し動作(LD1)と、メモリバンク0とは異なるメモリバンク1(BK1)からの読み出し動作(RD1、RD4)や、メモリバンク1(BK1)のデータバッファ(DBUF1(DBUF0))へ格納されているデータの読み出し動作(RF1)は同時に実行できる。
また、図20(a)に示すように、メモリバンク0(BK0)が備えているデータバッファ(DBUF0およびDBUF1)へ格納されているデータのメモリバンク0(BK0)へのプログラム動作(PG1、PG2)と、メモリバンク0とは異なるメモリバンク1(BK1)への書き込み動作(W10)や、メモリバンク1(BK1)のデータバッファ(DBUF1(DBUF0))へ格納されているデータのメモリバンク1(BK1)への書き込み動作(WF1)は同時に実行できる。
また、図20(b)に示すように、メモリバンク0(BK0)での消去動作(SE0,BE1)と、メモリバンク0とは異なるメモリバンク1(BK1)への書き込み動作(W10)や、メモリバンク1(BK1)のデータバッファ(DBUF1(DBUF0))へ格納されているデータのメモリバンク1(BK1)への書き込み動作(WF1)は同時に実行できる。
また、図20(c)に示すように、メモリバンク0(BK0)が備えているデータバッファ(DBUF0およびDBUF1)へのメモリバンク0(BK0)からの読み出し動作(LD1)と、メモリバンク0とは異なるメモリバンク1(BK1)への書き込み動作(W10)や、メモリバンク1(BK1)のデータバッファ(DBUF1(DBUF0))へ格納されているデータのメモリバンク1(BK1)への書き込み動作(WF1)は同時に実行できる。
以上説明したように、メモリ装置(NVM10〜NVM13)では、異なるメモリバンク間での同時動作が可能となるため、読み出し、書き込み及び消去動作が高速に実行できる。
<<メモリモジュールNVMSTRの書き込み動作>>
図16(a)〜(e)は、情報処理装置CPU_CHIPから様々なデータサイズの書き込み要求がメモリモジュールNVMSTRへ入力した際の、制御回路STRCT0およびメモリ装置NVM10〜NVM13の動作を示す。
図16(a)は、情報処理装置CPU_CHIPから論理アドレスLAD Hex03FFFFF0番地を開始アドレスとして512バイトのデータをメモリ装置NVM10〜NVM13へ書き込む際の動作を示している。
情報処理装置CPU_CHIPから、書き込み命令Wと、論理アドレスLAD Hex03FFFFF0番地と、512バイトの書き込みデータD512Bを含む書き込み要求WRQ05がメモリモジュールNVMSTRのインターフェース回路HOST_IFを介して情報処理回路STCON(CPU)へ入力すると、情報処理回路STCON(CPU)は、図15に示す対応表TLTBLによって論理アドレスLAD Hex03FFFFF0を物理アドレスPAD Hex03FFFFF0へ変換する。
図15に示す対応表TLTBLがメモリ装置RAMへ保存されていれば、情報処理回路STCON(CPU)はメモリ装置RAMから対応表TLTBLを読み出し、論理アドレスLADを物理アドレスPADへ変換する。また、図15に示す対応表TLTBLがメモリ装置NVM10〜NVM13へ保存されていれば、情報処理回路STCON(CPU)はメモリ装置NVM10〜NVM13から対応表TLTBLを読み出し、論理アドレスLADを物理アドレスPADへ変換する。
物理アドレスPAD Hex03FFFFF0は、メモリ装置NVM10のセクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地へ割り当てられているので、情報処理回路STCON(CPU)は、調停回路ARBおよびメモリ制御装置NVCT0を介してメモリ装置NVM10のみへ書き込み命令W10と、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地、512バイトの書き込みデータD512Bを出力する。
その後、メモリ装置NVM10は、セクターアドレスNSADの0番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地にて指定されたアドレスへ512バイトのデータを書き込む。
図16(b)は、情報処理装置CPU_CHIPから論理アドレスLAD Hex03FFFFF0番地を開始アドレスとして1Kバイトのデータをメモリ装置NVM10〜NVM13へ書き込む際の動作を示している。
情報処理装置CPU_CHIPから、書き込み命令Wと、論理アドレスLAD Hex03FFFFF0番地と、1Kバイトの書き込みデータD1KBを含む書き込み要求WRQ1がメモリモジュールNVMSTRのインターフェース回路HOST_IFを介して制情報処理回路STCON(CPU)へ入力すると、情報処理回路STCON(CPU)は、図15に示す対応表TLTBLによって論理アドレスLAD Hex03FFFFF0を物理アドレスPAD Hex03FFFFF0へ変換する。
物理アドレスPAD Hex03FFFFF0は、メモリ装置NVM10のセクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex Hex03FFFFF番地内のページアドレスNPADのHex0番地へ割り当てられているので、情報処理回路STCON(CPU)は、調停回路ARBおよびメモリ制御装置NVCT0を介してメモリ装置NVM10のみへ書き込み命令W10と、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地、1Kバイトの書き込みデータD1KBを出力する。
その後、メモリ装置NVM10は、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地にて指定されたアドレスを開始アドレスとして、ページアドレスNPADのHex0番地からHex1番地へそれぞれ512バイトのデータを書き込む。
図16(c)は、情報処理装置CPU_CHIPから論理アドレスLAD Hex03FFFFF0番地を開始アドレスとして2Kバイトのデータをメモリ装置NVM10〜NVM13へ書き込む際の動作を示している。
情報処理装置CPU_CHIPから、書き込み命令Wと、論理アドレスLAD Hex03FFFFF0番地と、2Kバイトの書き込みデータD2KBを含む書き込み要求WRQ2がメモリモジュールNVMSTRのインターフェース回路HOST_IFを介して情報処理回路STCON(CPU)へ入力すると、情報処理回路STCON(CPU)は、図15に示す対応表TLTBLによって論理アドレスLAD Hex03FFFFF0を物理アドレスPAD Hex03FFFFF0へ変換する。
物理アドレスPAD Hex03FFFFF0は、メモリ装置NVM10のセクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADの03FFFFF番地内のページアドレスNPADのHex0番地へ割り当てられているので、情報処理回路STCON(CPU)は、調停回路ARBおよびメモリ制御装置NVCT0を介してメモリ装置NVM10のみへ書き込み命令W10と、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地、2Kバイトの書き込みデータD2KBを出力する。
その後、メモリ装置NVM10は、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地にて指定されたアドレスを開始アドレスとして、ページアドレスNPADのHex0番地からHex3番地へそれぞれ512バイトのデータを書き込む。
図16(d)は、情報処理装置CPU_CHIPから論理アドレスLAD Hex03FFFFF0番地を開始アドレスとして8Kバイトのデータをメモリ装置NVM10〜NVM13へ書き込む際の動作を示している。
情報処理装置CPU_CHIPから、書き込み命令Wと、論理アドレスLAD Hex03FFFFF0番地と、8Kバイトの書き込みデータD8KBを含む書き込み要求WRQ8がメモリモジュールNVMSTRのインターフェース回路HOST_IFを介して情報処理回路STCON(CPU)へ入力すると、情報処理回路STCON(CPU)は、図15に示す対応表TLTBLによって論理アドレスLAD Hex03FFFFF0を物理アドレスPAD Hex03FFFFF0へ変換する。
物理アドレスPAD Hex03FFFFF0は、メモリ装置NVM10のセクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADの03FFFFF番地内のページアドレスNPADのHex0番地へ割り当てられているので、情報処理回路STCON(CPU)は、調停回路ARBおよびメモリ制御装置NVCT0を介してメモリ装置NVM10のみへ書き込み命令W10と、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地、8Kバイトの書き込みデータD8KBを出力する。
その後、メモリ装置NVM10は、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地にて指定されたアドレスを開始アドレスとして、ページアドレスNPADのHex0番地からHex15番地へそれぞれ512バイトのデータを書き込む。
図16(e)は、情報処理装置CPU_CHIPから論理アドレスLAD Hex03FFFFF0番地を開始アドレスとして10Kバイトのデータをメモリ装置NVM10〜NVM13へ書き込む際の動作を示している。
情報処理装置CPU_CHIPから、書き込み命令Wと、論理アドレスLAD Hex03FFFFF0番地と、10Kバイトの書き込みデータD10KBを含む書き込み要求WRQ10がメモリモジュールNVMSTRのインターフェース回路HOST_IFを介して情報処理回路STCON(CPU)へ入力すると、情報処理回路STCON(CPU)は、図15に示す対応表TLTBLによって論理アドレスLAD Hex03FFFFF0を物理アドレスPAD Hex03FFFFF0へ変換する。
さらに、制御回路STRCT0は、書き込みデータが8Kバイト(1セクター分=512バイト×16ページ)を超えているので、論理アドレスLAD Hex03FFFFF0から16ページを超える最初の論理アドレスLAD Hex04000000を求め、図15に示す対応表TLTBLによって論理アドレスLAD Hex04000000を物理アドレスPAD Hex04000000へ変換する。
物理アドレスPAD Hex03FFFFF0は、メモリ装置NVM10のセクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADの03FFFFF番地内のページアドレスNPADのHex0番地へ割り当てられており、また、物理アドレスPAD Hex04000000は、メモリ装置NVM11のセクターアドレスNSADのHex0番地と、セクターアドレスNSADのHex0番地内のページアドレスNPADのHex0番地へ割り当てられている。
情報処理回路STCON(CPU)は、調停回路ARBおよびメモリ制御装置NVCT0を介してメモリ装置NVM10へ書き込み命令W10と、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地、8Kバイトの書き込みデータ(10Kバイトの書き込みデータD10KBの中の最初にメモリモジュールNVMSTRへ入力した8Kバイト分の書き込みデータ)を出力する。さらにその後、制御回路STRCT0は、メモリ制御装置NVCT1を介してメモリ装置NVM11へ書き込み命令W10と、セクターアドレスNSADのHex0番地と、セクターアドレスNSADのHex0番地内のページアドレスNPADのHex0番地、2Kバイトの書き込みデータ(10Kバイトの書き込みデータD10KBの中の最後にメモリモジュールNVMSTRへ入力した2Kバイト分の書き込みデータ)を出力する。
その後、メモリ装置NVM10は、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地にて指定されたアドレスを開始アドレスとして、ページアドレスNPADのHex0番地からHex15番地へそれぞれ512バイトのデータを書き込み、メモリ装置NVM11は、セクターアドレスNSADのHex0番地と、セクターアドレスNSADのHex0番地内のページアドレスNPADのHex0番地にて指定されたアドレスを開始アドレスとして、ページアドレスNPADのHex0番地からHex1番地へそれぞれ512バイトのデータを書き込む。
以上説明したように、制御回路STRCT0は、情報処理装置CPU_CHIPの最小データ管理単位(512バイト)にあわせて、メモリ装置NVM10〜NVM13を512バイトのデータ単位にて管理することができるため、情報処理装置CPU_CHIPからのあらゆるサイズの書き込み要求に対し、最短時間で書き込みを行い、柔軟に対応できる。さらに、書き込み動作に必要とするメモリ装置(NVM10〜NVM13)のみを駆動することにより、動作時の消費電力を低減できる。
さらに、メモリ装置NVM10へ書込み動作を行っている最中に、他のメモリ装置(NVM11〜NVM13)への読み出し動作を行うことができる。つまり書込み動作と読み出し動作を同時に実行することができ高速なデータ転送が可能となる。
<<メモリモジュールNVMSTRの読み出し動作>>
図17(a)〜(e)は、情報処理装置CPU_CHIPから様々なデータサイズの読み出し要求がメモリモジュールNVMSTRへ入力した際の、制御回路STRCT0およびメモリ装置NVM10〜NVM13の動作を示す。
図17(a)は、情報処理装置CPU_CHIPから論理アドレスLAD Hex03FFFFF0番地を開始アドレスとして512バイトのデータをメモリ装置NVM10〜NVM13から読み出す際の動作を示している。
情報処理装置CPU_CHIPから、読み出し命令Rと、論理アドレスLAD Hex03FFFFF0番地と、512バイトデータの読み出し回数C1(1回)を含む読み出し要求RRQ05がメモリモジュールNVMSTRのインターフェース回路HOST_IFを介して情報処理回路STCON(CPU)へ入力すると、情報処理回路STCON(CPU)は、図15に示す対応表TLTBLによって論理アドレスLAD Hex03FFFFF0を物理アドレスPAD Hex03FFFFF0へ変換する。
図15に示す対応表TLTBLがメモリ装置RAMへ保存されていれば、情報処理回路STCON(CPU)はメモリ装置RAMから対応表TLTBLを読み出し、論理アドレスLADを物理アドレスPADへ変換する。また、図15に示す対応表TLTBLがメモリ装置NVM10〜NVM13へ保存されていれば、情報処理回路STCON(CPU)はメモリ装置NVM10〜NVM13から対応表TLTBLを読み出し、論理アドレスLADを物理アドレスPADへ変換する。
物理アドレスPAD Hex03FFFFF0は、メモリ装置NVM10のセクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地へ割り当てられているので、情報処理回路STCON(CPU)は、調停回路ARBおよびメモリ制御装置NVCT0を介してメモリ装置NVM10のみへ読み出し命令RD4と、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地、512バイトデータの読み出し回数C1(1回)を出力する。
その後、メモリ装置NVM10は、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地にて指定されたアドレスから512バイトのデータを読み出す。
図17(b)は、情報処理装置CPU_CHIPから論理アドレスLAD Hex03FFFFF0番地を開始アドレスとして1Kバイトのデータをメモリ装置NVM10〜NVM13から読み出す際の動作を示している。
情報処理装置CPU_CHIPから、読み出し命令Rと、論理アドレスLAD Hex03FFFFF0番地と、512バイトデータの読み出し回数C2(2回)を含む読み出し要求RRQ1がメモリモジュールNVMSTRのインターフェース回路HOST_IFを介して情報処理回路STCON(CPU)へ入力すると、情報処理回路STCON(CPU)は、図15に示す対応表TLTBLによって論理アドレスLAD Hex03FFFFF0を物理アドレスPAD Hex03FFFFF0へ変換する。
物理アドレスPAD Hex03FFFFF0は、メモリ装置NVM10のセクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地へ割り当てられているので、制御回路STRCT0は、メモリ制御装置NVCT0を介してメモリ装置NVM10のみへ読み出し命令RD4と、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地、512バイトデータの読み出し回数C2(2回)を出力する。
その後、メモリ装置NVM10は、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地にて指定されたアドレスを開始アドレスとして、ページアドレスNPADのHex0番地〜Hex1番地からそれぞれ512バイトのデータを読み出す。
図17(c)は、情報処理装置CPU_CHIPから論理アドレスLAD Hex03FFFFF0番地を開始アドレスとして2Kバイトのデータをメモリ装置NVM10〜NVM13から読み出す際の動作を示している。
情報処理装置CPU_CHIPから、読み出し命令Rと、論理アドレスLAD Hex03FFFFF0番地と、512バイトデータの読み出し回数C4(4回)を含む読み出し要求RRQ2がメモリモジュールNVMSTRのインターフェース回路HOST_IFを介して情報処理回路STCON(CPU)へ入力すると、情報処理回路STCON(CPU)は、図15に示す対応表TLTBLによって論理アドレスLAD Hex03FFFFF0を物理アドレスPAD Hex03FFFFF0へ変換する。
物理アドレスPAD Hex03FFFFF0は、メモリ装置NVM10のセクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地へ割り当てられているので、情報処理回路STCON(CPU)は、調停回路ARBおよびメモリ制御装置NVCT0を介してメモリ装置NVM10のみへ読み出し命令RD4と、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地、512バイトデータの読み出し回数C4(4回)を出力する。
その後、メモリ装置NVM10は、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地にて指定されたアドレスを開始アドレスとして、ページアドレスNPADのHex0番地〜Hex3番地からそれぞれ512バイトのデータを読み出す。
図17(d)は、情報処理装置CPU_CHIPから論理アドレスLAD Hex03FFFFF0番地を開始アドレスとして8Kバイトのデータをメモリ装置NVM10〜NVM13から読み出す際の動作を示している。
情報処理装置CPU_CHIPから、読み出し命令Rと、論理アドレスLAD Hex03FFFFF0番地と、512バイトデータの読み出し回数C16(16回)を含む読み出し要求RRQ8がメモリモジュールNVMSTRのインターフェース回路HOST_IFを介して情報処理回路STCON(CPU)へ入力すると、情報処理回路STCON(CPU)は、図15に示す対応表TLTBLによって論理アドレスLAD Hex03FFFFF0を物理アドレスPAD Hex03FFFFF0へ変換する。
物理アドレスPAD Hex03FFFFF0は、メモリ装置NVM10のセクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地へ割り当てられているので、情報処理回路STCON(CPU)は、調停回路ARBおよびメモリ制御装置NVCT0を介してメモリ装置NVM10のみへ読み出し命令RD4と、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地、512バイトデータの読み出し回数C16(16回)を出力する。
その後、メモリ装置NVM10は、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地にて指定されたアドレスを開始アドレスとして、ページアドレスPADのHex0番地〜HexF番地からそれぞれ512バイトのデータを読み出す。
図17(e)は、情報処理装置CPU_CHIPから論理アドレスLAD Hex03FFFFF0番地を開始アドレスとして10Kバイトのデータをメモリ装置NVM10〜NVM13から読み出す際の動作を示している。
情報処理装置CPU_CHIPから、読み出し命令Rと、論理アドレスLAD Hex03FFFFF0番地と、512バイトデータの読み出し回数C20(20回)を含む読み出し要求RRQ10がメモリモジュールNVMSTRのインターフェース回路HOST_IFを介して情報処理回路STCON(CPU)へ入力すると、情報処理回路STCON(CPU)は、図15に示す対応表TLTBLによって論理アドレスLAD Hex03FFFFF0を物理アドレスPAD Hex03FFFFF0へ変換する。
さらに、情報処理回路STCON(CPU)は、読み出しデータが8Kバイト(1セクター分=512バイト×16ページ)を超えているので、論理アドレスLAD Hex03FFFFF0から16ページを超える最初の論理アドレスLAD Hex04000000を求め、図15に示す対応表TLTBLによって論理アドレスLAD Hex04000000を物理アドレスPAD Hex04000000へ変換する。
物理アドレスPAD Hex03FFFFF0は、メモリ装置NVM10のセクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADの03FFFFF番地内のページアドレスNPADのHex0番地へ割り当てられており、また,物理アドレスPAD Hex04000000は、メモリ装置NVM11のセクターアドレスNSADのHex0番地と、セクターアドレスNSADのHex0番地内のページアドレスNPADのHex0番地へ割り当てられているので、情報処理回路STCON(CPU)は、調停回路ARBおよびメモリ制御装置NVCT0を介してメモリ装置NVM10へ読み出し命令RD4と、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地と、512バイトデータの読み出し回数C16(16回)を出力し、同時にメモリ制御装置NVCT1を介してメモリ装置NVM11へ読み出し命令RD4と、セクターアドレスNSADのHex0番地と、セクターアドレスNSADのHex0番地内のページアドレスNPADのHex0番地と、512バイトデータの読み出し回数C4(4回)を出力する。
その後、メモリ装置NVM10は、セクターアドレスNSADのHex03FFFFF番地と、セクターアドレスNSADのHex03FFFFF番地内のページアドレスNPADのHex0番地にて指定されたアドレスを開始アドレスとして、ページアドレスNPADのHex0番地〜15番地からそれぞれ512バイトのデータを読み出し、また、同時に、メモリ装置NVM11は、セクターアドレスNSADのHex0番地と、セクターアドレスNSADのHex0番地内のページアドレスNPADのHex0番地にて指定されたアドレスを開始アドレスとして、ページアドレスNPADのHex0番地〜1番地からそれぞれ512バイトのデータを読み出す。
以上説明したように、制御回路STRCT0は、情報処理装置CPU_CHIPの最小データ管理単位(512バイト)にあわせて、メモリ装置NVM10〜NVM13を512バイトのデータ単位にて管理することができるため、情報処理装置CPU_CHIPからのあらゆるサイズの読み出し要求に対し、最短時間で読み出しを行い、柔軟に対応できる。さらに、読み出し動作に必要とするメモリ装置(NVM10〜NVM13)のみを駆動することにより、動作時の消費電力を低減できる。
さらに、メモリ装置NVM10へ読み出し動作を行っている最中に、他のメモリ装置(NVM11〜NVM13)への書込み動作を行うことができる。つまり読み出し動作と書き込み動作を同時に実行することができ高速なデータ転送が可能となる。
<<本実施の形態の効果>>
以上説明した本実施の形態によれば、上記したような各動作における各効果が得られるとともに、情報処理装置CPU_CHIPからメモリモジュールNVMSTRとして管理しやすいデータ単位で動作し、情報処理装置CPU_CHIPからの書き込みや読み出し要求時のデータサイズに合わせて、書き込みおよび読み出し動作が行われるため、高速なデータ転送が可能な、メモリモジュールNVMSTRに適した使い勝手の良い相変化メモリを含む情報処理システムを実現できる。
<<本実施の形態の変形例>>
図21は、メモリ装置NVM10〜NVM14として利用されている不揮発性メモリNVMEM1の回路構成の別の例を示すブロック図であり、相変化型の不揮発メモリを例に示してある。(a)は不揮発性メモリNVMEM1の回路構成、(b)はメモリセルcelの回路構成をそれぞれ示す。
図21に示す不揮発性メモリNVMEM1は、図2で示した不揮発性メモリNVMEMの各メモリバンクBK0〜BK3へ、電流センサMx(x=0〜m)が搭載されている点だけが異なる。以下に、不揮発性メモリNVMEM1の書込み動作を説明する。
図4は、不揮発性メモリ装置NVM1x(x=0〜4)がMバイトのデータを、データバッファDBUF0を介してメモリセルcelへ書き込む際の書き込み動作の例を示している。なお、図4や以降の各図における「m*n」等の「*」は「×」(乗算)を意味するものである。
ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。この後、書き込みコマンドW10を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって書き込みコマンドW10がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。また、コマンドW10には、データバッファDBUF0あるいはDBUF1を指定する情報も含まれており、図4の例ではデータバッファDBUF0を指定している。
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、カラム・アドレスを2回(CA1、CA2)、ロウ・アドレスを3回(RA1、RA2、RA3)に分けて順に入力する。これらのアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
アドレス・コマンドインターフェース回路ADCMDIFにてアドレス、コマンドW10を解読した結果、メモリバンクBK0への読み出し命令であることを制御回路CONTLOGICへ伝えると、制御回路CONTLOGICは、メモリバンクBK0からデータを読み出すため、メモリバンクBK0を活性化する。
アドレス・コマンドインターフェース回路ADCMDIFへ入力されたロウアドレス(RA1、RA2、RA3)およびカラム・アドレスを(CA1、CA2)は制御回路CONTLOGICを通じて、それぞれ、活性化されたメモリバンクBK0のロウアドレスラッチ回路RADLTへ転送され、カラムアドレスラッチ回路CADLTへ転送される。この書き込み動作は最初に入力されたカラムアドレスから開始される。
ロウアドレスラッチ回路RADLTからロウアドレス(RA1、RA2、RA3)がロウデコーダROWDECへ転送され、ロウデコーダROWDECによってロウアドレス(RA1、RA2、RA3)に対応したワード線WLnが選択される。
次に、カラムアドレスラッチ回路CADLTからカラム・アドレス(CA1、CA2)がカラムデコーダCOLDECへ転送され、解読される。
カラムデコーダCOLDECからの解読結果は、各メモリアレイ(ARY0−n)のビット線選択回路BSW0−nへ入力され、メモリアレイ毎に一つのビット線BLが選択され、データ線DT0−nを介して書き込み(ライト)ドライバWDR0−nへ接続される。
書き込みドライバWDR0−nと、電流は、データ線DT0−nを介して、図3のような電流パルスによって、選択されたメモリセルcelを低抵抗状態や高抵抗状態にするための電流供給回路である。
書き込みドライバWDR0−nから選択されたメモリセルcelへ供給された電流は電流センサM0−nによって計測される。また、電流センサM0−nには、選択されたメモリセルcelの低抵抗状態時の電流値IC0と、高抵抗状態の電流値IC1が設定されている。
メモリセルcelを高抵抗状態にする、すなわち記憶情報“0”を書き込む場合に、書き込みドライバWDR0−nから、選択されたメモリセルcelへ供給された電流は電流センサM0−nによって計測され、その電流値が高抵抗状態の電流値IC1以下となると、電流センサM0−nは書き込みドライバWDR0−nに対して、電流供給の停止を指示し、書き込みドライバWDR0−nは、この電流供給停止指示に従い、電流供給を停止する。
メモリセルcelを低抵抗状態にする、すなわち記憶情報“1”を書き込む場合に、書き込みドライバWDR0−nから、選択されたメモリセルcelへ供給された電流は電流センサM0−nによって計測され、その電流値が低抵抗状態の電流値IC0以上となると、電流センサM0−nは書き込みドライバWDR0−nに対して、電流供給の停止を指示し、書き込みドライバWDR0−nは、この電流供給停止指示従い、電流供給を停止する。
このように、メモリセルcelへデータを書き込む際に、メモリセルcelへ流れる電流を常に計測することにより、必要最小限の電流供給時間で、メモリセルcelを書き換えることができるため、高速かつ低消費電流の書込み動作が実現できる。
<<本実施の形態の別の変形例>>
図22は、図13の初期化動作時に、情報処理回路STCON(CPU)が作成する情報処理装置CPU_CHIPからメモリモジュールNVMSTRへ入力する論理アドレスLADとメモリ装置NVM10〜NVM14の物理アドレスPAD(セクターアドレスNSAD+ページアドレスNPAD)との対応表の別の例である。
図22が図15と異なる点は、情報処理回路STCON(CPU)が作成する情報処理装置CPU_CHIPからメモリモジュールNVMSTRへ入力する論理アドレスLADとメモリ装置NVM10〜NVM14の物理アドレスPAD(セクターアドレスNSAD+ページアドレスNPAD)との対応表が、メモリ装置NVM14へ格納されている点である。
メモリ装置NVM14の物理アドレスPADの3000000〜3FFFFFFへは、上記に示す対応表が格納されている。
このように、論理アドレスLADと物理アドレスPADの対応表をメモリ装置NVM14へ格納することにより、制御回路STRCT0に含まれるメモリ装置RAMの記憶容量を小さくでき、制御回路STRCT0およびメモリモジュールNVMSTRの低コスト化を実現できる。
さらに、メモリ装置NVM14は不揮発性メモリであるため、論理アドレスLADとメモリ装置NVM10〜NVM14の物理アドレスPAD(セクターアドレスNSAD+ページアドレスNPAD)との対応表がメモリ装置NVM14へ保存されていることによって、突然の電源遮断がメモリモジュールNVMSTRへ生じても、この対応表の情報が失われることがないため、高信頼なメモリモジュールNVMSTRを実現できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
<<付記>>
本発明は、半導体装置(不揮発性メモリ)、情報処理システム、メモリモジュール、制御装置などに関し、以下のような特徴を有するものである。
(1)複数のワード線と、前記複数のワード線と交差する複数のビット線との交点に配置された書き換え可能な抵抗性記憶素子を含む複数のメモリセルと、
前記メモリセルへデータを書き込むための書き込みドライバとを含む半導体装置であって、
前記書き込みドライバは、Mビットのデータの書き込みを行う際には、nビット(M>n)のデータの単位で、M/n回消去動作とプログラム動作を行うことを特徴とする半導体装置。
(2)前記(1)記載の半導体装置において、
前記消去動作と前記プログラム動作の対象となるデータのサイズは等しいことを特徴とする半導体装置。
(3)前記(1)記載の半導体装置において、
前記消去動作は書き換え対象となるnビットの前記メモリセルの抵抗を全ビット高抵抗に設定し、前記プログラム動作は書き換え対象となるnビットの前記メモリセルの中で、書き込みデータが“1”のデータのみ低抵抗に設定することを特徴とする半導体装置。
(4)前記(1)記載の半導体装置において、
前記消去動作は書き換え対象となるnビットの前記メモリセルの抵抗を全ビット低抵抗に設定し、前記プログラム動作は書き換え対象となるnビットの前記メモリセルの中で、書き込みデータが“0”のデータのみ高抵抗に設定することを特徴とする半導体装置。
(5)前記(1)記載の半導体装置において、
前記メモリセルは不揮発性の記憶素子を備えていることを特徴とする半導体装置。
(6)前記(5)記載の半導体装置において、
前記メモリセルは抵抗変化型の記憶素子を備えていることを特徴とする半導体装置。
(7)前記(6)記載の半導体装置において、
前記メモリセルは相変化型の記憶素子を備えていることを特徴とする半導体装置。
(8)複数のワード線と、前記複数のワード線と交差する複数のビット線との交点に配置された書き換え可能な抵抗性記憶素子を含む複数のメモリセルと、
前記メモリセルへデータを書き込むための書き込みドライバとを含む半導体装置であって、
前記書き込みドライバは、Mビットのデータの書き込みを行う際には、nビット(M>n)のデータの単位でプログラム動作を行うことを特徴とする半導体装置。
(9)前記(8)記載の半導体装置において、
前記プログラム動作は書き換え対象となるnビットの前記メモリセルの中で、書き込みデータが“1”のデータのみ低抵抗に設定することを特徴とする半導体装置。または、書き込みデータが“0”のデータのみ高抵抗に設定することを特徴とする半導体装置。
(10)複数のワード線と、前記複数のワード線と交差する複数のビット線との交点に配置された書き換え可能な抵抗性記憶素子を含む複数のメモリセルと、
前記メモリセルに保持されているデータを読み出すための回路とを含む半導体装置であって、
前記回路は、前記メモリセルからMビットのデータの読み出しを行う際には、nビット(M>n)のデータの単位で、M/n回の読み出し動作を行うことを特徴とする半導体装置。
(11)前記(10)記載の半導体装置において、
さらに、前記メモリセルから読み出したデータを保持するための複数のバッファを含み、
前記メモリセルからMビットのデータを前記バッファへ転送する際には、前記半導体装置へ入力する読み出し命令にて指定した前記バッファへ、nビット(M>n)のデータの単位で、M/n回転送動作を行うことを特徴とする半導体装置。
(12)前記(11)記載の半導体装置において、
前記半導体装置へ入力する読み出し命令にて指定した前記バッファから直接データを読み出すことを特徴とする半導体装置。
(13)情報処理装置と、制御装置と、メモリ装置とから構成される情報処理システムであって、
前記制御装置は、前記情報処理装置からの書き込み要求によって、前記メモリ装置を制御する制御装置であり、
前記メモリ装置は、メモリバンクとバッファとを含んでおり、
前記書き込み要求は、書き込み命令と、第1の書き込みアドレスと、書き込みデータサイズと、書き込みデータとを含んでおり、
前記制御装置は、前記情報処理装置からの書き込み命令に従い、前記第1の書き込みアドレスを利用し、前記書き込みデータサイズ分の前記書き込みデータのみを、前記バッファへ転送して後、前記メモリバンクへ書き込むことを特徴とする情報処理システム。
(14)前記(13)記載の情報処理システムにおいて、
さらに、前記制御装置は、前記情報処理装置からの読み出し要求によって、前記メモリ装置を制御する制御装置であり、
前記メモリ装置は、メモリバンクとバッファを含んでおり、
前記読み出し要求は、読み出し命令と、第1の読み出しアドレスと、読み出しデータサイズとを含んでおり、
前記制御装置は、前記情報処理装置からの読み出し命令に従い、前記第1の読み出しアドレスを利用し、前記読み出しデータサイズ分のデータのみを、前記メモリバンクから前記バッファへ転送して後、前記メモリ装置から読み出し、前記情報処理装置へ転送することを特徴とする情報処理システム。
(15)前記(14)記載の情報処理システムにおいて、
さらに、前記制御装置は、前記メモリ装置へ消去要求を出力する制御装置であり、
前記消去要求は、消去命令と、消去アドレスと、消去データサイズとを含んでおり、
前記メモリ装置は、前記制御装置からの消去命令に従い、前記消去アドレスを利用し、前記消去データサイズ分のデータのみを、前記メモリバンクから消去することを特徴とする情報処理システム。
(16)前記(13)記載の情報処理システムにおいて、
さらに、前記制御装置は、前記第1の書き込みアドレスと、前記メモリ装置の第2の書き込みアドレスとを対応付ける対応情報を備えており、
前記対応情報を利用し、前記制御装置は、前記第1の書き込みアドレスを前記第2の書き込みアドレスへ変換して後、前記第2の書き込みアドレスを利用し、前記メモリ装置への書き込み動作を行うことを特徴とする情報処理システム。
(17)前記(14)記載の情報処理システムにおいて、
さらに、前記制御装置は、前記第1の読み出しアドレスと、前記メモリ装置の第2の読み出しアドレスとを対応付ける対応情報を備えており、
前記対応情報を利用し、前記制御装置は、前記第1の読み出しアドレスを前記第2の読み出しアドレスへ変換して後、前記第2の読み出しアドレスを利用し、前記メモリ装置への読み出し動作を行うことを特徴とする情報処理システム。
(18)データを記憶する複数の記憶素子を備える第1のメモリバンクと第2のメモリバンクと、制御回路とを備え、
前記第1のメモリバンクは第1のバッファと第2のバッファとを備え、
前記第2のメモリバンクは第3のバッファと第4のバッファとを備える半導体装置であって、
前記制御回路は、前記第1のバッファへの書き込み動作中に、前記第1のメモリバンクから前記第2のバッファへの読み出し動作を行うことを特徴とする半導体装置。
(19)前記(18)記載の半導体装置において、
前記制御回路は、前記第1のバッファへ保持されている第1のデータを前記第1のメモリバンクへ書き込んでいる期間中に、前記第2のバッファへ保持されている第2のデータを読み出すことを特徴とする半導体装置。
(20)データを記憶する複数の記憶素子を備える第1のメモリバンクと第2のメモリバンクと、制御回路とを備え、
前記第1のメモリバンクは第1のバッファと第2のバッファとを備え、
前記第2のメモリバンクは第3のバッファと第4のバッファとを備える半導体装置であって、
前記制御回路は、前記第1のバッファへ保持されているデータの前記第1のメモリバンクへの書き込み動作中に、前記第2のメモリバンクへ保持されているデータの読み出し動作を行うことを特徴とする半導体装置。
(21)前記(20)記載の半導体装置において、
前記制御回路は、前記第1のメモリバンクに保持されているデータの消去動作中に、前記第2のメモリバンクへ保持されているデータの読み出し動作を行うことを特徴とする半導体装置。
(22)前記(21)記載の半導体装置において、
前記制御回路は、前記第1のメモリバンクから、前記第1のバッファへのデータ読み出し動作中に、前記第2のメモリバンクへ保持されているデータの読み出し動作を行うことを特徴とする半導体装置。
(23)データを記憶する複数の記憶素子を備える第1のメモリバンクと第2のメモリバンクと、制御回路とを備え、
前記第1のメモリバンクは第1のバッファと第2のバッファとを備え、
前記第2のメモリバンクは第3のバッファと第4のバッファとを備える半導体装置であって、
前記制御回路は、前記第1のバッファへ保持されているデータの前記第1のメモリバンクへの書き込み動作中に、前記第2のメモリバンクへのデータの書き込み動作を行うことを特徴とする半導体装置。
(24)前記(23)記載の半導体装置において、
前記制御回路は、前記第1のメモリバンクに保持されているデータの消去動作中に、前記第2のメモリバンクへ保持されているデータの書き込み動作を行うことを特徴とする半導体装置。
(25)前記(24)記載の半導体装置において、
前記制御回路は、前記第1のメモリバンクから、前記第1のバッファへのデータ読み出し動作中に、前記第2のメモリバンクへ保持されているデータの書き込み動作を行うことを特徴とする半導体装置。
(26)制御装置と、メモリ装置とから構成されるメモリモジュールであって、
前記制御装置は、前記制御装置へ入力する書き込み要求によって、前記メモリ装置を制御する制御装置であり、
前記メモリ装置は、メモリバンクとバッファとを含んでおり、
前記書き込み要求は、書き込み命令と、第1の書き込みアドレスと、書き込みデータサイズと、書き込みデータとを含んでおり、
前記制御装置は、前記書き込み命令に従い、前記第1の書き込みアドレスを利用し、前記書き込みデータサイズ分の前記書き込みデータのみを、前記バッファへ転送して後、前記メモリバンクへ書き込むことを特徴とするメモリモジュール。
(27)前記(26)記載のメモリモジュールにおいて、
さらに、前記制御装置は、前記制御装置へ入力する読み出し要求によって、前記メモリ装置を制御する制御装置であり、
前記メモリ装置は、メモリバンクとバッファとを含んでおり、
前記読み出し要求は、読み出し命令と、第1の読み出しアドレスと、読み出しデータサイズとを含んでおり、
前記制御装置は、前記読み出し命令に従い、前記第1の読み出しアドレスを利用し、前記読み出しデータサイズ分のデータのみを、前記メモリバンクから前記バッファへ転送して後、前記メモリ装置から読み出すことを特徴とするメモリモジュール。
(28)前記(27)記載のメモリモジュールにおいて、
さらに、前記制御装置は、前記メモリ装置へ消去要求を出力する制御装置であり、
前記消去要求は、消去命令と、消去アドレスと、消去データサイズとを含んでおり、
前記メモリ装置は、前記制御装置からの消去命令に従い、前記消去アドレスを利用し、前記消去データサイズ分のデータのみを、前記メモリバンクから消去することを特徴とするメモリモジュール。
(29)前記(26)記載のメモリモジュールにおいて、
さらに、前記制御装置は、前記第1の書き込みアドレスと、前記メモリ装置の第2の書き込みアドレスとを対応付ける対応情報を備えており、
前記対応情報を利用し、前記制御装置は、前記第1の書き込みアドレスを前記第2の書き込みアドレスへ変換して後、前記第2の書き込みアドレスを利用し、前記メモリ装置への書き込み動作を行うことを特徴とするメモリモジュール。
(30)前記(27)記載のメモリモジュールにおいて、
さらに、前記制御装置は、前記第1の読み出しアドレスと、前記メモリ装置の第2の読み出しアドレスとを対応付ける対応情報を備えており、
前記対応情報を利用し、前記制御装置は、前記第1の読み出しアドレスを前記第2の読み出しアドレスへ変換して後、前記第2の読み出しアドレスを利用し、前記メモリ装置への読み出し動作を行うことを特徴とするメモリモジュール。
(31)前記(26)記載のメモリモジュールにおいて、
前記メモリ装置は不揮発性メモリであることを特徴とするメモリモジュール。
(32)前記(31)記載のメモリモジュールにおいて、
前記メモリ装置は抵抗変化型メモリであることを特徴とするメモリモジュール。
(33)前記(32)記載のメモリモジュールにおいて、
前記メモリ装置は相変化型メモリであることを特徴とするメモリモジュール。
(34)制御装置へ入力する書き込み要求によって、メモリ装置を制御する制御装置であって、
前記メモリ装置は、メモリバンクとバッファとを含んでおり、
前記書き込み要求は、書き込み命令と、第1の書き込みアドレスと、書き込みデータサイズと、書き込みデータとを含んでおり、
前記制御装置は、前記書き込み命令に従い、前記第1の書き込みアドレスを利用し、前記書き込みデータサイズ分の前記書き込みデータのみを、前記バッファへ転送して後、前記メモリバンクへ書き込むことを特徴とする制御装置。
(35)前記(34)記載の制御装置において、
さらに、前記制御装置は、前記制御装置へ入力する読み出し要求によって、前記メモリ装置を制御する制御装置であり、
前記メモリ装置は、メモリバンクとバッファとを含んでおり、
前記読み出し要求は、読み出し命令と、第1の読み出しアドレスと、読み出しデータサイズとを含んでおり、
前記制御装置は、前記読み出し命令に従い、前記第1の読み出しアドレスを利用し、前記読み出しデータサイズ分のデータのみを、前記メモリバンクから前記バッファへ転送して後、前記メモリ装置から読み出すことを特徴とする制御装置。
(36)前記(35)記載の制御装置おいて、
さらに、前記制御装置は、前記メモリ装置へ消去要求を出力する制御装置であり、
前記消去要求は、消去命令と、消去アドレスと、消去データサイズとを含んでおり、
前記メモリ装置は、前記制御装置からの消去命令に従い、前記消去アドレスを利用し、前記消去データサイズ分のデータのみを、前記メモリバンクから消去することを特徴とする制御装置。
(37)前記(34)記載の制御装置において、
さらに、前記制御装置は、前記第1の書き込みアドレスと、前記メモリ装置の第2の書き込みアドレスとを対応付ける対応情報を備えており、
前記対応情報を利用し、前記制御装置は、前記第1の書き込みアドレスを前記第2の書き込みアドレスへ変換して後、前記第2の書き込みアドレスを利用し、前記メモリ装置への書き込み動作を行うことを特徴とする制御装置。
(38)前記(35)記載の制御装置において、
さらに、前記制御装置は、前記第1の読み出しアドレスと、前記メモリ装置の第2の読み出しアドレスとを対応付ける対応情報を備えており、
前記対応情報を利用し、前記制御装置は、前記第1の読み出しアドレスを前記第2の読み出しアドレスへ変換して後、前記第2の読み出しアドレスを利用し、前記メモリ装置への読み出し動作を行うことを特徴とする制御装置。
(39)前記(34)記載の制御装置において、
前記メモリ装置は不揮発性メモリであることを特徴とする制御装置。
(40)前記(39)記載の制御装置において、
前記メモリ装置は抵抗変化型メモリであることを特徴とする制御装置。
(41)前記(40)記載の制御装置において、
前記メモリ装置は相変化型メモリであることを特徴とする制御装置。