JPH03212755A - マルチプロセッサ・システムおよび割り込み方法 - Google Patents
マルチプロセッサ・システムおよび割り込み方法Info
- Publication number
- JPH03212755A JPH03212755A JP2298747A JP29874790A JPH03212755A JP H03212755 A JPH03212755 A JP H03212755A JP 2298747 A JP2298747 A JP 2298747A JP 29874790 A JP29874790 A JP 29874790A JP H03212755 A JPH03212755 A JP H03212755A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- command
- memory
- address
- halfword
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、−船釣にはマルチプロセッサ(MP)ノステ
ムにおけるプロセッサ間の通信システム及び通信方法に
関し、特に、前記MPンステムにおけるピア(Peer
s)により特定のプロセッサに対する割込みの実行シス
テム及び方法に関する。
ムにおけるプロセッサ間の通信システム及び通信方法に
関し、特に、前記MPンステムにおけるピア(Peer
s)により特定のプロセッサに対する割込みの実行シス
テム及び方法に関する。
従来の技術
近年、高性能のMPコンピュータシステムが開発されつ
つあり、該MPコンビュータノステムは、個別のプロセ
ッサにおいて同時に実行する事ができる演算を平行して
実行することにより処理能力を増加させるものである。
つあり、該MPコンビュータノステムは、個別のプロセ
ッサにおいて同時に実行する事ができる演算を平行して
実行することにより処理能力を増加させるものである。
このような高性能のMPコンピュータシステムは、多数
の中央プロセッサ(CPs)を有しており、該プロセッ
サは、独立してかつ平行に動作するが、データを交換す
べき場合には相互にあるいは主記憶装置(MS)と通信
するできる事を特徴としている。中央プロセッサ(CP
s)と主記憶装置(MS)とはデータを交換するために
接続された入力/出力(I 10)ポートを有している
。
の中央プロセッサ(CPs)を有しており、該プロセッ
サは、独立してかつ平行に動作するが、データを交換す
べき場合には相互にあるいは主記憶装置(MS)と通信
するできる事を特徴としている。中央プロセッサ(CP
s)と主記憶装置(MS)とはデータを交換するために
接続された入力/出力(I 10)ポートを有している
。
マルチプロセッサの従来例は、例えばツアーヒャ二世(
Zur cher、 Jr)による米国特許第3.52
8061号およびレーマン他(Lehman et a
l)による米国特許第3.528.062号に示されて
いる。ツアーヒャー二世の特許は、共用メモリへのアク
セスを調整し、プロセッサが排他的、即ち専用的な使用
に対してメモリ記憶位置をロックできるようにしたマル
チプロセッサシステムを開示している。レーマン他の特
許は、マルチプロセッサ共用メモリシステムを開示して
いる。該特許のメモリシステムは、各プロセッサにアク
セス可能の記憶手段を有し、種々の組合せのビットを用
いて共用メモリの内容状態を交信できるものである。
Zur cher、 Jr)による米国特許第3.52
8061号およびレーマン他(Lehman et a
l)による米国特許第3.528.062号に示されて
いる。ツアーヒャー二世の特許は、共用メモリへのアク
セスを調整し、プロセッサが排他的、即ち専用的な使用
に対してメモリ記憶位置をロックできるようにしたマル
チプロセッサシステムを開示している。レーマン他の特
許は、マルチプロセッサ共用メモリシステムを開示して
いる。該特許のメモリシステムは、各プロセッサにアク
セス可能の記憶手段を有し、種々の組合せのビットを用
いて共用メモリの内容状態を交信できるものである。
マルチプロセッサシステムにおけるプロセッサ間の交信
は、MS装置における共用メモリのアドレスを介して実
行される。各プロセッサは、該システムにおける他のプ
ロセッサにより書込みできる「割込アドレス」が割当て
られる。ピアにより特定のプロセッサに向けられたプロ
セッサ開割込みは、マルチプロセッサ構成において交信
および同期化を実行するための必要な手段と考えられる
。
は、MS装置における共用メモリのアドレスを介して実
行される。各プロセッサは、該システムにおける他のプ
ロセッサにより書込みできる「割込アドレス」が割当て
られる。ピアにより特定のプロセッサに向けられたプロ
セッサ開割込みは、マルチプロセッサ構成において交信
および同期化を実行するための必要な手段と考えられる
。
しかしながら、現在のMPシステムにおける割込み処理
に関しては数々の課題がある。特に、もしメモリアクセ
スが先着順サーヒスベースて許可されるとすれば、プロ
セッサは該プロセッサに対して割込みを実行した最後の
プロセッサのみを識別する。上記の課題は、たとえ割込
みが急速に引き続いてなされたとしても、割込みをされ
たプロセッサが該プロセッサに対して割込みを実行した
全てのプロセッサのインデックスを確実に読出識別でき
る方法を提供する事にある。
に関しては数々の課題がある。特に、もしメモリアクセ
スが先着順サーヒスベースて許可されるとすれば、プロ
セッサは該プロセッサに対して割込みを実行した最後の
プロセッサのみを識別する。上記の課題は、たとえ割込
みが急速に引き続いてなされたとしても、割込みをされ
たプロセッサが該プロセッサに対して割込みを実行した
全てのプロセッサのインデックスを確実に読出識別でき
る方法を提供する事にある。
発明が解決しようとする課題
本発明の目的は、プロセッサが該プロセッサに対して割
込みを実行したシステムの全てのピアを読出すことので
きるマルチプロセッサコンピュータ/ステムにおけるプ
ロセッサ間通信システム及び方法を提供する事である。
込みを実行したシステムの全てのピアを読出すことので
きるマルチプロセッサコンピュータ/ステムにおけるプ
ロセッサ間通信システム及び方法を提供する事である。
本発明の別の目的は、割込まれたプロセッサが、読込ま
なかった割込みをクリヤすることなく割込みを個々にク
リヤてきる、マルチプロセッサ通信システムを提供する
ことである。
なかった割込みをクリヤすることなく割込みを個々にク
リヤてきる、マルチプロセッサ通信システムを提供する
ことである。
本発明のさらに別の目的は、汎用メモリ基準(リファレ
ンス)を用いて前記の目的を達成することができるマル
チプロセッサ通信システムを提供する事である。
ンス)を用いて前記の目的を達成することができるマル
チプロセッサ通信システムを提供する事である。
課題を解決するための手段
上記課題を解決するため、本発明によれば、共用メモリ
記憶位置(即ち、全てのプロセッサにより読出し、書込
みが可能なメモリ記憶位置)を有し、読出−修正−書込
(RMW)メモリレファレンスのインターセプトを採用
した割込みを実行する技術が提供される。本明細書にお
いては、「読出−修正−書込」の用語は、指令により共
用メモリ記憶位置のデータ内容を読出し、該データの一
部を修正し、修正されたデータを同じ記憶位置に書込み
、読出しおよび書込み動作の間に該記憶位置へ他のいず
れのリファレンスも書込まれないようにすることを意味
している。
記憶位置(即ち、全てのプロセッサにより読出し、書込
みが可能なメモリ記憶位置)を有し、読出−修正−書込
(RMW)メモリレファレンスのインターセプトを採用
した割込みを実行する技術が提供される。本明細書にお
いては、「読出−修正−書込」の用語は、指令により共
用メモリ記憶位置のデータ内容を読出し、該データの一
部を修正し、修正されたデータを同じ記憶位置に書込み
、読出しおよび書込み動作の間に該記憶位置へ他のいず
れのリファレンスも書込まれないようにすることを意味
している。
プロセッサ間割込機構は、以下の単純なルールに従って
いる共用メモリ・マルチプロセッサシステムにおいて実
行される。
いる共用メモリ・マルチプロセッサシステムにおいて実
行される。
■ 各プロセッサは、共用メモリ内にプロセッサ間割込
の生成及び制御の使用に限定された専用のハーフワード
を有する。共用メモリの専用記憶位置におけるデータは
、テスト並びにセットハーフワード(T S H)指令
と称される指令を実行することにより該記憶位置を「捕
捉」する場合を除き、いずれのプロセッサによっても変
更されない。
の生成及び制御の使用に限定された専用のハーフワード
を有する。共用メモリの専用記憶位置におけるデータは
、テスト並びにセットハーフワード(T S H)指令
と称される指令を実行することにより該記憶位置を「捕
捉」する場合を除き、いずれのプロセッサによっても変
更されない。
2、記憶ハーフワ−1”(STH)指令と称される指令
を実行する場合以外は、捕捉された共用メモリ記憶位置
の解放はなされない。
を実行する場合以外は、捕捉された共用メモリ記憶位置
の解放はなされない。
3、アドレス比較器および零検出器が、各プロセッサの
メモリインタフェースの読出−修正−書込(RMW)ロ
ジックに付加動作用として追加される。
メモリインタフェースの読出−修正−書込(RMW)ロ
ジックに付加動作用として追加される。
4、RMWロジックを用いるいずれかの指令が実行され
、そのオペランドアドレスがアドレスコンピュータに含
まれたアドレスと一致する場合、メモリに書込まれる低
位データのいずれにおいても零が検出されないならば、
プロセッサ間割込要求が生成され、逆に、メモリに書込
まれる低位データのいずれかにおいて零が検出されるな
らば、プロセッサ間割込要求が解放される。
、そのオペランドアドレスがアドレスコンピュータに含
まれたアドレスと一致する場合、メモリに書込まれる低
位データのいずれにおいても零が検出されないならば、
プロセッサ間割込要求が生成され、逆に、メモリに書込
まれる低位データのいずれかにおいて零が検出されるな
らば、プロセッサ間割込要求が解放される。
寒践男
第1図には、本発明を適用する事ができる典型的な共用
メモリコンピュータが示されている。プロセッサ10o
−1o+、・・・・、10.は、双方向バス30を介し
て共用メモリ20へのアクセスを行う。−時には1個の
プロセッサのみがメモリにアクセスするバスを使用しう
る。アービタ回路40が複数同時アクセスを阻止する。
メモリコンピュータが示されている。プロセッサ10o
−1o+、・・・・、10.は、双方向バス30を介し
て共用メモリ20へのアクセスを行う。−時には1個の
プロセッサのみがメモリにアクセスするバスを使用しう
る。アービタ回路40が複数同時アクセスを阻止する。
バスを介してアクセスを要求するプロセッサは、アービ
タ回路に要求を送出し、それに基づきアービタ回路はた
だ一つのプロセッサがメモリへアクセスできるようにす
る。
タ回路に要求を送出し、それに基づきアービタ回路はた
だ一つのプロセッサがメモリへアクセスできるようにす
る。
他のプロセッサがバスを必要としていない場合、ハスを
必要とするプロセッサはメモリへの書込み、およびそこ
からの読出しを継続できる。他からの要求が到来した場
合は、アービタ回路は現在アクセス中のプロセッサのそ
れ以上のアクセスを拒否し、アクセスを別のプロセッサ
に許可するように作用する。
必要とするプロセッサはメモリへの書込み、およびそこ
からの読出しを継続できる。他からの要求が到来した場
合は、アービタ回路は現在アクセス中のプロセッサのそ
れ以上のアクセスを拒否し、アクセスを別のプロセッサ
に許可するように作用する。
プロセッサが連続して2回のメモリアクセス、即ちある
記憶位置からの読出し、続いて該同一位置への書込みを
行う事ができるようにされている事が重要である。その
時、他のプロセッサはその記憶位置からの読出し、ある
いは書込みができず、よって論理的不一致の結果は発生
しない。プロセッサはアービタ回路に、読出−修正−書
込と称せられるシーケンスを実行して、読出しと書込み
との動作量でバスの使用制御を喪失しない事を確実にす
るための信号を送出する。
記憶位置からの読出し、続いて該同一位置への書込みを
行う事ができるようにされている事が重要である。その
時、他のプロセッサはその記憶位置からの読出し、ある
いは書込みができず、よって論理的不一致の結果は発生
しない。プロセッサはアービタ回路に、読出−修正−書
込と称せられるシーケンスを実行して、読出しと書込み
との動作量でバスの使用制御を喪失しない事を確実にす
るための信号を送出する。
メモリアクセスはアービタ回路により低レベルで管理さ
れるが、プロセッサの動作を高レベルで調整する事が時
折必要となる。これを実行するために、プロセッサは割
込機構を介して相互に信号を出力する事ができる。この
ような割込みを受は取ったプロセッサは、進行中のプロ
グラムを停め、別のプロセッサにより送られたメツセー
ジを読み取る。
れるが、プロセッサの動作を高レベルで調整する事が時
折必要となる。これを実行するために、プロセッサは割
込機構を介して相互に信号を出力する事ができる。この
ような割込みを受は取ったプロセッサは、進行中のプロ
グラムを停め、別のプロセッサにより送られたメツセー
ジを読み取る。
各プロセッサが割込ラインを交互にプロセッサに直接接
続する場合は、ワイヤの数は管理不可能な程の数になっ
てしまい、例えば、n個のプロセッサの場合はn2−n
のワイヤを必要とする。本発明は、共用メモリの予め介
在するマルチプロセッサ機能、および読出−修正−書込
シーケンスを用いる事により余分な割込用配線の必要を
無くしたものである。
続する場合は、ワイヤの数は管理不可能な程の数になっ
てしまい、例えば、n個のプロセッサの場合はn2−n
のワイヤを必要とする。本発明は、共用メモリの予め介
在するマルチプロセッサ機能、および読出−修正−書込
シーケンスを用いる事により余分な割込用配線の必要を
無くしたものである。
要約すると、別のプロセッサに信号を送りたいプロセッ
サは、共用のメモリのアドレスに書込みを実行するよう
信号を送出する。各プロセッサは区画された「割込アド
レス」を有しており、例えばプロセッサ10゜がプロセ
ッサ10、に信号を送出したい場合は、そのインデック
ス、例えば識別番号■Doをプロセッサ10、の割込ア
ドレスへ書込む。各プロセッサは、該プロセッサ自身の
割込アドレスへのアクセスを検索するバスをモニタする
モニタ回路を有する。プロセッサ10.のモニタ回路が
、割込アドレスがアクセスされている事を検知すると、
割込みが実行される。それにより、プロセッサ10+は
割込みを行ったプロセッサの番号、この場合はIDoを
メモリから読出すことができる。プロセッサ10.は、
その割込みアドレスに零を書き込むことによりその割込
みをオフにする。
サは、共用のメモリのアドレスに書込みを実行するよう
信号を送出する。各プロセッサは区画された「割込アド
レス」を有しており、例えばプロセッサ10゜がプロセ
ッサ10、に信号を送出したい場合は、そのインデック
ス、例えば識別番号■Doをプロセッサ10、の割込ア
ドレスへ書込む。各プロセッサは、該プロセッサ自身の
割込アドレスへのアクセスを検索するバスをモニタする
モニタ回路を有する。プロセッサ10.のモニタ回路が
、割込アドレスがアクセスされている事を検知すると、
割込みが実行される。それにより、プロセッサ10+は
割込みを行ったプロセッサの番号、この場合はIDoを
メモリから読出すことができる。プロセッサ10.は、
その割込みアドレスに零を書き込むことによりその割込
みをオフにする。
しかしながら前記の説明だけでは不十分である。
数個のプロセッサ、例えば10o、102および103
がプロセッサ10.にほぼ同時に信号を出力したい場合
があり得る。各プロセッサは、プロセッサ10+の割込
アドレスへのアクセスを取得するにつれて、先に割込み
を行っていたプロセッサのインデックスに重ね書きする
。このような場合、プロセッサ10□が、各側込み後に
その割込アドレスを読取る事になるが、2つ以上の割込
みが発生する事になりうる。例えば、アービタ回路40
が先着順サービスシーケンスでメモリ記憶を許容すると
すれば、プロセッサ101は割込みを実行した最後のプ
ロセッサのインデックスのみを読出す事となる。
がプロセッサ10.にほぼ同時に信号を出力したい場合
があり得る。各プロセッサは、プロセッサ10+の割込
アドレスへのアクセスを取得するにつれて、先に割込み
を行っていたプロセッサのインデックスに重ね書きする
。このような場合、プロセッサ10□が、各側込み後に
その割込アドレスを読取る事になるが、2つ以上の割込
みが発生する事になりうる。例えば、アービタ回路40
が先着順サービスシーケンスでメモリ記憶を許容すると
すれば、プロセッサ101は割込みを実行した最後のプ
ロセッサのインデックスのみを読出す事となる。
各プロセッサがそのインデックスを追加することも不可
能となる。各プロセッサがメモリ20の内容を読出し、
該読出したものにインデックスを追加し、次いでその値
を再び書込むならば、プロセッサが再びお互いのインデ
ックスを書き重ねる危険がある。プロセッサ10G、1
0□及び103が全てプロセッサ10.に割込みを実行
する場合を考えると、まず、プロセッサ100はメモリ
中のアドレスから読出して、検索されたインデックスに
追加を行う。次いでアービタ回路40がアドレスからプ
ロセッサ10□を読取り、次いてプロセッサ103をア
ドレスから読取るようにさせる。
能となる。各プロセッサがメモリ20の内容を読出し、
該読出したものにインデックスを追加し、次いでその値
を再び書込むならば、プロセッサが再びお互いのインデ
ックスを書き重ねる危険がある。プロセッサ10G、1
0□及び103が全てプロセッサ10.に割込みを実行
する場合を考えると、まず、プロセッサ100はメモリ
中のアドレスから読出して、検索されたインデックスに
追加を行う。次いでアービタ回路40がアドレスからプ
ロセッサ10□を読取り、次いてプロセッサ103をア
ドレスから読取るようにさせる。
プロセッサの各々は、ベンディング割込を示していない
メモリ記憶位置を読取って各自のインデックスをそれに
追加し、次いて書込む。この場合、プロセッサ10.は
、最後の書込みを実行したプロセッサのインデックスの
みを読出すものである。
メモリ記憶位置を読取って各自のインデックスをそれに
追加し、次いて書込む。この場合、プロセッサ10.は
、最後の書込みを実行したプロセッサのインデックスの
みを読出すものである。
サービスが実行された後に割込みをクリアする問題が残
る。ここでも希望する結果が得られるとの保証はない。
る。ここでも希望する結果が得られるとの保証はない。
中間の実行遅れにより、別のプロセッサがメモリにアク
セスし、プロセッサ10□に関連する零が実際にメモリ
20に書き込まれる直前に、該別のプロセッサがプロセ
ッサ1o11ニー割込む場合がある。この場合、短い割
込みがあり、それが直ちに消去されてしまい、プロセッ
サ101はどのプロセッサが割込みをしたのか知ること
ができない。
セスし、プロセッサ10□に関連する零が実際にメモリ
20に書き込まれる直前に、該別のプロセッサがプロセ
ッサ1o11ニー割込む場合がある。この場合、短い割
込みがあり、それが直ちに消去されてしまい、プロセッ
サ101はどのプロセッサが割込みをしたのか知ること
ができない。
本発明は、割込みが急速に連続して行われたとしても、
割込みをかけられたプロセッサが割込みをかけた全ての
プロセッサのインデックスを読取ることができるように
したものである。本発明はさらに、割込まれたプロセッ
サが、読出してない割込みをクリアすることなく個々に
割込みをクリアできるようにしている。これは後述する
手段により、どのような数のプロセッサを用いた場合に
も可能である。また説明の都合上、実際のプロセッサか
らの指令を用いて説明するが、他の指令も使レジスタを
示している。これらは指令レジスタ(IR)70、デー
タ保持レジスタ71、汎用レジスタ72、およびプロセ
ッサlの割込基準アドレスレジスタ(PIRAi)73
を含む。図において、マルチプロセッサ構造における個
々のプロセッサが共用メモリセグメントに対して読出し
/書込みを行うこと、及びこれらのメモリレファレンス
(基準)がフルワード単位であるものと想定する。さら
に、各プロセッサの指令は、ハーフワード単位でデータ
を共用メモリに記憶する少なくとも2個の指令(後述す
る)を有するものと想定する。また、ハーフワードのメ
モリへの書込みは、プロセッサのメモリインタフェース
における「読出−修正−書込J (RMW)シーケン
スとして実行されるものと想定する。RMWシーケンス
を用いるメモリレファレンスを検索する事が、本発明が
提供する主要部分である。
割込みをかけられたプロセッサが割込みをかけた全ての
プロセッサのインデックスを読取ることができるように
したものである。本発明はさらに、割込まれたプロセッ
サが、読出してない割込みをクリアすることなく個々に
割込みをクリアできるようにしている。これは後述する
手段により、どのような数のプロセッサを用いた場合に
も可能である。また説明の都合上、実際のプロセッサか
らの指令を用いて説明するが、他の指令も使レジスタを
示している。これらは指令レジスタ(IR)70、デー
タ保持レジスタ71、汎用レジスタ72、およびプロセ
ッサlの割込基準アドレスレジスタ(PIRAi)73
を含む。図において、マルチプロセッサ構造における個
々のプロセッサが共用メモリセグメントに対して読出し
/書込みを行うこと、及びこれらのメモリレファレンス
(基準)がフルワード単位であるものと想定する。さら
に、各プロセッサの指令は、ハーフワード単位でデータ
を共用メモリに記憶する少なくとも2個の指令(後述す
る)を有するものと想定する。また、ハーフワードのメ
モリへの書込みは、プロセッサのメモリインタフェース
における「読出−修正−書込J (RMW)シーケン
スとして実行されるものと想定する。RMWシーケンス
を用いるメモリレファレンスを検索する事が、本発明が
提供する主要部分である。
プロセッサ開割込みを実行するために、ある−対のプロ
セッサ指令が用いられている。これらは「テスト/セッ
トハーフワードJ (TSH)と「記憶ハーフワード
J (STH)である。前述で要求されたように、こ
れらの指令の双方に基づき、読出−修正−書込シーケン
スによりデータをメモリに書込むようにする。STH指
令は、ソフトウェア指示のフルワードレジスタの低位半
分の内容が特定のメモリ記憶位置にコピイ(書込)され
る汎用データ記憶動作である。重要なことは、データが
ソフトウェア指示の汎用レジスタ72から共用メモリの
記憶位置にコピーされ、割込みをする事なく特定のメモ
リ記憶位置への専用アクセスを保持しながらデータの記
憶が完了される事である。
セッサ指令が用いられている。これらは「テスト/セッ
トハーフワードJ (TSH)と「記憶ハーフワード
J (STH)である。前述で要求されたように、こ
れらの指令の双方に基づき、読出−修正−書込シーケン
スによりデータをメモリに書込むようにする。STH指
令は、ソフトウェア指示のフルワードレジスタの低位半
分の内容が特定のメモリ記憶位置にコピイ(書込)され
る汎用データ記憶動作である。重要なことは、データが
ソフトウェア指示の汎用レジスタ72から共用メモリの
記憶位置にコピーされ、割込みをする事なく特定のメモ
リ記憶位置への専用アクセスを保持しながらデータの記
憶が完了される事である。
TSH指令において重要な事項は、指令により特定のメ
モリ記憶位置からある値をソフトウェア指示のフルワー
ドの汎用レジスタ72の低位半分ヘコピーし、かつ該コ
ピーされたデータを変えることな(そのまま汎用レジス
タに保持し、指令がデータビットのあるもの(但し全て
ではない)を公知の要領で修正し、該修正されたデータ
を上記のメモリ記憶位置へ書込む事である。TSH指令
は特定のメモリ記憶位置への専用のアクセスを保ちなが
ら、RMWシーケンスを完了させ、かつ割込みを生じる
事なく該シーケンスを完了させる必要がある。
モリ記憶位置からある値をソフトウェア指示のフルワー
ドの汎用レジスタ72の低位半分ヘコピーし、かつ該コ
ピーされたデータを変えることな(そのまま汎用レジス
タに保持し、指令がデータビットのあるもの(但し全て
ではない)を公知の要領で修正し、該修正されたデータ
を上記のメモリ記憶位置へ書込む事である。TSH指令
は特定のメモリ記憶位置への専用のアクセスを保ちなが
ら、RMWシーケンスを完了させ、かつ割込みを生じる
事なく該シーケンスを完了させる必要がある。
TSH指令フォーマットの一例は以下の通りで78
1216 31 TSHは以下の通り機能するものとする。
1216 31 TSHは以下の通り機能するものとする。
1.リアルメモリアドレスArは、R8に含まれるイン
デックスにより識別された汎用レジスタ72の内容に、
符号展開されたXフィールドの内容を加えたものとして
計算される。
デックスにより識別された汎用レジスタ72の内容に、
符号展開されたXフィールドの内容を加えたものとして
計算される。
2、アドレス指定可能なフルワードを形成するアドレス
指定されたハーフワードとその近傍のハーフワードとの
内容が、アドレス指定されたメモリ記憶位置から読出さ
れて保持レジスタ71に書込まれる。
指定されたハーフワードとその近傍のハーフワードとの
内容が、アドレス指定されたメモリ記憶位置から読出さ
れて保持レジスタ71に書込まれる。
3、アドレス指定されたハーフワードに含まれるデータ
は、RDに含まれるインデックスにより特定された汎用
レジスタ72の低位のハーフワードに書込まれる。
は、RDに含まれるインデックスにより特定された汎用
レジスタ72の低位のハーフワードに書込まれる。
4、汎用レジスタ72の高位ビットは零にセットされる
。
。
5、アドレス指定されたハーフワードの8個の高位ビッ
トが、保持レジスタ71中のビットのものに変更される
。
トが、保持レジスタ71中のビットのものに変更される
。
6 保持レジスタ71の内容が、アドレス指定されたメ
モリ記憶位置に再び書込まれる。
モリ記憶位置に再び書込まれる。
STH指令フォーマットの一例は、以下の通りである。
0 78 1216
31前記のSTH指令の例は、以下の通り機能する
。
31前記のSTH指令の例は、以下の通り機能する
。
1、リアルメモリアドレスArは、R8に含まれたイン
デックスにより指定された汎用レジスタ72の内容に、
符号展開されたXフィールドの内容を加えたものとして
計算される。
デックスにより指定された汎用レジスタ72の内容に、
符号展開されたXフィールドの内容を加えたものとして
計算される。
2、アドレス可能のフルワードを形成するアドレス指定
されたハーフワード及びその近傍のハーフワードの内容
が、メモリから読出されて保持レノスタフ1へ書込まれ
る。
されたハーフワード及びその近傍のハーフワードの内容
が、メモリから読出されて保持レノスタフ1へ書込まれ
る。
3、RDに含まれるインデックスにより特定された汎用
レジスタ72の低位のハーフワードの内容は、保持レジ
スタ71におけるアドレス指定されたハーフワードに書
込まれれる。
レジスタ72の低位のハーフワードの内容は、保持レジ
スタ71におけるアドレス指定されたハーフワードに書
込まれれる。
4、保持レジスタ71の内容が、アドレス指定されたメ
モリ記憶位置へ再び書込まれる。
モリ記憶位置へ再び書込まれる。
マルチプロセッサシステムの各プロセッサには、プロセ
ッサ間割込の生成並びに制御に用いられる特種ハーフワ
ードが共用メモリにおいて割り当てられる。共用メモリ
のそれぞれの記憶位置はrnJ個のプロセッサの各々に
より読出し/書込みを行うことができる。rnJ個のハ
ーフワード記憶位置は、IPINT(0)、IPINT
(1)、−−−−1IPINT(n−1)で示され、プ
ロセッサ0.1、・・・・、n−1にそれぞれ対応する
。IPINT(i)のメモリ記憶位置のアドレスは、プ
ロセッサiが初期化されてそれ以降不変のままの場合、
プロセッサiに対するプロセッサ割込基準アドレスレジ
スタ73 (PIRAi)に装荷(ロード)される。P
rRAiの内容は、各々のリアルメモリアドレスArと
比較され、プロセッサ開割込み状態が生じたか、あるい
はそれが解放されたかを決定する。
ッサ間割込の生成並びに制御に用いられる特種ハーフワ
ードが共用メモリにおいて割り当てられる。共用メモリ
のそれぞれの記憶位置はrnJ個のプロセッサの各々に
より読出し/書込みを行うことができる。rnJ個のハ
ーフワード記憶位置は、IPINT(0)、IPINT
(1)、−−−−1IPINT(n−1)で示され、プ
ロセッサ0.1、・・・・、n−1にそれぞれ対応する
。IPINT(i)のメモリ記憶位置のアドレスは、プ
ロセッサiが初期化されてそれ以降不変のままの場合、
プロセッサiに対するプロセッサ割込基準アドレスレジ
スタ73 (PIRAi)に装荷(ロード)される。P
rRAiの内容は、各々のリアルメモリアドレスArと
比較され、プロセッサ開割込み状態が生じたか、あるい
はそれが解放されたかを決定する。
このためのフローチャートが第3A図及び第3B図に示
されている。IPINT(i)の記憶位置が書込みを行
っているプロセッサにより「捕捉されて」いない場合は
、rPINT(i)の記憶位置に対してデータの書込み
は行われない。さらに、データをIPINT(i)の記
憶位置へ書込むために、2つの指令即ちTSH指令およ
びSTH指令のみが使用される。
されている。IPINT(i)の記憶位置が書込みを行
っているプロセッサにより「捕捉されて」いない場合は
、rPINT(i)の記憶位置に対してデータの書込み
は行われない。さらに、データをIPINT(i)の記
憶位置へ書込むために、2つの指令即ちTSH指令およ
びSTH指令のみが使用される。
第3A図と第3B図を参照すると、プロセスはまず機能
ブロック80において割込みを禁止状態とし、次いで機
能ブロック81において指令レジスタ70におけるop
コードをデコードすることにより開始される。次いでO
pコードがTSH指令であるかSTH指令であるか検出
するために判定ブロック82においてテストが行われる
。もしいずれの指令でもない場合は、プロセスは汎用デ
コード動作へと移行される。他方、もしopコートがT
SH指令あるいはSTH指令のいずれかである場合、機
能ブロック83においてリアルアドレスArは、R(R
S)と符号展開Xフィールドの内容との総和として計算
される。なお上記において、R(x)は指令されたXフ
ィールドにより特定されるレジスタを意味する。次いで
機能ブロック84において、リアルアドレスArのビッ
ト30及び31を零にセットすることにより、有効アド
レスAeが形成される。
ブロック80において割込みを禁止状態とし、次いで機
能ブロック81において指令レジスタ70におけるop
コードをデコードすることにより開始される。次いでO
pコードがTSH指令であるかSTH指令であるか検出
するために判定ブロック82においてテストが行われる
。もしいずれの指令でもない場合は、プロセスは汎用デ
コード動作へと移行される。他方、もしopコートがT
SH指令あるいはSTH指令のいずれかである場合、機
能ブロック83においてリアルアドレスArは、R(R
S)と符号展開Xフィールドの内容との総和として計算
される。なお上記において、R(x)は指令されたXフ
ィールドにより特定されるレジスタを意味する。次いで
機能ブロック84において、リアルアドレスArのビッ
ト30及び31を零にセットすることにより、有効アド
レスAeが形成される。
この時点において、プロセスはRMWシーケンスの「読
出」部分へ移行する。機能ブロック85において、有効
アドレスAeに対して「読出」のメモリアクセスの要求
がなされる。有効アドレスAeは、次の「書込」動作に
対してそのまま保持される。有効アドレスAeの内容は
、機能ブロック86において保持レジスタ71に書込ま
れる。
出」部分へ移行する。機能ブロック85において、有効
アドレスAeに対して「読出」のメモリアクセスの要求
がなされる。有効アドレスAeは、次の「書込」動作に
対してそのまま保持される。有効アドレスAeの内容は
、機能ブロック86において保持レジスタ71に書込ま
れる。
opコードがSTH指令に対するものであるかあるいは
TSH指令に対するものかを決定するため、判定ブロッ
ク87においてテストがなされる。前者である場合は、
リアルアドレスArのビット30が1であるか否か検出
するため、判定ブロック88において別のテストがなさ
れる。もしビット30が1であれば、R(RD)のバイ
ト2および3が機能ブロック89において保持レジスタ
71のバイト2および3に書込まれる。アドレスArの
ビット30が1でない場合は、R(RD)のバイト2及
び3が機能ブロック90において保持レジスタ71のバ
イト0と1とに書込まれる。これらの動作は、STH指
令の場合、RMWシーケンスの「修正」部分である。
TSH指令に対するものかを決定するため、判定ブロッ
ク87においてテストがなされる。前者である場合は、
リアルアドレスArのビット30が1であるか否か検出
するため、判定ブロック88において別のテストがなさ
れる。もしビット30が1であれば、R(RD)のバイ
ト2および3が機能ブロック89において保持レジスタ
71のバイト2および3に書込まれる。アドレスArの
ビット30が1でない場合は、R(RD)のバイト2及
び3が機能ブロック90において保持レジスタ71のバ
イト0と1とに書込まれる。これらの動作は、STH指
令の場合、RMWシーケンスの「修正」部分である。
判定ブロック87において、opコードがTSH指令用
であると判定されたものと想定する。この場合、R(R
D)のバイト0および1は機能ブロック91において零
にセットされる。リアルアドレスArのビット30が1
であるか否か検出するために、判定ブロック92におい
てテストがなされる。1である場合は、機能ブロック9
3において保持レジスタ71のバイト2と3がR(RD
)のバイト2および3に書込まれ、次いで機能ブロック
94において保持レジスタ71のバイト2が総て1にセ
ットされる。他方、リアルアドレスArのビット30が
零である場合は、機能ブロック95において保持レジス
タ71のバイト0と1がR(RD)のバイト2と3に書
込まれ、次いで機能ブロック96において保持レジスタ
のバイト0は総て1にセットされる。ブロック93.9
4.95および96は、TSH指令に対するRMWシー
ケンスの「修正」部分を構成する。
であると判定されたものと想定する。この場合、R(R
D)のバイト0および1は機能ブロック91において零
にセットされる。リアルアドレスArのビット30が1
であるか否か検出するために、判定ブロック92におい
てテストがなされる。1である場合は、機能ブロック9
3において保持レジスタ71のバイト2と3がR(RD
)のバイト2および3に書込まれ、次いで機能ブロック
94において保持レジスタ71のバイト2が総て1にセ
ットされる。他方、リアルアドレスArのビット30が
零である場合は、機能ブロック95において保持レジス
タ71のバイト0と1がR(RD)のバイト2と3に書
込まれ、次いで機能ブロック96において保持レジスタ
のバイト0は総て1にセットされる。ブロック93.9
4.95および96は、TSH指令に対するRMWシー
ケンスの「修正」部分を構成する。
機能ブロック89及び94から判定ブロック97へ移行
し、機能ブロック90及び96から判定ブロック98へ
移行する。これらの判定ブロック98及び98は零検出
ロジックを構成する。より詳しく説明すると、判定ブロ
ック97において、保持レジスタ71のバイト3が零で
あるか否か検出するためテストがなされ、判定ブロック
98において、保持レジスタ71のバイト1が零である
か否か検出するためテストがなされる。もしこれらのテ
ストのいずれかにおいて零が検出されて「真」であれば
、プロセスは判定ブロック99へ進み、そこでリアルア
ドレスArがPIRAi (プロセッサiに対するプロ
セッサ割込基準アドレス)と等しいか否か検出するため
テストがなされる。判定ブロック100において、判定
ブロック97及び98におけるテスト結果のいずれが「
偽」であるかを検出するため同じテストがなされる。判
定ブロック99と100とは、アドレス比較ロジックを
構成する。判定ブロック99におけるテストの結果が「
真」である場合は、プロセッサ間の割込が機能ブロック
101において解放される。判定ブロック100におけ
るテストが「真」である場合は、プロセッサ間割込が機
能ブロック102において生成される。
し、機能ブロック90及び96から判定ブロック98へ
移行する。これらの判定ブロック98及び98は零検出
ロジックを構成する。より詳しく説明すると、判定ブロ
ック97において、保持レジスタ71のバイト3が零で
あるか否か検出するためテストがなされ、判定ブロック
98において、保持レジスタ71のバイト1が零である
か否か検出するためテストがなされる。もしこれらのテ
ストのいずれかにおいて零が検出されて「真」であれば
、プロセスは判定ブロック99へ進み、そこでリアルア
ドレスArがPIRAi (プロセッサiに対するプロ
セッサ割込基準アドレス)と等しいか否か検出するため
テストがなされる。判定ブロック100において、判定
ブロック97及び98におけるテスト結果のいずれが「
偽」であるかを検出するため同じテストがなされる。判
定ブロック99と100とは、アドレス比較ロジックを
構成する。判定ブロック99におけるテストの結果が「
真」である場合は、プロセッサ間の割込が機能ブロック
101において解放される。判定ブロック100におけ
るテストが「真」である場合は、プロセッサ間割込が機
能ブロック102において生成される。
判定ブロック99および100のいずれかが「偽」の判
定を生じた場合、あるいは機能ブロック101および1
02のいずれかが「偽」の判定を生じた場合は、機能ブ
ロック103に進み、ここで保持レジスタ71の内容が
有効アドレスAeへ書込まれ、メモリ保持が解放される
。次いで、サイクルが終了する前の機能ブロック104
において、割込みが許可される。機能ブロック103と
104は、RMWシーケンスの「書込」部分を構成して
いる。
定を生じた場合、あるいは機能ブロック101および1
02のいずれかが「偽」の判定を生じた場合は、機能ブ
ロック103に進み、ここで保持レジスタ71の内容が
有効アドレスAeへ書込まれ、メモリ保持が解放される
。次いで、サイクルが終了する前の機能ブロック104
において、割込みが許可される。機能ブロック103と
104は、RMWシーケンスの「書込」部分を構成して
いる。
各メモリ記憶位置IPINT(i )の第1のバイト(
ビット0から7まで)は「ガードバイト」と称され、該
記憶位置の制御を行うために使用される。メモリ記憶位
置IPINT(i )の制御は、該記憶位置をアドレス
指定するTSH指令を実行することにより捕捉される。
ビット0から7まで)は「ガードバイト」と称され、該
記憶位置の制御を行うために使用される。メモリ記憶位
置IPINT(i )の制御は、該記憶位置をアドレス
指定するTSH指令を実行することにより捕捉される。
TSH指令により装荷(ロード)されたソフトウェア指
示のレジスタの第3のバイトが零を含む場合は(第3の
バイトはガードタイプを含む)、捕捉が実行される。T
SH指令は常にガードバイトを総て1にセットするので
、その後同じメモリ記憶位置を捕捉しようとする他のプ
ロセッサは、1にセットされたガードバイトを有するハ
ーフワードを読取り、捕捉が成功しなかった事を知る事
ができる。TSH指令は、割込不能の一ケンスにおいて
特定のメモリ記憶位置に対して読出、修正、書込を実行
するので、共用メモリ記憶位置の制御捕捉は確実となる
。
示のレジスタの第3のバイトが零を含む場合は(第3の
バイトはガードタイプを含む)、捕捉が実行される。T
SH指令は常にガードバイトを総て1にセットするので
、その後同じメモリ記憶位置を捕捉しようとする他のプ
ロセッサは、1にセットされたガードバイトを有するハ
ーフワードを読取り、捕捉が成功しなかった事を知る事
ができる。TSH指令は、割込不能の一ケンスにおいて
特定のメモリ記憶位置に対して読出、修正、書込を実行
するので、共用メモリ記憶位置の制御捕捉は確実となる
。
メモリ記憶位置IPINT(i )は、該記憶位置のガ
ードハイドへ零を書込むSTH指令を実行する事により
捕捉から解放される。TSH指令により装荷された同一
レジスタが、そのレジスタにおけるカードハイドが修正
されなければ全て零を含むので、次のSTH指令のため
のデータ源として使用できる。
ードハイドへ零を書込むSTH指令を実行する事により
捕捉から解放される。TSH指令により装荷された同一
レジスタが、そのレジスタにおけるカードハイドが修正
されなければ全て零を含むので、次のSTH指令のため
のデータ源として使用できる。
記憶位置IPINT(i)の低位のバイトにおけるビッ
トは、プロセッサ間割込要求を生成させるために使用さ
れる。ビット8から15までがプロセッサ0から7まで
に対応しているならば、いずれかのプロセッサjが記憶
位置IPINT(i)のrj+8Jのビットを1とする
事により、プロセッサiに対するプロセッサ間割込要求
を開始できる。
トは、プロセッサ間割込要求を生成させるために使用さ
れる。ビット8から15までがプロセッサ0から7まで
に対応しているならば、いずれかのプロセッサjが記憶
位置IPINT(i)のrj+8Jのビットを1とする
事により、プロセッサiに対するプロセッサ間割込要求
を開始できる。
RMWロジックを用いる指令を採用する理由について以
下に説明する。アドレス比較器と零検出器とがRMWロ
ジックに隣接して配置されると、確実な割込要求を生成
させることができる。RMWレファレンスをプロセッサ
と関連した特定の記憶位置に対して分離するために、ア
ドレス比較器が用いられる。零検出器は、プロセッサへ
のプロセッサ間割込要求を生成し、かつそれを解放する
ために使用される。記憶位置TPINT(i)に書込ま
れるデータビット8から15までが1である場合は、プ
ロセッサ1に対するプロセッサ間割込要求が生成される
。記憶位置IPINT(i)に書込まれる該データビッ
トが零であるとすれば、プロセ、ソサ1に対する割込要
求が解放される。前記の動作態様の一例を以下に示す。
下に説明する。アドレス比較器と零検出器とがRMWロ
ジックに隣接して配置されると、確実な割込要求を生成
させることができる。RMWレファレンスをプロセッサ
と関連した特定の記憶位置に対して分離するために、ア
ドレス比較器が用いられる。零検出器は、プロセッサへ
のプロセッサ間割込要求を生成し、かつそれを解放する
ために使用される。記憶位置TPINT(i)に書込ま
れるデータビット8から15までが1である場合は、プ
ロセッサ1に対するプロセッサ間割込要求が生成される
。記憶位置IPINT(i)に書込まれる該データビッ
トが零であるとすれば、プロセ、ソサ1に対する割込要
求が解放される。前記の動作態様の一例を以下に示す。
プロセッサ間割込シーケンスの種々局面を、第1図を参
照して以下の例において示す。共用メモリのプロセッサ
間割込記憶位置をIPINT(i) (i =0、・・
・・、7)とする。記憶位置IPINT(i)が0に初
期設定される。プロセッサ2がプロセッサ3に対するプ
ロセッサ間割込を生成したい場合、プロセッサ2はメモ
リ記憶位置IPINT(3)を規定するTSH指令を実
行する。IPINT(3)のガードバイトが初期的には
0であるので、そのTSH指令により装荷されたプロセ
ッサ2におけるレジスタは、プロセッサ2が記憶位置I
PINT(3)を捕捉したことを規定する を記憶し、また記憶位置IPINT(3)はTSH指令
の実行が完了した後に を記憶する。これと同時に、プロセッサ4は記憶位置I
PINT(3)を捕捉して、プロセッサ3のためのプロ
セッサ間割込を生成する。TSH指令により装荷された
プロセッサ4内のレジスタは、記憶位置IPINT(3
)が捕捉されなかったことを規定するを記憶し、また記
憶位置IPINT(3)はTSH指令の実行が完了した
後は不変のまま保持される。プロセッサ4は捕捉に対す
るガードバイト(全て零)をテストし、それが零でない
事を検出すると記憶位置IPINT(3)を捕捉できる
ようになるまで、繰り返しTSH指令を再実行する必要
がある。
照して以下の例において示す。共用メモリのプロセッサ
間割込記憶位置をIPINT(i) (i =0、・・
・・、7)とする。記憶位置IPINT(i)が0に初
期設定される。プロセッサ2がプロセッサ3に対するプ
ロセッサ間割込を生成したい場合、プロセッサ2はメモ
リ記憶位置IPINT(3)を規定するTSH指令を実
行する。IPINT(3)のガードバイトが初期的には
0であるので、そのTSH指令により装荷されたプロセ
ッサ2におけるレジスタは、プロセッサ2が記憶位置I
PINT(3)を捕捉したことを規定する を記憶し、また記憶位置IPINT(3)はTSH指令
の実行が完了した後に を記憶する。これと同時に、プロセッサ4は記憶位置I
PINT(3)を捕捉して、プロセッサ3のためのプロ
セッサ間割込を生成する。TSH指令により装荷された
プロセッサ4内のレジスタは、記憶位置IPINT(3
)が捕捉されなかったことを規定するを記憶し、また記
憶位置IPINT(3)はTSH指令の実行が完了した
後は不変のまま保持される。プロセッサ4は捕捉に対す
るガードバイト(全て零)をテストし、それが零でない
事を検出すると記憶位置IPINT(3)を捕捉できる
ようになるまで、繰り返しTSH指令を再実行する必要
がある。
記憶位置IPINT(3)を捕捉したプロセッサ2は、
TSH指令により装荷されたレジスタにおけるそのビッ
ト記憶位置へ1を論理的ORすることによりプロセッサ
間割込要求を初期化する。それにより、プロセッサ2に
おけるレジスタは、を記憶する事になる。次いでレジス
タの内容が、STH指令を用いてプロセッサ2により記
憶位置IPINT(3)へ書込まれる。これは、記憶位
置IPINT(3)におけるガードバイトをリセットす
る。記憶位置IPINT(3)の低位バイトに書込まれ
たビットが(零検出ロジック内で検出されると)零でな
いので、プロセッサ3に対するプロセッサ割込要求が生
成される。ガードされた記憶位置IPINT(3)に対
してTSH指令を実行しているループにあったプロセッ
サ4が、未カードの記憶位置IPINT(3)を捕捉し
、同様に、それ自身のプロセッサ間割込要求をプロセッ
サ3に対して生成する。プロセッサ4によるTSH指令
の実行は、プロセッサ3に対する割込要求を冗長的に生
成させ、一方記憶位置IPINT(3)を基準にしたプ
ロセッサ4によるTSH指令の初期実行が、プロセッサ
3に対する割込要求を冗長的に解放ずみである事に注目
すべきである。
TSH指令により装荷されたレジスタにおけるそのビッ
ト記憶位置へ1を論理的ORすることによりプロセッサ
間割込要求を初期化する。それにより、プロセッサ2に
おけるレジスタは、を記憶する事になる。次いでレジス
タの内容が、STH指令を用いてプロセッサ2により記
憶位置IPINT(3)へ書込まれる。これは、記憶位
置IPINT(3)におけるガードバイトをリセットす
る。記憶位置IPINT(3)の低位バイトに書込まれ
たビットが(零検出ロジック内で検出されると)零でな
いので、プロセッサ3に対するプロセッサ割込要求が生
成される。ガードされた記憶位置IPINT(3)に対
してTSH指令を実行しているループにあったプロセッ
サ4が、未カードの記憶位置IPINT(3)を捕捉し
、同様に、それ自身のプロセッサ間割込要求をプロセッ
サ3に対して生成する。プロセッサ4によるTSH指令
の実行は、プロセッサ3に対する割込要求を冗長的に生
成させ、一方記憶位置IPINT(3)を基準にしたプ
ロセッサ4によるTSH指令の初期実行が、プロセッサ
3に対する割込要求を冗長的に解放ずみである事に注目
すべきである。
やがて、プロセッサ間割込要求がプロセッサ3によって
受理される。それが受理されると、プロセッサ3に対す
る別のプロセッサ間割込要求がマスクされ、もし要求が
発生された場合は、解放されるかあるいはマスクされず
に受理されるまでベンディングのままとされる。プロセ
ッサ3における割込ハンドラはそれ自身が記憶位置IP
INT(3)を捕捉し、いずれのプロセッサが割込みを
行ったかを検出する必要がある。この例のように(プロ
セッサ4がそれを捕捉しているので)、ガードバイトセ
ットを検出した場合は、記憶位置IPTNT(3)を捕
捉するまでそのTSH指令を繰返し再実行する必要があ
る。プロセッサ4がプロセッサ間割込要求を初期化し、
STH指令を実行した後は、記憶位置IPINT(3)
は の状態となり、プロセッサ3に対するプロセッサ間割込
要求は再び冗長的に生成される。プロセッサ3における
TSH指令の次回の実行は、記憶位置IPINT(3)
を捕捉し、プロセッサ3の指定されたレジスタに を装荷し、かつ記憶位置IPINT(3)へを記憶する
。プロセッサ間割込要求は、プロセッサ3に対して冗長
的に生成される。
受理される。それが受理されると、プロセッサ3に対す
る別のプロセッサ間割込要求がマスクされ、もし要求が
発生された場合は、解放されるかあるいはマスクされず
に受理されるまでベンディングのままとされる。プロセ
ッサ3における割込ハンドラはそれ自身が記憶位置IP
INT(3)を捕捉し、いずれのプロセッサが割込みを
行ったかを検出する必要がある。この例のように(プロ
セッサ4がそれを捕捉しているので)、ガードバイトセ
ットを検出した場合は、記憶位置IPTNT(3)を捕
捉するまでそのTSH指令を繰返し再実行する必要があ
る。プロセッサ4がプロセッサ間割込要求を初期化し、
STH指令を実行した後は、記憶位置IPINT(3)
は の状態となり、プロセッサ3に対するプロセッサ間割込
要求は再び冗長的に生成される。プロセッサ3における
TSH指令の次回の実行は、記憶位置IPINT(3)
を捕捉し、プロセッサ3の指定されたレジスタに を装荷し、かつ記憶位置IPINT(3)へを記憶する
。プロセッサ間割込要求は、プロセッサ3に対して冗長
的に生成される。
プロセッサ3は、全ての割込要求(この例では、プロセ
ッサ2および4からのもの)を読取り、かつ保存し、S
TH指令を用いてハーフワード0を記憶位置rPINT
(3)に記憶する。RMWロジックシーケンスにおける
零検出器は、記憶位置IPINT(3)に書込まれつつ
ある全ての低位ビットが零であり、かつプロセッサ3に
対するプロセッサ間割込要求をクリヤする。
ッサ2および4からのもの)を読取り、かつ保存し、S
TH指令を用いてハーフワード0を記憶位置rPINT
(3)に記憶する。RMWロジックシーケンスにおける
零検出器は、記憶位置IPINT(3)に書込まれつつ
ある全ての低位ビットが零であり、かつプロセッサ3に
対するプロセッサ間割込要求をクリヤする。
プロセッサ3が全ての割込要求を終了すると、(他のプ
ロセッサ間割込要求を発生させることができ)予め空に
された指令シーケンスに戻る前に記憶位置IPTXT(
3)を再捕捉する事ができる。もし低位ビットが1にセ
ットされている事が検知されると、割込みハンドラは、
それ自体内で再循環して待機割込要求を処理し、予め空
とされた指令シーケンスに戻ろうとする場合にも直ちに
割込まれる。再循環するために、割込処理(ハンドラ)
はプロセッサ3に対して2つの状態変化を回避する事が
できる。しかしながら、ある状況下においては割込ハン
ドラをそれ自体の内部で再循環させることは好ましくな
い場合がある。例えば、プロセッサ間割込が割込みにお
いて最優先順位でない場合は、割込ハンドラは、割込み
を可能となるようにしかつ予め「空」にされた指令シー
ケンスまで戻る事により、プロセッサの制御を行う必要
がある。
ロセッサ間割込要求を発生させることができ)予め空に
された指令シーケンスに戻る前に記憶位置IPTXT(
3)を再捕捉する事ができる。もし低位ビットが1にセ
ットされている事が検知されると、割込みハンドラは、
それ自体内で再循環して待機割込要求を処理し、予め空
とされた指令シーケンスに戻ろうとする場合にも直ちに
割込まれる。再循環するために、割込処理(ハンドラ)
はプロセッサ3に対して2つの状態変化を回避する事が
できる。しかしながら、ある状況下においては割込ハン
ドラをそれ自体の内部で再循環させることは好ましくな
い場合がある。例えば、プロセッサ間割込が割込みにお
いて最優先順位でない場合は、割込ハンドラは、割込み
を可能となるようにしかつ予め「空」にされた指令シー
ケンスまで戻る事により、プロセッサの制御を行う必要
がある。
記憶位置IPINT(i)がいずれかのプロセッサによ
り捕捉されると、その他のあるプロセッサあるいはその
他の全てのプロセッサが、ガードされたメモリ記憶位置
の解放を待機している短い指令ループ内に保持されるよ
うにすることができる。従って、捕捉されたメモリ記憶
位置におけるデータを処理する指令シーケンスをできる
だけ短くすることが重要である。
り捕捉されると、その他のあるプロセッサあるいはその
他の全てのプロセッサが、ガードされたメモリ記憶位置
の解放を待機している短い指令ループ内に保持されるよ
うにすることができる。従って、捕捉されたメモリ記憶
位置におけるデータを処理する指令シーケンスをできる
だけ短くすることが重要である。
要約すれば、本発明によるプロセッサ間割込システムは
、以下の単純なルールに従う共用メモリマルチプロセッ
サにおいて実行される。
、以下の単純なルールに従う共用メモリマルチプロセッ
サにおいて実行される。
1、各プロセッサは、そのプロセッサ間割込の生成と制
御のみの使用に限定された共用メモリに専用のハーフワ
ードを有している。TSH指令を実行することにより記
憶位置を「捕捉」していない場合は、共用メモリのいず
れかの専用記憶位置におけるデータは、プロセッサによ
って何ら変更される事がない。
御のみの使用に限定された共用メモリに専用のハーフワ
ードを有している。TSH指令を実行することにより記
憶位置を「捕捉」していない場合は、共用メモリのいず
れかの専用記憶位置におけるデータは、プロセッサによ
って何ら変更される事がない。
2、共用メモリの捕捉された記憶位置は、STH指令を
実行しなければ解放される事がない。
実行しなければ解放される事がない。
3、各プロセッサのメモリインタフェースの読出−修正
−書込ロシックに対する付随的な動作用として、アドレ
ス比較器と零検出器とが追加される。
−書込ロシックに対する付随的な動作用として、アドレ
ス比較器と零検出器とが追加される。
4、いずれかの指令が実行され、そのオペランドアドレ
スがアドレス比較器に含まれたものと適合した場合、メ
モリに書込まれつつある全ての低位のデータにおいて0
が検出されないならば(即ち、少なくとも1つの1を検
出)、プロセッサ間割込要求が生成される。逆に、メモ
リに書込まれつつある全ての低位データにおいて0が検
出されると、プロセッサ間割込要求が解放される。
スがアドレス比較器に含まれたものと適合した場合、メ
モリに書込まれつつある全ての低位のデータにおいて0
が検出されないならば(即ち、少なくとも1つの1を検
出)、プロセッサ間割込要求が生成される。逆に、メモ
リに書込まれつつある全ての低位データにおいて0が検
出されると、プロセッサ間割込要求が解放される。
−群のプロセッサ中の1つにより要求がなされたことを
示すインジケータとして記憶位置IPINT(i)の各
ビットを用いることにより、プロセッサ間割込機構を任
意数のプロセッサに対して拡大できる。従って、プロセ
ッサの数は上記の実施例で示した8個に限定されるもの
ではない。また、STH指令およびTSH指令の正確な
フオームやフォーマットは重要ではなく、読出−修正−
書込メモリアクセスを用いる機能及び実行が特に重要で
ある。
示すインジケータとして記憶位置IPINT(i)の各
ビットを用いることにより、プロセッサ間割込機構を任
意数のプロセッサに対して拡大できる。従って、プロセ
ッサの数は上記の実施例で示した8個に限定されるもの
ではない。また、STH指令およびTSH指令の正確な
フオームやフォーマットは重要ではなく、読出−修正−
書込メモリアクセスを用いる機能及び実行が特に重要で
ある。
第1図は本発明が適用されるマルチプロセッサのマツプ
を示す説明図、および 第3A図及び第3B図は、本発明によるプロセッサ間割
込を備えたSTH指令およびTSH指令のエクスカーン
ヨンシーケンスのフローチャートである。 101〜10ゎ−1・・・ プロセッサ20
・・・ 共用メモリ 30 ・・・ バス 40 ・・・ アビータ回路(外1名) 手 続 補 正 書(方式) 1、事件の表示 2゜ 平成2年特許願第298747号 発明の名称 3゜ プロセッサ間割込システム 補正をする者 事件との関係 住所
を示す説明図、および 第3A図及び第3B図は、本発明によるプロセッサ間割
込を備えたSTH指令およびTSH指令のエクスカーン
ヨンシーケンスのフローチャートである。 101〜10ゎ−1・・・ プロセッサ20
・・・ 共用メモリ 30 ・・・ バス 40 ・・・ アビータ回路(外1名) 手 続 補 正 書(方式) 1、事件の表示 2゜ 平成2年特許願第298747号 発明の名称 3゜ プロセッサ間割込システム 補正をする者 事件との関係 住所
Claims (1)
- 【特許請求の範囲】 1、共用メモリマルチプロセッサシステムにおいて実行
されるプロセッサ間割込システムにおいて、 前記マルチプロセッサシステムの各プロセッサ用として
共用メモリに設けられたそれぞれの専用アドレススペー
スであって、使用がプロセッサ間割込の生成と制御とに
限定された専用アドレススペース、 指令オペランドアドレスを前記プロセッサ用の専用アド
レススペースに対応するアドレスと比較するために、各
プロセッサに設けられたアドレス比較手段、 メモリに書込まれるデータのある一部分の零を検出する
ために各プロセッサに設けられた零検出手段、 第1の指令に応答して共用メモリの専用記憶位置を捕捉
しているプロセッサにより、該専用記憶位置を変更し、
かつ第2の指令に応答して捕捉された共用メモリの記憶
位置を解放するための指令実行手段、及び 前記比較手段に応答し、いずれかの指令が実行されかつ
そのオペランドアドレスが前記比較手段に含まれたアド
レスと適合する場合、零検出手段がメモリに書込まれる
データの上記部分において零を検出しなければプロセッ
サ間割込要求を生成し、逆にメモリに書込まれるデータ
の上記部分において零が検出されるならば、プロセッサ
間割込要求を除去する手段 を含む事を特徴とするプロセッサ間割込システム。 2、請求項1記載のシステムにおいて、前記専用アドレ
ススペースがハーフワードであり、前記第1の指令がテ
スト及びセットハーフワード指令であり、前記第2の指
令が記憶ハーフワード指令である事を特徴とするプロセ
ッサ間割込システム。 3、共用メモリマルチプロセッサシステムにおいて実行
されるプロセッサ間割込処理方法において、 プロセッサ間割込の生成と制御とに使用を制限された共
用メモリ内に、前記マルチプロセッサシステムの各プロ
セッサ用の専用アドレススペースを提供し、 指令オペランドアドレスをプロセッサの専用アドレスス
ペースに対応するアドレスと比較し、メモリに書込まれ
るデータの一部分における零を検出し、 第1の指令に応答して、記憶位置を捕捉したプロセッサ
により共用メモリの専用記憶領域を変更し、 第2の指令に応答して、捕捉された共用メモリの記憶領
域を解放し、 いずれかの指令が実行されかつそのオペランドアドレス
が前記専用アドレススペースと適合する場合、メモリに
書込まれるデータのある部分において零が検出されなけ
ればプロセッサ間割込要求を生成し、逆にメモリに書込
まれるデータの上記部分において零が検出されるとプロ
セッサ間割込要求を解放する ステップを含む事を特徴とするプロセッサ間割込処理方
法。 4、請求項3記載の方法において、前記専用スペースが
ハーフワードであり、前記第1の指令がテストおよびセ
ットハーフワード指令であり、前記第2の指令がハーフ
ワード記憶指令である事を特徴とするプロセッサ間割込
処理方法。 5、共用メモリシステムを含みかつ該共用メモリシステ
ムにアクセスする上で読出−修正−書込シーケンスを支
持するマルチプロセッサシステムにおけるプロセッサ間
通信方法であって、前記マルチプロセッサシステムの各
々のプロセッサが指令を一時的に記憶する指令レジスタ
と、 データを一時的に記憶するデータ保持レジスタと、 プロセッサ割込基準レジスタと、 一時的にデータを記憶する1個以上の汎用レジスタと を含んでいるマルチプロセッサシステムにおけるプロセ
ッサ間通信方法において、 プロセッサ間割込の生成と制御とに使用が制限されてい
る前記共用メモリシステム内に各プロセッサ用に専用ス
ペースを提供し、各プロセッサにおける前記プロセッサ
割込基準レジスタが該プロセッサの専用スペースのアド
レスを記憶し、 前記読出−修正−書込シーケンスを用い、ある1つのプ
ロセッサにより読出メモリアクセスが要求され、かつ次
の書込動作のために保持して共用メモリにおける別のプ
ロセッサの専用スペースを捕捉し、 前記要求を行ったプロセッサにより、データ保持レジス
タへ前記専用スペースの内容を読出し、 前記指令レジスタの指令が第1の指令か第2の指令かを
検出し、 前記指令のオペランドアドレスを前記プロセッサの割込
基準レジスタと比較し、 汎用レジスタから前記保持レジスタへデータを書込み、 前記保持レジスタにおける前記の書込まれたデータが零
であるかをテストし、 指令が実行されかつそのオペランドアドレスが前記プロ
セッサの割込基準アドレスレジスタにおける前記アドレ
スと適合し、更にテストステップが「偽」出力を発生し
た場合、プロセス間割込要求を生成し、 指令が実行されかつそのオペランドアドレスが前記プロ
セッサの割込基準アドレスレジスタにおける前記アドレ
スと適合し、更にテストステップが「真」出力を発生し
た場合、プロセッサ間割込要求を除去し、 前記保持レジスタの内容を前記専用メモリスペースに書
込み、かつメモリ保持を解放するステップを含む事を特
徴とするプロセッサ間通信方法。 6、請求項5記載の方法において、メモリ基準がフルワ
ードの単位であり、前記第1の指令がテストおよびセッ
トハーフワード指令であり、前記第2の指令が記憶ハー
フワード指令であり、前記テストおよびセットハーフワ
ード指令が以下のフォーマットを有し、 ▲数式、化学式、表等があります▼ 前記セットハーフワード指令が以下のフォーマットを有
する ▲数式、化学式、表等があります▼ 事を特徴とするプロセッサ間通信方法。 7、請求項6記載の方法において、指令がテストおよび
セットハーフワード指令である場合、前記方法はさらに
、 RSに含まれるインデックスにより特定される汎用レジ
スタの内容と符号指示Iフィールドの内容との和として
リアルメモリアドレスを計算し、 アドレス指定されたハーフワード及びアドレス指定可能
なフルワードを形成する近傍の内容を、アドレス指定さ
れたメモリ記憶領域から上記保持レジスタに読込み、 アドレス指定されたハーフワードに含まれるデータを、
RDに含まれるインデックスにより特定される汎用レジ
スタの低位のハーフワードへ書込み、 データが読出されるビットである汎用レジスタの高位ビ
ットを零にセットし、 前記保持レジスタにおいて、アドレス指定されたハーフ
ワードの高位ビットを1に変更し、保持レジスタの内容
をアドレス指定されたメモリ記憶位置へ書込む ステップをさらに含む事を特徴とするプロセッサ間通信
方法。 8、請求項6記載の方法において、指令が記憶ハーフワ
ード指令である場合、前記方法はさらに、 RSに含まれたインデックスによって特定された汎用レ
ジスタの内容と符号指定Iフィールドの内容との和とし
てリアルメモリアドレスを計算し、 アドレス指定されたハーフワードの内容とアドレス指定
可能なフルワードを形成する近傍の内容を、アドレス指
定されたメモリ記憶位置から前記保持レジスタに読込み
、 RDに含まれるインデックスにより特定される汎用レジ
スタの低位のハーフワードの内容を、前記保持レジスタ
に書込み、 前記保持レジスタの内容をアドレス指定されたメモリ記
憶位置に書込む ステップをさらに含む事を特徴とするプロセッサ間通信
方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/445,202 US5136714A (en) | 1989-12-04 | 1989-12-04 | Method and apparatus for implementing inter-processor interrupts using shared memory storage in a multi-processor computer system |
| US445202 | 1989-12-04 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03212755A true JPH03212755A (ja) | 1991-09-18 |
Family
ID=23767977
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2298747A Pending JPH03212755A (ja) | 1989-12-04 | 1990-11-02 | マルチプロセッサ・システムおよび割り込み方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5136714A (ja) |
| EP (1) | EP0431326A3 (ja) |
| JP (1) | JPH03212755A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007500898A (ja) * | 2003-07-31 | 2007-01-18 | インテル・コーポレーション | プロセッサ間割り込み |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
| JP2665813B2 (ja) * | 1990-02-23 | 1997-10-22 | 三菱電機株式会社 | 記憶制御装置 |
| US5274826A (en) * | 1991-08-30 | 1993-12-28 | Intel Corporation | Transparent system interrupts with automated input/output trap restart |
| GB2266606B (en) * | 1992-04-27 | 1996-02-14 | Intel Corp | A microprocessor with an external command mode |
| US5423008A (en) * | 1992-08-03 | 1995-06-06 | Silicon Graphics, Inc. | Apparatus and method for detecting the activities of a plurality of processors on a shared bus |
| DE69316559T2 (de) * | 1992-12-03 | 1998-09-10 | Advanced Micro Devices Inc | Servoregelkreissteuerung |
| EP0640929A3 (en) * | 1993-08-30 | 1995-11-29 | Advanced Micro Devices Inc | Interprocessor communication via a post MEV. |
| US5636374A (en) * | 1994-01-04 | 1997-06-03 | Intel Corporation | Method and apparatus for performing operations based upon the addresses of microinstructions |
| WO1996030831A1 (en) * | 1995-03-31 | 1996-10-03 | Intel Corporation | Memory testing in a multiple processor computer system |
| US6314501B1 (en) | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
| US6738846B1 (en) * | 1999-02-23 | 2004-05-18 | Sun Microsystems, Inc. | Cooperative processing of tasks in a multi-threaded computing system |
| US6760743B1 (en) * | 2000-01-04 | 2004-07-06 | International Business Machines Corporation | Instruction memory system for multi-processor environment and disjoint tasks |
| US6931643B2 (en) * | 2000-04-03 | 2005-08-16 | Texas Instruments Incorporated | Interrupt throttling for inter-processor communications |
| US8214574B2 (en) * | 2006-09-08 | 2012-07-03 | Intel Corporation | Event handling for architectural events at high privilege levels |
| US20080066237A1 (en) * | 2006-09-19 | 2008-03-20 | Boyd Flotation, Inc. | Anti-Microbial Mattress and Improved Support Core |
| CN102077181B (zh) * | 2008-04-28 | 2014-07-02 | 惠普开发有限公司 | 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统 |
| US9665509B2 (en) * | 2014-08-20 | 2017-05-30 | Xilinx, Inc. | Mechanism for inter-processor interrupts in a heterogeneous multiprocessor system |
| US11474970B2 (en) * | 2019-09-24 | 2022-10-18 | Meta Platforms Technologies, Llc | Artificial reality system with inter-processor communication (IPC) |
| US11487594B1 (en) | 2019-09-24 | 2022-11-01 | Meta Platforms Technologies, Llc | Artificial reality system with inter-processor communication (IPC) |
| US11520707B2 (en) | 2019-11-15 | 2022-12-06 | Meta Platforms Technologies, Llc | System on a chip (SoC) communications to prevent direct memory access (DMA) attacks |
| US11190892B2 (en) | 2019-11-20 | 2021-11-30 | Facebook Technologies, Llc | Audio sample phase alignment in an artificial reality system |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63184860A (ja) * | 1987-01-27 | 1988-07-30 | Fuji Electric Co Ltd | マルチプロセツサシステムにおける割込要求制御方式 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS586973B2 (ja) * | 1975-02-20 | 1983-02-07 | パナフアコム カブシキガイシヤ | メモリコテイバンチアクセスセイギヨホウシキ |
| JPS547252A (en) * | 1977-06-20 | 1979-01-19 | Hitachi Ltd | Program control system |
| JPS58140862A (ja) * | 1982-02-16 | 1983-08-20 | Toshiba Corp | 相互排他方式 |
| US4561051A (en) * | 1984-02-10 | 1985-12-24 | Prime Computer, Inc. | Memory access method and apparatus in multiple processor systems |
| US4949239A (en) * | 1987-05-01 | 1990-08-14 | Digital Equipment Corporation | System for implementing multiple lock indicators on synchronous pended bus in multiprocessor computer system |
| US4941083A (en) * | 1987-05-01 | 1990-07-10 | Digital Equipment Corporation | Method and apparatus for initiating interlock read transactions on a multiprocessor computer system |
| CA2000245C (en) * | 1988-10-08 | 1996-07-16 | Hideo Hayashi | Multiprocessor system using communication register having processor-associated storage locations |
-
1989
- 1989-12-04 US US07/445,202 patent/US5136714A/en not_active Expired - Fee Related
-
1990
- 1990-11-02 JP JP2298747A patent/JPH03212755A/ja active Pending
- 1990-11-06 EP EP19900121182 patent/EP0431326A3/en not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63184860A (ja) * | 1987-01-27 | 1988-07-30 | Fuji Electric Co Ltd | マルチプロセツサシステムにおける割込要求制御方式 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007500898A (ja) * | 2003-07-31 | 2007-01-18 | インテル・コーポレーション | プロセッサ間割り込み |
| JP2010113734A (ja) * | 2003-07-31 | 2010-05-20 | Intel Corp | プロセッサ間割り込み |
| US8984199B2 (en) | 2003-07-31 | 2015-03-17 | Intel Corporation | Inter-processor interrupts |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0431326A2 (en) | 1991-06-12 |
| EP0431326A3 (en) | 1992-03-04 |
| US5136714A (en) | 1992-08-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH03212755A (ja) | マルチプロセッサ・システムおよび割り込み方法 | |
| US6141734A (en) | Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol | |
| EP0432075B1 (en) | Multiprocessor with relatively atomic instructions | |
| JPH0239254A (ja) | データ処理システム及びそのキヤツシユ記憶システム | |
| JPH0227441A (ja) | コンピュータ・システム | |
| JPH03196249A (ja) | 多重プロセッサシステム | |
| JPH04306748A (ja) | 情報処理装置 | |
| JP3797570B2 (ja) | セマフォ命令用のセマフォ・バッファを用いた装置と方法 | |
| US6970963B2 (en) | Apparatus and method for synchronizing multiple accesses to common resources | |
| US20100058001A1 (en) | Distributed shared memory multiprocessor and data processing method | |
| JPH02207352A (ja) | 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置 | |
| JP3814521B2 (ja) | データ処理方法および装置 | |
| CN120371728A (zh) | 缓存器、指令处理方法、处理器及计算机设备 | |
| JPH05134930A (ja) | メモリ保護装置 | |
| JPH0281255A (ja) | マルチプロセッサコンピュータ複合装置 | |
| CN109358903A (zh) | 数据访问设备和访问错误通知方法 | |
| JPH02126340A (ja) | データ処理システム | |
| JP2776388B2 (ja) | 記憶制御方法及び記憶装置 | |
| JPS5834856B2 (ja) | キオクセイギヨソウチ | |
| JPH04348437A (ja) | デバッグ装置 | |
| JPH0784971A (ja) | コンピュータシステム | |
| JPH05151174A (ja) | マルチプロセツサの同期方式 | |
| JPH058459B2 (ja) | ||
| JPS63286959A (ja) | メモリアクセス方式 | |
| JPH05508496A (ja) | 命令をロードおよびフラグする方法および装置 |