JPH06501123A - 複数の異種プロセッサをサポートすることのできるマイクロプロセッサ・アーキテクチャ - Google Patents

複数の異種プロセッサをサポートすることのできるマイクロプロセッサ・アーキテクチャ

Info

Publication number
JPH06501123A
JPH06501123A JP5502151A JP50215193A JPH06501123A JP H06501123 A JPH06501123 A JP H06501123A JP 5502151 A JP5502151 A JP 5502151A JP 50215193 A JP50215193 A JP 50215193A JP H06501123 A JPH06501123 A JP H06501123A
Authority
JP
Japan
Prior art keywords
bus
mau
data
address
request
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
JP5502151A
Other languages
English (en)
Other versions
JP3557617B2 (ja
Inventor
レンツ,デレク ジェイ.
ハギワラ,ヤスアキ
ラウ,テーリ
タン,チェン―ロン
Original Assignee
セイコーエプソン株式会社
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 セイコーエプソン株式会社 filed Critical セイコーエプソン株式会社
Publication of JPH06501123A publication Critical patent/JPH06501123A/ja
Application granted granted Critical
Publication of JP3557617B2 publication Critical patent/JP3557617B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 複数の異種プロセッサをサポートすることのできるマイクロプロセッサ・アーキ テクチャ 発明の背景 l亘立丘1 本発明は、一般的には、マイクロプロセッサ・アーキテクチャに関し2具体的に は、複数の異種マイクロプロセッサをサポートすることのできるマイクロプロセ ッサ・アーキテクチャに関する。
以下に列挙した米国特許出願は本件特許出願と同時に米国特許出願され、係属中 のものであるが、これらの米国特許出願に開示されており、かつそれぞれ対応し て出願された日本での特許出願に開示されている事項は、その出願番号を本明細 書で引用することにより本明細書の一部を構成するものとする。
1、発明の名称「高性能RISCマイクロプロセッサ・アーキテクチャJ () Iigh−Performance RISCMicroprocessor  Architecture) SMOS−7984MCF/GBR。
発明者Le T、Nguyen他、およびこれに対応する特願平〜 iテ・ 2、発明の名称「拡張可能Rx5Cマイクロプロセツサ・アーキテクチャJ ( Extensible RISCMLcroproces、5orArchit ecture) SMOS−7985MCF/GBR,米国特許出願筒07/7 27.05f9号、1991年7月8日出願、発明者Le T、Nguyen他 、およびこれに対応する特願平−号。
3、「アーキテクチャ上の依存関係を隔離したRISCマイクロプロセッサ・ア ーキテクチャJ (RISCMicroprocessor Architec ture with l5olatedArchitectural Depe ndencies) 5M0S−7987!1lcF/GBR/RCC,米国特 許出願筒07/726.744号、1991年7月8日出願、発明者Le T、  Nguyen他、およびこれに対応する特願平−号。
4、発明の名称「複数型レジスタ・セットを採用したRISCマイクロプロセッ サ・アーキテクチャJ (RISCMicroprocessor Archi tecture ImplementingMultiple Typed R egister 5ets) SMOS−7988MCF/GBR/RCC,米 国特許出願筒07/726.773号、1991年7月8日出願、発明者5an jiv Garg他、およびこれに対応する特願平−号。
5、発明の名称「高速トラップと例外状態をインプリメントしたRISCマイク ロプロセッサ・アーキテクチャJ (RISCMicroprocessor  ArchitectureImplementing Fast Trap a nd Exception State)SMOS−7989MCF/GBR/ WSW、米国特許出願筒077726.942号、1.991年7月8日出願、 発明者Le T、Nguyen他、およびこれに対応する特願平−可。
61発明の名称「シングル・チップ・ページ・プリンタ・コントローラJ (S ingle Chip Page Pr1nterController) S MO3−7991MCF/GBR/HKW、米国特許出願第07/726.92 9号、1991年7月8日出願、発明者Derek J、Lantz他、および これに対応する特願平−号。
なお1本明細書の記述は本件出願の優先権の基礎たる米国特許出願07/726 .893号の明細書の記載に基づくものであって、当該米国特許出願の番号を参 照することによって当該米国特許出願の明細書の記載内容が本明細書の一部分を 構成するものとする。
111工旦五j 複数のプロセッサをサポートできるマイクロプロセッサ・アーキテクチャを有す るコンピュータ・システムは、メモリと、データ・バス、アドレス・バスおよび 制御信号バスからなるメモリ・システム・バスと、データ・バス、アドレス・バ スおよび制御信号バスからなる入出力(110)バスと、複数の入出力デバイス と、複数のマイクロプロセッサとを備えているのが代表的である。入出力デバイ スは、例えば、直接メモリ・アクセス(DMA)コントローラ・プロセッサ、イ ーサネット(ETHERNET)チップ、その他の各種入出力デバイスで構成さ れている。マイクロプロセッサは、例え発明の概要 ば、複数の汎用プロセッサと特殊用途のプロセッサとから構成されている。これ らのプロセッサはメモリ・システム・バスを介してメモリに接続され、入出力バ スを介して入出力デバイスに接続されている。
これらのプロセッサがMAXIや入出力デバイスをアクセスするとき、アクセス の衝突が起こらないようにするには、プロセッサと入出力デバイスに優先度(優 先順位)を割り当てるメカニズム(方式)を取り入れる必要がある。優先度方式 には、固定優先度方式、システム条件が変化すると処理中に(on the f ly)優先度を変更できる動的優先度方式、あるいは両方式を組み合わせたもの がある。この種の優先度方式では、メモリと入出力デバイスの待ち時間を最小に するのと同時に、キJF/シュの一貫性(cache coherency)が 保たれるような形で、すべてのプロセッサがメモリと入出力デバイスに容易にア クセスできるようにすることも重要である。例えば、拒否されたセマフオア(s emaphore)をアクセスするためにシステム・バスを繰返し使用するよう にすると、システム・バスのバンド幅を大幅に縮減することができる。キャッシ ュ−貫性に問題が起こらないようにする予防的措置がとられていないと、複数の プロセッサが別々に同じデータを読み書きすることを容認することができない。
あり、スレーブ・デバイスとなり得るものには、メモ上述した問題に鑑みて、本 発明の主目的は、1つまたは2つ以上の入出力バスを介して複数のメモリ・アレ イおよび複数の入出力デバイスに接続された複数の異種プロセッサをサポートす ることのできるマイクロプロセッサ・アーキテクチャで構成されたコンピュータ ・システムを提供することにある。メモリ・アレイは、メモリ・アレイ・ユニッ ト(Memory Array Unit −MAU)と呼ばれる、インタフェ ース回路をもつサブシステムにグループ化されている。これらのプロセッサの各 々は、新規なメモリ制御ユニット(Memory ControlUnit − MC1J)を装備している。MCUの各々はスイッチ・ネットワークを備え、こ のスイッチ・ネットワークはスイッチ仲裁ユニット、データ用キャッシュ・イン タフェース回路、命令用キャッシュ・インタフェース回路、入出力インタフェー ス回路、およびボートと呼ばれる1つまたは2つ以上のボート・インタフェース 回路から構成され、ボート・インタフェース回路の各々はボート仲裁ユニットを 備えている。
スイッチ・ネットワークは、マスク(master)デバイスとスレーブ(sl ave)デバイスとが通信する手段となるものである。スイッチ側から見たとき 、マスク・デバイスとなり得るものには、Dキャッシュ、■キャッシュ、または 人出力コントローラ・ユニット(101j)がす・ボートまたはIOUがある。
スイッチ・ネットワークの機能は、様々な命令およびデータ要求をキャッシュ・ コントローラ・ユニット(CCU) (Iキャッシュ、Dキャッシュ)とIOU から受け取ることである。これらの要求を受け取ると、スイッチ・ネットワーク 内のスイッチ仲裁ユニットとボート・インタフェース回路内のボート仲裁ユニッ トは要求に優先順位を付けて、該当のメモリ・ボートに要求を引き渡す(これは 命令アドレスによって決まる)。
そのあと、ボート、場合によっては、複数のボートは必要なタイミング信号を生 成し、MAUとの間で必要なデータを送受する。それが書込み(WR)要求のと きは、ボートとスイッチとのやりとりは、スイッチがすべての書込みデータをブ ッシェして書込みデータFIFO(WDF)に入れることを終えると停止する。
それが読取り(RD)要求のときは、スイッチとボートとのやりとりは、ボート から読取りデータがスイッチを経由して要求側のマスクに送り返されたときのみ 終了する。
スイッチ・ネットワークは4セツトの3状態 (tri−state)バスから 構成され、これらのバスを通してキャッシュ、l0LIおよびメモリ・ボート間 が結ばれている。4セツトの3状態バスは、5W−REQ、 5ljWD、5W −RDおよび5W−IDBSTから構成されている。本発明の代表的な実施例で は、バス5WJEQは29本のワイヤで構成され、アドレス、IDおよび共用信 号をマスク・デバイスからスレーブ・デバイスへ送るために使用される。IDと は、メモリ要求に付けられたタグであり、要求側デバイスが返却するデータを正 しいメモリ・アドレスと関連づけることを可能にするものである。共用信号とは 、メモリ・アクセスが共用メモリに対するものであることを示した信号である。
マスク・デバイスがスレーブに対して要求を出すときは、スイッチ上にアドレス の32ビット全部を送る必要はない。これは、多重メモリ構造では、スイッチが アドレスをデコードし、要求がメモリ・ボート0、ボート1%IOU 、その他 に対するものかを判別できるためである。各ボートは事前に定義されたメモリ・ スペースが割り振られているので、5WJEQ上にアドレスの32ビット全部を 送信する必要がない。
実際には、例えば、機能コード、データ幅属性といった他の要求属性は、タイミ ングの制約があるために5JREQ上に送信されない。情報をスイッチを経由し て送る場合は、必要以上に1フエーズだけ遅れてボートに到着するので、メモリ 要求に対する待ち時間がさらに増加することになる。従って、この種の要求属性 は専用ワイヤ上をボートに送られるので、ボートはそのステート・マシンをもっ と早く始動できるので、メモリ待ち時間が減少することになる。
第8図に示すように、バス5WJDは32本のワイヤから構成され、書込みデー タをマスク・デバイス(Dキャッシュとl0UIからメモリ・ボート経由でFI FOへ送るために使用される。明らかなように、エキャッシュはデータの読取り だけを行い、データの書込みは行わない、この3状態バスは「ダブル・ポンプJ  (double−pumped)される、つまり、データ・ワードは各クロッ ク・フェーズで転送されるので、必要とするワイヤ数が少なくなり、従って回路 費用が節減される。wooo、WDOl、 WDIOおよびWDIIはデータ・ ワードである。これらのバスはダブル・ポンプされるので、バスが折り返してマ スクから別のマスクへ切り替わるとき、バスの衝突が起こらないようにする配慮 が必要である。
第9図に示すように、バス51JRDは64本のワイヤから構成され、返却読取 りデータをスレーブ・デバイス(メモリ・ボートと100)からマスク・デバイ スへ送り返すために使用される。データはフェーズ1のときだけ送信される。こ のバスは、キャッシュにタイミングの制約があり、そのためにCLK 1の立下 がり縁でデータが有効であることが必要であるので、ダブル・ポンプされない、 データは、クロックlがへイ(高)になるフェーズ1までボートから得ることが できないので、5WJI)バスをダブル・ポンプしようとしたとき、キャッシュ がデータを得る最も早い時期はCLKIの正エツジであって、負エツジではない 。バス5W−RDはダブル・ポンプされないので、このバスはフェース2のとき だけアクティブになる(3状態ではない)。バスが別のマスクに切り替わるとき 、バス・ドライバが衝突するという問題は起こらない。
バス5WJDBSTは4本のワイヤから構成され、識別番号(ID)をマスク・ デバイスからスレーブ・デバイスへ送り、IDとバンク開始信号をスレーブ・デ バイスからマスク・デバイスへ送るために使用される。
本発明の実施例によれば、 ID FIFOは各スレーブ・デバイスに1つしか ない。スレーブ・デバイスからのデータは常に順番に返却されるので、IDをボ ートまで送る必要はない。IDは、スイッチとマスク・デバイスとを結ぶインタ フェースに各ボート用にFIFOが1個あて設けられている別々のFIFOにス トアしておくことができる。このために、ボートがn個あればn個のFIFOが 各インタフェースに必要になるので、本実施例に比べて回路面積が増加するが、 3状態ワイヤは2本だけ少な(することができる。
ボート・インタフェースとは、スイッチ・ネットワークと外部メモリ(MAD) とを結ぶインタフェースである。このインタフェースは、ボート仲裁ユニットと 、介入(intervention)を引き起こす要求と割込みがかけられた読 取り要求をストアしてお(手段とを備えている。また、スヌーブ・アドレス・ジ ェネレータ(snoopaddress generator)も備えている。
さらに、このインタフェースには正しいタイミング信号を生成してメモリ・モジ ュールを制御する信号発生器の働きをする回路も実装されている。
本発明のスイッチ・ネットワーク内の装置、例えば、内容アドレス・メモリ ( content addressablernemory −CAM) 、行一 致比較回路、スイッチ/ボート仲裁回路にはいくつかのアルゴリズムが実装され ている。
本発明のアーキテクチャにはセマフォア(semaphore)が取り入れられ ている。セマフオアは、マルチプロセッサ・システムにおけるソフトウェアを、 下達するように「テストおよびセット」命令と同期をとるために使用されるもの である。本発明のアーキテクチャでは、セマフォアはキャッシュされない。
キャッシュは、CPUが「テストおよびセット」命令を実行すると、MCUから セマフオアをフェッチする。
テストおよびセット・バイパス回路には、スピン・ロックが起こると、つまり、 反復的な要求がMADシステム・バスをアクセスしてセマフオアを得ようとする と起こる、メモリ・バンド幅の損失を防止する単純なアルゴリズムが実装されて いる。メモリの領域、デバイスなどをロックするセマフォアでテスト命令が実行 されると、CAMはそのセマフォアのアドレスをストアする。CAM内のこのエ ントリ(項目)は、いずれかのプロセッサがそのセマフオアを取り囲むメモリの 一部領域に書込みを行うと、クリアされる。要求したセマフォアがまだCAMに 残っていれば、そのセマフォアはどのプロセッサによっても解放されていないの で、そのセマフォアを得るために実際にメモリをアクセスする必要はない。その 代わりに、論理1のブロック($FFFF) (セマフォア失敗)が要求したキ ャッシュに送り返され、セマフォアがまだロック中であることを知らせる。従っ て、セマフォアは実際にはアクセスされないので、メモリ幅が節約されることに なる。
セマフォアにオール1以外を書くと、そのセマフォアはクリアされる。その場合 、スレーブ側CPUは共用メモリを調べて、いずれかのCI)U (自身を含め て)が当該セマフォアに書込みを行ったかどうかを確かめる必要がある。いずれ かのCPUがCAM内のエントリに一致するセマフォアに書込みを行っていると 、CAM内のそのエントリがクリアされる。キャッシュが次にそのセマフォアへ のアクセスを試みたときは、そのエントリがCAMにないので、メイン・メモリ からセマフォアを実際にフェッチして、それを「失敗」、つまり、オールlにセ ットすることになる。
行一致比較回路の機能は、現在の要求が前の要求と同じ行アドレスをもっている かどうかを判定することである。そうであれば、ボートはRAS要求を取り消し て(de−assert) 、 RAS課金前(pre−charge)時間ペ ナルティを負担する必要がない。従って、メモリ待ち時間が短縮化され、使用可 能なバンド幅が増加することになる。行一致は主にダイナミック・ランダム・ア クセス・メモリ(DRAM)で使用されるが、MAUを新アドレスの上位ビット にラッチする必要がなくなったので、スタチック・ランダム・アクセス・メモリ (SRAM)や読取専用メモリ(ROM)でも使用可能である。従って、メモリ へのアクセス要求があると、アドレスがスイッチ・ネットワークのアドレス・バ ス5WJEQ上を送信され、行アドレスがデコードされ、MUXラッチにストア される。このアドレスが前の要求の行アドレスと判定された場合は、キャッシュ またはIOUが新しい要求を出すと、新アドレスに関連するアドレスがデコード され、その行アドレスが前の行アドレスと比較される。一致するものがあれば、 行一致がヒツトしたことになり、一致した要求に下述するように優先度が与えら れる。
動的スイッチ/ボート仲裁回路では、2種類の仲裁が行われる。1つは、メモリ ・ボートの資源、つまり、ボートロ00.ボートNの仲裁であり、もう1つはス イッチ・ネットワークのアドレスおよび書込みデータ・バスの資源、5W−RE Qとsw−woの仲裁である。
いくつかのデバイスはメイン・メモリからデータを同時に要求することができる 。そのデバイスとは、Dキャッシュ、エキャッシュおよびIOUである。各々の マスクに特定の優先度を与える優先度方式は、「重要度」または「緊急度」の高 いデバイスができる限り早くサービスを受けられるようにセットアツプされる。
しかし、厳格な固定仲裁方式は、優先度の低いデバイスを締め出す可能性がある ために使用されていない。
その代わりに、各種デバイスに異なる優先度を処理中に(on the fly )割り付ける動的仲裁方式が使用されている。この動的方式に影響を与える要因 として、次のものがある。
1、 そのデバイスの固有優先度 2、 要求したアドレスは以前にサービスを受けた要求と行が一致するか。
3、 そのデバイスは余りにも多(の回数サービスを受けることが拒否されたか 。
4、 そのマスクは余りにも多くの回数サービスを受けたか。
デバイスからの各要求は固有の優先度をもっている。IOUは優先度が最も高く 、そのあとにエキャッシュとDキャッシュが続く。しかし、下述するように、D キャッシュからの介入(intervention−ITV)要求は、スレーブ 側処理エレメント(processingelement−PE)が更新データ をできる限り早く受け取る必要があるために、すべての中で優先度が最も高くな っている。
各種デバイスの固有優先度はいくつかの要因によって変更される。優先度の低い デバイスがサービスを拒否された回数はモニタされており、その回数が所定の値 まで達すると、優先度の低いそのデバイスにより高い優先度が与えられる。これ に対して、あるデバイスに優先度が与えられる回数もモニタされ、そのデバイス だけがバスを「独占J (hog) L、ていれば、優先度を拒否して優先度の 低いデバイスがそのバスをアクセスすることを許可する。要求の固有優先度を変 更するために使用される3番目の要因は行一致(row match)である。
行一致が重要なのは、主にIキャッシュの場合である。あるデバイスが以前にサ ービスを受けた要求と同じ行アドレスをもつメモリ・ロケーションを要求すると 、要求したデバイスの優先度は高くされる。これが行われるのは、RASの要求 を取り消しくde−assertl 、RASを再要求する(re−asser t)手間を省くためである0行が一致して要求がサービスを受けるたびに、プロ グラマブル・カウンタはデクリメントされる。例えば、カウンタがゼロまで達す ると、行一致優先度ビットがクリアされるので、新しいマスクにバスへのアクセ ス権が与えられる。ボートの新マスクが旧マスクと異なるとき、あるいは要求が 行が一致した要求でないとき、プログラム可能な値が再びカウンタに事前ロード (pre−1oad)される。
メモリ・ボートに対する書込み要求は、スイッチ・ネットワークの書込みデータ ・バス(SWJD)が使用可能であるときだけ許可される。使用可能でないとき は、他に要求があれば、その要求が選択される。1つだけ例外がある。それはD キャッシュからの介入(rTV)要求である。このような要求が存在し、5w− w。
バスが使用可能でないと、どの要求も選択されない。
その代わりに、システムはsw4woバスが解放されるまで待ってから、介入要 求が許可される。
スイッチ・ネットワークには、ソフトウェアで選択可能な2つの仲裁方式が採用 されている。その方式とは、次のものである。
1、 スレーブ優先度方式、この方式では、スレーブまたは要求されたデバイス (すなわち、メモリまたはIOUボート)に基づいて優先度が与えられる。
2、 マスク優先度方式。この方式では、マスクまたは要求側のデバイス(すな わち、IOU 、 Dキャッシュ、■キャッシュ)に基づいて優先度が与えられ る。
スレーブ優先度方式では、優先度は常に最初にメモリ・ボート、例えば、ボート 0.1.2.、、に与えられ1次にl0LIに与えられ、再びボート0に戻って 与えられる。この方式は、一般にラウンド・ロビン(round−robinJ 方式と呼ばれている。マスク優先度方式は固定優先度方式であり、優先度は最初 にIOUに与えられ、次にDキャッシュおよび1キヤツシユに与えられる。スイ ッチ仲裁のマスク優先度方式では、介入(ITV)要求に最高の優先度が与えら れる場合もある。
ブリフェッチ・バッファがやがて空になるときは、■キャッシュに最高の優先度 が与えられる場合もある。
コ」凶と!!」11里 本発明の上記および他の目的、特徴および利点は、添付図面を参照して以下に詳 述する説明で明らかにする。
第1図は、本発明による複数の異種マイクロプロセッサをサポートすることので きるマイクロプロセッサ・アーキテクチャを示すブロック図である。
第2図は、本発明によるメモリ制御ユニットを示すブロック図である。
第3図は、本発明によるDキャッシュ・インタフェースとボート・インタフェー スとの間の接続状態を示すスイッチ・ネットワークを示すブロック図である。
第4区は、本発明によるテストおよびセット・バイパス回路を示すブロック図で ある。
第5図は、本発明により介入信号を生成し、MAUバスの仲裁を行うために使用 される回路を示すブロック図である。
第6図は、本発明による行一致比較回路を示すブロック図である。
第7図は、本発明による動的仲裁方式を示す図である。
第8図は書込み要求のタイミングを示す図である。
第9図は読取り要求のタイミングを示す図である。
免肛立二皇互上j 第1図は、本発明によるマイクロプロセッサ・アーキテクチャを符号1で総称し て示すものである。このアーキテクチャ1には、複数の汎用マイクロプロセッサ 2.3.4.、、N、特殊用途プロセッサ5、オービタ(仲裁回路)6およびメ モリ/メモリ・アレイ・ユニット(MAU) 7が設けられている。マイクロプ ロセッサ2〜Nは複数の同種プロセッサでまたは複数の異種プロセッサで構成す ることが可能である。特殊用途プロセッサ5は例えばグラフィック・コントロー ラで構成することが可能である。プロセッサ2〜5はすべて1つまたは2つ以上 のメモリ・ボートPORTo−−−PORT、を介してMAUシステム・バス2 5に接続されている。MAUシステム・バス25は、MAUシステム・バス8  、 ROW/COLアドレス・バス9、マルチプロセッサ制御バス10、MAD 制御バス11およびバス仲裁制御信号バス12からなり、それぞれ複数の双方向 信号バス13〜17で結ばれている。バス12は、例えば、アクセスの仲裁を要 求し、アクセス許可を与え、あるいはシステム・データ・バス8が使用中(bu sy)であることを通知するために使用される。オービタ6は双方向信号ライン 18を介してバス12に接続されている。 MAU 7はROW/COLアドレ ス・バス9およびメモリ制御バス11に接続されており、信号はこれらのバスか ら単方向信号ライン】9と20を介してMAUへ転送され、双方向データ・バス 21を介してMAUデータ・バス8へ転送される。データ・バス8と21は、代 表例では、64ビツト・バスになっているが、ソフトウェア制御の下で32ビツ ト・バスとして動作させることも可能である。このバスは例えば、128ビツト といったように、その他のビット幅にすることも可能である。
プロセッサ2〜Nの各々は、代表例では、人出力IOUインタフェース53を備 えている。このインタフェース53は、以下で第2図を参照して詳しく説明する が、直接メモリ・アクセス(DMA)プロセッサ30、イーサネット(ETHE RNET)インタフェース31、その他の入出力デバイスなどの複数の周辺入出 力デバイスに、32ビツト入出力バス33または任意的な32ビツト入出力バス 34および複数の32ビット双方向信号バス35〜42を介して接続されている 。オプションとしての大畠カバス34はプロセッサの1つまたは2つ以上が特殊 目的入出力デバイス43をアクセスするために使用できる。
第2図に示すように、プロセッサ2−Nの各々は、データ用キャッシュ(Dキャ ッジ:L)51と命令用キャッシュ(エキャッシュ)52を備えたキャッシュ制 御ユニット(CCU) 49に接続されたメモリ制御ユニット(MCU) (全 体を符号50で示している)と入出力ボート53を備えている。入出力ボート5 3は以下ではIOUと略称することがあるが、入出力バス33または34に接続 されている。
MCU 50は、CCU 49、つまり、Dキャッシュ51とエキャッシュ52 (読取専用) 、 10053およびMAU 7間でMADシステム・バス25 を経由してデータと命令がそこから転送(読み書き)される回路である。MCU  50は、以下で詳しく説明するように、キャッシュ−買付(cachecoh erency)を保証する・このキャッジニー貫性は、各スレーブ側CPU内の MCUが、MAUアドレス・バス9上のマスク側CPUのすべてのトランザクシ ョンをモニタして、つまり、スヌーズ(snoop) して、スレーブ側CPU 内のキャッシュがマスク側cPUがら得られる新しいデータを要求しているのか 、新しいデータをマスク側CPUへ送ろうとしているのかを判断することによっ て達成される。 MCU 50は6メモリ・ボートで使用するように拡張可能で あり、最高4ウエイまでのメモリ・インクリーピングをMAUデータ・バス8上 で行うことをサポートできる。また、外部64または32ビツト・データ・バス 8の使用をサポートすることができ、修正ハミング・コードを使用して1データ ・ビット・エラーを訂正し、2またはそれ以上のデータ・ビット・エラーを検出 する。
本発明のアーキテクチャでは、キャッシュ・サブブロック、つまり、キャッシュ ・ラインのサイズは、メモリ・バス・サイズと相関関係がある。例えば、バス・ サイズが32ビツトならば、サブブロック・サイズは一般に16バイトとなる。
バス・サイズが64ビツトならば、サブブロック・サイズは一般に32バイトと なる。バス・サイズが128ビツトならば、サブブロックは64バイトとなる。
上述したように、MCU 50は、1.2または4ウエイのインタリーピング、 つまり、サイクルごとに転送されるバイト数をサポートするようにプログラムで きる設計になっている。
MCU 50には、ボートPo、 、 、 PNで示した1つまたは2つ以上の インタフェース、スイッチ・ネットワーク54、Dキャッシュ・インタフェース 55、■キャッシュ・インタフェース56および入出力インタフェース57が装 備されている。第3図を参照して詳しく後述するが、ボート・インタフェースP 0〜P、の各々はそれぞれをPAU、、、、PAtL、で示したボート仲裁ユニ ットを備えている。スイッチ・ネットワーク54はスイッチ仲裁ユニット58を 備えている。
MCU 50が2つまたはそれ以上のボート・インタフェースを装備するときは 、ボート・インタフェースPa −Psの各々は個別のMAUシステム・バスに 接続されており、これは第1図を参照して上述したバス25と同じものである。
第2図には、この種の2バスは25゜および25.1の符号で示されている。バ ス25.はバス8N、 9s、 10s、 lINおよび12Nから構成され、 これらはそれぞれバス13.、14.、15.、 lれおよび17.でボート八 に接続されている。バス8N〜17.は第1図を参照して上述したバス8〜17 と同じものである。同様に、ボート・インタフェースの各々は、書込み(WR) データ・バス60.6ON、読取り(RD)データ・バス61.61、 、およ びアドレス・バス62.62.からなる複数の同種個別バスを介してスイッチ・ ネットワーク54に接続され、複数の制御バス7o、71.80.81.90. 9125 ヨび70.、71.、80..81.、90.、91.を介してキャ ッシュと入出力インタフェース55.56.57の各々に接続されている。なお 、符号中の添字Nは、ボート・インタフェースP0とキャッシュおよび入出力イ ンタフェースとの間を結ぶバスを示している。
スイッチ・ネットワーク54とDキャッシュ・インタフェース55はWRデータ ・バス72、RDデータ・バス73およびアドレス・バス74を介して接続され ている。スイッチ・ネットワーク54とエキャッシュ・インタフェース56はR Dデータ・バス82およびアドレス・バス83を介して接続されている。上述し たように、■キャッシュ52からは書込み(WR)要求は出されない。スイッチ ・ネットワーク54と入出力インタフェース57は、RDデータ・バス92、W Rデータ・バス93およびアドレス・バス94からなる複数の双方向信号バスを 介して接続されている。
Dキャッシュ・インタフェース55とCCU 49、つまり、Dキャッシュ51 は、WRデータ・バス100 、RDデータ・バス101、アドレス・バス10 2および対の制御信号バス103.104からなる複数の単方向信号バスを介し て接続されている。■キャッシュ・インタフェース56とCCU 49、つまり 、■キャッシュ52は、RDデータ・バス11O、アドレス・バス111.8よ び対の制御信号バス112,113からなる複数の単方向信号バスを介して接続 されている。入出力インタフェース57とIOU 53は、R/W−I10マス ク・データ・バス120 、 R/l1l−I10スレーブ・データ・バス12 1、対の制御信号ライン123,124および対のアドレス・バス125.12 6からなる複数の単方向信号バスを介して接続されている。入出力(Ilo)マ スタおよび入出力(Ilo)スレーブという名称は、以下で詳しく説明するよう に、入出力操作がマスクとして行われているか、スレーブとして行われていると き、特定の信号ラインを利用したデータ伝送を示すために用いられている。
第3図は、スイッチ・ネットワーク54のメイン・データ経路を示し、Dキャッ シュ・インタフェース55とボート・インタフニー220間の接続関係を示した ブロック図である。ボート・インタフェースp 、−p、およびIキャッシュと 入出力インタフェース56.57間の接続関係も同じであるが、■キャッシュ・ インタフェース56からは書込みデータ要求が出されない点が異なる。第3図に 示すように、ボート・インタフェースp、−p、の各々には、さらに、読取り要 求の識別コード(ID)をストアするためのID FIFO(先入れ光圧し)1 30と、MAUへのアクセスが許可されるまで書込みデータを一時的にストアし てお(ための書込みデータ(WD) FIFO131と、ネットワーク54が使 用可能になるまで読取りデータを一時的にストアしておくための読取りデータ( RD) FIFO132が設けられている。
スイッチ・ネットワーク54には、それぞれ、要求/アドレス・バス5W−RE Q[28:01、書込みデータ・バス5W−WD[31:01 、読取りデータ ・バス5W−RD[63:Ol 、および識別/バンク開始信号バス5W−ID BST[3:Ol とも呼ばれる、複数の信号バス140〜143と、スイッチ 仲裁ユニット58とが設けられている。スイッチ仲裁ユニット58はマルチボー ト入出力要求を取り扱うことを目的としている。
キャッシュおよびボート・インタフェースは一部の信号バスで直接に、他の信号 バスでスイッチ・ネットワーク・バスを介して間接に接続されている。例えば、 ボート・インタフェース20〜への各々におけるボート仲裁ユニットPAUはG RANT制御ライ制御ライン上0aEQUEST制御ライン71bうらなる対の 制御信号バスを介してスイッチ仲裁ユニット58に接続されている。
スイッチ仲裁ユニット58はGRANT制御信号ライン7うbを介してDキャッ シュ・インタフェース55に接続されている。ライン70a、70bおよびライ ン71a、71bは第2図のバス70と71における信号ラインである。ゲート 75とレジスタ76.78は、それぞれ、介入を引き起こす要求をストアするた めと、割込みをかけられた読取り要求をストアするために設けられている。他方 のボート、キャッシュおよび入出力インタフェース間は対応する制御バスで結ば れている。
スイッチ・ネットワーク54の機能は、様々な命令とデータ要求をキャッシュ制 御ユニット(CCU) 、つまり、■キャッシュ51.0キヤツシユ52、およ びIOU 53から受け取ることである。これらを要求を受け取ると、一度に1 つの要求を引き受ける、スイッチ・ネットワーク54内のスイッチ仲裁ユニット 58は要求に優先順位を付けて、その要求に付随したアドレスに応じて、該当す るボート・インタフェース20〜P、または入出力インタフェースに要求を引き 渡す、ボートと入出力インタフェースは、例えば、要求に付随するアドレスの上 位ビットによって選択される。各ボート・インタフェースはMAUアドレスをス トアするためのレジスタ77をもっている。ボート・インタフェースは必要なタ イミング信号を発生し、MAU 77との間で必要なデータを特徴とする請求が WR要求ならば、ボート・インタフェースとスイッチ・ネットワーク54との間 のやりとりは、スイッチが書込みデータをすべてブツシュしてWDF(書込みF IFO) 131に入れたとき停止する。要求がRD要求ならば、スイッチ・ネ ットワーク54とボート・インタフェースとの間のやりとりは、ボート・インタ フェースが読取りデータをスイッチ・ネットワーク54へ送り返したときだけ終 了する。
以下で詳しく説明するように、スイッチ・ネットワーク54は、マスク・デバイ スとスレーブ・デバイスとが交信し合うために用意されたものである。この意味 において、マスク・デバイスとなり得るものには、次のものがある。
スレーブ・デバイスとなり得るものには、次のものがスイッチ・ネットワーク5 4は、必要な介入要求を該当するボート・インタフェースへ送って、実行させる ことを担当する。
上述したように、スイッチ・ネットワーク54は、キャッシュ・インタフェース 、入出力インタフェースおよびメモリ・ボート・インタフェース間を接続するた めの4セツトの3状態(try−state)バスから構成されている。4セツ トの3状態バスとは5WJEQ、 5ljWD、S’JRD、 5WjDBST である。5W−REQ [28: 0]と名付けたバスは、スレーブ・デバイス 側のアドレス、メモリ共用信号およびIDをマスク・デバイスからスレーブ・デ バイスへ送るために使用される。上記に示したように、マスクとなり得るのは、 Dキャッシュ、エキャッシュまたはIOUであり、スレーブ・デバイスとなり得 るのはメモリ・ボートまたはIOUである。マスク・デバイスが要求をスレーブ に対して出すときは、アドレスの全32ビツトをスイッチ・バスSW、、、RE Q上を送る必要がない。これは、本発明の多重メモリ・ボート構造では、各ボー トにはあらかじめ定義されたメモリ空間が割り振られているためである。
機能コード(FC)やデータ幅(WD)などの、他の要求属性は、タイミング上 の制約があるため5WJEQバスから送信されない。スイッチ・ネットワーク5 4上を送られる情報は、その情報が専用ワイヤ上を送られた場合よりも1クロツ ク・フェーズだけ遅れてボート・インタフェースに到着する。従って、初期の要 求属性(early request attribute)を1フエーズだけ 早くボート・インタフェースへ送っておけば、ボート・インタフェースはそのス テート・マシンを早く始動できるので、メモリ待ち時間が減少することになる。
これは、第3図に示すように、別の信号ライン79によって行われる。ライン7 9は第2図の制御信号バス70内のラインの1つである。
5W−WD[31:0]バスは、書込みデータをマスク・デバイス(Dキャッシ ュとl0U)からメモリ・ボート・インタフェース内のWD FIFO131へ 送るために使用される。この3状態バスはダブル・ポンプされる。つまり、デー タの32ビツトがフェーズごとに転送される。
バスはダブル・ポンプ(double−pumped)されるので、回路を設計 する際に、バスが折り返して、あるマスクから別のマスクに切り替わるときバス の衝突が起こらないようにする配慮が必要である。理解されるように、ダブル・ ポンプを行うと、必要とするビット・ライン数が少な(なるので、必要とされる 高価なワイヤ数を最小にし、パフォーマンス低下を最小にすることができる。
第9図に示すように、5W−RD[63:Olは、返却読取りデータをスレーブ ・デバイス(メモリ・ボートまたはl0U)からマスク・デバイスへ送り返すた めに使用される。データはクロックのフェーズ1のとき(CLKIがハイのとき )だけ送信される。このバスは、キャッシュにタイミング上の制約があるためダ ブル・ポンプされない。CLKIの立下がり縁でデータが有効であることがキャ ッシュの必要条件である。データはフェーズ1時にボート・インタフェースから 受信されるので、5WJDバスがダブル・ポンプされていないと、キャッシュが 最も早くデータを得るのは、CLKIの玉縁のときであって、CLKIの負縁の ときではない。5W−RDババスダブル・ポンプされないので、このバスはCL KI時だけアクティブであるので(3状態ではない)、バス・バッファが衝突す るという問題は起こらない。つまり、2つのバス・ドライバが同じワイヤを同時 にドライブすることはない。
5WJDBST[3:0]は、識別(ID)コードとバンク開始コードをスレー ブ・デバイスからマスク・デバイスへバス88を経由して返すために使用される 。スレーブ・デバイスからのデータは常に順番に返されるので、一般的にはID をボートまで送る必要はない。IDは、インタフェース内の各ボートごとに1つ あて用意されている個々のFIFOにストアしておくことができる。
再び読取りFIFO132に戻って説明すると、データはスイッチ読取りバス5 lJRDが使用可能でないときだけこのFIFOにストアされる。バス5WJD が現在地のボートで使用中であれば、到来読取りデータは一時的に読取りPIF O132にブツシュされ、5W−RDババス解放されると、データはFIFOか らポツプされて、スイッチ・ネットワーク54を通って要求側キャッシュまたは IOUへ転送される。
Dキャッシュ・インタフェース55、■キャッシュ・インタフェース56%入出 力インタフェース57およびボート・インタフェースP、−P。間のデータ転送 を、Dキャッシュ・インタフェース55との間でデータを受け渡しする場合を例 に挙げて、以下説明することにする。
Dキャッシュ、■キャッシュまたはIOUのいずれかがボートをアクセスしたい ときは、そのボートが空きになっているかどうかを確かめるために、第3図に示 すように要求を要求信号ライン70b上をボート仲裁ユニットPAUoへ送る。
ボートが空きになっていれば、ボート・インタフェースは、要求が存在すること を要求制御ライン71aを利用してスイッチ仲裁ユニット58に通知する。スイ ッチ・ネットワーク54が空きになっていれば、スイッチ仲裁ユニット58は、 要求が制御ライン71b上で許可されたことを許可制御ライン70a上のボート とマスク、例えば、Dキャッシュ・インタフェース55に通知する。
要求が書込み要求であれば、Dキャッシュ・インタフェース回路55はバス仲裁 制御ユニット172をチェックして、MCU 50にMAUバス25が許可され ているかどうかを確かめる。MCUにまだバス25が許可されていなければ、バ ス要求が出される。バスが許可されているか、あるいは許可されると、ボート仲 裁ユニット171はスイッチ・バス140.141の要求を行う。スイッチ・バ ス140,141へのアクセスが許可されると、Dキャッシュ・インタフェース 回路55は該当するアドレスをスイッチ・バス5W−REQ 140上に送出し 、同時に、書込みデータを書込みデータ・バス5WJD 141上に送出し、そ のデータをWD FIFO(WDF) 131にストアする。データがWDFに 置かれると、MCUはデータをMAUに順次に書き出していく。書込みデータを ボートに送る前にバスが許可されているかどうかを確かめるようにしたのは、外 部プロセッサからのスヌーブ要求があるとき、MCIがWDFをチェックしない ですむようにするためである。従って、変更されたデータがあるかどうかのチェ ックは、キャッシュだけで行われる。
要求が読取り要求であり、ボートとスイッチ・ネットワークが上述したように空 きになっていると判断されると、ボート・インタフェースは5WJEQバス上を 要求側ユニットから送られてきたアドレスを受け取り、MADバス9の許可を得 るための仲裁をオービタに要求する。ボートがバスを実際に使用するためには、 その前に、MADバスが許可されたとのMADオービタからの通知が必要である 。そのあと、要求はスイッチからボートへ転送される。MAUアドレス・バス9 が空きになっていると、アドレスがMAUアドレス・バス上に送出される。デー タがいつ受信されるかは、事前にボートに知らされる。ボートはスイッチ返却デ ータ・バスを要求するので、バスが使用中でなければ、データが返却されるとき 使用可能になっている。バスが空きになっていると、ボートは読取りデータをバ ス上に送出し、Dキャッシュ、■キャッシュまたは入出力インタフェースはその データを取り出して、それぞれの要求側ユニットへ引き渡すことになる。
D/Iキャッシュ51.52が入出力アドレスの要求を行うと、D/Iキャッシ ニ・インタフェース55.56はその要求を要求バス5W−REQを経由して入 出力インタフェース・ユニット57に受け渡す。入出力インタフェース・ユニッ ト57は、要求をストアしておくためのその待つ行列に使用可能なエントリをも っていれば、要求を制御信号ライン90を経由してスイッチ仲裁ユニット58に 引き渡す。スイッチ・ネットワーク54が空きになっていれば、もう一度、スイ ッチ仲裁ユニット58はD/1キャッシュ・インタフェース55.56に通知し て、アドレスをアドレス・バス5lJREQ上に送出できるようにし、それが書 込み要求ならば(Dキャッシュのみ)、書込みデータを書込みデータ・バスsw 、−wn上に送出してIOUへ転送できるようにする。同様に、D/Iキャッシ ュ・インタフェース55.56からの要求が読取り要求ならば、入出力インタフ ェース57からの読取りデータは、スイッチ・ネットワークの読取りデータ・バ ス5lJRDを経由して入出力インタフェース57から転送されて、D/Iキャ ッシュ・インタフェース55.56に渡され、そこからD/Iキャッシェ51. 52へ転送される。
第4図に示すように、本発明によるボート・インタフェースとキャッシュには、 それぞれを符号160,168で全体を示したテストおよびセット(TS)バイ パス回路が設けられている。このバイパス回路はMAUアドレス・バス9上にセ マフォアのアドレスがあるかどうかをモニタ、つまり、スヌーズ(snoop) する、理解されるように、回路160,168はセマフォアをスピン・ロックし たとき消費されるメモリ・バンド幅を節減する。
TS回路160,168には、スヌーズ・アドレス・ジェネレータ(snoop  address generator) 161 、TS内容アドレス・メモ リ(CAM −content addressable memory)16 2 、7リツプフロツプ163およびMUX 164.165が設けられている 。
セマフォア(semaphore)とは、メモリ内のアドレス可能ロケーション にストアされて、メモリやその他のアドレス可能資源のある領域へのアクセスを 制御するためのフラグまたはラベルである0例えば、あるCPUがセマフォアが 関連づけられているあるメモリ領域をアクセスするとき、その領域を他のCP[ ]がアクセスするのを望まないときは、そのアクセスするCPUはセマフォアに オール1を入れる。別のCPUがその領域へのアクセスを試みるときは、まずそ のセマフォアを調べる。セマフォアがオール1であることが分かると、その2番 目のCPUはアクセスが拒否されることになる。
そのときまでに、2番目のCPUがアクセス要求をなん度も出していると、アク セスがなん度も拒否され、その結果、「セマフォアのスピン・ロック」と呼ばれ る現象が起こることになる。このセマフォアのスピン・ロックが起こると、アク セス要求のたびに、要求側CPUは読み書きを行わなければならないので、メモ リ・バンド幅量が過度に使用されるという問題が起こる。
第4図に示したテストおよびセット・バイパス回路160.168には、セマフ ォアのスピン・ロックが起こったときメモリ・バンド幅の過度の使用を防止する 単純なアルゴリズムが実装されている。
動作について説明すると、あるCPU 、より正確には、プロセッサ内のあるプ ロセスがセマフォアが関連づけられているあるメモリ領域を要求するために、ま ずロードおよびセット命令、つまり、セマフォアへのアクセス要求と関連する所 定の命令を出すと、そのCPUは、まず、そのセマフォアをアクセスし、セマフ ォアのアドレスをCAM 162にストアする。複数のロードおよびセット命令 を出すと、複数のエントリがCAM 162にストアされることになる。セマフ ォアがオール1 ($FFFF)ならば、アクセスが拒否されたことを意味する 1が返される。別のプロセスがそのセマフォアを要求するときは、そのCAMを 調べる。要求したセマフォアのアドレスがまだCAMに残っていると、セマフォ アが別のプロセッサ/プロセスによってまだ解放されていないことがCPUに通 知されるので、セマフォアをスピン・ロックさせる必要がない。その代わりに、 MCUはオール1(セマフォア失敗)を受け取るので、セマフォアはメモリに要 求されないので、メモリ・バンド幅が必要以上に使用されることが防止される。
他方、セマフォアのアドレスがCAMになければ、セマフォアが以前に要求され たことがなかったか、すでに解放されていることを意味する。
MAUバスは、バイト・アドレスを提供しない。セマフォアが解放されたときは 、CAMをクリアする必要がある。セマフォアを取り囲む最小の検出可能メモリ ・ブロックのいずれかの部分へのアクセスがMAUバス上のいずれかのプロセッ サによって行われると、CAMがクリアされる。現ブロック・サイズは4または 8バイトである。このようにすると、メモリ・ブロック内の別のロケーションへ の書込みによってセマフォアがクリアされなかったときCAMがクリアされる場 合があっても、CAMはクリアされたセマフォアのアドレスを保持することはな い。セマフォアは、いずれかのプロセッサがオール1以外をセマフォアに書き込 むと、クリアされる。
セマフォアが置かれているメモリ・ブロックへの書込みが行われたあと、セマフ ォアがテストおよびセット命令によってアクセスされる場合は、メモリが再びア クセスされる。セマフォアがすでにクリアされていると、クリアされた値がCP Uに返され、CAMにそのアドレスが再びセットされる。セマフォアがクリアさ れていないか、再びロックされていたときも、CAMにセマフォア・アドレスが ロードされるが、ロックされた値がCPUに返される。
第4図の回路160の動作について説明すると、回路160はMAUアドレス・ バス9をスヌーズし、そこで検出されたアドレス信号を使用して、アドレス・ジ ェネレータ161で応するスヌーズ・アドレスを生成し、このアドレスはライン 169上をCMA 162へ送信され、その内容と比較される。ヒツトすると、 つまり、CAM162内のエントリと一致するものがあると、CAM 162の そのエントリがクリアされる。ロードおよびセット要求が例えばDキャッシュか らMCUに対して行われると、Dキャッシュ・インタフェース回路はアドレスを CAMのエントリと比較する。 CAM 162に一致するものが見つかると( ヒツトすると)、そのIOがキャッシュ・インタフェースのレジスタ163にラ ッチされ。
このIDとオール1 ($FFFF)がMUX 164,165を経由してキャ ッシュ・インタフェースに返される。
アドレスをスヌーズし、CAM 162で比較を行うためにそれからスヌーズ・ アドレス・ジェネレータ161でスヌーズ・アドレスを生成することは、MAU アドレス・バス9上に現れたアドレスが非共用メモリ・ロケーションに対するも のであっても、好ましくない影響を与えないで続けられる。スヌーズ・アドレス ・ジェネレータ161は、一般的には、MAUアドレス・バス9上に現れたMA U行列アドレスの11ビツトからキャッシュ・ブロック・アドレス(上位ビット )を、MAU制御信号RAS、 CASおよび制御信号バス11上のBKS丁5 TART MAυ制御信号を使用して生成する。
第5図に示すように、全体を符号170で示した、キャッシュ−貫性を保つため の本発明の他の形態による回路が設けられている。キャッジニー貫性が必要とさ れるのは、マルチプロセッサ環境では、マスク・デバイスとスレーブ・デバイス 、つまり、CPUがすべて最新のデータをもつことを保証するためである。
回路170を構成するチップの外側に示すように、オービタ6、メモリ 7、M AUアドレス・バス9、MAU制御バス11およびマルチプロセッサ制御バスl Oが設けられている0回路172には、ポート仲裁ユニット・インタフェース1 71、バス仲裁制御ユニット172、マルチプロセッサ・コントロールエフ3お よび第4図に示すスヌーズ・アドレス・ジェネレータ161が設けられている。
Dキャッシュ・インタフェース55は対の制御信号バス174.175とスヌー ズ・アドレス・バス176を介してマルチプロセッサ・コントロール173に接 続されている。エキャッシュ・インタフェース56は対の制御信号バス177. 178とスヌーズ・アドレス・バス176を介してマルチプロセッサ・コントロ ール173に接続されている。スヌーズ・アドレス・ジェネレータ161は制御 信号バス179を介してマルチプロセッサ・コントロール173に接続されてい る。マルチプロセッサ・コントロール173はさらに、制御信号バス180を介 してマルチプロセッサ制御バスlOに、制御信号バス181を介してバス仲裁ユ ニット172に接続されている。ボート仲裁インタフェース171は制御信号バ ス182を介してバス仲裁制御ユニット172に接続されている。バス仲裁制御 ユニット172はバス仲裁制御ユニット183を介してオービタ6に接続されて いる。スヌーズ・アドレス・ジェネレータ161は、それぞれ、アドレス・バス 14および制御バス16を介してMAUアドレス・バス9およびMAU制御バス 11にも接続されている。
キャッシュからの要求が送られるときは、その要求が共用メモリに対するものか どうかを示した属性が一緒に送られる。要求が共用メモリに対するものであると きは、ボート・インタフェースはマルチプロセッサ制御信号(MC3)バス10 上を共用信号5HAREDJEQを送出する。他のCPUがMCSバス10上に この共用信号を検出すると、スヌーズ・アドレスを得るためにMAU ADDR バス9をスヌーズすることを始める。
スヌーピング(snooping)とは、これまでに簡単に説明したように、キ ャッシュ−質性プロトコルである。
このプロトコルによれば、制御は共用メモリ・バス上のすべてのキャッシュに配 布され、すべてのキャッシュ・コントローラ(CCU)はバスを聴取(list en)またはスヌーズして、共用ブロックのコピーをもっているかどうかを判断 する。従って、スヌービングとは、スレーブ側MCUがバス上のすべてのトラン ザクションをモニタして、マスク側MCUから出されたRD/WR要求があるか どうかを調べるプロセスである。スレーブ側MCUの主要な仕事は、バスをスヌ ーズして受信する必要のあるデータがあるかどうかを判断すること、つまり、以 前に受信したデータを無効にすることであり、あるいは最新のデータをマスク側 MCUへ送ること、つまり、介入を行うことである。
以下で詳しく説明するように、第5図に示すマルチプロセッサ制御回路173は キャッシュからの無効化、介入およびスヌーズ・ヒツト信号を処理して、以下に 詳しく説明するように、スヌーズ・ヒツトと介入/無効化が示されたときスヌー ズ・ヒツト(SNP−旧T)信号と介入(ITVJEQ)信号をマルチプロセッ サ制御信号バス180上に生成する。
第5図に示すバス仲裁制御回路172は通常の読取りまたは書込みオペレーショ ンにおいてMADバスの仲裁を行う。また、介入/無効化の場合にもMADバス の仲裁を行い、外部バス・オービタ6に直接に通じる外部バス仲裁制御信号ビン と1接にインタフェースとなっている。
次に、上述したキャッシュ−買付を保証するための介入と無効化のオペレーショ ンを、マスク側中央処理ユニット(MSTRCPU)から出された読取り要求、 書込み要求および変更意図付き読取り(read−with−intent−t o−modify)要求と関連づけて説明する。
MSTRCPUは読取り要求を出すとき、アドレスをメモリ・アレイ・ユニット (MAU)アドレス・バス9上に送出する。スレーブ側(SLV) CPUはM ADバス9上のアドレスをスヌーズする。st、v cpuがそのキャッシュ内 のアドレス指定したメモリ・ロケーションから取り出したデータが変更されてい ると、スレーブ側キャッシュ制御ユニット(SLV CCU)は介入信号をマル チプロセッサ制御バス10上に送出し、データが更新、つまり、変更されている ことを通知する。MSTRは、ITV信号を検出すると、バスを断念し、SLV  CCUは更新データをメイン・メモリ、つまり、MAU 7に書き込む。MS TRが要求したデータがMSTRキャッシュ制御ユニット(CCU)によってま だ受信されてないと、MSTRMCUは要求されたデータを破棄し、MAUにデ ータを要求することを再び主張する。要求されたデータがMSTRCCUへ転送 されていた場合は、MSTRMCUはデータを破棄するようにMSTRCCU  (IOUがMSTRであれば、IOUコントローラ)に通知する。そのあと、M STRMCUは、スレーブがメイン・メモリを更新したあと読取り要求を再び巴 す。その間、ボート・インタフェースはマスクの読取り要求を保留しており、そ の間にスレーブは変更したデータをメモリに書き戻す、そのあと、読取り要求が 実行される。
MSTRが書込み要求を出し、アドレスをメモリ・アレイ・ユニット(MAU> アドレス・バス9上に送出し、スレーブ側CCUがこのアドレスからのオリジナ ル・データのコピーをそのキャッシュにもっていると、スレーブ側CCUはその キャッシュに置かれている対応するデータを無効にする。つまり、破棄する。
MSTRが変更意図付き読取り要求を出し、アドレスをメモリ・アレイ・ユニッ ト(MAU)アドレス・バス9上に送出し、スレーブ側MCI+がマスク(MS TR)からアドレス・バス上に送出されたアドレスをもっていると、次の2つの 可能な動作のいずれかが取られる。
1、 SLV CCUがMSTRがアドレス指定したデータに対応するデータを 変更していた場合は、SLYはITV信号を出し、MSTRはその信号を受けて バスを断念し、SLY CCUが変更したデータをメモリに書くことを許可する 。このオペレージ3ンは、上述した介入オペレーションに対応している。
2、 SLYがMSTRがアドレス指定したデータに対応する未修正データをも っている場合は、SLVはそのデータを無効にする、つまり、破棄する。このオ ペレーションは、上述した無効化オペレーションに対応している。
第6図に示すように、全体を符号190で示した本発明の他の形態による回路が 設けられている。この回路190は、行一致比較を行ってメモリ待ち時間を短縮 するために使用される。回路190には、コンパレータ191、ラッチ192お よび対のMUX 193.194が設けられている。
行一致比較の機能は、現在の要求が前の要求と同じ行アドレスをもっているかど うかを判断することである。同じ行アドレスをもっていれば、ボートはRAS要 求を取り消すための時間ペナルティを負担しないですむ。行一致は主にDRAM で使用されるが、SRAMまたはROMで使用することも可能である。つまり、 ROMとSRAMは、DRAMで使用するものと同じように上位と下位のアドレ ス・セグメントに入れてアドレスをMAUに引き渡すので、MAUを新アドレス の上位、つまり、行ビットにラッチする必要がないためである。
第6図に示した行一致回路の動作について説明すると、行アドレスは、そのアド レスの対応する配列選択ビットを含めて、MUX 193によってラッチ192 にストアされる。新しいアドレスがスイッチ・ネットワーク・アドレス・ライン 5ljREQに現れるたびに、そのアドレスは新要求MUX 194を通って送 られ、コンパレータ191で前の要求と比較される。行が一致していると、信号 がコンパレータ191の出力から生成され、バス70の一部である信号ライン1 95を介してボート・インタフェースへ転送される。行一致がヒツトすると、ボ ート・インタフェースはRAS要求を取り消すことが禁止されるので、RASサ イクル・タイムが節約されることになる。
MUX 193は行アドレスをスイッチ要求アドレスから抜き出すために使用さ れる。行アドレスをスイッチ・アドレスにマツピングすることは、DRAMの構 成(例えば、1Mxlまたは4Mxl DRAM)とMADデータ・バスの幅( 例えば、32ビツトまたは64ビツト)によって異なる。
第1図および第5図に示すように、外部バス・オービタ6は、主にプログラマブ ル・ロジック・アレイ(PLA)と記憶素子から構成されたユニットである。こ のオービタはMAUバス要求を異種CPUから受け取り、どのCPUにバス許可 を与えるべきかを、ソフトウェアで選択可能な動的または固定優先度方式に基づ いて裁定し、該当するCPUに対して許可を発行する。記憶素子はどのCPUに 最後にバスが許可されたかを記憶しておき、動的または柔軟な優先度方式および 固定または「ラウンド・ロビン」優先度方式のいずれをも実行できるようにする ものである。
第7図を参照して、本発明のマルチプロセッサ環境で使用される動的スイッチお よびボート仲裁について、以下説明する。
上述したように、3つのマスクと、MCUのサービスを受ける2つの資源が存在 する。3つのマスクとは、Dキャッシュ、■キャッシュおよびIOUである。2 つの資源、つまり、スレーブはメモリ・ボートとIOUである。上から明らかな ように、IOUはマスクと資源/スレーブの両方になることができる。
本発明によれば、2種類の仲裁が行われる。1つはメモリ・ボートの資源の仲裁 に関係するものであり、もう1つはスイッチ・ネットワーク54のバス5lJR EQとsw−woの資源の仲裁に関係するものである。
複数のデバイスがメイン・メモリからデータを同時に要求することがある。それ らのデバイスとは、Dキャッシュ、エキャッシュおよびIOUである。各マスク に一定の優先度を与える優先度方式は、「重要度」または「緊急度」の高いデバ イスからの要求ができるかぎり早くサービスを受けられるようにすることを目的 としている。しかし、厳格な固定仲裁方式は、優先度の低いデバイスがいつまで もサービスが受けられない(starving)可能性があるため好ましくない 、その代わりに、デバイス別に異なる優先度を処理中に(on the fly )割り当てる動的仲裁方式が取り入れられている。この動的仲裁方式に影響を与 える要因として、次のものがある。
l、 そのデバイスの固有優先度 2、 要求したアドレスと以前にサービスを受けた要求のアドレスとが行一致し ている。
3、 デバイスは余りにも多(の回数サービスを拒否されてきた。
4、 マスクは余りにも多くの回数サービスを受けてきた。
第7図に示すように、メモリ・ボートを要求するときに使用される動的優先度方 式は次のとおりである。
デバイスからの各要求は固有優先度をもっている。
IOUが高優先度または通常優先度を要求することができ、次にDキャッシュが 、その次に1キヤツシユが要求できる。しかし、Dキャッシュからの介入(IT V)要求がすべての中で最も優先度が高くなっている。
特別な高優先度の入出力要求を行うことができる。
この優先度は、メモリ待ち時間を最小にしてメモリへのアクセスを必要とするリ アルタイム(実時間)入出力周辺デバイスで使用されることを目的としている。
これらの要求は、第7図に示すように介入サイクルと行一致を除き、他のすべて の要求に優先させることができる。
各種デバイスの固有優先度を変更する要因として、サービス拒否、入出力独占  (Ilo hog)、行一致といったものがある。あるデバイスがサービスを拒 否されるたびに、カウンタがデクリメントされる。カウンタがゼロまで達すると 、そのデバイスの優先度は大きくされ、DENY PRIORITYと名付けた 優先度レベルがセットされる。これらのカウンタには、最大15までのプログラ ム可能な値をロードすることができる。カウンタがゼロまで達すると、DENY  PRIORITYビットがセットされ、これは最終的には、拒否されたデバイ スがサービスを受けたときクリアされる。サービスが拒否されたデバイスの優先 度を大きくするこの方法によると、サービス窮乏化(starvation)が 防止される。注意すべきことは、IOUの固有優先度レベルは本来的にすでに高 いので、IOUにはサービス拒否優先度が割り当てられないことである。
IOUはすでに本来的に優先度が高いデバイスであるので、そのデバイスがボー トを独占するのをカウンタで防止するようにする必要もある。IOUにボート使 用権が許可されるたびに、カウンタはデクリメントされる。カウンタがゼロまで 達すると、IOUはバスを独占しているものと扱われ、IOUの優先度レベルは 低くされる。 IOUの優先度レベルを落とすのは通常優先度の要求の場合だけ であり、高優先度の入出力要求の場合は行われない。IOUに要求サイクル時に ボート使用権が許与されないときは、独占優先度ビット(hog priori ty bit)がクリアされる。
要求の固有優先度を変更するもう1つの要因は行一致であるや行一致が主に重要 なのは、■キャッシュの場合である。あるデバイスが以前にサービスを受けた要 求と同じ行アドレスをもつメモリ・ロケーションを要求すると、要求したデバイ スの優先度が高(される。これが行われるのは、RASを再要求しないで済むよ うにするためである。
しかし、行一致優先度を持ち続けるには一定の限度がある。この場合も、カウン タはプログラム可能な最大値をセットして使用される。行一致優先度があるため に要求がサービスを受けるたびに、カウンタはデクリメントされる。カウンタが ゼロまで達すると、行一致優先度ビットがクリアされる。ボートの新しいマスク が割り当てられると、あるいは行一致の要求がないと、カウンタには再びプログ ラム可能値が事前ロードされる。上述したカウンタはスイッチ仲裁ユニット58 に置かれている。
メモリ・ボートに対する書込み要求は、スイッチの書込みデータ・バスsw、− woが使用可能になっているときだけ許可される。使用可能でないときは、別の 要求が選択される。1つだけ例外があり、それは、介入信号ITVの場合である 。 sw−woが使用可能になっていないと、どの要求も選択されない。その代 わりに、プロセッサはsw−woが空きになるのを待ってから、要求をスイッチ ・オービタに受け渡す。
スイッチ・ネットワーク54の仲裁方式は、ボートの仲裁で使用される方式と若 干異なっている。第3図のスイッチ仲裁ユニット58は、ソフトウェアで選択可 能なボートの仲裁を行うとき、2種類の仲裁方式を利用している。
1.優先度がスレーブまたは被要求側デバイス(すなわち、メモリまたはrOU ボート)を基準にしているスレーブ優先度方式。
2、優先度がマスクまたは要求側デバイスCすなわち、IOU、Dキャッシュお よびIキャッシュ)を基準にしているマスク優先度方式。
スレーブ優先度方式では、優先度は常にラウンド・ロビン方式でメモリ・ボート に与えられる。つまり、優先度は最初にメモリ・ボート0、l、281.に与え られ、次にl0tJに与えられる。これに対して、マスク優先度方式では、優先 度は最初にIOUに与えられ、次にDキャッシュとIキャッシュに与えられる。
勿論、事情によっては、マスク優先方式に従ってITV要求に最高優先度を与え る必要がある場合やそうしたほうが望ましい場合がある。また、ブリフェッチ・ バッファがやがて空になる場合に、■キャッシュに高優先度を与える必要がある 場合やそうしたほうが望ましい場合がある。いずれの場合も、使用する優先度方 式は、様々な動作条件に合うようにソフトウェアで調整することが可能である。
動的メモリ・リフレッシュも優先度方式に基づいている。ステート・マシンに接 続されたカウンタは、あるリフレッシュから次のリフレッシュまでどれだけのサ イクルが経過したか、つまり、リフレッシュが要求され、MADバスが使用中の ため拒否された回数を記録するために使用される。カウンタが所定のカウントま で達すると、つまり、経過すると、信号をボートに対して生成して、リフレッシ ュの必要があることをボートに通知する。ボートが使用中で、DキャッシュやI キャッシュまたはIOUからの要求にサービスを与えている場合は、これまでに 拒否したりフレッシニ要求が所定数まで達していなければ、リフレッシュ要求に サービスを与えることを拒否する。言い換えれば、リフレッシュ要求が所定回数 まで拒否されたとき、リフレッシュ要求にサービスを与えることに優先度が与え られる。ボートがリフレッシュ要求にサービスを与える準備状態になると、MA Uバスの仲裁を始めるようにバス仲裁制御ユニットに通知する。
行は、15マイクロ秒ごとにリフレッシュするのが好ましく、また、所定の期間 内に、例えば、少なくとも30マイクロ秒ごとにリフレッシュする必要がある。
RASが低(要求−assert )になり、 CASが要求されなかったとき は、リフレッシュが行われたことがすべてのCPUに通知される。すべてのCP Uはリフレッシュがいつ行われたかを記録しているので、どのCPUも必要時に リフレッシュを要求することができる。
本発明の好適実施例について説明してきたが、本発明の精神と範囲を逸脱しない 限り、種々態様に変更が可能であることは勿論である。従って、上述した実施例 は、本発明を説明するための例示にすぎず、その範囲は実施例に限定されること なく、請求の範囲に記載した発明から判断すべきものである。
r” −−−−+ 、+・54 スイツナ・イ゛/タフ一一ス 木0−ト 0インフ7寡−ス MAUCNTRL FIG、−5 スイ7千・ネiトワ−7 東島優先度 フロントページの続き (72)発明者 ラウ、テーリ アメリカ合衆国 94206 カリフォルニア州 パロ アルド 力レッジ ア ヴエニュ(72)発明者 タン、チェンーロン アメリカ合衆国 95132 カリフォルニア州 サン ノゼ カマーゴ ドラ イブ

Claims (29)

    【特許請求の範囲】
  1. 1.複数のマイクロプロセッサをサポートすることができ、該マイクロプロセッ サの各々はデータ用(D)キャッシュ、命令用(I)キャッシュ、メモリ・ポー ト、および入出力ユニット(IOU)を有するマルチプロセッサ・アーキテクチ ャにおいて、該マイクロプロセッサの各々に設けられたメモリ制御ユニット(M CU)は、 スイッチ・ネットワークと、 Dキャッシュ・インタフェース回路と、前記Dキャッシュ・インタフェース回路 を前記Dキャッシュと前記スイッチ・ネットワークとの間に結合するための手段 と、 Iキャッシュ・インタフェース回路と、前記Iキャッシュ・インタフェース回路 を前記Iキャッシュと前記スイッチ・ネットワークとの間に結合するための手段 と、 入出力インタフエース回路と、 前記入出力インタフニース回路を前記IOUと前記スイッチ・ネットワークとの 間に結合するための手段と、 メモリ・ポート・インタフェース回路と、前記メモリ・ポート・インタフェース 回路を前記メモリ・ポートと前記スイッチ・ネットワークとの間に結合するため の手段と、 前記スイッチ・ネットワークの仲裁を行うスイッチ仲裁手段と、 前記メモリ・ポートの仲裁を行うポート仲裁手段と、 前記Dキャッシュ、前記Iキャッシュおよび前記IOUのいずれか1つと前記メ モリ・ポートとの間で前記スイッチ・ネットワークおよび前記ポート・インタフ ェース回路を介してデータを転送する要求を前記ポート仲裁手段に転送するため の手段と、前記ポート・インタフェース回路が前記要求を処理することができる とき、ポート使用可能信号を前記ポート仲裁手段から前記スイッチ仲裁手段へ転 送するための手段と、 前記スイッチ・ネットワークが前記要求を処理することができるようになって、 データを前記Dキャッシュ、前記Iキャッシュおよび前記IOUのうちの前記い ずれか1つと前記メモリ・ポートとの間で転送することが可能になったとき、前 記ポート使用可能信号に応答して、スイッチ使用可能信号を前記スイッチ仲裁手 段から当該要求のソースおよび前記ポート仲裁手段へ転送するための手段と を備えたことを特徴とするMCU。
  2. 2.請求の範囲第1項的記載のMCUにおいて、前記スイッチ・ネットワークは スイッチ要求バス(SW_REQ)、スイッチ書込みデータ・バス(SW_WD )、およびスイッチ読取りデータ・バス(SW_RD)を備え、該MCU は、 該MCU をメモリ・アレイ・ユニット(MAU)にMAU システム・バスを 介して結合するための手段であって、該MAU システム・バスはMAU アド レス・バス、MAUデータ・バスおよびMAU制御信号バスを含んでいる手段と 、 前記Dキャッシュと前記IOUのいずれか1つから前記MAUへの書き込みの要 求に関連するアドレスを、前記MAU アドレス・バスがそのとき前記アドレス を受け入れるように使用可能になっていない場合に、一時的にストアしておくた めの手段と、 前記MAUへの書き込みの前記要求の前記ソースからの書込みデータを、前記M AUデータ・バスがそのとき前記書込みデータを受け入れるように使用可能にな っていない場合に、一時的にストアしておくための手段と、 前記MAUへの書き込みの前記要求の前記ソースからの前記MAUへの書き込み の前記要求に関連する前記アドレスを前記スイッチ要求バス(SW_REQ)へ 転送し、および前記要求に関連する前記書込みデータを前記スイッチ書込みデー タ・バス(SW_WD)へ転送するための手段と、 前記MAUへの書き込みの前記要求に関連する前記アドレスを、前記スイッチ要 求バス(SW_REQ)から前記MAUへの書き込みの前記要求に関連する前記 アドレスを一時的にストアしておくための前記手段へ転送するための手段と、 前記書込みデータを前記スイッチ書込みデータ・バス(SW_WD)から前記書 込みデータを一時的にストアしておくための前記手段へ転送するための手段と、 前記MAU アドレス・バスおよび前記書込みデータ・バスが空きになって、前 記アドレスおよび前記書込みデータを受け入れることが可能になったとき、前記 アドレスを、前記アドレスを一時的にストアしておくための前記手段から前記M AU アドレス・バスへ転送し、および前記書込みデータを前記書込みデータを 一時的にストアしておくための前記手段から前記MAUアドレス・バスおよび前 記書込みデータ・バスへ転送するための手段と をさらに備えたことを特徴とするMAU。
  3. 3.請求の範囲第1項に記載のMCUにおいて、前記スイッチ・ネットワークは 、スイッチ要求バス(SW_REQ).スイッチ書込みデータ・バス(SW_W D)、およびスイッチ読取りデータ・バス(SW_RD)圧備え、前記MCUは 、 該MCUをメモリ・アレイ・ユニット(MAU)にMAUシステム・バスを介し て結合するための手段であって、前記MAU システム・バスはMAUアドレス ・バス、MAUデータ・バスおよびMAU制御信号バスを含む手段と、 前記Dキャッシュ、IキャッシュおよびIOUのいずれか1つからの前記MAU からデータを読み取る要求に関連するアドレスを、前記MAUアドレス・バスが そのとき該アドレスを受け入れるように使用可能になっていない場合に、一時的 にストアしておくための手段と、 該MAUからの前記読取りデータを、前記読取りデータ・バス(SW_RD)が そのとき該読取りデータを転送できるように使用可能になっていない場合に、一 時的にストアしておくための手段と、 前記スイッチ要求バス(SW_REQ)が使用可能になっているとき、前記読取 り要求に関連かる前記アドレスを、当該要求の前記ソースから前記スイッチ要求 バス(SW_REQ)へ転送するための手段と、前記読取り要求に関連する前記 アドレスを、前記MAUアドレス・バスがそそのとき当該アドレスを受け入れる ように使用可能になっていないとき、前記スイッチ要求バス(SW_REQ)か ら、当該読取り要求に関連する該アドレスを一時的にストアしておくための手段 へ転送するための手段と、 前記MAUアドレス・バスが前記アドレスを受け入れるように使用可能になって おり、かつ前記スイッチ読取りバス(SW_RD)が前記読取りデータを転送す るように使用可能になっていないとき、当該読取りデータを前記データ・バスか ら一時的にストアしておくための手段へ転送するための手段と、 前記スイッチ読取りデータ・バス(SW_RD)が前記読取りデータを転送する ように使用可能になっているとき、当該読取りデータを一時的にストアしておく ための手段から前記スイッチ読取りデータ・バス(SW_RD)へ転送し、およ び前記スイッチ読取りデータ・バスSW_RD)から前記要求の前記ソースへ転 送するための手段と をさらに備えたことを特徴とするMCU。
  4. 4.請求の範囲第1項に記載のMCU的おいて、前記スイッチ・ネットワークは 、スイッチ要求バス(SW_REQ)、スイッチ書込みデータ・バス(SW_W D)、およびスイッチ読取りデータ・バス(SW_RD)とを備え、および前記 MCUは、 入出力(I/O)データ転送の要求を、前記Dキャッシュおよび前記Iキャッシ ュのいずれか1つと前記IOUとの間で、前記スイッチ・ネットワークおよび前 記入出力インタフエース回路を介して、転送するための手段と、 前記入出力インタフエース回路が入出力データ転送のための前記要求を処理する ために使用可能になっているとき、IOU使用可能信号を前記入出力インタフェ ース回路から前記スイッチ仲裁手段へ転送するための手段と、 前記スイッチ・ネットワークが前記入出力データ転送のための前記要求を処理す るために使用可能になっているとき、当該要求に関連するアドレスを前記スイッ チ要求バス(SW_REQ)を介して前記入出力インタフエース回路へ転送する ための手段と をさらに備えたことを特徴とするMCU。
  5. 5.請求の範囲第1項に記載のMCUにおいて、前記スイッチ・ネットワークは 、スイッチ要求バス(SW_REW)、スイッチ書込みデータ・バス(SW_W D)、およびスイッチ読取りデータ・バス(SW_RD)とを備え、および前記 MCUは、 入出力データ転送のための前記要求が書込み要求であるとき、量込みデータを前 記DキャッシュおよびIキャッシュのいずれか1つから前記スイッチ書込みデー タ・バス(SW_WD)を介して前記入出力インタフエース回路へ転送するため の手段と、入出力データ転送のための前記要求が読取り要求であるとき、読取り データを前記IOU回路から前記スイッチ読取りデータ・バス(SW_RD)を 介して前記DキャッシュおよびIキャッシュのいずれか1つへ転送するための手 段と をさらに備えたことを特徴とするMCU。
  6. 6.請求の範囲第1項に記載のMCUにおいて、該MCUをMAUシステム・バ スを介してメモリ・アレイ・ユニット(MAU)に結合するための手段であって 、前記MAUシステム・バスはMAUアドレス・バス、MAUデータ・バスおよ びMAU制御信号バスを含む手段と、 テストおよびセット・バイパス回路であって、該テストおよびセット・バイパス 回路は、前記MAUアドレス・バスに結合されて、前記MAUアドレス・バス上 のアドレスに対応するスヌープ・アドレスを生成するためのスヌープ・アドレス ・ジェネレータと内容アドレス・メモリ(CAM)とを有するテストおよびセッ ト・バイパス回路と、 共用メモリ領域にアクセスする要求に関連検るあらかじめ定めた命令の実行に応 答して、当該領域に関連するセマフォアのアドレスを前記CAMにストアするた めの手段と、 前記セマフォアに対する引続いての要求があったとぎ、前記スヌープ・アドレス を前記CAMの内容と比較するための手段と、 前記セマフォア・アドレスがまだ前記CAMに残っているとき、セマフォア失敗 信号を当該セマフォアに対する前記要求のソースに送り、これによってメモリ・ バンド幅を節減するための手段と を備えたことを特徴とするMCU。
  7. 7.請求の範囲第6項に記載のMCUにおいて、前記共用メモリ領域に書込みが 行われるのに応答して、前記セマフォアを解放し、前記CAMをクリアするため の手段を備えたことを特徴とするMCU。
  8. 8.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキテ クチャ的おいて、前記プロセッサの1つはマスタであり、および他のプロセッサ はすべてスレーブであり、 前記プロセッサの各々をMAUシステム・バスを介してメモリ・アレイ・ユニッ ト(MAU)に結合するための手段であって、前記MAUシステム・バスはMA Uアドレス・バス、MAUデータ・バスおよびMAU制御信号バスを含む手段と 、 前記マスタからの読取り要求に関連して前記MAUアドレス・バス上に送出され たアドレスを探すために、前記スレーブの各々がスヌープすることを可能にする 手段と、 前記マスタによって前記MAUアドレス・バス上に送出された前記アドレスに関 連するデータを前記スレーブのいずれかひとつが修正したとき、介入信号(IT V)を前記マスタヘ送るための手段と、 前記ITV信号に応答して、前記読取り要求に関連する前記アドレスから受け取 ったデータを前記マスタに破棄させるための手段と、 前記スレーブにおける前記修正されたデータを前記読取り要求に関連する前記ア ドレスに書き出すための手段と を備えたことを特徴とするマルチプロセッサ・アーキテクチャ。
  9. 9.請求の範囲第8項に記載のマルチプロセッサ・アーキテクチャにおいて、さ らに、 メモリ・ポートと、 前記ポートを介してデータの転送を制御するためのポート・インタフェース回路 と、 前記スレーブが前記修正されたデータをメモリに書き出している間、前記マスタ からの前記読取り要求を前記ポート・インタフェース回路に保持しておくための 手段と、 前記マスタからの前記読取り要求をその後に実行するための手段と を備えたことを特徴とするマルチプロセッサ・アーキテクチャ。
  10. 10.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいて、前記プロセッサの1つのマスタであり、および他のプロセッ サはすべてスレーブであり、 前記プロセッサの各々をメモリ・アレイ・ユニット(MAU)にMAUシステム ・バスを介して結合するための手段であって、前記MAUシステム・バスはMA Uアドレス・バス、MAUデータ・バスおよびMAU制御信号バスを含む手段と 、 前記マスタからの書込み要求に関連して前記MAUアドレス・バス上に送出され たアドレスを探すために前記スレーブの各々がスヌープすることを可能にする手 段と、 前記書込み要求に関連する前記アドレスからのデータをキャッシュにもっている 前記スレーブの各々に当該キャッシュに置かれている前記データを無効にさせる ための手段と を備えたことを特徴とするマルチプロセッサ・アーキテクチャ。
  11. 11.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいて、前記プロセッサの1つはマスタであり、および他のプロセッ サはすべてスレーブであり、 前記プロセッサの各々をメモリ・アレイ・ユニット(MAU)にMAUシステム ・バスを介して結合するための手段であって、前記MAUシステム・バスはMA Uアドレス・バス、MAUデータ・バスおよびMAU制御信号バスを含む手段と 、 前記マスタからの変更意図付き読取り要求に関連して前記MAUアドレス・バス 上に送出されたアドレスを探すために、前記スレーブの各々がスヌープすること を可能にする手段と、 前記マスタからの変更意図付き読取り要求に関連する前記アドレスからのデータ を前記スレーブのいずれかが変更したとき、介入信号(ITV)を前記マスタヘ 提供するための手段と、 前記ITV信号に応答して、前記変更意図付き読取り要求に関連する前記アドレ スから受け取ったデータを前記マスタに破棄させるための手段と、前記スレーブ における前記変更データを前記変更意図付き読取り要求に関連する前記アドレス に書き込むための手段と を備えたことを特徴とするマルチプロセッサ・アーキテクチャ。
  12. 12.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいて、前記プロセッサの1つはマスタであり、およびその他のプロ セッサはすべてスレーブであり、 前記プロセッサの各々をメモリ・アレイ・ユニット(MAU)にMAUシステム ・バスを介して接続するための手段であって、該MAUシステム・バスはMAU アドレス・バス、MAUデータ・バスおよびMAU制御信号バスを含む手段と、 前記マスタからの変更意図付き読取り要求に関連して前記MAUアドレス・バス 上に送出されたアドレスを探すために、前記スレーブの各々がスヌープすること を可能にする手段と、 前記書込み要求に関連する前記アドレスからの未変更データをもつ当該スレーブ の各々に当該データを無効にさせるための手段と を備えたことを特徴とするマルチプロセッサ・アーキテクチャ。
  13. 13.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいて、前記プロセッサの1つはマスタであり、およびその他のプロ セッサはすべてスレーブであり、 前記プロセッサの各々をメモリ・アレイ・ユニット(MAU)にMAUシステム ・バスを介して結合するための手段であって、該MAUシステム・バスはMAU アドレス・バス、MAUデータ・バスおよびMAU制御信号バスを含む手段と、 MAUアドレス・バスに現れた順次のアドレスを比較するための手段と、 前記比較手段に応答して、前記MAUアドレス・バスに現れた前記順次のアドレ スが同じ行アドレスからなる限り、行アドレス・ストローブ(RAS)を継続し て要求するための手段と を備えたことを特徴とするマルチプロセッサ・アーキテクチャ。
  14. 14.請求の範囲第1項に記載の複数のプロセッサをサポートすることのできる マルチプロセッサ・アーキテクチャにおいて、 各デバイスに割り当てられた固有優先度と、要求したアドレスと以前にサービス を受けた要求との間の行一致の存在、デバイスがサービスを拒否された回数およ びデバイスが割込み(中断)なしでサービスを受けた回数を含む複数の要因との 関数として、IOU、DキャッシュおよびIキャッシュのデバイス要求に動的優 先度を与えるための手段であって、該動的優先度を与える手段は、前記要因の各 々が発生した回数を記録するカウント手段と、該カウント手段に応答して前記固 有優先度と前記回数との関数として前記デバイスの優先度を変更するための手段 と を備えたことを特徴とするマルチプロセッサ・アーキテクチャ。
  15. 15.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいて、前記プロセッサの各々に配置されて、あらかじめ定めた個数 のマシン・サイクルの後に、メモリ・リフレッシュ要求を生成するための手段と 、 前記プロセッサの各々に配置されて、前記要求が最後に許可された以降に、当該 要求が拒否された回数を記録するための手段と、 前記プロセッサの各々に配置されて、前記回数が所定の大きさに達したとき、前 記メモリ・リフレッシュ要求の優先度を大きくして、前記メモリがあらかじめ定 めた時間内にリフレッシュされるようにする手段と を備えたことを特徴とするマルチプロセッサ・アーキテクチャ。
  16. 16.複数のマイクロプロセッサをサポートすることのできるマルチプロセッサ ・アーキテクチャにおいてデータを転送する方法であって、前記マイクロプロセ ッサの各々は、データ用(D)キャッシュ、命令用(I)キャッシュ、メモリ・ ポート、入出力ユニット(I/O)およびメモリ制御ユニット(MCU)を有し 、該MCUはスイッチ・ネットワーク、Dキャッシュ・インタフェース回路、該 Dキャッシュ・インタフェース回路を前記Dキャッシュと前記スイッチ・ネット ワークとの間に結合するための手段、Iキャッシュ・インタフェース回路、該I キャッシュ・インタフェース回路を前記Iキャッシュと前記スイッチ・ネットワ ークとの間に結合するための手段、入出力インタフエース回路、該入出力インタ フエース回路を前記IOUと前記スイッチ・ネットワークとの間に結合するため の手段、メモリ・ポート・インタフェース回路、該メモリ・ポート・インタフェ ース回路を前記メモリ・ポートと前記スイッチ・ネットワークとの間に結合する ための手段、前記スイッチ・ネットワークの仲裁を行うスイッチ仲裁手段、およ び前記メモリ・ポートの仲裁を行うポート仲裁手段を有するデータ転送方法にお いて、 前記Dキャッシュ、前記Iキャッシュおよび前記IOUのいずれか1つと前記メ モリ・ポートとの間で前記スイッチ・ネットワークおよび前記ポート・インタフ ェース回路を介してデータを転送する要求を前記ポート仲裁手段へ転送するステ ップと、前記ポート・インタフェース回路が前記要求を処理するために空きにな っているとき、ポート使用可能信号を前記ポート仲裁手段から前記スイッチ仲裁 手段へ転送かるステップと、 前記スイッチ・ネットワークが前記要求を処理するために空きになっているとき 、スイッチ使用可能信号を前記スイッチ仲裁手段から当該要求のソースおよび前 記ポート仲裁手段へ転送し、それによってデータを前記Dキャッシュ、前記Iキ ャッシュおよびIOUの前記いずれか1つと前記メモリ・ポートとの間で転送す ることを許可するステップと を備えたことを特徴とするデータ転送方法。
  17. 17.請求の範囲第16項に記載のマルチプロセッサにおいてデータを転送する 方法において、前記アーキテクチャは、前記MCUをメモリ・アレイ・ユニット (MAU)にMAUシステム・ユニット・バスを介して結合するための手段を備 え、前記MAUシステム・バスはMAUアドレス・バス、MAUデータ・バスお よびMAU制御信号バスを含み、前記スイッチ・ネットワークはスイッチ要求バ ス(SW_REQ)、スイッチ書込みデータ・バス(SW_WD)、およびスイ ッチ読取りデータ・バス(SW_RD)を含み、さらに、 前記Dキャッシュと前記IOUのいずれか1つからの前記MAUへの書込み要求 に関連するアドレスを、前記MAUアドレス・バスがそのとき前記アドレスを受 け入れることができるように使用可能になっていない場合に一時的にストアして おくステップと、前記MAUへの前記書込み要求の前記ソースからの書込みデー タを、前記MAUデータ・バスがそのとき前記書込みデータを受け入れることが できるように使用可能になっていない場合に一時的にストアしておくステップと 。 前記MAUへの前記書込み要求に関連する前記アドレスを、前記MAUへの当該 書込み要求の前記ソースから前記スイッチ要求バス(SW_REQ)へ転送し、 および当該要求に関連する前記書込みデータを前記スイッチ書込みデータ・バス (SW_RD)へ転送するステップと、前記MAUへの前記書込み要求に関連す る前記アドレスを、前記スイッチ要求バス(SW_REQ)から前記MAUへの 当該書込み要求に関連かる当該アドレスを一時的にストアしておくための手段へ 転送かするステップと、前記書込みデータを、前記スイッチ書込みデータ・バス (SW_WD)から当該書込みデータを一時的にストアしておくための手段へ転 送するステップと、前記MAUアドレス・バスおよび書込みデータ・バスが使用 可能になっていて、前記アドレスおよび前記書込みデータを受け入れることがで きるとき、当該アドレスを一時的にストアしておくための前記手段から前記MA Uアドレス・バスへ転送し、および当該書込みデータを一時的にストアしておく ための前記手段から当該アドレス・バスおよび書込みデータ・バスへ転送するス テップと を備えたことを特徴とするデータ転送方法。
  18. 18.請求の範囲第16項に記載のマルチプロセッサにおけるデータを転送する 方法において、前記アーキテクチャは前記MCUをメモリ・アレイ・ユニット( MAU)にMAUシステム・バスを介して結合するための手段を備え、前記MA Uシステム・バスは、MAUアドレス・バス、MAUデータ・バスおよびMAU 制御信号バスを含み、前記スイッチ・ネットワークは、スイッチ要求バス(SW _REQ)、スイッチ書込みデータ・バス(SW_WD)、およびスイッチ読取 りデータ・バス(SW_RD)を含み、さらに、 前記Dキャッシュ、IキャッシュおよびIOUのいずれか1つからの前記MAU からデータを読み取る読取り要求に関連するアドレスを、前記MAUアドレス・ バスがそのとき前記アドレスを受け入れることができるように使用可能になって いない場合に、一時的にストアしておくステップと、 前記MAUからの前記読取りデータを、前記スイッチ読取りデータ・バス(SW _RD)がそのとき前記読取りデータを受け入れることができるように使用可能 になっていない場合に一時的にストアしておくステップと、前記スイッチ要求バ ス(SW_REQ)が使用可能になっているとき、前記読取り要求に関連する前 記アドレスを当該要求の前記ソースから前記スイッチ要求バス(SW_REQ) へ転送するステップと、前記読取り要求に関連する前記アドレスを、前記MAU アドレス・バスがそのとき前記アドレスを受け入れることがでるように使用可能 になっていない場合に、前記スイッチ要求バス(SW_REQ)から当該読取り 要求に関連する前記アドレスを一時的にストアしておくための前記手段へ転送す るステップと、前記MAUアドレス・バスが前記アドレスを受け入れるように使 用可能になっており、かつ前記スイッチ読取りバス(SW_RD)が前記読取り データを転送できるように使用可能になっていないとき、当該読取りデータを前 記MAUデータ・バスから当該読取りデータを一時的にストアしておくための前 記手段へ転送するステップと、 前記スイッチ読取りデータ・バス(SW_RD)が前記読取りデータを転送する ように使用可能になっているとき、当該読取りデータを一時的にストアしておく ための前記手段から前記スイッチ読取りデータ・バス(SW_RD)へ転送し、 および前記スイッチ読取りデータ・バス(SW_RD)から前記要求の前記ソー スへ転送するステップと を備えたことを特徴とするデータ転送方法。
  19. 19.請求の範囲第16項に記載のマルチプ限セッサ・アーキテクチャにおいて データを転送する方法において、前記アーキテクチャにおける前記スイッチ・ネ ットワークはスイッチ要求バス(SW_REQ)、スイッチ書込みデータ・バス (SW_REQ)、およびスイッチ読取りデータ・バス(SW_RD)を備え、 さらに、入出力データ転送の要求を前記Dキャッシュおよび前記Iキャッシュの いずれか1つと前記IOUとの間で前記スイッチ・ネットワークおよび前記入出 力インタフエース回路を介して転送するステップと、前記入出力インタフエース 回路が入出力データ転送の前記要求を処理するように使用可能であるとき、IO U使用可能信号を前記入出力インタフエース回路から前記スイッチ仲裁手段へ送 るステップと、入出力データ転送の前記要求に関連するアドレスを、前記スイッ チ・ネットワークが当該要求を処理するように使用可能であるとき、前記スイッ チ要求バス(SW_REQ)を介して前記入出力インタフニース回路へ転送する ステップと を備えたことを特徴とするデータ転送方法。
  20. 20.請求の範囲第16項に記載のマルチプロセッサ・アーキテクチャにおいて データを転送する方法において、前記アーキテクチャにおける前記スイッチ・ネ ットワークはスイッチ要求バス(SW_REQ)、スイッチ書込みデータ.バス (SW_WD)、およびスイッチ読取りデータ・バス(SW_RD)を備え、さ らに、入出力データ転送の前記要求が書込み要求であるとき、書込みデータを前 記DキャッシュとIキャッシュのいずれか1つから前記スイッチ書込みデータ・ バス(SW_WD)を介して前記入出力インタフエース回路へ転送するステップ と、 入出力データ転送の前記要求が読取り要求であるとき、読取りデータを前記IO U回路から前記スイッチ読取りデータ・バス(SW_RD)を介して前記Dキャ ッシュおよびIキャッシュのいずれか1つへ転送するステップと を備えたことを特徴とするデータ転送方法。
  21. 21.請求の範囲第16項に記載のマルチプロセッサ・アーキテクチャにおいて データを転送する方法において、前記アーキテクチャは、前記MCUをメモリ・ アレイ・ユニット(MAU)にMAUシステム・バスを介して結合するための手 段と、テストおよびセット・バイパス回路とを備え、前記MAUシステム・バス はMAUアドレス・バス、MAUデータ・バスおよびMAU制御信号バスを含み 、前記テストおよびセット・バイパス回路は前記MAUアドレス・バス上のアド レスに対応するスヌープ・アドレスを生成するために該アドレス・バスに結合さ れたスヌープ・アドレス・ジエネレータと内容アドレス・メモリ(CAM)とを 有し、 共用メモリ領域に関連するセマフォアのアドレスを前記CAMにストアするステ ップと、 前記セマフォアの引続きの要求があったとき、前記スヌープ・アドレスを前記C AMの内容と比較するステップと、 前記セマフォア・アドレスがまだ前記CAMに残っているときは、当該セマフォ アの前記要求のソースヘセマフォア失敗信号を送り、これによりメモリ・バンド 幅を節減するステップと を備えたことを特徴とするデータ転送方法。
  22. 22.請求の範囲第21項に記載の方法において、前記共用メモリ領域への書込 みに応答して、前記セマフォアを解放し、および前記CAMをクリアするステッ プを備えたことを特徴とする方法。
  23. 23.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいてデータを転送する方法において、前記マルチプロセッサ・アー キテクチャは、前記プロセッサの各々をメモリ・アレイ・ユニット(MAU)に MAUシステム・バスを介して結合するための手段を有し、前記MAUシステム ・バスはMAUアドレス・バス、MAUデータ・バスおよびMAU制御信号バス を含み、前記プロセッサの1つはマスタであり、およびその他のプロセッサはす べてスレーブであり、 前記マスタからの読取り要求に関連して前記MAUアドレス・バス上に送出され たアドレスを探すために前記スレーブの各々がスヌープすることを可能にするス テップと、 前記マスタから前記MAUアドレス・バス上に送出された前記アドレスに関連す るデータを前記スレーブのいずれか1つが変更したときに、介入信号(ITV) を前記マスタヘ送るステップと、 前記ITV信号に応答して、前記読取り要求に関連する前記アドレスから受け取 ったデータを前記マスタに破棄させるステップと、 前記スレーブにおける前記変更されたデータを前記読取り要求に関連する前記ア ドレスに書き込むステップと を備えたことを特徴とするデータ転送方法。
  24. 24.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいてデータを転送する方法において、前記アーキテクチャは、前記 プロセッサの各々をメモリ・アレイ・ユニット(MAU)にMAUシステム・バ スを介して結合するための手段を有し、前記MAUシステム・バスはMAUアド レス・バス、MAUデータ・バスおよびMAU制御信号バスを含み、前記プロセ ッサの1つはマスタであり、およびその他のプロセッサはすべてスレーブであり 、 前記マスクからの書込み要求に関連して前記MAUアドレス・バスに送出された アドレスを探すために、前記スレーブの各々がスヌープすることを可能にするス テップと、 前記書込み要求に関連する前記アドレスからのデータをキャッシュにもっている 前記スレーブの各々に、当該キャッシュにおける当該データを無効にさせるステ ップと を備えたことを特徴とするデータ転送方法。
  25. 25.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいてデータを転送する方法において、前記アーキテクチャは、前記 プロセッサの各々をメモリ・アレイ・ユニット(MAU)にMAUシステム・バ スを介して結合するための手段を有し、前記MAUシステム・バスはMAUアド レス・バス、MAUデータ・バスおよびMAU制御信号バスを含み、前記プロセ ッサの1つはマスタであり、およびその他のプロセッサはすべてスレーブであり 、 前記マスタからの変更意図付き読取り要求に関連して前記MAUアドレス・バス に送出されたアドレスを探すために、前記スレーブの各々がスヌープすることを 可能にするステップと、 該マスタからの当該変更意図付き読取り要求に関連する当該アドレスから受け取 ったデータを当該スレーブの1つが変更したとき、介入信号(ITV)を前記マ スタヘ送るステップと、 前記ITV信号に応答して、当該変更意図付き読取り要求に関連する当該アドレ スから受け取ったデータを前記マスタに破棄させるステップと、 当該スレーブにおける前記変更データを当該変更意図付き読取り要求に関連する 当該アドレスに書き込むステップと を備えたことを特徴とするデータ転送方法。
  26. 26.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいてデータを転送する方法において、前記アーキテクチャは、前記 プロセッサの各々をメモリ・アレイ・ユニット(MAU)にMAUシステム・バ スを介して結合するための手段を有し、前記MAUシステム・バスはMAUアド レス・バス、MAUデータ・バスおよびMAU制御信号バスを含み、前記プロセ ッサの1つはマスタであり、およびその他のプロセッサはすべてスレーブであり 、 前記マスタからの変更意図付き読取り要求に関連して前記MAUアドレス・バス に送出されたアドレスを探すために、前記スレーブの各々がスヌープすることを 可能にするステップと、 前記書込み要求に関連する前記アドレスからの未変更データをもつ前記スレーブ の各々に当該データを無効にさせるステップと を備えたことを特徴とするデータ転送方法。
  27. 27.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいてデータを転送する方法において、前記アーキテクチャは、前記 プロセッサの各々をメモリ・アレイ・ユニット(MAU)にMAUシステム・バ スを介して結合するための手段を有し、前記MAUシステム・バスはMAUアド レス・バス、MAUデータ・バスおよびMAU制御信号バスを含み、前記プロセ ッサの1つはマスタであり、およびその他のプロセッサはすべてスレーブであり 、 MAUアドレス・バス上に現れた順次のアドレスを比較するステップと、 前記MAUアドレス・バス上に現れた前記順次のアドレスが同じ行アドレスから なる限り、行アドレス・ストローブ(RAS)を継続して要求するステップとを 備えたことを特徴とするデータ転送方法。
  28. 28.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいてデータを転送する方法において、 各デバイスに割り当てられた固有優先度と、要求したアドレスと以前にサービス を受けた要求との間に行一致の存在、デバイスがサービスを拒否された回数およ び割込み(中断)なしでデバイスがサービスを受けた回数を含む複数の要因との 関数として、IOU、DキャッシュおよびIキャッシュのデバイス要求に動的優 先度を与えるステップと、 前記要因の各々が発生した回数を記録するステップと、 前記固有優先度と前記回数との関数として前記デバイスの優先度を変更するステ ップと を備えたことを特徴とするデータ転送方法。
  29. 29.複数のプロセッサをサポートすることのできるマルチプロセッサ・アーキ テクチャにおいてメモリを動的にリフレッシュする方法において、 前記プロセッサの各々においてあらかじめ定めた個数のマシン・サイクルの後に 、メモリ・リフレッシュ要求を生成するステップと、 前記要求が最後に許可された以後に、当該要求が拒否された回数を記録するステ ップと、 前記回数が所定の大きさに達したとき、前記メモリ・リフレッシュ要求の優先度 を大きくして、前記メモリが前記プロセッサの少なくとも1つによって、あらか じめ定めた時間内にリフレッシュされるようにするステップと を備えたことを特徴とするメモリの動的リフレッシュ方法。
JP50215193A 1991-07-08 1992-07-07 複数の異種プロセッサをサポートすることのできるマイクロプロセッサ・アーキテクチャ Expired - Fee Related JP3557617B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/726,893 US5440752A (en) 1991-07-08 1991-07-08 Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
US726,893 1991-07-08
PCT/JP1992/000869 WO1993001553A1 (en) 1991-07-08 1992-07-07 Microprocessor architecture capable of supporting multiple heterogeneous processors

Related Child Applications (9)

Application Number Title Priority Date Filing Date
JP11336931A Division JP2000215184A (ja) 1999-01-01 1999-11-29 デ―タ転送方法
JP11336932A Division JP2000215185A (ja) 1999-01-01 1999-11-29 プロセッサシステム
JP11336933A Division JP2000215186A (ja) 1999-01-01 1999-11-29 マルチプロセッサシステム
JP11336934A Division JP2000215187A (ja) 1999-01-01 1999-11-29 マルチプロセッサシステム
JP11336930A Division JP2000215183A (ja) 1999-01-01 1999-11-29 メモリポ―ト仲裁方法
JP2003406721A Division JP3632766B2 (ja) 1991-07-08 2003-12-05 プロセッサ・システム
JP2003406720A Division JP3624951B2 (ja) 1991-07-08 2003-12-05 マルチプロセッサ・システム
JP2003406723A Division JP3850829B2 (ja) 1991-07-08 2003-12-05 メモリ・ポート仲裁方法
JP2003406722A Division JP3624952B2 (ja) 1991-07-08 2003-12-05 データ転送方法

Publications (2)

Publication Number Publication Date
JPH06501123A true JPH06501123A (ja) 1994-01-27
JP3557617B2 JP3557617B2 (ja) 2004-08-25

Family

ID=24920467

Family Applications (7)

Application Number Title Priority Date Filing Date
JP50215193A Expired - Fee Related JP3557617B2 (ja) 1991-07-08 1992-07-07 複数の異種プロセッサをサポートすることのできるマイクロプロセッサ・アーキテクチャ
JP2003406721A Expired - Lifetime JP3632766B2 (ja) 1991-07-08 2003-12-05 プロセッサ・システム
JP2003406723A Expired - Lifetime JP3850829B2 (ja) 1991-07-08 2003-12-05 メモリ・ポート仲裁方法
JP2003406720A Expired - Lifetime JP3624951B2 (ja) 1991-07-08 2003-12-05 マルチプロセッサ・システム
JP2003406722A Expired - Lifetime JP3624952B2 (ja) 1991-07-08 2003-12-05 データ転送方法
JP2004265076A Withdrawn JP2005050368A (ja) 1991-07-08 2004-09-13 マルチプロセッサ・システム
JP2004265075A Expired - Fee Related JP3687750B2 (ja) 1991-07-08 2004-09-13 マルチプロセッサ・システム

Family Applications After (6)

Application Number Title Priority Date Filing Date
JP2003406721A Expired - Lifetime JP3632766B2 (ja) 1991-07-08 2003-12-05 プロセッサ・システム
JP2003406723A Expired - Lifetime JP3850829B2 (ja) 1991-07-08 2003-12-05 メモリ・ポート仲裁方法
JP2003406720A Expired - Lifetime JP3624951B2 (ja) 1991-07-08 2003-12-05 マルチプロセッサ・システム
JP2003406722A Expired - Lifetime JP3624952B2 (ja) 1991-07-08 2003-12-05 データ転送方法
JP2004265076A Withdrawn JP2005050368A (ja) 1991-07-08 2004-09-13 マルチプロセッサ・システム
JP2004265075A Expired - Fee Related JP3687750B2 (ja) 1991-07-08 2004-09-13 マルチプロセッサ・システム

Country Status (8)

Country Link
US (9) US5440752A (ja)
EP (3) EP0886225B1 (ja)
JP (7) JP3557617B2 (ja)
KR (1) KR100248902B1 (ja)
AT (3) ATE177221T1 (ja)
DE (3) DE69233655T2 (ja)
HK (2) HK1012742A1 (ja)
WO (1) WO1993001553A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11345165A (ja) * 1997-12-05 1999-12-14 Texas Instr Inc <Ti> アクセス待ち時間を減少するため優先度とバースト制御を使用するトラフィック・コントローラ
JP2000231536A (ja) * 1999-01-05 2000-08-22 Internatl Business Mach Corp <Ibm> 状態ベースのトランザクション・スケジューリングを有する回路及び方法
US6282630B1 (en) 1991-07-08 2001-08-28 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
JP2015144000A (ja) * 2005-10-20 2015-08-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated セマフォ予約をクリアする方法および装置
JP2016524740A (ja) * 2013-05-01 2016-08-18 クゥアルコム・インコーポレイテッドQualcomm Incorporated キャッシュ要求を調停するシステムおよび方法

Families Citing this family (302)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
JPH07504773A (ja) * 1992-03-18 1995-05-25 セイコーエプソン株式会社 マルチ幅のメモリ・サブシステムをサポートするためのシステム並びに方法
WO1993020505A2 (en) 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling
EP0638183B1 (en) * 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
JPH06161873A (ja) * 1992-11-27 1994-06-10 Fujitsu Ltd 主記憶に対する複数のアクセスポイントのハングアップ処理方式
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
EP1107111A3 (en) 1992-12-31 2002-02-06 Seiko Epson Corporation System and method for register renaming
DE69323861T2 (de) * 1993-01-25 1999-10-07 Bull Hn Information Syst Multiprozessorsystem mit gemeinsamem Speicher
US6115547A (en) 1993-03-29 2000-09-05 Trilogy Development Group, Inc. Flash configuration cache
JP3619532B2 (ja) * 1993-11-08 2005-02-09 株式会社ルネサステクノロジ 半導体集積回路装置
GB2286265B (en) * 1994-01-26 1998-02-18 Advanced Risc Mach Ltd selectable processing registers
US5918242A (en) * 1994-03-14 1999-06-29 International Business Machines Corporation General-purpose customizable memory controller
US5748917A (en) * 1994-03-18 1998-05-05 Apple Computer, Inc. Line data architecture and bus interface circuits and methods for dual-edge clocking of data to bus-linked limited capacity devices
JPH086889A (ja) * 1994-06-20 1996-01-12 Fujitsu Ltd 入出力制御装置
US5832303A (en) * 1994-08-22 1998-11-03 Hitachi, Ltd. Large scale interconnecting switch using communication controller groups with multiple input-to-one output signal lines and adaptable crossbar unit using plurality of selectors
US5560016A (en) * 1994-10-06 1996-09-24 Dell Usa, L.P. System and method for dynamic bus access prioritization and arbitration based on changing bus master request frequency
US5623670A (en) * 1995-02-17 1997-04-22 Lucent Technologies Inc. Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
US5867704A (en) * 1995-02-24 1999-02-02 Matsushita Electric Industrial Co., Ltd. Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system
JP3115820B2 (ja) * 1995-05-17 2000-12-11 松下電器産業株式会社 インターフェース装置、及びこれを用いたコンピュータ装置
US5754803A (en) 1996-06-27 1998-05-19 Interdigital Technology Corporation Parallel packetized intermodule arbitrated high speed control and data bus
US5799195A (en) * 1995-07-24 1998-08-25 Dell Usa, L.P. Structure and method for detecting occurrence of external events using semaphores
AU6452396A (en) * 1995-07-27 1997-02-26 Intel Corporation Protocol for arbitrating access to a shared memory area using historical state information
US6317803B1 (en) 1996-03-29 2001-11-13 Intel Corporation High-throughput interconnect having pipelined and non-pipelined bus transaction modes
US5911051A (en) * 1996-03-29 1999-06-08 Intel Corporation High-throughput interconnect allowing bus transactions based on partial access requests
US5905999A (en) * 1996-04-29 1999-05-18 International Business Machines Corporation Cache sub-array arbitration
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US5845096A (en) * 1996-08-26 1998-12-01 Vlsi Technology, Inc. Adaptive arbitration mechanism for a shared multi-master bus
US6338109B1 (en) * 1996-08-30 2002-01-08 Cypress Semiconductor Corp. Microcontroller development system and applications thereof for development of a universal serial bus microcontroller
US5862355A (en) * 1996-09-12 1999-01-19 Telxon Corporation Method and apparatus for overriding bus prioritization scheme
US6385678B2 (en) * 1996-09-19 2002-05-07 Trimedia Technologies, Inc. Method and apparatus for bus arbitration with weighted bandwidth allocation
US6092229A (en) * 1996-10-09 2000-07-18 Lsi Logic Corporation Single chip systems using general purpose processors
US5974480A (en) * 1996-10-18 1999-10-26 Samsung Electronics Co., Ltd. DMA controller which receives size data for each DMA channel
US6513057B1 (en) 1996-10-28 2003-01-28 Unisys Corporation Heterogeneous symmetric multi-processing system
US6141351A (en) * 1996-12-20 2000-10-31 International Business Machines Corporation Radio frequency bus for broadband microprocessor communications
US5978379A (en) * 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US5931924A (en) * 1997-04-14 1999-08-03 International Business Machines Corporation Method and system for controlling access to a shared resource that each requestor is concurrently assigned at least two pseudo-random priority weights
US5935234A (en) * 1997-04-14 1999-08-10 International Business Machines Corporation Method and system for controlling access to a shared resource in a data processing system utilizing pseudo-random priorities
US6052383A (en) * 1997-05-29 2000-04-18 3Com Corporation LAN to ATM backbone switch module
US5884051A (en) * 1997-06-13 1999-03-16 International Business Machines Corporation System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities
US6658447B2 (en) * 1997-07-08 2003-12-02 Intel Corporation Priority based simultaneous multi-threading
US6185646B1 (en) * 1997-12-03 2001-02-06 International Business Machines Corporation Method and apparatus for transferring data on a synchronous multi-drop
FR2778258A1 (fr) * 1998-04-29 1999-11-05 Texas Instruments France Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
US6088751A (en) * 1998-02-12 2000-07-11 Vlsi Technology, Inc. Highly configurable bus priority arbitration system
US6789150B1 (en) * 1998-02-16 2004-09-07 Infineon Technologies A.G. Integrated circuit having arbitrated switching between busses
US6178486B1 (en) 1998-02-19 2001-01-23 Quantum Corporation Time allocation shared memory arbitration for disk drive controller
JPH11250005A (ja) * 1998-03-05 1999-09-17 Nec Corp バス制御方法、バス制御装置及びバス制御プログラムを記憶した記憶媒体
US6377581B1 (en) * 1998-05-14 2002-04-23 Vlsi Technology, Inc. Optimized CPU-memory high bandwidth multibus structure simultaneously supporting design reusable blocks
US6286083B1 (en) * 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
US6223239B1 (en) * 1998-08-12 2001-04-24 Compaq Computer Corporation Dual purpose apparatus, method and system for accelerated graphics port or system area network interface
US6249845B1 (en) 1998-08-19 2001-06-19 International Business Machines Corporation Method for supporting cache control instructions within a coherency granule
US6330632B1 (en) 1998-09-30 2001-12-11 Hewlett-Packard Company System for arbitrating access from multiple requestors to multiple shared resources over a shared communications link and giving preference for accessing idle shared resources
US6434649B1 (en) * 1998-10-14 2002-08-13 Hitachi, Ltd. Data streamer
US6728839B1 (en) * 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
US6233645B1 (en) 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US6389494B1 (en) 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
US7073020B1 (en) 1999-01-04 2006-07-04 Emc Corporation Method for message transfer in computer storage system
US6411218B1 (en) * 1999-01-22 2002-06-25 Koninklijke Philips Electronics N.V. Priority-encoding device selection using variable arbitrary rankings
DE19904084B4 (de) 1999-02-02 2008-12-11 Force Computers Gmbh Computer
US6639915B1 (en) * 1999-04-07 2003-10-28 Utstarcom, Inc. Method and apparatus for transmission of voice data in a network structure
US6427193B1 (en) 1999-05-18 2002-07-30 Advanced Micro Devices, Inc. Deadlock avoidance using exponential backoff
US6473837B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Snoop resynchronization mechanism to preserve read ordering
US6415360B1 (en) 1999-05-18 2002-07-02 Advanced Micro Devices, Inc. Minimizing self-modifying code checks for uncacheable memory types
US6266744B1 (en) 1999-05-18 2001-07-24 Advanced Micro Devices, Inc. Store to load forwarding using a dependency link file
US6393536B1 (en) 1999-05-18 2002-05-21 Advanced Micro Devices, Inc. Load/store unit employing last-in-buffer indication for rapid load-hit-store
US6473832B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Load/store unit having pre-cache and post-cache queues for low latency load memory operations
US7031302B1 (en) * 1999-05-21 2006-04-18 Broadcom Corporation High-speed stats gathering in a network switch
US6779036B1 (en) 1999-07-08 2004-08-17 International Business Machines Corporation Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6467012B1 (en) 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6442597B1 (en) 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6718422B1 (en) 1999-07-29 2004-04-06 International Business Machines Corporation Enhanced bus arbiter utilizing variable priority and fairness
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6591348B1 (en) 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6725307B1 (en) 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US6587930B1 (en) * 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
JP3843667B2 (ja) * 1999-10-15 2006-11-08 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6611796B1 (en) * 1999-10-20 2003-08-26 Texas Instruments Incorporated Method and apparatus for combining memory blocks for in circuit emulation
FR2800551B1 (fr) * 1999-11-03 2002-01-04 St Microelectronics Sa Decodeur mpeg utilisant une memoire partagee
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6457085B1 (en) 1999-11-04 2002-09-24 International Business Machines Corporation Method and system for data bus latency reduction using transfer size prediction for split bus designs
US6542949B1 (en) 1999-11-08 2003-04-01 International Business Machines Corporation Method and apparatus for increased performance of a parked data bus in the non-parked direction
US6684279B1 (en) 1999-11-08 2004-01-27 International Business Machines Corporation Method, apparatus, and computer program product for controlling data transfer
US6535941B1 (en) 1999-11-08 2003-03-18 International Business Machines Corporation Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants
US6523076B1 (en) 1999-11-08 2003-02-18 International Business Machines Corporation Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks
US7529799B2 (en) 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6516379B1 (en) 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
US6529990B1 (en) 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6662280B1 (en) 1999-11-10 2003-12-09 Advanced Micro Devices, Inc. Store buffer which forwards data based on index and optional way match
US7793076B1 (en) 1999-12-17 2010-09-07 Intel Corporation Digital signals processor having a plurality of independent dedicated processors
US6769046B2 (en) * 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6584513B1 (en) 2000-03-31 2003-06-24 Emc Corporation Direct memory access (DMA) transmitter
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US6993621B1 (en) 2000-03-31 2006-01-31 Emc Corporation Data storage system having separate data transfer section and message network with plural directors on a common printed circuit board and redundant switching networks
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US6584531B1 (en) * 2000-04-27 2003-06-24 Lsi Logic Corporation Arbitration circuit with plural arbitration processors using memory bank history
US6651130B1 (en) 2000-04-28 2003-11-18 Emc Corporation Data storage system having separate data transfer section and message network with bus arbitration
US6779071B1 (en) 2000-04-28 2004-08-17 Emc Corporation Data storage system having separate data transfer section and message network with status register
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
JP2001356961A (ja) * 2000-06-13 2001-12-26 Nec Corp 調停装置
US7103041B1 (en) * 2000-06-30 2006-09-05 Marconi Intellectual Property (Ringfence), Inc. Optimization of number of transceivers used in a switch
GB2364867B (en) * 2000-07-17 2003-12-10 Advanced Risc Mach Ltd A data processing apparatus and slave interface mechanism for controlling access to a slave logic unit by a plurality of master logic units
US6804193B1 (en) * 2000-07-28 2004-10-12 Marconi Intellectual Property (Ringfence) Inc. Protected Ethernet backplane communication
KR100487542B1 (ko) * 2000-07-29 2005-05-03 엘지전자 주식회사 글로벌 버스의 버스 사용권 예약 중재방법
KR100644597B1 (ko) * 2000-08-05 2006-11-10 삼성전자주식회사 버스 시스템 및 그 커맨드 전달방법
US6594736B1 (en) * 2000-08-15 2003-07-15 Src Computers, Inc. System and method for semaphore and atomic operation management in a multiprocessor
CN100440183C (zh) 2000-09-06 2008-12-03 Nxp股份有限公司 处理器间通信系统
US6591385B1 (en) * 2000-09-11 2003-07-08 Agilent Technologies, Inc. Method and apparatus for inserting programmable latency between address and data information in a memory tester
US6901468B1 (en) * 2000-09-27 2005-05-31 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US20020062415A1 (en) * 2000-09-29 2002-05-23 Zarlink Semiconductor N.V. Inc. Slotted memory access method
US7752400B1 (en) * 2000-12-14 2010-07-06 F5 Networks, Inc. Arbitration and crossbar device and method
US7124224B2 (en) * 2000-12-22 2006-10-17 Intel Corporation Method and apparatus for shared resource management in a multiprocessing system
US7225320B2 (en) * 2000-12-28 2007-05-29 Koninklijke Philips Electronics N.V. Control architecture for a high-throughput multi-processor channel decoding system
US6492881B2 (en) * 2001-01-31 2002-12-10 Compaq Information Technologies Group, L.P. Single to differential logic level interface for computer systems
US6845504B2 (en) * 2001-02-08 2005-01-18 International Business Machines Corporation Method and system for managing lock contention in a computer system
US6742160B2 (en) * 2001-02-14 2004-05-25 Intel Corporation Checkerboard parity techniques for a multi-pumped bus
US20020133652A1 (en) * 2001-03-19 2002-09-19 Tai Quan Apparatus for avoiding starvation in hierarchical computer systems that prioritize transactions
US6889343B2 (en) 2001-03-19 2005-05-03 Sun Microsystems, Inc. Method and apparatus for verifying consistency between a first address repeater and a second address repeater
US6826643B2 (en) 2001-03-19 2004-11-30 Sun Microsystems, Inc. Method of synchronizing arbiters within a hierarchical computer system
US6877055B2 (en) 2001-03-19 2005-04-05 Sun Microsystems, Inc. Method and apparatus for efficiently broadcasting transactions between a first address repeater and a second address repeater
US7249242B2 (en) 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
US7752419B1 (en) * 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
CN1592900A (zh) * 2001-07-05 2005-03-09 皇家菲利浦电子有限公司 处理器集群
GB2379523B (en) * 2001-09-05 2003-11-19 3Com Corp Shared memory system including hardware memory protection
US7237016B1 (en) * 2001-09-07 2007-06-26 Palau Acquisition Corporation (Delaware) Method and system to manage resource requests utilizing link-list queues within an arbiter associated with an interconnect device
US7043569B1 (en) * 2001-09-07 2006-05-09 Chou Norman C Method and system for configuring an interconnect device
US20030088722A1 (en) * 2001-11-02 2003-05-08 David Price System and method for managing priorities in a PCI bus system
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US6848015B2 (en) * 2001-11-30 2005-01-25 Hewlett-Packard Development Company, L.P. Arbitration technique based on processor task priority
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7403981B2 (en) 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US6845417B2 (en) * 2002-01-09 2005-01-18 Hewlett-Packard Development Company, L.P. Ensuring fairness in a multiprocessor environment using historical abuse recognition in spinlock acquisition
US6807608B2 (en) * 2002-02-15 2004-10-19 International Business Machines Corporation Multiprocessor environment supporting variable-sized coherency transactions
US7849172B2 (en) * 2002-03-01 2010-12-07 Broadcom Corporation Method of analyzing non-preemptive DRAM transactions in real-time unified memory architectures
US7080177B2 (en) * 2002-03-01 2006-07-18 Broadcom Corporation System and method for arbitrating clients in a hierarchical real-time DRAM system
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US6779092B2 (en) * 2002-05-15 2004-08-17 Hewlett-Packard Development Company, L.P. Reordering requests for access to subdivided resource
EP1376373B1 (en) * 2002-06-20 2006-05-31 Infineon Technologies AG Arrangement having a first device and a second device connected via a cross bar switch
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US20040059879A1 (en) * 2002-09-23 2004-03-25 Rogers Paul L. Access priority protocol for computer system
JP4181839B2 (ja) * 2002-09-30 2008-11-19 キヤノン株式会社 システムコントローラ
US20040068607A1 (en) * 2002-10-07 2004-04-08 Narad Charles E. Locking memory locations
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
GB2395306B (en) * 2002-11-15 2006-02-15 Imagination Tech Ltd A configurable processor architecture
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US6985984B2 (en) * 2002-11-07 2006-01-10 Sun Microsystems, Inc. Multiprocessing systems employing hierarchical back-off locks
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US7028147B2 (en) * 2002-12-13 2006-04-11 Sun Microsystems, Inc. System and method for efficiently and reliably performing write cache mirroring
US7302616B2 (en) * 2003-04-03 2007-11-27 International Business Machines Corporation Method and apparatus for performing bus tracing with scalable bandwidth in a data processing system having a distributed memory
US7213169B2 (en) * 2003-04-03 2007-05-01 International Business Machines Corporation Method and apparatus for performing imprecise bus tracing in a data processing system having a distributed memory
US7149829B2 (en) * 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
CN100433623C (zh) * 2003-06-11 2008-11-12 硅斯托尔公司 串行高级技术附件(sata)交换机
US7526587B2 (en) * 2004-02-09 2009-04-28 Lsi Corporation Dual port serial advanced technology attachment (SATA) disk drive
US7539797B2 (en) * 2003-06-11 2009-05-26 Lsi Corporation Route aware Serial Advanced Technology Attachment (SATA) Switch
US7523235B2 (en) * 2003-06-11 2009-04-21 Lsi Corporation Serial Advanced Technology Attachment (SATA) switch
US6906961B2 (en) * 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
US7321964B2 (en) * 2003-07-08 2008-01-22 Advanced Micro Devices, Inc. Store-to-load forwarding buffer using indexed lookup
US7296105B2 (en) * 2003-10-03 2007-11-13 Sonics, Inc. Method and apparatus for configuring an interconnect to implement arbitration
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US7103735B2 (en) * 2003-11-26 2006-09-05 Intel Corporation Methods and apparatus to process cache allocation requests based on priority
US7206922B1 (en) * 2003-12-30 2007-04-17 Cisco Systems, Inc. Instruction memory hierarchy for an embedded processor
US7783802B1 (en) 2004-02-09 2010-08-24 Lsi Corporation Serial advanced technology attachment (SATA) switch that toggles with power control to hard disk drive while avolding interruption to system
US7986630B1 (en) 2004-02-09 2011-07-26 Lsi Corporation High performance architecture for fiber channel targets and target bridges
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
KR100604835B1 (ko) * 2004-02-24 2006-07-26 삼성전자주식회사 프로토콜 변환중재회로, 이를 구비하는 시스템과 신호변환중재방법
US7191366B2 (en) * 2004-02-26 2007-03-13 International Business Machines Corporation Method and intelligent slave device transfer control unit for implementing seamless error resumption in a shared memory bus structure
EP1722010B1 (en) * 2004-03-05 2012-04-25 Kitz Corporation Method of preventing nickel leaching from copper alloy made water-contact equipment item, protective film forming agent for nickel leaching prevention and detergent for nickel leaching prevention
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US20050246463A1 (en) * 2004-04-29 2005-11-03 International Business Machines Corporation Transparent high-speed multistage arbitration system and method
US20050262281A1 (en) * 2004-05-21 2005-11-24 Nayak Prakash H Managing a shared resource
US7437364B1 (en) * 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8561076B1 (en) * 2004-06-30 2013-10-15 Emc Corporation Prioritization and queuing of media requests
US8224964B1 (en) 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8676922B1 (en) 2004-06-30 2014-03-18 Google Inc. Automatic proxy setting modification
US7200693B2 (en) * 2004-08-27 2007-04-03 Micron Technology, Inc. Memory system and method having unidirectional data buses
JP4617782B2 (ja) * 2004-09-01 2011-01-26 株式会社日立製作所 データ専用バスを有する無線機
US7739436B2 (en) * 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response
US20060111886A1 (en) * 2004-11-23 2006-05-25 Mahesh Siddappa Method and system for modeling of a differential bus device
TWI296084B (en) * 2004-11-30 2008-04-21 Realtek Semiconductor Corp Bus arbiter, bus device, and bus arbitrating method
US20060130124A1 (en) * 2004-12-15 2006-06-15 Guard Insurance Group A Remote Communication System and Method Implementing a Session Server and One or More Object Servers
US7590744B2 (en) * 2004-12-15 2009-09-15 Guard Insurance Group Remote communication system and method implementing a session server and one or more object servers
US7263566B2 (en) 2004-12-30 2007-08-28 Qualcomm Incorporated Method and apparatus of reducing transfer latency in an SOC interconnect
US7752627B2 (en) * 2005-02-04 2010-07-06 Mips Technologies, Inc. Leaky-bucket thread scheduler in a multithreading microprocessor
US7681014B2 (en) * 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
US7613904B2 (en) * 2005-02-04 2009-11-03 Mips Technologies, Inc. Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler
US7664936B2 (en) * 2005-02-04 2010-02-16 Mips Technologies, Inc. Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages
US7657883B2 (en) * 2005-02-04 2010-02-02 Mips Technologies, Inc. Instruction dispatch scheduler employing round-robin apparatus supporting multiple thread priorities for use in multithreading microprocessor
US7853777B2 (en) * 2005-02-04 2010-12-14 Mips Technologies, Inc. Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions
US7631130B2 (en) * 2005-02-04 2009-12-08 Mips Technologies, Inc Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor
US7657891B2 (en) 2005-02-04 2010-02-02 Mips Technologies, Inc. Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency
US7506140B2 (en) * 2005-02-04 2009-03-17 Mips Technologies, Inc. Return data selector employing barrel-incrementer-based round-robin apparatus
US7490230B2 (en) * 2005-02-04 2009-02-10 Mips Technologies, Inc. Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor
US7209405B2 (en) * 2005-02-23 2007-04-24 Micron Technology, Inc. Memory device and method having multiple internal data buses and memory bank interleaving
JP4449782B2 (ja) 2005-02-25 2010-04-14 ソニー株式会社 撮像装置および画像配信方法
JP4817725B2 (ja) * 2005-06-20 2011-11-16 キヤノン株式会社 データ処理装置及び方法
US7716387B2 (en) * 2005-07-14 2010-05-11 Canon Kabushiki Kaisha Memory control apparatus and method
US7395376B2 (en) * 2005-07-19 2008-07-01 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
US20070028027A1 (en) * 2005-07-26 2007-02-01 Micron Technology, Inc. Memory device and method having separate write data and read data buses
US7376817B2 (en) * 2005-08-10 2008-05-20 P.A. Semi, Inc. Partial load/store forward prediction
US8325768B2 (en) * 2005-08-24 2012-12-04 Intel Corporation Interleaving data packets in a packet-based communication system
EP1955175A1 (en) * 2005-09-09 2008-08-13 Freescale Semiconductor, Inc. Interconnect and a method for designing an interconnect
US7969966B2 (en) * 2005-12-19 2011-06-28 Alcatel Lucent System and method for port mapping in a communications network switch
US7366810B2 (en) * 2005-11-16 2008-04-29 Via Technologies, Inc. Method and system for multi-processor arbitration
US7426621B2 (en) * 2005-12-09 2008-09-16 Advanced Micro Devices, Inc. Memory access request arbitration
US9336333B2 (en) * 2006-02-13 2016-05-10 Linkedin Corporation Searching and reference checking within social networks
DE602006019005D1 (de) * 2006-06-27 2011-01-27 Thomson Licensing Verfahren und vorrichtung zur durchführung der arbitrierung
JP4233585B2 (ja) 2006-07-25 2009-03-04 株式会社エヌ・ティ・ティ・ドコモ ペリフェラル切替装置及びペリフェラル切替制御装置
US20080040564A1 (en) * 2006-08-10 2008-02-14 International Business Machines Corporation Sychronized Light Path Scheme Across Mutiple SAS Storage Enclosures
US7961745B2 (en) * 2006-09-16 2011-06-14 Mips Technologies, Inc. Bifurcated transaction selector supporting dynamic priorities in multi-port switch
US7773621B2 (en) * 2006-09-16 2010-08-10 Mips Technologies, Inc. Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch
US7760748B2 (en) * 2006-09-16 2010-07-20 Mips Technologies, Inc. Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch
US7990989B2 (en) * 2006-09-16 2011-08-02 Mips Technologies, Inc. Transaction selector employing transaction queue group priorities in multi-port switch
US20080091866A1 (en) * 2006-10-12 2008-04-17 International Business Machines Corporation Maintaining forward progress in a shared L2 by detecting and breaking up requestor starvation
US20080098178A1 (en) * 2006-10-23 2008-04-24 Veazey Judson E Data storage on a switching system coupling multiple processors of a computer system
US8745315B2 (en) * 2006-11-06 2014-06-03 Rambus Inc. Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US7962676B2 (en) 2006-12-22 2011-06-14 Lsi Corporation Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords
US8499308B2 (en) * 2006-12-22 2013-07-30 Lsi Corporation Initiator notification method and apparatus
US7761642B2 (en) 2006-12-22 2010-07-20 Lsi Corporation Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging
US7865647B2 (en) * 2006-12-27 2011-01-04 Mips Technologies, Inc. Efficient resource arbitration
US20080182021A1 (en) * 2007-01-31 2008-07-31 Simka Harsono S Continuous ultra-thin copper film formed using a low thermal budget
US8812651B1 (en) 2007-02-15 2014-08-19 Google Inc. Systems and methods for client cache awareness
US7814253B2 (en) * 2007-04-16 2010-10-12 Nvidia Corporation Resource arbiter
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
US7685346B2 (en) * 2007-06-26 2010-03-23 Intel Corporation Demotion-based arbitration
US9710384B2 (en) * 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US8561037B2 (en) * 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US7996614B2 (en) 2008-01-04 2011-08-09 International Business Machines Corporation Cache intervention on a separate data bus when on-chip bus has separate read and write data busses
US7778105B2 (en) * 2008-03-17 2010-08-17 Oracle America, Inc. Memory with write port configured for double pump write
CN101546275B (zh) * 2008-03-26 2012-08-22 中国科学院微电子研究所 一种获取多处理器硬件信号量的方法
US7673087B1 (en) * 2008-03-27 2010-03-02 Xilinx, Inc. Arbitration for an embedded processor block core in an integrated circuit
JP5125890B2 (ja) * 2008-08-28 2013-01-23 富士通セミコンダクター株式会社 調停装置及び電子機器
US20100115233A1 (en) * 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
US8205066B2 (en) * 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
WO2010052679A1 (en) * 2008-11-10 2010-05-14 Nxp B.V. Resource controlling
JP5424161B2 (ja) * 2009-02-16 2014-02-26 独立行政法人情報通信研究機構 需給調停システム、需給調停装置、需給調停方法および需給調停プログラム
WO2010105060A1 (en) 2009-03-11 2010-09-16 Virage Logic Corp. Systems and methods for resource controlling
US20100325327A1 (en) * 2009-06-17 2010-12-23 Freescale Semiconductor, Inc. Programmable arbitration device and method therefor
US8984198B2 (en) * 2009-07-21 2015-03-17 Microchip Technology Incorporated Data space arbiter
JP4929386B2 (ja) 2009-09-07 2012-05-09 株式会社エヌ・ティ・ティ・ドコモ 通信競合管理装置
US8458581B2 (en) * 2009-10-15 2013-06-04 Ansaldo Sts Usa, Inc. System and method to serially transmit vital data from two processors
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
EP2526494B1 (en) 2010-01-21 2020-01-15 SVIRAL, Inc. A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations
US8667197B2 (en) 2010-09-08 2014-03-04 Intel Corporation Providing a fine-grained arbitration system
US8543774B2 (en) 2011-04-05 2013-09-24 Ansaldo Sts Usa, Inc. Programmable logic apparatus employing shared memory, vital processor and non-vital communications processor, and system including the same
US9208109B2 (en) 2011-06-01 2015-12-08 Altera Corporation Memory controllers with dynamic port priority assignment capabilities
US8706936B2 (en) 2011-11-14 2014-04-22 Arm Limited Integrated circuit having a bus network, and method for the integrated circuit
CN102394829A (zh) * 2011-11-14 2012-03-28 上海交通大学 片上互连网络中基于可靠性需求的仲裁方法
US8838849B1 (en) 2011-12-08 2014-09-16 Emc Corporation Link sharing for multiple replication modes
US9128725B2 (en) 2012-05-04 2015-09-08 Apple Inc. Load-store dependency predictor content management
US9600289B2 (en) 2012-05-30 2017-03-21 Apple Inc. Load-store dependency predictor PC hashing
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
CN103218331B (zh) * 2012-12-07 2015-11-11 浙江大学 采用同步模式切换及帧优先级自动调整的总线装置及方法
US9164793B2 (en) * 2012-12-21 2015-10-20 Microsoft Technology Licensing, Llc Prioritized lock requests to reduce blocking
US9672046B2 (en) 2012-12-28 2017-06-06 Intel Corporation Apparatus and method for intelligently powering heterogeneous processor components
US9329900B2 (en) 2012-12-28 2016-05-03 Intel Corporation Hetergeneous processor apparatus and method
US9639372B2 (en) 2012-12-28 2017-05-02 Intel Corporation Apparatus and method for heterogeneous processors mapping to virtual cores
US9448829B2 (en) 2012-12-28 2016-09-20 Intel Corporation Hetergeneous processor apparatus and method
US9582440B2 (en) * 2013-02-10 2017-02-28 Mellanox Technologies Ltd. Credit based low-latency arbitration with data transfer
US9727345B2 (en) 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
US9292442B2 (en) * 2013-04-11 2016-03-22 Qualcomm Incorporated Methods and apparatus for improving performance of semaphore management sequences across a coherent bus
US9641465B1 (en) 2013-08-22 2017-05-02 Mellanox Technologies, Ltd Packet switch with reduced latency
US9489322B2 (en) 2013-09-03 2016-11-08 Intel Corporation Reducing latency of unified memory transactions
US9710268B2 (en) 2014-04-29 2017-07-18 Apple Inc. Reducing latency for pointer chasing loads
CN103955436B (zh) * 2014-04-30 2018-01-16 华为技术有限公司 一种数据处理装置和终端
KR102285749B1 (ko) 2014-11-10 2021-08-05 삼성전자주식회사 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
US9892067B2 (en) * 2015-01-29 2018-02-13 International Business Machines Corporation Multiprocessor cache buffer management
US10514925B1 (en) 2016-01-28 2019-12-24 Apple Inc. Load speculation recovery
US10437595B1 (en) 2016-03-15 2019-10-08 Apple Inc. Load/store dependency predictor optimization for replayed loads
CN106569968B (zh) * 2016-11-09 2019-09-17 天津大学 用于可重构处理器的阵列间数据传输结构与调度方法
TWI779069B (zh) 2017-07-30 2022-10-01 埃拉德 希提 具有以記憶體為基礎的分散式處理器架構的記憶體晶片
KR102549540B1 (ko) * 2017-09-22 2023-06-29 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US10871992B2 (en) * 2018-05-30 2020-12-22 Texas Instruments Incorporated Level two first-in-first-out transmission
CN109379304B (zh) * 2018-10-30 2022-05-06 中国电子科技集团公司第五十四研究所 一种用于降低低优先级包延迟的公平调度方法
US11656992B2 (en) * 2019-05-03 2023-05-23 Western Digital Technologies, Inc. Distributed cache with in-network prefetch
US11765250B2 (en) 2020-06-26 2023-09-19 Western Digital Technologies, Inc. Devices and methods for managing network traffic for a distributed cache
US11675706B2 (en) 2020-06-30 2023-06-13 Western Digital Technologies, Inc. Devices and methods for failure detection and recovery for a distributed cache
US11736417B2 (en) 2020-08-17 2023-08-22 Western Digital Technologies, Inc. Devices and methods for network message sequencing
US11914903B2 (en) * 2020-10-12 2024-02-27 Samsung Electronics Co., Ltd. Systems, methods, and devices for accelerators with virtualization and tiered memory
CN114884770B (zh) * 2022-07-13 2022-10-18 南京观海微电子有限公司 一种基于系统总线的多机通讯系统及通讯方法

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5553722A (en) 1978-10-17 1980-04-19 Toshiba Corp Priority control system
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4482950A (en) * 1981-09-24 1984-11-13 Dshkhunian Valery Single-chip microcomputer
JPS58178432A (ja) 1982-04-14 1983-10-19 Fujitsu Ltd 優先権選択切替装置
US4597054A (en) * 1982-12-02 1986-06-24 Ncr Corporation Arbiter circuit and method
US4991081A (en) * 1984-10-31 1991-02-05 Texas Instruments Incorporated Cache memory addressable by both physical and virtual addresses
US4829467A (en) * 1984-12-21 1989-05-09 Canon Kabushiki Kaisha Memory controller including a priority order determination circuit
US4736319A (en) * 1985-05-15 1988-04-05 International Business Machines Corp. Interrupt mechanism for multiprocessing system having a plurality of interrupt lines in both a global bus and cell buses
EP0214718A3 (en) * 1985-07-22 1990-04-04 Alliant Computer Systems Corporation Digital computer
US4719569A (en) * 1985-10-11 1988-01-12 Sun Microsystems, Inc. Arbitrator for allocating access to data processing resources
US4760515A (en) * 1985-10-28 1988-07-26 International Business Machines Corporation Arbitration apparatus for determining priority of access to a shared bus on a rotating priority basis
US5283903A (en) * 1986-12-25 1994-02-01 Nec Corporation Priority selector
JPS63216159A (ja) 1987-03-04 1988-09-08 Ricoh Co Ltd バス優先順位制御方式
JPH07113903B2 (ja) * 1987-06-26 1995-12-06 株式会社日立製作所 キャッシュ記憶制御方式
JPS6488761A (en) 1987-09-30 1989-04-03 Pfu Ltd Bus connection system
US4924375A (en) * 1987-10-23 1990-05-08 Chips And Technologies, Inc. Page interleaved memory access
US5089951A (en) * 1987-11-05 1992-02-18 Kabushiki Kaisha Toshiba Microcomputer incorporating memory
JPH0622015B2 (ja) * 1987-11-30 1994-03-23 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データ処理システムの制御方法
US4959776A (en) * 1987-12-21 1990-09-25 Raytheon Company Method and apparatus for addressing a memory by array transformations
EP0324662A3 (en) * 1988-01-15 1990-01-17 EVANS &amp; SUTHERLAND COMPUTER CORPORATION Crossbar system for controlled data transfer
JPH0650511B2 (ja) 1988-01-18 1994-06-29 株式会社日立製作所 記憶制御方式
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
US4949247A (en) * 1988-02-23 1990-08-14 Stellar Computer, Inc. System for transferring multiple vector data elements to and from vector memory in a single operation
US4979100A (en) * 1988-04-01 1990-12-18 Sprint International Communications Corp. Communication processor for a packet-switched network
JPH01255042A (ja) 1988-04-04 1989-10-11 Hitachi Ltd 優先制御回路
US5301278A (en) * 1988-04-29 1994-04-05 International Business Machines Corporation Flexible dynamic memory controller
GB8815042D0 (en) * 1988-06-24 1988-08-03 Int Computers Ltd Data processing apparatus
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
US5261057A (en) * 1988-06-30 1993-11-09 Wang Laboratories, Inc. I/O bus to system interface
US4939641A (en) * 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
JP2761506B2 (ja) * 1988-07-08 1998-06-04 株式会社日立製作所 主記憶制御装置
JPH0237592A (ja) 1988-07-27 1990-02-07 Hitachi Ltd メモリ制御装置
JPH0271357A (ja) * 1988-09-07 1990-03-09 Fanuc Ltd プロセッサ回路
JPH0279153A (ja) 1988-09-16 1990-03-19 Mitsubishi Electric Corp バス使用権制御装置
JPH0283757A (ja) * 1988-09-21 1990-03-23 Hitachi Ltd 通信制御システム
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5148533A (en) * 1989-01-05 1992-09-15 Bull Hn Information Systems Inc. Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
JPH02181855A (ja) 1989-01-09 1990-07-16 Nec Corp バス優先権判定回路
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
US5303382A (en) * 1989-09-21 1994-04-12 Digital Equipment Corporation Arbiter with programmable dynamic request prioritization
JPH03127157A (ja) 1989-10-12 1991-05-30 Hitachi Ltd 記憶装置の負荷バランス制御方式
US5226125A (en) * 1989-11-17 1993-07-06 Keith Balmer Switch matrix having integrated crosspoint logic and method of operation
EP0429733B1 (en) * 1989-11-17 1999-04-28 Texas Instruments Incorporated Multiprocessor with crossbar between processors and memories
US5168547A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Distributed architecture for input/output for a multiprocessor system
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5404483A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
JP3127157B2 (ja) 1990-07-20 2001-01-22 マツダ株式会社 車両のサスペンション装置
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
JPH0728695A (ja) * 1993-07-08 1995-01-31 Nec Corp メモリコントローラ
US5666494A (en) 1995-03-31 1997-09-09 Samsung Electronics Co., Ltd. Queue management mechanism which allows entries to be processed in any order

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282630B1 (en) 1991-07-08 2001-08-28 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7555632B2 (en) 1991-07-08 2009-06-30 Seiko Epson Corporation High-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7941635B2 (en) 1991-07-08 2011-05-10 Seiko-Epson Corporation High-performance superscalar-based computer system with out-of order instruction execution and concurrent results distribution
JPH11345165A (ja) * 1997-12-05 1999-12-14 Texas Instr Inc <Ti> アクセス待ち時間を減少するため優先度とバースト制御を使用するトラフィック・コントローラ
JP2000231536A (ja) * 1999-01-05 2000-08-22 Internatl Business Mach Corp <Ibm> 状態ベースのトランザクション・スケジューリングを有する回路及び方法
JP2015144000A (ja) * 2005-10-20 2015-08-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated セマフォ予約をクリアする方法および装置
JP2016524740A (ja) * 2013-05-01 2016-08-18 クゥアルコム・インコーポレイテッドQualcomm Incorporated キャッシュ要求を調停するシステムおよび方法
US10289574B2 (en) 2013-05-01 2019-05-14 Qualcomm Incorporated System and method of arbitrating cache requests

Also Published As

Publication number Publication date
JP2004164656A (ja) 2004-06-10
US5440752A (en) 1995-08-08
US20040024987A1 (en) 2004-02-05
JP2005050368A (ja) 2005-02-24
DE69701078D1 (de) 2000-02-10
US7657712B2 (en) 2010-02-02
DE69228521T2 (de) 1999-06-24
DE69701078T2 (de) 2000-06-08
EP0547246A1 (en) 1993-06-23
JP2004158020A (ja) 2004-06-03
US5754800A (en) 1998-05-19
US20060064569A1 (en) 2006-03-23
US5941979A (en) 1999-08-24
EP0547246B1 (en) 1999-03-03
JP2005050367A (ja) 2005-02-24
JP3850829B2 (ja) 2006-11-29
ATE338982T1 (de) 2006-09-15
US20020059508A1 (en) 2002-05-16
EP0886225A1 (en) 1998-12-23
EP0834816A3 (en) 1998-04-22
US6272579B1 (en) 2001-08-07
US6219763B1 (en) 2001-04-17
EP0834816B1 (en) 2000-01-05
JP3624951B2 (ja) 2005-03-02
ATE177221T1 (de) 1999-03-15
JP3687750B2 (ja) 2005-08-24
JP3624952B2 (ja) 2005-03-02
EP0834816A2 (en) 1998-04-08
US6954844B2 (en) 2005-10-11
JP3632766B2 (ja) 2005-03-23
ATE188563T1 (de) 2000-01-15
EP0886225B1 (en) 2006-09-06
DE69228521D1 (de) 1999-04-08
KR930702724A (ko) 1993-09-09
JP2004171579A (ja) 2004-06-17
DE69233655D1 (de) 2006-10-19
WO1993001553A1 (en) 1993-01-21
JP3557617B2 (ja) 2004-08-25
JP2004158021A (ja) 2004-06-03
US5604865A (en) 1997-02-18
HK1012742A1 (en) 1999-08-06
US6611908B2 (en) 2003-08-26
DE69233655T2 (de) 2006-12-21
KR100248902B1 (ko) 2000-03-15
HK1019250A1 (en) 2000-01-28

Similar Documents

Publication Publication Date Title
JPH06501123A (ja) 複数の異種プロセッサをサポートすることのできるマイクロプロセッサ・アーキテクチャ
CA2051222C (en) Consistent packet switched memory bus for shared memory multiprocessors
JP3871305B2 (ja) マルチプロセッサ・システムにおけるメモリ・アクセスの動的直列化
US5265235A (en) Consistency protocols for shared memory multiprocessors
US5440698A (en) Arbitration of packet switched busses, including busses for shared memory multiprocessors
EP0489556B1 (en) Consistency protocols for shared memory multiprocessors
JP2000215183A (ja) メモリポ―ト仲裁方法
US5832306A (en) Acknowledge triggered forwarding of external block data responses in a microprocessor
JP2000215187A (ja) マルチプロセッサシステム
JP2000215185A (ja) プロセッサシステム
JP2000215186A (ja) マルチプロセッサシステム
JP2000215184A (ja) デ―タ転送方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040312

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: 20040427

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040510

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: 20080528

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090528

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100528

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110528

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120528

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350