JP4943682B2 - 半導体メモリ - Google Patents

半導体メモリ Download PDF

Info

Publication number
JP4943682B2
JP4943682B2 JP2005268150A JP2005268150A JP4943682B2 JP 4943682 B2 JP4943682 B2 JP 4943682B2 JP 2005268150 A JP2005268150 A JP 2005268150A JP 2005268150 A JP2005268150 A JP 2005268150A JP 4943682 B2 JP4943682 B2 JP 4943682B2
Authority
JP
Japan
Prior art keywords
data
page
output
latch
internal clock
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.)
Active
Application number
JP2005268150A
Other languages
English (en)
Other versions
JP2007080411A (ja
Inventor
洋 高島
庄一 大堀
秀雄 加藤
泰彦 本多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toppan Inc
Original Assignee
Toshiba Corp
Toppan Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toppan Inc filed Critical Toshiba Corp
Priority to JP2005268150A priority Critical patent/JP4943682B2/ja
Publication of JP2007080411A publication Critical patent/JP2007080411A/ja
Application granted granted Critical
Publication of JP4943682B2 publication Critical patent/JP4943682B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Read Only Memory (AREA)

Description

本発明は、外部クロックに同期してバースト出力可能な半導体メモリに関し、特に、バースト読み出しを一時的に停止する機能を備えた半導体メモリに関する。
半導体メモリには、電気的に書き換えが可能であり、電源を切った場合においても、記憶されたデータが消えないという不揮発性を有したフラッシュメモリがあり、フラッシュメモリは、記憶しているデータの保持に電池を必要としない。このため、近年、フラッシュメモリは、電子機器、特に、携帯電話機などの小型携帯機器の記憶装置に多用されている。
電子機器は、フラッシュメモリに記憶されたデータに基づいて各種データ処理を行っている。近年、このデータ処理を実行するCPU(Central Processing Unit)の高速化は著しく、処理能力をクロック数で換算すると1GHzを遥かに超え、フラッシュメモリとCPU間のデータ転送速度が、システム全体の処理能力のボトルネックとなってきている。
このような状況に対応するため、フラッシュメモリに記憶されているデータを、高速に読み出す各種方式が考えられており、その一つに外部から入力されるクロックに同期してフラッシュメモリよりデータを連続して取り出すシンクロナスなバースト読み出しがある。
バースト読み出しは、読み出すべき一連のデータの先頭アドレスのみを指定し、それに続くアドレスは、クロックのみによりメモリ内部でインクリメント処理される。
したがって、読み出すべき一連のデータは、先頭アドレスに対して連続になっているという制約はあるが、その分、先頭アドレスで指定したデータの読み出し速度に対し、それに続くデータの読み出し速度を格段に速めることができるものである(例えば、特許文献1参照。)。
メモリ素子からデータを読み出すのに時間(アクセス時間)を要することから、バースト読み出しの開始(先頭アドレスの入力)から最初のメモリアクセスの完了までの待ち時間が発生する。このため、バースト読み出しの開始から最初のバーストデータの出力まで(メモリのアクセスタイムを含む、バースト読み出しに必要な時間)をクロックサイクルで表すファーストレイテンシを設定する必要がある。
また、フラッシュメモリには、アドレス境界(バウンダリ)と呼ばれるものがあり、アドレス境界はメモリセルアレイの構造と読み出しデータを制御するセンスアンプの構成に依存するものである。このアドレス境界をまたいで1度にメモリアクセスをすることができず、アドレス境界前とアドレス境界後に分けてメモリアクセスすることになる。
読み出すべき一連のデータの先頭アドレスによってアドレス境界前の有効データ(外部にバースト出力すべきデータ)の数が異なることから、アドレス境界前のメモリアクセスで読み出した有効データの出力に要する時間がメモリアクセスに要する時間(アクセス時間)よりも短くなることがあり、この場合、メモリアクセスに要する時間を待つためウェイトサイクルが発生する。なお、以下において、このウェイトサイクルを境界前ウェイトサイクルという。
なお、バースト読み出しでは、読み出し開始における最初のアドレス境界において発生する境界前ウェイトサイクルのサイクル数を制御する必要があるが、それ以降のアドレス境界においては、データを出力している期間に、次に出力するデータの読み出しが完了するため、境界前ウェイトサイクルが発生しないようになっている。
なお、バースト読み出しでは、読み出し開始における最初のアドレス境界において発生する境界前ウェイトサイクルのサイクル数を制御する必要があるが、それ以降のアドレス境界においては、データを出力している期間に、次に出力するデータの読み出しが完了するため、境界前ウェイトサイクルが発生しないようになっている。
フラッシュメモリには、バースト読み出しを一時的に停止させる機能があり、外部入力のアウトプットイネーブル信号OEBにより制御される。
通常、外部入力のアウトプットイネーブル信号OEBが「L」レベル(イネーブル)時にバースト読み出しが許可され、アウトプットイネーブル信号OEBが「H」レベル(ディセーブル)時にバースト読み出しが停止する。このアウトプットイネーブル信号OEBのディセーブル時(バースト読み出しの停止時)をサスペンドと呼び、再びバースト読み出しを許可することをレジュームと呼ぶ。
サスペンドはバースト読み出しの全てのタイミングで有効であり、バースト読み出しが可能な状態であれば、レジュームによってバースト出力が開始される。
図1は従来のフラッシュメモリの構成を示す図である。なお、従来例および後述する実施の形態においてはメモリアクセスがファーストレイテンシの1クロック前に完了する場合を対象とする。
入力バッファ1は、外部から入力されるチップイネーブル信号CEB、アウトプットイネーブル信号OEB、アドレスバリッド信号ADVB、外部クロック、および外部アドレス(例えば、A0〜A22)を、波形成形等の処理を行い出力する。チップイネーブル信号CEBは、それが「L」レベル(ローレベル)になることによって、そのチップを動作状態にする信号である。アウトプットイネーブル信号OEBは、データの出力制御を行うためのものである。アドレスバリッド信号ADVBは、その「L」レベルによって外部アドレス信号を有効とする。
ここで、入力バッファ1は、チップイネーブル信号CEBが「L」レベルにて入力されることにより、外部クロックや他の入力信号により生成された信号、例えば、内部クロックCLK、アドレスラッチ信号ALAT、アドレスAD(例えば、A0〜A22)、アウトプットイネーブル信号OEB、およびクロックイネーブル信号CLKENが内部に供給されることで、フラッシュメモリ内の後に説明する各回路が活性化される。
入力バッファ1は、外部クロックとほぼ同位相にて内部クロックCLKを出力する。
入力バッファ1は、図2に一例が示される通り、アウトプットイネーブル信号OEBの立ち上がりに同期させて、クロックイネーブル信号CLKENを立ち下げ、アウトプットイネーブル信号OEBの立ち下がった後の最初の内部クロックCLKの立ち上がりに同期してクロックイネーブル信号CLKENを立ち上げる。入力バッファ1は、このようにして生成したクロックイネーブル信号CLKENを出力する。なお、クロックイネーブル信号CLKENが「H」レベルで内部クロックCLKが有効、「L」レベルで内部クロックCLKが無効である。
さらに、入力バッファ1は、図3に一例が示される通り、チップイネーブル信号CEBとアドレスバリッド信号ADVBの何れか遅い方の立ち下がりに同期させて(図3の例では、遅い方のアドレスバリッド信号ADVBの立ち下がりに同期させて)、アドレスラッチ信号ALATを立ち上げる(時刻t1)。そして、入力バッファ1は、アドレスラッチ信号ALATの立ち上がった後の最初の内部クロックCLKの立ち上がりに同期させてアドレスラッチ信号ALATを立ち下げ(時刻t2)、「H」レベル(ハイレベル)の期間のあるパルスとしてアドレスラッチ信号ALATを出力する。
アドレスラッチ2は、入力バッファ1から入力されるアドレスADを、入力バッファ1により出力されるアドレスラッチ信号ALATによりラッチする。
このアドレスラッチ2は、アドレスラッチ信号ALATが「H」レベルの期間において(時刻t1〜時刻t2)、入力されるアドレスADをそのまま通過させて出力し、「L」レベルに遷移すると、その「L」レベルとなった時点(時刻t2)において入力されていたアドレスADをラッチして、ラッチアドレスLADとして出力する。
バースト制御部3は、アドレスラッチ2から入力されるラッチアドレスLADを先頭アドレス(スタートアドレス、開始アドレス)とし、先頭アドレス(A0〜A22)の上位ビット(8ワード単位の読み出しを対象とする場合はA3〜A22)をバーストアドレスBADとして出力する。続いて、バースト制御部3は、バーストアドレスBADを、後述する通り、所定の計数タイミングにて内部クロックCLKに同期して「1」インクリメントして新たなバーストアドレスBADとして出力する。また、バースト制御部3は、このバーストアドレスBADの変化を検出して後述する検出信号DTを出力する。
また、バースト制御部3は、後述する通り、内部クロックCLKに同期して、ページラッチ信号PL、ページコントロール信号PC、アウトプットコントロール信号OPC、およびウェイト信号WAITを生成して出力し、さらに、初期時に設定されたアクセスのモード(バースト/ランダム)に応じて同期/非同期セレクト信号SELを生成して出力する。
アドレス制御部4は、デコーダ5に対して、バーストアドレスBADとラッチアドレスLADとのいずれかを選択して、選択したアドレスをメモリアドレスMADとして出力する。
メモリセルアレイ6は、複数のメモリセル(メモリ素子)がマトリックス状に配置されて形成されている。メモリセル(メモリ素子)はM×N(M、Nは整数であり、従来例においては、Mは2、Nは8である)本の読み出し線毎にブロックに分割されており、このブロックをまたいで一度にアクセスすることができない。
デコーダ5は、アドレス制御部4から入力されたメモリアドレスMADをデコードし、メモリセルアレイ6において、このメモリアドレスMAD(バーストアドレスBADの場合)の示す番地のメモリセル(8ワード単位、1ワード=16ビット)を選択する。
センスアンプ7は、選択されたメモリセルから出力される情報を、読み出し線を介して入力され、所定の電圧レベルに増幅して、メモリデータMDとして出力する。
ATD回路8は、入力されたパルス信号を所定の時間遅延させて出力するディレイ回路であり、検出信号DT(従来例および後述する実施の形態では、「Hレベル」のパルス)が入力されると、所定の時間遅延させてセンスアンプコントロール信号SC(「H」レベルのパルス)として出力する。この所定の時間とは、メモリセルアレイをアクセスするアドレスが入力され、センスアンプから出力されるメモリデータMDが安定するまでの時間、すなわちデコーダ5、メモリセルアレイ6、およびセンスアンプ7からなるメモリのアクセス時間である。
センスデータラッチ9は、センスアンプコントロール信号SCの「H」レベルの期間において、センスアンプ7から入力されるメモリデータMDをそのまま通過させて出力し、「L」レベルに遷移すると、その「L」レベルとなった時点において入力されていたメモリデータMDをラッチして、センスラッチデータSLDとして出力する。
ページラッチ10は、内部クロックCLKに非同期のセンスアンプコントロール信号SCにてセンスデータラッチ9にラッチされ出力されているセンスラッチデータSLDを、内部クロックCLKに同期したページラッチ信号PLによりラッチし、ページラッチデータPLDとして出力する。ただし、ページラッチ10はページラッチ信号PLによりセンスデータラッチ9が出力するセンスラッチデータ(8ページ分のワードデータ)を同じタイミングで一括してラッチする。
ページセレクタ11は、ページコントロール信号PCにより、ページラッチ10にラッチされている複数のワードデータ(複数のメモリデータからなる)を順次選択して、ページデータPDとして、出力ラッチ12およびセレクタ13の夫々へ出力する。
出力ラッチ12は、内部クロックCLKの立ち上がりエッジに同期させて、入力されるページデータPDをラッチする。
セレクタ13は、出力ラッチ12から入力されるページデータPDと、ページセレクタ11から入力されるページデータPDとのいずれかを、同期/非同期信号SELにより選択し、選択したページデータPDをデータ出力制御回路14へ出力する。
ここで、セレクタ13は、例えば、同期/非同期信号SELが「L」レベルの場合(ランダム読み出しが設定されている場合)、メモリの読み出しを内部クロックCLKに非同期にて行うため、ページセレクタ11から入力するページデータPDを選択してデータ出力制御部14へ出力し、同期/非同期信号SELが「H」レベルの場合(バースト読み出しが設定されている場合)、メモリの読み出しを内部クロックCLKに同期させて行うため、出力ラッチ12から入力されるページデータPDを選択してデータ出力制御部14へ出力する。
データ出力制御部14は、入力されるページデータPDを外部に対して出力するか否かを、アウトプットコントロール信号OPCにより制御する。ここで、データ出力制御部14は、アウトプットコントロール信号OPCが「L」レベルの場合、出力をハイインピーダンスとし、アウトプットコントロール信号OPCが「H」レベルの場合、セレクタ13から出力されるページデータPDを、アウトプットデータOUTとして出力端子へ出力する。
レディ出力制御部15は、アウトプットコントロール信号OPCとウェイト信号WAITとの論理積をとってレディ信号RDYとして出力する。レディ信号RDYは「H」レベルの場合、有効なアウトプットデータOUTが出力されていることを示し、「L」レベルの場合、有効でないアウトプットデータOUTが出力されていることを示す。
図1のフラッシュメモリにおいては、メモリセルアレイ6からのデータの読み出しに対し、16本の読み出し線毎に分割されたブロック(16ワードデータ領域)の読み出し単位毎に8ワード分のセンスアンプ7が設けられ、アドレス境界(バウンダリ)として、16ワード毎の境界(16ワード境界)を有する構成となっている。
ここで、従来例および後述する実施の形態において、16ワードデータ領域内において、8ワード単位で設けられたセンスアンプ7に対して、メモリセルから読み出されるメモリデータの出力の切り替えを、2ワード単位にて行うように構成されている。
この制御機能について図4を参照して説明する。図4はメモリセルアレイ6の各メモリセルからワードデータを読み出す読み出し線と、16ワードの中から8ワード分の読み出し線をセンスアンプ7に接続するスイッチ機構100と、センスアンプ7との接続関係を示す図である。
読み出し線「0000」〜「1111」の夫々は、1ワード分に対応した数の読み出し線群を有している。なお、説明の便宜上、読み出し線には、それが読み出すメモリセルのアドレスの下位4ビットの値を示す値(「0000」など)を付与している。
下位4ビットが「0000」〜「1111」に対応する16ワード分の読み出し線は、「0000」および「0001」と、「0010」および「0011」と、「0100」および「0101」と、「0110」および「0111」と、「1000」および「1001」と、「1010」および「1011」と、「1100」および「1101」と、「1110」および「1111」との8つのグループに分けられている。
また、センスアンプ7は8個のセンスアンプ7−0〜7−7を有し、センスアンプ7も、センスアンプ7−0およびセンスアンプ7−1と、センスアンプ7−2およびセンスアンプ7−3と、センスアンプ7−4およびセンスアンプ7−5と、センスアンプ7−6およびセンスアンプ7−7との4つのグループに分けられている。ここで、センスアンプ7−1〜7−7の夫々は、1ワード分に対応した数のセンスアンプ群を有している。
スイッチ機構100は、4つのスイッチ100−0〜100−3により構成されており、スイッチ100−0〜100−3は、夫々、読み出し線デコーダ110から入力されるデータに応じて、センスアンプ7−0〜7−7に接続する読み出し線を選択する。
スイッチ100−0は、読み出し線デコーダ110から入力されるデータAT[3:0]の最下位ビット(「0」ビット目)が「0」の場合には「0000」および「0001」の読み出し線を選択し、「1」の場合には「1000」および「1001」の読み出し線を選択する。
スイッチ100−1は、読み出し線デコーダ110から入力されるデータAT[3:0]の「1」ビット目が「0」の場合には「0010」および「0011」の読み出し線を選択し、「1」の場合には「1010」および「1011」の読み出し線を選択する。
スイッチ100−2は、読み出し線デコーダ110から入力されるデータAT[3:0]の「2」ビット目が「0」の場合には「0100」および「0101」の読み出し線を選択し、「1」の場合には「1100」および「1101」の読み出し線を選択する。
スイッチ100−3は、読み出し線デコーダ110から入力されるデータAT[3:0]の最上位ビット(「3」ビット目)が「0」の場合には「0110」および「0111」の読み出し線を選択し、「1」の場合には「1110」および「1111」の読み出し線を選択する。
読み出し線デコーダ110は、開始アドレスの下位4ビット(A[3:0])が「1000」(8)〜「1111」(15:F)の場合には、バースト読み出しの開始時には、処理切替フラグが「00」であることを検出して開始アドレスの下位4ビットを「1111」に変換して4ビットのデータAT[3:0]としてスイッチ機構100に対して出力するとともに、処理切替フラグを「11」にする。それ以降、読み出し線デコーダ110は、バーストアドレスBADが変化するタイミングにおいて、順次、処理切替フラグが「11」であることを検出してデータAT[3:0]の各ビットを夫々反転し、反転して得られたデータAT[3:0]をスイッチ機構100に対して出力する。
例えば、開始アドレスの下位4ビットが「1100」のとき、読み出し線デコーダ110は、開始アドレスの下位4ビットの「1100」を「1111」に変換し、変換後のデータ「1111」をデータAT[3:0]としてスイッチ機構100に対して出力する。スイッチ機構100のスイッチ100−0は、データAT[3:0]の「0」ビット目が「1」であるので、「1000」および「1001」の読み出し線を選択してセンスアンプ7−0に接続する。スイッチ100−1は、データAT[3:0]の「1」ビット目が「1」であるので、「1010」および「1011」の読み出し線を選択してセンスアンプ7−1に接続する。スイッチ100−2は、データAT[3:0]の「2」ビット目が「1」であるので、「1100」および「1101」の読み出し線を選択してセンスアンプ7−2に接続する。スイッチ100−3は、データAT[3:0]の「3」ビット目が「1」であるので、「1110」および「1111」の読み出し線を選択してセンスアンプ7−3に接続する。
それ以降、読み出し線デコーダ110は、データAT[3:0]の各ビットを夫々反転して、反転して得られたデータAT[3:0]をスイッチ機構100に対して出力する。
一方、読み出し線デコーダ110は、開始アドレスの下位4ビット(A[3:0])が「0000」(0)〜「0111」(7)の場合には、バースト読み出しの開始時には、処理切替フラグが「00」であることを検出して、開始アドレスの下位4ビットのアドレスを、図5のテーブルに従い変換して(図5の左の「ラッチアドレスLADの下位4ビット」から中央の「変換後の下位4ビット」へ変換)、変換後の4ビットのデータAT[3:0]をスイッチ機構100に対して出力するとともに、処理切替フラグを「01」にする。続いて、読み出し線デコーダ110は、バーストアドレスが変化するタイミングにおいて、処理切替フラグが「01」であることを検出して、変換後の4ビットのデータAT[3:0]の各ビットを夫々反転し(図5の中央の「変換後の下位4ビット」から右の「反転後の下位4ビット」へ変換)、反転後の4ビットのデータAT[3:0]をスイッチ機構100に対して出力するとともに、処理切替フラグを「10」にする。また、読み出し線デコーダ110は、バーストアドレスBADが変化するタイミングにおいて、処理切替フラグが「10」であることを検出して(最初の16ワード境界を越えたので)、スイッチ機構100に対して、「0000」のデータAT[3:0]を出力し、処理切替フラグを「11」にする。以降、読み出し線デコーダ110は、バーストアドレスBADが変化するタイミングにおいて、順次、処理切替フラグが「11」であることを検出してデータAT[3:0]の各ビットの夫々を反転して、反転して得られたデータAT[3:0]をスイッチ機構100に対して出力する。
例えば、開始アドレスの下位4ビットが「0011」のとき、読み出し線デコーダ110は、図5のテーブルに従い変換して「0001」を求め、変換後のデータ「0001」をデータAT[3:0]としてスイッチ機構100に対して出力する。スイッチ機構100のスイッチ100−0は、データAT[3:0]の「0」ビット目が「1」であるので、「1000」および「1001」の読み出し線を選択してセンスアンプ7−0に接続する。スイッチ100−1は、データAT[3:0]の「1」ビット目が「0」であるので、「0010」および「0011」の読み出し線を選択してセンスアンプ7−1に接続する。スイッチ100−2は、データAT[3:0]の「2」ビット目が「0」であるので、「0100」および「0101」の読み出し線を選択してセンスアンプ7−2に接続する。スイッチ100−3は、データAT[3:0]の「3」ビット目が「0」であるので、「0110」および「0111」の読み出し線を選択してセンスアンプ7−3に接続する。
次のバーストアドレスの変化するタイミングにおいて、読み出し線デコーダ110は、変換後の4ビットのデータAT[3:0]の各ビットを夫々反転して「1110」を求め、変換後のデータ「1110」をデータAT[3:0]としてスイッチ機構100に対して出力する。スイッチ機構100のスイッチ100−0は、データAT[3:0]の「0」ビット目が「0」であるので、「0000」および「0001」の読み出し線を選択してセンスアンプ7−0に接続する。スイッチ100−1は、データAT[3:0]の「1」ビット目が「1」であるので、「1010」および「1011」の読み出し線を選択してセンスアンプ7−1に接続する。スイッチ100−2は、データAT[3:0]の「2」ビット目が「1」であるので、「1100」および「1101」の読み出し線を選択してセンスアンプ7−2に接続する。スイッチ100−3は、データAT[3:0]の「3」ビット目が「1」であるので、「1110」および「1111」の読み出し線を選択してセンスアンプ7−3に接続する。
次のバーストアドレスの変化するタイミングにおいて、読み出し線デコーダ110は、データ「0000」をデータAT[3:0]としてスイッチ機構100に対して出力する。スイッチ機構100のスイッチ100−0は、データAT[3:0]の「0」ビット目が「0」であるので、「0000」および「0001」の読み出し線を選択してセンスアンプ7−0に接続する。スイッチ100−1は、データAT[3:0]の「1」ビット目が「0」であるので、「0010」および「0011」の読み出し線を選択してセンスアンプ7−1に接続する。スイッチ100−2は、データAT[3:0]の「2」ビット目が「0」であるので、「0100」および「0101」の読み出し線を選択してセンスアンプ7−2に接続する。スイッチ100−3は、データAT[3:0]の「3」ビット目が「0」であるので、「0110」および「0111」の読み出し線を選択してセンスアンプ7−3に接続する。
次のバーストアドレスの変化するタイミングにおいて、読み出し線デコーダ110は、データAT[3:0]の各ビットを夫々反転してデータ「1111」を求め、求めた「1111」をデータAT[3:0]としてスイッチ機構100に対して出力する。スイッチ機構100のスイッチ100−0は、データAT[3:0]の「0」ビット目が「1」であるので、「1000」および「1001」の読み出し線を選択してセンスアンプ7−0に接続する。スイッチ100−1は、データAT[3:0]の「1」ビット目が「1」であるので、「1010」および「1011」の読み出し線を選択してセンスアンプ7−1に接続する。スイッチ100−2は、データAT[3:0]の「2」ビット目が「1」であるので、「1100」および「1101」の読み出し線を選択してセンスアンプ7−2に接続する。スイッチ100−3は、データAT[3:0]の「3」ビット目が「1」であるので、「1110」および「1111」の読み出し線を選択してセンスアンプ7−3に接続する。
それ以降、読み出し線デコーダ110は、データAT[3:0]の各ビットを夫々反転して、反転して得られたデータAT[3:0]をスイッチ機構100に対して出力する。
次に、図1におけるバースト制御部3の詳細について図6を参照しつつ説明する。図6はバースト制御部3の構成例を示すブロック図である。
バースト制御部3には、ファーストレイテンシレジスタ31があり、ファーストレイテンシレジスタ31は、外部から入力されるファーストレイテンシのウェイトサイクル数から「1」減算した値を記憶するレジスタである。このファーストレイテンシレジスタ31への書き込みはバースト読み出しなどが実際に行われるよりも前のタイミングで、不図示の制御回路により行われる。なお、以下において、ファーストレイテンシのウェイトサイクル数から「1」減算した値を、ウェイト計数初期値という。
なお、ファーストレイテンシのウェイトサイクル数は、非同期のメモリセルアレイからデータを読み出すための時間、すなわち、読み出し開始時に最初のメモリアクセス完了までの待ち時間が発生するために、バースト読み出しの開始の最初のクロックの有効エッジから、データ出力開始またはデータ出力確定のクロックの有効エッジまでのクロックサイクル数として設定されている。
バースト制御部3には、有効データ(メモリアクセスにおいてメモリセルアレイ6からセンスしたワードデータのうちバースト出力すべきワードデータ)の数から「1」減算した値を記憶する有効データレジスタ32がある。なお、以下において、有効データ数から「1」減算した値を、データ計数初期値という。
バースト制御部3には、アドレスカウンタ33がある。アドレスカウンタ33は、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。アドレスカウンタ33は、クロックイネーブル信号CLKENが「H」レベルの時に、アドレスラッチ信号ALAT信号の立ち下がりに同期して、アドレスラッチ2から入力されるラッチアドレスLAD(22ビット)の下位3ビットを除いた、上位の「3〜22ビット」が示す上位アドレスをスタートのバーストアドレスBADとして出力する。アドレスカウンタ33は、後述するファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期してバーストアドレスBADを「1」インクリメントして次にメモリアクセスするバーストアドレスBADとして出力する。また、アドレスカウンタ33は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「1」および「0」のいずかであって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期してバーストアドレスBADを「1」インクリメントして次にメモリアクセスするバーストアドレスBADとして出力する。
バースト制御部3には、ファーストレイテンシカウンタ(FLC)34がある。ファーストレイテンシカウンタ34はファーストレイテンシのクロックサイクルを計数するために利用されるものであり、バースト読み出しの開始時の最初のメモリアクセスのアクセス時間に対応したクロックサイクル数を計数するためにも利用される。ファーストレイテンシカウンタ34は、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。ファーストレイテンシカウンタ34にはファーストレイテンシレジスタ31に記憶されているウェイト計数初期値が計数の初期値として書き込まれる。ファーストレイテンシカウンタ34は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントする。
バースト制御部3には、データカウンタ(DTC)35がある。データカウンタ35はページラッチ10に保持されているまだバースト出力されていない有効データの数を計数するものである。ここで、有効データとは、メモリセルアレイ6から読み出された外部にバースト出力する必要があるワードデータのことであり、以下において同様である。データカウンタ35は、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。データカウンタ35には有効データレジスタ32に記憶されているデータ計数初期値が計数の初期値として書き込まれる。データカウンタ35は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントする。このデータカウンタ35は「3」ビットにより構成されており、最大「7」計数できるようになっている。
バースト制御部3には、16W境界カウンタ(BDC)36がある。16W境界カウンタ36は16ワード境界の境界前ウェイトを計数するために利用されるものであり、メモリアクセスのアクセス時間に対応したクロックサイクル数を計数するためにも利用される。16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。16W境界カウンタ36にはファーストレイテンシレジスタ31に記憶されているウェイト計数初期値が計数の初期値として書き込まれる。16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントする。
バースト制御部3には、レイテンシカウンタ書込部37がある。レイテンシカウンタ書込部37は、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。レイテンシカウンタ書込部37は、クロックイネーブル信号CLKENが「H」レベルの場合に、アドレスラッチ信号ALAT信号の立ち下がりに同期して、ファーストレイテンシレジスタ31に記憶されているウェイト計数初期値を読み込み、読み込んだウェイト計数初期値をファーストレイテンシカウンタ34に対して計数の初期値として書き込む。
バースト制御部3には、有効データレジスタ書込部38がある。有効データレジスタ書込部38は、バースト読み出し開始時に、或いは、後述するデータカウンタ書込部39が有効データレジスタ32からデータ計数初期値を読み込んだ時に、データ計数初期値の算出を開始し、算出が完了した時点で算出したデータ計数初期値を有効データレジスタ32に書き込む。有効データレジスタ書込部38は、有効データの数から「1」減算した値(データ計数初期値)を算出し、算出結果を有効データレジスタ32に書き込む。なお、最初の16ワード境界前の1回目のメモリアクセスにおける有効データの数は図10の「1st」に示されている値であり、最初の16ワード境界前の2回目のメモリアクセスにおける有効データの数は図10の「2st」に示されている値である。また、最初の16ワード境界を越えた後のメモリアクセスにおける有効データの数は固定値「8」である。
つまり、有効データレジスタ書込部38は、バーストアドレスの開始時、有効データ数書込フラグが「000」であることを検出して、開始アドレスの下位4ビットにおける最上位ビットが「1」であるか否かの検出を行い、最上位ビットが「1」でない場合に「0000」(「0」)〜「0111」(「7」)の範囲であると判断して有効データ数書込フラグを「001」にし、最上位ビットが「1」である場合に「1000」(「8」)〜「1111」(「F」)の範囲であると判断して有効データ数書込フラグを「101」にする。
有効データレジスタ書込部38は、有効データ数書込フラグが「001」であることを検出して(最上位ビットが「1」でないこと、すなわち、開始アドレスの下位4ビットが「0」〜「7」の範囲のとき)、最初の16ワード境界前における1回目のメモリアクセス(1stアクセス)の際に、この下位4ビットにおける最下位ビットが「1」か「0」のいずれであるかの検出を行う。有効データレジスタ書込部38は、最下位ビットが「1」である場合に固定値「7」をデータ計数初期値とし、最下位ビットが「0」である場合に固定値「6」をデータ計数初期値とする。そして、有効データレジスタ書込部38は有効データ書込フラグを「010」にする。
続いて、有効データレジスタ書込部38は、有効データ数書込フラグが「010」であることを検出して、最初の16ワード境界における2回目のメモリアクセス(2stアクセス)の際に、最下位ビットを「0」とし、最下位ビット(1ビット目)、2ビット目、および3ビット目を夫々反転して、その結果をデータ計数初期値とする。そして、有効データレジスタ書込部38は有効データ書込フラグを「011」にする。
それ以降、有効データレジスタ書込部38は、有効データ数書込フラグが「011」であることを検出して、固定値「7」をデータ計数初期値とする。
一方、有効データレジスタ書込部38は、有効データ数書込フラグが「001」であることを検出して(最上位ビットが「1」であること、すなわち、下位4ビットが「8」〜「F」(15)の範囲のとき)、最初の16ワード境界における1回目のメモリアクセス(1stアクセス)の際に、開始アドレスの下位4ビットを夫々反転して、その結果をデータ計数初期値とする。そして、有効データレジスタ書込部38は有効データ書込フラグを「011」にする。
それ以降、有効データレジスタ書込部38は、有効データ数書込フラグが「011」であることを検出して、固定値「7」(有効データ数の8より1小さい値)をデータ計数初期値とする。
例えば、開始アドレスの下位4ビットが「7」(0(最上位ビット)、1(3ビット目)、1(2ビット目)、1(最下位ビット))のとき、有効データレジスタ書込部38は、最上位ビットが「0」であるため、1stアクセスの際に、この下位4ビットにおける最下位ビットが「1」であることを検出し、固定値「6」をデータ計数初期値として有効データレジスタ32に書き込む。そして、有効データレジスタ書込部38は、2ndアクセスの際に、「1(3ビット目)、1(2ビット目)、1(最下位ビット)」に対して最下位ビットを「0」として「110」を求め、さらに、これを反転して「001」を求め、求めた「1」をデータ計数初期値として有効データレジスタ32に書き込む。それ以降、有効データレジスタ書込部38は、固定値「7」をデータ計数初期値として有効データレジスタ32に書き込む。
また、開始アドレスの下位4ビットが「14」(1(最上位ビット)、1(3ビット目)、1(2ビット目)、0(最下位ビット))のとき、有効データレジスタ書込部38は、最上位ビットが「1」であるため、1stアクセスの際に、「1110」を反転して「0001」を求め、求めた「1」をデータ計数初期値として有効データレジスタ32に書き込む。それ以降、有効データレジスタ書込部38は、固定値「7」をデータ計数初期値として有効データレジスタ32に書き込む。
バースト制御部3には、データカウンタ書込部39がある。データカウンタ書込部39は、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。データカウンタ書込部39は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32に記憶されているデータ計数初期値を読み込み、読み込んだデータ計数初期値をデータカウンタ35に対して計数の初期値として書き込む。
データカウンタ書込部39は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「1」および「0」の何れかであって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32に記憶されているデータ計数初期値を読み込み、読み込んだデータ計数初期値をデータカウンタ35に対して計数の初期値として書き込む。
バースト制御部3には、境界カウンタ書込部40がある。境界カウンタ書込部39は、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。境界カウンタ書込部40は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ31に記憶されているウェイト計数初期値を読み込み、読み込んだウェイト計数初期値を16W境界カウンタ36に対して計数の初期値として書き込む。
境界カウンタ書込部40は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「1」および「0」の何れかであって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ31に記憶されているウェイト計数初期値を読み込み、読み込んだウェイト計数初期値を16W境界カウンタ36に対して計数の初期値として書き込む。
バースト制御部3には、アドレス変化検出部41がある。アドレス変化検出部41は、バーストアドレスBADの変化を検出して、ワンショットのパルスを生成して、検出信号DTとして出力する。上述したように、検出信号DTは、ATD回路8により所定時間(メモリのアクセス時間)遅延させられ、センスアンプコントロール信号SCとしてセンスデータラッチ9に供給される。
バースト制御部3には、ページラッチ信号生成部42がある。ページラッチ信号生成部42は、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。
ページラッチ信号生成部42は、バーストアドレスの開始時に、最初のメモリアクセスによりメモリセルアレイ6から読み出されてセンスデータラッチ9に保持されているワードデータをページラッチ10により保持するために、ページラッチ信号PLを「H」レベルにしてページラッチ10をスルー状態にし、メモリアクセスが完了して読み出されたワードデータがセンスデータラッチ9から出力されるようになった後であって、2回目のメモリアクセスでメモリセルアレイ6から読み出されたワードデータがセンスデータラッチ9から出力される前に、ページラッチ信号PLを「L」レベルにしてセンスデータラッチ9が出力しているワードデータをラッチ(保持)する。
従来例においては、ページラッチ信号生成部42は、クロックイネーブル信号CLKENが「H」レベルの時に、アドレスラッチ信号ALATの立ち下がりに同期して、ページラッチ信号PLを立ち上げる(「L」レベルから「H」レベルにする)。このページラッチ信号PLの立ち上げに対して、ページラッチ信号生成部42は、ファーストレイテンシカウンタ34の計数値のデクリメント処理が行われて「1」となって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PLを立ち下げる(「H」レベルから「L」レベルにする)。
ページラッチ信号生成部42は、次のメモリアクセス(ページラッチ10にラッチされているワードデータを読み出したメモリアクセスの次のメモリアクセス)によりメモリセルアレイ6から読み出されてセンスデータラッチ9に保持されているワードデータをページラッチ10により保持するために、ページラッチ10が保持している有効データの全てがページセレクタ11により選択された後にページラッチ信号PLを「H」レベルにしてページラッチ10をスルー状態にし、ページラッチ10が保持している有効データの全てがページセレクタ11により選択された後でかつ当該次のメモリアクセスが完了して読み出されたワードデータがセンスデータラッチ9から出力されるようになった後であって、当該次のメモリアクセスの次のメモリアクセスでメモリセルアレイ6から読み出されたワードデータがセンスデータラッチ9から出力される前に、ページラッチ信号PLを「L」レベルにしてセンスデータラッチ9が出力しているワードデータをラッチ(保持)する。
従来例においては、ページラッチ信号生成部42は、データカウンタ35の計数値が「0」または「1」の何れかで16W境界カウンタ36の計数値が「2」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期してページラッチ信号PLを立ち上げる。このページラッチ信号PLの立ち上げに対して、ページラッチ信号生成部42は、16W境界カウンタ36の計数値のデクリメント処理が行われて「1」となって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期してページラッチ信号PLを立ち下げる。
または、ページラッチ信号生成部42は、16W境界カウンタ36の計数値が「0」および「1」の何れかデータカウンタ35の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期してページラッチ信号PLを立ち上げる。このページラッチ信号PLの立ち上げに対して、ページラッチ信号生成部42は、データカウンタ35の計数値のデクリメント処理が行われて「0」となって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期してページラッチ信号PLを立ち下げる。
バースト制御部3には、ページコントロール信号生成部43がある。ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの時に、アドレスラッチ信号ALATの立ち下がりに同期して、開始アドレスの下位3ビットをページコントロール信号PCの初期値として読み込む。そして、ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期してページコントロール信号PCを「1」インクリメントし、インクリメント後の値を新たなページコントロール信号PCとして出力する。なお、以下において、ページコントロール信号PCの値「000」、「001」、「010」、「011」、「100」、「101」、「110」、「111」を、「P0」、「P1」、「P2」、「P3」、「P4」、「P5」、「P6」、「P7」として記載する。例えば、開始アドレスの下位アドレスが「010」(2)の場合、ページコントロール信号生成部43は、ページコントロール信号PCとして、「P2」、「P3」、「P4」、「P5」、「P6」、「P7」、「P0」、「P1」、・・・を出力する。
ページコントロール信号生成部43は、初期値を読み込んだ後に動作を停止し(クロックイネーブル信号CLKENが「H」レベルであると「L」レベルであるとにかかわらず)、ファーストレイテンシカウンタ34の計数値が「1」になると動作を開始する。また、ページコントロール信号生成部43は、データカウンタ35の計数値が「1」のときに16W境界カウンタ36の計数値が「3」以上であれば動作を停止し(クロックイネーブル信号CLKENが「H」レベルであると「L」レベルであるとにかかわらず)、その後に16W境界カウンタ36の計数値が「2」になると動作を開始する。
バースト制御部3には、ウェイト信号生成部44がある。ウェイト信号生成部44は、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。
ウェイト信号生成部44は、クロックイネーブル信号CLKENが「H」レベルの時に、アドレスラッチ信号ALATの立ち下がりに同期して、ウェイト信号WAITを立ち上げる。このウェイト信号WAITの立ち上げに対して、ウェイト信号生成部44は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期してウェイト信号WAITを立ち下げる。
また、ウェイト信号生成部44は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「2」以上であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ウェイト信号WAITを立ち上げる。このウェイト信号WAITの立ち上げに対して、ウェイト信号生成部44は、16W境界カウンタ36の計数値のデクリメント処理が行われて「1」となって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期してウェイト信号WAITを立ち下げる。
さらに、ウェイト信号生成部44は、クロックイネーブル信号CLKENの立ち下がりに同期してウェイト信号WAITを立ち上げ、その後、クロックイネーブル信号CLKENの立ち上がりに同期してウェイト信号WAITを立ち下げる。
バースト制御部3は、図示しない、同期/非同期セレクト信号SEL、およびアウトプットコントロール信号OPCの生成を行う。また、バースト制御部3は、アドレスラッチ信号ALATの立ち下がりに同期して、16W境界信号を「L」レベルから「H」レベルに立ち上げ、データカウンタ35の計数値のデクリメント処理が行われて「1」となった場合に入力される内部クロックCLKの立ち上がりに同期して、16W境界信号を「H」レベルから「L」レベルに立ち下げる。
以下、上述した従来のフラッシュメモリのバースト読み出しの動作について図面を参照しつつ説明する。
図7は、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「E(14)」の場合における、従来例の各回路の動作のタイミングチャートを示している。
時刻t1001において、入力バッファ1がチップイネーブル信号CEB及びアドレスバリッド信号ADVBが「H」レベルから「L」レベルに遷移することにより、アドレスラッチ信号ALATを立ち上げ、立ち上げた後の次の内部クロックCLKの立ち上がりに同期してアドレスラッチ信号ALATを立ち下げる。
時刻t1002において、アドレスカウンタ33は、クロックイネーブル信号CLKENが「H」レベルであるので、アドレスラッチ信号ALATの立ち下がりにおいて、アドレスラッチ2から入力されるラッチアドレスLAD(22ビット)の下位3ビットを除いた、「3〜22ビット」が示す上位アドレスを、計数の初期値として書き込まれ、バーストアドレスBADとして出力する。このバーストアドレスBADに基づき、センスアンプ7によりセンスされてメモリデータMDがセンスデータラッチ9に出力される。
このとき、アドレス変化検出部41は、アドレスカウンタ33の出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t1062においてセンスアンプコントロール信号SCとしてセンスデータラッチ9に入力され、センスデータラッチ9は、センスアンプ7から出力されるメモリデータMDをラッチして、「D14」、「D15」をセンスラッチデータSLDとして出力する。
時刻t1002において、レイテンシカウンタ書込部37は、クロックイネーブル信号CLKENが「H」レベルであるので、ファーストレイテンシのクロックサイクルを計数するために、ファーストレイテンシレジスタ31に記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」をファーストレイテンシカウンタ34に対して計数の初期値として書き込む。
ページラッチ信号生成部42は、クロックイネーブル信号CLKENが「H」レベルであるので、ページラッチ信号PLを立ち上げる(「L」レベルから「H」レベルとする)。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルであるので、開始アドレスの下位3ビット「110」をページコントロール信号PCの初期値として読み込み、「P6」をページコントロール信号PCとして出力し、動作を停止する(計数を行わない状態)。
ウェイト信号生成部44は、クロックイネーブル信号CLKENが「H」レベルであるので、ウェイト信号WAITを立ち上げる(「L」レベルから「H」レベルとする)。
バースト制御部3は、アクセス開始の際の最初の16ワード境界前におけるアクセスであることを示す16ワード境界信号を立ち上げる(「L」レベルから「H」レベルとする)。
時刻t1003から時刻1006にかけて、ファーストレイテンシカウンタ34は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「5」→「4」→「3」→「2」→「1」)、計数値が「1」になる。
ページコントロール信号生成部43は、ファーストレイテンシカウンタ34の計数値が「1」になると動作を開始する(計数を行う状態)。
時刻t1007において、ファーストレイテンシカウンタ34は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「0」にする。
アドレスカウンタ33は、最初のメモリアクセスが完了しており、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするメモリ(8ワード単位)のアドレスを示すバーストアドレスBAD(以下、次にアクセスするバーストアドレスBADと記載)として出力する。
このとき、アドレス変化検出部41は、アドレスカウンタ33の出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t1112においてセンスアンプコントロール信号SCとしてセンスデータラッチ9に入力され、センスデータラッチ9は、センスアンプ7から出力されるメモリデータMDをラッチして、「D16」〜「D23」をセンスラッチデータSLDとして出力する。
時刻t1007において、データカウンタ書込部39は、有効データの出力に必要なクロックサイクルを計数するために、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルで場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32に記憶されているデータ計数初期値「1」を読み込み、読み込んだデータ計数初期値「1」をデータカウンタ35に対して計数の初期値として書き込む。
境界カウンタ書込部40は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルで場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ31に記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」を16W境界カウンタ36に対して計数の初期値として書き込む。
ページラッチ信号生成部42は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルで場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t1002において立ち上げたページラッチ信号PLを立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ10は、センスデータラッチ9から出力されているセンスラッチデータSLDをラッチし、「D14」、「D15」をページラッチデータPLDとして出力する。
出力ラッチ12は、ページセレクタ11から出力されているページデータPD(「D14」:下位4ビット「E」に対応したワードデータ)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P6」から「P7」にインクリメントし、「P7」をページコントロール信号PCとして出力する。ページコントロール信号生成部43は、データカウンタ35の計数値が「1」で16W境界カウンタ36の計数値が「3」以上の「5」であるので動作を停止する(計数を行わない状態)。
これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P7」)に対応する「D15」を選択して、「D15」をページデータPDとして出力する。
ウェイト信号生成部44は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルで場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t1002において立ち上げたウェイト信号WAITを立ち下げる(「H」レベルから「L」レベルとする)。
時刻t1008において、データカウンタ35は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「0」にする。また、16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「4」にする。
出力ラッチ12は、ページセレクタ11から出力されている「D15」のページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
バースト制御部3は、データカウンタ35の計数が「1」である場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t1002において立ち上げた16W境界信号を立ち下げる。
時刻t1009において、ウェイト信号生成部44は、データカウンタ35の計数値が「0」で16ワード境界カウンタ36の計数値が「2」以上の「4」であるので、つまり、有効データの全てを出力してもメモリアクセスが完了していないので、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ウェイト信号WAITを立ち上げる(「L」レベルから「H」レベルにする)。
16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「3」にする。
時刻t1010において、16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルで場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「2」にする。ページコントロール信号生成部43は、16W境界カウンタ36の計数値が「2」になったので動作を開始する(計数を行う状態)。
時刻t1011において、ページラッチ信号生成部42は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「2」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PLを立ち上げる(「L」レベルから「H」レベルとする)。
16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「1」にする。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P7」から「P0」にインクリメントし、「P0」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P0」)に対応する「D16」を選択して、「D16」をページデータPDとして出力する。
時刻t1012において、有効データの出力とメモリアクセスの双方が完了することになるので、アドレスカウンタ33は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41は、アドレスカウンタ33の出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t1162においてセンスアンプコントロール信号SCとしてセンスデータラッチ9に入力され、センスデータラッチ9は、センスアンプ7から出力されるメモリデータMDをラッチして、「D24」〜「D31」をセンスラッチデータSLDとして出力する。
時刻t1012において、データカウンタ書込部39は、有効データの出力に必要なクロックサイクルを計数するために、データカウンタ35の計数値が「0」で16W境界カウンタ36は計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32に記憶されているデータ計数初期値「7」を読み込み、読み込んだデータ計数初期値「7」をデータカウンタ35に対して計数の初期値として書き込む。
ページラッチ信号生成部42は、16W境界カウンタ36の計数値がデクリメント処理されて「1」になっているので、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t1011において立ち上げたページラッチ信号PLを立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ10は、センスデータラッチ9から出力されているセンスラッチデータSLDをラッチし、「D16」〜「D23」をページラッチデータPLDとして出力する。
出力ラッチ12は、ページセレクタ11から出力されているページデータPD(「D16」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKに同期して、ページコントロール信号PCを「P0」から「P1」にインクリメントし、「P1」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P1」)に対応する「D17」を選択して、「D17」をページデータPDとして出力する。
ウェイト信号生成部44は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t1009において立ち上げたウェイト信号WAITを立ち下げる(「H」レベルから「L」レベルとする)。
時刻t1013〜t1019にかけて、データカウンタ35は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「7」→「6」→「5」→「4」→「3」→「2」→「1」→「0」)、計数値が「0」になる。
出力ラッチ12は、ページセレクタ11から出力されているページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する(「D17」〜「D23」)。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKに同期して、ページコントロール信号PCをインクリメントし、インクリメント後の値をページコントロール信号PCとして出力する(「P2」〜「P7」、「P0」)。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PCに対応するワードデータを選択して、選択したワードデータをページデータPDとして出力する(「D18」〜「D24」)。
時刻t1019において、ページラッチ信号生成部42は、16W境界カウンタ36の計数値が「0」でデータカウンタ35の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PLを立ち上げる(「L」レベルから「H」レベルとする)。
時刻t1020において、アドレスカウンタ33は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「0」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。このとき、アドレス変化検出部41は、アドレスカウンタ33の出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。
時刻t1020において、データカウンタ書込部39は、有効データの出力に必要なクロックサイクルを計数するために、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「0」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32に記憶されているデータ計数初期値「7」を読み込み、読み込んだデータ計数初期値「7」をデータカウンタ35に対して計数の初期値として書き込む。
ページラッチ信号生成部42は、データカウンタ35の計数値がデクリメント処理されて「0」になっているので、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t1019において立ち上げたページラッチ信号PLを立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ10は、センスデータラッチ9から出力されているセンスラッチデータSLDをラッチし、「D24」〜「D31」をページラッチデータPLDとして出力する。
出力ラッチ12は、ページセレクタ11から出力されているページデータPD(「D24」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P0」から「P1」にインクリメントし、「P1」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P1」)に対応する「D25」を選択して、「D25」をページデータPDとして出力する。
以降、順次処理が繰り返し行われる。
図8が、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「6」の場合における、従来例の各回路の動作のタイミングチャートを示している。
時刻t2001〜t2006、およびt2062において、図7において説明した時刻t1001〜t1006、およびt1062と同様の動作が行われる。
時刻t2007において、ファーストレイテンシカウンタ34は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして「0」にする。
アドレスカウンタ33は、最初のメモリアクセスが完了しているので、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41は、アドレスカウンタ33の出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t2112においてセンスアンプコントロール信号SCとしてセンスデータラッチ9に入力され、センスデータラッチ9は、センスアンプ7から出力されるメモリデータMDをラッチして、「D14」〜「D15」をセンスラッチデータSLDとして出力する。
時刻t2007において、データカウンタ書込部39は、有効データの出力に必要なクロックサイクルを計数するために、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32に記憶されているデータ計数初期値「7」を読み込み、読み込んだデータ計数初期値「7」をデータカウンタ35に対して計数の初期値として書き込む。
境界カウンタ書込部40は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ31に記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」を16W境界カウンタ36に対して計数の初期値として書き込む。
ページラッチ信号生成部42は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t2002において立ち上げたページラッチ信号PLを立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ10は、センスデータラッチ9から出力されているセンスラッチデータSLDをラッチし、「D6」〜「D13」をページラッチデータPLDとして出力する。
出力ラッチ12は、ページセレクタ11から出力されているページデータPD(「D6」:下位4ビット「6」に対応したワードデータ)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P6」から「P7」にインクリメントし、「P7」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P7」)に対応する「D7」を選択して、「D7」をページデータPDとして出力する。
ウェイト信号生成部44は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t2002において立ち上げたウェイト信号WAITを立ち下げる(「H」レベルから「L」レベルとする)。
時刻t2008〜t2014にかけて、データカウンタ35は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「7」→「6」→「5」→「4」→「3」→「2」→「1」→「0」)、計数値が「0」になる。
時刻t2008〜t2012にかけて、16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「5」→「4」→「3」→「2」→「1」→「0」)、計数値が「0」になる。
時刻t2008〜t2014にかけて、出力ラッチ12は、ページセレクタ11から出力されているページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する(「D7」〜「D13」)。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCをインクリメントし、インクリメント後の値をページコントロール信号PCとして出力する(「P0」〜「P6」)。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PCに対応するワードデータを選択して、選択したワードデータをページデータPDとして出力する(「D8」〜「D14」)。
時刻t2014において、ページラッチ信号生成部42は、16W境界カウンタ36の計数値が「0」でデータカウンタ35の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PLを立ち上げる(「L」レベルから「H」レベルとする)。
時刻t2015において、有効データの出力とメモリアクセスの双方が完了することになるので、アドレスカウンタ33は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「0」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41は、アドレスカウンタ33の出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t2192において、センスアンプコントロール信号SCとしてセンスデータラッチ9に入力され、センスデータラッチ9は、センスアンプ7から出力されるメモリデータMDをラッチして、「D16」〜「D23」をセンスラッチデータSLDとして出力する。
時刻t2015において、データカウンタ書込部39は、有効データの出力に必要なクロックサイクルを計数するために、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「0」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32に記憶されているデータ計数初期値「1」を読み込み、読み込んだデータ計数初期値「1」をデータカウンタ35に対して計数の初期値として書き込む。
境界カウンタ書込部40は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「0」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ31に記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」を16W境界カウンタ36に対して計数の初期値として書き込む。
ページラッチ信号生成部42は、データカウンタ35の計数値のデクリメント処理が行われて「0」になっているので、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t2014において立ち上げたページラッチ信号PLを立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ10は、センスデータラッチ9から出力されているセンスラッチデータSLDをラッチし、「D14」〜「D15」をページラッチデータPLDとして出力する。
出力ラッチ12は、ページセレクタ11から出力されているページデータPD(「D14」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P6」から「P7」にインクリメントし、「P7」をページコントロール信号PCとして出力する。ページコントロール信号生成部43は、データカウンタ35の計数値が「1」で16W境界カウンタ36の計数値が「3」以上の「5」であるので動作を停止する(計数を行わない状態)。
これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P7」)に対応する「D15」を選択して、「D15」をページデータPDとして出力する。
時刻t2016において、データカウンタ35は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「0」にする。また、16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「4」にする。
出力ラッチ12は、ページセレクタ11から出力されているページデータPD(「D15」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
バースト制御部3は、データカウンタ35の計数が「1」である場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t2002において立ち上げた16W境界信号を立ち下げる。
時刻t2017において、ウェイト信号生成部44は、データカウンタ35の計数値が「0」で16ワード境界カウンタ33の計数値が「2」以上の「4」であるので、つまり、有効データの全てを出力してもメモリアクセスが完了しないので、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ウェイト信号WAITを立ち上げる(「L」レベルから「H」レベルにする)。
16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「3」にする。
時刻t2018において、16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「2」にする。ページコントロール信号生成部43は、16W境界カウンタ36の計数値が「2」になったので動作を開始する(計数する状態)。
時刻t2019において、ページラッチ信号生成部42は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「2」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PLを立ち上げる(「L」レベルから「H」レベルとする)。
16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「1」にする。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKに同期して、ページコントロール信号PCを「P7」から「P0」にインクリメントし、「P0」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P0」)に対応する「D16」を選択して、「D16」をページデータPDとして出力する。
時刻t2020において、有効データの出力とメモリアクセスの双方が完了することになるので、アドレスカウンタ33は、
データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。このとき、アドレス変化検出部41は、アドレスカウンタ33の出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。
時刻t2020において、データカウンタ書込部39は、有効データの出力に必要なクロックサイクルを計数するために、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32に記憶されているデータ計数初期値「7」を読み込み、読み込んだデータ計数初期値「7」をデータカウンタ35に対して計数の初期値として書き込む。
ページラッチ信号生成部42は、16W境界カウンタ36の計数値がデクリメント処理されて「1」になっているので、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t2019において立ち上げたページラッチ信号PLを立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ10は、センスデータラッチ9から出力されているセンスラッチデータSLDをラッチし、「D16」〜「D23」をページラッチデータPLDとして出力する。
出力ラッチ12は、ページセレクタ11から出力されているページデータPD(「D16」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
さらに、ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKに同期して、ページコントロール信号PCを「P0」から「P1」にインクリメントし、「P1」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P1」)に対応する「D17」を選択して、「D17」をページデータPDとして出力する。
ウェイト信号生成部44は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t2017において立ち上げたウェイト信号WAITを立ち下げる(「H」レベルから「L」レベルとする)。
それ以降、図7における時刻t1013以降と同様の動作が行われる。
図9が、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「8」の場合における、従来例の各回路の動作のタイミングチャートを示している。
時刻t3001〜t3006、およびt3062において、図7において説明した時刻t1001〜t1006、およびt1062と同様の動作が行われる。
時刻t3007において、ファーストレイテンシカウンタ34は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKに同期して、計数値を「1」デクリメントして「0」にする。
アドレスカウンタ33は、最初のメモリアクセスが完了しているので、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41は、アドレスカウンタ33の出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t3112において、センスアンプコントロール信号SCとしてセンスデータラッチ9に入力され、センスデータラッチ9は、センスアンプ7から出力されるメモリデータMDをラッチして、「D16」〜「D23」をセンスラッチデータSLDとして出力する。
時刻t3007において、データカウンタ書込部39は、有効データの出力に必要なクロックサイクルを計数するために、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32に記憶されているデータ計数初期値「7」を読み込み、読み込んだデータ計数初期値「7」をデータカウンタ35に対して計数の初期値として書き込む。
境界カウンタ書込部40は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ31に記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」を16W境界カウンタ36に対して計数の初期値として書き込む。
ページラッチ信号生成部42は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t3002において立ち上げたページラッチ信号PLを立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ10は、センスデータラッチ9から出力されているセンスラッチデータSLDをラッチし、「D8」〜「D15」をページラッチデータPLDとして出力する。
出力ラッチ12は、ページセレクタ11から出力されているページデータPD(「D8」:下位4ビット「8」に対応したワードデータ)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKに同期して、ページコントロール信号PCを「P0」から「P1」にインクリメントし、「P1」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P1」)に対応する「D9」を選択して、「D9」をページデータPDとして出力する。
ウェイト信号生成部44は、ファーストレイテンシカウンタ34の計数値が「1」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t3002において立ち上げたウェイト信号WAITを立ち下げる(「H」レベルから「L」レベルとする)。
時刻t3008〜t3014にかけて、データカウンタ35は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「7」→「6」→「5」→「4」→「3」→「2」→「1」→「0」)、計数値が「0」になる。
時刻t3008〜t3012において、16W境界カウンタ36は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「5」→「4」→「3」→「2」→「1」→「0」)、計数値が「0」になる。
時刻t3008〜t3014にかけて、出力ラッチ12は、ページセレクタ11から出力されているページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する(「D9」〜「D15」)。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKに同期して、ページコントロール信号PCをインクリメントし、インクリメント後の値をページコントロール信号PCとして出力する(「P2」〜「P7」、「P0」)。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PCに対応するワードデータを選択して、選択したワードデータをページデータPDとして出力する(「D10」〜「D16」)。
時刻t3014において、ページラッチ信号生成部42は、データカウンタ35の計数値が「1」で16W境界カウンタ36の計数値が「0」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PLを立ち上げる(「L」レベルから「H」レベルとする)。
バースト制御部3は、データカウンタ35の計数が「1」である場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t3002において立ち上げた16W境界信号を立ち下げる。
時刻t3015において、有効データの出力とメモリアクセスの双方が完了することになるので、アドレスカウンタ33は、データカウンタ35の計数値が「0」で16W境界カウンタ36の計数値が「0」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41は、アドレスカウンタ33の出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t3192においてセンスアンプコントロール信号SCとしてセンスデータラッチ9に入力され、センスデータラッチ9は、センスアンプ7から出力されるメモリデータMDをラッチして、「D24」〜「D31」をセンスラッチデータSLDとして出力する。
時刻t3015において、データカウンタ書込部39は、有効データの出力に必要なクロックサイクルを計数するために、16W境界カウンタ36の計数値が「0」でデータカウンタ35の計数値が「0」であって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32に記憶されているデータ計数初期値「7」を読み込み、読み込んだデータ計数初期値「7」をデータカウンタ35に対して計数の初期値として書き込む。
ページラッチ信号生成部42は、データカウンタ35の計数値のデクリメント処理が行われて「0」となって、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t3014において立ち上げたページラッチ信号PLを立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ10は、センスデータラッチ9から出力されているセンスラッチデータSLDをラッチし、「D16」〜「D23」をページラッチデータPLDとして出力する。
出力ラッチ12は、ページセレクタ11から出力されている「D16」のページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43は、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKに同期して、ページコントロール信号PCを「P0」から「P1」にインクリメントし、「P1」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P1」)に対応する「D17」を選択して、「D17」をページデータPDとして出力する。
ただし、時刻t3015において、データカウンタ35の計数値が「0」であるが、16W境界カウンタ36の計数値も「0」になっている、つまり、有効データの全てを出力するまでにメモリアクセスが完了するため、最初の16ワード境界にて境界前ウェイトサイクルが発生せず、ウェイト信号WAITが立ち上がることがない。
時刻t3016以降、図7における時刻t1013以降と同様の動作が行われる。
上述した従来のフラッシュメモリにおけるサスペンドが発生しない場合の各組合わせ(下位アドレスとファーストレイテンシとの組合わせ)における最初の16ワード境界において発生する境界前ウェイトサイクルのサイクル数を図10に示す。図10は従来のフラッシュメモリにおける16ワード境界前のウェイトサイクル数を示す図である。
図10に示すように、開始アドレスの下位4ビットの夫々に対して、有効データ数と最初の16ワード境界におけるウェイトサイクル数(図においては16ワード境界ウェイトサイクル数と記載)を示している。
有効データ数に関して、「1st」は最初の16ワード境界前の1回目のメモリアクセスでメモリセルアレイから読み出される有効データの数であり、「2nd」は最初の16ワード境界前の2回目のメモリアクセスでメモリセルアレイから読み出される有効データの数である。
また、「境界前」は、開始アドレスの下位4ビットが「0」から「7」の場合には「2nd」のメモリアクセス(最初の16境界前の2回目のメモリアクセス)でメモリセルアレイから読み出される有効データの数であり、下位4ビットが「8」から「F(15)」の場合には「1st」のメモリアクセス(最初の16境界前の1回目のメモリアクセス)でメモリセルアレイから読み出される有効データの数ということになる。
waitに続く数字はファーストレイテンシのクロックサイクル数であり、例えば「wait8」はファーストレイテンシのクロックサイクル数が8であることを示している。
図10に示されると通り、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「E(14)」の場合(図7)、16ワード境界ウェイトサイクル数は「3」である。また、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「6」の場合(図8)、16ワード境界ウェイトサイクル数は「3」である。さらに、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「8」の場合(図9)、16ワード境界ウェイトサイクル数は「0」である。
特開2001−176277号公報
上記において、基本的動作を説明した従来のフラッシュメモリにおいてサスペンドが発生した場合の動作について図11を参照しつつ説明する。図11は、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「C(12)」の場合における、従来例の各回路の動作のタイミングチャートを示している。ただし、サスペンドが発生していない期間は上述した動作と同様であることから、ここでは、サスペンド期間の動作について説明する。
時刻t4221において、アウトプットイネーブル信号OEBの立ち上がると(「L」レベルから「H」レベルに遷移する)と(サスペンドの発生)、これに同期して、入力バッファ1はクロックイネーブル信号CLKENを立ち下げ(「H」レベルから「L」レベルに遷移させる)、これにより、クロックイネーブル信号CLKENが入力される各回路部の動作が停止する。
また、ウェイト信号生成部44は、クロックイネーブル信号CLKENの立ち下がりに同期して、ウェイト信号WAITを立ち上げる。
時刻t4009、t4010において、データカウンタ35は、「L」レベルのクロックイネーブル信号CLKENが入力されているので、入力される内部クロックの立ち上がりに同期した計数値を「1」デクリメントする処理を行わず、計数値は「2」のままである。
また、16W境界カウンタ36は、「L」レベルのクロックイネーブル信号CLKENが入力されているので、入力される内部クロックの立ち上がりに同期した計数値を「1」デクリメントする処理を行わず、計数値は「4」のままである。
また、ページコントロール信号生成部43は、「L」レベルのクロックイネーブル信号CLKENが入力されているので、入力される内部クロックの立ち上がりに同期したページコントロール信号を「1」インクリメントする動作を行わず、ページコントロール信号PCは「P6」のままである。
時刻t4222において、アウトプットイネーブル信号OEBが立ち下がる(「H」レベルから「L」レベルに遷移する)と、時刻t4010において、入力バッファ1は次の内部クロックCLKの立ち上がりに同期して、クロックイネーブル信号CLKENを立ち上げ(「L」レベルから「H」レベルに遷移させる)、これにより、クロックイネーブル信号CLKENが入力される各回路部の動作が開始する。
また、ウェイト信号生成部44は、クロックイネーブル信号CLKENの立ち上がりに同期して、ウェイト信号WAITを立ち下げる。
時刻t4011において、データカウンタ35は、「H」レベルのクロックイネーブル信号CLKENが入力されるので、入力される内部クロックの立ち上がりに同期して計数値を「1」デクリメントし、計数値が「1」になる。
また、16W境界カウンタ36は、「H」レベルのクロックイネーブル信号CLKENが入力されるので、入力される内部クロックの立ち上がりに同期して計数値を「1」デクリメントし、計数値が「3」になる。
また、ページコントロール信号生成部43は、「H」レベルのクロックイネーブル信号CLKENが入力されるので、入力される内部クロックの立ち上がりに同期してページコントロール信号を「1」インクリメントし、ページコントロール信号PCは「P7」を出力する。
従来のフラッシュメモリにおいては、上述したように、サスペンドが発生してアウトプットイネーブル信号OEBが「L」レベルから「H」レベルに遷移すると、そのアウトプットイネーブル信号OEBが「L」レベルから「H」レベルに遷移するタイミングに同期させて(内部クロックCLKとは非同期)、クロックイネーブル信号CLKENを「H」レベルから「L」レベルに遷移させていた。
クロックイネーブルCLKENの立ち下がり(「H」レベルから「L」レベルへの遷移)が内部クロックCLKとは非同期であることから、例えば、サスペンドの発生タイミング(アウトプットイネーブル信号OEBが「L」レベルから「H」レベルへの遷移)が内部クロックCLKの立ち上がりの直前に起った場合、各回路部へのディレイのために、クロックイネーブル信号CLKENが「L」レベルになった直後の内部クロックCLKの立ち上がりエッジが無効であるにもかかわらず有効になって各回路部の動作が行われしまう(誤動作)。
そこで、本発明は、サスペンド発生直後の誤動作を防止することが可能な半導体メモリを提供することを目的とする。
本発明の半導体メモリは、外部から入力される先頭アドレスに基づき、マトリクス状に配置されたメモリ素子から読み出したメモリデータを外部クロックに同期させて連続して外部に出力するバースト読み出しの機能を有する半導体メモリであって、内部クロックに同期してクロックイネーブル信号をディセーブルにすることを特徴とする。
上記半導体メモリにおいて、アウトプットイネーブル信号が変化した後の最初の内部クロックに同期してクロックイネーブル信号をディセーブルにすることを特徴とする。
上記半導体メモリにおいて、前記メモリ素子をM×N(M、Nは整数)本の読み出し線毎に分割したブロックと、前記ブロック毎に読み出し線に接続されたメモリ素子のメモリデータを読み出すN個のセンスアンプと、前記N個のセンスアンプ各々に対して、M×N本の読み出し線における何れのN本を接続するかの切り替えを行う切替スイッチと、前記センスアンプにより、前記読み出し線から読み出されたメモリデータをラッチするセンスデータラッチと、複数のページラッチ部に分割され、各ページラッチ部単位でメモリデータの書込処理を行うページラッチと、前記ページラッチが出力するメモリデータを選択するページセレクタと、前記ページセレクタにより選択されたメモリデータを保持して出力する出力ラッチと、前記出力ラッチが出力するメモリデータを保持するバッファ回路と、を備えたことを特徴とする。
上記半導体メモリにおいて、入力されるクロックイネーブル信号がイネーブルであるときに前記メモリセル素子から読み出されるメモリデータを外部に出力するのに要する時間に対応したクロックサイクル数を計数するデータ計数手段と、メモリアクセスに必要なアクセス時間に対応したクロックサイクル数を計数するタイム計数手段と、をさらに有することを特徴とする。
本発明によれば、内部クロックに同期してクロックイネーブル信号をディセーブルにする(例えば、「H」レベルから「L」レベルに遷移する)ので、サスペンドが発生しても従来のフラッシュメモリのように内部クロックの無効なエッジを有効なエッジとして動作すること(誤動作)を防止することができる。
以下、本発明の実施の形態のフラッシュメモリについて図面を参照しつつ説明する。
図12は本実施の形態のフラッシュメモリの構成を示す図である。
図12に示すフラッシュメモリには、入力バッファ1Aがある。
入力バッファ1Aは、従来の入力バッファ1と異なり、図13に一例が示される通り、アウトプットイネーブル信号OEBの立ち上がった(時刻t11)後の最初の内部クロックCLKの立ち上がりに同期させて、クロックイネーブル信号CLKENを立ち下げる(時刻t11)。そして、入力バッファ1Aは、アウトプットイネーブル信号OEBの立ち下がった(時刻t13)後の最初の内部クロックCLKの立ち上がりに同期してクロックイネーブル信号CLKENを立ち上げる(時刻t14)。入力バッファ1Aは、このようにして生成したクロックイネーブル信号CLKENを出力する。なお、それ以外の機能は従来の入力バッファ1と実質的に同様であり、上記の従来例の説明が適用できるため、説明を省略する。
フラッシュメモリには、アドレスラッチ2、およびアドレス制御部4があり、上記の従来例の説明が適用できるため、説明を省略する。
フラッシュメモリには、バースト制御部3Aがある。バースト制御部3Aは、アドレスラッチ2から入力されるラッチアドレスLADを先頭アドレス(スタートアドレス、開始アドレス)とし、先頭アドレス(A0〜A22)の上位ビット(8ワード単位の読み出しを対象とする場合はA3〜A22)をバーストアドレスBADとして出力する。続いて、バーストアドレスBADを、後述する通り、所定の計数タイミングにて内部クロックCLKに同期して「1」インクリメントして新たなバーストアドレスBADとして出力する。また、バースト制御部3Aは、このバーストアドレスBADの変化を検出して後述する検出信号DTを出力する。
また、バースト制御部3Aは、後述する通り、内部クロックCLKに同期して、ページラッチ信号PL0〜PL3、ページコントロール信号PC、アウトプットコントロール信号OPC、およびウェイト信号WAITを生成して出力し、さらに、初期時に設定されたアクセスのモード(ランダム/非同期)に応じて同期/非同期セレクト信号SELを生成して出力する。
フラッシュメモリには、上述した従来のフラッシュメモリと同様のデコーダ5、メモリセルアレイ6、センスアンプ7、ATD回路8があり、上記の従来例の説明が適用できるため、説明を省略する。
メモリセルアレイ6は、従来例において記載した通り、複数のメモリセル(メモリ素子)がマトリクス状に配置されて形成されている。メモリセル(メモリ素子)はM×N(M、Nは整数であり、本実施の形態においては、Mは2、Nは8である)本の読み出し線毎にブロックに分割されており、このブロックをまたいで一度にメモリアクセスすることができない。
センスアンプ7は、従来例において記載した通り、8個のセンスアンプ7−0〜7−7からなる(図4参照)。そして、図4を参照して説明した通り、スイッチ機構100により、センスアンプ7−0〜7−7の各々に対しM×N本の読み出し線のいずれかのN本の読み出し線に接続するかの切り替えが行われる。
フラッシュメモリには、センスデータラッチ9Aがある。センスデータラッチ9Aは、内部クロックCLKと非同期のセンスアンプコントロール信号SCの「H」レベルの期間において、入力されるメモリデータをそのまま通過させて出力し、「L」レベルに遷移すると、そのセンスアンプコントロール信号SCの「L」レベルとなった時点において入力されていたメモリデータをラッチ(保持)して、センスラッチデータSLD(SLD01、SLD23、SLD45、SLD67)として出力する。なお、センスラッチデータSLD01〜SLD67は、夫々、2ページ分のワードデータであり、センスラッチデータSLD01は、センスアンプ7−0により読み出されたメモリデータからなるワードデータWD0、センスアンプ7−1により読み出されたメモリデータからなるワードデータWD1に対応し、センスラッチデータSLD23は、センスアンプ7−2により読み出されたメモリデータからなるワードデータWD2、センスアンプ7−3により読み出されたメモリデータからなるワードデータWD3に対応する。また、センスラッチデータSLD45は、センスアンプ7−4により読み出されたメモリデータからなるワードデータWD4、センスアンプ7−5により読み出されたメモリデータからなるワードデータWD5に対応し、センスラッチデータSLD67は、センスアンプ7−6により読み出されたメモリデータからなるワードデータWD6、センスアンプ7−7により読み出されたメモリデータからなるワードデータWD7に対応する。
フラッシュメモリには、ページラッチ10Aがある。ページラッチ10Aは、互いに独立して(個別に)イネーブル状態(書込処理)が可能な4つのページラッチ部10−0〜10−3に分割して構成されている。ページラッチ部10−0〜10−3は、後述するページラッチ信号PL0〜PL3により、個別に、センスラッチデータSLD01〜SLD67を保持する。例えば、ページラッチ信号PL3のみを「H」レベルにすることによってページラッチ部10−3のみイネーブル状態になり、ページラッチ部10−3は保持するデータの書き換えが行われ、ページラッチ部10−0〜10−2はそのまま同じデータを保持し続けることになる。
フラッシュメモリには、ページセレクタ11Aがある。ページセレクタ11Aは、ページコントロール信号PCにより、ページラッチ10A(ページラッチ部10−0〜10−3)から出力されている複数のワードデータ(複数のメモリデータからなる)を順次選択して、ページデータPDとして、出力ラッチ12およびセレクタ13の夫々へ出力する。
例えば、ページセレクタ11Aは、ページコントロール信号PCが「P0」の場合、センスラッチデータSLD01の下位15ビット(ワードデータWD0に相当)をページデータPDとして出力する。また、ページセレクタ11Aは、ページコントロール信号PCが「P6」の場合、センスラッチデータSLD56の上位15ビット(ワードデータWD6に相当)をページデータPDとして出力する。
フラッシュメモリには、上述した従来のフラッシュメモリと同様の動作を行うセレクタ13、データ出力制御部14、およびレディ出力制御部15があり、上記の従来例の説明が適用できるため、説明を省略する。
フラッシュメモリには、出力ラッチ12Aと出力バッファラッチ12Bとがある。
出力ラッチ12Aは内部クロックCLKの立ち上がりに同期して動作する。出力ラッチ12Aは、クロックイネーブル信号CLKENが立ち下がるまでの内部クロックの立ち上がりにおいて、ページセレクタ11Aの出力をラッチする。出力ラッチ12Aは、クロックイネーブル信号CLKENが立ち下がって最初に入力される内部クロックの立ち上がりにおいて、出力バッファラッチ12Bの出力をラッチする。そして、出力ラッチ12Aは、クロックイネーブル信号CLKENが立ち上がってから最初に入力される内部クロックの立ち上がりにおいて、出力バッファラッチ12Bの出力をラッチする。それ以降、出力ラッチ12Aは、内部クロックの立ち上がりにおいて、ページセレクタ11Aの出力をラッチする。
出力バッファラッチ12Bは内部クロックCLKの立ち上がりに同期して動作する。出力バッファラッチ12Bは、クロックイネーブル信号CLKENが立ち下がるまでの内部クロックの立ち上がりにおいて、出力ラッチ12Aの出力をラッチする。出力バッファラッチ12Bは、クロックイネーブル信号CLKENが立ち下がって最初に入力される内部クロックの立ち上がりにおいて、出力ラッチ12Aの出力をラッチする。そして、出力バッファラッチ12Bは、クロックイネーブル信号CLKENが立ち上がってから入力される2つ目の内部クロックの立ち上がりにおいて、ページセレクタ11Aの出力をラッチする。それ以降、出力バッファラッチ12Bは、内部クロックの立ち上がりにおいて、出力ラッチ12Aの出力をラッチする。
この出力バッファ12Bを設けることによって、アウトプットイネーブル信号OEBが「H」レベルとなった次の内部クロックCLKの立ち上がりでバースト制御部3Aの各回路部などが動作して、有効データが失われることがなくなる。
次に、図12におけるバースト制御部3Aの詳細について図14を参照しつつ説明する。図14はバースト制御部3Aの構成例を示すブロック図である。
バースト制御部3Aには、ファーストレイテンシレジスタ31Aがあり、ファーストレイテンシレジスタ31Aは、外部から入力されるファーストレイテンシのウェイトサイクル数から「1」減算した値(ウェイト計数初期値)を記憶するレジスタである。このファーストレイテンシレジスタ31Aへの書き込みはバースト読み出しなどが実際に行われるよりも前のタイミングで、不図示の制御回路により行われる。
バースト制御部3Aには、有効データレジスタ32Aがあり、有効データレジスタ32Aは有効データ数から「1」減算した値(データ計数初期値)を記憶する。有効データ数は、最初の16ワード境界においては最初の16ワード境界前の出力すべき有効なデータの数、それ以外においては1回のメモリアクセスにおいてメモリセルアレイ6からセンスしたデータのうちバースト出力すべき有効なデータの数である。
バースト制御部3Aには、アドレスカウンタ33Aがある。アドレスカウンタ33Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり、以外の内部クロックCLKの立ち上がりに同期して「1」デクリメントする動作を行う。また、データカウンタ35Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がりに同期した「1」デクリメントする動作を行わない。なお、以下において、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり、以外の内部クロックCLKの立ち上がりが入力される期間を動作期間とよぶ。また、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がりが入力される期間を停止期間とよぶ。
アドレスカウンタ33Aは、動作期間の場合に、アドレスラッチ信号ALATの立ち下がりに同期して、アドレスラッチ2から入力されるラッチアドレスLAD(22ビット)の下位3ビットを除いた、「3〜22ビット」が示す上位アドレスをスタートのバーストアドレスBADとして出力する。アドレスカウンタ33Aは、後述するファーストレイテンシカウンタ34Aの計数値が「1」であって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期してバーストアドレスBADを「1」インクリメントして次にメモリアクセスするバーストアドレスBADとして出力する。また、アドレスカウンタ33Aは、データカウンタ35Aの計数値が「8」で16W境界カウンタ36Aの計数値が「1」および「0」のいずかであって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、また、データカウンタ35Aの計数値が「8」で16W境界カウンタ36Aの計数値が「2」以上であれば16W境界カウンタ36Aの計数値のデクリメント処理が行われて「1」となって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、バーストアドレスBADを「1」インクリメントして次にメモリアクセスするバーストアドレスBADとして出力する。さらに、アドレスカウンタ33Aは、データカウンタ35Aの計数値が「0」で16W境界カウンタ36の計数値が「1」および「0」のいずかであって、クロックイネーブル信号CLKENが「H」レベルの場合入力される内部クロックCLKの立ち上がりに同期してバーストアドレスBADを「1」インクリメントして、「1」インクリメントした値を次にメモリアクセスすべきバーストアドレスBADとして出力する。
バースト制御部3Aには、ファーストレイテンシカウンタ34Aがある。ファーストレイテンシカウンタ34Aは、ファーストレイテンシのクロックサイクル数を計数するために利用されるものであり、バースト読み出しの開始時の最初のメモリアクセスのアクセス時間に対応したクロックサイクル数を計数するためにも利用される。従来例のファーストレイテンシカウンタ34がクロックイネーブル信号CLKENが「H」レベルの期間でのみ動作を行うのに対して、本実施の形態のファーストレイテンシカウンタ34Aは、クロックイネーブル信号CLKENが「H」レベルであると「L」レベルとにかかわらず動作を行う。つまり、ファーストレイテンシカウンタ34Aはサスペンド期間中であってもメモリアクセスのアクセス時間に対応したクロックサイクル数を計数していることになる。ファーストレイテンシカウンタ34Aにはファーストレイテンシレジスタ31Aに記憶されているウェイト計数初期値が計数の初期値として書き込まれる。ファーストレイテンシカウンタ34Aは、内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントする。
バースト制御部3Aには、データカウンタ35Aがある。データカウンタ35Aは最初の16ワード境界前においては最初の16ワード境界までの有効データのうちのまだバースト出力されていない有効データの数を計数するものである。また、データカウンタ35Aは最初の16ワード境界前以外においては1回のメモリアクセスで読み出される有効データのうちのまだバースト出力されていない有効データの数を計数するものである。データカウンタ35Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり、以外の内部クロックCLKの立ち上がりに同期して「1」デクリメントする動作を行う。また、データカウンタ35Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がりに同期した「1」デクリメントする動作を行わない。データカウンタ35Aには有効データレジスタ32Aに記憶されているデータ計数初期値が計数の初期値として書き込まれる。このデータカウンタ35Aは、従来例において説明したデータカウンタ35が「3」ビットで構成されているのに対して「4」ビットにより構成されており、最大「15」計数できるようになっている。
バースト制御部3Aには、16W境界カウンタ36Aがある。16W境界カウンタ36Aは16ワード境界の境界前ウェイトを計数するために利用されるものであり、メモリアクセスのアクセス時間に対応したクロックサイクル数を計数するためにも利用される。従来例の16W境界カウンタ36がクロックイネーブル信号CLKENが「H」レベルの期間でのみ動作を行うのに対して、本実施の形態の16W境界カウンタ36Aは、クロックイネーブル信号CLKENが「H」レベルであると「L」レベルとにかかわらず動作を行う。つまり、16W境界カウンタ36Aはサスペンド期間中であってもメモリアクセスのアクセス時間に対応したクロックサイクル数を計数していることになる。16W境界カウンタ36Aにはファーストレイテンシレジスタ31Aに記憶されているウェイト計数初期値が計数の初期値として書き込まれる。16W境界カウンタ36Aは、内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントする。
バースト制御部3Aには、レイテンシカウンタ書込部37Aがある。レイテンシカウンタ書込部37Aは、クロックイネーブル信号CLKENが「H」レベルの期間で動作を行い、クロックイネーブル信号CLKENが「L」レベルの期間で動作を停止する。レイテンシカウンタ書込部37Aは、クロックイネーブル信号CLKENが「H」レベルの時に、アドレスラッチ信号ALATの立ち下がりに同期して、ファーストレイテンシレジスタ31Aに記憶されているウェイト計数初期値を読み込み、読み込んだウェイト計数初期値をファーストレイテンシカウンタ34Aに対して計数の初期値として書き込む。
バースト制御部3Aには、有効データレジスタ書込部38Aがある。有効データレジスタ書込部38Aは、バースト読み出し開始時に、或いは、後述するデータカウンタ書込部39Aが有効データレジスタ32Aからデータ計数初期値を読み込んだ時に、データ計数初期値の算出を開始し、算出が完了した時点で算出したデータ計数初期値を有効データレジスタ32Aに書き込む。有効データレジスタ書込部38Aは、バースト読み出しの開始時の最初のメモリアクセスにおいては最初の16ワード境界までの有効データの数(図19の「境界前」に示される値)から「1」減算した値(データ計数初期値)を算出し、算出結果を有効データレジスタ32Aに書き込む。有効データレジスタ書込部38Aは、最初の16ワード境界を越えた後のメモリアクセスにおいては1回のメモリアクセスでメモリセルアレイ6から読み出される有効データの数(固定値「8」)から「1」減算した値(データ計数初期値)を算出し、算出結果を有効データレジスタ32Aに書き込む。
つまり、有効データレジスタ書込部38Aは、開始アドレスの下位4ビットを夫々反転して、その結果をデータ計数値とする。例えば、開始アドレスの下位4ビットが「6」(0(最上位ビット)、1(3ビット目)、1(2ビット目)、0(最下位ビット))のとき、これを反転して「1001」(9)を求め、求めた「9」をデータ計数初期値として有効データレジスタ32Aに書き込む。
それ以降、有効データレジスタ書込部38Aは、固定値「7」をデータ計数初期値とし、有効データレジスタ32Aに書き込む。
バースト制御部3Aには、データカウンタ書込部39Aがある。データカウンタ書込部39Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり、以外の内部クロックCLKの立ち上がりに同期して「1」デクリメントする動作を行う。また、データカウンタ書込39Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がりに同期した「1」デクリメントする動作を行わない。
データカウンタ書込部39Aは、ファーストレイテンシカウンタ34Aの計数値が「1」であって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32Aに記憶されているデータ計数初期値を読み込み、読み込んだデータ計数初期値をデータカウンタ35Aに対して計数の初期値として書き込む。
データカウンタ書込部39Aは、データカウンタ35Aの計数値が「0」で16W境界カウンタ36Aの計数値が「1」および「0」の何れかであって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32Aに記憶されているデータ計数初期値を読み込み、読み込んだデータ計数初期値をデータカウンタ35Aに対して計数の初期値として書き込む。
バースト制御部3Aには、境界カウンタ書込部40Aがある。境界カウンタ書込部40Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり、以外の内部クロックCLKの立ち上がりに同期して「1」デクリメントする動作を行う。また、境界カウンタ書込部40Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がりに同期した「1」デクリメントする動作を行わない。
境界カウンタ書込部40Aは、ファーストレイテンシカウンタ34Aの計数値が「1」であって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ36Aに記憶されているウェイト計数初期値を読み込み、読み込んだウェイト計数初期値を16W境界カウンタ36Aに対して計数の初期値として書き込む。
境界カウンタ書込部40Aは、データカウンタ35Aの計数値が「8」で16W境界カウンタ36Aの計数値が「1」および「0」のいずかであって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、また、データカウンタの計数値が「8」であるときに16W境界カウンタ36の計数値が「2」以上であれば16W境界カウンタ36Aの計数値のデクリメント処理が行われて計数値が「1」となって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ31Aに記憶されているウェイト計数初期値を読み込み、読み込んだウェイト計数初期値を16W境界カウンタ36Aに対して計数の初期値として書き込む。
バースト制御部3Aには、アドレス変化検出部41Aがある。アドレス変化検出部41Aは、バーストアドレスBADの変化を検出して、ワンショットのパルスを生成して、検出信号DTとして出力する。検出信号DTは、ATD回路8により所定時間(メモリのアクセス時間)遅延させられ、センスアンプコントロール信号SCとしてセンスデータラッチ9Aに供給される。
バースト制御部3Aには、ページラッチ信号生成部42Aがある。ページラッチ信号生成部42Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり、以外の内部クロックCLKの立ち上がりに同期して動作を行う。また、ページラッチ信号生成部42Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がりに同期した「1」デクリメントする動作を行わない。 ページラッチ信号生成部42Aは、バーストアドレスの開始時に、最初のメモリアクセスによりメモリセルアレイ6から読み出されてセンスデータラッチ9Aから出力されているワードデータをページラッチ部10−0〜10−3から出力するために、ページラッチ信号PL0〜PL3の全てを「H」レベルにしてページラッチ10A(ページラッチ部10−0〜10−3)をスルー状態にし、メモリアクセスが完了してメモリセルアレイ6から読み出されたワードデータがセンスデータラッチ9Aから出力されるようになった後であって、次のメモリアクセスでメモリセルアレイ6から読み出されたワードデータがセンスデータラッチ9から出力されるようになる前に、ページラッチ信号PL0〜PL3の全てを「L」レベルにしてセンスデータラッチ9が出力しているワードデータをラッチ(保持)する。
本実施の形態においては、ページラッチ信号生成部42Aは、動作期間の場合に、アドレスラッチ信号ALATの立ち下がりに同期して、ページラッチ信号PL0〜PL3を全て「H」レベルに立ち上げる。このページラッチ信号PL0〜PL3の立ち上げに対して、ページラッチ信号生成部42Aは、ファーストレイテンシカウンタ34の計数値のデクリメント処理が行われて「1」となって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PL0〜PL3を全て「L」レベルに立ち下げる(「H」レベルから「L」レベルにする)。
上述したように、ページラッチ10Aは互いに独立してイネーブル状態になる、2ワード単位でラッチを行う4つのページラッチ部10−0〜10−3から構成されているため、ページラッチ10Aは8ワードデータをラッチすることができる。スタートアドレスの下位4ビットが「0」と「1」、「2」と「3」、「4」と「5」、「6」と「7」の夫々は、最初の16ワード境界前の2回目のメモリアクセスの有効データの数が「8」、「6」、「4」、「2」である。このため、スタートアドレスの下位4ビットが「2」〜「8」の場合、最初の16ワード境界前の1回目のメモリアクセスでメモリセルアレイ6から読み出されページラッチ10Aに保持されている有効データのバースト出力中であっても、下位4ビットが「2」、「3」の場合にはページラッチ部10−1〜10−3に保持されている有効データがバースト出力されて保持しておく必要がなくなった場合に、ページラッチ部10−1〜10−3をスルー状態にして、最初の16ワード境界前の2回目のメモリアクセスで読み出されてセンスデータラッチ9Aから出力されている有効データ(SLD23〜SLD67)に書き換えても有効データが損なわれることがない。また、下位4ビットが「4」、「5」の場合にはページラッチ部10−2〜10−3に保持されている有効データがバースト出力されて保持しておく必要がなくなった場合に、ページラッチ部10−2〜10−3をスルー状態にして、最初の16ワード境界前の2回目のメモリアクセスで読み出されてセンスデータラッチ9Aから出力されている有効データ(SLD45〜SLD67)に書き換えても有効データが損なわれることがない。さらに、下位4ビットが「6」、「7」の場合にはページラッチ部10−3に保持されている有効データがバースト出力されて保持しておく必要がなくなった場合に、ページラッチ部10−3をスルー状態にして、最初の16ワード境界前の2回目のメモリアクセスで読み出されてセンスデータラッチ9Aから出力されている有効データ(SLD67)に書き換えても有効データが損なわれることがない。ただし、下位4ビットが「0」、「1」の場合にも、ページラッチ部10−0〜10−3に保持されている有効データがバースト出力されて保持しておく必要がなくなった場合に、ページラッチ部10−0〜10−3をスルー状態にして、最初の16ワード境界前の2回目のメモリアクセスで読み出されてセンスデータラッチ9Aから出力されている有効データ(SLD01〜SLD67)に書き換えても有効データが損なわれることがない。
したがって、ページラッチ信号生成部42Aは、最初の16ワード境界前の1回目のメモリアクセスでメモリセルアレイ6から読み出された有効データのバースト出力中に(下位4ビットが「0」、「1」の場合にはバースト出力が終了した後に)、最初の16ワード境界前の2回目のメモリアクセスによりメモリセルアレイ6から読み出されてセンスデータラッチ9Aから出力されているワードデータをページラッチ部10−0〜10−3に書き込むために、センスデータラッチ9Aから出力されている有効データが書き込まれることになるページラッチ部(該当ページラッチ部)で保持されている有効データの全てがページセレクタ11に選択された後に該当ページラッチ部に入力されるページラッチ信号を「H」レベルにして該当ページラッチ部をスルー状態にする。その後に、該当ページラッチ部で保持されている有効データの全てがページセレクタ11により選択された後でかつ最初の16ワード境界前の2回目のメモリアクセスが完了してメモリセルアレイ6から読み出されたワードデータがセンスデータラッチ9Aから出力されるようになった後であって、最初の16ワード境界前の2回目のメモリアクセスの次のメモリアクセスでメモリセルアレイ6から読み出されたワードデータがセンスデータラッチ9から出力されるようになる前に「H」レベルにしたページラッチ信号を「L」レベルにしてセンスデータラッチ9Aが出力しているワードデータをラッチ(保持)する。
本実施の形態においては、ページラッチ信号生成部42Aは、データカウンタ35Aの計数値が「8」であるときに16W境界カウンタ36Aの計数値が「2」以上であれば、ページラッチ立ち上げ信号を「1」にし、16W境界カウンタ36の計数値のデクリメント処理が行われて「2」となって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ワードデータの書き換えを行うページラッチ部に入力するページラッチ信号を立ち上げる。このページラッチ信号の立ち上げに対して、ページラッチ信号生成部42Aは、16W境界カウンタ36の計数値のデクリメント処理が行われて「1」となって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して立ち上げたページラッチ信号を立ち下げる。
また、ページラッチ信号生成部42Aは、16W境界カウンタ36Aの計数値が「0」および「1」の何れかでデータカウンタ35Aの計数値が「9」であって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ワードデータの書き込みを行うページラッチ部に入力するページラッチ信号を立ち上げる。このページラッチ信号の立ち上げに対して、ページラッチ信号生成部42Aは、データカウンタ35Aの計数値のデクリメント処理が行われて「8」となって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期してページラッチ信号PL0〜PL3を立ち下げる。
また、最初の16ワード境界を越えた後のメモリアクセスでは、1回のメモリアクセスでメモリセルアレイ6から読み出される有効データの数が固定値の「8」であり、ページラッチ10Aで保持することができる最大数であるので、ページラッチ10Aのページラッチ部10−0〜10−3の一部のみの書き換えを行わずに、ページラッチ部10−0〜10−3の書き換えを同じタイミングで行う。
ページラッチ信号生成部42Aは、現在ページラッチ10Aから出力されている有効データの全てがページセレクタ11により選択されて、現在ページラッチ10Aから出力されている有効データをメモリセルアレイ6から読み出したメモリアクセス(第1対象メモリアクセスという)の次のメモリアクセス(第2対象メモリアクセスという)によりメモリセルアレイ6から読み出されてセンスデータラッチ9Aから出力されているワードデータをページラッチ部10−0〜10−3に書き込むために、現在ページラッチ10Aで保持されている有効データの全てがページセレクタ11に選択された後にページラッチ信号PL0〜PL3の全てを「H」レベルにしてページラッチ部10−0〜10−3の全てをスルー状態にする。その後に、現在ページラッチ10Aで保持されている有効データの全てがページセレクタ11に選択された後でかつ第2対象メモリアクセスが完了してメモリセルアレイ6から読み出されたワードデータがセンスデータラッチ9Aから出力されるようになった後であって、第2対象メモリアクセスの次のメモリアクセスでメモリセルアレイ6から読み出されたワードデータがセンスデータラッチ9から出力されるようになる前に「H」レベルにしたページラッチ信号PL0〜PL3の全てを「L」レベルにしてセンスデータラッチ9Aが出力しているワードデータをラッチ(保持)する。
本実施の形態においては、ページラッチ信号生成部42Aは、データカウンタ35Aの計数値が「0」または「1」の何れかで16W境界カウンタ36Aの計数値が「2」であって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期してページラッチ信号PL0〜PL3の全てを立ち上げる。このページラッチ信号PL0〜PL3の立ち上げに対して、ページラッチ信号生成部42Aは、16W境界カウンタ36の計数値のデクリメント処理が行われて「1」となって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期してページラッチ信号PL0〜PL3の全てを立ち下げる。
または、ページラッチ信号生成部42Aは、16W境界カウンタ36Aの計数値が「0」および「1」の何れかでデータカウンタ35Aの計数値が「1」であって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期してページラッチ信号PL0〜PL3の全てを立ち上げる。このページラッチ信号PL0〜PL3の立ち上げに対して、ページラッチ信号生成部42Aは、データカウンタ35Aの計数値のデクリメント処理が行われて「0」となって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期してページラッチ信号PL0〜PL3の全てを立ち下げる。
ここで、ページラッチ信号生成部42Aがデータカウンタ35Aの計数値「8」に関係して立ち上げ、立ち下げるページラッチ信号PL0〜PL3について示す。
開始アドレスの下位4ビットが「0000」、「0001」である場合、ページラッチ信号生成部42Aは、全てのページラッチ信号PL0〜PL3の立ち上げ、立ち下げを行う。
開始アドレスの下位4ビットが「0010」、「0011」である場合、ページラッチ信号生成部42Aは、ページラッチ信号PL1〜PL3の立ち上げ、立ち下げを行うが、ページラッチ信号PL0の立ち上げ、立ち下げを行わない。
開始アドレスの下位4ビットが「0100」、「0101」である場合、ページラッチ信号生成部42Aは、ページラッチ信号PL2〜PL3の立ち上げ、立ち下げを行うが、ページラッチ信号PL0〜PL1の立ち上げ、立ち下げを行わない。
開始アドレスの下位4ビットが「0110」、「0111」である場合、ページラッチ信号生成部42Aは、ページラッチ信号PL3の立ち上げ、立ち下げを行うが、ページラッチ信号PL0〜PL2の立ち上げ、立ち下げを行わない。
バースト制御部3Aには、ページコントロール信号生成部43Aがある。ページコントロール信号生成部43Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり、以外の内部クロックCLKの立ち上がりに同期して「1」デクリメントする動作を行う。また、ページコントロール信号生成部43Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がりに同期した「1」デクリメントする動作を行わない。
ページコントロール信号生成部43Aは、クロックイネーブル信号CLKENが「H」レベルの時に、アドレスラッチ信号ALATの立ち下がりに同期して、開始アドレスの下位3ビットをページコントロール信号PCの初期値として読み込む。そして、ページコントロール信号生成部43Aは、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期してページコントロール信号PCを「1」インクリメントし、インクリメント後の値を新たなページコントロール信号PCとして出力する。
ページコントロール信号生成部43Aは、初期値を読み込んだ後に動作を停止し(動作期間にかかわらず)、ファーストレイテンシカウンタ34Aの計数値が「1」になると動作を開始する。また、ページコントロール信号生成部43Aは、データカウンタ35の計数値が「1」のときに16W境界カウンタ36Aの計数値が「3」以上であれば動作を停止し(動作期間にかかわらず)、その後に16W境界カウンタ36Aの計数値が「2」になると動作を開始する。
バースト制御部3には、ウェイト信号生成部44がある。ウェイト信号生成部44Aは、内部クロックCLKと同期して動作を行う場合、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり、以外の内部クロックCLKの立ち上がりに同期して「1」デクリメントする動作を行う。また、ウェイト信号生成部44Aは、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がりに同期した「1」デクリメントする動作を行わない。
ウェイト信号生成部44Aは、クロックイネーブル信号CLKENが「H」レベルの時に、アドレスラッチ信号ALATの立ち下がりに同期して、ウェイト信号WAITを立ち上げる。このウェイト信号WAITの立ち上げに対して、ウェイト信号生成部44Aは、ファーストレイテンシカウンタ34Aの計数値が「1」になって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期してウェイト信号WAITを立ち下げる。
また、ウェイト信号生成部44Aは、データカウンタ35Aの計数値が「0」で16W境界カウンタ36Aの計数値が「2」以上であって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ウェイト信号WAITを立ち上げる。このウェイト信号WAITの立ち上げに対して、16W境界カウンタ36Aの計数値のデクリメント処理が行われて「1」となって、動作期間の場合に入力される内部クロックCLKの立ち上がりに同期してウェイト信号WAITを立ち下げる。
さらに、ウェイト信号生成部44Aは、クロックイネーブル信号CLKENの立ち下がりに同期してウェイト信号WAITを立ち上げ、その後、クロックイネーブル信号CLKENの立ち上がりに同期してウェイト信号WAITを立ち下げる。
バースト制御部3Aは、図示しない、同期/非同期セレクト信号SEL、およびアウトプットコントロール信号OPCの生成を行う。また、バースト制御部3Aは、アドレスラッチ信号ALATの立ち下がりに同期して、16W境界信号を「L」レベルから「H」レベルに立ち上げ、データカウンタ35Aの計数値のデクリメント処理が行われて「1」となった場合に入力される内部クロックCLKの立ち上がりに同期して、16W境界信号を「H」レベルから「L」レベルに立ち下げる。
以下、上述した本実施の形態のフラッシュメモリのバースト読み出しの動作について図面を参照しつつ説明する。
図15は、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「E(14)」の場合における、本実施の形態の各回路の動作のタイミングチャートを示している。
時刻t101において、入力バッファ1がチップイネーブル信号CEB及びアドレスバリッド信号ADVBが「H」レベルから「L」レベルに遷移することにより、アドレスラッチ信号ALATを立ち上げ、立ち上げた後の次の内部クロックCLKの立ち上がりに同期してアドレスラッチ信号ALATを立ち下げる。
時刻t102において、アドレスカウンタ33Aは、クロックイネーブル信号CLKENが「H」レベルの時に、アドレスラッチ2から入力されるラッチアドレスLAD(22ビット)の下位3ビットを除いた、「3〜22ビット」が示す上位アドレスを、計数の初期値として書き込まれ、バーストアドレスBADとして出力する。このバーストアドレスBADに基づき、センスアンプ7によりセンスされてメモリデータMDがセンスデータラッチ9Aに出力される。
このとき、アドレス変化検出部41Aは、アドレスカウンタ33Aの出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(アクセス時間に相当する時間)遅延させられ、時刻t162において、センスアンプコントロール信号SCとしてセンスデータラッチ9Aに入力され、センスデータラッチ9Aは、センスアンプ7から出力されるメモリデータMDをラッチして、「D14」、「D15」をセンスラッチデータSLD(センスラッチデータSLD67)として出力する。
時刻t102において、レイテンシカウンタ書込部37Aは、ファーストレイテンシのクロックサイクルを計数するために、クロックイネーブル信号CLKENが「H」レベルの時に、ファーストレイテンシレジスタ31Aに記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」をファーストレイテンシカウンタ34Aに対して計数の初期値として書き込む。
ページラッチ信号生成部42Aは、上記の動作期間の場合に入力される内部クロックの立ち上がりに同期して、ページラッチ信号PL0〜PL0を立ち上げる(「L」レベルから「H」レベルとする)。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックの立ち上がりに同期して、開始アドレスの下位3ビット「110」をページコントロール信号PCの初期値として読み込み、「P6」をページコントロール信号PCとし、動作を停止する(計数を行わない状態)。
ウェイト信号生成部44Aは、上記の動作期間の場合に入力される内部クロックの立ち上がりに同期して、ウェイト信号WAITを立ち上げる(「L」レベルから「H」レベルとする)。
バースト制御部3Aは、アクセス開始の際の最初の16ワード境界前におけるアクセスであることを示す16ワード境界信号を立ち上げる(「L」レベルから「H」レベルとする)。
時刻t103から時刻106にかけて、ファーストレイテンシカウンタ34Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「5」→「4」→「3」→「2」→「1」)、計数値が「1」になる。
ページコントロール信号生成部43Aは、ファーストレイテンシカウンタ34Aの計数値が「1」になると動作を開始する(計数を行う状態)。
時刻t107において、ファーストレイテンシカウンタ34Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「0」にする。
アドレスカウンタ33Aは、最初のメモリアクセスが完了しているので、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41Aは、アドレスカウンタ33Aの出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t172において、センスアンプコントロール信号SCとしてセンスデータラッチ9Aに入力され、センスデータラッチ9Aは、センスアンプ7から出力されるメモリデータMDをラッチして、「D16」〜「D23」をセンスラッチデータSLD(SLD01〜SLD67)として出力する。
時刻t107において、データカウンタ書込部39Aは、最初の16ワード境界前の有効データの出力に必要なクロックサイクルを計数するために、ファーストレイテンシカウンタ34の計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32Aに記憶されているデータ計数初期値「1」を読み込み、読み込んだデータ計数初期値「1」をデータカウンタ35Aに対して計数の初期値として書き込む。
境界カウンタ書込部40Aは、ファーストレイテンシカウンタ34Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ36Aに記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」を16W境界カウンタ36Aに対して計数の初期値として書き込む。
ページラッチ信号生成部42Aは、ファーストレイテンシカウンタ34の計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t102において立ち上げたページラッチ信号PL0〜PL3を立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ部10−3は、センスデータラッチ9から出力されているセンスラッチデータSLD67をラッチし、「D14」、「D15」をページラッチデータPLD67として出力する。なお、ページラッチ部10−0〜10−2によってラッチされ出力されるページラッチデータPL01〜PL45は無効なデータ(外部にバースト出力する必要がないデータ)である。
出力ラッチ12Aは、ページセレクタ11から出力されているページデータPD(「D14」:下位4ビット「E」に対応したワードデータ)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P6」から「P7」にインクリメントし、「P7」をページコントロール信号PCとして出力する。ページコントロール信号生成部43Aは、データカウンタ35Aの計数値が「1」で16W境界カウンタ36の計数値が「3」以上の「5」であるので動作を停止する(計数を行わない状態)。
これにより、ページセレクタ11は、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P7」)に対応する「D15」を選択して、「D15」をページデータPDとして出力する。
ウェイト信号生成部44Aは、ファーストレイテンシカウンタ34Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t102において立ち上げたウェイト信号WAITを立ち下げる(「H」レベルから「L」レベルとする)。
時刻t108において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「0」にする。また、16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「4」にする。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D14」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されている「D15」のページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
バースト制御部3Aは、データカウンタ35Aの計数値が「1」である場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t102において立ち上げた16ワード境界信号を立ち下げる。これにより、以降、バーストアドレスが「1」インクリメントされるタイミングにおいてもファーストレイテンシレジスタ31Aに記憶されているウェイト計数初期値を新たに16W境界カウンタ36Aに書き込まれることがなくなる。
時刻t109において、ウェイト信号生成部44Aは、データカウンタ35Aの計数値が「0」で16ワード境界カウンタ36Aの計数値が「2」以上の「4」であるので、つまり、有効データの全てを出力してもメモリアクセスが完了していないので、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ウェイト信号WAITを立ち上げる(「L」レベルから「H」レベルにする)。
16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「3」にする。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D15」を、内部クロックCLKの立ち上がりに同期して保持する。
時刻t110において、16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「2」にする。ページコントロール信号生成部43Aは、16W境界カウンタ36Aの計数値が「2」になったので動作を開始する(計数を行う状態)。
時刻t111において、ページラッチ信号生成部42Aは、データカウンタ35Aの計数値が「0」で16W境界カウンタ36Aの計数値が「2」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PL0〜PL3を立ち上げる(「L」レベルから「H」レベルとする)。
16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「1」にする。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKに同期して、ページコントロール信号PCを「P7」から「P0」にインクリメントし、「P0」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLDの中から、ページコントロール信号PC(「P0」)に対応する「D16」を選択して、「D16」をページデータPDとして出力する。
時刻t112において、有効データの出力とメモリアクセスの双方が完了することになるので、アドレスカウンタ33Aは、データカウンタ35Aの計数値が「0」で16W境界カウンタ36Aは計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41Aは、アドレスカウンタ33Aの出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t182においてセンスアンプコントロール信号SCとしてセンスデータラッチ9Aに入力され、センスデータラッチ9Aは、センスアンプ7から出力されるメモリデータMDをラッチして、「D24」〜「D31」をセンスラッチデータSLD(センスラッチデータSLD01〜SLD67)として出力する。
時刻t112において、データカウンタ書込部39Aは、有効データの出力に必要なクロックサイクルを計数するために、データカウンタ35Aの計数値が「0」で16W境界カウンタ36Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32Aに記憶されているデータ計数初期値「7」を読み込み、読み込んだデータ計数初期値「7」をデータカウンタ35Aに対して計数の初期値として書き込む。
ページラッチ信号生成部42Aは、16W境界カウンタ36Aの計数値のデクリメント処理が行われて「1」となって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t111において立ち上げたページラッチ信号PL0〜PL3を立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ部10−0、10−1、10−2、10−3は、夫々、センスデータラッチ9Aから出力されているセンスラッチデータSLD01、SLD23、SLD45、SLD67をラッチし、「D16」および「D17」、「D18」および「D19」、「D20」および「D21」、「D22」および「D23」をページラッチデータPLDとして出力する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D16」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKに同期して、ページコントロール信号PCを「P0」から「P1」にインクリメントし、「P1」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01、PLD23、PLD45、PLD67)の中から、ページコントロール信号PC(「P1」)に対応する「D17」を選択して、「D17」をページデータPDとして出力する。
ウェイト信号生成部44Aは、データカウンタ35Aの計数値が「0」で16W境界カウンタ36Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t109において立ち上げたウェイト信号WAITを立ち下げる(「H」レベルから「L」レベルとする)。
時刻t113〜t119にかけて、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「7」→「6」→「5」→「4」→「3」→「2」→「1」→「0」)、計数値が「0」になる。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されているデータ(「D16」〜「D22」)を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する(「D17」〜「D23」)。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKに同期させ、ページコントロール信号PCをインクリメントし、インクリメント後の値をページコントロール信号PCとして出力する(「P2」〜「P7」、「P0」)。これにより、ページセレクタ11は、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PCに対応するワードデータを選択して、選択したワードデータをページデータPDとして出力する(「D18」〜「D24」)。
時刻t119において、ページラッチ信号生成部42Aは、16W境界カウンタ36の計数値が「0」でデータカウンタ35Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PL0〜PL3を立ち上げる(「L」レベルから「H」レベルとする)。
時刻t120において、アドレスカウンタ33Aは、データカウンタ35Aの計数値が「0」で16W境界カウンタ36の計数値が「0」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。このとき、アドレス変化検出部41Aは、アドレスカウンタ33Aの出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。
時刻t120において、データカウンタ書込部39Aは、有効データの出力に必要なクロックサイクルを計数するために、データカウンタ35Aの計数値が「0」で16W境界カウンタ36の計数値が「0」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32Aに記憶されているデータ計数初期値「7」を読み込み、読み込んだデータ計数初期値「7」をデータカウンタ35Aに対して計数の初期値として書き込む。
ページラッチ信号生成部42Aは、データカウンタ35Aの計数値のデクリメント処理が行われて「0」となって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t119において立ち上げたページラッチ信号PL0〜PL3を立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ部10−0、10−1、10−2、10−3は、夫々、センスデータラッチ9Aから出力されているセンスラッチデータSLD01、SLD23、SLD45、SLD67をラッチし、「D24」および「D25」、「D26」および「D27」、「D28」および「D29」、「D30」および「D31」をページラッチデータPLD01、PLD23、PLD45、PLD67として出力する。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D23」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D24」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P0」から「P1」にインクリメントし、「P1」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10A(ページラッチ部10−1〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P1」)に対応する「D25」を選択して、「D25」をページデータPDとして出力する。
以降の時刻t121、t122、t123、・・・において、順次時刻t113、t114、t115、・・・と同様の処理が繰り返し行われる。
図16は、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「6」の場合における、本実施の形態の各回路の動作のタイミングチャートを示している。
時刻t201〜t206、およびt262において、図14において説明した時刻t101〜t106、およびt162と同様の動作が行われる。
時刻t207において、ファーストレイテンシカウンタ34Aは計数値を「1」デクリメントして「0」にする。
アドレスカウンタ33Aは、最初のメモリアクセスが完了しているので、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41Aは、アドレスカウンタ33Aの出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t272においてセンスアンプコントロール信号SCとしてセンスデータラッチ9Aに入力され、センスデータラッチ9Aは、センスアンプ7から出力されるメモリデータMDをラッチして、「D14」〜「D15」をセンスラッチデータSLD(SLD01〜SLD67)として出力する。
また、時刻t207において、データカウンタ書込部39Aは、最初の16ワード境界前の有効データ、つまり、下位4ビットが「6」なので最初の16ワード境界前の1回目のメモリアクセスで読み出される有効データと2回目のメモリアクセスで読み出される有効データ、の出力に必要なクロックサイクルを計数するために、ファーストレイテンシカウンタ34Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32Aに記憶されているデータ計数初期値「9」を読み込み、読み込んだデータ計数初期値「9」をデータカウンタ35Aに対して計数の初期値として書き込む。
境界カウンタ書込部40Aは、ファーストレイテンシカウンタ34Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ36Aに記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」を16W境界カウンタ36Aに対して計数の初期値として書き込む。
ページラッチ信号生成部42Aは、ファーストレイテンシカウンタ34Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t202において立ち上げたページラッチ信号PL0〜PL3を立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ部10−0、10−1、10−2、10−3は、夫々、センスデータラッチ9Aから出力されているセンスラッチデータSLD01、SLD23、SLD45、SLD67をラッチし、「D8」および「D9」、「D10」および「D11」、「D12」および「D13」、「D6」および「D7」をページラッチデータPLD01、PLD23、PLD45、PLD67として出力する。
出力ラッチ12Aは、ページセレクタ11から出力されているページデータPD(「D6」:下位4ビット「6」に対応したワードデータ)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P6」から「P7」にインクリメントし、「P7」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P7」)に対応する「D7」を選択して、「D7」をページデータPDとして出力する。
ウェイト信号生成部44Aは、ファーストレイテンシカウンタ34Aの計数値が「1」であって、上記の動作期間のある場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t202において立ち上げたウェイト信号WAITを立ち下げる(「H」レベルから「L」レベルとする)。
時刻t208において、データカウンタ35Aは、クロックイネーブル信号CLKENが「H」レベルの場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「8」にする。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「4」にする。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D6」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D7」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P7」から「P0」にインクリメントし、「P0」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P0」)に対応する「D8」を選択して、「D8」をページデータPDとして出力する。
時刻t209において、ページラッチ信号生成部42Aは、データカウンタ35Aの計数値が「8」で16W境界カウンタ36Aの計数値が「2」以上の「4」であるので、ページラッチ立上信号を「1」にする。
時刻t209、t210において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「8」→「7」→「6」)、計数値が「6」になる。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して計数値を「1」デクリメントし(「4」→「3」→「2」)、計数値が「2」になる。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されているデータ(「D7」、「D8」)を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する(D8、D9)。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKに同期して、ページコントロール信号PCをインクリメントし、インクリメント後のデータをページコントロール信号PCとして出力する(P1、P2)。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PCに対応するページラッチデータPLDを選択して、選択したページラッチデータPLDをページデータPDとして出力する(D9、D10)。
時刻t211において、ページラッチ信号生成部42Aは、ページラッチ立上信号が「1」であり、16W境界カウンタ36Aの計数値のデクリメント処理が行われて「2」となって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、最初の16ワード境界前の2回目のメモリアクセスで読み出された有効データを保持することになるページラッチ部10−3に、最初の16ワード境界前の1回目のメモリアクセスで読み出され保持されていた有効データが既にバースト出力されて不要になっており、スタートアドレスの下位4ビットが「6」であるため、ページラッチ信号PL3のみを立ち上げる(「L」レベルから「H」レベルにする)とともに、ページラッチ立上信号を「0」にする。なお、ページラッチ信号PL0〜PL2は「L」レベルのままである。
データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「5」にする。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「1」にする。
出力ラッチ12は、ページセレクタ11Aから出力されているページデータPD(「D10」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P2」から「P3」にインクリメントし、「P3」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P3」)に対応する「D11」を選択して、「D11」をページデータPDとして出力する。
時刻t212において、ページラッチ信号生成部42Aは、未出力の有効データを保持しているページラッチ部以外のページラッチ部で最初の16ワード境界前の2回目のメモリアクセスで読み出された有効データを保持可能になっており、最初の16ワード境界前の2回目のメモリアクセスが完了して読み出されたメモリデータがセンスデータラッチ10Aから出力されているので、16W境界カウンタ36Aの計数値のデクリメント処理が行われて「1」となって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t211において立ち上げたページラッチ信号PL3を立ち下げる(「H」レベルから「L」レベルにする。)。これにより、ページラッチ部10−3は、センスデータラッチ9Aから出力されているセンスラッチデータSLD67をラッチし、「D14」〜「D15」をページラッチデータPLD67として出力する。なお、時刻t212、t213において、ページラッチ信号PL0〜PL2は「L」レベルのままであるため、ページラッチデータPLD01は「D8」および「D9」、ページラッチデータPLD23は「D10」および「D11」、ページラッチデータPLD45は「D12」および「D13」のままである。
アドレスカウンタ33Aは、バースト出力する必要のある有効データ数が8未満になっており、かつ、メモリアクセスが完了しているので、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41Aは、アドレスカウンタ33Aの出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t282においてセンスアンプコントロール信号SCとしてセンスデータラッチ9Aに入力され、センスデータラッチ9Aは、センスアンプ7から出力されるメモリデータMDをラッチして、「D16」〜「D23」をセンスラッチデータSLD(SLD01〜SLD67)として出力する。
時刻t212において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「4」にする。
境界カウンタ書込部40Aは、16ワード境界信号が「H」レベルであるので、メモリアクセスに必要なクロックサイクルを計数するために、16W境界カウンタ36Aの計数値のデクリメント処理が行われて計数値が「1」となって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ36Aに記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」を16W境界カウンタ36Aに対して計数の初期値として書き込む。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D10」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D11」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P3」から「P4」にインクリメントし、「P4」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P4」)に対応する「D12」を選択して、「D12」をページデータPDとして出力する。
時刻t213〜時刻t216において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「4」→「3」→「2」→「1」→「0」)、計数値が「0」になる。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「5」→「4」→「3」→「2」→「1」)、計数値が「1」になる。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されているデータ(「D11」〜「D14」)を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12は、ページセレクタ11から出力されているページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する(D12〜D15)。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKに同期して、ページコントロール信号PCをインクリメントし、インクリメント後のデータをページコントロール信号PCとして出力する(P5〜P7、P0)。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PCに対応するページラッチデータPLDを選択して、選択したページラッチデータPLDをページデータPDとして出力する(D13〜D16)。
時刻t216において、バースト制御部3Aは、データカウンタ35Aの計数値が「1」である場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t202において立ち上げた16ワード境界信号を立ち下げる。これにより、以降、バーストアドレスが「1」インクリメントされるタイミングにおいてもファーストレイテンシレジスタ31Aに記憶されているウェイト計数初期値を新たに16W境界カウンタ36Aに書き込まれることがなくなる。
ページラッチ信号生成部42Aは、データカウンタ35Aの計数値が「1」で16W境界カウンタ36Aの計数値が「2」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PL0〜PL3を立ち上げる(「L」レベルから「H」レベルとする)。
時刻t217において、有効データの出力とメモリアクセスの双方が完了することになるので、アドレスカウンタ33Aは、データカウンタ35Aの計数値が「0」で16W境界カウンタ36は計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。このとき、アドレス変化検出部41Aは、アドレスカウンタ33Aの出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。
時刻t217において、ページラッチ信号生成部42Aは、16W境界カウンタ36の計数値のデクリメント処理が行われて「1」となって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t216において立ち上げたページラッチ信号PL0〜PL3を立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ部10−0、10−1、10−2、10−3は、夫々、センスデータラッチ9Aから出力されているセンスラッチデータSLD01、SLD23、SLD45、SLD67をラッチし、「D16」および「D17」、「D18」および「D19」、「D20」および「D21」、「D22」および「D23」をページラッチデータPLDとして出力する。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D15」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D16」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKに同期して、ページコントロール信号PCを「P0」から「P1」にインクリメントし、「P1」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01、PLD23、PLD45、PLD67)の中から、ページコントロール信号PC(「P1」)に対応する「D17」を選択して、「D17」をページデータPDとして出力する。
以降、図15の時刻t113以降と同様の動作が行われる。
図17は、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「7」の場合における、本実施の形態の各回路の動作のタイミングチャートを示している。
時刻t301〜t306、およびt362において、図15において説明した時刻t101〜t106、およびt162と同様の動作が行われる。
時刻t307において、ファーストレイテンシカウンタ34Aは計数値を「1」デクリメントして「0」にする。
アドレスカウンタ33Aは、最初のメモリアクセスが完了しているので、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41Aは、アドレスカウンタ33Aの出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t372においてセンスアンプコントロール信号SCとしてセンスデータラッチ9Aに入力され、センスデータラッチ9Aは、センスアンプ7から出力されるメモリデータMDをラッチして、「D14」〜「D15」をセンスラッチデータSLD(SLD01〜SLD67)として出力する。
また、時刻t307において、データカウンタ書込部39Aは、最初の16ワード境界前の有効データ、つまり、下位4ビットが「7」なので最初の16ワード境界前の1回目のメモリアクセスで読み出される有効データと2回目のメモリアクセスで読み出される有効データ、の出力に必要なクロックサイクルを計数するために、ファーストレイテンシカウンタ34Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、有効データレジスタ32Aに記憶されているデータ計数初期値「8」を読み込み、読み込んだデータ計数初期値「8」をデータカウンタ35Aに対して計数の初期値として書き込む。
境界カウンタ書込部40Aは、ファーストレイテンシカウンタ34Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ36Aに記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」を16W境界カウンタ36Aに対して計数の初期値として書き込む。
ページラッチ信号生成部42Aは、ファーストレイテンシカウンタ34Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t302において立ち上げたページラッチ信号PL0〜PL3を立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ部10−0、10−1、10−2、10−3は、夫々、センスデータラッチ9Aから出力されているセンスラッチデータSLD01、SLD23、SLD45、SLD67をラッチし、「D8」および「D9」、「D10」および「D11」、「D12」および「D13」、「D7」をページラッチデータPLD01、PLD23、PLD45、PLD67として出力する。なお、有効データのみ記載している。
出力ラッチ12Aは、ページセレクタ11から出力されているページデータPD(「D7」:下位4ビット「7」に対応したワードデータ)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P7」から「P0」にインクリメントし、「P0」をページコントロール信号PCとして出力する。これにより、ページセレクタ11は、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P0」)に対応する「D8」を選択して、「D8」をページデータPDとして出力する。
ウェイト信号生成部44Aは、ファーストレイテンシカウンタ34Aの計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t302において立ち上げたウェイト信号WAITを立ち下げる(「H」レベルから「L」レベルとする)。
時刻t307において、ページラッチ信号生成部42Aは、データカウンタ35Aの計数値が「8」で16W境界カウンタ36Aの計数値が「3」以上の「5」であるので、ページラッチ立上信号を「1」にする。
時刻t308において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「7」にする。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「4」にする。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D7」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D8」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P0」から「P1」にインクリメントし、「P1」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P1」)に対応する「D9」を選択して、「D9」をページデータPDとして出力する。
時刻t309、t310において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「7」→「6」→「5」)、計数値が「5」になる。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して計数値を「1」デクリメントし(「4」→「3」→「2」)、計数値が「2」になる。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されているデータ(「D8」、「D9」)を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する(D9、D10)。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKに同期して、ページコントロール信号PCをインクリメントし、インクリメント後のデータをページコントロール信号PCとして出力する(P2、P3)。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PCに対応するページラッチデータPLDを選択して、選択したページラッチデータPLDをページデータPDとして出力する(D10、D11)。
時刻t311において、ページラッチ信号生成部42Aは、ページラッチ立上信号が「1」であり、16W境界カウンタ36Aの計数値のデクリメント処理が行われて「2」となって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、最初の16ワード境界前の2回目のメモリアクセスで読み出された有効データを保持することになるページラッチ部10−3に、最初の16ワード境界前の1回目のメモリアクセスで読み出され保持されていた有効データが既にバースト出力されて不要になっており、スタートアドレスの下位4ビットが「7」であるため、ページラッチ信号PL3のみを立ち上げる(「L」レベルから「H」レベルにする)とともに、ページラッチ立上信号を「0」にする。なお、ページラッチ信号PL0〜PL2は「L」レベルのままである。
データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「4」にする。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「1」にする。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D10」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D11」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P3」から「P4」にインクリメントし、「P4」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P4」)に対応する「D12」を選択して、「D12」をページデータPDとして出力する。
時刻t312において、ページラッチ信号生成部42Aは、未出力の有効データを保持しているページラッチ部以外のページラッチ部で最初の16ワード境界前の2回目のメモリアクセスで読み出された有効データを保持可能になっており、最初の16ワード境界前の2回目のメモリアクセスが完了して読み出されたメモリデータがセンスデータラッチ10Aから出力されているので、16W境界カウンタ36Aの計数値のデクリメント処理が行われて「1」となって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t311において立ち上げたページラッチ信号PL3を立ち下げる(「H」レベルから「L」レベルにする。)。これにより、ページラッチ部10−3は、センスデータラッチ9Aから出力されているセンスラッチデータSLD67をラッチし、「D14」〜「D15」をページラッチデータPLD67として出力する。なお、時刻t312、t313において、ページラッチ信号PL0〜PL2は「L」レベルのままであるため、ページラッチデータPLD01は「D8」および「D9」、ページラッチデータPLD23は「D10」および「D11」、ページラッチデータPLD45は「D12」および「D13」のままである。
アドレスカウンタ33Aは、バースト出力する必要のある有効データ数が8未満になっており、かつ、メモリアクセスが完了しているので、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。
このとき、アドレス変化検出部41Aは、アドレスカウンタ33Aの出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。この検出信号DTがATD回路8により所定時間(メモリのアクセス時間)遅延させられ、時刻t382においてセンスアンプコントロール信号SCとしてセンスデータラッチ9Aに入力され、センスデータラッチ9Aは、センスアンプ7から出力されるメモリデータMDをラッチして、「D16」〜「D23」をセンスラッチデータSLD(SLD01〜SLD67)として出力する。
時刻t312において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「3」にする。
境界カウンタ書込部40Aは、16ワード境界信号が「H」レベルであるので、メモリアクセスに必要なクロックサイクルを計数するために、16W境界カウンタ36Aの計数値のデクリメント処理が行われて計数値が「1」となって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ファーストレイテンシレジスタ36Aに記憶されているウェイト計数初期値「5」を読み込み、読み込んだウェイト計数初期値「5」を16W境界カウンタ36Aに対して計数の初期値として書き込む。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D11」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D12」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P4」から「P5」にインクリメントし、「P5」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P5」)に対応する「D13」を選択して、「D13」をページデータPDとして出力する。
時刻t313〜時刻t314において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「3」→「2」→「1」)、計数値が「1」になる。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし(「5」→「4」→「3」)、計数値が「3」になる。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されているデータ(「D12」、「D13」)を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11から出力されているページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する(D13〜D14)。
時刻t313〜時刻t314において、ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKに同期して、ページコントロール信号PCをインクリメントし、インクリメント後のデータをページコントロール信号PCとして出力する(P6、P7)。ページコントロール信号生成部43Aは、データカウンタ35Aの計数値が「1」で16W境界カウンタ36の計数値が「3」以上の「3」であるので動作を停止する(計数を行わない状態)。
これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PCに対応するページラッチデータPLDを選択して、選択したページラッチデータPLDをページデータPDとして出力する(D14〜D15)。
時刻t315において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし、計数値が「0」になる。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし、計数値が「2」になる。ページコントロール信号生成部43Aは、16W境界カウンタ36Aの計数値が「2」になったので動作を開始する(計数を行う状態)。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D14」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11から出力されているページデータPDを、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する(D15)。
バースト制御部3Aは、データカウンタ35Aの計数値が「1」であるときに入力される内部クロックCLKの立ち上がりに同期して、時刻t302において立ち上げた16ワード境界信号を立ち下げる。これにより、以降、バーストアドレスが「1」インクリメントされるタイミングにおいてもファーストレイテンシレジスタ31Aに記憶されているウェイト計数初期値を新たに16W境界カウンタ36Aに書き込まれることがなくなる。
時刻t316において、16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントし、計数値が「1」になる。
ウェイト信号生成部44Aは、データカウンタ35Aの計数値が「0」で16ワード境界カウンタ36Aの計数値が「2」以上の「2」であるので、つまり、有効データの全てを出力してもメモリアクセスが完了していないので、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ウェイト信号WAITを立ち上げる(「L」レベルから「H」レベルにする)。
ページラッチ信号生成部42Aは、データカウンタ35Aの計数値が「0」で16W境界カウンタ36Aの計数値が「2」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページラッチ信号PL0〜PL3を立ち上げる(「L」レベルから「H」レベルとする)。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D15」を、内部クロックCLKの立ち上がりに同期して保持する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P7」から「P0」にインクリメントし、「P0」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P0」)に対応する「D16」を選択して、「D16」をページデータPDとして出力する。
時刻t317において、有効データの出力とメモリアクセスの双方が完了することになるので、アドレスカウンタ33Aは、データカウンタ35Aの計数値が「0」で16W境界カウンタ36は計数値が「1」であって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」インクリメントし、次にアクセスするバーストアドレスBADとして出力する。このとき、アドレス変化検出部41Aは、アドレスカウンタ33Aの出力するバーストアドレスBADが変化したことを検出して、ATD回路8に対してワンショットパルスの検出信号DTを出力する。
時刻t317において、ページラッチ信号生成部42Aは、16W境界カウンタ36Aの計数値のデクリメント処理が行われて「1」となって、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、時刻t316において立ち上げたページラッチ信号PL0〜PL3を立ち下げる(「H」レベルから「L」レベルとする)。これにより、ページラッチ部10−0、10−1、10−2、10−3は、夫々、センスデータラッチ9Aから出力されているセンスラッチデータSLD01、SLD23、SLD45、SLD67をラッチし、「D16」および「D17」、「D18」および「D19」、「D20」および「D21」、「D22」および「D23」をページラッチデータPLDとして出力する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D16」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKに同期して、ページコントロール信号PCを「P0」から「P1」にインクリメントし、「P1」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01、PLD23、PLD45、PLD67)の中から、ページコントロール信号PC(「P1」)に対応する「D17」を選択して、「D17」をページデータPDとして出力する。
以降、図15の時刻t113以降と同様の動作が行われる。
上記において、基本的動作を説明した本実施の形態のフラッシュメモリにおいてサスペンドが発生した場合の動作について図18を参照しつつ説明する。図18は、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「C(12)」の場合における、従来例の各回路の動作のタイミングチャートを示している。ただし、サスペンドが発生していない期間は上述した動作と同様であることから、ここでは、サスペンド期間の動作について説明する。
時刻t421において、アウトプットイネーブル信号OEBが立ち上がると(「L」レベルから「H」レベルに遷移する)と(サスペンドの発生)、時刻t408において、入力バッファ1は内部クロックCLKの立ち上がりに同期して、クロックイネーブル信号CLKENを立ち下げる(「H」レベルから「L」レベルに遷移させる)。
また、ウェイト信号生成部44Aは、クロックイネーブル信号CLKENの立ち下がりに同期して、ウェイト信号WAITを立ち上げる。
時刻t408において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「2」にする。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「4」にする。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D12」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D13」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P5」から「P6」にインクリメントし、「P6」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P6」)に対応する「D14」を選択して、「D9」をページデータPDとして出力する。
時刻t422において、アウトプットイネーブル信号OEBが立ち下がる(「H」レベルから「L」レベルに遷移する)と、時刻t409において、入力バッファ1は入力される内部クロックCLKの立ち上がりに同期して、クロックイネーブル信号CLKENを立ち上げる(「L」レベルから「H」レベルに遷移させる)。
また、ウェイト信号生成部44は、クロックイネーブル信号CLKENの立ち上がりに同期して、ウェイト信号WAITを立ち下げる。
なお、ファーストレイテンシの期間中にサスペンドが発生した場合も、上述した通り、ファーストレイテンシカウンタ34Aがクロックイネーブル信号CLKENが「H」レベルであると「L」レベルであるとにかかわらず動作するため、本実施の形態のファーストレイテンシカウンタ34Aがサスペンド期間中であってもメモリアクセスのアクセス時間に対応したクロックサイクル数を計数していることになり、ファーストレイテンシカウンタ34Aの計数値は実際にメモリアクセスが完了する時点のクロックサイクル数と指し示すことになる。
時刻t409、t410において、データカウンタ35Aは、上記の停止期間の場合に入力される内部クロックCLKの立ち上がり(クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり)であるので、入力される内部クロックCLKの立ち上がりに同期した計数値を「1」デクリメントする処理を行わず、計数値は「2」のままである。
16W境界カウンタ36Aは、クロックイネーブル信号CLKENが「H」レベルであると「L」レベルであるとにかかわらず動作するので、入力される内部クロックCLKの立ち上がりに同期して計数値を「1」デクリメントし(「4」→「3」→「2」)、計数値が「2」になる。つまり、本実施の形態の16W境界カウンタ36Aはサスペンド期間中であってもメモリアクセスのアクセス時間に対応したクロックサイクル数を計数していることになり、16W境界カウンタ36Aの計数値は実際にメモリアクセスが完了する時点のクロックサイクル数と指し示すことになる。
また、ページコントロール信号生成部43は、上記の停止期間の場合に入力される内部クロックCLKの立ち上がり(クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり)に同期したページコントロール信号を「1」インクリメントする動作を行わず、ページコントロール信号PCは「P6」のままである。
なお、ファーストレイテンシの期間中にサスペンドが発生した場合も、上述した通り、ファーストレイテンシカウンタ34Aがクロックイネーブル信号CLKENが「H」レベルであると「L」レベルであるとにかかわらず動作するため、本実施の形態のファーストレイテンシカウンタ34Aがサスペンド期間中であってもメモリアクセスのアクセス時間に対応したクロックサイクル数を計数していることになり、ファーストレイテンシカウンタ34Aの計数値は実際にメモリアクセスが完了する時点のクロックサイクル数と指し示すことになる。
時刻t409において、出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D13」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、出力バッファラッチ12Bから出力されているデータ「D12」を、内部クロックCLKの立ち上がりに同期して保持する。
時刻t410において、出力ラッチ12Aは、出力バッファラッチ12Bから出力されているデータ「D13」を、内部クロックCLKの立ち上がりに同期して保持する。
時刻t411において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「1」にする。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「1」にする。
出力バッファラッチ12Bは、ページセレクタ11Aから出力されているページデータPD(「D14」)を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D14」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P6」から「P7」にインクリメントし、「P7」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P7」)に対応する「D15」を選択して、「D13」をページデータPDとして出力する。
時刻t412において、データカウンタ35Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「0」にする。16W境界カウンタ36Aは、入力される内部クロックCLKの立ち上がりに同期して、計数値を「1」デクリメントして計数値を「0」にする。
出力バッファラッチ12Bは、出力ラッチ12Aから出力されている「D14」を、内部クロックCLKの立ち上がりに同期して保持する。
出力ラッチ12Aは、ページセレクタ11Aから出力されているページデータPD(「D15」)を、内部クロックCLKの立ち上がりに同期して保持し、セレクタ13およびデータ出力制御部14を介して、アウトプットデータOUTとして出力する。
ページコントロール信号生成部43Aは、上記の動作期間の場合に入力される内部クロックCLKの立ち上がりに同期して、ページコントロール信号PCを「P7」から「P0」にインクリメントし、「P0」をページコントロール信号PCとして出力する。これにより、ページセレクタ11Aは、ページラッチ10A(ページラッチ部10−0〜10−3)が出力しているページラッチデータPLD(PLD01〜PLD67)の中から、ページコントロール信号PC(「P0」)に対応する「D16」を選択して、「D13」をページデータPDとして出力する。
また、ページラッチ信号生成部42Aは、ページラッチ信号PL0〜PL3を立ち上げる(「L」レベルから「H」レベルにする)。
このように、ファーストレイテンシカウンタ34Aや16W境界カウンタ36Aがサスペンド期間中であっても動作してクロックサイクル数を計数することになるので、従来例において説明したフラッシュメモリの場合のように、実際のメモリアクセスが完了しているにもかかわらず、見かけ上はメモリアクセスが完了せずにメモリアクセスの完了を待つというようなことがなく、高速なバースト読み出しを実現することができる。
上述した本実施の形態のフラッシュメモリにおけるサスペンドが発生しない場合の各組合わせ(下位アドレスとファーストレイテンシとの組合わせ)における最初の16ワード境界において発生する境界前ウェイトサイクルのサイクル数を図19に示す。図19は本実施の形態のフラッシュメモリにおける16ワード境界前のウェイトサイクル数を示す図である。
図19に示すように、開始アドレスの下位4ビットの夫々に対して、有効データ数と最初の16ワード境界におけるウェイトサイクル数(図においては16ワード境界ウェイトサイクル数と記載)を示している。
有効データ数に関して、「1st」は最初の16ワード境界前の1回目のメモリアクセスでメモリセルアレイから読み出される有効データの数であり、「2nd」は最初の16ワード境界前の2回目のメモリアクセスでメモリセルアレイから読み出される有効データの数である。
また、「境界前」は、開始アドレスの下位4ビットが「0」から「7」の場合には、「1st」のメモリアクセス(最初の16境界前の1回目のメモリアクセス)でメモリセルアレイから読み出される有効データの数と「2nd」のメモリアクセス(最初の16境界前の2回目のメモリアクセス)でメモリセルアレイから読み出される有効データの数との和であり、下位4ビットが「8」から「F(15)」の場合には「1st」のメモリアクセス(最初の16境界前の1回目のメモリアクセス)でメモリセルアレイから読み出される有効データの数ということになる。
waitに続く数字はファーストレイテンシのクロックサイクル数であり、例えば「wait8」はファーストレイテンシのクロックサイクル数が8であることを示している。
図19に示されると通り、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「E(14)」の場合(図15)、16ワード境界ウェイトサイクル数は「3」である。また、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「6」の場合(図16)、16ワード境界ウェイトサイクル数は「0」である。さらに、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「8」の場合(図17)、16ワード境界ウェイトサイクル数は「1」である。
例えば、ファーストレイテンシが6サイクル、開始アドレスの下位4ビットが「6」の場合(図図16の場合)は、16ワード境界ウェイトサイクル数は「0」であり、従来のフラッシュメモリの16ワード境界ウェイトサイクル数「3」(図10参照)に比較して、16ワード境界ウェイトサイクル数が減少していることが分かる。
これは、ページラッチ10Aを4つのページラッチ部10−0〜10−3に分割し、各ページラッチ部10−0〜10−3単位で書き込み処理を独立して(個別に)行うようにしたことにより、ページラッチ10A全体で保持している有効データのバースト出力を待つことなしに、バースト出力の完了したページラット部10−0〜10−3のみの書き換えが可能になったことにより得られる効果である。これにより、次のメモリアクセスの開始を早くすることができ、バースト読み出しの高速化が実現される。
以上説明した本実施の形態によれば、サスペンド発生時(アウトプットイネーブル信号OEBの立ち上がり時)のクロックイネーブル信号CLKENの立ち下がりを、従来例で説明したフラッシュメモリではアウトプットイネーブル信号OEBの立ち上がりに同期させていた(内部クロックCLKとは非同期)のを、アウトプットイネーブル信号OEBが立ち上がり後の内部クロックCLK(上述した実施の形態においては、アウトプットイネーブル信号OEBが立ち上がり後の最初の内部クロックCLK)の立ち上がりに同期させるようにした。このように、クロックイネーブル信号CLKENを内部クロックCLKに同期させるようにしたため、従来例のフラッシュメモリで問題となる可能性のあったサスペンド発生(アウトプットイネーブル信号OEBの立ち上がり)直後の内部クロックCLKの誤動作が本実施の形態のフラッシュメモリでは発生しないという利点が得られる。
以上、本発明の好適な実施の形態について説明したが、本発明は上述の実施の形態に限られるものではなく、特許請求の範囲に記載した限りにおいて様々な設計変更が可能なものである。
例えば、従来例において説明した1つのページラッチ信号によりページラッチの書き換えを行うフラッシュメモリに対して、サスペンド発生時(アウトプットイネーブル信号OEBの立ち上がり時)のクロックイネーブル信号CLKENの立ち下がりを、アウトプットイネーブル信号OEBが立ち上がり後の内部クロックCLK(例えば、アウトプットイネーブル信号OEBが立ち上がり後の最初の内部クロックCLK)の立ち上がりに同期させるようにした手法を適用するようにしてもよい。
また、上述した本実施の形態においては、ファーストレイテンシカウンタ34Aと16W境界カウンタ36Aとがクロックイネーブル信号CLKENが「H」レベルであると「L」レベルであるとに拘わらず動作するようにしている場合である。これに拘わらず、例えば、クロックイネーブル信号CLKENが「L」レベルの期間に入力される内部クロックCLKの立ち上がり、およびクロックイネーブル信号が「H」レベルになって最初に入力される内部クロックCLKの立ち上がり、以外の内部クロックCLKの立ち上がりに同期して計数値を「1」デクリメントするようにしてもよい。この場合、サスペンド発生中はメモリアクセスのアクセス時間に対応した時間のクロックサイクル数を計数するファーストレイテンシカウンタや16W境界カウンタが停止してしまうために、メモリアクセスの開始を早くすることができるという効果は得られなくなるが、従来例のフラッシュメモリで問題となる可能性のあったサスペンド発生(アウトプットイネーブル信号OEBの立ち上がり)直後の内部クロックCLKの誤動作が本実施の形態のフラッシュメモリでは発生しないという利点が得られる。
従来のフラッシュメモリの全体構成を示す図。 図1の入力バッファの動作を説明するためのタイミングチャート。 図1の入力バッファの動作を説明するためのタイミングチャート。 図1のフラッシュメモリの構成の一部を示す図。 図4のフラッシュメモリの構成の一部の動作を説明するための図。 図1のフラッシュメモリのバースト制御部の構成を示す図。 図1のフラッシュメモリの動作を説明するためのタイミングチャート。 図1のフラッシュメモリの動作を説明するためのタイミングチャート。 図1のフラッシュメモリの動作を説明するためのタイミングチャート。 図1のフラッシュメモリの境界ウェイトサイクルを示す図。 図1のフラッシュメモリの動作を説明するためのタイミングチャート。 本発明の実施の形態のフラッシュメモリの全体構成を示す図。 図1の入力バッファの動作を説明するためのタイミングチャート。 図12のフラッシュメモリのバースト制御部の構成を示す図。 図12のフラッシュメモリの動作を説明するためのタイミングチャート。 図12のフラッシュメモリの動作を説明するためのタイミングチャート。 図12のフラッシュメモリの動作を説明するためのタイミングチャート。 図12のフラッシュメモリの動作を説明するためのタイミングチャート。 図12のフラッシュメモリの境界ウェイトサイクルを示す図。
符号の説明
1A 入力バッファ
2 アドレスラッチ
3A バースト制御部
4 アドレス制御部
5 デコーダ
6 メモリセルアレイ
7 センスアンプ
8 ATD回路
9Aセンスデータラッチ
10A ページラッチ
11A ページセレクタ
12A 出力ラッチ
12B 出力バッファラッチ
13 セレクタ
14 データ出力制御部
15 レディ出力制御部
33 アドレスカウンタ
34A ファーストレイテンシカウンタ
35A データカウンタ
36A 16W境界カウンタ
41A アドレス変化検出部
42A ページラッチ信号生成部
43A ページコントロール信号生成部
44A ウェイト信号生成部

