JP2007102447A - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP2007102447A
JP2007102447A JP2005290888A JP2005290888A JP2007102447A JP 2007102447 A JP2007102447 A JP 2007102447A JP 2005290888 A JP2005290888 A JP 2005290888A JP 2005290888 A JP2005290888 A JP 2005290888A JP 2007102447 A JP2007102447 A JP 2007102447A
Authority
JP
Japan
Prior art keywords
unit
call
cross
arithmetic processing
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005290888A
Other languages
English (en)
Other versions
JP4856413B2 (ja
Inventor
Koken Shimizuno
光憲 清水野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005290888A priority Critical patent/JP4856413B2/ja
Priority to KR1020087009682A priority patent/KR100990399B1/ko
Priority to CN2005800517695A priority patent/CN101278277B/zh
Priority to PCT/JP2005/023251 priority patent/WO2007039933A1/ja
Priority to EP05816411A priority patent/EP1936514B1/en
Publication of JP2007102447A publication Critical patent/JP2007102447A/ja
Priority to US12/062,185 priority patent/US20080189719A1/en
Application granted granted Critical
Publication of JP4856413B2 publication Critical patent/JP4856413B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

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)

Abstract

【課題】 計算機システムのマルチコア化や処理のマルチスレッド化によるクロスコールの制御のために要する資源の増大を抑制する。
【解決手段】 XCSC40は、他のCPUへ宛ててCPUコア部20により発行されるクロスコールの送信を制御する。このXCSC40に、当該クロスコールに係る処理の処理状況と、当該クロスコールの発行履歴とを直接対応付けて当該クロスコールのエントリ毎に保持するレジスタ41を設ける。
【選択図】図2

Description

