WO2007039933A1 - 演算処理装置 - Google Patents
演算処理装置 Download PDFInfo
- Publication number
- WO2007039933A1 WO2007039933A1 PCT/JP2005/023251 JP2005023251W WO2007039933A1 WO 2007039933 A1 WO2007039933 A1 WO 2007039933A1 JP 2005023251 W JP2005023251 W JP 2005023251W WO 2007039933 A1 WO2007039933 A1 WO 2007039933A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- cross
- call
- arithmetic processing
- transmission
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Definitions
- Cross call control is performed by the external interface units 1120 and 1220.
- the interface units 1120 and 1220 are cross call transmission control units (hereinafter referred to as “XCSC” (Cross Ca 11 Send Controller)) 1121 and 1221 and cross call reception control units (hereinafter referred to as “XCRC” (Cross Call Receive Controller). Note: 1122 and 1222 respectively!
- XCSC1121 and 1221 store a data register, a status register that stores the status of crosscall BUSY (crosscall issuance) and NACK (crosscall issuance failure), and command issuance order and contents It has a command FIFO to keep.
- Fig. 3 shows an example of the status register configuration
- Fig. 4 shows an example of the command FIFO configuration.
- An arithmetic processing device is an information processing device including a plurality of arithmetic processing devices, and the arithmetic processing device is provided in the information processing device. Control the transmission of cross-calls issued to other arithmetic processing units, and at the same time, the arbitration unit arbitrates the right to use the signal line that leads the signal to the outside of the arithmetic processing unit.
- a cross call transmission control method includes: a processing unit that transmits a cross call issued to another processing unit using the processing unit. This is a control method, and is related to the issue request of the cross call and the data related to the process related to the cross call performed to the arbitration unit that arbitrates the right to use the signal line that leads the signal from the arithmetic processing unit
- a storage unit having a step for controlling the transmission request, an identifier storage area for identifying the cross call, an identifier storage area for identifying the issue request, and an identifier storage area for identifying the transmission request And a step of maintaining the issuance history of the cross call.
- the register 41 functions as a storage unit that collectively stores the BUSY and NACK states of each cross call and the contents of command issuance for cross call management.
- the ID determination circuit 42 indicates what the identifier (ID) held in a predetermined storage area of the register 41 is, and status information indicating the progress of the control operation by the XCSC 40 It is determined based on the above.
- the ID storage control circuit 43 selects an identifier to be held in the predetermined storage area of the register 41 in accordance with the status indicating the progress of the control operation by the XCSC 40.
- the AND circuit 91c is an identifier held in the HOLD-ID of the entry to be judged in the register 41 when the XCALL—ISD—ID—MCH output from the ID judgment circuit 42 is “H” level.
- XCALL—REQ—ID XCSC40 force S REQID generated by performing control operation of S103 in Fig. 8 is output as it is.
- the storage area 93 represents the HOLD-ID area of the entry corresponding to the BN number specified in the register 41.
- “EN” is displayed in FIG. 10. This display indicates that the output of the OR circuit 92a is enabled (EN ABLE). In other words, when the output power of the OR circuit 92a becomes “H” level, that is, when the operation of the S101, S103, and S105 in FIG.
- the storage area 93 operates so as to hold the identifier output from.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Description
明 細 書
演算処理装置
技術分野
[0001] 本発明は、 CPU等の演算処理装置内部の制御技術に関し、特に、演算処理装置 間のクロスコールのための制御技術に関する。 背景技術
[0002] 本発明は、 CPU間のクロスコールに関し、特にマルチ CPUシステムを対象とする。
クロスコールとは、プロセッサ間における通信手段の一つであり、仮想メモリにおける メモリ一貫性を維持するために、 OSにより使用される内部プロセッサ割り込みをいう。
[0003] 本発明に関連する技術として、例えば特許文献 1には、リード'リクエストに対するレ スポンスがリクエストの発行先に返されるまでの間、システム ·バスを解放する方式で あるリード'スプリット方式を採用するコンピュータシステムのリード制御装置において
、メモリ'リードと I/Oの管理テーブルとを別々に分割して制御することにより、レスポ ンスの遅い iZoリードによるリード管理テーブルの占有を防止する技術が開示されて いる。
[0004] また、例えば特許文献 2には、共有システム 'バスの高速ィ匕のために、複数のデー タ 'プロセッサ、メモリ.ユニット、及び iZoインタフェースを当該システム 'バスへ接続 するためのノッファ機能付きの万能インタフェースを提供する技術が開示されている
[0005] 但し、これらの技術はどちらもコンピュータシステムの構成に特徴を有するものであ り、 CPUの内部構成に関するものではない。
ここで図 1について説明する。同図は、マルチ CPUシステムの概略構成例を示して いる。この構成例では、 CPUA1100、 CPUB1200、及びメモリ 1400がシステムコン トローラ(以下、「SC」と記す) 1300に接続されている。ここで、 CPUA1100と CPUB 1200との各々の CPUコア部 1110、 1210は、外部インタフェース部 1120、 1220を 各々介して SC1300に接続されて!、る。
[0006] クロスコールの制御は外部インタフェース部 1120、 1220によって行われる。外部ィ
ンタフェース部 1120、 1220は、クロスコール送信制御部(以下、「XCSC」(Cross Ca 11 Send Controller)と記す) 1121、 1221とクロスコール受信制御部(以下、「XCRC」 (Cross Call Receive Controller )と記す) 1122、 1222とを各々有して! /、る。
[0007] 図 1に示したシステムにおけるクロスコール送受信の流れを、図 2を用いて説明する まず、(1)の 2つの矢印で示すように、 CPUA1100の CPUコア部 1110からクロス コールのデータ (太、、矢印)とクロスコールリクエストの発行要求(細 、矢印)とが送ら れてくると、(2)の矢印で示すように、 XCSC1121はそれらをバッファリングしつつ、 S C1300へとクロスコールリクエスト(クロスコール要求)を発行する。
[0008] (3)の矢印で示すように、 SC1300は、相手先(この場合は CPUB1200)の状態に 基づき、相手先が BUSY状態でなければ、すなわち、 SC1300自身が有しているレ ジスタにおける、 CPUB1200の状態を示す BUSYビットが立っていなければ、当該 BUSYビットを立てる(図 2における SC1300に記されている矢印)と共に、要求元で ある CPUA1100へ ACK (許可)を返答する。一方、相手先が既に BUSY状態であ れば(当該 BUSYビットが立って!/、れば) NACK (不許可)を CPUA1100へ返答す る。
[0009] CPUA1100は、 ACKを受け取った場合には、(4)の矢印で示すように、クロスコ ールのデータを SC1300へ送信する。一方、 NACKを受け取った場合には、所定時 間経過後に、改めてクロスコールリクエストの SC1300への発行を XCSC1121に行 わせ、以降、 ACKを受け取るまで繰り返しクロスコールリクエストの発行を XCSC112 1に行わせる。
[0010] クロスコールの受信側である CPUB1200の XCRC1222では、 (5)の矢印で示す ように、 SC1300からクロスコールのデータが送られてくると、そのデータを内部のレ ジスタへ書き込む。その後、 XCRC1222は、(6)の矢印で示すように、 CPUB1200 の CPUコア部 1210へとクロスコール受信通知を送る(外向きの細い矢印)と共にデ ータを受け渡す (太い矢印)。その後、クロスコールの受信時の作業が完了したことが CPUコア部 1210から伝えられると(内向きの細 、矢印)、 XCRC1222は、 (7)の矢 印で示すように、 SC1300へ、 CPUB 1200の状態を表す BUSYビットを落とす要求
を発行する。従って、上記図 2の動作説明において、(2)の矢印で示される CPUAに よる SCへのクロスコールリクエスト(クロスコール要求)の発行から(7)の CPUBによる SCへの BUSY状態の解除までの期間が SCにおける BUSY期間(BUSY上部の矢 印)となる。
[0011] XCSC1121、 1221は、データレジスタと、クロスコールの BUSY (クロスコール発 行中)及び NACK (クロスコールの発行失敗)の状態を記憶するステータスレジスタと 、コマンドの発行順及び発行内容を記憶しておくコマンド FIFOとを有している。この ステータスレジスタの構成例を図 3に示し、コマンド FIFOの構成例を図 4に示す。
[0012] 図 3に示すように、ステータスレジスタは、クロスコールの BUSY及び NACKの状態 、すなわち、クロスコールに係る処理の処理状況を、 BUSYと NACKとのペア番号( BN番号)毎に保持して管理する。
[0013] 図 4に示すように、コマンド FIFOは、クロスコールの発行履歴を保持して管理するも のであり、コマンドの発行の状況を管理するための各種のデータを保持すると共に、 SC1300へ発行するクロスコールの相手先である CPU等を示す識別子であるターゲ ッ HD (TID)と、逐次発行されるクロスコールを個々に識別するための識別子である リクエスト ID (REQID)とを保持する。また、ステータスレジスタとの対応を取るために 、上記の BN番号をも保持しておく。なお、ステータスレジスタ及びコマンド FIFOにお いて予め確保されるエントリの数は、 CPUコア部 1110、 1210が発行するクロスコー ル発行要求数の最大数に一致させる力 これは CPUコア部 1110、 1210の仕様に より決定されるちのである。
[0014] このように、従来はステータスレジスタとコマンド FIFOとが別個に設けられて!/、たた め、両者の対応関係を示す BN番号をコマンド FIFOで保持して 、た。
このため、近年における大規模 SMP(Symmetrical Multi- Processor)システムやマル チコアプロセサのように、計算機システム内においてクロスコールを発行するプロセサ 又はプロセサコアの増加とともに、必然的にコマンド FIFOにおけるクロスコール用の エントリ数が増加するため、クロスコール制御に係るハードウェア資源が増大するとい う問題があった。
特許文献 1:特開平 11― 110343号公報
特許文献 2:特開平 5— 210622号公報
発明の開示
[0015] 本発明の目的は、計算機システムにおける大規模 SMP化及びプロセサのマルチ コア化並びに処理のマルチスレッド化によるクロスコールの制御のために要する資源 の増大を抑制することである。
[0016] 上記目的を達成するため、本発明の態様のひとつである演算処理装置は、他の演 算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、当該クロス コールに係る処理の処理状況と、当該処理状況に対応する当該クロスコールの発行 履歴とをクロスコールのエントリ毎に保持する記憶部と、を有するものである。
[0017] なお、本発明に係る演算処理装置は、当該制御部は、他の演算処理装置宛てのク ロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する 調停部に対して行われる、当該クロスコールの発行要求の送信と、当該クロスコール に係る処理に関するデータの送信要求の送信とを制御し、当該記憶部は、当該クロ スコールを識別する識別子を記憶する第一の記憶領域と、当該発行要求を識別する 識別子を記憶する第二の記憶領域と、当該送信要求を識別する識別子を記憶する 第三の記憶領域とを有するようにしてもょ 、。
[0018] さらに、本発明に係る演算処理装置は、当該記憶部の当該記憶領域に保持されて V、る識別子が何にっ 、てのものかを判定する判定部を更に有するようにしてもょ 、。 さらに、本発明に係る演算処理装置は、当該判定部は、当該制御部による当該制 御の進拔状況を示す情報に基づ 、て、当該判定を行うようにしてもょ 、。
[0019] さらに、本発明に係る演算処理装置は、当該発行要求と当該送信要求とを当該信 号線の使用状況に基づいて切り替えて、当該制御部から当該調停部へ導く信号線 へと出力する発行要求切り替え部を更に有するようにしてもょ 、。
[0020] 本発明の別の態様のひとつである情報処理装置は、複数の演算処理装置を備え た情報処理装置であって、当該演算処理装置が、当該情報処理装置に備えられて いる他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と 、当該クロスコールに係る処理の処理状況と、当該処理状況に対応する当該クロスコ ールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、を有するものであ
る。
[0021] なお、本発明に係る情報処理装置は、当該制御部は、他の演算処理装置宛てのク ロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する 調停部に対して行われる、当該クロスコールの発行要求の送信と、当該クロスコール に係る処理に関するデータの送信要求の送信とを制御し、当該記憶部は、当該クロ スコールを識別する識別子を記憶する第一の記憶領域と、当該発行要求を識別する 識別子を記憶する第二の記憶領域と、当該送信要求を識別する識別子を記憶する 第三の記憶領域とを有するようにしてもょ 、。
[0022] さらに、本発明に係る情報処理装置は、当該記憶部の当該記憶領域に保持されて V、る識別子が何にっ 、てのものかを判定する判定部を更に有するようにしてもょ 、。 さらに、本発明に係る情報処理装置は、当該判定部は、当該制御部による当該制 御の進拔状況を示す情報に基づ 、て、当該判定を行うようにしてもょ 、。
[0023] さらに、本発明に係る情報処理装置は、当該発行要求と当該送信要求とを当該信 号線の使用状況に基づいて切り替えて、当該制御部から当該調停部へ導く信号線 へと出力する発行要求切り替え部を更に有するようにしてもょ 、。
[0024] 本発明更なる別の態様のひとつである演算処理装置は、複数の演算処理部を有 する演算処理装置であって、当該複数の演算処理部のいずれかから他の演算処理 装置における演算処理部へ宛てて発行されるクロスコールの送信を制御する制御部 と、当該演算処理部毎に設けられており、当該クロスコールに係る処理の処理状況と 、前期処理状況に対応する当該クロスコールの発行履歴とをクロスコールのエントリ 毎に保持する記憶部と、を有するものである。
[0025] なお、本発明に係る演算処理装置は、当該制御部は、他の演算処理装置における 演算処理部宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線 の使用権を調停する調停部に対して行われる、当該クロスコールの発行要求の送信 と、当該クロスコールに係る処理に関するデータの送信要求の送信とを制御し、当該 記憶部は、当該クロスコールを識別する識別子を記憶する第一の記憶領域と、当該 発行要求を識別する識別子を記憶する第二の記憶領域と、当該送信要求を識別す る識別子を記憶する第三の記憶領域と、を有するようにしてもょ 、。
[0026] さらに、本発明に係る演算処理装置は、当該記憶部の当該記憶領域に保持されて V、る識別子が何にっ 、てのものかを判定する判定部を更に有するようにしてもょ 、。 さらに、本発明に係る演算処理装置は、当該判定部は、当該制御部による当該制 御の進拔状況を示す情報に基づ 、て、当該判定を行うようにしてもょ 、。
[0027] さらに、本発明に係る演算処理装置は、当該発行要求と当該送信要求とを当該信 号線の使用状況に基づいて切り替えて、当該制御部から当該調停部へ導く信号線 へと出力する発行要求切り替え部を更に有するようにしてもょ 、。
[0028] 本発明の更なる別の態様のひとつであるクロスコールの送信制御方法は、演算処 理装置力 他の演算処理装置へ宛てて発行されるクロスコールの送信を当該演算処 理装置で制御する方法であって、当該クロスコールに係る処理の処理状況と、当該ク ロスコールの発行履歴とをクロスコールのエントリ毎に当該演算処理装置の記憶部で 保持しておくステップを有すると!、うものである。
[0029] なお、本発明に係るクロスコールの送信制御方法は、当該クロスコールに係る処理 の処理状況と、当該クロスコールの発行履歴とをクロスコールのエントリ毎に当該演 算処理装置の記憶部で保持しておくステップの後に、当該記憶部の当該記憶領域 に保持されている識別子が何についてのものかを当該演算処理装置で判定するス テツプをさらに有するようにしてもょ 、。
[0030] また、本発明に係るクロスコールの送信制御方法は、当該記憶部の当該記憶領域 に保持されている識別子が何についてのものかを当該演算処理装置で判定するス テツプの後に、当該発行要求と当該送信要求とを当該信号線の使用状況に基づい て切り替えて、そのどちらか一方を当該調停部へ導く信号線へと出力するステップを さらに有するようにしてもよい。
[0031] 本発明の更なる別の態様のひとつである演算処理装置は、他の演算処理装置へ 宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の 使用権を調停する調停部に対して行われる、当該クロスコールの発行要求の送信と 、当該クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御 部と、当該クロスコールの発行履歴を保持するための記憶領域として、当該クロスコ ールを個々に識別する識別子の記憶領域と、当該発行要求を個々に識別する識別
子の記憶領域と、当該送信要求を個々に識別する識別子の記憶領域とを有する記 憶部と、を有するというものである。
[0032] 本発明の更なる別の態様のひとつである演算処理装置は、複数の演算処理装置を 備えた情報処理装置であって、当該演算処理装置が、当該情報処理装置に備えら れている他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共 に、信号を当該演算処理装置の外部へ導く信号線の使用権を調停する調停部に対 して行われる、当該クロスコールの発行要求の送信と、当該クロスコールに係る処理 に関するデータの送信要求の送信とを制御する制御部と、当該クロスコールの発行 履歴を保持するための記憶領域として、当該クロスコールを識別する識別子の記憶 領域と、当該発行要求を個々に識別する識別子の記憶領域と、当該送信要求を識 別する識別子の記憶領域とを共用している記憶部と、を有するというものである。
[0033] 本発明の更なる別の態様のひとつである演算処理装置は、複数の演算処理部を有 する演算処理装置であって、他の演算処理装置へ宛てて発行されるクロスコールの 送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対し て行われる、当該クロスコールの発行要求の送信と、当該クロスコールに係る処理に 関するデータの送信要求の送信とを制御する制御部と、当該演算処理部毎に設けら れており、当該クロスコールの発行履歴を保持するための記憶領域として、当該クロ スコールを識別する識別子の記憶領域と、当該発行要求を識別する識別子の記憶 領域と、当該送信要求を識別する識別子の記憶領域とを共用している記憶部と、を 有するというものである。
[0034] 本発明の更なる別の態様のひとつであるクロスコールの送信制御方法は、演算処 理装置力 他の演算処理装置へ宛てて発行されるクロスコールの送信を当該演算処 理装置で制御する方法であって、信号を当該演算処理装置から外部へ導く信号線 の使用権を調停する調停部に対して行われる、当該クロスコールの発行要求と、当 該クロスコールに係る処理に関するデータの送信要求とを制御するステップと、当該 クロスコールを識別する識別子の記憶領域と、当該発行要求を識別する識別子の記 憶領域と、当該送信要求を識別する識別子の記憶領域とを有する記憶部において、 当該クロスコールの発行履歴を保持するステップと、を有すると 、うものである。
[0035] 本発明によれば、以上のようにすることにより、計算機システムのマルチコア化ゃ処 理のマルチスレッドィ匕によるクロスコールの制御のために要する資源の増大が抑制さ れるという効果を奏する。
図面の簡単な説明
[0036] [図 1]マルチ CPUシステムの概略構成例を示す図である。
[図 2]クロスコール送受信の流れを説明する図である。
[図 3]ステータスレジスタの構成例を示す図である。
[図 4]コマンド FIFOを示す図である。
[図 5]本発明を実施するマルチ CPUシステムの構成を示す図である。
[図 6]図 5に示されている CPUAの外部インタフェース部の構成を示す図である。
[図 7]図 6に示されているレジスタの構成を示す図である。
[図 8]XCSCによるクロスコールの送信制御動作の流れを示す図である。
[図 9]ID判定回路の回路例を示す図である。
[図 10]ID記憶制御回路の回路例を示す図である。
[図 11]発行要求切り替え回路の回路例を示す図である。
[図 12]複数の CPUコアを有している CPUで構成したマルチ CPUシステムの構成例 を示す図である。
[図 13]図 12に示した CPU Aの外部インタフェース部の構成を示す図である。
発明を実施するための最良の形態
[0037] まず、本発明における実施の形態を説明する前に、図 2の(1)から (4)にかけての 矢印で示されているクロスコール送信時における、 XCSC1121の内部動作について 説明する。
[0038] CPUコア部 1110から送られてきたクロスコールのデータがデータレジスタに書き込 まれた後、 BN番号の指定を伴った BUSYビットへの書き込み要求が CPUコア部 11 10力も送られてくる。この要求に応じ、ステータスレジスタにおける指定されている B N番号の BUSYビットが立てられるのと同時に、コマンド FIFOに当該 BN番号が格納 され、更に VLD (Valid )ビットがセットされる。このとき、 XCSC1121より XCALL— R EQ (クロスコールリクエスト)の発行要求が調停部へと送信される。
[0039] 調停部は、 CPUコア部 1110と SC1300との間のバス (信号線)の使用の優先順位 を調停し、コマンドの発行を効率的に行えるように、且つ仕様に則って行うように、制 御するためのブロックであり、外部インタフェース部 1120に設けられている(もちろん 、調停部は、 CPU1200の外部インタフェース部 1220にも同様に設けられている)。 この調停部においてバスの使用権が得られると、コマンド FIFO内の当該 BN番号に 対応する ISD (Issued)ビットがセットされ、前述の XCALL— REQを SC1300へ発行 する。
[0040] ここで、 SC1300から NACKが返ってきた場合には、ステータスレジスタの BUSY ビットとコマンド FIFOの VALIDビットとを落とし、代わってステータスレジスタの NAC Kビットをセットし、クロスコールの発行失敗を表示する。一方、 SC1300力 ACK力 S 返ってきた場合には、データレジスタに保持してお!、たデータを SC 1300へ発行し、 併せて、コマンド FIFOの VLDビット及び ISDビットと、ステータスレジスタの BUSYビ ットとを落とす。
[0041] XCSC1121内部では以上のような動作を行って!/ヽた。
このように、従来は、上述した XCSC1121の動作において、 ACKを SC1300力ら 受信した後のデータ送信は常に固定した動作サイクルの後に行われており、また、こ のデータ送信は ACK受信後直ちに可能であったので、データ送信用のリクエスト信 号は不要であった。
[0042] ところが、この ACK受信後のデータ送信のタイミングが不定の場合には、クロスコー ルに係る処理に関するデータの送信の要求(Slave Write Cross Call Request,以下 、「SWXC— REQ」と記す)の発行要求を調停部へ発行すると共に、当該データ送 信の発行順を制御する必要が生じる。なお、 ACK受信後のデータ送信タイミングが 固定であるか否かは、バスの仕様に依存するものである。
[0043] 更に加えて、 XCALL— REQの発行順に ACKが SC1300から返ってくるかどうか もバスの仕様に依存している。従って、 SC1300側で例えば待ち合わせ回路の削減 等の事情により、 XCALL— REQの発行順に ACK力 SC1300から返ってくることが 保証されて 、な 、場合には、 SWXC— REQ発行時にも返答の順番が入れ替わる可 能性が生じる。
[0044] 従って、上述した従来のコマンド FIFOのエントリ構成のままでこの返答の順番の入 れ替わりに対処するには、途中で順番が入れ替わる可能性があるため複雑な制御が 必要となるが、エントリ毎に単純に制御回路を増やせば、クロスコールのエントリ数が 多いため、非常に多くの資源を必要とすることとなる。
[0045] 次に、本発明の実施の形態を図面に基づいて説明する。
図 5は、本発明を実施するマルチ CPUシステムの構成を示して 、る。
同図において、 CPUA10, CPUB110,及びメモリ 400力 SC300に接続されてい る。ここで、 CPUA10と CPUB110との各々の CPUコア部 20、 120は、外部インタフ エース部 30、 130を各々介して SC300に接続されている。この外部インタフェース部 30、 130には、 XCSC40、 140と XCRC50、 150と力 ^各々備えられて! /、る。ここで、 同図における CPU間クロスコールは、例えば CPUA10及び CPUB110との間にお いて、 SC300を介すること〖こより、実行される。
[0046] 次に図 6について説明する。同図は、本発明を実施する CPUA10の外部インタフ エース部の構成を示している。なお、同図は図 5における CPUA10の外部インタフエ ース部 30の構成を示している力 CPUB110の外部インタフェース部 130も同様の 構成を有している。
[0047] CPUA10の CPUコア部 20は、外部インタフェース部 30を介して SC300に接続さ れている。
クロスコールの制御は外部インタフェース部 30によって行われる。外部インタフエ一 ス部 30は、 XCSC40、 XCRC50、及び調停部 70を有している。ここで、 XCSC40は クロスコールの送信制御を行うものであり、 XCRC50はクロスコールの受信制御を行 うものである。また、調停部 70は、 CPUコア部 20と SC300との間のバス(信号線)の 使用の権限 (優先順位)を調停し、コマンドの発行を効率的に行えるように、且つ仕 様に則って行うように、制御するものである。
[0048] XCSC40はレジスタ 41、 ID判定回路 42、 ID記憶制御回路 43、発行要求切り替え 回路 44、動作制御部 45、及びデータレジスタ 60を有している。
レジスタ 41は、各クロスコールの BUSY及び NACKの状態並びにコマンドの発行 内容をクロスコールの管理のために一括して記憶しておく記憶部として機能する。
[0049] ID判定回路 42は、レジスタ 41の所定の記憶領域に保持される識別子 (ID)が何に つ 、てのものであるかを、 XCSC40による制御動作の進拔状況を示すステータス情 報に基づいて判定するものである。また、 ID記憶制御回路 43は、レジスタ 41の当該 所定の記憶領域で保持させる識別子を、 XCSC40による制御動作の進拔状況を示 すステータスに応じて選択するものである。
[0050] 発行要求切り替え回路 44は、クロスコールの発行要求と当該クロスコールに係る処 理に関するデータの送信要求とを、 CPUコア部 20と SC300との間のバスの使用状 況に基づ 、て切り替えるものである。
[0051] 動作制御部 45は、 XCSC40の動作制御を行うものである。
データレジスタ 60は、 CPUコア部 20から送られてきたクロスコールのデータを一時 的に格納しておくものである。
[0052] 次に図 7について説明する。同図は、図 6に示したレジスタ 41の構成を例示してい る。
図 7に示すように、このレジスタ 41は、クロスコールに係る処理の処理状況、すなわ ち、クロスコールの BUS Y (クロスコール発行中 )及び NACK (クロスコールの発行失 敗)の状態を、クロスコールのエントリ毎、ここでは BUSYと NACKとのペア番号(BN 番号)毎に保持して管理する。カロえて、このレジスタ 41は、クロスコールの発行履歴 の管理のため、コマンドの発行の状況を管理するための各種のデータ(図 7では「etc 」と表示)を保持すると共に、 SC300へ発行するクロスコールの相手先である CPU等 を示す識別子であるターゲット ID (TID)を BN番号毎に保持して管理する。更に、レ ジスタ 41には HOLD— IDなる記憶領域が BN番号毎に用意されて 、る。この記憶領 域には、 XCALL— REQ— ID、 SWXC— REQ— ID、及び REQIDのいずれかが記 憶されて管理される。
[0053] ここで、 XCALL— REQ— IDは、 XCSC40が調停部 70へ送付する、 XCALL— R EQ (クロスコール要求)の発行要求の管理のために、当該発行要求に対して個々に 与えられる識別子である。
[0054] また、 SWXC— REQ— IDは、 XCSC40が調停部 70へ送付する、 SWXC— REQ
(クロスコールに係る処理に関するデータの送信要求)の発行要求の管理のために、
当該発行要求に対して個々に与えられる識別子である。
[0055] なお、 REQIDは、クロスコールを個々に識別するための識別子である。
このように、クロスコールに係る処理の処理状況と、当該クロスコールの発行履歴と を直接対応付けて当該クロスコールのエントリ毎にレジスタ 41で保持するようにしたこ とにより、これらを対応付けるための情報を保持しておくための専用の記憶領域が不 要となる。また、従来は、上述した各識別子を別々の記憶領域で記憶して管理してい た力 このように同一の記憶領域を共用することにより、記憶領域の節約となる。
[0056] 但し、同一の記憶領域を共用してこれらの識別子の管理を行うためには、当該記憶 領域に記憶されている識別子が上述したもののうちのどれであるかを判別できなけれ ばならない。以下、この判別の手法について説明する。
[0057] 図 8について説明する。同図は、図 6の XCSC40の動作制御部 45によるクロスコー ルの送信制御動作の流れを示しており、併せて、当該制御動作の進拔状況を示すス テータス情報である、 XCALL— VLD、 XCALL— ISD、 SWXC— VLDの各ビット の遷移の様子を表して 、る。
[0058] まず、 S101は初期状態を示しており、これは、 SC300に接続されている他の CPU
(図 5においては CPUB110)へ宛てて発行される CPUコア部 20からのクロスコール をレジスタ 41へ受け入れることが可能な状態である。
[0059] ここで、 CPUコア部 20からまず XCALL— REQ (クロスコールリクエスト)の発行要 求と当該 XCALL— REQに対応する BN番号とが送られてくる。すると、制御動作は S 102へと進み、 XCSC40は CPUコア部 20から次に送られてくるクロスコールのデ ータをデータレジスタ 60に書き込むと共に、その発行要求と共に送られてきた BN番 号に対応するレジスタ 41のエントリにおける BUSYビットを立てる。そして、 XCALL —REQの発行要求を調停部 70へと送信すると共に、当該 BN番号に対応する XCA LL—VLDビットをセットして当該発行要求の送信完了を表示する。なお、当該発行 要求の送信に併せて、この発行要求を個々に識別するための識別子である XCALL —REQ— IDを生成してレジスタ 41の当該エントリの HOLD— IDで保持する。
[0060] XCALL— REQの発行要求に対し調停部 70にお!/、てバスの使用権が得られると、 制御動作は S103へと進み、 XCSC40は、 XCALL REQを SC300へ発行すると
共に、レジスタ 41内の当該エントリの XC ALL— VLDビットを落とし、その代わりに当 該エントリの XCALL— ISDビットをセットして XCALL— REQの発行完了を表示する 。なお、 XCSC40は、この XCALL— REQを個々に識別するための識別子である R EQIDを生成し、 XCALL— REQと共に SC300へ送信する。レジスタ 41の当該ェン トリの HOLD— IDでは、 XCALL— REQ— IDに代えて、この REQIDを保持する。
[0061] この XCALL— REQの発行に対し、 SC300から NACKが返ってきた場合には、制 御動作は S104へと進み、レジスタ 41の当該エントリの XCALL— ISDビットとを落と し、この代わりに当該エントリの NACKビットをセットしてクロスコールの発行失敗を表 示し、 CPUコア部 20によるクロスコールリクエストの発行要求のリトライを待つこととな る。ここで、例えば所定時間経過後に CPUコア部 20からのクロスコールリクエストの 発行要求を改めて受けた場合には、制御動作は S 102へと戻り、上述した制御動作 が再度行われる。
[0062] 一方、 XCALL— REQの発行に対し、 SC300から ACKが返ってきた場合には、 制御動作は S 105へと進み、 XCSC40は、 SWXC— REQの発行要求を調停部 70 へと送信すると共に、レジスタ 41の当該エントリの XCALL— ISDビットを落とし、この 代わりに当該エントリの SWXC— VLDビットをセットして当該発行要求の送信完了を 表示する。このとき、当該発行要求の送信に併せて、この発行要求を個々に識別す るための識別子である SWXC— REQ— IDを生成し、レジスタ 41の当該エントリの H OLD— IDで、 REQIDに代えて、この SWXC— REQ— IDを保持する。
[0063] SWXC— REQの発行要求に対し調停部 70においてバスの使用権が得られると、 制御動作は S106へと進み、 XCSC40は、レジスタ 41の当該エントリの SWXC— VL Dビットを落とし、データレジスタに保持してお!、たデータを含めた SWXC— REQを 調停部 70へと送信し、当該データを SC300へと発行する。
[0064] 以上のようにしてクロスコールのデータの発行が完了したときには、 XCSC40は、レ ジスタ 41の当該エントリの BUSYビットを落とし、制御動作は S101へと戻り、上述し た制御動作が再度行われる。
[0065] CPUコア部 20からのクロスコールリクエストの発行要求にお!、て指定されて 、る B N番号に対応するレジスタ 41の各エントリの内容は、 XCSC40におけるクロスコール
の送信制御動作の流れに応じ、上述したように遷移する。従って、当該エントリにお ける HOLD— IDに現在保持されている識別子が何であるかは、当該エントリのステ 一タス、すなわち、 XCALL— VALID、 XCALL— ISD、及び SWXC— VLDの各ビ ットの状態により判別することができるのである。
[0066] 次に、 ID判定回路 42、 ID記憶制御回路 43、及び発行要求切り替え回路 44につ いて説明する。
まず図 9について説明する。同図は ID判定回路 42の回路例を示している。 ID判定 回路 42は、レジスタ 41の各エントリの HOLD— IDに保持されている識別子が何につ V、てのものであるかを、 XCSC40による前述した制御動作の進拔状況を示すステー タス情報に基づいて判定するものである。なお、この ID判定回路 42は、エントリ毎に 別個に設けられる。
[0067] 図 9において、一致回路 81a、 81b、 81cは、 2つの入力に各々入力された識別子( ID)がー致した場合にのみ、「H」レベルの出力を行うものである。また、 AND回路 8 2a、 82b、 82cは、 2つの入力がどちらも「H」レベルのときにのみ、「H」レベルの出力 を行うものである。ここで、 AND回路 82aの出力である XCALL— ISD— ID— MCH は、レジスタ 41の判定対象のエントリの HOLD— IDに保持していた識別子力 XCA LL— REQ— IDであるときに「H」レベルとなる。また、 AND回路 82bの出力である R EQ— ISD— ID— MCHは、当該判定対象のエントリの HOLD— IDに保持して!/、た 識別子が、 REQ— IDであるときに「H」レベルとなる。また、 AND回路 82cの出力で ある SWXC— ISD— ID— MCHは、当該判定対象のエントリの HOLD— IDに保持 して 、た識別子が、 SWXC— REQ— IDであるときに「H」レベルとなる。
[0068] 図 9において、 HOLD— IDの入力には、レジスタ 41において指定されている BN番 号に対応するエントリの HOLD— IDに保持されている識別子が入力される。また、図 9における XCALL— REQ—ID、 REQID、 SWXC— REQ— IDの各入力には、そ れぞれ、 XCSC40で上記のようにして生成した同一名称の識別子が入力される。更 に、図 9における XCALL— VLD、 XCALL— ISD、 SWXC— VLDの各入力には、 それぞれ、レジスタ 41の判定対象であるエントリにおける同一名称の各ビットの状態 が入力される。
[0069] 従って、図 9の回路によれば、当該エントリの HOLD— IDに保持されている識別子 1S XCSC40で生成した XCALL— REQ— ID、 REQID、 SWXC— REQ— IDのい ずれかと一致した場合にのみ、同図の回路の 3つの出力(XCALL— ISD— ID— M CH、 REQ_ISD_ID_MCH、及び SWXC_ISD_ID— MCH)のうちのいずれ 力が「H」レベルとなる。つまり、判定対象であるエントリの XCALL— VLDフラグが立 つていれば(すなわち、 XCSC40が図 8の S102までの制御動作を行っていたときに は)、図 9における XCALL— VALID時に XCALL— REQ— IDと HOLD— IDがー 致していることを表す XCALL— ISD— ID— MCHの出力のみが「H」レベルとなり、 当該エントリの HOLD— IDに保持して!/、た識別子が、 XCALL— REQ— IDであると の判定結果が示される。また、この場合において、当該エントリの XCALL— ISDフラ グが立っていれば(すなわち、 XCSC40が図 8の S103までの制御動作を行っていた ときには)、図 9における REQ— ISD— ID— MCHの出力のみが「H」レベルとなり、 当該エントリの HOLD— IDに保持して 、た識別子が、 REQIDであるとの判定結果 が示される。更に、この場合において、当該エントリの SWXC—VLDフラグが立って いれば(すなわち、 XCSC40が図 8の S105までの制御動作を行っていたときには)、 図 9における SWXC— ISD— ID— MCHの出力のみが「H」レベルとなり、当該ェント リの HOLD— IDに保持して!/ヽた識別子が、 SWXC— REQ— IDであるとの判定結果 が示される。
[0070] 以上のように、 XCALL— ISD— ID— MCH、 REQ— ISD— ID— MCH、及び SW XC— ISD— ID— MCHの出力の状態を参照することにより、レジスタ 41の判定対象 であるエントリの HOLD— IDに保持していた識別子が何であるかを判定することがで きる。
[0071] 次に図 10について説明する。同図は ID記憶制御回路 43の回路例を示している。 I D記憶制御回路 43は、 ID判定回路 42からの出力の一部を利用し、レジスタ 41の各 エントリのステータスに応じて当該エントリの HOLD— IDに保持させる IDを選択する ものである。なお、この ID記憶制御回路 43も、レジスタ 41のエントリ毎に別個に設け られる。
[0072] 図 10において、 AND回路 91aは、 2つの入力がどちらも「H」レベルのときにのみ、
すなわち、当該エントリの XCALL—ISDビットがセットされており、且つ、 ID判定回 路 42から出力される XCALL— ISD— ID— MCHが「H」レベルのときにのみ、「H」 レベルの出力を行う。この出力は、 XCSC40が図 8の S103の制御動作を行ったこと を示す。
[0073] また、 AND回路 91bは、 2つの入力がどちらも「H」レベルのときにのみ、すなわち、 SC300から ACKが帰ってきており、且つ、 ID判定回路 42から出力される XREQ— I SD— ID— MCHが「H」レベルのときにのみ、「H」レベルの出力を行う。この出力は 、 XCSC40が図 8の S105の制御動作を行ったことを示す。
[0074] AND回路 91cは、 ID判定回路 42から出力される XCALL— ISD— ID— MCHが「 H」レベルのとき、すなわち、レジスタ 41の判定対象のエントリの HOLD— IDに保持 していた識別子が XCALL— REQ— IDであったときに、 XCSC40力 S図 8の S103の 制御動作を行ったことにより生成した REQIDをそのまま出力するものである。
[0075] AND回路 91dは、 ID判定回路 42から出力される REQ— ISD— ID— MCHが「H」 レベルのとき、すなわち、レジスタ 41の判定対象のエントリの HOLD— IDに保持して いた識別子が REQIDであったときに、 XCSC40が図 8の S105の制御動作を行った ことにより生成した SWXC—REQ— IDをそのまま出力するものである。
[0076] OR回路 92aは、その 3つの入力である、当該エントリの XCALL— ISDビットと AN D回路 91a及び 91bとのうちの少なくとも 1つ以上が「H」レベルのときに、「H」レベル の出力を行うものである。ここで、当該エントリの XCALL— ISDビットが「H」レベルと なるのは、 XCSC40が図 8の S101の制御動作を行ったときである。従って、 OR回路 92aの出力力 S「H」レべノレとなるのは、 XCSC40力図 8の S101、 S103、 S105の!ヽず れかの制御動作を行ったときである。
[0077] OR回路 92bは、その 3つの入力に各々排他的に入力される識別子である、 XCAL L— REQ— ID、 REQID, SWXC—REQ— IDのうちのいずれか 1つのみをそのまま 出力するものである。
[0078] 記憶領域 93は、レジスタ 41において指定されている BN番号に対応するエントリの HOLD— IDの領域を表している。ここで、図 10には「EN」の表示があるが、この表示 は、 OR回路 92aの出力が記憶領域 93でのデータ記憶についてのィネーブル(EN
ABLE)として作用することを表している。つまり、 OR回路 92aの出力力^ H」レベルと なったとき、すなわち、 XCSC40力図 8の S101、 S103、 S 105の!ヽずれ力の帘 U御動 作を行ったときに、 OR回路 92bから出力されている識別子を保持するように記憶領 域 93は動作する。
[0079] なお、図 10にお!/、て、 XCALL— REQ— IDの値は、 XCALL— VLDビットが無効 のときには「0」であるとする。
図 10に示した ID記憶制御回路 43の動作について更に説明する。
[0080] XCSC40が図 8の S102の制御動作を行うと、 XCALL— REQ— IDが生成される と共に、 XCALL— VLDビットがセットされる。従って、図 10の回路では、このときに、 CPUコア部 20から送られてきたクロスコールリクエストの発行要求において指定され ている BN番号に対応するレジスタ 41のエントリにおける HOLD— ID (記憶領域 63) には XCALL_REQ_IDが保持されることとなる。
[0081] また、 XCSC40が図 8の S103の制御動作を行うと、 REQIDが生成されると共に、 XCALL— VLDビットが落とされ、代わりに XCALL— ISDビットがセットされる。この とき、当該エントリにおける HOLD— IDには XCALL— REQ— IDが保持されて!、る ので、図 9の回路における XCALL— ISD— ID— MCHの出力は「H」レベルとなつ ている。従って、このときには OR回路 92aが改めて「H」レベルとなるので、当該ェン トリにおける HOLD_IDには REQIDが保持されることとなる。
[0082] その後、 XCSC40が図 8の S105の制御動作を行うと、 SWXC— REQ— IDが生成 されると共に、 XCALL— ISDビットが落とされる。このとき、 SC300から ACKが返つ てきている。また、このときには、当該エントリにおける HOLD— IDには REQIDが保 持されているので、図 9の回路における REQ— ISD— ID— MCHの出力は「H」レべ ルとなっている。従って、このときには OR回路 92aが改めて「H」レベルとなるので、 当該エントリにおける HOLD— IDには SWXC— REQ— IDが保持され、当該 HOL D_IDの値が出力されることとなる。
[0083] このように、 ID記憶制御回路 43は、 XCSC40の送信制御動作の流れに応じ、その 時点で XCSC40の内部処理のために保持しておく必要のある識別子を、レジスタ 41 の各エントリの HOLD IDに保持させる。
[0084] 以上のように、従来は別個に設けられて 、たステータスレジスタとコマンド FIFOとを レジスタ 41として一体化したことにより、従来はコマンド FIFOに設けられていた BN番 号の記憶領域が削減される。また、 ID判定回路 42及び ID記憶制御回路 43を設け たことにより、 XCALL— REQ— ID、 REQID、 SWXC— REQ— IDを保持しておくた めの記憶領域の共用化を可能にし、記憶領域を従来力も増カロさせることなぐクロス コール制御におけるハードウェア資源の増加を抑制することが可能となる。
[0085] このような、レジスタのエントリの制御変更によるハードウエア資源の増加抑制効果 は、 (エントリあたりの増加抑制効果) X (エントリ数) X (ストランド数)で概算することが できる。ここで、ストランド数とは、物理的な 1つの CPUコア当たりで構築される論理的 なコアの数を示して 、る。近年の CPUのマルチコア化の進展とマルチスレッド処理の 採用により、エントリ数及びストランド数はどちらも増加する傾向にあるので、この増加 抑制効果は非常に大きなものとなる。
[0086] 次に図 11について説明する。同図は発行要求切り替え回路 44の回路例を示して いる。
調停部 70では、 XCALL— REQの発行要求と SWXC— REQの発行要求とが競 合しても選択されるのはどちらか一方のみであり、同時に両方が発行されることはな いことは明らかである。また、バスを介してデータ送信を行っている間は、 XCALL_ REQのような、他の情報を伴わないコマンドを発行することは可能である力 CPUコ ァ部 20から送られてきたクロスコールに関するデータを含む SWXC— REQのような 、他の情報を含むコマンドを発行することはできな 、。
[0087] そこで、 XCSC40を以下のように制御する。すなわち、 CPUA10と SC300との間 のバスの使用状況を示す BUSYフラグが立っている期間、すなわち、当該バスを介 してデータ送信を行っている期間においては SWXC— REQ発行要求を抑止する一 方で、その期間においても XCALL— REQ発行要求は XCSC40から調停部 70へ 送信するように制御する。これに対し、当該 BUSYフラグが落ちている期間、すなわ ち、バスを介したデータ送信を行って 、な 、期間にお 、ては SWXC— REQ発行要 求を優先して調停部 70へ送信し、 SWXC— REQ発行要求がな!ヽときには XCALL —REQ発行要求を調停部 70へ送信するように制御する。ここで、同一の BN番号に
対応する XCALL— REQの発行要求と SWXC— REQの発行要求とは排他的に生 じるものであって同時に生じることはないので、このような制御を行ってもクロスコール 動作が滞ることはない。
[0088] 発行要求切り替え回路 44はこの制御を行う回路である。
図 11において、 OR回路 101は、 2つの入力のうちの少なくとも 1つ以上が「H」レべ ノレのとき、すなわち、 2つの AND回路 102a、 102bの各々の出力のうちの少なくとも 1つ以上が「H」レベルのときに、「H」レベルの出力を行う。
[0089] ここで、 AND回路 102aの出力力^ H」レベルとなるのは、 CPUコア部 20と SC300 との間のバスの使用状況を示す BUSYビット(DATA— BUSY)が立って!/、る状態 の下で、 XCALL— REQ— PREビットが「H」レベルとなった場合のみである。ここで 、 XCALL— REQ— PREビットとは、図 8に示した XCSC40の送信制御動作が S10 2へと進み、 XCALL— REQ発行要求を発生させるためのトリガとして XCSC40内部 でセットされる(「: H」レベルとされる)ビットである。つまり、 CPUコア部 20と SC300と の間でバスを介してデータ送信を行って ヽる状態の下で、 XCALL— REQ発行要求 が生じた場合に、 AND回路 102aは「H」レベルとなる。
[0090] また、 AND回路 102bの出力力^ H」レベルとなるのは、当該 BUSYビットが立って いない状態であって、且つ、 SWXC—REQ— PREビットが「L」レベルの状態の下で XCALL— REQ— PREビットが「H」レベルとなった場合のみである。ここで、 SWXC — REQ— PREは、図 8に示した XCSC40の送信制御動作が S 105へと進み、 SWX C— REQ発行要求を発生させるためのトリガとして XCSC40内部でセットされる (「H 」レベルとされる)ビットである。つまり、バスを介したデータ送信を行っていない期間 であって、且つ、 SWXC— REQ発行要求がない期間において、 XCALL— REQ発 行要求が生じた場合に、 AND回路 102bは「H」レベルとなる。
[0091] OR回路 71は、上記した 2つの場合にのみ、 XCALL— REQを「H」レベルとして X CALL— REQ発行要求の調停部 70への送信を許可する。
一方、 AND回路 102cは、当該 BUSYビットが立っていない状態の下で SWXC— REQ— PREが「H」レベルとなった場合にのみ、つまり、バスを介したデータ送信を 行っていない期間において、 SWXC REQ発行要求が生じた場合にのみ、 SWXC
— REQを「H」レベルとして SWXC—REQ発行要求の調停部 70への送信を許可す る。
[0092] 以上のように動作する回路を XCSC40に備えることにより、 XCSC40から調停部 7 0への配線が、 XCALL— REQのためのものと SWXC— REQのためのものとで共用 できるようになるので、これらの信号線を別個に調停部 70へ配線する場合に比べ、 C PUコア部 20からの他のリクエストとの調停を取るために配線が密集する調停部 70周 辺の配線量が減少する。
[0093] 次に、本発明の他の実施形態について説明する。これより説明する実施形態は、 複数の CPUコアを有して!/、る CPUでマルチ CPUシステムを構成するものである。こ のマノレチ CPUシステムの構成を図 12に示す。
[0094] 同図において、 CPUA510、 CPUB610、及びメモリ 400力 SC300に接続されて いる。ここで、 CPUA510は CPUコア部 AA520と CPUコア部 AB521とを有しており 、 CPUB610は CPUコア部 BA620と CPUコア部 BB621とを有している。 CPUコア 部 AA520及び CPUコア部 AB521は、どちらも外部インタフェース部 530を介して S C300に接続されており、 CPUコア部 BA620及び CPUコア部 BB621は、どちらも 外部インタフェース部 630を介して SC300に接続されて 、る。外部インタフェース部 530、 630には、 XCSC540, 640と XCRC550、 650と力 ^各々備えられて!/、る。
[0095] 次に図 13について説明する。同図は、図 12に示した CPUA510の外部インタフエ ース部 530の構成を示している。なお、図 12に示した CPUB610の外部インタフエ一 ス部 630も同様の構成を有している。
[0096] CPUA510の CPUコア部 AA520及び CPUコア部 AB521は、どちらも外部インタ フェース咅 530を介して SC300【こ接続されて!ヽる。
クロスコールの制御は外部インタフェース部 530によって行われる。外部インタフエ ース部 530は、 XCSC540、 XCRC550、及び調停部 570を有している。ここで、 XC SC540はクロスコールの送信制御を行うものであり、 XCRC550はクロスコールの受 信帘 IJ御を行うものである。また、調停咅 570は、 2つの CPUコア咅 520、 521と SC30 0との間のバス (信号線)の使用の権限 (優先順位)を調停し、コマンドの発行を効率 的に行えるように、且つ仕様に則って行うように、制御するものである。
[0097] XCSC540の構成はレジスタ 541、 ID判定回路 542、 ID記憶制御回路 543、発行 要求切り替え回路 544、動作制御部 545、及びデータレジスタ 560を有している。
[0098] レジスタ 541は、各クロスコールの BUSY及び NACKの状態並びにコマンドの発行 内容をクロスコールの管理のために一括して記憶しておく記憶部として機能する。な お、レジスタ 541は、 CPUコア部 AA520用のレジスタ 541— 1と、 CPUコア部 AB52 1用のレジスタ 541— 2とを有している。なお、このレジスタ 541— 1及び 541— 2の構 成は、どちらも図 7に示したレジスタ 41の構成と同一である。
[0099] ID判定回路 542は、レジスタ 541の所定の記憶領域に保持される識別子 (ID)が 何についてのものであるかを、 XCSC540による制御動作の進拔状況を示すステー タス情報に基づいて判定するものであり、図 9に示した ID判定回路 42と同一構成の ものである。また、 ID記憶制御回路 543は、レジスタ 541の当該所定の記憶領域で 保持させる識別子を、 XCSC540による制御動作の進拔状況を示すステータスに応 じて選択するものであり、図 10に示した ID記憶制御回路 43と同一構成のものである
[0100] 発行要求切り替え回路 544は、クロスコールの発行要求と当該クロスコールに係る 処理に関するデータの送信要求とを、 2つの CPUコア部 520、 521と SC300との間
、て切り替えるものであり、図 11に示した発行要求切り替 え回路 44と同一構成のものである。
[0101] 動作制御部 545は、 XCSC540の動作制御を行うものであり、動作制御部 545によ つて行われる XCSC40のクロスコールの送信制御動作の流れは、図 8に示したものと 同一の流れによって行われる。
[0102] データレジスタ 460は、 2つの CPUコア部 520、 521から送られてきたクロスコール のデータを一時的に格納しておくものである。
このように、複数の CPUコアを有している CPUにおいても、従来は CPUコア毎に 別個に設けられていたステータスレジスタとコマンド FIFOとをレジスタ 541— 1及び 5 41— 2として一体ィ匕して CPUコア毎に設けたことにより、従来はコマンド FIFOに設け られていた BN番号の記憶領域が削減される。また、 ID判定回路 542及び ID記憶制 御回路 543を設けることで、前述した実施例と同様、レジスタ 541— 1及び 541— 2に
おける XCALL— REQ— ID、 REQID、 SWXC— REQ— IDを保持しておくための 記憶領域の共用化を可能にしたことにより、記憶領域を従来力 増加させることなぐ クロスコール制御における仕様の変更への対処が可能となる。
[0103] このような、レジスタのエントリの制御変更によるハードウェア資源の増加抑制効果 は、複数の CPUコアを有している CPUにおいては、(エントリあたりの増加抑制効果) X (エントリ数) X (ストランド数) X (CPUコア数)で概算することができる。従って、前 述した単一 CPUコアを持つ CPU同様、複数の CPUコアを持つ CPUにおいても、ハ 一ドウ ア増加の抑制効果は非常に大きなものとなる。
[0104] 以上、本発明の実施形態を説明したが、本発明は、上述した各実施形態に限定さ れることなぐ本発明の要旨を逸脱しない範囲内で種々の改良 ·変更が可能である。
Claims
[1] 他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、 前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコ ールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
を有することを特徴とする演算処理装置。
[2] 前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、 信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロス コールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要 求の送信とを制御し、
前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と
、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を 識別する識別子を記憶する第三の記憶領域とを有する、
ことを特徴とする請求項 1に記載の演算処理装置。
[3] 前記記憶部の前記記憶領域に保持されて!、る識別子が何につ!、てのものかを判 定する判定部を更に有することを特徴とする請求項 2に記載の演算処理装置。
[4] 前記判定部は、前記制御部による前記制御の進拔状況を示す情報に基づいて、 前記判定を行うことを特徴とする請求項 3に記載の演算処理装置。
[5] 前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、 前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に 有することを特徴とする請求項 2に記載の演算処理装置。
[6] 複数の演算処理装置を備えた情報処理装置であって、
前記演算処理装置が、
前記情報処理装置に備えられている他の演算処理装置へ宛てて発行されるクロス コールの送信を制御する制御部と、
前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコ ールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
を有する
ことを特徴とする情報処理装置。
[7] 前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、 信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロス コールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要 求の送信とを制御し、
前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と
、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を 識別する識別子を記憶する第三の記憶領域とを有する、
ことを特徴とする請求項 6に記載の情報処理装置。
[8] 前記記憶部の前記記憶領域に保持されて!、る識別子が何につ!、てのものかを判 定する判定部を更に有することを特徴とする請求項 7に記載の情報処理装置。
[9] 前記判定部は、前記制御部による前記制御の進拔状況を示す情報に基づいて、 前記判定を行うことを特徴とする請求項 8に記載の情報処理装置。
[10] 前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、 前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に 有することを特徴とする請求項 7に記載の情報処理装置。
[11] 複数の演算処理部を有する演算処理装置であって、
前記複数の演算処理部のいずれかから他の演算処理装置における演算処理部へ 宛てて発行されるクロスコールの送信を制御する制御部と、
前記演算処理部毎に設けられており、前記クロスコールに係る処理の処理状況と、 前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎 に保持する記憶部と、
を有することを特徴とする演算処理装置。
[12] 前記制御部は、他の演算処理装置における演算処理部宛てのクロスコールの送信 を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行 われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関す るデータの送信要求の送信とを制御し、
前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と
、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を
識別する識別子を記憶する第三の記憶領域とを有する、
ことを特徴とする請求項 11に記載の演算処理装置。
[13] 前記記憶部の前記記憶領域に保持されて!、る識別子が何につ!、てのものかを判 定する判定部を更に有することを特徴とする請求項 12に記載の演算処理装置。
[14] 前記判定部は、前記制御部による前記制御の進拔状況を示す情報に基づいて、 前記判定を行うことを特徴とする請求項 13に記載の演算処理装置。
[15] 前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、 前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に 有することを特徴とする請求項 12に記載の演算処理装置。
[16] 演算処理装置力 他の演算処理装置へ宛てて発行されるクロスコールの送信を前 記演算処理装置で制御する方法であって、
前記クロスコールに係る処理の処理状況と、前記クロスコールの発行履歴とをクロス コールのエントリ毎に前記演算処理装置の記憶部で保持しておくステップ
を有することを特徴とするクロスコールの送信制御方法。
[17] 前記クロスコールに係る処理の処理状況と、当該クロスコールの発行履歴とをクロス コールのエントリ毎に前記演算処理装置の記憶部で保持しておくステップの後に、 前記記憶部の前記記憶領域に保持されて 、る識別子が何にっ 、てのものかを前 記演算処理装置で判定するステップをさらに有することを特徴とする請求項 16に記 載のクロスコールの送信制御方法。
[18] 前記記憶部の前記記憶領域に保持されて 、る識別子が何にっ 、てのものかを前 記演算処理装置で判定するステップの後に、
前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、 そのどちらか一方を前記調停部へ導く信号線へと出力するステップをさらに有するこ とを特徴とする請求項 16に記載のクロスコールの送信制御方法。
[19] 他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信 号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコ ールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求 の送信とを制御する制御部と、
前記クロスコールの発行履歴を保持するための記憶領域として、当該クロスコール を個々に識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の 記憶領域と、前記送信要求を個々に識別する識別子の記憶領域とを有する記憶部 と、
を有することを特徴とする演算処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05816411A EP1936514B1 (en) | 2005-10-04 | 2005-12-19 | Apparatus and method for controlling issue of requests to another operation processing device |
CN2005800517695A CN101278277B (zh) | 2005-10-04 | 2005-12-19 | 运算处理装置 |
US12/062,185 US20080189719A1 (en) | 2005-10-04 | 2008-04-03 | Operation processor apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005290888A JP4856413B2 (ja) | 2005-10-04 | 2005-10-04 | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 |
JP2005-290888 | 2005-10-04 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/062,185 Continuation US20080189719A1 (en) | 2005-10-04 | 2008-04-03 | Operation processor apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007039933A1 true WO2007039933A1 (ja) | 2007-04-12 |
Family
ID=37905979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2005/023251 WO2007039933A1 (ja) | 2005-10-04 | 2005-12-19 | 演算処理装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20080189719A1 (ja) |
EP (1) | EP1936514B1 (ja) |
JP (1) | JP4856413B2 (ja) |
KR (1) | KR100990399B1 (ja) |
CN (1) | CN101278277B (ja) |
WO (1) | WO2007039933A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100003784A (ko) | 2008-07-02 | 2010-01-12 | 주식회사 만도 | 브레이크시스템용 솔레노이드밸브 및 그 제조방법 |
US8918509B1 (en) * | 2011-12-20 | 2014-12-23 | The Mathworks, Inc. | Dynamic arbitrary data simulation using fixed resources |
US9256502B2 (en) * | 2012-06-19 | 2016-02-09 | Oracle International Corporation | Method and system for inter-processor communication |
JP6079065B2 (ja) * | 2012-08-31 | 2017-02-15 | 富士通株式会社 | 情報処理装置,処理方法及びプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0916542A (ja) * | 1995-04-20 | 1997-01-17 | Sun Microsyst Inc | パケット交換コンピュータ・システムにおける割込み通信方法および装置 |
JPH11282821A (ja) * | 1997-10-24 | 1999-10-15 | Digital Equip Corp <Dec> | 同時トランザクションを依存性で管理するための低占有度プロトコル |
JP2003288284A (ja) * | 2002-03-08 | 2003-10-10 | Hewlett Packard Co <Hp> | マルチプロセッサコンピュータアーキテクチャにおいてトランザクションを動的に再送する方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555420A (en) * | 1990-12-21 | 1996-09-10 | Intel Corporation | Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management |
US5907485A (en) * | 1995-03-31 | 1999-05-25 | Sun Microsystems, Inc. | Method and apparatus for flow control in packet-switched computer system |
US5893165A (en) * | 1996-07-01 | 1999-04-06 | Sun Microsystems, Inc. | System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO |
JP2003242097A (ja) * | 2002-02-15 | 2003-08-29 | Hitachi Ltd | クロスコール機能を備えるディスク制御装置 |
US7188229B2 (en) * | 2004-01-17 | 2007-03-06 | Sun Microsystems, Inc. | Method and apparatus for memory management in a multi-processor computer system |
-
2005
- 2005-10-04 JP JP2005290888A patent/JP4856413B2/ja not_active Expired - Fee Related
- 2005-12-19 WO PCT/JP2005/023251 patent/WO2007039933A1/ja active Application Filing
- 2005-12-19 KR KR1020087009682A patent/KR100990399B1/ko not_active IP Right Cessation
- 2005-12-19 CN CN2005800517695A patent/CN101278277B/zh not_active Expired - Fee Related
- 2005-12-19 EP EP05816411A patent/EP1936514B1/en not_active Not-in-force
-
2008
- 2008-04-03 US US12/062,185 patent/US20080189719A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0916542A (ja) * | 1995-04-20 | 1997-01-17 | Sun Microsyst Inc | パケット交換コンピュータ・システムにおける割込み通信方法および装置 |
JPH11282821A (ja) * | 1997-10-24 | 1999-10-15 | Digital Equip Corp <Dec> | 同時トランザクションを依存性で管理するための低占有度プロトコル |
JP2003288284A (ja) * | 2002-03-08 | 2003-10-10 | Hewlett Packard Co <Hp> | マルチプロセッサコンピュータアーキテクチャにおいてトランザクションを動的に再送する方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP1936514A4 * |
Also Published As
Publication number | Publication date |
---|---|
CN101278277B (zh) | 2011-06-08 |
CN101278277A (zh) | 2008-10-01 |
KR20080063777A (ko) | 2008-07-07 |
EP1936514B1 (en) | 2012-12-19 |
US20080189719A1 (en) | 2008-08-07 |
KR100990399B1 (ko) | 2010-10-29 |
JP4856413B2 (ja) | 2012-01-18 |
JP2007102447A (ja) | 2007-04-19 |
EP1936514A1 (en) | 2008-06-25 |
EP1936514A4 (en) | 2010-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3462326B1 (en) | Nvme device, and methods for reading and writing nvme data | |
US20080109573A1 (en) | RDMA systems and methods for sending commands from a source node to a target node for local execution of commands at the target node | |
US20080109569A1 (en) | Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations | |
JP5546635B2 (ja) | データ転送装置およびその制御方法 | |
JP3807250B2 (ja) | クラスタシステム、コンピュータ及びプログラム | |
US10614004B2 (en) | Memory transaction prioritization | |
JP5360061B2 (ja) | マルチプロセッサシステム及びその制御方法 | |
CN107729267B (zh) | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 | |
US7962676B2 (en) | Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords | |
JP2007219816A (ja) | マルチプロセッサシステム | |
JP5499987B2 (ja) | 共有キャッシュメモリ装置 | |
US20080109604A1 (en) | Systems and methods for remote direct memory access to processor caches for RDMA reads and writes | |
CN111290983A (zh) | Usb传输设备及传输方法 | |
WO2007039933A1 (ja) | 演算処理装置 | |
US8756356B2 (en) | Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size | |
JP5158576B2 (ja) | 入出力制御システム、入出力制御方法、及び、入出力制御プログラム | |
JP2006268753A (ja) | Dma回路及びコンピュータシステム | |
US8719499B2 (en) | Cache-line based notification | |
CN114356839B (zh) | 处理写操作的方法、设备、处理器及设备可读存储介质 | |
US20140052879A1 (en) | Processor, information processing apparatus, and interrupt control method | |
JP2014167818A (ja) | データ転送装置およびデータ転送方法 | |
JP2002024007A (ja) | プロセッサシステム | |
JP6303632B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP2003085125A (ja) | メモリ制御器及びメモリ制御方法 | |
JPH0844661A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200580051769.5 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2005816411 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020087009682 Country of ref document: KR |
|
WWP | Wipo information: published in national office |
Ref document number: 2005816411 Country of ref document: EP |