JP4048988B2 - Fault tolerant system and synchronization method used therefor - Google Patents
Fault tolerant system and synchronization method used therefor Download PDFInfo
- Publication number
- JP4048988B2 JP4048988B2 JP2003074693A JP2003074693A JP4048988B2 JP 4048988 B2 JP4048988 B2 JP 4048988B2 JP 2003074693 A JP2003074693 A JP 2003074693A JP 2003074693 A JP2003074693 A JP 2003074693A JP 4048988 B2 JP4048988 B2 JP 4048988B2
- Authority
- JP
- Japan
- Prior art keywords
- synchronization
- data
- control means
- control circuit
- buffer
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Description
【0001】
【発明の属する技術分野】
本発明はフォルトトレラントシステム及びそれに用いる同期化方法に関し、特に各ユニットを二重化して構成したフォルトトレラントシステムにおける同期化方法に関する。
【0002】
【従来の技術】
従来、この種のフォルトトレラントシステムにおいては、チップセット内のインタフェースとして、PCI(Peripheral Component Interconnect)バス等の同期インタフェースを使用し、それによってプロセッサユニットがまったく同じように動作している(例えば、特許文献1参照)。
【0003】
一般のコンピュータシステムに使用されるチップセットにも、同期インタフェースを使用するものが多く、それらを流用してフォルトトレラントシステムを構成することが可能である。
【0004】
【特許文献1】
特開平7−073059号公報(第12〜16頁、図1)
【0005】
【発明が解決しようとする課題】
しかしながら、従来のフォルトトレラントシステムでは、周辺装置やネットワークの高速化によって、I/O(入出力)バスとして高速なものが要求されるようになり、それにともなってチップセット内のインタフェースも高速化が必要になってきている。
【0006】
従来、使われてきたPCIバス等の同期インタフェースでは、クロックスキュー等の問題によって高速化に限界があるため、PCI−Express等の非同期インタフェースが今後使われるようになる見込みである。
【0007】
しかしながら、非同期インタフェースでは複数の相手へのデータ転送において、例えば送信側が同時に転送を開始しても、受信側が受信するタイミングが別々となる。また、PCI−Expressインタフェースでは、インタフェース上でエラーが発生した場合、受信側が送信側へエラーとなった部分の再送を要求するため、受信側が有効なデータを受信するタイミングが別々になる可能性がある。
【0008】
これはフォルトトレラントシステムにおいて、非同期インタフェースをチップセット内のインタフェースとして使用すると、二重化されたプロセッサユニットの動きが異なってしまうことを意味する。フォルトトレラントシステムでは最低限、二重化されたプロセッサがまったく同じように動くことが必要であるため、そのままでは非同期インタフェースをチップセット内のインタフェースとして用いたチップセットを使用してフォルトトレラントシステムを構成することはできない。
【0009】
そこで、本発明の目的は上記の問題点を解消し、PCI−Expressインタフェースやその他の非同期インタフェースをノースブリッジとI/Oバスブリッジとの間の接続として使用したシステムを構成することができるフォルトトレラントシステム及びそれに用いる同期化方法を提供することにある。
【0010】
【課題を解決するための手段】
本発明によるフォルトトレラントシステムは、複数の制御回路と複数の入出力装置とによって多重化して構成し、非同期インタフェースを前記制御回路と前記入出力装置との間のインタフェースとして用いるフォルトトレラントシステムであって、
前記制御回路は、それぞれ、同期制御手段を備え、
前記同期制御手段の各々は、前記非同期インタフェースを介して前記制御回路と前記入出力装置との間を非同期で送受信されるデータが当該同期制御手段を備える前記制御回路において送受信可能となったことを、それぞれ相互に通知している。
【0011】
本発明による同期化方法は、複数の制御回路と複数の入出力装置とによって多重化して構成し、それぞれの前記制御回路が同期制御手段を備え、非同期インタフェースを前記制御回路と前記入出力装置との間のインタフェースとして用いるフォルトトレラントシステムの同期化方法であって、
前記同期制御手段の各々が、前記非同期インタフェースを介して前記制御回路と前記入出力装置との間を非同期で送受信されるデータが当該同期制御手段を備える前記制御回路において送受信可能となったことを、それぞれ相互に通知している。
【0012】
すなわち、本発明の同期化方法は、非同期インタフェースを使用するフォルトトレラントシステムにおける同期化方法であり、PCI(PeripheralComponent Interconnect)−Expressインタフェース等の非同期インタフェースをノースブリッジとI/O(入出力)バスブリッジとの間のインタフェースとして用いたフォルトトレラントシステムにおいて、ノースブリッジ内に分周クロックに同期して動作する同期Ack(Acknowledgement)信号を基にPCI−Express制御部へのパケットの送受信を両ノースブリッジで同期させる同期制御部を備えることによって、両プロセッサがまったく同じように動作可能としている。
【0013】
より具体的に説明すると、本発明のフォルトトレラントシステムでは、I/Oバスブリッジ(0)内の同期制御部が送信バッファ(0)に有効なパケットが存在し、かつ送信バッファ(1)と送信バッファ(2)との両方にパケットの書込みが可能な状態であるなら、送信バッファ(1)と送信バッファ(2)とに対して同時に同じパケットを転送する。
【0014】
その後、本発明のフォルトトレラントシステムでは、PCI−Express制御部(0)とPCI−Express制御部(1)とが各々別々のタイミングで送信バッファ(1)と送信バッファ(2)とからパケットを読出し、PCI−Expressインタフェースに送信する。これによって、ノースブリッジ(0)とノースブリッジ(1)とには同じパケットが送信される。
【0015】
ノースブリッジ(0)内のPCI−Express制御部(0)とノースブリッジ(1)内のPCI−Express制御部(0)とは、I/Oバスブリッジ(0)からPCI−Expressインタフェース経由で送られてきたパケットを受信し、そのパケットがノースブリッジ(0)内の同期制御部(0)の同期バッファ(0)及びノースブリッジ(1)内の同期制御部(0)の同期バッファ(0)に書込まれる。PCI−Expressインタフェースは非同期インタフェースなので、パケットを受信し、同期バッファ(0)に書込むタイミングは両方のノースブリッジ(0),(1)で異なっている。
【0016】
ノースブリッジ(0)内の同期制御部(0)は同期バッファ(0)に有効なパケットが存在し、同期バッファ(1)が空いている場合、分周Clockの立上りのタイミングでInbound同期Ack信号(1)をアサートする。同様に、ノースブリッジ(1)内の同期制御部(0)は同期バッファ(0)に有効なパケットが存在し、同期バッファ(1)が空いている場合、分周Clockの立上りのタイミングでInbound同期Ack信号(0)をアサートする。
【0017】
分周Clockの立上りのタイミングで両方のInbound同期Ack信号(0),(1)がアサートされていた場合、同期制御部(0),(1)は各々同期バッファ(0)から同期バッファ(1)へのパケットの転送を開始する。
【0018】
これによって、I/Oバスブリッジ(0)が送信したパケットはノースブリッジ(0)内の同期バッファ(1)とノースブリッジ(1)内の同期バッファ(1)とにまったく同じタイミングで書込まれるようになり、ノースブリッジ(0)内のその他の制御部とノースブリッジ(1)内のその他の制御部とは同期制御部から同時にパケットを読出すことが可能になる。
【0019】
ノースブリッジ(0)内のその他の制御部はI/Oバスブリッジ(0)方向に送るパケットがある場合、同期制御部(0)の同期バッファ(2)が空いているならばパケットを書込む。同様に、ノースブリッジ(1)内のその他の制御部はI/Oバスブリッジ(1)方向に送るパケットがある場合、同期制御部(0)の同期バッファ(2)が空いているならばパケットを書込む。
【0020】
ノースブリッジ(0)内の同期制御部(0)は同期バッファ(3)が空いている場合、分周Clockの立上りのタイミングでOutbound同期Ack信号(1)をアサートする。同様に、ノースブリッジ(1)内の同期制御部(0)は同期バッファ(3)が空いている場合、分周Clockの立上りのタイミングでOutbound同期Ack信号(0)をアサートする。
【0021】
分周Clockの立上りのタイミングで、両方のOutbound同期Ack信号(0),(1)がアサートされていた場合、ノースブリッジ(0)内の同期制御部(0)とノースブリッジ(1)内の同期制御部(0)とは各々同期バッファ(2)から同期バッファ(3)へのパケットの転送を開始する。
【0022】
これによって、ノースブリッジ(0)内の同期バッファ(2)と、ノースブリッジ(1)内の同期バッファ(2)とからは、まったく同じタイミングでパケットが読出される、すなわち、同期バッファ(2)の空き状況は両方のノースブリッジ(0),(1)で同期することになり、ノースブリッジ(0)内のその他の制御部とノースブリッジ(1)内のその他の制御部とは同期制御部に同時にパケットを書込むことが可能になる。
【0023】
その後、ノースブリッジ(0)内のPCI−Express制御部(0)とノースブリッジ(1)内のPCI−Express制御部(0)とは、各々別々のタイミングで同期バッファ(3)からパケットを読出し、PCI−Expressインタフェースに送信する。
【0024】
I/Oバスブリッジ(0)内のPCI−Express制御部(0),(1)は、ノースブリッジ(0),(1)からPCI−Expressインタフェース経由で送られてきたパケットを受信し、同期制御部の受信バッファ(0)及び受信バッファ(1)に書込む。
【0025】
PCI−Expressインタフェースは非同期インタフェースであり、両方のノースブリッジ(0),(1)がパケットを発行するタイミングも別々なので、パケットを受信し、受信バッファに書込むタイミングが異なっている。I/Oバスブリッジ(0)内の同期制御部は、受信バッファ(0)と受信バッファ(1)との両方に有効なパケットがある場合、受信バッファ(0)と受信バッファ(1)とからのパケット読出しを同時に実施し、片方からのパケットのみを受信バッファに書込む。
【0026】
これらによって、本発明のフォルトトレラントシステムでは、PCI−Express制御部が同期して動作しなくても、ノースブリッジ(0)内のその他の制御部とノースブリッジ(1)内のその他の制御部とが、まったく同じ動作をすることが可能となる。その結果、プロセッサ(0)とプロセッサ(1)とは、まったく同じ動作をすることが可能となる。
【0027】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図1は本発明の一実施例によるフォルトトレラントシステムの構成を示すブロック図である。図1において、本発明の一実施例によるフォルトトレラントシステムはPCI(Peripheral Component Interconnect)−Expressインタフェース(0〜3)103〜106を、ノースブリッジ(0,1)13,23とI/O(入出力)バスブリッジ(0,1)31,41との間のインタフェースとして用い、各構成要素を二重化している。
【0028】
本発明の一実施例によるフォルトトレラントシステムはプロセッサユニット(0,1)1,2と、I/Oユニット(0,1)3,4と、プロセッサユニット(0,1)1,2とI/Oユニット(0,1)3,4との間を結ぶ4本のPCI−Expressインタフェース(0〜3)103〜106とから構成されている。
【0029】
プロセッサユニット(0)1はプロセッサ(0)11と、プロセッサバス(0)101と、メインメモリ(0)12と、ノースブリッジ(0)13とから構成されている。同様に、プロセッサユニット(1)2はプロセッサ(1)21と、プロセッサバス(1)102と、メインメモリ(1)22と、ノースブリッジ(0)23とから構成されている。
【0030】
I/Oユニット(0)3はI/Oバスブリッジ(0)31と、PCI−Xバス(0)107と、PCI−Xデバイス(0)36とから構成されている。同様に、I/Oユニット(1)4はI/Oバスブリッジ(1)41とPCI−Xバス(2)108と、PCI−Xデバイス(2)46とから構成されている。
【0031】
これら両方のI/Oユニット(0,1)3,4には同じPCI−Xデバイスが搭載されている。PCI−Xデバイス(0)36は周辺装置(0)5と、PCI−Xデバイス(2)46は周辺装置(2)6とにそれぞれ接続されている。
【0032】
2つのプロセッサ(0,1)11,21は、通常、まったく同じ動作をしている。片方のプロセッサユニットで障害等発生した場合にはそのプロセッサユニットを切離し、もう片方のプロセッサユニットのみを使用してシステム全体が動作し続ける。
【0033】
周辺装置へのデータのライトは、まず周辺装置(0)5にライトした後、同じデータを周辺装置(2)6にもライトする。リードは、通常、周辺装置(0)5からのみリードするが、障害によるI/Oユニット(0)3の切離し等によって周辺装置(0)5にアクセスすることができない場合には、周辺装置(2)6からリードする。2つのプロセッサ(0,1)11,21はまったく同じ動作をしているので、周辺装置へのデータのライト/リードを両プロセッサが同時に要求する。
【0034】
ノースブリッジ(0)13はPCI−Expressインタフェース(0.1)103,104に対するパケット送受信等を各々制御するPCI−Express制御部(0,1)17,18と、ノースブリッジ(0)13内の他の部分から来るPCI−Expressインタフェースを経由するパケットの読み書きをノースブリッジ(1)23側と同期させる同期制御部(0,1)15,16と、それ以外の動作(プロセッサバス制御等)を行うその他の制御部14とから構成されている。
【0035】
同様に、ノースブリッジ(1)23はPCI−Expressインタフェース(2,3)105,106に対するパケット送受信等を各々制御するPCI−Express制御部(0,1)27,28と、ノースブリッジ(1)23内の他の部分から来るPCI−Expressインタフェースを経由するパケットの読み書きをノースブリッジ(0)13側と同期させる同期制御部(0,1)25,26と、それ以外の動作を行うその他の制御部24とから構成されている。
【0036】
I/Oバスブリッジ(0)31はPCI−Expressインタフェース(0,2)103,105に対するパケット送受信等を各々制御するPCI−Express制御部(0,1)32,33と、2つのPCI−Express制御部(0,1)32,33に対して同時にパケットを読み書きする同期制御部34と、それ以外の動作(PCI−Xバス制御等)を行うその他の制御部35とから構成されている。
【0037】
同様に、I/Oバスブリッジ(1)41はPCI−Expressインタフェース(1,3)104,106に対するパケット送受信等を各々制御するPCI−Express制御部(0,1)42,43と、2つのPCI−Express制御部(0,1)42,43に対して同時にパケットを読み書きする同期制御部44と、それ以外の動作を行うその他の制御部45とから構成されている。
【0038】
図2は図1の同期制御部の詳細な構成を示すブロック図である。図2において、ノースブリッジ(0)13内の同期制御部(0)15とノースブリッジ(1)23内の同期制御部(0)25とは、Inbound同期Ack信号(0〜1)113,114及びOutbound同期Ack信号(0〜1)115,116で接続されている。
【0039】
図2には記載していないが、ノースブリッジ(0)13内の同期制御部(1)16及びノースブリッジ(1)23内の同期制御部(1)26も、上記と同様の信号線で接続されている。また、ノースブリッジ(0)13内の同期制御部(0,1)15,16と、ノースブリッジ(1)23内の同期制御部(0,1)25,26とには、分周器7で分周された同一の分周Clock112が供給されている。
【0040】
ノースブリッジ(0)13内の同期制御部(0)15は同期バッファ(0〜3)151,152,154,155と、制御回路153とから構成されている。PCI−Expressインタフェース(0)103から受信したパケットは、PCI−Express制御部(0)19から同期バッファ(0)152に書込まれ、その後、制御回路153の制御によって同期バッファ(1)151に転送され、その他の制御部13に送られる。
【0041】
PCI−Expressインタフェース(0)103に送信するパケットは、その他の制御部13から同期バッファ(2)154に書込まれ、その後、制御回路153の制御によって同期バッファ(3)155に転送され、PCI−Express制御部(0)17に送られる。
【0042】
ノースブリッジ(0)13内の同期制御部(1)16と、ノースブリッジ(1)23内の同期制御部(0)25及び同期制御部(1)26とにおいても、上記の同期制御部(0)15と同様の動作が行われる。
【0043】
I/Oバスブリッジ(0)31内の同期制御部34は受信バッファ(0〜2)341〜343と、送信バッファ(0〜2)344〜346と、セレクタ347と、制御回路348とから構成されている。
【0044】
両方のPCI−Expressインタフェース(0,2)103,105から受信したパケットは、PCI−Express制御部(0,1)32,33から受信バッファ(0,1)341,342に書込まれ、その後、セレクタ347によって選択された方のみ受信バッファ(2)343に書込まれ、もう片方は破棄される。その後、そのパケットはその他の制御部35に送られる。
【0045】
PCI−Expressインタフェース1に送信するパケットは、その他の制御部35から送信バッファ(0)344に書込まれ、その後、制御回路348の制御によって送信バッファ(1,2)345,346に同時に転送され、PCI−Express制御部(0,1)32,33に送られる。
【0046】
この図2を参照して本発明の一実施例によるフォールトトレラントシステムの動作について説明する。
【0047】
I/Oバスブリッジ(0)31内の同期制御部34は送信バッファ(0)344に有効なパケットが存在し、かつ送信バッファ(1,2)345,346の両方共、パケットの書込みが可能な状態であるならば、送信バッファ(1,2)345,346に対して、同時に同じパケットを転送する。その後、PCI−Express制御部(0,1)32,33は各々別々のタイミングで送信バッファ(1,2)345,346からパケットを読出し、PCI−Expressインタフェース(0,2)103,105に送信する。これによって、ノースブリッジ(0,1)13,23には同じパケットが送信される。
【0048】
ノースブリッジ(0)13内のPCI−Express制御部(0)17とノースブリッジ(1)23内のPCI−Express制御部(0)27とは、I/Oバスブリッジ(0)31からPCI−Expressインタフェース(0,2)103,105経由で送られてきたパケットを受信し、同期制御部(0)15の同期バッファ(0)152及び同期制御部(0)25の同期バッファ(0)252に書込む。PCI−Expressインタフェース(0,2)103,105は非同期インタフェースなので、パケットを受信し、同期バッファ(0)152,252に書込むタイミングは両ノースブリッジ(0,1)13,23で異なっている。
【0049】
ノースブリッジ(0)13内の同期制御部(0)15は同期バッファ(0)152に有効なパケットが存在し、同期バッファ(1)151が空いている場合、分周Clock112の立上りのタイミングでInbound同期Ack信号(1)114をアサートする。
【0050】
同様に、ノースブリッジ(1)23内の同期制御部(0)25は同期バッファ(0)252に有効なパケットが存在し、同期バッファ(1)251が空いている場合、分周Clock112の立上りのタイミングでInbound同期Ack信号(0)113をアサートする。
【0051】
分周Clock112の立上りのタイミングで、両方のInbound同期Ack信号(0,1)113,114がアサートされていた場合、同期制御部(0)15,25は各々同期バッファ(0)152,252から同期バッファ(1)151,251へのパケットの転送を開始する。
【0052】
これによって、I/Oバスブリッジ(0)31が送信したパケットはノースブリッジ(0)13内の同期バッファ(1)151とノースブリッジ(1)23内の同期バッファ(1)251とにまったく同じタイミングで書込まれるようになり、ノースブリッジ(0)13内のその他の制御部14とノースブリッジ(1)23内のその他の制御部24とは同期制御部(0)15,25から同時にパケットを読出すことが可能になる。
【0053】
ノースブリッジ(0)13内のその他の制御部14はI/Oバスブリッジ(0)31方向に送るパケットがある場合、同期制御部(0)15の同期バッファ(2)154が空いているならば、パケットを書込む。同様に、ノースブリッジ(1)23内のその他の制御部24はI/Oバスブリッジ(1)41方向に送るパケットがある場合、同期制御部(0)25の同期バッファ(2)251が空いているならば、パケットを書込む。
【0054】
同期制御部(0)15は同期バッファ(3)155が空いている場合、分周Clock112の立上りのタイミングでOutbound同期Ack信号(1)116をアサートする。同様に、ノースブリッジ(1)23内の同期制御部(0)25は同期バッファ(3)255が空いている場合、分周Clock112の立上りのタイミングでOutbound同期Ack信号(0)115をアサートする。
【0055】
分周Clock112の立上りのタイミングで、両方のOutbound同期Ack信号(0,1)115,116がアサートされていた場合、同期制御部(0)15,25は各々同期バッファ(2)154,254から同期バッファ(3)155,255へのパケットの転送を開始する。
【0056】
これによって、ノースブリッジ(0)13内の同期バッファ(2)154と、ノースブリッジ(1)23内の同期バッファ(2)254とからはまったく同じタイミングで、パケットが読出される。すなわち、同期バッファ(2)154,254の空き状況は両方のノースブリッジ(0,1)13,23で同期することになり、ノースブリッジ(0)13内のその他の制御部14とノースブリッジ(1)23内のその他の制御部24とは同期制御部(0)15,25に同時にパケットを書込むことが可能になる。
【0057】
その後、PCI−Express制御部(0)17,27は各々別々のタイミングで同期バッファ(3)155,255からパケットを読出し、PCI−Expressインタフェース(0,2)103,105に送信する。
【0058】
I/Oバスブリッジ(0)31内のPCI−Express制御部(0,1)32,33は、ノースブリッジ(0,1)13,23からPCI−Expressインタフェース(0,2)103,105経由で送られてきたパケットを受信し、同期制御部34の受信バッファ(0,1)341,342に書込む。
【0059】
PCI−Expressインタフェース(0,2)103,105は非同期インタフェースであり、両方のノースブリッジ(0,1)13,23がパケットを発行するタイミングも別々なので、パケットを受信し、受信バッファ(0,1)341,342に書込むタイミングは異なっている。
【0060】
I/Oバスブリッジ(0)31内の同期制御部34は受信バッファ(0,1)341,342の両方に有効なパケットがある場合、受信バッファ(0,1)341,342からのパケット読出しを同時に実施し、片方からのパケットのみを受信バッファ(2)343に書込む。
【0061】
これらによって、本実施例では、PCI−Express制御部が同期して動作しなくても、ノースブリッジ(0)13内のその他の制御部14とノースブリッジ(1)23内のその他の制御部24とは、まったく同じ動作をすることが可能となる。その結果、プロセッサ(0,1)11,21はまったく同じ動作をすることが可能となる。
【0062】
図3は図2の同期バッファ(2)154,254から同期バッファ(3)155,255へのパケットの転送動作を示すタイムチャートであり、図4は図2の同期バッファ(0)152,252から同期バッファ(1)151,251へのパケットの転送動作を示すタイムチャートである。これら図1〜図4を参照して周辺装置(0,2)5,6へのアクセスにともなうPCI−Xデバイス(0,2)36,46へのリード動作について説明する。
【0063】
プロセッサ(0)11がプロセッサバス(0)101に発行したPCI−Xデバイス(0)36へのリードリクエストは、ノースブリッジ(0)13内のその他の制御部14が受取り、PCI−Expressインタフェース(0〜3)103〜106での送受信に合った形(パケットと呼ぶ)に変更される。その後、このパケットは同期制御部(0)15の同期バッファ(2)154が空ならば、同期バッファ(2)154に書込まれる。
【0064】
プロセッサ(0)11とプロセッサ(1)21とはまったく同じように動作しているため、プロセッサ(1)21はプロセッサ(0)11と同じタイミングでPCI−Xデバイス(0)36へのリードリクエストをプロセッサバス(1)102に発行する。このリードリクエストはノースブリッジ(1)23内のその他の制御部24が受取り、パケットに変更された後、同期制御部(0)25の同期バッファ(2)254が空ならば、同期バッファ(2)254に書込まれる。書込まれるパケットの中身及び書込みのタイミングは同期バッファ(2)154と同期バッファ(2)254とでまったく同じである。
【0065】
制御回路153,253はOutbound同期Ack信号(0,1)115,116を使用してタイミングを合わせ、同時に同期バッファ(2)154,254から同期バッファ(3)155,255にパケットを転送する。同期バッファ(3)155,255に書込まれたパケットは両方のノースブリッジ(0,1)13,23で別々のタイミングで、PCI−Express制御部(0)17,27によって読出され、PCI−Expressインタフェース(0,2)103,105に送信される。
【0066】
この場合、タイミングが別々なのは、PCI−Expressインタフェース(0,2)103,105が非同期インタフェースであり、かつ再送等の動作があるため、PCI−Expressインターフェース(0,2)103,105の動きが異なるためである。
【0067】
次に、同期バッファ(2)154,254から同期バッファ(3)155,255へのパケットの転送について図3を参照して説明する。
【0068】
制御回路153は同期バッファ(3)155が空(すなわち、ライトアドレスとリードアドレスとが同じ値)ならば、分周Clock112の立上りのタイミングで、Outbound同期Ack信号(1)116をアサートする(図3の“0”のタイミング)。
【0069】
同様に、制御回路253は同期バッファ(3)255が空ならば、分周Clock112の立上りのタイミングで、Outbound同期Ack信号(0)115をアサートする(図3の“6”のタイミング)。本実施例ではPCI−Express制御部(0)27のパケット送信がPCI−Express制御部(0)17より遅れているものとする。そのため、制御回路253は制御回路153と同じタイミングではOutbound同期Ack信号(0)115をアサートすることができない。
【0070】
制御回路153は自分がアサートするOutbound同期Ack信号(1)116と、制御回路253がアサートするOutbound同期Ack信号(0)115との両信号がアサートされていて、かつ同期バッファ(2)154にパケットが存在する場合、分周Clock112の立上りのタイミングで、同期バッファ(3)155へのパケットの転送を開始する(図3の“12”のタイミング)。
【0071】
同様に、制御回路253は自分がアサートするOutbound同期Ack信号(0)115と、制御回路153がアサートするOutbound同期Ack信号(1)116との両信号がアサートされていて、かつ同期バッファ(2)254にパケットが存在する場合、分周Clock112の立上りのタイミングで、同期バッファ(3)255へのパケットの転送を開始する(図3の“12”のタイミング)。
【0072】
このタイミングは制御回路153と制御回路253とでまったく同じであり、その結果、同期バッファ(2)154が空になるタイミングと、同期バッファ(2)254が空になるタイミング(図3の“17”のタイミング)もまったく同じになる。すなわち、次のパケットを、その他の制御部14が同期バッファ(2)154に書込めるようになるタイミングと、その他の制御部24が同期バッファ(2)254に書込めるようになるタイミングとがまったく同じになる。
【0073】
PCI−Express制御部(0)17によってPCI−Expressインタフェース(0)103に送信されたパケットは、I/Oバスブリッジ(0)31内のPCI−Express制御部(0)32によって受信され、受信バッファ(0)341が空ならば、受信バッファ(0)341に書込まれる。
【0074】
同様に、PCI−Express制御部(0)27によってPCI−Expressインタフェース(2)105に送信されたパケットは、I/Oバスブリッジ(0)31内のPCI−Express制御部(1)33によって受信され、受信バッファ(1)342が空ならば、受信バッファ(1)342に書込まれる。書込まれるパケットの中身は、受信バッファ(0,1)341,342で同じであるが、PCI−Expressインタフェース(0,1)103,105が非同期インタフェースであり、かつ再送等の動作があるため、書込みのタイミングはまったく異なっている。
【0075】
制御回路348は受信バッファ(0,1)341,342にパケットがある時に、受信バッファ(2)343へのパケットの転送を実施する。その際、受信バッファ(0,1)341,342を同時に読出すが、セレクタ347によってどちらかのみが選択され、もう片方のパケットは破棄される。その後、その他の制御部35が受信バッファ(2)343からパケットを読出し、PCI−Xバス(0)107にリードリクエストとして発行する。
【0076】
PCI−Xバス(0)107に発行されたリードリクエストは、PCI−Xデバイス(0)36によって受信され、PCI−Xデバイス(0)36はリードリクエストに対するリードレスポンスをPCI−Xバス(0)107に発行する。
【0077】
PCI−Xバス(0)36に発行されたリードレスポンスは、I/Oバスブリッジ(0)31内のその他の制御部35が受取り、パケットに変更された後、同期制御部34の送信バッファ(0)344が空ならば、送信バッファ(0)344に書込まれる。制御回路348は送信バッファ(1,2)345,346の両方が空の時に、送信バッファ(0)344から送信バッファ(1,2)345,346への転送を実施する。
【0078】
送信バッファ(1,2)345,346に書込まれたパケットの中身及び書込みのタイミングはまったく同じである。送信バッファ(1,2)345,346に書込まれたパケットは、別々のタイミングでPCI−Express制御部(0,1)32,33によって読出され、PCI−Expressインタフェース(0,2)103,105に送信される。
【0079】
PCI−Express制御部(0)32によってPCI−Expressインタフェース(0)103に送信されたパケットは、ノースブリッジ(0)13内のPCI−Express制御部(0)17によって受信され、同期バッファ(0)152が空ならば、同期バッファ(0)152に書込まれる。
【0080】
同様に、PCI−Express制御部(1)33によってPCI−Expressインタフェース(2)105に送信されたパケットは、ノースブリッジ(1)23内のPCI−Express制御部(0)27によって受信され、同期バッファ(0)252が空ならば、同期バッファ(0)252に書込まれる。
【0081】
同期バッファ(0,1)152,252に書込まれたパケットの中身はまったく同じであるが、書込まれるタイミングはまったく別々である。制御回路153,253はInbound同期Ack信号(0,1)113,114を使用してタイミングを合わせ、同時に同期バッファ(0)152,252から同期バッファ(1)151,251にパケットを転送する。
【0082】
同期バッファ(1)151,251に書込まれたパケットは、両方のノースブリッジ(0,1)13,23で同じタイミングで、その他の制御部14,24によって読出され、プロセッサバス(0,1)101,102に送信される。
【0083】
続いて、同期バッファ(0)152,252から同期バッファ(1)151,251へのパケットの転送について図4を参照して説明する。
【0084】
制御回路153は同期バッファ(0)152にパケットがありかつ同期バッファ(1)151が空ならば、分周Clock112の立上りのタイミングでInbound同期Ack信号(1)114をアサートする(図4の“2”のタイミング)。
【0085】
同様に、制御回路253は同期バッファ(0)252にパケットがありかつ同期バッファ(1)251が空ならば、分周Clock112の立上りのタイミングでInbound同期Ack信号(0)115をアサートする(図4の“8”のタイミング)。
【0086】
本実施例ではPCI−Express制御部(0)27のパケット受信がPCI−Express制御部(0)17より遅れているものとする。そのため、制御回路253は制御回路153と同じタイミングではInbound同期Ack信号(0)115をアサートすることができない。
【0087】
制御回路153は自分がアサートするInbound同期Ack信号(1)116と、制御回路253がアサートするInbound同期Ack信号(0)115との両信号がアサートされている場合、分周Clock112の立上りのタイミングで、同期バッファ(1)151へのパケットの転送を開始する(図4の“14”のタイミング)。
【0088】
同様に、制御回路253は自分がアサートするInbound同期Ack信号(0)115と、制御回路153がアサートするInbound同期Ack信号(1)116との両信号がアサートされてる場合、分周Clock112の立上りのタイミングで、同期バッファ(1)251へのパケットの転送を開始する(図4の“14”のタイミング)。
【0089】
このタイミングは制御回路153,253でまったく同じであり、その結果、その他の制御部14が同期バッファ(1)151から読出せるようになるタイミングと、その他の制御部24が同期バッファ(1)251から読出せるようになるタイミングもまったく同じになる。
【0090】
その後、その他の制御部14,24は、まったく同じタイミングで同期バッファ(1)151,251からパケットを読出し、まったく同じタイミングでプロセッサバス(0,1)101,102にリードレスポンスとして発行する。その結果、プロセッサ(0)11がリードレスポンスを受取るタイミングと、プロセッサ(1)21がリードレスポンスを受取るタイミングも、まったく同じとなる。
【0091】
このように、本実施例では、汎用の次世代I/Oインタフェースを用いてフォルトトレラントシステムを実現することができるようになるので、デファクトとなりうる次世代I/OインタフェースであるPCI−Expressインタフェースやその他の非同期インタフェースを、ノースブリッジ(0,1)13,23とI/Oバスブリッジ(0,1)31,41との間の接続として使用したフォルトトレラントシステムを構成することができるため、フォルトトレラントシステム開発のコストが低減する。
【0092】
本実施例では、各プロセッサユニット(0,1)1,2に1つのプロセッサ(0,1)11,21、各I/Oユニット(0,1)3,4に1つのPCI−Xバス(0,1)107,108を持つシステムについて説明しているが、ユニット内のプロセッサ数及びPCI−Xバス数について制限はない。
【0093】
また、I/Oユニット(0,1)3,4内のI/Oバスは、PCI−Xバス(0,1)107,108ではなく、PCIバスやAGP(Accelerated Graphics Port)インタフェース、PCI−Expressインタフェース等の他のインタフェースでも良い。
【0094】
さらに、本実施例では、各ユニットが二重化されたフォルトトレラントシステムについて説明しているが、三重化等のより多重度の高いフォルトトレラントシステムにも拡張することができる。
【0095】
【発明の効果】
以上説明したように本発明は、上記のような構成及び動作とすることで、PCI−Expressインタフェースやその他の非同期インタフェースをノースブリッジとI/Oバスブリッジとの間の接続として使用したシステムを構成することができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施例によるフォルトトレラントシステムの構成を示すブロック図である。
【図2】図1の同期制御部の詳細な構成を示すブロック図である。
【図3】図2の同期バッファ(2)から同期バッファ(3)へのパケットの転送動作を示すタイムチャートである。
【図4】図2の同期バッファ(0)から同期バッファ(1)へのパケットの転送動作を示すタイムチャートである。
【符号の説明】
1,2 プロセッサユニット
3,4 I/Oユニット
5,6 周辺装置
7 分周器
11,21 プロセッサ
12,22 メインメモリ
13,23 ノースブリッジ
14,24,34,44 その他の制御部
15,16,25,26,
34,44 同期制御部
17,18,27,28,
32,33,42,43 PCI−Express制御部
31,41 I/O(入出力)バスブリッジ
36,46 PCI−Xデバイス
101,102 プロセッサバス
103〜106 PCI−Expressインタフェース
107,108 PCI−Xバス
112 分周Clock
113,114 Inbound同期Ack信号
115,116 Outbound同期Ack信号
151,152,154,
155,251,252,
254,255 同期バッファ
153,253,348 制御回路
341〜343 受信バッファ
344〜346 送信バッファ
347 セレクタ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a fault tolerant system and a synchronization method used therefor, and more particularly to a synchronization method in a fault tolerant system configured by duplicating each unit.
[0002]
[Prior art]
Conventionally, in this type of fault-tolerant system, a synchronous interface such as a PCI (Peripheral Component Interconnect) bus is used as an interface in a chipset, whereby the processor unit operates in exactly the same way (for example, patents) Reference 1).
[0003]
Many chip sets used in general computer systems use a synchronous interface, and it is possible to configure a fault-tolerant system by using them.
[0004]
[Patent Document 1]
Japanese Unexamined Patent Publication No. 7-073059 (pages 12-16, FIG. 1)
[0005]
[Problems to be solved by the invention]
However, in conventional fault-tolerant systems, high-speed peripheral devices and networks require high-speed I / O (input / output) buses. It is becoming necessary.
[0006]
Conventionally, a synchronous interface such as a PCI bus has a limitation in speeding up due to a problem such as a clock skew. Therefore, an asynchronous interface such as PCI-Express is expected to be used in the future.
[0007]
However, in the asynchronous interface, in the data transfer to a plurality of counterparts, for example, even when the transmission side starts the transfer at the same time, the receiving side receives different timings. In addition, in the PCI-Express interface, when an error occurs on the interface, the receiving side requests the transmitting side to retransmit the part in which the error has occurred, and therefore the receiving side may have different timings for receiving valid data. is there.
[0008]
This means that in a fault-tolerant system, if an asynchronous interface is used as an interface in a chipset, the operation of the duplicated processor unit will be different. Since fault-tolerant systems require, at a minimum, redundant processors to behave in exactly the same way, configure a fault-tolerant system using a chipset that uses an asynchronous interface as the interface within the chipset. I can't.
[0009]
Accordingly, an object of the present invention is to solve the above-mentioned problems and to make a fault tolerant capable of configuring a system using a PCI-Express interface or other asynchronous interface as a connection between a north bridge and an I / O bus bridge. It is to provide a system and a synchronization method used therefor.
[0010]
[Means for Solving the Problems]
The fault tolerant system according to the present invention comprises:Multiple control circuitsWhenMultipleInput and outputapparatusAnd byManyA fault-tolerant system configured by overlapping and using an asynchronous interface as an interface between the control circuit and the input / output device,
Each of the control circuits includes synchronization control means,
Each of the synchronization control means is configured such that data transmitted and received asynchronously between the control circuit and the input / output device via the asynchronous interface can be transmitted and received in the control circuit including the synchronization control means. , Notify each otheris doing.
[0011]
The synchronization method according to the present invention comprises:A fault tolerant configured by multiplexing with a plurality of control circuits and a plurality of input / output devices, each of the control circuits having a synchronous control means, and using an asynchronous interface as an interface between the control circuit and the input / output devices A system synchronization method comprising:
Each of the synchronization control means can transmit / receive data that is asynchronously transmitted / received between the control circuit and the input / output device via the asynchronous interface in the control circuit including the synchronization control means. , Notify each otheris doing.
[0012]
That is, the synchronization method of the present invention is a synchronization method in a fault tolerant system using an asynchronous interface, and an asynchronous interface such as a PCI (Peripheral Component Interconnect) -Express interface is connected to a north bridge and an I / O (input / output) bus bridge. In the fault-tolerant system used as the interface between the two, the north bridge transmits and receives packets to and from the PCI-Express control unit based on a synchronous Ack (Acknowledgement) signal that operates in synchronization with the divided clock in the north bridge. By providing a synchronization control unit for synchronization, both processors can operate in exactly the same way.
[0013]
More specifically, in the fault-tolerant system of the present invention, the synchronization control unit in the I / O bus bridge (0) has a valid packet in the transmission buffer (0), and is transmitted to the transmission buffer (1). If the packet can be written to both the buffer (2), the same packet is simultaneously transferred to the transmission buffer (1) and the transmission buffer (2).
[0014]
Thereafter, in the fault-tolerant system of the present invention, the PCI-Express control unit (0) and the PCI-Express control unit (1) read packets from the transmission buffer (1) and the transmission buffer (2) at different timings, respectively. , To the PCI-Express interface. As a result, the same packet is transmitted to the north bridge (0) and the north bridge (1).
[0015]
The PCI-Express control unit (0) in the north bridge (0) and the PCI-Express control unit (0) in the north bridge (1) are transmitted from the I / O bus bridge (0) via the PCI-Express interface. The received packet is received, and the packet is synchronized with the synchronization buffer (0) of the synchronization control unit (0) in the north bridge (0) and the synchronization buffer (0) of the synchronization control unit (0) in the north bridge (1). Written in. Since the PCI-Express interface is an asynchronous interface, the timing for receiving a packet and writing to the synchronous buffer (0) is different between both north bridges (0) and (1).
[0016]
When the synchronization control unit (0) in the north bridge (0) has a valid packet in the synchronization buffer (0) and the synchronization buffer (1) is free, the Inbound synchronization Ack signal is generated at the rising timing of the frequency division clock. Assert (1). Similarly, the synchronization control unit (0) in the north bridge (1) has an effective packet in the synchronization buffer (0), and when the synchronization buffer (1) is free, the Inbound at the rising timing of the divided clock. Assert the synchronous Ack signal (0).
[0017]
When both Inbound synchronization Ack signals (0) and (1) are asserted at the rising timing of the frequency-divided clock, the synchronization control units (0) and (1) are respectively synchronized from the synchronization buffer (0) to the synchronization buffer (1 Start forwarding packets to).
[0018]
As a result, the packet transmitted by the I / O bus bridge (0) is written to the synchronization buffer (1) in the north bridge (0) and the synchronization buffer (1) in the north bridge (1) at exactly the same timing. Thus, the other control units in the north bridge (0) and the other control units in the north bridge (1) can simultaneously read packets from the synchronization control unit.
[0019]
When there is a packet to be sent in the direction of the I / O bus bridge (0), the other control unit in the north bridge (0) writes the packet if the synchronization buffer (2) of the synchronization control unit (0) is free. . Similarly, when there is a packet to be sent to the other control unit in the north bridge (1) in the direction of the I / O bus bridge (1), the packet is transmitted if the synchronization buffer (2) of the synchronization control unit (0) is free. Write.
[0020]
When the synchronization buffer (3) is free, the synchronization control unit (0) in the north bridge (0) asserts the Outbound synchronization Ack signal (1) at the rising timing of the divided clock. Similarly, the synchronization control unit (0) in the north bridge (1) asserts the Outbound synchronization Ack signal (0) at the rising timing of the divided clock when the synchronization buffer (3) is free.
[0021]
If both Outbound synchronization Ack signals (0) and (1) are asserted at the rising timing of the frequency division clock, the synchronization control unit (0) in the north bridge (0) and the north bridge (1) Each of the synchronization control units (0) starts packet transfer from the synchronization buffer (2) to the synchronization buffer (3).
[0022]
Thus, packets are read out from the synchronization buffer (2) in the north bridge (0) and the synchronization buffer (2) in the north bridge (1) at exactly the same timing, that is, the synchronization buffer (2). The vacant state of both the north bridges (0) and (1) is synchronized, and the other control units in the north bridge (0) and the other control units in the north bridge (1) are synchronized control units. It is possible to simultaneously write packets to
[0023]
Thereafter, the PCI-Express control unit (0) in the North Bridge (0) and the PCI-Express control unit (0) in the North Bridge (1) read packets from the synchronization buffer (3) at different timings. , To the PCI-Express interface.
[0024]
The PCI-Express control units (0), (1) in the I / O bus bridge (0) receive the packets sent from the north bridges (0), (1) via the PCI-Express interface, and synchronize them. Write to the reception buffer (0) and the reception buffer (1) of the control unit.
[0025]
The PCI-Express interface is an asynchronous interface, and the timing at which both north bridges (0) and (1) issue packets is different, so the timing at which packets are received and written into the reception buffer is different. When there is a valid packet in both the reception buffer (0) and the reception buffer (1), the synchronization control unit in the I / O bus bridge (0) starts from the reception buffer (0) and the reception buffer (1). Are simultaneously read, and only packets from one side are written to the reception buffer.
[0026]
Thus, in the fault-tolerant system of the present invention, even if the PCI-Express control unit does not operate synchronously, the other control units in the north bridge (0) and the other control units in the north bridge (1) However, it is possible to perform exactly the same operation. As a result, the processor (0) and the processor (1) can perform exactly the same operation.
[0027]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing the configuration of a fault tolerant system according to an embodiment of the present invention. In FIG. 1, a fault tolerant system according to an embodiment of the present invention includes a peripheral component interconnect (PCI) -express interface (0-3) 103-106, a north bridge (0,1) 13, 23 and an I / O (input). Output) Used as an interface between the bus bridges (0, 1) 31, 41, and each component is duplicated.
[0028]
A fault tolerant system according to an embodiment of the present invention includes processor units (0, 1) 1 and 2, I / O units (0, 1) 3 and 4, processor units (0, 1) 1 and 2, and I / O. It consists of four PCI-Express interfaces (0 to 3) 103 to 106 connecting the O units (0, 1) 3 and 4.
[0029]
The processor unit (0) 1 includes a processor (0) 11, a processor bus (0) 101, a main memory (0) 12, and a north bridge (0) 13. Similarly, the processor unit (1) 2 includes a processor (1) 21, a processor bus (1) 102, a main memory (1) 22, and a north bridge (0) 23.
[0030]
The I / O unit (0) 3 includes an I / O bus bridge (0) 31, a PCI-X bus (0) 107, and a PCI-X device (0) 36. Similarly, the I / O unit (1) 4 includes an I / O bus bridge (1) 41, a PCI-X bus (2) 108, and a PCI-X device (2) 46.
[0031]
Both of these I / O units (0, 1) 3 and 4 are equipped with the same PCI-X device. The PCI-X device (0) 36 is connected to the peripheral device (0) 5, and the PCI-X device (2) 46 is connected to the peripheral device (2) 6.
[0032]
The two processors (0, 1) 11 and 21 normally perform exactly the same operation. When a failure or the like occurs in one processor unit, the processor unit is disconnected and the entire system continues to operate using only the other processor unit.
[0033]
In writing data to the peripheral device, first the peripheral device (0) 5 is written, and then the same data is also written to the peripheral device (2) 6. The read is normally read only from the peripheral device (0) 5, but if the peripheral device (0) 5 cannot be accessed due to disconnection of the I / O unit (0) 3 due to a failure, the peripheral device (0) 2) Lead from 6. Since the two processors (0, 1) 11 and 21 are operating in exactly the same manner, both processors request data writing / reading to the peripheral device at the same time.
[0034]
The north bridge (0) 13 includes PCI-Express control units (0, 1) 17, 18 for controlling packet transmission / reception to the PCI-Express interfaces (0.1) 103, 104, and the north bridge (0) 13 Synchronous control units (0, 1) 15 and 16 that synchronize reading / writing of packets coming from other parts via the PCI-Express interface with the north bridge (1) 23 side, and other operations (processor bus control, etc.) It is comprised from the
[0035]
Similarly, the north bridge (1) 23 includes PCI-Express control units (0, 1) 27 and 28 that respectively control packet transmission / reception with respect to the PCI-Express interfaces (2, 3) 105 and 106, and the north bridge (1). 23. Synchronous control units (0, 1) 25 and 26 that synchronize reading and writing of packets coming from other parts within the
[0036]
The I / O bus bridge (0) 31 includes PCI-Express control units (0, 1) 32 and 33 that respectively control packet transmission / reception to the PCI-Express interfaces (0, 2) 103 and 105, and two PCI-Express. It is composed of a
[0037]
Similarly, the I / O bus bridge (1) 41 includes PCI-Express control units (0, 1) 42, 43 for controlling packet transmission / reception to the PCI-Express interfaces (1, 3) 104, 106, and the like. It comprises a synchronous control unit 44 that simultaneously reads and writes packets to and from the PCI-Express control units (0, 1) 42 and 43, and another
[0038]
FIG. 2 is a block diagram showing a detailed configuration of the synchronization control unit of FIG. In FIG. 2, the synchronization control unit (0) 15 in the north bridge (0) 13 and the synchronization control unit (0) 25 in the north bridge (1) 23 are Inbound synchronization Ack signals (0 to 1) 113, 114. And the Outbound synchronization Ack signals (0 to 1) 115 and 116.
[0039]
Although not shown in FIG. 2, the synchronization control unit (1) 16 in the north bridge (0) 13 and the synchronization control unit (1) 26 in the north bridge (1) 23 are also signal lines similar to the above. It is connected. The
[0040]
The synchronization controller (0) 15 in the north bridge (0) 13 includes synchronization buffers (0 to 3) 151, 152, 154, 155 and a control circuit 153. The packet received from the PCI-Express interface (0) 103 is written from the PCI-Express control unit (0) 19 to the synchronization buffer (0) 152, and then to the synchronization buffer (1) 151 under the control of the control circuit 153. It is transferred and sent to the
[0041]
The packet to be transmitted to the PCI-Express interface (0) 103 is written to the synchronization buffer (2) 154 from the
[0042]
The synchronization control unit (1) 16 in the north bridge (0) 13 and the synchronization control unit (0) 25 and the synchronization control unit (1) 26 in the north bridge (1) 23 are also described above. 0) The same operation as 15 is performed.
[0043]
The
[0044]
Packets received from both PCI-Express interfaces (0, 2) 103, 105 are written from the PCI-Express control units (0, 1) 32, 33 to the reception buffers (0, 1) 341, 342, and thereafter. Only the one selected by the
[0045]
Packets to be transmitted to the PCI-
[0046]
The operation of the fault tolerant system according to the embodiment of the present invention will be described with reference to FIG.
[0047]
The
[0048]
The PCI-Express control unit (0) 17 in the north bridge (0) 13 and the PCI-Express control unit (0) 27 in the north bridge (1) 23 are connected from the I / O bus bridge (0) 31 to the PCI- A packet sent via the Express interface (0, 2) 103, 105 is received, and the synchronization buffer (0) 152 of the synchronization control unit (0) 15 and the synchronization buffer (0) 252 of the synchronization control unit (0) 25 are received. Write to. Since the PCI-Express interfaces (0, 2) 103 and 105 are asynchronous interfaces, the timing of receiving packets and writing them into the synchronous buffers (0) 152 and 252 is different between both north bridges (0, 1) 13 and 23. .
[0049]
The synchronization control unit (0) 15 in the north bridge (0) 13 has a valid packet in the synchronization buffer (0) 152, and the synchronization buffer (1) 151 is free. Inbound synchronous Ack signal (1) 114 is asserted.
[0050]
Similarly, the synchronization control unit (0) 25 in the north bridge (1) 23 has a valid packet in the synchronization buffer (0) 252, and when the synchronization buffer (1) 251 is free, the rising edge of the
[0051]
When both Inbound synchronization Ack signals (0, 1) 113 and 114 are asserted at the rising timing of the
[0052]
As a result, the packet transmitted by the I / O bus bridge (0) 31 is exactly the same as the synchronization buffer (1) 151 in the north bridge (0) 13 and the synchronization buffer (1) 251 in the north bridge (1) 23. The
[0053]
If there is a packet sent to the
[0054]
When the synchronization buffer (3) 155 is empty, the synchronization control unit (0) 15 asserts the Outbound synchronization Ack signal (1) 116 at the rising timing of the
[0055]
When both Outbound synchronization Ack signals (0, 1) 115 and 116 are asserted at the rising timing of the
[0056]
As a result, packets are read from the synchronization buffer (2) 154 in the north bridge (0) 13 and the synchronization buffer (2) 254 in the north bridge (1) 23 at exactly the same timing. That is, the availability of the synchronization buffers (2) 154 and 254 is synchronized with both the north bridges (0, 1) 13 and 23, and the
[0057]
Thereafter, the PCI-Express control units (0) 17, 27 read the packets from the synchronization buffers (3) 155, 255 at different timings, and transmit them to the PCI-Express interfaces (0, 2) 103, 105.
[0058]
The PCI-Express control units (0, 1) 32, 33 in the I / O bus bridge (0) 31 are routed from the north bridge (0, 1) 13, 23 via the PCI-Express interfaces (0, 2) 103, 105. Is received and written into the reception buffers (0, 1) 341, 342 of the
[0059]
The PCI-Express interfaces (0, 2) 103 and 105 are asynchronous interfaces, and the timings at which both north bridges (0, 1) 13 and 23 issue packets are also different. 1) The timing for writing to 341 and 342 is different.
[0060]
The
[0061]
Accordingly, in the present embodiment, even if the PCI-Express control unit does not operate in synchronization, the
[0062]
FIG. 3 is a time chart showing the packet transfer operation from the synchronization buffer (2) 154, 254 of FIG. 2 to the synchronization buffer (3) 155, 255, and FIG. 4 is a synchronization buffer (0) 152, 252 of FIG. 6 is a time chart showing the transfer operation of packets from the computer to the synchronization buffers (1) 151 and 251. The read operation to the PCI-X devices (0, 2) 36, 46 accompanying the access to the peripheral devices (0, 2) 5, 6 will be described with reference to FIGS.
[0063]
The read request to the PCI-X device (0) 36 issued by the processor (0) 11 to the processor bus (0) 101 is received by the
[0064]
Since the processor (0) 11 and the processor (1) 21 operate in exactly the same way, the processor (1) 21 reads the read request to the PCI-X device (0) 36 at the same timing as the processor (0) 11. Is issued to the processor bus (1) 102. This read request is received by the
[0065]
The
[0066]
In this case, the timing is different because the PCI-Express interface (0, 2) 103, 105 is an asynchronous interface, and there is an operation such as retransmission, so that the PCI-Express interface (0, 2) 103, 105 operates. Because it is different.
[0067]
Next, packet transfer from the synchronization buffer (2) 154, 254 to the synchronization buffer (3) 155, 255 will be described with reference to FIG.
[0068]
If the synchronization buffer (3) 155 is empty (that is, the write address and the read address have the same value), the control circuit 153 asserts the Outbound synchronization Ack signal (1) 116 at the rising timing of the frequency division clock 112 (FIG. 3 “0” timing).
[0069]
Similarly, if the synchronization buffer (3) 255 is empty, the
[0070]
The control circuit 153 asserts both the Outbound synchronization Ack signal (1) 116 asserted by itself and the Outbound synchronization Ack signal (0) 115 asserted by the
[0071]
Similarly, the
[0072]
This timing is exactly the same between the control circuit 153 and the
[0073]
The packet transmitted to the PCI-Express interface (0) 103 by the PCI-Express control unit (0) 17 is received and received by the PCI-Express control unit (0) 32 in the I / O bus bridge (0) 31. If buffer (0) 341 is empty, it is written to receive buffer (0) 341.
[0074]
Similarly, a packet transmitted to the PCI-Express interface (2) 105 by the PCI-Express control unit (0) 27 is received by the PCI-Express control unit (1) 33 in the I / O bus bridge (0) 31. If the reception buffer (1) 342 is empty, it is written to the reception buffer (1) 342. The contents of the packet to be written are the same in the reception buffers (0, 1) 341 and 342, but the PCI-Express interfaces (0, 1) 103 and 105 are asynchronous interfaces and have operations such as retransmission. The timing of writing is completely different.
[0075]
When there is a packet in the reception buffer (0, 1) 341, 342, the
[0076]
The read request issued to the PCI-X bus (0) 107 is received by the PCI-X device (0) 36, and the PCI-X device (0) 36 sends a read response to the read request to the PCI-X bus (0). Issued to 107.
[0077]
The read response issued to the PCI-X bus (0) 36 is received by the
[0078]
The contents of the packets written in the transmission buffers (1, 2) 345 and 346 and the timing of writing are exactly the same. Packets written in the transmission buffers (1, 2) 345, 346 are read out by the PCI-Express control units (0, 1) 32, 33 at different timings, and the PCI-Express interfaces (0, 2) 103, 105.
[0079]
The packet transmitted to the PCI-Express interface (0) 103 by the PCI-Express control unit (0) 32 is received by the PCI-Express control unit (0) 17 in the north bridge (0) 13, and the synchronization buffer (0 ) 152 is empty, it is written to sync buffer (0) 152.
[0080]
Similarly, a packet transmitted to the PCI-Express interface (2) 105 by the PCI-Express control unit (1) 33 is received by the PCI-Express control unit (0) 27 in the north bridge (1) 23 and synchronized. If buffer (0) 252 is empty, it is written to synchronization buffer (0) 252.
[0081]
The contents of the packets written in the synchronization buffers (0, 1) 152 and 252 are exactly the same, but the timing of writing is completely different. The
[0082]
The packets written in the synchronization buffers (1) 151 and 251 are read by the
[0083]
Next, packet transfer from the synchronization buffer (0) 152, 252 to the synchronization buffer (1) 151, 251 will be described with reference to FIG.
[0084]
If there is a packet in the synchronization buffer (0) 152 and the synchronization buffer (1) 151 is empty, the control circuit 153 asserts the Inbound synchronization Ack signal (1) 114 at the rising timing of the frequency division clock 112 (see “ 2 "timing).
[0085]
Similarly, if there is a packet in the synchronization buffer (0) 252 and the synchronization buffer (1) 251 is empty, the
[0086]
In this embodiment, it is assumed that the packet reception of the PCI-Express control unit (0) 27 is delayed from the PCI-Express control unit (0) 17. Therefore, the
[0087]
When both the Inbound synchronous Ack signal (1) 116 asserted by the control circuit 153 and the Inbound synchronous Ack signal (0) 115 asserted by the
[0088]
Similarly, when both the Inbound synchronous Ack signal (0) 115 asserted by the
[0089]
This timing is exactly the same in the
[0090]
Thereafter, the
[0091]
As described above, in this embodiment, since a fault tolerant system can be realized using a general-purpose next-generation I / O interface, a PCI-Express interface that is a next-generation I / O interface that can be a de facto A fault tolerant system using other asynchronous interfaces as connections between the North Bridge (0,1) 13,23 and the I / O Bus Bridge (0,1) 31,41 can be configured. The cost of developing a tolerant system is reduced.
[0092]
In this embodiment, each processor unit (0,1) 1,2 has one processor (0,1) 11,21, and each I / O unit (0,1) 3,4 has one PCI-X bus ( Although the system having 0, 1) 107, 108 is described, there is no limitation on the number of processors and the number of PCI-X buses in the unit.
[0093]
The I / O buses in the I / O units (0, 1) 3 and 4 are not PCI-X buses (0, 1) 107 and 108, but a PCI bus, an AGP (Accelerated Graphics Port) interface, PCI- Other interfaces such as an Express interface may be used.
[0094]
Furthermore, in the present embodiment, a fault tolerant system in which each unit is duplicated is described, but the present invention can be extended to a fault tolerant system with higher multiplicity such as triple.
[0095]
【The invention's effect】
As described above, the present invention has a configuration and operation as described above, thereby configuring a system using a PCI-Express interface or other asynchronous interface as a connection between the north bridge and the I / O bus bridge. The effect that it can do is acquired.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a fault tolerant system according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a detailed configuration of a synchronization control unit in FIG. 1;
FIG. 3 is a time chart showing a packet transfer operation from the synchronization buffer (2) to the synchronization buffer (3) in FIG. 2;
4 is a time chart showing a packet transfer operation from the synchronization buffer (0) to the synchronization buffer (1) in FIG. 2; FIG.
[Explanation of symbols]
1, 2 processor units
3, 4 I / O unit
5,6 Peripheral device
7 divider
11, 21 processor
12,22 Main memory
13,23 North Bridge
14, 24, 34, 44 Other control units
15, 16, 25, 26,
34, 44 Synchronization control unit
17, 18, 27, 28,
32, 33, 42, 43 PCI-Express control unit
31, 41 I / O (input / output) bus bridge
36, 46 PCI-X devices
101, 102 processor bus
103-106 PCI-Express interface
107,108 PCI-X bus
112 Divided Clock
113, 114 Inbound synchronous Ack signal
115, 116 Outbound synchronous Ack signal
151, 152, 154
155, 251, 252,
254, 255 Sync buffer
153,253,348 control circuit
341 to 343 receive buffer
344 to 346 transmission buffer
347 selector
Claims (20)
前記制御回路は、それぞれ、同期制御手段を備え、
前記同期制御手段の各々は、前記非同期インタフェースを介して前記制御回路と前記入出力装置との間を非同期で送受信されるデータが当該同期制御手段を備える前記制御回路において送受信可能となったことを、それぞれ相互に通知することを特徴とするフォルトトレラントシステム。And configure multi-duplex by a plurality of control circuits and a plurality of input and output devices, a fault tolerant system using an asynchronous interface as an interface between the input device and the control circuit,
Each of the control circuits includes synchronization control means,
Each of the synchronization control means is configured such that data transmitted and received asynchronously between the control circuit and the input / output device via the asynchronous interface can be transmitted and received in the control circuit including the synchronization control means. A fault-tolerant system characterized by notifying each other .
前記入出力装置から受信した前記データを格納する第1の受信バッファと、A first receive buffer for storing the data received from the input / output device;
前記第1の受信バッファから、前記第1の受信バッファに格納された前記データを受け取る第2の受信バッファとを備え、A second reception buffer for receiving the data stored in the first reception buffer from the first reception buffer;
前記同期制御手段は、前記第1の受信バッファに前記データが存在し、かつ、前記第2の受信バッファが空いている場合、当該同期制御手段を備える前記制御回路において前記データの受信が可能となったと判断することを特徴とする請求項1または請求項2に記載のフォルトトレラントシステム。The synchronization control means can receive the data in the control circuit including the synchronization control means when the data is present in the first reception buffer and the second reception buffer is empty. The fault tolerant system according to claim 1, wherein the fault tolerant system is determined.
前記制御回路から送信される前記データを格納する第1の送信バッファと、A first transmission buffer for storing the data transmitted from the control circuit;
前記第1の送信バッファから、前記第1の送信バッファに格納された前記データを受け取る第2の送信バッファとを備え、A second transmission buffer for receiving the data stored in the first transmission buffer from the first transmission buffer;
前記同期制御手段は、前記第1の送信バッファに前記データが存在し、かつ、前記第2の送信バッファが空いている場合、当該同期制御手段を備える前記制御回路から前記データの送信が可能となったと判断することを特徴とする請求項1または請求項2に記載のフォルトトレラントシステム。The synchronization control means can transmit the data from the control circuit including the synchronization control means when the data exists in the first transmission buffer and the second transmission buffer is empty. The fault tolerant system according to claim 1, wherein the fault tolerant system is determined.
他の制御回路との間の同期を制御する同期制御手段を備え、
前記同期制御手段は、前記非同期インタフェースを介して前記制御回路と前記入出力装置との間を非同期で送受信されるデータが当該制御回路において送受信可能となったことを、他の制御回路の同期制御手段に対して通知することを特徴とする制御回路。 A control circuit connected to a plurality of input / output devices via an asynchronous interface,
Comprising synchronization control means for controlling synchronization with other control circuits;
The synchronization control means indicates that data transmitted / received asynchronously between the control circuit and the input / output device via the asynchronous interface can be transmitted / received by the control circuit. A control circuit that notifies the means.
前記入出力装置から受信した前記データを格納する第1の受信バッファと、A first receive buffer for storing the data received from the input / output device;
前記第1の受信バッファから、前記第1の受信バッファに格納された前記データを受け取る第2の受信バッファとを備え、A second reception buffer for receiving the data stored in the first reception buffer from the first reception buffer;
前記同期制御手段は、前記第1の受信バッファに前記データが存在し、かつ、前記第2の受信バッファが空いている場合、前記制御回路において前記データの受信が可能となったと判断することを特徴とする請求項10または請求項11に記載の制御回路。The synchronization control means determines that the control circuit can receive the data when the data is present in the first reception buffer and the second reception buffer is empty. The control circuit according to claim 10 or 11, wherein the control circuit is characterized in that:
前記制御回路から送信される前記データを格納する第1の送信バッファと、A first transmission buffer for storing the data transmitted from the control circuit;
前記第1の送信バッファから、前記第1の送信バッファに格納された前記データを受け取る第2の送信バッファとを備え、A second transmission buffer for receiving the data stored in the first transmission buffer from the first transmission buffer;
前記同期制御手段は、前記第1の送信バッファに前記データが存在し、かつ、前記第2の送信バッファが空いている場合、前記制御回路から前記データの送信が可能となったと判断することを特徴とする請求項10または請求項11に記載の制御回路。The synchronization control means determines that the data can be transmitted from the control circuit when the data exists in the first transmission buffer and the second transmission buffer is empty. The control circuit according to claim 10 or 11, wherein the control circuit is characterized in that:
前記同期制御手段の各々が、前記非同期インタフェースを介して前記制御回路と前記入出力装置との間を非同期で送受信されるデータが当該同期制御手段を備える前記制御回路において送受信可能となったことを、それぞれ相互に通知することを特徴とする同期化方法。 Each of the synchronization control means can transmit / receive data that is asynchronously transmitted / received between the control circuit and the input / output device via the asynchronous interface in the control circuit including the synchronization control means. , A synchronization method characterized by notifying each other.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003074693A JP4048988B2 (en) | 2003-03-19 | 2003-03-19 | Fault tolerant system and synchronization method used therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003074693A JP4048988B2 (en) | 2003-03-19 | 2003-03-19 | Fault tolerant system and synchronization method used therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004280732A JP2004280732A (en) | 2004-10-07 |
JP4048988B2 true JP4048988B2 (en) | 2008-02-20 |
Family
ID=33290212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003074693A Expired - Fee Related JP4048988B2 (en) | 2003-03-19 | 2003-03-19 | Fault tolerant system and synchronization method used therefor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4048988B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4165499B2 (en) | 2004-12-13 | 2008-10-15 | 日本電気株式会社 | Computer system, fault tolerant system using the same, and operation control method thereof |
JP4411602B2 (en) | 2004-12-16 | 2010-02-10 | 日本電気株式会社 | Fault tolerant computer system |
JP2006195871A (en) * | 2005-01-17 | 2006-07-27 | Ricoh Co Ltd | Communication device, electronic equipment and image forming device |
JP5057548B2 (en) * | 2006-05-02 | 2012-10-24 | 株式会社リコー | Image data transfer apparatus and image data transfer method |
JP5481889B2 (en) * | 2009-03-11 | 2014-04-23 | 日本電気株式会社 | Fault tolerant computer, synchronous control method thereof and computer program |
CN106796541B (en) * | 2015-03-20 | 2021-03-09 | 瑞萨电子株式会社 | Data processing apparatus |
-
2003
- 2003-03-19 JP JP2003074693A patent/JP4048988B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004280732A (en) | 2004-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7143227B2 (en) | Broadcast bridge apparatus for transferring data to redundant memory subsystems in a storage controller | |
US7821919B2 (en) | Data processing apparatus and data processing method | |
US6643752B1 (en) | Transceiver with latency alignment circuitry | |
JP5585332B2 (en) | Fault tolerant system, master FT control LSI, slave FT control LSI and fault tolerant control method | |
US20080005402A1 (en) | Gals-based network-on-chip and data transfer method thereof | |
US5802333A (en) | Network inter-product stacking mechanism in which stacked products appear to the network as a single device | |
US7516349B2 (en) | Synchronized memory channels with unidirectional links | |
US7653764B2 (en) | Fault-tolerant computer and method of controlling data transmission | |
JP5544896B2 (en) | Reception circuit, information processing apparatus, and buffer control method | |
JPH076130A (en) | Method and apparatus for adaptation of data speed of fifo | |
JP5151176B2 (en) | Data communication apparatus, image processing system, and data communication method | |
JP4048988B2 (en) | Fault tolerant system and synchronization method used therefor | |
JP4755050B2 (en) | Data processing apparatus, mode management apparatus, and mode management method | |
JP3578075B2 (en) | Disk array control device and disk array control method | |
JP2991023B2 (en) | Data transmission device, data transmission / reception device and system | |
US6640277B1 (en) | Input staging logic for latching source synchronous data | |
JPH0232656B2 (en) | ||
US20040064660A1 (en) | Multiplexed bus with multiple timing signals | |
US20020089940A1 (en) | Duplexing apparatus and method in large scale system | |
US20200133634A1 (en) | Arithmetic processing apparatus and control method of arithmetic processing apparatus | |
JP3328246B2 (en) | DMA transfer method and system | |
JP3123844B2 (en) | Redundant device | |
US6453373B1 (en) | Method and apparatus for differential strobing | |
JP2000184003A (en) | Data transmitting system and data transmission controller used for the same | |
WO2024086639A1 (en) | Pcie retimer providing failover to redundant endpoint and multiple endpoint switching using synchronized multi-tile data interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070227 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070402 |
|
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: 20071106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071119 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101207 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101207 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111207 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |