(57)【要約】【課題】ブートコードの伝送に必要な回路及び配線部分は、電子計算機における基板設計の自由度を低下させない電子計算機を実現する。【解決手段】電子計算機１は、ブートコードが記憶されているROM１３と、プロセッサ１１と、プロセッサ１１がアクセス可能なRAM１５と、ブートコードをROM13から読み出してRAM１５に格納し、プロセッサ１１を起動するシステムコントローラ１２とを有し、ブートコードのデータは、RAM１５とシステムコントローラ１２の間で、シリアル信号で伝送される。【選択図】図１
2009181236.tif 000002
【特許請求の範囲】
【請求項１】
ブートコードが記憶されている不揮発性メモリと、
プロセッサと、
前記プロセッサがアクセス可能な揮発性メモリと、
前記ブートコードを前記不揮発性メモリから読み出して前記揮発性メモリに格納し、前記プロセッサを起動する起動制御部と、
を有し、
前記ブートコードのデータは、前記揮発性メモリと前記起動制御部の間で、シリアル信号で伝送されることを特徴とする電子計算機。
【請求項２】
主メモリを制御するメモリコントローラを有し、
前記揮発性メモリは、前記メモリコントローラ内に設けられていることを特徴とする請求項１に記載の電子計算機。
【請求項３】
前記揮発性メモリは、前記プロセッサ内に設けられていることを特徴とする請求項１に記載の電子計算機。
【請求項４】
前記起動制御部は、システムコントローラ、ホストプロセッサ及びシーケンサにより構成されていることを特徴とする請求項１から３のいずれか一つに記載の電子計算機。
【請求項５】
不揮発性メモリに記憶されているブートコードを実行することによりプロセッサを起動する電子計算機の起動方法であって、
前記電子計算機の電源が入ると、前記不揮発性メモリから前記ブートコードを読み出して、前記プロセッサがアクセス可能な揮発性メモリにシリアル信号で伝送して格納し、
前記プロセッサの起動を行った後に、前記揮発性メモリに格納された前記ブートコードを前記プロセッサに読み出させて実行させる、ことを特徴とする電子計算機の起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子計算機及び電子計算機の起動方法に関する。
【背景技術】
【０００２】
電子計算機は、起動時、すなわちシステム電源が投入された時、ブートコードが読み出されて、最初にそのブートコードが実行されることにより、その動作を開始する。ブートコードは、一般に不揮発性メモリであるROMに格納されており、プロセッサは、ROMが接続されたメモリコントローラを介してブートコードを読み出して、そのブートコードの実行を開始する（例えば、特許文献１参照）。
【０００３】
そのROMとメモリコントローラとの間は、パラレルインターフェースで接続され、ブートコードのデータ信号は、そのパラレルインターフェースを介して伝送される。そのパラレルインターフェースは、複数ビットのアドレス、複数ビットのデータ及び複数ビットの制御信号用に、全体では、例えば数十本の信号線を含む。
【０００４】
ところで、近年は、LSIパッケージの大規模化と高速配線技術の要求に伴い、プリント基板上あるいは基板内における配線数の増加傾向があるだけでなく、高速配線技術を実現するための多くの実装上の制約、例えば、配線の寸法、使用する配線層等の制約もある。
【０００５】
そのため、上述したブートコードを記憶するROMとのインターフェースにおいても、多くの配線が必要とされることは、電子計算機の設計の自由度を制限する要因の一つとなっている。
【０００６】
例えば、プロセッサと他の回路部品との間で各種信号の高速伝送が要求される場合、プロセッサ等の部品が搭載される基板上に、その高速配線技術を適用した多数の配線を基板上に配置しながら、ブートコード用のROMとのインターフェースの多くの配線も、同じ基板上に配置しなければならず、高速配線技術の適用のための基板設計の困難性が高くなる、という問題がある。
【０００７】
あるいは、プロセッサを含むパッケージの大きさがピン数に応じていくつかの種類があるとき、例えば、１０００ピン近くのプロセッサの端子数に、数十ピン近くの、ブートコード用のROMとのインターフェースの配線数を加えた数に基づいて、パッケージのサイズが決定される。よって、ブートコード用のROMとのインターフェースの配線数を減らすことができれば、パッケージを一回り小さいサイズのパッケージを使用して全体の基板の面積を小さくできるにも拘わらず、全体の配線数が減らせないため、大きなサイズのパッケージを採用しなければならない、という問題もある。
【０００８】
従って、ブートコード用のROMとのインターフェースの配線数は、電子計算機の設計の自由度を低下させる原因となっていた。
【特許文献１】特開平０８−１６１２８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、本発明は、ブートコードの伝送に必要な回路及び配線部分は、電子計算機における基板設計の自由度を低下させない電子計算機及び電子計算機の起動方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様によれば、ブートコードが記憶されている不揮発性メモリと、プロセッサと、前記プロセッサがアクセス可能な揮発性メモリと、前記ブートコードを前記不揮発性メモリから読み出して前記揮発性メモリに格納し、前記プロセッサを起動する起動制御部と、を有し、前記ブートコードのデータは、前記揮発性メモリと前記起動制御部の間で、シリアル信号で伝送される電子計算機を提供することができる。
【発明の効果】
【００１１】
本発明の電子計算機及び電子計算機の起動方法によれば、ブートコードの伝送に必要な回路及び配線部分は、電子計算機における基板設計の自由度を低下させない。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。  
（第１の実施の形態）
（構成）
まず図１に基づき、本発明の第１の実施の形態に係わる計算機システムの構成を説明する。図１は、本実施の形態に係わる電子計算機の構成を示すブロック構成図である。  
電子計算機１は、パーソナルコンピュータ、サーバ、ワークステーション等であり、プロセッサ１１と、システムコントローラ１２と、不揮発性メモリであるROM１３と、メモリコントローラ１４とを含んで構成される。メモリコントローラ１４は、揮発性メモリであるRAM１５を含んでいる。電子計算機１は、図示しない主メモリ、外部記憶装置、キーボード等の入力装置、外部機器との通信インターフェース等を含んで、所定の機能を実現するためのアプリケーションプログラムが実行可能な装置である。
【００１３】
プロセッサ１１は、オペレーティングシステム及びアプリケーションプログラムを実行する。  
システムコントローラ１２は、マイクロプロセッサあるいはシーケンサにより構成される回路であり、プロセッサ１１、メモリコントローラ１４、その他の装置の電源とリセットの制御を行う起動制御部である。
【００１４】
システムコントローラ１２は、電源が入ると、後述すように、ROM１３からブートコードを読み出して、メモリコントローラ１４内のRAM１５へ伝送する処理を行う。ブートコードのRAM１５への伝送は、システムコントローラ１２とメモリコントローラ１４間のデータ転送インターフェースとしてのシリアルインターフェース２１を介して行われる。  
なお、シリアルインターフェース２１としては、３ワイヤーのSPI（Serial Peripheral Interface）、２ワイヤーのI2C（Inter-Integrated Circuit）等のインターフェースでもよい。
【００１５】
また、システムコントローラ１２は、プロセッサ１１，メモリコントローラ１４等に対する必要なリセットの解除も実行する。
【００１６】
ROM１３には、プロセッサ１１用の各種命令と各種データを含むブートコードが格納されている。ROM１３のブートコードは、データ転送インターフェースとしてのパラレルインターフェース２２を介して、システムコントローラ１２により読み出される。  
なお、ROM１３とシステムコントローラ１２間のデータ転送インターフェースは、シリアルインターフェースでもよい。
【００１７】
プロセッサ１１とメモリコントローラ１２は、データ転送インターフェースとしてのパラレルインターフェース２３を介して接続されている。例えば、プロセッサ１１とメモリコントローラ１４は、それぞれLSIパッケージの大規模化と高速配線技術の要求に伴い、ピン数及び配線数が多く、かつ実装上の各種制約も多いという条件の下で、プリント基板上に実装されている。
【００１８】
RAM１５は、メモリコントローラ１４に内蔵された揮発性メモリであり、プロセッサ１１とシステムコントローラ１２からアクセス可能である。
【００１９】
プロセッサ１１は、後述するように、リセットの解除後、メモリコントローラ１４内のRAM１５から最初の命令を読み出して実行する。
【００２０】
メモリコントローラ１４は、プロセッサ１１からの要求に応じて、RAM１５内のデータをプロセッサに伝送し、かつシステムコントローラ１２からの書き込み指示に応じて、RAM１５にデータを書き込むようにデータ伝送を行う。
【００２１】
さらに、メモリコントローラ１４には、図示しない主メモリが接続されており、主メモリへのデータの書き込み、及び主メモリからのデータの読み出しの制御を行う。
【００２２】
例えば、図に示す電子計算機がパーソナルコンピュータの場合、プロセッサ１１は、ホストコンピュータであり、メモリコントローラ１４は、いわゆるサウスブリッジのチップに含まれる。
【００２３】
（動作）
次に、図１の電子計算機１の起動時動作について、図２と図３を用いて説明する。  
図２は、システム起動時におけるシステムコントローラ１２の処理の流れの例を示すフローチャートである。
【００２４】
まず、電子計算機１の電源が投入されると、システムコントローラ１２は、プロセッサ１１、メモリコントローラ１２及びその他のデバイスの電源を投入する（ステップS1）。
【００２５】
次に、起動制御部としてのシステムコントローラ１２は、ROM１３から、プロセッサ１１用のブートコードを読み出す（ステップS2）。
【００２６】
そして、システムコントローラ１２は、読み出したブートコードを、メモリコントローラ１４のRAM１５に転送する（ステップS3）。
【００２７】
そして、システムコントローラ１２は、プロセッサ１１のリセットの解除、およびその他のデバイスのリセットを解除する（ステップS4）。リセットを解除することにより、プロセッサ１１及び他のデバイスは、起動する。
【００２８】
図３は、システム起動時におけるプロセッサ１１の処理の流れの例を示すフローチャートである。
【００２９】
プロセッサ１１は、電源が投入され、リセットが解除されると、まず、RAM１５の最初の命令から読み出す、すなわち、ブートコードを読み出す（ステップS11）。ブートコードの読み出しは、プロセッサ１１からメモリコントローラ１４への読み出し要求によって行われる。
【００３０】
プロセッサ１１は、RAM１５からブートコードが転送されると、そのブートコードの実行を開始する（ステップS12）。プロセッサ１１は、RAM１５に格納されたブートコードの最初の命令から実行することによって、電子計算機１は起動する。
【００３１】
以上のように、本実施の形態によれば、システムコントローラ１２は、システムの起動後、ROM13からブートコードを読み出して、メモリコントローラ１４のRAM１５にシリアルインターフェース２１を介して伝送する。このブートコードは、シリアル信号でインターフェース２１を介して伝送される。すなわち、プロセッサ１１及びメモリコントローラ１４が搭載される基板上において、ブートコードの伝送に必要な回路及び配線部分は、極めて小さくすることができる。
【００３２】
従って、本実施の形態によれば、LSIパッケージの大規模化と高速配線技術の要求に伴い、プロセッサ１１とメモリコントローラ１４が各種制約の下で、プリント基板上に実装されなければならない状況において、ブートコードの伝送に必要な回路及び配線部分は、基板上において小さくすることができるので、電子計算機における基板設計の自由度を低下させない。
【００３３】
なお、上述したシステムコントローラ１２がマイクロプロセッサ等により構成される場合、そのシステムコントローラ１２自体のブートコードも、ROM１３等の外部記憶装置から読み出され、実行される。その後、システムコントローラ１２は、上述した図３の処理を実行することができる。
【００３４】
また、システムコントローラ１２とROM１３がパラレルインタフェースで接続されている場合でも、大規模なパッケージとなるプロセッサ１１あるいはメモリコントローラ１４にパラレルインタフェースでROMが接続される場合に比べれば、基板実装上の困難度はかなり低い、すなわち自由度は高い。
【００３５】
（第２の実施の形態）
（構成）
まず図４に基づき、本発明の第２の実施の形態に係わる計算機システムの構成を説明する。図４は、本実施の形態に係わる電子計算機１ａの構成を示すブロック構成図である。  
なお、本実施の形態の説明において、第１の実施の形態の構成要素と同じ構成要素については、同じ符号を付して説明は省略する。
【００３６】
図４に示すように、プロセッサ１１ａは、システムコントローラ１２とシリアルインターフェース２１により接続されており、プロセッサ１１ａがアクセス可能なRAM１５を有している。  
本実施の形態では、第１の実施の形態のプロセッサ１１に対応するプロセッサ１１ａにRAM１５が設けられ、起動制御部としてのシステムコントローラ１２は、ROM１３から読み出したブートコードをプロセッサ１１ａ内のRAM１５に、シリアルインターフェース２１を介して伝送する。
【００３７】
従って、本実施の形態においても、プロセッサ１１ａ及びシステムコントローラ１２の少なくとも一つのLSIパッケージの大規模化と高速配線技術の要求に対して、ブートコードの伝送に必要な回路及び配線部分は、基板上において小さくすることができるので、電子計算機の設計の自由度を低下させない。
【００３８】
なお、第１の実施の形態におけるメモリコントローラ１４の機能は、図４のプロセッサ１１ａに統合させてもよい。
【００３９】
さらになお、第１の実施の形態におけるメモリコントローラ１４は、図４において点線で示すように、プロセッサ１１ａとは別に設け、何らかのインターフェースによりプロセッサ１１ａと接続するようにしてもよい。この場合も、プロセッサ１１ａとメモリコントローラとが、高速配線技術を利用して基板上に搭載する場合でも、ブートコードの伝送に必要な回路及び配線部分は、基板上において小さくすることができるので、電子計算機の設計の自由度を低下させない。
【００４０】
また、メモリコントローラの機能をプロセッサ１１ａに統合させた場合は、パッケージのサイズを小さくでき、LSIチップの単価を抑えることが可能である。
【００４１】
（動作）
次に、図４の電子計算機１ａの起動時動作について、図５を用いて説明する。  
図５は、システム起動時におけるシステムコントローラ１２の処理の流れの例を示すフローチャートである。
【００４２】
まず、電子計算機１ａの電源が投入されると、システムコントローラ１２は、プロセッサ１１ａ及びその他のデバイスの電源を投入する（ステップS21）。
【００４３】
次に、システムコントローラ１２は、ROM１３から、プロセッサ１１ａ用のブートコードを読み出す（ステップS22）。
【００４４】
そして、システムコントローラ１２は、読み出したブートコードを、プロセッサ１１ａのRAM１５に転送する（ステップS23）。
【００４５】
そして、システムコントローラ１２は、プロセッサ１１ａのリセットの解除、およびその他のデバイスのリセットを解除する（ステップS24）。リセットを解除することにより、プロセッサ１１ａ及び他のデバイスは、起動する。
【００４６】
システム起動時におけるプロセッサ１１ａの処理の流れは、上述した図３のフローチャートに示す処理の流れと同様である。第１の実施の形態では、プロセッサ１１はメモリコントローラ１４内のRAM１５からブートコードを読み出して、実行しているが、本実施の形態では、プロセッサ１１ａは自己内のRAM１５からブートコードを読み出して、実行する。
【００４７】
以上のように、本実施の形態によれば、システムコントローラ１２は、システムの起動後、ROM１３からブートコードを読み出して、プロセッサ１１ａ内のRAM１５にシリアルインターフェース２１を介して転送する。よって、ブートコードの伝送に必要な回路及び配線部分は、極めて小さくすることができる。
【００４８】
従って、本実施の形態によれば、LSIパッケージの大規模化と高速配線技術の要求に伴い、プロセッサ１１ａがプリント基板上で各種制約の下で実装されなければならない状況において、ブートコードの伝送に必要な回路及び配線部分は、基板上において小さくすることができるので、電子計算機の設計の自由度を低下させない。
【００４９】
（第３の実施の形態）
（構成）
まず図６に基づき、本発明の第３の実施の形態に係わる計算機システムの構成を説明する。図６は、本実施の形態に係わる電子計算機１ｂの構成を示すブロック構成図である。  
なお、本実施の形態の説明において、第１の実施の形態の構成要素と同じ構成要素については、同じ符号を付して説明は省略する。
【００５０】
図６に示すように、IOP（IO Processor）３１は、ホストプロセッサ（以下、ホストという）３２とシリアルインターフェース２１により接続されており、IOP３１は、RAM１５を有している。ホスト３２には、パラレルインターフェース２２を介して、ROM１３が接続されている。
【００５１】
本実施の形態と第２の実施の形態とを対比すると、IOP３１がプロセッサ１１ａに対応し、ホスト３２がシステムコントローラ１２ａに対応する。  
従って、本実施の形態では、第２の実施の形態におけるプロセッサ１１ａに対応するIOP３１にRAM１５が設けられ、起動制御部としての、システムコントローラ１２ａに対応するプロセッサ３２は、ROM１３から読み出したブートコードをIOP３１内のRAM１５ａに、シリアルインターフェース２１を介して伝送する。  
なお、図６においては、ROM１３は、ハードディスク装置等の外部記憶装置でもよい。
【００５２】
従って、本実施の形態においても、IOP３１及びホスト３２の少なくとも一方のLSIパッケージの大規模化と高速配線技術の要求に対して、ブートコードの伝送に必要な回路及び配線部分は、基板上において小さくすることができるので、電子計算機の設計の自由度を低下させない。
【００５３】
（動作）
図６の電子計算機１ｂの起動時動作は、第２の実施の形態におけるプロセッサ１１ａとシステムコントローラ１２の動作と同様である。すなわち、IOP３１の電子計算機１ｂの起動時動作は、第２の実施の形態におけるプロセッサ１１ａの動作と同じであり、ホスト３２の電子計算機１ｂの起動時動作は、第２の実施の形態におけるシステムコントローラ１２の動作と同じである。
【００５４】
なお、ホスト３２自体のブートコードは、ROM１３等の外部記憶装置から読み出され、ホスト３２が起動した後に、図７の処理が実行される。
【００５５】
次に、図６の電子計算機１ｂの起動時動作について、図７を用いて説明する。  
図７は、システム起動時におけるホスト３２の処理の流れの例を示すフローチャートである。
【００５６】
まず、電子計算機１ａの電源が投入されると、ホスト３２自体のブートコードが、ROM１３等の外部記憶装置から読み出され、ホスト３２が起動し、IOP３１及びその他のデバイスの電源を投入する（ステップS31）。
【００５７】
次に、ホスト３２は、ROM１３から、IOP３１用のブートコードを読み出す（ステップS32）。
【００５８】
そして、ホスト３２は、読み出したブートコードを、IOP３１のRAM１５に転送する（ステップS33）。
【００５９】
そして、ホスト３２は、IOP３１のリセットの解除、およびその他のデバイスのリセットを解除する（ステップS34）。リセットを解除することにより、IOP３１及び他のデバイスは、起動する。
【００６０】
システム起動時におけるIOP３１の処理の流れは、上述した図３のフローチャートに示す処理の流れと同様である。本実施の形態においても、IOP３１は自己内のRAM１５からブートコードを読み出して、実行する。
【００６１】
以上のように、本実施の形態によれば、ホスト３２は、システムの起動後、ROM１３からブートコードを読み出して、IOP３１内のRAM１５にシリアルインターフェース２１を介して伝送する。よって、IOP３１用のブートコードの伝送に必要な回路及び配線部分は、極めて小さくすることができる。
【００６２】
従って、本実施の形態によれば、LSIパッケージの大規模化と高速配線技術の要求に伴い、IOP３１がプリント基板上で各種制約の下で実装されなければならない状況において、ブートコードの伝送に必要な回路及び配線部分は、基板上において小さくすることができるので、電子計算機の設計の自由度を低下させない。
【００６３】
以上のように、上述した各実施の形態によれば、ブートコードの伝送に必要な回路及び配線部分は、電子計算機における基板設計の自由度を低下させない電子計算機及び電子計算機の起動方法を実現することができる。  
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００６４】
【図１】本発明の第１の実施の形態に係わる電子計算機の構成を示すブロック構成図である。
【図２】本発明の第１の実施の形態に係わる、システム起動時におけるシステムコントローラの処理の流れの例を示すフローチャートである。
【図３】本発明の第１の実施の形態に係わる、システム起動時におけるプロセッサの処理の流れの例を示すフローチャートである。
【図４】本発明の第２の実施の形態に係わる電子計算機の構成を示すブロック構成図である。
【図５】本発明の第２の実施の形態に係わる、システム起動時におけるシステムコントローラの処理の流れの例を示すフローチャートである。
【図６】本発明の第３の実施の形態に係わる電子計算機の構成を示すブロック構成図である。
【図７】本発明の第３の実施の形態に係わる、システム起動時におけるホストの処理の流れの例を示すフローチャートである。
【符号の説明】
【００６５】
１、１ａ、１ｂ  電子計算機、１１、１１ａ  プロセッサ、１２  システムコントローラ、１３  ROM、１４  メモリコントローラ、１５  RAM、２１，２２、２３  データ転送インターフェース、３１  IOP、３２  ホスト
【図１】
2009181236.tif 000003
【図２】
2009181236.tif 000004
【図３】
2009181236.tif 000005
【図４】
2009181236.tif 000006
【図５】
2009181236.tif 000007
【図６】
2009181236.tif 000008
【図７】
2009181236.tif 000009