JP2000215183A - Memory port arbitrating method - Google Patents

Memory port arbitrating method

Info

Publication number
JP2000215183A
JP2000215183A JP11336930A JP33693099A JP2000215183A JP 2000215183 A JP2000215183 A JP 2000215183A JP 11336930 A JP11336930 A JP 11336930A JP 33693099 A JP33693099 A JP 33693099A JP 2000215183 A JP2000215183 A JP 2000215183A
Authority
JP
Japan
Prior art keywords
bus
memory
cache
priority
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.)
Pending
Application number
JP11336930A
Other languages
Japanese (ja)
Inventor
Delek J Lenz
デレク ジェイ. レンツ,
Yasuaki Hagiwara
ヤスアキ ハギワラ,
Teeri Lau
テーリ ラウ,
Chen-Ron Tan
チェンーロン タン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP11336930A priority Critical patent/JP2000215183A/en
Publication of JP2000215183A publication Critical patent/JP2000215183A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To support different kind of processors connected to memory arrays and input/output devices by assigning priority to respective devices. SOLUTION: Each processor is equipped with a memory control unit(MCU) 50, connected to a cache control unit(CCU) 49 equipped with a data cache (D cache) 51 and an instruction cache (I cache) 52, and an input/output port 53. An MPU 50 is equipped with an interface and as switch network 54. The switch network 54 receives instructions and data requests from the CCU 49. A switch arbitration unit 58 assigns priority to the requests and passes the requests to corresponding port interfaces p0 to pN or the interface according to the addresses added to the requests.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、一般的には、マイ
クロプロセッサ・アーキテクチャに関し、具体的には、
複数の異種マイクロプロセッサをサポートすることので
きるマイクロプロセッサ・アーキテクチャに関する。
FIELD OF THE INVENTION The present invention relates generally to microprocessor architectures and, more particularly, to microprocessor architectures.
A microprocessor architecture capable of supporting multiple heterogeneous microprocessors.

【0002】[0002]

【従来の技術】以下に列挙した米国特許出願は本件特許
出願と同時に米国特許出願され、係属中のものである
が、これらの米国特許出願に開示されており、かつそれ
ぞれ対応して出願された日本での特許出願に開示されて
いる事項は、その出願番号を本明細書で引用することに
より本明細書の一部を構成するものとする。 1.発明の名称「高性能RISCマイクロプロセッサ・
ア−キテクチャ」(High−Performance
RISC Microprocessor Arch
itecture)SMOS−7984MCF/GB
R,米国特許出願第07/727,006号、1991
年7月8日出願、発明者Le T.Nguyen他、お
よびこれに対応する特願平5−502150(特表平6
−501122号公報)。 2.発明の名称「拡張可能RISCマイクロプロセッサ
・アーキテクチヤ」(Extensible RISC
Microprocessor Architect
ure)SMOS−7985MCF/GBR,米国特許
出願第07/727,058号、1991年7月8日出
願、発明者Le T.Nguyen他、およびこれに対
応する特願平5−502153(特表平6−50112
4号公報)。 3.「アーキテクチャ上の依存関係を隔離したRISC
マイクロプロセッサ・アーキテクチャ」(RISC M
icroprocessor Architectur
e with Isolated Architect
ura Dependencies)SMOS−798
7MCF/GBR/RCC,米題特許出願第07/72
6,744号、1991年7月8日出願、発明者Le
T.Nguyen他、およびこれに対応する特願平5−
502152(特表平6−502034号公報)。 4.発明の名称「複数型レジスタ・セットを採用したR
ISCマイクロプロセッサ・アーキテクチャ」(RIS
C Microprocessor Architec
ture Implementing Multipl
e TypedRegister Sets)SMOS
−7988MCF/GBR/RCC,米国特許出願第0
7/726,773号、1991年7月8日出願、発明
者Sanjiv Garg他、およびこれに対応する特
願平5−502403(特表平6−501805号公
報)。 5.発明の名称「高速トラップと例外状態をインプリメ
ントしたRISCマイクロプロセッサ・アーキテクチ
ャ」(RISC MicroprocessorArc
hitecture Impiementing Fa
St Trapand Exception Stat
e)SMOS−7989MCF/GBR/WSW,米国
特許出願第07/726,942号、1991年7月8
日出願、発明者Le T.Nguyen他、およびこれ
に対応する特願平5−502154(特表平6−502
035号公報)。 6.発明の名称「シングル・チップ・ページ・プリンタ
・コントローラ」(Single Chip Page
Printer Controller)SMOS−
7991MCF/GBR/HKW,米国特許出願第07
/726,929号、1991年7月8日出願、発明者
Derek J.Lentz他、およびこれに対応する
特願平5−502149(特表平6−501586号公
報)。
BACKGROUND OF THE INVENTION The U.S. patent applications listed below are U.S. patent applications pending and pending at the same time as the present patent application, but are disclosed in these U.S. patent applications and filed in corresponding applications. The matters disclosed in a patent application in Japan are incorporated herein by reference in their application numbers. 1. Title of invention "High performance RISC microprocessor
Architecture ”(High-Performance)
RISC Microprocessor Arch
item) SMOS-7984MCF / GB
R, US patent application Ser. No. 07 / 727,006, 1991.
Filed on July 8, 2012, filed by the inventor Le T. Nguyen et al. And Japanese Patent Application No. 5-502150 (Japanese Patent Application No.
-501122). 2. Title of the Invention "Extensible RISC Microprocessor Architecture"
Microprocessor Architect
ure) SMOS-7985MCF / GBR, U.S. patent application Ser. No. 07 / 727,058, filed Jul. 8, 1991, inventor LeT. Nguyen et al. And corresponding Japanese Patent Application No. 5-502153 (Japanese Patent Application No. 6-50112).
No. 4). 3. "RISC with isolated architectural dependencies
Microprocessor Architecture ”(RISC M
microprocessor Architecture
e with Isolated Architecture
ura Dependencies) SMOS-798
7MCF / GBR / RCC, U.S. Patent Application No. 07/72
No. 6,744, filed on Jul. 8, 1991, inventor Le
T. Nguyen et al. And corresponding Japanese Patent Application No. 5-
502152 (Japanese Unexamined Patent Publication No. 6-50203). 4. Title of Invention "R Using Multiple Register Set"
ISC Microprocessor Architecture ”(RIS
C Microprocessor Architectec
cure Implementing Multipl
e Typed Register Sets) SMOS
-7988MCF / GBR / RCC, US Patent Application No. 0
No. 7 / 726,773, filed on Jul. 8, 1991, inventor Sanjiv Garg et al., And corresponding Japanese Patent Application No. 5-502403 (Japanese Patent Application No. 6-501805). 5. Title of the Invention "RISC Microprocessor Architecture Implementing Fast Traps and Exception Conditions" (RISC Microprocessor Arc)
hittture Implementing Fa
St Trap Exception Stat
e) SMOS-7789MCF / GBR / WSW, U.S. Patent Application Serial No. 07 / 726,942, July 8, 1991.
Filed by the inventor Le T. Nguyen et al. And Japanese Patent Application No. 5-502154 corresponding thereto (Japanese Patent Application No. 6-502).
No. 035). 6. Title of Invention "Single Chip Page Printer Controller" (Single Chip Page)
Printer Controller) SMOS-
7991MCF / GBR / HKW, US Patent Application No. 07
/ 726,929, filed on July 8, 1991, inventor Derek J. et al. Lentz et al. And Japanese Patent Application No. 5-502149 corresponding thereto (Japanese Patent Application Publication No. 6-501586).

【0003】なお、本明細書の記述は本件出願の優先権
の基礎たる米国特許出願07/726,893号の明細
書の記載に基づくものであって、当該米国特許出願の番
号を参照することによって当該米国特許出願の明細書の
記載内容が本明細書の一部分を構成するものとする。 関連技術の説明 複数のプロセッサをサポートできるマイクロプロセッサ
・アーキテクチャを有するコンピュータ・システムは、
メモリと、データ・バス、アドレス・バスおよび制御信
号バスからなるメモリ・システム・バスと、データ・バ
ス、アドレス・バスおよび制御信号バスからなる入出力
(I/O)バスと、複数の入出力デバイスと、複数のマ
イクロプロセッサとを備えているのが代表的である。入
出力デバイスは、例えば、直接メモリ・アクセス(DM
A)コントローラ・プロセッサ、イーサネット(ETH
ERNET)チップ、その他の各種入出力デバイスで構
成されている。マイクロプロセッサは、例えば、複数の
汎用プロセッサと特殊用途のプロセッサとから構成され
ている。これらのプロセッサはメモリ・システム・バス
を介してメモリに接続され、入出力バスを介して入出力
デバイスに接続されている。
[0003] The description in this specification is based on the description in the specification of US Patent Application No. 07 / 726,893, which is a priority document of the present application. The contents of the description of the United States patent application form a part of the present specification. 2. Description of the Related Art A computer system having a microprocessor architecture that can support multiple processors,
A memory, a memory system bus including a data bus, an address bus, and a control signal bus; an input / output (I / O) bus including a data bus, an address bus, and a control signal bus; Typically, it comprises a device and a plurality of microprocessors. The input / output device is, for example, a direct memory access (DM
A) Controller processor, Ethernet (ETH)
ERNET) chip and various other input / output devices. The microprocessor includes, for example, a plurality of general-purpose processors and a special-purpose processor. These processors are connected to memory via a memory system bus and to input / output devices via an input / output bus.

【0004】[0004]

【発明が解決しようとする課題】これらのプロセッサが
MAUや入出力デバイスをアクセスするとき、アクセス
の衝突が起こらないようにするには、プロセッサと入出
力デバイスに優先度(優先順位)を割り当てるメカニズ
ム(方式)を取り入れる必要がある。優先度方式には、
固定優先度方式、システム条件が変化すると処理中に
(on the fly)優先度を変更できる動的優先
度方式、あるいは両方式を組み合わせたものがある。こ
の種の優先度方式では、メモリと入出力デバイスの待ち
時間を最小にするのと同時に、キャッシュの一貫性(c
ache coherency)が保たれるような形
で、すべてのプロセッサがメモリと入出力デバイスに容
易にアクセスできるようにすることも重要である。例え
ば、拒否されたセマフォア(semaphore)をア
クセスするためにシステム・バスを繰返し使用するよう
にすると、システム・バスのバンド幅を大幅に縮減する
ことができる。キャッシュ一貫性に問題が起こらないよ
うにする予防的措置がとられていないと、複数のプロセ
ッサが別々に同じデータを読み書きすることを容認する
ことができない。
A mechanism for assigning priorities (priorities) to a processor and an input / output device when these processors access an MAU or an input / output device so as not to cause access collision. It is necessary to adopt (method). The priority scheme includes
There are a fixed priority system, a dynamic priority system in which the priority can be changed during processing (on the fly) when the system conditions change, or a combination of both systems. This type of priority scheme minimizes memory and I / O device latency while at the same time maintaining cache coherency (c
It is also important that all processors have easy access to memory and input / output devices in a manner that preserves the cache coherency. For example, using the system bus repeatedly to access a rejected semaphore can greatly reduce the bandwidth of the system bus. Without precautionary measures taken to ensure that cache coherency is not compromised, multiple processors cannot read and write the same data separately.

【0005】[0005]

【課題を解決するための手段】上述した問題に鑑みて、
本発明の主目的は、1つまたは2つ以上の入出力バスを
介して複数のメモリ・アレイおよび複数の入出力デバイ
スに接続された複数の異種プロセッサをサポートするこ
とのできるマイクロプロセッサ・アーキテクチャで構成
されたコンピュータ・システムを提供することにある。
メモリ・アレイは、メモリ・アレイ・ユニット(Mem
ory Array Unit−MAU)と呼ばれる、
インタフェース回路をもつサブシステムにグループ化さ
れている。これらのプロセッサの各々は、新規なメモリ
制御ユニット(Memory ControI Uni
t−MCU)を装備している。MCUの各々はスイッチ
・ネットワークを備え、このスイッチ・ネットワークは
スイッチ仲裁ユニット、データ用キャッシュ・インタフ
ェース回路、命令用キャッシュ・インタフェース回路、
入出力インタフェース回路、およびポートと呼ばれる1
つまたは2つ以上のポート・インタフェース回路から構
成され、ポート・インタフェース回路の各々はポート仲
裁ユニットを備えている。
In view of the above problems,
A primary object of the present invention is a microprocessor architecture capable of supporting a plurality of heterogeneous processors connected to a plurality of memory arrays and a plurality of I / O devices via one or more I / O buses. It is to provide a computer system configured.
The memory array is a memory array unit (Mem).
or Array Array-MAU)
Grouped into subsystems with interface circuits. Each of these processors includes a new memory control unit (Memory ControlI Uni).
t-MCU). Each of the MCUs comprises a switch network, the switch network comprising a switch arbitration unit, a cache interface circuit for data, a cache interface circuit for instructions,
I / O interface circuit, and one called port
It comprises one or more port interface circuits, each of which comprises a port arbitration unit.

【0006】スイッチ・ネットワークは、マスタ(ma
ster)デバイスとスレーブ(slave)デバイス
とが通信する手段となるものである。スイッチ側から見
たとき、マスタ・デバイスとなり得るものには、Dキャ
ッシュ、Iキャッシュ、または入出力コントローラ・ユ
ニット(IOU)があり、スレーブ・デバイスとなり得
るものには、メモリ・ポートまたはIOUがある。
[0006] The switch network is a master (ma
(ster) device and a slave device. When viewed from the switch side, a master device can be a D-cache, an I-cache, or an input / output controller unit (IOU), and a slave device can be a memory port or an IOU. .

【0007】スイッチ・ネットワークの機能は、様々な
命令およびデータ要求をキャッシュ・コントローラ・ユ
ニット(CCU)(Iキャッシュ、Dキャッシュ)とI
OUから受け取ることである。これらの要求を受け取る
と、スイッチ・ネットワーク内のスイッチ仲裁ユニット
とポート・インタフェース回路内のポート仲裁ユニット
は要求に優先順位を付けて、該当のメモリ・ポートに要
求を引き渡す(これは命令アドレスによって決まる)。
そのあと、ポート、場合によっては、複数のポートは必
要なタイミング信号を生成し、MAUとの間で必要なデ
ータを送受する。それが書込み(WR)要求のときは、
ポートとスイッチとのやりとりは、スイッチがすべての
書込みデータをプッシュして書込みデータFIFO(W
DF)に入れることを終えると停止する。それが読取り
(RD)要求のときは、スイッチとポートとのやりとり
は、ポートから読取りデータがスイッチを経由して要求
側のマスタに送り返されたときのみ終了する。
The function of the switch network is to provide various instruction and data requests to a cache controller unit (CCU) (I-cache, D-cache) and I-cache.
OU. Upon receiving these requests, the switch arbitration unit in the switch network and the port arbitration unit in the port interface circuit prioritize the request and deliver the request to the appropriate memory port (this depends on the instruction address). ).
Thereafter, the port, and possibly multiple ports, generate the necessary timing signals and send and receive the necessary data to and from the MAU. When it is a write (WR) request,
In the exchange between the port and the switch, the switch pushes all the write data and the write data FIFO (W
It stops when it finishes putting into DF). If it is a read (RD) request, the exchange between the switch and the port ends only when the read data is sent back from the port via the switch to the requesting master.

