IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

特開2022-51374半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法
<>
  • 特開-半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法 図1
  • 特開-半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法 図2
  • 特開-半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法 図3
  • 特開-半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法 図4
  • 特開-半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法 図5
  • 特開-半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法 図6
  • 特開-半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022051374
(43)【公開日】2022-03-31
(54)【発明の名称】半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法
(51)【国際特許分類】
   G11C 29/00 20060101AFI20220324BHJP
   G06F 11/10 20060101ALI20220324BHJP
【FI】
G11C29/00 412
G11C29/00 416
G06F11/10 662
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2020157813
(22)【出願日】2020-09-18
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002907
【氏名又は名称】特許業務法人イトーシン国際特許事務所
(72)【発明者】
【氏名】長尾 真帆
(72)【発明者】
【氏名】原田 陽介
【テーマコード(参考)】
5B001
5L206
【Fターム(参考)】
5B001AD03
5L206AA10
5L206CC07
5L206CC08
5L206CC11
5L206CC32
5L206CC34
5L206HH04
5L206HH06
(57)【要約】
【課題】アドレス管理をせずにファームウエアイメージを読み出すことができる半導体記憶装置を提供する。
【解決手段】実施形態の半導体記憶装置1は、動作制御プログラムを記憶する不揮発性メモリ3と、不揮発性メモリ3を制御するメモリコントローラ2とを有する。メモリコントローラ2は、動作制御プログラムが記憶されているアドレスを少なくとも1つ記憶するアドレス記憶部を備え、半導体記憶装置の起動時に、そのアドレスに基づいて、不揮発性メモリ3から動作制御プログラムを読み出して実行する。
【選択図】図1
【特許請求の範囲】
【請求項1】
動作制御プログラムを記憶する不揮発性メモリと、前記不揮発性メモリを制御するメモリコントローラとを有し、
前記メモリコントローラは、
前記動作制御プログラムが記憶されているアドレスを少なくとも1つ記憶するアドレス記憶部を備え、
前記半導体記憶装置の起動時に、前記アドレスに基づいて、前記不揮発性メモリから前記動作制御プログラムを読み出して実行する、
半導体記憶装置。
【請求項2】
前記メモリコントローラは、
複数の前記アドレスから1つのアドレスを選択し、
選択したアドレスに基づいて、前記動作制御プログラムを読み出して実行する、
請求項1に記載の半導体記憶装置。
【請求項3】
前記メモリコントローラは、
読み出した前記動作制御プログラムが正しく実行できなかった場合、複数の前記アドレスから他のアドレスを選択し、選択した前記他のアドレスに基づいて前記動作制御プログラムを読み出して実行する、
請求項2に記載の半導体記憶装置。
【請求項4】
前記アドレス記憶部は、ワンタイムプログラマブルROMである、
請求項1に記載の半導体装置。
【請求項5】
前記ワンタイムプログラマブルROMは、eFuseである、
請求項4に記載の半導体記憶装置。
【請求項6】
不揮発性メモリ中に動作制御プログラムを正しく書き込めるかのチェックを行い、
前記チェックにより前記動作制御プログラムを正しく書き込めることが確認できた場合に前記動作制御プログラムを書き込み、
前記動作制御プログラムが記憶されているアドレスを少なくとも1つアドレス記憶部に書き込む、
半導体記憶装置の動作制御プログラムの書き込み方法。
【請求項7】
前記チェックでは、前記動作制御プログラムを正しく書き込めるかを不揮発性メモリ中の複数のブロックについて行い、
前記アドレス記憶部には、複数のアドレスが書き込まれる、
請求項6に記載の半導体記憶装置の動作制御プログラムの書き込み方法。
【請求項8】
前記アドレス記憶部は、ワンタイムプログラマブルROMである、
請求項6に記載の半導体記憶装置の動作制御プログラムの書き込み方法。
【請求項9】
前記ワンタイムプログラマブルROMは、eFuseである、
請求項8に記載の半導体記憶装置の動作制御プログラムの書き込み方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法に関する。
【背景技術】
【0002】
不揮発性メモリを有する半導体記憶装置では、動作制御プログラムが、不揮発性メモリの特定の記憶領域に記憶される。動作制御プログラムは、ファームウエアイメージとも呼ばれる。ファームウエアイメージは、半導体記憶装置の起動時に読み出される。ファームウエアイメージが記憶される特定の記憶領域が不良メモリセルであると、ファームウエアイメージを記憶させることができない。そのような場合のために、MMU(Memory Management Unit)によるアドレス管理により、代替記憶領域にファームウエアイメージを記憶する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第3651886号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施形態は、アドレス管理をせずにファームウエアイメージを読み出すことができる半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
実施形態の半導体記憶装置は、動作制御プログラムを記憶する不揮発性メモリと、前記不揮発性メモリを制御するメモリコントローラとを有し、前記メモリコントローラは、前記動作制御プログラムが記憶されているアドレスを少なくとも1つ記憶するアドレス記憶部を備え、前記半導体記憶装置の起動時に、前記アドレスに基づいて、前記不揮発性メモリから前記動作制御プログラムを読み出して実行する。
【図面の簡単な説明】
【0006】
図1】本発明の実施形態に係る情報処理システムのハードウェア構造を示すブロック図である。
図2】実施形態に係る半導体記憶装置の起動時の処理の一例を示すフローチャートである。
図3】実施形態に係る第1の処理の一例を示すフローチャートである。
図4】実施形態に係る書き込み可能なブロックの探索処理の一例を示すフロー-チャートである。
図5】実施形態に係るファームウエアイメージの書き込み処理の詳細な処理の一例を示すフローチャートである。
図6】実施形態に係るワンタイムプログラマブルROMへの記録処理の一例を示すフローチャートである。
図7】実施形態に係る第2の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0007】
以下、図面を参照して実施形態を説明する。
(構成)
図1は、本発明の実施形態に係る情報処理システムのハードウェア構造を示すブロック図である。
【0008】
本発明の実施形態に係る情報処理システムは、ホスト4と、半導体記憶装置1とを含む。
【0009】
ホスト4は、例えばユーザの所有する機器であり、パーソナルコンピュータ(以下、PCという)、スマートフォンなどである。ホスト4は、プロセッサとしての中央処理装置(CPU)4aと、ROM(図示せず)、RAM(図示せず)、等を有する。
【0010】
半導体記憶装置1は、例えば、SSD(Solid State Drive)である。なお、半導体記憶装置1は、メモリカード等であってもよい。半導体記憶装置1は、ホスト4からのデータ書き込み要求又はデータ読み出し要求に応じて、ユーザデータの書き込み又はユーザデータの読み出しを行う。すなわち、半導体記憶装置1は、データの書き込み及びデータの読み出しが可能である。半導体記憶装置1は、ホスト4と接続可能である。
【0011】
半導体記憶装置1は、メモリコントローラ2と、複数の不揮発性メモリ3とを含む。メモリコントローラ2は、SoC(System-on-a-chip)チップである。不揮発性メモリ3は、例えば、NAND型フラッシュメモリである。不揮発性メモリ3は、FWイメージを記憶する。FWイメージは、動作制御プログラム及び各種パラメータデータを含むファイルである。
【0012】
次に、メモリコントローラ2の内部構成について説明する。メモリコントローラ2は、プロセッサ11と、RAM12と、RAMコントローラ13と、マスクROM14と、通信インターフェース(以下、通信I/F)15と、複数のフラッシュコントローラ16とを含む。プロセッサ11と、RAMコントローラ13、マスクROM14、通信I/F15、及び複数のフラッシュコントローラ16は、バス17により互いに通信可能に接続されている。
【0013】
プロセッサ11は、中央処理装置(以下、CPU)である。プロセッサ11は、動作制御プログラムを実行する。
【0014】
RAM12は、DRAM、SRAMなどの揮発性メモリである。
【0015】
RAMコントローラ13は、RAM12へのデータの書き込み及びRAM12からのデータの読み出しを制御する。
【0016】
マスクROM14は、読み出し専用の集積回路である。マスクROM14は、イニシャルプログラムローダ(Initial Program Loader、以下、IPL)を記憶する。IPLは、半導体記憶装置1が起動されたときにプロセッサ11により実行されるプログラムである。
【0017】
通信I/F15は、半導体記憶装置1の外部と通信する回路である。
【0018】
フラッシュコントローラ16は、不揮発性メモリ3に対するデータの書き込み及びデータの読み出しを制御する回路である。
【0019】
次に、プロセッサ11の内部構成について説明する。プロセッサ11は、ワンタイムプログラマブルROM(One Time Programmable ROM、以下、OTP-ROM)11aを含む。OTP-ROM11aは、eFuseの不揮発性メモリである。OTP-ROM11aにデータを書き込むことができる回数は、一度限りである。OTP-ROM11aに書き込まれたデータは不揮発性メモリ3に書き込まれたデータよりも信頼性が高い。OTP-ROM11aは、不揮発性のアドレス記憶部を構成する。
【0020】
次に、通信I/F15の内部構成について説明する。通信I/F15は、SATAインターフェース(Serial Advanced Technology Attachmentインターフェース、以下、SATAI/F)15aを含む。SATAI/F15aは、標準端子を有し、その標準端子を使用して、UART通信(Universal Asynchronous Receiver/Transmitter通信)を行うことができる。UART通信は、FWイメージを半導体記憶装置1に書き込むために行われる。UART通信において、SATAI/F15aは、ホスト4からの種々の要求やデータを受信したり、読み出されたユーザデータをホスト4へ出力したりする。
【0021】
次に、NAND型フラッシュメモリとしての不揮発性メモリ3の内部構成について説明する。NAND型フラッシュメモリとしての不揮発性メモリ3は、複数のブロックBLKを含む。ブロックBLKは、データの消去単位である。ブロックBLKは、複数のメモリセルMTを含む。メモリセルMTは、データを記憶可能である。メモリセルMTは、3ビットデータを記憶可能なTLC(Triple Level Cell)であってもよいし、4ビットデータを記憶可能なQLC(Quad Level Cell)であってもよい。メモリセルMTがTLC、QLCなどの多値化セルの場合、FWイメージは、pSLC領域(pseudo Single Level Cell領域、擬似シングルレベルセル領域)に格納される。pSLC領域は、2ビット以上のデータを記憶可能なメモリセルMTに1ビットデータを記憶する記憶領域である。
【0022】
ここで、IPLの機能について説明する。IPLは、第1の機能と第2の機能との2つの機能を有する。第1の機能は、半導体記憶装置がユーザにより使用される前に実行される機能である。第1の機能として、IPLは、UART通信により受信したプログラムをRAM12に展開して実行する。第2の機能は、ユーザが半導体記憶装置1を、例えば、自己のPCに接続して使用するときに実行される機能である。第2の機能として、IPLは、不揮発性メモリ3からFWイメージを読み出し、読み出したFWイメージをRAM12に展開し、RAM12から動作制御プログラムを実行する。第1の機能を実行するか、第2の機能を実行するかは、半導体記憶装置1の通信I/F15の接続状態に基づいて決定される。接続状態とは、例えば、複数の接点の短絡状態である。言い換えれば、2つの機能の選択は、半導体記憶装置1の外部端子の状態により決定される。
(作用)
次に、半導体記憶装置1の動作について説明する。図2は、半導体記憶装置1の起動時の処理の一例を示すフローチャートである。
【0023】
半導体記憶装置1が起動すると(START)、プロセッサ11は、マスクROM14に記憶されているIPLを読み出して実行する(S1)。
【0024】
IPLを実行したプロセッサ11は、半導体記憶装置1の通信I/F15の接続状態に基づいて、第1の機能を実行するか、または第2の機能を実行するかを判断する(S2)。
【0025】
第1の機能を実行すると判断した場合(S2 第1の機能)、プロセッサ11は、第1の機能を実行する(S3)。第1の機能を実行した後、プロセッサ11は、図2の一連の処理を終了する(END)。
【0026】
第2の機能を実行すると判断した場合(S2 第2の機能)、プロセッサ11は、第2の機能を実行する(S4)。第2の機能を実行した後、プロセッサ11は、図2の一連の処理を終了する(END)。
【0027】
図3は、第1の処理の一例を示すフローチャートである。第1の処理は、IPLの第1の機能と、FWイメージ書き込みプログラムB-PGMの処理に関する。FWイメージ書き込みプログラムB-PGMは、複数のブロックにFWイメージを書き込むプログラムである。
【0028】
第1の機能を実行すると判断した場合(START)、プロセッサ11は、通信I/F15を通じて外部とUART通信を行い、FWイメージ書き込みプログラムB-PGMを取得する(S11)。
【0029】
プロセッサ11は、取得したFWイメージ書き込みプログラムB-PGMを、RAMコントローラ13を介してRAM12に記憶させる(S12)。
【0030】
プロセッサ11は、RAM12に記憶させたFWイメージ書き込みプログラムB-PGMを実行する(S13)。
【0031】
FWイメージ書き込みプログラムB-PGMを実行したプロセッサ11は、書き込み可能なブロックの探索処理を実行する(S14)。
【0032】
S14の後、プロセッサ11は、FWイメージの書き込み処理を実行する(S15)。
【0033】
S15の後、プロセッサ11は、OTP-ROMへの記録処理を実行する(S16)。S16の後、プロセッサ11は、図3の一連の処理を終了する(END)。
【0034】
図4を用いて、書き込み可能なブロックの探索処理について詳述する。図4は、書き込み可能なブロックの探索処理の一例を示すフロー-チャートである。
【0035】
書き込み可能なブロックの探索処理を実行する場合(START)、プロセッサ11は、予め決められた1つの不揮発性メモリ3の所定の1つのブロックを選択する(S21)。例えば、最初は、1つの不揮発性メモリ3の最も小さいブロック番号のブロックが選択される。2回目のブロック選択のときは、2番目に小さいブロック番号のブロックが選択される。なお、ブロック番号の大きい順でも、所定のブロック番号についての所定の順でもよい。
【0036】
プロセッサ11は、S21で選択したブロックにテストデータを書き込む(S22)。
【0037】
プロセッサ11は、S21で選択したブロックからデータを読み出す(S23)。
【0038】
S23の後、プロセッサ11は、読み出したデータと書き込んだテストデータとが一致するか判断する(S24)。
【0039】
読み出したデータと書き込んだテストデータとが一致する場合(S24:YES)、プロセッサ11は、RAM12中の所定の記憶領域に、書き込み可能ブロック情報として、S21で選択したブロックのアドレス(物理ブロックアドレスPBA)を書き込む(S25)。
【0040】
読み出したデータと書き込んだテストデータが一致しない場合(S24:NO)、プロセッサ11は、S21の処理に進む。
【0041】
S25の後、プロセッサ11は、S25で書き込んだアドレス数が規定数以上になったかを判定する(S26)。規定数は、冗長なブロックの数である。例えば、規定数が4であれば、4つのアドレスがRAM12中に書き込まれるまでS11からS15の処理が繰り返される。なお、規定数は、複数の不揮発性メモリ3のうちの1つに対して定めてもよいし、2以上の不揮発性メモリ3に対して定めてもよい。
【0042】
S25で書き込んだアドレスの数が規定数以上にならなかった場合(S26:NO)、S21に進む。
【0043】
S25で書き込んだアドレス数が規定数以上になった場合(S26:YES)、プロセッサ11は、図3の処理を終了する(END)。結果として、RAM12のリストデータLDには、リスト形式で、規定数のアドレス情報(すなわち物理ブロックアドレスPBA)が格納される。
【0044】
書き込み可能なブロックの探索処理(S14)では、テストデータを書き込んで正しく読み出せるか否かを判定することにより、不揮発性メモリ3中に、テストデータを正しく書き込めたか、すなわち動作制御プログラム(FWイメージ)を正しく書き込めるかのチェックが行われる。書き込み可能なブロックの探索処理(S14)では、動作制御プログラム(FWイメージ)を正しく書き込めるかのチェックは、複数のブロックについて行われる。
【0045】
図5は、ファームウエアイメージの書き込み処理の詳細な処理の一例を示すフローチャートである。S14の処理の後(START)、プロセッサ11は、RAM12中のリストデータLDから1つのアドレスを選択する(S31)。
【0046】
プロセッサ11は、選択したアドレスで指定されたブロックのデータ消去を行い、その後、選択したアドレスで指定されたブロックに、FWイメージを書き込む(S32)。
【0047】
S32の後、プロセッサ11は、リストデータLD中の全てのアドレスで指定された全てのブロックにFWイメージを書き込んだか判定する(S33)。例えば、上記の規定数が4の場合、リストデータLDには、4つのアドレスが含まれる。その場合、4つのアドレスに関わる4つのブロックの全てに、FWイメージが書き込まれるため、プロセッサ11は、4つのブロックにFWイメージを書き込んだかを判定する。
【0048】
リストデータLD中の全てのアドレスで指定された全てのブロックにFWイメージを書き込んでない場合(S33:NO)、S31に進む。
【0049】
リストデータLD中の全てのアドレスで指定された全てのブロックにFWイメージを書き込んだ場合(S33:YES)、プロセッサ11は、図5の一連の処理を終了する(END)。
【0050】
ファームウエアイメージの書き込み処理(S15)では、動作制御プログラム(FWイメージ)を正しく書き込めることが確認できたブロックに動作制御プログラム(FWイメージ)が書き込まれる。
【0051】
図6は、ワンタイムプログラマブルROMへの記録処理の一例を示すフローチャートである。
【0052】
S15の処理の後(START)、プロセッサ11は、RAM12中のリストデータLDに含まれるNANDブロックのアドレスを、OTP-ROM11aに記録する(S41)。上述したように、OTP-ROM11aは、一回のみ書き込みが可能なeFuse形式のROMである。例えば上述した規定数が4の場合、プロセッサ11は、4つのアドレスをOTP-ROM11aに書き込む。すなわち、S41では、動作制御プログラム(FWイメージ)を正しく書き込めることが確認できたブロックについてのアドレスが、OTP-ROM11aに書き込まれる。S41では、OTP-ROM11aには、複数のアドレスが書き込まれる。
【0053】
S41の後、プロセッサ11は、OTP-ROM11aを変更不可にする処理を行う(S42)。S42の処理により、OTP-ROM11aに記録された規定数のアドレスは、変更されない。S42の後、プロセッサ11は、図6の一連の処理を終了する(END)。
【0054】
実施形態によれば、FWイメージ(動作制御プログラム)は、1つの不揮発性メモリ3中の複数のブロックに記憶され、OTP-ROM11aは、複数のブロックのアドレスを記憶する。よって、後述するように、プロセッサ11は、OTP-ROM11aに記録された複数のアドレスから1つのアドレスを選択して、選択したアドレスに対応するブロックから動作制御プログラムを読み出して実行可能となる。実施形態によれば、複数のブロックにFWイメージが記憶される。
【0055】
図7は、第2の処理の一例を示すフローチャートである。第2の処理は、IPLの第2の機能に関する。
【0056】
第2の機能を実行すると判断した場合(START)、プロセッサ11は、OTP-ROM11aから複数のアドレスのうちの1つを読み出す(S51)。例えば、最初は、複数のアドレスの中から最も小さい番号のアドレスが選択される。例えば、2回目は、複数のアドレスの中から2番目に小さい番号のアドレスが選択される。
【0057】
プロセッサ11は、S51で読み出したアドレスに基づいて、不揮発性メモリ3からFWイメージを読み出し、RAM12に記憶させる(S52)。
【0058】
プロセッサ11は、RAM12に記憶されたFWイメージを起動し(S53)、FWイメージが正しく起動したかを判定する(S54)。FWイメージが正しく起動したかは、例えば、所定の動作が実行されるかをチェックすることにより、確認することができる。
【0059】
FWイメージが正しく起動したとき(S54:YES)、プロセッサ11は、図7の一連の処理を終了する(END)。
【0060】
FWイメージが正しく起動しないとき(S54:NO)、プロセッサ11は、S51の処理に進む。
【0061】
実施形態によれば、プロセッサ11は、選択したアドレスに対応するブロックから読み出した動作制御プログラムが正しく実行できなかったときは、複数のアドレス中の他のアドレスを選択して、選択した他のアドレスに対応するブロックから動作制御プログラムを読み出して実行する。
【0062】
実施形態によれば、複数のアドレスの複数のブロックに、FWイメージが記録されているので、FWイメージを高い確率で起動させることができる。実施形態によれば、アドレス管理をせずにFWイメージを読み出すことができる、半導体記憶装置及び半導体記憶装置の動作制御プログラムの書き込み方法を提供することができる。実施形態によれば、半導体記憶装置1では、データが正しく書き込めるブロックが探索される。データが正しく書き込める複数のブロックにFWイメージが記憶される。FWイメージが書き込まれたブロックのアドレス情報は、OTP-ROM11aに記録される。半導体記憶装置1は、OTP-ROM11aに記憶されているアドレスに基づいてFWイメージを読み出す。
【0063】
なお、上述した実施形態では、FWイメージを正しく書き込める複数のブロックを探索して、その複数のブロックの複数のアドレスを、OTP-ROM11aに書き込んでいるが、FWイメージを正しく書き込める1つのブロックを探索して、その1つのブロックのアドレスを、OTP-ROM11aに書き込むようにしてもよい。
【0064】
実施形態は例示であり、発明の範囲はそれらに限定されない。
【符号の説明】
【0065】
1 半導体記憶装置
2 メモリコントローラ
3 不揮発性メモリ
4 ホスト
4a CPU
11 プロセッサ
11a ワンタイムプログラマブルROM
12 RAM
13 RAMコントローラ
14 マスクROM
15 通信インターフェース
15a SATAインターフェース
16 フラッシュコントローラ
17 バス
図1
図2
図3
図4
図5
図6
図7