本発明は、CPU等の演算処理装置内部の制御技術に関し、特に、演算処理装置間のクロスコールのための制御技術に関する。
本発明は、CPU間のクロスコールに関し、特にマルチCPUシステムを対象とする。クロスコールとは、プロセッサ間における通信手段の一つであり、仮想メモリにおけるメモリ一貫性を維持するために、OSにより使用される内部プロセッサ割り込みをいう。
本発明に関連する技術として、例えば特許文献1には、リード・リクエストに対するレスポンスがリクエストの発行先に返されるまでの間、システム・バスを解放する方式であるリード・スプリット方式を採用するコンピュータシステムのリード制御装置において、メモリ・リードとI/Oの管理テーブルとを別々に分割して制御することにより、レスポンスの遅いI/Oリードによるリード管理テーブルの占有を防止する技術が開示されている。
また、例えば特許文献2には、共有システム・バスの高速化のために、複数のデータ・プロセッサ、メモリ・ユニット、及びI/Oインタフェースを当該システム・バスへ接続するためのバッファ機能付きの万能インタフェースを提供する技術が開示されている。
但し、これらの技術はどちらもコンピュータシステムの構成に特徴を有するものであり、CPUの内部構成に関するものではない。
特開平11−110343号公報 特開平5−210622号公報
図10は、マルチCPUシステムの概略構成例を示している。この構成例では、CPUA1100、CPUB1200、及びメモリ1400がシステムコントローラ(以下、「SC」と記す)1300に接続されている。ここで、CPUA1100とCPUB1200との各々のCPUコア部1110、1210は、外部インタフェース部1120、1220を各々介してSC1300に接続されている。
クロスコールの制御は外部インタフェース部1120、1220によって行われる。外部インタフェース部1120、1220は、クロスコール送信制御部(以下、「XCSC」(Cross Call Send Controller)と記す)1121、1221とクロスコール受信制御部(以下、「XCRC」(Cross Call Receive Controller )と記す)1122、1222とを各々有している。
ここで、図10に示したシステムにおけるクロスコール送受信の流れを、図11を用いて説明する。
まず、(1)の2つの矢印で示すように、CPUA1100のCPUコア部1110からクロスコールのデータ(太い矢印)とクロスコールリクエストの発行要求(細い矢印)とが送られてくると、(2)の矢印で示すように、XCSC1121はそれらをバッファリングしつつ、SC1300へとクロスコールリクエスト(クロスコール要求)を発行する。
(3)の矢印で示すように、SC1300は、相手先(この場合はCPUB1200)の状態に基づき、相手先がBUSY状態でなければ、すなわち、SC1300自身が有しているレジスタにおける、CPUB1200の状態を示すBUSYビットが立っていなければ、当該BUSYビットを立てる(図11におけるSC1300に記されている矢印)と共に、要求元であるCPUA1100へACK(許可)を返答する。一方、相手先が既にBUSY状態であれば(当該BUSYビットが立っていれば)NACK(不許可)をCPUA1100へ返答する。
CPUA1100は、ACKを受け取った場合には、(4)の矢印で示すように、クロスコールのデータをSC1300へ送信する。一方、NACKを受け取った場合には、所定時間経過後に、改めてクロスコールリクエストのSC1300への発行をXCSC1121に行わせ、以降、ACKを受け取るまで繰り返しクロスコールリクエストの発行をXCSC1121に行わせる。
クロスコールの受信側であるCPUB1200のXCRC1222では、(5)の矢印で示すように、SC1300からクロスコールのデータが送られてくると、そのデータを内部のレジスタへ書き込む。その後、XCRC1222は、(6)の矢印で示すように、CPUB1200のCPUコア部1210へとクロスコール受信通知を送る(外向きの細い矢印)と共にデータを受け渡す(太い矢印)。その後、クロスコールの受信時の作業が完了したことがCPUコア部1210から伝えられると(内向きの細い矢印)、XCRC1222は、(7)の矢印で示すように、SC1300へ、CPUB1200の状態を表すBUSYビットを落とす要求を発行する。従って、上記図11の動作説明において、(2)の矢印で示されるCPUAによるSCへのクロスコールリクエスト(クロスコール要求)の発行から(7)のCPUBによるSCへのBUSY状態の解除までの期間がSCにおけるBUSY期間(BUSY上部の矢印)となる。
XCSC1121、1221は、データレジスタと、クロスコールのBUSY(クロスコール発行中)及びNACK(クロスコールの発行失敗)の状態を記憶するステータスレジスタと、コマンドの発行順及び発行内容を記憶しておくコマンドFIFOとを有している。このステータスレジスタの構成例を図12に示し、コマンドFIFOの構成例を図13に示す。
図12に示すように、ステータスレジスタは、クロスコールのBUSY及びNACKの状態、すなわち、クロスコールに係る処理の処理状況を、BUSYとNACKとのペア番号(BN番号)毎に保持して管理する。
図13に示すように、コマンドFIFOは、クロスコールの発行履歴を保持して管理するものであり、コマンドの発行の状況を管理するための各種のデータを保持すると共に、SC1300へ発行するクロスコールの相手先であるCPU等を示す識別子であるターゲットID(TID)と、逐次発行されるクロスコールを個々に識別するための識別子であるリクエストID(REQID)とを保持する。また、ステータスレジスタとの対応を取るために、上記のBN番号をも保持しておく。なお、ステータスレジスタ及びコマンドFIFOにおいて予め確保されるエントリの数は、CPUコア部1110、1210が発行するクロスコール発行要求数の最大数に一致させるが、これはCPUコア部1110、1210の仕様により決定されるものである。
このように、従来はステータスレジスタとコマンドFIFOとが別個に設けられていたため、両者の対応関係を示すBN番号をコマンドFIFOで保持していた。
このため、近年における大規模SMP(Symmetrical Multi-Processor)システムやマルチコアプロセサのように、計算機システム内においてクロスコールを発行するプロセサ又はプロセサコアの増加とともに、必然的にコマンドFIFOにおけるクロスコール用のエントリ数が増加するため、クロスコール制御に係るハードウェア資源が増大するという問題があった。
本発明は上述した問題に鑑みてなされたものであり、その解決しようとする課題は、計算機システムにおける大規模SMP化及びプロセサのマルチコア化並びに処理のマルチスレッド化によるクロスコールの制御のために要する資源の増大を抑制することである。
上記目的を達成するために、本発明の演算処理装置は、他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、を有する演算処理装置であることを特徴とする。
さらに、本発明の演算処理装置は、前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する演算処理装置であることを特徴とする。
さらに、本発明の演算処理装置は、前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有することを特徴とする演算処理装置であることを特徴とする。
さらに、本発明の演算処理装置は、前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行うことを特徴とする演算処理装置であることを特徴とする。
前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有する演算処理装置であることを特徴とする。
さらに、本発明の情報処理装置は、複数の演算処理装置を備えた情報処理装置であって、前記演算処理装置が、前記情報処理装置に備えられている他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、を有する情報処理装置であることを特徴とする。
さらに、本発明の情報処理装置は、前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する情報処理装置であることを特徴とする。
さらに、本発明の情報処理装置は、前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有することを特徴とする情報処理装置であることを特徴とする。
さらに、本発明の情報処理装置は、前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行うことを特徴とする情報処理装置であることを特徴とする。
さらに、本発明の情報処理装置は、前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有する情報処理装置であることを特徴とする。
さらに、本発明の演算処理装置は、複数の演算処理部を有する演算処理装置であって、前記複数の演算処理部のいずれかから他の演算処理装置における演算処理部へ宛てて発行されるクロスコールの送信を制御する制御部と、前記演算処理部毎に設けられており、前記クロスコールに係る処理の処理状況と、前期処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、を有する演算処理装置であることを特徴とする。
さらに、本発明の演算処理装置は、前記制御部は、他の演算処理装置における演算処理部宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域と、を有する演算処理装置であることを特徴とする。
さらに、本発明の演算処理装置は、前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有する演算処理装置であることを特徴とする。
さらに、本発明の演算処理装置は、前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行う演算処理装置であることを特徴とする。
さらに、本発明の演算処理装置は、前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有する演算処理装置であることを特徴とする。
さらに、本発明のクロスコールの送信制御方法は、演算処理装置から他の演算処理装置へ宛てて発行されるクロスコールの送信を前記演算処理装置で制御する方法であって、前記クロスコールに係る処理の処理状況と、前記クロスコールの発行履歴とをクロスコールのエントリ毎に前記演算処理装置の記憶部で保持しておくステップを有することを特徴とするクロスコールの送信制御方法であることを特徴とする。
さらに、本発明のクロスコールの送信制御方法は、前記クロスコールに係る処理の処理状況と、当該クロスコールの発行履歴とをクロスコールのエントリ毎に前記演算処理装置の記憶部で保持しておくステップの後に、前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを前記演算処理装置で判定するステップをさらに有するクロスコールの送信制御方法であることを特徴とする。
さらに、本発明のクロスコールの送信制御方法は、前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを前記演算処理装置で判定するステップの後に、前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、そのどちらか一方を前記調停部へ導く信号線へと出力するステップをさらに有するクロスコールの送信制御方法であることを特徴とする。
さらに、本発明の演算処理装置は、他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、前記クロスコールの発行履歴を保持するための記憶領域として、当該クロスコールを個々に識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の記憶領域と、前記送信要求を個々に識別する識別子の記憶領域とを有する記憶部と、を有する演算処理装置であることを特徴とする。
さらに、本発明の情報処理装置は、複数の演算処理装置を備えた情報処理装置であって、前記演算処理装置が、前記情報処理装置に備えられている他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を前記演算処理装置の外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、前記クロスコールの発行履歴を保持するための記憶領域として、前記クロスコールを識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを共用している記憶部と、を有する情報処理装置であることを特徴とする。
さらに、本発明のクロスコールの演算処理装置は、複数の演算処理部を有する演算処理装置であって、他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、前記演算処理部毎に設けられており、前記クロスコールの発行履歴を保持するための記憶領域として、前記クロスコールを識別する識別子の記憶領域と、前記発行要求を識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを共用している記憶部と、を有する演算処理装置であることを特徴とする。
さらに、本発明のクロスコールの送信制御方法は、演算処理装置から他の演算処理装置へ宛てて発行されるクロスコールの送信を前記演算処理装置で制御する方法であって、信号を前記演算処理装置から外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求と、前記クロスコールに係る処理に関するデータの送信要求とを制御するステップと、前記クロスコールを識別する識別子の記憶領域と、前記発行要求を識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを有する記憶部において、前記クロスコールの発行履歴を保持するステップと、を有するクロスコールの送信制御方法であることを特徴とする。
本発明によれば、以上のようにすることにより、計算機システムのマルチコア化や処理のマルチスレッド化によるクロスコールの制御のために要する資源の増大が抑制されるという効果を奏する。
まず、本発明における実施の形態を説明する前に、図11の(1)から(4)にかけての矢印で示されているクロスコール送信時における、XCSC1121の内部動作について説明する。
CPUコア部1110から送られてきたクロスコールのデータがデータレジスタに書き込まれた後、BN番号の指定を伴ったBUSYビットへの書き込み要求がCPUコア部1110から送られてくる。この要求に応じ、ステータスレジスタにおける指定されているBN番号のBUSYビットが立てられるのと同時に、コマンドFIFOに当該BN番号が格納され、更にVLD(Valid )ビットがセットされる。このとき、XCSC1121よりXCALL_REQ(クロスコールリクエスト)の発行要求が調停部へと送信される。
調停部は、CPUコア部1110とSC1300との間のバス(信号線)の使用の優先順位を調停し、コマンドの発行を効率的に行えるように、且つ仕様に則って行うように、制御するためのブロックであり、外部インタフェース部1120に設けられている(もちろん、調停部は、CPU1200の外部インタフェース部1220にも同様に設けられている)。この調停部においてバスの使用権が得られると、コマンドFIFO内の当該BN番号に対応するISD(Issued)ビットがセットされ、前述のXCALL_REQをSC1300へ発行する。
ここで、SC1300からNACKが返ってきた場合には、ステータスレジスタのBUSYビットとコマンドFIFOのVALIDビットとを落とし、代わってステータスレジスタのNACKビットをセットし、クロスコールの発行失敗を表示する。一方、SC1300からACKが返ってきた場合には、データレジスタに保持しておいたデータをSC1300へ発行し、併せて、コマンドFIFOのVLDビット及びISDビットと、ステータスレジスタのBUSYビットとを落とす。
XCSC1121内部では以上のような動作を行っていた。
このように、従来は、上述したXCSC1121の動作において、ACKをSC1300から受信した後のデータ送信は常に固定した動作サイクルの後に行われており、また、このデータ送信はACK受信後直ちに可能であったので、データ送信用のリクエスト信号は不要であった。
ところが、このACK受信後のデータ送信のタイミングが不定の場合には、クロスコールに係る処理に関するデータの送信の要求(Slave Write Cross Call Request、以下、「SWXC_REQ」と記す)の発行要求を調停部へ発行すると共に、当該データ送信の発行順を制御する必要が生じる。なお、ACK受信後のデータ送信タイミングが固定であるか否かは、バスの仕様に依存するものである。
更に加えて、XCALL_REQの発行順にACKがSC1300から返ってくるかどうかもバスの仕様に依存している。従って、SC1300側で例えば待ち合わせ回路の削減等の事情により、XCALL_REQの発行順にACKがSC1300から返ってくることが保証されていない場合には、SWXC_REQ発行時にも返答の順番が入れ替わる可能性が生じる。
従って、上述した従来のコマンドFIFOのエントリ構成のままでこの返答の順番の入れ替わりに対処するには、途中で順番が入れ替わる可能性があるため複雑な制御が必要となるが、エントリ毎に単純に制御回路を増やせば、クロスコールのエントリ数が多いため、非常に多くの資源を必要とすることとなる。
次に、本発明の実施の形態を図面に基づいて説明する。
図1は、本発明を実施するマルチCPUシステムの構成を示している。
同図において、CPUA10、CPUB110、及びメモリ400がSC300に接続されている。ここで、CPUA10とCPUB110との各々のCPUコア部20、120は、外部インタフェース部30、130を各々介してSC300に接続されている。この外部インタフェース部30、130には、XCSC40、140とXCRC50、150とが各々備えられている。ここで、同図におけるCPU間クロスコールは、例えばCPUA10及びCPUB110との間において、SC300を介することにより、実行される。
次に図2について説明する。同図は、本発明を実施するCPUA10の外部インタフェース部の構成を示している。なお、同図は図1におけるCPUA10の外部インタフェース部30の構成を示しているが、CPUB110の外部インタフェース部130も同様の構成を有している。
CPUA10のCPUコア部20は、外部インタフェース部30を介してSC300に接続されている。
クロスコールの制御は外部インタフェース部30によって行われる。外部インタフェース部30は、XCSC40、XCRC50、及び調停部70を有している。ここで、XCSC40はクロスコールの送信制御を行うものであり、XCRC50はクロスコールの受信制御を行うものである。また、調停部70は、CPUコア部20とSC300との間のバス(信号線)の使用の権限(優先順位)を調停し、コマンドの発行を効率的に行えるように、且つ仕様に則って行うように、制御するものである。
XCSC40はレジスタ41、ID判定回路42、ID記憶制御回路43、発行要求切り替え回路44、動作制御部45、及びデータレジスタ60を有している。
レジスタ41は、各クロスコールのBUSY及びNACKの状態並びにコマンドの発行内容をクロスコールの管理のために一括して記憶しておく記憶部として機能する。
ID判定回路42は、レジスタ41の所定の記憶領域に保持される識別子(ID)が何についてのものであるかを、XCSC40による制御動作の進捗状況を示すステータス情報に基づいて判定するものである。また、ID記憶制御回路43は、レジスタ41の当該所定の記憶領域で保持させる識別子を、XCSC40による制御動作の進捗状況を示すステータスに応じて選択するものである。
発行要求切り替え回路44は、クロスコールの発行要求と当該クロスコールに係る処理に関するデータの送信要求とを、CPUコア部20とSC300との間のバスの使用状況に基づいて切り替えるものである。
動作制御部45は、XCSC40の動作制御を行うものである。
データレジスタ60は、CPUコア部20から送られてきたクロスコールのデータを一時的に格納しておくものである。
次に図3について説明する。同図は、図2に示したレジスタ41の構成を例示している。
図3に示すように、このレジスタ41は、クロスコールに係る処理の処理状況、すなわち、クロスコールのBUSY(クロスコール発行中)及びNACK(クロスコールの発行失敗)の状態を、クロスコールのエントリ毎、ここではBUSYとNACKとのペア番号(BN番号)毎に保持して管理する。加えて、このレジスタ41は、クロスコールの発行履歴の管理のため、コマンドの発行の状況を管理するための各種のデータ(図3では「etc」と表示)を保持すると共に、SC300へ発行するクロスコールの相手先であるCPU等を示す識別子であるターゲットID(TID)をBN番号毎に保持して管理する。更に、レジスタ41にはHOLD_IDなる記憶領域がBN番号毎に用意されている。この記憶領域には、XCALL_REQ_ID、SWXC_REQ_ID、及びREQIDのいずれかが記憶されて管理される。
ここで、XCALL_REQ_IDは、XCSC40が調停部70へ送付する、XCALL_REQ(クロスコール要求)の発行要求の管理のために、当該発行要求に対して個々に与えられる識別子である。
また、SWXC_REQ_IDは、XCSC40が調停部70へ送付する、SWXC_REQ(クロスコールに係る処理に関するデータの送信要求)の発行要求の管理のために、当該発行要求に対して個々に与えられる識別子である。
なお、REQIDは、クロスコールを個々に識別するための識別子である。
このように、クロスコールに係る処理の処理状況と、当該クロスコールの発行履歴とを直接対応付けて当該クロスコールのエントリ毎にレジスタ41で保持するようにしたことにより、これらを対応付けるための情報を保持しておくための専用の記憶領域が不要となる。また、従来は、上述した各識別子を別々の記憶領域で記憶して管理していたが、このように同一の記憶領域を共用することにより、記憶領域の節約となる。
但し、同一の記憶領域を共用してこれらの識別子の管理を行うためには、当該記憶領域に記憶されている識別子が上述したもののうちのどれであるかを判別できなければならない。以下、この判別の手法について説明する。
図4について説明する。同図は、図2のXCSC40の動作制御部45によるクロスコールの送信制御動作の流れを示しており、併せて、当該制御動作の進捗状況を示すステータス情報である、XCALL_VLD、XCALL_ISD、SWXC_VLDの各ビットの遷移の様子を表している。
まず、S101は初期状態を示しており、これは、SC300に接続されている他のCPU(図1においてはCPUB110)へ宛てて発行されるCPUコア部20からのクロスコールをレジスタ41へ受け入れることが可能な状態である。
ここで、CPUコア部20からまずXCALL_REQ(クロスコールリクエスト)の発行要求と当該XCALL_REQに対応するBN番号とが送られてくる。すると、制御動作はS102へと進み、XCSC40はCPUコア部20から次に送られてくるクロスコールのデータをデータレジスタ60に書き込むと共に、その発行要求と共に送られてきたBN番号に対応するレジスタ41のエントリにおけるBUSYビットを立てる。そして、XCALL_REQの発行要求を調停部70へと送信すると共に、当該BN番号に対応するXCALL_VLDビットをセットして当該発行要求の送信完了を表示する。なお、当該発行要求の送信に併せて、この発行要求を個々に識別するための識別子であるXCALL_REQ_IDを生成してレジスタ41の当該エントリのHOLD_IDで保持する。
XCALL_REQの発行要求に対し調停部70においてバスの使用権が得られると、制御動作はS103へと進み、XCSC40は、XCALL_REQをSC300へ発行すると共に、レジスタ41内の当該エントリのXCALL_VLDビットを落とし、その代わりに当該エントリのXCALL_ISDビットをセットしてXCALL_REQの発行完了を表示する。なお、XCSC40は、このXCALL_REQを個々に識別するための識別子であるREQIDを生成し、XCALL_REQと共にSC300へ送信する。レジスタ41の当該エントリのHOLD_IDでは、XCALL_REQ_IDに代えて、このREQIDを保持する。
このXCALL_REQの発行に対し、SC300からNACKが返ってきた場合には、制御動作はS104へと進み、レジスタ41の当該エントリのXCALL_ISDビットとを落とし、この代わりに当該エントリのNACKビットをセットしてクロスコールの発行失敗を表示し、CPUコア部20によるクロスコールリクエストの発行要求のリトライを待つこととなる。ここで、例えば所定時間経過後にCPUコア部20からのクロスコールリクエストの発行要求を改めて受けた場合には、制御動作はS102へと戻り、上述した制御動作が再度行われる。
一方、XCALL_REQの発行に対し、SC300からACKが返ってきた場合には、制御動作はS105へと進み、XCSC40は、SWXC_REQの発行要求を調停部70へと送信すると共に、レジスタ41の当該エントリのXCALL_ISDビットを落とし、この代わりに当該エントリのSWXC_VLDビットをセットして当該発行要求の送信完了を表示する。このとき、当該発行要求の送信に併せて、この発行要求を個々に識別するための識別子であるSWXC_REQ_IDを生成し、レジスタ41の当該エントリのHOLD_IDで、REQIDに代えて、このSWXC_REQ_IDを保持する。
SWXC_REQの発行要求に対し調停部70においてバスの使用権が得られると、制御動作はS106へと進み、XCSC40は、レジスタ41の当該エントリのSWXC_VLDビットを落とし、データレジスタに保持しておいたデータを含めたSWXC_REQを調停部70へと送信し、当該データをSC300へと発行する。
以上のようにしてクロスコールのデータの発行が完了したときには、XCSC40は、レジスタ41の当該エントリのBUSYビットを落とし、制御動作はS101へと戻り、上述した制御動作が再度行われる。
CPUコア部20からのクロスコールリクエストの発行要求において指定されているBN番号に対応するレジスタ41の各エントリの内容は、XCSC40におけるクロスコールの送信制御動作の流れに応じ、上述したように遷移する。従って、当該エントリにおけるHOLD_IDに現在保持されている識別子が何であるかは、当該エントリのステータス、すなわち、XCALL_VALID、XCALL_ISD、及びSWXC_VLDの各ビットの状態により判別することができるのである。
次に、ID判定回路42、ID記憶制御回路43、及び発行要求切り替え回路44について説明する。
まず図5について説明する。同図はID判定回路42の回路例を示している。ID判定回路42は、レジスタ41の各エントリのHOLD_IDに保持されている識別子が何についてのものであるかを、XCSC40による前述した制御動作の進捗状況を示すステータス情報に基づいて判定するものである。なお、このID判定回路42は、エントリ毎に別個に設けられる。
図5において、一致回路81a、81b、81cは、2つの入力に各々入力された識別子(ID)が一致した場合にのみ、「H」レベルの出力を行うものである。また、AND回路82a、82b、82cは、2つの入力がどちらも「H」レベルのときにのみ、「H」レベルの出力を行うものである。ここで、AND回路82aの出力であるXCALL_ISD_ID_MCHは、レジスタ41の判定対象のエントリのHOLD_IDに保持していた識別子が、XCALL_REQ_IDであるときに「H」レベルとなる。また、AND回路82bの出力であるREQ_ISD_ID_MCHは、当該判定対象のエントリのHOLD_IDに保持していた識別子が、REQ_IDであるときに「H」レベルとなる。また、AND回路82cの出力であるSWXC_ISD_ID_MCHは、当該判定対象のエントリのHOLD_IDに保持していた識別子が、SWXC_REQ_IDであるときに「H」レベルとなる。
図5において、HOLD_IDの入力には、レジスタ41において指定されているBN番号に対応するエントリのHOLD_IDに保持されている識別子が入力される。また、図5におけるXCALL_REQ_ID、REQID、SWXC_REQ_IDの各入力には、それぞれ、XCSC40で上記のようにして生成した同一名称の識別子が入力される。更に、図5におけるXCALL_VLD、XCALL_ISD、SWXC_VLDの各入力には、それぞれ、レジスタ41の判定対象であるエントリにおける同一名称の各ビットの状態が入力される。
従って、図5の回路によれば、当該エントリのHOLD_IDに保持されている識別子が、XCSC40で生成したXCALL_REQ_ID、REQID、SWXC_REQ_IDのいずれかと一致した場合にのみ、同図の回路の3つの出力(XCALL_ISD_ID_MCH、REQ_ISD_ID_MCH、及びSWXC_ISD_ID_MCH)のうちのいずれかが「H」レベルとなる。つまり、判定対象であるエントリのXCALL_VLDフラグが立っていれば(すなわち、XCSC40が図4のS102までの制御動作を行っていたときには)、図5におけるXCALL_VALID時にXCALL_REQ_IDとHOLD_IDが一致していることを表すXCALL_ISD_ID_MCHの出力のみが「H」レベルとなり、当該エントリのHOLD_IDに保持していた識別子が、XCALL_REQ_IDであるとの判定結果が示される。また、この場合において、当該エントリのXCALL_ISDフラグが立っていれば(すなわち、XCSC40が図4のS103までの制御動作を行っていたときには)、図5におけるREQ_ISD_ID_MCHの出力のみが「H」レベルとなり、当該エントリのHOLD_IDに保持していた識別子が、REQIDであるとの判定結果が示される。更に、この場合において、当該エントリのSWXC_VLDフラグが立っていれば(すなわち、XCSC40が図4のS105までの制御動作を行っていたときには)、図5におけるSWXC_ISD_ID_MCHの出力のみが「H」レベルとなり、当該エントリのHOLD_IDに保持していた識別子が、SWXC_REQ_IDであるとの判定結果が示される。
以上のように、XCALL_ISD_ID_MCH、REQ_ISD_ID_MCH、及びSWXC_ISD_ID_MCHの出力の状態を参照することにより、レジスタ41の判定対象であるエントリのHOLD_IDに保持していた識別子が何であるかを判定することができる。
次に図6について説明する。同図はID記憶制御回路43の回路例を示している。ID記憶制御回路43は、ID判定回路42からの出力の一部を利用し、レジスタ41の各エントリのステータスに応じて当該エントリのHOLD_IDに保持させるIDを選択するものである。なお、このID記憶制御回路43も、レジスタ41のエントリ毎に別個に設けられる。
図6において、AND回路91aは、2つの入力がどちらも「H」レベルのときにのみ、すなわち、当該エントリのXCALL_ISDビットがセットされており、且つ、ID判定回路42から出力されるXCALL_ISD_ID_MCHが「H」レベルのときにのみ、「H」レベルの出力を行う。この出力は、XCSC40が図4のS103の制御動作を行ったことを示す。
また、AND回路91bは、2つの入力がどちらも「H」レベルのときにのみ、すなわち、SC300からACKが帰ってきており、且つ、ID判定回路42から出力されるXREQ_ISD_ID_MCHが「H」レベルのときにのみ、「H」レベルの出力を行う。この出力は、XCSC40が図4のS105の制御動作を行ったことを示す。
AND回路91cは、ID判定回路42から出力されるXCALL_ISD_ID_MCHが「H」レベルのとき、すなわち、レジスタ41の判定対象のエントリのHOLD_IDに保持していた識別子がXCALL_REQ_IDであったときに、XCSC40が図4のS103の制御動作を行ったことにより生成したREQIDをそのまま出力するものである。
AND回路91dは、ID判定回路42から出力されるREQ_ISD_ID_MCHが「H」レベルのとき、すなわち、レジスタ41の判定対象のエントリのHOLD_IDに保持していた識別子がREQIDであったときに、XCSC40が図4のS105の制御動作を行ったことにより生成したSWXC_REQ_IDをそのまま出力するものである。
OR回路92aは、その3つの入力である、当該エントリのXCALL_ISDビットとAND回路91a及び91bとのうちの少なくとも1つ以上が「H」レベルのときに、「H」レベルの出力を行うものである。ここで、当該エントリのXCALL_ISDビットが「H」レベルとなるのは、XCSC40が図4のS101の制御動作を行ったときである。従って、OR回路92aの出力が「H」レベルとなるのは、XCSC40が図4のS101、S103、S105のいずれかの制御動作を行ったときである。
OR回路92bは、その3つの入力に各々排他的に入力される識別子である、XCALL_REQ_ID、REQID、SWXC_REQ_IDのうちのいずれか1つのみをそのまま出力するものである。
記憶領域93は、レジスタ41において指定されているBN番号に対応するエントリのHOLD_IDの領域を表している。ここで、図6には「EN」の表示があるが、この表示は、OR回路92aの出力が記憶領域93でのデータ記憶についてのイネーブル(ENABLE)として作用することを表している。つまり、OR回路92aの出力が「H」レベルとなったとき、すなわち、XCSC40が図4のS101、S103、S105のいずれかの制御動作を行ったときに、OR回路92bから出力されている識別子を保持するように記憶領域93は動作する。
なお、図6において、XCALL_REQ_IDの値は、XCALL_VLDビットが無効のときには「0」であるとする。
図6に示したID記憶制御回路43の動作について更に説明する。
XCSC40が図4のS102の制御動作を行うと、XCALL_REQ_IDが生成されると共に、XCALL_VLDビットがセットされる。従って、図6の回路では、このときに、CPUコア部20から送られてきたクロスコールリクエストの発行要求において指定されているBN番号に対応するレジスタ41のエントリにおけるHOLD_ID(記憶領域63)にはXCALL_REQ_IDが保持されることとなる。
また、XCSC40が図4のS103の制御動作を行うと、REQIDが生成されると共に、XCALL_VLDビットが落とされ、代わりにXCALL_ISDビットがセットされる。このとき、当該エントリにおけるHOLD_IDにはXCALL_REQ_IDが保持されているので、図5の回路におけるXCALL_ISD_ID_MCHの出力は「H」レベルとなっている。従って、このときにはOR回路92aが改めて「H」レベルとなるので、当該エントリにおけるHOLD_IDにはREQIDが保持されることとなる。
その後、XCSC40が図4のS105の制御動作を行うと、SWXC_REQ_IDが生成されると共に、XCALL_ISDビットが落とされる。このとき、SC300からACKが返ってきている。また、このときには、当該エントリにおけるHOLD_IDにはREQIDが保持されているので、図5の回路におけるREQ_ISD_ID_MCHの出力は「H」レベルとなっている。従って、このときにはOR回路92aが改めて「H」レベルとなるので、当該エントリにおけるHOLD_IDにはSWXC_REQ_IDが保持され、当該HOLD_IDの値が出力されることとなる。
このように、ID記憶制御回路43は、XCSC40の送信制御動作の流れに応じ、その時点でXCSC40の内部処理のために保持しておく必要のある識別子を、レジスタ41の各エントリのHOLD_IDに保持させる。
以上のように、従来は別個に設けられていたステータスレジスタとコマンドFIFOとをレジスタ41として一体化したことにより、従来はコマンドFIFOに設けられていたBN番号の記憶領域が削減される。また、ID判定回路42及びID記憶制御回路43を設けたことにより、XCALL_REQ_ID、REQID、SWXC_REQ_IDを保持しておくための記憶領域の共用化を可能にし、記憶領域を従来から増加させることなく、クロスコール制御におけるハードウェア資源の増加を抑制することが可能となる。
このような、レジスタのエントリの制御変更によるハードウェア資源の増加抑制効果は、(エントリあたりの増加抑制効果)×(エントリ数)×(ストランド数)で概算することができる。ここで、ストランド数とは、物理的な1つのCPUコア当たりで構築される論理的なコアの数を示している。近年のCPUのマルチコア化の進展とマルチスレッド処理の採用により、エントリ数及びストランド数はどちらも増加する傾向にあるので、この増加抑制効果は非常に大きなものとなる。
次に図7について説明する。同図は発行要求切り替え回路44の回路例を示している。
調停部70では、XCALL_REQの発行要求とSWXC_REQの発行要求とが競合しても選択されるのはどちらか一方のみであり、同時に両方が発行されることはないことは明らかである。また、バスを介してデータ送信を行っている間は、XCALL_REQのような、他の情報を伴わないコマンドを発行することは可能であるが、CPUコア部20から送られてきたクロスコールに関するデータを含むSWXC_REQのような、他の情報を含むコマンドを発行することはできない。
そこで、XCSC40を以下のように制御する。すなわち、CPUA10とSC300との間のバスの使用状況を示すBUSYフラグが立っている期間、すなわち、当該バスを介してデータ送信を行っている期間においてはSWXC_REQ発行要求を抑止する一方で、その期間においてもXCALL_REQ発行要求はXCSC40から調停部70へ送信するように制御する。これに対し、当該BUSYフラグが落ちている期間、すなわち、バスを介したデータ送信を行っていない期間においてはSWXC_REQ発行要求を優先して調停部70へ送信し、SWXC_REQ発行要求がないときにはXCALL_REQ発行要求を調停部70へ送信するように制御する。ここで、同一のBN番号に対応するXCALL_REQの発行要求とSWXC_REQの発行要求とは排他的に生じるものであって同時に生じることはないので、このような制御を行ってもクロスコール動作が滞ることはない。
発行要求切り替え回路44はこの制御を行う回路である。
図7において、OR回路101は、2つの入力のうちの少なくとも1つ以上が「H」レベルのとき、すなわち、2つのAND回路102a、102bの各々の出力のうちの少なくとも1つ以上が「H」レベルのときに、「H」レベルの出力を行う。
ここで、AND回路102aの出力が「H」レベルとなるのは、CPUコア部20とSC300との間のバスの使用状況を示すBUSYビット(DATA_BUSY)が立っている状態の下で、XCALL_REQ_PREビットが「H」レベルとなった場合のみである。ここで、XCALL_REQ_PREビットとは、図4に示したXCSC40の送信制御動作がS102へと進み、XCALL_REQ発行要求を発生させるためのトリガとしてXCSC40内部でセットされる(「H」レベルとされる)ビットである。つまり、CPUコア部20とSC300との間でバスを介してデータ送信を行っている状態の下で、XCALL_REQ発行要求が生じた場合に、AND回路102aは「H」レベルとなる。
また、AND回路102bの出力が「H」レベルとなるのは、当該BUSYビットが立っていない状態であって、且つ、SWXC_REQ_PREビットが「L」レベルの状態の下でXCALL_REQ_PREビットが「H」レベルとなった場合のみである。ここで、SWXC_REQ_PREは、図4に示したXCSC40の送信制御動作がS105へと進み、SWXC_REQ発行要求を発生させるためのトリガとしてXCSC40内部でセットされる(「H」レベルとされる)ビットである。つまり、バスを介したデータ送信を行っていない期間であって、且つ、SWXC_REQ発行要求がない期間において、XCALL_REQ発行要求が生じた場合に、AND回路102bは「H」レベルとなる。
OR回路71は、上記した2つの場合にのみ、XCALL_REQを「H」レベルとしてXCALL_REQ発行要求の調停部70への送信を許可する。
一方、AND回路102cは、当該BUSYビットが立っていない状態の下でSWXC_REQ_PREが「H」レベルとなった場合にのみ、つまり、バスを介したデータ送信を行っていない期間において、SWXC_REQ発行要求が生じた場合にのみ、SWXC_REQを「H」レベルとしてSWXC_REQ発行要求の調停部70への送信を許可する。
以上のように動作する回路をXCSC40に備えることにより、XCSC40から調停部70への配線が、XCALL_REQのためのものとSWXC_REQのためのものとで共用できるようになるので、これらの信号線を別個に調停部70へ配線する場合に比べ、CPUコア部20からの他のリクエストとの調停を取るために配線が密集する調停部70周辺の配線量が減少する。
次に、本発明の他の実施形態について説明する。これより説明する実施形態は、複数のCPUコアを有しているCPUでマルチCPUシステムを構成するものである。このマルチCPUシステムの構成を図8に示す。
同図において、CPUA510、CPUB610、及びメモリ400がSC300に接続されている。ここで、CPUA510はCPUコア部AA520とCPUコア部AB521とを有しており、CPUB610はCPUコア部BA620とCPUコア部BB621とを有している。CPUコア部AA520及びCPUコア部AB521は、どちらも外部インタフェース部530を介してSC300に接続されており、CPUコア部BA620及びCPUコア部BB621は、どちらも外部インタフェース部630を介してSC300に接続されている。外部インタフェース部530、630には、XCSC540、640とXCRC550、650とが各々備えられている。
次に図9について説明する。同図は、図8に示したCPUA510の外部インタフェース部530の構成を示している。なお、図8に示したCPUB610の外部インタフェース部630も同様の構成を有している。
CPUA510のCPUコア部AA520及びCPUコア部AB521は、どちらも外部インタフェース部530を介してSC300に接続されている。
クロスコールの制御は外部インタフェース部530によって行われる。外部インタフェース部530は、XCSC540、XCRC550、及び調停部570を有している。ここで、XCSC540はクロスコールの送信制御を行うものであり、XCRC550はクロスコールの受信制御を行うものである。また、調停部570は、2つのCPUコア部520、521とSC300との間のバス(信号線)の使用の権限(優先順位)を調停し、コマンドの発行を効率的に行えるように、且つ仕様に則って行うように、制御するものである。
XCSC540の構成はレジスタ541、ID判定回路542、ID記憶制御回路543、発行要求切り替え回路544、動作制御部545、及びデータレジスタ560を有している。
レジスタ541は、各クロスコールのBUSY及びNACKの状態並びにコマンドの発行内容をクロスコールの管理のために一括して記憶しておく記憶部として機能する。なお、レジスタ541は、CPUコア部AA520用のレジスタ541−1と、CPUコア部AB521用のレジスタ541−2とを有している。なお、このレジスタ541−1及び541−2の構成は、どちらも図3に示したレジスタ41の構成と同一である。
ID判定回路542は、レジスタ541の所定の記憶領域に保持される識別子(ID)が何についてのものであるかを、XCSC540による制御動作の進捗状況を示すステータス情報に基づいて判定するものであり、図5に示したID判定回路42と同一構成のものである。また、ID記憶制御回路543は、レジスタ541の当該所定の記憶領域で保持させる識別子を、XCSC540による制御動作の進捗状況を示すステータスに応じて選択するものであり、図6に示したID記憶制御回路43と同一構成のものである。
発行要求切り替え回路544は、クロスコールの発行要求と当該クロスコールに係る処理に関するデータの送信要求とを、2つのCPUコア部520、521とSC300との間のバスの使用状況に基づいて切り替えるものであり、図7に示した発行要求切り替え回路44と同一構成のものである。
動作制御部545は、XCSC540の動作制御を行うものであり、動作制御部545によって行われるXCSC40のクロスコールの送信制御動作の流れは、図4に示したものと同一の流れによって行われる。
データレジスタ460は、2つのCPUコア部520、521から送られてきたクロスコールのデータを一時的に格納しておくものである。
このように、複数のCPUコアを有しているCPUにおいても、従来はCPUコア毎に別個に設けられていたステータスレジスタとコマンドFIFOとをレジスタ541−1及び541−2として一体化してCPUコア毎に設けたことにより、従来はコマンドFIFOに設けられていたBN番号の記憶領域が削減される。また、ID判定回路542及びID記憶制御回路543を設けることで、前述した実施例と同様、レジスタ541−1及び541−2におけるXCALL_REQ_ID、REQID、SWXC_REQ_IDを保持しておくための記憶領域の共用化を可能にしたことにより、記憶領域を従来から増加させることなく、クロスコール制御における仕様の変更への対処が可能となる。
このような、レジスタのエントリの制御変更によるハードウェア資源の増加抑制効果は、複数のCPUコアを有しているCPUにおいては、(エントリあたりの増加抑制効果)×(エントリ数)×(ストランド数)×(CPUコア数)で概算することができる。従って、前述した単一CPUコアを持つCPU同様、複数のCPUコアを持つCPUにおいても、ハードウェア増加の抑制効果は非常に大きなものとなる。
以上、本発明の実施形態を説明したが、本発明は、上述した各実施形態に限定されることなく、本発明の要旨を逸脱しない範囲内で種々の改良・変更が可能である。
なお、上記した実施の形態から次のような構成の技術的思想が導かれる。
(付記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)
他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、
前記クロスコールの発行履歴を保持するための記憶領域として、当該クロスコールを個々に識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の記憶領域と、前記送信要求を個々に識別する識別子の記憶領域とを有する記憶部と、
を有することを特徴とする演算処理装置。
(付記20)
複数の演算処理装置を備えた情報処理装置であって、
前記演算処理装置が、
前記情報処理装置に備えられている他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を前記演算処理装置の外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、
前記クロスコールの発行履歴を保持するための記憶領域として、前記クロスコールを識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを共用している記憶部と、
を有する
ことを特徴とする情報処理装置。
(付記21)
複数の演算処理部を有する演算処理装置であって、
他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、
前記演算処理部毎に設けられており、前記クロスコールの発行履歴を保持するための記憶領域として、前記クロスコールを識別する識別子の記憶領域と、前記発行要求を識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを共用している記憶部と、
を有することを特徴とする演算処理装置。
(付記22)
演算処理装置から他の演算処理装置へ宛てて発行されるクロスコールの送信を前記演算処理装置で制御する方法であって、
信号を前記演算処理装置から外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求と、前記クロスコールに係る処理に関するデータの送信要求とを制御するステップと、
前記クロスコールを識別する識別子の記憶領域と、前記発行要求を識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを有する記憶部において、前記クロスコールの発行履歴を保持するステップとを有する、
ことを特徴とするクロスコールの送信制御方法。
本発明を実施するマルチCPUシステムの構成を示す図である。 図1に示されているCPUAの外部インタフェース部の構成を示す図である。 図2に示されているレジスタの構成を示す図である。 XCSCによるクロスコールの送信制御動作の流れを示す図である。 ID判定回路の回路例を示す図である。 ID記憶制御回路の回路例を示す図である。 発行要求切り替え回路の回路例を示す図である。 複数のCPUコアを有しているCPUで構成したマルチCPUシステムの構成例を示す図である。 図8に示したCPUAの外部インタフェース部の構成を示す図である。 マルチCPUシステムの概略構成例を示す図である。 クロスコール送受信の流れを説明する図である。 ステータスレジスタの構成例を示す図である。 コマンドFIFOを示す図である。
符号の説明
10、510、1100 CPUA
20、120、1110、1210 CPUコア部
30、130、530、630、1120、1220 外部インタフェース部
40、140、540、640、1121、1221 XCSC
41、541、541−1、541−2 レジスタ
42、542 ID判定回路
43、543 ID記憶制御回路
44、544 発行要求切り替え回路
45、545 動作制御部
50、150、550、650、1122、1222 XCRC
60、560 データレジスタ
70、570 調停部
81a、81b、81c 一致回路
82a、82b、82c、91a、91b、91c、91d、102a、102b、102c AND回路
92a、92b、101 OR回路
93 記憶領域
110、610、1200 CPUB
300、1300 SC
400、1400 メモリ
520 CPUコア部AA
521 CPUコア部AB
620 CPUコア部BA
621 CPUコア部BB