【0008】スイッチ・ネットワークは4セットの3状
態(tristate)バスから構成され、これらのバ
スを通してキャッシュ、IOUおよびメモリ・ポート間
が結ばれている。4セットの3状態バスは、SW_RE
Q、SW WD、SW RDおよびSW_IDBSTか
ら構成されている。本発明の代表的な実施例では、バス
SW REQは29本のワイヤで構成され、アドレス、
IDおよび共用信号をマスタ・デバイスからスレーブ・
デバイスヘ送るために使用される。IDとは、メモリ要
求に付けられたタグであり、要求側デバイスが返却する
データを正しいメモリ・アドレスと関連づけることを可
能にするものである。共用信号とは、メモリ・アクセス
が共用メモリに対するものであることを示した信号であ
る。マスタ・デバイスがスレーブに対して要求を出すと
きは、スイッチ上にアドレスの32ビット全部を送る必
要はない。これは、多重メモリ構造では、スイッチがア
ドレスをデコードし、要求がメモリ・ポート0、ポート
1、IOU、その他に対するものかを判別できるためで
ある。各ポートは事前に定義されたメモリ・スペースが
割り振られているので、SW REQ上にアドレスの3
2ビット全部を送信する必要がない。
[0008] The switch network consists of four sets of tri-state buses through which the cache, IOU, and memory ports are connected. The four sets of tri-state buses are SW_RE
Q, SW WD, SW RD and SW_IDBST. In an exemplary embodiment of the present invention, the bus SW REQ is composed of 29 wires,
ID and shared signal from master device to slave
Used to send to device. The ID is a tag attached to the memory request and enables the requesting device to associate the returned data with the correct memory address. The shared signal is a signal indicating that the memory access is to the shared memory. When the master device issues a request to the slave, it is not necessary to send the entire 32 bits of the address on the switch. This is because in a multiple memory configuration, the switch can decode the address and determine if the request is for memory port 0, port 1, IOU, and so on. Each port is assigned a pre-defined memory space, so SW Address 3 on REQ
There is no need to transmit all two bits.

【0009】実際には、例えば、機能コード、データ幅
属性といった他の要求属性は、タイミングの制約がある
ためにSW REQ上に送信されない。情報をスイッチ
を経由して送る場合は、必要以上に1フェーズだけ遅れ
てポートに到着するので、メモリ要求に対する待ち時間
がさらに増加することになる。従って、この種の要求属
性は専用ワイヤ上をポートに送られるので、ポートはそ
のステート・マシンをもっと早く始動できるので、メモ
リ待ち時間が減少することになる。
In actuality, for example, other required attributes such as a function code and a data width attribute have a timing limitation, Not sent on REQ. If information is sent via the switch, it arrives at the port one phase later than necessary, further increasing the latency for memory requests. Thus, since this type of request attribute is sent to the port on a dedicated wire, the port can start its state machine earlier, reducing memory latency.

【0010】図8に示すように、バスSW_WDは32
本のワイヤから構成され、書込みデータをマスタ・デバ
イス(DキャッシュとIOU)からメモリ・ポート経由
でFIFOへ送るために使用される。明らかなように、
Iキャッシュはデータの読取りだけを行い、データの書
込みは行わない。この3状態バスは「ダブル・ポンプ」
(doublepumped)される。つまり、データ
・ワードは各クロック・フェーズで転送されるので、必
要とするワイヤ数が少なくなり、従って回路費用が節減
される。WD00、WD01、WD10およびWD11
はデータ・ワードである。これらのバスはダブル・ポン
プされるので、バスが折り返してマスタから別のマスタ
ヘ切り替わるとき、バスの衝突が起こらないようにする
配慮が必要である。
As shown in FIG. 8, the bus SW_WD is 32
It consists of a single wire and is used to send write data from the master device (D-cache and IOU) to the FIFO via the memory port. Clearly,
The I-cache only reads data and does not write data. This three-state bus is a "double pump"
(Doublepumped). That is, the data words are transferred in each clock phase, thus requiring fewer wires and thus saving circuit cost. WD00, WD01, WD10 and WD11
Is a data word. Because these buses are double-pumped, care must be taken to prevent bus collisions when the bus loops and switches from one master to another.

【0011】図9に示すように、バスSW RDは64
本のワイヤから構成され、返却読取りデータをスレーブ
・デバイス(メモリ・ポートとIOU)からマスタ・デ
バイスヘ送り返すために使用される。データはフェーズ
1のときだけ送信される。このバスは、キャッシュにタ
イミングの制約があり、そのためにCLK1の立下がり
縁でデータが有効であることが必要であるので、ダブル
・ポンプされない。データは、クロック1がハイ(高)
になるフェーズ1までポートから得ることができないの
で、SW_RDバスをダブル・ポンプしようとしたと
き、キャッシュがデータを得る最も早い時期はCLK1
の正エッジであって、負エッジではない。バスSW_R
Dはダブル・ポンプされないので、このバスはフェース
2のときだけアクティブになる(3状態ではない)。バ
スが別のマスタに切り替わるとき、バス・ドライバが衝
突するという問題は起こらない。
[0011] As shown in FIG. RD is 64
Consists of a book wire and is used to send return read data from the slave device (memory port and IOU) back to the master device. Data is transmitted only during phase one. This bus is not double-pumped because of timing constraints on the cache, which requires that the data be valid on the falling edge of CLK1. Data is clock 1 high
When the SW_RD bus is to be double-pumped, the earliest time the cache gets data is CLK1
Is a positive edge, not a negative edge. Bus SW_R
Since D is not double pumped, this bus is only active during phase 2 (not tri-state). When the bus switches to another master, the problem of bus driver collision does not occur.

【0012】バスSW_IDBSTは4本のワイヤから
構成され、識別番号(ID)をマスタ・デバイスからス
レーブ・デバイスヘ送り、IDとバンク開始信号をスレ
ーブ・デバイスからマスタ・デバイスヘ送るために使用
される。
The bus SW_IDBST is composed of four wires and is used to transmit an identification number (ID) from the master device to the slave device, and to transmit an ID and a bank start signal from the slave device to the master device.

【0013】本発明の実施例によれば、ID FIFO
は各スレーブ・デバイスに1つしかない。スレーブ・デ
バイスからのデータは常に順番に返却されるので、ID
をポートまで送る必要はない。IDは、スイッチとマス
タ・デバイスとを結ぶインタフェースに各ポート用にF
IFOが1個あて設けられている別々のFIFOにスト
アしておくことができる。このために、ポートがn個あ
ればn個のFIFOが各インタフェースに必要になるの
で、本実施例に比べて回路面積が増加するが、3状態ワ
イヤは2本だけ少なくすることができる。
According to an embodiment of the present invention, the ID FIFO
Has only one for each slave device. Since the data from the slave device is always returned in order,
Need not be sent to the port. ID is the F-type for each port at the interface between the switch and the master device.
The data can be stored in separate FIFOs provided with one IFO. For this reason, if there are n ports, n FIFOs are required for each interface, so that the circuit area increases as compared with this embodiment, but the number of three-state wires can be reduced by two.

【0014】ポート・インタフェースとは、スイッチ・
ネットワークと外部メモリ(MAU)とを結ぶインタフ
ェースである。このインタフェースは、ポート仲裁ユニ
ットと、介入(intervention)を引き起こ
す要求と割込みがかけられた読取り要求をストアしてお
く手段とを備えている。また、スヌープ・アドレス・ジ
ェネレータ(snoopaddress genera
tor)も備えている。さらに、このインタフェースに
は正しいタイミング信号を生成してメモリ・モジュール
を制御する信号発生器の働きをする回路も実装されてい
る。
A port interface is a switch
This is an interface that connects a network and an external memory (MAU). The interface comprises a port arbitration unit and means for storing requests that cause intervention and interrupted read requests. Also, a snoop address generator (snoopaddress generator)
tor). In addition, the interface also includes circuitry that acts as a signal generator to generate the correct timing signals to control the memory module.

【0015】本発明のスイッチ・ネットワーク内の装
置、例えば、内容アドレス・メモリ(content
addressablememory−CAM)、行一
致比較回路、スイッチ/ポート仲裁回路にはいくつかの
アルゴリズムが実装されている。
The devices in the switch network of the present invention, for example, a content address memory (content)
Some algorithms are implemented in the addressable memory (CAM), the row match comparison circuit, and the switch / port arbitration circuit.

【0016】本発明のアーキテクチャにはセマフォア
(semaphore)が取り入れられている。セマフ
ォアは、マルチプロセッサ・システムにおけるソフトウ
ェアを、下述するように「テストおよびセット」命令と
同期をとるために使用されるものである。本発明のアー
キテクチャでは、セマフォアはキャッシュされない。キ
ャッシュは、CPUが「テストおよびセット」命令を実
行すると、MCUからセマフォアをフェッチする。
The architecture of the present invention incorporates a semaphore. Semaphores are used to synchronize software in a multiprocessor system with "test and set" instructions, as described below. In the architecture of the present invention, semaphores are not cached. The cache fetches a semaphore from the MCU when the CPU executes a "test and set" instruction.

【0017】テストおよびセット・バイパス回路には、
スピン・ロックが起こると、つまり、反復的な要求がM
AUシステム・バスをアクセスしてセマフォアを得よう
とすると起こる、メモリ・バンド幅の損失を防止する単
純なアルゴリズムが実装されている。メモリの領域、デ
バイスなどをロックするセマフォアでテスト命令が実行
されると、CAMはそのセマフォアのアドレスをストア
する。CAM内のこのエントリ(項目)は、いずれかの
プロセッサがそのセマフォアを取り囲むメモリの一部領
域に書込みを行うと、クリアされる。要求したセマフォ
アがまだCAMに残っていれば、そのセマフォアはどの
プロセッサによっても解放されていないので、そのセマ
フォアを得るために実際にメモリをアクセスする必要は
ない。その代わりに、論理1のブロック($FFFF)
(セマフォア失敗)が要求したキャッシュに送り返さ
れ、セマフォアがまだロック中であることを知らせる。
従って、セマフォアは実際にはアクセスされないので、
メモリ幅が節約されることになる。
Test and set bypass circuits include:
When a spin lock occurs, that is, a repetitive request
A simple algorithm has been implemented to prevent loss of memory bandwidth when accessing the AU system bus to obtain a semaphore. When a test instruction is executed on a semaphore that locks a memory area, device, or the like, the CAM stores the semaphore address. This entry in the CAM is cleared when any processor writes to a portion of memory surrounding the semaphore. If the requested semaphore is still in the CAM, there is no need to actually access memory to obtain the semaphore, since the semaphore has not been released by any processor. Instead, a logic 1 block ($ FFFF)
(Semaphore failure) is sent back to the requested cache, indicating that the semaphore is still locked.
Therefore, the semaphore is not actually accessed,
Memory width will be saved.

【0018】セマフォアにオール1以外を書くと、その
セマフォアはクリアされる。その場合、スレーブ側CP
Uは共用メモリを調べて、いずれかのCPU(自身を含
めて)が当該セマフォアに書込みを行ったかどうかを確
かめる必要がある。いずれかのCPUがCAM内のエン
トリに一致するセマフォアに書込みを行っていると、C
AM内のそのエントリがクリアされる。キャッシュが次
にそのセマフォアヘのアクセスを試みたときは、そのエ
ントリがCAMにないので、メイン・メモリからセマフ
ォアを実際にフェッチして、それを「失敗」、つまり、
オール1にセットすることになる。
When a value other than "1" is written in the semaphore, the semaphore is cleared. In that case, the slave side CP
U must examine the shared memory to see if any CPU (including itself) has written to the semaphore. If any CPU is writing to a semaphore that matches an entry in the CAM,
That entry in the AM is cleared. The next time the cache tries to access the semaphore, the entry is not in the CAM, so the semaphore is actually fetched from main memory and "failed", that is,
All will be set to 1.

【0019】行一致比較回路の機能は、現在の要求が前
の要求と同じ行アドレスをもっているかどうかを判定す
ることである。そうであれば、ポートはRAS要求を取
り消して(de−assert)、RAS課金前(pr
e−charge)時間ペナルティを負担する必要がな
い。従って、メモリ待ち時間が短縮化され、使用可能な
バンド幅が増加することになる。行一致は主にダイナミ
ック・ランダム・アクセス・メモリ(DRAM)で使用
されるが、MAUを新アドレスの上位ビットにラッチす
る必要がなくなったので、スタチック・ランダム・アク
セス・メモリ(SRAM)や読取専用メモリ(ROM)
でも使用可能である。従って、メモリヘのアクセス要求
があると、アドレスがスイッチ・ネットワークのアドレ
ス・バスSW_REQ上を送信され、行アドレスがデコ
ードされ、MUXラッチにストアされる。このアドレス
が前の要求の行アドレスと判定された場合は、キャッシ
ュまたはIOUが新しい要求を出すと、新アドレスに関
連するアドレスがデコードされ、その行アドレスが前の
行アドレスと比較される。一致するものがあれば、行一
致がヒットしたことになり、一致した要求に下述するよ
うに優先度が与えられる。
The function of the row match comparison circuit is to determine whether the current request has the same row address as the previous request. If so, the port cancels the RAS request (de-assert) and returns the pre-RAS charging (pr
e-charge) There is no need to incur a time penalty. Thus, the memory latency is reduced and the available bandwidth is increased. Row match is used primarily in dynamic random access memories (DRAMs), but there is no longer a need to latch the MAU to the upper bits of the new address, so static random access memories (SRAMs) and read-only Memory (ROM)
But it can be used. Thus, when there is a memory access request, the address is transmitted on the switch network address bus SW_REQ, and the row address is decoded and stored in the MUX latch. If this address is determined to be the row address of the previous request, when the cache or IOU issues a new request, the address associated with the new address is decoded and the row address is compared to the previous row address. If there is a match, then a row match has been hit, and the matching request is given priority as described below.

【0020】動的スイッチ/ポート仲裁回路では、2種
類の仲裁が行われる。1つは、メモリ・ポートの資源、
つまり、ポート0...ポートNの仲裁であり、もう1
つはスイッチ・ネットワークのアドレスおよび書込みデ
ータ・バスの資源、SW_REQとSW_WDの仲裁で
ある。
In the dynamic switch / port arbitration circuit, two types of arbitration are performed. One is the memory port resources,
That is, port 0. . . Port N arbitration, another one
One is the arbitration of the switch network address and write data bus resources, SW_REQ and SW_WD.

【0021】いくつかのデバイスはメイン・メモリから
データを同時に要求することができる。そのデバイスと
は、Dキャッシュ、IキャッシュおよびIOUである。
各々のマスタに特定の優先度を与える優先度方式は、
「重要度」または「緊急度」の高いデバイスができる限
り早くサービスを受けられるようにセットアップされ
る。しかし、厳格な固定仲裁方式は、優先度の低いデバ
イスを締め出す可能性があるために使用されていない。
その代わりに、各種デバイスに異なる優先度を処理中に
(on the fly)割り付ける動的仲裁方式が使
用されている。この動的仲裁方式に影響を与える要因と
して、次のものがある。
Some devices can simultaneously request data from main memory. The devices are a D cache, an I cache, and an IOU.
The priority scheme that gives each master a specific priority is:
A device with a high "importance" or "urgency" is set up to receive service as soon as possible. However, strict fixed arbitration schemes have not been used because they could lock out lower priority devices.
Instead, a dynamic arbitration scheme has been used that assigns different priorities to various devices on the fly. The following factors influence the dynamic arbitration system.

【0022】1.そのデバイスの固有優先度 2.要求したアドレスは以前にサービスを受けた要求と
行が一致するか 3.そのデバイスは余りにも多くの回数サービスを受け
ることが拒否されたか 4.そのマスタは余りにも多くの回数サービスを受けた
か デバイスからの各要求は固有の優先度をもっている。I
OUは優先度が最も高く、そのあとにIキャッシュとD
キャッシュが続く。しかし、下述するように、Dキャッ
シュからの介入(intervention−ITV)
要求は、スレーブ側処理エレメント(processi
ng element−PE)が更新データをできる限
り早く受け取る必要があるために、すべての中で優先度
が最も高くなっている。
1. 1. The unique priority of the device 2. Does the requested address match the line with the previously serviced request? 3. Has the device been denied service too many times? Has the master been serviced too many times? Each request from a device has its own priority. I
OU has the highest priority, followed by I-cache and D-cache.
A cache follows. However, as described below, intervention from the D-cache (intervention-ITV)
The request is sent to the slave side processing element (processi
ng element-PE) needs to receive the updated data as soon as possible, so it has the highest priority of all.

【0023】各種デバイスの固有優先度はいくつかの要
因によって変更される。優先度の低いデバイスがサービ
スを拒否された回数はモニタされており、その回数が所
定の値まで達すると、優先度の低いそのデバイスにより
高い優先度が与えられる。これに対して、あるデバイス
に優先度が与えられる回数もモニタされ、そのデバイス
だけがバスを「独占」(hog)していれば、優先度を
拒否して優先度の低いデバイスがそのバスをアクセスす
ることを許可する。要求の固有優先度を変更するために
使用される3番目の要因は行一致(row matc
h)である。行一致が重要なのは、主にIキャッシュの
場合である。あるデバイスが以前にサービスを受けた要
求と同じ行アドレスをもつメモリー・ロケーションを要
求すると、要求したデバイスの優先度は高くされる。こ
れが行われるのは、RASの要求を取り消し(de−a
ssert)、RASを再要求する(re−asser
t)手間を省くためである。行が一致して要求がサービ
スを受けるたびに、プログラマブル・カウンタはデクリ
メントされる。例えば、カウンタがゼロまで達すると、
行一致優先度ビットがクリアされるので、新しいマスタ
にバスヘのアクセス権が与えられる。ポートの新マスタ
が旧マスタと異なるとき、あるいは要求が行が一致した
要求でないとき、プログラム可能な値が再びカウンタに
事前ロード(pre−load)される。
The intrinsic priority of various devices is changed by several factors. The number of times a lower priority device is denied service is monitored, and when that number reaches a predetermined value, the lower priority device is given higher priority. In contrast, the number of times a device is given a priority is also monitored, and if only that device is “hog” the bus, the priority is rejected and a lower priority device takes over the bus. Allow access. The third factor used to change the unique priority of a request is row match
h). Line matching is important mainly in the case of I-cache. If a device requests a memory location with the same row address as a previously serviced request, the requesting device is given a higher priority. This is done by canceling the RAS request (de-a
sert), re-request RAS (re-asser)
t) To save labor. Each time a row matches and the request is serviced, the programmable counter is decremented. For example, when the counter reaches zero,
The row match priority bit is cleared, giving the new master access to the bus. When the port's new master is different from the old master, or when the request is not a row-matched request, the programmable value is again pre-loaded into the counter.

【0024】メモリ・ポートに対する書込み要求は、ス
イッチ・ネットワークの書込みデータ・バス(SW_W
D)が使用可能であるときだけ許可される。使用可能で
ないときは、他に要求があれば、その要求が選択され
る。1つだけ例外がある。それはDキャッシュからの介
入(ITV)要求である。このような要求が存在し、S
W_WDバスが使用可能でないと、どの要求も選択され
ない。その代わりに、システムはSW WDバスが解放
されるまで待ってから介入要求が許可される。
A write request to the memory port is sent to the switch network write data bus (SW_W).
Only allowed when D) is available. If not available, the request is selected, if any. There is one exception. It is an intervention (ITV) request from the D-cache. If such a request exists, S
If the W_WD bus is not available, no requests will be selected. Instead, the system is SW Wait until the WD bus is released before allowing the intervention request.

【0025】スイッチ・ネットワークには、ソフトウェ
アで選択可能な2つの仲裁方式が採用されている。その
方式とは、次のものである。
The switch network employs two software selectable arbitration schemes. The method is as follows.

【0026】1.スレーブ優先度方式。この方式では、
スレーブまたは要求されたデバイス(すなわち、メモリ
またはIOUポート)に基づいて優先度が与えられる。
1. Slave priority scheme. In this scheme,
Priority is given based on the slave or requested device (ie, memory or IOU port).

【0027】2.マスタ優先度方式。この方式では、マ
スタまたは要求側のデバイス(すなわち、IOU、Dキ
ャッシュ、Iキャッシュ)に基づいて優先度が与えられ
る。
2. Master priority scheme. In this scheme, priority is given based on the master or requesting device (ie, IOU, D-cache, I-cache).

【0028】スレーブ優先度方式では、優先度は常に最
初にメモリ・ポート、例えば、ポート0、1、2...
に与えられ、次にIOUに与えられ、再びポート0に戻
って与えられる。この方式は、一般にラウンド・ロビン
(round−robin)方式と呼ばれている。マス
タ優先度方式は固定優先度方式であり、優先度は最初に
IOUに与えられ、次にDキャッシュおよびIキャッシ
ュに与えられる。スイッチ仲裁のマスタ優先度方式で
は、介入(ITV)要求に最高の優先度が与えられる場
合もある。プリフェッチ・バッファがやがて空になると
きは、Iキャッシュに最高の優先度が与えられる場合も
ある。
In the slave priority scheme, the priority is always the first memory port, eg, port 0, 1, 2,. . .
, And then to the IOU and back to port 0 again. This method is generally called a round-robin method. The master priority scheme is a fixed priority scheme, where the priority is first given to the IOU and then to the D-cache and the I-cache. In the master priority scheme of switch arbitration, intervention (ITV) requests may be given the highest priority. When the prefetch buffer eventually becomes empty, the I-cache may be given the highest priority.

【0029】[0029]

【発明の実施の形態】以下、本発明の実施の形態を図面
を参照しつつ説明する。図1は、本発明によるマイクロ
プロセッサ・アーキテクチャを符号1で総称して示すも
のである。このアーキテクチャ1には、複数の汎用マイ
クロプロセッサ2、3、4...N、特殊用途プロセッ
サ5、オービタ(仲裁回路)6およびメモリ/メモリ・
アレイ・ユニット(MAU)7が設けられている。マイ
クロプロセッサ2〜Nは複数の同種プロセッサでまたは
複数の異種プロセッサで構成することが可能である。特
殊用途プロセッサ5は例えばグラフィック・コントロー
ラで構成することが可能である。プロセッサ2〜5はす
べて1つまたは2つ以上のメモリ・ポートPORTO
PORTN を介してMAUシステム・バス25に接続さ
れている。MAUシステム・バス25は、MAUデータ
・バス8、ROW/COLアドレス・バス9、マルチプ
ロセッサ制御バス10、MAU制御バス11およびバス
仲裁制御信号バス12からなり、それぞれ複数の双方向
信号バス13〜17で結ばれている。バス12は、例え
ば、アクセスの仲裁を要求し、アクセス許可を与え、あ
るいはMAUデータ・バス8が使用中(busy)であ
ることを通知するために使用される。オービタ6は双方
向信号ライン18を介してバス12に接続されている。
MAU7はROW/COLアドレス・バス9およびメモ
リ制御バス11に接続されており、信号はこれらのバス
から単方向信号ライン19と20を介してMAUへ転送
され、双方向データ・バス21を介してMAUデータ・
バス8へ転送される。データ・バス8と21は、代表例
では、64ビット・バスになっているが、ソフトウェア
制御の下で32ビット・バスとして動作させることも可
能である。このバスは例えば、128ビットといったよ
うに、その他のビット幅にすることも可能である。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 shows the microprocessor architecture according to the present invention, designated generally by the reference numeral 1. The architecture 1 includes a plurality of general-purpose microprocessors 2, 3, 4,. . . N, special-purpose processor 5, orbiter (arbitration circuit) 6, and memory / memory
An array unit (MAU) 7 is provided. The microprocessors 2 to N can be constituted by a plurality of similar processors or a plurality of heterogeneous processors. The special purpose processor 5 can be constituted by a graphic controller, for example. All of the processors 2 to 5 have one or more memory ports PORT O ...
It is connected to MAU system bus 25 via PORT N. The MAU system bus 25 includes a MAU data bus 8, a ROW / COL address bus 9, a multiprocessor control bus 10, a MAU control bus 11, and a bus arbitration control signal bus 12. It is tied at 17. Bus 12 is used, for example, to request access arbitration, grant access, or signal that MAU data bus 8 is busy. The orbiter 6 is connected to the bus 12 via a bidirectional signal line 18.
MAU 7 is connected to a ROW / COL address bus 9 and a memory control bus 11, from which signals are transferred to the MAU via unidirectional signal lines 19 and 20, and via a bidirectional data bus 21. MAU data
Transferred to bus 8. Data buses 8 and 21 are typically 64-bit buses, but may operate as 32-bit buses under software control. This bus can have other bit widths, for example, 128 bits.

【0030】プロセッサ2〜Nの各々は、代表例では、
入出力IOUインタフェース53を備えている。このイ
ンタフェース53は、以下で図2を参照して詳しく説明
するが、直接メモリ・アクセス(DMA)プロセッサ3
0、イーサネット(ETHERNET)インタフェース
31、その他の入出力デバイスなどの複数の周辺入出力
デバイスに、32ビット入出力バス33または任意的な
32ビット入出力バス34および複数の32ビット双方
向信号バス35〜42を介して接続されている。オプシ
ョンとしての入出力バス34はプロセッサの1つまたは
2つ以上が特殊目的入出力デバイス43をアクセスする
ために使用できる。
Each of the processors 2 to N typically includes:
An input / output IOU interface 53 is provided. This interface 53 is described in detail below with reference to FIG.
A plurality of peripheral input / output devices, such as an Ethernet (ETHERNET) interface 31, and other input / output devices, a 32-bit input / output bus 33 or an optional 32-bit input / output bus 34 and a plurality of 32-bit bidirectional signal buses 35; Through 42. Optional I / O bus 34 may be used by one or more of the processors to access special purpose I / O device 43.

【0031】図2に示すように、プロセッサ2−Nの各
々は、データ用キャッシュ(Dキャッシュ)51と命令
用キャッシュ(Iキャッシュ)52を備えたキャッシュ
制御ユニット(CCU)49に接続されたメモリ制御ユ
ニット(MCU)(全体を符号50で示している)と入
出力ポート53を備えている。入出力ポート53は以下
ではIOUと略称することがあるが、入出力バス33ま
たは34に接続されている。
As shown in FIG. 2, each of the processors 2-N has a memory connected to a cache control unit (CCU) 49 having a data cache (D cache) 51 and an instruction cache (I cache) 52. A control unit (MCU) (entirely indicated by reference numeral 50) and an input / output port 53 are provided. The input / output port 53 may be abbreviated as IOU below, but is connected to the input / output bus 33 or 34.

【0032】MCU50は、CCU49、つまり、Dキ
ャッシュ51とIキャッシュ52(読取専用)、IOU
53およびMAU7間でMAUシステム・バス25を経
由してデータと命令がそこから転送(読み書き)される
回路である。MCU50は、以下で詳しく説明するよう
に、キャッシュー貫性(cachecoherenc
y)を保証する。このキャッシュー貫性は、各スレーブ
側CPU内のMCUが、MAUアドレス・バス9上のマ
スタ側CPUのすべてのトランザクションをモニタし
て、つまり、スヌープ(snoop)して、スレーブ側
CPU内のキャッシュがマスタ側CPUから得られる新
しいデータを要求しているのか、新しいデータをマスタ
側CPUへ送ろうとしているのかを判断することによっ
て達成される。MCU50は6メモリ・ポートで使用す
るように拡張可能であり、最高4ウェイまでのメモリ・
インタリービングをMAUデータ・バス8上で行うこと
をサポートできる。また、外部64または32ビット・
データ・バス8の使用をサポートすることができ、修正
ハミング・コードを使用して1データ・ビット・エラー
を訂正し、2またはそれ以上のデータ・ビット・エラー
を検出する。
The MCU 50 includes a CCU 49, that is, a D cache 51 and an I cache 52 (read only), an IOU
Data and instructions are transferred (read and written) between the MAU 53 and the MAU 7 via the MAU system bus 25. The MCU 50 has a cache coherency, as described in more detail below.
y). This cache persistence means that the MCU in each slave CPU monitors all transactions of the master CPU on the MAU address bus 9, that is, snoops, Is requesting new data from the master CPU or trying to send new data to the master CPU. The MCU 50 is scalable for use with 6 memory ports, and supports up to 4 ways of memory.
Supporting interleaving on MAU data bus 8 can be supported. Also, external 64 or 32 bit
The use of data bus 8 can be supported, using a modified Hamming code to correct one data bit error and detect two or more data bit errors.

【0033】本発明のアーキテクチャでは、キャッシュ
・サブブロック、つまり、キャッシュ・ラインのサイズ
は、メモリ・バス・サイズと相関関係がある。例えば、
バス・サイズが32ビットならば、サブブロック・サイ
ズは一般に16バイトとなる。バス・サイズが64ビッ
トならば、サブブロック・サイズは一般に32バイトと
なる。バス・サイズが128ビットならば、サブブロッ
クは64バイトとなる。上述したように、MCU50
は、1、2または4ウェイのインタリービング、つま
り、サイクルごとに転送されるバイト数をサポートする
ようにプログラムできる設計になっている。
In the architecture of the present invention, the size of a cache subblock, or cache line, is a function of the memory bus size. For example,
If the bus size is 32 bits, the sub-block size will typically be 16 bytes. If the bus size is 64 bits, the sub-block size will typically be 32 bytes. If the bus size is 128 bits, the sub-block will be 64 bytes. As described above, MCU 50
Is designed to be programmed to support 1, 2 or 4 way interleaving, ie, the number of bytes transferred per cycle.

【0034】MCU50には、ポートPO …PN で示し
た1つまたは2つ以上のインタフェース、スイッチ・ネ
ットワーク54、Dキャッシュ・インタフェース55、
Iキャッシュ・インタフェース56および入出力インタ
フェース57が装備されている。図3を参照して詳しく
後述するが、ポート・インタフェースP0 〜PN の各々
はそれぞれをPAU0 ‥PAUN で示したポート仲裁ユ
ニットを備えている。スイッチ・ネットワーク54はス
イッチ仲裁ユニット58を備えている。
The MCU 50 includes one or more interfaces indicated by ports P O ... P N , a switch network 54, a D-cache interface 55,
An I-cache interface 56 and an input / output interface 57 are provided. As will be described in detail later with reference to FIG. 3, each of the port interfaces P 0 to P N includes a port arbitration unit indicated by PAU 0 ‥ PAU N. The switch network 54 includes a switch arbitration unit 58.

