(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044224
(43)【公開日】2024-04-02
(54)【発明の名称】メモリシステム及び制御方法
(51)【国際特許分類】
G06F 13/42 20060101AFI20240326BHJP
【FI】
G06F13/42 310
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022149629
(22)【出願日】2022-09-20
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001612
【氏名又は名称】弁理士法人きさらぎ国際特許事務所
(72)【発明者】
【氏名】松本 真梨子
(57)【要約】
【課題】ホストとの通信接続を安定化するメモリシステムを提供する。
【解決手段】実施形態に係るメモリシステムは、メモリと、制御回路と、インタフェース回路と、を備える。インタフェース回路は、外部から供給される第1クロックを受信可能な第1端子と、第1信号を受信可能な第2端子と、を含む。制御回路は、第1状態である場合、第1信号の入力に応じて第2状態に、第1クロックの入力に応じて第3状態に遷移する。第2状態である場合、内部で発生させる第2クロックに基づいて動作する第1モードの初期化処理を実行し、又は、第1モードで動作可能な状態であり、第1クロックの入力に応じて第1モードで動作可能な状態を終了し、第3状態に遷移する。第3状態である場合、第1信号の入力に応じて第4状態に遷移する。第4状態である場合、第1クロックに基づいて動作する第2モードの初期化処理を実行し、又は、第2モードで動作可能な状態である。
【選択図】
図5
【特許請求の範囲】
【請求項1】
メモリと、
前記メモリを制御する制御回路と、
前記制御回路に接続されたインタフェース回路と
を備え、
前記インタフェース回路は、
外部から供給される第1クロックを受信可能な第1端子と、
第1信号を受信可能な第2端子と
を含み、
前記制御回路は、
第1状態~第4状態のうち何れかの状態から他の状態に遷移可能であり、
前記第1状態である場合、
前記第1信号の入力検出に応じて、前記第2状態に遷移し、
前記第1クロックの入力検出に応じて、前記第3状態に遷移し、
前記第2状態である場合、
内部で発生させる第2クロックに基づいて前記インタフェース回路を動作させる第1モードの初期化処理を実行し、又は、前記第1モードで動作可能な状態であり、
前記第1クロックの入力検出に応じて、前記第1モードで動作可能な状態を終了し、且つ、前記第3状態に遷移し、
前記第3状態である場合、
前記第1信号の入力検出に応じて、前記第4状態に遷移し、
前記第4状態である場合、
前記第1クロックに基づいて前記インタフェース回路を動作させる第2モードの初期化処理を実行し、又は、前記第2モードで動作可能な状態である
メモリシステム。
【請求項2】
前記制御回路が前記第2状態である場合、
前記第1モードの初期化処理の実行中に前記第1信号の入力を検出したことに応じて、前記第1モードの初期化処理を継続し、
前記第1モードにおける動作中に前記第1信号の入力を検出したことに応じて、前記第1モードにおける動作を継続する
請求項1記載のメモリシステム。
【請求項3】
前記制御回路が前記第2状態である場合、
前記第1信号の入力を検出したことに応じて、前記第2状態を維持する
請求項1記載のメモリシステム。
【請求項4】
前記インタフェース回路は、前記第1クロック及び前記第2クロックのいずれかに基づく第3クロックで動作する
請求項1記載のメモリシステム。
【請求項5】
前記第1信号は、第1電圧から、前記第1電圧と異なる第2電圧への遷移を含む
請求項1記載のメモリシステム。
【請求項6】
前記第1モードは、Peripheral Component Interconnect Express(PCIe)規格に準拠したSeparate Reference Independent Spreadで動作するモードであり、
前記第2モードは、Peripheral Component Interconnect Express(PCIe)規格に準拠したCommon Clockで動作するモードである
請求項1記載のメモリシステム。
【請求項7】
メモリと、
前記メモリを制御する制御回路と、
外部から供給される第1クロック及び第1信号を受信可能なインタフェース回路と
を備えるメモリシステムの制御方法であって、
前記制御回路は、
第1状態~第4状態のうち何れかの状態から他の状態に遷移可能であり、
前記第1状態である場合、
前記第1信号の入力検出に応じて、前記第2状態に遷移し、
前記第1クロックの入力検出に応じて、前記第3状態に遷移し、
前記第2状態である場合、
内部で発生させる第2クロックに基づいて前記インタフェース回路を動作させる第1モードの初期化処理を実行し、又は、前記第1モードで動作可能な状態であり、
前記第1クロックの入力検出に応じて、前記第1モードで動作可能な状態を終了し、且つ、前記第3状態に遷移し、
前記第3状態である場合、
前記第1信号の入力検出に応じて、前記第4状態に遷移し、
前記第4状態である場合、
前記第1クロックに基づいて前記インタフェース回路を動作させる第2モードの初期化処理を実行し、又は、前記第2モードで動作可能な状態である
制御方法。
【請求項8】
メモリと、
前記メモリを制御する制御回路と、
前記制御回路に接続されたインタフェース回路と
を備え、
前記インタフェース回路は、
外部から供給される第1クロックを受信可能な第1端子と、
第1信号を受信可能な第2端子と
を含み、
前記制御回路は、
内部で発生させる第2クロックに基づいて前記インタフェース回路を動作させる第1モードと、
前記第1クロックに基づいて前記インタフェース回路を動作させる第2モードと
で動作可能であり、
前記第1モードの初期化処理の実行中、又は、前記第1モードで動作可能な状態での、前記第1クロックへの入力検出に応じて、前記初期化処理を中断し、又は、前記第1モードで動作可能な状態を終了し、
前記初期化処理の中断後、又は、前記第1モードで動作可能な状態の終了後の、前記第1信号の入力検出に応じて、前記第2モードの初期化処理を実行する
メモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
メモリと、メモリを制御する制御回路と、制御回路に接続されたインタフェース回路と、を備えるメモリシステムが知られている。メモリシステムは、ホストと接続可能である。ホストと接続された状態で、メモリシステムはホストと通信する。メモリシステムとホストとの通信は複数のモードを有する。通信のモードは、ある条件に応じて切り替わる。
【背景技術】
【0002】
メモリシステムとホストとの通信接続の安定化が望まれている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許第10366044号明細書
【特許文献2】米国特許第10452576号明細書
【特許文献3】米国特許第10909047号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
実施形態では、メモリシステムとホストとの通信接続の安定化を図る。
【課題を解決するための手段】
【0005】
実施形態に係るメモリシステムは、メモリと、メモリを制御する制御回路と、制御回路に接続されたインタフェース回路と、を備える。インタフェース回路は、外部から供給される第1クロックを受信可能な第1端子と、第1信号を受信可能な第2端子と、を含む。制御回路は、第1状態~第4状態のうち何れかの状態から他の状態に遷移可能である。制御回路は、第1状態である場合、第1信号の入力検出に応じて、第2状態に遷移し、第1クロックの入力検出に応じて第3状態に遷移する。また、第2状態である場合、内部で発生させる第2クロックに基づいてインタフェース回路を動作させる第1モードの初期化処理を実行し、又は、第1モードで動作可能な状態であり、第1クロックの入力検出に応じて第1モードで動作可能な状態を終了し、且つ、第3状態に遷移する。また、第3状態である場合、第1信号の入力検出に応じて第4状態に遷移する。また、第4状態である場合、第1クロックに基づいてインタフェース回路を動作させる第2モードの初期化処理を実行し、又は、第2モードで動作可能な状態である。
【図面の簡単な説明】
【0006】
【
図1】第1実施形態に係るメモリシステムの構成を示す模式的なブロック図である。
【
図2】第1実施形態に係るコントローラの一部の構成を示す模式的なブロック図である。
【
図3】第1実施形態に係るPERST割り込み発生時の処理について説明するためのフローチャートである。
【
図4】第1実施形態に係るRefClk割り込み発生時の処理について説明するためのフローチャートである。
【
図5】第1実施形態に係るクロックモードの選択方法について説明するための状態遷移表である。
【
図6】第1実施形態に係るCCモードの初期化処理について説明するためのフローチャートである。
【
図7】第1実施形態に係るSRISモードの初期化処理について説明するためのフローチャートである。
【
図8】比較例のPERST割り込み発生時の処理について説明するためのフローチャートである。
【
図9】比較例のRefClk割り込み発生時の処理について説明するためのフローチャートである。
【
図10】比較例のメモリシステム初期化処理について説明するためのタイミングチャートである。
【発明を実施するための形態】
【0007】
実施形態に係るメモリシステムを、図面を参照して詳細に説明する。尚、以下の実施形態はあくまでも一例であり、本発明を限定する意図で示されるものではない。また、以下の図面は模式的なものであり、説明の都合上、一部の構成等が省略される場合がある。また、複数の実施形態について共通する部分には同一の符号を付し、説明を省略する場合がある。
【0008】
本明細書において、第1の構成が第2の構成に「電気的に接続されている」とは、第1の構成が第2の構成に直接接続されている状態と、第1の構成が第2の構成に配線、接続部材又はコネクタ等を介して接続されている状態と、を含む。
【0009】
[第1実施形態]
[メモリシステム10の構成]
図1は、実施形態に係るメモリシステム10の構成を示す模式的なブロック図である。メモリシステム10は、ホスト20から送信されたコマンドに応じて、ユーザデータの読出動作、書込動作、消去動作等を行う。メモリシステム10は、ユーザデータを記憶可能なシステムである。メモリシステム10は、例えば、SSD(Solid State Drive)である。メモリシステム10とホスト20とは、例えばシリアル通信によって通信を行う。メモリシステム10とホスト20とは、例えばPCIe(Peripheral Component Interconnect Express)(
TM)規格に準拠して通信を行う。
【0010】
メモリシステム10は、複数のメモリデバイスMDと、コントローラCTRと、を備える。メモリデバイスMDは、ユーザデータを記憶する。メモリデバイスMDは、例えば、NANDフラッシュメモリである。
【0011】
コントローラCTRは、複数のメモリデバイスMD及びホスト20に電気的に接続される。コントローラCTRは、メモリデバイスMDを制御する。コントローラCTRは、例えば、SoC(System on a Chip)の様な半導体集積回路として構成される。コントローラCTRは、CPU(Central Processing Unit)のダイ、PCIeコントローラ(インタフェース回路)のダイ等を備える。コントローラCTRは、論理アドレスと物理アドレスの変換、ビット誤り検出/訂正、ガベージコレクション(コンパクション)、ウェアレベリング等の処理を行う。コントローラCTRの各部の機能は、専用ハードウェア、プログラムを実行するプロセッサ、又はこれらの組み合わせ、のいずれかにより実現され得る。
【0012】
図2は、コントローラCTRの一部の構成を示す模式的なブロック図である。コントローラCTRは、インタフェース回路に相当するPCIeコントローラ(PCIeC)100と、CPU200と、を備える。
【0013】
[PCIeコントローラ100]
PCIeコントローラ100は、物理層制御回路(PHY)110と、Link回路120と、を備える。Link回路120は、メディアアクセス制御回路(Medium Access Control : MAC)などの各種プロトコルの機能を実現する。物理層制御回路110は、PIPE(PHY Interface for the PCI Express Architecture)を介して、Link回路120に接続されている。
【0014】
物理層制御回路110は、第1端子101、第2端子102と、PERST検出回路(PDC)111、RefClk検出回路(RDC)112、内部クロック生成回路(ICG)113、マルチプレクサ(MUX)114、PLL(Phase Locked Loop)回路115と、を備える。
【0015】
第1端子101には、ホスト20(
図1)から送信されたRefClk信号が入力される。RefClk信号は、第1クロックに相当する。RefClk信号は、後述するCCモードにおいて、PCIeコントローラ100で使用されるクロック信号である。RefClk信号は、外部クロックにも相当する。
【0016】
第2端子102には、ホスト20から送信されたPERST信号が入力される。PERST信号は、第1信号に相当する。PERST信号は、PCIeコントローラ100の初期化処理の実行を指示するために、ホスト20から送信される。初期化処理は、Dual/Single判定、後述するSRISモード/CCモード判定、PHY110の起動、PCLK安定待ち、MAC起動等の処理を含む。
【0017】
PERST検出回路111は、第2端子102に入力されたPERST信号の入力を検出し、検出をCPU200に出力する。なお、PERST検出回路111は、第2端子のある電圧(第1電圧)から他の電圧(第2電圧)への遷移を、PERST信号の入力として検出してもよい。
【0018】
RefClk検出回路112は、第1端子101に入力されたRefClk信号を検出し、検出をCPU200に出力する。
【0019】
内部クロック生成回路113は、PCIeコントローラ100内部で使用する内部クロック信号を生成し、マルチプレクサ114に出力する。内部クロック信号は、第2クロックに相当する。内部クロック信号は、後述するSRISモードにおいて、PCIeコントローラ100で使用されるクロック信号である。
【0020】
マルチプレクサ114は、複数の入力信号からある1つの信号を選択して出力する回路である。マルチプレクサ114は、CPU200から出力される選択信号に従って、RefClk信号、内部クロック信号の何れかを、PLL回路115に出力する。
【0021】
PLL回路115は、RefClk信号、内部クロック信号の何れかの位相を調整し、出力信号PCLKとして、後段のLink回路120に出力する。出力信号PCLKは、第3クロックに相当する。出力信号PCLKは、後段のLink回路120のクロック信号として使用される。
【0022】
[CPU200]
CPU200は、制御回路に相当する。CPU200は、例えば、メモリデバイスMD(
図1)に記憶された各種プログラムをRAM(Random Access Memory)(不図示)にロードして実行することにより、初期化処理を行う。
【0023】
CPU200は、PERST検出回路111によるPERST信号の入力検出に応じて、PERST割り込みが発生したことを検知する。また、CPU200は、RefClk検出回路112によるRefClk信号の入力検出に応じて、RefClk割り込みが発生したことを検知する。CPU200は、PERST割り込みの発生及びRefClk割り込みの発生に応じ、後述する状態遷移表に従って、適切なクロックモードの初期化処理を実行する。
【0024】
[クロックモード]
メモリシステム10は、Common Clock(CC)モードと、Separate Reference Independent Spread(SRIS)モードと、の2つのクロックモードで動作可能である。
【0025】
PCIe規格において、CCモードとは、ホストと、PCIeデバイスとが、ホストで生成されるRefClk信号に同期して通信を行う方式である。また、PCIe規格において、SRISモードとは、RefClk信号を使用せずに、ホストとPCIeデバイスとが、別々に生成したクロックを用いて通信を行う方式である。
【0026】
PCIeコントローラ100は、PCIe規格におけるPCIeデバイスに相当する。SRISモードは第1モード、CCモードは第2モードに相当する。
【0027】
[初期化処理]
図3は、第1実施形態に係るPERST割り込み発生時の処理について説明するためのフローチャートである。
図4は、第1実施形態に係るRefClk割り込み発生時の処理について説明するためのフローチャートである。
図5は、第1実施形態に係るクロックモードの選択方法について説明するための状態遷移表である。
図6は、第1実施形態に係るCCモードの初期化処理について説明するためのフローチャートである。
図7は、第1実施形態に係るSRISモードの初期化処理について説明するためのフローチャートである。
【0028】
CPU200は、
図3、
図4、
図6、及び
図7のフローチャート、並びに、
図5の状態遷移表に示される処理を実行することで、メモリシステムの制御方法を行う。
【0029】
図3に示す様に、CPU200は、PERST割り込みが発生すると(S301)、
図5の状態遷移表に従ってCPU200の状態を遷移させる(S302)。
【0030】
図4に示す様に、CPU200は、RefClk割り込みが発生すると(S401)、RefClk割り込みが発生したことを記録し(S402)、
図5の状態遷移表に従ってCPU200の状態を遷移させる(S403)。
【0031】
図5に示す状態遷移表では、「状態」と「イベント」との組み合わせで特定される「セル」において、遷移先となる「状態」が定義される。2つの列は、イベントを表し、「RefClk割り込み」と「PERST割り込み」とに対応する。4つの行は、CPU200の4つの状態((A)初期状態、(B)SRISモード状態、(C)CCモード前段階状態、(D)CCモード状態)を表している。CPU200は、これら4つの状態のうち何れかの状態から他の状態に遷移可能である。(B)SRISモード状態への遷移に際しては、SRISモードの初期化処理が実行される。この初期化処理の実行後、メモリシステム10は、SRISモードで動作可能な状態となる。(B)SRISモード状態は、SRISモードで動作可能な状態を含む。(D)CCモード状態への遷移に際しては、CCモードの初期化処理が実行される。この初期化処理の実行後、メモリシステム10は、CCモードで動作可能な状態となる。(D)CCモード状態は、CCモードで動作可能な状態を含む。
【0032】
図3で説明したPERST割り込み発生時における状態遷移(S302)について、
図5を用いて説明する。(A)初期状態でPERST割り込みが発生すると、CPU200は、(B)SRISモード状態に遷移する。また、(C)CCモード前段階状態でPERST割り込みが発生すると、CPU200は、(D)CCモード状態に遷移する。一方、(B)SRISモード状態でPERST割り込みが発生しても、CPU200は、状態遷移せずに、(B)SRISモード状態を維持する。同様に、(D)CCモード状態でPERST割り込みが発生しても、CPU200は、状態遷移せずに、(D)CCモード状態を維持する。
【0033】
また、
図4で説明したRefClk割り込み発生時における状態遷移(S403)について、
図5を用いて説明する。(A)初期状態でRefClk割り込みが発生すると、CPU200は、(C)CCモード前段階状態に遷移する。また、(B)SRISモード状態でRefClk割り込みが発生すると、CPU200は、(C)CCモード前段階状態に遷移する。一方、(C)CCモード前段階状態でRefClk割り込みが発生しても、CPU200は、状態遷移せずに、(C)CCモード前段階状態を維持する。同様に、(D)CCモード状態でRefClk割り込みが発生しても、CPU200は、状態遷移せずに、(D)CCモード状態を維持する。
【0034】
図6に示す様に、CPU200は、CCモードの初期化処理が起動するよう状態遷移する(S601)。この状態遷移は、CPU200が、RefClk割り込みの発生に応じて(B)SRISモード状態から(C)CCモード前段階状態に遷移した場合、又は、PERST割り込みの発生に応じて(C)CCモード前段階状態から(D)CCモード状態に遷移した場合を含む。その後、CPU200は、CCモードの初期化処理を行い(S602)、処理を終了する。
【0035】
図7に示す様に、CPU200は、SRISモードの初期化処理が起動するよう状態遷移する(S701)。この状態遷移は、CPU200が、PERST割り込みの発生に応じて(A)初期状態から(B)SRISモード状態に遷移した場合を含む。その後、CPU200は、SRISモードの初期化処理を行い(S702)、処理を終了する。
【0036】
[比較例]
次に比較例について説明する。比較例に係るCPUは、
図5の状態遷移表に示される処理を実行しない。
図8は、比較例のPERST割り込み発生時の処理について説明するためのフローチャートである。
図9は、比較例のRefClk割り込み発生時の処理について説明するためのフローチャートである。
【0037】
図8に示す様に、比較例に係るCPUは、PERST割り込みが発生すると(S801)、初期化処理に関する設定を行う(S802)。次に、CPUは、RefClk割り込みの発生が記録されているか否かを判定する(S803)。CPUは、記録されている場合(S803のYes)にはCCモードの初期化処理を実行し(S804)、記録されていない場合(S803のNo)にはSRISモードの初期化処理を実行する(S805)。
【0038】
図9に示す様に、比較例に係るCPUは、RefClk割り込みが発生すると(S901)、RefClk割り込みが発生したことを記録する(S902)。
【0039】
[電源起動時の不定電位]
図10は、比較例のメモリシステムの初期化処理について説明するためのタイミングチャートである。
【0040】
タイミングT1では、メモリシステムに電源12Vが供給される。この電源の供給に応じて、PERST信号に不定電位が発生する場合がある。この不定電位により、比較例のメモリシステムは、PERST割り込みが発生したものと認識して(S801)、初期化処理に関する設定を行う(S802)。
【0041】
上述の通り、比較例のメモリシステムは、RefClk割り込み発生の記録の有無で、クロックモードを決定する(S803)。
図10の例では、タイミングT1の時点で、RefClk信号の入力がなく、RefClk割り込み発生の記録がないため、SRISモードが選択される(S805)。従って、比較例に係るCPUは、
図10に示すタイミングT2で、内部クロック信号に基づいてSRISモードの初期化処理を開始する。タイミングT3で、ホストから、RefClk信号が入力されると、比較例のメモリシステムは、RefClk割り込みが発生したことを検知し(S901)、RefClk割り込みの発生を記録する(S902)。しかしながら、比較例のメモリシステムでは、タイミングT4でPERST信号が入力されても、クロックモードを、SRISモードからCCモードに変更することができない。
【0042】
この様に、比較例に係るメモリシステムにおいては、SRISモードの初期化開始後に、クロックモードをCCモードに変更することができない。このため、ホストとメモリシステムで異なるクロック信号を使用している状態になり、Linkが不安定になりLinkupしないという状態になってしまう場合がある。
【0043】
[第1実施形態に係るメモリシステム10の効果]
例えば、第1実施形態に係るメモリシステム10に、
図10の様なPERST信号が入力された場合、CPU200は、タイミングT1において(A)初期状態から(B)SRISモード状態に遷移し、SRISモードの初期化処理を開始する。しかしながら、タイミングT3においてRefClk割り込みが発生すると、CPU200は、(B)SRISモード状態から(C)CCモード前段階状態に遷移し、更に、タイミングT4においてPERST割り込みが発生すると、(C)CCモード前段階状態から(D)CCモード状態に遷移する。すなわち、(B)SRISモード状態でRefClk割り込みが発生し、その後(C)CCモード前段階状態でPERST割り込みが発生に応じて、CPU200は、CCモードの初期化処理を開始する。この様に、SRISモードの初期化処理を開始していても、この初期化処理を中断し、CCモードの初期化処理を実行することが可能である。また、SRISモードの初期化処理が完了している場合においても、CCモードの初期化処理を実行することが可能である。
【0044】
尚、
図10を参照して説明した様な通信上の問題が発生しない場合、CPU200は、(A)初期状態から、PERST割り込みの発生に応じて(B)SRISモード状態に遷移する。また、RefClk割り込みの発生に応じて、(A)初期状態から(C)CCモード前段階状態に遷移し、PERST割り込みの発生に応じて(C)CCモード前段階状態から(D)CCモード状態に遷移する。
【0045】
[第2実施形態]
第1実施形態では、
図5の状態遷移表に従って、クロックモードを選択する例について説明した。しかしながら、クロックモードの選択は、状態遷移表に従う動作に限定されず、制御部は、ルールベースでの処理を行ってもよい。
【0046】
例えば、第2実施形態に係るCPU200は、SRISモードの初期化処理の実行中、又は、SRISモードで動作可能な状態で、第1端子101へのRefClk信号の入力検出に応じて、上記初期化処理を中断し、又は、SRISモードで動作可能な状態を終了する。
【0047】
上記初期化処理の中断後、又は、SRISモードで動作可能な状態の終了後の、第2端子102へのPERST信号の入力検出に応じて、CCモードの初期化処理を実行する。
【0048】
この様に、第2実施形態では、SRISモードの初期化処理が開始された後でも、RefClk信号が入力されれば、SRISモードの処理を終了して、CCモードの初期化処理を開始できる。
【0049】
[その他]
本発明のいくつかの実施形態を説明したが、これらの実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0050】
10…メモリシステム、20…ホスト、CTR…コントローラ、MD…メモリデバイス、100…PCIeコントローラ、101…第1端子、102…第2端子、110…物理層制御回路、111…PERST検出回路、112…RefClk検出回路、113…内部クロック生成回路、114…マルチプレクサ、115…PLL回路、120…Link回路、200…CPU。