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
Application number
JP9175996A
Other languages
English (en)
Other versions
JP3562552B2 (ja
Inventor
Gas Iperspacci Anthony
アンソニー・ガス・アイパースパッチ
Alan Christensen Todd
トッド・アラン・クリステンセン
Minesh Patel Binta
ビンタ・ミネシュ・パテル
Ban Fung Angia
アンギア・バン・ファン
James Roon Michael
マイケル・ジェイムズ・ローン
Nicholas Sutoriino Salvatoa
サルバトーア・ニコラス・ストリーノ
Joe Talick Brian
ブライアン・ジョウ・タリク
John Wurman Gregory
グレゴリー・ジョン・ウールマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1097461A publication Critical patent/JPH1097461A/ja
Application granted granted Critical
Publication of JP3562552B2 publication Critical patent/JP3562552B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple 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

(57)【要約】 【課題】 単一プロセッサをもち、複数のスレッドが使
用されるマルチ・スレッド・コンピュータ・システムで
使用するための、マルチ・スレッド・メモリ(及び関連
方法)を提供する。 【解決手段】 マルチ・スレッド・メモリは、マルチ・
スレッド記憶セル、選択されたマルチ・スレッド記憶セ
ルに情報を供給する、少なくとも1つの書き込みデコー
ダ、及び選択されたマルチ・スレッド記憶セルから情報
をアクセスする、少なくとも1つの読み取りデコーダを
含む。各マルチ・スレッド記憶セルは、N≧2である、
N個の記憶素子を含み、N個の記憶素子の各々は、スレ
ッド対応内容を有する。また各マルチ・スレッド記憶セ
ルは、セル内の記憶素子に情報を供給する書き込みイン
タフェース、及びセル内の記憶素子から情報を読み取る
読み取りインタフェースを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、表面面積の効率的
使用に関して最適な数のトランジスタを含むマルチ・ス
レッド記憶素子/セルに関連し、これらのトランジスタ
は、マルチ・スレッド素子/セルの入出力を制御する回
路を構成する。更に詳細に述べれば、本発明は、マイク
ロプロセッサ内に機能性の高いマルチ・スレッド・メモ
リを構成する、マルチ・スレッド記憶素子/セルに関連
する。
【0002】
【従来の技術】コンピュータ・アーキテクチャが常に目
指すものは、処理速度の改善、即ちプロセッサの利用度
及び(又は)システム・スループットの改善である。ノ
イマン型(von Neumann)アーキテクチャと
して知られる、最も一般的なプロセッサ・アーキテクチ
ャでは、プログラムが設定したシーケンスに従って命令
が順次実行される。このようなプロセッサは、単一スレ
ッドであると言われる。
【0003】ある種の命令は、プロセッサをアイドル状
態にする。例えば論理演算が実行される前に、データを
リモート位置からプロセッサのレジスタの1つ又は複数
に読み取るように命令が要求したとき、リモート位置に
記憶されているデータの読み取りに費やされる時間中
は、プロセッサがアイドル状態になる。この状況は、メ
モリ待ち時間と呼ばれる。
【0004】メモリ待ち時間の更に詳細な例は、プロセ
ッサがキャッシュ・メモリからデータを読み取ろうとす
るときである。データがキャッシュ内に存在しない場
合、即ちキャッシュ・ミスがある場合、プロセッサは、
そのデータをもっと速度が遅いリモート・メモリから読
み取る必要がある。こうしてメモリ待ち時間が発生す
る。
【0005】メモリ待ち時間に対処する方法の1つは、
これを許容することである。このメモリ待ち時間を許容
する技術の1つが、マルチ・スレッド処理である。マル
チ・スレッド・プロセッサは、命令によってプロセッサ
がアイドル状態になるとき、例えばメモリ待ち時間条件
が発生したときを認識し、メモリ待ち時間を起こした命
令から別の命令に、前の命令と関係なく切り替えること
ができる。前の命令は第1のスレッドと見なされ、後の
命令は第2のスレッドと見なされる。スレッドは、「コ
ンテキスト」と呼ばれる場合もある。第2のスレッド
に、プロセッサをアイドル状態にする操作が含まれてい
る場合、プロセッサは第2のスレッドを保留にして、第
3のスレッドに切り替える。ある時点で、プロセッサを
アイドル状態にしたスレッドの準備が整う。例えばメモ
リ待ち時間状態が終了する。この時点で、プロセッサは
これらのスレッドに戻ることができる。1つのスレッド
から次のスレッドに切り替えることにより、プロセッサ
は、アイドル状態になる時間の長さを最小にすることが
できる。言い替えると、プロセッサはビジー状態である
時間の長さを最大にできる。
【0006】一般的にスレッド即ちコンテキストは、プ
ログラム・カウンタ、レジスタ・セット(記憶素子)、
ならびにレジスタ・セット用の複数の書き込みポート及
び複数の読み取りポートを含む。これを図1に示す。
【0007】図1は、2つのスレッドをもつ記憶アレイ
内のセルを示す。セルは標準の記憶素子で構成される。
スレッド0は、複数の書き込みポート2、1個の記憶素
子4、及び複数の読み取りポート6で構成される。スレ
ッド1は、複数の書き込みポート8、1個の記憶素子1
0、及び複数の読み取りポート12で構成される。書き
込みポート及び読み取りポートの数は、記憶素子への書
き込みや素子からの読み取りを実行するそれぞれの機能
ユニットの数により決まる。
【0008】図1に示すような従来の記憶アレイでは、
スレッド1の記憶素子への書き込みと同時に、スレッド
0の記憶素子への書き込みが可能である。同様に、スレ
ッド0の記憶素子用と、スレッド1の記憶素子用の読み
取りポートを別々にもつことにより、スレッド0及びス
レッド1の各々から、データを同時に読み取ることが可
能になる。これは、それぞれ書き込み独立性及び読み取
り独立性と呼ばれる。
【0009】超大規模集積回路(「VLSI」)の領域
では、集積回路が形式されるチップの表面面積の経済的
利用が非常に重要である。周知のようにVLSI技術が
進歩するにつれて、より小さな集積回路上により沢山の
デバイスが形成される、即ちトランジスタ密度が増加し
ている。2つの主要な要因がトランジスタ密度に影響す
る。即ち、トランジスタ・サイズと、トランジスタの相
互接続に必要な配線数である。配線数は、実装される特
定の回路(複数)の関数である。配線サイズの縮小、及
び(容量結合、又は混信を防ぐために必要な)配線の最
小間隔の問題は、トランジスタ・サイズの縮小化ほどに
は重要ではなかった。チップ上のトランジスタで構成さ
れる特定の回路において、配線の相互接続によって使用
される表面面積を扱うこの問題は、一般的に回路の「配
線配置性」と称される。即ち、回路は「配線が制約され
る」と考えられている。実際に特定の回路について、ト
ランジスタを1つ減らして表面面積の使用を削減する
と、トランジスタ自身が使用する表面面積の削減より、
関連する配線の相互接続で使用する表面面積の削減が貢
献する方が大きい。
【0010】発明者達は、読み取り又は書き込みの独立
性に関連する費用を評価した。即ち同時スレッド読み取
り機能、又は書き込み機能に関連する費用を、各記憶素
子の書き込みポートの構成に必要なトランジスタの数、
及び関連する配線配置性に関して評価した。
【0011】従来の技術では、読み取り独立性及び書き
込み独立性は、マルチ・スレッド・メモリに絶対的に必
要であると想定されていた。発明者達は、この従来の技
術において支配的な想定が誤りであることを明らかに
し、全体又は一部分で読み取り及び(又は)書き込み独
立性をなくすことにより、このような従来の技術のシス
テムの性能を改善する設計を開発した。我々は、これら
の従来の技術の想定が、マルチ・スレッド・メモリ上で
実際上不必要な表面面積の消費を強制していることを明
らかにした。
【0012】発明者達は、特にマルチ・スレッド・プロ
セッサでは、(実際上)読み取り独立性はほとんど使用
されない機能であることを明らかにした。マルチ・スレ
ッド・プロセッサは、一度に1つのスレッドからしか読
み取りができない。したがって、マルチ・スレッド・プ
ロセッサ自身、そのレジスタ・セットの読み取り独立性
を全く要求しない。複数のマルチ・スレッド・プロセッ
サが並列的に動作している環境では、プロセッサのレジ
スタ・セットに読み取り独立性が要求される状況がまれ
に発生する可能性がある。このような状況では、第1の
プロセッサが第1のスレッドから読み取っている間、第
2のプロセッサは、第1のプロセッサの第2のスレッド
からリモート・メモリ読み取りを実行する。我々は、読
み取り独立性を削除することで生じる不都合な結果は、
実際上無視できるものであり、除去できるトランジスタ
が消費していた表面面積を大きく節約できることを明ら
かにした。
【0013】発明者達は、同様にいくつかのアプリケー
ションでは、データを複数のスレッドの記憶素子に同時
に書き込むことは実際上あまり頻繁に発生しないので、
利点はほとんどないことを明らかにした。むしろデータ
をスレッド1の記憶素子に書き込むこととは非同期に、
データをスレッド0の記憶素子に書き込むことの方がよ
ほど一般的である。我々は、以上より書き込み独立性に
あまり重要な機能性はないので、著しく不都合な結果が
生じることなく、表面面積の経済性を改善できることを
明らかにした。
【0014】
【発明が解決しようとする課題】上記より、本発明の目
的は、従来の技術の問題点の解決にある。
【0015】本発明の目的は、集積回路チップの表面面
積の消費に優れた経済性をもつ、汎用レジスタなどのマ
ルチ・スレッド・メモリを作成することである。
【0016】本発明の目的は、最適な最小数のトランジ
スタで形成される、マルチ・スレッド・メモリを実現す
ることである。
【0017】本発明の目的は、記憶素子(マルチ・スレ
ッド・セルのスレッドに対応する)用の読み取り及び書
き込みポートの形成に必要な、最適な最小数のトランジ
スタで構成される、マルチ・スレッド・メモリを実現す
ることである。この目的は、読み取り独立性、及び書き
込み独立性の機能的利点は無視できるほど小さいのもの
であり、これらの独立性を選択的に削除しても不都合な
結果はほとんど生ぜず、これらの独立性を削除すること
によって関連する配線配置性が改善され、その結果表面
面積の経済性が改善されるという認識に基づいている。
【0018】
【課題を解決するための手段】発明者達が、上記で明ら
かにしたことから、上記の目的を満たす本発明の展開と
して、一度に1つのスレッドを処理する単一プロセッサ
をもち、複数のスレッドを使用するマルチ・スレッド・
コンピュータ・システムにおける、マルチ・スレッド・
メモリを提供する。このマルチ・スレッド・メモリは、
複数のマルチ・スレッド記憶セルと、マルチ・スレッド
記憶セル中の選択された1つに情報を供給する少なくと
も1つの書き込みデコーダと、マルチ・スレッド記憶セ
ル中の選択された1つから情報をアクセスする少なくと
も1つの読み取りデコーダとを含む。各マルチ・スレッ
ド記憶セルは、N≧2であるN個の記憶素子を含み、前
記N個の記憶素子の各々は、スレッド対応内容をもつ。
またこの記憶セルは、書き込みインタフェースを含み、
このインタフェースは前記少なくとも1つの書き込みデ
コーダと作動状態で接続され、前記複数の記憶素子に情
報を提供する。更にこの記憶セルは、読み取りインタフ
ェースを含み、このインタフェースは前記少なくとも1
つの読み取りデコーダと作動状態で接続され、前記複数
の記憶素子から情報を読み取る。前記読み取り及び書き
込みインタフェースの少なくとも1つが、少なくとも部
分的に、対応するスレッドを識別することによって、前
記スレッド対応内容の1つを選択し、セル内のスレッド
対応内容選択を実行する。
【0019】また単一のプロセッサをもち、複数のスレ
ッドを使用する、マルチ・スレッド・コンピュータ・シ
ステムに組み込まれた複数のマルチ・スレッド記憶セル
で構成されるマルチ・スレッド・メモリに使用される、
スレッド選択方法を提供することによって、本発明の目
的が達成される。前記単一プロセッサは、一度に1つの
スレッドを処理し、前記プロセッサは、マルチ・スレッ
ド記憶セルの選択された1つに情報を提供する少なくと
も1つの書き込みデコーダと、マルチ・スレッド記憶セ
ルの選択された1つから情報をアクセスする少なくとも
1つの読み取りデコーダとを含む。各マルチ・スレッド
記憶セルは、N個の記憶素子を含む。ここで、N≧2で
あり、前記N個の記憶素子の各々は、スレッド対応内容
をもつ。またこの記憶セルは、前記少なくとも1つの書
き込みデコーダと作動状態で接続され、前記複数の記憶
素子に情報を提供する書き込みインタフェースと、前記
少なくとも1つの読み取りデコーダと作動状態で接続さ
れ、前記複数の記憶素子から情報を読み取る読み取りイ
ンタフェースとを含む。スレッド選択方法には、各前記
N個の記憶素子にスレッド対応内容を提供するステップ
と、少なくとも部分的には対応するスレッドを識別する
ことによって、前記複数のスレッド対応内容の1つをセ
ル内で選択するステップと、少なくとも1つの前記書き
込み及び読み取りインタフェースを介して、前記複数の
スレッド対応内容の選択された1つを前記単一プロセッ
サに接続するステップを含む。前記複数のスレッド対応
内容の1つをセル内で選択するステップは、次のような
方法で選択する。即ち、単一プロセッサが処理している
スレッドをセルに示し、データ線を前記記憶素子の1つ
に直接接続するか、又は前記1つのスレッド対応内容
が、前記書き込みインタフェース、及び読み取りインタ
フェースの1つに接続される記憶素子内に配置されるま
で、前記N個の記憶素子間を前記複数のスレッド対応内
容をシフトすることにより選択する。
【0020】本発明の前記の目的及びこの他の目的は、
この後の本発明の詳細な説明により更に明らかになる。
しかし、本発明の好ましい実施例を示しながら詳細な説
明及び特定の例を提示するが、これは説明のために提示
するものであり、本発明の意図と範囲を逸脱しない各種
の変更及び修正が可能であることは、当分野に知識をも
つ当業者にはこの詳細な説明から明らかであろう。
【0021】
【発明の実施の形態】図2は、標準記憶セルを使用し
た、従来の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により実行される)
は、アレイ内のセルの内部ではなく、各セルの外部で実
施される。
【0022】図2に示す従来の2スレッド・アレイは、
共通読み取りデータ・バスを備えているが、これはスレ
ッド0とスレッド1の各々からのデータの同時読み取り
を可能にするために、2つの読み取りデコーダが要求さ
れるので、読み取り独立性が必要な機能属性であるとい
う仮定を反映している。ここでも発明者達は、最適な配
線配置性(及び関連する最適な最小数のトランジスタ)
を備えたマルチ・スレッド・メモリは、読み取り独立性
を除去することによって、著しく不都合な結果が生じる
ことなく実現でき、その理由は、複数のスレッドからの
同時読み取りが必要である事象の発生数は、無視できる
ほど少数だからであることを明らかにした。
【0023】図3は、本発明のマルチ・スレッド記憶セ
ルの第1の実施例を示すブロック図である。特に図3
は、スレッド0及びスレッド1を選択的に読み取りポー
ト114に接続するスレッド・セレクタ110を含む、
マルチ・スレッド読み取りインタフェースを示す。読み
取りポート114の数は、記憶素子104及び108か
ら読み取ることができる機能ユニットの数(普通は2つ
以上であり、6または8など)に一致する。読み取り動
作では、各記憶素子が次のように機能ユニットに接続さ
れる。即ち、記憶素子がセレクタ110に接続される。
セレクタ110はポート114の1つに接続される。こ
の接続されたポートがデコーダに接続され、デコーダが
機能ユニットに接続される。
【0024】図3は、スレッド0用の書き込みポート1
02、及びスレッド1用の書き込みポート106(書き
込みポートの数は、例えば記憶素子104に書き込みで
きる機能ユニットの数に一致し、普通は2つ以上であ
り、3または12などである)、スレッド0用記憶素子
104(書き込みポート102とスレッド・セレクタ1
10に接続されている)、及びスレッド1用記憶素子1
08(書き込みポート106とスレッド・セレクタ11
0に接続されている)も含む。
【0025】図3のマルチ・スレッド・セルは、読み取
り独立性を削除することにより、実質的に不都合な結果
が生じることなく、チップ表面面積の消費を十分に減ら
すことができ、その理由は、一度に1つのスレッドしか
アクセスできない単一プロセッサにとって、読み取り独
立性は無視できるほど小さい機能属性であるからである
という発明者の発見を反映するものである。スレッド0
及びスレッド1の各々に個別の読み取りポートを構成す
る(従来の技術)ために必要なトランジスタの数より、
スレッド・セレクタ110と読み取りポート114の構
成に必要なトランジスタの数のほうが少ないので、著し
く不都合な結果が生じることなく、表面面積の経済性を
高められる。
【0026】図3では、プロセッサ(図示せず)はスレ
ッド・セレクタ110がスレッド0を選択するように制
御して、記憶素子104内のデータを読み取ることによ
り、記憶素子104のデータを読み取りポート114上
で使用可能にできる。同様に、記憶素子108内のデー
タを読み取るには、プロセッサは、スレッド・セレクタ
110が記憶素子108からの線を選択するように制御
する必要がある。
【0027】図4は、本発明の第1の実施例の更に詳細
なブロック図である。図4は、マルチ・スレッド記憶セ
ル160で構成される2スレッド・アレイ150を示
す。図4の2スレッド・アレイ150は、読み取りデコ
ーダ151から154、スレッド0用の書き込みデコー
ダ155、スレッド1用の書き込みデコーダ156、及
びマルチ・スレッド記憶セル160のアレイ158を含
む。ここでも、アレイ158内のセルの相互接続はすべ
て同じなので、記憶セル160の1つのセルに対する配
線相互接続だけを示す。
【0028】書き込みデコーダ155及び156の各々
は、書き込みアドレス・バス168に接続され、またデ
コーダ自身の書き込みスレッド選択線166及び170
にそれぞれ接続される。言い替えると、スレッド選択
は、2スレッド・レジスタ150の外部で実行される。
これと対照的に、単一の読み取りデコーダ152は、読
み取りアドレス・バス162に接続されるが、読み取り
選択線164には接続されない。むしろ各メモリ・セル
160が読み取り選択線に接続されるので、読み取られ
るスレッドの選択は、マルチ・スレッド記憶セル160
の外部ではなく、セルの内部で実行される。
【0029】図4は図2と比較すると、必要なデコーダ
が8個ではなく4個だけであるという利点がある。この
デコーダの数の減少は、4個の余分なデコーダに関連す
る表面面積消費の削減や、4つの余分なデコーダに関連
する制御論理回路の削減だけではなく、各デコーダ57
から60からアレイ62内の各セル56に結ばれた配線
相互接続に関連する表面面積の消費も削減する。このよ
うに、図4のアレイ150の配線配置性は、図2のアレ
イ54の配線配置性より優れている。また、図4の記憶
セル160の数は図2の記憶セルの数の半分なので、読
み取りデータ・バスを短くできる。これは例えば信号伝
達時間を短くするので、その結果応答が早まる。図4は
4つの読み取りデコーダを示すが、1個以上いくつであ
ってもよい。
【0030】図5は、本発明の第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で構成される。
【0031】スレッド・セレクタ110が、トランジス
タ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で構
成される。ここでも各インタフェースのポートの数は、
実際には、記憶素子への書き込みや記憶素子からの読み
取りを実行する機能ユニットの数に従って変化する。
【0032】図6は、第1の実施例の書き込みポート、
例えば図3の102及び106が、伝送ゲート(図5に
示す)としてではなく、パス・ゲートとして構成できる
ことを示す。代替として、他の技術の中で特にセット/
リセット・ゲート、又はデュアル・エンド・パス・ゲー
トを使用できる。
【0033】図7は、本発明のマルチ・スレッド記憶セ
ルの第2の実施例を示すブロック図である。図7には、
スレッド・セレクタ302にデータを供給する書き込み
ポート300の単一セット、スレッド0用記憶素子30
4(スレッド・セレクタ302に接続される)、スレッ
ド0用読み取りポート306(記憶素子304に接続さ
れる)、スレッド1用記憶素子308(スレッド・セレ
クタ302に接続される)、及びスレッド1用読み取り
ポート310(記憶素子308に接続される)が含まれ
る。ここでも書き込みポート及び読み取りポートの数
は、それぞれ記憶素子304及び308を読み書きする
機能ユニットの数に一致する。書き込み動作では、各機
能ユニットは次のようにして記憶素子に接続される。即
ち、機能ユニットは書き込みデコーダに接続され、書き
込みデコーダはポート300の1つに接続され、この接
続されたポートが書き込みセレクタ302に接続され、
更に書き込みセレクタ302が各記憶素子に接続され
る。
【0034】発明者達は、ここでも実際上、最適化され
た配線配置性(及び関連する最適な最小数のトランジス
タ)をもつマルチ・スレッド・メモリは、(アプリケー
ションによっては)書き込み独立性を削除することによ
り、実質的に不都合な結果が生じることなく達成でき、
その理由は、スレッド0の記憶素子304とスレッド1
の記憶素子308の両方に同時に書き込むためのデータ
が用意されるような事象は、ほとんど発生しないためで
あることを明らかにした。このように発明者達は、この
実施例では書き込み独立性機能を除去することにより
(図7に示すように)、著しく不都合な結果が生じるこ
となく、表面面積の経済性を大きく増進させた。
【0035】図8は、本発明のマルチ・スレッド記憶セ
ルの第3の実施例を示すブロック図である。図8では、
スレッド0の記憶素子356及びスレッド1の記憶素子
358が、双方ともスレッド・セレクタ354を介して
書き込みポート352の単一セットに接続されている。
同様に記憶素子356及び358は、どちらもスレッド
・セレクタ360を介して読み取りポート362の単一
セットに接続されている。
【0036】図9は、本発明の第1の実施例において、
内容をアドレス指定できるバージョンを示すブロック図
である。図3に示す第1の実施例のバージョンで使用さ
れたものと同じ素子には、同じ参照番号が付けられてい
る。図9と図3の唯一の相違点は、読み取りポート11
4だけではなく、比較ポート402もスレッド・セレク
タ110の出力を受信することである。内容をアドレス
指定できるメモリは周知の技術なので、説明は最小限に
止める。
【0037】図10は、第1の実施例のマルチ・スレッ
ド・メモリ・セルの内容をアドレス指定できるバージョ
ンを示す概略図である。特に比較ポート402は、単純
にするためにトランジスタ420から434で構成され
る単一ポートだけを含むように示されているが、このよ
うなポートを複数個使用することが可能である。
【0038】図11は、本発明の第1の実施例の自己テ
スト機能付きで、内容をアドレス指定できるバージョン
を示すブロック図である。図11と図9の相違点は、記
憶素子104が、ラッチ452及び454に置き換えら
れ、また記憶素子108が、ラッチ456及び458に
置き換えられている点である。更にスイッチ460が、
ラッチ454をラッチ456に接続する。書き込みポー
ト102に加えて、ラッチ452がスキャン・ポート4
50からデータを受信する。ラッチ452及び454を
通り、スイッチ460、ラッチ456及び458を通る
スキャン・ポート450からのパスは、第1の実施例の
マルチ・スレッド・メモリ・セルにレベル・センシティ
ブ走査設計(「LSSD」)方法を統合する。
【0039】ラッチ452と454、及びラッチ456
と458の各ペアは、マスタ・ラッチ及びスレーブ・ラ
ッチとして動作し、シフト・レジスタ・ラッチ・ペアを
構成する。これらのラッチ・ペアは、スイッチ460を
介して接続される。同様に構成された他のメモリ・セル
と共に、このような一連のマスタ/スレーブ・ラッチ・
ペアは、多様な方法でシフト・レジスタのように動作す
る。既知のデータを、この疑似シフト・レジスタを通じ
て循環させる、即ちスキャンさせることにより、回路が
正常に動作しているか否かをテストできる。このような
LSSD技術は周知の技術であり、例えばSmithに
発行された米国特許第5,331,643号に開示され
ている。
【0040】図12は、第1の実施例の自己テスト機能
付きで、内容をアドレス指定できるバージョンの概略を
示す図である。スキャン・ポート450が、トランジス
タ502から504で構成される。ラッチ452は図5
の記憶素子104に相当し、トランジスタ208から2
18で構成される。同様に、ラッチ456は図5の記憶
素子108に相当し、トランジスタ220から230で
構成される。ラッチ454は、トランジスタ506から
512で構成される。ラッチ458は、トランジスタ5
14から520で構成される。
【0041】図11に示される第1の実施例のバージョ
ンは、比較ポート402を削除して変形することができ
る。
【0042】図13は、本発明のマルチ・スレッド記憶
セルの第4の実施例を示すブロック図である。図13は
4スレッド記憶セルを示し、ここでは4つのスレッド
が、リング状に接続される4つの記憶素子552から5
58で表される。特定のスレッドに対応するデータの読
み取りや書き込みのために、所要のスレッドに対応する
内容(「スレッド対応内容」)が、主記憶素子552内
に配置されるまでリング内を循環、即ちスキャンされ
る。
【0043】図13では、主記憶素子552がスレッド
1に対応し、記憶素子554がスレッド2に対応し、記
憶素子556がスレッド3に対応し、また記憶素子55
8がスレッド4に対応するが、この対応関係は変化する
ことに注意されたい。例えば、記憶素子の内容が位置を
1つだけ循環/スキャンされる場合、結果は主記憶素子
552がスレッド4に対応し、記憶素子554がスレッ
ド1に対応し、記憶素子556がスレッド2に対応し、
記憶素子558がスレッド3に対応するようになる。
【0044】主記憶素子552は、ラッチ560及びラ
ッチ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からの出力を選択するよう
に制御できる。
【0045】図13の4スレッド記憶セルからデータを
読み取るときには、データは、ラッチ560からインバ
ータ562及びインバータ588を通り、読み取りポー
ト590に渡される。これは例えばマイクロプロセッサ
(図示せず)、又は別個のタイミング回路(図示せず)
からのタイミング信号に従って行われる。読み取りポー
ト590は、記憶素子552からデータを読み取ること
ができる機能ユニットの数と同じ数だけ存在する。
【0046】スレッド対応内容のスキャニング/循環
は、マイクロプロセッサなどのコントローラ(図示せ
ず)から図14、図15のトランジスタ674、69
2、668、709、716、726、736、75
2、及び760に供給されるタイミング信号により制御
される。
【0047】データは、次の4つの方法の1つにより図
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を介したバ
イパスが行われる。
【0048】第3及び第4のデータ書き込み方法は、ロ
ード・データ・ポート596に関係する。ロード・ポー
ト596からのデータは、バッファ598を通ってか
ら、3対1マルチプレクサ586を通って記憶素子55
2に渡されるか、又は3対1マルチプレクサ566を通
って記憶素子554に渡されるかのどちらかである。こ
こでもロード・データ・ポート596が設けられること
により、所要のスレッドに対する対応内容が、記憶素子
552から記憶素子554に循環/スキャンされた後
で、残りのデータを記憶素子554に書き込むことによ
り、記憶素子552への不完全なデータ書き込み動作を
補完する。
【0049】図14及び図15は、本発明の第4の実施
例の概略図である。バッファ598は、トランジスタ6
52から656で構成される。同様にバッファ594
は、トランジスタ658から662で構成される。バッ
ファ598及びバッファ594は、ポート596及びポ
ート592から3対1マルチプレクサ566及び586
それぞれへの直流(「DC」)の伝送を防ぐためのフィ
ードバックをもつ構成になっている。
【0050】3対1マルチプレクサ586は、トランジ
スタ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で構成される。
【0051】ラッチ564は、トランジスタ692から
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で構成される。
【0052】マルチ・スレッド・メモリ・セルの本発明
の実施例は、2スレッド及び4スレッドを備えるものと
して示してきた。これらのスレッド数は、例として示し
たものであり、特定のアプリケーションの必要性に合わ
せて変更可能である。同様に、マルチ・スレッド・セル
の記憶素子を読み書きできる機能デバイスの数も、ここ
では例として示したものなので、特定のアプリケーショ
ンに合わせて変更可能である。
【0053】図3から図15に示した本発明の各実施例
は、スレッド対応の記憶素子内容の選択がセル内で実行
されるという共通の属性をもつ。この共通の属性は、2
つの思想に従って本発明で実現された。即ち、例えば図
3から図12に示すような、データ線のデータ/記憶素
子への効率的な関連付け、及び例えば図13から図15
に示すような、データのデータ線への効率的な伝送の2
つである。更に各実施例は、最適な配線配置性(及び関
連する最適な最小数のトランジスタ)を備えるマルチ・
スレッド・メモリは、読み取り独立性及び書き込み独立
性の機能性が実際上無視できるほど小さいので、従来の
技術の支配的な考えとは逆に、これらの独立性を除去す
ることにより、実質的に不都合な結果が生じることなく
作成できるという、発明者が明確にした利点を利用して
いる。これらの機能性の1つ又は両方を実現するために
必要な余分のトランジスタがないので、表面面積の経済
性を増進させることができる。
【0054】上記の説明のように、書き込みポート及び
読み取りポートの数は、それぞれメモリ内の各セルへの
書き込みや、セルからの読み取りができる機能ユニット
の数により決まる。一般的に、セル毎に少なくとも2つ
の書き込みポート、及び少なくとも2つの読み取りポー
トが存在する。セル当たりの書き込みポート及び読み取
りポートの組み合せの例としては、3書き込みポートと
6読み取りポート、及び12書き込みポートと8読み取
りポートなどがある。
【0055】図3から図15で示した本発明の実施例
は、マルチ・スレッド・コンピュータ用の汎用アレイと
して、マルチ・スレッド・コンピュータのスキャン可能
な汎用アレイとして、超長命令語(「VLIW」)コン
ピュータ用アレイとして、及びマルチ・スレッド・コン
ピュータの内容をアドレス指定できるメモリとして使用
できる。
【0056】本実施例はスレッド・セレクタを使用して
いるため、スレッドを追加するときに、各スレッド用の
書き込みポート及び読み取りポートの別個のセットを追
加する必要がないという利点がある。
【0057】更に本実施例は、スレッド・デコーディン
グがセル内で実行される、即ちセル内スレッド・デコー
ディングという利点ももつ。このセル内スレッド・デコ
ーディングは、通常最も重要なパラメータである読み取
り性能が、スレッドの追加による影響を受けないという
効果がある。
【0058】本明細書で説明した本発明は、多様な方法
で変形できることは明らかである。このような変形は、
本発明の意図と範囲を逸脱しないものであり、このよう
な変更のすべてが、前記特許請求の範囲に含まれるよう
に解釈されるものであることは、当分野に知識をもつ当
業者には明らかであろう。
【0059】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0060】(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)各前記記憶素子がラッチのペアを含む、(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)に記載のマルチ
・スレッド・メモリ。
【図面の簡単な説明】
【図1】標準記憶素子の2スレッド記憶アレイ中の、従
来技術のセルを示すブロック図である。
【図2】共通読み取りデータ・バスを備えた標準記憶セ
ルの、従来技術の2スレッド・アレイを示すブロック図
である。
【図3】本発明のマルチ・スレッド記憶セルの第1の実
施例を示すブロック図である。
【図4】本発明の第1の実施例の更に詳細を示すブロッ
ク図である。
【図5】本発明の第1の実施例の概略図である。
【図6】第1の実施例の書き込みポートを実現するため
の1代替方法を示す図である。
【図7】本発明のマルチ・スレッド記憶セルの第2の実
施例を示すブロック図である。
【図8】本発明のマルチ・スレッド記憶セルの第3の実
施例を示すブロック図である。
【図9】本発明の第1の実施例の内容をアドレス指定で
きるバージョンを示すブロック図である。
【図10】本発明の第1の実施例の内容をドレス指定で
きるバージョンの概略図である。
【図11】本発明の第1の実施例の自己テスト機能付き
で、内容をアドレス指定できるバージョンを示すブロッ
ク図である。
【図12】本発明の第1の実施例の自己テスト機能付き
で、内容をアドレス指定できるバージョンの概略図であ
る。
【図13】本発明のマルチ・スレッド記憶セルの第4の
実施例を示すブロック図である。
【図14】本発明の第4の実施例の概略図である。
【図15】本発明の第4の実施例の概略図である。
【符号の説明】
48 2スレッド・アレイ(図2) 54 標準記憶セルのアレイ(図2) 62 標準記憶セルのアレイ(図2) 150 2スレッド・アレイ(図4) 158 アレイ(図4) 200、202 トランジスタ(図5、図10、図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)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トッド・アラン・クリステンセン アメリカ合衆国55901、ミネソタ州ロチェ スター、トウェンティサード・ストリー ト・ノースウェスト 2410 (72)発明者 ビンタ・ミネシュ・パテル アメリカ合衆国55901、ミネソタ州ロチェ スター、サーティエイス・ストリート・ノ ースウェスト 1909 (72)発明者 アンギア・バン・ファン アメリカ合衆国55902、ミネソタ州ロチェ スター、デルー・レイン・サウスウェスト 2217 (72)発明者 マイケル・ジェイムズ・ローン アメリカ合衆国55901、ミネソタ州ロチェ スター、ヒルズボロー・レイン・ノースウ ェスト 6019 (72)発明者 サルバトーア・ニコラス・ストリーノ アメリカ合衆国55902、ミネソタ州ロチェ スター、コートランド・レイン・サウスウ ェスト 622 (72)発明者 ブライアン・ジョウ・タリク アメリカ合衆国55901、ミネソタ州ロチェ スター、サーティシックスス・アベニュ ー・ノースウェスト 225 (72)発明者 グレゴリー・ジョン・ウールマン アメリカ合衆国55902、ミネソタ州ロチェ スター、メドウ・ラン・ドライブ・サウス ウェスト 123