Claims (10)

  1. 他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、
    前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
    を有することを特徴とする演算処理装置。
  2. 前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、
    前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する、
    ことを特徴とする請求項1に記載の演算処理装置。
  3. 前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有することを特徴とする請求項2に記載の演算処理装置。
  4. 前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行うことを特徴とする請求項3に記載の演算処理装置。
  5. 前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有することを特徴とする請求項2に記載の演算処理装置。
  6. 複数の演算処理装置を備えた情報処理装置であって、
    前記演算処理装置が、
    前記情報処理装置に備えられている他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、
    前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
    を有する
    ことを特徴とする情報処理装置。
  7. 前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、
    前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する、
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 複数の演算処理部を有する演算処理装置であって、
    前記複数の演算処理部のいずれかから他の演算処理装置における演算処理部へ宛てて発行されるクロスコールの送信を制御する制御部と、
    前記演算処理部毎に設けられており、前記クロスコールに係る処理の処理状況と、前期処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
    を有することを特徴とする演算処理装置。
  9. 演算処理装置から他の演算処理装置へ宛てて発行されるクロスコールの送信を前記演算処理装置で制御する方法であって、
    前記クロスコールに係る処理の処理状況と、前記クロスコールの発行履歴とをクロスコールのエントリ毎に前記演算処理装置の記憶部で保持しておくステップ
    を有することを特徴とするクロスコールの送信制御方法。
  10. 他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、
    前記クロスコールの発行履歴を保持するための記憶領域として、当該クロスコールを個々に識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の記憶領域と、前記送信要求を個々に識別する識別子の記憶領域とを有する記憶部と、
    を有することを特徴とする演算処理装置。
