JP5925549B2 - Memory system and bank interleaving method - Google Patents
Memory system and bank interleaving method Download PDFInfo
- Publication number
- JP5925549B2 JP5925549B2 JP2012068157A JP2012068157A JP5925549B2 JP 5925549 B2 JP5925549 B2 JP 5925549B2 JP 2012068157 A JP2012068157 A JP 2012068157A JP 2012068157 A JP2012068157 A JP 2012068157A JP 5925549 B2 JP5925549 B2 JP 5925549B2
- Authority
- JP
- Japan
- Prior art keywords
- bank
- command sequence
- memory
- memory access
- instruction
- 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
Links
Images
Description
本発明の実施形態は、メモリシステムおよびバンクインターリーブ方法に関する。 Embodiments described herein relate generally to a memory system and a bank interleaving method.
コンピュータシステムに用いられるメモリシステムとして、NAND型の記憶セルを備えるメモリチップを搭載したSSD(Solid State Drive)が注目されている。SSDは、磁気ディスク装置に比べ、高速、軽量などの利点を有している。 As a memory system used in a computer system, an SSD (Solid State Drive) equipped with a memory chip having NAND-type storage cells has attracted attention. The SSD has advantages such as high speed and light weight compared with the magnetic disk device.
近年、SSDは、複数のメモリチップを並列駆動することで転送効率を向上させている。並列動作の一つの方法として、同一チャネルに接続されている複数のメモリチップをバンク単位でインターリーブさせる技術(バンクインターリーブ)がある。バンクインターリーブによれば、データ転送装置とメモリチップとの間のデータ(コマンド、アドレス、リードデータ、ライトデータを含む)の転送にかかる時間がメモリチップ内部の処理にかかる時間によって隠蔽される結果、メモリシステムの転送効率が向上する。 In recent years, SSDs have improved transfer efficiency by driving a plurality of memory chips in parallel. One method of parallel operation is a technique (bank interleaving) in which a plurality of memory chips connected to the same channel are interleaved in units of banks. According to bank interleaving, the time taken to transfer data (including command, address, read data, write data) between the data transfer device and the memory chip is concealed by the time taken for processing inside the memory chip, The transfer efficiency of the memory system is improved.
本発明の一つの実施形態は、できるだけ転送効率がよいメモリシステムを提供することを目的とする。 An object of one embodiment of the present invention is to provide a memory system with as high a transfer efficiency as possible.
本発明の一つの実施形態によれば、メモリシステムは、メモリチップと、命令生成部と、メモリ制御部とを備える。メモリチップは、不揮発性のメモリセルアレイを備え、複数のバンクを構成する。命令生成部は、ホスト装置からの要求に基づいてバンク毎に複数のメモリアクセス命令を生成する。メモリ制御部は、前記複数のメモリアクセス命令の夫々に対応するバンクにメモリアクセスをメモリアクセス命令毎に実行する。前記複数のバンクの夫々に対するメモリアクセスは、実行完了の直後にメモリアクセス対象のバンクにバンク内処理を実行せしめる第1コマンドシーケンスと、前記バンク内処理の実行完了後に実行せしめられる第2コマンドシーケンスと、を備える。第1コマンドシーケンスおよび第2コマンドシーケンスは、ともに単一のバンクに対して排他的に実行されるコマンドシーケンスである。ここで、前記メモリ制御部は、前記複数のバンクのうちの第1のバンクに対してi番目のメモリアクセス命令にかかる第2コマンドシーケンスとi+1番目のメモリアクセス命令にかかる第1コマンドシーケンスとを連続して実行した後で、かつ、前記第1のバンクがバンク内処理を実行している最中に、第2のバンクに対するメモリアクセスの実行を開始する。前記i+1番目のメモリアクセス命令は、連続した実行を許可するか非許可するかを示すフラグ情報を備える。前記フラグ情報が許可を示す場合には、前記メモリ制御部は、前記第1のバンクに対して前記i番目のメモリアクセス命令にかかる第2コマンドシーケンスと前記i+1番目のメモリアクセス命令にかかる第1コマンドシーケンスとを連続して実行した後で、かつ、前記第1のバンクがバンク内処理を実行している最中に、前記第2のバンクに対する第1コマンドシーケンスの実行を開始する。前記フラグ情報が非許可を示す場合には、前記メモリ制御部は、前記第1のバンクに対してi番目のメモリアクセス命令にかかる第2コマンドシーケンスを実行した後に、前記i+1番目のメモリアクセス命令にかかる第1コマンドシーケンスの実行を開始せずに、前記第2のバンクに対する第1コマンドシーケンスまたは第2コマンドシーケンスの実行を開始する。 According to one embodiment of the present invention, a memory system includes a memory chip, an instruction generation unit, and a memory control unit. The memory chip includes a nonvolatile memory cell array and constitutes a plurality of banks. The instruction generation unit generates a plurality of memory access instructions for each bank based on a request from the host device. The memory control unit executes a memory access for each memory access instruction in a bank corresponding to each of the plurality of memory access instructions. Memory access to each of the plurality of banks includes a first command sequence for causing the bank to be accessed to execute in-bank processing immediately after completion of execution, and a second command sequence to be executed after completion of execution of the in-bank processing. . Both the first command sequence and the second command sequence are command sequences executed exclusively on a single bank. Here, the memory control unit performs a second command sequence related to the i-th memory access instruction and a first command sequence related to the i + 1-th memory access instruction with respect to the first bank of the plurality of banks. The memory access to the second bank is started after the continuous execution and while the first bank is executing the in-bank processing. The (i + 1) th memory access instruction includes flag information indicating whether continuous execution is permitted or not. When the flag information indicates permission, the memory control unit performs the second command sequence relating to the i-th memory access instruction and the first instruction relating to the i + 1-th memory access instruction with respect to the first bank. The execution of the first command sequence for the second bank is started after the command sequence is continuously executed and while the first bank is executing the in-bank processing. When the flag information indicates non-permission, the memory control unit executes the second command sequence related to the i-th memory access instruction for the first bank, and then executes the i + 1-th memory access instruction. The execution of the first command sequence or the second command sequence for the second bank is started without starting the execution of the first command sequence.
以下に添付図面を参照して、実施形態にかかるメモリシステムおよびバンクインターリーブ方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。 Hereinafter, a memory system and a bank interleaving method according to embodiments will be described in detail with reference to the accompanying drawings. Note that the present invention is not limited to these embodiments.
(第1の実施形態)
図1は、本発明の第1の実施形態のメモリシステムが適用されたSSDの構成を説明する図である。
(First embodiment)
FIG. 1 is a diagram for explaining the configuration of an SSD to which the memory system according to the first embodiment of the present invention is applied.
SSD100は、パーソナルコンピュータなどのホスト装置200とシリアルインターフェースであるSATA(Serial Advanced Technology Attachment)規格に準拠した通信インタフェースで接続され、ホスト装置200の外部記憶装置として機能する。なお、SSD100とホスト装置200との間の通信インタフェースの規格として、SATA以外の規格を採用することができる。例えば、SAS(Serial Attached SCSI)規格やPCI(Peripheral Components Interconnect) Express規格を採用することができる。
The SSD 100 is connected to a
SSD100は、ホスト装置200からリード/ライトされるデータを記憶する不揮発性メモリであるNANDメモリ1と、SSD100のデータ転送制御を実行するデータ転送装置2と、該データ転送装置2がデータ転送のための転送データを一時格納するためのメモリであるRAM(Random Access Memory)3と、を備えている。RAM3は、NANDメモリ1のデータキャッシュメモリとして機能し、例えば、DRAM(Dynamic Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)などを採用することができる。
The SSD 100 includes a
データ転送装置2は、さらに、MPU(命令生成部)4と、SATAコントローラ5と、RAMコントローラ6と、NANDコントローラ7と、を備えている。MPU4、SATAコントローラ5、RAMコントローラ6およびNANDコントローラ7は、夫々バスに接続されている。
The
MPU4は、ファームウェアを実行することによって、データ転送装置2全体の制御を実行する。SATAコントローラ5は、ホスト装置200とRAM3との間のデータ転送の制御を実行する。RAMコントローラ6は、RAM3に対するデータのリード/ライトを制御する。NANDコントローラ7は、NANDメモリ1のリード/ライト制御およびNANDメモリ1とRAM3との間のデータ転送の制御を実行する。
The MPU 4 executes control of the entire
NANDメモリ1は、複数個(ここでは2個)の並列動作要素1a、1bによって構成されている。並列動作要素1a、1bは、夫々個別にNANDコントローラ7に接続されている。具体的には、並列動作要素1aは、チャネル(ch)0の配線で、並列動作要素1bはch1の配線で、夫々NANDインタフェース7に接続されている。各並列動作要素1a、1bは、バンクインターリーブが可能な複数のバンク(図1では2バンク、バンク0およびバンク1)によって構成されている。チャネル並列動作要素1a、1b内の各々のバンクは、夫々1つのメモリチップによって構成されている。即ち、メモリチップ10はバンク0、メモリチップ11はバンク1を構成している。なお、夫々のバンクは、複数個のメモリチップにより構成される場合もある。
The
図2は、NANDコントローラ7とNANDメモリ1との間の接続関係をさらに詳しく説明する図である。NANDコントローラ7は、並列動作要素1aを制御するch0コントローラ(メモリ制御部)70と、並列動作要素1bを制御するch1コントローラ(メモリ制御部)71とを備えている。ch0コントローラ70は、1つのI/O信号線(I/O)を備えている。このI/Oには、並列動作要素1aが備えるメモリチップ10、11が共通接続されている。また、ch0コントローラ70は、メモリチップ10、11の夫々と、チップイネーブル信号(CE)およびレディービジー信号(Ry/By)で個別に接続されている。これにより、ch0コントローラ70は、CEを個別に操作することによってアクセス先のバンクを指定することができる。また、Ry/Byの状態を確認することによって、バンクの動作中/非動作中を認識することができる。なお、ch1コントローラ71と並列動作要素1bが備えるメモリチップ10、11との間の接続関係は、ch0コントローラ70と並列動作要素1aが備えるメモリチップ10、11との間の接続関係と同様であるので、重複する説明を省略する。
FIG. 2 is a diagram for explaining the connection relationship between the NAND controller 7 and the
図3は、メモリチップ10、11の構成を説明する図である。なお、メモリチップ10およびメモリチップ11は同じ構成を備えているので、ここでは代表としてメモリチップ10について説明する。
FIG. 3 is a diagram illustrating the configuration of the
メモリチップ10は、メモリセルアレイ115及びその周辺回路を備える。メモリセルアレイ115は、複数のブロックBLOCK1-BLOCKnを備えて構成されている。各ブロックの構成は、複数のメモリセルトランジスタMC、ワード線WL、ビット線BL等を含むものである。各ブロック中のメモリセルトランジスタMC中のデータは、一括して消去される。メモリセルトランジスタ単位及びページ単位でのデータ消去はできない。すなわち、個々のブロックが最小の消去単位となる。
The
周辺回路は、センスアンプ114、入出力制御回路104、ロジックコントロール回路105等を備える。
The peripheral circuit includes a
センスアンプ114は、ビット線BLを介してメモリセルアレイ115内のメモリセル(メモリセルトランジスタMC)のデータを読み出し、ビット線BLを介してメモリセルアレイ115内のメモリセルの状態を検出する。
The
データキャッシュ113は、センスアンプ114から読み出されたデータまたはセンスアンプ114に供給されるデータを一時的に保持する。
The
カラムデコーダ112は、メモリチップ10の外部からI/Oを介して供給されたアドレス信号に基づいて、特定のビット線BL、センスアンプ等を選択する。
The
カラムアドレスバッファ111は、アドレス信号を一時的に保持し、カラムデコーダ112に供給する。
The
ロウアドレスデコーダ116は、データ読み出し、書き込み、あるいは消去に必要な種々の電圧を電圧生成回路106から受け取り、そのような電圧をアドレス信号に基づいて特定のワード線WLに印加する。
The
ロウアドレスバッファデコーダ117は、アドレス信号を一時的に保持し、ロウアドレスデコーダ116に供給する。
The row
電圧生成回路106は、基準電源電圧VSS、VCC、電圧VSSQ、VCCQ等を受け取り、これらからデータ書き込み、読み出し、消去等に必要な電圧を生成する。
The
入出力制御回路104は、IO端子を介して、メモリチップ10の動作を制御する種々のコマンド、アドレス信号、書き込みデータを受け取り、また読み出しデータを出力する。入出力制御回路104から出力されたアドレス信号は、アドレスレジスタ102によってラッチされる。ラッチされたアドレス信号は、カラムアドレスバッファ111及びロウアドレスバッファデコーダ117に供給される。入出力制御回路104から出力されたコマンドは、コマンドレジスタ103によってラッチされる。ステータスレジスタ101は、入出力制御回路104のための種々のステータスについての値を保持する。
The input /
メモリチップ10は、外部インターフェイス(NAND I/F)として、コマンド、アドレス、データ入出力用のIO端子、動作を制御するための種々の制御信号を外部から受け取る。制御信号には、例えばCE、コマンドラッチイネーブル(CLE)、アドレスラッチイネーブル(ALE)、リードイネーブル(RE及び/RE)、ライトイネーブル(WE及び/WE)、ライトプロテクト(WP)、クロック(DQS、/DQS)が含まれる。なお、CLE、ALE、RE、/RE、WE、/WE、WP、DQS、および/DQSは、CEやRy/Byと同様に、ch0コントローラ70と一対一で接続されている。
As an external interface (NAND I / F), the
これらの制御信号は、対応する端子において受け取られ、ロジックコントロール回路105に供給される。ロジックコントロール回路105は、制御信号に基づいて、入出力制御回路104を制御して、端子IO上の信号をコマンド、アドレス、またはデータとして入出力制御回路104を介してアドレスレジスタ102、コマンドレジスタ103、データキャッシュ113等に到達することを許可したり禁止したりする。また、ロジックコントロール回路105は、コマンドレジスタ103から、ラッチされたコマンドを受け取る。
These control signals are received at corresponding terminals and supplied to the
制御信号のうち、WE端子はデータ入力用クロックを供給し、RE端子はデータ出力用クロックを供給し、DQS端子はデータ入出力用クロックを伝送し、CLE端子はデータ入力をコマンドとして入力するイネーブル用であり、ALE端子はデータ入力をアドレスとして入力するイネーブル用であり、CE端子はデータ入出力等全般の機能を有効化するためである。 Among the control signals, the WE terminal supplies a data input clock, the RE terminal supplies a data output clock, the DQS terminal transmits a data input / output clock, and the CLE terminal enables data input as a command. The ALE terminal is used for enabling data input as an address, and the CE terminal is used for enabling general functions such as data input / output.
また、Ry/By端子はメモリチップ10の内部動作状態を示し、WP端子は誤書き込み防止用の書き込み防止信号を伝送し、Vcc/Vss/Vccq/Vssq端子等は電力供給用である。また、本実施形態では、高速インタフェースにてデータ伝送を実現する際に利用される端子(Toggle)として、RE端子、WE端子、DQS端子には、各々相補信号を伝送する/RE端子、/WE端子、/DQS端子が存在する。
The Ry / By terminal indicates an internal operation state of the
なお、ロジックコントロール回路105は、レディ/ビジー信号(Ry/By)の出力を司る。具体的には、ロジックコントロール回路105は、メモリチップ10がビジー状態の間、ビジー信号を出力する。
The
レディ/ビジー回路(RY/BY)107は、ロジックコントロール回路105の制御を受けて、スイッチトランジスタを介して、Ry/By信号をメモリチップ10の外部に通知する。
The ready / busy circuit (RY / BY) 107 receives the control of the
図4は、並列動作要素1aに属するメモリチップ10に対するメモリアクセスが実行される際のch0コントローラ70とメモリチップ10とを接続するI/OおよびRy/By0の状態遷移を説明する概念図である。本図の上段は、I/Oの状態遷移、下段はRy/By0の状態遷移を示している。なお、HiのRy/By0はRy状態を示し、LowのRy/ByはBy状態を示すものとする。図示するように、メモリチップ10に対するメモリアクセスは、第1コマンドシーケンス21と第2コマンドシーケンス22とを含んで構成される。第1コマンドシーケンス21が実行完了すると、メモリチップ10は、内部で、第1コマンドシーケンス21に対応する内部処理(バンク内処理)23を実行する。メモリチップ10は、内部処理を実行している最中には、Ry/ByをLowに遷移せしめる。第1コマンドシーケンス21および第2コマンドシーケンス22が夫々どのようなコマンドによって構成されるかは、アクセスモード(リード、ライト、イレース)毎に予め定められている。
FIG. 4 is a conceptual diagram illustrating state transitions of I / O and Ry / By0 that connect the
図5−1〜図5−3は、コマンドシーケンスの一例を説明する図である。図5−1はリードを実行するためのコマンドシーケンスを示している。リードモードにおいては、ch0コントローラ70は、メモリチップ10に対し、アクセスモードがリードであることを示すリードコマンドC0と、リードアドレス(adr)と、リードデータ準備コマンドC1とを順次発行する。リードコマンドC0、リードアドレス、およびリードデータ準備コマンドC1は、リードを実行するための第1コマンドシーケンス21を構成する。メモリチップ10は、リードデータ準備コマンドC1を受信すると、メモリセルアレイ115におけるリードアドレスにより指定された位置からリードデータを読み出して、読み出したリードデータをデータキャッシュ113に格納する。なお、このメモリチップ10による内部処理をリードデータ準備処理ということとする。メモリチップ10は、リードデータ準備処理を実行中の期間(tR)だけ、Ry/By0をByに遷移せしめる。
5A to 5C are diagrams for explaining an example of the command sequence. FIG. 5A shows a command sequence for executing a read. In the read mode, the
リードデータ準備処理が完了したことによってメモリチップ10がRy/By0をRyに遷移せしめると、ch0コントローラ70は、メモリチップ10にデータ転送コマンドC2を入力し、データ転送コマンドC2を受信したメモリチップ10は、データキャッシュ113上のリードデータ(data)をI/Oに確保されたデータ転送用の帯域幅毎に区切ってメモリチップ10に逐次送信する。なお、データの送信は、具体的には、ch0コントローラ70がREをトグルし、メモリチップ10は、REに同期して入出力制御回路104が有するバッファをデータ転送用の帯域幅毎のリードデータで更新することによって実現される。ch0コントローラ70は、DQSをラッチ信号として用いてリードデータをラッチする。データ転送コマンドC2およびREのトグル処理は、リードを実行するための第2コマンドシーケンス22を構成する。
When the
図5−2は、ライトを実行するためのコマンドシーケンスを示している。ライトモードにおいては、ch0コントローラ70は、アクセスモードがライトモードであることを示すライトコマンドC3と、ライトアドレス(adr)と、ライトデータ(data)と、プログラム処理開始コマンドC4と、をメモリチップ10に送信する。メモリチップ10は、送られてきたライトデータをデータキャッシュ113に格納する。そして、メモリチップ10は、プログラム処理開始コマンドC4を受信すると、データキャッシュ113に格納されたライトデータをメモリセルアレイ115におけるライトアドレスにより指定されたページにプログラムし、プログラムされたリードデータをベリファイする。なお、このメモリチップ10による内部処理をプログラム処理ということとする。メモリチップ10は、プログラム処理を実行中の期間(tProg)だけ、Ry/By0をByに遷移せしめる。
FIG. 5B shows a command sequence for executing the write. In the write mode, the
プログラム処理が完了したことによってメモリチップ10がRy/By0をRyに遷移せしめると、ch0コントローラ70は、メモリチップ10にステータスリードコマンドC5を送信するとともに、REをトグルする。メモリチップ10は、REを使用して、プログラム処理が成功したか否かを示すステータス情報(status)を入出力制御回路104のバッファに格納する。ch0コントローラ70は、バッファに格納されたステータス情報を読み、プログラム処理の完了/非完了を認識する。ステータスリードコマンドC5およびステータス情報をバッファに用意せしめるためのREのトグル処理は、ライトを実行するための第2コマンドシーケンス22を構成する。
When the
図5−3は、イレースを実行するためのコマンドシーケンスを示している。イレースモードにおいては、ch0コントローラ70は、アクセスモードがイレースモードであることを示すイレースコマンドC6と、イレースアドレス(adr)と、イレース処理開始コマンドC7とをメモリチップ10に送信する。イレースコマンドC5、イレースアドレス、イレース処理開始コマンドC7は、イレースを実行するための第1コマンドシーケンス21を構成する。メモリチップ10は、イレース処理開始コマンドC7を受信すると、イレースアドレスにより指定されたブロックをイレースするイレース処理を実行する。メモリチップ10は、プログラム処理を実行中の期間(tErase)だけ、Ry/By0をByに遷移せしめる。
FIG. 5C shows a command sequence for executing erase. In the erase mode, the
イレース処理が完了したことによってメモリチップ10がRy/By0をRyに遷移せしめると、ch0コントローラ70は、ライトモード時と同じように、ステータスリードコマンドC5をメモリチップ10に送信し、メモリチップ10は、ステータス情報(status)をch0コントローラ70に送信する。ステータスリードコマンドC5およびステータス情報をバッファに用意せしめるためのREのトグル処理は、イレースを実行するための第2コマンドシーケンス22を構成する。
When the
ここで、本発明の実施形態と比較される技術(以降、比較例)によれば、ch0コントローラ70は、第2コマンドシーケンス22の実行が完了したタイミングをバンク切り替えのタイミングとしてバンクインターリーブを実行する。これに対して、本発明の実施形態では、ch0コントローラ70は、あるバンクに対する第2コマンドシーケンス22を実行した後、同一のバンクに対する次のメモリアクセスにかかる第1コマンドシーケンス21を連続して実行し、第1コマンドシーケンス21が完了したタイミングをバンク切り替えのタイミングとする。例えば、メモリチップ10に対する第1コマンドシーケンス21が完了した後、メモリチップ10において第1コマンドシーケンス21に対応する内部処理23が開始されるが、ch0コントローラ70は、この内部処理が実行されている最中に、メモリチップ11に対して第1コマンドシーケンス21の実行を開始することができる。
Here, according to the technique compared to the embodiment of the present invention (hereinafter referred to as a comparative example), the
図6は、比較例にかかるバンクインターリーブ方法を実行した場合と第1の実施形態にかかるバンクインターリーブ方法を実行した場合の夫々において、連続してリードが実行される場合の各バンクの動作時間を説明するタイミングチャートである。この図の例においては、バンク0、1の夫々に対し、2回のリードが実行されている。リードモードにおいては、第2コマンドシーケンス22は、リードデータの転送を含んでいるため、第1コマンドシーケンス21よりも長い時間を必要とする。比較例にかかるバンクインターリーブ方法は、一方のバンクにかかる第1コマンドシーケンス21の実行時間を他方のバンクにかかるリードデータ準備処理の実行時間(tR)とを重ねることで転送効率の向上を図っている。これに対して、第1の実施形態のバンクインターリーブ方法は、一方のバンクにかかる第2コマンドシーケンス22の実行時間と他方のバンクにかかるリードデータ準備処理の実行時間(tR)とを重ねることができる。その結果、バンク0、1の実行時間が、ともに、比較例に比べて短縮されている。即ち、第1の実施形態のバンクインターリーブ方法を実行することによって、比較例に比べて、バンク0およびバンク1の転送効率を共に向上せしめることができる。
FIG. 6 shows the operation time of each bank when the read is executed continuously in each of the case where the bank interleaving method according to the comparative example is executed and the case where the bank interleaving method according to the first embodiment is executed. It is a timing chart to explain. In the example of this figure, two reads are executed for each of the
図7は、ch0コントローラ70およびch1コントローラ71の構成を説明する図である。なお、ch0コントローラ70およびch1コントローラ71は共に同じ構成を備えているので、ここではch0コントローラ70について説明し、重複する説明を省略する。
FIG. 7 is a diagram illustrating the configuration of the
図示するように、ch0コントローラ70は、バンク0用キュー90、バンク1用キュー91、バンク制御部92、およびNANDインタフェース(I/F)制御部93を備えている。
As illustrated, the
バンク0用キュー90は、並列動作要素1aのバンク0に対する命令900が、バンク1用キュー91は、並列動作要素1aのバンク1に対する命令910が、夫々エンキューされる。キュー90、91にエンキューされる個々の命令900、910は、アクセスモードの指定およびアクセス先のアドレスの他に、第1の実施形態のバンクインターリーブを実行するか否かを指定する連続投入フラグ1000を備えている。なお、命令900、910は、MPU4によってホスト装置200からの要求に基づいて生成される。MPUは、生成した命令900、910をキュー90またはキュー91に振り分けて投入する。
In the
バンク制御部92は、キュー切り替え部94および進捗管理部95を備えている。また、NAND I/F制御部93は、NANDコマンド生成部96およびコマンドシーケンス管理部97を備えている。
The
キュー切り替え部94は、例えばデマルチプレクサによって構成される。キュー切り替え部94は、進捗管理部95からの選択信号に基づいて、進捗管理部95の接続先のキューをバンク0用のキュー90とバンク1用のキュー91との間で切り替える。
The
進捗管理部95は、キュー90、91に格納されている命令900、910の読み出し、消去、命令の有無の確認を行う。進捗管理部95は、アクセス先のキューを変更する際には、キュー切り替え部94に供給する選択信号を切り替える。進捗管理部95は、キュー90、91から読み出した命令900、910に基づいて、第1コマンドシーケンス21を示す第1識別子と第2コマンドシーケンス22を示す第2識別子とを生成し、生成した第1識別子および第2識別子を、順次、NANDコマンド生成部96に入力する。進捗管理部95は、バンク毎のRy/By信号と、コマンドシーケンス管理部97からのコマンドシーケンス完了信号と、キュー90、91に命令900、910が格納されているか否かの判断と、実行中の命令900、910に後続する命令900、910の連続投入フラグ1000とに基づいて、コマンドシーケンス毎の入力タイミングを調整する。
The
NANDコマンド生成部96は、進捗管理部95から識別子が入力されたとき、入力された識別子に対応するコマンドシーケンスを生成し、生成したコマンドシーケンスをコマンドシーケンス管理部97に入力する。
When an identifier is input from the
コマンドシーケンス管理部97は、入力されたコマンドシーケンスをメモリチップ10、1に送信する。コマンドシーケンスがリードデータの受信を伴う場合には、リードデータの受信も実行する。コマンドシーケンス管理部97は、入力されたコマンドシーケンスを実行完了すると、コマンドシーケンス完了信号を進捗管理部95に入力する。
The command
図8は、MPU4の動作を説明するフローチャートである。MPU4は、SATAコントローラ5がホスト装置200から要求(リード要求、ライト要求、イレース要求)を受信したか否かを判定する(ステップS1)。SATAコントローラ5が要求を受信していない場合には(ステップS1、No)、MPU4は、ステップS1の処理を再び実行する。SATAコントローラ5が要求を受信した場合(ステップS1、Yes)、MPU4は、SATAコントローラ5が受信した要求に応じた命令を生成し(ステップS2)、生成した命令をバンク0用キュー90およびバンク1用キュー91に振り分けて格納する(ステップS3)。そして、MPU4は、ステップS1の処理を再び実行する。
FIG. 8 is a flowchart for explaining the operation of the
図9は、NANDコントローラ7が備えるチャネル毎のコントローラ70、71の動作を説明するフローチャートである。ch0コントローラ70およびch1コントローラ71は共に同じ構成を備えているので、ここではch0コントローラ70について説明し、重複する説明を省略する。
FIG. 9 is a flowchart for explaining the operation of the
まず、進捗管理部95は、キュー切り替え部94に入力する選択信号を操作して、バンク0用キュー90を選択する(ステップS11)。そして、進捗管理部95は、バンク0用キュー90に命令900があるか否かを判定する(ステップS12)。バンク0用キュー90に命令900がある場合(ステップS12、Yes)、その命令900が読み出し済みでない場合には、進捗管理部95は、その命令900を読み出して命令900に対応する第1識別子および第2識別子を生成しておく。
First, the
続いて、進捗管理部95は、Ry/By0がByを示しているか否かを判定する(ステップS13)。Ry/By0がByではなくRyを示している場合(ステップS13、No)、進捗管理部95は、メモリチップ10が第1コマンドシーケンス21を実行済みであるか否かを判定する(ステップS14)。メモリチップ10が第1コマンドシーケンス21を実行していない場合(ステップS14、No)、進捗管理部95は、メモリチップ10に第1コマンドシーケンス21を実行せしめる(ステップS15)。具体的には、進捗管理部95は、生成した第1識別子をNANDコマンド生成部96に入力し、NANDコマンド生成部96は入力された第1識別子に基づいて第1コマンドシーケンス21を生成する。コマンドシーケンス管理部97は、メモリチップ10に対し、NANDコマンド生成部96が生成した第1コマンドシーケンス21を実行し、第1コマンドシーケンス21の実行を完了すると、シーケンス実行完了信号を進捗管理部95に送信する。進捗管理部95は、第1識別子を送信した後にシーケンス実行完了信号を受信したか否かを判定することによって、第1コマンドシーケンス21が実行済みであるか否かを判定することができる。
Subsequently, the
メモリチップ10が第1コマンドシーケンス21を実行済みである場合(ステップS14、Yes)、進捗管理部95は、メモリチップ10に第2コマンドシーケンス22を実行せしめる(ステップS16)。具体的には、進捗管理部95は、生成した第2識別子をNANDコマンド生成部96に入力し、NANDコマンド生成部96は入力された第2識別子に基づいて第2コマンドシーケンス22を生成する。コマンドシーケンス管理部97は、メモリチップ10に対し、NANDコマンド生成部96が生成した第2コマンドシーケンス21を実行し、第2コマンドシーケンス21の実行を完了すると、シーケンス実行完了信号を進捗管理部95に送信する。進捗管理部95は、第2識別子を送信した後にシーケンス実行完了信号を受信したか否かを判定することによって、第1コマンドシーケンス21が実行済みであるか否かを判定することができる。
When the
進捗管理部95は、第2コマンドシーケンス22の実行が完了した後、バンク0用キュー90から、ステップS16の処理により実行済みとなった命令900を削除し(ステップS17)、別のキュー、即ちバンク1用キュー91に、命令910が存在するか否かを判定する(ステップS18)。ステップS18を実行する際には、進捗管理部95は、一時的にキュー切り替え部94にキューを切り替えさせる。バンク1用キュー91に命令910が存在する場合(ステップS18、Yes)、進捗管理部95は、バンク0用キュー90に次の命令900が存在するか否かを判定する(ステップS19)。
After the execution of the
バンク0用キュー90に次の命令900が存在する場合(ステップS19、Yes)、進捗管理部95は、当該次の命令900の連続投入が許可されているか否かを判定する(ステップS20)。進捗管理部95は、前記次の命令900に付随している連続投入フラグ1000を確認することによって、命令900の連続投入が許可されているか否かを判定することができる。
When the
前記次の命令900の連続投入が許可されている場合(ステップS20、Yes)、進捗管理部95は、当該次の命令900を読み出して、この命令900に対応する第1識別子および第2識別子を生成しておく。そして、ステップS15の処理により、進捗管理部95は、前記次の命令900に対応する第1コマンドシーケンス21をメモリチップ10に実行せしめる。
When continuous input of the
Ry/By0がByを示している場合(ステップS13、Yes)、バンク0用キュー90に命令900が存在しない場合(ステップS12、No)、バンク1用キュー91に命令910が存在しない場合(ステップS18、No)、バンク0用キュー90に命令900が存在しない場合(ステップS19、No)、前記次の命令900の連続投入が許可されていない場合(ステップS20、No)、またはステップS15の処理を完了した後、進捗管理部95は、バンク切り替え部94に供給している選択信号を切り替えて、バンク1用キュー91を選択する(ステップS21)。
When Ry / By0 indicates By (step S13, Yes), when the
ステップS21の処理の後、進捗管理部95は、バンク1用キュー91に命令910があるか否かを判定する(ステップS22)。バンク1用キュー91に命令910がある場合(ステップS22、Yes)、その命令910が読み出し済みでない場合には、進捗管理部95は、その命令910を読み出して命令910に対応する第1識別子および第2識別子を生成しておく。
After the process of step S21, the
続いて、進捗管理部95は、Ry/By1がByを示しているか否かを判定する(ステップS23)。Ry/By1がByではなくRyを示している場合(ステップS23、No)、進捗管理部95は、メモリチップ11が第1コマンドシーケンス21を実行済みであるか否かを判定する(ステップS24)。メモリチップ10が第1コマンドシーケンス21を実行していない場合(ステップS24、No)、進捗管理部95は、メモリチップ1に第1コマンドシーケンス21を実行せしめる(ステップS25)。具体的には、進捗管理部95は、生成した第1識別子をNANDコマンド生成部96に入力し、NANDコマンド生成部96は入力された第1識別子に基づいて第1コマンドシーケンス21を生成する。コマンドシーケンス管理部97は、メモリチップ11に対し、NANDコマンド生成部96が生成した第1コマンドシーケンス21を実行し、第1コマンドシーケンス21の実行を完了すると、シーケンス実行完了信号を進捗管理部95に送信する。進捗管理部95は、第1識別子を送信した後にシーケンス実行完了信号を受信したか否かを判定することによって、第1コマンドシーケンス21が実行済みであるか否かを判定することができる。
Subsequently, the
メモリチップ11が第1コマンドシーケンス21を実行済みである場合(ステップS24、Yes)、進捗管理部95は、メモリチップ11に第2コマンドシーケンス22を実行せしめる(ステップS26)。具体的には、進捗管理部95は、生成した第2識別子をNANDコマンド生成部96に入力し、NANDコマンド生成部96は入力された第2識別子に基づいて第2コマンドシーケンス22を生成する。コマンドシーケンス管理部97は、メモリチップ11に対し、NANDコマンド生成部96が生成した第2コマンドシーケンス21を実行し、第2コマンドシーケンス21の実行を完了すると、シーケンス実行完了信号を進捗管理部95に送信する。進捗管理部95は、第2識別子を送信した後にシーケンス実行完了信号を受信したか否かを判定することによって、第1コマンドシーケンス21が実行済みであるか否かを判定することができる。
When the
進捗管理部95は、第2コマンドシーケンス22の実行が完了した後、バンク1用キュー91から、ステップS26の処理により実行済みとなった命令910を削除し(ステップS27)、別のキュー、即ちバンク0用キュー90に、命令900が存在するか否かを判定する(ステップS28)。ステップS28を実行する際には、進捗管理部95は、一時的にキュー切り替え部94にキューを切り替えさせる。バンク0用キュー90に命令900が存在する場合(ステップS28、Yes)、進捗管理部95は、バンク1用キュー91に次の命令910が存在するか否かを判定する(ステップS29)。
After the execution of the
バンク1用キュー91に次の命令910が存在する場合(ステップS29、Yes)、進捗管理部95は、当該次の命令910の連続投入が許可されているか否かを判定する(ステップS30)。進捗管理部95は、前記次の命令900に付随している連続投入フラグ1000を確認することによって、命令900の連続投入が許可されているか否かを判定することができる。
When the
前記次の命令910の連続投入が許可されている場合(ステップS30、Yes)、進捗管理部95は、当該次の命令910を読み出して、この命令910に対応する第1識別子および第2識別子を生成しておく。そして、ステップS25の処理により、進捗管理部95は、前記次の命令910に対応する第1コマンドシーケンス21をメモリチップ11に実行せしめる。
When continuous input of the
Ry/By0がByを示している場合(ステップS23、Yes)、バンク1用キュー91に命令910が存在しない場合(ステップS22、No)、バンク0用キュー90に命令900が存在しない場合(ステップS28、No)、バンク1用キュー91に命令910が存在しない場合(ステップS29、No)、前記次の命令910の連続投入が許可されていない場合(ステップS30、No)、またはステップS25の処理を完了した後、進捗管理部95は、キュー90、91の何れかに命令900、910があるか否かを判定する(ステップS31)。キュー90、91の何れかに命令900、910がある場合(ステップS31、Yes)、ステップS11の処理が実行され、キュー90、91の何れにも命令900、910がない場合(ステップS31、No)、NANDコントローラ7の動作が終了となる。
When Ry / By0 indicates By (step S23, Yes), when the
このように、ch0コントローラ70は、バンク0(メモリチップ10)に対してi番目の命令900にかかる第2コマンドシーケンス22とi+1番目の命令900にかかる第1コマンドシーケンス21とを連続して実行した後で、かつ、メモリチップ10が内部処理23を実行している最中に、バンク1(メモリチップ11)に対するメモリアクセスの実行を開始する。
As described above, the
図10は、比較例にかかるバンクインターリーブ方法を実行した場合と第1の実施形態にかかるバンクインターリーブ方法を実行した場合の夫々において、連続してライトが実行される場合の各バンクの動作時間を説明するタイミングチャートである。ライトモードにおいては、第1コマンドシーケンス21は、ライトデータの転送を含んでいるため、第2コマンドシーケンス22よりも長い時間を必要とする。第1の実施形態のバンクインターリーブ方法は、コマンドシーケンスのうちの実行時間が長くかかる第1コマンドシーケンス21の実行時間を比較例に比べて効率的に隠蔽できるので、ライトモードにおいても、バンク0およびバンク1の転送効率を共に向上せしめることができることがわかる。
FIG. 10 shows the operation time of each bank when writing is performed continuously in each of the case where the bank interleaving method according to the comparative example is executed and the case where the bank interleaving method according to the first embodiment is executed. It is a timing chart to explain. In the write mode, the
図11は、比較例にかかるバンクインターリーブ方法を実行した場合と第1の実施形態にかかるバンクインターリーブ方法を実行した場合の夫々において、連続してイレースが実行される場合の各バンクの動作時間を説明するタイミングチャートである。イレースモードにおいては、第1コマンドシーケンス21および第2コマンドシーケンス22は、ともに、同程度の実行時間を必要とする。この場合には、図示するように、第1の実施形態によれば、バンク0の転送効率を向上せしめることができる。
FIG. 11 shows the operation time of each bank when erasing is executed continuously in each of the case where the bank interleaving method according to the comparative example is executed and the case where the bank interleaving method according to the first embodiment is executed. It is a timing chart to explain. In the erase mode, both the
図12−1〜図12−3は、比較例にかかるバンクインターリーブ方法を実行した場合と第1の実施形態にかかるバンクインターリーブ方法を実行した場合の夫々において、バンク毎のメモリアクセスのアクセスモードがランダムに構成されたときの各バンクの動作時間を説明するタイミングチャートである。 12A to 12C illustrate the memory access mode for each bank when the bank interleaving method according to the comparative example is executed and when the bank interleaving method according to the first embodiment is executed. It is a timing chart explaining the operation time of each bank when comprised at random.
図12−1は、バンク0に、2回のイレースアクセスが、バンク1に2回のリードアクセスがなされる場合を示している。この図の例のように、バンク0の1回目のメモリアクセスがバンク1の1回目のメモリアクセスの内部処理の終了タイミングよりも以前に終了する場合には、バンク0の2回目のメモリアクセスにかかる第1コマンドシーケンス21の実行時間を隠蔽することができない。したがって、第1の実施形態によれば、比較例に比べ、バンク0の転送効率を向上させることができる。
FIG. 12A shows a case in which two erase accesses are made to
図12−2は、バンク0に、イレースアクセスとライトアクセスとが、バンク1に2回のリードアクセスがなされる場合を示している。この図の例のように、バンク1の1回目のメモリアクセスの内部処理の終了タイミングが、バンク0の1回目のメモリアクセスの終了タイミングよりも以降で、かつ、バンク0の2回目のメモリアクセスにかかる第1コマンドシーケンス21の終了タイミングよりも以前である場合、バンク0の2回目のメモリアクセスにかかる第1コマンドシーケンス21の実行時間のうちの一部を隠蔽することができる。したがって、第1の実施形態によれば、比較例に比べ、バンク0およびバンク1の転送効率をともに向上させることができる。
FIG. 12B illustrates a case where the
図12−3は、バンク0に、イレースアクセスとリードアクセスとが、バンク1にライトアクセスとリードアクセスとがなされる場合を示している。この図の例のように、バンク1の1回目のメモリアクセスの内部処理の終了タイミングが、バンク0の2回目のメモリアクセスにかかる第1コマンドシーケンス21の終了タイミングよりも以降である場合、バンク0の2回目のメモリアクセスにかかる第1コマンドシーケンス21の実行時間を完全に隠蔽することができる。したがって、第1の実施形態によれば、比較例に比べ、バンク0およびバンク1の転送効率をともに向上させることができる。
FIG. 12C illustrates a case where the
なお、以上の説明においては、MPU4は、命令毎に、連続投入フラグ1000をどのように設定するかについては特に言及しなかったが、MPU4は、連続投入フラグ1000を任意に設定することができる。例えば、MPU4は、図6に示した例のように連続してリードアクセスを実行する際にはリードアクセス毎の命令の連続投入フラグ1000に、連続投入を許可する値を設定することができる。また、図12−2および図12−3に示したように、バンク1の1回目のメモリアクセスの内部処理の終了タイミングがバンク0の1回目のメモリアクセスの終了タイミングよりも以降となる場合には、バンク0およびバンク1の転送効率をともに向上させることができる。MPU4は、バンク0およびバンク1の転送効率をともに向上させることができる場合、即ちバンク1の1回目のメモリアクセスの内部処理の終了タイミングがバンク0の1回目のメモリアクセスの終了タイミングよりも以降となる場合に、バンク0の2回目のメモリアクセスにかかる命令の連続投入フラグ1000に、連続投入を許可する値を設定することができる。
In the above description, the
また、以上の説明においては、並列動作要素1a、1bは、夫々2つのバンク0、1を備えているものとして説明したが、並列動作要素1a、1bは、夫々3以上のバンクを備えるように構成してもよい。その場合には、NANDコントローラ7が備えるチャネル毎のコントローラ70、71は、ステップS1〜ステップS20の処理をバンク毎にシリアルに実行することができる。
In the above description, the
このように、本発明の第1の実施形態によれば、ch0コントローラ70は、バンク0(メモリチップ10)に対してi番目の命令900にかかる第2コマンドシーケンス22とi+1番目の命令900にかかる第1コマンドシーケンス21とを連続して実行した後で、かつ、メモリチップ10が内部処理23を実行している最中に、バンク1(メモリチップ11)に対するメモリアクセスの実行を開始するようにしたので、SSD100の転送効率を向上させることができる。
As described above, according to the first embodiment of the present invention, the
また、ch0コントローラ70は、i+1番目の命令900に付随する連続投入フラグ1000に基づいて、i+1番目の命令900にかかる第1コマンドシーケンス21をi番目の命令900にかかる第2コマンドシーケンス22の直後に連続して実行するか否かを判定する、ようにしたので、i+1番目の命令900にかかる第1コマンドシーケンス21をi番目の命令900にかかる第2コマンドシーケンス22の直後に連続して実行する制御を実行するか否かを切り替えることが可能になる。
Also, the
(第2の実施形態)
図13は、第1の実施形態のSSD100を搭載したパーソナルコンピュータ1200の一例を示す斜視図である。パーソナルコンピュータ1200は、本体1201、及び表示ユニット1202を備えている。表示ユニット1202は、ディスプレイハウジング1203と、このディスプレイハウジング1203に収容された表示装置1204とを備えている。
(Second Embodiment)
FIG. 13 is a perspective view showing an example of a
本体1201は、筐体1205と、キーボード1206と、ポインティングデバイスであるタッチパッド1207とを備えている。筐体1205内部には、メイン回路基板、ODD(Optical Disk Device)ユニット、カードスロット、及びSSD100等が収容されている。
The
カードスロットは、筐体1205の周壁に隣接して設けられている。周壁には、カードスロットに対向する開口部1208が設けられている。ユーザは、この開口部1208を通じて筐体1205の外部から追加デバイスをカードスロットに挿抜することが可能である。
The card slot is provided adjacent to the peripheral wall of the
SSD100は、従来のHDDの置き換えとして、パーソナルコンピュータ1200内部に実装された状態として使用してもよいし、パーソナルコンピュータ1200が備えるカードスロットに挿入した状態で、追加デバイスとして使用してもよい。
The
図14は、SSDを搭載したパーソナルコンピュータのシステム構成例を示している。パーソナルコンピュータ1200は、CPU1301、ノースブリッジ1302、主メモリ1303、ビデオコントローラ1304、オーディオコントローラ1305、サウスブリッジ1309、BIOS−ROM1310、SSD100、ODDユニット1311、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)1312、及びネットワークコントローラ1313等を備えている。
FIG. 14 shows a system configuration example of a personal computer equipped with an SSD. The
CPU1301は、パーソナルコンピュータ1200の動作を制御するために設けられたプロセッサであり、SSD100から主メモリ1303にロードされるオペレーティングシステム(OS)を実行する。更に、ODDユニット1311が、装填された光ディスクに対して読出し処理及び書込み処理の少なくとも1つの処理の実行を可能にした場合に、CPU1301は、それらの処理の実行をする。
The
また、CPU1301は、BIOS−ROM1310に格納されたシステムBIOS(Basic Input Output System)も実行する。尚、システムBIOSは、パーソナルコンピュータ1200内のハードウェア制御のためのプログラムである。
The
ノースブリッジ1302は、CPU1301のローカルバスとサウスブリッジ1309との間を接続するブリッジデバイスである。ノースブリッジ1302には、主メモリ1303をアクセス制御するメモリコントローラも内蔵されている。
The
また、ノースブリッジ1302は、AGP(Accelerated Graphics Port)バス等を介してビデオコントローラ1304との通信、及びオーディオコントローラ1305との通信を実行する機能も有している。
The
主メモリ1303は、プログラムやデータを一時的に記憶し、CPU1301のワークエリアとして機能する。主メモリ1303は、例えばRAMから構成される。
The
ビデオコントローラ1304は、パーソナルコンピュータ1200のディスプレイモニタとして使用される表示ユニット1202を制御するビデオ再生コントローラである。
A
オーディオコントローラ1305は、パーソナルコンピュータ1200のスピーカ1306を制御するオーディオ再生コントローラである。
The
サウスブリッジ1309は、LPC(Low Pin Count)バス1314上の各デバイス、及びPCI(Peripheral Component Interconnect)バス1315上の各デバイスを制御する。また、サウスブリッジ1309は、各種ソフトウェア及びデータを格納する記憶装置であるSSD100を、SATAインタフェースを介して制御する。
The
パーソナルコンピュータ1200は、セクタ単位でSSD100へのアクセスを行う。SATAインタフェースを介して、書き込みコマンド、読出しコマンド、キャッシュフラッシュコマンド等がSSD100に入力される。
The
また、サウスブリッジ1309は、BIOS−ROM1310、及びODDユニット1311をアクセス制御するための機能も有している。
The
EC/KBC1312は、電力管理のためのエンベデッドコントローラと、キーボード(KB)1206及びタッチパッド1207を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。
The EC /
このEC/KBC1312は、ユーザによるパワーボタンの操作に応じてパーソナルコンピュータ1200の電源をON/OFFする機能を有している。ネットワークコントローラ1313は、例えばインターネット等の外部ネットワークとの通信を実行する通信装置である。
The EC /
パーソナルコンピュータ1200が搭載するSSD100は、上述した通り、NANDメモリ1とデータ転送装置2との間の転送効率を可及的に向上させることができる構成であるので、転送効率の向上に応じてSSD100に対するアクセス速度が向上する。
As described above, the
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
1 NANDメモリ、2 データ転送装置、4 MPU、10〜13 メモリチップ、21 第1コマンドシーケンス、22 第2コマンドシーケンス、23 内部処理、70 ch0コントローラ、71 ch1コントローラ、90 バンク0用キュー、91 バンク1用キュー、94 キュー切り替え部、95 進捗管理部、96 NANDコマンド生成部、97 コマンドシーケンス管理部、200 ホスト装置、900、910 命令、1000 連続投入フラグ、1200 パーソナルコンピュータ。
1 NAND memory, 2 data transfer device, 4 MPU, 10 to 13 memory chip, 21 first command sequence, 22 second command sequence, 23 internal processing, 70 ch0 controller, 71 ch1 controller, 90
Claims (5)
ホスト装置からの要求に基づいてバンク毎に複数のメモリアクセス命令を生成する命令生成部と、
前記複数のメモリアクセス命令の夫々に対応するバンクにメモリアクセスをメモリアクセス命令毎に実行するメモリ制御部と、
を備え、
前記複数のバンクの夫々に対するメモリアクセスは、ともに単一のバンクに対して排他的に実行されるコマンドシーケンスであって、実行完了の直後にメモリアクセス対象のバンクにバンク内処理を実行せしめる第1コマンドシーケンスと、前記バンク内処理の実行完了後に実行せしめられる第2コマンドシーケンスと、を備え、
前記メモリ制御部は、前記複数のバンクのうちの第1のバンクに対してi番目のメモリアクセス命令にかかる第2コマンドシーケンスとi+1番目のメモリアクセス命令にかかる第1コマンドシーケンスとを連続して実行した後で、かつ、前記第1のバンクがバンク内処理を実行している最中に、第2のバンクに対するメモリアクセスの実行を開始し、
前記i+1番目のメモリアクセス命令は、連続した実行を許可するか非許可するかを示すフラグ情報を備え、
前記メモリ制御部は、
前記フラグ情報が許可を示す場合には、前記第1のバンクに対して前記i番目のメモリアクセス命令にかかる第2コマンドシーケンスと前記i+1番目のメモリアクセス命令にかかる第1コマンドシーケンスとを連続して実行した後で、かつ、前記第1のバンクがバンク内処理を実行している最中に、前記第2のバンクに対する第1コマンドシーケンスの実行を開始し、
前記フラグ情報が非許可を示す場合には、前記第1のバンクに対してi番目のメモリアクセス命令にかかる第2コマンドシーケンスを実行した後に、前記i+1番目のメモリアクセス命令にかかる第1コマンドシーケンスの実行を開始せずに、前記第2のバンクに対する第1コマンドシーケンスまたは第2コマンドシーケンスの実行を開始する、
ことを特徴とするメモリシステム。 A memory chip comprising a non-volatile memory cell array and constituting a plurality of banks;
An instruction generator for generating a plurality of memory access instructions for each bank based on a request from the host device;
A memory control unit for executing memory access for each memory access instruction to a bank corresponding to each of the plurality of memory access instructions;
With
The memory access to each of the plurality of banks is a command sequence that is executed exclusively for a single bank, and first causes the bank to be accessed to execute in-bank processing immediately after execution is completed. A command sequence, and a second command sequence executed after completion of the in-bank processing,
The memory control unit continuously performs a second command sequence related to an i-th memory access instruction and a first command sequence related to an i + 1-th memory access instruction with respect to a first bank of the plurality of banks. after executing, and, while the first bank is performing the bank processing, it starts the execution of the memory access to the second bank,
The i + 1-th memory access instruction includes flag information indicating whether continuous execution is permitted or not,
The memory control unit
When the flag information indicates permission, a second command sequence related to the i-th memory access instruction and a first command sequence related to the i + 1-th memory access instruction are continuously performed on the first bank. Execution of the first command sequence for the second bank, and while the first bank is executing in-bank processing,
If the flag information indicates non-permission, a first command sequence related to the i + 1th memory access instruction is executed after executing a second command sequence related to the ith memory access instruction to the first bank. Starting execution of the first command sequence or the second command sequence for the second bank without starting execution of
A memory system characterized by that.
前記リードアクセス命令にかかる第1コマンドシーケンスは、リードアドレスの送信を含み、
前記リードアクセス命令にかかるバンク内処理は、前記メモリアクセス対象のバンクを構成するメモリチップが、前記メモリセルアレイにおける前記リードアドレスにより指定された番地からリードデータを読み出して、読み出したリードデータを自メモリチップが備えるデータキャッシュに格納する処理であって、
前記リードアクセス命令にかかる第2コマンドシーケンスは、前記データキャッシュに格納されたリードデータの取得を含む、
ことを特徴とする請求項1に記載のメモリシステム。 The plurality of memory access instructions include a read access instruction,
The first command sequence according to the read access command includes transmission of a read address,
The in-bank processing related to the read access instruction is such that the memory chip that constitutes the memory access target bank reads the read data from the address specified by the read address in the memory cell array and stores the read data in its own memory. A process of storing in a data cache provided in the chip,
The second command sequence according to the read access instruction includes acquisition of read data stored in the data cache,
The memory system according to claim 1 .
前記ライトアクセス命令にかかる第1コマンドシーケンスは、ライトアドレスおよびライトデータの送信を含み、
前記ライトアクセス命令にかかるバンク内処理は、前記メモリアクセス対象のバンクを構成するメモリチップが、前記送信されてきたライトデータをメモリセルアレイにおける前記ライトアドレスにより指定された番地にプログラムする処理であって、
前記ライトアクセス命令にかかる第2コマンドシーケンスは、前記バンク内処理の成否情報の取得を含む、
ことを特徴とする請求項1に記載のメモリシステム。 The plurality of memory access instructions include a write access instruction,
The first command sequence according to the write access command includes transmission of a write address and write data,
The in-bank processing relating to the write access instruction is a process in which the memory chip constituting the memory access target bank programs the transmitted write data to the address specified by the write address in the memory cell array. ,
The second command sequence according to the write access instruction includes acquisition of success / failure information of the in-bank processing,
The memory system according to claim 1 .
前記イレースアクセス命令にかかる第1コマンドシーケンスは、イレースアドレスの送信を含み、
前記イレースアクセス命令にかかるバンク内処理は、前記メモリアクセス対象のバンクを構成するメモリチップが、メモリセルアレイにおける前記イレースアドレスにより指定された番地に格納されているデータを消去する処理であって、
前記イレースアクセス命令にかかる第2コマンドシーケンスは、前記バンク内処理の成否情報の取得を含む、
ことを特徴とする請求項1に記載のメモリシステム。 The plurality of memory access instructions include an erase access instruction,
The first command sequence according to the erase access command includes transmission of an erase address;
The in-bank processing related to the erase access instruction is a process in which a memory chip that constitutes the memory access target bank erases data stored at an address specified by the erase address in a memory cell array,
The second command sequence according to the erase access instruction includes acquisition of success / failure information of the in-bank processing,
The memory system according to claim 1 .
ホスト装置からの要求に基づいてバンク毎に複数のメモリアクセス命令を生成する命令生成ステップと、
前記複数のメモリアクセス命令の夫々に基づいて、実行完了の直後にメモリアクセス対象のバンクにバンク内処理を実行せしめる第1コマンドシーケンスと、前記バンク内処理の実行完了後に実行せしめられる第2コマンドシーケンスと、をメモリアクセス命令毎に生成するコマンドシーケンス生成ステップと、
前記生成された第1コマンドシーケンスおよび第2コマンドシーケンスをバンク毎に排他的に実行するコマンドシーケンス実行ステップと、
前記複数のバンクのうちの第1のバンクに対してi番目のメモリアクセス命令にかかる第2コマンドシーケンスとi+1番目のメモリアクセス命令にかかる第1コマンドシーケンスとを連続して実行した後で、かつ、前記第1のバンクがバンク内処理を実行している最中に、メモリアクセスの実行対象を第2のバンクに切り替える、第1のバンク切り替えステップと、
を備え、
前記i+1番目のメモリアクセス命令は、前記第1のバンク切り替えステップの実行を許可するか非許可するかを示すフラグ情報を備え、
前記i+1番目のメモリアクセス命令が備えるフラグ情報が許可を示すか非許可を示すかを判定するフラグ確認ステップと、
前記フラグ情報が非許可を示す場合には、前記第1のバンクに対してi番目のメモリアクセス命令にかかる第2コマンドシーケンスを実行した後に、前記i+1番目のメモリアクセス命令にかかる第1コマンドシーケンスの実行を開始せずに、前記第2のバンクに対する第1コマンドシーケンスまたは第2コマンドシーケンスの実行を開始する、第2のバンク切り替えステップと、
をさらに備えることを特徴とするバンクインターリーブ方法。 A bank interleaving method comprising a non-volatile memory cell array and interleaving memory access for each bank with respect to memory chips constituting a plurality of banks,
An instruction generation step for generating a plurality of memory access instructions for each bank based on a request from the host device;
Based on each of the plurality of memory access instructions, a first command sequence for causing the bank to be accessed to execute in-bank processing immediately after completion of execution, and a second command sequence to be executed after completion of execution of the in-bank processing. And a command sequence generation step for generating for each memory access instruction;
A command sequence execution step for exclusively executing the generated first command sequence and second command sequence for each bank;
After continuously executing the second command sequence relating to the i-th memory access instruction and the first command sequence relating to the i + 1-th memory access instruction to the first bank of the plurality of banks; and A first bank switching step of switching a memory access execution target to a second bank while the first bank is executing in-bank processing;
Equipped with a,
The (i + 1) th memory access instruction includes flag information indicating whether the execution of the first bank switching step is permitted or not permitted.
A flag confirmation step of determining whether flag information included in the (i + 1) th memory access instruction indicates permission or non-permission;
If the flag information indicates non-permission, a first command sequence related to the i + 1th memory access instruction is executed after executing a second command sequence related to the ith memory access instruction to the first bank. A second bank switching step for starting the execution of the first command sequence or the second command sequence for the second bank without starting the execution of
Further comprising bank interleaving method comprising Rukoto a.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012068157A JP5925549B2 (en) | 2012-03-23 | 2012-03-23 | Memory system and bank interleaving method |
US13/600,578 US8996782B2 (en) | 2012-03-23 | 2012-08-31 | Memory system and bank interleaving method |
US14/641,930 US9304691B2 (en) | 2012-03-23 | 2015-03-09 | Memory system and bank interleaving method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012068157A JP5925549B2 (en) | 2012-03-23 | 2012-03-23 | Memory system and bank interleaving method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013200678A JP2013200678A (en) | 2013-10-03 |
JP5925549B2 true JP5925549B2 (en) | 2016-05-25 |
Family
ID=49520887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012068157A Active JP5925549B2 (en) | 2012-03-23 | 2012-03-23 | Memory system and bank interleaving method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5925549B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018022383A (en) | 2016-08-04 | 2018-02-08 | 東芝メモリ株式会社 | Memory system |
US10534731B2 (en) * | 2018-03-19 | 2020-01-14 | Micron Technology, Inc. | Interface for memory having a cache and multiple independent arrays |
JP2020016954A (en) | 2018-07-23 | 2020-01-30 | キオクシア株式会社 | Memory system |
CN110209352B (en) * | 2019-05-14 | 2023-03-14 | 西安艾可萨科技有限公司 | Memory control method, memory controller, electronic device and storage medium |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05324535A (en) * | 1992-05-20 | 1993-12-07 | Toshiba Corp | Data transfer device |
JP4284200B2 (en) * | 2004-01-28 | 2009-06-24 | 株式会社東芝 | Nonvolatile semiconductor memory system |
KR100621631B1 (en) * | 2005-01-11 | 2006-09-13 | 삼성전자주식회사 | Solid state disk controller apparatus |
JP2010176646A (en) * | 2009-02-02 | 2010-08-12 | Toshiba Information Systems (Japan) Corp | Memory system and interleaving control method for memory system |
-
2012
- 2012-03-23 JP JP2012068157A patent/JP5925549B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013200678A (en) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9304691B2 (en) | Memory system and bank interleaving method | |
US9886378B2 (en) | Nonvolatile memory system using control signals to transmit varied signals via data pins | |
US20180088867A1 (en) | Semiconductor memory device and continuous reading method for the same | |
JP2015164090A (en) | multiple independent serial link memory | |
US10296233B2 (en) | Method of managing message transmission flow and storage device using the method | |
US11442664B2 (en) | Memory system and method of operating the same | |
US20140173173A1 (en) | Method, device, and system including configurable bit-per-cell capability | |
US20160329082A1 (en) | Storage device and operating method thereof | |
US7613070B2 (en) | Interleaved input signal path for multiplexed input | |
JP5925549B2 (en) | Memory system and bank interleaving method | |
KR102447465B1 (en) | Storage device temporarily suspending internal operation to provide short read response time for read request from host | |
KR20210087350A (en) | Storage device and operating method thereof | |
KR20210031266A (en) | Interface circuit, memory device, storage device and operation method of the memory device | |
US10658046B2 (en) | Memory device and method for operating the same | |
US20130173852A1 (en) | Memory system | |
CN110069427B (en) | Memory controller and operation method thereof | |
KR20210060867A (en) | Data storage device and operating method thereof | |
JP2022047854A (en) | Memory system | |
KR20210012818A (en) | Memory device and operating method thereof | |
KR102355436B1 (en) | Data storage device | |
US10566062B2 (en) | Memory device and method for operating the same | |
KR20200034312A (en) | Data storage device and operating method thereof | |
KR20140067400A (en) | Memory system including flash memory, first buffer meory, and memory controller and method for operating thereof | |
US11941294B2 (en) | Memory controller for controlling suspension of operation and method of operating the same | |
TWI667657B (en) | Memory device and method for operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151215 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20160209 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160210 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20160205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20160209 |
|
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: 20160322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160420 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5925549 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
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 |