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

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

▶ 三星電子株式会社の特許一覧

<>
  • 特開-フラッシュメモリ制御方法及び装置 図1
  • 特開-フラッシュメモリ制御方法及び装置 図2
  • 特開-フラッシュメモリ制御方法及び装置 図3
  • 特開-フラッシュメモリ制御方法及び装置 図4
  • 特開-フラッシュメモリ制御方法及び装置 図5A
  • 特開-フラッシュメモリ制御方法及び装置 図5B
  • 特開-フラッシュメモリ制御方法及び装置 図6
  • 特開-フラッシュメモリ制御方法及び装置 図7
  • 特開-フラッシュメモリ制御方法及び装置 図8
  • 特開-フラッシュメモリ制御方法及び装置 図9
  • 特開-フラッシュメモリ制御方法及び装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023108602
(43)【公開日】2023-08-04
(54)【発明の名称】フラッシュメモリ制御方法及び装置
(51)【国際特許分類】
   G11C 16/10 20060101AFI20230728BHJP
   G06N 3/063 20230101ALI20230728BHJP
   G11C 11/56 20060101ALI20230728BHJP
   G11C 16/04 20060101ALI20230728BHJP
【FI】
G11C16/10 140
G06N3/063
G11C11/56 210
G11C16/04 146
【審査請求】未請求
【請求項の数】25
【出願形態】OL
(21)【出願番号】P 2023002873
(22)【出願日】2023-01-12
(31)【優先権主張番号】10-2022-0010736
(32)【優先日】2022-01-25
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】尹 大健
(72)【発明者】
【氏名】尹 石柱
(72)【発明者】
【氏名】金 尚駿
【テーマコード(参考)】
5B225
【Fターム(参考)】
5B225BA03
5B225BA06
5B225BA19
5B225DB08
5B225DB22
5B225DB23
5B225DB28
5B225DB30
5B225FA01
5B225FA05
(57)【要約】
【課題】フラッシュメモリ制御方法及び装置が提供される。
【解決手段】一実施形態によると、第1プログラミング時間及びプログラミング電圧を調整してターゲットメモリセルに対する第1プログラミングを行うステップと、ターゲットメモリセルのセル電流が第1プログラミングに関する1次目標を満足すると、第2プログラミング時間を調整して前記ターゲットメモリセルに対する第2プログラミングを行うステップと、ターゲットメモリセルのセル電流が前記第2プログラミングに関する2次目標を満足すると、ターゲットメモリセルに対するプログラミングを終了するステップとを含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
第1プログラミング時間及びプログラミング電圧を調整してターゲットメモリセルに対する第1プログラミングを行うステップと、
前記ターゲットメモリセルのセル電流が前記第1プログラミングに関する1次目標を満足すると、第2プログラミング時間を調整して前記ターゲットメモリセルに対する第2プログラミングを行うステップと、
前記ターゲットメモリセルの前記セル電流が前記第2プログラミングに関する2次目標を満足すると、前記ターゲットメモリセルに対するプログラミングを終了するステップと、
を含む方法。
【請求項2】
前記第1プログラミングを行うステップは、前記第1プログラミング時間を最大値まで増加させても前記ターゲットメモリセルの前記セル電流が前記1次目標を満足しない場合、前記プログラミング電圧を増加させながら前記第1プログラミングを行うステップを含む、請求項1に記載の方法。
【請求項3】
前記ターゲットメモリセルの前記セル電流は、前記第1プログラミング時間の調整に比べて前記プログラミング電圧の調整によりもさらに大幅に変化する、請求項1に記載の方法。
【請求項4】
前記第1プログラミングを行うステップは、
前記第1プログラミングによる前記ターゲットメモリセルの前記セル電流の変化を決定するステップと、
前記セル電流の前記変化が前記1次目標による目標範囲の上限よりも大きければ、前記第1プログラミング時間を減少させるステップと、
前記セル電流の前記変化が前記目標範囲の下限よりも小さければ、前記第1プログラミング時間又は粗いプログラミング電圧を増加させるステップと、
を含む、請求項1に記載の方法。
【請求項5】
前記第1プログラミング時間又は前記粗いプログラミング電圧を増加させるステップは、前記第1プログラミング時間が既に最大値である場合、前記粗いプログラミング電圧を増加させるステップを含む、請求項4に記載の方法。
【請求項6】
前記第2プログラミングを行うステップは、
前記第1プログラミング及び前記第2プログラミングによる前記ターゲットメモリセルの前記セル電流の変化を決定するステップと、
前記セル電流の前記変化が前記2次目標による目標範囲の上限よりも大きければ、前記第2プログラミング時間を減少させるステップと、
前記セル電流の前記変化が前記目標範囲の下限よりも小さければ、前記第2プログラミング時間を増加させるステップと、
を含む、請求項1に記載の方法。
【請求項7】
前記1次目標による目標範囲は、前記2次目標による目標範囲よりも広い、請求項1に記載の方法。
【請求項8】
前記1次目標及び前記2次目標のうち少なくとも一部は、ニューラルネットワークモデルのネットワークパラメータに応じて設定され、
前記ターゲットメモリセルを介して前記ニューラルネットワークモデルのネットワーク演算が行われる、請求項1に記載の方法。
【請求項9】
前記ネットワーク演算は、MAC(multiply-accumulate)演算を含む、請求項8に記載の方法。
【請求項10】
ハードウェアと結合して請求項1~請求項9のいずれか一項に記載の方法を実行させるためにコンピュータで読み出し可能な記録媒体に格納されたコンピュータプログラム。
【請求項11】
複数のメモリセルを含むセルアレイと、
ターゲットメモリセルのセル電流に基づいて、第1プログラミング時間及びプログラミング電圧を調整しながら前記セルアレイの前記ターゲットメモリセルに対する第1プログラミングを行うコントローラと、
を含み、
前記ターゲットメモリセルの前記セル電流が前記第1プログラミングに関する1次目標を満足すると、前記コントローラは、第2プログラミング時間を調整して前記ターゲットメモリセルに対する第2プログラミングを行い、
前記ターゲットメモリセルの前記セル電流が前記第2プログラミングに関する2次目標を満足すると、前記コントローラは、前記ターゲットメモリセルに対するプログラミングを終了する、装置。
【請求項12】
前記コントローラは、前記第1プログラミング時間を最大値まで増加させても前記ターゲットメモリセルの前記セル電流が前記1次目標を満足しない場合、粗いプログラミング電圧を増加させながら前記粗いプログラミングを行う、請求項11に記載の装置。
【請求項13】
前記ターゲットメモリセルの前記セル電流は、前記第1プログラミング時間の調整に比べて、粗いプログラミング電圧の調整に応じてさらに大幅に変化する、請求項11に記載の装置。
【請求項14】
前記コントローラは、
粗いプログラミングによる前記ターゲットメモリセルの前記セル電流の変化を決定し、
前記セル電流の前記変化が前記1次目標による目標範囲の上限よりも大きければ、前記第1プログラミング時間を減少させ、
前記セル電流の前記変化が前記目標範囲の下限よりも小さければ、前記第1プログラミング時間又は前記粗いプログラミング電圧を増加させる、請求項11に記載の装置。
【請求項15】
前記コントローラは、前記第1プログラミング時間が既に最大値である場合、前記プログラミング電圧を増加させる、請求項14に記載の装置。
【請求項16】
前記コントローラは、
前記第1プログラミング及び前記第2プログラミングによる前記ターゲットメモリセルの前記セル電流の変化を決定し、
前記セル電流の前記変化が前記2次目標による目標範囲の上限よりも大きければ、前記第2プログラミング時間を減少させ、
前記セル電流の前記変化が前記目標範囲の下限よりも小さければ、前記第2プログラミング時間を増加させる、請求項11に記載の装置。
【請求項17】
前記1次目標及び前記2次目標のうち少なくとも一部は、ニューラルネットワークモデルのネットワークパラメータに応じて設定され、
前記ターゲットメモリセルを介して前記ニューラルネットワークモデルのネットワーク演算が行われ、
前記ネットワーク演算は、MAC(multiply-accumulate)演算を含む、請求項11に記載の装置。
【請求項18】
前記装置はスマートフォンを含む、請求項11~請求項17のいずれか一項に記載の装置。
【請求項19】
複数のメモリセルを含むフラッシュメモリと、
第1プログラミング時間及びプログラミング電圧を調整して前記フラッシュメモリのターゲットメモリセルに対する第1プログラミングを行い、
前記ターゲットメモリセルのセル電流が前記第1プログラミングに関する1次目標を満足すると、第2プログラミング時間を調整して前記ターゲットメモリセルに対する第2プログラミングを行い、
前記ターゲットメモリセルの前記セル電流が前記第2プログラミングに関する2次目標を満足すると、前記ターゲットメモリセルに対するプログラミングを終了するプロセッサを含む、電子装置。
【請求項20】
前記第2プログラミングの間に前記第2プログラミング時間は、前記第1プログラミングの間に前記第2プログラミングが行われるよりも小さい増加分で変更される、請求項19に記載の電子装置。
【請求項21】
前記プロセッサは、前記第1プログラミング時間を最大値まで増加させても前記ターゲットメモリセルの前記セル電流が前記1次目標を満足しない場合、前記プログラミング電圧を増加させながら前記第1プログラミングを行う、請求項19に記載の電子装置。
【請求項22】
前記プロセッサは、
粗いプログラミングによる前記ターゲットメモリセルの前記セル電流の変化を決定し、
前記セル電流の前記変化が前記1次目標による目標範囲の上限よりも大きければ、前記第1プログラミング時間を減少させ、
前記セル電流の前記変化が前記目標範囲の下限よりも小さければ、前記第1プログラミング時間又は前記粗いプログラミング電圧を増加させ、
前記第1プログラミング時間が既に最大値である場合、前記粗いプログラミング電圧を増加させる、請求項19~請求項21のいずれか一項に記載の電子装置。
【請求項23】
フラッシュメモリ装置のメモリセルのセル電流が第1閾値に達したと決定されるまで、前記メモリセルのプログラミング電圧を繰り返し調整するステップと、
前記セル電流が前記第1閾値に達したとの決定に基づいて、前記メモリセルのセル電流が第2閾値に達したと決定されるまで前記メモリセルのプログラミング時間を繰り返し調整するステップと、
を含む、方法。
【請求項24】
前記プログラミング電圧を繰り返し調整するステップは、前記プログラミング電圧のプログラミング時間を調整するステップを含む、請求項23に記載の方法。
【請求項25】
前記プログラミング時間は、前記セル電流が前記第1閾値に達したと決定した後に調整されるときよりも、前記セル電流が前記第1閾値に達したと決定される前にさらに大きい粒度で調整される、請求項24に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
以下の実施形態は、フラッシュメモリ制御方法及び装置に関する。
【背景技術】
【0002】
フラッシュメモリは不揮発性メモリに該当し、電源が遮断されても格納されているデータを格納することができる。フラッシュメモリは、各メモリセルの電荷トラップ層(charge trapping layer)に格納されている電荷量を調整してデータを格納することができる。メモリセルは、格納可能なデータの大きさに応じて、SLC(single level cell)、MLC(multi level cell)、TLC(triple level cell)などに区分できる。一方、MAC(multiply accumulate)演算としても知られているベクトルマトリックス乗算演算は、様々な分野でアプリケーションの性能を左右する。例えば、多重レイヤを含むニューラルネットワーク(neural network)のマシーンラーニング及び認証動作においてMAC演算が実行される可能性がある。MAC演算は、複数のレイヤに対して繰り返されるため、ニューラルネットワーク処理性能は、MAC演算処理に依存する。メモリの構造的な特性は、MAC演算を行うために使用され、メモリが使用される場合にMAC演算の処理速度が画期的に向上し得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の目的は、フラッシュメモリ制御方法及び装置を提供することにある。
【課題を解決するための手段】
【0004】
一実施形態によれば、方法は、第1プログラミング時間及びプログラミング電圧を調整してターゲットメモリセルに対する第1プログラミングを行うステップと、前記ターゲットメモリセルのセル電流が前記第1プログラミングに関する1次目標を満足すると、第2プログラミング時間を調整して前記ターゲットメモリセルに対する第2プログラミングを行うステップと、前記ターゲットメモリセルの前記セル電流が前記第2プログラミングに関する2次目標を満足すると、前記ターゲットメモリセルに対するプログラミングを終了するステップとを含む方法。
【0005】
一実施形態に係る電子装置は、複数のメモリセルを含むフラッシュメモリと、第1プログラミング時間及びプログラミング電圧を調整して前記フラッシュメモリのターゲットメモリセルに対する第1プログラミングを行い、前記ターゲットメモリセルのセル電流が前記第1プログラミングに関する1次目標を満足すると、第2プログラミング時間を調整して前記ターゲットメモリセルに対する第2プログラミングを行い、前記ターゲットメモリセルの前記セル電流が前記第2プログラミングに関する2次目標を満足すると、前記ターゲットメモリセルに対するプログラミングを終了するプロセッサとを含む。
【発明の効果】
【0006】
本発明によると、フラッシュメモリ制御方法及び装置を提供することとができる。
【図面の簡単な説明】
【0007】
図1】一実施形態に係るマルチ因子を用いた段階的プログラミングの結果を示す。
図2】一実施形態に係るプログラミング結果の分布の特性を示す。
図3】一実施形態に係るセル電流に対するマルチ因子の影響を示す。
図4】一実施形態に係る段階的プログラミング動作を示す。
図5A】一実施形態に係るメモリセルに対するメモリ制御の影響を示す。
図5B】一実施形態に係るメモリセルに対するメモリ制御の影響を示す。
図6】プログラミング方式による分布特性の例示を示す。
図7】一実施形態に係るフラッシュメモリ装置を介して実現できるニューラルネットワーク演算の例示を示す。
図8】一実施形態に係るフラッシュメモリ装置の制御方法を示す。
図9】一実施形態に係るフラッシュメモリ装置の構成を示す。
図10】一実施形態に係る電子装置の構成を示す。
【発明を実施するための形態】
【0008】
実施形態に対する特定な構造的又は機能的な説明は単なる例示のための目的として開示されたものであって、様々な形態に変更されることができる。したがって、実施形態は特定な開示形態に限定されるものではなく、本明細書の範囲は技術的な思想に含まれる変更、均等物ないし代替物を含む。
【0009】
第1又は第2などの用語を複数の構成要素を説明するために用いることがあるが、このような用語は1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に、第2構成要素は第1構成要素にも命名することができる。
【0010】
いずれかの構成要素が他の構成要素に「連結」されているか「接続」されていると言及されたときには、その他の構成要素に直接的に連結されているか又は接続されているが、中間に他の構成要素が存在し得るものと理解されなければならない。
【0011】
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は、明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0012】
異なるように定義さがれない限り、技術的又は科学的な用語を含んで、ここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈されなければならず、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0013】
以下、添付する図面を参照しながら実施形態を詳細に説明する。各図面に提示された同一の参照符号は同一の部材を示し、これに対する重複する説明は省略する。
【0014】
図1は、一実施形態に係るマルチ因子を用いた段階的プログラミングの結果を示す。図1を参照すると、プログラミング動作(programming operations)110,120によりフラッシュメモリ装置のメモリセルの電荷トラップ層(charge trapping layers)に電子がトラップされている。メモリセルの閾値電圧値は、トラップされた電子量に応じて異なる分布101,102,103を示す。ここで、閾値電圧は、ゲート閾値電圧に対応する。第1分布101は、消去状態(erase state)に対応する。消去状態において、電子は電荷トラップ層から抜け出るため、小さい閾値電圧値による第1分布101が示される。プログラミング動作110,120により閾値電圧値は、分布102,103のように高くなる。
【0015】
分布101,102,103は、特定データ値に対応する。分布101,102,103のうち、同一のいずれかの分布に属する閾値電圧値は同一のデータ値を示し、異なるいずれかの分布に属する閾値電圧値は異なるデータ値を示す。メモリセルに読み出し動作(read operation)のための電圧が印加される場合、メモリセルのセル電流値は、閾値電圧値に依存的に決定される。したがって、セル電流値を介してメモリセルのデータ値が読み出される。ここで、セル電流は、ドレイン電流(drain current)に対応する。
【0016】
このようなフラッシュメモリの動作特性を含む様々なメモリの動作特性は、オームの法則(Ohm’s law)、キルヒホッフの法則(Kirchhoff’s law)のような物理法則と結びついて数学的演算を行うために使用されてもよい。このような演算方式は、インメモリコンピューティング(in-memory computing)と呼ぶことができる。フラッシュメモリを用いたインメモリコンピューティングのためには、閾値電圧がシャープな分布特性を有することが要求される。分布特性がシャープであることは、閾値電圧が狭い範囲に集まって分布することを意味する。例えば、第2分布102に比べて第3分布103がシャープな特性を有している。反対に、第2分布102は広い分布特性を有していると言える。シャープな分布特性は、演算正確度を高めることができる。例えば、セル電流を介してデータ値を読み出すとき、広い分布特性は、特定のデータ値を代表するセル電流の一貫性を低下させる。このような現像は、演算が繰り返すことで累積して演算の正確度を大きく低くする。
【0017】
実施形態のプログラミング動作110,120は、第3分布103のようにシャープな分布を導き出すことができる。一実施形態によれば、マルチ因子に基づいてプログラミング動作110,120が段階的(stepwise)に実行され得る。例えば、マルチ因子は、プログラミング時間及びプログラミング電圧を含んでもよい。プログラミング電圧は、ソースライン(source line、SL)電圧に対応する。プログラミング電圧は、メモリセルのプログラミング状態を相対的に大幅に変化させ、プログラミング時間は、メモリセルのプログラミング状態を相対的に小さい幅に変化させる。プログラミング状態は、メモリセルの電荷トラップ層にトラップされた電子の量に対応する。プログラミング状態は、閾値電圧及びセル電流に影響を与えることができる。一般に、セル電流は、閾値電圧の二乗に比例するため、閾値電圧を制御するときよりも細かくて精密な制御が求められる。セル電流は、マルチ因子基盤の段階的なプログラミング動作110,120を介して、低い誤差で目標値に到達することができる。
【0018】
一実施形態によれば、フラッシュメモリ装置は、粗い(coarse)プログラミング時間及び粗いプログラミング電圧を調整し、ターゲットメモリセルに対する粗いプログラミング110を行ってもよい。粗いプログラミング時間及び粗いプログラミング電圧は、粗いプログラミング110のステップで使用されるプログラミング時間及びプログラミング電圧を意味する。粗いプログラミング110によりターゲットメモリセルのセル電流が1次目標を満足すれば、フラッシュメモリ装置は、微細(fine)プログラミング時間を調整してターゲットメモリセルに対する微細プログラミング120を行う。微細プログラミング時間は、微細プログラミング120のステップで使用されるプログラミング時間を意味する。微細プログラミング120によりターゲットメモリセルのセル電流が2次目標を満足すれば、フラッシュメモリ装置は、ターゲットメモリセルに対するプログラミングを終了する。
【0019】
本実施形態において、プログラミング電圧の調整は、粗いプログラミング110でのみ使用されるが、微細プログラミング120のプログラミング電圧が調整される実施形態も存在し得る。また、本実施形態は、2ステップのプログラミング動作110,120を含むが、3段階以上のプログラミング動作が存在してもよい。この場合、初期ステップのプログラミング動作は粗いプログラミング110に該当し、残りのステップのプログラミング動作は微細プログラミング120に該当する。
【0020】
図2は、一実施形態に係るプログラミング結果の分布の特性を示す。図2を参照すると、グラフ210は、プログラミング前の閾値電圧値の分布を示し、グラフ220,230は、プログラミング後の閾値電圧値の分布を示す。例えば、グラフ220は、実施形態のマルチ因子を使用していない従来におけるISPP(incremental step pulse programming)による結果であり、グラフ230は、実施形態のマルチ因子を用いた段階的プログラミングによる結果である。グラフ220において、分布ERS、PV11、PV12、PV13は広い特性を有し、グラフ230において、分布PV21、PV22、PV23、PV24はシャープな特性を有する。
【0021】
図3は、一実施形態に係るセル電流に対するマルチ因子の影響を示す。マルチ因子は、プログラミング時間及びプログラミング電圧を含む。図3に示すグラフ300を参照すると、プログラミング電圧が固定された状態でプログラミング時間を増加させれば、セル電流が一定のレベルまで低下するが、該当レベル以下にはこれ以上低下しない傾向を示す。ここで、セル電流は、プログラミング電圧を増加を介して該当レベル以下にさらに低くなることができる。プログラミング電圧が増加した状態でプログラミング時間を増加すると、セル電流は該当レベル以下にさらに低くなる。
【0022】
例えば、領域310は、3.5Vのプログラミング電圧が用いられる例示を示す。領域310を参照すると、3.5Vのプログラミング電圧を使用するが、プログラミング時間を増加させてセル電流の精密制御が可能であるものの、プログラミング電圧が3.5Vに固定された状態では、プログラミング時間をいくら増加させてもセル電流は3uA以下に低下しない。領域320は、4.5Vのプログラミング電圧が使用される例示を示す。領域320を参照すると、4.5Vのプログラミング電圧を利用すれば、セル電流が略0uAまで低下すが、極めて短いプログラミング時間にもセル電流が3uA以下に低くなる。したがって、セル電流を精密に制御するには、マルチ因子を適切に組み合わせることが求められる。
【0023】
図4は、一実施形態に係る段階的プログラミング動作を示す。図4を参照すると、ステップS401において、フラッシュメモリ装置はセル電流を読み出す。セル電流値I1は、粗いプログラミング前の値に該当し、セル電流値I2は粗いプログラミング後の値に該当する。セル電流値I1は、初期に消去状態の値に該当する。ステップS402において、フラッシュメモリ装置は、粗いプログラミングを行う。フラッシュメモリ装置は、粗いプログラミング時間及び粗いプログラミング電圧の初期値に基づいて粗いプログラミングを行ってもよい。フラッシュメモリ装置は、ステップS401で粗いプログラミングによるセル電流値I2を読み出す。フラッシュメモリ装置は、セル電流値I1及びセル電流値I2に基づいてセル電流の変化を決定することができる。例えば、セル電流の変化は、セル電流値I2とセル電流値I1との間の差である。
【0024】
フラッシュメモリ装置は、セル電流の変化を粗いプログラミングの目標範囲と比較することができる。目標範囲は、上限値lcb及び下限値lcsに特定される。セル電流の変化が下限値lcsよりも小さければ、フラッシュメモリ装置は、ステップS403で粗いプログラミング時間値を増加させ、セル電流の変化が上限値lcbよりも大きければ、フラッシュメモリ装置は、ステップS404で粗いプログラミング時間値を減少させる。セル電流の変化が上限値lcsよりも小さいが粗いプログラミング時間値が既に最大値Tmに該当する場合、フラッシュメモリ装置は、ステップS405で粗いプログラミング電圧値を増加させる。
【0025】
粗いプログラミング時間及び粗いプログラミング電圧のうち少なくとも一部が調整されると、ステップS402でフラッシュメモリ装置は、調整された値を介して粗いプログラミングを行う。ステップS401でフラッシュメモリ装置は、セル電流値I2を読み出す。セル電流が粗いプログラミングの目標を満足する場合、フラッシュメモリ装置は、粗いプログラミングステップを終了し、微細プログラミングステップを行うことができる。ステップS401~S405は粗いプログラミングステップに該当し、ステップS406~S409は微細プログラミングステップに該当する。一実施形態によれば、フラッシュメモリ装置は、セル電流の変化が1次目標値lctよりも小さければ、粗いプログラミングの目標が満足しているものと決定することができる。一実施形態によれば、1次目標値lctは、目標範囲の上限値lcbよりも小さく、下限値lcsよりも大きくてもよい。
【0026】
フラッシュメモリ装置は、セル電流の変化を微細プログラミングの目標範囲と比較することができる。粗いプログラミングの目標は1次目標に呼び、微細プログラミングの目標は2次目標に呼ぶことができる。2次目標の目標範囲は、上限値lfb及び下限値lfsに特定することができる。1次目標による目標範囲は、2次目標による目標範囲よりも広い。2次目標範囲の上限値lfbは1次目標範囲の上限値lcbよりも小さく、2次目標範囲の下限値lfsは、2次目標範囲の下限値lcsよりも大きくてもよい。フラッシュメモリ装置は、ステップS407,S408で微細プログラミング時間を調整することができる。セル電流の変化が下限値lfsよりも小さければ、フラッシュメモリ装置はステップS407で粗いプログラミング時間値を増加させ、セル電流の変化が上限値lfbよりも大きければ、フラッシュメモリ装置はステップS408で粗いプログラミング時間値を減少させ得る。
【0027】
ステップS409において、フラッシュメモリ装置は、調整された値を介して微細プログラミングを行う。ステップS406において、フラッシュメモリ装置は、セル電流値I2を読み出すことができる。セル電流値I2には、粗いプログラミング及び微細プログラミングが全て反映され得る。セル電流が微細プログラミングの目標を満足する場合、フラッシュメモリ装置は、ターゲットメモリセルに対するプログラミングを終了する。例えば、フラッシュメモリ装置は、セル電流の変化が2次目標値ltとマージン値ldの和よりも小さければ、粗いプログラミングの目標が満足したものと決定する。一実施形態によれば、2次目標値は、2次目標範囲の上限値lfbよりも小さく、下限値lfsよりも大きくてもよい。フラッシュメモリ装置は、セルアレイの他のメモリセルをターゲットメモリセルに指定し、該当ターゲットメモリセルに関するプログラミングを行うことができる。
【0028】
図4に示す実施形態は、粗いプログラミングのステップS405でプログラミング電圧の上昇が行われるものと示したが、プログラミング電圧は、図4に示す実施形態と異なり、粗いプログラミングステップでプログラミング電圧が下降するか、微細プログラミングステップでプログラミング電圧が上昇/下降される実施形態も存在する。
【0029】
図5は、一実施形態に係るメモリセルに対するメモリ制御の影響を示す。図5Aは、メモリセル500に対する消去動作を示す。図5Aを参照すると、メモリセル500は、チャージゲート(charge gate、CG)、フローティングゲート(floating gate、FG)、及び消去ゲート(erase gate、EG)を含んでもよい。フローティングゲートは電荷トラップ層に対応する。メモリセル500は、ソースライン(source line、SL)、ビットライン(bit line、BL)、及びワードライン(word line)を介して制御されることができる。消去動作のために、チャージゲート及び消去ゲートに一定の電圧が加えられると、フローティングゲートの電子は消去ゲートから抜け出ることができる。例えば、V1は10.5Vであってもよく、V2は-8.7Vであってもよい。図5Aに示されたメモリセル500の構造及び消去動作は1つの例示であり、メモリセル500は、消去動作のための様々な構造を有することができ、さらに様々な構造に適する様々な消去動作を行うことができる。
【0030】
図5Bは、メモリセル500に対するプログラミング動作を示す。図5Bを参照すると、プログラミング動作のために、チャージゲート、消去ゲート、ソースライン、及びワードラインに一定電圧が加えられると、フローティングゲートに電子がトラップされる。例えば、V3は10.5Vであってもよく、V4は4.3Vであってもよく、V5は0.7Vであってもよい。ソースライン電圧はプログラミング電圧である。マルチ因子を用いた段階的プログラミングのためにプログラミング電流及びプログラミング電圧が調整され、メモリセル500は、調整されたプログラミング電流及びプログラミング電圧により制御されることができる。図5Bに示されたメモリセル500の構造及びプログラミング動作は1つの例示であり、メモリセル500は、プログラミング動作のための様々な構造を有することができ、さらに、様々な構造に適する様々なプログラミング動作を行うことができる。
【0031】
図6は、プログラミング方式による分布特性の例示を示す。図6に示すグラフ600は、メモリセルがデータ1及びデータ2の2-レベルでプログラミングされた例示を示す。図6の2-レベルプログラミングは、説明の便宜のためのものであり、実施形態によれば、4-レベル、5-レベルなどのさらに様々なレベルの精巧なプログラミングが可能である。グラフ600において横軸はメモリセル番号を示し、縦軸はセル電流を示す。グラフ600を参照すると、第1データグループ610は、知られた方式によりプログラミングされたメモリセルに対応し、第2データグループ620は、実施形態の方式によりプログラミングされたメモリセルに対応する。第1データグループ610は広い分布特性を示すが、第2データグループ620は、マルチ因子を用いた段階的プログラミングによりシャープな分布特性を示すことができる。したがって、実施形態のプログラミング方式に基づいて、インメモリコンピューティングのための信頼度が確保されることができる。
【0032】
図7は、一実施形態に係るフラッシュメモリ装置を介して実現されるニューラルネットワーク演算の例示を示す。ニューラルネットワークモデル700は、ディープニューラルネットワーク(DNN、deep neural network)の例示である。DNNは、全結合ネットワーク(fully connected network)、ディープコンボリューショナルネットワーク(deep convolutional network)及びリカレントニューラルネットワーク(recurrent neural network)などを含んでもよい。ニューラルネットワークモデル700は、ディープラーニングに基づいて非線形関係にある入力データ及び出力データを互いにマッピングすることで、オブジェクト分類、オブジェクト認識、音声認識及びイメージ認識などを行うことができる。ディープラーニングは、ビッグデータセットからイメージ又は音声認識のような問題を解決するための機械学習方式において教師あり学習又は教師なし学習を介して入力データ及び出力データを互いにマッピングすることができる。
【0033】
図7には、説明の便宜のために隠れ層が2つのレイヤを含むものと示されているが、隠れ層は、様々な数のレイヤを含んでもよい。また、図7でニューラルネットワークモデル700は、入力データを受信するための別途の入力層710を含むものと示されているが、入力データが隠れ層に直接入力されてもよい。ニューラルネットワークモデル700において、出力層を除いたレイヤの人工ノードは、出力信号を送信するためのリンクを介して次のレイヤの人工ノードに接続されることができる。リンクの数は、次のレイヤに含まれた人工ノードの数に対応する。
【0034】
隠れ層に含まれたそれぞれの人工ノードには、以前レイヤに含まれた人工ノードの出力が加重された形態から入力されてもよい。加重された形態の入力は、加重された入力(weighted input)と呼ばれ、これは以前レイヤに含まれた人工ノードの出力に加重値が乗算されたものである。加重値は、ニューラルネットワークモデル700のパラメータに称されてもよい。このような加重された入力の和に活性関数(activation function)が適用されて次のレイヤに出力される。活性関数は、シグモイド(sigmoid)、ハイパボリックタンジェント(hyperbolic tangent;tanh)及びReLU(rectified linear unit)を含んでもよく、活性関数によってニューラルネットワークモデル700に非線型性が形成されてもよい。出力層に含まれたそれぞれの人工ノードには、以前レイヤに含まれた人工ノードの出力が加重された形態として、加重された入力が入力されてもよい。このようにニューラルネットワークモデル700に関する様々な演算は、ネットワーク演算と呼ぶことができる。
【0035】
ネットワーク演算を介してディープラーニングアルゴリズムを駆動するために、実施形態に係るフラッシュメモリ装置を使用することができる。例えば、ニューラルネットワークモデル700のノード721間に伝達される加重された入力の算出は、乗算及びたし算を繰り返すMAC演算に構成することができる。ニューラルネットワークモデル700の任意のいずれか1つのノード721の出力は、下記の数式(1)のように示すことができる。
【0036】
【数1】
上記の数式(1)は、任意のレイヤでm個の加重された入力値に対するi番目のノード721の出力値yを示す。xは、以前レイヤのj番目の出力値(例えば、ノード値)を示し、wj、iは、以前レイヤのj番目の出力値及びi番目のノード721に適用される加重値を示す。wj、iは、該当レイヤのi番目のノード721においてm個の加重された入力値のうち、j番目の加重された入力を示し、f()は活性化関数を示す。数式(1)に示すように、活性化関数に対して、ノード値x及び加重値wj、iの乗算累積結果が使用されることができる。言い換えれば、所望する時点に適切なノード値x及び加重値wj、iをロードしなければならないメモリアクセス動作と、これを乗算して加算するMAC演算を繰り返すことができる。
【0037】
一実施形態によれば、フラッシュメモリ装置のメモリセルは、ニューラルネットワークモデル700のネットワークパラメータ(例えば、加重値)によりプログラミングされることができる。粗いプログラミングステップ及び/又は微細プログラミングステップのプログラミング目標がネットワークパラメータに応じて設定され得る。プログラミング目標は、閾値電圧及び/又はセル電流に基づいた目標範囲を含んでもよい。したがって、フラッシュメモリ装置は、ニューラルネットワークモデル700の実行に要求される演算のうち少なくとも一部を行うことができる。
【0038】
一実施形態によれば、実施形態に係るマルチ因子基盤のプログラミングは、ニューラルネットワークモデル700のトレーニング過程で使用することができる。推論過程において、ネットワークパラメータに基づいて、予めプログラミングされた状態のメモリセルを用いてインメモリコンピューティングの形式でネットワーク演算を行うことができる。実施形態によれば、マルチ因子及び粗い-微細段階によってプログラミング時間が従来における他の方式に比べて増加し得るが、インメモリコンピューティングのためのプログラミングの正確度を提供することができる。
【0039】
実施形態に係るフラッシュメモリ装置の適用範囲は、図7に示す例示に限定されることなく、フラッシュメモリ装置は、アナログ回路特性を用いた複数入力データを低電力で迅速に処理しなければならない演算動作にも活用できる。
【0040】
図8は、一実施形態に係るフラッシュメモリ装置の制御方法を示す。図8を参照すると、ステップS810において、フラッシュメモリ装置は、粗いプログラミング時間及び粗いプログラミング電圧を調整しながら、フラッシュメモリ装置のターゲットメモリセルに対する粗いプログラミングを行う。フラッシュメモリ装置は、粗いプログラミング時間を最大値まで増加しても、ターゲットメモリセルのセル電流が1次目標を満足しない場合、粗いプログラミング電圧を増加させて粗いプログラミングを行うことができる。ターゲットメモリセルのセル電流は、粗いプログラミング時間の調整に比べて粗いプログラミング電圧の調整に応じて大幅に変化し得る。プログラミング電圧の調整により、プログラミング電流の変化範囲が変わり得る。
【0041】
フラッシュメモリ装置は、粗いプログラミングによるターゲットメモリセルのセル電流の変化を決定し、セル電流の変化が1次目標による目標範囲の上限よりも大きければ粗いプログラミング時間を減少させ、セル電流の変化が目標範囲の下限よりも小さければ、粗いプログラミング時間又は粗いプログラミング電圧を増加させることができる。粗いプログラミング時間が既に最大値である場合、フラッシュメモリ装置は、粗いプログラミング電圧を増加させることができる。
【0042】
ステップS820において、フラッシュメモリ装置は、粗いプログラミングによってターゲットメモリセルのセル電流が1次目標を満足すれば、微細プログラミング時間を調整しながらターゲットメモリセルに対する微細プログラミングを行う。フラッシュメモリ装置は、粗いプログラミング及び微細プログラミングによるターゲットメモリセルのセル電流の変化を決定し、セル電流の変化が2次目標による目標範囲の上限よりも大きければ微細プログラミング時間を減少させ、セル電流の変化が目標範囲の下限よりも小さければ、微細プログラミング時間を増加させることができる。
【0043】
ステップS830において、フラッシュメモリ装置は、微細プログラミングによってターゲットメモリセルのセル電流が2次目標を満足すれば、ターゲットメモリセルに対するプログラミングを終了する。1次目標による目標範囲は、2次目標による目標範囲よりも広くてもよい。1次目標及び2次目標のうち少なくとも一部は、ニューラルネットワークモデルのネットワークパラメータによって設定され、ターゲットメモリセルによってニューラルネットワークモデルのネットワーク演算が行われる。ネットワーク演算は、MAC演算を含むことができる。
【0044】
図9は、一実施形態に係るフラッシュメモリ装置の構成を示す。図9を参照すると、フラッシュメモリ装置900は、セルアレイ910及びコントローラ920を含む。セルアレイ910は、複数のメモリセルを含んでもよい。コントローラ920は、粗いプログラミング時間及び粗いプログラミング電圧を調整してフラッシュメモリのターゲットメモリセルに対する粗いプログラミングを実行し、粗いプログラミングによりターゲットメモリセルのセル電流が1次目標を満足すれば、微細プログラミング時間を調整してターゲットメモリセルに対する微細プログラミングを実行し、微細プログラミングによりターゲットメモリセルのセル電流が2次目標を満足すれば、ターゲットメモリセルに対するプログラミングを終了することができる。その他に、フラッシュメモリ装置900には、図1図8、及び図10の説明が適用されてもよい。
【0045】
図10は、一実施形態に係る電子装置の構成を示す。図10を参照すると、電子装置1000は、プロセッサ1010、メモリ1020、カメラ1030、格納装置1040、入力装置1050、出力装置1060、及びネットワークインターフェース1070を含み、これは通信バス1080を介して通信することができる。例えば、電子装置1000は、移動電話、スマートフォン、PDA、ネットブック、タブレットコンピュータ、ラップトップコンピュータなどのようなモバイル装置、スマートウォッチ、スマートバンド、スマートメガネなどのようなウェアラブルデバイス、デスクトップ、サーバなどのようなコンピューティング装置、テレビ、スマートテレビ、冷蔵庫などのような家電製品、ドアラックなどのようなセキュリティー装置、自律走行車両、スマート車両などのような車両の少なくとも一部として実現することができる。電子装置1000は、フラッシュメモリ装置900を構造的及び/又は機能的に含むことができる。例えば、フラッシュメモリ装置900は、プロセッサ1010及び/又はメモリ1020の一部として具現されたり、あるいは電子装置1000の加速器(図示せず)の一部として具現されてもよい。
【0046】
プロセッサ1010は、電子装置1000内で実行するための機能及び命令語を実行する。例えば、プロセッサ1010は、メモリ1020又は格納装置1040に格納された命令語を処理する。プロセッサ1010は、図1図9を参照して説明された1つ以上の動作を行ってもよい。メモリ1020は、コンピュータで読み出し可能な格納媒体又はコンピュータで読み出し可能な格納装置を含んでもよい。メモリ1020は、プロセッサ1010によって実行するための命令語を格納し、電子装置1000によってソフトウェア及び/又はアプリケーションが実行される間関連情報を格納することができる。一実施形態によれば、メモリ1020は、フラッシュメモリを含んでもよい。
【0047】
カメラ1030は、写真及び/又はビデオを撮影する。格納装置1040は、コンピュータ読み出し可能な格納媒体又はコンピュータで読み出し可能な格納装置を含む。格納装置1040は、メモリ1020よりもさらに多い量の情報を格納し、情報を長期間格納することができる。例えば、格納装置1040は、磁気ハードディスク、光ディスク、フラッシュメモリ、フロッピーディスク又はこの技術分野で知られた他の形態の不揮発性メモリを含んでもよい。
【0048】
入力装置1050は、キーボード及びマウスを通した伝統的な入力方式、及びタッチ入力、音声入力、及びイメージ入力のような新しい入力方式を介してユーザから入力を受信することができる。例えば、入力装置1050は、キーボード、マウス、タッチスクリーン、マイクロホン、又は、ユーザから入力を検出し、検出された入力を電子装置1000に伝達できる任意の他の装置を含んでもよい。出力装置1060は、視覚的、聴覚的、又は触覚的なチャネルを介してユーザに電子装置1000の出力を提供することができる。出力装置1060は、例えば、ディスプレイ、タッチスクリーン、スピーカ、振動発生装置、又はユーザに出力を提供できる任意の他の装置を含んでもよい。ネットワークインターフェース1070は、有線又は無線ネットワークを介して外部装置と通信することができる。
【0049】
以上で説明された実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組み合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことが把握する。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0050】
ソフトウェアは、コンピュータプログラム、コード、命令、又はそのうちの一つ以上の組合せを含み、希望の通りに動作するよう処理装置を構成したり、独立的又は結合的に処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈されたり処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、又は送信される信号波に永久的又は一時的に具体化することができる。ソフトウェアはネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納されたり実行され得る。ソフトウェア及びデータは一つ以上のコンピュータで読出し可能な記録媒体に格納され得る。
【0051】
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例として、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
【0052】
上記で説明したハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0053】
上述したように実施形態をたとえ限定された図面によって説明したが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順に実行され、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法とは異なる形態に結合又は組み合わせられてもよく、他の構成要素又は均等物によって置き換え又は置換されたとしても適切な結果を達成することができる。
【0054】
したがって、他の具現、他の実施形態および特許請求の範囲と均等なものも後述する特許請求範囲の範囲に属する。
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
図9
図10