Claims (31)

    【特許請求の範囲】
  1. 【請求項1】一度に1つのスレッドを処理する単一プロ
    セッサをもち、複数のスレッドを使用するマルチ・スレ
    ッド・コンピュータ・システムにおけるマルチ・スレッ
    ド・メモリであって、前記マルチ・スレッド・メモリ
    が、 (A)複数のマルチ・スレッド記憶セルと、 (B)前記マルチ・スレッド記憶セルの選択された1つ
    に情報を供給する少なくとも1つの書き込みデコーダ
    と、 (C)前記マルチ・スレッド記憶セルの選択された1つ
    から情報をアクセスする少なくとも1つの読み取りデコ
    ーダと、を含み、 各前記マルチ・スレッド記憶セルが、(a)各々がスレ
    ッド対応内容を有する、N≧2(Nは自然数)であるN
    個の記憶素子と、(b)前記少なくとも1つの書き込み
    デコーダに作動状態で接続され、前記複数の記憶素子に
    情報を提供する書き込みインタフェースと、(c)前記
    少なくとも1つの読み取りデコーダに作動状態で接続さ
    れ、前記複数の記憶素子から情報を読み取る読み取りイ
    ンタフェースと、を含み、 少なくとも1つの前記読み取りインタフェース及び書き
    込みインタフェースが、少なくとも部分的に対応するス
    レッドを識別することに基づいて前記スレッド対応内容
    の1つを選択することにより、セル内部の前記スレッド
    対応内容の選択が実施される、マルチ・スレッド・メモ
    リ。
  2. 【請求項2】少なくとも1つの前記インタフェースが、 (a)選択されたスレッドに対応するN個の記憶素子の
    1つを選択するNセレクタと、 (b)前記少なくとも1つのデコーダに前記Nセレクタ
    を接続する、デコーダ当たり1ポートの割合で存在する
    少なくとも1つのポートと、を含む、請求項1に記載の
    マルチ・スレッド・メモリ。
  3. 【請求項3】前記読み取りインタフェースが、Nセレク
    タ及びデコーダ当たり1ポートを含む、請求項2に記載
    のマルチ・スレッド・メモリ。
  4. 【請求項4】(a)記憶素子当たり少なくとも1デコー
    ダの比率を確保するために十分な数である少なくともN
    個のデコーダと、 (b)各記憶素子に対して、前記記憶素子を前記デコー
    ダに作動状態で接続するデコーダ当たり1つのポートを
    含み、これによって複数のスレッドに同時に書き込むこ
    とを可能にする前記書き込みインタフェースと、を含
    む、請求項3に記載のマルチ・スレッド・メモリ。
  5. 【請求項5】前記書き込みインタフェースが、Nセレク
    タ及びデコーダ当たり1ポートを含む、請求項3に記載
    のマルチ・スレッド・メモリ。
  6. 【請求項6】前記読み取りインタフェース及び書き込み
    インタフェースが、伝送ゲートで構成されるポートを含
    む、請求項1に記載のマルチ・スレッド・メモリ。
  7. 【請求項7】前記読み取りインタフェース及び書き込み
    インタフェースが、パス・ゲートで構成されるポートを
    含む、請求項1に記載のマルチ・スレッド・メモリ。
  8. 【請求項8】各前記記憶素子がマスタ記憶素子であり、 前記マルチ・スレッド記憶セルが、 (a)前記マスタ記憶素子にそれぞれが対応するN個の
    スレーブ記憶素子と、 (b)各前記マスタ/スレーブ記憶素子ペアに関連し、
    前記スレーブ記憶素子を対応する前記マスタ記憶素子内
    のデータの正確性の検証に使用するためのスキャニング
    手段と、を更に含む、請求項1に記載のマルチ・スレッ
    ド・メモリ。
  9. 【請求項9】前記マルチ・スレッド・メモリが、内容を
    アドレス指定できるメモリであり、前記マルチ・スレッ
    ド・メモリが、各前記マルチ・スレッド記憶セルに関連
    付けられている、所要のビット・パターン内の各ビット
    値を各前記スレッド対応内容と比較し、すべてのビット
    値の一致を識別するための比較手段を更に含む、請求項
    1に記載のマルチ・スレッド・メモリ。
  10. 【請求項10】前記マルチ・スレッド記憶セル内のN個
    の記憶素子がリング状に接続され、 前記インタフェースが作動状態で前記N個の記憶素子の
    いずれかに接続され、 所要のスレッド対応内容が、前記インタフェースが接続
    された前記記憶素子内に配置されるまで、前記記憶素子
    内の前記スレッド対応内容を前記リング内で循環させる
    ことにより、スレッド選択が行われる、請求項1に記載
    のマルチ・スレッド・メモリ。
  11. 【請求項11】各前記記憶素子がラッチのペアを含む、
    請求項10に記載のマルチ・スレッドメモリ。
  12. 【請求項12】各前記マルチ・スレッド記憶セルが、 前記書き込みインタフェースが接続されている記憶素子
    とは別の記憶素子に接続され、前記書き込みインタフェ
    ースがアクセスするポイントとは別の前記リング上のポ
    イントへのアクセスを可能にする、補助の書き込みイン
    タフェースを含む、請求項10に記載のマルチ・スレッ
    ド・メモリ。
  13. 【請求項13】前記書き込みインタフェース及び読み取
    りインタフェースが同じ記憶素子に接続され、 各前記マルチ・スレッド記憶セルが、 前記インタフェースに接続されている記憶素子が、スレ
    ッド内容を循環させるときに前記リング内の他の記憶素
    子をバイパスできるようにする、リング・バイパス手段
    を更に含む、請求項10に記載のマルチ・スレッド・メ
    モリ。
  14. 【請求項14】前記マルチ・スレッド・メモリが少なく
    とも2つの書き込みデコーダ及び少なくとも2つの読み
    取りデコーダを含み、 前記書き込みインタフェースが、各前記書き込みデコー
    ダ用に記憶セル当たり少なくとも1つのポートを含み、 前記読み取りインタフェースが、各前記読み取りデコー
    ダ用に記憶セル当たり少なくとも1つのポートを含む、
    請求項1に記載のマルチ・スレッド・メモリ。
  15. 【請求項15】前記マルチ・スレッド・メモリが、3個
    の書き込みデコーダ及び6個の読み取りデコーダのセッ
    ト、又は12個の書き込みデコーダ及び8個の読み取り
    デコーダのセットのどちらかを含む、請求項14に記載
    のマルチ・スレッド・メモリ。
  16. 【請求項16】請求項1から請求項15の任意の1つに
    記載されたマルチ・スレッド・メモリを含むマイクロプ
    ロセッサ。
  17. 【請求項17】単一プロセッサをもち、複数のスレッド
    を使用するマルチ・スレッド・コンピュータ・システム
    内で使用するための、複数のマルチ・スレッド記憶セル
    で構成されるマルチ・スレッド・メモリにおいて、前記
    単一プロセッサが一度に1つのスレッドを処理し、前記
    単一プロセッサが、前記マルチ・スレッド記憶セルの選
    択された1つに情報を供給する少なくとも1つの書き込
    みデコーダと、前記マルチ・スレッド記憶セルの選択さ
    れた1つから情報をアクセスする少なくとも1つの読み
    取りデコーダとを含み、各前記マルチ・スレッド記憶セ
    ルが、N≧2(Nは自然数)であるN個の記憶素子と、
    前記少なくとも1つの書き込みデコーダに作動状態で接
    続され、前記複数の記憶素子に情報を供給する書き込み
    インタフェースと、前記少なくとも1つの読み取りデコ
    ーダに作動状態で接続され、前記複数の記憶素子から情
    報を読み取る読み取りインタフェースとを含む、前記マ
    ルチ・スレッド・メモリにおいて、 (a)各前記N個の記憶素子にスレッド対応内容を提供
    するステップと、 (b)少なくとも部分的に対応するスレッドを識別する
    ことによって、前記複数のスレッド対応内容の1つをセ
    ル内部で選択するステップと、 (c)前記複数のスレッド対応内容の選択された1つ
    を、前記書き込みインタフェース及び読み取りインタフ
    ェースの少なくとも1つを介して前記単一プロセッサに
    接続するステップと、を含むスレッド選択方法。
  18. 【請求項18】前記セル内部で選択するステップが、前
    記単一プロセッサが処理しつつある前記スレッドを前記
    セルに示すステップを含む、請求項17に記載のスレッ
    ド選択方法。
  19. 【請求項19】前記複数のスレッド対応内容の1つをセ
    ル内部で選択する前記ステップが、前記記憶素子の1つ
    に直接にデータ線を接続することにより選択する、請求
    項17に記載のスレッド選択方法。
  20. 【請求項20】前記複数のスレッド対応内容の1つをセ
    ル内部で選択する前記ステップが、前記スレッド対応内
    容の1つが、前記書き込みインタフェース及び読み取り
    インタフェースの1つに接続された記憶素子内に配置さ
    れるまで、前記複数のスレッド対応内容を前記N個の記
    憶素子間をシフトすることにより選択する、請求項17
    に記載のスレッド選択方法。
  21. 【請求項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. 【請求項22】前記読み取りインタフェースが、Nセレ
    クタ及びデコーダ当たり少なくとも1ポートを含む、請
    求項21に記載のマルチ・スレッド・メモリ。
  23. 【請求項23】前記マルチ・スレッド・メモリが、スレ
    ッド当たり少なくとも1デコーダの割合で、少なくとも
    2つの書き込みデコーダを含み、 前記書き込みインタフェースが、各記憶素子に対して、
    デコーダ当たり少なくとも1ポートのセットを含むこと
    により、複数のスレッドに同時に書き込みが可能な、請
    求項22に記載のマルチ・スレッド・メモリ。
  24. 【請求項24】前記マルチ・スレッド・メモリが、少な
    くとも2つの書き込みデコーダと、少なくとも2つの読
    み取りデコーダとを含み、 前記書き込みインタフェースが、各前記書き込みデコー
    ダ用に記憶セル当たり少なくとも1つのポートを含み、 前記読み取りインタフェースが、各前記読み取りデコー
    ダ用に記憶セル当たり少なくとも1つのポートを含む、
    請求項21に記載のマルチ・スレッド・メモリ。
  25. 【請求項25】前記マルチ・スレッド・メモリが、3個
    の書き込みデコーダ及び6個の読み取りデコーダのセッ
    ト、又は12個の書き込みデコーダ及び8個の読み取り
    デコーダのセットのどちらかを含む、請求項24に記載
    のマルチ・スレッド・メモリ。
  26. 【請求項26】一度に1つのスレッドを処理する単一プ
    ロセッサをもち、複数のスレッドを使用するマルチ・ス
    レッド・コンピュータ・システムにおけるマルチ・スレ
    ッド・メモリであって、前記マルチ・スレッド・メモリ
    が、 (A)複数のマルチ・スレッド記憶セルと、 (B)前記マルチ・スレッド記憶セルの選択された1つ
    に情報を供給する少なくとも1つの書き込みデコーダ
    と、 (C)前記マルチ・スレッド記憶セルの選択された1つ
    から情報をアクセスする少なくとも1つの読み取りデコ
    ーダと、 を含み、 各前記マルチ・スレッド記憶セルが、(a)各々がスレ
    ッド対応内容を有する、N≧2(Nは自然数)であるN
    個の記憶素子と、(b)前記少なくとも1つの書き込み
    デコーダ及び少なくとも1つの記憶素子に作動状態で接
    続され、前記複数の記憶素子に情報を供給する書き込み
    インタフェースと、(c)前記少なくとも1つの読み取
    りデコーダ及び少なくとも1つの記憶素子に作動状態で
    接続され、前記複数の記憶素子から情報を読み取る読み
    取りインタフェースと、(d)マルチ・スレッド記憶セ
    ル内のリング状に接続されたN個の記憶素子と、を含
    み、 所要のスレッド対応内容が、前記インタフェースが接続
    された前記記憶素子内に配置されるまで、前記記憶素子
    内の前記スレッド対応内容をリング内でシフトすること
    により、スレッド選択が行われる、マルチ・スレッド・
    メモリ。
  27. 【請求項27】各前記記憶素子がラッチのペアを含む、
    請求項26に記載のマルチ・スレッド・メモリ。
  28. 【請求項28】各前記マルチ・スレッド記憶セルが、 前記書き込みインタフェースが接続されている記憶素子
    とは別の記憶素子に接続され、前記書き込みインタフェ
    ースがアクセスするポイントとは別の前記リング上のポ
    イントへのアクセスを可能にする、補助の書き込みイン
    タフェースを含む、請求項26に記載のマルチ・スレッ
    ド・メモリ。
  29. 【請求項29】前記書き込みインタフェース及び読み取
    りインタフェースが同じ記憶素子に接続され、 各前記マルチ・スレッド記憶セルが、 前記インタフェースに接続された記憶素子が、スレッド
    内容を循環させるときに前記リング内の他の記憶素子を
    バイパスできるようにする、リング・バイパス手段を更
    に含む、請求項26に記載のマルチ・スレッド・メモ
    リ。
  30. 【請求項30】前記マルチ・スレッド・メモリが、少な
    くとも2つの書き込みデコーダと少なくとも2つの読み
    取りデコーダとを含み、 前記書き込みインタフェースが、各前記書き込みデコー
    ダ用に記憶セル当たり少なくとも1ポートを含み、 前記読み取りインタフェースが、各前記読み取りデコー
    ダ用に記憶セル当たり少なくとも1ポートを含む、請求
    項26に記載のマルチ・スレッド・メモリ。
  31. 【請求項31】前記マルチ・スレッド・メモリが、3個
    の書き込みデコーダ及び6個の読み取りデコーダのセッ
    ト、又は12個の書き込みデコーダ及び8個の読み取り
    デコーダのセットのどちらかを含む、請求項30に記載
    のマルチ・スレッド・メモリ。
JP17599697A 1996-07-03 1997-07-01 メモリ用マルチ・スレッド・セル Expired - Fee Related JP3562552B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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