JP2005290888A 2005-10-04 2005-10-04 演算処理装置、情報処理装置、及び演算処理装置の制御方法 Expired - Fee Related JP4856413B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2005290888A JP4856413B2 (ja) 2005-10-04 2005-10-04 演算処理装置、情報処理装置、及び演算処理装置の制御方法
KR1020087009682A KR100990399B1 (ko) 2005-10-04 2005-12-19 연산 처리 장치
CN2005800517695A CN101278277B (zh) 2005-10-04 2005-12-19 运算处理装置
PCT/JP2005/023251 WO2007039933A1 (ja) 2005-10-04 2005-12-19 演算処理装置
EP05816411A EP1936514B1 (en) 2005-10-04 2005-12-19 Apparatus and method for controlling issue of requests to another operation processing device
US12/062,185 US20080189719A1 (en) 2005-10-04 2008-04-03 Operation processor apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005290888A JP4856413B2 (ja) 2005-10-04 2005-10-04 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2007102447A true JP2007102447A (ja) 2007-04-19
JP4856413B2 JP4856413B2 (ja) 2012-01-18

Family

ID=37905979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005290888A Expired - Fee Related JP4856413B2 (ja) 2005-10-04 2005-10-04 演算処理装置、情報処理装置、及び演算処理装置の制御方法

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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014048965A (ja) * 2012-08-31 2014-03-17 Fujitsu Ltd 情報処理装置,処理方法及びプログラム

