(57)【要約】  本発明の実施形態はメモリデバイスを提供する。このメモリデバイスは、論理演算を行うように構成されたRRAMクロスバー・アレイを含み、RRAMクロスバー・アレイ内の抵抗の抵抗値は、ブール値1または0を示すために、全てRonまたはRoffに設定される。上記の設定に基づいて、RRAMクロスバー・アレイを使用することによってブール演算が実現され、それによってRRAMクロスバー・アレイの論理演算の信頼性が改善されることが可能である。
2019502225.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスであって、前記メモリデバイスは制御バスおよび複数のメモリユニットを備え、前記複数のメモリユニットは前記制御バスを通して互いに接続され、前記複数のメモリユニットの各々は、
制御モジュールであって、前記制御モジュールは前記制御バスを通してプロセッサに接続され、前記制御バスを通して前記プロセッサの命令を受け取って解析し、前記プロセッサの命令は論理演算命令を備える、制御モジュールと、
論理モジュールであって、前記論理モジュールは前記制御モジュールに接続され、前記論理モジュールは少なくとも１つの層の抵抗ランダム・アクセス・メモリRRAMクロスバー・アレイを備え、前記少なくとも１つの層のRRAMクロスバー・アレイ内の抵抗の抵抗値はRonまたはRoffであり、Ronはブール値1を示し、Roffはブール値0を示し、前記制御モジュールは、前記論理演算命令に従って前記少なくとも１つの層のRRAMクロスバー・アレイを使用することによってブール演算を行う、論理モジュールと、
を備えるメモリデバイス。
【請求項２】
前記論理演算命令は、ブール・ベクトルAとブール・ベクトルBの点乗算演算を行うように前記論理モジュールに命令するために使用され、AおよびBの各々はN次元ブール・ベクトルを示し、Nは２より小さくない正の整数であり、
前記論理モジュールは多層RRAMクロスバー・アレイを備え、前記多層RRAMクロスバー・アレイ内の第１の層のRRAMクロスバー・アレイは、N行×N列を有する抵抗アレイを備え、前記第１の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第１の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第１の層のRRAMクロスバー・アレイのN個のワードラインは、前記制御モジュールに接続され、前記第１の層のRRAMクロスバー・アレイのN個のビットラインは、N個の比較器回路を通して前記多層RRAMクロスバー・アレイ内の他の層のRRAMクロスバー・アレイにそれぞれ接続され、
前記第１の層のRRAMクロスバー・アレイは、前記N個のワードラインによって入力された電圧信号および前記第１の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記N個のビットラインにおいてN個の電流信号を生成し、前記N個のワードラインのうちの第jのワードラインによって入力された電圧信号の電圧値は、Bjに対応する電圧値であり、前記第１の層のRRAMクロスバー・アレイにおける第j行内の抵抗の抵抗値は、Ajに対応する抵抗値であり、Bjは前記ブール・ベクトルBの第jの要素であり、Ajは前記ブール・ベクトルAの第jの要素であり、jの値は0からN-1までにわたり、
前記N個の比較器回路は、前記N個の電流信号をN個の電圧信号にそれぞれ変換し、前記N個の電圧信号を前記N個の比較器回路にそれぞれ対応する電圧閾値と比較し、それによって前記N個のビットラインの出力端は第１の計算結果に対応する電圧信号を出力し、前記第１の計算結果は、N次元ブール・ベクトルであり、前記第１の計算結果の最初のK個の要素は1であり、残りの要素は0であり、KはAとBの点乗算の演算結果であり、
前記他の層のRRAMクロスバー・アレイは、前記N個のビットラインの出力端から前記第１の計算結果に対応する電圧信号を受け取り、前記第１の計算結果に対応する電圧信号および前記他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って、第２の計算結果に対応する電圧信号を取得し、前記第２の計算結果はKの２進数表現である、請求項１に記載のメモリデバイス。
【請求項３】
前記N個の比較器回路のうちの第jの比較器回路は、一定の抵抗値の抵抗Rsおよび比較器を備え、前記抵抗Rsの一端は前記N個のビットラインのうちの第jのビットラインおよび比較器に接続され、前記抵抗Rsの他端は接地され、前記第jの比較器回路の電圧閾値はVr*gon*Rs*(2j+1)/2であり、Vrはブール値1に対応する電圧値を示し、gonはRonの逆数を示す、請求項２に記載のメモリデバイス。
【請求項４】
前記論理モジュールは、少なくとも３つの層のRRAMクロスバー・アレイを備え、前記他の層のRRAMクロスバー・アレイは第２の層のRRAMクロスバー・アレイおよび第３の層のRRAMクロスバー・アレイを備え、
前記第２の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを備え、前記第２の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第２の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第２の層のRRAMクロスバー・アレイのワードラインは前記第１の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、
前記第２の層のRRAMクロスバー・アレイは2N-1個の前記ワードラインを通して前記第１の層のRRAMのビットラインの出力端から前記第１の計算結果に対応する電圧信号を受け取り、前記第１の計算結果に対応する電圧信号および前記第２の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
【数１】
2019502225.tif 000041
を行い、それによって中間計算結果に対応する電圧信号を取得し、
【数２】
2019502225.tif 000042
は、前記第１の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
【数３】
2019502225.tif 000043
は、前記第１の層のRRAMクロスバー・アレイの第(j+1)のビットラインによって出力された電圧信号に対応するブール値であり、
【数４】
2019502225.tif 000044
は、前記第２の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
前記第３の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを備え、前記第３の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第３の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは２進数で整数Nを表現するために要求される最小のビット数以上であり、
前記第３の層のRRAMクロスバー・アレイは、前記第３の層のRRAMクロスバー・アレイのN個のワードラインを通して前記第２の層のクロスバー・アレイのN個のビットラインから前記中間計算結果に対応する電圧信号を受け取り、前記中間計算結果に対応する電圧信号および前記第３の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記中間計算結果をエンコードし、それによって前記第２の計算結果に対応する電圧信号を取得する、請求項３に記載のメモリデバイス。
【請求項５】
前記第３の層のRRAMクロスバー・アレイの第jのワードラインは、前記第２の層のRRAMクロスバー・アレイの第jのビットラインに接続され、前記第３の層のRRAMクロスバー・アレイの第j行内の抵抗の抵抗値は、整数j+1の２進数表現に対応する、請求項４に記載のメモリデバイス。
【請求項６】
前記ブール・ベクトルAはブール行列Φのいずれかの行ベクトルであり、前記ブール・ベクトルBはブール行列Xのいずれかの列ベクトルであり、前記メモリデバイス内の複数の論理モジュールの各々は、前記ブール行列Φのいくつかの行ベクトルと前記ブール行列Xのいくつかの列ベクトルの点乗算演算の責任を負い、前記複数の論理モジュールは共同で前記ブール行列Φと前記ブール行列Xのブール行列乗算演算を実現する、請求項２から５のいずれか一項に記載のメモリデバイス。
【請求項７】
前記プロセッサの命令はデータ読み取り／書き込み命令をさらに備え、各メモリユニットは、
記憶モジュールであって、前記記憶モジュールは前記制御モジュールに接続され、前記制御モジュールは、前記データ読み取り／書き込み命令に従って、前記記憶モジュールを使用することによってデータ読み取り／書き込みを行う、記憶モジュールをさらに備える、請求項１から６のいずれか一項に記載のメモリデバイス。
【請求項８】
多層抵抗ランダム・アクセス・メモリRRAMクロスバー・アレイに基づくデータ処理方法であって、前記多層RRAMクロスバー・アレイ内の抵抗の抵抗値はRonまたはRoffであり、Ronはブール値1を示し、Roffはブール値0を示し、前記多層RRAMクロスバー・アレイは、ブール・ベクトルAとブール・ベクトルBの点乗算演算を行うために使用され、AおよびBの各々はN次元ブール・ベクトルを示し、Nは２より小さくない正の整数であり、前記多層RRAMクロスバー・アレイ内の第１の層のRRAMクロスバー・アレイは、N行×N列を有する抵抗アレイを備え、前記第１の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第１の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第１の層のRRAMクロスバー・アレイのN個のビットラインは、N個の比較器回路を通して前記多層RRAMクロスバー・アレイ内の他の層のRRAMクロスバー・アレイにそれぞれ接続され、
前記方法は、
前記第１の層のRRAMクロスバー・アレイにより、前記第１の層のRRAMクロスバー・アレイのN個のワードラインによって入力された電圧信号および前記第１の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記N個のビットラインにおいてN個の電流信号を生成するステップであって、前記N個のワードラインのうちの第jのワードラインによって入力された電圧信号の電圧値は、Bjに対応する電圧値であり、前記第１の層のRRAMクロスバー・アレイにおける第j行内の抵抗の抵抗値は、Ajに対応する抵抗値であり、Bjはブール・ベクトルBの第jの要素であり、Ajはブール・ベクトルAの第jの要素であり、jの値は0からN-1までにわたる、ステップと、
前記N個の比較器回路により、前記N個の電流信号をN個の電圧信号に変換し、前記N個の電圧信号を前記N個の比較器回路にそれぞれ対応する電圧閾値と比較し、それによって前記N個のビットラインの出力端は第１の計算結果に対応する電圧信号を出力するステップであって、前記第１の計算結果は、N次元ブール・ベクトルであり、前記第１の計算結果の最初のK個の要素は1であり、残りの要素は0であり、KはAとBの点乗算の演算結果である、ステップと、
前記他の層のRRAMクロスバー・アレイにより、前記N個のビットラインの出力端から前記第１の計算結果に対応する電圧信号を受け取り、前記第１の計算結果に対応する電圧信号および前記他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って、第２の計算結果に対応する電圧信号を取得するステップであって、前記第２の計算結果はKの２進数表現である、ステップと、
を備える、方法。
【請求項９】
前記論理モジュールは、少なくとも３つの層のRRAMクロスバー・アレイを備え、前記他の層のRRAMクロスバー・アレイは第２の層のRRAMクロスバー・アレイおよび第３の層のRRAMクロスバー・アレイを備え、
前記第２の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを備え、前記第２の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第２の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第２の層のRRAMクロスバー・アレイのワードラインは前記第１の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、
前記第３の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを備え、前記第３の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第３の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは２進数で整数Nを表現するために要求される最小のビット数以上であり、
前記他の層のRRAMクロスバー・アレイにより、前記N個のビットラインの出力端から前記第１の計算結果に対応する電圧信号を受け取り、前記第１の計算結果に対応する電圧信号および前記他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って第２の計算結果に対応する電圧信号を取得するステップは、
前記第２の層のRRAMクロスバー・アレイにより、2N-1個の前記ワードラインを通して前記第１の層のRRAMのビットラインの出力端から前記第１の計算結果に対応する電圧信号を受け取り、前記第１の計算結果に対応する電圧信号および前記第２の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
【数５】
2019502225.tif 000045
を行い、それによって中間計算結果に対応する電圧信号を取得するステップであって、
【数６】
2019502225.tif 000046
は、前記第１の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
【数７】
2019502225.tif 000047
は、前記第１の層のRRAMクロスバー・アレイの第(j+1)のビットラインによって出力された電圧信号に対応するブール値であり、
【数８】
2019502225.tif 000048
は、前記第２の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定である、ステップと、
前記第３の層のRRAMクロスバー・アレイにより、前記第３の層のRRAMクロスバー・アレイのN個のワードラインを通して前記第２の層のクロスバー・アレイのN個のビットラインから前記中間計算結果に対応する電圧信号を受け取り、前記中間計算結果に対応する電圧信号および前記第３の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記中間計算結果をエンコードし、それによって前記第２の計算結果に対応する電圧信号を取得するステップと、
を備える、請求項８に記載の方法。
【請求項１０】
前記N個の比較器回路のうちの第jの比較器回路は、一定の抵抗値の抵抗Rsおよび比較器を備え、前記抵抗Rsの一端は前記N個のビットラインのうちの第jのビットラインおよび比較器に接続され、前記抵抗Rsの他端は接地され、前記第jの比較器回路の電圧閾値はVr*gon*Rs*(2j+1)/2であり、Vrはブール値1に対応する電圧値を示し、gonはRonの逆数を示す、請求項８または９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、記憶分野、より詳細には、多層RRAM(登録商標、以下同じ)クロスバー・アレイに基づくメモリデバイス、およびデータ処理方法に関する。
【背景技術】
【０００２】
現在、多くのアプリケーションは、指紋認識および機械学習のような複雑なビッグデータ計算に関する。現在のビッグデータ計算について、計算システムの性能ボトルネックは主に次の２つの態様にある。
【０００３】
メモリウォール(memory wall)：技術の発達に伴い、プロセッサ性能は持続的に改善している。しかし、メモリ性能はたいへんゆっくりと改善している。その結果、メモリ性能は全体のシステム性能を改善するための「弱点」になり、これはメモリウォールと呼ばれる。具体的には、プロセッサとメモリの間の接続および通信は、入力／出力(Input/Output, I/O)バスを使用することによって実現される。ハードウェアによって制限され、I/Oバスは制限された帯域幅を有する。その結果、ほとんどの時間において、プロセッサはメモリを待つアイドル状態にある。
【０００４】
パワーウォール(power wall)：現在、ほとんどのメモリは揮発性メモリである。従って、データ損失を防止するために、揮発性メモリは常に通電される必要がある。これは、メモリの高い動的な電力消費および高い静的な電力消費に導く。
【０００５】
一般に、次の解決策が上記の２つの問題に提供される。
【０００６】
メモリウォールへの解決策：論理ユニット(または論理回路)がメモリに追加されることが可能であり、それによってデータがメモリ内で直接に計算される、すなわちin-memory computing。例として10個の数字の合計を使用すると、メモリがデータ記憶機能のみを有するならば、プロセッサはメモリからI/Oバスを通して10個の数字を読み取り、10個の数字を合計する必要がある。メモリが論理演算機能を有するならば、メモリは10個の数字の合計を直接に計算し、そしてI/Oバスを通してプロセッサに計算結果を送ることができる。上記の２つの実装の間の比較から、論理演算機能を有するメモリは90%だけI/Oバスの伝送の圧迫を低減し、それによってメモリウォール制限が効果的に軽減されることが可能であることが見出され得る。
【０００７】
パワーウォールへの解決策：不揮発性メモリが揮発性メモリを置換するために使用され得る。メモリは不揮発性であるので、電力の一時中断によって引き起こされるメモリ内のデータの損失は生じない。従って、データ処理プロセスにおいて、全体のメモリが常に通電される必要はない。このようにして、電力消費は効果的に低減される。
【０００８】
抵抗ランダム・アクセス・メモリ(Resistive Random Access Memory, RRAM)技術の発達は、上記の２つの問題を同時に解決することを可能にする。まず、RRAMのコアデバイスはメモリスタである(すなわち、RRAM内の抵抗はメモリスタである)。RRAMは不揮発性であり、電力消費を低減することができる。さらに、図１に表わされているように、RRAMはクロスバー・アレイ構造を有する(従って、RRAMは、一般に、RRAMクロスバー・アレイ、またはRRAM crossbarと呼ばれる)。RRAM crossbarは単層または多層であり得る。多層RRAM crossbarにおいて、１つの層の出力は次の層の入力として使用され得る。抵抗アレイがRRAM crossbarの各層に配置される。RRAM内の抵抗がニューラル・ネットワーク内のニューロンとして考慮されるならば、RRAM crossbarは構造的にニューラル・ネットワークにたいへん類似していることが見出され得る。そのような構造は、論理演算のためにたいへん適している。具体的には、様々な論理演算が、RRAM crossbarの層の数、RRAM crossbarの各層における抵抗アレイのサイズ、および各抵抗の抵抗値を構成することによって実現され得る。
【０００９】
先行技術において、RRAM crossbarの論理演算能力は、ある程度まで既に開発され、使用されている。図２は、論理演算を行うことができるRRAM crossbarの従来の回路構造を表わす。まず、RRAM crossbar内の抵抗の抵抗値は、(合計、排他的OR、および行列乗算のような)所望の論理演算機能に従って構成される必要がある。例として行列乗算Y = ΦXを使用して、まず、行列Φ内の各要素がRRAM crossbar内に記憶され得る。例えば、図２の抵抗Gijは、Φの第i行および第j列の要素に対応し、Gijの抵抗値は、対応する要素の値を表現する。そして、実際の行列乗算において、行列Xの要素は、まず、デジタル・パラメータx1...xnからアナログ・パラメータ(アナログ電圧信号)に変換され、そして、RRAMの行に入力される。そして、RRAM crossbar内の行と列の間の電圧、電流、および抵抗の関係を使用することによって行列内の要素に点乗算演算が行われ、それによって計算結果V1からVmを取得する。最後に、計算結果(アナログ電圧パラメータ)が(y1およびy2のような)デジタル・パラメータに変換され、そして出力される。
【００１０】
上記の説明から、従来のRRAM crossbarはアナログ・パラメータを使用して論理演算を行い、そのような演算方式は主に次の２つの短所を有することが知られ得る。
【００１１】
第１に、多数のデジタル・アナログ変換器(Digital to Analog Converter, DAC)およびアナログ・デジタル変換器(Analog to Digital Converter, ADC)が信号へのDAおよびAD変換演算のために要求される。変換器および変換演算は時間を消費し、電力を消費する。
【００１２】
第２に、具体的な演算論理を実現するために、RRAM内の抵抗は、前もって構成され、またはプログラムされる必要がある。実際、RRAM内の抵抗の抵抗値は、抵抗を通して流れる電流の積分に従って決定される。しかし、RRAM内の抵抗素子の特性は、一定でなく、ある程度まで変動し得る。その結果、同じ電流についての積分演算によって得られる抵抗値は、異なり得る。具体的には、図３の(a)に表わされているように、素子特性の変動によって影響され、抵抗は、(Ron状態(低抵抗状態、またはon-stateとも呼ばれる)から、中間状態(intermediate state)へ、そしてRoff状態(高抵抗状態、またはoff-stateとも呼ばれる)への異なる状態変換曲線を有し、抵抗プログラミングの不正確さという結果になる。加えて、図３の(b)から、そのような不正確さは、抵抗の中間状態において特に明らかであることが知られ得る。
【発明の概要】
【課題を解決するための手段】
【００１３】
この出願は、従来のRRAM crossbarの論理演算の正確さを改善するために、メモリデバイスを提供する。
【００１４】
第１の態様によれば、メモリデバイスが提供される。メモリデバイスは制御バスおよび複数のメモリユニットを含み、複数のメモリユニットは制御バスを通して互いに接続され、複数のメモリユニットの各々は、制御モジュールであって、この制御モジュールは制御バスを通してプロセッサに接続され、制御バスを通してプロセッサの命令を受け取って解析し、プロセッサの命令は論理演算命令を含む、制御モジュールと、論理モジュールであって、この論理モジュールは制御モジュールに接続され、論理モジュールは少なくとも１つの層のRRAMクロスバー・アレイ(すなわち、RRAM crossbar)を含み、少なくとも１つの層のRRAMクロスバー・アレイ内の抵抗の抵抗値はRonまたはRoffであり、Ronはブール値1を示し、Roffはブール値0を示し、制御モジュールは、論理演算命令に従って少なくとも１つの層のRRAMクロスバー・アレイを使用することによってブール演算を行う、論理モジュールと、を含む。
【００１５】
RRAMクロスバー・アレイ内の抵抗はRonまたはRoffに設定され、RonおよびRoffはブール値1および0をそれぞれ示すために使用され、それによってRRAMクロスバー・アレイのブール演算が実現され、RRAMクロスバー・アレイの論理演算の正確さが改善される。
【００１６】
第１の態様を参照して、第１の態様の第１の実装において、論理演算命令は、ブール・ベクトルAとブール・ベクトルBの点乗算演算を行うように論理モジュールに命令するために使用され、AおよびBの各々はN次元ブール・ベクトルを示し、Nは２より小さくない正の整数であり、論理モジュールは多層RRAMクロスバー・アレイを含み、多層RRAMクロスバー・アレイ内の第１の層のRRAMクロスバー・アレイは、N行×N列を有する抵抗アレイを含み、第１の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第１の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、第１の層のRRAMクロスバー・アレイのN個のワードラインは、制御モジュールに接続され、第１の層のRRAMクロスバー・アレイのN個のビットラインは、N個の比較器回路を通して多層RRAMクロスバー・アレイ内の他の層のRRAMクロスバー・アレイにそれぞれ接続され、第１の層のRRAMクロスバー・アレイは、N個のワードラインによって入力された電圧信号および第１の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従ってN個のビットラインにおいてN個の電流信号を生成し、N個のワードラインのうちの第jのワードラインによって入力された電圧信号の電圧値は、Bjに対応する電圧値であり、第１の層のRRAMクロスバー・アレイにおける第j行内の抵抗の抵抗値は、Ajに対応する抵抗値であり、Bjはブール・ベクトルBの第jの要素であり、Ajはブール・ベクトルAの第jの要素であり、jの値は0からN-1までにわたり、N個の比較器回路は、N個の電流信号をN個の電圧信号にそれぞれ変換し、N個の電圧信号をN個の比較器回路にそれぞれ対応する電圧閾値と比較し、それによってN個のビットラインの出力端は第１の計算結果に対応する電圧信号を出力し、第１の計算結果は、N次元ブール・ベクトルであり、第１の計算結果の最初のK個の要素は1であり、残りの要素は0であり、KはAとBの点乗算の演算結果であり、他の層のRRAMクロスバー・アレイは、N個のビットラインの出力端から第１の計算結果に対応する電圧信号を受け取り、第１の計算結果に対応する電圧信号および他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って、第２の計算結果に対応する電圧信号を取得し、第２の計算結果はKの２進数表現である。
【００１７】
ブール・ベクトルの点乗算演算は、多層RRAMクロスバー・アレイを使用することによって実現される。
【００１８】
第１の態様の第１の実装を参照して、第１の態様の第２の実装において、N個の比較器回路のうちの第jの比較器回路は、一定の抵抗値の抵抗Rsおよび比較器を含み、抵抗Rsの一端はN個のビットラインのうちの第jのビットラインおよび比較器に接続され、抵抗Rsの他端は接地され、第jの比較器回路の電圧閾値はVr*gon*Rs*(2j+1)/2であり、Vrはブール値1に対応する電圧値を示し、gonはRonの逆数を示す。
【００１９】
第１の態様の第２の実装を参照して、第１の態様の第３の実装において、論理モジュールは、少なくとも３つの層のRRAMクロスバー・アレイを含み、他の層のRRAMクロスバー・アレイは第２の層のRRAMクロスバー・アレイおよび第３の層のRRAMクロスバー・アレイを含み、第２の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを含み、第２の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第２の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、第２の層のRRAMクロスバー・アレイのワードラインは第１の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、第２の層のRRAMクロスバー・アレイは2N-1個のワードラインを通して第１の層のRRAMのビットラインの出力端から第１の計算結果に対応する電圧信号を受け取り、第１の計算結果に対応する電圧信号および第２の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
【００２０】
【数１】
2019502225.tif 000003
【００２１】
を行い、それによって中間計算結果に対応する電圧信号を取得し、
【００２２】
【数２】
2019502225.tif 000004
【００２３】
は、第１の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
【００２４】
【数３】
2019502225.tif 000005
【００２５】
は、第１の層のRRAMクロスバー・アレイの第(j+1)のビットラインによって出力された電圧信号に対応するブール値であり、
【００２６】
【数４】
2019502225.tif 000006
【００２７】
は、第２の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、第３の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを含み、第３の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第３の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは２進数で整数Nを表現するために要求される最小のビット数以上であり、第３の層のRRAMクロスバー・アレイは、第３の層のRRAMクロスバー・アレイのN個のワードラインを通して第２の層のクロスバー・アレイのN個のビットラインから中間計算結果に対応する電圧信号を受け取り、中間計算結果に対応する電圧信号および第３の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って中間計算結果をエンコードし、それによって第２の計算結果に対応する電圧信号を取得する。
【００２８】
nが２進数で整数Nを表現するために要求される最小のビット数以上であることは、次のように理解され得る。N = 8と仮定すると、少なくとも4ビットが２進数のNを表現するために要求され、すなわち、1000はNを表現し、従って、n≧4である。
【００２９】
第１の態様の第３の実装を参照して、第１の態様の第４の実装において、第３の層のRRAMクロスバー・アレイの第jのワードラインは、第２の層のRRAMクロスバー・アレイの第jのビットラインに接続され、第３の層のRRAMクロスバー・アレイの第j行内の抵抗の抵抗値は、整数j+1の２進数表現に対応する。
【００３０】
第１の態様の第１から第４の実装のいずれか１つを参照して、第１の態様の第５の実装において、ブール・ベクトルAはブール行列Φのいずれかの行ベクトルであり、ブール・ベクトルBはブール行列Xのいずれかの列ベクトルであり、メモリデバイス内の複数の論理モジュールの各々は、ブール行列Φのいくつかの行ベクトルとブール行列Xのいくつかの列ベクトルの点乗算演算の責任を負い、複数の論理モジュールは共同でブール行列Φとブール行列Xのブール行列乗算演算を実現する。
【００３１】
第１の態様または第１の態様の上記の実装のいずれか１つを参照して、第１の態様の第６の実装において、プロセッサの命令はデータ読み取り／書き込み命令をさらに含み、各メモリユニットは、記憶モジュールであって、この記憶モジュールは制御モジュールに接続され、制御モジュールは、データ読み取り／書き込み命令に従って、記憶モジュールを使用することによってデータ読み取り／書き込みを行う、記憶モジュールをさらに含む。
【００３２】
第２の態様によれば、多層RRAMクロスバー・アレイに基づくデータ処理方法が提供される。多層RRAMクロスバー・アレイ内の抵抗の抵抗値はRonまたはRoffであり、Ronはブール値1を示し、Roffはブール値0を示し、多層RRAMクロスバー・アレイは、ブール・ベクトルAとブール・ベクトルBの点乗算演算を行うために使用され、AおよびBの各々はN次元ブール・ベクトルを示し、Nは２より小さくない正の整数であり、多層RRAMクロスバー・アレイ内の第１の層のRRAMクロスバー・アレイは、N行×N列を有する抵抗アレイを含み、第１の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第１の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、第１の層のRRAMクロスバー・アレイのN個のビットラインは、N個の比較器回路を通して多層RRAMクロスバー・アレイ内の他の層のRRAMクロスバー・アレイにそれぞれ接続される。この方法は、第１の層のRRAMクロスバー・アレイにより、第１の層のRRAMクロスバー・アレイのN個のワードラインによって入力された電圧信号および第１の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従ってN個のビットラインにおいてN個の電流信号を生成するステップであって、N個のワードラインのうちの第jのワードラインによって入力された電圧信号の電圧値は、Bjに対応する電圧値であり、第１の層のRRAMクロスバー・アレイにおける第j行内の抵抗の抵抗値は、Ajに対応する抵抗値であり、Bjはブール・ベクトルBの第jの要素であり、Ajはブール・ベクトルAの第jの要素であり、jの値は0からN-1までにわたる、ステップと、N個の比較器回路により、N個の電流信号をN個の電圧信号に変換し、N個の電圧信号をN個の比較器回路にそれぞれ対応する電圧閾値と比較し、それによってN個のビットラインの出力端は第１の計算結果に対応する電圧信号を出力するステップであって、第１の計算結果は、N次元ブール・ベクトルであり、第１の計算結果の最初のK個の要素は1であり、残りの要素は0であり、KはAとBの点乗算の演算結果である、ステップと、他の層のRRAMクロスバー・アレイにより、N個のビットラインの出力端から第１の計算結果に対応する電圧信号を受け取り、第１の計算結果に対応する電圧信号および他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って、第２の計算結果に対応する電圧信号を取得するステップであって、第２の計算結果はKの２進数表現である、ステップと、を含む。
【００３３】
RRAMクロスバー・アレイ内の抵抗はRonまたはRoffに設定され、RonおよびRoffはブール値1および0をそれぞれ示すために使用され、それによってRRAMクロスバー・アレイのブール演算が実現され、RRAMクロスバー・アレイの論理演算の正確さが改善される。
【００３４】
第２の態様を参照して、第２の態様の第１の実装において、論理モジュールは、少なくとも３つの層のRRAMクロスバー・アレイを含み、他の層のRRAMクロスバー・アレイは第２の層のRRAMクロスバー・アレイおよび第３の層のRRAMクロスバー・アレイを含み、第２の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを含み、第２の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第２の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、第２の層のRRAMクロスバー・アレイのワードラインは第１の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、第３の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを含み、第３の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第３の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは２進数で整数Nを表現するために要求される最小のビット数以上であり、他の層のRRAMクロスバー・アレイにより、N個のビットラインの出力端から第１の計算結果に対応する電圧信号を受け取り、第１の計算結果に対応する電圧信号および他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って第２の計算結果に対応する電圧信号を取得するステップは、第２の層のRRAMクロスバー・アレイにより、2N-1個のワードラインを通して第１の層のRRAMのビットラインの出力端から第１の計算結果に対応する電圧信号を受け取り、第１の計算結果に対応する電圧信号および第２の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
【００３５】
【数５】
2019502225.tif 000007
【００３６】
を行い、それによって中間計算結果に対応する電圧信号を取得するステップであって、
【００３７】
【数６】
2019502225.tif 000008
【００３８】
は、第１の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
【００３９】
【数７】
2019502225.tif 000009
【００４０】
は、第１の層のRRAMクロスバー・アレイの第(j+1)のビットラインによって出力された電圧信号に対応するブール値であり、
【００４１】
【数８】
2019502225.tif 000010
【００４２】
は、第２の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定である、ステップと、第３の層のRRAMクロスバー・アレイにより、第３の層のRRAMクロスバー・アレイのN個のワードラインを通して第２の層のクロスバー・アレイのN個のビットラインから中間計算結果に対応する電圧信号を受け取り、中間計算結果に対応する電圧信号および第３の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って中間計算結果をエンコードし、それによって第２の計算結果に対応する電圧信号を取得するステップと、を含む。
【００４３】
第２の態様または第２の態様の第１の実装を参照して、第２の態様の第２の実装において、N個の比較器回路のうちの第jの比較器回路は、一定の抵抗値の抵抗Rsおよび比較器を含み、抵抗Rsの一端はN個のビットラインのうちの第jのビットラインおよび比較器に接続され、抵抗Rsの他端は接地され、第jの比較器回路の電圧閾値はVr*gon*Rs*(2j+1)/2であり、Vrはブール値1に対応する電圧値を示し、gonはRonの逆数を示す。
【００４４】
上記の実装のいくつかにおいて、記憶モジュールは、RRAMクロスバー・アレイに基づく記憶モジュールである。RRAMクロスバー・アレイに基づく記憶モジュールは、メモリ電力消費を低減することができる。
【００４５】
上記の実装のいくつかにおいて、制御モジュールは、プロセッサの命令をバッファするように構成された命令キューと、プロセッサの命令を解析し、解析された命令に従って対応する演算を行うように構成された命令デコーダと、を含む。バッファキューは制御モジュール内に設定され、それによってプロセッサの待ち時間が低減されることが可能である。
【００４６】
上記の実装のいくつかにおいて、制御モジュールは、論理モジュールおよび／または記憶モジュールから取得された結果データを記憶するように構成されたスタティック・ランダム・アクセス・メモリ(Static Random Access Memory, SRAM)を含み、制御モジュールは、プロセッサに結果データを送るようにさらに構成される。
【００４７】
上記の実装のいくつかにおいて、制御モジュールは、相補型金属酸化膜半導体(Complementary Metal Oxide Semiconductor, CMOS)に基づく制御モジュールである。
【００４８】
この出願は、RRAM crossbarの論理演算の正確さを改善する。
【００４９】
本発明の実施形態における技術的解決策をより明確に説明するために、下記は、実施形態を説明するために要求される添付図面を簡単に説明する。明らかに、下記の説明における添付図面は、単に本発明のいくつかの実施形態を表わす。
【図面の簡単な説明】
【００５０】
【図１】RRAM crossbarの物理的構造の概略図である。
【図２】RRAM crossbarに基づく従来の論理回路の構造図である。
【図３】RRAM crossbar内の抵抗の抵抗特性の曲線である。
【図４】本発明の実施形態によるメモリデバイスの概略構造図である。
【図５】制御モジュール45のバス設計方式の例を表わす。
【図６】１つの層のRRAM crossbarの概略構造図である。
【図７】ブール行列乗算を実現するために使用される３つの層のRRAM crossbar内の第１の層のRRAM crossbarの回路図である。
【図８】ブール行列乗算を実現するために使用される３つの層のRRAM crossbar内の第２の層のRRAM crossbarの回路図である。
【図９】ブール行列乗算を実現するために使用される３つの層のRRAM crossbar内の第３の層のRRAM crossbarの回路図である。
【発明を実施するための形態】
【００５１】
図４は本発明の実施形態によるメモリデバイスの概略構造図である。図４から、メモリデバイス40は全体的にH-tree構造にあることが知られ得る。この構造において、記憶モジュール43(または、データモジュール、データアレイ、data array、または同様のものと呼ばれる)は論理モジュール44(または、論理回路、論理演算回路、in-memory logic、または同様のものと呼ばれる)と対にされる。
【００５２】
任意選択で、一実施形態において、記憶モジュール43と論理モジュール44の両方はRRAM crossbarであってもよい。さらに、記憶モジュール43は単層RRAM crossbarであってもよく、論理モジュール44は多層RRAM crossbarであってもよい。もちろん、記憶モジュール43の種類は、本発明のこの実施形態において具体的に限定されず、他の種類の記憶媒体が使用されてもよい。加えて、記憶モジュール43と論理モジュール44の両方がRRAM crossbarであるとしても、RRAM crossbarの層の数は本発明のこの実施形態において具体的に限定されない。例えば、記憶モジュール43は多層RRAM crossbarとして設計されてもよく、論理モジュール44は単層論理モジュール44(単層RRAM crossbarは簡単な論理演算を実現することもできる)として設計されてもよい。
【００５３】
依然として図４を参照すると、メモリデバイス40は主に４つの部分、すなわち、ブロックデコーダ41(Block decoder)、記憶モジュール43、論理モジュール44、および制御モジュール45を含む。制御モジュール45はCMOSを基にした制御モジュールであってもよい。記憶モジュール43、論理モジュール44、および制御モジュール45はメモリユニット42(または、データ／論理対、Data/Logic pairと呼ばれる)内に含まれてもよい。
【００５４】
図４において、制御モジュール45は、記憶モジュール43、論理モジュール44、およびブロックデコーダ41に別個に接続され、ブロックデコーダ41を通して(CPUのような)プロセッサ47に接続される。制御モジュール45は、プロセッサ47の命令を受け取って解析することが可能であり、さらに、記憶モジュール43と論理モジュール44の間のデータ交換または伝送の責任を負うことが可能である。ブロックデコーダ41は、プロセッサ47によって配送された命令を、命令に対応するメモリユニット42の制御モジュール45に転送し得る。加えて、一実施形態において、メモリユニット42のアドレス探索機能は、ブロックデコーダ41内に統合されてもよく、残りの制御機能は制御モジュール45内に全て統合される。
【００５５】
上記の説明から、制御モジュール45はブロックデコーダ41に接続されてもよいが、ブロックデコーダ41はプロセッサ47によって配送された命令を、対応するメモリユニット42の制御モジュール45に転送することのみに責任を負ってもよいことが知られ得る。従って、他の観点から、制御モジュール45は、プロセッサの命令を受け取って解析するための主体として考慮され得る。例として図５を使用して、下記は、制御モジュールの内部構造および制御モジュールが命令をどのように処理するかを詳細に説明する。
【００５６】
図５は制御モジュールのバス設計方式の例を表わす。制御モジュール45は命令キュー451、命令デコーダ452、アドレスデコーダ453、およびSRAMアレイ454を含むことが可能であり、それらの間の接続方式が図５に表わされ得る。メモリデバイスの動作周波数がプロセッサの動作周波数より低い可能性があることを考慮すると、命令キュー451が制御モジュール45内に配置されて、プロセッサ47によって配送される命令をバッファしてもよく、それによってプロセッサ47の待ち時間を低減する。命令デコーダ452は実行されるべき命令を解析し(これは、例えば、データ読み取り、データ記憶、またはメモリ計算の命令であってもよく、下記で詳細に説明される)、そして、対応する演算を行う。アドレスデコーダ453は命令内のアドレス情報を記憶モジュール43の行／列情報または論理モジュール44の行／列情報に分解し得る。SRAMアレイ454は、記憶モジュール43または論理モジュール44から読み取られるデータを一時的に記憶し、命令に従ってデータを記憶モジュール43または論理モジュール44に書き込み、またはデータを外部のプロセッサ47に戻して転送するように構成され得る。
【００５７】
プロセッサ47によってメモリデバイス40に配送される命令のフォーマットおよび種類は、本発明のこの実施形態において具体的に限定されない。例えば、プロセッサ47によってメモリデバイス40に配送される命令の種類または制御モジュール45によって解析される必要がある命令の種類は、表１にリストされた４種類の命令を含み得る。
【００５８】
【表１】
2019502225.tif 000011
【００５９】
例としてメモリ計算プロセスを使用して、まず、論理モジュール44において論理構成が行われ、すなわち、論理モジュール44が特定の演算論理を実現することができるように、論理モジュール44内の抵抗の抵抗値が構成される。そして、入力信号が論理モジュール44に提供される。すなわち、論理演算を要求するデータが論理モジュール44に入力される。そして、入力信号および構成された演算論理に従って論理モジュール44内でメモリ計算が行われ得る。下記は、表１における命令を参照してメモリ計算プロセスを詳細に説明する。
【００６０】
メモリ計算が必要であるとき、プロセッサ47は下記の命令をメモリデバイス40に配送し得る。
【００６１】
命令1：SW命令、これはプロセッサ47または記憶モジュール43内のデータを論理モジュール44に書き込むために使用されて、論理モジュール44内のRRAMの抵抗値を構成し、それによって論理モジュールは、合計、排他的OR、および乗算のような特定の論理を実現することができる。
【００６２】
命令2：SW命令、これはプロセッサ47または記憶モジュール43内のデータを論理モジュール44の入力列に書き込むために使用される(図６においてワードライン(word line)によって入力される電圧
【００６３】
【数９】
2019502225.tif 000012
【００６４】
)。入力データについての特定の論理演算は、前もって構成された演算論理に基づいて論理モジュール内に実現されることが可能である。例えば、論理モジュール47はa+b合計論理を実現する。命令1を使用することによってbが論理モジュールに記憶されることが可能であり、そして命令2を使用することによってaが入力され、そしてaとbが合計される。
【００６５】
命令3：ST命令、これは論理モジュール44の全ての行／列スイッチをターンオンするために使用され、それによって電流が論理モジュール44の全ての行／列を通して流れる。
【００６６】
命令4：WT命令。RRAM crossbarを使用することによって複雑な論理演算が実現されるとき、複数の層のRRAM crossbarが論理モジュール44内に必要である。この場合、RRAM crossbarの計算を完了するために時間がかかる。従って、ST命令は、制御モジュール45に、論理モジュール44のメモリ計算の完了を待ち、そして続く命令を実行するように命令するために使用され得る。
【００６７】
命令5：SW命令、これはメモリ計算が完了した後、論理モジュール44によって演算により取得されたデータを記憶モジュール43に戻して書き込むために使用され得る。
【００６８】
特定の論理について、論理構成は論理モジュール44に一度だけ行われる必要があり、命令1はメモリ計算が行われる前に必ずしも毎回実行されなくてよいことが留意されるべきである。すなわち、同じ論理演算は、論理モジュール44の入力列内のデータを交換することによって異なるデータのために実現されることが可能である。
【００６９】
制御モジュール45が命令に従ってメモリ計算を行うプロセスが上記で詳細に説明された。制御モジュール45は命令に従って通常のデータ読み取り／書き込みも行い得ることが留意されるべきである。このプロセスは先行技術におけるものと類似し、ここで詳細に説明されない。例として図６を使用して、下記は、RRAM crossbarに基づく論理モジュール44の論理演算プロセスを簡単に説明する。
【００７０】
図６において、比較器回路は各ビットライン(bit line)の下部に配置される。実際、比較器回路は、感知増幅器(Sense Amplifier, SA)であってもよい。SAは、比較的小さい抵抗値を有する一定の抵抗Rs(例えばRs<Ron<Roff)、および演算増幅器を含み、それによって列(すなわち、ビットライン)内の電流信号を電圧に変換し、この電圧を第１の層のRRAM crossbarにおける電圧閾値と比較して、この列の計算結果を取得する。各列についての計算式は次の通りである。
【００７１】
【数１０】
2019502225.tif 000013
【００７２】
式(1)において、
【００７３】
【数１１】
2019502225.tif 000014
【００７４】
は第i行のワードライン(word line)の電圧を示し、
【００７５】
【数１２】
2019502225.tif 000015
【００７６】
は第j列のビットライン(bit line)の電圧を示し、gijは抵抗Rijに対応するアドミッタンス(Rijの逆数)を示し、
【００７７】
【数１３】
2019502225.tif 000016
【００７８】
は第j列に対応する電圧閾値を示し、
【００７９】
【数１４】
2019502225.tif 000017
【００８０】
は第j列の出力電圧を示す。加えて、図６は単層RRAM crossbarの回路構造を単に表わす。論理モジュール44が多層RRAM crossbarを含むならば、１つの層の列出力
【００８１】
【数１５】
2019502225.tif 000018
【００８２】
は次の層の行入力として使用され得る。全ての層は同じ構造または異なる構造を有してもよい。最後の層の列出力
【００８３】
【数１６】
2019502225.tif 000019
【００８４】
は論理モジュール44の最終出力として使用され得る。
【００８５】
RRAM crossbarを使用して特定の論理演算(または機能)を実現するために、下記のステップが、RRAM crossbar内の抵抗の抵抗値および各列の電圧閾値を構成するために行われ得る(すなわち、RRAM crossbar内の抵抗値および各列の電圧閾値がRRAM crossbarによって実際に実現される論理を決定する)。
【００８６】
ステップ1：(MatLabおよびOctaveのような)ソフトウェアにおいて、特定の論理を実現するために要求されるRRAM crossbarの層の数、および各層の行および列のサイズを決定する。
【００８７】
ステップ2：各層のRRAM crossbarにおいて抵抗の抵抗値、および比較器回路の電圧閾値を計算する。
【００８８】
ステップ3：命令を使用して、RRAM crossbar内の抵抗の計算された抵抗値を対応する抵抗に記憶させ、比較器回路の電圧閾値を設定する。
【００８９】
ステップ4：ハードウェア(論理モジュール44の回路)を使用することによって特定の論理計算を実現する。
【００９０】
アナログ信号に基づくRRAM crossbarの短所が、図２および図３、例えば、過度なADおよびDA変換演算、および抵抗値構成プロセスに存在する誤り、を参照して上記で詳細に説明されている。この短所を克服するために、下記は、具体的な実施形態を参照して、デジタル信号に基づくRRAM crossbarの具体的な実装を説明する。
【００９１】
まず、図３の(b)から、中間状態と比較して、RRAM crossbar内の抵抗がRonまたはRoffに設定されるならば信頼性はより高いことが知られ得る(RRAM crossbar内の抵抗を構成するプロセスはRRAM programmingと呼ばれ得る)。すなわち、RRAM crossbar内の抵抗のみがRonまたはRoffに設定されるならば、抵抗構成誤りが低減されることが可能であり、論理演算の信頼性は改善されることが可能である。従って、本発明のこの実施形態におけるRRAM crossbar内の抵抗は、Ron状態に設定されるか、またはRoff状態に設定されるかのいずれかである。Roffはブール値「0」(または数字「0」)を示してもよく、Ronはブール値「1」(または数字「1」)を示してもよい。そして、RRAM crossbarの行入力インタフェースは、AD変換の必要なく、純粋なデジタルインタフェースとして設計され得る(入力電圧信号はハイレベルおよびローレベルを含み、ハイレベルはブール値1に対応し、ローレベルはブール値0に対応すると仮定すると、図６から、RRAM crossbarの行入力は電圧信号であることが知られ得るが、ハイレベルとローレベルの電圧値は本発明のこの実施形態において具体的に限定されない)。上記の設定により、図２に表わされているアナログ信号に基づく論理モジュールは、デジタル信号に基づく論理モジュールに変換され得る。
【００９２】
図６を参照すると、各列のSA内の抵抗Rsは一定の抵抗値を有する小さい抵抗であってもよく、Roff,、Ron、およびRSについてRoff>>Ron>>Rsが満たされてもよい。(図において例としてSAを使用して)比較器回路は各列の端に接続される。式(2)を参照すると、SAはこの列の電圧を列の閾値電圧と比較して、この列の出力電圧を取得する。出力電圧は、ブール値0に対応する電圧(ローレベル)またはブール値1に対応する電圧(ハイレベル)のいずれかである。
【００９３】
RRAM crossbar内の抵抗およびワードラインの各列内の電圧閾値を構成することによって特定の論理が実現されることが可能であることが理解されるべきである。しかし、論理の種類は本発明のこの実施形態において具体的に限定されない。例としてブール行列(行列内の要素が全て0と1である)乗算を使用して、下記は、ブール行列乗算を実現するために、RRAM crossbar内の抵抗の抵抗値をどのように構成し、RRAM crossbar内のワードラインの電圧閾値をどのように構成するかを詳細に説明する。
【００９４】
理解の容易さのために、行列乗算Y = ΦXの計算プロセスがまず説明される。
【００９５】
行列XおよびΦの一般形式およびベクトル形式は次の通りである。
【００９６】
【数１７】
2019502225.tif 000020
【００９７】
行列Φと行列Xの積は、その代わりに、列ベクトル
【００９８】
【数１８】
2019502225.tif 000021
【００９９】
と行ベクトル
【０１００】
【数１９】
2019502225.tif 000022
【０１０１】
の積として考慮され得る。詳細には、式(4)
【０１０２】
【数２０】
2019502225.tif 000023
【０１０３】
を参照されたい。
【０１０４】
式(3)および(4)から、行列Yの各要素は行列Φの行と行列Xの列の点乗算(すなわち、内積を計算すること)の結果であることが知られ得る。
【０１０５】
本発明のこの実施形態において、まず、論理モジュールが提供される。論理モジュールは、多層RRAM crossbarに基づいて、ブール・ベクトル(ブール・ベクトルは、要素が0または1であるベクトルである)の点乗算演算論理を実現し得る。これに基づいて、ブール行列(ブール行列は、要素が0または1である行列である)乗算演算を実現することができるメモリデバイスが、本発明のこの実施形態においてさらに提供される。メモリデバイスは、ブール・ベクトル乗算を実現することができる１つ以上の論理モジュールを含み得る。ブール行列乗算演算はブール・ベクトルの複数の点乗算演算に分解され得るので、メモリデバイスはブール行列乗算演算をブール・ベクトルの複数の点乗算演算に分解し、そしてブール・ベクトルの複数の点乗算演算を１つ以上の論理モジュールに分配し得る。１つ以上の論理モジュールは共同でブール行列乗算演算を実現する。
【０１０６】
下記は、例として、ブール・ベクトル
【０１０７】
【数２１】
2019502225.tif 000024
【０１０８】
(これはブール行列Φ内のいずれかの行の要素によって形成されるベクトルとして考慮されることが可能であり、上記で言及したブール・ベクトルAに対応する)と、ブール・ベクトル
【０１０９】
【数２２】
2019502225.tif 000025
【０１１０】
(これは行列X内のいずれかの列の要素によって形成されるブール・ベクトルとして考慮されることが可能であり、上記で言及したブール・ベクトルBに対応する)を使用することによってブール・ベクトル点乗算演算を実現するために多層RRAM crossbarの構造および機能を詳細に説明する。
【０１１１】
多層RRAM crossbarは、具体的には、３つの層のRRAM crossbarを含み得る。図７に表わされている回路は、３つの層のRRAM crossbar内の第１の層のRRAM crossbarにおいて使用され得る。図７において、第１の層のRRAM crossbarはN×N抵抗アレイを含む。N×N抵抗アレイの各列内のN個の抵抗は、それぞれ、ブール・ベクトル
【０１１２】
【数２３】
2019502225.tif 000026
【０１１３】
を示す。例えば、Nは8であり、
【０１１４】
【数２４】
2019502225.tif 000027
【０１１５】
の8個の要素は順に10101010であると仮定する。従って、第１の層のRRAM crossbarのN×N抵抗アレイ内の第１の列の抵抗値は、順に、Ron(1に対応する)、Roff(0に対応する)、Ron、Roff、Ron、Roff、Ron、およびRoffであり、N×N抵抗アレイ内の各列の抵抗構成は、第１の列の抵抗構成と同じである。
【０１１６】
比較器回路は、N×N抵抗アレイの各列(bit line)の下部に配置される(SAは下記における比較器回路の例として使用される)。比較器回路は、比較的小さい抵抗値を有する一定の抵抗Rsおよび比較器を含み得る。比較器回路の機能は、各列内の電流信号を電圧信号に変換し、その電圧信号を列の電圧閾値Vth1と比較し、それによってこの列の計算結果が0であるか、または1であるかを決定することである。N×N抵抗アレイ内の各列の電圧閾値は、順にVr*gon*Rs*(2j+1)/2に設定されることが可能であり、ここでjは0からN-1までにわたる正の整数であり、VrはXの入力が1であるときの実際の電圧(すなわち、ハイレベル)を示し、gonは抵抗Ronに対応するアドミッタンスを示し、Rsはサンプリング抵抗の抵抗値を示す。この式から、N×N抵抗アレイ内の列の閾値は順に増加し、(図７に表わされているように)全体的に階段形状であることが知られ得る。
【０１１７】
下記は、第１の層のRRAM crossbarによって実現されることが可能である論理機能を説明する。
【０１１８】
ブール・ベクトル
【０１１９】
【数２５】
2019502225.tif 000028
【０１２０】
に対応する電圧信号が第１の層のRRAM crossbarに入力される(すなわち、ブール・ベクトル
【０１２１】
【数２６】
2019502225.tif 000029
【０１２２】
内の要素1に対応するワードラインにハイレベルが入力され、ブール・ベクトル
【０１２３】
【数２７】
2019502225.tif 000030
【０１２４】
内の要素0に対応するワードラインにローレベルが入力される)。上記で説明したように、第１の層のRRAM crossbarにおける各列内の抵抗の抵抗値は、ブール・ベクトル
【０１２５】
【数２８】
2019502225.tif 000031
【０１２６】
に対応する抵抗値である。第１の層のRRAM crossbarの全ての行／列のスイッチがターンオンされるとき、電圧と電流の間の関係に基づいて第１の層のRRAM crossbarの各ビットラインにおいて、ブール・ベクトル
【０１２７】
【数２９】
2019502225.tif 000032
【０１２８】
とブール・ベクトル
【０１２９】
【数３０】
2019502225.tif 000033
【０１３０】
の点乗算論理が実現される。点乗算論理の結果は各ワードラインにおける電流によって表現され得る。そして、ビットラインの出力端において、第１の層のRRAM crossbarのワードラインに接続されたSAは、上記で説明した階段形状の電圧閾値を設定することによって第１の計算結果に対応する電圧信号を出力する。第１の計算結果はN次元ブール・ベクトルであり、第１の計算結果の最初のK個の要素は1であり、残りの要素は0であり、Kは、ブール・ベクトル
【０１３１】
【数３１】
2019502225.tif 000034
【０１３２】
とブール・ベクトル
【０１３３】
【数３２】
2019502225.tif 000035
【０１３４】
についての点乗算演算の結果である。例えば、N=8およびK=3と仮定する。第１の層のRRAM crossbarの論理演算により、第１の層のRRAM crossbarの出力O1,j(0≦j≦N-1)の結果は11100000である。それは次のように、すなわち、列0から3におけるSAのすべての比較結果は、列の電圧が電圧閾値より大きいことであり、列4から7におけるSAの全ての比較結果は、列の電圧が電圧閾値より小さいことであると理解され得る。
【０１３５】
次に、３つの層のRRAM crossbar内の第２の層のRRAM crossbarと第３の層のRRAM crossbarの論理タスクは、第１の層のRRAM crossbarの出力結果をKの２進数表現に変換することである。例としてK=3を依然として使用して、第１の層のRRAM crossbarの出力結果は11100000であり、第２の層のRRAM crossbarと第３の層のRRAM crossbarの論理タスクは、11100000を11、すなわち、２進数における3に変換することである。下記は、第２の層のRRAM crossbarと第３の層のRRAM crossbarの構造および論理機能をさらに説明する(ここで、第２の層のRRAM crossbarと第３の層のRRAM crossbarは共同で上記の論理タスクを完了するが、これは本発明のこの実施形態において限定されず、上記の論理タスクは、その代わりに、１つの層のRRAM crossbarまたは３つより多くの層のRRAM crossbarによって実現され得る)。
【０１３６】
上記の論理タスクを実現するために、図８に表わされている構造は、第２の層のRRAM crossbarのために使用され得る。図８において、第２の層のRRAM crossbarは(2N-1)×N抵抗アレイを含む。第２の層のRRAM crossbarの抵抗の第j列内の第(2j)および第(2j+1)の抵抗の抵抗値はRonであり、残りの抵抗の抵抗値はRoffであり、ここで0≦j≦N-2である。第２の層のRRAM crossbarの抵抗の第(N-1)列内の第(2N-1)の抵抗の抵抗値はRonであり、残りの抵抗の抵抗値はRoffである。第２の層のRRAM crossbarの2N-1個のワードラインは、図８に表わされている接続関係に従って第１の層のRRAM crossbarのビットライン出力端O1,jに接続され得る。第１の層のRRAM crossbarのいくつかのビットラインの出力端は第２の層のRRAM crossbarのワードラインに接続される前に否定演算を要求することが留意されるべきである。図７に表わされている
【０１３７】
【数３３】
2019502225.tif 000036
【０１３８】
を参照すると、そのような否定演算は、比較器または位相反転器のようなデバイスに接続することによって実現され得る。これは本発明のこの実施形態において具体的に限定されない。第２の層のRRAM crossbarにおける各ビットラインの端は比較器回路に接続される。比較器回路の電圧閾値Vth2はVr*gon*Rs/2に設定され得る。加えて、第２の層の出力O2,jを取得するために、演算回路内の比較器の正極と負極は交換される必要があり(すなわち、電圧閾値Vth2は比較器の同相入力端において設定され、逆相入力端は抵抗Rsおよびビットラインに接続される)、ここで0≦j≦N-1である。
【０１３９】
第２の層のRRAM crossbarの出力O2,jと第１の層のRRAM crossbarの出力の間の関係は、式(5)によって表現され得る。すなわち、式(5)は第２の層のRRAM crossbarによって実現される論理機能である。
【０１４０】
【数３４】
2019502225.tif 000037
【０１４１】
式(5)によって表現される論理は、実際、排他的OR論理である。すなわち、第１の層のRRAM crossbarによって出力された第１の計算結果について排他的OR演算が対で行われて、中間計算結果を取得する。中間計算結果はN次元ベクトルである。N次元ベクトルの第(K-1)の要素は1であり、残りの要素は0である。Kはブール・ベクトル
【０１４２】
【数３５】
2019502225.tif 000038
【０１４３】
とブール・ベクトル
【０１４４】
【数３６】
2019502225.tif 000039
【０１４５】
についての点乗算演算の結果である。第１の層のRRAM crossbarの出力結果が11100000であることは、一例として使用される。取得された結果は、第２の層の論理演算が行われた後に00100000である。しかし、排他的OR論理を実現するためのRRAM crossbarの構造は本発明のこの実施形態において具体的に限定されず、図８は単に例であることが留意されるべきである。実際、排他的OR論理は、その代わりに、他の方式において抵抗の抵抗値および電圧閾値を構成することによって実現され得る。
【０１４６】
第２の層のRRAM crossbarは、中間計算結果に対応する電圧信号を第２の層のRRAM crossbarのワードラインに転送する。第２の層のRRAM crossbarの第jのビットラインの出力端O2,jは第３の層のRRAM crossbarの第jのワードラインの入力端に接続される。第３の層のRRAM crossbarの論理回路は図９に表わされている。第３の層のRRAM crossbarはN×n抵抗アレイを含み、ここでnは２進数で整数Nを表現するために要求される最小のビット数以上である(例えば、n=8であり、8の２進数表現は1000であり、すなわち、8の２進数表現は4ビットを要求し、従って、nは4以上である)。抵抗のN行の抵抗値は、上から下に順に２進数1からNを抵抗が示すように設定される。このようにして、第２の層のRRAM crossbarによって出力される中間演算結果に対応する電圧信号が第３の層のRRAM crossbarの入力電圧信号として使用されるとき、中間演算結果の第(K-1)の要素はブール値1であり、残りの要素はブール値0であるので、第３の層のRRAM crossbarの第(K-1)のビットラインはブール値1に対応する電圧信号(ハイレベル)を入力し、残りのビットラインの各々はブール値0に対応する電圧信号(ローレベル)を入力する。論理の観点から、そのような構成により、最終的に第３の層のRRAM crossbarによって出力される(上記で説明した第２の演算に対応する)演算結果は、Kの２進数表現である。すなわち、第３の層のRRAM crossbarの第(K-1)行内の抵抗に対応する整数の２進数表現(上記で説明したように、第(K-1)行内の抵抗は整数Kの２進数表現に対応することが知られ得る)は最終的な演算結果として選択される。第３の層のRRAM crossbarの出力は最終的な演算結果に対応する電圧信号である。
【０１４７】
例としてN=8およびK=3を依然として使用して、第２の層のRRAM crossbarの論理出力は00100000である。第３の層のRRAM crossbarの入力と出力の間の論理対応関係は、下記の表に表わされている。
【０１４８】
【表２】
2019502225.tif 000040
【０１４９】
上記の表から、00100000に対応する出力は0011、すなわち、3の２進数表現であることが知られ得る。
【０１５０】
入力行列が非ブール行列である(例えば、入力行列が正の実数行列である)ならば、行列は線形代数により複数のブール行列の線形結合に分解され得ることが留意されるべきである。そして、上記の方式で複数のブール行列について演算が行われ、そして、複数のブール行列についての演算の結果は線形結合されて、実数行列に対応する行列乗算結果を取得する。詳細は本発明のこの実施形態において再度説明されない。
【０１５１】
この技術分野の当業者は、この明細書において開示された実施形態において説明された例と組み合わせて、ユニットおよびアルゴリズムのステップは、電子的ハードウェアまたはコンピュータソフトウェアと電子的ハードウェアの組み合わせによって実現され得ることを認識し得る。機能がハードウェアによって行われるか、またはソフトウェアによって行われるかは、特定の応用および技術的解決策の設計制約条件に依存する。この技術分野の当業者は異なる方法を使用して各々の特定の応用のために説明された機能を実現し得るが、この実装は本発明の範囲を超えると考慮されるべきでない。上記の説明は単に本発明の具体的な実施形態であるが、本発明の保護範囲を限定することは意図されない。
【符号の説明】
【０１５２】
40  メモリデバイス
41  ブロックデコーダ
42  メモリユニット
43  記憶モジュール
44  論理モジュール
45  制御モジュール
46  I/Oバス
47  プロセッサ
451  命令キュー
452  命令デコーダ
453  アドレスデコーダ
454  SRAMアレイ
【図１】
2019502225.tif 000049
【図２】
2019502225.tif 000050
【図３】
2019502225.tif 000051
【図４】
2019502225.tif 000052
【図５】
2019502225.tif 000053
【図６】
2019502225.tif 000054
【図７】
2019502225.tif 000055
【図８】
2019502225.tif 000056
【図９】
2019502225.tif 000057
【手続補正書】
【提出日】平成30年8月8日(2018.8.8)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
第２に、具体的な演算論理を実現するために、RRAM内の抵抗は、前もって構成され、またはプログラムされる必要がある。実際、RRAM内の抵抗の抵抗値は、抵抗を通して流れる電流の積分に従って決定される。しかし、RRAM内の抵抗素子の特性は、一定でなく、ある程度まで変動し得る。その結果、同じ電流についての積分演算によって得られる抵抗値は、異なり得る。具体的には、図３の(a)に表わされているように、素子特性の変動によって影響され、抵抗は、Ron状態(低抵抗状態、またはon-stateとも呼ばれる)から、中間状態(intermediate state)へ、そしてRoff状態(高抵抗状態、またはoff-stateとも呼ばれる)への異なる状態変換曲線を有し、抵抗プログラミングの不正確さという結果になる。加えて、図３の(b)から、そのような不正確さは、抵抗の中間状態において特に明らかであることが知られ得る。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
第１の態様の第２の実装を参照して、第１の態様の第３の実装において、論理モジュールは、少なくとも３つの層のRRAMクロスバー・アレイを含み、他の層のRRAMクロスバー・アレイは第２の層のRRAMクロスバー・アレイおよび第３の層のRRAMクロスバー・アレイを含み、第２の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを含み、第２の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第２の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、第２の層のRRAMクロスバー・アレイのワードラインは第１の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、第２の層のRRAMクロスバー・アレイは2N-1個のワードラインを通して第１の層のRRAMクロスバー・アレイのビットラインの出力端から第１の計算結果に対応する電圧信号を受け取り、第１の計算結果に対応する電圧信号および第２の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
は、第２の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、第３の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを含み、第３の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第３の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは２進数で整数Nを表現するために要求される最小のビット数以上であり、第３の層のRRAMクロスバー・アレイは、第３の層のRRAMクロスバー・アレイのN個のワードラインを通して第２の層のRRAMクロスバー・アレイのN個のビットラインから中間計算結果に対応する電圧信号を受け取り、中間計算結果に対応する電圧信号および第３の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って中間計算結果をエンコードし、それによって第２の計算結果に対応する電圧信号を取得する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
第２の態様を参照して、第２の態様の第１の実装において、論理モジュールは、少なくとも３つの層のRRAMクロスバー・アレイを含み、他の層のRRAMクロスバー・アレイは第２の層のRRAMクロスバー・アレイおよび第３の層のRRAMクロスバー・アレイを含み、第２の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを含み、第２の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第２の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、第２の層のRRAMクロスバー・アレイのワードラインは第１の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、第３の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを含み、第３の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第３の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは２進数で整数Nを表現するために要求される最小のビット数以上であり、他の層のRRAMクロスバー・アレイにより、N個のビットラインの出力端から第１の計算結果に対応する電圧信号を受け取り、第１の計算結果に対応する電圧信号および他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って第２の計算結果に対応する電圧信号を取得するステップは、第２の層のRRAMクロスバー・アレイにより、2N-1個のワードラインを通して第１の層のRRAMクロスバー・アレイのビットラインの出力端から第１の計算結果に対応する電圧信号を受け取り、第１の計算結果に対応する電圧信号および第２の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
は、第２の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定である、ステップと、第３の層のRRAMクロスバー・アレイにより、第３の層のRRAMクロスバー・アレイのN個のワードラインを通して第２の層のRRAMクロスバー・アレイのN個のビットラインから中間計算結果に対応する電圧信号を受け取り、中間計算結果に対応する電圧信号および第３の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って中間計算結果をエンコードし、それによって第２の計算結果に対応する電圧信号を取得するステップと、を含む。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
図４は本発明の実施形態によるメモリデバイスの概略構造図である。図４から、メモリデバイス40は全体的にH-tree構造にあることが知られ得る。この構造において、記憶モジュール43(または、データモジュール、データアレイ、または同様のものと呼ばれる)は論理モジュール44(または、論理回路、論理演算回路、in-memory logic、または同様のものと呼ばれる)と対にされる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
依然として図４を参照すると、メモリデバイス40は主に４つの部分、すなわち、ブロックデコーダ41(Block decoder)、記憶モジュール43、論理モジュール44、および制御モジュール45を含む。制御モジュール45はCMOSを基にした制御モジュールであってもよい。記憶モジュール43、論理モジュール44、および制御モジュール45はメモリユニット42(または、データ／論理対と呼ばれる)内に含まれてもよい。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
命令2：LW命令、これはプロセッサ47または記憶モジュール43内のデータを論理モジュール44の入力列に書き込むために使用される(図６においてワードライン(word line)によって入力される電圧
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
)。入力データについての特定の論理演算は、前もって構成された演算論理に基づいて論理モジュール内に実現されることが可能である。例えば、論理モジュール44はa+b合計論理を実現する。命令1を使用することによってbが論理モジュールに記憶されることが可能であり、そして命令2を使用することによってaが入力され、そしてaとbが合計される。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１４６
【補正方法】変更
【補正の内容】
【０１４６】
第２の層のRRAM crossbarは、中間計算結果に対応する電圧信号を第３の層のRRAM crossbarのワードラインに転送する。第２の層のRRAM crossbarの第jのビットラインの出力端O2,jは第３の層のRRAM crossbarの第jのワードラインの入力端に接続される。第３の層のRRAM crossbarの論理回路は図９に表わされている。第３の層のRRAM crossbarはN×n抵抗アレイを含み、ここでnは２進数で整数Nを表現するために要求される最小のビット数以上である(例えば、N=8であり、8の２進数表現は1000であり、すなわち、8の２進数表現は4ビットを要求し、従って、nは4以上である)。抵抗のN行の抵抗値は、上から下に順に２進数1からNを抵抗が示すように設定される。このようにして、第２の層のRRAM crossbarによって出力される中間演算結果に対応する電圧信号が第３の層のRRAM crossbarの入力電圧信号として使用されるとき、中間演算結果の第(K-1)の要素はブール値1であり、残りの要素はブール値0であるので、第３の層のRRAM crossbarの第(K-1)のビットラインはブール値1に対応する電圧信号(ハイレベル)を入力し、残りのビットラインの各々はブール値0に対応する電圧信号(ローレベル)を入力する。論理の観点から、そのような構成により、最終的に第３の層のRRAM crossbarによって出力される(上記で説明した第２の演算に対応する)演算結果は、Kの２進数表現である。すなわち、第３の層のRRAM crossbarの第(K-1)行内の抵抗に対応する整数の２進数表現(上記で説明したように、第(K-1)行内の抵抗は整数Kの２進数表現に対応することが知られ得る)は最終的な演算結果として選択される。第３の層のRRAM crossbarの出力は最終的な演算結果に対応する電圧信号である。
【手続補正１１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリデバイスであって、前記メモリデバイスは制御バスおよび複数のメモリユニットを備え、前記複数のメモリユニットは前記制御バスを通して互いに接続され、前記複数のメモリユニットの各々は、
制御モジュールであって、前記制御モジュールは前記制御バスを通してプロセッサに接続され、前記制御バスを通して前記プロセッサの命令を受け取って解析し、前記プロセッサの命令は論理演算命令を備える、制御モジュールと、
論理モジュールであって、前記論理モジュールは前記制御モジュールに接続され、前記論理モジュールは少なくとも１つの層の抵抗ランダム・アクセス・メモリ(RRAM)クロスバー・アレイを備え、前記少なくとも１つの層のRRAMクロスバー・アレイ内の抵抗の抵抗値はRonまたはRoffであり、Ronはブール値1を示し、Roffはブール値0を示し、前記制御モジュールは、前記論理演算命令に従って前記少なくとも１つの層のRRAMクロスバー・アレイを使用することによってブール演算を行う、論理モジュールと、
を備えるメモリデバイス。
【請求項２】
前記論理演算命令は、ブール・ベクトルAとブール・ベクトルBの点乗算演算を行うように前記論理モジュールに命令するために使用され、AおよびBの各々はN次元ブール・ベクトルを示し、Nは２より小さくない正の整数であり、
前記論理モジュールは多層RRAMクロスバー・アレイを備え、前記多層RRAMクロスバー・アレイ内の第１の層のRRAMクロスバー・アレイは、N行×N列を有する抵抗アレイを備え、前記第１の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第１の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第１の層のRRAMクロスバー・アレイのN個のワードラインは、前記制御モジュールに接続され、前記第１の層のRRAMクロスバー・アレイのN個のビットラインは、N個の比較器回路を通して前記多層RRAMクロスバー・アレイ内の他の層のRRAMクロスバー・アレイにそれぞれ接続され、
前記第１の層のRRAMクロスバー・アレイは、前記N個のワードラインによって入力された電圧信号および前記第１の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記N個のビットラインにおいてN個の電流信号を生成し、前記N個のワードラインのうちの第jのワードラインによって入力された電圧信号の電圧値は、Bjに対応する電圧値であり、前記第１の層のRRAMクロスバー・アレイにおける第j行内の抵抗の抵抗値は、Ajに対応する抵抗値であり、Bjは前記ブール・ベクトルBの第jの要素であり、Ajは前記ブール・ベクトルAの第jの要素であり、jの値は0からN-1までにわたり、
前記N個の比較器回路は、前記N個の電流信号をN個の電圧信号にそれぞれ変換し、前記N個の電圧信号を前記N個の比較器回路にそれぞれ対応する電圧閾値と比較し、それによって前記N個のビットラインの出力端は第１の計算結果に対応する電圧信号を出力し、前記第１の計算結果は、N次元ブール・ベクトルであり、前記第１の計算結果の最初のK個の要素は1であり、残りの要素は0であり、KはAとBの点乗算の演算結果であり、
前記他の層のRRAMクロスバー・アレイは、前記N個のビットラインの出力端から前記第１の計算結果に対応する電圧信号を受け取り、前記第１の計算結果に対応する電圧信号および前記他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って、第２の計算結果に対応する電圧信号を取得し、前記第２の計算結果はKの２進数表現である、請求項１に記載のメモリデバイス。
【請求項３】
前記N個の比較器回路のうちの第jの比較器回路は、一定の抵抗値の抵抗Rsおよび比較器を備え、前記抵抗Rsの一端は前記N個のビットラインのうちの第jのビットラインおよび比較器に接続され、前記抵抗Rsの他端は接地され、前記第jの比較器回路の電圧閾値はVr*gon*Rs*(2j+1)/2であり、Vrはブール値1に対応する電圧値を示し、gonはRonの逆数を示す、請求項２に記載のメモリデバイス。
【請求項４】
前記論理モジュールは、少なくとも３つの層のRRAMクロスバー・アレイを備え、前記他の層のRRAMクロスバー・アレイは第２の層のRRAMクロスバー・アレイおよび第３の層のRRAMクロスバー・アレイを備え、
前記第２の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを備え、前記第２の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第２の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第２の層のRRAMクロスバー・アレイのワードラインは前記第１の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、
前記第２の層のRRAMクロスバー・アレイは2N-1個の前記ワードラインを通して前記第１の層のRRAMクロスバー・アレイのビットラインの出力端から前記第１の計算結果に対応する電圧信号を受け取り、前記第１の計算結果に対応する電圧信号および前記第２の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
【数１】
2019502225.tif 000058
を行い、それによって中間計算結果に対応する電圧信号を取得し、
【数２】
2019502225.tif 000059
は、前記第１の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
【数３】
2019502225.tif 000060
は、前記第１の層のRRAMクロスバー・アレイの第(j+1)のビットラインによって出力された電圧信号に対応するブール値であり、
【数４】
2019502225.tif 000061
は、前記第２の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
前記第３の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを備え、前記第３の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第３の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは２進数で整数Nを表現するために要求される最小のビット数以上であり、
前記第３の層のRRAMクロスバー・アレイは、前記第３の層のRRAMクロスバー・アレイのN個のワードラインを通して前記第２の層のRRAMクロスバー・アレイのN個のビットラインから前記中間計算結果に対応する電圧信号を受け取り、前記中間計算結果に対応する電圧信号および前記第３の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記中間計算結果をエンコードし、それによって前記第２の計算結果に対応する電圧信号を取得する、請求項３に記載のメモリデバイス。
【請求項５】
前記第３の層のRRAMクロスバー・アレイの第jのワードラインは、前記第２の層のRRAMクロスバー・アレイの第jのビットラインに接続され、前記第３の層のRRAMクロスバー・アレイの第j行内の抵抗の抵抗値は、整数j+1の２進数表現に対応する、請求項４に記載のメモリデバイス。
【請求項６】
前記ブール・ベクトルAはブール行列Φのいずれかの行ベクトルであり、前記ブール・ベクトルBはブール行列Xのいずれかの列ベクトルであり、前記メモリデバイス内の複数の論理モジュールの各々は、前記ブール行列Φのいくつかの行ベクトルと前記ブール行列Xのいくつかの列ベクトルの点乗算演算の責任を負い、前記複数の論理モジュールは共同で前記ブール行列Φと前記ブール行列Xのブール行列乗算演算を実現する、請求項２から５のいずれか一項に記載のメモリデバイス。
【請求項７】
前記プロセッサの命令はデータ読み取り／書き込み命令をさらに備え、各メモリユニットは、
記憶モジュールであって、前記記憶モジュールは前記制御モジュールに接続され、前記制御モジュールは、前記データ読み取り／書き込み命令に従って、前記記憶モジュールを使用することによってデータ読み取り／書き込みを行う、記憶モジュールをさらに備える、請求項１から６のいずれか一項に記載のメモリデバイス。
【請求項８】
多層抵抗ランダム・アクセス・メモリ(RRAM)クロスバー・アレイに基づくデータ処理方法であって、前記多層RRAMクロスバー・アレイ内の抵抗の抵抗値はRonまたはRoffであり、Ronはブール値1を示し、Roffはブール値0を示し、前記多層RRAMクロスバー・アレイは、ブール・ベクトルAとブール・ベクトルBの点乗算演算を行うために使用され、AおよびBの各々はN次元ブール・ベクトルを示し、Nは２より小さくない正の整数であり、前記多層RRAMクロスバー・アレイ内の第１の層のRRAMクロスバー・アレイは、N行×N列を有する抵抗アレイを備え、前記第１の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第１の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第１の層のRRAMクロスバー・アレイのN個のビットラインは、N個の比較器回路を通して前記多層RRAMクロスバー・アレイ内の他の層のRRAMクロスバー・アレイにそれぞれ接続され、
前記方法は、
前記第１の層のRRAMクロスバー・アレイにより、前記第１の層のRRAMクロスバー・アレイのN個のワードラインによって入力された電圧信号および前記第１の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記N個のビットラインにおいてN個の電流信号を生成するステップであって、前記N個のワードラインのうちの第jのワードラインによって入力された電圧信号の電圧値は、Bjに対応する電圧値であり、前記第１の層のRRAMクロスバー・アレイにおける第j行内の抵抗の抵抗値は、Ajに対応する抵抗値であり、Bjはブール・ベクトルBの第jの要素であり、Ajはブール・ベクトルAの第jの要素であり、jの値は0からN-1までにわたる、ステップと、
前記N個の比較器回路により、前記N個の電流信号をN個の電圧信号に変換し、前記N個の電圧信号を前記N個の比較器回路にそれぞれ対応する電圧閾値と比較し、それによって前記N個のビットラインの出力端は第１の計算結果に対応する電圧信号を出力するステップであって、前記第１の計算結果は、N次元ブール・ベクトルであり、前記第１の計算結果の最初のK個の要素は1であり、残りの要素は0であり、KはAとBの点乗算の演算結果である、ステップと、
前記他の層のRRAMクロスバー・アレイにより、前記N個のビットラインの出力端から前記第１の計算結果に対応する電圧信号を受け取り、前記第１の計算結果に対応する電圧信号および前記他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って、第２の計算結果に対応する電圧信号を取得するステップであって、前記第２の計算結果はKの２進数表現である、ステップと、
を備える、方法。
【請求項９】
前記多層RRAMクロスバー・アレイは、少なくとも３つの層のRRAMクロスバー・アレイを備え、前記他の層のRRAMクロスバー・アレイは第２の層のRRAMクロスバー・アレイおよび第３の層のRRAMクロスバー・アレイを備え、
前記第２の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを備え、前記第２の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第２の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第２の層のRRAMクロスバー・アレイのワードラインは前記第１の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、
前記第３の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを備え、前記第３の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第３の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは２進数で整数Nを表現するために要求される最小のビット数以上であり、
前記他の層のRRAMクロスバー・アレイにより、前記N個のビットラインの出力端から前記第１の計算結果に対応する電圧信号を受け取り、前記第１の計算結果に対応する電圧信号および前記他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って第２の計算結果に対応する電圧信号を取得するステップは、
前記第２の層のRRAMクロスバー・アレイにより、2N-1個の前記ワードラインを通して前記第１の層のRRAMクロスバー・アレイのビットラインの出力端から前記第１の計算結果に対応する電圧信号を受け取り、前記第１の計算結果に対応する電圧信号および前記第２の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
【数５】
2019502225.tif 000062
を行い、それによって中間計算結果に対応する電圧信号を取得するステップであって、
【数６】
2019502225.tif 000063
は、前記第１の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
【数７】
2019502225.tif 000064
は、前記第１の層のRRAMクロスバー・アレイの第(j+1)のビットラインによって出力された電圧信号に対応するブール値であり、
【数８】
2019502225.tif 000065
は、前記第２の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定である、ステップと、
前記第３の層のRRAMクロスバー・アレイにより、前記第３の層のRRAMクロスバー・アレイのN個のワードラインを通して前記第２の層のRRAMクロスバー・アレイのN個のビットラインから前記中間計算結果に対応する電圧信号を受け取り、前記中間計算結果に対応する電圧信号および前記第３の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記中間計算結果をエンコードし、それによって前記第２の計算結果に対応する電圧信号を取得するステップと、
を備える、請求項８に記載の方法。
【請求項１０】
前記N個の比較器回路のうちの第jの比較器回路は、一定の抵抗値の抵抗Rsおよび比較器を備え、前記抵抗Rsの一端は前記N個のビットラインのうちの第jのビットラインおよび比較器に接続され、前記抵抗Rsの他端は接地され、前記第jの比較器回路の電圧閾値はVr*gon*Rs*(2j+1)/2であり、Vrはブール値1に対応する電圧値を示し、gonはRonの逆数を示す、請求項８または９に記載の方法。
【国際調査報告】
2019502225.tif 000066
2019502225.tif 000067
2019502225.tif 000068
2019502225.tif 000069
2019502225.tif 000070
2019502225.tif 000071