【0035】MCU50が2つまたはそれ以上のポート
・インタフェースを装備するときは、ポート・インタフ
ェースP0 −PN の各々は個別のMAUシステム・バス
に接続されており、これは図1を参照して上述したバス
25と同じものである。図2には、この種の2バスは2
0 および25N の符号で示されている。バス25N
バス8N 、9N 、10N 、11N および12N から構成
され、これらはそれぞれバス13N 、14N 、15N
16N および17N でポートPN に接続されている。バ
ス8N 〜17N は図1を参照して上述したバス8〜17
と同じものである。同様に、ポート・インタフェースの
各々は、書込み(WR)データ・バス60、60N 、読
取り(RD)データ・バス61、61N 、およびアドレ
ス・バス62、62N からなる複数の同種個別バスを介
してスイッチ・ネットワーク54に接続され、複数の制
御バス70、71、80、81、90、91および70
N、71N 、80N 、81N 、90N 、91N を介して
キャッシュと入出力インタフェース55、56、57の
各々に接続されている。なお、符号中の添字N は、ポー
ト・インタフェースPN とキャッシュおよび入出力イン
タフェースとの間を結ぶバスを示している。
When the MCU 50 is equipped with two or more port interfaces, each of the port interfaces P 0 -P N is connected to a separate MAU system bus, see FIG. This is the same as the bus 25 described above. FIG. 2 shows that two such buses are two buses.
5 are indicated by 0 and 25 N code. Bus 25 N is a bus 8 N, 9 N, 10 N , 11 N and 12 N, each of which buses 13 N, 14 N, 15 N ,
And it is connected to the port P N at 16 N and 17 N. Buses 8 N to 17 N has been described above with reference to FIG. 1 8-17
Is the same as Similarly, each of the port interfaces, write (WR) data buses 60, 60 N, read (RD) data buses 61 and 61 N, and a plurality of the same kind individual bus consisting of address bus 62, 62 N And a plurality of control buses 70, 71, 80, 81, 90, 91 and 70
N, via a 71 N, 80 N, 81 N , 90 N, 91 N are connected to each of the output interface 55, 56, 57 and cache. The suffix N in the code indicates a bus connecting the port interface PN with the cache and the input / output interface.

【0036】スイッチ・ネットワーク54とDキャッシ
ュ・インタフェース55はWRデータ・バス72、RD
データ・バス73およびアドレス・バス74を介して接
続されている。スイッチ・ネットワーク54とIキャッ
シュ・インタフェース56はRDデータ・バス82およ
びアドレス・バス83を介して接続されている。上述し
たように、Iキャッシュ52からは書込み(WR)要求
は出されない。スイッチ・ネットワーク54と入出力イ
ンタフェース57は、RDデータ・バス92、WRデー
タ・バス93およびアドレス・バス94からなる複数の
双方向信号バスを介して接続されている。
The switch network 54 and the D-cache interface 55 are connected to the WR data bus 72, RD
It is connected via a data bus 73 and an address bus 74. The switch network 54 and the I-cache interface 56 are connected via an RD data bus 82 and an address bus 83. As described above, no write (WR) request is issued from the I-cache 52. The switch network 54 and the input / output interface 57 are connected via a plurality of bidirectional signal buses including an RD data bus 92, a WR data bus 93, and an address bus 94.

【0037】Dキャッシュ・インタフェース55とCC
U49、つまり、Dキャッシュ51は、WRデータ・バ
ス100、RDデータ・バス101、アドレス・バス1
02および対の制御信号バス103、104からなる複
数の単方向信号バスを介して接続されている。Iキャッ
シュ・インタフェース56とCCU49、つまり、Iキ
ャッシュ52は、RDデータ・バス110、アドレス・
バス111、および対の制御信号バス112、113か
らなる複数の単方向信号バスを介して接続されている。
入出力インタフェース57とIOU53は、R/W−I
/Oマスタ・データ・バス120、R/W一I/Oスレ
ーブ・データ・バス121、対の制御信号ライン12
3、124および対のアドレス・バス125、126か
らなる複数の単方向信号バスを介して接続されている。
入出力(I/O)マスタおよび入出力(I/O)スレー
ブという名称は、以下で詳しく説明するように、入出力
操作がマスタとして行われているか、スレーブとして行
われているとき、特定の信号ラインを利用したデータ伝
送を示すために用いられている。
D-cache interface 55 and CC
U49, that is, the D cache 51 includes the WR data bus 100, the RD data bus 101, and the address bus 1
02 and a pair of control signal buses 103 and 104 are connected via a plurality of unidirectional signal buses. The I-cache interface 56 and the CCU 49, i.e., the I-cache 52,
It is connected via a bus 111 and a plurality of unidirectional signal buses including a pair of control signal buses 112 and 113.
The input / output interface 57 and the IOU 53 are connected to the R / W-I
/ O master data bus 120, R / W-I / O slave data bus 121, pair of control signal lines 12
3, 124 and a pair of address buses 125, 126 are connected via a plurality of unidirectional signal buses.
The names input / output (I / O) master and input / output (I / O) slave, as described in more detail below, refer to a particular when an input / output operation is being performed as a master or as a slave. It is used to indicate data transmission using a signal line.

【0038】図3は、スイッチ・ネットワーク54のメ
イン・データ経路を示し、Dキャッシュ・インタフェー
ス55とポート・インタフェースPO 間の接続関係を示
したブロック図である。ポート・インタフェースP1
N およびIキャッシュと入出力インタフェース56、
57間の接続関係も同じであるが、Iキャッシュ・イン
タフェース56からは書込みデータ要求が出されない点
が異なる。図3に示すように、ポート・インタフェース
0 −PN の各々には、さらに、読取り要求の識別コー
ド(ID)をストアするためのID FIFO(先入れ
先出し)130と、MAUへのアクセスが許可されるま
で書込みデータを一時的にストアしておくための書込み
データ(WD)FIFO131と、ネットワーク54が
使用可能になるまで読取りデータを一時的にストアして
おくための読取りデータ(RD)FIFO132が設け
られている。
[0038] Figure 3 shows the main data path of the switch network 54 is a block diagram showing the connection relationship between the D-cache interface 55 and port interface P O. Port interface P 1
P N and I cache and input / output interface 56,
The connection relationship between the 57 is the same, except that no write data request is issued from the I-cache interface 56. As shown in FIG. 3, each of the port interfaces P 0 -P N is further granted an ID FIFO (First In First Out) 130 for storing an identification code (ID) of the read request, and access to the MAU. And a read data (RD) FIFO 132 for temporarily storing read data until the network 54 becomes available. Have been.

【0039】スイッチ・ネットワーク54には、それぞ
れ、要求/アドレス・バスSW_REQ〔28:0〕、
書込みデータ・バスSW_WD〔31:0〕、読取りデ
ータ・バスSW_RD〔63:0〕、および識別/バン
ク開始信号バスSW_IDBST〔3:0〕とも呼ばれ
る、複数の信号バス140〜143と、スイッチ仲裁ユ
ニット58とが設けられている。スイッチ仲裁ユニット
58はマルチポート入出力要求を取り扱うことを目的と
している。
The switch network 54 has a request / address bus SW_REQ [28: 0],
A plurality of signal buses 140-143, also called write data buses SW_WD [31: 0], read data buses SW_RD [63: 0], and identification / bank start signal buses SW_IDBST [3: 0], and a switch arbitration unit 58 are provided. Switch arbitration unit 58 is intended to handle multiport I / O requests.

【0040】キャッシュおよびポート・インタフェース
は一部の信号バスで直接に、他の信号バスでスイッチ・
ネットワーク・バスを介して間接に接続されている。例
えば、ポート・インタフェースP。〜PN の各々におけ
るポ−卜仲裁ユニットPAUはGRANT制御ライン7
0aおよびREQUEST制御ライン71bからなる対
の制御信号バスを介してスイッチ仲裁ユニット58に接
続されている。スイッチ仲裁ユニット58はGRANT
制御信号ライン71bを介してDキャッシュ・インタフ
ェース55に接続されている。ライン70a、70bお
よびライン71a、71bは図2のバス70と71にお
ける信号ラインである。ゲート75とレジスタ76、7
8は、それぞれ、介入を引き起こす要求をストアするた
めと、割込みをかけられた読取り要求をストアするため
に設けられている。他方のポート、キャッシュおよび入
出力インタフェース間は対応する制御バスで結ばれてい
る。
The cache and port interfaces switch directly on some signal buses and switch on other signal buses.
Indirectly connected via a network bus. For example, port interface P. .. PN at each of the port arbitration units PAU
It is connected to the switch arbitration unit 58 via a pair of control signal buses consisting of Oa and REQUEST control lines 71b. Switch arbitration unit 58 is GRANT
It is connected to the D-cache interface 55 via a control signal line 71b. Lines 70a and 70b and lines 71a and 71b are signal lines on the buses 70 and 71 in FIG. Gate 75 and registers 76 and 7
8 are provided for storing the request causing the intervention and for storing the interrupted read request, respectively. The other port, cache, and input / output interface are connected by a corresponding control bus.

【0041】スイッチ・ネットワーク54の機能は、様
々な命令とデータ要求をキャッシュ制御ユニット(CC
U)、つまり、Iキャッシュ51、Dキャッシュ52、
およびIOU53から受け取ることである。これらを要
求を受け取ると、一度に1つの要求を引き受ける、スイ
ッチ・ネットワーク54内のスイッチ仲裁ユニット58
は要求に優先順位を付けて、その要求に付随したアドレ
スに応じて、該当するポート・インタフェースP。〜P
N または入出力インタフェースに要求を引き渡す。ポー
トと入出力インタフェースは、例えば、要求に付随する
アドレスの上位ビットによって選択される。各ポート・
インタフェースはMAUアドレスをストアするためのレ
ジスタ77をもっている。ポート・インタフェースは必
要なタイミング信号を発生し、MAU77との間で必要
なデータをやりとりする。要求がWR要求ならば、ポー
ト・インタフェースとスイッチ・ネットワーク54との
間のやりとりは、スイッチが書込みデータをすべてプッ
シュしてWDF(書込みFIFO)131に入れたとき
停止する。要求がRD要求ならば、スイッチ・ネットワ
ーク54とポート・インタフェースとの間のやりとり
は、ポート・インタフェースが読取りデータをスイッチ
・ネットワーク54へ送り返したときだけ終了する。
The function of the switch network 54 is to send various instructions and data requests to the cache control unit (CC).
U), that is, I cache 51, D cache 52,
And from the IOU 53. Upon receiving these requests, the switch arbitration unit 58 in the switch network 54 takes on one request at a time.
Prioritizes the requests and, depending on the address associated with the request, the corresponding port interface P. ~ P
Pass the request to N or I / O interface. The port and the input / output interface are selected, for example, by upper bits of the address accompanying the request. Each port
The interface has a register 77 for storing the MAU address. The port interface generates necessary timing signals and exchanges necessary data with the MAU 77. If the request is a WR request, the interaction between the port interface and the switch network 54 stops when the switch pushes all the write data into the WDF (write FIFO) 131. If the request is an RD request, the exchange between the switch network 54 and the port interface ends only when the port interface sends the read data back to the switch network 54.

【0042】以下で詳しく説明するように、スイッチ・
ネットワーク54は、マスタ・デバイスとスレーブ・デ
バイスとが交信し合うために用意されたものである。こ
の意味において、マスタ・デバイスとなり得るものに
は、次のものがある。
As described in detail below, a switch
The network 54 is provided for a master device and a slave device to communicate with each other. In this sense, the following can be the master device.

【0043】1.Dキャッシュ 2.Iキャッシュ 3.IOU スレーブ・デバイスとなり得るものには、次のものがあ
る。
1. D cache 2. 2. I-cache Possible IOU slave devices include:

【0044】1.メモリ・ポート 2.IOU スイッチ・ネットワーク54は、必要な介入要求を該当
するポート・インタフェースヘ送って、実行させること
を担当する。
1. Memory port 2. The IOU switch network 54 is responsible for sending necessary intervention requests to the appropriate port interface for execution.

【0045】上述したように、スイッチ・ネットワーク
54は、キャッシュ・インタフェース、入出力インタフ
ェースおよびメモリ・ポート・インタフェース間を接続
するための4セットの3状態(tri−state)バ
スから構成されている。4セットの3状態バスとはSW
_REQ、SW_WD、SW_RD、SW_IDBST
である。SW_REQ〔28:0〕と名付けたバスは、
スレーブ・デバイス側のアドレス、メモリ共用信号およ
びIDをマスタ・デバイスからスレーブ・デバイスヘ送
るために使用される。上記に示したように、マスタとな
り得るのは、Dキャッシュ、IキャッシュまたはIOU
であり、スレーブ・デバイスとなり得るのはメモリ・ポ
ートまたはIOUである。マスタ・デバイスが要求をス
レーブに対して出すときは、アドレスの全32ビットを
スイッチ・バスSW_REQ上を送る必要がない。これ
は、本発明の多重メモリ・ポート構造では、各ポートに
はあらかじめ定義されたメモリ空間が割り振られている
ためである。
As described above, the switch network 54 is composed of four sets of tri-state buses for connecting between the cache interface, the input / output interface, and the memory port interface. 4 sets of 3 state buses are SW
_REQ, SW_WD, SW_RD, SW_IDBST
It is. The bus named SW_REQ [28: 0]
It is used to send the address, memory sharing signal and ID of the slave device from the master device to the slave device. As indicated above, the master can be a D-cache, I-cache or IOU
And the slave device can be a memory port or an IOU. When the master device issues a request to the slave, it is not necessary to send all 32 bits of the address on the switch bus SW_REQ. This is because in the multiple memory port structure of the present invention, a predefined memory space is allocated to each port.

【0046】機能コード(FC)やデータ幅(WD)な
どの、他の要求属性は、タイミング上の制約があるため
SW_REQバスから送信されない。スイッチ・ネット
ワーク54上を送られる情報は、その情報が専用ワイヤ
上を送られた場合よりも1クロック・フェーズだけ遅れ
てポート・インタフェースに到着する。従って、初期の
要求属性(early request attrib
ute)を1フェーズだけ早くポート・インタフェース
ヘ送っておけば、ポート・インタフェースはそのステー
ト・マシンを早く始動できるので、メモリ待ち時間が減
少することになる。これは、図3に示すように、別の信
号ライン79によって行われる。ライン79は図2の制
御信号バス70内のラインの1つである。
Other required attributes such as the function code (FC) and the data width (WD) are not transmitted from the SW_REQ bus due to timing restrictions. Information sent over the switch network 54 arrives at the port interface one clock phase later than if the information was sent over a dedicated wire. Therefore, the initial request attribute (early request attribute)
ute) to the port interface one phase earlier, the port interface can start its state machine earlier, thus reducing memory latency. This is done by another signal line 79, as shown in FIG. Line 79 is one of the lines in control signal bus 70 of FIG.

【0047】SW_WD〔31:0〕バスは、書込みデ
ータをマスタ・デバイス(DキャッシュとIOU)から
メモリ・ポート・インタフェース内のWD FIFO1
31へ送るために使用される。この3状態バスはダブル
・ポンプされる。つまり、データの32ビットがフェー
ズごとに転送される。バスはダブル・ポンプ(doub
le−pumped)されるので、回路を設計する際
に、バスが折り返して、あるマスタから別のマスタに切
り替わるときバスの衝突が起こらないようにする配慮が
必要である。理解されるように、ダブル・ポンプを行う
と、必要とするビット・ライン数が少なくなるので、必
要とされる高価なワイヤ数を最小にし、パフォーマンス
低下を最小にすることができる。
The SW_WD [31: 0] bus transfers write data from the master device (D cache and IOU) to the WD FIFO1 in the memory port interface.
Used to send to 31. This tri-state bus is double pumped. That is, 32 bits of data are transferred for each phase. Bus is a double pump (doub)
When the circuit is designed, care must be taken to prevent the bus from wrapping around and causing a bus collision when switching from one master to another master. As will be appreciated, double pumping requires fewer bit lines, thereby minimizing the number of expensive wires required and minimizing performance degradation.

【0048】図9に示すように、SW_RD〔63:
0〕は、返却読取りデー夕をスレーブ・デバイス(メモ
リ・ポートまたはIOU)からマスタ・デバイスヘ送り
返すために使用される。データはクロックのフェーズ1
のとき(CLK1がハイのとき)だけ送信される。この
バスは、キャッシュにタイミング上の制約があるためダ
ブル・ポンプされない。CLK1の立下がり縁でデータ
が有効であることがキャッシュの必要条件である。デー
タはフェーズ1時にポート・インタフェースから受信さ
れるので、SW_RDバスがダブル・ポンプされていな
いと、キャッシュが最も早くデータを得るのは、CLK
1の正縁のときであって、CLK1の負縁のときではな
い。SW_RDバスはダブル・ポンプされないので、こ
のバスはCLK1時だけアクティブであるので(3状態
ではない)、バス・バッファが衝突するという問題は起
こらない。つまり、2つのバス・ドライバが同じワイヤ
を同時にドライブすることはない。SW IDBST
〔3:0〕は、識別(ID)コードとバンク開始コード
をスレーブ・デバイスからマスタ・デバイスヘバス88
を経由して返すために使用される。スレーブ・デバイス
からのデータは常に順番に返されるので、一般的にはI
Dをポートまで送る必要はない。IDは、インタフェー
ス内の各ポートごとに1つあて用意されている個々のF
IFOにストアしておくことができる。
As shown in FIG. 9, SW_RD [63:
0] is used to send return read data from the slave device (memory port or IOU) back to the master device. Data is clock phase 1
(When CLK1 is high). This bus is not double pumped due to cache timing constraints. It is a cache requirement that the data be valid on the falling edge of CLK1. Since data is received from the port interface during phase 1, if the SW_RD bus is not double-pumped, the cache will get the earliest data on the CLK
1, but not on the negative edge of CLK1. Since the SW_RD bus is not double-pumped, it is only active at CLK1 (not tri-state), so that the problem of bus buffer collision does not occur. That is, no two bus drivers drive the same wire at the same time. SW IDBST
[3: 0] indicates that the identification (ID) code and the bank start code are transmitted from the slave device to the master device 88.
Used to return via Since data from a slave device is always returned in order,
There is no need to send D to the port. IDs are assigned to individual F prepared for each port in the interface.
It can be stored in the IFO.

【0049】再び読取りFIFO132に戻って説明す
ると、データはスイッチ読取りバスSW_RDが使用可
能でないときだけこのFIFOにストアされる。バスS
W_RDが現在他のポートで使用中であれば、到来読取
りデータは一時的に読取りFIFO132にプッシュさ
れ、SW_RDバスが解放されると、データはFIFO
からポップされて、スイッチ・ネットワーク54を通っ
て要求側キャッシュまたはIOUへ転送される。
Returning again to the read FIFO 132, data is only stored in the switch read bus SW_RD when it is not available. Bus S
If W_RD is currently in use on another port, incoming read data is temporarily pushed to the read FIFO 132, and when the SW_RD bus is released, the data is
And is forwarded through the switch network 54 to the requesting cache or IOU.

【0050】Dキャッシュ・インタフェース55、Iキ
ャッシュ・インタフェース56、入出力インタフェース
57およびポート・インタフェースP0 −PN 間のデー
タ転送を、Dキャッシュ・インタフェース55との間で
データを受け渡しする場合を例に挙げて、以下説明する
ことにする。
Data transfer between the D-cache interface 55, the I-cache interface 56, the input / output interface 57, and the port interfaces P 0 -P N is an example in which data is transferred to and from the D-cache interface 55. And will be described below.

【0051】Dキャッシュ、IキャッシュまたはIOU
のいずれかがポートをアクセスしたいときは、そのポー
トが空きになっているかどうかを確かめるために、図3
に示すように要求を要求信号ライン70b上をポート仲
裁ユニットPAU0 へ送る。ポートが空きになっていれ
ば、ポート・インタフェースは、要求が存在することを
要求制御ライン71aを利用してスイッチ仲裁ユニット
58に通知する。スイッチ・ネットワーク54が空きに
なっていれば、スイッチ仲裁ユニット5aは、要求が制
御ライン71b上で許可されたことを許可制御ライン7
0a上のポートとマスタ、例えば、Dキャッシュ・イン
タフェース55に通知する。
D-cache, I-cache or IOU
If one of the users wants to access a port, it checks to see if that port is free.
The request is sent to the port arbitration unit PAU 0 on the request signal line 70b as shown in FIG. If the port is free, the port interface notifies switch arbitration unit 58 using request control line 71a that a request exists. If the switch network 54 is free, the switch arbitration unit 5a indicates that the request has been granted on the control line 71b by the permission control line 7a.
It notifies the port on 0a and the master, for example, the D-cache interface 55.

【0052】要求が書込み要求であれば、Dキャッシュ
・インタフェース回路55はバス仲裁制御ユニット17
2をチェックして、MCU50にMAUバス25が許可
されているかどうかを確かめる。MCUにまだバス25
が許可されていなければ、バス要求が出される。バスが
許可されているか、あるいは許可されると、ポート仲裁
ユニット171はスイッチ・バス140、141の要求
を行う。スイッチ・バス140、141へのアクセスが
許可されると、Dキャッシュ・インタフェース回路55
は該当するアドレスをスイッチ・バスSW_REQ14
0上に送出し、同時に、書込みデータを書込みデータ・
バスSW_WD141上に送出し、そのデータをWD
FIFO(WDF)131にストアする。データがWD
Fに置かれると、MCUはデータをMAUに順次に書き
出していく。書込みデータをポートに送る前にバスが許
可されているかどうかを確かめるようにしたのは、外部
プロセッサからのスヌープ要求があるとき、MCUがW
DFをチェックしないですむようにするためである。従
って、変更されたデータがあるかどうかのチェックは、
キャッシュだけで行われる。
If the request is a write request, the D-cache interface circuit 55
Check 2 to see if the MCU 50 is authorized to use the MAU bus 25. Still bus 25 to MCU
If is not granted, a bus request is issued. If the bus is granted, or is granted, the port arbitration unit 171 makes a request for the switch bus 140,141. When access to the switch buses 140 and 141 is permitted, the D-cache interface circuit 55
Indicates the corresponding address in the switch bus SW_REQ14.
0 and at the same time, write data
The data is sent out on the bus SW_WD 141 and the data
Store in the FIFO (WDF) 131. Data is WD
When placed in F, the MCU writes data sequentially to the MAU. The reason for checking whether the bus is permitted before sending write data to the port is that when the snoop request is received from the external processor, the MCU determines whether the bus is permitted.
This is to avoid checking the DF. Therefore, checking if there is any changed data
This is done only with the cache

【0053】要求が読取り要求であり、ポートとスイッ
チ・ネットワークが上述したように空きになっていると
判断されると、ポート・インタフェースはSW_REQ
バス上を要求側ユニットから送られてきたアドレスを受
け取り、MAUバス9の許可を得るための仲裁をオービ
タに要求する。ポートがバスを実際に使用するために
は、その前に、MAUバスが許可されたとのMAUオー
ビタからの通知が必要である。そのあと、要求はスイッ
チからポートヘ転送される。MAUアドレス・バス9が
空きになっていると、アドレスがMAUアドレス・バス
上に送出される。データがいつ受信されるかは、事前に
ポートに知らされる。ポートはスイッチ返却データ・バ
スを要求するので、バスが使用中でなければ、データが
返却されるとき使用可能になっている。バスが空きにな
っていると、ポートは読取りデータをバス上に送出し、
Dキャッシュ、Iキャッシュまたは入出力インタフェー
スはそのデータを取り出して、それぞれの要求側ユニッ
トヘ引き渡すことになる。
If the request is a read request and it is determined that the port and switch network are free as described above, the port interface will switch to SW_REQ.
It receives the address sent from the requesting unit on the bus, and requests the orbiter to arbitrate for permission of the MAU bus 9. Before the port can actually use the bus, it must notify the MAU orbiter that the MAU bus has been granted. Thereafter, the request is forwarded from the switch to the port. When the MAU address bus 9 is free, the address is sent out on the MAU address bus. The port is informed in advance when data will be received. The port requires a switch return data bus, so if the bus is not busy, it is available when data is returned. If the bus is free, the port sends read data out on the bus,
The D-cache, I-cache or I / O interface will retrieve the data and deliver it to the respective requesting unit.

【0054】D/Iキャッシュ51、52が入出力アド
レスの要求を行うと、D/Iキャッシュ・インタフェー
ス55、56はその要求を要求バスSW_REQを経由
して入出力インタフェース・ユニット57に受け渡す。
入出力インタフェース・ユニット57は、要求をストア
しておくためのその待つ行列に使用可能なエントリをも
っていれば、要求を制御信号ライン90を経由してスイ
ッチ仲裁ユニット58に引き渡す。スイッチ・ネットワ
ーク54が空きになっていれば、もう一度、スイッチ仲
裁ユニット58はD/Iキャッシュ・インタフェース5
5、56に通知して、アドレスをアドレス・バスSW_
REQ上に送出できるようにし、それが書込み要求なら
ば(Dキャッシュのみ)、書込みデータを書込みデータ
・バスSW_WD上に送出してIOUへ転送できるよう
にする。同様に、D/Iキャッシュ・インタフェース5
5、56からの要求が読取り要求ならば、入出力インタ
フェース57からの読取りデータは、スイッチ・ネット
ワークの読取りデータ・バスSW_RDを経由して入出
力インタフェース57から転送されて、D/Iキャッシ
ュ・インタフェース55、56に渡され、そこからD/
Iキャッシュ51、52へ転送される。
When the D / I caches 51 and 52 request an input / output address, the D / I cache interfaces 55 and 56 pass the request to the input / output interface unit 57 via the request bus SW_REQ.
The I / O interface unit 57 passes the request to the switch arbitration unit 58 via the control signal line 90 if it has an available entry in its queue to store the request. Once the switch network 54 is free, once again the switch arbitration unit 58 sends the D / I cache interface 5
5, 56, and the address is transferred to the address bus SW_.
REQ, and if it is a write request (D-cache only), write data is sent on the write data bus SW_WD so that it can be transferred to the IOU. Similarly, D / I cache interface 5
If the request from 5, 56 is a read request, the read data from the I / O interface 57 is transferred from the I / O interface 57 via the read data bus SW_RD of the switch network to the D / I cache interface. Passed to 55 and 56 and from there D /
The data is transferred to the I caches 51 and 52.

【0055】図4に示すように、本発明によるポート・
インタフェースとキャッシュには、それぞれを符号16
0、168で全体を示したテストおよびセット(TS)
バイパス回路が設けられている。このバイパス回路はM
AUアドレス・バス9上にセマフォアのアドレスがある
かどうかをモニタ、つまり、スヌープ(snoop)す
る。理解されるように、回路160、168はセマフォ
アをスピン・ロックしたとき消費されるメモリ・バンド
幅を節減する。
As shown in FIG.
Each of the interface and the cache has a code 16
Tests and sets (TS) indicated overall at 0, 168
A bypass circuit is provided. This bypass circuit is M
It monitors whether there is a semaphore address on the AU address bus 9, that is, snoops. As will be appreciated, the circuits 160, 168 save memory bandwidth consumed when spin locking the semaphore.

【0056】TS回路160、168には、スヌープ・
アドレス・ジェネレータ(snoop address
generator)161、TS内容アドレス・メ
モリ(CAM−content addressabl
e memory)162、フリップフロツプ163お
よびMUX164、165が設けられている。
The TS circuits 160 and 168 include a snoop
Address generator (snoop address)
generator) 161, TS content address memory (CAM-content addressable)
e memory 162, flip flop 163 and MUXs 164, 165.

【0057】セマフォア(semaphore)とは、
メモリ内のアドレス可能ロケーションにストアされて、
メモリやその他のアドレス可能資源のある領域へのアク
セスを制御するためのフラグまたはラベルである。例え
ば、あるCPUがセマフォアが関連づけられているある
メモリ領域をアクセスするとき、その領域を他のCPU
がアクセスするのを望まないときは、そのアクセスする
CPUはセマフォアにオール1を入れる。別のCPUが
その領域へのアクセスを試みるときは、まずそのセマフ
ォアを調べる。セマフォアがオール1であることが分か
ると、その2番目のCPUはアクセスが拒否されること
になる。そのときまでに、2番目のCPUがアクセス要
求をなん度も出していると、アクセスがなん度も拒否さ
れ、その結果、「セマフォアのスピン・ロック」と呼ば
れる現象が起こることになる。このセマフォアのスピン
・ロックが起こると、アクセス要求のたびに、要求側C
PUは読み書きを行わなければならないので、メモリ・
バンド幅量が過度に使用されるという問題が起こる。
A semaphore is
Stored in an addressable location in memory,
Flags or labels to control access to memory and other areas of addressable resources. For example, when a certain CPU accesses a certain memory area associated with a semaphore,
When the user does not want to access, the accessing CPU puts all 1s in the semaphore. When another CPU attempts to access the area, it first checks the semaphore. If the semaphore is found to be all ones, the second CPU will be denied access. By that time, if the second CPU has issued an access request many times, the access is rejected many times, and as a result, a phenomenon called “semaphore spin lock” occurs. When this semaphore spin lock occurs, the requestor C
Since the PU must read and write, memory
A problem arises in that the amount of bandwidth is overused.

【0058】図4に示したテストおよびセット・バイパ
ス回路160、168には、セマフォアのスピン・ロッ
クが起こったときメモリ・バンド幅の過度の使用を防止
する単純なアルゴリズムが実装されている。
The test and set bypass circuits 160, 168 shown in FIG. 4 implement a simple algorithm that prevents excessive use of memory bandwidth when a semaphore spin lock occurs.

【0059】動作について説明すると、あるCPU、よ
り正確には、プロセッサ内のあるプロセスがセマフォア
が関連づけられているあるメモリ領域を要求するため
に、まずロードおよびセット命令、つまり、セマフォア
ヘのアクセス要求と関連する所定の命令を出すと、その
CPUは、まず、そのセマフォアをアクセスし、セマフ
ォアのアドレスをCAM162にストアする。複数のロ
ードおよびセット命令を出すと、複数のエントリがCA
M162にストアされることになる。セマフォアがオー
ル1($FFFF)ならば、アクセスが拒否されたこと
を意味する1が返される。別のプロセスがそのセマフォ
アを要求するときは、そのCAMを調べる。要求したセ
マフォアのアドレスがまだCAMに残っていると、セマ
フォアが別のプロセッサ/プロセスによってまだ解放さ
れていないことがCPUに通知されるので、セマフォア
をスピン・ロックさせる必要がない。その代わりに、M
CUはオール1(セマフォア失敗)を受け取るので、セ
マフォアはメモリに要求されないので、メモリ・バンド
幅が必要以上に使用されることが防止される。他方、セ
マフォアのアドレスがCAMになければ、セマフォアが
以前に要求されたことがなかったか、すでに解放されて
いることを意味する。
In operation, a CPU, or more precisely, a process within a processor, first requests load and set instructions, ie, a request to access the semaphore, in order to request a memory area with which the semaphore is associated. When issuing the relevant predetermined instruction, the CPU first accesses the semaphore and stores the semaphore address in the CAM 162. Issuing multiple load and set instructions will cause multiple entries to
It will be stored in M162. If the semaphore is all 1 ($ FFFF), 1 is returned, meaning that access is denied. When another process requests the semaphore, it checks its CAM. If the address of the requested semaphore is still in the CAM, the CPU is notified that the semaphore has not been released by another processor / process, and there is no need to spin lock the semaphore. Instead, M
Since the CU receives an all ones (semaphore failure), the semaphore is not required for memory, thereby preventing overuse of memory bandwidth. On the other hand, if the address of the semaphore is not in the CAM, it means that the semaphore has never been requested before or has been released.

【0060】MAUバスは、バイト・アドレスを提供し
ない。セマフォアが解放されたときは、CAMをクリア
する必要がある。セマフォアを取り囲む最小の検出可能
メモリ・ブロックのいずれかの部分へのアクセスがMA
Uバス上のいずれかのプロセッサによって行われると、
CAMがクリアされる。現ブロック・サイズは4または
8バイトである。このようにすると、メモリ・ブロック
内の別のロケーションヘの書込みによってセマフォアが
クリアされなかったときCAMがクリアされる場合があ
っても、CAMはクリアされたセマフォアのアドレスを
保持することはない。セマフォアは、いずれかのプロセ
ッサがオール1以外をセマフォアに書き込むと、クリア
される。
The MAU bus does not provide a byte address. When the semaphore is released, the CAM needs to be cleared. Access to any part of the smallest detectable memory block surrounding the semaphore is MA
When done by any processor on the U bus,
CAM is cleared. The current block size is 4 or 8 bytes. In this way, the CAM will not retain the address of the cleared semaphore, even if the CAM may be cleared when the semaphore was not cleared by writing to another location in the memory block. The semaphore is cleared when any processor writes anything other than all 1s to the semaphore.

【0061】セマフォアが置かれているメモリ・ブロッ
クヘの書込みが行われたあと、セマフォアがテストおよ
びセット命令によってアクセスされる場合は、メモリが
再びアクセスされる。セマフォアがすでにクリアされて
いると、クリアされた値がCPUに返され、CAMにそ
のアドレスが再びセットされる。セマフォアがクリアさ
れていないか、再びロックされていたときも、CAMに
セマフォア・アドレスがロードされるが、ロックされた
値がCPUに返される。
After writing to the memory block where the semaphore is located, if the semaphore is accessed by test and set instructions, the memory is accessed again. If the semaphore has been cleared, the cleared value is returned to the CPU and the address is set again in the CAM. When the semaphore is not cleared or locked again, the CAM is loaded with the semaphore address, but the locked value is returned to the CPU.

【0062】図4の回路160の動作について説明する
と、回路160はMAUアドレス・バス9をスヌープ
し、そこで検出されたアドレス信号を使用して、アドレ
ス・ジェネレータ161で応するスヌープ・アドレスを
生成し、このアドレスはライン169上をCMA162
へ送信され、その内容と比較される。ヒットすると、つ
まり、CAM162内のエントリと一致するものがある
と、CAM162のそのエントリがクリアされる。ロー
ドおよびセット要求が例えばDキャッシュからMCUに
対して行われると、Dキャッシュ・インタフェース回路
はアドレスをCAMのエントリと比較する。CAM16
2に一致するものが見つかると(ヒットすると)、その
IDがキャッシュ・インタフェースのレジスタ163に
ラッチされ、このIDとオール1($FFFF)がMU
X164、165を経由してキャッシュ・インタフェー
スに返される。
In operation of circuit 160 of FIG. 4, circuit 160 snoops on MAU address bus 9 and uses the detected address signal to generate a corresponding snoop address in address generator 161. , This address is on line 169 CMA 162
Sent to and compared to its contents. If there is a hit, that is, if there is an entry that matches the entry in CAM 162, that entry in CAM 162 is cleared. When a load and set request is made, for example, from the D-cache to the MCU, the D-cache interface circuit compares the address with the entry in the CAM. CAM16
When a match is found (when hit), the ID is latched in the register 163 of the cache interface, and the ID and all 1 ($ FFFF) are stored in the MU.
Returned to the cache interface via X164, 165.

【0063】アドレスをスヌープし、CAM162で比
較を行うためにそれからスヌープ・アドレス・ジェネレ
ータ161でスヌープ・アドレスを生成することは、M
AUアドレス・バス9上に現れたアドレスが非共用メモ
リ・ロケーションに対するものであっても、好ましくな
い影響を与えないで続けられる。スヌープ・アドレス・
ジェネレータ161は、一般的には、MAUアドレス・
バス9上に現れたMAU行列アドレスの11ビットから
キャッシュ・ブロック・アドレス(上位ビット)を、M
AU制御信号RAS、CASおよび制御信号バス11上
のBKST START MAU制御信号を使用して生
成する。
To snoop the address and then generate a snoop address with the snoop address generator 161 to make a comparison with the CAM 162, M
Even if the address appearing on the AU address bus 9 is for a non-shared memory location, it will continue without adverse effects. Snoop address
Generator 161 typically has a MAU address
From the 11 bits of the MAU matrix address appearing on the bus 9, the cache block address (upper bit) is changed to M
It is generated using the AU control signals RAS and CAS and the BKST START MAU control signal on the control signal bus 11.

【0064】図5に示すように、全体を符号170で示
した、キャッシュー貫性を保つための本発明の他の形態
による回路が設けられている。キャッシュー貰性が必要
とされるのは、マルチプロセッサ環境では、マスタ・デ
バイスとスレーブ・デバイス、つまり、CPUがすべて
最新のデータをもつことを保証するためである。
As shown in FIG. 5, there is provided a circuit, generally designated 170, for maintaining cache continuity according to another aspect of the present invention. The need for cacheability is required in a multiprocessor environment to ensure that the master device and the slave devices, that is, the CPUs, all have the latest data.

【0065】回路170を構成するチップの外側に示す
ように、オービタ6、メモリ7、MAUアドレス・バス
9、MAU制御バス11およびマルチプロセッサ制御バ
ス10が設けられている。回路172には、ポート仲裁
ユニット・インタフェース171、バス仲裁制御ユニッ
ト172、マルチプロセッサ・コントロール173およ
び図4に示すスヌープ・アドレス・ジェネレータ161
が設けられている。Dキャッシュ・インタフェース55
は対の制御信号バス174、175とスヌープ・アドレ
ス・バス176を介してマルチプロセッサ・コントロー
ル173に接続されている。Iキャッシュ・インタフェ
ース56は対の制御信号バス177、178とスヌープ
・アドレス・バス176を介してマルチプロセッサ・コ
ントロール173に接続されている。スヌープ・アドレ
ス・ジェネレータ161は制御信号バス179を介して
マルチプロセッサ・コントロール173に接続されてい
る。マルチプロセッサ・コントロール173はさらに、
制御信号バス180を介してマルチプロセッサ制御バス
10に、制御信号バス181を介してバス仲裁ユニット
172に接続されている。ポート仲裁インタフェース1
71は制御信号バス182を介してバス仲裁制御ユニッ
ト172に接続されている。バス仲裁制御ユニット17
2はバス仲裁制御ユニット183を介してオービタ6に
接続されている。スヌープ・アドレス・ジェネレータ1
61は、それぞれ、アドレス・バス14および制御バス
16を介してMAUアドレス・バス9およびMAU制御
バス11にも接続されている。
As shown outside the chip constituting the circuit 170, an orbiter 6, a memory 7, an MAU address bus 9, an MAU control bus 11, and a multiprocessor control bus 10 are provided. Circuit 172 includes a port arbitration unit interface 171, a bus arbitration control unit 172, a multiprocessor control 173, and a snoop address generator 161 shown in FIG.
Is provided. D-cache interface 55
Are connected to a multiprocessor control 173 via a pair of control signal buses 174, 175 and a snoop address bus 176. The I-cache interface 56 is connected to the multiprocessor control 173 via a pair of control signal buses 177, 178 and a snoop address bus 176. Snoop address generator 161 is connected to multiprocessor control 173 via control signal bus 179. Multiprocessor control 173 further
It is connected to the multiprocessor control bus 10 via a control signal bus 180 and to the bus arbitration unit 172 via a control signal bus 181. Port arbitration interface 1
Reference numeral 71 is connected to the bus arbitration control unit 172 via a control signal bus 182. Bus arbitration control unit 17
2 is connected to the orbiter 6 via the bus arbitration control unit 183. Snoop address generator 1
61 is also connected to MAU address bus 9 and MAU control bus 11 via address bus 14 and control bus 16, respectively.

【0066】キャッシュからの要求が送られるときは、
その要求が共用メモリに対するものかどうかを示した属
性が一緒に送られる。要求が共用メモリに対するもので
あるときは、ポート・インタフェースはマルチプロセッ
サ制御信号(MCS)バス10上を共用信号SHARE
D_REQを送出する。他のCPUがMCSバス10上
にこの共用信号を検出すると、スヌープ・アドレスを得
るためにMAU ADDRバス9をスヌープすることを
始める。
When a request from the cache is sent,
An attribute indicating whether the request is for shared memory is sent with the request. When the request is for shared memory, the port interface places the shared signal SHARE on the multiprocessor control signal (MCS) bus 10.
Send D_REQ. When another CPU detects this shared signal on MCS bus 10, it begins to snoop MAU ADDR bus 9 to obtain a snoop address.

【0067】スヌーピング(snooping)とは、
これまでに簡単に説明したように、キャッシュー貫性プ
ロトコルである。このプロトコルによれば、制御は共用
メモリ・バス上のすべてのキャッシュに配布され、すべ
てのキャッシュ・コントローラ(CCU)はバスを聴取
(1isten)またはスヌープして、共用ブロックの
コピーをもっているかどうかを判断する。従って、スヌ
ーピングとは、スレーブ側MCUがバス上のすべてのト
ランザクションをモニタして、マスタ側MCUから出さ
れたRD/WR要求があるかどうかを調べるプロセスで
ある。スレーブ側MCUの主要な仕事は、バスをスヌー
プして受信する必要のあるデータがあるかどうかを判断
すること、つまり、以前に受信したデータを無効にする
ことであり、あるいは最新のデータをマスタ側MCUへ
送ること、つまり、介入を行うことである。
The snooping is as follows.
As described briefly above, it is a cache persistence protocol. According to this protocol, control is distributed to all caches on a shared memory bus, and all cache controllers (CCUs) listen (1isten) or snoop on the bus to determine if they have a copy of the shared block. I do. Thus, snooping is the process by which the slave MCU monitors all transactions on the bus to see if there is an RD / WR request issued by the master MCU. The primary task of the slave MCU is to snoop the bus to determine if there is data that needs to be received, that is, to invalidate previously received data, or to update the latest data to the master. To the side MCU, that is, to perform an intervention.

【0068】以下で詳しく説明するように、図5に示す
マルチプロセッサ制御回路173はキャッシュからの無
効化、介入およびスヌープ・ヒット信号を処理して、以
下に詳しく説明するように、スヌープ・ヒットと介入/
無効化が示されたときスヌープ・ヒット(SNP_HI
T)信号と介入(ITV_REQ)信号をマルチプロセ
ッサ制御信号バス180上に生成する。
As described in more detail below, the multiprocessor control circuit 173 shown in FIG. 5 processes the invalidate, intervene, and snoop hit signals from the cache to generate a snoop hit, as described in more detail below. intervention/
Snoop hit (SNP_HI) when invalidation is indicated
T) and intervention (ITV_REQ) signals are generated on the multiprocessor control signal bus 180.

【0069】図5に示すバス仲裁制御回路172は通常
の読取りまたは書込みオペレーションにおいてMAUバ
スの仲裁を行う。また、介入/無効化の場合にもMAU
バスの仲裁を行い、外部バス・オービタ6に直接に通じ
る外部バス仲裁制御信号ピンと直接にインタフェースと
なっている。
The bus arbitration control circuit 172 shown in FIG. 5 arbitrates the MAU bus in a normal read or write operation. The MAU is also used in case of intervention / invalidation.
It arbitrates for the bus and interfaces directly with an external bus arbitration control signal pin that leads directly to the external bus orbiter 6.

【0070】次に、上述したキャッシュー真性を保証す
るための介入と無効化のオペレーションを、マスタ側中
央処理ユニット(MSTR CPU)から出された読取
り要求、書込み要求および変更意図付き読取り(rea
d−with−intent−to−modify)要
求と関連づけて説明する。
Next, the above-mentioned intervention and invalidation operations for guaranteeing the cache integrity are performed by using the read request, the write request, and the read with change intention (rea) issued from the master central processing unit (MSTR CPU).
The description will be made in connection with a d-with-intent-to-modify request.

【0071】MSTR CPUは読取り要求を出すと
き、アドレスをメモリ・アレイ・ユニット(MAU)ア
ドレス・バス9上に送出する。スレーブ側(SLV)C
PUはMAUバス9上のアドレスをスヌープする。SL
V CPUがそのキャッシュ内のアドレス指定したメモ
リ・ロケーションから取り出したデータが変更されてい
ると、スレーブ側キャッシュ制御ユニット(SLV C
CU)は介入信号をマルチプロセッサ制御バス10上に
送出し、データが更新、つまり、変更されていることを
通知する。MSTRは、ITV信号を検出すると、バス
を断念し、SLVCCUは更新データをメイン・メモ
リ、つまり、MAU7に書き込む。MSTRが要求した
データがMSTRキャッシュ制御ユニット(CCU)に
よってまだ受信されてないと、MSTR MCUは要求
されたデータを破棄し、MAUにデータを要求すること
を再び主張する。要求されたデータがMSTR CCU
へ転送されていた場合は、MSTR MCUはデータを
破棄するようにMSTR CCU(IOUがMSTRで
あれば、IOUコントローラ)に通知する。そのあと、
MSTR MCUは、スレーブがメイン・メモリを更新
したあと読取り要求を再び出す。その間、ポート・イン
タフェースはマスタの読取り要求を保留しており、その
間にスレーブは変更したデータをメモリに書き戻す。そ
のあと、読取り要求が実行される。
When the MSTR CPU issues a read request, it issues an address on the memory array unit (MAU) address bus 9. Slave side (SLV) C
The PU snoops the address on the MAU bus 9. SL
If the data retrieved by the VCPU from the addressed memory location in its cache has been modified, the slave-side cache control unit (SLVC C
CU) sends an intervention signal on the multiprocessor control bus 10 to indicate that the data has been updated, ie changed. When the MSTR detects the ITV signal, it abandons the bus, and the SLVCCU writes the update data to the main memory, that is, the MAU7. If the data requested by the MSTR has not yet been received by the MSTR cache control unit (CCU), the MSTR MCU discards the requested data and again asserts that it requests data from the MAU. Requested data is MSTR CCU
If the ISTR has been transferred, the MSTR MCU notifies the MSTR CCU (or the IOU controller if the IOU is the MSTR) to discard the data. after that,
The MSTR MCU issues a read request again after the slave updates the main memory. Meanwhile, the port interface holds the master's read request pending, while the slave writes the modified data back to memory. Thereafter, a read request is performed.

【0072】MSTRが書込み要求を出し、アドレスを
メモリ・アレイ・ユニット(MAU)アドレス・バス9
上に送出し、スレーブ側CCUがこのアドレスからのオ
リジナル・データのコピーをそのキャッシュにもってい
ると、スレーブ側CCUは、そのキャッシュに置かれて
いる対応するデータを無効にする、つまり、破棄する。
The MSTR issues a write request and stores the address in the memory array unit (MAU) address bus 9
Out, and if the slave CCU has a copy of the original data from this address in its cache, the slave CCU invalidates, ie discards, the corresponding data located in its cache. .

【0073】MSTRが変更意図付き読取り要求を出
し、アドレスをメモリ・アレイ・ユニット(MAU)ア
ドレス・バス9上に送出し、スレーブ側MCUがマスタ
(MSTR)からアドレス・バス上に送出されたアドレ
スをもっていると、次の2つの可能な動作のいずれかが
取られる。
The MSTR issues a read request with a change intention, and sends the address on the memory array unit (MAU) address bus 9, and the slave MCU sends the address sent from the master (MSTR) on the address bus. , One of two possible actions is taken:

【0074】1.SLV CCUがMSTRがアドレス
指定したデータに対応するデータを変更していた場合
は、SLVはITV信号を出し、MSTRはその信号を
受けてバスを断念し、SLV CCUが変更したデータ
をメモリに書くことを許可する。このオペレーション
は、上述した介入オペレーションに対応している。
1. If the SLV CCU has changed the data corresponding to the data addressed by the MSTR, the SLV issues an ITV signal, the MSTR receives the signal, gives up the bus, and writes the changed data to the memory. Allow that. This operation corresponds to the intervention operation described above.

【0075】2.SLVがMSTRがアドレス指定した
データに対応する未修正データをもっている場合は、S
LVはそのデータを無効にする、つまり、破棄する。こ
のオペレーションは、上述した無効化オペレーションに
対応している。
2. If the SLV has unmodified data corresponding to the data addressed by the MSTR, S
The LV invalidates, ie, discards, the data. This operation corresponds to the invalidation operation described above.

【0076】図6に示すように、全体を符号190で示
した本発明の他の形態による回路が設けられている。こ
の回路190は、行一致比較を行ってメモリ待ち時間を
短縮するために使用される。回路190には、コンパレ
ータ191、ラッチ192および対のMUX193、1
94が設けられている。
As shown in FIG. 6, a circuit according to another embodiment of the present invention, generally designated by the reference numeral 190, is provided. This circuit 190 is used to perform row match comparison to reduce memory latency. The circuit 190 includes a comparator 191, a latch 192, and a pair of MUXs 193, 1
94 are provided.

【0077】行一致比較の機能は、現在の要求が前の要
求と同じ行アドレスをもっているかどうかを判断するこ
とである。同じ行アドレスをもっていれば、ポートはR
AS要求を取り消すための時間ペナルティを負担しない
ですむ。行一致は主にDRAMで使用されるが、SRA
MまたはROMで使用することも可能である。つまり、
ROMとSRAMは、DRAMで使用するものと同じよ
うに上位と下位のアドレス・セグメントに入れてアドレ
スをMAUに引き渡すので、MAUを新アドレスの上
位、つまり、行ビットにラッチする必要がないためであ
る。
The function of the row match comparison is to determine whether the current request has the same row address as the previous request. If they have the same row address, the port is R
There is no time penalty for canceling the AS request. Row match is mainly used in DRAM, but SRA
It is also possible to use M or ROM. That is,
Because ROMs and SRAMs pass addresses to the MAU in upper and lower address segments, similar to those used in DRAMs, there is no need to latch the MAU on top of the new address, i.e., the row bits. is there.

【0078】図6に示した行一致回路の動作について説
明すると、行アドレスは、そのアドレスの対応する配列
選択ビットを含めて、MUX193によってラッチ19
2にストアされる。新しいアドレスがスイッチ・ネット
ワーク・アドレス・ラインSW REQに現れるたび
に、そのアドレスは新要求MUX194を通って送ら
れ、コンパレータ191で前の要求と比較される。行が
一致していると、信号がコンパレータ191の出力から
生成され、バス70の一部である信号ライン195を介
してポート・インタフェースヘ転送される。行一致がヒ
ットすると、ポート・インタフェースはRAS要求を取
り消すことが禁止されるので、RASサイクル・タイム
が節約されることになる。
The operation of the row coincidence circuit shown in FIG. 6 will be described. The row address, including the array select bit corresponding to the address, is latched by MUX 193 to latch 19.
2 is stored. New address is switch network address line SW Each time it appears on REQ, its address is sent through a new request MUX 194 and compared with a previous request in a comparator 191. If the rows match, a signal is generated from the output of comparator 191 and transferred to the port interface via signal line 195, which is part of bus 70. If a row match is hit, the RAS cycle time is saved because the port interface is prohibited from canceling the RAS request.

【0079】MUX193は行アドレスをスイッチ要求
アドレスから抜き出すために使用される。行アドレスを
スイッチ・アドレスにマッピングすることは、DRAM
の構成(例えば、1Mx1または4Mx1 DRAM)
とMAUデータ・バスの幅(例えば、32ビットまたは
64ビット)によって異なる。
The MUX 193 is used to extract the row address from the switch request address. Mapping a row address to a switch address is equivalent to a DRAM
(For example, 1Mx1 or 4Mx1 DRAM)
And the width of the MAU data bus (eg, 32 bits or 64 bits).

【0080】図1および図5に示すように、外部バス・
オービタ6は、主にプログラマブル・ロジック・アレイ
(PLA)と記憶素子から構成されたユニットである。
このオービタはMAUバス要求を異種CPUから受け取
り、どのCPUにバス許可を与えるべきかを、ソフトウ
ェアで選択可能な動的または固定優先度方式に基づいて
裁定し、該当するCPUに対して許可を発行する。記憶
素子はどのCPUに最後にバスが許可されたかを記憶し
ておき、動的または柔軟な優先度方式および固定または
「ラウンド・ロビン」優先度方式のいずれをも実行でき
るようにするものである。
As shown in FIGS. 1 and 5, the external bus
The orbiter 6 is a unit mainly composed of a programmable logic array (PLA) and a storage element.
This orbiter receives a MAU bus request from a heterogeneous CPU, arbitrates which CPU should be granted a bus permission based on a software-selectable dynamic or fixed priority scheme, and issues a permission to the relevant CPU. I do. The storage element keeps track of which CPU was last granted the bus and can implement either a dynamic or flexible priority scheme and a fixed or "round robin" priority scheme. .

【0081】図7を参照して、本発明のマルチプロセッ
サ環境で使用される動的スイッチおよびポート仲裁につ
いて、以下説明する。上述したように、3つのマスタ
と、MCUのサービスを受ける2つの資源が存在する。
3つのマスタとは、Dキャッシュ、Iキャッシュおよび
IOUである。2つの資源、つまり、スレーブはメモリ
・ポートとIOUである。上から明らかなように、IO
Uはマスタと資源/スレーブの両方になることができ
る。
Referring to FIG. 7, the dynamic switch and port arbitration used in the multiprocessor environment of the present invention is described below. As described above, there are three masters and two resources served by the MCU.
The three masters are a D cache, an I cache, and an IOU. Two resources, the slave, are the memory port and the IOU. As is clear from the above, IO
U can be both a master and a resource / slave.

【0082】本発明によれば、2種類の仲裁が行われ
る。1つはメモリ・ポートの資源の仲裁に関係するもの
であり、もう1つはスイッチ・ネットワーク54のバス
SW REQとSW_WDの資源の仲裁に関係するもので
ある。
According to the present invention, two types of arbitration are performed.
You. One related to arbitration of memory port resources
And the other is the bus of the switch network 54.
SW Related to arbitration of REQ and SW_WD resources
is there.

【0083】複数のデバイスがメイン・メモリからデー
タを同時に要求することがある。それらのデバイスと
は、Dキャッシュ、IキャッシュおよびIOUである。
各マスタに一定の優先度を与える優先度方式は、「重要
度」または「緊急度」の高いデバイスからの要求ができ
るかぎり早くサービスを受けられるようにすることを目
的としている。しかし、厳格な固定仲裁方式は、優先度
の低いデバイスがいつまでもサービスが受けられない
(starving)可能性があるため好ましくない。
その代わりに、デバイス別に異なる優先度を処理中に
(on the fly)割り当てる動的仲裁方式が取
り入れられている。この動的仲裁方式に影響を与える要
因として、次のものがある。
Multiple devices may request data from main memory simultaneously. These devices are D-cache, I-cache and IOU.
The priority method of giving a certain priority to each master is intended to enable a request from a device having a high “importance” or “urgency” to receive a service as soon as possible. However, a strict fixed arbitration scheme is not preferable because a device having a low priority may be starved for a long time.
Instead, a dynamic arbitration scheme has been introduced that assigns different priorities on a device-by-device basis. The following factors influence the dynamic arbitration system.

【0084】1.そのデバイスの固有優先度 2.要求したアドレスと以前にサービスを受けた要求の
アドレスとが行一致している 3.デバイスは余りにも多くの回数サービスを拒否され
てきた 4.マスタは余りにも多くの回数サービスを受けてきた 図7に示すように、メモリ・ポートを要求するときに使
用される動的優先度方式は次のとおりである。デバイス
からの各要求は固有優先度をもっている。IOUが高優
先度または通常優先度を要求することができ、次にDキ
ャッシュが、その次にIキャッシュが要求できる。しか
し、Dキャッシュからの介入(ITV)要求がすべての
中で最も優先度が高くなっている。
1. 1. The unique priority of the device 2. The requested address and the address of the previously serviced request line match. 3. Device has been denied service too many times. The Master Has Received Too Many Services As shown in FIG. 7, the dynamic priority scheme used when requesting a memory port is as follows. Each request from a device has a unique priority. The IOU can request high or normal priority, then the D-cache, and then the I-cache. However, intervention (ITV) requests from the D-cache have the highest priority of all.

【0085】特別な高優先度の入出力要求を行うことが
できる。この優先度は、メモリ待ち時間を最小にしてメ
モリヘのアクセスを必要とするリアルタイム(実時間)
入出力周辺デバイスで使用されることを目的としてい
る。これらの要求は、図7に示すように介入サイクルと
行一致を除き、他のすべての要求に優先させることがで
きる。
Special high priority I / O requests can be made. This priority is real-time (real time) that requires access to memory while minimizing memory latency
It is intended to be used in input / output peripheral devices. These requests can take precedence over all other requests except for the intervention cycle and row match as shown in FIG.

【0086】各種デバイスの固有優先度を変更する要因
として、サービス拒否、入出力独占(I/O ho
g)、行一致といったものがある。あるデバイスがサー
ビスを拒否されるたびに、カウンタがデクリメントされ
る。カウンタがゼロまで達すると、そのデバイスの優先
度は大きくされ、DENY PRIORITYと名付け
た優先度レベルがセットされる。これらのカウンタに
は、最大15までのプログラム可能な値をロードするこ
とができる。カウンタがゼロまで達すると、DENYP
RIORITYビットがセットされ、これは最終的に
は、拒否されたデバイスがサービスを受けたときクリア
される。サービスが拒否されたデバイスの優先度を大き
くするため方法によると、サービス窮乏化(starv
ation)が防止される。注意すべきことは、IOU
の固有優先度レベルは本来的にすでに高いので、IOU
にはサービス拒否優先度が割り当てられないことであ
る。
Factors that change the inherent priority of various devices include denial of service and input / output monopoly (I / O ho).
g) and line matching. Each time a device is denied service, the counter is decremented. When the counter reaches zero, the priority of the device is increased and a priority level named DENY PRIORITY is set. These counters can be loaded with up to 15 programmable values. When the counter reaches zero, the DENYP
The RIORITY bit is set, which is eventually cleared when the denied device is serviced. According to a method for increasing the priority of a denied device, a service deprivation (starv
ation) is prevented. Note that IOU
Since the inherent priority level of the
Is not assigned a denial of service priority.

【0087】IOUはすでに本来的に優先度が高いデバ
イスであるので、そのデバイスがポートを独占するのを
カウンタで防止するようにする必要もある。IOUにポ
ート使用権が許可されるたびに、カウンタはデクリメン
トされる。カウンタがゼロまで達すると、IOUはバス
を独占しているものと扱われ、IOUの優先度レベルは
低くされる。IOUの優先度レベルを落とすのは通常優
先度の要求の場合だけであり、高優先度の入出力要求の
場合は行われない。IOUに要求サイクル時にポート使
用権が許与されないときは、独占優先度ビット(hog
priority bit)がクリアされる。
Since the IOU is already a high priority device by nature, it is necessary to prevent the device from monopolizing the port by using a counter. Each time the IOU is granted port usage, the counter is decremented. When the counter reaches zero, the IOU is treated as monopolizing the bus and the IOU priority level is lowered. The priority level of the IOU is lowered only for a normal priority request, and not for a high priority input / output request. If the IOU is not granted the right to use the port during the request cycle, the exclusive priority bit (hog)
priority bit) is cleared.

【0088】要求の固有優先度を変更するもう1つの要
因は行一致である。行一致が主に重要なのは、Iキャッ
シュの場合である。あるデバイスが以前にサービスを更
けた要求と同じ行アドレスをもつメモリ・ロケーション
を要求すると、要求したデバイスの優先度が高くされ
る。これが行われるのは、RASを再要求しないで済む
ようにするためである。
Another factor that changes the unique priority of a request is row matching. Row match is of primary importance in the case of I-caches. When a device requests a memory location with the same row address as a previously serviced request, the requesting device is given a higher priority. This is done so that RAS need not be re-requested.

【0089】しかし、行一致優先度を持ち続けるには一
定の限度がある。この場合も、カウンタはプログラム可
能な最大値をセットして使用される。行一致優先度があ
るために要求がサービスを受けるたびに、カウンタはデ
クリメントされる。カウンタがゼロまで達すると、行一
致優先度ビットがクリアされる。ポートの新しいマスタ
が割り当てられると、あるいは行一致の要求がないと、
カウンタには再びプログラム可能値が事前ロードされ
る。上述したカウンタはスイッチ仲裁ユニット58に置
かれている。
However, there is a certain limit to maintaining the line matching priority. Again, the counter is used with the maximum programmable value set. The counter is decremented each time a request is serviced due to row match priority. When the counter reaches zero, the row match priority bit is cleared. When a new master for a port is assigned or there is no request for a row match,
The counter is again pre-loaded with a programmable value. The counter described above is located in the switch arbitration unit 58.

【0090】メモリ・ポートに対する書込み要求は、ス
イッチの書込みデータ・バスSW_WDが使用可能にな
っているときだけ許可される。使用可能でないときは、
別の要求が選択される。1つだけ例外があり、それは、
介入信号ITVの場合である。SW_WDが使用可能に
なっていないと、どの要求も選択されない。その代わり
に、プロセッサはSW_WDが空きになるのを待ってか
ら、要求をスイッチ・オービタに受け渡す。
A write request to a memory port is permitted only when the switch write data bus SW_WD is enabled. When not available,
Another request is selected. There is one exception, which is
This is the case of the intervention signal ITV. If SW_WD is not enabled, no requests will be selected. Instead, the processor waits for SW_WD to be free before passing the request to the switch orbiter.

【0091】スイッチ・ネットワーク54の仲裁方式
は、ポートの仲裁で使用される方式と若干異なってい
る。図3のスイッチ仲裁ユニット58は、ソフトウェア
で選択可能なポートの仲裁を行うとき、2種類の仲裁方
式を利用している。
The arbitration scheme for the switch network 54 is slightly different from the scheme used for port arbitration. The switch arbitration unit 58 of FIG. 3 utilizes two types of arbitration schemes when arbitrating software selectable ports.

【0092】1.優先度がスレーブまたは被要求側デバ
イス(すなわち、メモリまたはIOUポート)を基準に
しているスレーブ優先度方式 2.優先度がマスタまたは要求側デバイス(すなわち、
IOU、DキャッシュおよびIキャッシュ)を基準にし
ているマスタ優先度方式 スレーブ優先度方式では、優先度は常にラウンド・ロビ
ン方式でメモリ・ポートに与えられる。つまり、優先度
は最初にメモリ・ポート0、1、2...に与えられ、
次にIOUに与えられる。これに対して、マスタ優先度
方式では、優先度は最初にIOUに与えられ、次にDキ
ャッシュとIキャッシュに与えられる。勿論、事情によ
っては、マスタ優先方式に従ってITV要求に最高優先
度を与える必要がある場合やそうした方が望ましい場合
がある。また、プリフェッチ・バッファがやがて空にな
る場合に、Iキャッシュに高優先度を与える必要がある
場合やそうしたほうが望ましい場合がある。いずれの場
合も、使用する優先度方式は、様々な動作条件に合うよ
うにソフトウェアで調整することが可能である。
1. 1. Slave priority scheme where priority is based on slave or requested device (ie, memory or IOU port) If the priority is the master or requesting device (ie,
Master priority scheme based on IOU, D-cache and I-cache) In the slave priority scheme, priority is always given to memory ports in a round robin manner. That is, the priorities are initially assigned to memory ports 0, 1, 2,. . . Given to
It is then given to the IOU. On the other hand, in the master priority system, the priority is first given to the IOU, and then to the D cache and the I cache. Of course, depending on the circumstances, it may be necessary or necessary to give the highest priority to the ITV request according to the master priority method. Also, if the prefetch buffer eventually becomes empty, it may be necessary or desirable to give the I-cache a high priority. In any case, the priority scheme used can be adjusted by software to suit various operating conditions.

【0093】動的メモリ・リフレッシュも優先度方式に
基づいている。ステート・マシンに接続されたカウンタ
は、あるリフレッシュから次のリフレッシュまでどれだ
けのサイクルが経過したか、つまり、リフレッシュが要
求され、MAUバスが使用中のため拒否された回数を記
録するために使用される。カウンタが所定のカウントま
で達すると、つまり、経過すると、信号をポートに対し
て生成して、リフレッシュの必要があることをポートに
通知する。ポートが使用中で、DキャッシュやIキャッ
シュまたはIOUからの要求にサービスを与えている場
合は、これまでに拒否したリフレッシュ要求が所定数ま
で達していなければ、リフレッシュ要求にサービスを与
えることを拒否する。言い換えれば、リフレッシュ要求
が所定回数まで拒否されたとき、リフレッシュ要求にサ
ービスを与えることに優先度が与えられる。ポートがリ
フレッシュ要求にサービスを与える準備状態になると、
MAUバスの仲裁を始めるようにバス仲裁制御ユニット
に通知する。
[0093] Dynamic memory refresh is also based on a priority scheme. A counter connected to the state machine is used to record how many cycles have elapsed from one refresh to the next, that is, the number of times a refresh has been requested and rejected because the MAU bus is busy. Is done. When the counter reaches, or elapses, a predetermined count, a signal is generated for the port to notify the port that it needs to be refreshed. If the port is in use and servicing requests from D-cache, I-cache or IOU, refuse to service refresh requests if the number of rejected refresh requests has not reached the specified number. I do. In other words, when refresh requests are rejected up to a predetermined number of times, priority is given to servicing refresh requests. When the port is ready to service refresh requests,
Notifies the bus arbitration control unit to begin arbitration for the MAU bus.

【0094】行は、15マイクロ秒ごとにリフレッシュ
するのが好ましく、また、所定の期間内に、例えば、少
なくとも30マイクロ秒ごとにリフレッシュする必要が
ある。
The rows are preferably refreshed every 15 microseconds and need to be refreshed within a predetermined time period, for example, at least every 30 microseconds.

【0095】RASが低(要求ーassert)にな
り、CASが要求されなかったときは、リフレッシュが
行われたことがすべてのCPUに通知される。すべての
CPUはリフレッシュがいつ行われたかを記録している
ので、どのCPUも必要時にリフレッシュを要求するこ
とができる。
When RAS goes low (request-assert) and no CAS is requested, all CPUs are notified that refresh has been performed. All CPUs keep track of when refreshes occur, so any CPU can request a refresh when needed.

【0096】本発明の好適実施例について説明してきた
が、本発明の精神と範囲を逸脱しない限り、種々態様に
変更が可能であることは勿論である。従って、上述した
実施例は、本発明を説明するための例示にすぎず、その
範囲は実施例に限定されることなく、請求の範囲に記載
した発明から判断すべきものである。
Although the preferred embodiment of the present invention has been described, it is needless to say that various modifications can be made without departing from the spirit and scope of the present invention. Therefore, the above-described embodiment is merely an example for describing the present invention, and the scope is not limited to the embodiment but should be determined from the invention described in the claims.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本発明による複数の異種マイクロプロセッサ
をサポートすることのできるマイクロプロセッサ・アー
キテクチャを示すブロック図である。
FIG. 1 is a block diagram illustrating a microprocessor architecture capable of supporting a plurality of heterogeneous microprocessors according to the present invention.

【図2】 本発明によるメモリ制御ユニットを示すブロ
ック図である。
FIG. 2 is a block diagram illustrating a memory control unit according to the present invention.

【図3】 本発明によるDキャッシュ・インタフェース
とポート・インタフェースとの間の接続状態を示すスイ
ッチ・ネットワークを示すブロック図である。
FIG. 3 is a block diagram showing a switch network showing a connection state between a D-cache interface and a port interface according to the present invention.

【図4】 本発明によるテストおよびセット・バイパス
回路を示すブロック図である。
FIG. 4 is a block diagram illustrating a test and set bypass circuit according to the present invention.

【図5】 本発明により介入信号を生成し、MAUバス
の仲裁を行うために使用される回路を示すブロック図で
ある。
FIG. 5 is a block diagram illustrating circuitry used to generate intervention signals and to arbitrate MAU buses in accordance with the present invention.

【図6】 本発明による行一致比較回路を示すブロック
図である。
FIG. 6 is a block diagram showing a row match comparison circuit according to the present invention.

【図7】 本発明による動的仲裁方式を示す図である。FIG. 7 illustrates a dynamic arbitration scheme according to the present invention.

【図8】 書込み要求のタイミングを示す図である。FIG. 8 is a diagram showing the timing of a write request.

【図9】 読取り要求のタイミングを示す図である。FIG. 9 is a diagram showing the timing of a read request.

【符号の説明】[Explanation of symbols]

1…アーキテクチャ、2、3、4...N…プロセッ
サ、5…特殊用途プロセッサ、6…オービタ(仲裁回
路)、7…メモリ/メモリ・アレイ・ユニット(MA
U)、8…MAUデータ・バス、9…ROW/COLア
ドレス・バス、、10…マルチプロセッサ制御バス、1
1…MAU制御バス、12…バス仲裁制御信号バス、2
5…MAUシステム・バス
1 .... architecture, 2, 3, 4, . . N: processor, 5: special purpose processor, 6: orbiter (arbitration circuit), 7: memory / memory array unit (MA)
U), 8 MAU data bus, 9 ROW / COL address bus, 10 multiprocessor control bus, 1
1: MAU control bus, 12: bus arbitration control signal bus, 2
5. MAU system bus

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラウ, テーリ アメリカ合衆国 94206 カリフォルニア 州 パロ アルト カレッジ アヴェニュ ー 411 (72)発明者 タン, チェンーロン アメリカ合衆国 95132 カリフォルニア 州 サン ノゼ カマーゴ ドライブ 1948 ────────────────────────────────────────────────── ─── Continued on the front page (72) Inventor Lau, Theri United States 94206 Palo Alto College Avenue, California 411 (72) Inventor Tan, Chenlong United States 95132 San Jose Camago Drive, California 1948

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 メモリアレイユニット(MAU)と、前
記MAUに結合された複数のメモリポートと、前記メモ
リポートを通じて前記MAUにアクセスする複数の装置
を有するコンピュータシステムにおいて、前記メモリポ
ートのため仲裁を行うメモリポート仲裁方法であって、
(1)前記各装置に優先度を割当てるステップと、
(2)前記優先度に従って前記各装置により発せられる
前記メモリポートのための要求をサービスするステップ
とを有し、ステップ(1)は、 (a)前記装置のそれぞれに当初の優先度を割当てるス
テップと、 (b)第1装置がメモリポートへのサービスをくり返し
拒否されるときは、第1優先度値よりも低い当初の優先
度を有する第1装置に関して優先度を上げるステップ
と、 (c)第2装置がメモリ独占であることが決定されると
きは、第2優先度値よりも高い当初の優先度を有する第
2装置に関して優先度を下げるステップと、 (d)第3装置によって発せられる未決のメモリアクセ
ス要求によりアドレスされる行が、前記MAUによりサ
ービスを受けた先行メモリアクセス要求によりアドレス
される行に対応するときは、第3装置に関して優先度を
上げるステップとを有することを特徴とするメモリポー
ト仲裁方法。
1. A computer system having a memory array unit (MAU), a plurality of memory ports coupled to the MAU, and a plurality of devices accessing the MAU through the memory ports, wherein arbitration for the memory ports is provided. A method of arbitrating memory ports,
(1) assigning a priority to each device;
(2) servicing requests for said memory ports issued by said devices according to said priorities, wherein step (1) comprises: (a) assigning an initial priority to each of said devices. (B) raising the priority with respect to the first device having an initial priority lower than the first priority value when the first device is repeatedly denied service to the memory port; (c) Lowering the priority with respect to the second device having an initial priority higher than the second priority value when the second device is determined to be memory-exclusive; and (d) issued by the third device. A third device, wherein the row addressed by the pending memory access request corresponds to the row addressed by the preceding memory access request serviced by the MAU; Increasing the priority with respect to the memory port arbitration method.
【請求項2】 前記ステップ(c)は、中断のあと前記
第2装置がはじめてサービスを受けるときは、カウンタ
を所定の値に初期化するステップと、前記第2装置が中
断なしにサービスを受けるたびに前記カウンタの数を減
じるステップと、前記カウンタがゼロに達するときは、
前記第2装置がメモリ独占であることを決定するステッ
プとを有することを特徴とする請求項1記載のメモリポ
ート仲裁方法。
2. The step (c) includes, when the second device receives service for the first time after the interruption, initializing a counter to a predetermined value, and the second device receives service without interruption. Reducing the number of the counter each time, and when the counter reaches zero,
Deciding that said second device is memory monopoly.
JP11336930A 1999-01-01 1999-11-29 Memory port arbitrating method Pending JP2000215183A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11336930A JP2000215183A (en) 1999-01-01 1999-11-29 Memory port arbitrating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11336930A JP2000215183A (en) 1999-01-01 1999-11-29 Memory port arbitrating method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP50215193A Division JP3557617B2 (en) 1991-07-08 1992-07-07 Microprocessor architecture capable of supporting multiple heterogeneous processors

Publications (1)

Publication Number Publication Date
JP2000215183A true JP2000215183A (en) 2000-08-04

Family

ID=18303953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11336930A Pending JP2000215183A (en) 1999-01-01 1999-11-29 Memory port arbitrating method

Country Status (1)

Country Link
JP (1) JP2000215183A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195705A (en) * 2005-01-13 2006-07-27 Seiko Epson Corp Processor
JP2009528597A (en) * 2006-02-24 2009-08-06 クゥアルコム・インコーポレイテッド Coordinated writing on the bus address channel
US8108563B2 (en) 2006-02-24 2012-01-31 Qualcomm Incorporated Auxiliary writes over address channel

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195705A (en) * 2005-01-13 2006-07-27 Seiko Epson Corp Processor
JP4631442B2 (en) * 2005-01-13 2011-02-16 セイコーエプソン株式会社 Processor
JP2009528597A (en) * 2006-02-24 2009-08-06 クゥアルコム・インコーポレイテッド Coordinated writing on the bus address channel
US8108563B2 (en) 2006-02-24 2012-01-31 Qualcomm Incorporated Auxiliary writes over address channel
US8107492B2 (en) 2006-02-24 2012-01-31 Qualcomm Incorporated Cooperative writes over the address channel of a bus
US8521914B2 (en) 2006-02-24 2013-08-27 Qualcomm Incorporated Auxiliary writes over address channel
US8675679B2 (en) 2006-02-24 2014-03-18 Qualcomm Incorporated Cooperative writes over the address channel of a bus

Similar Documents

Publication Publication Date Title
JP3557617B2 (en) Microprocessor architecture capable of supporting multiple heterogeneous processors
US9652404B2 (en) Multicore, multibank, fully concurrent coherence controller
US5247648A (en) Maintaining data coherency between a central cache, an I/O cache and a memory
US5483640A (en) System for managing data flow among devices by storing data and structures needed by the devices and transferring configuration information from processor to the devices
US5263142A (en) Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
JP3871305B2 (en) Dynamic serialization of memory access in multiprocessor systems
US6996645B1 (en) Method and apparatus for spawning multiple requests from a single entry of a queue
JP2000215183A (en) Memory port arbitrating method
JP2000215185A (en) Processor system
JP2000215187A (en) Multiprocessor system
JP2000215186A (en) Multiprocessor system
JP2000215184A (en) Data transfer method
CA2036372C (en) An input/output cache for caching direct (virtual) memory access data