Families Citing this family (3)

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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916542A (ja) * 1995-04-20 1997-01-17 Sun Microsyst Inc パケット交換コンピュータ・システムにおける割込み通信方法および装置
JPH0969855A (ja) * 1995-03-31 1997-03-11 Sun Microsyst Inc トランザクション・フローを制御する制御システムおよびその方法
JPH113268A (ja) * 1996-07-01 1999-01-06 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 (3)

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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0969855A (ja) * 1995-03-31 1997-03-11 Sun Microsyst Inc トランザクション・フローを制御する制御システムおよびその方法
JPH0916542A (ja) * 1995-04-20 1997-01-17 Sun Microsyst Inc パケット交換コンピュータ・システムにおける割込み通信方法および装置
JPH113268A (ja) * 1996-07-01 1999-01-06 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> マルチプロセッサコンピュータアーキテクチャにおいてトランザクションを動的に再送する方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014048965A (ja) * 2012-08-31 2014-03-17 Fujitsu Ltd 情報処理装置,処理方法及びプログラム

Also Published As

Publication number Publication date
CN101278277B (zh) 2011-06-08
KR100990399B1 (ko) 2010-10-29
KR20080063777A (ko) 2008-07-07
JP4856413B2 (ja) 2012-01-18
EP1936514A4 (en) 2010-04-21
EP1936514A1 (en) 2008-06-25
CN101278277A (zh) 2008-10-01
EP1936514B1 (en) 2012-12-19
WO2007039933A1 (ja) 2007-04-12
US20080189719A1 (en) 2008-08-07

