JP2023118461A - メモリシステム、制御方法 - Google Patents
メモリシステム、制御方法 Download PDFInfo
- Publication number
- JP2023118461A JP2023118461A JP2022021423A JP2022021423A JP2023118461A JP 2023118461 A JP2023118461 A JP 2023118461A JP 2022021423 A JP2022021423 A JP 2022021423A JP 2022021423 A JP2022021423 A JP 2022021423A JP 2023118461 A JP2023118461 A JP 2023118461A
- Authority
- JP
- Japan
- Prior art keywords
- terminal
- mode
- spi
- command
- data
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims description 6
- 230000006870 function Effects 0.000 claims abstract description 40
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 101100300896 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RAV1 gene Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101000929885 Bacillus subtilis (strain 168) Isochorismatase Proteins 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Systems (AREA)
- Read Only Memory (AREA)
Abstract
【課題】簡単な構成によりインタフェースの機能を無効化することのできるメモリシステムを提供することを目的とする。【解決手段】実施形態のメモリシステムは、データを記憶する不揮発性のメモリと、メモリに対するコマンドおよびデータを受信可能な第1の端子およびメモリの動作を制御する制御指示を受信可能な第1のモードまたはデータを受信可能な第2のモードで動作する場合にデータ入出力端子として機能する第2の端子を有しコマンドを実行可能なSPIコントローラと、を備える。SPIコントローラは、第1の端子を介してコマンドを受信し、受信したコマンドが第2のモードに対応するコマンドか否かを判定し、判定の結果、コマンドが第2のモードに対応する場合に第2の端子の第1のモードの動作を無効化することを特徴とする。【選択図】図1
Description
本実施形態は、メモリシステムおよび制御方法に関する。
近年、システムの高機能化に伴い、内蔵メモリ容量は拡大の一途を辿っている。システムの内蔵メモリの大容量化に伴い、半導体メモリを搭載するシステムが増大している。このような状況において、システム内部では汎用性の高いシリアル・ペリフェラル・インタフェース(Serial Peripheral Interface; SPI)が使用されており、SPI NORやSPI NANDの需要が増加してきている。SPI NORは、SPIと互換性のあるインタフェースをもつNOR型メモリ、SPI NANDは、SPIと互換性のあるインタフェースをもつNAND型メモリである。SPI NORやSPI NANDにおけるSPIは、6端子で制御が可能である。そのため、少ない端子数の小型パッケージにて、Gbit(ギガビット)クラスの大容量メモリを実現することができ、実装基板の面積削減に有効である。
SPIを有する半導体記憶装置(すなわちSPI NOR, SPI NAND)は、電源(Vcc)、グランド(Vss)、アクティブ・ロー・チップ・セレクト(/CS)、シリアルクロック(SCK)、シリアルデータ入力(SI)、シリアルデータ出力(SO)、アクティブ・ロー・ホールド入力(/HOLD)、およびライトプロテクト(/WP)に対応する外部接続端子を備えている。このうち、/HOLD端子は、進行中のデータ転送を一時停止する機能を提供する。すなわち、ホストデバイスから/HOLD端子へ与える入力を、「H」レベル入力(VIH)から「L」レベル入力(VIL)とすると、コマンドやデータの入力や出力の動作を中断させることができる。ここで「H」レベルとは、電源Vccの電圧レベルと同一か略同一の電圧値、「L」レベルとは、グランドVssの電圧レベルと同一か略同一の電圧値である。
SPIは、複数の動作モードをサポートする。動作モードのうち、基本的なシングルSPIモードは、SIをシリアルデータ入力、SOをシリアルデータ出力として用いる。これに対して、SIおよびSOを双方向データ端子として用いることで、シングルSPIモードの2倍のデータレート動作を可能にするデュアルSPIモードや、SI,SOに加えて/WPや/HOLDを双方向データ端子として使用するクワッドSPIモードが知られている。近年ではインタフェースの高速化の要求から、クワッドSPIモードを使用する例が増加している。
標準的なSPIは一般に6端子で制御するから、クワッドSPIモードでは一つの端子(ピン)で複数の機能を担う必要がある。例えば、SI端子についてシリアルデータ入力(SI)とシリアルデータ入出力(SOI0)、SO端子についてシリアルデータ出力(SO)とシリアルデータ入出力(SOI1)、/WP端子についてライトプロテクト(/WP)とシリアルデータ入出力(SOI2)、/HOLD端子についてアクティブ・ロー・ホールド(/HOLD)とシリアルデータ入出力(SOI3)のように、それぞれの端子とアサインされる機能とを共有させることで、6端子で4ビットのデータ入出力を実現することができる。
実施形態のメモリシステムは、より簡潔にインタフェースの機能を無効化することのできるメモリシステムを提供することを目的とする。
実施形態のメモリシステムは、データを記憶する不揮発性のメモリと、メモリに対するコマンドおよびデータを受信可能な第1の端子およびメモリの動作を制御する制御指示を受信可能な第1のモードまたはデータを受信可能な第2のモードで動作する場合にデータ入出力端子として機能する第2の端子を有しコマンドを実行可能なSPIコントローラと、を備える。SPIコントローラは、第1の端子を介してコマンドを受信し、受信したコマンドが第2のモードに対応するコマンドか否かを判定し、判定の結果、コマンドが第2のモードに対応する場合に第2の端子の第1のモードの動作を無効化することを特徴とする。
(第1の実施形態の構成)
図1は、実施形態のメモリシステム10の構成の一例を示す図である。図1に示すように、メモリシステム10は、バスを介してホスト20と接続可能である。ホスト20は、例えば、SoC(System-On-a-Chip)として構成される半導体回路である。メモリシステム10は、例えばホスト20の外部記憶装置として機能する。ホスト20は、メモリシステム10に対して要求を発行することができる。要求は、リード要求およびライト要求を含む。
図1は、実施形態のメモリシステム10の構成の一例を示す図である。図1に示すように、メモリシステム10は、バスを介してホスト20と接続可能である。ホスト20は、例えば、SoC(System-On-a-Chip)として構成される半導体回路である。メモリシステム10は、例えばホスト20の外部記憶装置として機能する。ホスト20は、メモリシステム10に対して要求を発行することができる。要求は、リード要求およびライト要求を含む。
メモリシステム10は、例えば、シリアル・ペリフェラル・インタフェース(Serial Peripheral Interface; SPI)を有するNAND型フラッシュメモリである。ホスト20は、メモリシステム10からデータを読み出しまたは書き出す機能を有する。メモリシステム10は、SPIコントローラ100と、メモリセル110を有している。メモリセル110は、例えばシリアルフラッシュメモリチップ(図示せず)を含んでいる。シリアルフラッシュメモリチップは、複数のメモリセルトランジスタを備え、データを不揮発に記憶することができる。SPIコントローラ100は、SPIと互換性を持つ方法によりメモリセル110へのアクセスを実現する。
SPIコントローラ100は、SPIデコーダ120、データバッファ130、コマンドレジスタ140、アドレスレジスタ150、ステータスレジスタ160を含んでいる。SPIデコーダ120は、SPIと互換性を持つ方法により入力される要求(コマンド)、アドレス、データをデコードし、コマンドを実行する演算ブロックである。SPIデコーダ120は、入力されたコマンドおよびアドレスに応じてメモリセル110からデータを読み出すことができる。
データバッファ130は、メモリセル110に書き込むためのデータや、メモリセル110から読み出したデータを一時的に記憶する。コマンドレジスタ140は、SPIデコーダ120がデコードしたコマンドを一時的に記憶する。アドレスレジスタ150は、SPIデコーダ120がデコードしたアドレスを一時的に記憶する。ステータスレジスタ160は、SPIデコーダ120が実行したコマンドによりメモリセル110から読み出した状態(ステータス)を一時的に記憶する。
ホスト20は、外部インタフェース(Ext I/F)210、CPU(Central Processing Unit)230、バッファメモリ(Buffer)240、NANDインタフェース(NAND I/F)250、およびRAMインタフェース(RAM I/F)260を備えている。これらの各部は、内部バスにより互いに通信可能に接続される。
ホスト20は、メモリシステム10に対してプログラム処理、リード処理、イレース処理などを行う。ホスト20は、例えばSoC(System-On-a-Chip)として構成される半導体回路である。ホスト20は、FPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit)として構成されてもよい。ホスト20は、複数のチップによって構成されてもよい。ホスト20の各機能は、ソフトウェア(ファームウェア)を実行するCPU230、専用ハードウェア、またはこれらの組み合わせによって実現され得る。CPU230は、ホスト20の動作を制御する。
外部インタフェース210は、例えばSATA(Serial Advanced Technology Attachment)規格、SAS(Serial Attached SCSI)(登録商標)規格、PCI(Peripheral Components Interconnect) Express(登録商標)(PCIe)規格、またはSMBus(System Management Bus)(登録商標)規格などのインタフェース規格に準拠したバスを介して他の外部機器(図示せず)と接続され、ホスト20と外部機器との間の通信を実現する。
NANDインタフェース250は、メモリシステム10と接続され、ホスト20とSPIコントローラ100との通信を実行する。RAMインタフェース260は、RAM220と接続され、ホスト20とRAM220との通信を実行する。
RAM220は、RAMインタフェース260を介してCPU230に作業領域を提供する。バッファメモリ240は、メモリシステム10に送信されるデータ、およびメモリシステム10から受信したデータを一時的に保持する。RAM220およびバッファメモリ240は、例えばDRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、またはこれらの組み合わせによって実現され得る。なお、RAM220およびバッファメモリ240を構成するメモリの種類は、これらに限定されない。バッファメモリ240は、ホスト20の外部に実装されてもよい。
メモリシステム10は、少なくとも6つの入出力端子を有しており、それぞれがホスト20と接続されるように構成される。図1に示す例では、SCK端子、CS端子、SI/SIO0端子、SO/SIO1端子、WP/SIO2端子、およびHOLD/SIO3端子が示されている。
(SPIにおける複数の機能と端子の共有)
SCK端子は、シリアルクロックを受ける入力端子であり、ホスト20から所定のクロック信号を受ける。CS端子は、チップセレクト機能を担う端子であり、メモリシステム10が複数設けられている場合にコマンド対象のメモリシステム10を特定する機能をもつ。
SCK端子は、シリアルクロックを受ける入力端子であり、ホスト20から所定のクロック信号を受ける。CS端子は、チップセレクト機能を担う端子であり、メモリシステム10が複数設けられている場合にコマンド対象のメモリシステム10を特定する機能をもつ。
SI/SIO0端子は、標準シリアル入力データを受ける入力端子であるとともに、デュアルSPIモードやクアッドSPIモードで動作する場合にデータ入出力端子としても機能する。SO/SIO1端子は、標準シリアル出力データを出力する出力端子であるとともに、デュアルSPIモードやクアッドSPIモードで動作する場合にデータ入出力端子としても機能する。WP/SIO2端子は、標準SPIモードにおいてハードウェア書込み保護機能の制御を受ける入力端子であるとともに、クアッドSPIモードで動作する場合にデータ入出力端子としても機能する。HOLD/SIO3端子は、標準SPIモードおよびデュアルSPIモードにおいてデータ入力停止の制御を受ける入力端子であるとともに、クアッドSPIモードで動作する場合にデータ入出力端子としても機能する。すなわち、SI/SIO0端子、SO/SIO1端子、WP/SIO2端子、およびHOLD/SIO3端子は、複数の機能を一つの端子で共有している。
複数の機能について一つの端子を共用する場合、不要な機能を止める必要がある。例えば、クアッドSPIモードを使用する場合、SOI3の機能を有効にするにはアクティブ・ロー・ホールド(/HOLD)機能を無効(Disable)にする必要がある。アクティブ・ロー・ホールド(/HOLD)機能を無効にするには、例えば設定コマンドを与えてSet Feature機能やGet Feature機能をあらかじめ実行する必要がある。ただし、設定コマンドによる設定は、システムの電源をオフにすると元に戻ってしまう。従って、電源をオンにする度に設定する必要がある。
実施形態のメモリシステムは、かかる設定コマンドを用いずにクアッドSPI動作のデータ受信を可能にする。具体的には、SPIデコーダ120が、クアッドSPIモードのコマンドである「Program Load x4(32h)」を受信したかどうかを判定し、判定結果に基づいてHOLD機能を無効化させる。コマンド「Program Load x4(32h)」は、4ビット単位でプログラムをロードするコマンドである。このコマンドを実行する場合、(1)「Write Enable」(書込み可能化)、(2)「Program Load」(プログラムロード)、(3)「Program Execute」(プログラム実行)、および(4)「Get Feature」(システムステータス取得)の一連のコマンドシーケンスが動作する。実施形態のメモリシステムは、このうち(2)「Program Load」を判定に用いている。
以下、図1ないし図3を参照して、実施形態のメモリシステムの動作を説明する。図3に示すように、メモリシステム10において、SCK端子にはシリアルクロックが入力される。CS端子は、通常「H」レベルに維持されており、SPIデコーダ120がCS端子における「H」レベルから「L」レベルへの遷移を検出すると(S500のYes)、SPIデコーダ120はSI/SIO0端子を通じてコマンドを受信する。SPIデコーダ120がコマンドを受信すると、SPIデコーダ120は、受信したコマンドをコマンドレジスタ140に記憶させる。SPIデコーダ120は、コマンドレジスタ140に記録されたコマンドをデコードする(S510)。図3に示す例では、SPIデコーダ120は「110010」(32h)のビット列を受信しており、SPIデコーダ120は、このビット列の内容をデコードする。
SPIデコーダ120は、デコードしたコマンドが「Program Load x4 (32h)」であるか否かを判定する(S520)。コマンド「Program Load x4 (32h)」は、SI/SIO0端子、SO/SIO1端子、WP/SIO2端子、およびHOLD/SIO3端子の4つの端子を用いてプログラムをロードする。従って、コマンド「Program Load x4 (32h)」を受信したということは、続くデータについてはHOLD/SIO3端子がデータ入出力端子として用いられることを意味している。
受信したビット列がコマンド「Program Load x4 (32h)」である場合(S520でYes)、SPIデコーダ120は、続くカラムアドレスの受信を開始する。並行して、SPIデコーダ120は、/HOLD機能を無効化する(S530)。このとき、/HOLD機能の無効化は、カラムアドレスの受信期間中(図3における「機能設定期間」)に行う。さらに続くデータバイトの受信に備えるためである。図3に示す例では、受信したビット列は32hであり、「Program Load x4 (32h)」に対応する。SPIデコーダ120は、続く4ビットのダミービットと、12ビットのカラムアドレスを受信する。SPIデコーダ120は、受信したカラムアドレスをアドレスレジスタ150に記憶させる。
SPIデコーダ120は、SI/SIO0端子、SO/SIO1端子、WP/SIO2端子、およびHOLD/SIO3端子の4つの端子を用いてプログラムデータを受信する(S540)。図3に示すように、このとき受信するプログラムデータは、4ビットずつ受信され、8ビット単位のバイトデータとなる。受信したプログラムデータは、データバッファ130に記憶される。
SPIデコーダ120は、CS端子のレベルを監視している(S550)。CS端子のレベルが「L」の間は(S550でNo)、データの受信を継続する。SPIデコーダ120がCS端子に入力されるレベルの「L」から「H」への遷移を検出すると(S550でYes)、SPIデコーダ120は、データの受信を終了する。
SPIデコーダ120がデコードしたコマンドが「Program Load x4 (32h)」であるか否かを判定した結果、受信したビット列がコマンド「Program Load x4 (32h)」ではない場合(S520でNo)、処理を終了する。
このように、実施形態のメモリシステムによれば、クアッドSPIモードにて用いられるコマンドを受信することにより、機能を共有する端子について不要な機能を無効化することができる。また、コマンドを受信した際にその都度モードの判定を行うので、システムの電源がオフとなった場合でも機能を再設定するコマンドを省略することができる。なお、上記説明した例では、SPIを有するNAND型フラッシュメモリを用いているが、これには限定されない。SPIを有するNOR型フラッシュメモリでも同様の効果を奏することができる。
(第2の実施形態)
続いて、図4ないし図6を参照して、第2の実施形態に係るメモリシステムについて説明する。図4に示すように、第2の実施形態に係るメモリシステム2は、第1の実施形態に係るメモリシステム1の構成のうちSPIコントローラの構成を変更したものである。以下の説明において、第1の実施形態と共通する要素については共通の符号を付して示し、重複する説明は省略する。
続いて、図4ないし図6を参照して、第2の実施形態に係るメモリシステムについて説明する。図4に示すように、第2の実施形態に係るメモリシステム2は、第1の実施形態に係るメモリシステム1の構成のうちSPIコントローラの構成を変更したものである。以下の説明において、第1の実施形態と共通する要素については共通の符号を付して示し、重複する説明は省略する。
図4に示すように、メモリシステム12は、SPIコントローラ102と、メモリセル110を有している。SPIコントローラ102は、SPIによりメモリセル110へのアクセスを実現する。
SPIコントローラ102は、SPIデコーダ122、データバッファ130、コマンドレジスタ140、アドレスレジスタ150、ステータスレジスタ160を含んでいる。SPIデコーダ122は、SPIに準拠して入力される要求(コマンド)、アドレス、データをデコードし、コマンドを実行する演算ブロックである。SPIデコーダ122は、入力されたコマンドおよびアドレスに応じてメモリセル110からデータを読み出すことができる。SPIデコーダ122は、第1の実施形態におけるSPIデコーダ120と比較して、クアッドSPIモードによるデータ伝送を判定するためのコマンドの種類が異なっている。すなわち、第2の実施形態では、SPIデコーダ122は、ホスト20から送られるコマンドが、「Program Load Random Data x4 (34h or C4h)」であるか否かを判定している。
コマンド「Program Load Random Data x4 (34h or C4h)」は、4ビット単位でプログラムをロードするコマンドである。このコマンドを実行する場合、(1)「Write Enable」(書込み可能化)、(2)「Program Load Random Data」(プログラムロード)、(3)「Program Execute」(プログラム実行)、および(4)「Get Feature」(システムステータス取得)の一連のコマンドシーケンスが動作する。実施形態のメモリシステムは、このうち(2)「Program Load Random Data」を判定に用いている。
以下、図4ないし図6を参照して、第2の実施形態のメモリシステム2の動作を説明する。図6に示すように、メモリシステム12において、SCK端子にはシリアルクロックが入力される。CS端子は、通常「H」レベルに維持されており、SPIデコーダ122がCS端子における「H」レベルから「L」レベルへの遷移を検出すると(S600のYes)、SPIデコーダ122はSI/SIO0端子を通じてコマンドを受信する。SPIデコーダ122がコマンドを受信すると、SPIデコーダ122は、受信したコマンドをコマンドレジスタ140に記憶させる。SPIデコーダ122は、コマンドレジスタ140に記録されたコマンドをデコードする(S610)。図6に示す例では、SPIデコーダ122は「110100」(34h)のビット列を受信しており、SPIデコーダ122は、このビット列の内容をデコードする。SPIデコーダ122が「11000100」(C4h)のビット列を受信した場合も同様である。
SPIデコーダ122は、デコードしたコマンドが「Program Load Random Data x4 (34hまたはC4h)」であるか否かを判定する(S620)。コマンド「Program Load Random Data x4 (34hまたはC4h)」は、SI/SIO0端子、SO/SIO1端子、WP/SIO2端子、およびHOLD/SIO3端子の4つの端子を用いてプログラムをロードする。従って、コマンド「Program Load Random Data x4 (34hまたはC4h)」を受信したということは、続くデータについてはHOLD/SIO3端子がデータ入出力端子として用いられることを意味している。
受信したビット列がコマンド「Program Load Random Data x4 (34hまたはC4h)」である場合(S620でYes)、SPIデコーダ122は、続くカラムアドレスの受信を開始する。並行して、SPIデコーダ122は、/HOLD機能を無効化する(S630)。このとき、/HOLD機能の無効化は、カラムアドレスの受信期間中(図6における「機能設定期間」)に行う。さらに続くデータバイトの受信に備えるためである。図6に示す例では、受信したビット列は34hであり、「Program Load Random Data x4 (34h)」に対応する。SPIデコーダ122は、続く4ビットのダミービットと、12ビットのカラムアドレスを受信する。SPIデコーダ122は、受信したカラムアドレスをアドレスレジスタ150に記憶させる。
SPIデコーダ122は、SI/SIO0端子、SO/SIO1端子、WP/SIO2端子、およびHOLD/SIO3端子の4つの端子を用いてプログラムデータを受信する(S640)。図6に示すように、このとき受信するプログラムデータは、4ビットずつ受信され、8ビット単位のバイトデータとなる。受信したプログラムデータは、データバッファ130に記憶される。
SPIデコーダ122は、CS端子のレベルを監視している(S650)。CS端子のレベルが「L」の間は(S650でNo)、データの受信を継続する。SPIデコーダ122がCS端子に入力されるレベルの「L」から「H」への遷移を検出すると(S650でYes)、SPIデコーダ122は、データの受信を終了する。
SPIデコーダ122がデコードしたコマンドが「Program Load Random Data x4 (34hまたはC4h)」であるか否かを判定した結果、受信したビット列がコマンド「Program Load Random Data x4 (34hまたはC4h)」ではない場合(S620でNo)、処理を終了する。
このように、実施形態のメモリシステムによれば、クアッドSPIモードにて用いられるコマンドを受信することにより、機能を共有する端子について不要な機能を無効化することができる。また、コマンドを受信した際にその都度モードの判定を行うので、システムの電源がオフとなった場合でも機能を制御するコマンドを省略することができる。なお、上記説明した例では、SPIを有するNAND型フラッシュメモリを用いているが、これには限定されない。SPIを有するNOR型フラッシュメモリでも同様の効果を奏することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…メモリシステム、100…SPIコントローラ、110…メモリセル、120…SPIデコーダ、130…データバッファ、140…コマンドレジスタ、150…アドレスレジスタ、160…ステータスレジスタ、20…ホスト、210…外部インタフェース、220…RAM、230…CPU、240…バッファメモリ、250…NANDインタフェース、260…RAMインタフェース。
Claims (5)
- データを記憶する不揮発性のメモリと、
前記メモリに対するコマンドおよび前記データを受信可能な第1の端子と、前記メモリの動作を制御する制御指示を受信可能な第1のモードまたは前記データを受信可能な第2のモードで動作する場合にデータ入出力端子として機能する第2の端子とを有し前記コマンドを実行可能なSPIコントローラと、を備え、
前記SPIコントローラは、
前記第1の端子を介して前記コマンドを受信し、
受信した前記コマンドが前記第2のモードに対応するコマンドか否かを判定し、
前記判定の結果、前記コマンドが前記第2のモードに対応する場合に前記第2の端子の前記第1のモードの動作を無効化すること
を特徴とするメモリシステム。 - 前記制御指示は、前記メモリに対するコマンドの少なくとも一部を停止する機能であることを特徴とする請求項1記載のメモリシステム。
- 前記第2のモードに対応するコマンドは、前記第1の端子および前記第2の端子を用いてプログラムをロードする命令であることを特徴とする請求項1記載のメモリシステム。
- 前記第1のモードは、シリアル・ペリフェラル・インタフェース規格における標準モードであり、前記第2のモードは、前記シリアル・ペリフェラル・インタフェース規格におけるクアッドSPIモードであることを特徴とする請求項1記載のメモリシステム。
- データを記憶する不揮発性のメモリと、前記メモリに対するコマンドおよび前記データを受信可能な第1の端子、および前記メモリの動作を制御する制御指示を受信可能な第1のモードまたは前記データを受信可能な第2のモードで動作する場合にデータ入出力端子として機能する第2の端子を有し前記コマンドを実行可能なSPIコントローラと、を備えたメモリシステムの制御方法であって、前記SPIコントローラが、
前記第1の端子を介して前記コマンドを受信し、
受信した前記コマンドが前記第2のモードに対応するコマンドか否かを判定し、
前記判定の結果、前記コマンドが前記第2のモードに対応する場合に前記第2の端子の前記第1のモードの動作を無効化すること
を特徴とする制御方法
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022021423A JP2023118461A (ja) | 2022-02-15 | 2022-02-15 | メモリシステム、制御方法 |
US17/897,064 US20230259277A1 (en) | 2022-02-15 | 2022-08-26 | Memory system and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022021423A JP2023118461A (ja) | 2022-02-15 | 2022-02-15 | メモリシステム、制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023118461A true JP2023118461A (ja) | 2023-08-25 |
Family
ID=87558490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022021423A Pending JP2023118461A (ja) | 2022-02-15 | 2022-02-15 | メモリシステム、制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230259277A1 (ja) |
JP (1) | JP2023118461A (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10042808B1 (en) * | 2015-09-16 | 2018-08-07 | Xilinx, Inc. | Modeling SPI flash memory commands in hardware |
JP2021149239A (ja) * | 2020-03-17 | 2021-09-27 | キオクシア株式会社 | メモリシステム |
JP2021149998A (ja) * | 2020-03-23 | 2021-09-27 | キオクシア株式会社 | メモリシステムおよび情報機器 |
CN112052213B (zh) * | 2020-10-10 | 2022-12-02 | 乐鑫信息科技(上海)股份有限公司 | 增强型spi控制器以及操作spi控制器的方法 |
-
2022
- 2022-02-15 JP JP2022021423A patent/JP2023118461A/ja active Pending
- 2022-08-26 US US17/897,064 patent/US20230259277A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230259277A1 (en) | 2023-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102184260B1 (ko) | 반도체 기억장치 및 이를 위한 연속 판독 방법 | |
TWI434286B (zh) | 具擴充模式之固態儲存元件控制器及其運作方法 | |
US10089257B2 (en) | Semiconductor storage device and control method thereof | |
KR20150124751A (ko) | 불휘발성 메모리 시스템 | |
US8489843B2 (en) | Configurable memory device | |
JP4869713B2 (ja) | マルチチップパッケージデバイス | |
US10445017B2 (en) | Memory system and operating method thereof | |
US20080010419A1 (en) | System and Method for Issuing Commands | |
US11461226B2 (en) | Storage device including memory controller | |
US11442664B2 (en) | Memory system and method of operating the same | |
CN112445731B (zh) | 存储系统 | |
US9508400B1 (en) | Storage device and operating method thereof | |
US20190220220A1 (en) | Data storage device, operating method thereof and nonvolatile memory device | |
TWI408692B (zh) | 記憶體控制器及外部記憶體裝置之間的位址轉換 | |
US20080007569A1 (en) | Control protocol and signaling in a new memory architecture | |
TW202115568A (zh) | 記憶體系統 | |
KR102464305B1 (ko) | 반도체 장치 | |
KR102526256B1 (ko) | 데이터 출력 버퍼 | |
JP2023118461A (ja) | メモリシステム、制御方法 | |
CN107301872B (zh) | 半导体存储器装置的操作方法 | |
US11170827B2 (en) | Data buffer and memory device having the same | |
US20190027198A1 (en) | Electronic devices | |
US20240302994A1 (en) | Memory system | |
US20220391130A1 (en) | Memory system | |
US20220300436A1 (en) | Semiconductor storage device, memory controller, and memory system |