Claims (2)

  1. 外部から入力される先頭アドレスに基づき、マトリクス状に配置されたメモリ素子から読み出したメモリデータを外部クロックに同期させて連続して外部に出力するバースト読み出しの機能を有する半導体メモリであって、
    前記外部クロックと同位相の内部クロックを出力し、
    外部から入力される、前記半導体装置の前記バースト読み出しの機能を有効にするアウトプットイネーブル信号がディセーブルレベルに遷移すると、遷移した後の前記内部クロックの最初の立ち上がりに応じてクロックイネーブル信号を立ち下げ、前記アウトプットイネーブル信号がイネーブルレベルに遷移すると、遷移した後の前記内部クロックの最初の立ち上がりに応じてクロックイネーブル信号を立ち上げる入力バッファと、
    前記メモリ素子をM×N(M、Nはそれぞれ2以上の整数)本の読み出し線毎に分割したブロックと、
    前記ブロック毎に読み出し線に接続されたメモリ素子のメモリデータを読み出すN個のセンスアンプと、
    前記N個のセンスアンプ各々に対して、M×N本の読み出し線における何れのN本を接続するかの切り替えを行う切替スイッチと、
    前記センスアンプにより、前記読み出し線から読み出されたメモリデータをラッチするセンスデータラッチと、
    複数のページラッチ部に分割され、各ページラッチ部単位でメモリデータの書込処理を行うページラッチと、
    前記ページラッチが出力するメモリデータを選択するページセレクタと、
    前記ページセレクタにより選択されたメモリデータを前記内部クロックの立ち上がりに応じて保持して出力する出力ラッチと、
    前記出力ラッチが出力するメモリデータを前記内部クロックの立ち上がりに応じて保持するバッファ回路と、
    を備え
    前記出力ラッチは、前記クロックイネーブル信号が立ち下がった後、前記内部クロックの最初の立ち上がりに応じて前記ページセレクタにより選択されたメモリデータに替えて前記バッファ回路が保持するメモリデータを保持し、前記クロックイネーブル信号が立ち上がった後、前記内部クロックの最初の立ち上がりに応じて前記ページセレクタにより選択されたメモリデータに替えて前記バッファ回路が保持するメモリデータを保持することを特徴とする半導体メモリ。
  2. 前記メモリセル素子から読み出されるメモリデータを外部に出力するのに要する時間に対応したクロックサイクル数を計数するデータ計数手段と、
    メモリアクセスに必要なアクセス時間に対応したクロックサイクル数を計数するタイム計数手段と、
    前記データ計数手段の計数結果と前記タイム計数手段の計数結果に基づいて、前記ページラッチの前記書込処理をイネーブルにするページラッチ信号を前記ページラッチに出力するページラッチ信号生成部と、
    前記データ計数手段の計数結果と前記タイム計数手段の計数結果に基づいて、前記ページセレクタの選択処理をイネーブルにするページコントロール信号を前記ページセレクタに出力するページコントロール信号生成部と、
    をさらに有し、
    前記データ計数手段は、前記クロックイネーブル信号が立ち下がったレベルの期間に入力される前記内部クロックの立ち上がり、および前記クロックイネーブル信号が立ち上がったレベルになって最初に入力される内部クロックの立ち上がり、以外の内部クロックの立ち上がりに応じてカウント動作を行い、
    前記ページラッチ信号生成部及び前記ページコントロール信号生成部は、前記クロックイネーブル信号が立ち下がったレベルの期間に入力される前記内部クロックの立ち上がり、および前記クロックイネーブル信号が立ち上がったレベルになって最初に入力される内部クロックの立ち上がり、以外の内部クロックの立ち上がりに応じてそれぞれ前記ページラッチ信号、前記ページコントロール信号を出力することを特徴とする請求項1に記載の半導体メモリ。