Similar Documents

Publication Publication Date Title
US9411644B2 (en) Method and system for work scheduling in a multi-chip system
JP4947441B2 (ja) マルチプロセッサシステム、マルチプロセッサシステムにおけるシステム構成方法及びそのプログラム
US5261109A (en) Distributed arbitration method and apparatus for a computer bus using arbitration groups
EP2187316B1 (en) Gated storage system and synchronization controller and method for multiple multi-threaded processors
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
US20150254182A1 (en) Multi-core network processor interconnect with multi-node connection
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
EP2377026B1 (en) Resolving contention between data bursts
US9372800B2 (en) Inter-chip interconnect protocol for a multi-chip system
WO2015134100A1 (en) Method and apparatus for memory allocation in a multi-node system
EP3335124B1 (en) Register files for i/o packet compression
KR20150067332A (ko) 코어 간 통신 장치 및 방법
WO2015134103A1 (en) Method and system for ordering i/o access in a multi-node environment
JP2007219816A (ja) マルチプロセッサシステム
US20150268985A1 (en) Low Latency Data Delivery
JP4856413B2 (ja) 演算処理装置、情報処理装置、及び演算処理装置の制御方法
JP2002041449A (ja) バスシステム及びその実行順序の調整方法
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
JPWO2008149657A1 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
CN109992560B (zh) 一种通信方法及通信***
JP2002198987A (ja) ハブおよびポート付き転送コントローラのアクティブ・ポート
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作***的驱动程序框架
CN108958905B (zh) 嵌入式多核中央处理器的轻量级操作***
JP6303632B2 (ja) 演算処理装置および演算処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111025

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111028

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees