(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-04-25
(45)【発行日】2022-05-09
(54)【発明の名称】二重機能セルアレイを再構成するためのシステムおよび方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20220426BHJP
H03K 19/177 20200101ALI20220426BHJP
【FI】
G06F12/00 550C
G06F12/00 560F
H03K19/177
(21)【出願番号】P 2021563329
(86)(22)【出願日】2020-04-20
(86)【国際出願番号】 US2020029010
(87)【国際公開番号】W WO2020219397
(87)【国際公開日】2020-10-29
【審査請求日】2022-01-27
(32)【優先日】2019-04-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-01-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-05
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】521464570
【氏名又は名称】アーバー・カンパニー・エルエルエルピイ
(74)【代理人】
【識別番号】100098394
【氏名又は名称】山川 茂樹
(72)【発明者】
【氏名】グジー,ダレル・ジェームズ
(72)【発明者】
【氏名】リウ,ウェイ-ティ
【審査官】後藤 彰
(56)【参考文献】
【文献】特開2000-284945(JP,A)
【文献】特開平9-232433(JP,A)
【文献】特表2007-502014(JP,A)
【文献】米国特許出願公開第2013/0067467(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
H03K 19/177
(57)【特許請求の範囲】
【請求項1】
集積回路ダイ素子であって、
1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)素子を含み、前記1つまたは複数のFPGA素子のそれぞれは構成データに基づく構成を有する、FPGA素子と、
複数の再構成可能なメモリアレイブロックを含む再構成可能な二重機能メモリアレイであって、各再構成可能なメモリアレイブロックは、一の時点ではストレージメモリアレイブロックとして、また他の時点では制御ロジックアレイブロックとして構成および再構成することができ、前記再構成可能なメモリアレイブロックは、その再構成可能なメモリアレイブロックが前記ストレージメモリアレイブロックとして構成されているときは、プロセスデータを格納し、その再構成可能なメモリアレイブロックが前記制御ロジックアレイブロックとして構成されているときは、前記1つまたは複数のFPGA素子の少なくとも一部の構成を制御するための前記構成データを格納する、再構成可能な二重機能メモリアレイと、
各再構成可能なメモリアレイブロックを、前記一の時点ではそれぞれの前記メモリアレイブロックとして、また前記他の時点ではそれぞれの前記ロジックアレイブロックとして構成するように機能する制御ロジック回路とを備える、集積回路ダイ素子。
【請求項2】
前記再構成可能な二重機能メモリアレイは、
前記ストレージメモリアレイブロックとして構成された第1の再構成可能なメモリアレイブロックと、
前記制御ロジックアレイブロックとして構成された第2の再構成可能なメモリアレイブロックとを含む、請求項1に記載の集積回路ダイ素子。
【請求項3】
前記ストレージメモリアレイブロックは、キャッシュメモリを備える、請求項1に記載の集積回路ダイ素子。
【請求項4】
前記制御ロジック回路は、前記集積回路ダイ素子の製造および展開後に、少なくとも1つの再構成可能なメモリアレイブロックを構成するように機能する、請求項1に記載の集積回路ダイ素子。
【請求項5】
前記制御ロジック回路は、特定の再構成可能なメモリアレイブロックを、前記ストレージメモリアレイブロックから、前記制御ロジックアレイブロックに切り替えるように機能する、請求項1に記載の集積回路ダイ素子。
【請求項6】
前記制御ロジック回路は、特定の再構成可能なメモリアレイブロックを、前記制御ロジックアレイブロックから、ストレージメモリアレイブロックに切り替えるように機能する、請求項1に記載の集積回路ダイ素子。
【請求項7】
前記集積回路ダイ素子は、集積回路ダイのスタックを備え、前記スタックは、第1の再構成可能な二重機能メモリアレイダイおよびマイクロプロセッサダイを含む、請求項1に記載の集積回路ダイ素子。
【請求項8】
前記スタックは、第2の再構成可能な二重機能メモリアレイダイをさらに備える、請求項7に記載の集積回路ダイ素子。
【請求項9】
前記スタックは、FPGAダイまたはメモリダイをさらに備える、請求項7に記載の集積回路ダイ素子。
【請求項10】
制御ロジック回路によって、第1の制御値を格納することと、
前記第1の制御値に基づいて、再構成可能な二重機能メモリアレイの少なくとも1つの再構成可能なメモリアレイブロックを、ストレージメモリアレイブロックとして、または制御ロジックアレイブロックとして構成することであって、前記再構成可能な二重機能メモリアレイの各再構成可能なメモリアレイブロックは、一の時点では前記ストレージメモリアレイブロックとして、また他の時点では前記制御ロジックアレイブロックとして構成および再構成することができ、その再構成可能なメモリアレイブロックが前記ストレージメモリアレイブロックとして構成されているときは、前記再構成可能なメモリアレイブロックはプロセスデータを格納するように構成され、その再構成可能なメモリアレイブロックが前記制御ロジックアレイブロックとして構成されているときは、前記再構成可能なメモリアレイブロックは、フィールドプログラマブルゲートアレイ(FPGA)の1つまたは複数のFPGA素子を制御するための構成データを格納するように構成される
、構成することと、
前記制御ロジック回路により、第2の制御値を取得することと、
前記第2の制御値に基づいて、前記少なくとも1つの再構成可能なメモリアレイブロックを再構成することと、を含む、方法。
【請求項11】
前記再構成可能な二重機能メモリアレイは、
前記ストレージメモリアレイブロックとして構成された第1の再構成可能なメモリアレイブロックと、
前記制御ロジックアレイブロックとして構成された第2の再構成可能なメモリアレイブロックとを含む、請求項10に記載の方法。
【請求項12】
前記ストレージメモリアレイは、キャッシュメモリを備える、請求項10に記載の方法。
【請求項13】
前記制御ロジック回路は、集積回路ダイ素子の製造および展開後に、少なくとも1つの再構成可能なメモリアレイブロックを構成するように機能する、請求項10に記載の方法。
【請求項14】
前記制御ロジック回路によって、特定のメモリアレイブロックを、前記ストレージメモリアレイブロックから、前記制御ロジックアレイブロックに切り替えることをさらに備える、請求項10に記載の方法。
【請求項15】
前記制御ロジック回路によって、特定の制御ロジックアレイブロックを、前記制御ロジックアレイブロックから、前記ストレージメモリアレイブロックに切り替えることをさらに備える、請求項10に記載の方法。
【請求項16】
前記集積回路ダイ素子は、集積回路ダイのスタックを備え、前記スタックは、第1の再構成可能な二重機能メモリアレイダイおよびマイクロプロセッサダイを含む、請求項10に記載の方法。
【請求項17】
前記スタックは、第2の再構成可能な二重機能メモリアレイダイをさらに備える、請求項16に記載の方法。
【請求項18】
前記スタックは、FPGAダイまたはメモリダイをさらに備える、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、セルアレイ(たとえば、メモリアレイ)に関する。
【背景技術】
【0002】
増大する処理要求に対処するための1つのソリューションは、メモリをプロセッサの近くに移動させることを含む。別のソリューションは、データ集約型アーキテクチャの3Dスタックメモリとロジックを使用して、帯域幅、消費電力、および密度を向上させる。ホストのI/Oポートに接続するメモリとボトム論理層(FPGA/PLD)の異種3D統合を活用して、計算の一部を、データが存在する場所に移動し、これにより、メモリ内処理(PIM)のパフォーマンスを向上させることができる。PIMは、データの移動を低減し、それによってメモリアクセス時間およびエネルギ消費を低減することができる。米国特許第7,126,214号を参照されたい。
【0003】
従来のFPGA/PLDは、固定メモリサイズを提供する。ただし、特定のアプリケーションでは、メモリおよび/または論理要件が異なる場合がある。たとえば、あるアプリケーションは、別のアプリケーションよりも多くのメモリを必要とする場合がある。アプリケーションがより多くのメモリを必要とする場合、従来のシステムは、外部メモリを使用する。外部メモリを使用すると、システムパフォーマンスが低下し、過剰なエネルギを消費する。他のソリューションが役立つであろう。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【0005】
本開示の様々な実施形態は、1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)素子を備える集積回路ダイ素子を提供する。再構成可能な二重機能メモリアレイは、複数の再構成可能なメモリアレイブロックを含む。各再構成可能なメモリアレイブロックは、ストレージメモリアレイブロックとして、または1つまたは複数のFPGA素子の少なくとも一部を制御するための制御ロジックアレイブロックとして構成および再構成することができる。制御ロジック回路は、各再構成可能なメモリアレイブロックを、それぞれのメモリアレイブロックとして、または1つまたは複数のFPGA素子を制御するためのそれぞれのロジックアレイブロックとして構成するように機能する。
【0006】
いくつかの実施形態では、複数の再構成可能なメモリアレイブロックは、再構成可能なメモリアレイブロックのマトリクスを備える。
【0007】
いくつかの実施形態では、再構成可能な二重機能メモリアレイは、ストレージメモリアレイブロックとして構成された第1の再構成可能なメモリアレイブロックと、FPGAの特定のセットを制御するための制御ロジックアレイブロックとして構成された第2の再構成可能なメモリアレイブロックとを含む。
【0008】
いくつかの実施形態では、ストレージメモリアレイブロックは、キャッシュメモリを備える。
【0009】
いくつかの実施形態では、制御ロジック回路は、集積回路ダイ素子の製造および展開後に、少なくとも1つの再構成可能なメモリアレイブロックを構成するように機能する。
【0010】
いくつかの実施形態では、各再構成可能なメモリアレイブロックは、複数のプログラマブルメモリセルを備える。
【0011】
いくつかの実施形態では、制御ロジック回路は、特定の再構成可能なメモリアレイブロックを、ストレージメモリアレイブロックから、制御ロジックアレイブロックに切り替えるように機能する。
【0012】
いくつかの実施形態では、制御ロジック回路は、特定の再構成可能なメモリアレイブロックを、制御ロジックアレイブロックから、特定のメモリアレイブロックに切り替えるように機能する。
【0013】
いくつかの実施形態では、集積回路ダイ素子は、集積回路ダイのスタックを備え、スタックは、第1の二重機能メモリアレイダイおよびマイクロプロセッサダイを含む。
【0014】
いくつかの実施形態では、スタックは、第2の二重機能メモリアレイダイをさらに備える。
【0015】
いくつかの実施形態では、スタックは、FPGAダイまたはメモリダイをさらに備える。
【0016】
本開示の様々な実施形態は、制御ロジック回路によって、第1の制御値を格納するように構成された方法を含む。第1の制御値に基づいて、再構成可能な二重機能メモリアレイの少なくとも1つの再構成可能なメモリアレイブロックを、ストレージメモリアレイとして構成する。再構成可能な二重機能メモリアレイの各再構成可能なメモリアレイブロックは、1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)を制御するためのストレージメモリアレイブロックまたは制御ロジックアレイブロックとして構成および再構成することができる。制御ロジック回路により、第2の制御値を修正する。第2の制御値に基づいて、少なくとも1つの再構成可能なメモリアレイブロックを制御ロジックアレイに再構成する。
【0017】
いくつかの実施形態では、複数の再構成可能なメモリアレイブロックは、再構成可能なメモリアレイブロックのマトリクスを備える。
【0018】
いくつかの実施形態では、再構成可能な二重機能メモリアレイは、ストレージメモリアレイブロックとして構成された第1の再構成可能なメモリアレイブロックと、1つまたは複数のFPGAを制御するための制御ロジックアレイとして構成された第2の再構成可能なメモリアレイブロックとを含む。
【0019】
いくつかの実施形態では、ストレージメモリアレイは、キャッシュメモリを備える。
【0020】
いくつかの実施形態では、制御ロジック回路は、集積回路ダイ素子の製造および展開後に、少なくとも1つの再構成可能なメモリアレイブロックを構成するように機能する。
【0021】
いくつかの実施形態では、各再構成可能なメモリアレイブロックは、複数のプログラマブルメモリセルを備える。
【0022】
いくつかの実施形態では、この方法は、制御ロジック回路によって、特定のメモリアレイブロックを、ストレージメモリアレイブロックから、制御ロジックアレイブロックに切り替えるようにさらに構成される。
【0023】
いくつかの実施形態では、この方法は、制御ロジック回路によって、特定の制御ロジックアレイブロックを、制御ロジックアレイブロックから、特定のメモリアレイブロックに切り替えるようにさらに構成される。
【0024】
いくつかの実施形態では、集積回路ダイ素子は、集積回路ダイのスタックを備え、スタックは、第1の二重機能メモリアレイダイおよびマイクロプロセッサダイを含む。
【0025】
いくつかの実施形態では、スタックは、第2の二重機能メモリアレイダイをさらに備える。
【0026】
いくつかの実施形態では、スタックは、FPGAダイまたはメモリダイをさらに備える。
【0027】
本明細書に開示されるシステム、方法、および非一時的なコンピュータ可読媒体のこれらおよび他の特徴、ならびに構造の関連要素の動作および機能の方法、ならびに部品および製造経済の組合せは、すべて本明細書の一部を形成し、同様の参照符号が、様々な図の対応する部分を示す添付の図面を参照して以下の説明と添付の特許請求の範囲を検討するとより明確になる。しかしながら、図面は、例示および説明のみを目的としており、本発明の限定の定義を意図するものではないことを明確に理解されたい。
【図面の簡単な説明】
【0028】
【
図1】
図1は、いくつかの実施形態による、再構成可能な二重機能セルアレイを含む処理システムのブロック図である。
【
図2】
図2は、いくつかの実施形態による、再構成可能な二重機能セルアレイのマトリクスのブロック図である。
【
図3】
図3は、いくつかの実施形態による、再構成可能な二重機能セルアレイのマトリクスのブロック図である。
【
図4】
図4は、いくつかの実施形態による、メモリ内の不揮発性メモリ計算と、再構成可能な二重機能セルアレイのマトリクスとの統合のブロック図である。
【
図5】
図5は、いくつかの実施形態による、人工知能(AI)識別プログラミングの再構成可能な二重機能セルアレイ論理実装のブロック図である。
【
図6】
図6は、いくつかの実施形態による、1つまたは複数の再構成可能な二重機能セルアレイを構成および再構成する方法のフローチャートである。
【
図7】
図7は、いくつかの実施形態による、不揮発性メモリプログラミング制御ロジックと、データ読取回路を備えたインテリジェントプログラムモードとを有する相変化メモリ(PCM)回路設計のブロック図である。
【
図8】
図8は、いくつかの実施形態による、スキャン行および固定センス増幅器参照セルを有する回路設計のブロック図である。
【
図9】
図9は、いくつかの実施形態による、センス増幅器参照電圧として動的参照アレイを有する回路設計のブロック図である。
【
図10】
図10は、いくつかの実施形態による、ケースA1およびケースA2のスキャンロジックおよび参照アレイのステータスレジスタを設定する例のブロック図である。
【
図11】
図11は、いくつかの実施形態による、ケースA3およびケースA4のスキャンロジックおよび参照アレイのステータスレジスタを設定する例のブロック図である。
【
図12】
図12は、いくつかの実施形態による、ケースA1およびA2のセンス増幅器の波形のブロック図である。
【
図13】
図13は、いくつかの実施形態による、ケースA3およびA4のセンス増幅器の波形のブロック図である。
【
図14】
図14は、いくつかの実施形態による動的プログラミングアルゴリズムのブロック図である。
【
図15】
図15は、いくつかの実施形態による、再構成可能な二重機能セルアレイマクロ設計のブロック図である。
【
図16】
図16は、いくつかの実施形態による、再構成可能な二重機能セルアレイマクロセル選択回路のブロック図である。
【
図17】
図17は、いくつかの実施形態によるカスタム機能ブロック設計例のブロック図である。
【発明を実施するための形態】
【0029】
様々な実施形態において、再構成可能な二重機能機能セルアレイは、同じ集積回路ダイ上のロジックまたはストレージメモリセルに構成および再構成することができる。たとえば、再構成可能な二重機能機能セルアレイは、FPGAロジックの制御メモリまたはストレージメモリ(たとえば、キャッシュ)のいずれかとして機能するように構成および再構成することができるプログラマブルメモリセルのメモリアレイ(またはマトリクス)を含み得る。簡単にするために、「構成する」または「再構成する」という用語はそれぞれ、構成(たとえば、初期構成)および/または以前の構成の再構成(たとえば、第2の構成または後続の構成)を指す場合がある。
【0030】
いくつかの実施形態では、処理システムは、任意の数のそのような再構成可能な二重機能機能セルアレイを含む。処理システムの制御ロジック回路は、再構成可能な二重機能機能セルアレイのプログラマブルセルを、ストレージメモリアレイとして機能するように構成し、別の再構成可能な二重機能機能セルアレイのプログラマブルセルを、ロジックアレイとして機能するように構成し得る。たとえば、特定のアプリケーションのためにより多くのストレージメモリ(たとえば、高速アクセスメモリ、キャッシュなど)が必要な場合、処理システムは、ストレージメモリアレイとして機能するようにロジックアレイとして動作するプログラマブルセルを再構成し得る。別の例では、追加のロジックが必要な場合、処理システムは、ストレージメモリアレイとして動作するプログラマブルセルを再構成して、ロジックアレイとして機能させ得る。ストレージメモリおよびロジック機能は、必要に応じて(たとえば、オンデマンドで)増減できるため、外部ストレージメモリは必要ないか、必要になる頻度が少なくなる可能性がある。これにより、システムパフォーマンスを向上させ、および/または、従来のシステムよりも消費電力を低減させることができる。
【0031】
様々な実施形態において、再構成可能な二重機能セルアレイは、不揮発性メモリおよび/または揮発性メモリを使用し得る。不揮発性メモリは、相変化メモリ(PCM)、MRAM、およびEEPROMセルなどを含み得る。特にPCMは、チップ設計が高密度、低電力、プログラム可能で、不揮発性のメモリデバイスを提供することを可能にし得る。PCMは、人工知能チップ設計アーキテクチャ、メモリ内計算(CIM)などにおいて有益である可能性がある。一例では、PCMは、ニューロモルフィックコンピューティングにおけるCIMに使用され得る。
【0032】
図1は、いくつかの実施形態による、再構成可能な二重機能セルアレイ102を含む処理システム100のブロック図である。処理システム100は、FPGA素子104およびストレージメモリ素子106をさらに含む。いくつかの実施形態では、処理システム100は、単一の集積回路ダイ上に実装される。他の実施形態では、処理システム100は、複数の集積回路ダイ上に実装される。たとえば、再構成可能な二重機能セルアレイ102、FPGA回路構成104、および/またはストレージメモリ回路構成106は、複数の集積回路ダイにわたって実装され得る。処理システム100は、再構成可能な二重機能セルアレイ102の様々なセルを、メモリアレイまたはロジックアレイとして構成するように機能する制御ロジック108をさらに含む。
【0033】
再構成可能な二重機能機能セルアレイ102は、FPGA素子104の制御メモリセル、またはメモリ素子106のためのストレージメモリセルの何れかとして機能するように再構成することができる、プログラマブルセルの1つまたは複数のアレイ(たとえば、単一のアレイまたはアレイのマトリクス)を含む。上記で示したように、プログラマブルセルは、不揮発性メモリセルまたは揮発性メモリセルであり得る。ストレージメモリセルは、高速アクセスメモリセル(たとえば、キャッシュ)として機能し得、制御メモリセルは、FPGAを構成するための構成データとして機能し得る。たとえば、制御メモリセルに格納された構成データを使用して、複雑な組合せ機能、および/または比較的単純な論理ゲート(たとえば、AND、XOR)を実行するようにFPGA素子104を構成することができる。いくつかの実施形態では、論理セルとメモリセルとの両方を、同じ再構成可能な二重機能セルアレイ102上に作成することができる。
【0034】
任意の数のそのような再構成可能な二重機能機能セルアレイ102は、処理システム100に含まれ得る。いくつかの実施形態では、処理システム100は、1つの再構成可能な二重機能機能セルアレイ102のプログラマブルセルを、メモリアレイとして機能するように構成し、別の再構成可能な二重機能機能セルアレイ102のプログラマブルセルを、ロジックアレイとして機能するように構成することができる。たとえば、特定のアプリケーションのために、より多くのメモリが必要な場合、処理システムは、ロジックアレイを再構成して、メモリアレイとして機能させ得る。たとえば、特定のアプリケーションのために、さらに多くのロジックが必要な場合、処理システムは、メモリアレイを再構成して、ロジックアレイとして機能させ得る。メモリおよびロジックの機能は、必要に応じて増減できるため、外部メモリの使用を避け得る。これにより、システムパフォーマンスを向上させ、および/または、従来のシステムよりも消費電力を低減させることができる。
【0035】
FPGA素子104は、FPGAおよび/またはプログラマブルロジックデバイス(PLD)の機能を提供するように構成された回路構成を備える。FPGA素子104は、I/Oマクロ回路110-0~110-1を含む。I/Oマクロ回路110は、複雑な組合せ機能、および/または比較的単純な論理ゲート(たとえば、AND、XOR)を提供するように機能する。例示的なロジック機能ブロック図が、
図17に示される。ここでは8つのI/Oマクロ回路110が示されているが、(たとえば、再構成可能な二重機能セルアレイ102における行/列の数に基づいて)任意の数のそのような回路が存在し得る。I/Oマクロ回路110のさらなる例示的な設計が、
図15および
図16に示される。
【0036】
制御ロジック108は、再構成可能な二重機能セルアレイ102のメモリセルを、ストレージメモリセルまたは制御メモリセルのいずれかとして構成する(たとえば、プログラムする)ように機能する。構成は、製造後に(たとえば、フィールドにおいて)なされ得る。たとえば、様々なアプリケーションは、異なるストレージメモリおよび/またはロジックの要件を有する場合がある。制御ロジック回路108は、要件に基づいて、自動的に、またはユーザ入力に応答して、再構成可能な二重機能セルアレイ102のセルを構成し得る。要件が変わると、セルは、再度、再構成され得る。いくつかの実施形態では、再構成可能な二重機能セルアレイ102の個々のセルは、ストレージメモリセルまたは制御メモリセルとしてのデフォルト構成を有し得る。いくつかの実施形態では、デフォルト構成は、ヌル構成であり得、ストレージメモリセルまたは制御メモリセルのいずれかに再構成され得る。
【0037】
ストレージメモリ素子106は、メモリ動作、たとえば、読取および/または書込のための回路構成を備える。ストレージメモリ素子106は、Yパス回路130およびセンス増幅器130-0~130-7を含む。ここでは、8つのセンス増幅器130(再構成可能な二重機能セルアレイ102のセルの各列に対して1つのセンス増幅器130)が示されているが、(たとえば、再構成可能な二重機能セルアレイ102における列の数に基づいて)任意の適切な数のセンス増幅器130が使用され得ることが理解されよう。一般に、センス増幅器130は、再構成可能な二重機能セルアレイ102から(たとえば、ストレージメモリセルとしてプログラムされたセルから)データを読み取るための回路構成を備える。センス増幅器130は、ストレージメモリセルに格納されたデータビット(たとえば、1または0)を表す再構成可能な二重機能セルアレイ102のビットラインからの低電力信号を感知し、再構成可能な二重機能セルアレイ102の外部のロジックによってデータを適切に解釈できるように、小さな電圧振幅を、認識可能な論理レベルに増幅するように機能する。
【0038】
いくつかの実施形態では、再構成可能な二重機能機能セルアレイのマトリクスを含む処理システム100は、単一の集積回路ダイ上に実装され得る。単一の集積回路ダイは、他の集積回路ダイとは独立して使用することができ、および/または性能をさらに改善するために、様々な構成で他の集積回路ダイ(たとえば、マイクロプロセッサダイ、メモリダイ、FPGAダイ)とともに積層され得る。たとえば、積層は、層の任意の組合せを含み得る。層は、おのおの、単一のダイであり得る。1つの層は、処理システム100を含み得、別の層は、マイクロプロセッサダイを含み得る。
【0039】
ストレージメモリモード
【0040】
ストレージメモリ動作モードでは、制御ロジック回路108は、構成値をメモリモード(たとえば、「低」)に設定して、再構成可能な二重機能セルアレイ102の少なくともブロック(たとえば、サブアレイ)を、ストレージメモリとして構成する。いくつかの実施形態では、ストレージメモリモードは、FPGA機能(たとえば、FPGA素子104の出力機能)を無効にする。ビットラインデコーダ/アドレスバッファ140、ワードラインデコーダ/アドレスバッファ150、および/またはYパス120は、セルまたはセルの行をアドレスする。データは、メモリセルに転送されるか、または、メモリセルから転送される。センス増幅器120は、内部または外部のワイヤリングチャネルに接続する。
【0041】
FPGAモード
【0042】
FPGA動作モードでは、制御ロジック回路108は、構成値を論理モード(たとえば、「高」)に設定して、ロジック機能を実行するために再構成可能な二重機能セルアレイ102の少なくとも一部を構成する。いくつかの実施形態では、FPGAモードは、メモリ回路106を無効にし、FPGA素子104を有効にする。アドレスバッファは、ロジック機能を実行するために、再構成可能な二重機能セルアレイ102にアドレスを供給し得る。再構成可能な二重機能セルアレイ102(たとえば、AND-ORアレイ)の出力は、I/Oマクロ回路110に接続する。I/Oマクロ回路110は、ロジックアレイから構成データを受け取る。構成データは、構成データに基づいて結果を生成するようにI/Oマクロ回路110を構成する。
【0043】
図2は、いくつかの実施形態による、再構成可能な二重機能セルアレイ102のマトリクス200のブロック図である。マトリクス200は、ストレージメモリおよびロジックアレイを含む。図示されるように、いくつかのアレイは、ストレージメモリアレイとしてプログラムされ得、いくつかのアレイは、ロジックアレイとしてプログラムされ得る。設計またはアプリケーションが、より多くのストレージメモリアレイを必要とする場合、ストレージメモリアレイを、ロジックメモリアレイからストレージメモリアレイに再構成(たとえば、再プログラム)することができる。設計またはアプリケーションが、より多くのロジックアレイを必要とする場合、ストレージメモリアレイを、ストレージメモリアレイから、ロジックアレイへ再構成(たとえば、再プログラム)することができる。このアプローチにより、メモリアレイの使用効率を高め、エネルギ消費を低減することができる。
【0044】
図2の例では、マトリクス200は、マトリクス200の領域n,mにストレージメモリアレイ202を含み、領域n,1にロジックアレイを含む。処理システム100は、任意のアレイを再構成することができる。たとえば、
図3に示すように、処理システム100は、領域n,mにあるストレージメモリアレイ202を、(ロジックアレイ302として示される)ロジックアレイであるように再構成することができる。
【0045】
本明細書に記載のシステムおよび方法は、CIMおよび人工知能(AI)アプリケーションにとって特に有益であり得る。
図4は、不揮発性メモリCIMと、再構成可能な二重機能セルアレイ102のマトリクスとの統合の例を示す。
図5は、AI識別プログラムの実装を示す。
【0046】
図6は、いくつかの実施形態による、1つまたは複数の再構成可能な二重機能セルアレイ102を構成および再構成する方法600のフローチャートである。このおよび他のフローチャートおよび/またはシーケンス図において、フローチャートは、例として一連のステップを示している。必要に応じて、ステップを並列実行用に再編成したり、並べ替え得ることが理解されるべきである。さらに、含まれていたいくつかのステップは、本発明を曖昧にすることを回避するために、そして明確化のために、削除されている可能性があり、含まれていたいくつかのステップは、削除可能であるが、例示の明確化のために、含まれている場合がある。
【0047】
ステップ602において、処理システム(たとえば、処理システム102)は、第1の制御命令を生成する。たとえば、第1の制御命令は、少なくとも再構成可能な二重機能セルアレイ(たとえば、再構成可能な二重機能セルアレイ102)の1つまたは複数のプログラマブルセルの、ストレージメモリ素子(たとえば、ストレージメモリ素子106)のブロック(たとえば、サブアレイ)のストレージメモリ機能を設定するための出力命令(たとえば、信号)を備える。いくつかの実施形態では、制御ロジック回路(たとえば、制御ロジック回路108)は、第1の制御命令を生成する。
【0048】
ステップ604において、処理システムは、第1の制御命令に基づいて、複数の再構成可能メモリアレイ(たとえば、マトリクス200)のうちの少なくとも1つの再構成可能メモリアレイを、ストレージメモリアレイ(たとえば、メモリアレイ202)として構成する。複数の再構成可能メモリアレイの各再構成可能メモリアレイは、集積回路ダイ素子の1つまたは複数のフィールドプログラマブルゲートアレイ(たとえば、I/Oマクロユニット110および/またはFPGA素子104の他の素子)を制御するためのストレージメモリアレイ(たとえば、高速アクセスメモリ/キャッシュ)または制御ロジックアレイとして構成および再構成可能であり得る。いくつかの実施形態では、制御ロジック108は、構成を確立する。
【0049】
ステップ606において、処理システムは、第2の制御命令を生成する。たとえば、第2の制御命令は、少なくとも1つの再構成可能な(たとえば、ステップ604においてストレージメモリとしてプログラムされた)二重機能セルアレイの1つまたは複数のプログラマブルセル(たとえば、サブアレイ)のためのFPGA機能を設定するための命令(たとえば、信号)を備え得る。いくつかの実施形態では、制御ロジック108は、第2の制御命令を生成する。
【0050】
ステップ608において、処理システムは、第2の制御命令に基づいて、少なくとも1つの再構成可能なメモリアレイを制御ロジックアレイ(たとえば、ロジックアレイ302)に再構成する。たとえば、制御ロジックは、ロジックアレイとして再構成されるストレージアレイとして動作するプログラマブルメモリセルの少なくとも一部を再構成し得る。
【0051】
ロジックアレイをメモリアレイに再構成するために、同様のステップも実行され得る。いくつかの実施形態では、セルは、任意の回数再構成され得る。
【0052】
いくつかの実施形態では、制御ロジック回路108は、集積回路ダイ素子の製造および展開後、自動的に、またはユーザ入力に基づいて、複数の再構成可能メモリアレイのうちの少なくとも1つを構成および再構成するように機能する。したがって、処理システムは、以前のソリューションよりも、より柔軟および/または適応可能であり得る。
【0053】
一例では、複数の再構成可能メモリアレイは、再構成可能メモリアレイのマトリクス(たとえば、マトリクス200)を備える。再構成可能メモリアレイのマトリクスの特定の行(たとえば、行n)は、特定のストレージメモリアレイとして構成または再構成されたいずれかである第1の再構成可能なメモリアレイ(たとえば、メモリアレイ202)と、集積回路ダイ素子の1つまたは複数のフィールドプログラマブルゲートアレイ(I/Oマクロユニット110および/またはFPGA素子104の他の素子)を制御するための特定の制御ロジックアレイとして構成または再構成されたいずれかである第2の再構成可能メモリアレイ(たとえば、ロジックアレイ204)とを含む。ストレージメモリアレイは、高速アクセスメモリアレイ(たとえば、キャッシュ)として動作し得る。
【0054】
再構成可能な二重機能セルアレイ102は、米国特許第7,126,214号に記載されているように、マイクロプロセッサと相互接続するためのシリコン貫通ビア(TSV)を含み得ることが理解されるであろう。さらに、システムは、たとえば、あるものを別のものに積層して、任意の数の再構成可能な二重機能セルアレイ102を使用できることが理解されよう。たとえば、システムは、ダイパッケージに結合されたマイクロプロセッサ、およびマイクロプロセッサ上に積層された1つまたは複数の再構成可能な二重機能セルアレイ102を使用して、積層されたダイ製品を作成することができる。マイクロプロセッサからの距離は、アレイ102の相対的な性能に影響を及ぼし得る。マイクロプロセッサが使用する層を制御するために、様々なアルゴリズムが使用され得る。
【0055】
不揮発性メモリの実施形態
【0056】
図7~
図13は、不揮発性メモリを利用する実施形態に関する。いくつかのアプローチでは、不揮発性メモリデータの読取動作は、センス増幅器の参照入力として固定参照を使用して実行される。一例では、固定参照は、センス増幅器がデータを感知するための1つの固定参照点を含む。しかしながら、固定参照電圧は、不揮発性メモリセルの電気的変動(CD)および/または製造プロセスの偏りを補正できず、セルの読取電流の大きな電気的変化をもたらす可能性がある。さらに、不揮発性メモリセルの物理的なサイズは縮小しており、複雑なプロセス技術により、セルの電気的変動が大きくなり、不揮発性セルの電気的特性に大きな影響を与える可能性がある。固定参照では、不揮発性メモリセルの広い電気的マージン、PCMの信頼性の問題、抵抗ドリフト、セルの変動、熱クロストーク、読取/書込回路構成からの回路ノイズ、周囲温度などを管理できない。
【0057】
図7は、いくつかの実施形態による、不揮発性メモリプログラミング制御ロジックと、データ読取回路を備えたインテリジェントプログラムモードとを有する相変化メモリ(PCM)回路設計700のブロック図である。回路設計700は、固定参照アレイ702を含む。上記のように、固定参照アレイは、不揮発性メモリの実施形態には効果がない可能性がある。
【0058】
PCMセルアレイ704は、PCMを備えた再構成可能な二重機能機能セルアレイを含む。PRE S/A(I/V)706は、電流レベルを電圧レベルに変換し得るプリセンス増幅器回路を含む。センス増幅器708は、メモリアレイセンス増幅器を含む。
【0059】
センス増幅器708の出力が、プログラムデータパターン712と一致する場合、比較(または一致)回路ブロック710は、「YES」に設定され、次のバイトデータをロードする。一致しない場合は、「NO」を有効化し、プログラムパルス714を再度適用して、現在のバイトを再プログラムして、プログラミングステップを繰り返す。
【0060】
PGM回路は、メモリセルプログラム制御ロジックを含み、PGMは、メモリセルがプログラミングまたは読取機能下にあるか否かを判定し得る。
【0061】
一致する場合、次の(新しい)メモリをプログラムするために次のバイトを開始する。PGMパルスを設定する。PGM(バー)がオフされる。
【0062】
参照セルアレイ702は、センス増幅器708の入力として、事前に決定された参照セルを含む。
【0063】
図8は、いくつかの実施形態による、スキャン行および固定センス増幅器参照を有する回路設計800のブロック図である。回路設計800は、動的参照アレイ802およびセンス増幅器804を含む。
【0064】
図8は、PCMメモリセルアレイおよびスキャン行ブロックのスキャン行回路図を示す。B0、B1からB7は、ビットラインデコーダ制御ゲートである。ワードラインW0は、メモリセルのワードラインである。データイン(0~7)は、メモリスキャンのセットアップ中にデータをプログラミングするためのデータ入力である。
【0065】
図9は、いくつかの実施形態による、センス増幅器参照電圧として動的参照アレイを提供する回路設計900のブロック図である。
【0066】
いくつかの実施形態では、回路設計900は、動的参照アレイ802の回路図である。V-biasは、参照電圧である。スキャンモード制御ロジックは、V-bias、固定参照電圧(設計によって事前に決定)、および/またはVRL、VRT・・・、VRHなどの動的参照アレイ参照電圧の調整を可能にする。VRLまたはVRHの選択は、スキャン行の結果の結論によって決定される。センス増幅器804の参照側の電圧値は、V-bias、VRL、および/またはVRHなどに依存する。スキャンモードが、VRH、VRT、またはVRH値を決定した後、センス増幅器の参照電圧値は固定電圧であり得る。通常の読取/書込モードの間、スキャンモードの制御ロジックは、「低」になる場合がある。V-biasは、固定参照電圧であり得る。
【0067】
一般に、センス増幅器(たとえば、センス増幅器130)は、メモリセルに格納されたデータビット(1または0)を表すビットラインからビットを感知し、小さな電圧スイングを認識可能な論理レベルに増幅して、データをメモリ外部のロジックによって適切に解釈できる。従来のアプローチでは、センス増幅器は、固定参照値を使用する。たとえば、データの範囲は、1ボルト(V)から5Vであり得、固定参照値は3Vであり得る。信号が、固定参照値を上回っている場合、センス増幅器は、信号を「高」として設定または表示し得、信号が、固定参照値を下回っている場合、センス増幅器は、信号を「低」として設定または表示し得る。しかしながら、不揮発性メモリは、信頼性の問題、抵抗ドリフト、セルの変動性、熱クロストーク、読取/書込回路構成からの回路ノイズがあり、および/または、周囲温度および/または他の要因による温度変化の影響を受けやすいため、メモリセルに格納された電圧は、変動する可能性がある。したがって、固定参照値は、効果的ではない可能性がある。
【0068】
動的参照アレイを提供する回路設計900は、読取/書込回路の様々な要因をカバーし、センス増幅器(たとえば、センス増幅器130)が広範囲のセルの機能をカバーすることを可能にし得る。たとえば、回路設計900は、PCMの信頼性の問題、抵抗ドリフト、セルの変動性、熱クロストーク、および読取/書込回路構成からの回路ノイズ、周囲温度などを克服し得る。さらに、動的参照アレイ回路設計900は、製品の歩留まりを改善し、製造コストの低下をもたらし得る。動的参照アレイのための例示的な動的プログラミングアルゴリズムが
図14に示される。
【0069】
いくつかの実施形態では、動的参照アレイは、複数の参照を使用して、センス増幅器のセンス範囲を拡大し、データ読取結果を改善する。Vbus電圧は、様々な要因をカバーするように調整でき、それによって参照値の動的範囲を提供する。たとえば、回路設計900に示されるように、より低いVbus電圧は、より高い参照値を提供し得、より低いVbus電圧は、より低い参照値を提供し得る。したがって、再構成可能な二重機能セルアレイ102に格納された電圧の値が(たとえば、上記の要因のために)変化したとしても、その変化は、動的参照アレイによって管理され得る。いくつかの実施形態では、回路設計900は、1つまたは複数の動的参照アレイアルゴリズムを実装する。
【0070】
スキャンモード
i.事前定義されたスキャン行におけるプログラミングおよび検証。
1.プログラム電流/電圧を、プログラム選択セル(バイト)に適用し、プログラム電流パルスを取り除いて、読取モードに切り替え、スキャン行のデータを読み取ってプログラミングデータインを比較することにより、プログラミング結果を検証する。
2.参照アレイの一般的なセルを、参照Vref.RHとして選択するため。
3.プログラミングData-inが、読取データと一致し、ステータスレジスタR0を1に設定する。
4.プログラミングData-inが、読取データと一致せず、ステータスレジスタR0を0に設定する。
5.参照セルを、参照Vref.Tに切り替えるため、そしてスキャン行データ読取を実行するため。
6.プログラミングData-inが、読取データと一致し、ステータスレジスタR1を1に設定する。
7.プログラミングData-inが、読取データと一致せず、ステータスレジスタR1を0に設定する。
8.参照セルを、参照Vref.RLに切り替えるため、そしてスキャン行データ読取を実行するため。
9.プログラミングData-inが、読取データと一致し、ステータスレジスタR2を1に設定する。
10.プログラミングData-inが、読取データと一致せず、ステータスレジスタR2を0に設定する。
11.ステータスレジスタ3ビット、R0、R1、R2をデコードする。選択によって参照セルを設定し、2レジスタビットは1である。例が、
図10~
図13に示される。スキャンモードの設定が完了し、Vrefレベルが異なる。
【0071】
Data-In:プログラムされるデータ。
【0072】
Data-Out:センス増幅器によって読み取られたデータ。
【0073】
一致:Data-In=Data-Out。(プログラムされたデータは、読取データと一致する。)
【0074】
データ読取モード
【0075】
参照アレイセルがスキャンモードによって選択(完了)された後、選択した参照を、将来の読取モードおよびプログラミング/検証モードの参照セルとして設定する。もはやスキャンモードを使用する必要はない。
【0076】
プログラミング/データ検証モード:
【0077】
スキャンモード後(スキャンモードが設定されている)。もはやデータをスキャンする必要はない。ユーザは、ビットをプログラムし、単にスキャンモードの参照後に使用することによって、Data-in対Data-outを検証する。
【0078】
スキャンバイパスモード:
【0079】
スキャンモードをバイパスするためにビットを使用することは、センス増幅器の参照として、参照アレイセルのうちの1つを選択するマニュアルセットアップを可能にする。
【0080】
スキャン有効化モード:
【0081】
スキャンモードを有効化するために、スキャンモードビットを有効化するか、またはスキャンモードをデコードする。スキャンモードを有効化した後、手順A、スキャンモードを繰り返す。
【0082】
図10は、いくつかの実施形態による、ケースA1およびケースA2のスキャンロジックおよび参照アレイのステータスレジスタを設定する例のブロック図である。
【0083】
ケースA1では、例1は、動的参照アレイの参照値、VRL、VRT、およびVRHを格納するための8ビットレジスタである。
【0084】
ケースA2では、例2は、R0を0、R1(=RT)、R2(=RH)に設定する。このケースでは、システムSET→VRT、VRHである。
【0085】
いくつかの実施形態では、システムは、2つの通過するV-reference統計を検出して、1つのV-referenceを、センス増幅器の入力として使用する。
【0086】
図11は、いくつかの実施形態による、ケースA3およびケースA4のスキャンロジックおよび参照アレイのステータスレジスタを設定する例のブロック図である。
【0087】
ケースA3では、例3SET→VRLである。
【0088】
ケースA4では、例4SET→推奨されないケース→弱いビットである。
【0089】
いくつかの実施形態では、システムは、2つの通過するV-reference統計を検出して、1つのV-referenceを、センス増幅器の入力として使用する。
【0090】
図12は、いくつかの実施形態による、ケースA1およびA2のセンス増幅器の波形のブロック図である。Vbitlineは、センス増幅器Data-Out波形対異なる3つの参照電圧Vref.HR、Vref.RT、およびVref.LRである。
【0091】
図12の例では、センス増幅器のビットライン電圧レベルは、動的参照アレイから生成された参照電圧に対して示される。
【0092】
高抵抗セルの波形である、固定されたVerfは、ビットライン電圧レベルに対して示される。「0」および「1」と読み取れる。
【0093】
ケースA1では、ステータスレジスタのセットアップは、VRH、VRT、およびVRLの波形対ビットライン電圧レベルについて示される。
【0094】
ケースA2では、ステータスレジスタのセットアップは、VRH、VRT、およびVRLの波形対ビットライン電圧レベルについて示される。
【0095】
図13は、いくつかの実施形態による、ケースA3およびA4のセンス増幅器の波形のブロック図である。Vbitlineは、センス増幅器のデータData-Out波形対異なる3つの参照電圧Vref.HR、Vref.RT、およびVref.LRである。
【0096】
図13の例では、センス増幅器のビットライン電圧レベルは、動的参照アレイから生成された参照電圧に対して示される。
【0097】
高抵抗セルの波形である、固定されたVerfは、ビットライン電圧レベルに対して示される。「0」および「1」と読み取れる。
【0098】
ケースA3では、ステータスレジスタのセットアップは、VRH、VRT、およびVRLの波形対ビットライン電圧レベルについて示される。
【0099】
ケースA4では、ステータスレジスタのセットアップは、VRH、VRT、およびVRLの波形対ビットライン電圧レベルについて示される。
【0100】
図14は、いくつかの実施形態による動的プログラミングアルゴリズムのブロック図である。
【0101】
いくつかの実施形態では、PCMセルアレイ(たとえば、再構成可能な二重機能セルアレイ102)が、プログラミングモードにあるとき、#PCM信号がパルス化される。PCMセルプログラムの電気的特性を使用して、#PCMパルス幅を決定し得る。製造者や技術が異なれば、異なる#PCMパルス幅を使用できる。PCMセルアレイをプログラミングした後、PCM動的プログラミングアルゴリズムは、読取モードに切り替わり得、センス増幅器の出力は、プログラミングデータパターンを比較し得る。一致する場合、YESが設定され、新しいアドレスをプログラムする。一致しない場合、PGMxは、新しいプログラムパルスを適用して、PCMセルアレイにもう1つのパルスをプログラムする。その後、システムは、一致が発生するまで、および/または所定のパルス数を超えるまで、再度、読取/検証を行う。プログラミング機能を停止する。PCM参照セルアレイは、適切な参照電圧を提供し得る。
【0102】
図15は、いくつかの実施形態による、再構成可能な二重機能セルアレイマクロ設計1500のブロック図である。機能図は、複数のパスを含み、マクロセル選択デコーダは、固定PCMセルまたはPCMセルの特別な行を使用してプログラムされ、様々な機能を接続するS1、S2、S3、S4、SNの選択を実行し得る。ワイヤリング接続を使用する場合がある。
【0103】
図16は、いくつかの実施形態による、再構成可能な二重機能セルアレイマクロセル選択回路のブロック図である。
図16は、いくつかの実施形態によるマクロセル選択デコーダの回路である。
【0104】
図17は、いくつかの実施形態によるカスタム機能ブロック設計例のブロック図である。論理関数は、固定関数ブロック「Adder」または「Multiplier」であり得る。
【0105】
本明細書全体を通して、複数のインスタンスは、単一のインスタンスとして説明された構成要素、動作、または構造を実装し得る。1つまたは複数の方法の個々の動作は、別個の動作として例示および説明されているが、1つまたは複数の個々の動作は同時に実行することができ、動作を例示された順序で実行する必要はない。例示的な構成において別個の構成要素として提示される構造および機能は、組み合わされた構造または構成要素として実装され得る。同様に、単一の構成要素として提示される構造および機能は、別個の構成要素として実装され得る。これらおよび他の変形、修正、追加、および改善は、本明細書の主題の範囲内にある。本明細書で使用される「または」という用語は、包括的または限定的な意味のいずれかで解釈され得ることがさらに理解されよう。
【0106】
本発明は、例示的な実施形態を参照して上述されている。本発明のより広い範囲から逸脱することなく、様々な修正を行うことができ、他の実施形態を使用することができることは当業者には明らかであろう。したがって、例示的な実施形態に関するこれらおよび他の変形は、本発明によってカバーされることが意図されている。
【要約】
集積回路ダイ素子は、1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)素子と、複数の再構成可能なメモリアレイブロックを含む再構成可能な二重機能メモリアレイであって、各再構成可能なメモリアレイブロックは、ストレージメモリアレイブロックとして、または1つまたは複数のFPGA素子の少なくとも一部を制御するための制御ロジックアレイブロックとして構成および再構成することができる、再構成可能な二重機能メモリアレイと、各再構成可能なメモリアレイブロックを、それぞれのメモリアレイブロックとして、または1つまたは複数のFPGA素子を制御するためのそれぞれのロジックアレイブロックとして構成するように機能する制御ロジック回路とを備える。