JP2005268150A 2005-09-15 2005-09-15 半導体メモリ Active JP4943682B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005268150A JP4943682B2 (ja) 2005-09-15 2005-09-15 半導体メモリ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005268150A JP4943682B2 (ja) 2005-09-15 2005-09-15 半導体メモリ

Publications (2)

Publication Number Publication Date
JP2007080411A JP2007080411A (ja) 2007-03-29
JP4943682B2 true JP4943682B2 (ja) 2012-05-30

Family

ID=37940547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005268150A Active JP4943682B2 (ja) 2005-09-15 2005-09-15 半導体メモリ

Country Status (1)

Country Link
JP (1) JP4943682B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010044822A (ja) * 2008-08-12 2010-02-25 Toppan Printing Co Ltd 半導体メモリ
JP5239939B2 (ja) * 2009-02-25 2013-07-17 凸版印刷株式会社 半導体メモリ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001118395A (ja) * 1999-10-18 2001-04-27 Nec Corp 半導体記憶装置及びデータの読み出し方法
JP4798843B2 (ja) * 2000-09-01 2011-10-19 ルネサスエレクトロニクス株式会社 半導体装置
JP4005909B2 (ja) * 2002-12-26 2007-11-14 スパンション インク 半導体記憶装置、および半導体記憶装置の制御方法
JP4357246B2 (ja) * 2003-09-16 2009-11-04 株式会社ルネサステクノロジ 半導体記憶装置
JP4684561B2 (ja) * 2004-02-13 2011-05-18 凸版印刷株式会社 半導体メモリ

Also Published As

Publication number Publication date
JP2007080411A (ja) 2007-03-29

Similar Documents

Publication Publication Date Title
JP2696026B2 (ja) 半導体記憶装置
WO1998059343A1 (en) Synchronous page-mode non-volatile memory
JP2011018372A (ja) データをセクタ単位にランダムに入出力することができるフラッシュメモリシステム
CN1790544A (zh) 半导体存储器装置
JP2002244920A (ja) Dramインターフェース回路
WO2004097727A1 (ja) メモリカード
US8358557B2 (en) Memory device and method
US7692982B2 (en) Semiconductor memory apparatus with write training function
JP3737437B2 (ja) 半導体メモリ及びその動作モードのエントリー方法
JP4999302B2 (ja) 半導体メモリ
JPH04229484A (ja) Dramの回復を制御する方法
KR100437467B1 (ko) 연속 버스트 읽기 동작 모드를 갖는 멀티 칩 시스템
JPH0845277A (ja) 半導体記憶装置
JP2014154119A (ja) メモリ制御装置及び半導体記憶装置
JP4943681B2 (ja) 半導体メモリ
JP5000872B2 (ja) 半導体メモリ
EP1058269B1 (en) Synchronous multilevel non-volatile memory and related reading method
CN1825474A (zh) 具有快速列存取的随机存取存储器
JP5101123B2 (ja) 半導体メモリ装置のバースト読み出し回路及びバーストデータ出力方法
JP4943682B2 (ja) 半導体メモリ
US20020040424A1 (en) Memory controller that controls supply timing of read data
US6178138B1 (en) Asynchronously addressable clocked memory device and method of operating same
US8239658B2 (en) Internally derived address generation system and method for burst loading of a synchronous memory
JP2000268566A (ja) 同期型半導体記憶装置
KR100719378B1 (ko) 빠른 랜덤 액세스 기능을 갖는 플래시 메모리 장치 및그것을 포함한 컴퓨팅 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110624

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: 20120131

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120301

R150 Certificate of patent or registration of utility model

Ref document number: 4943682

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150309

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250