JP2004126678A - システムコントローラ - Google Patents
システムコントローラ Download PDFInfo
- Publication number
- JP2004126678A JP2004126678A JP2002286050A JP2002286050A JP2004126678A JP 2004126678 A JP2004126678 A JP 2004126678A JP 2002286050 A JP2002286050 A JP 2002286050A JP 2002286050 A JP2002286050 A JP 2002286050A JP 2004126678 A JP2004126678 A JP 2004126678A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- cpu
- image
- transfer
- read
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Abstract
【解決手段】共有バス2126を介して接続される複数のCPU2001と複数のメモリ2002またはIOデバイス2127、2129とを、リード命令とリードデータリターンとが分離可能なバスを介して接続されたシステムコントローラに、命令を発行したCPUと、その命令の転送先と、転送保留中のCPUとを識別する識別情報を保持する保持手段と、リード時に、前記保持手段の保持内容に基づいて、リターンデータが転送命令の発行順と入れ替わらないように制御する順序制御手段と、一旦シリアライズされて前記共有バスを介して行なわれた転送を、複数の接続経路を用いて並行に発行する発行手段とを備える。
【選択図】 図3
Description
【発明の属する技術分野】
本発明は、複数CPUを用い、クロスバースイッチを用いたバス接続を有するシステムコントローラで、特に、スキャニング、プリンティングデバイス、ネットワークインターフェース等の制御を目的とする複合機器のコントローラに関するものである。
【0002】
【従来の技術】
▲1▼従来、図12に示すような、複数のCPU2001、メモリコントローラ、DMAC等を共通のバス2126に接続したマルチプロセッサシステムが存在する。
【0003】
▲2▼また、複数のCPUを、同時接続可能な複数のバススイッチのマスタポートに接続した例も存在する。
【0004】
▲3▼更に、共通バスをバススイッチのマスターポートのひとつに接続する構成も提案がされている。
【0005】
【発明が解決しようとする課題】
しかしながら、上記従来の技術には、以下のような問題があった。
【0006】
上記▲1▼の従来例では、バススヌーピングによるキャッシュメモリのコヒーレンシ管理、アトミックトランザクションの実現等が簡易になる反面、共通バスに接続されたマスタデバイスが一度に一つしか使用できないという問題点、共有バスに接続されるデバイス数が多くなり、動作周波数が制限されるという問題点等により、高性能化が難しいという問題があった。
【0007】
上記▲2▼の従来例では、同時接続性、バス負荷の低減による高性能化は可能な反面、一方のCPUより他方のCPUのバストランザクションが観測できず、キャッシュメモリのコヒーレンシ管理、ロードリンク、ストアコンデイショナルによるアトミックトランザクションのサポートが困難であるという問題があった。そこで、この問題を解決するために、一方のトランザクションをターゲットスレーブに伝達する前に他のCPUに対して転送し、スヌーピングを行わせることにより、キャッシュのコヒーレンシ保持及びアトミックトランザクションを実現する方法が提案されている。
【0008】
しかし、この方法では、ライト動作がスヌーピング終了まで保留され、CPUの性能を制限してしまう。またライトバッファを実装する場合に、一方のライト動作終了前に他方のCPUがライト動作を検出できず、リンクビットをブレーク出来ないため、アトミックトランザクションが保証できないという問題があった。
【0009】
上記▲3▼の方式は、上述の問題を解決するが、共通バスに接続された一方のCPUがアクセス時間の長い低速のデバイスに転送要求を発行すると、もう一方のCPUがメモリ等の高速デバイスにアクセスしようとした場合でも、最初のCPUの転送終了までアクセスが保留されてしまい、複数CPUを用いた場合の性能の向上を制限してしまうと言う問題があった。
【0010】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、共有バスを介して接続される複数のCPUと複数のメモリまたはIOデバイスとを、リード命令とリードデータリターンとが分離可能なバスを介して接続されたシステムコントローラに、命令を発行したCPUと、その命令の転送先と、転送保留中のCPUとを識別する識別情報を保持する保持手段と、リード時に、前記保持手段の保持内容に基づいて、リターンデータが転送命令の発行順と入れ替わらないように制御する順序制御手段と、一旦シリアライズされて前記共有バスを介して行なわれた転送を、複数の接続経路を用いて並行に発行する発行手段とを備える。
【0011】
【発明の実施の形態】
〔第一の実施形態〕
以下に、本発明の装置及びその動作について詳細に説明する。
【0012】
<全体構成>
全体構成図を図1に示した。
【0013】
Controller Unit(2000)は画像入力デバイスであるScanner(2070)や画像出力デバイスであるPrinter(2095)と接続し、一方ではLAN(2011)や公衆回線(WAN)〈2051〉と接続することで、画像情報やデバイス情報の人出カ、PDLデータのイメージ展開を行う為のコントローラである。
【0014】
CPU(2001)はシステム全体を制御するプロセッサである。本実施形態では2つのCPUを用いた例を示した。これら二つのCPUは、共通のCPUバス〈2126〉に接続され、さらに、システムバスブリッジ(2007)に接続される。
【0015】
システムバスブリッジ(2007)は、バススイッチであり、CPUバス(2126)、RAMコントローラ(2124)、ROMコントローラ(2125)、IOバス1(2127)、サブバススイッチ(2128)、IOバス2(2129)、画像リングインターフェース1(2147)、画像リングインターフェース2(2148)が接続される。
【0016】
サブバススイッチ(2128)は、第2のバススイッチであり、画像DMA1(2130)、画像DMA2(2132)、フォント伸張部(3134)、ソート回路(2135)、ビットマップトレース部(2136)が接続され、これらのDMAから出力されるメモリアクセス要求を調停し、システムバスブリッジへの接続を行う。
【0017】
RAM(2002)はCPU(2001)が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。RAMコントローラ〈2124)により制御される、本実施形態では、ダイレクトRDRAMを採用する例を示した。
【0018】
ROM(2003)はブートROMであり、システムのブートプログラムが格納されている。ROMコントローラ(2125)により制御される。
【0019】
画像DMA1(2130)は、画像圧縮部(3131)に接続し、レジスタアクセスリング(2137)を介して設定された情報に基づき、画像圧縮部(2131)を制御し、RAM(2002)上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う、本実施形態では、JPEGを圧縮アルゴリズムに採用した例を示した。
【0020】
画像DMA2(2132)は、画像伸張部(2133)に接続し、レジスタアクセスリング(2137)を介して設定された情報に基づき、画像伸張部(2133)を制御し、RAM(2002)上にある圧縮データの読み出し、伸張、伸張後データの書き戻しを行う、本実施形態では、JPEGを伸張アルゴリズムに採用した例を示した。
【0021】
フォント伸張部(2134)は、LANインターフェース(2010)等を介して外部より転送されるPDLデータに含まれるフォントコードに基づき、ROM(2003)もしくは、RAM(2002)内に格納された、圧縮フォントデータの伸張を行う。本実施形態では、FBEアルゴリズムを採用した例を示した。
【0022】
ソート回路(2135)は、PDLデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路である。ビットマップトレース回路(2136)は、ビットマップデータより、エッジ情報を抽出する回路である。
【0023】
IOバス1(2127)は、内部IOバスの一種であり、標準バスであるUSBバスのコントローラ、USBインターフェース(2138)、汎用シリアルポート〈2139)、インタラプトコントローラ(2140)、GPIOインターフェース(2141)が接続される。IOバス1には、バスアービタ(図示せず)が含まれる。
【0024】
操作部I/F(2006)は操作部(UI)(2012)とインターフェース部であり、操作部(2012)に表示すべき画像データを操作部(2012)に対して出力する。また、操作部(2012)から本システム使用者が入力した情報を、CPU(2001)に伝える役割をする。
【0025】
IOバス2(2129)は内部IOバスの一種であり、汎用バスインターフェース1及び2(2142)と、LANコントローラ(2010)が接続される。IOバス2にはバスアービタ(図示せず)が含まれる。
【0026】
汎用バスインターフェース(2142)は、2つの同一のバスインターフェースから成り、標準IOバスをサポートするバスブリッジである。本実施形態では、PCIバス(2143)を採用した例を示した。
【0027】
HDD(2004)はハードディスクドライブで、システムソフトウェア、画像データを格納する。ディスクコントローラ(2144)を介して一方のPCIバス(2143)に接続される。
【0028】
LANコントローラ(2010)は、MAC回路(2145)、PHY/PMD回路(2146)を介してLAN(2011)に接続し、情報の入出力を行う。
【0029】
Modem(2050)は公衆回線(2051)に接続し、情報の人出力を行う。
【0030】
画像リングインターフェース1(2147)及び画像リングインターフェース2(2148)は、システムバスブリッジ(2007)と画像データを高速で転送する画像リング(2008)を接続し、タイル化後に圧縮されたデータをRAM(2002)とタイル画像処理部(2149)との間で転送するDMAコントローラである。
【0031】
画像リング(2008)は、一対の単方向接続経路の組み合わせにより構成される(画像リング1及び画像リング2)。画像リング(2008)は、タイル画像処理部(2149)内で、画像リングインターフェース3(2101)及びタイル画像インターフェース4(2102)を介し、タイル伸張部(2103)、コマンド処理部(2104)、ステータス処理部(2105)、タイル圧縮部(2106)に接続される。本実施形態では、タイル伸張部(2103)を2組、タイル圧縮部を3組実装する例を示した。
【0032】
タイル伸張部(2103)は、画像リングインターフェースへの接続に加え、タイルバス〈2107)に接続され、画像リングより入力された庄縮後の画像データを伸張し、タイルバス(2107)へ転送するバスブリッジである。本実施形態では、多値データにはJPEG、2値データにはパックピッツを伸張アルゴリズムとして採用した例を示した。
【0033】
タイル圧縮部〈2106)は、画像リングインターフェースへの接続に加え、タイルバス(2107)に接続され、タイルバスより入力された圧縮前の画像データを圧縮し、画像リング〈2008)へ転送するバスブリッジである。本実施形態では、多値データにはJPEG、2値データにはパックピッツを圧縮アルゴリズムとして採用した例を示した。
【0034】
コマンド処理部(2104)は、画像リングインターフェースヘの接続に加え、レジスタ設定バス(2109)に接続され、画像リングを介して入力したCPU(2001)より発行されたレジスタ設定要求を、レジスタ設定バス〈2109)に接続される該当ブロックヘ書き込む。また、CPU(2001)より発行されたレジスタ読み出し要求に基づき、レジスタ設定バスを介して該当レジスタより情報を読み出し。画像リングインターフェース4(2102)に転送する。
【0035】
ステータス処理部(2105)は、各画像処理部の情報を監視し、CPU(2001)に対してインタラプトを発行するためのインタラプトパケットを生成し、画像リングインターフェース4に出力する。
【0036】
タイルバス(2107)には、上記ブロックに加え、以下の機能ブロックが接続される。レンダリング部インターフェース(2110)、画像入力インターフェース(2112)、画像出力インターフェース(2113)、多値化部(2119)、2値化部(2118)、色空間変換部(2117)、画像回転部(2030)、解像度変換部(2116)。
【0037】
レンダリング部インターフェース(2110)は、後述するレンダリング部により生成されたビットマップイメージを入力するインターフェースである。レンダリング部とレンダリング部インターフェースは、一般的なビデオ信号(2111)にて接続される。レンダリング部インターフェースは、タイルバス(2107)に加え、メモリバス(2108)、レジスタ設定バス(2109)への接続を有し、入力された、ラスタ画像をレジスタ設定バスを介して設定された、所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、タイルバス(2107)に対し出力を行う。
【0038】
画像入力インターフェース(2112)は、後述するスキャナー用画像処理部(2114)により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バスを介して設定された、所定の方法によりタイル画像への構造変換とクロックの同期化を行い、タイルバス(2107)に対し出力を行う。
【0039】
画像出力インターフェースは、タイルバスからのタイル画像データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ用画像処理部(2115)へ出力する。
【0040】
画像回転部(2030)は画像データの回転を行う。解像度変換部(2116〉は画像の解像度の変更を行う。色空間変換部〈2117)はカラー及びグレースケール画像の色空間の変換を行う。2値化部(2118)は多値(カラー、グレースケール)画像を2値化する。多値化部(2119)は2値画像を多値データヘ変換する。
【0041】
外部バスインターフェース部(2120)は、画像リングインターフェース1、2、3、4、コマンド処理部、レジスタ設定バスを介し、CPU(2001)により発行された、書き込み、読み出し要求を外部バス3(2121)に変換出力するバスブリッジである。外部バス3(2121)は本実施形態では、プリンター用画像処理部(2115)、スキャナー用画像処理部(2114)に接続されている。
【0042】
メモリ制御部(2122)は、メモリバス(2108)に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ1及び画像メモリ2(2123〉に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施形態では、画像メモリにSDRAMを用いた例を示した。
【0043】
スキャナー用画像処理部(2114)では、画像入力デバイスであるスキャナ〈2070)によりスキャンされた画像データを補正画像処理する。
【0044】
プリンタ用画像処理部では、プリンタ出力のための補正画像処理を行い、結果をPrinter(2095)へ出力する。
【0045】
レンダリング部(2060)はPDLコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【0046】
〔システム全体〕
本実施形態のネットワークシステム全体の構成図を図2に示した。
【0047】
1001は複合機器で、スキャナとプリンタから構成され、スキャナから読み込んだ画像をローカルエリアネットワーク(以下LAN)(1010)に流したり、LANから受信した画像をプリンタによりプリントアウトできる。また、スキャナから読んだ画像を図示しないFAX送信手段により、PSTNまたはISDN(1030)に送信したり、PSTNまたはISDNから受信した画像をプリンタによりプリントアウトできる。1002は、データベースサーバで、本実施形態の複合機器(1001)により読み込んだ2値画像及び多値画像をデータベースとして管理する。
【0048】
1003は、データベースサーバ(1002)のデータベースクライアントで、データベース(1002)に保存されている画像データを閲覧/検索等できる。
【0049】
1004は、電子メールサーバで、複合機器(1001)により読み取った画像を電子メールの添付として受け取ることができる。1005は、電子メールのクライアントで、電子メールサーバ(1004)の受け取ったメールを受信し閲覧したり、電子メールを送信したり、可能である。
【0050】
1006はHTML文書をLANに提供するWWWサーバであり、複合機器(1001)により、WWWサーバ(1006)で提供されるHTML文書をプリントアウトできる。
【0051】
1007は、ルータでLAN(1010)をインターネット/イントラネット(1012)と連結する。インターネット/イントラネットに、前述したデータベースサーバ(1002)、WWWサーバ(1006)、電子メールサーバ(1004)、複合機器(1001)と同様の装置が、それぞれ1020、1021、1022、1023として連結している。一方、複合機器(1001)は、PSTNまたはISDN〈1030)を介して、FAX装置(1031)と送受信可能になっている。
【0052】
また、LAN上にプリンタ(1040)も連結されており、複合機器(1001)により読み取った画像をプリントアウト可能なように構成されている。
【0053】
図3に、本実施形態によるCPUバスインターフェース部のみのブロック図を示した。2つのCPU(2001)が共通バス(2126)に接続される。システムバスブリッジ(2007)内部に実装されるCPUバスインターフェース(10)が、この共通バス(2126)のスレーブとして接続される。CPUバスインターフェース内部には、システムバスブリッジ内部のバス(Ybus)(11)へのマスタポートを2つ持つ。図3では簡潔のため、RAM(2002)、IOバス1(2127)、IOバス2(2129)への接続のみを図示した。
【0054】
図4にシステムバスブリッジ(2007)のブロック図を示す。
【0055】
システムバスブリッジ(2007)は、バススイッチ(3003)によって、複数のバスインターフェースブロックが相互に接続された構成をとる。相互に接続されたバスインターフェースには、MCIF(3001)、BIF(3002)、RCIF(3004)、CPUバスインターフェース(3005)、CIU(3006)、YMIF(3007)、EBIF(3008)、SRIF(3011)、GUIFJI(3012)、GUIF_PO(3013)が含まれる。その他の構成要素として、SRUIF(3010)、REG(3009)が含まれる。
【0056】
MCIF(3001)には、RAMコントローラ(2124)が接続される。BIF(3002)には、IOバス1(2127)が接続される。RCIF(3004)には、ROMコントローラ(2125)が接続される。CIU(3006)は、CPUバス(2126)に接続され、キャッシュスヌーピングに必要な情報をCPUバスに対して伝達する。
【0057】
YMF(3007)には、サブバススイッチ(2128)が接続される。EBIF(3008)には、IOバス2(2129)が接続される。SRIF(3011)には、レジスタアクセスリング(2137)が接続される。GUIF_PI(3012)には、画像リングインターフェース2(2148)が接続される。GUIF_PO(3013)には、画像リングインターフェース1(2147)が接続される。SRUIF(3010)は、レジスタアクセスリング(2137)に接続され、システムバスブリッジ内部のプログラミングレジスタREG(3009)へのデータの読み書きを行う。
【0058】
CPUバスインターフェース(CPUBusIF)(3005)は、本実施形態において最も特徴的な部分であり、スイッチ(3003)内部のバス(Ybus〉とCPUバス(2126)のプロトコル変換を行うバスブリッジである。
【0059】
CPUバスインターフェースの構成をさらに詳しく説明する。図5にCPUバスインターフェースのブロック図を示した。
【0060】
CPUバスインターフェースは、CPUコアの外部バスインターフェースであるCPUバスと、SBB内部バスであるYbusとの間のバスプロトコル変換回路である。CPUバスインターフェース内には、Command_Q(101)、YbusMasterIO(104),YBusMasterMEM(105)、Decode(102)、Dispatch(103)、ReadReturnArbitor(106)、ReadDtaMux(107)が含まれる。
【0061】
CPUバスインターフェースは、CPUバスに定義された図6の転送をサポートする。
【0062】
CPUバスインターフェースのYBusマスタIDは、0000及び0001(y0_xxx、y1_xxx)である。
【0063】
Command_Q(101)は、CPUバスより発行されたトランザクションコマンドをキューイングするキューである。
【0064】
図8にコマンドキューのブロックを示した。
【0065】
201はコマンドを格納するレジスタ群で、CPUバスより入力された、CmdID、read_not_write、burst_not_single、address、WriteData、Byte_enableなどが、格納される。202はバリッドビットであり、情報が書き込まれる場合に1が書き込まれ、キューがシフトされると、0が書き込まれる。203はCommand_Qがフルの状態を示す信号で、cpubus_Cmdrdypに接続され、CPU(2001)に対し、バストランザクションの発行を停止させる。206はキュー管理のシーケンサで、ライト要求204、シフト要求205により、キューの管理を行う。207はQ_valid信号であり、Decode(102)に接続される。
【0066】
Decode(102)は、アドレスデコーダであり、コマンドキュー(101)の出力を元にデコードを行う。デコード結果には、ソースがCPU0かCPU1か、ターゲットデバイスが、メモリかIOか、さらにIOアクセスの場合、RCIF、BIF、EBIF、SRIFのいずれかを示した情報が含まれる(108)。
【0067】
Dispatch(103)はデコーダ(102)の結果を元に、コマンドキュー(101)内の次にサービスされるべきリクエストがYbusマスタブロック(104及び105)に対し発行可能かを判定し、可能な場合には、適切なYbusマスタブロックに起動要求を発行する。リードトランザクションの発行に関する制限を図7に表す。
【0068】
この制限事項を実施するための情報の保持を行っているのが、PendingQ(403)であり、判断を行っているのが、Dispatch(103)である。PendingQ(403)の構成を図10に、Dispatch(103)の状態遷移を図9に示した。Dispatcb(103)において、CPUバスよりアクセス要求のない場合は、シーケンサはIDLE(301)の状態にある。
【0069】
CPUバスよりアクセス要求が、キューイングされると、後述する、PendingQ(403)から出力されるCPU0及びCPU1のリードリクエスト保留の状態(109)と、Decode(102)から出力されるCPUリクエスト情報(108)に基づきIOもしくは、MEMのYbusMasterを起動する。
【0070】
具体的には、図7にしたがって、CPU0よりIOへのアクセス要求があった場合、YBusMaster MEM(105)から出力されるcpu0_in_mem(109内)信号がアクティブでなかった場合に、シングル転送要求の場合は、遷移311によりYBusMasterIO(104)に対して、シングル転送要求を発行するステートIOSingle(313)へ制御が移動し、YBusMasterIO(104)へ起動を要求した後、遷移312でアイドルヘ戻る。バースト転送の場合も同様に、305→307→306の遷移により、IOのバースト転送の起動を行う。また、IOのリード要求の場合は、図10に示したPendingQ(403)内部のTargetCheck回路(509)により、異なったIOターゲットに対するリード要求がすでに保留になっていないかがチェックされ、DispatchOK信号(513)によって、異なったターゲットへのリード要求に対するデータが戻ってくるまで、実際のトランザクションは発行されない。
【0071】
CPU0からのアクセス要求がMEMに対するものだった場合は、CPU0の要求がすでにYbusMasterIO(104)内部で保留になっていないかをCPU0_in_io信号によって、検出し、保留ではない場合に、バーストかシングルかに応じて、309→308→310もしくは、304→302→303の系によりメモリアクセス要求がYBusMasterMEM(105)に対して発行される。YBusMasterIO(104)、YBusMasterMEM(105)はそれぞれ、IOデバイス及びメモリに対するアクセスを行うYbusマスタブロックである。この2つのブロックは、内部的には、まったく同一の構成をとる。YBusMasterIO(104)及びYBusMasterMEM(105)について、YBusMasterIO(104)を例にとって説明する。
【0072】
図11はYBusMasterIO(104)の内部構造を表す。Info Latch(401)は、Dispatch(103)からの起動要求によりYbusトランザクションを発行するのに必要な情報を必要期間保持する。これらの情報には、アドレス、バイトイネーブル、ライトデータ、リード、ライト、バーストトランザクション、シングルトランザクション、リクエスト発行CPUの番号等が含まれる。
【0073】
Info Latch(401)は同時に、情報のデコードを行い、YMasterSM(402)に対して、起動要求を発行する。
【0074】
YMasterSM(402)には、Ybusマスターステートマシンが内蔵され、Ybusに対して、シングルリード、シングルライト、バーストリード、バーストライトのいずれかのトランザクション要求を発行する。
【0075】
発行要求がリードであった場合には、Ybusに対してリードトランザクションを発行すると同時に、PendingQ(403)に対して、リードリクエストに使用した情報の保持を指令する。Ybusに発行したリクエストがライトの場合は、ライトデータをアドレス等のコントロール情報と同時にYbusに対してドライブし、シングルライトの場合は、転送を終了し、アイドル状態に戻る。
【0076】
バーストライトの場合は、アクセスターゲットデバイスよりレディ信号が返って来た次のクロックサイクルで、2ビート目のデータをドライブし、アイドル状態に戻る。
【0077】
Ybusより戻ってきたリードデータは、ReadReturnbgic(404)内のリードバッファに一時格納される。
【0078】
その後リターンデータをCPU(2001)に転送するため、ReadReturnArbitor(106)に対して、CPUバスのリードリターントランザクション発行要求が行われる。Read Return Arbitor(106)は、リードリターン要求のアービトレーションを行い、ReadDataMux(107)に対して、リードリターンシーケンスの開始と、データのセレクト信号を発行する。ReadDataMuxは、リードデータをCPUバス上にドライブすると同時に、cpubus_rdrdyp信号でCPUに対して、ReadDataの返送を通知する。
【0079】
【発明の効果】
以上説明したように、本発明によれば、保持された、命令発行CPUの番号、転送先、及び転送保留中のCPU番号に基づき、リード時に、リターンデータが転送命令の発行順と入れ替わる事を阻止し、一旦、共通バスを介し、シリアライズされた転送を再度、複数の接続経路を用い同時並行に発行することができる。これにより、更に以下の効果を奏する。
【0080】
▲1▼バススヌーピングによるキャッシュのコヒーレンシ管理、アトミックトランザクションを性能の低下なしに実現する。
【0081】
▲2▼コマンドキュー(ライトバッファ)の実装を可能にし、CPUをバストランザクションから早期に開放することにより、性能の向上をもたらす。
【0082】
▲3▼一旦シリアライズされたCPUのトランザクションを再度並列化することにより、低速のデバイスにアクセスしている一方のCPUの転送終了を待たずに、他方のCPUの転送を終了することが出来、性能低下を抑えることが出来る。
【0083】
▲4▼CPUバススレーブ部分の回路を共通化でき、複数のCPUバスを独立して持つ場合より、回路規模を小さく出来る。
といった効果が得られる。
【図面の簡単な説明】
【図1】実施形態のシステムコントローラの全体構成を示すブロック図である。
【図2】本システムの実使用環境を表す図である。
【図3】バスブリッジの構成を示す図である。
【図4】システムバスブリッジの構成を表す図である。
【図5】CPUバスインターフェース部を表すブロック図である。
【図6】バスの転送の定義を示す図である。
【図7】リードトランザクションにおける発行の制限を示す図である。
【図8】コマンドキューの構成を表す図である。
【図9】デイバッチステートマシンの状態遷移を示す図である。
【図10】Ybusリードペンディングキューを示した図である。
【図11】Ybusマスタブロックのブロック図である。
【図12】従来例の構成を示す図である。
Claims (2)
- 共有バスを介して接続される複数のCPUと複数のメモリまたはIOデバイスとを、リード命令とリードデータリターンとが分離可能なバスを介して接続されたシステムコントローラであって、
命令を発行したCPUと、その命令の転送先と、転送保留中のCPUとを識別する識別情報を保持する保持手段と、
リード時に、前記保持手段の保持内容に基づいて、リターンデータが転送命令の発行順と入れ替わらないように制御する順序制御手段と、
一旦シリアライズされて前記共有バスを介して行なわれた転送を、複数の接続経路を用いて並行に発行する発行手段とを備えたことを特徴とするシステムコントローラ。 - 前記共有バスに出力されたトランザクション要求を、当該共有バス上でバススヌーピング後にキューイングする手段を更に有することを特徴とする請求項1に記載のシステムコントローラ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002286050A JP4181839B2 (ja) | 2002-09-30 | 2002-09-30 | システムコントローラ |
US10/670,302 US7016984B2 (en) | 2002-09-30 | 2003-09-26 | System controller using plural CPU's |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002286050A JP4181839B2 (ja) | 2002-09-30 | 2002-09-30 | システムコントローラ |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004126678A true JP2004126678A (ja) | 2004-04-22 |
JP2004126678A5 JP2004126678A5 (ja) | 2005-11-24 |
JP4181839B2 JP4181839B2 (ja) | 2008-11-19 |
Family
ID=32279200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002286050A Expired - Fee Related JP4181839B2 (ja) | 2002-09-30 | 2002-09-30 | システムコントローラ |
Country Status (2)
Country | Link |
---|---|
US (1) | US7016984B2 (ja) |
JP (1) | JP4181839B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006133968A (ja) * | 2004-11-04 | 2006-05-25 | Fujitsu Ltd | 情報処理装置 |
JP2008521131A (ja) * | 2004-11-23 | 2008-06-19 | インテル・コーポレーション | マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2185496B1 (es) * | 2001-07-17 | 2005-06-01 | Universidad Politecnica De Valencia | Equipo y metodo en linea para la deteccion, determinacion de la evolucion y cuantificacion de biomasa microbiana y otras sustancias que absorben a lo largo del espectro de luz durante el desarrollo de procesos biotecnologicos. |
US8032659B2 (en) | 2003-01-21 | 2011-10-04 | Nextio Inc. | Method and apparatus for a shared I/O network interface controller |
US7219183B2 (en) * | 2003-01-21 | 2007-05-15 | Nextio, Inc. | Switching apparatus and method for providing shared I/O within a load-store fabric |
US7457906B2 (en) * | 2003-01-21 | 2008-11-25 | Nextio, Inc. | Method and apparatus for shared I/O in a load/store fabric |
US7046668B2 (en) | 2003-01-21 | 2006-05-16 | Pettey Christopher J | Method and apparatus for shared I/O in a load/store fabric |
US7836211B2 (en) * | 2003-01-21 | 2010-11-16 | Emulex Design And Manufacturing Corporation | Shared input/output load-store architecture |
US8102843B2 (en) | 2003-01-21 | 2012-01-24 | Emulex Design And Manufacturing Corporation | Switching apparatus and method for providing shared I/O within a load-store fabric |
US7664909B2 (en) | 2003-04-18 | 2010-02-16 | Nextio, Inc. | Method and apparatus for a shared I/O serial ATA controller |
US7953074B2 (en) * | 2003-01-21 | 2011-05-31 | Emulex Design And Manufacturing Corporation | Apparatus and method for port polarity initialization in a shared I/O device |
US7512717B2 (en) * | 2003-01-21 | 2009-03-31 | Nextio Inc. | Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture |
US7502370B2 (en) * | 2003-01-21 | 2009-03-10 | Nextio Inc. | Network controller for obtaining a plurality of network port identifiers in response to load-store transactions from a corresponding plurality of operating system domains within a load-store architecture |
US8346884B2 (en) | 2003-01-21 | 2013-01-01 | Nextio Inc. | Method and apparatus for a shared I/O network interface controller |
US7174413B2 (en) * | 2003-01-21 | 2007-02-06 | Nextio Inc. | Switching apparatus and method for providing shared I/O within a load-store fabric |
US7493416B2 (en) * | 2003-01-21 | 2009-02-17 | Nextio Inc. | Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture |
US7917658B2 (en) * | 2003-01-21 | 2011-03-29 | Emulex Design And Manufacturing Corporation | Switching apparatus and method for link initialization in a shared I/O environment |
US7188209B2 (en) * | 2003-04-18 | 2007-03-06 | Nextio, Inc. | Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets |
US7617333B2 (en) * | 2003-01-21 | 2009-11-10 | Nextio Inc. | Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture |
US7698483B2 (en) * | 2003-01-21 | 2010-04-13 | Nextio, Inc. | Switching apparatus and method for link initialization in a shared I/O environment |
US7103064B2 (en) * | 2003-01-21 | 2006-09-05 | Nextio Inc. | Method and apparatus for shared I/O in a load/store fabric |
US20070234006A1 (en) * | 2004-04-26 | 2007-10-04 | Koninklijke Philips Electronics, N.V. | Integrated Circuit and Metod for Issuing Transactions |
US8806270B2 (en) * | 2011-11-14 | 2014-08-12 | International Business Machines Corporation | Method, apparatus and product for testing transactions |
US10585820B2 (en) * | 2015-09-18 | 2020-03-10 | Hitachi, Ltd. | Memory controller, memory control method and semiconductor storage apparatus |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4958273A (en) * | 1987-08-26 | 1990-09-18 | International Business Machines Corporation | Multiprocessor system architecture with high availability |
US5440752A (en) * | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
JPH08235141A (ja) * | 1995-02-28 | 1996-09-13 | Kofu Nippon Denki Kk | 情報処理システム |
US6178493B1 (en) * | 1998-02-19 | 2001-01-23 | International Business Machines Corporation | Multiprocessor stalled store detection |
US7921188B2 (en) * | 2001-08-16 | 2011-04-05 | Newisys, Inc. | Computer system partitioning using data transfer routing mechanism |
JP2003186824A (ja) | 2001-12-18 | 2003-07-04 | Canon Inc | バス使用権優先度調整装置およびシステム |
-
2002
- 2002-09-30 JP JP2002286050A patent/JP4181839B2/ja not_active Expired - Fee Related
-
2003
- 2003-09-26 US US10/670,302 patent/US7016984B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006133968A (ja) * | 2004-11-04 | 2006-05-25 | Fujitsu Ltd | 情報処理装置 |
JP2008521131A (ja) * | 2004-11-23 | 2008-06-19 | インテル・コーポレーション | マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム |
Also Published As
Publication number | Publication date |
---|---|
US7016984B2 (en) | 2006-03-21 |
US20040117516A1 (en) | 2004-06-17 |
JP4181839B2 (ja) | 2008-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4181839B2 (ja) | システムコントローラ | |
JP4065503B2 (ja) | 画像処理装置、画像入出力装置、変倍処理方法、及びメモリ制御方法 | |
TW310410B (ja) | ||
JP3514477B2 (ja) | 入力/出力装置及びデータ転送方法 | |
JPH10293744A (ja) | Pciバス・システム | |
US6697898B1 (en) | Information processing system for composite appliance | |
US6753903B1 (en) | Adaptor for direct connection between USB digital still camera and use color printer | |
JP2000211216A (ja) | 複合機器の情報処理方法及びシステム | |
JP2000211210A (ja) | 複合機器の制御装置及び方法 | |
JP3976927B2 (ja) | バス制御装置 | |
JP2000148650A (ja) | 複合機器の制御装置 | |
JP2000215149A (ja) | 複合機器の制御装置 | |
JP2001186328A (ja) | 画像処理装置及びその制御方法、及び画像処理システム | |
JP2002264442A (ja) | 画像処理装置 | |
JP2004064631A (ja) | 画像処理装置 | |
JP2007280127A (ja) | プロセッサ間通信方法 | |
JP2004157609A (ja) | 画像処理装置および画像処理システム | |
JP2004072683A (ja) | 画像処理装置、プリントシステム、及び制御プログラム | |
JPH07334453A (ja) | メモリアクセスシステム | |
JP2003304381A (ja) | 情報処理装置及びデータ転送方法 | |
JPS6359065A (ja) | 画像コ−ドの復号化装置 | |
JP2006166102A (ja) | マルチファンクションシステムコントローラ | |
JP2000216941A (ja) | 複合画像処理装置 | |
JP2006040120A (ja) | 画像処理機能メモリ | |
JP2004253906A (ja) | 伸長装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050930 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050930 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070301 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070515 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070717 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080408 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080609 |
|
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: 20080819 |
|
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: 20080901 |
|
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: 20110905 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110905 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120905 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120905 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130905 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |