(57)【要約】【課題】ＳＲＡＭアレイのアクセス中にＳＲＡＭアレイによって消費される電力の量を削減するための機構を提供する。【解決手段】ＳＲＡＭアレイへ書き込み中の一の入力行の極性を決定するための論理手段と、ＳＲＡＭアレイの各行ごとに一の極性値を追加ＳＲＡＭセルに格納するための論理手段と、当該追加ＳＲＡＭセルに格納された極性値に基づいて決定されるように、一の行が「１」のデータ値よりも多い「０」のデータ値を保持している場合に、当該行内のＳＲＡＭセルの値を反転形式で読み出すための論理手段と、前記追加ＳＲＡＭセルに格納された極性値に基づいて決定されるように、前記行内のＳＲＡＭセルから読み出されるデータが真数データ値又は補数データ値のどちらを表すかを下流の論理手段に通知するための論理手段が設けられる。【選択図】図８
2008146812.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ・セルを有するメモリ・アレイからデータを読み出す方法であって、
前記メモリ・アレイから読み出すべきデータ値を有する一のメモリ・セル行の極性を識別するステップと、
前記識別された極性に基づいて、前記メモリ・セル行内のメモリ・セルから真数データ値又は補数データ値のどちらを出力すべきかを選択するステップと、
前記選択に基づいて、前記メモリ・アレイから読み出される前記データとして前記メモリ・セル行内のメモリ・セルから前記真数データ値又は前記補数データ値の何れか一方を出力するステップとを含む、方法。
【請求項２】
前記メモリ・セル行の前記極性は、前記メモリ・セル行内のメモリ・セルに格納された前記データ値の過半数が「１」のデータ値又は「０」のデータ値のどちらであるかを指示する、請求項１記載の方法。
【請求項３】
前記メモリ・セル行の前記極性が、前記メモリ・セル行内のメモリ・セルに格納された前記データ値の過半数が「１」のデータ値であることを指示する場合、前記メモリ・セル行内のメモリ・セルの前記真数データ値が、前記メモリ・アレイによる出力のために選択される、請求項２記載の方法。
【請求項４】
前記メモリ・セル行の前記極性が、前記メモリ・セル行内のメモリ・セルに格納された前記データ値の過半数が「０」のデータ値であることを指示する場合、前記メモリ・セル行内のメモリ・セルの前記補数データ値が、前記メモリ・アレイによる出力のために選択される、請求項２記載の方法。
【請求項５】
前記メモリ・セル行内のメモリ・セルに書き込むべきデータ値を受け取るステップと、
前記受け取られたデータ値に基づいて、前記メモリ・セル行の一の極性値を決定するステップと、
前記メモリ・セル行の前記極性を識別するのに使用されるように、前記メモリ・セル行と対応して前記決定された極性値を格納するステップとをさらに含む、請求項１記載の方法。
【請求項６】
前記メモリ・アレイはＳＲＡＭアレイである、請求項１記載の方法。
【請求項７】
前記メモリ・セル行内のメモリ・セルに書き込むべきデータ値を受け取るステップと、
前記受け取られたデータ値に基づいて、前記メモリ・セル行の一の極性値を識別するステップと、
前記識別された極性値に基づいて、前記メモリ・セル行内のメモリ・セルに対し前記受け取られたデータ値又はその補数データ値のどちらを書き込むべきかを決定するステップと、
前記決定の結果に基づいて、前記メモリ・セル行内のメモリ・セルに対し前記受け取られたデータ値又はその補数データ値の何れか一方を書き込むステップとをさらに含む、請求項１記載の方法。
【請求項８】
前記選択するステップは、前記識別された極性に基づいて、前記メモリ・セル行内のメモリ・セルによって出力される実データ値又はその補数データ値のどちらを出力すべきかを選択することを含み、
前記実データ値又はその補数データ値は、前記真数データ値又はその補数データ値のどちらが前記メモリ・セル行に書き込まれるかに基づいて、前記真数データ値と同じである、請求項７記載の方法。
【請求項９】
前記複数のメモリ・セルの各々は、６トランジスタ型ＳＲＡＭセル又は８トランジスタ型ＳＲＡＭセルである、請求項１記載の方法。
【請求項１０】
前記メモリ・アレイは集積回路チップの一部である、請求項１記載の方法。
【請求項１１】
メモリ・アレイであって、
少なくとも１つのメモリ・セル行を有するアレイを構成するように配設された複数のメモリ・セルと、
前記メモリ・アレイから読み出すべきデータ値を有する一のメモリ・セル行の極性を識別する論理手段と、
前記識別された極性に基づいて、前記メモリ・セル行内のメモリ・セルから真数データ値又は補数データ値のどちらを出力すべきかを選択する選択論理手段と、
前記選択に基づいて、前記メモリ・アレイから読み出される前記データとして前記メモリ・セル行内のメモリ・セルから前記真数データ値又は前記補数データ値の何れか一方を出力する出力論理手段とを備える、メモリ・アレイ。
【請求項１２】
前記メモリ・セル行の前記極性は、前記メモリ・セル行内のメモリ・セルに格納された前記データ値の過半数が「１」のデータ値又は「０」のデータ値のどちらであるかを指示する、請求項１１記載のメモリ・アレイ。
【請求項１３】
前記メモリ・セル行の前記極性が、前記メモリ・セル行内のメモリ・セルに格納された前記データ値の過半数が「１」のデータ値であることを指示する場合、前記選択論理手段は、前記メモリ・セル行内のメモリ・セルの前記真数データ値を、前記メモリ・アレイによる出力のために選択する、請求項１２記載のメモリ・アレイ。
【請求項１４】
前記メモリ・セル行の前記極性が、前記メモリ・セル行内のメモリ・セルに格納された前記データ値の過半数が「０」のデータ値であることを指示する場合、前記選択論理手段は、前記メモリ・セル行内のメモリ・セルの前記補数データ値を、前記メモリ・アレイによる出力のために選択する、請求項１２記載のメモリ・アレイ。
【請求項１５】
前記メモリ・セル行内のメモリ・セルに書き込むべきデータ値を受け取る論理手段と、
前記受け取られたデータ値に基づいて、前記メモリ・セル行の一の極性値を決定する極性決定論理手段と、
前記メモリ・セル行の前記極性を識別するのに使用されるように、前記メモリ・セル行と対応して前記決定された極性値を格納する論理手段とをさらに備える、請求項１１記載のメモリ・アレイ。
【請求項１６】
前記メモリ・アレイはＳＲＡＭアレイである、請求項１１記載のメモリ・アレイ。
【請求項１７】
前記メモリ・セル行内のメモリ・セルに書き込むべきデータ値を受け取る論理手段と、
前記受け取られたデータ値に基づいて、前記メモリ・セル行の一の極性値を検出する極性検出論理手段と、
前記検出された極性値に基づいて、前記メモリ・セル行内のメモリ・セルに対し前記受け取られたデータ値又はその補数データ値のどちらを書き込むべきかを決定する決定論理手段と、
前記決定の結果に基づいて、前記メモリ・セル行内のメモリ・セルに対し前記受け取られたデータ値又はその補数データ値の何れか一方を書き込む書き込み論理手段とをさらに備える、請求項１１記載のメモリ・アレイ。
【請求項１８】
前記選択論理手段は、前記識別された極性に基づいて、前記メモリ・セル行内のメモリ・セルによって出力される実データ値又はその補数データ値のどちらを出力すべきかを選択することを含み、
前記実データ値又はその補数データ値は、前記真数データ値又はその補数データ値のどちらが前記メモリ・セル行に書き込まれるかに基づいて、前記真数データ値と同じである、請求項１７記載のメモリ・アレイ。
【請求項１９】
前記複数のメモリ・セルの各々は、６トランジスタ型ＳＲＡＭセル又は８トランジスタ型ＳＲＡＭセルである、請求項１１記載のメモリ・アレイ。
【請求項２０】
データ処理装置であって、
プロセッサと、
前記プロセッサに結合されたメモリとを備え、
前記メモリが、請求項１１ないし請求項１９の何れか１項記載のメモリ・アレイから成る、データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ・アレイの消費電力を削減するための装置及び方法に係り、さらに詳細に説明すれば、過半数評価（majority evaluation）を通して、静的ランダム・アクセス・メモリ（ＳＲＡＭ）アレイの消費電力を削減するための装置及び方法に係る。
【背景技術】
【０００２】
ＳＲＡＭは、最近のデータ処理装置内で利用されている半導体メモリの１つの種類である。「静的」という用語は、ＳＲＡＭが電力を印加している限りその内容を保持する種類のメモリであって、周期的なリフレッシュを必要とする動的ＲＡＭ（ＤＲＡＭ）とは異なることを示す。しかし、ＳＲＡＭは、電力を連続的に印加している間だけデータを保持するから、これを読み取り専用メモリ（ＲＯＭ）及びフラッシュ・メモリと混同してはならない。「ランダム アクセス」という用語は、最後にアクセスされたメモリ位置に拘わらず、メモリ内の位置を対象とする書き込み又は読み出しを任意の順に行うことができることを意味する。
【０００３】
一般的なアーキテクチャでは、ＳＲＡＭセル内の各ビットは、交差結合された２つのインバータを形成する４つのトランジスタに格納される。このＳＲＡＭセルは、「０」及び「１」のデータ値を表すために使用される２つの安定状態を有する。追加の２つのアクセス・トランジスタは、読み出し及び書き込み動作中にメモリ・セルへのアクセスを制御する役目をする。一般に、１ビットを格納するのに、６つの電界効果トランジスタ（ＭＯＳＦＥＴ）が必要である。
【０００４】
図１は、公知の６トランジスタ（６Ｔ）型ＳＲＡＭセルを示す。ＳＲＡＭセル１００へのアクセスは、２つのアクセス・トランジスタ１２０及び１３０を制御するワード線（ＷＬ）１１０によって可能になる。アクセス・トランジスタ１２０及び１３０は、ＳＲＡＭセル１００がビット線ＢＬ  １４０及びＢＬ’１５０に接続されるべきか否かを制御する。ビット線ＢＬ  １４０及びＢＬ’１５０は、読み出し及び書き込み動作の両方に対するデータを転送するために使用される。また、ＳＲＡＭセル１００は、２つのインバータ１６０及び１７０を含み、その各々は２つのトランジスタ（図示せず）から成る。各インバータ１６０及び１７０の２つのトランジスタと、アクセス・トランジスタ１２０及び１３０とは、６Ｔ型ＳＲＡＭセル構成を形成する。一般に、これらのＳＲＡＭセル１００を複数の行及び複数の列に配設して構成されるＳＲＡＭアレイは、データ処理装置用のＳＲＡＭメモリを提供するために使用される。
【０００５】
ＳＲＡＭセル１００は、３つの可能な状態として、スタンバイ状態、読み出し状態及び書き込み状態を有する。スタンバイ状態では、ワード線１１０上の信号はアサートされない。その結果、アクセス・トランジスタ１２０及び１３０は、ＳＲＡＭセル１００をビット線ＢＬ  １４０及びＢＬ’１５０から分離する。交差結合された２つのインバータ１６０及び１７０は、それらがビット線ＢＬ  １４０及びＢＬ’１５０から分離される限り、それぞれの安定状態を相互に強化し続ける。
【０００６】
読み出し状態では、ビット線ＢＬ  １４０及びＢＬ’１５０は、高電圧状態に相当する論理「１」に再充電（プリチャージ）される。その後、ワード線１１０上の信号がアサートされて、アクセス・トランジスタ１２０及び１３０を両方ともイネーブルする。ここで、ＳＲＡＭセル１００が論理「１」の値をＱとして格納しているものと仮定すると、インバータ１６０及び１７０内の値、すなわちＱ及びＱ’は、ビット線ＢＬ  １４０をその再充電値に維持するとともに、ビット線ＢＬ’１５０を、アクセス・トランジスタ１３０及びインバータ１６０のＮＦＥＴを通して、低電圧状態に相当する論理「０」に放電させることによって、ビット線ＢＬ  １４０及びＢＬ’１５０に転送される。ビット線ＢＬ  １４０の側では、ビット線ＢＬ  １４０の電圧は、アクセス・トランジスタ１３０及びインバータ１７０のＰＦＥＴによって、ＶＤＤ（論理「１」＝高電圧状態）の方にプルされる。もし、ＳＲＡＭセル１００の内容が論理「０」（Ｑ＝０）であったならば、反対の状況が生じて、ビット線ＢＬ’１５０は論理「１」の方にプルされ、ビット線ＢＬ  １４０は論理「０」の方に放電されることになろう。
【０００７】
書き込みサイクルが開始するのは、書き込むべき値がビット線ＢＬ  １４０及びＢＬ’１５０に印加される場合である。もし、ＳＲＡＭセル１００に対し「０」の値を書き込むのであれば、ビット線ＢＬ’１５０を論理「１」にセットし且つビット線ＢＬ  １４０を論理「０」にセットすることによって、これらのビット線に「０」の値が印加される。ＳＲＡＭセル１００に対し「１」の値を書き込むには、ビット線ＢＬ  １４０及びＢＬ’１５０の値を反対にすればよい。その後、ワード線１１０上の信号がアサートされ、それに応じて、格納すべき値がＳＲＡＭセル１００にラッチ入力される。
【０００８】
この技術が良好に作用する理由は、ビット線入力ドライバがＳＲＡＭセル１００それ自体の比較的弱いトランジスタよりも遙かに強力になるように設計されていて、これらのドライバが交差結合されたインバータ１６０及び１７０の以前の状態を容易に無視することができる、という点にある。適正な動作を保証するためには、ＳＲＡＭセル１００内にあるトランジスタのサイズを注意深く定めることが必要である。
【０００９】
図２に示すように、他の公知のＳＲＡＭセル・アーキテクチャは、８つのトランジスタを使用する。この８トランジスタ（８Ｔ）型ＳＲＡＭセル・アーキテクチャでは、書き込み動作は、図１の６Ｔ型ＳＲＡＭセルと同じように行われる。しかし、このアーキテクチャでは、ビット線ＢＬ  ２４０及びＢＬ’２５０は、ＳＲＡＭセル２００からの値を読み出すためには使用されない。
【００１０】
すなわち、８Ｔ型ＳＲＡＭセル２００からの値を読み出すために、読み出しビット線ＲＢＬ  ２８０が設けられ、論理「１」に再充電される。その後、読み出しワード線２６０上の信号がアサートされ、これに応じて、目標とする行（ＳＲＡＭセル行）内の全てのＳＲＡＭセル２００のために読み出しポートｒｐ＜ｎ＞がイネーブルされる。ＳＲＡＭセル２００の内容に基づいて、読み出しビット線ＲＢＬ  ２８０は、再充電状態（論理「１」）に維持されるか、又は論理「０」に放電される。例えば、ＳＲＡＭセル２００の内容が「１」のデータ値であれば、読み出しビット線ＲＢＬ  ２８０は、再充電状態に維持される。一方、ＳＲＡＭセル２００の内容が「０」のデータ値であれば、読み出しビット線ＲＢＬ  ２８０は、論理「０」に放電される。ＳＲＡＭセル２００が読み出しビット線ＲＢＬ  ２８０を放電させることができる速度に依存して、読み出しビット線ＲＢＬ  ２８０は、ワード線２１０上の信号がアサートされた後で、しかも次の再充電パルスが読み出しビット線ＲＢＬ  ２８０をクリアする前に、目標とするＳＲＡＭセルの値を保持する。
【００１１】
読み出し動作中にビット線の充放電を行うことは、ＳＲＡＭアレイで大量の電力を消費する。従って、ＳＲＡＭアレイのアクセス中にＳＲＡＭアレイによって消費される電力量を削減することは有益であろう。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、ＳＲＡＭアレイのアクセス中にＳＲＡＭアレイによって消費される電力量を削減するための機構を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の機構は、放電及びその後の再充電を必要とするＳＲＡＭアレイの読み出しビット線（ＲＢＬ）の数を最少化することによって、ＳＲＡＭアレイの消費電力を削減する。この最小化を可能にする回路は、各ＳＲＡＭセル行（以下単に「行」又は「メモリ・セル行」とも称する）の多数決関数を実行し且つその結果的な情報を使用することにより、ＳＲＡＭアレイの読み出し動作中に放電を必要とする読み出しビット線（ＲＢＬ）の数を減少させる。
【００１４】
実施形態に従って、ＳＲＡＭアレイへ書き込み中の一の入力行の極性を決定するための論理手段と、ＳＲＡＭアレイの各行ごとに一の極性値を追加ＳＲＡＭセルに格納するための論理手段と、当該追加ＳＲＡＭセルに格納された極性値に基づいて決定されるように、一の行が「１」のデータ値よりも多い「０」のデータ値を保持している場合に、この行内のＳＲＡＭセルの値を反転形式で読み出すための論理手段と、前記追加ＳＲＡＭセルに格納された極性値に基づいて決定されるように、前記行内のＳＲＡＭセルから読み出されるデータが真数データ値又は補数データ値のどちらを表すかを下流の論理手段に通知するための論理手段が設けられる。
【００１５】
実施形態では、一の行内のＳＲＡＭセルに書き込まれるデータ値の過半数が「１」又は「０」のデータ値のどちらであるかを検出するための、極性検出器が設けられる。もし、データ値の過半数が「１」のデータ値であれば、極性検出器は、「１」の極性値を出力し且つこれを当該行に対応する追加ＳＲＡＭセルに格納する。一方、データ値の過半数が「０」のデータ値であれば、極性検出器は、「０」の極性値を出力し且つこれを当該行に対応する追加ＳＲＡＭセルに格納する。
【００１６】
また、各行に対応する追加ＳＲＡＭセルは、読み出し動作中、対応する行に入力信号を供給する。この追加ＳＲＡＭセルに格納された極性値に基づいて、対応する行は、真数データ値又はその補数データ値の何れか一方を出力する。真数データ値又は補数データ値のどちらを出力すべきかは、この極性によって決定される。この極性は、真数データ値又は補数データ値のどちらを出力すれば、電力消費がより低くなるかを指示する。例えば、この極性が、対応する行に格納されたデータ値の過半数が「０」のデータ値であることを指示する場合、補数データ値を出力すると、これと同数の読み出しビット線を放電させる必要がないので、消費電力が削減されるであろう。一方、この極性が、対応する行に格納されたデータ値の過半数が「１」のデータ値であることを指示する場合は、真数データ値を出力すると、これと同数の読み出しビット線を放電させる必要がないので、消費電力が削減されるであろう。
【００１７】
さらに、一の行内のＳＲＡＭセルによって補数データ値又は真数データ値のどちらが出力されるかを、これらのＳＲＡＭセルの下流にあるマルチプレクサに通知するための、論理手段が設けられる。この論理手段は、その行の決定された極性に基づいて、マルチプレクサに選択信号を供給する。マルチプレクサは、この選択信号に応じて、これらのＳＲＡＭセルによって出力される実データ値又はこれらのＳＲＡＭセルによって出力される実データ値の補数値（反転値）のどちらを出力すべきかを選択することができる。
【００１８】
「実」（actual）データ値は、事実上、一の行の決定された極性に基づいてその行内のＳＲＡＭセルに書き込むべきであった、真数データ値又はその補数データ値の何れか一方と同じである。すなわち、極性が「１」の値であると決定されるために、真数データ値がこれらのＳＲＡＭセルによって出力されるのであれば、「実」データ値は、これらのＳＲＡＭセルに格納された真数データ値である。一方、極性が「０」の値であると決定されるために、真数データ値の補数データ値がこれらのＳＲＡＭセルによって出力されるのであれば、「実」データ値は、これらのＳＲＡＭセルに格納された真数データ値の補数データ値である。
【００１９】
従って、本発明の機構によって出力される選択されたデータ値は、一の行の極性に依存して、その行内のＳＲＡＭセルに格納された真数データ値又はＳＲＡＭセルに格納された補数データ値の補数値（反転値）の何れか一方とすることができる。何れの場合も、ＳＲＡＭセルのデータ値として出力されるＳＲＡＭアレイ用のデータ値として、真数データ値が選択される。
【００２０】
実施形態では、各行に対応する追加ＳＲＡＭセルは、ＳＲＡＭアレイの各列に対応して設けられる極性検出器のマルチプレクサに対し、選択信号を供給する。これらのマルチプレクサは、各行内のＳＲＡＭセルに真数データ値又は補数データ値のどちらが格納されているかを決定する。極性検出器のマルチプレクサに送られる選択信号は、追加ＳＲＡＭセルに格納された極性値に基づいて決定される。
【００２１】
この選択信号は、一の行内のそれぞれのＳＲＡＭセルに格納すべき真数データ値又はその補数データ値の何れか一方を選択する。この実施形態では、もし、データ値の過半数が「０」のデータ値であれば、極性検出器は、この行内のＳＲＡＭセルに格納すべき真数データ値の補数値を選択するために、マルチプレクサに選択信号を送る。一方、データ値の過半数が「１」のデータ値であれば、極性検出器は、この行内のＳＲＡＭセルに格納すべき真数データ値を選択するために、マルチプレクサに選択信号を送る。
【００２２】
この実施形態によれば、ＳＲＡＭセル自体は、前述の実施形態のように、真数データ値又は補数データ値のどちらを出力すべきかを決定するための追加の論理手段を必要としない。それと反対に、ＳＲＡＭセルは、その内部にどんなデータ値が格納されていようとも、これをそのまま出力する。なぜなら、真数データ値又は補数データ値のどちらを使用すべきかという決定は、これらのＳＲＡＭセルにデータ値を書き込むときに、極性検出器によって行われたからである。
【００２３】
ＳＲＡＭセルによって出力される実データ値又はその補数データ値のどちらを出力すべきかを選択するために、マルチプレクサは、ＳＲＡＭアレイの出力側に設けられる。これらのマルチプレクサの動作は、前述の実施形態のそれに類似する。すなわち、一の行の極性が「１」であれば、その行内のＳＲＡＭセルによって出力される実データ値を、ＳＲＡＭアレイによる出力のために選択することができる。一方、その行の極性が「０」であれば、その行内のＳＲＡＭセルによって出力される実データ値の補数値を、ＳＲＡＭアレイによる出力のために選択することができる。
【００２４】
本発明の第１の側面に従って、複数のメモリ・セルを有するメモリ・アレイからデータを読み出す方法が提供される。この方法は、前記メモリ・アレイから読み出すべきデータ値を有する一のメモリ・セル行の極性を識別するステップと、前記識別された極性に基づいて、前記メモリ・セル行内のメモリ・セルから真数データ値又は補数データ値のどちらを出力すべきかを選択するステップと、前記選択に基づいて、前記メモリ・アレイから読み出される前記データとして前記メモリ・セル行内のメモリ・セルから前記真数データ値又は前記補数データ値の何れか一方を出力するステップとを含む。
【００２５】
本発明の第２の側面に従って、メモリ・アレイが提供される。このメモリ・アレイは、少なくとも１つのメモリ・セル行を有するアレイを構成するように配設された複数のメモリ・セルと、前記メモリ・アレイから読み出すべきデータ値を有する一のメモリ・セル行の極性を識別する論理手段と、前記識別された極性に基づいて、前記メモリ・セル行内のメモリ・セルから真数データ値又は補数データ値のどちらを出力すべきかを選択する選択論理手段と、前記選択に基づいて、前記メモリ・アレイから読み出される前記データとして前記メモリ・セル行内のメモリ・セルから前記真数データ値又は前記補数データ値の何れか一方を出力する出力論理手段とを備える。
【００２６】
本発明の第３の側面に従って、プロセッサと、前記プロセッサに結合されたメモリとを備える、データ処理装置が提供される。前記メモリは、本発明の前記第２の側面に従ったメモリ・アレイから成る。
【発明を実施するための最良の形態】
【００２７】
本発明は、過半数評価を通して、ＳＲＡＭアレイの消費電力を削減するための装置及び方法を提供する。ＳＲＡＭアレイは、それらが利用されるデータ処理装置に依存して、種々の用途を有する。例えば、ＳＲＡＭアレイは、データ処理装置内のプロセッサに関連するキャッシュ及びローカル・メモリ内で利用することができる。
【００２８】
図３は、プロセッサに関連するキャッシュ又はローカル・メモリ内でＳＲＡＭアレイを利用することができる、データ処理環境の１つの例を示す。
【００２９】
図３を参照すると、プロセッサ３００内に含まれるコントローラ３０２は、プロセッサ３００と授受される命令及びデータのフローを制御する。コントローラ３０２は、専用のＬ１キャッシュを含む命令ユニット３０４に制御信号を送る。命令ユニット３０４は、専用のＬ１キャッシュを含む実行ユニット３０６に命令を発行する。実行ユニット３０６は、命令を実行し、結果データを保持するか、又は結果データを例えばＬ２キャッシュ３０８に転送する。同様に、実行ユニット３０６は、必要に応じて、Ｌ２キャッシュ３０８からデータを検索する。命令ユニット３０４も、必要に応じて、Ｌ２キャッシュ３０８から命令を検索する。コントローラ３０２は、Ｌ２キャッシュ３０８からデータを検索するために、制御記憶装置に制御信号を送る。プロセッサ３００は、図示しない追加のコンポーネントを含むことができる。
【００３０】
プロセッサ３００は、ノース・ブリッジ兼メモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）３１０を介して、ローカル・メモリ３２０からデータ／命令を得ることができる。ローカル・メモリ３２０からのデータ／命令は、コントローラ３０２、命令ユニット３０４及び実行ユニット３０６による迅速で且つ効率的なアクセスのために、Ｌ２キャッシュ３０８にロードすることができる。
【００３１】
図３のハードウェアは、実装に依存して変わることがある。例えば、図３のハードウェアに加えて、又はそれに代えて、フラッシュ・メモリ、これと同等の不揮発性メモリ、光ディスク・ドライブ等の、他の内部ハードウェア又は周辺デバイスを使用することができる。
【００３２】
Ｌ１キャッシュ、Ｌ２キャッシュ３０８及び／又はローカル・メモリ３２０は、例えば、後述する実施形態に従ったＳＲＡＭアレイを使用して実装することができる。前述のように、ＳＲＡＭアレイのＳＲＡＭセルの充放電は、相当な量の電力消費を必要とする。実施形態は、ＳＲＡＭアレイのＳＲＡＭセルを対象とするデータ値の読み出し及び／又は書き込みに関連する再充電及び放電の量を最少化することにより、この電力消費を削減する。以下では、実施形態を８Ｔ型ＳＲＡＭセル・アーキテクチャに関して説明するが、実施形態はこのようなアーキテクチャに限定されないことが明らかである。すなわち、本発明の機構によって達成される利点は、他の種類のＳＲＡＭセル・アーキテクチャを使用して実施形態を実装することを通しても、同様に得ることができるからである。
【００３３】
図４〜図７に示すＳＲＡＭアレイを参照して、ＳＲＡＭアレイの電力消費を削減するために実施形態によって使用される技術の基本的な立脚点を説明する。図４〜図７は、ＳＲＡＭアレイのＳＲＡＭセルに格納されるデータ値の可能な全ての構成を示すものではないが、図示されているデータ値の構成は、実施形態に従って過半数評価を行う利点を例示するために選択されたものである。
【００３４】
図４〜図７において、各ボックスは単一のＳＲＡＭセルを表し、複数のかかるセルが複数の行及び複数の列に配設されてＳＲＡＭアレイを構成する。図４〜図７に示す例は、５×５  ＳＲＡＭアレイであるが、実際のＳＲＡＭアレイは、図４〜図７に示すものも遙かに多いＳＲＡＭセルを含む。さらに、図４〜図７及びＳＲＡＭアレイの構成を示す他の同様の図面では、高電圧状態への再充電及び低電圧状態への放電という実装を仮定している。しかし、実施形態は、かかる実装に限定されるものではない。すなわち、他の実施形態は、低電圧状態への再充電及び高電圧状態への放電という他の実装をも使用することができるからである。
【００３５】
図４は、各ＳＲＡＭセルが「０」のデータ値を格納する、５×５  ＳＲＡＭアレイの第１の構成を示す。この第１の構成では、ＳＲＡＭセルのデータ値を読み出す場合、全てのＳＲＡＭセルは、当該ＳＲＡＭセルに格納された「０」のデータ値を読み出すために、その読み出しビット線（ＲＢＬ）を放電させることを必要とする。かかるＳＲＡＭセルの放電及びその後の再充電を行うには、相当な量の電力消費を必要とする。従って、この電力消費の量を削減することは有益であろう。
【００３６】
図５は、最初の２列が「１」のデータ値を格納し且つ残部が「０」のデータ値を格納する、５×５  ＳＲＡＭアレイの第２の構成を示す。この第２の構成では、読み出し動作を行うために、５本の読み出しビット線（ＲＢＬ）のうち３本の読み出しビット線を放電させる必要がある。従って、この第２の構成には、依然として相当な量の電力消費が存在する。
【００３７】
図６は、全てのＳＲＡＭセルが「１」のデータ値を格納する、５×５  ＳＲＡＭアレイの第３の構成を示す。この第３の構成では、読み出し動作を行うために、どの読み出しビット線（ＲＢＬ）も放電させる必要はないし、その後に再充電を行う必要もないので、最少量の電力消費を必要とするに過ぎない。従って、ＳＲＡＭアレイの読み出し動作中に、できるだけこの第３の構成に接近させることが最も良いであろう。
【００３８】
図７は、最初の２列が「０」のデータ値を格納し且つ残部が「１」のデータ値を格納する、５×５  ＳＲＡＭアレイの第４の構成を示す。すなわち、図７の構成は、図５の構成を補数化（反転化）したものである。この第４の構成では、読み出し動作を行うために、５本の読み出しビット線（ＲＢＬ）のうち２本の読み出しビット線だけを放電させる必要がある。従って、この第４の構成は、一の行の読み出し動作を行うために、その行内の最初の２つのＳＲＡＭセルの読み出しビット線（ＲＢＬ）を放電させる必要があるので、図６の第３の構成よりも多い電力消費を必要とする。しかし、この第４の構成は、放電され且つその後に再充電されねばならない読み出しビット線（ＲＢＬ）の数が図５の第２の構成よりも少ないので、図５の第２の構成よりも電力消費が少なくなる。
【００３９】
図４〜図７から分かることは、読み出し動作のために必要とされる読み出しビット線（ＲＢＬ）の放電の数を最少化することができれば、かかる読み出し動作を行うための電力消費を最小化することができる、ということである。読み出しビット線（ＲＢＬ）の放電の数を最少化する１つの方法は、ＳＲＡＭアレイのＳＲＡＭセルから読み出される「０」のデータ値の数を最少化することである。例えば、本発明の機構に従った過半数評価／プログラミング・スキームを使用すると、図５の第２の構成を有するようにプログラムされたＳＲＡＭアレイは、それが恰も図７の第４の構成を有していたかのように読み出すことができる。このように、読み出しビット線（ＲＢＬ）の放電の数が最少化されると、ＳＲＡＭアレイの電力消費を最少化することができるようになる。
【００４０】
本発明の機構によれば、ＳＲＡＭアレイへ書き込み中の一の入力行の極性を決定するための論理手段と、ＳＲＡＭアレイの各行ごとに一の極性値を追加ＳＲＡＭセルに格納するための論理手段と、当該追加ＳＲＡＭセルに格納された極性値に基づいて決定されるように、一の行が「１」のデータ値よりも多い「０」のデータ値を保持している場合に、当該行内のＳＲＡＭセルの値を反転形式で読み出すための論理手段と、前記追加ＳＲＡＭセルに格納された極性値に基づいて決定されるように、前記行内のＳＲＡＭセルから読み出されるデータが真数データ値又は補数データ値のどちらを表すかを下流の論理手段に通知するための論理手段が設けられる。
【００４１】
図８は、実施形態に従ったＳＲＡＭアレイ５００を示す。図示のように、ＳＲＡＭアレイ５００は、極性検出器５１０と、複数の列５２２及び複数の行５２４を有するアレイとして配設された複数のＳＲＡＭセル５２０と、１組の極性セル５３０とを含み、ＳＲＡＭアレイ５００の各行ごとに１つの極性セル５３０が対応する。ｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞線を介してデータがＳＲＡＭアレイ５００に書き込まれる場合、かかる書き込みデータ線は、極性検出器５１０及びビット線ドライバ（図示せず）内にシンクを有する。ビット線ドライバは、ＳＲＡＭアレイ５００の各列５２２ごとに書き込みビット線ｗｂｌ  ５４０及びｗｂｌ’５５０に沿って伝播されるｗｂｌ＜０：ｎ＞及びｗｂｌ’＜０：ｎ＞の値を決定するものである。
【００４２】
極性検出器５１０は、ＳＲＡＭアレイ５００の一の行５２４に書き込むべきデータ値を受け取って、この行５２４のための１組のデータ値が「０」より多い「１」を含むか否かを決定する。もし、この行５２４に書き込むべきデータ内に「０」より多い「１」があれば、極性検出器５１０は、データ書き込み中のこの行５２４に対応する極性セル５３０に「１」の極性値を格納する。一方、このデータ内に「１」より多い「０」があれば、極性検出器５１０は、データ書き込み中のこの行５２４に対応する極性セル５３０に「０」の極性値を格納する。特定の行５２４内の特定のＳＲＡＭセル５２０へのデータ値の書き込みを可能にするために、特定の行５２４及びこの特定の行５２４に対応する極性セル５３０に対し、ｗｒｉｔｅ＿ｅｎａｂｌｅ信号を送ることができる。
【００４３】
極性セル５３０は、これに対応する行５２４内の複数のＳＲＡＭセル５２０に対して２つの出力、すなわちｐｏｌａｒｉｔｙ＜０：ｎ＞及びｐｏｌａｒｉｔｙ＿ｂ＜０：ｎ＞を有する。これらの出力及び読み出しイネーブル信号は、当該ＳＲＡＭセル５２０の読み出しビット線（ＲＢＬ）上に当該ＳＲＡＭセル５２０の真数データ値又は補数データ値のどちらが出力されるかを決定する。従って、ｐｏｌａｒｉｔｙ＜０：ｎ＞出力が論理「１」のレベルにあり（極性セル５３０に格納された極性値が「１」であることを意味する）、そして読み出しイネーブル信号がアサートされる場合は、行５２４内のＳＲＡＭセル５２０に格納された真数データ値が、当該ＳＲＡＭセル５２０の読み出しビット線（ＲＢＬ）上に出力される。一方、ｐｏｌａｒｉｔｙ＜０：ｎ＞出力が論理「０」のレベルにあり（極性セル５３０に格納された極性値が「０」であることを意味する）、そして読み出しイネーブル信号がアサートされる場合には、行５２４内のＳＲＡＭセル５２０に格納された補数データ値が、当該ＳＲＡＭセル５２０の読み出しビット線（ＲＢＬ）上に出力される。その結果、読み出し動作中に「０」のデータ値の読み出しの数が最少化され、それによって、ＳＲＡＭアレイ５００からデータを読み出すのに必要な読み出しビット線（ＲＢＬ）の放電及び再充電の量を削減することができる。
【００４４】
読み出し動作中、一の行５２４に対応する極性セル５３０は、その行５２４内のＳＲＡＭセル５２０と同様の態様で読み出される。極性読み出しビット線（ｐｏｌ＿ｒｂｌ）５３２は、この目的のために設けられる。行５２４に対応する極性セル５３０に格納された極性値は、マルチプレクサ５８０及び５９０に対する選択信号として使用される。マルチプレクサ５８０及び５９０は、ＳＲＡＭアレイ５００の各列５２２ごとに設けられる。マルチプレクサ５８０及び５９０は、極性セル５３０からの選択信号に基づいて、読み出しビット線（ＲＢＬ）上の値又はその補数値の何れか一方を選択する。
【００４５】
すなわち、極性セル５３０に格納された極性値が「０」であれば、ＳＲＡＭセル５２０は、その読み出しビット線（ＲＢＬ）５６０上に補数データ値を出力するであろう。この補数データ値は、その反転データ値（この場合は、真数データ値）とともに、マルチプレクサ５８０及び５９０に供給される。マルチプレクサ５８０及び５９０への選択信号は論理「０」であるから、マルチプレクサ５８０及び５９０からの出力として、マルチプレクサ５８０及び５９０への反転データ値入力が選択されることになる。その結果、ＳＲＡＭセル５２０に格納された真数データ値が、マルチプレクサ５８０及び５９０によって出力される。
【００４６】
一方、極性セル５３０に格納された極性値が「１」であれば、ＳＲＡＭセル５２０は、その読み出しビット線（ＲＢＬ）５６０上に真数データ値を出力するであろう。この真数データ値は、その反転データ値（この場合は、補数データ値）とともに、マルチプレクサ５８０及び５９０に供給される。マルチプレクサ５８０及び５９０への選択信号は論理「１」であるから、マルチプレクサ５８０及び５９０からの出力として、マルチプレクサ５８０及び５９０への真数データ値入力が選択されることになる。その結果、ＳＲＡＭセル５２０に格納された真数データ値が、再び、マルチプレクサ５８０及び５９０によって出力される。
【００４７】
従って、ＳＲＡＭアレイ５００の行５２４の極性に拘わらず、ＳＲＡＭセル５２０の真数データ値が、マルチプレクサ５８０及び５９０によって出力される。本発明に従った省電力機能は、行５２４のＳＲＡＭセル５２０からデータを読み出すために必要とされる読み出しビット線（ＲＢＬ）５６０の放電の量を最少化するオプションはどれかということに基づいて、ＳＲＡＭセル５２０がそれらの読み出しビット線（ＲＢＬ）５６０上に真数データ値又は補数データ値のどちらを出力するかを選択することにより達成される。実施形態では、充放電を必要とする２本の極性読み出しビット線が追加されているが、これらの２本の極性読み出しビット線を追加したことに伴う電力消費の増加分は、大きなＳＲＡＭアレイにおける放電及び再充電の量を削減することから得られる電力消費の削減分と比べると僅かなものである。従って、本発明の機構は、ＳＲＡＭアレイ５００の電力消費を最少化するのと同時に、ＳＲＡＭアレイ５００の正確な動作を達成する。
【００４８】
図９は、本発明に従った極性検出器６００の回路を示す。図示のように、極性検出器６００は、複数のＰＦＥＴ  ６１０及び複数のＮＦＥＴ  ６２０から構成される。ＰＦＥＴ  ６１０及びＮＦＥＴ  ６２０の対は、ｗｒｉｔｅ＿ｄａｔａ線６５０に並列に結合される、インバータ６３０及び６４０を構成する。各書き込みデータ線６５０は、インバータ６３０及び６４０への結合間にインバータ６６０を含む。説明の便宜上、全てのＰＦＥＴ  ６１０が同じサイズを有し、全てのＮＦＥＴ  ６２０も同じサイズを有するものと仮定する。
【００４９】
各書き込みデータ線６５０のインバータ６３０は、互いに直列に結合される。同様に、各書き込みデータ線６５０のインバータ６４０も、互いに直列に結合される。さらに、インバータ６３０及び６４０の各系列は、比較器６７０のそれぞれの入力に結合される。比較器６７０は、インバータ６３０及び６４０の２つの系列から入力を受け取り、ＳＲＡＭアレイの一の行に対応する極性セル５３０（図８）に極性値を格納するための極性信号を出力する。
【００５０】
動作中、ｗｒｉｔｅ＿ｄａｔａ値が「１」の状態にあれば、インバータ６３０は、「０」の値を出力する。一方、ｗｒｉｔｅ＿ｄａｔａ値が「０」の状態にあれば、インバータ６３０は、「１」の値を出力する。インバータ６６０が存在するために、これと反対の動作が、インバータ６４０によって行われる。すなわち、インバータ６４０は、ｗｒｉｔｅ＿ｄａｔａ値が「１」の状態にあるときは、「１」の値を出力し、ｗｒｉｔｅ＿ｄａｔａ値が「０」の状態にあるときは、「０」の値を出力する。
【００５１】
その結果、ｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞値が「０」の値より多い「１」の値を保持すれば、比較器６７０の非反転入力（「＋」入力）は、反転入力（「−」入力）よりも高い電圧を有するであろう。その結果、比較器６７０の極性出力として、「１」の値が得られるであろう。一方、ｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞値が「１」の値より多い「０」値を保持すれば、比較器６７０の非反転入力は反転入力よりも低い電圧を有することになるので、比較器６７０は、「０」の値を出力するであろう。
【００５２】
この極性検出スキームには、２つの動作領域がある。第１の動作領域は、ｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞が、論理「０」又は論理「１」の何れか一方に対する著しいバイアスを有する場合、すなわち、ｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞値のうちかなりの数の値が何れか一方の論理状態にある場合である。第２の動作領域は、かかるバイアスを無視できる場合、すなわち、ｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞値のうち各論理状態にある値の数がほぼ同じである場合である。もし、著しいバイアスがあれば、極性の評価を速やかに行うことができる。一方、かかるバイアスを無視できるのであれば、極性の評価が遅くなるか、又は極性を評価できないことすらある。しかし、それらの場合には、過半数書き込み／評価スキームを利用すると、最少の電力消費に帰着するであろう。
【００５３】
図１０は、本発明に従ったＳＲＡＭセル７００の回路を示す。公知のＳＲＡＭセル構成と比較すると、図１０のＳＲＡＭセル７００は、ＡＮＤゲート７１０及び７２０から成る２つの極性入力を有するという点で相違する。ＡＮＤゲート７１０及び７２０は、対応する極性セル５３０（図８）からの極性入力信号及びその反転極性入力信号と、ｒｅａｄ＿ｅｎａｂｌｅ信号との論理積を演算する。また、ＳＲＡＭセル７００は、２つの読み出しポートとして、真数読み出しポート７３０及び補数（反転）読み出しポート７４０を含む。ｒｅａｄ＿ｅｎａｂｌｅ信号は、極性入力信号及び反転極性入力信号と相まって、ＳＲＡＭセル７００がその読み出しビット線（ＲＢＬ）７５０上に真数データ値又は補数データ値のどちらを出力するかを決定する。
【００５４】
もし、その行の極性値が「１」で、その行内に「０」の値より多い「１」の値が存在することを指示するのであれば、真数データ値が、真数読み出しポート７３０を介して、読み出しビット線（ＲＢＬ）７５０へ出力される。なぜなら、ＡＮＤゲート７１０の出力が「１」であり且つＡＮＤゲート７２０の出力が「０」であるからである。一方、その行の極性値が「０」で、その行内に「１」の値より多い「０」の値が存在することを指示するのであれば、補数データ値が、補数読み出しポート７３０を介して、読み出しビット線（ＲＢＬ）７５０へ出力される。なぜなら、ＡＮＤゲート７２０の出力が「１」であり且つＡＮＤゲート７１０の出力が「０」であるからである。
【００５５】
従って、本発明の機構によれば、各ＳＲＡＭセルは、１つの追加読み出しポートを有する。さらに、この追加読み出しポートを活性化するために、真数及び補数形式の極性信号を分配する回路、並びに追加のワード線ドライバが利用される。これらの追加素子を除去するには、ＳＲＡＭアレイの行内のＳＲＡＭセルに対し真数データ値又は補数データ値のどちらを書き込むべきかを決定するための追加の回路を、極性検出器内に設ければよい。従って、ＳＲＡＭセルに真数データ値又はその補数データ値の何れか一方を書き込むようにすれば、図１０の回路を使用して、読み出し動作中に真数データ値又は補数データ値のどちらを出力すべきかを決定することは必要ない。
【００５６】
図１１及び図１２は、ＳＲＡＭアレイの一の行の極性に基づいて、その行内のＳＲＡＭセルに書き込まれるデータ値を制御するための書き込み回路を示す。図１１及び図１２に示すように、極性検出器８１０に追加することができる回路は、１対のマルチプレクサ８２０及び８３０、並びにインバータ８４０を含む。マルチプレクサ８２０及び８３０の出力は、データ書き込み中の行の決定された極性に基づいて、書き込みビット線信号ｗｂｌ＜０：ｎ＞及びｗｂｌ’＜０：ｎ＞をそれぞれ供給する。
【００５７】
極性検出器８１０内のこの追加回路によれば、ｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞信号は、マルチプレクサ８３０の第１の入力及びマルチプレクサ８２０の第２の入力として供給される。反転形式のｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞信号は、マルチプレクサ８３０の第２の入力及びマルチプレクサ８２０の第１の入力として供給される。前述のように極性検出器８１０によって決定されたその行の極性は、マルチプレクサ８２０及び８３０の選択信号として使用される。従って、その行の極性が「０」であると決定されたのであれば、反転形式のｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞値がｗｂｌ＜０：ｎ＞値としてマルチプレクサ８２０によって出力され、真数形式のｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞値がｗｂｌ’＜０：ｎ＞値としてマルチプレクサ８３０によって出力される。一方、その行の極性が「１」であると決定されたのであれば、真数形式のｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞値がｗｂｌ＜０：ｎ＞値としてマルチプレクサ８２０によって出力され、反転形式のｗｒｉｔｅ＿ｄａｔａ＜０：ｎ＞値がｗｂｌ’＜０：ｎ＞値としてマルチプレクサ８３０によって出力される。
【００５８】
その結果、図８を参照して説明したように、通常のＳＲＡＭセルに加えて、各行ごとに極性セル５３０及びマルチプレクサ５８０、５９０を設けることにより、ＳＲＡＭセルに格納された真数データ値又は補数データ値のどちらを出力すべきかを決定するための追加論理手段を備えたＳＲＡＭアレイを提供することができる。
【００５９】
図１３及び図１４は、本発明の実施形態の一般的な動作を示すフローチャートである。図１３及び図１４中の各ブロック及びブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができる。
【００６０】
図１３は、行の決定された極性に基づいて、ＳＲＡＭアレイからデータを読み出すための動作を示すフローチャートである。ここで、図１３の動作は、図８を参照して説明したように、データがＳＲＡＭアレイに書き込まれたときに、その一の行にあるデータの極性が決定されたものと仮定していることに留意されたい。従って、その行の極性は、データを読み出すべき行に対応する極性セルに格納されている。
【００６１】
また、図１３の動作は、図８〜図１０を参照して説明したＳＲＡＭセル及び極性検出器を仮定していることに留意されたい。もし、図１１及び図１２の極性検出器を利用するのであれば、すなわち、極性検出器がＳＲＡＭセルに真数データ値又は補数データ値のどちらを書き込むべきかを決定するための追加回路を含むのであれば、ステップ９１０〜９３０は不要であろう。なぜなら、図１１及び図１２の回路を使用する場合、ステップ９１０〜９３０は、事実上、データ値をＳＲＡＭセルに書き込むときに実行されるからである。
【００６２】
図１３に示すように、動作の開始後、ＳＲＡＭアレイは、読み出すべき行の極性を決定する（ステップ９１０）。もし、この行の極性が、この行に格納された「１」のデータ値が「０」のデータ値よりも多いことを指示すれば、この行内の各ＳＲＡＭセルは、当該各ＳＲＡＭセルに格納された真数データ値を出力する（ステップ９２０）。一方、この行の極性が、この行に格納された「０」のデータ値が「１」のデータ値よりも多いことを指示すれば、この行内の各ＳＲＡＭセルは、当該各ＳＲＡＭセルに格納された補数データ値を出力する（ステップ９３０）。
【００６３】
決定された極性に基づいて、この行の各ＳＲＡＭセルごとに、このＳＲＡＭセルの実出力又はその補数出力の何れか一方が、このＳＲＡＭセルについてＳＲＡＭアレイからのデータ読み出しとして出力される（ステップ９４０）。もし、極性が「１」であれば、このＳＲＡＭセルの実出力が、そのＳＲＡＭセルについてＳＲＡＭアレイの出力として出力される（ステップ９５０）。一方、極性が「０」であれば、このＳＲＡＭセルの実出力の補数出力が、そのＳＲＡＭセルについてＳＲＡＭアレイの出力として出力される（ステップ９６０）。その後、この動作が終了する。この動作は、ＳＲＡＭアレイの各読み出し動作ごとに繰り返すことができる。
【００６４】
図１４は、行の決定された極性に基づいて、ＳＲＡＭアレイにデータを書き込むための動作を示すフローチャートである。ここで、図１４の動作は、極性検出器が、ＳＲＡＭアレイに書き込むべきデータの行の極性を決定するための回路を含むものと仮定している。かかる回路は、例えば、図１１及び図１２に示すような形式を取ることができる。
【００６５】
図１４に示すように、動作の開始後、ＳＲＡＭアレイの一の行に書き込むべきデータを受け取る（ステップ１０１０）。この行の極性の決定は、過半数に相当する「１」又は「０」のデータ値のどちらがこの行内に存在するかを決定するように、過半数評価に基づいて行われる。決定された極性に基づいて、一の極性値が、データ書き込み中のこの行に対応する極性セルに書き込まれる（ステップ１０３０）。
【００６６】
この行の極性に基づいて、この行内の各ＳＲＡＭセルに真数データ値又は補数データ値のどちらを書き込むべきかという決定が行われる。もし、この行の極性が「１」であれば、書き込みデータ入力に対応する真数データ値がこの行内のＳＲＡＭセルに書き込まれる（ステップ１０５０）。一方、この行の極性が「０」であれば、反転された書き込みデータ入力に対応する補数データ値がこの行内のＳＲＡＭセルに書き込まれる（ステップ１０６０）。その後、この動作が終了する。もし、図８〜図１０の実施形態を利用して、真数データ値又は補数データ値のどちらをＳＲＡＭセルから出力すべきかという決定を、書き込み動作中ではなく、読み出し動作中に行うのであれば、ステップ１０４０〜１０６０は不要であろう。なぜなら、これらのステップ１０４０〜１０６０は、図１３を参照して説明したように、事実上、各読み出し動作に関連して実行されるからである。
【００６７】
以上では、本発明の実施形態が、８Ｔ型ＳＲＡＭセルを使用するものとして説明した。しかし、本発明の実施形態は、８Ｔ型ＳＲＡＭセルの使用に限定されるものではなく、本発明の精神及び範囲から逸脱することなく、他のＳＲＡＭセル構成を使用してもよいことは明らかであろう。例えば、本発明の機構は、６Ｔ型ＳＲＡＭセルも同様に使用することができる。従来の６Ｔ型ＳＲＡＭセル構成と、本発明の機構を利用する６Ｔ型ＳＲＡＭセル構成との相違点を明瞭に示すため、図１５及び図１７には、公知の６Ｔ型ＳＲＡＭセル構成が例示され、図１６及び図１８には、６Ｔ型ＳＲＡＭセル構成における本発明の実施形態が例示されている。
【００６８】
図１５は、公知の６Ｔ型ＳＲＡＭセル構成を例示する。この構成は、図１に示すものと本質的に同じである。図１５に関して注意すべき重要な点は、公知の６Ｔ型ＳＲＡＭセル構成が、ＳＲＡＭセルに格納された真数データ値又は補数データ値のどちらを出力すべきかを決定するための論理手段を全く含んでいないということである。公知の６Ｔセル構成は、ＳＲＡＭセルに格納された真数データ値を出力することができるに過ぎない。従って、本発明の機構のように、過半数評価を行う能力を有さない。
【００６９】
図１６は、本発明に従った６Ｔ型ＳＲＡＭセル構成を示す。図１５の公知の６Ｔ型ＳＲＡＭセルと、図１６の本発明に従った６Ｔ型ＳＲＡＭセルとの間の主要な相違点は、後者では、（１）各ワード線ごとに補数ワード線ドライバ１２１０が設けられ、（２）アドレス・デコード信号、読み出し／書き込み信号及び極性信号がワード線ドライバ１２２０及び補数ワード線ドライバ１２１０に入力され、そして（３）極性信号が再充電／評価／書き込み回路１２３０に入力されるということにある。ワード線ドライバ１２２０は、ビット線ｂｌ＿ｈｉに結合された、ＳＲＡＭセルの１つのトランジスタ１２２５にのみ結合される。これに対し、図１５の公知のＳＲＡＭセル構成では、ワード線ドライバ１２２０は、両方のトランジスタに結合される。補数ワード線ドライバ１２１０は、補数ビット線ｂｌ＿ｈｉ’に結合された、他のトランジスタ１２３５に結合される。
【００７０】
ワード線ドライバ１２２０及び補数ワード線ドライバ１２１０への極性信号入力によって指示された極性値に基づいて、ワード線信号又は補数ワード線信号の何れか一方がトランジスタ１２２５及び１２３５にそれぞれアサートされて、トランジスタ１２２５及び１２３５を活性化する。トランジスタ１２２５又は１２３５のどちらが再充電済みの高電圧レベルに維持され、ワード線信号又は補数ワード線信号のどちらがアサートされたかに基づいて、ＳＲＡＭセルに格納された真数データ値又はその補数データ値の何れか一方が、再充電／評価／書き込み回路１２３０を介して出力される。
【００７１】
図１７は、図１５の公知の６Ｔ型ＳＲＡＭセル構成とともに使用するための、公知の再充電／評価／書き込み回路を示す。これに対し、図１８は、図１６の本発明に従った６Ｔ型ＳＲＡＭセル構成とともに使用するための、再充電／評価／書き込み回路を示す。図１７及び図１８を対比すれば明らかなように、両者の主要な相違点は、後者には、マルチプレクサ１４１０及び１４２０が含まれているということにある。
【００７２】
データ入力信号及びその反転データ入力信号は、マルチプレクサ１４１０に対する選択信号である極性信号とともに、マルチプレクサ１４１０に入力される。行の極性に基づいて、データ入力信号又はその反転データ入力信号の何れか一方が選択されて、トランジスタ１４３０〜１４３６をアサートする。マルチプレクサ１４２０は、再充電／評価／書き込み回路の出力として、ＮＡＮＤゲート１４４０の出力又はＮＡＮＤゲート１４５０からの反転出力の補数出力の何れか一方を出力する、この回路によれば、本発明の機構の過半数評価及び極性に基づく動作は、６Ｔ型ＳＲＡＭセル及び前述の８Ｔ型ＳＲＡＭセルに適用することができる。
【００７３】
従って、本発明は、ＳＲＡＭアレイの電力消費を最少化するための機構を提供する。かかるＳＲＡＭアレイは、データ処理装置のメモリやキャッシュ、集積回路装置、データ処理システム等で使用することができる。本発明は、読み出し動作を行う場合にＳＲＡＭアレイの読み出しビット線の放電の数を最少化することにより、電力消費を最少化する。放電の最小化を可能にするための回路は、ＳＲＡＭアレイの一の行に格納されたデータ値の過半数の極性を決定し、この決定された極性を使用して、真数データ値又は補数データ値のどちらを読み出せば、放電を必要とする読み出しビット線の数がより少なくなるかを決定する。
【００７４】
前述の回路は、集積回路チップの設計の一部とすることができる。かかるチップ設計を、グラフィカルなコンピュータ・プログラミング言語を用いて作成した後、これをコンピュータ記憶媒体（例えば、ディスク、テープ、ハード・ドライブ又はストレージ・エリア・ネットワーク内の仮想ハード・ドライブ等）に格納することができる。もし、設計者がチップ又はチップを製造するために使用されるフォトリソグラフィ・マスクを製造しなければ、設計者は、その設計を、物理的手段（例えば、設計結果を格納した記憶媒体のコピーの提供）によって、又は電子的に（例えば、インターネットを通して）、製造業者に直接的に又は間接的に伝達することができる。その後、格納された設計を、フォトリソグラフィ・マスクの製造のために適切なフォーマット（例えば、ＧＤＳＩＩ）に変換することができる。かかるフォトリソグラフィ・マスクを製造するには、一般に、ウェハ上に形成すべき当該チップ設計の複数のコピーを作成することが必要である。フォトリソグラフィ・マスクは、エッチング又は処理すべきウェハ（及び／又はその上の層）の領域を定義するために利用することができる。
【図面の簡単な説明】
【００７５】
【図１】公知の６トランジスタ（６Ｔ）型ＳＲＡＭセルを示す図である。
【図２】公知の８トランジスタ（８Ｔ）型ＳＲＡＭセルを示す図である。
【図３】本発明を実施可能な代表的なデータ処理環境のブロック図である。
【図４】各ＳＲＡＭセルが「０」のデータ値を格納する、５×５  ＳＲＡＭアレイの第１の構成を示す図である。
【図５】最初の２列が「１」のデータ値を格納し且つ残部が「０」のデータ値を格納する、５×５  ＳＲＡＭアレイの第２の構成を示す図である。
【図６】全てのＳＲＡＭセルが「１」のデータ値を格納する、５×５  ＳＲＡＭアレイの第３の構成を示す図である。
【図７】最初の２列が「０」のデータ値を格納し且つ残部が「１」のデータ値を格納する、５×５  ＳＲＡＭアレイの第４の構成を示す図である。
【図８】本発明に従ったＳＲＡＭアレイを示す図である。
【図９】本発明に従った極性検出器の回路を示す図である。
【図１０】本発明に従ったＳＲＡＭセルの回路を示す図である。
【図１１】行の極性に基づいてその行内のＳＲＡＭセルに書き込まれるデータ値を制御するための、実施形態に従った書き込み回路を示す図である。
【図１２】行の極性に基づいてその行内のＳＲＡＭセルに書き込まれるデータ値を制御するための、実施形態に従った書き込み回路を示す図である。
【図１３】行の決定された極性に基づいてＳＲＡＭアレイからデータを読み出すための、実施形態に従った動作を示すフローチャートである。
【図１４】行の決定された極性に基づいてＳＲＡＭアレイにデータを書き込むための、実施形態に従った動作を示すフローチャートである。
【図１５】公知の６Ｔ型ＳＲＡＭセルの構成を示す図である。
【図１６】実施形態に従った６Ｔ型ＳＲＡＭセルの構成を示す図である。
【図１７】公知の６Ｔ型ＳＲＡＭセルの構成（図１５）とともに使用するための、公知の再充電／評価／書き込み回路を示す図である。
【図１８】実施形態に従った６Ｔ型ＳＲＡＭセルの構成（図１６）とともに使用するための再充電／評価／書き込み回路を示す図である。
【符号の説明】
【００７６】
５００    ＳＲＡＭアレイ
５１０    極性検出器
５２０    ＳＲＡＭセル
５２２    列
５２４    行
５３０    極性セル
５３２    極性読み出しビット線
５４０    書き込みビット線
５５０    書き込みビット線
５６０    読み出しビット線
５８０    マルチプレクサ
５９０    マルチプレクサ
【図１】
2008146812.tif 000003
【図２】
2008146812.tif 000004
【図３】
2008146812.tif 000005
【図４】
2008146812.tif 000006
【図５】
2008146812.tif 000007
【図６】
2008146812.tif 000008
【図７】
2008146812.tif 000009
【図８】
2008146812.tif 000010
【図９】
2008146812.tif 000011
【図１０】
2008146812.tif 000012
【図１１】
2008146812.tif 000013
【図１２】
2008146812.tif 000014
【図１３】
2008146812.tif 000015
【図１４】
2008146812.tif 000016
【図１５】
2008146812.tif 000017
【図１６】
2008146812.tif 000018
【図１７】
2008146812.tif 000019
【図１８】
2008146812.tif 000020