JPH1097461A - メモリ用マルチ・スレッド・セル - Google Patents
メモリ用マルチ・スレッド・セルInfo
- Publication number
- JPH1097461A JPH1097461A JP9175996A JP17599697A JPH1097461A JP H1097461 A JPH1097461 A JP H1097461A JP 9175996 A JP9175996 A JP 9175996A JP 17599697 A JP17599697 A JP 17599697A JP H1097461 A JPH1097461 A JP H1097461A
- Authority
- JP
- Japan
- Prior art keywords
- threaded
- thread
- write
- read
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 claims description 190
- 210000000352 storage cell Anatomy 0.000 claims description 96
- 210000004027 cell Anatomy 0.000 claims description 46
- 238000000034 method Methods 0.000 claims description 16
- 238000010187 selection method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000001351 cycling effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 abstract description 7
- 238000007796 conventional method Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 24
- 230000002411 adverse Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005549 size reduction Methods 0.000 description 2
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30116—Shadow registers, e.g. coupled registers, not forming part of the register space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/16—Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Multimedia (AREA)
- Memory System (AREA)
- Static Random-Access Memory (AREA)
Abstract
用されるマルチ・スレッド・コンピュータ・システムで
使用するための、マルチ・スレッド・メモリ(及び関連
方法)を提供する。 【解決手段】 マルチ・スレッド・メモリは、マルチ・
スレッド記憶セル、選択されたマルチ・スレッド記憶セ
ルに情報を供給する、少なくとも1つの書き込みデコー
ダ、及び選択されたマルチ・スレッド記憶セルから情報
をアクセスする、少なくとも1つの読み取りデコーダを
含む。各マルチ・スレッド記憶セルは、N≧2である、
N個の記憶素子を含み、N個の記憶素子の各々は、スレ
ッド対応内容を有する。また各マルチ・スレッド記憶セ
ルは、セル内の記憶素子に情報を供給する書き込みイン
タフェース、及びセル内の記憶素子から情報を読み取る
読み取りインタフェースを含む。
Description
使用に関して最適な数のトランジスタを含むマルチ・ス
レッド記憶素子/セルに関連し、これらのトランジスタ
は、マルチ・スレッド素子/セルの入出力を制御する回
路を構成する。更に詳細に述べれば、本発明は、マイク
ロプロセッサ内に機能性の高いマルチ・スレッド・メモ
リを構成する、マルチ・スレッド記憶素子/セルに関連
する。
指すものは、処理速度の改善、即ちプロセッサの利用度
及び(又は)システム・スループットの改善である。ノ
イマン型(von Neumann)アーキテクチャと
して知られる、最も一般的なプロセッサ・アーキテクチ
ャでは、プログラムが設定したシーケンスに従って命令
が順次実行される。このようなプロセッサは、単一スレ
ッドであると言われる。
態にする。例えば論理演算が実行される前に、データを
リモート位置からプロセッサのレジスタの1つ又は複数
に読み取るように命令が要求したとき、リモート位置に
記憶されているデータの読み取りに費やされる時間中
は、プロセッサがアイドル状態になる。この状況は、メ
モリ待ち時間と呼ばれる。
ッサがキャッシュ・メモリからデータを読み取ろうとす
るときである。データがキャッシュ内に存在しない場
合、即ちキャッシュ・ミスがある場合、プロセッサは、
そのデータをもっと速度が遅いリモート・メモリから読
み取る必要がある。こうしてメモリ待ち時間が発生す
る。
これを許容することである。このメモリ待ち時間を許容
する技術の1つが、マルチ・スレッド処理である。マル
チ・スレッド・プロセッサは、命令によってプロセッサ
がアイドル状態になるとき、例えばメモリ待ち時間条件
が発生したときを認識し、メモリ待ち時間を起こした命
令から別の命令に、前の命令と関係なく切り替えること
ができる。前の命令は第1のスレッドと見なされ、後の
命令は第2のスレッドと見なされる。スレッドは、「コ
ンテキスト」と呼ばれる場合もある。第2のスレッド
に、プロセッサをアイドル状態にする操作が含まれてい
る場合、プロセッサは第2のスレッドを保留にして、第
3のスレッドに切り替える。ある時点で、プロセッサを
アイドル状態にしたスレッドの準備が整う。例えばメモ
リ待ち時間状態が終了する。この時点で、プロセッサは
これらのスレッドに戻ることができる。1つのスレッド
から次のスレッドに切り替えることにより、プロセッサ
は、アイドル状態になる時間の長さを最小にすることが
できる。言い替えると、プロセッサはビジー状態である
時間の長さを最大にできる。
ログラム・カウンタ、レジスタ・セット(記憶素子)、
ならびにレジスタ・セット用の複数の書き込みポート及
び複数の読み取りポートを含む。これを図1に示す。
内のセルを示す。セルは標準の記憶素子で構成される。
スレッド0は、複数の書き込みポート2、1個の記憶素
子4、及び複数の読み取りポート6で構成される。スレ
ッド1は、複数の書き込みポート8、1個の記憶素子1
0、及び複数の読み取りポート12で構成される。書き
込みポート及び読み取りポートの数は、記憶素子への書
き込みや素子からの読み取りを実行するそれぞれの機能
ユニットの数により決まる。
スレッド1の記憶素子への書き込みと同時に、スレッド
0の記憶素子への書き込みが可能である。同様に、スレ
ッド0の記憶素子用と、スレッド1の記憶素子用の読み
取りポートを別々にもつことにより、スレッド0及びス
レッド1の各々から、データを同時に読み取ることが可
能になる。これは、それぞれ書き込み独立性及び読み取
り独立性と呼ばれる。
では、集積回路が形式されるチップの表面面積の経済的
利用が非常に重要である。周知のようにVLSI技術が
進歩するにつれて、より小さな集積回路上により沢山の
デバイスが形成される、即ちトランジスタ密度が増加し
ている。2つの主要な要因がトランジスタ密度に影響す
る。即ち、トランジスタ・サイズと、トランジスタの相
互接続に必要な配線数である。配線数は、実装される特
定の回路(複数)の関数である。配線サイズの縮小、及
び(容量結合、又は混信を防ぐために必要な)配線の最
小間隔の問題は、トランジスタ・サイズの縮小化ほどに
は重要ではなかった。チップ上のトランジスタで構成さ
れる特定の回路において、配線の相互接続によって使用
される表面面積を扱うこの問題は、一般的に回路の「配
線配置性」と称される。即ち、回路は「配線が制約され
る」と考えられている。実際に特定の回路について、ト
ランジスタを1つ減らして表面面積の使用を削減する
と、トランジスタ自身が使用する表面面積の削減より、
関連する配線の相互接続で使用する表面面積の削減が貢
献する方が大きい。
性に関連する費用を評価した。即ち同時スレッド読み取
り機能、又は書き込み機能に関連する費用を、各記憶素
子の書き込みポートの構成に必要なトランジスタの数、
及び関連する配線配置性に関して評価した。
込み独立性は、マルチ・スレッド・メモリに絶対的に必
要であると想定されていた。発明者達は、この従来の技
術において支配的な想定が誤りであることを明らかに
し、全体又は一部分で読み取り及び(又は)書き込み独
立性をなくすことにより、このような従来の技術のシス
テムの性能を改善する設計を開発した。我々は、これら
の従来の技術の想定が、マルチ・スレッド・メモリ上で
実際上不必要な表面面積の消費を強制していることを明
らかにした。
セッサでは、(実際上)読み取り独立性はほとんど使用
されない機能であることを明らかにした。マルチ・スレ
ッド・プロセッサは、一度に1つのスレッドからしか読
み取りができない。したがって、マルチ・スレッド・プ
ロセッサ自身、そのレジスタ・セットの読み取り独立性
を全く要求しない。複数のマルチ・スレッド・プロセッ
サが並列的に動作している環境では、プロセッサのレジ
スタ・セットに読み取り独立性が要求される状況がまれ
に発生する可能性がある。このような状況では、第1の
プロセッサが第1のスレッドから読み取っている間、第
2のプロセッサは、第1のプロセッサの第2のスレッド
からリモート・メモリ読み取りを実行する。我々は、読
み取り独立性を削除することで生じる不都合な結果は、
実際上無視できるものであり、除去できるトランジスタ
が消費していた表面面積を大きく節約できることを明ら
かにした。
ションでは、データを複数のスレッドの記憶素子に同時
に書き込むことは実際上あまり頻繁に発生しないので、
利点はほとんどないことを明らかにした。むしろデータ
をスレッド1の記憶素子に書き込むこととは非同期に、
データをスレッド0の記憶素子に書き込むことの方がよ
ほど一般的である。我々は、以上より書き込み独立性に
あまり重要な機能性はないので、著しく不都合な結果が
生じることなく、表面面積の経済性を改善できることを
明らかにした。
的は、従来の技術の問題点の解決にある。
積の消費に優れた経済性をもつ、汎用レジスタなどのマ
ルチ・スレッド・メモリを作成することである。
スタで形成される、マルチ・スレッド・メモリを実現す
ることである。
ッド・セルのスレッドに対応する)用の読み取り及び書
き込みポートの形成に必要な、最適な最小数のトランジ
スタで構成される、マルチ・スレッド・メモリを実現す
ることである。この目的は、読み取り独立性、及び書き
込み独立性の機能的利点は無視できるほど小さいのもの
であり、これらの独立性を選択的に削除しても不都合な
結果はほとんど生ぜず、これらの独立性を削除すること
によって関連する配線配置性が改善され、その結果表面
面積の経済性が改善されるという認識に基づいている。
かにしたことから、上記の目的を満たす本発明の展開と
して、一度に1つのスレッドを処理する単一プロセッサ
をもち、複数のスレッドを使用するマルチ・スレッド・
コンピュータ・システムにおける、マルチ・スレッド・
メモリを提供する。このマルチ・スレッド・メモリは、
複数のマルチ・スレッド記憶セルと、マルチ・スレッド
記憶セル中の選択された1つに情報を供給する少なくと
も1つの書き込みデコーダと、マルチ・スレッド記憶セ
ル中の選択された1つから情報をアクセスする少なくと
も1つの読み取りデコーダとを含む。各マルチ・スレッ
ド記憶セルは、N≧2であるN個の記憶素子を含み、前
記N個の記憶素子の各々は、スレッド対応内容をもつ。
またこの記憶セルは、書き込みインタフェースを含み、
このインタフェースは前記少なくとも1つの書き込みデ
コーダと作動状態で接続され、前記複数の記憶素子に情
報を提供する。更にこの記憶セルは、読み取りインタフ
ェースを含み、このインタフェースは前記少なくとも1
つの読み取りデコーダと作動状態で接続され、前記複数
の記憶素子から情報を読み取る。前記読み取り及び書き
込みインタフェースの少なくとも1つが、少なくとも部
分的に、対応するスレッドを識別することによって、前
記スレッド対応内容の1つを選択し、セル内のスレッド
対応内容選択を実行する。
ッドを使用する、マルチ・スレッド・コンピュータ・シ
ステムに組み込まれた複数のマルチ・スレッド記憶セル
で構成されるマルチ・スレッド・メモリに使用される、
スレッド選択方法を提供することによって、本発明の目
的が達成される。前記単一プロセッサは、一度に1つの
スレッドを処理し、前記プロセッサは、マルチ・スレッ
ド記憶セルの選択された1つに情報を提供する少なくと
も1つの書き込みデコーダと、マルチ・スレッド記憶セ
ルの選択された1つから情報をアクセスする少なくとも
1つの読み取りデコーダとを含む。各マルチ・スレッド
記憶セルは、N個の記憶素子を含む。ここで、N≧2で
あり、前記N個の記憶素子の各々は、スレッド対応内容
をもつ。またこの記憶セルは、前記少なくとも1つの書
き込みデコーダと作動状態で接続され、前記複数の記憶
素子に情報を提供する書き込みインタフェースと、前記
少なくとも1つの読み取りデコーダと作動状態で接続さ
れ、前記複数の記憶素子から情報を読み取る読み取りイ
ンタフェースとを含む。スレッド選択方法には、各前記
N個の記憶素子にスレッド対応内容を提供するステップ
と、少なくとも部分的には対応するスレッドを識別する
ことによって、前記複数のスレッド対応内容の1つをセ
ル内で選択するステップと、少なくとも1つの前記書き
込み及び読み取りインタフェースを介して、前記複数の
スレッド対応内容の選択された1つを前記単一プロセッ
サに接続するステップを含む。前記複数のスレッド対応
内容の1つをセル内で選択するステップは、次のような
方法で選択する。即ち、単一プロセッサが処理している
スレッドをセルに示し、データ線を前記記憶素子の1つ
に直接接続するか、又は前記1つのスレッド対応内容
が、前記書き込みインタフェース、及び読み取りインタ
フェースの1つに接続される記憶素子内に配置されるま
で、前記N個の記憶素子間を前記複数のスレッド対応内
容をシフトすることにより選択する。
この後の本発明の詳細な説明により更に明らかになる。
しかし、本発明の好ましい実施例を示しながら詳細な説
明及び特定の例を提示するが、これは説明のために提示
するものであり、本発明の意図と範囲を逸脱しない各種
の変更及び修正が可能であることは、当分野に知識をも
つ当業者にはこの詳細な説明から明らかであろう。
た、従来の2スレッド・アレイ48のブロック図であ
る。アレイ48は、スレッド0用の読み取りデコーダ4
9から52、スレッド0用の書き込みデコーダ53、及
び標準記憶セル56(読み取りデコーダ49から52、
及び書き込みデコーダ53の各々と接続されている)の
アレイ54、スレッド1用の読み取りデコーダ57から
60、スレッド1用の書き込みデコーダ61、及びここ
でも標準記憶セル56(読み取りデコーダ57から6
0、及び書き込みデコーダ61の各々と接続されてい
る)で構成される第2の記憶セルのアレイ62を含む。
各アレイ54及びアレイ62内のセル56の1つのセル
に対する配線相互接続だけが示されている。アレイ54
及びアレイ62内の他の記憶セルについても、それぞれ
同じ接続が存在する。スレッド選択(デコーダ49から
53、及びデコーダ57から61により実行される)
は、アレイ内のセルの内部ではなく、各セルの外部で実
施される。
共通読み取りデータ・バスを備えているが、これはスレ
ッド0とスレッド1の各々からのデータの同時読み取り
を可能にするために、2つの読み取りデコーダが要求さ
れるので、読み取り独立性が必要な機能属性であるとい
う仮定を反映している。ここでも発明者達は、最適な配
線配置性(及び関連する最適な最小数のトランジスタ)
を備えたマルチ・スレッド・メモリは、読み取り独立性
を除去することによって、著しく不都合な結果が生じる
ことなく実現でき、その理由は、複数のスレッドからの
同時読み取りが必要である事象の発生数は、無視できる
ほど少数だからであることを明らかにした。
ルの第1の実施例を示すブロック図である。特に図3
は、スレッド0及びスレッド1を選択的に読み取りポー
ト114に接続するスレッド・セレクタ110を含む、
マルチ・スレッド読み取りインタフェースを示す。読み
取りポート114の数は、記憶素子104及び108か
ら読み取ることができる機能ユニットの数(普通は2つ
以上であり、6または8など)に一致する。読み取り動
作では、各記憶素子が次のように機能ユニットに接続さ
れる。即ち、記憶素子がセレクタ110に接続される。
セレクタ110はポート114の1つに接続される。こ
の接続されたポートがデコーダに接続され、デコーダが
機能ユニットに接続される。
02、及びスレッド1用の書き込みポート106(書き
込みポートの数は、例えば記憶素子104に書き込みで
きる機能ユニットの数に一致し、普通は2つ以上であ
り、3または12などである)、スレッド0用記憶素子
104(書き込みポート102とスレッド・セレクタ1
10に接続されている)、及びスレッド1用記憶素子1
08(書き込みポート106とスレッド・セレクタ11
0に接続されている)も含む。
り独立性を削除することにより、実質的に不都合な結果
が生じることなく、チップ表面面積の消費を十分に減ら
すことができ、その理由は、一度に1つのスレッドしか
アクセスできない単一プロセッサにとって、読み取り独
立性は無視できるほど小さい機能属性であるからである
という発明者の発見を反映するものである。スレッド0
及びスレッド1の各々に個別の読み取りポートを構成す
る(従来の技術)ために必要なトランジスタの数より、
スレッド・セレクタ110と読み取りポート114の構
成に必要なトランジスタの数のほうが少ないので、著し
く不都合な結果が生じることなく、表面面積の経済性を
高められる。
ッド・セレクタ110がスレッド0を選択するように制
御して、記憶素子104内のデータを読み取ることによ
り、記憶素子104のデータを読み取りポート114上
で使用可能にできる。同様に、記憶素子108内のデー
タを読み取るには、プロセッサは、スレッド・セレクタ
110が記憶素子108からの線を選択するように制御
する必要がある。
なブロック図である。図4は、マルチ・スレッド記憶セ
ル160で構成される2スレッド・アレイ150を示
す。図4の2スレッド・アレイ150は、読み取りデコ
ーダ151から154、スレッド0用の書き込みデコー
ダ155、スレッド1用の書き込みデコーダ156、及
びマルチ・スレッド記憶セル160のアレイ158を含
む。ここでも、アレイ158内のセルの相互接続はすべ
て同じなので、記憶セル160の1つのセルに対する配
線相互接続だけを示す。
は、書き込みアドレス・バス168に接続され、またデ
コーダ自身の書き込みスレッド選択線166及び170
にそれぞれ接続される。言い替えると、スレッド選択
は、2スレッド・レジスタ150の外部で実行される。
これと対照的に、単一の読み取りデコーダ152は、読
み取りアドレス・バス162に接続されるが、読み取り
選択線164には接続されない。むしろ各メモリ・セル
160が読み取り選択線に接続されるので、読み取られ
るスレッドの選択は、マルチ・スレッド記憶セル160
の外部ではなく、セルの内部で実行される。
が8個ではなく4個だけであるという利点がある。この
デコーダの数の減少は、4個の余分なデコーダに関連す
る表面面積消費の削減や、4つの余分なデコーダに関連
する制御論理回路の削減だけではなく、各デコーダ57
から60からアレイ62内の各セル56に結ばれた配線
相互接続に関連する表面面積の消費も削減する。このよ
うに、図4のアレイ150の配線配置性は、図2のアレ
イ54の配線配置性より優れている。また、図4の記憶
セル160の数は図2の記憶セルの数の半分なので、読
み取りデータ・バスを短くできる。これは例えば信号伝
達時間を短くするので、その結果応答が早まる。図4は
4つの読み取りデコーダを示すが、1個以上いくつであ
ってもよい。
ある。特に図3のブロックが、CMOSトランジスタで
構成されたものとして示されている。ただし本発明は、
他の技術の中でも特にNMOS、BICMOS、BIN
MOS、バイポーラ、SOI、及びGaASに適用可能
である。記憶素子104がトランジスタ208から21
8で構成され、単一ビットを保持する。書き込みポート
102が、トランジスタ200から202で構成され、
単一ポートだけをもつものとして示される(記憶素子1
04に書き込む機能ユニットが1つだけという単純な想
定に基づく)。同様に、書き込みポート106もトラン
ジスタ204から206で構成される。記憶素子108
が、トランジスタ220から230で構成される。
タ234から244で構成される。ライン237(トラ
ンジスタ234のゲートとトランジスタ240のゲート
に接続される)上の信号「THB」の状態、及びライン
239(トランジスタ236のゲートとトランジスタ2
38のゲートに接続される)上の信号「THA」の状態
に基づき、スレッド・セレクタ110は、第1のスレッ
ドか第2のスレッドのどちらかを選択する。読み取りポ
ート114は、2つのポートを含む。第1のポート24
5は、トランジスタ246から248で構成され、第2
のポート250は、トランジスタ252から254で構
成される。ここでも各インタフェースのポートの数は、
実際には、記憶素子への書き込みや記憶素子からの読み
取りを実行する機能ユニットの数に従って変化する。
例えば図3の102及び106が、伝送ゲート(図5に
示す)としてではなく、パス・ゲートとして構成できる
ことを示す。代替として、他の技術の中で特にセット/
リセット・ゲート、又はデュアル・エンド・パス・ゲー
トを使用できる。
ルの第2の実施例を示すブロック図である。図7には、
スレッド・セレクタ302にデータを供給する書き込み
ポート300の単一セット、スレッド0用記憶素子30
4(スレッド・セレクタ302に接続される)、スレッ
ド0用読み取りポート306(記憶素子304に接続さ
れる)、スレッド1用記憶素子308(スレッド・セレ
クタ302に接続される)、及びスレッド1用読み取り
ポート310(記憶素子308に接続される)が含まれ
る。ここでも書き込みポート及び読み取りポートの数
は、それぞれ記憶素子304及び308を読み書きする
機能ユニットの数に一致する。書き込み動作では、各機
能ユニットは次のようにして記憶素子に接続される。即
ち、機能ユニットは書き込みデコーダに接続され、書き
込みデコーダはポート300の1つに接続され、この接
続されたポートが書き込みセレクタ302に接続され、
更に書き込みセレクタ302が各記憶素子に接続され
る。
た配線配置性(及び関連する最適な最小数のトランジス
タ)をもつマルチ・スレッド・メモリは、(アプリケー
ションによっては)書き込み独立性を削除することによ
り、実質的に不都合な結果が生じることなく達成でき、
その理由は、スレッド0の記憶素子304とスレッド1
の記憶素子308の両方に同時に書き込むためのデータ
が用意されるような事象は、ほとんど発生しないためで
あることを明らかにした。このように発明者達は、この
実施例では書き込み独立性機能を除去することにより
(図7に示すように)、著しく不都合な結果が生じるこ
となく、表面面積の経済性を大きく増進させた。
ルの第3の実施例を示すブロック図である。図8では、
スレッド0の記憶素子356及びスレッド1の記憶素子
358が、双方ともスレッド・セレクタ354を介して
書き込みポート352の単一セットに接続されている。
同様に記憶素子356及び358は、どちらもスレッド
・セレクタ360を介して読み取りポート362の単一
セットに接続されている。
内容をアドレス指定できるバージョンを示すブロック図
である。図3に示す第1の実施例のバージョンで使用さ
れたものと同じ素子には、同じ参照番号が付けられてい
る。図9と図3の唯一の相違点は、読み取りポート11
4だけではなく、比較ポート402もスレッド・セレク
タ110の出力を受信することである。内容をアドレス
指定できるメモリは周知の技術なので、説明は最小限に
止める。
ド・メモリ・セルの内容をアドレス指定できるバージョ
ンを示す概略図である。特に比較ポート402は、単純
にするためにトランジスタ420から434で構成され
る単一ポートだけを含むように示されているが、このよ
うなポートを複数個使用することが可能である。
スト機能付きで、内容をアドレス指定できるバージョン
を示すブロック図である。図11と図9の相違点は、記
憶素子104が、ラッチ452及び454に置き換えら
れ、また記憶素子108が、ラッチ456及び458に
置き換えられている点である。更にスイッチ460が、
ラッチ454をラッチ456に接続する。書き込みポー
ト102に加えて、ラッチ452がスキャン・ポート4
50からデータを受信する。ラッチ452及び454を
通り、スイッチ460、ラッチ456及び458を通る
スキャン・ポート450からのパスは、第1の実施例の
マルチ・スレッド・メモリ・セルにレベル・センシティ
ブ走査設計(「LSSD」)方法を統合する。
と458の各ペアは、マスタ・ラッチ及びスレーブ・ラ
ッチとして動作し、シフト・レジスタ・ラッチ・ペアを
構成する。これらのラッチ・ペアは、スイッチ460を
介して接続される。同様に構成された他のメモリ・セル
と共に、このような一連のマスタ/スレーブ・ラッチ・
ペアは、多様な方法でシフト・レジスタのように動作す
る。既知のデータを、この疑似シフト・レジスタを通じ
て循環させる、即ちスキャンさせることにより、回路が
正常に動作しているか否かをテストできる。このような
LSSD技術は周知の技術であり、例えばSmithに
発行された米国特許第5,331,643号に開示され
ている。
付きで、内容をアドレス指定できるバージョンの概略を
示す図である。スキャン・ポート450が、トランジス
タ502から504で構成される。ラッチ452は図5
の記憶素子104に相当し、トランジスタ208から2
18で構成される。同様に、ラッチ456は図5の記憶
素子108に相当し、トランジスタ220から230で
構成される。ラッチ454は、トランジスタ506から
512で構成される。ラッチ458は、トランジスタ5
14から520で構成される。
ンは、比較ポート402を削除して変形することができ
る。
セルの第4の実施例を示すブロック図である。図13は
4スレッド記憶セルを示し、ここでは4つのスレッド
が、リング状に接続される4つの記憶素子552から5
58で表される。特定のスレッドに対応するデータの読
み取りや書き込みのために、所要のスレッドに対応する
内容(「スレッド対応内容」)が、主記憶素子552内
に配置されるまでリング内を循環、即ちスキャンされ
る。
1に対応し、記憶素子554がスレッド2に対応し、記
憶素子556がスレッド3に対応し、また記憶素子55
8がスレッド4に対応するが、この対応関係は変化する
ことに注意されたい。例えば、記憶素子の内容が位置を
1つだけ循環/スキャンされる場合、結果は主記憶素子
552がスレッド4に対応し、記憶素子554がスレッ
ド1に対応し、記憶素子556がスレッド2に対応し、
記憶素子558がスレッド3に対応するようになる。
ッチ564で構成され、これらのラッチはインバータ5
62を介して接続されている。記憶素子554は、ラッ
チ568及びラッチ570で構成され、ラッチ568
は、3対1マルチプレクサ566を介してラッチ564
に接続される。記憶素子556はラッチ574及びラッ
チ576で構成され、ラッチ574はスイッチ572を
介してラッチ570に接続される。第4の記憶素子55
8は、ラッチ580及びラッチ582で構成され、ラッ
チ580は、スイッチ578を介してラッチ576に接
続される。ラッチ582は2対1マルチプレクサ58
4、及び3対1マルチプレクサ586を介してラッチ5
60に接続される。繰り返すと、リングのパスが記憶素
子552、3対1マルチプレクサ566、記憶素子55
4、スイッチ572、記憶素子556、スイッチ57
8、記憶素子558、2対1マルチプレクサ584及び
3対1マルチプレクサ586を通る。必要な場合は、リ
ング・パスを2対1マルチプレクサ584を使って選択
的に短くして、ラッチ564からの出力を選択するよう
に制御できる。
読み取るときには、データは、ラッチ560からインバ
ータ562及びインバータ588を通り、読み取りポー
ト590に渡される。これは例えばマイクロプロセッサ
(図示せず)、又は別個のタイミング回路(図示せず)
からのタイミング信号に従って行われる。読み取りポー
ト590は、記憶素子552からデータを読み取ること
ができる機能ユニットの数と同じ数だけ存在する。
は、マイクロプロセッサなどのコントローラ(図示せ
ず)から図14、図15のトランジスタ674、69
2、668、709、716、726、736、75
2、及び760に供給されるタイミング信号により制御
される。
13の4スレッド・メモリ・セルに書き込まれる。第1
の方法は、コントローラの算術論理演算ユニット(「A
LU」)(図示せず)の機能ユニットからのデータを、
ALU書き込みポート592の1つで受信する。このデ
ータは、バッファ594及び3対1マルチプレクサ58
6を通ってラッチ560に渡される。データ書き込みの
第2の方法では、データはバッファ594を通り、直接
3対1マルチプレクサ566に向かい、このマルチプレ
クサを通って記憶素子554のラッチ568に渡され
る。何らかの時間的制約が原因で、リング内のデータを
循環させねばならない時間までに、主記憶素子552の
ラッチ560にデータのすべてを書き込めなかった場合
に、このような3対1マルチプレクサ566を介したバ
イパスが行われる。
ード・データ・ポート596に関係する。ロード・ポー
ト596からのデータは、バッファ598を通ってか
ら、3対1マルチプレクサ586を通って記憶素子55
2に渡されるか、又は3対1マルチプレクサ566を通
って記憶素子554に渡されるかのどちらかである。こ
こでもロード・データ・ポート596が設けられること
により、所要のスレッドに対する対応内容が、記憶素子
552から記憶素子554に循環/スキャンされた後
で、残りのデータを記憶素子554に書き込むことによ
り、記憶素子552への不完全なデータ書き込み動作を
補完する。
例の概略図である。バッファ598は、トランジスタ6
52から656で構成される。同様にバッファ594
は、トランジスタ658から662で構成される。バッ
ファ598及びバッファ594は、ポート596及びポ
ート592から3対1マルチプレクサ566及び586
それぞれへの直流(「DC」)の伝送を防ぐためのフィ
ードバックをもつ構成になっている。
スタ670から674で構成される。同様に、3対1マ
ルチプレクサ566は、トランジスタ664から668
で構成される。ラッチ560は、トランジスタ676か
ら682で構成される。インバータ562は、トランジ
スタ684から686で構成される。インバータ588
は、トランジスタ688から690で構成される。読み
取りポート590は、それぞれトランジスタ770から
784で構成される。ロード・データ・ポート596
は、それぞれトランジスタ802から808で構成され
る。ALU書き込みデータ・ポート592は、それぞれ
トランジスタ786から800で構成される。
700で構成される。ラッチ568は、トランジスタ7
02から708で構成される。ラッチ570は、トラン
ジスタ709から714で構成される。スイッチ572
は、トランジスタ716で構成される。ラッチ574
は、トランジスタ718から724で構成される。ラッ
チ576は、トランジスタ726から734で構成され
る。スイッチ578は、トランジスタ736で構成され
る。ラッチ580は、トランジスタ738から744で
構成される。ラッチ582は、トランジスタ746から
752で構成される。2対1マルチプレクサ584は、
トランジスタ754から760で構成される。
の実施例は、2スレッド及び4スレッドを備えるものと
して示してきた。これらのスレッド数は、例として示し
たものであり、特定のアプリケーションの必要性に合わ
せて変更可能である。同様に、マルチ・スレッド・セル
の記憶素子を読み書きできる機能デバイスの数も、ここ
では例として示したものなので、特定のアプリケーショ
ンに合わせて変更可能である。
は、スレッド対応の記憶素子内容の選択がセル内で実行
されるという共通の属性をもつ。この共通の属性は、2
つの思想に従って本発明で実現された。即ち、例えば図
3から図12に示すような、データ線のデータ/記憶素
子への効率的な関連付け、及び例えば図13から図15
に示すような、データのデータ線への効率的な伝送の2
つである。更に各実施例は、最適な配線配置性(及び関
連する最適な最小数のトランジスタ)を備えるマルチ・
スレッド・メモリは、読み取り独立性及び書き込み独立
性の機能性が実際上無視できるほど小さいので、従来の
技術の支配的な考えとは逆に、これらの独立性を除去す
ることにより、実質的に不都合な結果が生じることなく
作成できるという、発明者が明確にした利点を利用して
いる。これらの機能性の1つ又は両方を実現するために
必要な余分のトランジスタがないので、表面面積の経済
性を増進させることができる。
読み取りポートの数は、それぞれメモリ内の各セルへの
書き込みや、セルからの読み取りができる機能ユニット
の数により決まる。一般的に、セル毎に少なくとも2つ
の書き込みポート、及び少なくとも2つの読み取りポー
トが存在する。セル当たりの書き込みポート及び読み取
りポートの組み合せの例としては、3書き込みポートと
6読み取りポート、及び12書き込みポートと8読み取
りポートなどがある。
は、マルチ・スレッド・コンピュータ用の汎用アレイと
して、マルチ・スレッド・コンピュータのスキャン可能
な汎用アレイとして、超長命令語(「VLIW」)コン
ピュータ用アレイとして、及びマルチ・スレッド・コン
ピュータの内容をアドレス指定できるメモリとして使用
できる。
いるため、スレッドを追加するときに、各スレッド用の
書き込みポート及び読み取りポートの別個のセットを追
加する必要がないという利点がある。
グがセル内で実行される、即ちセル内スレッド・デコー
ディングという利点ももつ。このセル内スレッド・デコ
ーディングは、通常最も重要なパラメータである読み取
り性能が、スレッドの追加による影響を受けないという
効果がある。
で変形できることは明らかである。このような変形は、
本発明の意図と範囲を逸脱しないものであり、このよう
な変更のすべてが、前記特許請求の範囲に含まれるよう
に解釈されるものであることは、当分野に知識をもつ当
業者には明らかであろう。
の事項を開示する。
一プロセッサをもち、複数のスレッドを使用するマルチ
・スレッド・コンピュータ・システムにおけるマルチ・
スレッド・メモリであって、前記マルチ・スレッド・メ
モリが、 (A)複数のマルチ・スレッド記憶セルと、 (B)前記マルチ・スレッド記憶セルの選択された1つ
に情報を供給する少なくとも1つの書き込みデコーダ
と、 (C)前記マルチ・スレッド記憶セルの選択された1つ
から情報をアクセスする少なくとも1つの読み取りデコ
ーダと、 を含み、各前記マルチ・スレッド記憶セルが、(a)各
々がスレッド対応内容を有する、N≧2(Nは自然数)
であるN個の記憶素子と、(b)前記少なくとも1つの
書き込みデコーダに作動状態で接続され、前記複数の記
憶素子に情報を提供する書き込みインタフェースと、
(c)前記少なくとも1つの読み取りデコーダに作動状
態で接続され、前記複数の記憶素子から情報を読み取る
読み取りインタフェースと、を含み、少なくとも1つの
前記読み取りインタフェース及び書き込みインタフェー
スが、少なくとも部分的に対応するスレッドを識別する
ことに基づいて前記スレッド対応内容の1つを選択する
ことにより、セル内部の前記スレッド対応内容の選択が
実施される、マルチ・スレッド・メモリ。 (2)少なくとも1つの前記インタフェースが、(a)
選択されたスレッドに対応するN個の記憶素子の1つを
選択するNセレクタと、(b)前記少なくとも1つのデ
コーダに前記Nセレクタを接続する、デコーダ当たり1
ポートの割合で存在する少なくとも1つのポートと、を
含む、(1)に記載のマルチ・スレッド・メモリ。 (3)前記読み取りインタフェースが、Nセレクタ及び
デコーダ当たり1ポートを含む、(2)に記載のマルチ
・スレッド・メモリ。 (4)(a)記憶素子当たり少なくとも1デコーダの比
率を確保するために十分な数である少なくともN個のデ
コーダと、(b)各記憶素子に対して、前記記憶素子を
前記デコーダに作動状態で接続するデコーダ当たり1つ
のポートを含み、これによって複数のスレッドに同時に
書き込むことを可能にする前記書き込みインタフェース
と、を含む、(3)に記載のマルチ・スレッド・メモ
リ。 (5)前記書き込みインタフェースが、Nセレクタ及び
デコーダ当たり1ポートを含む、(3)に記載のマルチ
・スレッド・メモリ。 (6)前記読み取りインタフェース及び書き込みインタ
フェースが、伝送ゲートで構成されるポートを含む、
(1)に記載のマルチ・スレッド・メモリ。 (7)前記読み取りインタフェース及び書き込みインタ
フェースが、パス・ゲートで構成されるポートを含む、
(1)に記載のマルチ・スレッド・メモリ。 (8)各前記記憶素子がマスタ記憶素子であり、前記マ
ルチ・スレッド記憶セルが、(a)前記マスタ記憶素子
にそれぞれが対応するN個のスレーブ記憶素子と、
(b)各前記マスタ/スレーブ記憶素子ペアに関連し、
前記スレーブ記憶素子を対応する前記マスタ記憶素子内
のデータの正確性の検証に使用するためのスキャニング
手段と、を更に含む、(1)に記載のマルチ・スレッド
・メモリ。 (9)前記マルチ・スレッド・メモリが、内容をアドレ
ス指定できるメモリであり、前記マルチ・スレッド・メ
モリが、各前記マルチ・スレッド記憶セルに関連付けら
れている、所要のビット・パターン内の各ビット値を各
前記スレッド対応内容と比較し、すべてのビット値の一
致を識別するための比較手段を更に含む、(1)に記載
のマルチ・スレッド・メモリ。 (10)前記マルチ・スレッド記憶セル内のN個の記憶
素子がリング状に接続され、前記インタフェースが作動
状態で前記N個の記憶素子のいずれかに接続され、所要
のスレッド対応内容が、前記インタフェースが接続され
た前記記憶素子内に配置されるまで、前記記憶素子内の
前記スレッド対応内容を前記リング内で循環させること
により、スレッド選択が行われる、(1)に記載のマル
チ・スレッド・メモリ。 (11)各前記記憶素子がラッチのペアを含む、(1
0)に記載のマルチ・スレッドメモリ。 (12)各前記マルチ・スレッド記憶セルが、前記書き
込みインタフェースが接続されている記憶素子とは別の
記憶素子に接続され、前記書き込みインタフェースがア
クセスするポイントとは別の前記リング上のポイントへ
のアクセスを可能にする、補助の書き込みインタフェー
スを含む、(10)に記載のマルチ・スレッド・メモ
リ。 (13)前記書き込みインタフェース及び読み取りイン
タフェースが同じ記憶素子に接続され、各前記マルチ・
スレッド記憶セルが、前記インタフェースに接続されて
いる記憶素子が、スレッド内容を循環させるときに前記
リング内の他の記憶素子をバイパスできるようにする、
リング・バイパス手段を更に含む、(10)に記載のマ
ルチ・スレッド・メモリ。 (14)前記マルチ・スレッド・メモリが少なくとも2
つの書き込みデコーダ及び少なくとも2つの読み取りデ
コーダを含み、前記書き込みインタフェースが、各前記
書き込みデコーダ用に記憶セル当たり少なくとも1つの
ポートを含み、前記読み取りインタフェースが、各前記
読み取りデコーダ用に記憶セル当たり少なくとも1つの
ポートを含む、(1)に記載のマルチ・スレッド・メモ
リ。 (15)前記マルチ・スレッド・メモリが、3個の書き
込みデコーダ及び6個の読み取りデコーダのセット、又
は12個の書き込みデコーダ及び8個の読み取りデコー
ダのセットのどちらかを含む、(14)に記載のマルチ
・スレッド・メモリ。 (16)(1)から(15)の任意の1つに記載された
マルチ・スレッド・メモリを含むマイクロプロセッサ。 (17)単一プロセッサをもち、複数のスレッドを使用
するマルチ・スレッド・コンピュータ・システム内で使
用するための、複数のマルチ・スレッド記憶セルで構成
されるマルチ・スレッド・メモリにおいて、前記単一プ
ロセッサが一度に1つのスレッドを処理し、前記単一プ
ロセッサが、前記マルチ・スレッド記憶セルの選択され
た1つに情報を供給する少なくとも1つの書き込みデコ
ーダと、前記マルチ・スレッド記憶セルの選択された1
つから情報をアクセスする少なくとも1つの読み取りデ
コーダとを含み、各前記マルチ・スレッド記憶セルが、
N≧2(Nは自然数)であるN個の記憶素子と、前記少
なくとも1つの書き込みデコーダに作動状態で接続さ
れ、前記複数の記憶素子に情報を供給する書き込みイン
タフェースと、前記少なくとも1つの読み取りデコーダ
に作動状態で接続され、前記複数の記憶素子から情報を
読み取る読み取りインタフェースとを含む、前記マルチ
・スレッド・メモリにおいて、(a)各前記N個の記憶
素子にスレッド対応内容を提供するステップと、(b)
少なくとも部分的に対応するスレッドを識別することに
よって、前記複数のスレッド対応内容の1つをセル内部
で選択するステップと、(c)前記複数のスレッド対応
内容の選択された1つを、前記書き込みインタフェース
及び読み取りインタフェースの少なくとも1つを介して
前記単一プロセッサに接続するステップと、を含むスレ
ッド選択方法。 (18)前記セル内部で選択するステップが、前記単一
プロセッサが処理しつつある前記スレッドを前記セルに
示すステップを含む、(17)に記載のスレッド選択方
法。 (19)前記複数のスレッド対応内容の1つをセル内部
で選択する前記ステップが、前記記憶素子の1つに直接
にデータ線を接続することにより選択する、(17)に
記載のスレッド選択方法。 (20)前記複数のスレッド対応内容の1つをセル内部
で選択する前記ステップが、前記スレッド対応内容の1
つが、前記書き込みインタフェース及び読み取りインタ
フェースの1つに接続された記憶素子内に配置されるま
で、前記複数のスレッド対応内容を前記N個の記憶素子
間をシフトすることにより選択する、(17)に記載の
スレッド選択方法。 (21)一度に1つのスレッドを処理する単一プロセッ
サをもち、複数のスレッドを使用するマルチ・スレッド
・コンピュータ・システムにおけるマルチ・スレッド・
メモリであって、前記マルチ・スレッド・メモリが (A)複数のマルチ・スレッド記憶セルと、 (B)前記マルチ・スレッド記憶セルの選択された1つ
に情報を供給する少なくとも1つの書き込みデコーダ
と、 (C)前記マルチ・スレッド記憶セルの選択された1つ
から情報をアクセスする少なくとも1つの読み取りデコ
ーダと、 を含み、各前記マルチ・スレッド記憶セルが、 (a)各々がスレッド対応内容を有する、N≧2(Nは
自然数)であるN個の記憶素子と、 (b)前記少なくとも1つの書き込みデコーダに作動状
態で接続され、前記複数の記憶素子に情報を供給する書
き込みインタフェースと、 (c)前記少なくとも1つの読み取りデコーダに作動状
態で接続され、前記複数の記憶素子から情報を読み取る
読み取りインタフェースと、 を含み、少なくとも1つの前記読み取りインタフェース
及び書き込みインタフェースが、(1)選択されたスレ
ッドに対応する、前記N個の記憶素子の1つを選択する
Nセレクタと、(2)少なくとも1つのデコーダに前記
Nセレクタを接続する、デコーダ当たり少なくとも1ポ
ートの割合で存在する少なくとも1つのポートと、を含
む、マルチ・スレッド・メモリ。 (22)前記読み取りインタフェースが、Nセレクタ及
びデコーダ当たり少なくとも1ポートを含む、(21)
に記載のマルチ・スレッド・メモリ。 (23)前記マルチ・スレッド・メモリが、スレッド当
たり少なくとも1デコーダの割合で、少なくとも2つの
書き込みデコーダを含み、前記書き込みインタフェース
が、各記憶素子に対して、デコーダ当たり少なくとも1
ポートのセットを含むことにより、複数のスレッドに同
時に書き込みが可能な、(22)に記載のマルチ・スレ
ッド・メモリ。 (24)前記マルチ・スレッド・メモリが、少なくとも
2つの書き込みデコーダと、少なくとも2つの読み取り
デコーダとを含み、前記書き込みインタフェースが、各
前記書き込みデコーダ用に記憶セル当たり少なくとも1
つのポートを含み、前記読み取りインタフェースが、各
前記読み取りデコーダ用に記憶セル当たり少なくとも1
つのポートを含む、(21)に記載のマルチ・スレッド
・メモリ。 (25)前記マルチ・スレッド・メモリが、3個の書き
込みデコーダ及び6個の読み取りデコーダのセット、又
は12個の書き込みデコーダ及び8個の読み取りデコー
ダのセットのどちらかを含む、(24)に記載のマルチ
・スレッド・メモリ。 (26)一度に1つのスレッドを処理する単一プロセッ
サをもち、複数のスレッドを使用するマルチ・スレッド
・コンピュータ・システムにおけるマルチ・スレッド・
メモリであって、前記マルチ・スレッド・メモリが、 (A)複数のマルチ・スレッド記憶セルと、 (B)前記マルチ・スレッド記憶セルの選択された1つ
に情報を供給する少なくとも1つの書き込みデコーダ
と、 (C)前記マルチ・スレッド記憶セルの選択された1つ
から情報をアクセスする少なくとも1つの読み取りデコ
ーダと、 を含み、各前記マルチ・スレッド記憶セルが、(a)各
々がスレッド対応内容を有する、N≧2(Nは自然数)
であるN個の記憶素子と、(b)前記少なくとも1つの
書き込みデコーダ及び少なくとも1つの記憶素子に作動
状態で接続され、前記複数の記憶素子に情報を供給する
書き込みインタフェースと、(c)前記少なくとも1つ
の読み取りデコーダ及び少なくとも1つの記憶素子に作
動状態で接続され、前記複数の記憶素子から情報を読み
取る読み取りインタフェースと、(d)マルチ・スレッ
ド記憶セル内のリング状に接続されたN個の記憶素子
と、を含み、所要のスレッド対応内容が、前記インタフ
ェースが接続された前記記憶素子内に配置されるまで、
前記記憶素子内の前記スレッド対応内容をリング内でシ
フトすることにより、スレッド選択が行われる、マルチ
・スレッド・メモリ。 (27)各前記記憶素子がラッチのペアを含む、(2
6)に記載のマルチ・スレッド・メモリ。 (28)各前記マルチ・スレッド記憶セルが、前記書き
込みインタフェースが接続されている記憶素子とは別の
記憶素子に接続され、前記書き込みインタフェースがア
クセスするポイントとは別の前記リング上のポイントへ
のアクセスを可能にする、補助の書き込みインタフェー
スを含む、(26)に記載のマルチ・スレッド・メモ
リ。 (29)前記書き込みインタフェース及び読み取りイン
タフェースが同じ記憶素子に接続され、各前記マルチ・
スレッド記憶セルが、前記インタフェースに接続された
記憶素子が、スレッド内容を循環させるときに前記リン
グ内の他の記憶素子をバイパスできるようにする、リン
グ・バイパス手段を更に含む、(26)に記載のマルチ
・スレッド・メモリ。 (30)前記マルチ・スレッド・メモリが、少なくとも
2つの書き込みデコーダと少なくとも2つの読み取りデ
コーダとを含み、前記書き込みインタフェースが、各前
記書き込みデコーダ用に記憶セル当たり少なくとも1ポ
ートを含み、前記読み取りインタフェースが、各前記読
み取りデコーダ用に記憶セル当たり少なくとも1ポート
を含む、(26)に記載のマルチ・スレッド・メモリ。 (31)前記マルチ・スレッド・メモリが、3個の書き
込みデコーダ及び6個の読み取りデコーダのセット、又
は12個の書き込みデコーダ及び8個の読み取りデコー
ダのセットのどちらかを含む、(30)に記載のマルチ
・スレッド・メモリ。
来技術のセルを示すブロック図である。
ルの、従来技術の2スレッド・アレイを示すブロック図
である。
施例を示すブロック図である。
ク図である。
の1代替方法を示す図である。
施例を示すブロック図である。
施例を示すブロック図である。
きるバージョンを示すブロック図である。
きるバージョンの概略図である。
で、内容をアドレス指定できるバージョンを示すブロッ
ク図である。
で、内容をアドレス指定できるバージョンの概略図であ
る。
実施例を示すブロック図である。
2) 204、206 トランジスタ(図5、図10、図1
2) 208、210、212、214、216、218 ト
ランジスタ(図5、図10、図12) 220、222、224、226、228、230 ト
ランジスタ(図5、図10、図12) 234、236、238、240、242、244 ト
ランジスタ(図5、図10、図12) 237、239 入力ライン(図5、図10、図12) 245、250 読み取りポート(図5) 246、248 トランジスタ(図5、図10、図1
2) 252、254 トランジスタ(図5) 420、422、424、426、428、430、4
32、434 トランジスタ(図10、図12) 452、454、456、458 ラッチ(図11、図
12) 502、504 トランジスタ(図12) 506、508、510、512 トランジスタ(図1
2) 514、516、518、520 トランジスタ(図1
2) 552、554、556、558 記憶素子(図13、
図15)) 562、588 インバータ(図13) 652、654、656 トランジスタ(図14) 658、660、662 トランジスタ(図14) 664、666、668 トランジスタ(図14) 670、672、674 トランジスタ(図14) 676、678、680、682 トランジスタ(図1
4) 684、686 トランジスタ(図14) 688、690 トランジスタ(図14) 692、694、696、698、700 トランジス
タ(図15) 702、704、706、708 トランジスタ(図1
5) 709、710、712、714 トランジスタ(図1
5) 716 トランジスタ(図15) 718、720、722、724 トランジスタ(図1
5) 726、728、730、734 トランジスタ(図1
5) 736 トランジスタ(図15) 738、740、742、744 トランジスタ(図1
5) 746、748、750、752 トランジスタ(図1
5) 754、756、758、760 トランジスタ(図1
5) 770、772、774、776、778、780、7
82、784 トランジスタ(図14) 786、788、790、792、794、796、7
98、800 トランジスタ(図14) 802、804、806、808 トランジスタ(図1
4)
Claims (31)
- 【請求項1】一度に1つのスレッドを処理する単一プロ
セッサをもち、複数のスレッドを使用するマルチ・スレ
ッド・コンピュータ・システムにおけるマルチ・スレッ
ド・メモリであって、前記マルチ・スレッド・メモリ
が、 (A)複数のマルチ・スレッド記憶セルと、 (B)前記マルチ・スレッド記憶セルの選択された1つ
に情報を供給する少なくとも1つの書き込みデコーダ
と、 (C)前記マルチ・スレッド記憶セルの選択された1つ
から情報をアクセスする少なくとも1つの読み取りデコ
ーダと、を含み、 各前記マルチ・スレッド記憶セルが、(a)各々がスレ
ッド対応内容を有する、N≧2(Nは自然数)であるN
個の記憶素子と、(b)前記少なくとも1つの書き込み
デコーダに作動状態で接続され、前記複数の記憶素子に
情報を提供する書き込みインタフェースと、(c)前記
少なくとも1つの読み取りデコーダに作動状態で接続さ
れ、前記複数の記憶素子から情報を読み取る読み取りイ
ンタフェースと、を含み、 少なくとも1つの前記読み取りインタフェース及び書き
込みインタフェースが、少なくとも部分的に対応するス
レッドを識別することに基づいて前記スレッド対応内容
の1つを選択することにより、セル内部の前記スレッド
対応内容の選択が実施される、マルチ・スレッド・メモ
リ。 - 【請求項2】少なくとも1つの前記インタフェースが、 (a)選択されたスレッドに対応するN個の記憶素子の
1つを選択するNセレクタと、 (b)前記少なくとも1つのデコーダに前記Nセレクタ
を接続する、デコーダ当たり1ポートの割合で存在する
少なくとも1つのポートと、を含む、請求項1に記載の
マルチ・スレッド・メモリ。 - 【請求項3】前記読み取りインタフェースが、Nセレク
タ及びデコーダ当たり1ポートを含む、請求項2に記載
のマルチ・スレッド・メモリ。 - 【請求項4】(a)記憶素子当たり少なくとも1デコー
ダの比率を確保するために十分な数である少なくともN
個のデコーダと、 (b)各記憶素子に対して、前記記憶素子を前記デコー
ダに作動状態で接続するデコーダ当たり1つのポートを
含み、これによって複数のスレッドに同時に書き込むこ
とを可能にする前記書き込みインタフェースと、を含
む、請求項3に記載のマルチ・スレッド・メモリ。 - 【請求項5】前記書き込みインタフェースが、Nセレク
タ及びデコーダ当たり1ポートを含む、請求項3に記載
のマルチ・スレッド・メモリ。 - 【請求項6】前記読み取りインタフェース及び書き込み
インタフェースが、伝送ゲートで構成されるポートを含
む、請求項1に記載のマルチ・スレッド・メモリ。 - 【請求項7】前記読み取りインタフェース及び書き込み
インタフェースが、パス・ゲートで構成されるポートを
含む、請求項1に記載のマルチ・スレッド・メモリ。 - 【請求項8】各前記記憶素子がマスタ記憶素子であり、 前記マルチ・スレッド記憶セルが、 (a)前記マスタ記憶素子にそれぞれが対応するN個の
スレーブ記憶素子と、 (b)各前記マスタ/スレーブ記憶素子ペアに関連し、
前記スレーブ記憶素子を対応する前記マスタ記憶素子内
のデータの正確性の検証に使用するためのスキャニング
手段と、を更に含む、請求項1に記載のマルチ・スレッ
ド・メモリ。 - 【請求項9】前記マルチ・スレッド・メモリが、内容を
アドレス指定できるメモリであり、前記マルチ・スレッ
ド・メモリが、各前記マルチ・スレッド記憶セルに関連
付けられている、所要のビット・パターン内の各ビット
値を各前記スレッド対応内容と比較し、すべてのビット
値の一致を識別するための比較手段を更に含む、請求項
1に記載のマルチ・スレッド・メモリ。 - 【請求項10】前記マルチ・スレッド記憶セル内のN個
の記憶素子がリング状に接続され、 前記インタフェースが作動状態で前記N個の記憶素子の
いずれかに接続され、 所要のスレッド対応内容が、前記インタフェースが接続
された前記記憶素子内に配置されるまで、前記記憶素子
内の前記スレッド対応内容を前記リング内で循環させる
ことにより、スレッド選択が行われる、請求項1に記載
のマルチ・スレッド・メモリ。 - 【請求項11】各前記記憶素子がラッチのペアを含む、
請求項10に記載のマルチ・スレッドメモリ。 - 【請求項12】各前記マルチ・スレッド記憶セルが、 前記書き込みインタフェースが接続されている記憶素子
とは別の記憶素子に接続され、前記書き込みインタフェ
ースがアクセスするポイントとは別の前記リング上のポ
イントへのアクセスを可能にする、補助の書き込みイン
タフェースを含む、請求項10に記載のマルチ・スレッ
ド・メモリ。 - 【請求項13】前記書き込みインタフェース及び読み取
りインタフェースが同じ記憶素子に接続され、 各前記マルチ・スレッド記憶セルが、 前記インタフェースに接続されている記憶素子が、スレ
ッド内容を循環させるときに前記リング内の他の記憶素
子をバイパスできるようにする、リング・バイパス手段
を更に含む、請求項10に記載のマルチ・スレッド・メ
モリ。 - 【請求項14】前記マルチ・スレッド・メモリが少なく
とも2つの書き込みデコーダ及び少なくとも2つの読み
取りデコーダを含み、 前記書き込みインタフェースが、各前記書き込みデコー
ダ用に記憶セル当たり少なくとも1つのポートを含み、 前記読み取りインタフェースが、各前記読み取りデコー
ダ用に記憶セル当たり少なくとも1つのポートを含む、
請求項1に記載のマルチ・スレッド・メモリ。 - 【請求項15】前記マルチ・スレッド・メモリが、3個
の書き込みデコーダ及び6個の読み取りデコーダのセッ
ト、又は12個の書き込みデコーダ及び8個の読み取り
デコーダのセットのどちらかを含む、請求項14に記載
のマルチ・スレッド・メモリ。 - 【請求項16】請求項1から請求項15の任意の1つに
記載されたマルチ・スレッド・メモリを含むマイクロプ
ロセッサ。 - 【請求項17】単一プロセッサをもち、複数のスレッド
を使用するマルチ・スレッド・コンピュータ・システム
内で使用するための、複数のマルチ・スレッド記憶セル
で構成されるマルチ・スレッド・メモリにおいて、前記
単一プロセッサが一度に1つのスレッドを処理し、前記
単一プロセッサが、前記マルチ・スレッド記憶セルの選
択された1つに情報を供給する少なくとも1つの書き込
みデコーダと、前記マルチ・スレッド記憶セルの選択さ
れた1つから情報をアクセスする少なくとも1つの読み
取りデコーダとを含み、各前記マルチ・スレッド記憶セ
ルが、N≧2(Nは自然数)であるN個の記憶素子と、
前記少なくとも1つの書き込みデコーダに作動状態で接
続され、前記複数の記憶素子に情報を供給する書き込み
インタフェースと、前記少なくとも1つの読み取りデコ
ーダに作動状態で接続され、前記複数の記憶素子から情
報を読み取る読み取りインタフェースとを含む、前記マ
ルチ・スレッド・メモリにおいて、 (a)各前記N個の記憶素子にスレッド対応内容を提供
するステップと、 (b)少なくとも部分的に対応するスレッドを識別する
ことによって、前記複数のスレッド対応内容の1つをセ
ル内部で選択するステップと、 (c)前記複数のスレッド対応内容の選択された1つ
を、前記書き込みインタフェース及び読み取りインタフ
ェースの少なくとも1つを介して前記単一プロセッサに
接続するステップと、を含むスレッド選択方法。 - 【請求項18】前記セル内部で選択するステップが、前
記単一プロセッサが処理しつつある前記スレッドを前記
セルに示すステップを含む、請求項17に記載のスレッ
ド選択方法。 - 【請求項19】前記複数のスレッド対応内容の1つをセ
ル内部で選択する前記ステップが、前記記憶素子の1つ
に直接にデータ線を接続することにより選択する、請求
項17に記載のスレッド選択方法。 - 【請求項20】前記複数のスレッド対応内容の1つをセ
ル内部で選択する前記ステップが、前記スレッド対応内
容の1つが、前記書き込みインタフェース及び読み取り
インタフェースの1つに接続された記憶素子内に配置さ
れるまで、前記複数のスレッド対応内容を前記N個の記
憶素子間をシフトすることにより選択する、請求項17
に記載のスレッド選択方法。 - 【請求項21】一度に1つのスレッドを処理する単一プ
ロセッサをもち、複数のスレッドを使用するマルチ・ス
レッド・コンピュータ・システムにおけるマルチ・スレ
ッド・メモリであって、前記マルチ・スレッド・メモリ
が (A)複数のマルチ・スレッド記憶セルと、 (B)前記マルチ・スレッド記憶セルの選択された1つ
に情報を供給する少なくとも1つの書き込みデコーダ
と、 (C)前記マルチ・スレッド記憶セルの選択された1つ
から情報をアクセスする少なくとも1つの読み取りデコ
ーダと、を含み、 各前記マルチ・スレッド記憶セルが、 (a)各々がスレッド対応内容を有する、N≧2(Nは
自然数)であるN個の記憶素子と、 (b)前記少なくとも1つの書き込みデコーダに作動状
態で接続され、前記複数の記憶素子に情報を供給する書
き込みインタフェースと、 (c)前記少なくとも1つの読み取りデコーダに作動状
態で接続され、前記複数の記憶素子から情報を読み取る
読み取りインタフェースと、を含み、 少なくとも1つの前記読み取りインタフェース及び書き
込みインタフェースが、(1)選択されたスレッドに対
応する、前記N個の記憶素子の1つを選択するNセレク
タと、(2)少なくとも1つのデコーダに前記Nセレク
タを接続する、デコーダ当たり少なくとも1ポートの割
合で存在する少なくとも1つのポートと、を含む、マル
チ・スレッド・メモリ。 - 【請求項22】前記読み取りインタフェースが、Nセレ
クタ及びデコーダ当たり少なくとも1ポートを含む、請
求項21に記載のマルチ・スレッド・メモリ。 - 【請求項23】前記マルチ・スレッド・メモリが、スレ
ッド当たり少なくとも1デコーダの割合で、少なくとも
2つの書き込みデコーダを含み、 前記書き込みインタフェースが、各記憶素子に対して、
デコーダ当たり少なくとも1ポートのセットを含むこと
により、複数のスレッドに同時に書き込みが可能な、請
求項22に記載のマルチ・スレッド・メモリ。 - 【請求項24】前記マルチ・スレッド・メモリが、少な
くとも2つの書き込みデコーダと、少なくとも2つの読
み取りデコーダとを含み、 前記書き込みインタフェースが、各前記書き込みデコー
ダ用に記憶セル当たり少なくとも1つのポートを含み、 前記読み取りインタフェースが、各前記読み取りデコー
ダ用に記憶セル当たり少なくとも1つのポートを含む、
請求項21に記載のマルチ・スレッド・メモリ。 - 【請求項25】前記マルチ・スレッド・メモリが、3個
の書き込みデコーダ及び6個の読み取りデコーダのセッ
ト、又は12個の書き込みデコーダ及び8個の読み取り
デコーダのセットのどちらかを含む、請求項24に記載
のマルチ・スレッド・メモリ。 - 【請求項26】一度に1つのスレッドを処理する単一プ
ロセッサをもち、複数のスレッドを使用するマルチ・ス
レッド・コンピュータ・システムにおけるマルチ・スレ
ッド・メモリであって、前記マルチ・スレッド・メモリ
が、 (A)複数のマルチ・スレッド記憶セルと、 (B)前記マルチ・スレッド記憶セルの選択された1つ
に情報を供給する少なくとも1つの書き込みデコーダ
と、 (C)前記マルチ・スレッド記憶セルの選択された1つ
から情報をアクセスする少なくとも1つの読み取りデコ
ーダと、 を含み、 各前記マルチ・スレッド記憶セルが、(a)各々がスレ
ッド対応内容を有する、N≧2(Nは自然数)であるN
個の記憶素子と、(b)前記少なくとも1つの書き込み
デコーダ及び少なくとも1つの記憶素子に作動状態で接
続され、前記複数の記憶素子に情報を供給する書き込み
インタフェースと、(c)前記少なくとも1つの読み取
りデコーダ及び少なくとも1つの記憶素子に作動状態で
接続され、前記複数の記憶素子から情報を読み取る読み
取りインタフェースと、(d)マルチ・スレッド記憶セ
ル内のリング状に接続されたN個の記憶素子と、を含
み、 所要のスレッド対応内容が、前記インタフェースが接続
された前記記憶素子内に配置されるまで、前記記憶素子
内の前記スレッド対応内容をリング内でシフトすること
により、スレッド選択が行われる、マルチ・スレッド・
メモリ。 - 【請求項27】各前記記憶素子がラッチのペアを含む、
請求項26に記載のマルチ・スレッド・メモリ。 - 【請求項28】各前記マルチ・スレッド記憶セルが、 前記書き込みインタフェースが接続されている記憶素子
とは別の記憶素子に接続され、前記書き込みインタフェ
ースがアクセスするポイントとは別の前記リング上のポ
イントへのアクセスを可能にする、補助の書き込みイン
タフェースを含む、請求項26に記載のマルチ・スレッ
ド・メモリ。 - 【請求項29】前記書き込みインタフェース及び読み取
りインタフェースが同じ記憶素子に接続され、 各前記マルチ・スレッド記憶セルが、 前記インタフェースに接続された記憶素子が、スレッド
内容を循環させるときに前記リング内の他の記憶素子を
バイパスできるようにする、リング・バイパス手段を更
に含む、請求項26に記載のマルチ・スレッド・メモ
リ。 - 【請求項30】前記マルチ・スレッド・メモリが、少な
くとも2つの書き込みデコーダと少なくとも2つの読み
取りデコーダとを含み、 前記書き込みインタフェースが、各前記書き込みデコー
ダ用に記憶セル当たり少なくとも1ポートを含み、 前記読み取りインタフェースが、各前記読み取りデコー
ダ用に記憶セル当たり少なくとも1ポートを含む、請求
項26に記載のマルチ・スレッド・メモリ。 - 【請求項31】前記マルチ・スレッド・メモリが、3個
の書き込みデコーダ及び6個の読み取りデコーダのセッ
ト、又は12個の書き込みデコーダ及び8個の読み取り
デコーダのセットのどちらかを含む、請求項30に記載
のマルチ・スレッド・メモリ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/675,315 US5778243A (en) | 1996-07-03 | 1996-07-03 | Multi-threaded cell for a memory |
US08/675315 | 1996-07-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1097461A true JPH1097461A (ja) | 1998-04-14 |
JP3562552B2 JP3562552B2 (ja) | 2004-09-08 |
Family
ID=24709941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17599697A Expired - Fee Related JP3562552B2 (ja) | 1996-07-03 | 1997-07-01 | メモリ用マルチ・スレッド・セル |
Country Status (2)
Country | Link |
---|---|
US (1) | US5778243A (ja) |
JP (1) | JP3562552B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008155794A1 (ja) | 2007-06-19 | 2008-12-24 | Fujitsu Limited | 情報処理装置 |
JP2010539603A (ja) * | 2007-09-12 | 2010-12-16 | クゥアルコム・インコーポレイテッド | パイプライン処理のためのレジスタファイルシステム及び方法 |
JP2013527949A (ja) * | 2010-03-22 | 2013-07-04 | クアルコム,インコーポレイテッド | 複数命令ストリームメモリシステム |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6378065B1 (en) * | 1998-04-27 | 2002-04-23 | Infineon Technologies North America Corp. | Apparatus with context switching capability |
US7117342B2 (en) * | 1998-12-03 | 2006-10-03 | Sun Microsystems, Inc. | Implicitly derived register specifiers in a processor |
US7114056B2 (en) | 1998-12-03 | 2006-09-26 | Sun Microsystems, Inc. | Local and global register partitioning in a VLIW processor |
US6718457B2 (en) * | 1998-12-03 | 2004-04-06 | Sun Microsystems, Inc. | Multiple-thread processor for threaded software applications |
US6629236B1 (en) * | 1999-11-12 | 2003-09-30 | International Business Machines Corporation | Master-slave latch circuit for multithreaded processing |
US6748556B1 (en) * | 2000-08-15 | 2004-06-08 | International Business Machines Corporation | Changing the thread capacity of a multithreaded computer processor |
US6681345B1 (en) * | 2000-08-15 | 2004-01-20 | International Business Machines Corporation | Field protection against thread loss in a multithreaded computer processor |
TWI230392B (en) | 2001-06-18 | 2005-04-01 | Innovative Silicon Sa | Semiconductor device |
US7209996B2 (en) * | 2001-10-22 | 2007-04-24 | Sun Microsystems, Inc. | Multi-core multi-thread processor |
US6857062B2 (en) * | 2001-11-30 | 2005-02-15 | Intel Corporation | Broadcast state renaming in a microprocessor |
US6968445B2 (en) * | 2001-12-20 | 2005-11-22 | Sandbridge Technologies, Inc. | Multithreaded processor with efficient processing for convergence device applications |
WO2003088036A1 (en) * | 2002-04-12 | 2003-10-23 | Koninklijke Philips Electronics N.V. | System and method for instruction level multithreading |
EP1357603A3 (en) * | 2002-04-18 | 2004-01-14 | Innovative Silicon SA | Semiconductor device |
EP1355316B1 (en) * | 2002-04-18 | 2007-02-21 | Innovative Silicon SA | Data storage device and refreshing method for use with such device |
US6904511B2 (en) * | 2002-10-11 | 2005-06-07 | Sandbridge Technologies, Inc. | Method and apparatus for register file port reduction in a multithreaded processor |
US7085153B2 (en) * | 2003-05-13 | 2006-08-01 | Innovative Silicon S.A. | Semiconductor memory cell, array, architecture and device, and method of operating same |
US6912150B2 (en) * | 2003-05-13 | 2005-06-28 | Lionel Portman | Reference current generator, and method of programming, adjusting and/or operating same |
US20040228168A1 (en) * | 2003-05-13 | 2004-11-18 | Richard Ferrant | Semiconductor memory device and method of operating same |
US7335934B2 (en) * | 2003-07-22 | 2008-02-26 | Innovative Silicon S.A. | Integrated circuit device, and method of fabricating same |
US7184298B2 (en) * | 2003-09-24 | 2007-02-27 | Innovative Silicon S.A. | Low power programming technique for a floating body memory transistor, memory cell, and memory array |
US20050120195A1 (en) * | 2003-11-13 | 2005-06-02 | Alok Kumar | Allocating memory |
FR2864660B1 (fr) * | 2003-12-30 | 2006-03-10 | St Microelectronics Sa | Processeur a chemins de traitement multiples avec bus dedie |
US7136308B2 (en) * | 2004-11-01 | 2006-11-14 | Sun Microsystems, Inc. | Efficient method of data transfer between register files and memories |
US7203100B2 (en) * | 2004-11-01 | 2007-04-10 | Sun Mircosystems, Inc. | Efficient implementation of a read scheme for multi-threaded register file |
US7476939B2 (en) * | 2004-11-04 | 2009-01-13 | Innovative Silicon Isi Sa | Memory cell having an electrically floating body transistor and programming technique therefor |
US7251164B2 (en) * | 2004-11-10 | 2007-07-31 | Innovative Silicon S.A. | Circuitry for and method of improving statistical distribution of integrated circuits |
US7301838B2 (en) * | 2004-12-13 | 2007-11-27 | Innovative Silicon S.A. | Sense amplifier circuitry and architecture to write data into and/or read from memory cells |
US20060136919A1 (en) * | 2004-12-17 | 2006-06-22 | Sun Microsystems, Inc. | System and method for controlling thread suspension in a multithreaded processor |
US7301803B2 (en) * | 2004-12-22 | 2007-11-27 | Innovative Silicon S.A. | Bipolar reading technique for a memory cell having an electrically floating body transistor |
US20070023833A1 (en) * | 2005-07-28 | 2007-02-01 | Serguei Okhonin | Method for reading a memory cell having an electrically floating body transistor, and memory cell and array implementing same |
US7606066B2 (en) | 2005-09-07 | 2009-10-20 | Innovative Silicon Isi Sa | Memory cell and memory cell array having an electrically floating body transistor, and methods of operating same |
US7355916B2 (en) * | 2005-09-19 | 2008-04-08 | Innovative Silicon S.A. | Method and circuitry to generate a reference current for reading a memory cell, and device implementing same |
US20070085140A1 (en) * | 2005-10-19 | 2007-04-19 | Cedric Bassin | One transistor memory cell having strained electrically floating body region, and method of operating same |
US7683430B2 (en) * | 2005-12-19 | 2010-03-23 | Innovative Silicon Isi Sa | Electrically floating body memory cell and array, and method of operating or controlling same |
US7542345B2 (en) * | 2006-02-16 | 2009-06-02 | Innovative Silicon Isi Sa | Multi-bit memory cell having electrically floating body transistor, and method of programming and reading same |
US7492632B2 (en) | 2006-04-07 | 2009-02-17 | Innovative Silicon Isi Sa | Memory array having a programmable word length, and method of operating same |
US7606098B2 (en) | 2006-04-18 | 2009-10-20 | Innovative Silicon Isi Sa | Semiconductor memory array architecture with grouped memory cells, and method of controlling same |
US7933142B2 (en) | 2006-05-02 | 2011-04-26 | Micron Technology, Inc. | Semiconductor memory cell and array using punch-through to program and read same |
WO2007138532A1 (en) * | 2006-05-25 | 2007-12-06 | Nxp B.V. | Unified multi-ported register-file with uniform read and selective write ports |
US8069377B2 (en) | 2006-06-26 | 2011-11-29 | Micron Technology, Inc. | Integrated circuit having memory array including ECC and column redundancy and method of operating the same |
US7542340B2 (en) | 2006-07-11 | 2009-06-02 | Innovative Silicon Isi Sa | Integrated circuit including memory array having a segmented bit line architecture and method of controlling and/or operating same |
KR101406604B1 (ko) | 2007-01-26 | 2014-06-11 | 마이크론 테크놀로지, 인코포레이티드 | 게이트형 바디 영역으로부터 격리되는 소스/드레인 영역을 포함하는 플로팅-바디 dram 트랜지스터 |
WO2009031052A2 (en) | 2007-03-29 | 2009-03-12 | Innovative Silicon S.A. | Zero-capacitor (floating body) random access memory circuits with polycide word lines and manufacturing methods therefor |
US8064274B2 (en) | 2007-05-30 | 2011-11-22 | Micron Technology, Inc. | Integrated circuit having voltage generation circuitry for memory cell array, and method of operating and/or controlling same |
US8085594B2 (en) | 2007-06-01 | 2011-12-27 | Micron Technology, Inc. | Reading technique for memory cell with electrically floating body transistor |
US8812824B2 (en) | 2007-06-13 | 2014-08-19 | International Business Machines Corporation | Method and apparatus for employing multi-bit register file cells and SMT thread groups |
US9250899B2 (en) | 2007-06-13 | 2016-02-02 | International Business Machines Corporation | Method and apparatus for spatial register partitioning with a multi-bit cell register file |
CN101689110B (zh) * | 2007-06-20 | 2013-07-31 | 富士通株式会社 | 指令执行控制装置以及指令执行控制方法 |
WO2009039169A1 (en) | 2007-09-17 | 2009-03-26 | Innovative Silicon S.A. | Refreshing data of memory cells with electrically floating body transistors |
US8536628B2 (en) | 2007-11-29 | 2013-09-17 | Micron Technology, Inc. | Integrated circuit having memory cell array including barriers, and method of manufacturing same |
US8349662B2 (en) | 2007-12-11 | 2013-01-08 | Micron Technology, Inc. | Integrated circuit having memory cell array, and method of manufacturing same |
US8773933B2 (en) | 2012-03-16 | 2014-07-08 | Micron Technology, Inc. | Techniques for accessing memory cells |
US8014195B2 (en) | 2008-02-06 | 2011-09-06 | Micron Technology, Inc. | Single transistor memory cell |
US8189376B2 (en) | 2008-02-08 | 2012-05-29 | Micron Technology, Inc. | Integrated circuit having memory cells including gate material having high work function, and method of manufacturing same |
US7957206B2 (en) | 2008-04-04 | 2011-06-07 | Micron Technology, Inc. | Read circuitry for an integrated circuit having memory cells and/or a memory cell array, and method of operating same |
US7947543B2 (en) | 2008-09-25 | 2011-05-24 | Micron Technology, Inc. | Recessed gate silicon-on-insulator floating body device with self-aligned lateral isolation |
US7933140B2 (en) | 2008-10-02 | 2011-04-26 | Micron Technology, Inc. | Techniques for reducing a voltage swing |
US7924630B2 (en) | 2008-10-15 | 2011-04-12 | Micron Technology, Inc. | Techniques for simultaneously driving a plurality of source lines |
US8223574B2 (en) | 2008-11-05 | 2012-07-17 | Micron Technology, Inc. | Techniques for block refreshing a semiconductor memory device |
US8213226B2 (en) * | 2008-12-05 | 2012-07-03 | Micron Technology, Inc. | Vertical transistor memory cell and array |
US8319294B2 (en) | 2009-02-18 | 2012-11-27 | Micron Technology, Inc. | Techniques for providing a source line plane |
WO2010102106A2 (en) | 2009-03-04 | 2010-09-10 | Innovative Silicon Isi Sa | Techniques for forming a contact to a buried diffusion layer in a semiconductor memory device |
WO2010114890A1 (en) | 2009-03-31 | 2010-10-07 | Innovative Silicon Isi Sa | Techniques for providing a semiconductor memory device |
US8139418B2 (en) | 2009-04-27 | 2012-03-20 | Micron Technology, Inc. | Techniques for controlling a direct injection semiconductor memory device |
US8508994B2 (en) | 2009-04-30 | 2013-08-13 | Micron Technology, Inc. | Semiconductor device with floating gate and electrically floating body |
US8498157B2 (en) | 2009-05-22 | 2013-07-30 | Micron Technology, Inc. | Techniques for providing a direct injection semiconductor memory device |
US8537610B2 (en) | 2009-07-10 | 2013-09-17 | Micron Technology, Inc. | Techniques for providing a semiconductor memory device |
US9076543B2 (en) | 2009-07-27 | 2015-07-07 | Micron Technology, Inc. | Techniques for providing a direct injection semiconductor memory device |
US8199595B2 (en) | 2009-09-04 | 2012-06-12 | Micron Technology, Inc. | Techniques for sensing a semiconductor memory device |
US8174881B2 (en) | 2009-11-24 | 2012-05-08 | Micron Technology, Inc. | Techniques for reducing disturbance in a semiconductor device |
US8310893B2 (en) | 2009-12-16 | 2012-11-13 | Micron Technology, Inc. | Techniques for reducing impact of array disturbs in a semiconductor memory device |
US8416636B2 (en) | 2010-02-12 | 2013-04-09 | Micron Technology, Inc. | Techniques for controlling a semiconductor memory device |
US8411513B2 (en) | 2010-03-04 | 2013-04-02 | Micron Technology, Inc. | Techniques for providing a semiconductor memory device having hierarchical bit lines |
US8576631B2 (en) | 2010-03-04 | 2013-11-05 | Micron Technology, Inc. | Techniques for sensing a semiconductor memory device |
US8369177B2 (en) | 2010-03-05 | 2013-02-05 | Micron Technology, Inc. | Techniques for reading from and/or writing to a semiconductor memory device |
US8547738B2 (en) | 2010-03-15 | 2013-10-01 | Micron Technology, Inc. | Techniques for providing a semiconductor memory device |
US8411524B2 (en) | 2010-05-06 | 2013-04-02 | Micron Technology, Inc. | Techniques for refreshing a semiconductor memory device |
US8531878B2 (en) | 2011-05-17 | 2013-09-10 | Micron Technology, Inc. | Techniques for providing a semiconductor memory device |
US9559216B2 (en) | 2011-06-06 | 2017-01-31 | Micron Technology, Inc. | Semiconductor memory device and method for biasing same |
US8631292B2 (en) * | 2011-08-29 | 2014-01-14 | Freescale Semiconductor, Inc. | Multi-threading flip-flop circuit |
CN104252405B (zh) * | 2013-06-26 | 2018-02-27 | 腾讯科技(深圳)有限公司 | 日志信息的输出方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02289007A (ja) * | 1989-02-27 | 1990-11-29 | Internatl Business Mach Corp <Ibm> | タスク処理用論理回路 |
JPH0397035A (ja) * | 1989-09-11 | 1991-04-23 | Hitachi Ltd | 記憶手段構成方式 |
JPH0496827A (ja) * | 1990-08-14 | 1992-03-30 | Matsushita Electric Ind Co Ltd | レジスタファイル |
JPH05282147A (ja) * | 1992-02-03 | 1993-10-29 | Matsushita Electric Ind Co Ltd | レジスタファイル |
JPH0855028A (ja) * | 1994-08-12 | 1996-02-27 | Nec Corp | マイクロプロセッサ |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4502118A (en) * | 1981-07-07 | 1985-02-26 | Burroughs Corporation | Concurrent network of reduction processors for executing programs stored as treelike graphs employing variable-free applicative language codes |
US5051947A (en) * | 1985-12-10 | 1991-09-24 | Trw Inc. | High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream |
NL8701738A (nl) * | 1987-07-23 | 1989-02-16 | Philips Nv | Werkwijze voor het opslaan van een topologisch netwerk in een geheugen en voor het opzoeken van een 2-cel uit dat netwerk, alsmede inrichting voor het uitvoeren van de werkwijze voor het opzoeken. |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US5134705A (en) * | 1988-10-21 | 1992-07-28 | Unisys Corporation | System and method for concurrency simulation |
US5142676A (en) * | 1988-12-28 | 1992-08-25 | Gte Laboratories Incorporated | Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory |
US5197138A (en) * | 1989-12-26 | 1993-03-23 | Digital Equipment Corporation | Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching |
US5226131A (en) * | 1989-12-27 | 1993-07-06 | The United States Of America As Represented By The United States Department Of Energy | Sequencing and fan-out mechanism for causing a set of at least two sequential instructions to be performed in a dataflow processing computer |
US5301340A (en) * | 1990-10-31 | 1994-04-05 | International Business Machines Corporation | IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle |
US5237662A (en) * | 1991-06-27 | 1993-08-17 | Digital Equipment Corporation | System and method with a procedure oriented input/output mechanism |
US5430850A (en) * | 1991-07-22 | 1995-07-04 | Massachusetts Institute Of Technology | Data processing system with synchronization coprocessor for multiple threads |
US5404550A (en) * | 1991-07-25 | 1995-04-04 | Tandem Computers Incorporated | Method and apparatus for executing tasks by following a linked list of memory packets |
US5331643A (en) * | 1991-09-04 | 1994-07-19 | International Business Machines Corporation | Self-testing logic with embedded arrays |
CA2078315A1 (en) * | 1991-09-20 | 1993-03-21 | Christopher L. Reeve | Parallel processing apparatus and method for utilizing tiling |
US5448709A (en) * | 1992-10-13 | 1995-09-05 | Compaq Computer Corporation | Disk array controller having command descriptor blocks utilized by bus master and bus slave for respectively performing data transfer operations |
EP0614139A3 (en) * | 1993-03-04 | 1995-05-03 | Ibm | External procedure call for a distributed processing environment. |
WO1994027216A1 (en) * | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
-
1996
- 1996-07-03 US US08/675,315 patent/US5778243A/en not_active Expired - Fee Related
-
1997
- 1997-07-01 JP JP17599697A patent/JP3562552B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02289007A (ja) * | 1989-02-27 | 1990-11-29 | Internatl Business Mach Corp <Ibm> | タスク処理用論理回路 |
JPH0397035A (ja) * | 1989-09-11 | 1991-04-23 | Hitachi Ltd | 記憶手段構成方式 |
JPH0496827A (ja) * | 1990-08-14 | 1992-03-30 | Matsushita Electric Ind Co Ltd | レジスタファイル |
JPH05282147A (ja) * | 1992-02-03 | 1993-10-29 | Matsushita Electric Ind Co Ltd | レジスタファイル |
JPH0855028A (ja) * | 1994-08-12 | 1996-02-27 | Nec Corp | マイクロプロセッサ |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008155794A1 (ja) | 2007-06-19 | 2008-12-24 | Fujitsu Limited | 情報処理装置 |
US8151097B2 (en) | 2007-06-19 | 2012-04-03 | Fujitsu Limited | Multi-threaded system with branch |
JP2010539603A (ja) * | 2007-09-12 | 2010-12-16 | クゥアルコム・インコーポレイテッド | パイプライン処理のためのレジスタファイルシステム及び方法 |
US8725991B2 (en) | 2007-09-12 | 2014-05-13 | Qualcomm Incorporated | Register file system and method for pipelined processing |
JP2013527949A (ja) * | 2010-03-22 | 2013-07-04 | クアルコム,インコーポレイテッド | 複数命令ストリームメモリシステム |
US8867258B2 (en) | 2010-03-22 | 2014-10-21 | Qualcomm Incorporated | Memory cell that includes multiple non-volatile memories |
JP2015179559A (ja) * | 2010-03-22 | 2015-10-08 | クアルコム,インコーポレイテッド | 複数命令ストリームメモリシステム |
Also Published As
Publication number | Publication date |
---|---|
JP3562552B2 (ja) | 2004-09-08 |
US5778243A (en) | 1998-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3562552B2 (ja) | メモリ用マルチ・スレッド・セル | |
US6282627B1 (en) | Integrated processor and programmable data path chip for reconfigurable computing | |
US5301340A (en) | IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle | |
US6961841B2 (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
US6629236B1 (en) | Master-slave latch circuit for multithreaded processing | |
US5530817A (en) | Very large instruction word type computer for performing a data transfer between register files through a signal line path | |
US5677864A (en) | Intelligent memory architecture | |
KR100647526B1 (ko) | 태스크 스위칭에 의한 제로 오버헤드 컴퓨터 인터럽트 | |
EP1015984A1 (en) | An integrated processor and programmable data path chip for reconfigurable computing | |
US5721868A (en) | Rapid register file access by limiting access to a selectable register subset | |
US7743237B2 (en) | Register file bit and method for fast context switch | |
US6594711B1 (en) | Method and apparatus for operating one or more caches in conjunction with direct memory access controller | |
US7765250B2 (en) | Data processor with internal memory structure for processing stream data | |
JP2559382B2 (ja) | 情報処理装置 | |
EP0729606A1 (en) | Microcontroller with a reconfigurable program status word | |
US5606709A (en) | Register group circuit for data processing system | |
US6901490B2 (en) | Read/modify/write registers | |
US20050114626A1 (en) | Very long instruction word architecture | |
US6023441A (en) | Method and apparatus for selectively enabling individual sets of registers in a row of a register array | |
JP2943776B2 (ja) | 情報処理装置 | |
CA2515283C (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
JPH09106359A (ja) | 半導体集積回路 | |
JPH06267278A (ja) | 半導体記憶装置 | |
JPH04254985A (ja) | Dram制御装置 | |
AU6370794A (en) | Intelligent memory architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20031127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040218 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040218 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040310 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040521 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040521 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20040521 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040525 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080611 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080611 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090611 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100611 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |