JP2010224671A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム Download PDF

Info

Publication number
JP2010224671A
JP2010224671A JP2009068809A JP2009068809A JP2010224671A JP 2010224671 A JP2010224671 A JP 2010224671A JP 2009068809 A JP2009068809 A JP 2009068809A JP 2009068809 A JP2009068809 A JP 2009068809A JP 2010224671 A JP2010224671 A JP 2010224671A
Authority
JP
Japan
Prior art keywords
address
processors
multiprocessor system
address information
cpu
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
JP2009068809A
Other languages
English (en)
Other versions
JP5332784B2 (ja
Inventor
Morihisa Endo
盛久 遠藤
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009068809A priority Critical patent/JP5332784B2/ja
Publication of JP2010224671A publication Critical patent/JP2010224671A/ja
Application granted granted Critical
Publication of JP5332784B2 publication Critical patent/JP5332784B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】複数のプロセッサが周辺装置を共有しても、当該周辺装置に割り当てられたアドレス空間の重複に起因する誤動作を確実に防止し得るマルチプロセッサシステムを提供する。
【解決手段】マルチプロセッサシステム1は、複数のプロセッサとバスを介して接続されたアドレス変換部35を有する。アドレス変換部35は、複数のプロセッサのうちアクセス要求を発したプロセッサからのアドレス情報を共有メモリ空間内のアドレス情報に変換する。共有メモリ空間は、複数のプロセッサにそれぞれ対応する複数のアドレス領域を有している。アドレス変換部35は、アクセス要求を発した当該プロセッサからのアドレス情報を、当該プロセッサに対応する当該アドレス領域内のアドレス情報に変換する。
【選択図】図5

Description

本発明は、複数のプロセッサを有するマルチプロセッサシステムに関する。
近年、複数のプロセッサ(CPU)を搭載したコンピュータシステムであるマルチプロセッサシステムが開発され使用されている。マルチプロセッサシステムでは、一般に、各プロセッサがPCIデバイスなどのI/Oデバイスを制御するために、I/Oデバイス毎にメモリ空間上にアドレス領域が割り当てられる。このようなアドレス領域の割り当ては、たとえば、マルチプロセッサシステムの起動時に、あるいはI/Oデバイスのシステムへの接続時に自動的に実行される。
この種のマルチプロセッサシステムに関する先行技術は、たとえば、特許文献1(特開2003−296262号公報)、特許文献2(特開2001−117892号公報)および特許文献3(特開2008−77389号公報)に開示されている。
特開2003−296262号公報 特開2001−117892号公報 特開2008−77389号公報
複数のプロセッサがI/Oデバイスを共有するマルチプロセッサシステムでは、プロセッサ間で当該I/Oデバイスに対して重複するアドレス空間が割り当てられると、システムの誤動作が発生するおそれがある。なぜならば、当該I/Oデバイス側で、どのプロセッサからアクセスがあったのかが判別できない事態が起こり得るからである。複数のプロセッサがI/Oデバイスを共有しなければ、その種の誤動作を確実に防止することが可能である。図1は、I/Oデバイスを共有しない3個のプロセッサ(CPU)101A,101B,101Cを搭載するマルチプロセッサシステム100の概略構成を示す図である。図1に示されるように、CPU101A,101B,101Cは、I/Oインタフェース部102A,102B,102Cを介してそれぞれ対応するI/Oデバイス110A,110B,110Cに接続されている。
しかしながら、図1に示すように複数のI/Oインタフェース部102A,102B,102Cを実装するシステムでは、ハードウェア構成が大きくなり、その小型化が難しくなるという問題がある。
上記に鑑みて本発明の目的は、複数のプロセッサがI/Oデバイスなどの周辺装置を共有しても、当該周辺装置に割り当てられたアドレス空間の重複に起因する誤動作を確実に防止し得、ハードウェア構成の小型化をも可能にするマルチプロセッサシステムを提供することである。
本発明によれば、複数のプロセッサと、前記複数のプロセッサとバスを介して接続され、前記複数のプロセッサのうちアクセス要求を発したプロセッサからのアドレス情報を共有メモリ空間内のアドレス情報に変換するアドレス変換部と、周辺装置を前記アドレス変換部と電気的に接続する入出力インタフェース部と、を備えたマルチプロセッサシステムが提供される。このマルチプロセッサシステムでは、当該周辺装置に対して前記複数のプロセッサがそれぞれ使用すべき複数のアドレス空間が割り当てられており、前記共有メモリ空間は、前記複数のプロセッサにそれぞれ対応する複数のアドレス領域を有し、前記アドレス変換部は、前記アクセス要求を発した当該プロセッサからのアドレス情報を、当該プロセッサに対応する当該アドレス領域内のアドレス情報に変換する。
本発明によるマルチプロセッサシステムは、複数のプロセッサが周辺装置を共有する構成を有するが、異なるプロセッサ間で当該周辺装置に割り当てられたアドレス空間が重複しても、誤動作の発生を確実に防止することができる。また、ハードウェア構成の小型化も可能である。
複数のプロセッサ(CPU)を搭載するマルチプロセッサシステムの概略構成を示す図である。 本発明に係る一実施形態のマルチプロセッサシステムの概略構成を示す図である。 複数のCPUがそれぞれ使用するアドレス空間を例示する図である。 共有メモリ空間を例示する図である。 アドレス変換回路の構成の一例を概略的に示す機能ブロック図である。
以下、本発明に係る実施の形態について図面を参照しつつ説明する。なお、すべての図面において、同様な構成要素には同一符号を付し、その詳細な説明は重複しないように適宜省略される。
図2は、本発明に係る一実施形態のマルチプロセッサシステム1の概略構成を示す図である。図2に示されるように、マルチプロセッサシステム1は、複数のプロセッサ(CPU:Central Processing Unit)10A,10B,10Cとアドレス変換回路13とを有する。図示しないが、マルチプロセッサシステム1は、CPU10A,10B,10Cやアドレス変換回路13の他に、マルチプロセッサシステム1の全体の制御を司るホストコントローラ、ROM(Read Only Memory)、RAM(Random Access Memory)および各種演算処理ユニットなどの、実計算機を構成するハードウェア資源を有している。
CPU10A,10B,10Cは、それぞれ対応するバス11A,11B,11Cを介してアドレス変換回路13に接続されている。これらバス11A,11B,11Cは、アドレスバスとデータバスを含むものである。アドレス変換回路13には、PCI(Peripheral Component Interconnect)デバイスなどの周辺装置であるI/Oデバイス14が着脱自在に接続されており、このI/Oデバイス14は、CPU10A,10B,10Cによって共有されるものである。
I/Oデバイス14がアドレス変換回路13に接続されたとき、あるいは、マルチプロセッサシステム1が起動されたとき、当該I/Oデバイス14を制御するためにCPU10A,10B,10Cがそれぞれ使用すべきアドレス空間がメモリ空間内に自動的に割り当てられる。これらアドレス空間の割り当ては、たとえばBIOS(Basic Input/Output System)などの起動システムにより実行される。
図3(A)〜図3(C)は、CPU10A,10B,10Cがそれぞれ使用するアドレス空間を例示する図である。CPU10Aにより使用されるアドレス空間としては、図3(A)のメモリ空間内のアドレス0x0002_0000〜0x0005_FFFF(「0x」は16進数形式のアドレスを表すための接頭記号)の領域が割り当てられている。CPU10Bにより使用されるべきアドレス空間として、図3(B)のメモリ空間内のアドレス0x0003_0000〜0x0006_FFFFの領域が割り当てられている。そして、CPU10Cにより使用されるべきアドレス空間としては、図3(C)のメモリ空間内のアドレス0x0001_0000〜0x0004_FFFFの領域が割り当てられている。これら図3(A)〜図3(C)に示されるように、I/Oデバイス14に対して割り当てられたアドレス空間は重複している。言い換えれば、CPU10A,10B,10Cがそれぞれ使用するアドレスが同一になり得る。
CPU10A,10B,10Cは、I/Oデバイス14にアクセスしようとするとき、アクセス要求をアドレス変換回路13に発する。アドレス変換回路13が当該アクセス要求を許可したとき、この許可を受けたCPUは、I/Oデバイス14を制御するためにアドレス情報をアドレス変換回路13に供給する。アドレス変換回路13は、CPU10A,10B,10Cのうちのいずれかから転送されたアドレス情報を共有メモリ空間内のアドレス情報に変換し、その変換後のアドレス情報をI/Oデバイス14に供給する。
共有メモリ空間は、CPU10A,10B,10Cにそれぞれ対応するアドレス領域を有し、これらアドレス領域は、共有メモリ空間内で互いに重複しないように排他的に割り当てられている。アドレス変換回路13は、この共有メモリ空間を利用して、アクセス要求の許可を受けたCPUからのアドレス情報を当該CPUに対応するアドレス領域内のアドレス情報に変換する機能(アドレス変換機能)を有する。これにより、CPU10A,10B,10Cが使用するアドレスが互いに重複したとしても、アドレスの競合が排除されるので、システムの誤動作を防止することが可能となる。
共有メモリ空間内のアドレス領域は、I/Oデバイス14がアドレス変換回路13に接続されたとき、あるいは、マルチプロセッサシステム1が起動されたときにBIOSなどの起動システムにより自動的に割り当てられる。
図4は、共有メモリ空間を例示する図である。図4に示されるように、共有メモリ空間内には、CPU10Aに対応するアドレス0x0000_0000〜0x0003_FFFFの領域A1が割り当てられ、CPU10Bに対応するアドレス0x0004_0000〜0x0007_FFFFの領域A2が割り当てられ、CPU10Cに対応するアドレス0x0008_0000〜0x000B_FFFFの領域A3が割り当てられている。
図5は、アドレス変換回路13の構成の一例を概略的に示す機能ブロック図である。図5に示されるように、アドレス変換回路13は、CPUインタフェース部30〜32、調停部33、スイッチ部34、アドレス変換部35およびI/Oインタフェース部(入出力インタフェース部)36を有している。アドレス変換回路13は、FPGA(Field Programmable Gate Array)と呼ばれる論理書き換え可能な集積回路を用いて実現することが可能である。
図2のCPU10A,10B,10Cはそれぞれ対応するCPUインタフェース部30,31,32を介して調停部33とスイッチ部34とに接続されている。
調停部33は、CPU10A,10B,10Cのうち2個以上のCPUから到来した複数のアクセス要求が競合した場合にその競合を調停する機能を有する。調停部33は、その調停結果に基づいて、CPU10A,10B,10Cのいずれかにアクセス要求を許可する。具体的には、複数のCPUからのアクセス要求が競合するときにバスアクセスが競合するので、調停部33は、かかる競合を調停する機能を有している。
スイッチ部34は、アクセス要求の許可を受けたCPUをアドレス変換部35に接続する機能を有する。より具体的には、スイッチ部34は、アクセス要求の許可を受けたCPUからのアクセスが発生すると、当該CPUからのアドレス情報を監視することで、どのCPUからアドレス情報が転送されたかを判別することができる。この判別結果に基づいて、スイッチ部34は、アクセス要求の許可を受けたCPUとI/Oインタフェース部36(またはアドレス変換部35)との間の信号転送を実行する。当該CPUは、I/Oデバイス14を制御するためにアドレス情報をアドレス変換部35に供給することができる。
アドレス変換部35は、上述の共有メモリ空間を使用して、アクセス要求の許可を受けたCPUから転送されたアドレス情報を変換する。変換後のアドレス情報は、I/Oインタフェース部36を介してI/Oデバイス14に転送される。
たとえば、CPU10AからI/Oデバイス14へのアクセスが発生するとき、CPU10Aは、図3(A)のアドレス0x0002_0000〜0x0005_FFFFの領域でのアドレス情報を利用したデータアクセスを行う。この場合、アドレス変換部35は、CPU10Aからのアクセスが発生したと認識し、CPU10Aからのアドレス情報を図4のアドレス領域A1内のアドレス情報へ変換する。
同様に、CPU10BからI/Oデバイス14へのアクセスが発生するときは、CPU10Bは、図3(B)のアドレス0x0003_0000〜0x0006_FFFFの領域でのアドレス情報を利用したデータアクセスを行う。この場合、アドレス変換部35は、CPU10Bからのアクセスが発生したと認識し、CPU10Bからのアドレス情報を図4のアドレス領域A2内のアドレス情報へ変換する。また、CPU10CからI/Oデバイス14へのアクセスが発生するときは、CPU10Cは、図3(C)のアドレス0x0001_0000〜0x0004_FFFFの領域でのアドレス情報を利用したデータアクセスを行う。この場合、アドレス変換部35は、CPU10Cからのアクセスが発生したと認識し、CPU10Cからのアドレス情報を図4のアドレス領域A3内のアドレス情報へ変換する。
本実施形態のマルチプロセッサシステム1が奏する効果は以下の通りである。
上述した通り、マルチプロセッサシステム1は、複数のCPU(プロセッサ)10A,10B,10CがI/Oデバイス14を共有する構成を有するが、異なるCPU間で当該I/Oデバイス14に割り当てられたアドレス空間が重複しても、アドレス変換回路13は、アドレスの競合を排除することができる。よって、アドレス空間の重複に起因するシステムの誤動作の発生を確実に防止することができる。また、I/Oデバイス14を共有できるので、マルチプロセッサシステム1のハードウェア構成を小型化することが可能である。
また、CPU(プロセッサ)10A,10B,10Cが使用するアドレス空間の重複が許されるので、これらアドレス空間を割り当てるためのアルゴリズムとして既存のアルゴリズムを流用することが可能である。また、CPU10A,10B,10Cが使用するアドレス空間を割り当てるために新たにソフトウェアやドライバソフトを開発する必要がない。
さらに、アドレス変換回路13はハードウェア構成で実現することができる。これにより、I/Oデバイス14への高速なデータアクセスが可能となり、システムの高性能化を実現することが可能である。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。たとえば、マルチプロセッサシステム1は、3個のプロセッサ(CPU)10A,10B,10Cを有するが、プロセッサの数は3個に限らず、4個以上であってよい。
1 マルチプロセッサシステム
10A,10B,10C CPU(プロセッサ)
13 アドレス変換回路
14 I/Oデバイス(周辺装置)
30,31,32 CPUインタフェース部
33 調停部
34 スイッチ部
35 アドレス変換部
36 I/Oインタフェース部(入出力インタフェース部)

Claims (4)

  1. 複数のプロセッサと、
    前記複数のプロセッサとバスを介して接続され、前記複数のプロセッサのうちアクセス要求を発したプロセッサからのアドレス情報を共有メモリ空間内のアドレス情報に変換するアドレス変換部と、
    周辺装置を前記アドレス変換部と電気的に接続する入出力インタフェース部と、
    を備え、
    当該周辺装置に対して前記複数のプロセッサがそれぞれ使用すべき複数のアドレス空間が割り当てられており、
    前記共有メモリ空間は、前記複数のプロセッサにそれぞれ対応する複数のアドレス領域を有し、
    前記アドレス変換部は、前記アクセス要求を発した当該プロセッサからのアドレス情報を、当該プロセッサに対応する当該アドレス領域内のアドレス情報に変換する、マルチプロセッサシステム。
  2. 請求項1に記載のマルチプロセッサシステムであって、前記複数のアドレス領域は、前記複数のプロセッサにそれぞれ対応しかつ互いに重複しない排他的なアドレス領域である、マルチプロセッサシステム。
  3. 請求項1または2に記載のマルチプロセッサシステムであって、前記複数のプロセッサのうちの2個以上のプロセッサから到来した複数の前記アクセス要求の競合を調停する調停部をさらに備える、マルチプロセッサシステム。
  4. 請求項3に記載のマルチプロセッサシステムであって、前記周辺装置はPCI(Peripheral Component Interconnect)デバイスである、マルチプロセッサシステム。
JP2009068809A 2009-03-19 2009-03-19 マルチプロセッサシステム Active JP5332784B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009068809A JP5332784B2 (ja) 2009-03-19 2009-03-19 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009068809A JP5332784B2 (ja) 2009-03-19 2009-03-19 マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2010224671A true JP2010224671A (ja) 2010-10-07
JP5332784B2 JP5332784B2 (ja) 2013-11-06

Family

ID=43041819

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009068809A Active JP5332784B2 (ja) 2009-03-19 2009-03-19 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JP5332784B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328309A (zh) * 2021-12-03 2022-04-12 南京风兴科技有限公司 一种存储器管理电路及共享存储器方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62156746A (ja) * 1985-12-27 1987-07-11 Nec Corp I/oの保護制御方式
JPH0721086A (ja) * 1993-07-07 1995-01-24 Hitachi Ltd 計算機システム
JPH10247163A (ja) * 1996-12-31 1998-09-14 Compaq Computer Corp コンピュータ・システム及びそのメモリ管理方法
JP2001117892A (ja) * 1999-10-14 2001-04-27 Nec Corp 内部バスを介して通信するマルチプロセッサ・コンピュータシステムとその通信方法
JP2003296262A (ja) * 2002-04-03 2003-10-17 Nec Corp コンピュータ外部機器及びこれを備えるコンピュータシステム
JP2008077389A (ja) * 2006-09-21 2008-04-03 Murata Mach Ltd データ処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62156746A (ja) * 1985-12-27 1987-07-11 Nec Corp I/oの保護制御方式
JPH0721086A (ja) * 1993-07-07 1995-01-24 Hitachi Ltd 計算機システム
JPH10247163A (ja) * 1996-12-31 1998-09-14 Compaq Computer Corp コンピュータ・システム及びそのメモリ管理方法
JP2001117892A (ja) * 1999-10-14 2001-04-27 Nec Corp 内部バスを介して通信するマルチプロセッサ・コンピュータシステムとその通信方法
JP2003296262A (ja) * 2002-04-03 2003-10-17 Nec Corp コンピュータ外部機器及びこれを備えるコンピュータシステム
JP2008077389A (ja) * 2006-09-21 2008-04-03 Murata Mach Ltd データ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328309A (zh) * 2021-12-03 2022-04-12 南京风兴科技有限公司 一种存储器管理电路及共享存储器方法

Also Published As

Publication number Publication date
JP5332784B2 (ja) 2013-11-06

Similar Documents

Publication Publication Date Title
KR100248902B1 (ko) 다중의 이종프로세서들을 지원할수있는 마이크로프로세서구조
JP4219964B2 (ja) ブリッジ、プロセッサユニット、情報処理装置およびアクセス制御方法
JP4947441B2 (ja) マルチプロセッサシステム、マルチプロセッサシステムにおけるシステム構成方法及びそのプログラム
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
US7934029B2 (en) Data transfer between devices within an integrated circuit
US8725919B1 (en) Device configuration for multiprocessor systems
US6321284B1 (en) Multiprocessor system with multiple memory buses for access to shared memories
JP2005309553A (ja) 計算機
WO2014173364A1 (zh) 共享资源访问方法和装置
JP2009265687A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4711709B2 (ja) パーティション割り振り方法及びコンピュータシステム
JP5332784B2 (ja) マルチプロセッサシステム
JP5981004B2 (ja) 半導体装置
US20030229721A1 (en) Address virtualization of a multi-partitionable machine
JP2007199859A (ja) データ転送システム
JP2004199187A (ja) Cpu内蔵lsi
JP5805546B2 (ja) 半導体装置
JPH0973429A (ja) コンピュータシステム及びバス間制御回路
JP3415474B2 (ja) バスブリッジ調停方式
JPS63175964A (ja) 共有メモリ
JP2006277363A (ja) 情報転送方式,画像形成装置
JPH08272754A (ja) マルチプロセッサシステム
JP2011248551A (ja) アクセス制御装置
KR19990031220A (ko) 브이.엠.이 버스 시스템에서 브이.엠.이 버스 제어장치
JP2003280980A (ja) 共有メモリ排他制御装置及び共有メモリ排他制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130613

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130715

R150 Certificate of patent or registration of utility model

Ref document number: 5332784

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150