説明

キャッシュメモリとそのモード切替方法

【課題】キャッシュメモリにおいて通常モード(1ビットを1メモリセルで構成)と高信頼性モード(1ビットを2メモリセルで構成)のモード切替を行う制御方法、キャッシュメモリへの高信頼性データの配置方法を提供する。
【解決手段】キャッシュアクセスのためのアドレスのIndexビットのMSBを無効(0固定もしくは1固定)にするためのセレクタ回路を備え、高信頼性モードへの切替のため、IndexビットのMSBを無効にし、Indexビットが参照するTagアレイの前半ラインのみ使用する。また、キャッシュアクセスのためのアドレスのIndexビットのMSBとTagビットのLSBを重複して使用して、Tagビットのビット長を1ビット拡張する。メモリセルアレイの偶数(奇数)ラインは偶数(奇数)ウェイに割り当てられ、偶数ラインと奇数ラインで、Indexビットのアドレスを相互に逆順となるように割り当てる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュメモリにおいて通常モードと高信頼性モードのモード切替を可能とする制御方法、キャッシュメモリへの高信頼性データの配置方法、並びに、1チップ上に複数のプロセッサコアを集積したチップマルチプロセッサ(CMP:Chip Multi Processor) におけるキャッシュメモリのメモリセルの割り当て方法に関する技術である。
【背景技術】
【0002】
近年のSRAM(Static Random Access Memory)等のメモリは、SoCに搭載されるCMOSプロセス技術が進展し、集積回路の加工寸法(スケーリングサイズ)が縮小され、より高いチップ密度と低いチップコストが実現され、メモリ容量が増大している。このようなスケーリングサイズの縮小は、SRAM等のメモリセルを構成するトランジスタのしきい値電圧のばらつきを拡大し、メモリセルにおける読み出しや書き込みのノイズマージンを低下させ、メモリセル動作を不安定性化し、ビット誤り率(BER;Bit Error Rate)を増大させている。
【0003】
また、近年のプロセッサ、特にモバイルPC等に使用されるプロセッサでは、入力待ちなどのプロセッサがアイドルになる状況において、プロセッサの電源電圧を下げ、アイドル時の消費電力を削減するという制御を行っている。この制御は、一般にパワーダウンモード制御と呼ばれている。このパワーダウンモード制御では、プロセッサコアに含まれるL1キャッシュのデータは、L2キャッシュに書き出しておき、プロセッサコアの電源電圧を非常に低い電圧(例えば、0.2〜0.3V程度)に落とす。L2キャッシュは全てのデータをメインメモリに書き出すと、パワーダウンモードへの移行時間や通常モードへの復帰時間が非常に大きくなってしまいサイクルオーバーヘッドとなることから、L2キャッシュは一部のデータ(ライトバックが必要なデータ)を書き出して、残りの必要なデータについてはデータを保持したままとしている。そのため、L2キャッシュにおいては、SRAMがデータを保持可能なぎりぎりの電圧(リテンション電圧)まで電源電圧を落としている。
特に、SRAMは、プロセッサの最低動作電圧を決定する支配的要因であり、SRAMの最低動作電圧を下げることによって、プロセッサの最低動作電圧を下げることが可能となる。
【0004】
上記状況に鑑みて、本発明者らは、アプリケーションやメモリ状況に応じてメモリセルのビット信頼性(QoB:Quality of Bit)を動的に変化させることができ、動作の安定性を確保して低消費電力化および高信頼性化を実現できるメモリを提供することを目的として、1ビットが1個のメモリセルで構成されるモードと、1ビットが2個のメモリセルを連結して構成されるモードとを動的に切り替えることができ、モードを切り替えることにより、1ビットの動作安定性の増大および読出し動作のセル電流の増大(読出し動作の高速化)を行い、またビットエラーの自己修復が行えるといった新規なメモリを既に提案している(特許文献1を参照)。
【0005】
かかる提案のメモリの一実施例は、図1に示すように、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通が制御し得る1本のワードラインとから構成されるメモリセルにおいて、隣接する2つのメモリセルのデータ保持ノード間に、1対のP型MOSトランジスタ(M20,M21)と、該P型MOSトランジスタが導通するように制御し得る1本のモード制御ラインを追加した構成とされる。
【0006】
また、図2は、隣接する2つのメモリセルのデータ保持ノード間に、1対のN型MOSトランジスタ(M20,M21)と、該N型MOSトランジスタが導通するように制御し得る1本のモード制御ラインを追加した構成を示している。
【0007】
ここで、図1のメモリセルの回路動作を簡単に説明する。図1に示すメモリセル(MC01)は、電源電位VVDDAおよび接地電位VGNDAの間に直列に接続されるP型MOSトランジスタ(M00)およびN型MOSトランジスタ(M02)と、電源電位VVDDAおよび接地電位VGNDAの間に直列に接続されるP型MOSトランジスタ(M01)およびN型MOSトランジスタ(M03)とからなるラッチ回路を構成している。メモリセル(MC01)自体は、一般的な6トランジスタの構成のメモリセルである。
【0008】
メモリセル(MC10)も同様に、電源電位VVDDBおよび接地電位VGNDBの間に直列に接続されるP型MOSトランジスタ(M10)およびN型MOSトランジスタ(M12)と、電源電位VVDDBおよび接地電位VGNDBの間に直列に接続されるP型MOSトランジスタ(M11)およびN型MOSトランジスタ(M13)とからなるラッチ回路を構成している。メモリセル(MC10)自体も、一般的な6トランジスタの構成のメモリセルである。
【0009】
メモリセル(MC01)では、P型MOSトランジスタ(M00)およびN型MOSトランジスタ(M02)のゲート端子は、共にP型MOSトランジスタ(M01)およびN型MOSトランジスタ(M03)のノード(N01)に接続されている。また、P型MOSトランジスタ(M01)およびN型MOSトランジスタ(M03)のゲート端子は、共にP型MOSトランジスタ(M00)およびN型MOSトランジスタ(M02)のノード(N00)に接続されている。このようにM00〜M03のトランジスタはクロスカップル接続されているため、P型MOSトランジスタ(M00,M01)は負荷トランジスタとして動作し、N型MOSトランジスタ(M02,M03)は駆動トランジスタとして動作する。メモリセル(MC10)も同様である。
【0010】
またメモリセル(MC01)は、相補なビットライン(BL,/BL)と、ノード(N00,N01)との間にそれぞれ接続されたN型MOSトランジスタ(M04、M05)のスイッチ部を備える。N型MOSトランジスタ(M04,M05)のゲート端子は、共に共通のワードライン(WLA)に接続されており、N型MOSトランジスタ(M04,M05)のゲート電位はワードライン(WLA)により制御される。すわなち、メモリセル(MC01)においては、P型MOSトランジスタ(M00,M01)を負荷トランジスタとし、N型MOSトランジスタ(M02,M03)を駆動トランジスタし、N型MOSトランジスタ(M04,M05)をスイッチ部として動作するのである。
【0011】
また、メモリセル(MC10)も、相補なビットライン(BL,/BL)と、ノード(N10,N11)との間にそれぞれ接続されたN型MOSトランジスタ(M14、M15)のスイッチ部を備える。N型MOSトランジスタ(M14,M15)のゲート端子は、共に共通のワードライン(WLA)に接続されており、N型MOSトランジスタ(M14,M15)のゲート電位はワードライン(WLA)により制御される。
【0012】
そして、メモリセル(MC01,MC10)のデータ保持ノード間(N00とN10の間、N01とN11の間)に、モード制御スイッチ部となる1対のP型MOSトランジスタ(M20、M21)が設けられ、このP型MOSトランジスタ(M20、M21)の導通を制御する1本のモード制御ライン(/CTRL)が設けられている。
【0013】
以上のような回路構成のメモリセルでは、1ビットのデータをメモリセル(MC01)に記憶する場合と、1ビットのデータをメモリセル(MC01)とメモリセル(MC10)の2つのメモリセルに記憶する場合とを、モード制御ライン(/CTRL)を用いて、使い分けることが可能である。上記回路構成のメモリセルは、1ビットが1個のメモリセルで構成されるモードと、1ビットが2個のメモリセルを連結して構成されるモードの2つの状態を有し、アプリケーションやメモリ状況に応じてメモリセルのビット信頼性を動的に変化させることができ、動作の安定性を確保して低消費電力化および高信頼性化を実現する。
【0014】
この1ビットが1個のメモリセルで構成されるモードと、1ビットが2個のメモリセルを連結して構成されるモードの切り替えは、メモリセルブロック毎に動的に変化させることが可能である。
【0015】
上述したメモリ、すなわち、1ビットが1個のメモリセルで構成されるモード(通常モード)と、1ビットが2個のメモリセルを連結して構成されるモード(高信頼モード)の2つの状態を有し、アプリケーションやメモリ状況に応じてメモリセルのビット信頼性を動的に切り替えることができ、動作の安定性を確保して低消費電力化および高信頼性化を実現できるメモリを、本明細書では、QoB(Quality of Bit)メモリと称することにする。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】PCT/JP2009/50086
【発明の概要】
【発明が解決しようとする課題】
【0017】
μプロセッサにおけるキャッシュメモリに上述のQoBメモリを適用するにあたり、1ビットが1個のメモリセルで構成されるモード(通常モード)と1ビットが2個のメモリセルを連結して構成されるモード(高信頼性モード)の間のモード切替によるメモリ容量の変動に対応する機構、すなわち、QoBメモリを実際に使用するためのソリューションが必要になる。
また、キャッシュメモリにおいては、データのマッピングがハードウェアによって自動的に行われる。このため、アプリケーションにおいて高信頼性が要求されるデータを高信頼性メモリブロック(高信頼性モードのQoBメモリブロック)に配置することができないといった問題がある。
【0018】
上記状況に鑑みて、本発明は、 QoBメモリにおける通常モードと高信頼性モード間のモード切替によるメモリ容量の変動に対応可能で、また、高信頼性データを高信頼性メモリブロックに配置可能なキャッシュメモリを実現できるものである。
すなわち、本発明は、キャッシュメモリにおいて通常モードと高信頼性モードのモード切替を可能とする制御方法、キャッシュメモリへの高信頼性データの配置方法、並びに、マルチコアプロセッサにおけるキャッシュメモリのメモリセルの割り当て方法を提供することを目的とする。
【課題を解決するための手段】
【0019】
上記目的を達成するため、本発明のキャッシュメモリは、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する1本のワードラインと、から構成される1ビットのメモリセルがワードライン方向に連結され、ビットライン方向に隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えるキャッシュメモリにおいて、
キャッシュアクセスのためのアドレスのIndexビットのMSB(Most Significant Bit)を無効(0固定若しくは1固定)にするためのセレクタ回路を備え、1ビットが2個のメモリセルを連結して構成されるモード(高信頼性モード)に切り替えるために、IndexビットのMSBを無効にし、Indexビットが参照するTagアレイの前半ラインのみ若しくは後半ラインのみ使用する、構成とされる。
【0020】
IndexビットのMSBを0に固定(0を無効の意味とする)にすることによって、Indexの数が半分になる。これにより、Indexビットが参照するTagアレイにおいては、アレイの前半ラインのみ使用できることになる。したがって、Tagアレイの後半ラインは使用不可の状態となり、Tagアレイの後半ラインに対応するデータアレイ後半のキャッシュラインは無効となる。
また、IndexビットのMSBを1に固定(1を無効の意味とする)にすることによって、Indexの数が半分になる。これにより、Indexビットが参照するTagアレイにおいては、アレイの後半ラインのみ使用できることになる。したがって、Tagアレイの前半ラインは使用不可の状態となり、Tagアレイの前半ラインに対応するデータアレイ前半のキャッシュラインは無効となる。
上述したように、QoBメモリでは、1ビットが1個のメモリセルで構成されるモード(通常モード)と1ビットが2個のメモリセルを連結して構成されるモード(高信頼性モード)をアプリケーションやメモリ状況に応じて動的に切り替える。1ビットが2個のメモリセルを連結して構成されるモード(高信頼性モード)を、Indexビットが参照するTagアレイの前半ラインと後半ラインのペア、すなわち、データアレイの前半のキャッシュラインと後半のキャッシュラインのペアのメモリセルを用いて実現するのである。
QoBメモリで構成されるキャッシュメモリにおいて、キャッシュアクセスのためのアドレスのIndexビットのMSBを無効(0固定もしくは1固定)にするためのセレクタ回路を備えることにより、上に述べた如く、通常モードと高信頼性モードのモード切替を可能とする制御が行えるのである。
【0021】
また、本発明のキャッシュメモリは、好ましくは、キャッシュアクセスのためのアドレスのIndexビットのMSBとTagビットのLSB(Least
Significant Bit)を重複して使用して、Tagビットのビット長を1ビット拡張した構成とされる。
【0022】
かかる構成によれば、IndexビットのMSBを無効にした場合においても、キャッシュラインの一意性を確保することが可能となる。すなわち、IndexビットのMSBを無効(0固定もしくは1固定)にした場合、上述したように、Tagアレイの前半ラインもしくは後半ラインは無効となる。例えば、Tagアレイの後半ラインが無効とされた場合において、Tagビットが一致するものがTagアレイの後半ラインにあった場合、Tagの問い合わせに対して、キャッシュヒットとならないようにする必要がある。そのため、IndexビットのMSBとTagビットのLSBを重複して使用して、Tagビットのビット長を1ビット拡張し、TagビットのLSBが0か1かで、通常モードにおいてTagアレイの前半部分に格納されているラインのキャッシュヒットか、通常モードにおいてTagアレイの後半部分に格納されているラインのキャッシュヒットかを判別することにしたものである。
【0023】
また、本発明のキャッシュメモリは、好ましくは、セレクタ回路を用いて、IndexビットのMSBを無効にした際に、無効にしたIndexビットのMSBを、アドレスのTagビットのLSBとして使用して、Tagビットのビット長を1ビット拡張した構成とされる。
【0024】
かかる構成によれば、IndexビットのMSBを無効にした場合においても、キャッシュラインの一意性を確保することが可能となる。すなわち、IndexビットのMSBを無効にした場合、Tagアレイの前半ラインもしくは後半ラインは無効となる。例えば、Tagアレイの後半ラインが無効とされた場合において、Tagビットが一致するものがTagアレイの後半ラインにあった場合、Tagの問い合わせに対して、キャッシュヒットとならないようにする必要がある。そのため、IndexビットのMSBとTagビットのLSBを重複して使用して、Tagビットのビット長を1ビット拡張し、TagビットのLSBが0か1かで、通常モードにおいてTagアレイの前半部分に格納されているラインのキャッシュヒットか、通常モードにおいてTagアレイの後半部分に格納されているラインのキャッシュヒットかを判別することにしたものである。
【0025】
また、本発明のキャッシュメモリは、具体的には、Indexビットのアドレスの割り当てにおいて、メモリセルアレイの偶数ラインは偶数ウェイに、奇数ラインは奇数ウェイに割り当てられ、又は、メモリセルアレイの偶数ラインは奇数ウェイに、奇数ラインは偶数ウェイに割り当てられ、偶数ラインと奇数ラインで、Indexビットのアドレスが逆順(一方が昇順、他方が降順)となるように割り当てる構成とされる。
【0026】
かかる構成によれば、QoBメモリの高信頼性モードのメモリセルペアを、キャッシュメモリのメモリセルアレイの偶数ウェイの偶数ラインと奇数ウェイの奇数ラインのペア、又は、キャッシュメモリのメモリセルアレイの奇数ウェイの奇数ラインと偶数ウェイの偶数ラインのペアで構成可能となる。
IndexビットのMSBを無効(0固定もしくは1固定)にすることによって、Tagアレイの前半ラインのみ若しくは後半ラインのみ有効となるため、隣接するウェイ同士のIndexビットのアドレスの割り当てが逆順(一方が昇順、他方が降順)になるように予め割り当てるのである。
これにより、QoBメモリにおける通常モード(1ビットを1メモリセルで構成)から高信頼性モード(1ビットを2メモリセルで構成)への切り替えを実現するためのハードウェアの変更部分を少なくできる。具体的なハードウェアの変更部分は、Indexビットのアドレスの割り当てを予め逆順にする構成への変更と、IndexビットのMSBを無効(0固定もしくは1固定)にするためのセレクタ回路の追加となる。
【0027】
また、本発明の他の観点のキャッシュメモリは、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する1本のワードラインと、から構成される1ビットのメモリセルがワードライン方向に連結され、ビットライン方向に隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えるキャッシュメモリにおいて、
メモリセルアレイの偶数ラインは偶数ウェイに、奇数ラインは奇数ウェイに割り当てられ、又は、メモリセルアレイの偶数ラインは奇数ウェイに、奇数ラインは偶数ウェイに割り当てられ、偶数ウェイもしくは奇数ウェイを無効にするためのセレクタ回路、を備えた構成とされる。
【0028】
かかる構成によれば、QoBメモリにおいて、高信頼性モード(1ビットを2メモリセル)を偶数ウェイと奇数ウェイをペア構造で実現できる。すなわち、偶数ラインは偶数ウェイに奇数ラインは奇数ウェイに割り当て、又は、メモリセルアレイの偶数ラインは奇数ウェイに奇数ラインは偶数ウェイに割り当てることにより、偶数ウェイと奇数ウェイのペア構造がそのままQoBメモリにおける高信頼性モード(1ビットを2メモリセル)と対応することになる。通常モード(1ビットを1メモリセル)から高信頼性モード(1ビットを2メモリセル)に切り替える際は、偶数(奇数)ウェイの隣接する奇数(偶数)ウェイを無効にすることで、高信頼性モード(1ビットを2メモリセル)のメモリセル構造を適用できることになる。
【0029】
次に、本発明のキャッシュメモリのモード切替方法は、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する1本のワードラインと、から構成される1ビットのメモリセルがワードライン方向に連結され、ビットライン方向に隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えるキャッシュメモリにおいて、1ビットが1個のメモリセルで構成されるモード(通常モード)と1ビットが2個のメモリセルを連結して構成されるモード(高信頼性モード)を切り替えるモード切替方法であって、
キャッシュアクセスのためのアドレスのIndexビットのMSBを無効にするステップを備え、高信頼性モードに切り替えるために、IndexビットのMSBを無効にし、Indexビットが参照するTagアレイの前半ラインのみ使用する、構成とされる。
【0030】
IndexビットのMSBを無効(0固定)にすることによって、Indexの数が半分になることにより、Indexビットが参照するTagアレイにおいて、アレイの前半ラインのみ使用できることになることから、Tagアレイの後半ラインは使用不可の状態となり、Tagアレイの後半ラインに対応するデータアレイ後半のキャッシュラインは無効となる。これにより、QoBメモリにおける高信頼性モード(1ビットが2メモリセル)を、Indexビットが参照するTagアレイの前半ラインと後半ラインのペア、すなわち、データアレイの前半のキャッシュラインと後半のキャッシュラインのペアのメモリセルを用いて実現する。すなわち、QoBメモリで構成されるキャッシュメモリにおいて、キャッシュアクセスのためのアドレスのIndexビットのMSBを無効にするステップにより、QoBメモリにおける通常モード(1ビットを1メモリセル)と高信頼性モード(1ビットを2メモリセル)のモード切替を可能とする制御が行えるのである。
【0031】
また、本発明のキャッシュメモリのモード切替方法は、好ましくは、キャッシュアクセスのためのアドレスのIndexビットのMSBとTagビットのLSBを重複して使用して、Tagビットのビット長を1ビット拡張させる。
これにより、IndexビットのMSBを無効にした場合においても、キャッシュラインの一意性を確保することができる。
【0032】
また、本発明のキャッシュメモリのモード切替方法は、好ましくは、IndexビットのMSBを無効にした際に、無効にしたIndexビットのMSBを、アドレスのTagビットのLSBとして使用して、Tagビットのビット長を1ビット拡張させる。
これにより、IndexビットのMSBを無効にした場合においても、キャッシュラインの一意性を確保することができる。
【0033】
また、本発明のキャッシュメモリのモード切替方法は、具体的には、メモリセルアレイの偶数ラインは偶数ウェイに、奇数ラインは奇数ウェイに割り当てられ、又は、メモリセルアレイの偶数ラインは奇数ウェイに、奇数ラインは偶数ウェイに割り当てるステップと、偶数ラインと奇数ラインで、Indexビットのアドレスが逆順(一方が昇順、他方が降順)となるように割り当てるステップと、を備える。
【0034】
QoBメモリの高信頼性モードのメモリセルペアを、キャッシュメモリのメモリセルアレイの偶数ウェイの偶数ラインと奇数ウェイの奇数ラインのペア、又は、キャッシュメモリのメモリセルアレイの奇数ウェイの奇数ラインと偶数ウェイの偶数ラインのペアで構成し、隣接するウェイ同士のIndexビットのアドレスが逆順(一方が昇順、他方が降順)となるように割り当てることにより、QoBメモリにおける通常モード(1ビットを1メモリセルで構成)から高信頼性モード(1ビットを2メモリセルで構成)への切り替えを実現する。従来のキャッシュメモリと比較して、Indexビットのアドレスが逆順となるように割り当てるステップと、IndexビットのMSBを無効(0固定もしくは1固定)にするステップのみであり、変更部分を少なくできる。
【0035】
また、本発明のキャッシュメモリの他の観点のモード切替方法は、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する1本のワードラインと、から構成される1ビットのメモリセルがワードライン方向に連結され、ビットライン方向に隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えるキャッシュメモリにおいて、1ビットが1個のメモリセルで構成されるモード(通常モード)と1ビットが2個のメモリセルを連結して構成されるモード(高信頼性モード)を切り替えるモード切替方法であって、
メモリセルアレイの偶数ラインは偶数ウェイに、奇数ラインは奇数ウェイに割り当てられ、又は、メモリセルアレイの偶数ラインは奇数ウェイに、奇数ラインは偶数ウェイに割り当てるステップと、偶数ウェイもしくは奇数ウェイを無効にするステップを備えた構成とされる。
【0036】
かかる構成によれば、QoBメモリにおいて、高信頼性モード(1ビットを2メモリセル)を偶数ウェイと奇数ウェイをペア構造で実現できる。すなわち、偶数ラインは偶数ウェイに奇数ラインは奇数ウェイに割り当て、又は、メモリセルアレイの偶数ラインは奇数ウェイに奇数ラインは偶数ウェイに割り当てることにより、偶数ウェイと奇数ウェイのペア構造がそのままQoBメモリにおける高信頼性モード(1ビットを2メモリセル)と対応することになる。通常モード(1ビットを1メモリセル)から高信頼性モード(1ビットを2メモリセル)に切り替える際は、偶数(奇数)ウェイの隣接する奇数(偶数)ウェイを無効にすることで、高信頼性モード(1ビットを2メモリセル)のメモリセル構造を適用できることになる。
【0037】
また、上述した本発明のキャッシュメモリのモード切替方法において、高信頼性モードに切り替えた高信頼メモリブロック(高信頼ウェイ)に、アプリケーションにおいて高信頼性が要求される高信頼性データをフェッチした場合に、高信頼ウェイを上書きされないようロックし、データ更新の際にはロックを解除し、書込みを行ってから再びロックすることが好ましい。
【0038】
これにより、QoBメモリで構成されるキャッシュメモリにおいて、高信頼性モード(1ビットが2メモリセル)となった高信頼メモリブロック(高信頼ウェイ)に、高信頼性が要求されるデータを配置することができることになる。具体的に方法としては、高信頼ウェイに、高信頼性が要求されるデータをプリフェッチした後、そのデータが上書きされることがないように当該高信頼ウェイをロックする。そして、データの更新の必要がある場合は、当該高信頼ウェイのロックを解除し、書込みを行ってから、当該高信頼ウェイを再びロックする。
【発明の効果】
【0039】
本発明のキャッシュメモリやそのモード切替方法によれば、QoBメモリにおける通常モード(1ビットを1メモリセル)と高信頼性モード(1ビットを2メモリセル)間のモード切替によるメモリ容量の変動に対応でき、また、高信頼性データを高信頼性メモリブロックに配置できるといった効果を有する。
【0040】
QoBメモリにおける通常モードから高信頼性モードへモード切替を行うことにより、従来と比較してメモリのリテンション電圧を下げることが可能で、その結果、上述したパワーダウンモード制御において、L2キャッシュのリテンション電圧を下げることが可能となり、プロセッサの待機電力を大きく削減することが可能となる。
【0041】
また、QoBメモリにおける通常モードから高信頼性モードへモード切替を行うことにより、プロセッサのキャッシュメモリの最低動作電圧を下げることが可能で、その結果、プロセッサにおけるDVFS(動的電源電圧・周波数制御)を従来と比較してより低電圧化・低消費電力化で行うことが可能となる。このことは、モバイルPC等の電源容量に限りがある環境において、残りの電源容量が非常に少なくなった際に、QoBメモリにおける通常モードから高信頼性モードへモード切替を行うことにより、非常に低電源電圧で動作させて、従来と比較してプロセッサの動作時間を大きく延ばし、プロセッサの動作を長時間維持することが可能となる。
【図面の簡単な説明】
【0042】
【図1】メモリセルのビット信頼性QoBを動的に変化させ得る提案中の半導体メモリのメモリセルの回路構成図(モード制御スイッチ部がP型MOSトランジスタの場合)
【図2】メモリセルのビット信頼性QoBを動的に変化させ得る提案中の半導体メモリのメモリセルの回路構成図(モード制御スイッチ部がN型MOSトランジスタの場合)
【図3】QoBメモリを適用したL1キャッシュの構成図
【図4】2個のプロセッサコア(Core0,Core1)間のキャッシュメモリ(L1キャッシュ)において、QoBメモリを高信頼性モード(1ビットを2メモリセル)で使用する態様を示す図。
【図5】QoBメモリを適用したL2キャッシュの構成図
【図6】従来のキャッシュアクセスの動作説明図
【図7】1KBの4Wayのキャッシュラインサイズが32byteのアドレスを例示する図
【図8】QoBメモリを用いたキャッシュメモリのアドレス指定における通常モード時の具体例を示す図
【図9】QoBメモリを用いたキャッシュメモリのアドレス指定における高信頼モード時の具定例を示す図
【図10】TagBの問い合わせに対して、キャッシュラインAが出力され、エラーとなる場合の説明図
【図11】Indexビットのアドレス割り当てとアドレス空間の変更方法の説明図
【発明を実施するための最良の形態】
【0043】
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
【0044】
図3は、QoBメモリを適用したL1キャッシュの構成を示している。ここで、L1キャッシュは、2個のプロセッサコア(Core0,Core1)の間に存在するキャッシュメモリである。QoBメモリを適用したL1キャッシュでは、プロセッサコア(Core0)には、メモリセル(MC)アレイの奇数ラインを割り当てる。また、プロセッサコア(Core1)には、メモリセル(MC)アレイの偶数ラインを割り当てる。メモリセル(MC)アレイは、1ビットのメモリセル(MC)がワードライン方向に連結されたものである。
点線で囲まれ、斜めのハッチングで示したメモリセル(MC)ペア回路は、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する1本のワードラインと、から構成される1ビットのメモリセルのペアに、ビットライン方向に上下に隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御する1本のモード制御ラインと、を更に加えた構成となっている。
【0045】
図3の場合では、4行×4列の計16個のMCが示されており、上下に隣接するメモリセルは、それぞれ異なるプロセッサコア(Core0,Core1)に接続されている。それぞれのメモリセル(MC)の位置を(m,n)で示すことにする(m:0〜3,n:0〜3)。例えば、MC(0,0)は1行目の1列目、すなわち、図3において左側の上に位置するメモリセルとなる。
図3では、1行目と2行目の上下に隣接するメモリセル(MC)のデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御する1本のモード制御ラインが加えられている。また、3行目と4行目の上下に隣接するメモリセル(MC)のデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御する1本のモード制御ラインが加えられている。例えば、上下に隣接するMC(0,0)とMC(1,0),MC(2,3)とMC(3,3)のデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御する1本のモード制御ラインが加えられている。
【0046】
また、一方のプロセッサのみで処理を行う場合は、使用していないプロセッサ側のキャッシュにデータをコピーし、メモリセル(MC)ペア回路を1ビットのメモリセルとして使用することで、アプリケーションやメモリ状況に応じてメモリセルのビット信頼性を高くでき、動作の安定性を確保して低消費電力化および高信頼性化の動作が可能となる。
【0047】
次に、図4は、2個のプロセッサコア(Core0,Core1)間のキャッシュメモリ(L1キャッシュ)において、QoBメモリを高信頼性モード(1ビットを2メモリセル)で使用する態様を2通り示している。
図4(1)に示すL1キャッシュは、QoBメモリのメモリセルアレイの奇数ラインを一方のプロセッサコア(Core0)に、偶数ラインを他方のプロセッサコア(Core1)に割り当てて、隣のコアに割り当てられたラインを利用して、高信頼性モードのメモリセル構造(14T
Memory Cell Pair)を適用している。
また、図4(2)に示すL1キャッシュは、QoBメモリのメモリセルアレイの奇数ラインと偶数ラインの隣接するラインペアを利用して、隣のプロセッサコアを利用することなく、高信頼性モードのメモリセル構造(14T
Memory Cell Pair)を適用している。
【0048】
次に、図5は、QoBメモリを適用したL2キャッシュの構成を示している。QoBメモリを適用したL2キャッシュにおいては、偶数ウェイ(Way0,Way2等)と奇数ウェイ(Way1,Way3等)をペアで取り扱い、メモリセルアレイの偶数ラインを偶数ウェイに、奇数ラインを奇数ウェイに割り当てている。偶数ウェイと奇数ウェイのペア構造を用いて、QoBメモリの高信頼性モード(1ビットを2メモリセル)のメモリセルペア構造を実現する。
【0049】
以下では、本発明のキャッシュメモリの通常モードと高信頼性モードの切替方法について詳述する。
まず、従来のキャッシュアクセスの動作について図6を用いて説明する。ウェイ分割されたL2キャッシュでは、キャッシュアクセスが発生すると、アクセスされたアドレスのIndexビットをデコードすることにより、該当するキャッシュ内のセットを決定している。キャッシュ内のセットを決定した後、該当セットのTagおよびデータメモリの全てのウェイを並列にアクセスして、それぞれのデータを読み出している。そして、読み出されたTagとアクセスされたアドレスのTagビット部分を比較し、一致するものがあればキャッシュヒットとなる。キャッシュヒットすれば、該当するウェイのデータが選択されることになる。
【0050】
上述した従来のキャッシュアクセスでは、アドレス指定のやり方は、TagビットとIndexビットとOffsetビットから構成されるアドレスを用いている。このIndexビットが、Tagアレイ(Tag)とデータアレイ(Way0・・・)のラインを決定している。上述したようにアドレス中のTagビットと一致するTagがTagアレイ中に存在すればキャッシュヒットとなり、一致したTagが存在するIndexビットに該当するラインのデータが読み出されることになる。
【0051】
例えば、1KBの4Wayのキャッシュラインサイズが32byteのアドレスの例を図7に示す。従来のアドレス指定は、32ビットで構成されており、例えば、Tagビットが24ビット、Indexビットが3ビット、Offsetビットが5ビットというように割り当てられている。
本発明のQoBを適用したキャッシュメモリの場合は、通常モード時は従来のアドレス指定を用い、高信頼性モード時は図7の本発明のアドレス指定に示すように、従来のアドレス指定と異なり、Tagビットが25ビット、Indexビットが2ビット、Offsetビットが5ビットというように割り当てる。
すなわち、高信頼性モードに切り替えるために、IndexビットのMSBを無効(0固定もしくは1固定)にし、Indexビットが参照するTagアレイの前半ラインのみ使用する。通常モードと高信頼性モードでは、キャッシュアクセスのためのアドレスのIndexビットのMSBとTagビットのLSBを重複して使用し、Tagビット長は従来と比べて1ビット拡張される。
【0052】
ここで、具体例を用いて説明する。図8、図9は、それぞれQoBメモリを用いたキャッシュメモリのアドレス指定における通常モード時の具体例と高信頼モード時の具定例を示している。
図8に示すように、通常モード時は、Indexビットは3ビットで構成され、アドレスAとアドレスBの如く、TagビットのLSB(IndexビットのMSB)が異なるキャッシュラインAとBは、図に示すようにTagアレイの前半領域(Index0〜3)と後半領域(Index4〜7)に別々に格納されることになる。
【0053】
また、図9に示すように、高信頼性モード時は、IndexビットのMSBは無効(0固定)とされ、Indexビットは2ビットで構成される。従って、Indexの数は半分となり、キャッシュラインの後半(Index4〜7)は無効となり、Tagアレイの前半領域(Index0〜3)のみ参照されることになる。
【0054】
仮に、Tagビットが従来方法のアドレス指定のような31−8ビットの24ビットのみの場合(25ビット目を含まない)、TagAとTagBが同一に扱われる事態が生じるため、Tagの問い合わせに対するキャッシュラインが不定となってしまうといった問題が生じる。例えば、図10に示すように、TagBの問い合わせに対して、キャッシュラインAが出力され、エラーとなる可能性がある。
【0055】
次に、Indexビットのアドレス割り当てとアドレス空間の変更方法について説明する。図11は、図4(1)から図4(2)の切替に関して、Indexビットのアドレス割り当てとアドレス空間の変更方法を説明する図である。
上述したように、図4(1)では、メモリセルアレイの奇数ラインを一方のプロセッサコア(Core0)に、偶数ラインを他方のプロセッサコア(Core1)に割り当て、隣のコアに割り当てられたラインを利用して、高信頼性モードのメモリセル構造(14T
Memory Cell Pair)を適用している。一方、図4(2)では、メモリセルアレイの奇数ラインと偶数ラインの隣接するラインペアを利用して、隣のプロセッサコアを利用することなく、高信頼性モードのメモリセル構造を適用している。
【0056】
先ず、図11(1)に示すようにIndexビットアドレスを割り当てる。メモリセルアレイの奇数ラインを一方のプロセッサコア(Core0)に、偶数ラインを他方のプロセッサコア(Core1)に割り当てる際に、Core0側とCore1側のIndexビットが逆順(反転)する形になるようにアドレスに割り当てる。具体的には、左側(Core0側)が昇順(0,1,2,・・・)となるようにIndexビットアドレスを割り当て、右側(Core1側)が降順(7,6,5,・・・)となるようにIndexビットアドレスを割り当てる。
【0057】
通常モード時(1ビットを1メモリセルで構成)の場合、各プロセッサコアはIndexビットアドレス(0〜7)の全てのメモリセルを利用できる状態となっている。
高信頼性モード時(1ビットを2メモリセルで構成)の場合、IndexビットのMSBを無効(0固定)にすることによって、各プロセッサコアはIndexビットの前半アドレス(0〜3)のメモリセルを利用できる状態に切り替わる。すなわち、図11(2)のようなメモリセルの構成の変更が行われる。
【0058】
これにより、QoBメモリにおける通常モードから高信頼性モードへの切り替えるためのハードウェアの変更部分は、Indexビットのアドレスが逆順に割り当てられる構成への変更と、IndexビットのMSBを無効(0固定もしくは1固定)にするためのセレクタ回路の追加となり、わずかの変更でモード切替を実現することが可能となる。
【0059】
キャッシュメモリを高信頼性モードに切り替えた後、高信頼メモリブロック(高信頼ウェイ)に、アプリケーションにおいて高信頼性が要求される高信頼性データをフェッチした場合に、高信頼ウェイを上書きされないようウェイ単位にロックし、データ更新の際にはウェイ単位にロックを解除し、書込みを行ってから再びロックする手順をとる。
かかる手順をとることにより、キャッシュメモリにおいて、高信頼領域に高信頼性が要求されるデータを配置することができる。
【産業上の利用可能性】
【0060】
本発明は、コンピュータのキャッシュメモリ等に使用されるSRAMに有用である。
【符号の説明】
【0061】
MC01,MC10:メモリセル
Core0,Core1:プロセッサコア
L1:L1キャッシュ
L2:L2キャッシュ

【特許請求の範囲】
【請求項1】
各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する1本のワードラインと、から構成される1ビットのメモリセルがワードライン方向に連結され、ビットライン方向に隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、
を備えるキャッシュメモリにおいて、
キャッシュアクセスのためのアドレスのIndexビットのMSBを無効(0固定若しくは1固定)にするためのセレクタ回路を備え、
1ビットが2個のメモリセルを連結して構成されるモード(高信頼性モード)に切り替えるために、IndexビットのMSBを無効にし、Indexビットが参照するTagアレイの前半ラインのみ若しくは後半ラインのみ使用する、ことを特徴とするキャッシュメモリ。
【請求項2】
キャッシュアクセスのためのアドレスのIndexビットのMSBとTagビットのLSBを重複して使用して、Tagビットのビット長を1ビット拡張させたことを特徴とする請求項1に記載のキャッシュメモリ。
【請求項3】
前記セレクタ回路を用いて、IndexビットのMSBを無効にした際に、
無効にしたIndexビットのMSBを、アドレスのTagビットのLSBとして使用して、Tagビットのビット長を1ビット拡張させたことを特徴とする請求項1に記載のキャッシュメモリ。
【請求項4】
Indexビットのアドレスの割り当てにおいて、
メモリセルアレイの偶数ラインは偶数ウェイに、奇数ラインは奇数ウェイに割り当てられ、又は、メモリセルアレイの偶数ラインは奇数ウェイに、奇数ラインは偶数ウェイに割り当てられ、
偶数ラインと奇数ラインにおいてIndexビットのアドレスが相互に逆順(一方が昇順、他方が降順)となるように割り当てられたことを特徴とする請求項1〜3のいずれかに記載のキャッシュメモリ。
【請求項5】
各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する1本のワードラインと、から構成される1ビットのメモリセルがワードライン方向に連結され、ビットライン方向に隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、
を備えるキャッシュメモリにおいて、
メモリセルアレイの偶数ラインは偶数ウェイに、奇数ラインは奇数ウェイに割り当てられ、又は、メモリセルアレイの偶数ラインは奇数ウェイに、奇数ラインは偶数ウェイに割り当てられ、
偶数ウェイもしくは奇数ウェイを無効にするためのセレクタ回路、
を備えたことを特徴とするキャッシュメモリ。
【請求項6】
各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する1本のワードラインと、から構成される1ビットのメモリセルがワードライン方向に連結され、ビットライン方向に隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、
を備えるキャッシュメモリにおいて、
1ビットが1個のメモリセルで構成されるモード(通常モード)と1ビットが2個のメモリセルを連結して構成されるモード(高信頼性モード)を切り替えるモード切替方法であって、
キャッシュアクセスのためのアドレスのIndexビットのMSBを無効(0固定若しくは1固定)にするステップを備え、
前記高信頼性モードに切り替えるために、IndexビットのMSBを無効にし、Indexビットが参照するTagアレイの前半ラインのみ若しくは後半ラインのみ使用する、ことを特徴とするキャッシュメモリのモード切替方法。
【請求項7】
キャッシュアクセスのためのアドレスのIndexビットのMSBとTagビットのLSBを重複して使用して、Tagビットのビット長を1ビット拡張させたことを特徴とする請求項6に記載のキャッシュメモリのモード切替方法。
【請求項8】
IndexビットのMSBを無効にした際に、
無効にしたIndexビットのMSBを、アドレスのTagビットのLSBとして使用して、Tagビットのビット長を1ビット拡張させたことを特徴とする請求項6に記載のキャッシュメモリのモード切替方法。
【請求項9】
メモリセルアレイの偶数ラインは偶数ウェイに、奇数ラインは奇数ウェイに割り当てられ、又は、メモリセルアレイの偶数ラインは奇数ウェイに、奇数ラインは偶数ウェイに割り当てるステップと、
偶数ラインと奇数ラインにおけるIndexビットのアドレスが相互に逆順(一方が昇順、他方が降順)となるように割り当てるステップと、
を備えたことを特徴とする請求項6に記載のキャッシュメモリのモード切替方法。
【請求項10】
各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する1本のワードラインと、から構成される1ビットのメモリセルがワードライン方向に連結され、ビットライン方向に隣接するメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、
を備えるキャッシュメモリにおいて、
1ビットが1個のメモリセルで構成されるモード(通常モード)と1ビットが2個のメモリセルを連結して構成されるモード(高信頼性モード)を切り替えるモード切替方法であって、
メモリセルアレイの偶数ラインは偶数ウェイに、奇数ラインは奇数ウェイに割り当てられ、又は、メモリセルアレイの偶数ラインは奇数ウェイに、奇数ラインは偶数ウェイに割り当てるステップと、
偶数ウェイもしくは奇数ウェイを無効にするステップを備えたことを特徴とするキャッシュメモリのモード切替方法。
【請求項11】
前記高信頼性モードに切り替えた高信頼メモリブロック(高信頼ウェイ)に、アプリケーションにおいて高信頼性が要求される高信頼性データをフェッチした場合に、前記高信頼ウェイを上書きされないようロックし、データ更新の際にはロックを解除し、書込みを行ってから再びロックすることを特徴とする請求項6又は10に記載のキャッシュメモリのモード切替方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−40010(P2011−40010A)
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願番号】特願2009−189603(P2009−189603)
【出願日】平成21年8月18日(2009.8.18)
【出願人】(504150450)国立大学法人神戸大学 (421)
【Fターム(参考)】