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

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

▶ 長江存儲科技有限責任公司の特許一覧

特許7603722メモリ、メモリの制御方法及びメモリシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-12
(45)【発行日】2024-12-20
(54)【発明の名称】メモリ、メモリの制御方法及びメモリシステム
(51)【国際特許分類】
   G06F 12/06 20060101AFI20241213BHJP
【FI】
G06F12/06 525A
G06F12/06 550B
【請求項の数】 17
(21)【出願番号】P 2022578920
(86)(22)【出願日】2022-01-28
(65)【公表番号】
(43)【公表日】2024-02-22
(86)【国際出願番号】 CN2022074800
(87)【国際公開番号】W WO2023141992
(87)【国際公開日】2023-08-03
【審査請求日】2023-01-05
【前置審査】
(73)【特許権者】
【識別番号】519237948
【氏名又は名称】長江存儲科技有限責任公司
【氏名又は名称原語表記】Yangtze Memory Technologies Co.,Ltd.
【住所又は居所原語表記】No.88 Weilai 3rd Road,East Lake High-tech Development Zone,Wuhan,Hubei,China
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100188558
【弁理士】
【氏名又は名称】飯田 雅人
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(72)【発明者】
【氏名】▲楊▼ ▲シン▼
(72)【発明者】
【氏名】段 竺琴
【審査官】後藤 彰
(56)【参考文献】
【文献】特表2017-527897(JP,A)
【文献】特表2015-503798(JP,A)
【文献】特表2022-522444(JP,A)
【文献】特表2015-500541(JP,A)
【文献】特表2018-525737(JP,A)
【文献】中国特許出願公開第110383232(CN,A)
【文献】米国特許出願公開第2021/0373993(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/06
(57)【特許請求の範囲】
【請求項1】
メモリであって、記憶アレイと、周辺回路と、を含み、
前記記憶アレイは複数の記憶面を含み、個々の前記記憶面は記憶セルで構成される記憶ブロックを含み、
前記周辺回路は前記記憶アレイに接続され、かつ複数の前記記憶面に非同期操作を行わせるように制御することができるように構成され、
前記周辺回路において複数の状態マシンが含まれ、
前記状態マシンの個々は複数の前記記憶面の少なくとも1つと対応して設置され、前記状態マシンはメモリインタフェースに接続され、かつ前記メモリインタフェースから対応する各記憶面の非同期操作に関連する制御コマンドを並行して受信することができ、前記状態マシンの個々はそれが受信した前記制御コマンドを各々独立して処理することで相応な記憶面の制御情報を取得することができ
前記周辺回路は、複数の前記状態マシンに接続され、かつ複数の前記状態マシンの制御情報に従って、前記周辺回路による前記制御情報に対する処理順序を特定するように構成されるシーケンス演算モジュールを更に含む、メモリ。
【請求項2】
前記周辺回路は複数の前記状態マシンの制御情報に従って複数の前記記憶面に非同期操作を行わせるように制御するように構成される、請求項1に記載のメモリ。
【請求項3】
前記状態マシンは更に、前記制御コマンドに従ってパラメータ設定を行うように構成され、
前記状態マシンのうちの少なくとも2つの状態マシンが前記制御コマンドを処理し、かつ前記パラメータ設定を行うことに占有される時間帯には少なくとも部分的な重なりが存在する、請求項1に記載のメモリ。
【請求項4】
前記状態マシンは具体的に、
前記制御コマンドに従って、前記シーケンス演算モジュールに処理要求を送信するように構成され、
前記シーケンス演算モジュールは具体的に、
複数の状態マシンから送信された前記処理要求に従って、前記処理順序を特定するように構成される、請求項に記載のメモリ。
【請求項5】
前記周辺回路は、ハードウェア演算モジュールと、複数のマイクロ処理ユニットと、を更に含み、
前記ハードウェア演算モジュールは、前記シーケンス演算モジュールに接続され、かつ前記処理順序に応じて前記制御情報に対応する制御パラメータを順次特定するように構成され、
前記複数のマイクロ処理ユニットは、各記憶面にそれぞれ対応し、前記ハードウェア演算モジュールに接続され、かつそれぞれ対応する前記記憶面に接続され、前記複数のマイクロ処理ユニットは前記制御パラメータに従って前記各記憶面に対して非同期操作を行うように構成される、請求項に記載のメモリ。
【請求項6】
複数の前記状態マシンは更にそれぞれ対応する前記マイクロ処理ユニットに接続され、かつ前記制御コマンドを受信したときに、前記マイクロ処理ユニットにイネーブル信号を提供するように構成される、請求項に記載のメモリ。
【請求項7】
前記複数のマイクロ処理ユニットは更に、
1つの前記制御コマンドに基づく前記記憶面に対する制御操作を終了した後に、対応する前記状態マシンに状態情報を送信するように構成され、
前記状態マシンは更に、対応する前記マイクロ処理ユニットから送信された前記状態情報を受信した後に、次の制御コマンドを受信するように構成される、請求項に記載のメモリ。
【請求項8】
前記周辺回路はメインプロセッサを更に含み、
前記メインプロセッサは、前記メモリインタフェース及び前記複数のマイクロ処理ユニットに接続され、前記複数のマイクロ処理ユニットから送信された状態情報を受信し、かつ前記メモリインタフェースに複数の前記状態情報に従って特定された総状態情報を送信するように構成され、前記総状態情報は前記複数のマイクロ処理ユニットがいずれも1組の制御コマンドに基づく制御操作を終了したことを指示することに用いられる、請求項に記載のメモリ。
【請求項9】
メモリの制御方法であって、前記方法はメモリにおける周辺回路により実行され、前記周辺回路は複数の状態マシンを含み、前記方法は、
前記メモリにおける複数の前記状態マシンが前記メモリにおける各記憶面に対しての非同期操作に関連する制御コマンドを並行して受信するステップであって、前記状態マシンの個々は複数の前記記憶面の少なくとも1つと対応して設置される、ステップと、
前記状態マシンが受信した前記制御コマンドを各々独立して処理して、相応な記憶面の制御情報を取得するステップと、
前記周辺回路が前記状態マシンが取得した前記制御情報に基づいて、複数の前記記憶面に非同期操作を行わせるように制御するステップと、を含み、
前記周辺回路が前記制御情報に基づいて、複数の前記記憶面に非同期操作を行わせるように制御するステップは、
前記状態マシンが取得した制御情報に従って、前記制御情報に対する処理順序を特定するステップと、
前記処理順序に応じて前記制御情報を順次処理するステップと、
処理した後の前記制御情報に従って、複数の前記記憶面に非同期操作を行わせるように制御するステップと、を含む、
メモリの制御方法。
【請求項10】
前記方法は、
前記状態マシンが前記制御コマンドに従ってパラメータ設定を行うステップであって、前記状態マシンのうちの少なくとも2つの状態マシンが前記制御コマンドを処理し、かつ前記パラメータ設定を行うことに占有される時間帯には少なくとも部分的な重なりが存在する、ステップを更に含む、請求項に記載の方法。
【請求項11】
前記状態マシンから提供された制御情報に従って、前記制御情報に対する処理順序を特定する前記ステップは、
前記周辺回路におけるシーケンス演算モジュールが複数の前記状態マシンが前記制御コマンドに基づいて送信した処理要求を受信するステップと、
前記シーケンス演算モジュールが前記処理要求に基づいて、前記制御情報に対する処理順序を特定するステップと、を含む、請求項に記載の方法。
【請求項12】
前記処理順序に応じて前記制御情報を順次処理する前記ステップは、
前記周辺回路におけるハードウェア演算モジュールが前記状態マシンから提供された前記制御情報に従って、前記処理順序に応じて前記制御情報に対応する制御パラメータを順次特定するステップを含み、
処理した後の前記制御情報に従って、複数の前記記憶面に非同期操作を行わせるように制御する前記ステップは、
前記周辺回路における複数のマイクロ処理ユニットが前記制御パラメータに従って対応する前記記憶面に非同期操作を行わせるように制御するステップであって、前記複数のマイクロ処理ユニットはそれぞれ複数の前記記憶面に対応する、ステップを含む、請求項11に記載の方法。
【請求項13】
前記方法は、
前記状態マシンが前記制御コマンドを受信したときに、前記マイクロ処理ユニットにイネーブル信号を提供するステップを更に含む、請求項12に記載の方法。
【請求項14】
前記方法は、
前記マイクロ処理ユニットが、1つの前記制御情報に基づく制御面に対する制御操作を終了した後に、対応する前記状態マシンに状態情報を送信するステップと、
前記状態マシンが対応する前記マイクロ処理ユニットから送信された前記状態情報を受信した後に、次の制御コマンドを受信するステップと、を更に含む、請求項13に記載の方法。
【請求項15】
前記方法は、
前記周辺回路におけるメインプロセッサが前記複数のマイクロ処理ユニットから送信された状態情報を受信し、かつメモリインタフェースに総状態情報を送信するステップであって、前記総状態情報は前記複数のマイクロ処理ユニットがいずれも1組の制御コマンドに基づく制御操作を終了したことを指示することに用いられる、ステップを更に含む、請求項12に記載の方法。
【請求項16】
メモリシステムであって、
請求項1~のいずれか一項に記載のメモリと、コントローラと、を含み、
前記コントローラは前記メモリに接続され、前記コントローラは前記メモリのメモリインタフェースを介して前記メモリに制御コマンドを送信するように構成される、メモリシステム。
【請求項17】
前記メモリシステムはソリッドステートドライブSSD又は記憶カードである、請求項16に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施例はメモリ、メモリの制御方法及びメモリシステムに関する。
【背景技術】
【0002】
半導体記憶デバイスは様々な電子デバイスの中にますます広く応用されている。例えば、不揮発性半導体メモリはセルラー電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピューティング機器、非モバイルコンピューティング機器及び様々な他の電子機器の中に応用されている。情報化の発展に伴って、これらの機器で使用されるデータ量も急速に増加し、これはより大きなフラッシュメモリの記憶容量を駆動し、かつより速い速度を促進する。市場のニーズを満たすために、NANDフラッシュメモリ技術は急速に発展しており、かつNANDフラッシュメモリチップはパッケージレベル下で複数のNANDダイがパッケージされ、それによってNANDフラッシュメモリチップの容量を増加させる場合が多い。また、非同期マルチプレーン独立(AMPI、Async Multi-plane Independent)読み取りをサポートする操作が更に提案されており、異なる記憶面の独立した読み取り制御を実現する。
【0003】
しかしながら、制御コマンドの処理リソースの競合を回避するために、異なる記憶面の制御コマンドに対してシリアル処理を行う必要があり、全体的な処理速度が比較的遅くなり、冗長な待ち時間が存在し、さらにメモリ全体のアクセス効率を低くしてしまう。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の実施例はメモリ、メモリの制御方法及びメモリシステムを提供する。
【課題を解決するための手段】
【0005】
第1態様では、本開示の実施例はメモリを提供し、記憶アレイと、周辺回路と、を含み、
前記記憶アレイは複数の記憶面を含み、個々の前記記憶面は記憶セルで構成される記憶ブロックを含み、
前記周辺回路は前記記憶アレイに接続され、かつ複数の前記記憶面に非同期操作を行わせるように制御することができるように構成され、
前記周辺回路において少なくとも1つの状態マシン(STM、State Machine)が含まれ、
前記状態マシンの個々は複数の前記記憶面の少なくとも1つと対応して設置され、前記状態マシンはメモリインタフェースに接続され、かつ前記メモリインタフェースから対応する各記憶面の非同期操作に関連する制御コマンドを並行して受信することができ、前記状態マシンの個々はそれが受信した前記制御コマンドを各々独立して処理することで相応な記憶面の制御情報を取得することができる。
【0006】
いくつかの実施例においては、前記周辺回路は複数の前記状態マシンの制御情報に従って複数の前記記憶面に非同期操作を行わせるように制御するように構成される。
【0007】
いくつかの実施例においては、前記状態マシンは更に、前記制御コマンドに従ってパラメータ設定を行うように構成され、
前記状態マシンのうちの少なくとも2つの状態マシンが前記制御コマンドを処理し、かつ前記パラメータ設定を行うことに占有される時間帯には少なくとも部分的な重なりが存在する。
【0008】
いくつかの実施例においては、前記周辺回路は、
複数の前記状態マシンに接続され、かつ複数の前記状態マシンの制御情報に従って、前記周辺回路による前記制御情報に対する処理順序を特定するように構成されるシーケンス演算モジュールを更に含む。
【0009】
いくつかの実施例においては、前記状態マシンは具体的に、
前記制御コマンドに従って、前記シーケンス演算モジュールに処理要求を送信するように構成され、
前記シーケンス演算モジュールは具体的に、
複数の状態マシンから送信された前記処理要求に従って、前記処理順序を特定するように構成される。
【0010】
いくつかの実施例においては、前記周辺回路は、ハードウェア演算モジュールと、複数のマイクロ処理ユニットと、を更に含み、
前記ハードウェア演算モジュールは、前記シーケンス演算モジュールに接続され、かつ前記処理順序に応じて前記制御情報に対応する制御パラメータを順次特定するように構成され、
前記複数のマイクロ処理ユニットは、各記憶面にそれぞれ対応し、前記ハードウェア演算モジュールに接続され、かつそれぞれ対応する前記記憶面に接続され、前記複数のマイクロ処理ユニットは前記制御パラメータに従って前記各記憶面に対して非同期操作を行うように構成される。
【0011】
いくつかの実施例においては、少なくとも1つの前記状態マシンは更にそれぞれ対応する前記マイクロ処理ユニットに接続され、かつ前記制御コマンドを受信したときに、前記マイクロ処理ユニットにイネーブル信号を提供するように構成される。
【0012】
いくつかの実施例においては、前記複数のマイクロ処理ユニットは更に、
1つの前記制御コマンドに基づく前記記憶面に対する制御操作を終了した後に、対応する前記状態マシンに状態情報を送信するように構成され、
前記状態マシンは更に、対応する前記マイクロ処理ユニットから送信された前記状態情報を受信した後に、次の制御コマンドを受信するように構成される。
【0013】
いくつかの実施例においては、前記周辺回路はメインプロセッサを更に含み、
前記メインプロセッサは、前記メモリインタフェース及び前記複数のマイクロ処理ユニットに接続され、前記複数のマイクロ処理ユニットから送信された状態情報を受信し、かつ前記メモリインタフェースに複数の前記状態情報に従って特定された総状態情報を送信するように構成され、ここで、前記総状態情報は前記複数のマイクロ処理ユニットがいずれも1組の制御コマンドに基づく制御操作を終了したことを指示することに用いられる。
【0014】
いくつかの実施例においては、前記汎用マイクロプロセッサは更にリセットコマンドを受信するように構成され、ここで、前記リセットコマンドは前記メモリにおける各記憶面の操作をリセットすることに用いられる。
【0015】
いくつかの実施例においては、少なくとも1つの前記状態マシンは更にそれぞれ複数の前記記憶面に接続され、かつ前記制御コマンドに従って対応する前記記憶面にアドレス情報を送信するように構成される。
【0016】
いくつかの実施例においては、前記非同期操作は非同期マルチプレーン独立読み取り操作を含む。
【0017】
いくつかの実施例においては、前記記憶アレイは三次元フラッシュメモリ記憶アレイである。
【0018】
いくつかの実施例においては、前記記憶面の個数は少なくとも4つを含む。
【0019】
第2態様では、本開示の実施例はメモリの制御方法を更に提供し、前記方法はメモリにおける周辺回路により実行され、前記周辺回路は少なくとも1つの状態マシンを含み、前記方法は、
前記メモリにおける少なくとも1つの状態マシンが前記メモリにおける各記憶面に対しての非同期操作に関連する制御コマンドを並行して受信するステップであって、前記状態マシンの個々は複数の前記記憶面の少なくとも1つと対応して設置される、ステップと、
前記状態マシンが受信した前記制御コマンドを各々独立して処理して、相応な記憶面の制御情報を取得するステップと、を含む。
【0020】
いくつかの実施例においては、前記方法は、
前記周辺回路が前記状態マシンが取得した前記制御情報に基づいて、複数の前記記憶面に非同期操作を行わせるように制御するステップを更に含む。
【0021】
いくつかの実施例においては、前記方法は、
前記状態マシンが前記制御コマンドに従ってパラメータ設定を行うステップであって、前記状態マシンのうちの少なくとも2つの状態マシンが前記制御コマンドを処理し、かつ前記パラメータ設定を行うことに占有される時間帯には少なくとも部分的な重なりが存在する、ステップを更に含む。
【0022】
いくつかの実施例においては、前記周辺回路が前記制御情報に基づいて、複数の前記記憶面に非同期操作を行わせるように制御するステップは、
前記状態マシンが取得した制御情報に従って、前記制御情報に対する処理順序を特定するステップと、
前記処理順序に応じて前記制御情報を順次処理するステップと、
処理した後の前記制御情報に従って、複数の前記記憶面に非同期操作を行わせるように制御するステップと、を含む。
【0023】
いくつかの実施例においては、前記状態マシンから提供された制御情報に従って、前記制御情報に対する処理順序を特定する前記ステップは、
前記周辺回路におけるシーケンス演算モジュールが複数の前記状態マシンが前記制御コマンドに基づいて送信した処理要求を受信するステップと、
前記シーケンス演算モジュールが前記処理要求に基づいて、前記制御情報に対する処理順序を特定するステップと、を含む。
【0024】
いくつかの実施例においては、前記処理順序に応じて前記制御情報を順次処理する前記ステップは、
前記周辺回路におけるハードウェア演算モジュールは前記状態マシンから提供された前記制御情報に従って、前記処理順序に応じて前記制御情報に対応する制御パラメータを順次特定するステップを含む。
【0025】
いくつかの実施例においては、処理した後の前記制御情報に従って、複数の前記記憶面に非同期操作を行わせるように制御する前記ステップは、
前記周辺回路における複数のマイクロ処理ユニットが前記制御パラメータに従って対応する前記記憶面に非同期操作を行わせるように制御するステップであって、前記複数のマイクロ処理ユニットはそれぞれ複数の前記記憶面に対応する、ステップを含む。
【0026】
いくつかの実施例においては、前記方法は、
前記状態マシンが前記制御コマンドを受信したときに、前記マイクロ処理ユニットにイネーブル信号を提供するステップを更に含む。
【0027】
いくつかの実施例においては、前記方法は、
前記マイクロ処理ユニットが1つの前記制御情報に基づく前記制御面に対する制御操作を終了した後に、対応する前記状態マシンに状態情報を送信するステップと、
前記状態マシンが対応する前記マイクロ処理ユニットから送信された前記状態情報を受信した後に、次の制御コマンドを受信するステップと、を更に含む。
【0028】
いくつかの実施例においては、前記方法は、
前記周辺回路におけるメインプロセッサが前記複数のマイクロ処理ユニットから送信された状態情報を受信し、かつメモリインタフェースに総状態情報を送信するステップであって、前記総状態情報は前記複数のマイクロ処理ユニットがいずれも1組の制御コマンドに基づく制御操作を終了したことを指示することに用いられる、ステップを更に含む。
【0029】
いくつかの実施例においては、前記方法は、
前記メインプロセッサがリセットコマンドを受信するステップと、
前記リセットコマンドに従って、前記メモリにおける各記憶面の操作をリセットするステップと、を含む。
【0030】
いくつかの実施例においては、前記方法は、
前記状態マシンが前記制御コマンドに従って対応する前記記憶面にアドレス情報をそれぞれ送信するステップを更に含む。
【0031】
第3態様では、本開示の実施例はメモリシステムを更に提供し、
前記任意の一種のメモリと、コントローラと、を含み、
前記コントローラは前記メモリに接続され、前記コントローラは前記メモリのメモリインタフェースを介して前記メモリに制御コマンドを送信するように構成される。
【0032】
いくつかの実施例においては、前記メモリシステムはソリッドステートドライブ(SSD、Solid State Drive)又は記憶カードである。
【0033】
1つ又は複数の実施例はそれに対応する図面におけるピクチャによって例示的に説明され、特に断らない限り、図面における図は比例制限を構成するものではない。
【図面の簡単な説明】
【0034】
図1A】本開示の実施例が提供するシステムの構造模式図である。
図1B】本開示の実施例が提供するメモリカードの構造模式図である。
図1C】本開示の実施例が提供するソリッドステートドライブの構造模式図である。
図1D】本開示の実施例が提供する記憶セルアレイ及び周辺回路を含むメモリの構造模式図である。
図1E】本開示の実施例が提供する記憶セルアレイ及び周辺回路を含むメモリの構造模式図である。
図1F】本開示の実施例が提供するメモリの周辺回路における制御論理ユニットの構造模式図である。
図2A】本開示の一実施例が提供するメモリの構造模式図である。
図2B】本開示の一実施例が提供するメモリにおけるメモリインタフェースと状態マシンのキュー分離を行う原理模式図である。
図3】本開示の一実施例が提供するメモリの構造模式図である。
図4】本開示の一実施例が提供するメモリの構造模式図である。
図5】本開示の一実施例が提供するメモリの構造模式図である。
図6】本開示の一実施例が提供するメモリの制御方法のフローチャートである。
図7】本開示の一実施例が提供するメモリの構造模式図である。
図8】一実施例におけるメモリの制御方法の原理図である。
図9】一実施例におけるメモリの制御方法のタイミング図である。
図10】一実施例におけるメモリの制御方法の原理図である。
図11】本開示の一実施例が提供するメモリの構造模式図である。
図12】本開示の一実施例が提供するメモリの制御方法における信号タイミング図である。
図13】本開示の一実施例が提供するメモリの制御方法の原理模式図である。
図14】本開示の一実施例が提供するメモリの制御方法における制御コマンドキューのウェイレベル処理原理である。
図15図14を基にした各信号のタイミング図である。
図16】本開示の一実施例が提供するメモリの制御方法における複数の状態マシンとシーケンス演算モジュール及びハードウェア演算モジュールとの間の情報交換原理である。
図17図16を基に図示される各処理過程に必要な時間周期の模式図である。
図18】本開示の一実施例が提供するメモリの制御方法のタイミング図である。
【発明を実施するための形態】
【0035】
本開示を容易に理解するために、以下、関連図面を参照して本開示についてより完全に記述する。図面において本開示の最優先の実施例が与えられている。しかし、本開示は多くの異なる形式で実現することができ、本明細書で記述される実施例に限定されない。逆に、これらの実施例を提供する目的は、本開示の開示内容をより徹底的で完全にすることである。
【0036】
特に定義されない限り、本明細書で使用されるすべての技術用語及び科学用語は当業者が通常に理解する意味と同じである。本明細書においては、本開示の明細書において使用される用語は、具体的な実施例を記述するためのものに過ぎず、本開示を制限するものではない。本明細書で使用される用語「及び/又は」は1つ又は複数の関連する列挙されたアイテムの任意及びすべての組み合わせを含む。
【0037】
図1Aに示すように、本開示の実施例は例示的なシステム10を図示し、該例示的なシステム10はホスト20と、記憶システム30とを含んでもよい。ここで、例示的なシステム10は、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、車両コンピュータ、ゲームコンソール、プリンタ、測位機器、ウェアラブル電子機器、スマートセンサ、仮想現実(VR)機器、拡張現実(AR)機器又はメモリ34を有する何らの他の適切な電子機器を含んでもよいが、これらに限定されず、ホスト20は電子機器のプロセッサ(例えば、中央処理ユニット(CPU))又はシステムオンチップ(SoC)(例えば、アプリケーションプロセッサ(AP))であってもよい。
【0038】
本開示の実施例においては、ホスト20はデータを記憶システム30に送信する又は記憶システム30からデータを受信するように構成されてもよい。ここでは、記憶システム30はコントローラ32と、1つ又は複数のメモリ34とを含んでもよい。ここで、メモリ34はNANDフラッシュメモリ(NAND Flash Memory)、垂直NANDフラッシュメモリ(Vertical NAND Flash Memory)、NORフラッシュメモリ(NOR Flash Memory)、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)、強誘電体ランダムアクセスメモリ(Ferroelectric Random Access Memory、FRAM(登録商標))、磁気ランダムアクセスメモリ(Magnetoresistive Random Access Memory、MRAM)、相変化ランダムアクセスメモリ(Phase Change Random Access Memory、PCRAM)、抵抗変化ランダムアクセスメモリ(Resistive Random Access Memory、RRAM)、及びナノランダムアクセスメモリ(Nano Random Access Memory、NRAM)等を含んでもよいが、これらに限定されない。
【0039】
一方、コントローラ32はメモリ34及びホスト20に結合されてもよく、かつメモリ34を制御することに用いられる。例示的には、コントローラは、例えばセキュアデジタル(SD)カード、コンパクトフラッシュ(登録商標)メモリ(CF)カード、汎用シリアルバス(USB)フラッシュメモリドライブ、又は例えばパーソナル計算機、デジタルカメラ、携帯電話等の電子機器に使用するための他の媒体などの低デューティサイクル環境において操作することに用いられるように設計されてもよい。いくつかの実施例においては、コントローラは更に、高デューティサイクル環境SSD又は埋め込み式マルチメディアカード(eMMC)において操作することに用いられるように設計されてもよく、SSD又はeMMCは、例えばスマートフォン、タブレットコンピュータ、ラップトップコンピュータ等のモバイル機器のデータ記憶装置及びエンタープライズストレージアレイとして用いられる。さらに、コントローラはメモリにおけるデータを管理し、かつホストと通信することができる。コントローラはメモリの読み取り、消去及びプログラミング等の操作を制御するように構成されてもよく、メモリにおいて記憶された又は記憶されようとするデータに関する様々な機能を管理するように構成されてもよく、不良ブロックの管理、ガーベッジコレクション、論理的アドレスから物理的アドレスへの変換、及びウェアレベリング等を含むが、これらに限定されず、メモリから読み取られた又はメモリに書き込まれたデータに関する誤り訂正符号(ECC)を処理するように構成されてもよい。また、コントローラは更に何らの他の適切な機能、例えばメモリのフォーマッティングを実行してもよく、又は特定の通信プロトコルに従って外部機器(例えば、図1Aにおけるホスト20)と通信してもよい。例示的には、コントローラは様々なインタフェースプロトコルのうちの少なくとも一種によって外部機器と通信することができ、インタフェースプロトコルは、例えば、USBプロトコル、MMCプロトコル、周辺部品相互接続(PCI)プロトコル、PCIエクスプレス(PCI-E)プロトコル、アドバンストテクノロジアタッチメント(ATA)プロトコル、シリアルATAプロトコル、並行ATAプロトコル、小型コンピュータシステムインタフェース(SCSI)プロトコル、拡張小型ディスクインタフェース(ESDI)プロトコル、集積駆動電子機器(IDE)プロトコル、及びFirewireプロトコル等である。
【0040】
本開示の実施例においては、コントローラ及び1つ又は複数のメモリは様々なタイプの記憶機器の中に集積されてもよく、例えば、同じパッケージ(例えば、汎用フラッシュメモリ記憶(UFS)パッケージ又はeMMCパッケージ)の中に含まれる。つまり、記憶システムは実施し、かつ異なるタイプの端末電子製品の中にパッケージすることができる。図1Bに示すように、コントローラ32及び単一のメモリ34はメモリカード40の中に集積されてもよい。メモリカード40はPCカード(PCMCIA、パーソナルコンピュータメモリカード国際協会)、CFカード、スマートメディア(SM)カード、メモリスティック、マルチメディアカード(MMC、RS-MMC、MMCmicro)、SDカード(SD、miniSD、microSD、SDHC)、及びUFS等を含んでもよい。メモリカード40はメモリカード40とホスト(例えば、図1Aにおけるホスト20)とを結合するメモリカードコネクタ42を更に含んでもよい。図1Cにおいて示される別の実施例においては、コントローラ32及び複数のメモリ34はSSD50の中に集積されてもよい。SSD50はSSD50とホスト(例えば、図1Aにおけるホスト20)とを結合するSSDコネクタ52を更に含んでもよい。いくつかの実施形態においては、SSD50の記憶容量及び/又は操作速度はメモリカード40の記憶容量及び/又は操作速度よりも大きい。
【0041】
説明する必要がある点として、本開示の実施例に係るメモリは半導体メモリであってもよく、半導体集積回路プロセスを用いて製造されたデータ情報を記憶するソリッドステート電子デバイスである。例示的には、図1Dは本開示の実施例における選択可能な一種のメモリ60の模式図である。ここで、メモリ60は図1A図1Cにおけるメモリ34であってもよい。図1Dに示すように、メモリ60は記憶アレイ110と、記憶アレイ110に結合された周辺回路120等からなってもよい。ここでは、記憶アレイ110はNANDフラッシュメモリ記憶セルアレイであってもよく、ここで、記憶セルはNAND記憶ストリング66アレイの形式で提供され、個々のNAND記憶ストリング66は基板(図示せず)の上方に垂直に延在する。いくつかの実施例においては、個々のNAND記憶ストリング66は直列に結合され、かつ垂直に積み重ねられた複数の記憶セルを含んでもよい。ここで、個々の記憶セルは連続したアナログ値、例えば、電圧又は電荷を維持し、それは記憶セル領域内で捕捉された電子の数により決まる。なお、上記記憶アレイ110における個々の記憶セルはフローティングゲートトランジスタを含むフローティングゲートタイプの記憶セルであってもよく、又は電荷捕捉トランジスタを含む電荷捕捉タイプの記憶セルであってもよい。
【0042】
本開示の実施例においては、上記記憶セルは二種の可能な記憶状態を有し、かつ、そのため、1ビットのデータを記憶できる単層記憶セル(Single Level Cell、SLC)であってもよい。例えば、第1記憶状態「0」は第1電圧範囲に対応してもよく、かつ第2記憶状態「1」は第2電圧範囲に対応してもよい。別のいくつかの実施例においては、個々の記憶セルは4つよりも多いメモリ状態において単一ビットよりも多いデータを記憶できる多層記憶セル(Multi Level Cell、MLC)である。例えば、MLCはセル毎に2ビットを記憶し、セル毎に3ビットを記憶し(三層記憶セル(Triple Level Cell、TLCとも呼ばれる))、又はセル毎に4ビット(四層記憶セル(Quad Level Cell、QLCとも呼ばれる))を記憶するようにしてもよい。個々のMLCは可能な公称記憶値の範囲をとるようにプログラミングされてもよい。例示的には、個々のMLCに2ビットのデータを記憶すれば、MLCは3つの可能な公称記憶値のうちの1つを該記憶セルに書き込むことによって消去状態から3つの可能なプログラミングレベルのうちの1つをとるようにプログラミングされてもよい。ここで、第4公称記憶値は消去状態に用いられてもよい。
【0043】
本開示の実施例においては、上記周辺回路120はビット線(Bit Line、BL)、ワード線(Word Line、WL)、ソース(Source Line)、ソース選択ゲート(Source Select Gate、SSG)及びドレイン選択ゲート(Drain Select Gate、DSG)を介して記憶セルアレイに結合されてもよい。ここでは、周辺回路は何らの適切なアナログ、デジタル及びハイブリッド信号回路を含んでもよく、それによって、ビット線、ワード線、ソース、SSG及びDSG経由で電圧信号及び/又は電流信号を個々の目標記憶セルに印加し、かつ個々の目標記憶セルから電圧信号及び/又は電流信号を検知することによって記憶セルアレイの操作を促進することに用いられる。また、周辺回路120は金属-酸化物-半導体(MOS)技術を使用して形成された様々なタイプの周辺回路を更に含んでもよい。例示的には、図1Eに示すように、周辺回路120は、ページバッファ(Page Buffer)/検知増幅器71、列デコーダ/ビット線ドライブ72、行デコーダ/ワード線ドライブ73、電圧発生器74、制御論理ユニット75、レジスタ76、インタフェース77及びデータバス78を含む。理解すべきであるように、上記周辺回路120は図1Dにおける周辺回路120と同じであってもよく、かつ別のいくつかの実施例においては、周辺回路120は図1Eにおいて図示されない付加の周辺回路を更に含んでもよい。
【0044】
本開示の実施例においては、上記周辺回路に含まれる制御論理ユニットは、外部ホスト機器から送信された制御コマンドを受信し、かつ制御コマンドに対して相応な処理を行って、制御コマンドの実行に必要な信号を得てかつ行デコーダ/ワード線ドライブ、列デコーダ/ビット線ドライブ及びページバッファ/検知増幅器等に伝達し、最終的に制御コマンドに対応する操作を実現することに用いられてもよい。図1Fに示すように、本開示の実施例の周辺回路120における制御論理ユニット80であり、それは汎用マイクロ処理ユニット81(MP MCU)、ハードウェア処理モジュール82及び複数のコアマイクロ処理ユニット83(core mcu)等を含んでもよい。制御論理ユニット80はインタフェース77を介して外部のホスト(例えば、図1Aにおけるホスト20)と通信することができる。例示的には、上記制御論理ユニット80は図1Eにおける制御論理ユニット75と同じであってもよく、別のいくつかの実施例においては、制御論理ユニット80は図1E及び1Fにおいて図示されない他の回路構造及び接続インタフェースを含んでもよい。本開示の実施例においては、周辺回路120の制御論理ユニット80においては、受信した制御コマンドに対する非同期処理を実現することに用いられるn個の状態マシン121が更に設置されてもよい。
【0045】
具体的には、図2Aは本開示の実施例が提供するメモリの構造ブロック図であり、該メモリ100は、記憶アレイ110と、周辺回路120とを含み、
上記記憶アレイ110は複数の記憶面111を含み、個々の上記記憶面111は記憶セルで構成される記憶ブロックを含み、
上記周辺回路120は上記記憶アレイ110に接続され、かつ上記複数の記憶面111に非同期操作を行わせるように制御することができるように構成され、
ここで、上記周辺回路120において少なくとも1つの状態マシン121が含まれ、
上記複数の状態マシン121の個々は上記複数の記憶面111の少なくとも1つと対応して設置され、上記複数の状態マシン121はメモリインタフェースI/Fに接続され、かつ上記メモリインタフェースI/Fから対応する各記憶面111の非同期操作に関連する制御コマンドを並行して受信することができ、上記複数の状態マシン121の個々はそれが受信した上記制御コマンドを各々独立して処理することで相応な記憶面111の制御情報を取得することができる。
【0046】
本開示の実施例においては、メモリ100は、揮発性メモリであってもよく、不揮発性メモリであってもよく、読み取り専用メモリ、及びランダムメモリ等を含む。メモリ100は上記図1A図1Cにおけるメモリ34、又は図1Dにおけるメモリ60であってもよい。本開示の実施例におけるメモリは、読み取り、プログラミング及び消去等の複数の記憶面を含むメモリの操作を独立して実行することができる。下記において、フラッシュメモリ(NAND)を例に説明する。
【0047】
メモリ100において1つ又は複数のNANDダイが含まれてもよく、かつ周辺回路120と1つのフラッシュメモリチップの中にパッケージされる。NANDダイは記憶セルで構成されるアレイを含んでもよく、個々の記憶セルは全て記憶された電荷によってデータの記憶を実現することができる。読み取り操作を行うときに、ゲートを制御することによって電圧を選定された記憶セルがあるワード線に印加し、次に検知回路によって相応な記憶セルのオン状態を検知し、それによりデータの読み取りを実現することができる。書き込み操作は記憶セルのフローティングゲートに電荷を記憶することによって、記憶セルのオン電圧に対する調整を実現し、さらに異なるデータの記憶を実現することができる。
【0048】
メモリ100においては、各記憶セルの分布構造は複数の記憶ブロックとして配置されてもよく、記憶ブロックは同時に消去される最小セルであってもよい。また、記憶セルは更に複数の記憶面111として配置され、個々の記憶面111は若干の記憶ブロック及び関連付けられる行/列制御回路を含む。個々の記憶面111において二次元(2D)又は三次元(3D)の記憶構造が含まれてもよい。
【0049】
本開示の実施例においては、メモリ100の周辺回路120は、少なくとも複数の状態マシン121と、状態マシンに接続される他の論理回路122とを含んでもよい。ここでは、他の論理回路122は周辺回路120における状態マシン121以外の一部又は全部の論理回路であり、例えば、マイクロ処理ユニット、及びハードウェア処理モジュール等を含んでもよい。他の論理回路122はメモリ100における各記憶面111に接続され、状態マシンにより処理された後の制御コマンドに基づいて各記憶面111に非同期操作を行わせるように制御することに用いられる。ここでは、メモリ100の周辺回路120は上記図1Eにおける周辺回路70の一部又は全部であってもよい。例示的には、周辺回路120は少なくとも上記図1Eにおける周辺回路70における制御論理ユニット75を含んでもよく、又は上記図1Fにおける制御論理ユニット80を含んでもよい。かつ本開示の実施例におけるメモリインタフェースI/Fの作用は、外部に接続されたホスト(例えば図1Aに示されるホスト20)から提供された制御コマンドを各状態マシン121に伝達して処理することであり、該メモリインタフェースI/Fは上記図1E又は1Fにおけるインタフェース77の一部又は全部であってもよく、上記インタフェース77とは異なる独立したインタフェースであってもよく、ここでは限定されない。
【0050】
他の論理回路122は相応なインタフェースを介して個々の記憶面111に接続され、記憶面111における各記憶ブロックに対して読み取り、書き込み又は消去操作を行うことができ、例えば複数の記憶面にAMPI操作、非同期プログラミング操作、及び非同期消去操作等の非同期操作を行わせるように制御する。他の論理回路122は異なる非同期操作を行うクロック信号を提供することに加えて、更に様々な電圧又は電流信号を提供し、かつ検知等の機能を提供する。急速な読み取り操作をサポートするために、他の論理回路122は更に非同期マルチプレーン独立(AMPI、Async Multi-plane Independent)読み取り操作をサポートするように構成されてもよい。AMPI読み取りは拡張型の読み取り操作であり、異なる記憶面111の間が独立した非同期読み取り操作を同時に行うことをサポートすることができる。また、他の論理回路122は更に、非同期マルチプレーンのプログラミング操作、非同期マルチプレーンの消去操作及び他の様々な非同期操作のハイブリッド操作等をサポートするように構成されてもよい。
【0051】
AMPI読み取り操作を例とすると、他の論理回路122のコマンド処理は一般的に非同期操作でもあり、個々の記憶面111の非同期制御コマンドに対してキューイング処理を順次行う。このように処理時間が長すぎることを引き起こすようになり、制御コマンドを受信した後に順次処理することは、後に処理された制御コマンドに対応する記憶面111の待ち時間が長すぎることを引き起こし、それによりメモリ100全体の処理時間長さは比較的長くなる。
【0052】
従って、本開示の実施例は記憶面111に対応する複数の状態マシン121を採用して制御コマンドの処理を行う。ここでは、複数の状態マシン121の数は記憶面111の数と一致してもよく、かつ個々の状態マシン121は記憶面111に1対1で対応する。別の実施例においては、複数の状態マシン121の数は記憶面111の数よりも少なくてもよく、1つの状態マシン121は1つ又は複数の記憶面111に対応してもよい。ここでは、状態マシン121が記憶面111に対応することは、該状態マシン121が指定された記憶面111に対しての制御コマンドを処理することに用いられることを指す。もし1つの状態マシン121は1つのみの記憶面111に対応するのであれば、該状態マシン121は該対応する記憶面111の制御コマンドを処理することのみに用いられる。例示的には、本開示の実施例におけるメモリの記憶面は4つ、6つ、8つ又はそれ以上を含んでもよい。
【0053】
本開示の実施例においては、状態マシン121はメモリインタフェースI/Fに接続され、対応する記憶面111に対しての制御コマンドを受信することができる。状態マシン121はハードウェア回路によって制御コマンドに対して解析処理を行い、又は制御コマンドに対応する操作を実行するのに必要なパラメータ等を設定する。
【0054】
ここでは、メモリインタフェースI/Fは外部のホスト機器(例えば図1Aに示されるホスト20)に接続されてもよく、メモリインタフェースI/Fはいくつかの制御信号線、クロック信号線及びデータ信号線等のバスインタフェースを含んでもよい。ホスト機器は制御コマンドを送信する方式によってメモリ100に対する制御を実現することができる。例示的には、図1Aに示すように、ホスト20は通信インタフェースを介して記憶システム30との間でコマンド交換を行い、記憶システム30におけるコントローラ32はホスト20から送信された制御コマンドをメモリ34(すなわち上記実施例における図2Aに示されるメモリ100)に伝達し、かつ上記実施例における上記メモリインタフェースI/Fを介して他の論理回路122に送信することができる。制御コマンドにおいては、例えば該制御コマンドがどの記憶面111に対しての制御コマンドであるかのようないくつかのアドレス情報が運ばれてもよい。これらのアドレス情報に従って、相応な状態マシン121は制御コマンドを受信し、かつ応答メッセージ等をフィードバックすることができる。次に、状態マシン121は制御コマンドを処理した後に、他の論理回路122により相応な信号を提供して記憶面111に対する制御を実現する。
【0055】
上記複数の状態マシン121はそれぞれ独立して設置されたハードウェア構造であるため、制御コマンドに対して並行処理を行うことができる。異なる記憶面111に対しての複数の制御コマンドを同時又は同じ期間内に受信すれば、複数の状態マシン121は並行処理し、かつ他の論理回路122に伝達することができる。次に、他の論理回路122により順次制御する。このようにする目的は、従来の制御コマンドキューを複数の状態マシン121によって複数の小さなキューに分割して並行処理し、個々のキューにおける制御コマンドが単独でキューイングでき、それにより全体的なキューイング効率を向上させることである。本開示の実施例においては、記憶面111の数が多いほど、状態マシン121が非同期処理を行って全体的な処理時間長さを短縮させる効果は明らかになる。
【0056】
また、本開示の実施例においては、複数の状態マシン121はそれぞれメモリインタフェースI/Fに接続されてもよく、図2Aに示すとおりである。メモリインタフェースI/Fは複数の接続端子を含んでもよく、個々の接続端子はそれぞれ状態マシン121に接続され、かつ、個々の接続端子はそれぞれ異なる制御コマンドをそれが接続した状態マシン121に伝送することができる。
【0057】
図2BはメモリインタフェースI/Fがコマンドキューを分離し、かつ状態マシンとの間で転送する原理を図示する。具体的には、複数の状態マシン121はそれぞれメモリインタフェースI/Fに接続され、メモリインタフェースI/Fは受信した制御コマンドキューを状態マシン121の個数に応じて複数のキューに分割し、かつキュー順序に応じて状態マシン121に順次伝達することができる。図2Bにおいては、個々の状態マシン121の現在の状態で1つの制御コマンドを処理するとすれば、次の状態ではメモリインタフェースI/Fが対応するキューにおいて待つ次の制御コマンドを受信し、かつ処理する。
【0058】
上記技術的手段によって、制御コマンドをウェイに応じて分離し、複数のキューの形式でそれぞれ異なる状態マシンによって処理し、それによりウェイレベル(way-level)に基づく処理を実現することができる。それに対して、いくつかの他の実施例においては、汎用マイクロプロセッサ(MP MCU)はすべての制御コマンドに対してチップレベル(chip-level)のシリアル処理を行い、すなわち1つの総キューによってメモリチップの制御論理によりシリアル処理を直接行う。
【0059】
理解できるように、本開示の実施例におけるウェイレベルに基づく制御コマンドに対する処理は、汎用マイクロプロセッサによりすべての制御コマンドに対してチップレベルのシリアル処理を行う方式に比べて、制御コマンドの処理時間長さを効果的に低減させ、個々の記憶面の待ち又はアイドル時間長さを低減させ、それによりメモリ全体の操作レートを向上させることができる。
【0060】
いくつかの実施例においては、上記周辺回路120は複数の上記状態マシン121からの制御情報に従って上記複数の記憶面111に非同期操作を行わせるように制御するように構成される。本開示の実施例においては、複数の状態マシン121は対応する各記憶面111の非同期操作に関連する制御コマンドを処理することによって、制御情報を得た後に、周辺回路120はこれらの制御情報に従って各記憶面111に非同期操作を行わせるように制御することができる。
【0061】
ここでは、周辺回路120による各制御情報に対する処理はシリアル処理であってもよく、例えば、周辺回路120における他の論理回路122が複数の状態マシン121から提供された制御情報を受信し、かつ一定の順序に応じて処理し、かつ異なる記憶面111に転送することで、異なる記憶面111に対する制御を実現する。例示的には、周辺回路120による制御情報に対する処理は、制御情報に従って各記憶面111に非同期操作に必要な電圧、及び電流等の信号を発することで、各記憶面111に対する非同期操作を実現することを含んでもよい。
【0062】
本開示の実施例においては、周辺回路120は制御情報に基づいてハードウェア処理を行い、それにより制御コマンドに対応する非同期操作を実行する。
【0063】
いくつかの実施例においては、上記状態マシン121は更に、上記制御コマンドに従ってパラメータ設定を行うように構成され、
ここで、上記複数の状態マシン121のうちの少なくとも2つの状態マシン121が上記制御コマンドを処理し、かつ上記パラメータ設定を行うことに占有される時間帯には少なくとも部分的な重なりが存在する。
【0064】
本開示の実施例においては、状態マシン121は更にパラメータ設定を行うことに用いられてもよく、異なる制御コマンドに基づいて、相応なパラメータ設定を行うことができる。複数の状態マシン121が並行して処理することができるため、上記複数の状態マシン121が制御コマンドの解析及びパラメータ設定を行う時間は相互に重なってもよく、つまり、異なる状態マシン121は各々の解析及び設定過程を同時に行うことができる。
【0065】
このように、異なる記憶面111の間で操作の実行を開始する時間差を低減させることができ、さらにメモリ100の全体的な処理時間長さを低減させる。
【0066】
いくつかの実施例においては、図3に示すように、上記周辺回路120は、
上記複数の状態マシン121に接続され、かつ上記複数の状態マシン121の制御情報に従って、上記制御情報の処理順序を特定するように構成されるシーケンス演算モジュール131を更に含む。
【0067】
周辺回路120が依然として各制御コマンドに対応する制御情報をシリアル処理する必要があるため、本開示の実施例においては、シーケンス演算モジュール131を追加して、状態マシン121により処理して得られた制御情報を順序付けて、各制御情報の処理順序を特定する。
【0068】
つまり、複数の状態マシン121が制御コマンドに対してシャントキューイング及び関連処理を行った後に、シーケンス演算モジュール131は制御情報に対するキューイングを実現することに用いられる。
【0069】
シーケンス演算モジュール131は制御情報の処理順序を特定した後に、制御情報に基づいて相応な制御コマンドを実行するように周辺回路120に順次指示し、このようにして周辺回路120における制御リソースの合理的な利用を容易にし、リソースの競合を低減させることができる。
【0070】
いくつかの実施例においては、上記状態マシン121は具体的に、
上記制御コマンドに従って、上記シーケンス演算モジュール131に処理要求を送信するように構成され、
上記シーケンス演算モジュール131は具体的に、
複数の状態マシン121から送信された上記処理要求に従って、上記周辺回路120による上記制御情報に対する処理順序を特定するように構成される。
【0071】
本開示の実施例においては、状態マシン122は制御コマンドに従ってシーケンス演算モジュール131に処理要求を送信することができ、該処理要求は順序付け処理を行うようにシーケンス演算モジュール131に要求する。
【0072】
処理要求は、処理対象の制御コマンドに対応する記憶面情報、例えば記憶面の番号、及びアドレス等の情報を含んでもよく、いくつかの操作タイプ等の情報を含んでもよい。シーケンス演算モジュール131はこれらの情報によって、受信した制御情報を順序付け、周辺回路120は該順序付けを根拠として制御情報を処理し、さらに各記憶面に対する非同期操作を実行することができる。
【0073】
いくつかの実施例においては、図4に示すように、上記周辺回路120は、ハードウェア演算モジュール132と、複数のマイクロ処理ユニット133と、を更に含み、
上記ハードウェア演算モジュール132は上記シーケンス演算モジュール131に接続され、かつ上記処理順序に応じて上記制御情報に対応する制御パラメータを順次特定するように構成され、
上記複数のマイクロ処理ユニット133は各記憶面111にそれぞれ対応し、上記ハードウェア演算モジュール133に接続され、かつそれぞれ対応する上記記憶面111に接続され、上記複数のマイクロ処理ユニット133は上記制御パラメータに従って上記各記憶面111に対して非同期操作を行うように構成される。
【0074】
本開示の実施例においては、周辺回路120におけるハードウェア演算モジュール132は、制御情報に従って記憶面111に対して非同期操作を行うことに必要な様々な信号を特定することに用いられ、様々な操作に必要な電圧、電流及び対応するタイミング変化等を演算することを含む。ハードウェア演算モジュール132はシリアル処理であり、従って、ハードウェア演算モジュール132はシーケンス演算モジュール131から提供された処理順序に従って相応な処理を行うことができる。
【0075】
また、ハードウェア演算モジュール132は制御パラメータをマイクロ処理ユニット133(Core MCU)に提供する必要がある。マイクロ処理ユニット133は各記憶面111に接続され、個々のマイクロ処理ユニット133は1つの記憶面111を単独で制御してもよい。いくつかの実施例においては、1つのマイクロ処理ユニット133は複数の記憶面111を制御してもよい。
【0076】
ハードウェア演算モジュール132は制御パラメータを対応するマイクロ処理ユニット133に伝達し、次にマイクロ処理ユニット133により記憶面111に対する制御を実現する。マイクロ処理ユニット133は制御バスを介して記憶面111に接続されてもよく、制御バスは記憶面111との様々な論理回路接続を含んでもよく、各記憶セルに接続されたワード線、ビット線、選択線及び制御線等を含む。
【0077】
いくつかの実施例においては、上記複数の状態マシン121は更にそれぞれ対応する上記マイクロ処理ユニット133に接続され、かつ上記制御コマンドを受信したときに、上記マイクロ処理ユニット133にイネーブル信号を提供するように構成される。
【0078】
本開示の実施例においては、各マイクロ処理ユニット133の作動状態と状態マシン121の作動状態とは両方の間の通信によって同期することができる。このように、状態マシン121は新たな制御コマンドを受信したときに、イネーブル信号によってマイクロ処理ユニット133をイネーブルにすることができ、それにより、マイクロ処理ユニット133はこれから行う制御操作に対して相応な準備を行い、同時に、クロック同期等の作用を達成することもできる。
【0079】
いくつかの実施例においては、状態マシン121はマイクロ処理ユニット133に1対1で対応してもよく、それにより個々のマイクロ処理ユニット133と単独で通信し、かつ対応するマイクロ処理ユニット133をイネーブルにする。別のいくつかの実施例においては、状態マシン121は複数のマイクロ処理ユニット133に対応してもよく、かつ複数のマイクロ処理ユニット133と通信し、かつ複数のマイクロ処理ユニット133をイネーブルにする。
【0080】
いくつかの実施例においては、上記複数のマイクロ処理ユニット133は更に、
1つの上記制御コマンドに基づく上記記憶面111に対する制御操作を終了した後に、対応する上記状態マシン121に状態情報を送信するように構成され、
上記状態マシン121は更に、対応する上記マイクロ処理ユニット133から送信された上記状態情報を受信した後に、次の制御コマンドを受信するように構成される。
【0081】
また、各マイクロ処理ユニット133と状態マシン121との間の通信接続は更に、マイクロ処理ユニット133が状態マシン121にその自身の処理状態を通知することに用いられてもよく、もしマイクロ処理ユニット133は作動状態にあるのであれば、一種のタイプの状態情報を提供することができ、状態マシンは次の制御コマンドの処理を一時的に停止する又は次の制御コマンドを一時的に受信しない。マイクロ処理ユニット133はアイドル状態にあれば、別のタイプの状態情報を提供することができ、状態マシン121は次の制御コマンドを受信し、かつ次回の操作を行わせるようにマイクロ処理ユニット133をイネーブルにすることができる。
【0082】
例示的には、マイクロ処理ユニット133は状態マシン121に1つの信号を出力することができ、もし信号が高レベルの状態であるのであれば、現在のマイクロ処理ユニット133が作動状態にあることを表す。もし信号が低レベルの状態であるのであれば、現在のマイクロ処理ユニット133がアイドル状態にあることを表す。
【0083】
このように、さらにリソースの競合を低減させ、処理効率を向上させ、かつリソースの競合に起因する操作エラーの発生の可能性を低減させることができる。
【0084】
いくつかの実施例においては、図5に示すように、上記周辺回路120はメインプロセッサ134を更に含み、
上記メインプロセッサ134は上記メモリインタフェースI/F及び上記複数のマイクロ処理ユニット133に接続され、かつ上記複数のマイクロ処理ユニット133から送信された状態情報を受信し、かつ上記メモリインタフェースI/Fに複数の上記状態情報に従って特定された総状態情報を送信するように構成され、ここで、上記総状態情報は上記複数のマイクロ処理ユニット133がいずれも1組の制御コマンドに基づく制御操作を終了したことを指示することに用いられる。
【0085】
ここでは、メインプロセッサ134はメモリインタフェースI/Fに接続され、外部のいくつかの制御コマンドを直接受信することができる。例示的には、メインプロセッサ134は汎用マイクロプロセッサにより実現されてもよい。また、メインプロセッサ134は複数のマイクロ処理ユニット133に接続され、ソフトウェアによってメモリ100における各記憶面111に対する制御を実行することができる。従って、メインプロセッサ134を使用して状態マシン121と協働して記憶面111を柔軟に制御することができる。いくつかの機能拡張又はデバッグを行うときにメインプロセッサ134を利用していくつかの機能を実現することができ、又は各制御コマンドに対してシリアル処理を行う必要があるときにメインプロセッサ134を使用することもできる。
【0086】
本開示の実施例においては、各マイクロ処理ユニット133は各々の状態情報をメインプロセッサ134に送信することができ、もしすべてのマイクロ処理ユニット133がいずれもアイドル状態にあるのであれば、メインプロセッサ134はメモリインタフェースI/Fに総状態情報を送信することでメモリ100がアイドル状態にあることを指示することができる。このように、外部ホストマシンはメモリ100に対していくつかの他の制御総制御を容易に行うことができ、又はメモリ100に対してリセット、及びリフレッシュ等の操作を行うことができる。
【0087】
ここでは、総状態情報は各マイクロ処理ユニット133から提供された状態情報を含んでもよく、各マイクロ処理ユニット133から提供された状態情報に従って生成された、メモリの状態がアイドル状態であることを指示することに用いられる情報であってもよい。
【0088】
いくつかの実施例においては、上記メインプロセッサは更にリセットコマンドを受信するように構成され、ここで、上記リセットコマンドは上記メモリ100における各記憶面111の操作をリセットすることに用いられる。
【0089】
本開示の実施例においては、もしメモリ100をリセットしようとするのであれば、メモリ100のインタフェースを介してメインプロセッサ134にリセットコマンドを送信することができる。メインプロセッサ134はリセットコマンドを受信したときに各記憶面111に対してリセット操作を行うことができる。
【0090】
説明する必要がある点として、リセット操作は任意の時点で行うことができ、例えば、各記憶面111がアイドル状態にあるときに、各記憶面111に対してリセット操作を行うことができきる。さらに例えば、記憶面111が読み書き操作を行っているときに、もしリセットコマンドを受信するのであれば、現在の読み書き操作を停止し、かつリセット操作を行うことができる。ここでは、リセット操作は各ノードの電荷をリリースし、各信号線における信号をゼロにする又は正規化すること等を含んでもよい。
【0091】
いくつかの実施例においては、上記複数の状態マシン121は更にそれぞれ上記複数の記憶面111に接続され、かつ上記制御コマンドに従って対応する上記記憶面111にアドレス情報を送信するように構成される。
【0092】
本開示の実施例においては、複数の状態マシン121は更にそれぞれ複数の記憶面111に接続されてもよく、例えば、アドレスバスを介して複数の記憶面111に接続される。状態マシン121はアドレスバスを介して記憶面111にアドレス情報を送信することができ、操作対象の行アドレス情報及び列アドレス情報、又は操作対象の記憶ブロック等の情報を含む。状態マシン121が記憶面111に1対1で対応すれば、個々の状態マシンから送信されたアドレス情報は、記憶面111における対応する記憶セルのアドレス情報のみを含むだけでよく、記憶面のアドレス情報を含む必要がない。
【0093】
図6に示すように、本開示の実施例はメモリの制御方法を更に提供し、上記方法はメモリにおける周辺回路により実行され、上記周辺回路は少なくとも1つの状態マシンを含み、上記方法は、
上記メモリにおける状態マシンが上記メモリにおける各記憶面に対しての非同期操作に関連する制御コマンドを並行して受信するステップS101であって、ここで、上記状態マシンの個々は上記複数の記憶面の少なくとも1つと対応して設置される、ステップS101と、
上記状態マシンが受信した上記制御コマンドを各々独立して処理して、相応な記憶面の制御情報を取得するステップS102と、を含む。
【0094】
本開示の実施例におけるメモリにおいて、少なくとも1つの状態マシンが含まれ、異なる状態マシンは異なる記憶面と対応してもよい。例示的には、1つの状態マシンは1つの記憶面と対応してもよく、複数の記憶面と対応してもよい。複数の状態マシンはメモリインタフェースに接続され、かつメモリインタフェースから転送された、各記憶面に対しての非同期操作に関連する制御コマンドを受信することができる。複数の状態マシンは制御コマンドを並行して受信し、かつ処理することができ、非同期操作に関連する制御コマンドをシリアル処理する方法に比べて、関連回路の待ち時間長さを低減させ、処理リソースの利用率を向上させ、それにより処理効率を向上させ、処理遅延を低減させることができる。
【0095】
いくつかの実施例においては、上記方法は、
上記周辺回路が上記制御情報に基づいて、上記複数の記憶面に非同期操作を行わせるように制御するステップを更に含む。
【0096】
上記複数の状態マシンは制御コマンドを受信した後に解析し、相応な制御情報を得ることができる。複数の状態マシンが制御コマンドの解析を行う過程は並行してもよく、それにより複数の異なる記憶面に対しての制御コマンドの解析を同期して完了することができる。
【0097】
複数の状態マシンは制御コマンドの解析を完了した後に、解析した後に得られた制御情報を周辺回路の他の論理回路にそれぞれ伝達することができる。次に、記憶面に対する非同期操作を実行する。
【0098】
いくつかの実施例においては、上記方法は、
上記状態マシンが上記制御コマンドに従ってパラメータ設定を行うステップであって、ここで、上記状態マシンのうちの少なくとも2つの状態マシンが上記制御コマンドを処理し、かつ上記パラメータ設定を行うことに占有される時間帯には少なくとも部分的な重なりが存在する、ステップを更に含む。
【0099】
本開示の実施例においては、複数の状態マシンは更に制御コマンドに従ってパラメータ設定を行い、複数の状態マシンが並行して処理することができるため、上記複数の状態マシンが制御コマンドを解析し、かつパラメータ設定を行う時間は相互に重なってもよく、つまり、異なる状態マシンは各々の解析及び設定過程を同時に行うことができる。
【0100】
汎用プロセッサによって非同期操作に関連する制御コマンドに対してシリアル解析処理を行い、かつ周辺回路により個々の制御コマンドを待って制御操作を順次行うという方式に比べて、本開示の実施例における上記方法は、異なる記憶面の間で操作の実行を開始する時間差を低減させることができ、さらにメモリの全体的な処理時間長さを低減させる。
【0101】
いくつかの実施例において、上記周辺回路が上記制御情報に基づいて、上記複数の記憶面に非同期操作を行わせるように制御するステップは、
上記複数の状態マシンから提供された制御情報に従って、上記周辺回路による上記制御情報に対する処理順序を特定するステップと、
上記処理順序に応じて上記制御情報を順次処理するステップと、
処理した後の上記制御情報に従って、上記複数の記憶面に非同期操作を行わせるように制御するステップと、を含む。
【0102】
本開示の実施例においては、状態マシンは各制御コマンドに対して解析処理及びパラメータ設定を行った後に、周辺回路は各記憶面に対して相応な制御操作を行うことができる。周辺回路における他の論理回路がシリアル操作を行うことができるため、複数の状態マシンの制御コマンドは順序付けられた後にこれらの論理回路によって順次実行され得る。周辺回路は各制御コマンドに対する処理順序に応じて相応な制御情報を処理し、さらに対応する記憶面に非同期操作を行わせるように順次制御することができる。
【0103】
いくつかの実施例においては、上記複数の状態マシンから提供された制御情報に従って、上記制御情報に対する処理順序を特定する上記ステップは、
上記周辺回路におけるシーケンス演算モジュールが、上記複数の状態マシンが上記制御コマンドに基づいて送信した処理要求を受信するステップと、
上記シーケンス演算モジュールが上記処理要求に基づいて、上記制御情報に対する処理順序を特定するステップと、を含む。
【0104】
本開示の実施例においては、コントローラにおけるシーケンス演算モジュールによって順序付けの動作を実行することができる。複数の状態マシンは受信し、かつ解析処理した後の制御コマンドに従ってシーケンス演算モジュールに処理要求を送信することができる。シーケンス演算モジュールは処理要求に従って制御コマンドに対応する制御情報に対して相応な順序付けを行い、かつ順序付けに応じて制御情報を処理することで、異なる制御記憶面に対する非同期操作を実行することができる。
【0105】
いくつかの実施例においては、上記処理順序に応じて上記制御情報を順次処理する上記ステップは、
上記周辺回路におけるハードウェア演算モジュールは上記状態マシンから提供された上記制御情報に従って、上記処理順序に応じて上記制御情報に対応する制御パラメータを順次特定するステップを含む。
【0106】
本開示の実施例においては、シーケンス演算モジュールにより特定された処理順序はハードウェア演算モジュールに提供されてもよい。ハードウェア演算モジュールは具体的な制御コマンドに従って必要な電圧、電流及び相応なタイミング等の制御パラメータを計算することに用いられる。ハードウェア演算モジュールはシリアル処理であり、従って、ハードウェア演算モジュールはシーケンス演算モジュールから提供された処理順序に従って相応な処理を行うことができる。
【0107】
いくつかの実施例においては、処理した後の上記制御情報に従って、上記複数の記憶面に非同期操作を行わせるように制御する上記ステップは、
上記周辺回路における複数のマイクロ処理ユニットが上記制御パラメータに従って対応する上記記憶面に非同期操作を行わせるように制御するステップであって、ここで、上記複数のマイクロ処理ユニットはそれぞれ上記複数の記憶面に対応する、ステップを含む。
【0108】
ハードウェア演算モジュールは制御パラメータをマイクロ処理ユニットに提供することができる。マイクロ処理ユニットは各記憶面に接続され、個々のマイクロ処理ユニットは1つの記憶面を単独で制御してもよい。複数のマイクロ処理ユニットは複数の記憶面に対しての非同期操作を実行することに用いられる。
【0109】
別のいくつかの実施例においては、1つのマイクロ処理ユニットは複数の記憶面を制御してもよい。
【0110】
ハードウェア演算モジュールは制御パラメータを対応するマイクロ処理ユニットに伝達し、次にマイクロ処理ユニットにより記憶面に対する制御を実現する。マイクロ処理ユニットは制御バスを介して記憶面に接続されてもよく、制御バスは記憶面との様々な論理回路接続を含んでもよく、各記憶セルに接続されたワード線、ビット線、選択線及び制御線等を含む。
【0111】
このように、マイクロ処理ユニットはハードウェア演算モジュールから提供された制御パラメータに従って各記憶面に対して相応な操作を実行し、さらに制御コマンドを実行する結果に達することができる。
【0112】
いくつかの実施例においては、上記方法は、
上記複数の状態マシンは上記制御コマンドを受信したときに、上記マイクロ処理ユニットにイネーブル信号を提供するステップを更に含む。
【0113】
本開示の実施例においては、各マイクロ処理ユニットの作動状態と状態マシンの作動状態とは両方の間の通信によって同期することができる。このように、状態マシンは新たな制御コマンドを受信したときに、イネーブル信号によってマイクロ処理ユニットをイネーブルにすることができ、それにより、マイクロ処理ユニットはこれから行う制御操作に対して相応な準備を行い、同時に、クロック同期等の作用を達成することもできる。
【0114】
本開示の実施例においては、状態マシンは制御コマンドを受信した後に対応するマイクロ処理ユニットにイネーブル信号を送信し、マイクロ処理ユニットを待ち状態にするようにしてもよい。制御コマンドに対する解析等の操作を完了した後に対応するマイクロ処理ユニットにイネーブル信号を送信するようにしてもよく、それにより、マイクロ処理ユニットは相応な制御パラメータ等の情報を受信し始め、かつ記憶面に対する操作等を実行する。
【0115】
いくつかの実施例においては、上記方法は、
上記マイクロ処理ユニットが1つの上記制御情報に基づく上記制御面に対する制御操作を終了した後に、対応する上記状態マシンに状態情報を送信するステップと、
上記状態マシンが対応する上記マイクロ処理ユニットから送信された上記状態情報を受信した後に、次の制御コマンドを受信するステップと、を更に含む。
【0116】
本開示の実施例においては、マイクロ処理ユニットは対応する状態マシンに接続されてもよく、マイクロ処理ユニットは1つの制御コマンドの制御操作を完了した後にアイドル状態に入り、このときに、状態マシンに状態情報を送信することができる。このように、状態マシンは次の制御コマンドを引き続き受け付け、かつ相応な解析処理等を引き続き行うことができる。
【0117】
いくつかの実施例においては、上記方法は、
上記周辺回路におけるメインプロセッサが上記複数のマイクロ処理ユニットから送信された状態情報を受信し、かつメモリインタフェースに総状態情報を送信するステップであって、ここで、上記総状態情報は上記複数のマイクロ処理ユニットがいずれも1組の制御コマンドに基づく制御操作を終了したことを指示することに用いられる、ステップを更に含む。
【0118】
複数のマイクロ処理ユニットはそれぞれメインプロセッサに各々の状態情報を送信することができ、メインプロセッサは総体的な管理を行うことができる。複数のマイクロ処理ユニットの状態情報がいずれもアイドル状態にあると指示する場合、メモリが全体的にアイドル状態にあることを説明し、このときに、メモリインタフェースに総状態情報を送信することができる。
【0119】
このように、メモリが接続されたホストはメモリの状態を特定し、かつ他の制御操作を容易に行うことができる。
【0120】
いくつかの実施例においては、上記方法は、
上記メインプロセッサがリセットコマンドを受信するステップと、
上記リセットコマンドに従って、上記メモリにおける各記憶面の操作をリセットするステップと、を更に含む。
【0121】
メインプロセッサはメモリインタフェースからのリセットコマンドを受信し、かつ各記憶面に対してリセット操作を行うことができる。リセット操作は任意の時点で行うことができ、例えば、各記憶面がアイドル状態にあるときに、各記憶面に対してリセット操作を行うことができる。さらに例えば、記憶面が読み操作又は書き操作を行っているときに、もしリセットコマンドを受信するのであれば、現在の読み操作又は書き操作を停止し、かつリセット操作を行うことができる。ここでは、リセット操作は各ノードの電荷をリリースし、各信号線における信号をゼロにする又は正規化すること等を含んでもよい。
【0122】
いくつかの実施例においては、上記方法は、
上記複数の状態マシンが上記制御コマンドに従って対応する上記記憶面にアドレス情報をそれぞれ送信するステップを更に含む。
【0123】
本開示の実施例においては、複数の状態マシンは更に記憶面にアドレス情報を直接送信してもよく、制御コマンドが操作しようとする記憶セルの具体的なアドレスを指示することに用いられ、それによりコントローラは記憶面に対して相応な操作を容易に行う。
【0124】
本開示の実施例は更に以下の例を提供する。
【0125】
一実施例においては、図7に示されるメモリ200は汎用コントローラ201(MP MCU)と、ハードウェア処理モジュール202(HW Calc)と、複数の記憶面に対応するコアマイクロ処理ユニット203a、203b、203c及び203dとを含む。マイクロ処理ユニット203と記憶面とはデータバス(cbus0~3)を介して接続される。また、メモリインタフェース205(nand if)は同期モジュール206(sync)に接続される。また、ハードウェア処理モジュール202及び汎用コントローラ201は更にアドレスバス(mbus0~3)を介して各記憶面に接続されて、アドレス情報を提供することができる。
【0126】
制御コマンド(cmd)はメモリインタフェース205を介して入った後に、同期モジュール206によりクロック同期が行われ、かつコマンドシーケンス処理モジュール207(cmd_seq)に伝達され得る。コマンドシーケンス処理モジュール207はシリアル処理によって、各制御コマンドを順序に応じて汎用コントローラ201に伝達する。ハードウェア処理モジュール202の演算によって必要な制御パラメータを得て、かつ汎用コントローラ201はマイクロ処理ユニット203をイネーブルにすることができる。次に、マイクロ処理ユニット203は各記憶面に対する制御操作を実行することができる。
【0127】
しかしながら、汎用コントローラはソフトウェアによってコマンド解析を行うため、シリアル処理のみを行うことができ、汎用コントローラとハードウェア処理モジュール202とのリソースの競合を回避するために、各ウェイの制御コマンドは相互に待つ必要がある。このような方式は利用率が低く、かつ1回で読み操作又は書き操作のみを行うことができ、複数の記憶面の読み及び/又は書きを同時に行うことができない。また、バスの線幅が8bit(ビット)であるため、並行度は比較的低い。
【0128】
図8に示すように、Y方向は異なる記憶面に対してのマルチウェイの制御コマンドを表し、X方向は個々の記憶面に対しての制御コマンドのキュー深さを表す。各制御コマンド(w0~w3)は順次入った後に相互に時分割シリアル処理を行う必要があり、1つの制御コマンドに対応するマイクロ処理ユニットがアイドル状態にある場合にのみ、操作することができる。ビジー状態のマイクロ処理ユニットに対しては、対応する制御コマンドを待ち状態にする必要がある。個々のキューは優先度の高いものから低いものへの順序に応じて処理され、1つのキュー位置の制御コマンドを処理する順番になるときに、キューに対応するマイクロ処理ユニットの状態値によって論理演算処理、例えば「AND演算」処理を行うことができる。例示的には、キュー[0][1]位置の制御コマンドの順番になるときに、もし該位置に処理対象の制御コマンドが存在し、かつ状態値が「1」(アイドル状態)であるのであれば、処理することができ、もし状態値が「0」(ビジー状態)であるのであれば、処理を待つ。
【0129】
図9に示すように、制御コマンド(w0~w3)が入った後に、それぞれ汎用コントローラの4ウェイの制御コマンド(way0~way3)に対して処理を行うが、2つの異なる記憶面毎に対応する制御コマンドの間の処理時間間隔はtAsyncであり、それに対応して、各ウェイの処理時間長さもtAsyncである。後続のコマンドはtRCBSYを待つ必要があり、汎用コントローラは次の制御コマンドを引き続き受信する。
【0130】
異なる制御コマンドに対しては、対応する読み取り時間長さtRも異なる可能性がある。第1組の制御コマンドに対応する読み取り操作の時間長さの後に、待っている次の制御コマンドを処理することができる。このように、後に待っている制御コマンドはより長い時間待つ必要があり、全体的な操作効率が低いことを引き起こす。各制御コマンドの処理順序及び状態は図10に図示されてもよい。
【0131】
上記例においては、4ウェイのAMPIに対しての読み取り操作であり、もし6ウェイのAMPIを採用して読み取り操作を行うのであれば、より大きな遅延が発生するようになり、かつコマンド処理キューがより複雑である。
【0132】
従って、本開示の実施例は、制御コマンドの並行処理方法及びメモリ構造を提供する。図11に示すように、6ウェイのAMPIの読み取り操作は異なる状態マシン(STM0~STM5)によって並行解析処理を行い、かつ対応する複数のマイクロ処理ユニット(core mcu0~5)のある1つを制御することによって、相応な記憶面に対応する電気的設計ルールで定義された波形情報、例えば読み操作の波形情報を発生させることができる。また、シーケンス演算ユニット及びハードウェア処理ユニットによってパラメータの設定等を実現する。このように、複数の単独のキューで異なる記憶面の制御コマンドを並行処理することによって、一次元のシリアル処理方式を二次元の並行処理方式に変更する。それにより処理効率を効果的に向上させ、リソースの競合を低減させることができる。
【0133】
図12は、各状態マシンの処理タイミング及び対応するマイクロ処理ユニットの状態タイミング(core_done_grp)である。各状態マシンの処理期間は相互に重なる期間を含んでもよく、すなわち異なる制御コマンドを並行処理する。各状態マシンの処理期間は相互に重なる期間を含み、従って、制御コマンドを処理する各ウェイの時間差tAsyncは処理期間に相互に重なることが存在しない状況よりも短くなる。
【0134】
メインコントローラ(MP MCU)の状態は1つの制御コマンドを受信したときにトリガーされて、AMPI操作状態に入ることができる。次に状態マシンが制御コマンドの処理を実行するため、メインコントローラはスリープ状態に入ることができる。複数のマイクロ処理ユニットが操作を完了した後に、汎用コントローラに相応な状態情報を送信することができ、図12に示されるcore_done_grp0~2等の波形立ち上がりエッジは対応するマイクロ処理ユニットが操作を完了することを示す。このときに、メインコントローラMP MCUはウェイクアップされ、すべてのマイクロ処理ユニットがいずれも操作を完了することを示すことに用いられる総状態情報を発することができ、図12において示されるall_core_doneの波形立ち上がりエッジであり、このときに、メインコントローラMP MCUは現在のAMPI操作状態を終了することができる。
【0135】
また、メインコントローラはリセット操作を実行することに用いられてもよく、リセットコマンド(cmd_ff)を受信した後に、メインコントローラをウェイクアップし、かつメモリを制御して行っているAMPI読み取り操作を中断し、例えば対応する各記憶面の各ウェイの並行処理操作を終了する。
【0136】
本開示の実施例においては、コマンドキュー及びリソース割り当てをそれぞれ処理することによって、状態マシンによって複数のコマンドキューの並行処理を実現し、ウェイレベルコマンドの処理時間を低減させる。リソースキューはシーケンス演算モジュールを採用してキューイングされ、チップレベルにおいてハードウェア処理モジュールに発生する可能性があるリソースの競合を処理し、制御コマンドの解析を待つ必要がないため、競合時間が非常に短く、キュー深さも低減するようになり、それにより全体的に処理効率を向上させることができ、これは図13に示すとおりである。例示的には、コマンドシーケンスについては、一方ではチップレベルのリソース計算を行うことができ、他方では、メモリインタフェースで複数のキューに分け、かつウェイレベル処理によって対応する状態マシンにそれぞれ提供することができる。図13に示すように、チップレベルのリソース計算を経たコマンドシーケンスはキュー分離を行い、かつメモリインタフェースの異なるキューに入ることができ、例えば、cmd_xx_grp0~5は合計で6つのキューがある。ここではcmd_xxは異なるコマンドタイプ、例えば読み命令cmd_rd又は書き命令cmd_wr等を指す。メモリインタフェースの複数のキューはそれぞれ異なる状態マシン(例えば図13に示されるstm0~5)に接続され、かつキュー順序に応じて各制御コマンドを状態マシンに転送する。
【0137】
図14は制御コマンドキューのウェイレベル処理原理であり、図15図14に対応する各信号タイミングである。図14に示すように、複数種の制御コマンドのキュー(cmd_30_grpX…cmd_3d_grpX)は状態選択を経て次の組の処理対象のコマンドシーケンスを特定することができる。例えば、そのうちampi読み取り操作を行うべきコマンドシーケンス(ampi_cmd_read_grpX)を処理対象のシーケンスとして特定して非同期処理(sync)を行い、順序に応じて対応する状態マシンstm_xに伝達する。図15に示すように、状態マシンがイネーブル(stm_en_pulse_grpX信号)にされてから状態マシンが送信したampi処理リセット信号(ampi_rst_grpX信号)までは、状態マシン及びコントローラが制御コマンドに対して演算処理を行う期間であり、ここで、各状態マシンの間の処理時間差tAsyncは該期間内に含まれる。ampi処理がリセットされてからメモリの準備(core_cache_rdy_grpX信号)までの期間は命令を実行する前に必要な待ち時間tRCBSYである。メモリの準備が完了した後に、制御命令に対する操作、例えば読み操作を行うことができ、それに対応する時間長さはtRである。また、cotr_done_grpX信号は各マイクロ処理ユニット(mcuX)がいずれも使用可能状態にあることを表し、すなわち前の制御コマンドの操作を完了する。図15におけるmp_mcu_clkはメインプロセッサのクロック信号であり、上記各信号はいずれも該クロック信号の立ち上がりエッジ又は立ち下がりエッジによりトリガーされてもよく、cache_rbn_grpXは制御コマンドを伝送するトリガー信号とされている。
【0138】
図16は複数の状態マシン(STMs)とシーケンス演算モジュール(calc seq)及びハードウェア演算モジュール(hw cale)との間の情報交換過程を図示する。図17は処理過程に必要な時間周期を図示する。図16及び図17に示すように、状態マシンSTMsは受信した制御コマンドに対して並行処理を行った後に、演算要求段階の1つのクロック周期(1clk)内で演算処理モジュールに処理要求(stm_request[x])及び各状態マシンの処理要求タイプ(stm_request_typ_grpX[1:0])を送信する。続いて、演算処理モジュールは1つのクロック周期(1clk)内で図16におけるキュー(queue[1:0][5:0])の順序に基づいて演算して次の処理対象の制御情報を確認し、現在の制御情報(seq_acknowledge[x]=1)を処理すると特定すれば、関連する制御情報をハードウェア演算モジュール(hw cale)に伝達して演算処理を行い、もし現在の制御情報は処理を待つ必要があるのであれば(seq_acknowledge[x]=0)、1つのクロック周期(1clk)を待った後に判断する。ハードウェア処理モジュール(hw cale)が処理することは複数のクロック周期を必要とする可能性があり、例えば4clkのシリアル処理であり、その後、状態マシンはリセット(set stm_request_rst[x])した後に、状態マシンは次の制御コマンドの並行処理を続行させる。
【0139】
図18は本開示の実施例において各記憶面に対して制御する状態模式図である。図18に示すように、各記憶面に対しての制御コマンド(w0~w3)が入った後に、異なる状態マシンは制御コマンドを順次受信し、かつ相応な処理を行う。図18におけるt1~t3は異なる設定過程を表し、読み取り設定に必要な期間をカバーする。図18からわかるように、各ウェイの間で制御コマンドに対する処理の時間差tAsyncは読み取り設定全体に必要な時間長さの一部のみであり、従って、図9に示される状況に比べて、全体的に処理時間長さを短縮させる。
【0140】
理解すべきであるように、明細書にわたって言及された「1つの実施例」又は「一実施例」は実施例に関連する特定の特徴、構造又は特性が本開示の少なくとも1つの実施例の中に含まれることを意味する。従って、明細書全体の各所に現れる「1つの実施例においては」又は「一実施例においては」は必ずしも同じ実施例を指すものではない。また、これらの特定の特徴、構造又は特性は任意の適切な方式で1つ又は複数の実施例に組み合わせられてもよい。理解すべきであるように、本開示の様々な実施例においては、上記各過程の番号の大きさは実行順序の前後を意味するものではなく、各過程の実行順序はその機能及び内部論理で特定されるべきであり、本開示の実施例の実施過程に対して何らの限定を構成すべきではない。上記本開示の実施例の番号は単に記述するためのものに過ぎず、実施例の優劣を表すものではない。
【0141】
説明する必要がある点として、本明細書においては、用語「含む」、「包含」又はそれらの何らの他の変形は、非排他的な包含をカバーすることを意図し、それにより一連の要素を含む過程、方法、物品又は装置はそれらの要素を含むだけでなく、明確に列挙されていない他の要素を更に含み、又はこのような過程、方法、物品又は装置に固有の要素を更に含む。より多くの制限がない状況下では、「1つの…を含む」という語句により限定された要素は、該要素を含む過程、方法、物品又は装置の中に別の同じ要素が更に存在することを排除するものではない。
【0142】
本開示が提供するいくつかの実施例においては、理解すべきであるように、開示された機器及び方法は他の方式によって実現されてもよい。以上に記述された機器実施例は模式的なものに過ぎない。例えば、上記ユニットの分割は、論理機能の分割に過ぎず、実際に実現するときに別の分割方式を有してもよく、例えば、複数のユニット又はコンポーネントは組み合わせられてもよく、又は別のシステムに集積されてもよく、又はいくつかの特徴が無視されてもよく、又は実行されなくてもよい。なお、表示又は検討された各構成部分の相互間の結合、又は直接結合、又は通信接続は、いくつかのインタフェース、機器又はユニットを介した間接的結合又は通信接続であってもよく、電気的、機械的又は他の形式のものであってもよい。
【0143】
分離部材として説明される上記ユニットは物理的に分離されてもよく、又は物理的に分離されなくてもよく、ユニットとして表示される部材は物理ユニットであってもよく、又は物理ユニットではなくてもよく、1つの場所に位置してもよく、複数のネットワークユニットにおいて分布してもよく、実際の必要に従ってそのうちの一部又は全部のユニットを選択して本実施例の技術的手段の目的を実現することができる。
【0144】
なお、本開示の各実施例における各機能ユニットは全部1つの処理ユニットの中に集積されてもよく、各ユニットはそれぞれ単独で1つのユニットとされてもよく、2つ又は2つ以上のユニットは1つのユニットの中に集積されてもよく、上記集積されたユニットはハードウェアの形式で実現されてもよく、ハードウェアとソフトウェアの機能ユニットの形式で実現されてもよい。
【0145】
以上は、本開示の実施形態に過ぎないが、本開示の保護範囲はこれに限定されず、当業者が本開示に開示された技術範囲内で、変化又は置換を容易に想到することができ、これらは全て本開示の保護範囲内に含まれるべきである。従って、本開示の保護範囲は上記特許請求の範囲の保護範囲に準じるべきである。
【符号の説明】
【0146】
10 システム
20 ホスト
30 記憶システム
32 コントローラ
34 メモリ
40 メモリカード
42 メモリカードコネクタ
52 SSDコネクタ
60 メモリ
66 NAND記憶ストリング
70 周辺回路
71 検知増幅器
72 ビット線ドライブ
73 ワード線ドライブ
74 電圧発生器
75 制御論理ユニット
76 レジスタ
77 インタフェース
78 データバス
80 制御論理ユニット
81 汎用マイクロ処理ユニット
82 ハードウェア処理モジュール
83 コアマイクロ処理ユニット
100 メモリ
110 記憶アレイ
111 記憶面
120 周辺回路
121 状態マシン
131 シーケンス演算モジュール
132 ハードウェア演算モジュール
133 マイクロ処理ユニット
133 ハードウェア演算モジュール
134 メインプロセッサ
200 メモリ
201 汎用コントローラ
202 ハードウェア処理モジュール
203 マイクロ処理ユニット
205 メモリインタフェース
206 同期モジュール
207 コマンドシーケンス処理モジュール
図1A
図1B
図1C
図1D
図1E
図1F
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18