JP4291919B2 - Method for remotely constructing networked devices - Google Patents
Method for remotely constructing networked devices Download PDFInfo
- Publication number
- JP4291919B2 JP4291919B2 JP17149799A JP17149799A JP4291919B2 JP 4291919 B2 JP4291919 B2 JP 4291919B2 JP 17149799 A JP17149799 A JP 17149799A JP 17149799 A JP17149799 A JP 17149799A JP 4291919 B2 JP4291919 B2 JP 4291919B2
- Authority
- JP
- Japan
- Prior art keywords
- network connection
- server
- data packet
- network
- packet
- 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 - Lifetime
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は集積および集積回路に命令を実行させる方法に関する。
【0002】
【従来の技術】
埋め込みシステム(embedded systems)で使用される制御ユニット、例えばコンピュータネットワークで種々の機能を制御するネットワーク周辺装置は、CPU(中央処理ユニット)とキャッシュメモリのようなCPUと共に働く他の必須のユニットとを形成している集積回路(IC)を有する処理回路を備えている。この処理回路は、多数のポートを介して集積回路に接続されかつそれと通信する外部メモリユニットのような多数の外部ユニットをも往々備えている。
【0003】
種々の形式の処理回路設計が特定の設計の集積回路に種々の外部ユニットを装備しかつこのようにして形成された処理ユニットに異なったソフトウェアをロードすることによって達成可能である。これによって1つのIC設計が広い範囲のアプリケーションのために使用され得るようになる。
【0004】
往々製造プロセスに関連して、最初に処理回路にその機能のために必須のソフトウェアをロードする時に、1つあるいはそれ以上のメモリユニットを備えかつ始動プログラムがロードされ、処理回路の機能のための追加のソフトウェアプログラムを受けるメモリ空間を設けている外部メモリ手段を集積回路に具備させることが必要である。
【0005】
従って、処理回路は初期ソフトウェアローディングのために必要な外部ユニットを永久的に装備するか、あるいはこのような外部ユニットが製造プロセスのソフトウェアローディング段階の間に集積回路に一時的に接続される。
【0006】
処理回路のコストは、この回路がその引続く使用のために好ましくないかあるいは不必要であるユニットを装備しなければならないことから、望ましくない態様で増加する。
【0007】
初期ソフトウェアローディングのための外部ユニットがローディング段階でのみ集積回路に接続される場合には、製造のこの段階は不利に時間がかかるものとなってしまう。
【0008】
その開発時のソフトウェア試験バージョンの試験はメモリユニットの交換、消去および再ローディングを往々含んでおり、これはそのような試験を時間のかかるものとする。
【0009】
【発明が解決しようとする課題】
本発明は処理回路への必要なソフトウェアのローディングを簡略化することを目的とする。
【0010】
他の目的は広い形態のアプリケーションで使用され得る集積回路を提供することである。
【0011】
本発明の更に他の目的は処理回路の製造プロセスに関連するコストを制限することである。
【0012】
【課題を解決するための手段】
本発明により、これらの目的および後の記載から明かとなるであろう他の目的は請求項1および9に従って集積回路および集積回路に命令を実行させる方法によって達成される。
【0013】
本発明の第1の特徴によれば、この集積回路は作業モードと開始モードとの間で回路を切り替える切り替え手段を具備し、開始モードで回路は本質的に回路上のCPUに外部信号から受けた命令を実行させるようになっている。
【0014】
製造プロセスにおいて、このような集積回路は所望の処理回路設計の作成のための好適な外部ユニットを装備することができる。処理回路の初期ソフトウェアローディングのための特別な外部ユニットの要件を考慮する必要はない。更に、処理回路がローディング段階の間に補助装置を装備しなくともロードされ得るためソフトウェアローディング段階を迅速に行なうことができる。
【0015】
例えば、最終製品の試験に関連してオプションの段階でソフトウェアローディングを行なうことができるため、ここで製造プロセスを簡略化することができる。
【0016】
また、本発明による集積回路はその将来の寿命の間のどの時間でも初期ローディングと同じ簡単な態様で新規で異なったソフトウェアを再ロードすることが可能である。
【0017】
他の長所は新たなソフトウェアの開発の間に簡単なソフトウェアの試験を可能とすることである。
【0018】
このような集積回路の更に他の長所は、それが開始段階においてそれ自体に追加のソフトウェアをロードしなくとも外部システムの切り替えといった制限された命令を行なうように作られ得ることである。
【0019】
本発明の文脈において、集積回路(IC)とは導体およびそれと共に集積化された要素を有する一片すなわちチップ内の電子回路を意味する。
【0020】
本発明の好適実施例によれば、ICは信号を受けCPUに命令を実行させるようにプログラムされている。これはハードウェアそれ自体によってICに形成された論理要素によって達成され得る(ハードコード化命令)。しかしながら、回路のメモリ手段は、好ましくは、上記信号を受け外部命令を実行するためにその内部命令を記憶している第1のメモリユニットを具備している。この第1のメモリユニットは、好ましくは、上記内部命令を記憶しているROMを備えている。それにより、上記プログラミングがコンパクトで低コストに達成される。
【0021】
本発明の他の好適実施例において、ICのメモリ手段はCPUによって実行されるような外部命令を記憶している第2のメモリユニットを備えている。この第2のメモリユニットおよび上述した第1のメモリユニットは1つの同一のユニットに統合され得る。しかしながら、本発明によれば、第2のメモリユニットがキャッシュメモリユニットから構成されることがこのましい。好ましくはキャッシュメモリユニットはいずれにしてもCPUのために備えられており、回路のその後の寿命の間に使用されるようにされているため、キャッシュメモリユニットの使用によって補助メモリユニットが避けられる。キャッシュメモリユニットは好ましくはランダムアクセスメモリ(RAM)からなり、このRAMが外部命令の記憶の記憶のために使用され得るようなモードに切り替えられるようにされる。
【0022】
本発明の他の好適実施例によれば、このICは上記ポートの少なくとも1つに接続されたインターフェース制御手段を備えており、このインターフェース制御手段は開始モードにおいて上記信号を認識しかつ受けるようにされている。それによって、このICは例えばネットワークで信号を能動的に傍受するように作られ得る。
【0023】
本発明の第2の特徴によれば、ICが開始モードにされて外部開始命令からなる外部開始信号を受けるようにされているような方法を含んでいる。次いで、このICは上記外部信号を受け、統合されているCPUを上記命令の実行を行なうために使用する。この第2の特徴に従った方法をもってすれば、第1の特徴に従った集積回路の場合と同一の長所が達成される。
【0024】
集積回路を開始モードにもたらす時に、好適実施例による方法は集積回路のインターフェース制御手段が外部信号を受けるようにする動作を含んでいる。それによって集積回路は、好ましくは、例えばそれに接続されたネットワークで上記外部信号を他の信号の中で認識することが可能化となる。好適な態様で、これは集積回路に所定の開始アドレスを与えることによって達成され得る。このアドレスは開始モードに対して一時的で特異(unique)であり、外部信号の受信のためインターフェース手段によって認識される。
【0025】
その後、好適実施例による方法は集積回路に外部信号を送る動作を含んおり、それによってその信号は好ましくは所定の開始アドレスにアドレス指定され、かつ好ましくは所定のサイズを有している。
【0026】
この方法の他の好適実施例によれば、外部命令は、受けられるとそれが実行される前に、集積回路の一部を形成する、好ましくはキャッシュメモリユニットである、メモリ手段に記憶される。それによって、ICを開始モードにもたらすステップは、好ましくは、キャッシュメモリユニットが外部命令を記憶するRAMとして働くようにする動作を含んでいる。
【0027】
本発明の他の特徴によれば、第1の小さな始動プログラムがICに永久的に記憶されており、開始モードにおいてICが第2の幾分大きな始動プログラムを受けるようにするために起動される。その後、この第2のプログラムはICおよびそれに接続された外部ユニットの実際のローディングを開始させる。
【0028】
【発明の実施の形態】
図1から図4は構成化サーバ(configuation server)および構築される必要がある複数のネットワーク取付周辺装置間の種々の相のインタラクションを示す。図示の実施例において、ネットワーク取付周辺装置は特異な(一意の)ネットワークアドレスでも基本運用ケイパビリティ(能力)ででも製造されていない。それらをネットワークに取り付ける時でも、それらは、ネットワークおよび運用の両方の意味において構築されていない。これは、忽論周辺装置がネットワークを通じて特異なネットワークアドレスおよび装置依存の運用ケーパビリテイで構築(configure)され得るという条件で製造コストを大きく減少し、周辺装置のそれぞれのプロセッサのような要素が単一のチップから作られることができるようにする。
【0029】
図1はネットワーク100を通じて互いに接続されたサーバ102、ワークステーション112、複数の周辺装置120A−B、122および124を示す。記憶装置104はファイル106に複数のアプリケーション、オペレーションシステム、一時コード(transit code)および記憶コードを含んでおり、かつサーバを構成化サーバとして機能させるように構成化(configure)するプログラムコード108を含んでいる。周辺装置120A−B、122および124のそれぞれは本発明の実施例において2つの識別子(ID)を含んでおり、その1つは装置自身のためのもので、他は装置の一部である構築可能な多モードチップのためのものである。これらIDは各装置にとって特異ではないが、その代り、装置の形式、例えばプリンタ/カメラの別とモデル番号とを識別する。同じIDを持った多くの周辺装置があってもよい。装置120A−Bの周辺装置IDはそれぞれID130A−Bである。プリンタ122の周辺装置IDはプリンタID132である。カードリーダ124のIDはカードリーダID134である。周辺装置のそれぞれは、この点ではそれらの全てがプリンタ、カードリーダあるいはカメラとして機能する能力が無いので図1においては点線で示されている。それらの全てはプリンタ、カードリーダあるいはカメラのいずれかとして機能するために必要な処理ケーパビリティあるいはオペレーティングシステムコード(OS)を欠いている。
【0030】
周辺装置のそれぞれはIDを持った取付多モードチップ(attached multi−mode chip)を含んでいる。チップIDは装置IDの場合と同様に特異ではないが、その代りチップ形式および/またはモデル番号を識別する。同じIDを持った多くのチップがあってもよい。多モードチップ140Aおよび関連したID142Aは周辺装置120Aの一部である。他モードチップ140BおよびそのID142Bは周辺装置120Bの一部である。他モードチップ140CおよびそのID142Cは周辺装置122の一部である。他モードチップ140Dおよびその関連ID142Dは周辺装置124の一部である。
【0031】
動作にあって、サーバ102は記憶装置104に含まれているプログラムコード108の結果としてプロセッサ102Aを始動させる。これらプロセスはグループID(図6参照)を有するパケット110を組み立て、これをネットワーク100を通じて送る。多モードチップ140A〜Dのそれぞれはそれぞれの周辺装置120A−B、122および124のためのカーネルBIOS144A〜Dプロセス(図1参照)を実現する。チップ140A〜Dの初期構成の一部であるこれらの最小のブートコードプロセスはこれらのチップによりそれら自体のグループIDに対応するグループIDを持つパケットをネットワーク100から許容されるようにする。従って、それぞれの多モードチップは単一のグループIDを持ったパケットを受け、その処理を許容するようになる。別態様として、1つのグループIDをプリンタに接続されたチップのためのものとし、他をカメラ等に接続されたチップのためのものとすることができる。この実施例においてさえ、1つのカメラの他モードチップは他のものと同一のグループIDを持つことがある。本発明のある別態様の実施例において、初期パケット110は全ての周辺装置がこのパケットを受け入れるべきことを表すアドレスでネットワークを通じて報知されることができる。
【0032】
次の相の動作が図2に示されている。図2において、多モードチップ140A〜Dのそれぞれは宛先アドレスにグループIDを持っている初期パケット110を受けている。このパケットにおいて、初期パケットでサーバによって送られた一時コードにより多モードチップ140A〜Dは一時的プロセス160A〜Dを開始させるようにする。チップはそれらの識別子およびそれらが取り付けられている周辺装置の識別子を取り出す。それに応じて他モードチップは応答パケット150A〜Dをサーバ102に送る。本発明の一実施例において、これらパケットはグループアドレスであるソースアドレスと、サーバが1つのパケットを他から区別することができるようにチップ140A〜Dのそれぞれによって発生される特異な識別子を含んだペイロードを含んでもよい。この識別子は以前の周辺装置において必要とされるような特異な宛先アドレスではない。それに代って、特異なネットワークIDネットワークで工場において多モードチップ140A〜Dのそれぞれを構築するのではなく、特異なネットワークIDが次のプロセスで割り当てられる。本発明のある実施例において、チップのそれぞれは乱数を発生し、それをサーバに送られる応答パケットのペイロード部分に格納する。これに加えて、多モードチップのそれぞれによって送られる応答パケットはチップIDと装置IDとを含んでもよい。
【0033】
アプリケーションコードもオペレーティングシステムも特異なネットワークIDさえも持たない多モードチップと周辺装置を製造することによって、多数の利益が実現される。最初に、ネットワークIDを後に記載するプロセスで動的に割り当てることができる。第2に、OSおよび/またはアプリケーションコードの最新のバージョンがネットワークでの実際の構築時に装置にダウンロード可能である。第3に、ネットワークインタラクションと外部装置のための基本処理ユニットとして機能するケイパビリティの両者を備えることが可能なチップで周辺装置を実現することによって周辺装置の価格を減少することができる。サーバ102が多モードチップ140A〜Dのそれぞれからパケット(1つまたは複数)150A〜Dを受けると、それはファイル106のルックアッププロセス102Bを始める。
【0034】
図3には、ダウンロード相の動作の次の相が示されている。図2で上述したように、サーバが1つあるいはそれ以上の外部装置からパケットを受けた後に、サーバはプロセス102Cを構築する。プロセス102Cは、ファイル106において多モードチップのための適切なOSあるいはアプリケーションコードと各多モードチップを埋め込んでいる周辺装置のためのアプリケーションコードを見つけ出すために入来パケットのチップおよび装置識別子を利用する。次いで、サーバは宛先アドレスとして同じグループIDを用いてパケット170A〜Dを送る。本発明の別態様の実施例において、サーバは宛先アドレスとして報知アドレス(broadcast address)を含むことができる。
【0035】
どちらの実施例においても、それぞれのパケットのペイロードは入来パケットで受けた乱数シーケンス並びに対応する装置のためのブートおよびアプリケーションコードを含んでいる。本発明のある実施例において、それぞれのパケットは対応するチップおよび装置識別子をも含んでもよい。
【0036】
それぞれの周辺装置のそれぞれの多モードチップ140A〜Dは全てのグループパケットを採取するが、特定の多モードチップによって発生されたと乱数一致する乱数を含んだパケットからのOSおよび/またはアプリケーションコードのみを使用する。この態様で、周辺装置のそれぞれはそれらがこの段階で特異なネットワークアドレスを欠いているとしてもそれ自体の特異なパケットのみを処理する。更に、サーバからの各特異なパケットのペイロードは周辺装置によるその後の使用のためサーバによって割り当てられた特異なネットワークアドレスを含んでいる。
【0037】
図4は最終運用相を示している。この時点で、各多モードチップは特異なネットワークアドレスを持つ。多モードチップはそれぞれの周辺装置の要素のための一体の処理ユニットとしてその役割を付加的に機能し始めている。カードリーダ124、構成化プロセス174がここでカード114を読み取ることができる。プリンタ122、構成化プロセス172はネットワーク100を通じてプリントジョブを受け取ることができる。カメラ120A−B、構成化プロセス176−Bは画像を撮影しそれらをネットワークを通じて送ることができる。この後者の機能は図3でサーバ102からダウンロードした装置特定OSおよび/またはアプリケーションコードによって達成される。
【0038】
図5は多モードチップ140Aおよび周辺装置120A(図1から図4参照)のハードウェアブロック図である。多モードチップ140Aは中央処理ユニット(CPU)200、ローカルメモリ202、キャッシュ204、直接メモリアクセス(DMA)コントローラ206、メモリコントローラ208、アドレスおよびデータバッファ210A−Bおよびオプションのスイッチ212を含んでいる。キャッシュはキャッシュコントローラ248およびキャッシュメモリ250を含んでいる。この場合にウェブカメラ120Aである周辺装置はメインメモリ220、電荷結合装置(CCD)コントローラ222、CCDおよびレンズ組立体224、装置ID130、揮発性メモリ226並びにチップをネットワークに接続する外部ポート230を含んでいる。
【0039】
多モードチップ140Aはそれぞれ214−216で示されたローカルデータおよびアドレスバスと制御バス218とを含んでいる。ローカルバス214はCPU200をローカルメモリ202、キャッシュ204、DMAコントローラ206およびデータバッファ210Bに結合する。ローカルアドレスバス216はCPUをローカルメモリ、キャッシュおよびメモリコントローラ208に結合する。制御バスはCPUとローカルメモリ202、キャッシュ204およびDMAコントローラ206とを結合する。DMAコントローラおよびメモリコントローラの両者はアドレスバッファ210Aに結合される。オプションのスイッチ212はCPU200にスイッチ可能な入力を与える。外部ポート230はCPUをLAN(図1〜4参照)に結合する。本発明のこの実施例において、ネットワークインターフェース機能はチップ140Aによって、またはCPU200あるいは個別のオンチップ媒体アクセスコントローラ(MAC)およびパケットプロセッサのいずれかによって行なわれる。本発明の別態様の実施例においては、外部ポート230はチップを外部ネットワークインターフェース(図示せず)を介してLANに結合する。周辺装置およびチップはアドレス、データおよび制御信号ラインを含むインターフェースポート258を介して互いに結合する。
【0040】
周辺装置内で、システムバス228はメインメモリ220、周辺装置ID130、揮発性メモリ226およびCCDコントローラ222を連結する。CCDコントローラはCCDおよびレンズ結合組立体224に結合される。多モードチップおよび周辺装置間で、それぞれアドレスおよびデータバッファ210A−Bからのアドレスおよびデータ接続は2つの装置を結合する。CCDコントローラ222をDMAコントローラ206に連結する制御バス218によって付加的な結合が与えられる。多モードチップ140A内に多モードチップ識別子142Aが存在する。チップIDは、本発明のある実施例においては、このチップのCPUの一部である読出し専用レジスタとして編成される。他の実施例にあっては、チップIDはローカルメモリ202に記憶されていてもよい。このチップ識別子は装置識別子130と共に多モードチップおよび装置の製造および/またはモデル番号をサーバ102に対して識別するために使用される。換言すれば、この識別子は共通の製造および/またはモデル番号を有する装置のグループを除き装置にとっては特異である必要はない。
【0041】
多モードチップおよび周辺装置の初期化には3つの相がある。これら相はそれぞれ図1から図4に示されたパケット110、150A〜Dおよび170A〜Dに対応する。本発明は特異なネットワークアドレスもオペレーティングシステムも無しで初めの構成からネットワークを通じて遠隔的に構成化されることができる組合せ装置を提供する。最初の相の動作においては、ローカルメモリはグループ識別子242とカーネルBIOS144Aのみしか含んでいない。カーネルBIOS144Aはローカルバスを構成化することができ、それが初期化あるいは通常のモードにあるかどうかを決定することができ、そして宛先アドレスとして特異なネットワークIDではなくグループ識別子を有するサーバ102からのパケット110に応答することができる(図1参照)。
【0042】
カーネルBIOSの付加的な特徴はそれがキャッシュコントローラ248を無能化して通常の揮発性メモリとしてキャッシュの一時的使用を可能にすることである。通常のモードにおいて、チップのキャッシュサブシステムはヒット/ミス、汚れビット(dirty bits)等をチェックする機能を有している。BIOSおよび一時相(transit phase)の動作において、キャッシュメモリはヒット/ミスチェック等を無能化することによって「通常の」ランダムアクセスメモリ(RAM)として働く。その代りに、キャッシュのRAMは一定のアドレスでマッピングされる。図1に示されるBIOS相の動作において、サーバ102は宛先アドレスとして総称グループ識別子(generic group identifier)を有するパケット110を送り出す。このパケットは図1に示される任意のおよび全ての多モードチップ140A〜Dによって処理される。これらのチップの各々が、ローカルメモリ202内にパケット内のグループ識別子に対応するグループ識別子242を持っているという条件付きであるが。パケットを受けると、そのペイロード部分が抽出され、一時コード252がロードされる。この一時コードは乱数発生、識別、パケット送信およびパケット受信ケーパビリティを与える。
【0043】
次に、多モードチップにおいて第2すなわち一時相(transitory phase)の動作が開始する。この相の動作は図2−図3に示されている。一時相において、一時コード252が実行される。このコードは幾つかの機能を有している。最初に、それは、多モードチップが実行時にCPU200によって発生された乱数を含んだペイロード並びにチップおよび装置モデルID142A、130を持った応答パケットをサーバに送る機能を行なう。本発明の一実施例において、この乱数は例えばパワーオンリセットからの時間に対応してもよい。この乱数は2つの周辺装置が同一の数を発生するリスクを無視できるようにするために充分なビットを持つ必要がある。幾つかのユニットあるいは周辺装置が同一時間でオンにされたとしても、1つ以上のユニットが同時にネットワークでパケットを送ることができないためそれらは異なった数を発生することになる。この数をパケットに入れそしてこの数をキャッシュメモリ250に一時的に記憶することによって、多モードチップはこの乱数をペイロードに含むサーバからの戻りパケットをこれら2つの単純な比較で識別することが可能となる。
【0044】
第3のすなわち運用相のチップ動作が図4に示されている。この相において、サーバからの記憶およびOS/アプリケーションコード254が多モードチップにダウンロードされ、キャッシュメモリ250に記憶される。記憶コードを使用して、この運用プロセスはオペレーティングシステムをメインメモリに転送する。このように構築された装置をもってすれば、多モードチップはウェブカメラ実行プロセス176A(図4参照)のための中央処理ユニットとして働く。キャッシュはCPU200によるアクセスのためメインメモリ220の新しく使用された部分のコピーを保持するその通常の機能に復帰する。
【0045】
図6および図7A〜Cはローカルエリアネットワーク(LAN)100(図1〜図4参照)でのパケットプロトコルの実施例を示す。ネットワークを通じて転送される情報は転送されている情報のためのラッピングプロトコルでその処理を行なう。各パケットは複数のヘッダとペイロードとを含んでいる。これらのヘッダはOSIモデルの対応する7つの層の1つにとって特有な情報を含んでいる。LANでのヘッダおよびペイロードはパケットと呼ばれる。サービス統合デジタル網(ISDN)でのヘッダおよびペイロードはフレームと呼ばれる。最近まで、LANおよびISDNネットワークでのネットワークトラヒックは7つまでのヘッダとペイロードとを備えたパケット/フレームからなっていた。ヘッダはOSIモデルの7つの層のそれぞれに対して特有の情報を含んでいた。ペイロードは転送される音声、ビデオまたはデータを含んでいる。LANでのヘッダおよびペイロードの構造は802.3、802.5等のようなそれぞれのIEEEのLAN標準で規定されている。これら標準を以下802.Xと呼ぶ。ISDN側では、ヘッダおよびペイロードの構造は国際標準化機構(ISO)によって普及されたポイント・ツー・ポイントプロトコル(PPP)あるいは高レベルデータリンクプロトコル(HDLC)によって規定されている。
【0046】
図6はLAN100(図1から図4参照)を通じて伝送され得る可能なパケット形式の1つ320の詳細な図を示す。パケット320のためのラッパー(wrappers)の詳細が示されている。特に、このパケットのためのプロトコルはIEEE802.3規格に適合する。802.3パケットはプリアンブル300で始まる。このプリアンブルは長さが7バイトであり、各バイトはビットパターン10101010を含んでいる。このプリアンブルは受信機のクロックが送り側と同期することができるようにする。次に2進シーケンス10101011を含むフレームフラグの開始部302が来る。次は長さが6バイトである宛先アドレスフィールド304であり、それにこれも長さが6バイトのソースアドレスフィールド306が続く。ソースアドレスフィールド306はパケットを送る当事者を識別し、宛先アドレスフィールド304はパケットが送られている当事者を識別する。長さフィールド308が続く。長さが2バイトであるこの長さフィールドは最小0から最大1500バイトまでのどの位多くのバイトがデータ/ペイロードフィールドに存在するかを指示する。ヘッダ310〜314はそれぞれネットワーク層ヘッダ、伝達層ヘッダ、およびペイロードフィールド316のためのセッション層ヘッダを含んでいる。ペイロードはモデムセッション始動コマンド、セッションパラメータあるいはデータを含む種々の形式の情報を含んでもよい。データは音声でもビデオでもあるいはテキストであってもよい。ペイロードに直ぐに続くのはチェックサムフィールド318である。
【0047】
図7A〜図7Cは図1〜図4で上述したようにサーバと周辺装置との間で送られるパケット110、150A、170Aをそれぞれ示す。
【0048】
図7Aはパケット宛先アドレスフィールドのグループIDに対応するグループ識別子を有する周辺装置の全てにサーバから最初に送られるパケット110を示す(図1参照)。このパケットはその宛先アドレスフィールド304として多モードチップ140A〜Dのそれぞれに対するのと同一の識別子(図5の番号242参照)であるグループ識別子を含んでいる。パケットのソースアドレスフィールド306の部分はサーバ102のネットワークアドレスを含んでいる。ペイロードフィールド316Aは一時コード252(図5参照)を含んでいる。このコードは自身の周辺装置識別子およびチップ識別子の両方を得る能力を備えた受信多モードチップを可能にする。更に、このコードはチップが乱数を発生しかつ応答パケットをサーバに送ることを可能とする。更にまた、このコードはチップが戻りパケット(return packet)を受けてそれを処理することを可能とする。その後、このコードは通常のキャッシュ動作により消去されるか書き換えられる。
【0049】
図7Bはサーバの初期パケット110に応じてどれかの周辺装置から送られたパケット150Aを示す。一時コードを使用して多モードチップはパケットのペイロードフィールド316Bに、乱数420、チップモデル識別子142A、カメラ識別子130(図5参照)を置く。宛先アドレスフィールド304はサーバ102のアドレスである。多モードチップはそのアドレスをネットワーク100からの初期入来パケット110のソースアドレスフィールド306(図7A参照)から得ている。
【0050】
図7Cは周辺装置にサーバ102によって送られる(図3参照)第2のパケット170Aを示す。このパケットは宛先アドレスとしてグループ識別子を有している。このパケットは全ての多モードチップによって受信されて処理される。このパケットのソースアドレスはサーバ102のアドレスである。ペイロードフィールド316Cにおいて、サーバは多モードチップによって最初に発生されパケット150Aでサーバによって受けられた乱数420をパッケージしている。この数は図5において上述した理由で各チップに対して特異であり、パケット170A〜D間で同一の乱数を含む1つのパケットを識別するためにチップによって使用される。本発明の一実施例において、チップモデルID142AおよびカメラIDもサーバからチップへのペイロードに含まれてもよい。ペイロードフィールド316Cの次の部分は乱数を発生した特定の周辺装置のためにサーバによって割り当てられた特異なネットワークアドレス440を含んでいる。周辺装置アドレスは大域的(global)であり、各アドレスの特異性を確保するためにサーバによって中央的に管理される。この特異なネットワークアドレスは以後のネットワーク通信において周辺装置および多モードチップによって使用される。従って、ネットワークでの全ての以降の通信において、周辺装置に送られるパケットはグループ基準で送られず、LANパケットの宛先アドレスフィールド304が特異なネットワークアドレスを含んでいるため、目標基準(targeted basis)に基づき送られる。ペイロードフィールド316Cの次の部分442は2つのコードセグメント254および450を含んでいる。これらコードセグメントの最初のものはネットワーク構成化されるこの特定の周辺装置に対するオペレーティングシステムおよび/またはアプリケーションである。これらコードセグメントの第2のもの、「記憶」コード450はメインメモリ220および揮発性メモリ226(図5参照)にOS254およびそのイメージを書き込むために必要なコードを含んでいる。
【0051】
図8はサーバ102の記憶装置104(図1〜図4参照)のデータ構造を示す。プログラムコード108および一時コードファイル106の装置オペレーティングシステムが図示されている。より詳細には、一時コードデータベースの装置オペレーティングシステムは周辺装置120A−B、122、124のそれぞれ並びに全ての多モードチップ140A〜Dのための複数のレコードを含んでいる。同様に各モデルおよびバージョン番号のレコードを含んでもよい。各レコードは形式識別子フィールド500、製品IDフィールド502、アドレスフィールド504、一時コードフィールド506およびオペレーティングシステムコードフィールド508を含んでいる。このレコードの図示の例において、ウェブカメラ120A−Bは製品IDフィールド502内に製品ID130A−Bを含み、かつCPU200がメインメモリ220(図5参照)をプログラムすることができるようにカメラ254のオペレーティングシステムと記憶コード450の両方を含んでいる。多モードチップ140A〜Dのレコードは一時コードフィールド506に一時コード252(図5参照)を含んでいる。サーバがコードを各周辺装置にダウンロードさせるために、それは宛先アドレスとしてグループアドレスを有するパケットのペイロードで最初に装置に送られる特異なネットワークIDを装置に割り当てる。そのアドレスは以後のネットワーク通信において周辺装置および関連した多モードチップによって使用される。これに対処するため、サーバはそれが装置に割り当てたアドレスをネットワーク名称空間およびファイル106に記録する。周辺装置120Aのレコードのアドレスフィールド440のエントリ「1234」がそのレコードの宛先アドレスフィールド440に示されている。それらは周辺装置120Bの個別のレコードおよび個別のネットワークアドレスとなる。
【0052】
図9は図1〜図4で上述したようなサーバ102の動作に関連したプロセス102Aを示す。サーバの処理600はプロセス602で始まり、そこで一時コード252(図5および図7参照)が記憶装置104(図1〜図4参照)のファイル106から得られる。次いで、制御はプロセス604に渡される。プロセス604において、パケット110が周辺装置のグループIDに対応する宛先アドレスを用いて組み立てられる(図7A、図1参照)。次いで、制御は決定プロセス606に渡される。決定プロセス606において、サーバは1つあるいはそれ以上の多モードチップ140A−Bのパケット159A〜Dの任意の1つに応答する(図2参照)。次いで、制御はプロセス608に渡される。プロセス608において、サーバはペイロードフィールド316B(図7B参照)から多モードチップによって発生された乱数とそれぞれ142A、130で表されたチップおよび装置IDを抽出する。
【0053】
プロセス610において、サーバは上で述べたプロセス608で入来パケットにおいて得られたチップIDおよび周辺装置IDの対応するレコードを見い出すためにファイル106のルックアップテーブルに行く。これらIDを用いて、対応するチップおよび周辺装置IDを有するレコードがファイル106のルックアップテーブルに位置付けられる。対応するチップIDを持つレコードから、例えば、252(図8参照)のような一時コードが得られる。対応する周辺装置IDを持つレコードから、例えば、120A/B、OSおよび/またはアピリケーションコード並びに記憶コードが例えば254、450で得られる。周辺装置のためのOSおよび/またはアプリケーションコードをメインメモリにロードするために記憶コードが使用される。次いで、制御はプロセス612に渡される。
【0054】
プロセス612において、サーバは周辺装置のための特異なネットワークアドレスを発生し、そのアドレスをパケット170のペイロード部分に含ませる。そのアドレスは以後のネットワーク通信において周辺装置および関連した多モードチップによって使用される。これに対処するため、サーバはそれが装置に割り当てた特異なネットワークアドレスをネットワーク名称空間およびファイル106に記録する。例えば、特異なネットワークアドレス「1234」が周辺装置120Aのレコードの一部であるネットワークアドレスフィールド440に示されている。
【0055】
装置およびチップIDは、上に述べたように、1形式の周辺装置だけを他のあるいはできれば1つのモデル番号の周辺装置で同一の形式の他のものから区別する。しかしながら、装置およびチップIDは同一のモデル番号のものを有する周辺装置を他から区別しない。この区別はサーバによって割り当てられる特異なネットワークアドレスによって達成される。パケット内の乱数スタンプをサーバに1から渡すことによってサーバは。サーバは周辺装置から入来パケットで受けた乱数のトラックを保持し、対応するネットワークアドレスを装置に割り当てる。次いで、制御はプロセス614に渡される。
【0056】
プロセス614において、図7Cにおいて説明され上述されたものに類似するペイロードがサーバによって組み立てられる。そのペイロードは総称グループIDを含んでおり、この総称グループIDはそれが全ての周辺装置によって受信されることを意味し、対応する周辺装置からサーバによって受信された乱数420がそのペイロードに含まれる。ペイロードは装置を構成化するOSおよび記憶コードをも含んでいる。ペイロードはまた元々装置によって発生された乱数も含んでいる。この乱数は同一のグループアドレスを含む他のものからそのパケット区別するために周辺装置によって使用される。
【0057】
次いで、制御はプロセス616に渡され、そこでサーバはネットワーク100(図3参照)を通じてパケットを周辺装置に送る。次いで、制御はプロセス618に渡される。ここで、サーバは周辺装置を検出して構成化する動作を完了する。当業者にとって明らかなように、サーバはその後周辺装置のための貯蔵庫あるいはデータベースとして機能してもよい。
【0058】
図10−図11は特異なネットワークIDおよび適切なオペレーティングシステムを得るための多モードチップおよび取付周辺装置でのプロセスのある実施例を示す。バイオスサブルーチン700のための処理は電源オンの後に生じるプロセス702で始まる。プロセス702において、カーネルBIOS144Aは実行を始める(図5参照)。ローカルバスおよび関連要素、すなわちローカルメモリ202、キャッシュ204、DMAコントローラ206およびメモリコントローラ208は可能化される(図5参照)。次いで、制御はプロセス704に渡される。プロセス704において、BIOSは多モードチップのモードを決定しようとする。本発明のある実施例において、BIOSはその状態を決定するために特定のアドレスあるいはピンを監視する。本発明のある実施例において、多モードチップ140Aを手動で通常のランタイムモードあるいは初期化モードのいずれかにするために使用され得るオプションのスイッチ212(図5参照)にピンが接続される。本発明の別態様の実施例において、アドレスは初期化モードのために一つのビットシーケンスをランタイムモードのために他のものを含むようなローカルメモリでのアドレスとなる。例えば、特異なネットワークID244(図5参照)がローカルメモリに存在しなかった場合、BIOSは初期化モードにある。次いで、制御は決定プロセス706に渡される。
【0059】
決定プロセス706において、チップがどのモードにあるかの決定が達成される。この決定を達成することができる多くの方法がある。オプションのスイッチ212は手動で設定されることができる。別態様として、メモリの一定のアドレスがその値を決定するためにCPU200によって読み取られることができる。本発明のある別態様の実施例において、各多モードチップおよび周辺装置は最初に開始モードで動作する。チップの不揮発性プログラマブル手段(例えばPROM、FPGA、ヒューズ等)はオプションのスイッチ212(図5参照)がその初期状態にある場合(例えば、ヒューズは飛ばされない)そのスイッチに切り替え信号を与える。チップが初期化されOSコードがメインメモリ(図5参照)にロードされた後に、切り替え信号を制御するプログラマブル装置が変更され、それによりCPUが次の時にメインメモリから立ち上がるようにする。
【0060】
例えば、多モードチップがランタイムモードにあるとの決定に達した場合、制御はプロセス708に渡される。プロセス708において、キャッシュ204は例えば「ライトスルー(write−through)」または「コピーバック(copy−back)」を含む例えば任意数のキャッシュポリシー(cache policies)を持つキャッシュとして機能するように可能化される。次いで、制御はプロセス710に渡され、そこで周辺装置(図5参照)のメインメモリ220に記憶されているオペレーティングシステム256が周辺装置の動作をウェブカメラとして開始させるようにメインメモリからRAM226にロードされる。このモードにおいて、制御は次いでプロセス712に渡され、そこでBIOSはその動作を完了する。本発明の別態様の実施例において、OSはRAMにロードせずにメインメモリから直接実行される。
【0061】
本発明の一実施例において、CPU200は媒体アクセス制御(MAC)機能を含むネットワークインターフェースだけでなくパケット組立器および組立解除器(PAD)のためのプロセッサとして働く。本発明の別態様の実施例においては、CPU200は周辺装置、例えばウェブカメラ120Aのためのプロセッサとして働く。この際に、CPU200は種々のイメージ処理アルゴリズムを実現する。本発明の別態様の実施例においては、CPU200はMACおよびPAD機能を含むネットワークインターフェースプロセッサおよび周辺装置のためのプロセッサの両方として働く。
【0062】
前の場合と異なり、決定プロセス706でチップが初期化モードにあるとの決定に達したら、制御はプロセス720に渡される。プロセス720において、キャッシュコントローラ248(図5参照)は無能化され、従ってキャッシュは通常の揮発性メモリとして機能する。次いで、制御はプロセス722に渡される。プロセス722において、CPU200は自身であるいは専用MACチップおよびPADチップに関連して次のプロセス724〜742で説明する簡単なネットワークインターフェース機能を実行する。次いで、制御はプロセス724に渡される。プロセス724において、CPU200はLAN100からのパケットを傍受する。次いで、制御は決定プロセス726に渡される。プロセス726において、CPU200は宛先アドレスを決定するために宛先アドレスフィールド304(図7A参照)を調べる。宛先アドレスがローカルメモリ202(第5図参照)に記憶されているグループID242に対応するグループIDであるならば、制御は次いで決定プロセス728に渡される。宛先アドレスがこの多モードチップのためのグループIDに対応しなければ、制御は次のパケットの取出しのためプロセス724に戻る。
【0063】
制御が決定プロセス728に渡されると、宛先アドレスフィールド304のグループIDを持って受信されたパケットがサーバによって送られる例えばパケット110のような第1のパケット形式のものであるかあるいは例えば170のような第2のパケット形式のものであるかどうかの決定が行なわれる。本発明の一実施例において、この決定はサーバによってパケット110、170(図1および図3参照)に置かれた例えば0または1のシーケンス数に基づいている。乱数、ネットワークアドレス並びにOSおよび記憶コードを含むパケットから一時コードを持つサーバパケットを区別することができる数多くの異なった態様がある。最初に、IPプロトコルが実現されている場合、伝達層にはシーケンス数がLANパケットの伝達層ヘッダ(図6参照)に含まれて存在している。別態様として、シーケンス数はサーバによってペイロードに置かれることができる。別態様として、CPU200はペイロードの乱数、ネットワークアドレスおよびOSと異なって一時コードと似ている何かがあるかどうかを知るためにペイロードを調べることができる。受けたパケットが第1のパケット形式ではないとの決定がなされれば、それは初期化プロセスで更に先のある他の周辺装置に定められているパケットである。この場合、制御は次のパケットの取出しのプロセス724に戻される。前と異なり肯定の決定に達したら、すなわちグループIDを持つパケットがサーバによって送られた第2のパケット170ではなく第1のパケット110である場合には、制御はプロセス738に渡される。
【0064】
プロセス738において、入来パケットのソースアドレスすなわちサーバ102の特異なネットワークアドレスがキャッシュの特定の場所に記憶され、次いで制御はプロセス740に渡される。プロセス740において、一時コード408(図7A参照)がペイロードから抽出され、キャッシュの特定の部分に記憶される。次いで、制御はプロセス742に渡され、そこでローカルメモリカーネルBIOSから一時コードへの飛越しが実現される。次いで、制御はプロセス744に渡され、そこでカーネルBIOSがその機能を完了する。
【0065】
図11において、処理はBIOSではなくキャッシュに記憶されているコードから実行される。一時的に無能化されたキャッシュが揮発性メモリとして機能し、それは初期パケット110でサーバ(図1参照)から受けた一時コードを包蔵している。一時的モード750は一時コードが記憶されているキャッシュの部分で開始するプロセス752で始まる。次いで、制御はプロセス754に渡される。プロセス754で、一時コードの機能コードセグメントによりCPU200はプロセッサID142Aと周辺装置ID130とを得る。これら装置IDは多数の態様で決定され得る。上で述べた実施例において、装置ID142AはCPUの一部としてすなわちその読出し専用レジスタとして編成される。別態様として、このIDは電気的にプログラム可能で電気的に消去可能な読出し専用メモリ(EEPROM)202のようなローカルメモリを含むチップのどこかにあってもよい。別態様として、チップIDは外部の一連のDIPスイッチまたは溶融可能なリンクに形成されることができる。本発明の一実施例において、このIDは製造時に多モードチップの一部となっている。本発明の別態様の実施例において、このIDはインストレーション時に設計される。装置ID130に対しても同一の形態を与えることができる。また、それは専用メモリ、例えばEEPROM、DIPスイッチあるいは溶融可能(fusible)なリンクとなることができる。本発明の別態様の実施例において、装置IDはハードコード化されずに、一時コードによって初期化されかつCPU200によって実行されるプロセスによって見い出される。CPUは、例えば、そのメモリマップあるいはI/O空間の特定の位置に継続した読出しおよび書込みを行なって引き出された応答の形式を決定するようにしてもよい。その応答に基づいて、CPUはそれがどの形式の周辺装置に接続されたかと多モードチップの特性とを決定することができる。
【0066】
プロセス756において、CPU200はブートアップからの時間の関数であってもよい乱数を発生する。上で述べたように、この乱数はそれがサーバ102(図1参照)からの同一のパケット110に応答しているものであってもよいどの他の周辺装置によって発生された乱数とも一致しないようにするために充分な数のビットのものでなければならない。次いで、制御はプロセス758に渡される。プロセス758において、CPU200は不揮発性ローカルメモリ202にあるグループIDを読み取る。本発明の別態様の実施例において、グループIDはCPUに接続された全体的に独立した媒体アクセスコントローラ(MAC)にあってもよい。次いで、制御はプロセス760に渡される。プロセス760において、CPU200はカーネルBIOSによって実行され図10において上述したソースアドレスを含むキャッシュメモリの部分を読み取る。そのソースアドレスはカーネルBIOSによって初期パケット110から得られたサーバ102の特異なネットワークアドレスに対応する。プロセス762において、媒体アクセス制御(MAC)並びにパケット組立および組立解除(PAD)を含む単純なネットワークインターフェース機能がCPUによって行なわれる。次いで、制御は次のプロセス764で実行されるような機能の最初の部分の渡される。
【0067】
プロセス764において、ペイロードがプロセス756で発生された乱数を含んで組み立てられる。ペイロードのソースおよび宛先フィールドには、それぞれグループID242(図5参照)およびソースアドレスフィールド306(図7A参照)が置かれる。グループID242は製造時にチップに作り込んでもよい。宛先アドレスは入来パケット110のソースアドレスフィールド110から得られる。このパケットはプロセス766においてサーバ102に送られる。
【0068】
次に、制御はネットワーク100からの入来パケットの処理のためプロセス768に渡される。これらパケットのそれぞれは連続した決定プロセス770〜774で解析される。プロセス770でパケットが周辺装置のグループIDに対応する宛先アドレスを含むかどうかについての決定が行なわれる。含む場合には、制御はプロセス772に渡される。プロセス772において、パケットが第1あるいは第2の形式のもの,すなわちそれが一時コードだけを含む第1のパケット形式(図1、図7A参照)であるか第2のパケット形式170(図3、図7C参照)であるかどうかの決定がなされる。第2のパケット形式は上で述べたように乱数、OSおよび/またはアプリケーションおよび記憶コードを含んでいる。それが第2の形式のパケットであり、乱数を含んでいる場合には、制御は決定プロセス774に渡される。
【0069】
決定プロセス774において、パケットペイロードの乱数がCPU200によって発生された乱数と一致するかどうかの決定がなされる。パケットの乱数がCPUにおいて発生された乱数と一致すれば、制御はプロセス776に渡される。プロセス776において、入来パケット170Aのペイロードが得られ、そのペイロードから特異なネットワークアドレス440、記憶コード450およびOSコード454が分解される。記憶コードはキャッシュの特定の場所に格納され、オペレーティングシステムはキャッシュの他の場所に格納され、ネットワークアドレスフィールド440はローカルメモリ202にネットワークID244として記憶される。本発明の別態様の実施例において、ネットワークIDは個別のネットワークインターフェース装置に送られてもよい。次いで、制御はプロセス778に渡される。プロセス778において、CPU200は記憶コードを含んでいるキャッシュメモリの部分に飛び、そのコードの実行を始める。次いで、制御はプロセス780に渡される。
【0070】
プロセス780において、記憶コードによりCPU200はキャッシュメモリ250(図5参照)からのオペレーティングシステムコードの継続したライン(successive lines)をメインメモリ220(図5参照)に転送する。更に、特異なネットワークIDも不揮発性メモリ、例えばメインメモリ220に転送される。本発明の別態様の実施例においては、特異なネットワークアドレスはチップまたは周辺装置またはネットワークインターフェースのいずれかの任意の不揮発性メモリに記憶されることができる。全体のオペレーティングシステムが転送されたら、制御はプロセス782に渡される。
【0071】
プロセス782において、OSのイメージがメインメモリからRAM226にロードされる。次いで、プロセス784において、例えば、CPUがキャッシュコントローラ248を可能化することによってランタイムモードに変換するそのキャッシュコントローラへの接続を有する特定のピンへの書込みを行なうようにすることによって、キャッシュが可能化される。次いで、制御はプロセス786に渡され、そこで一時コードは終了され、多モードチップと周辺装置の通常の動作が開始する。
【0072】
当業者には明かであり、また本発明の教示から逸脱することなく、オペレーティングシステムの長さを1500バイトより大きくすることができる。但し、それは、一時コードが引続くパケットを取り出し(retrieve)それらをメインメモリに転送する追加のプロセスを行なわせるようにされていたらの場合である。
【0073】
一度にただ1つの周辺装置がネットワークに接続されるような本発明のある別態様の実施例においては、上に説明されかつ記載された処理手順の多くは単独にネットワークに接続された装置と共に、あるいはネットワークに同時に接続された複数の装置と共に働くことができる。
【0074】
単純な命令をCPUに送ってそれを活性化し機械の活性化あるいはライト(light)のオンオフの切り替えといった簡単なことをそれに行なわせるように上述の方法を用いることも可能である。
【0075】
本発明によるICによって形成された処理回路およびそれに接続される外部ユニットはプリントサーバおよびCD−ROMサーバのような異なったネットワーク周辺周辺装置において使用するのに適している。
【0076】
本発明は上に例示的な態様で表され、特許請求の範囲の保護の範囲内で多くの改良が可能である。
【0077】
本発明の好適実施例において、CPUは第1の始動プログラムを受け、その後ICを開始モードに切り替える命令を実行する。しかしながら、別態様の実施例においては、NICおよび/またはキャッシュメモリにそれら自体を開始モードに切り替える能力を持たせることが可能である。
【0078】
ICがネットワークポートを介して第2の始動プログラムを受けることができるようにしかつこの第2の始動プログラムを能動的に受けるようにすることによって、ICは製造プロセスの間並びにその後の寿命の間にロードするのが容易となる。特に、最後の特徴は処理回路がネットワーク周辺機器において使用される時には大きな長所となる。それが開始モードにある時にネットワークを介してアップグレードされたりあるいは変更されたりできるためである。
【0079】
しかしながら、本発明は第2の始動プログラムがネットワークポートを介して受けられることには限定されない。パラレルポート、シリアルポートあるいは補助ローディングポートのようなICの他のポートが処理回路のローディングのために使用され得る。これらの場合に、プログラムは好ましくは所定のサイズを有している。それによって、他のインターフェース制御ユニットが使用可能となり、あるいは例えば第2の始動プログラムが直ちにキャッシュメモリユニットに転送される場合には制御ユニットが全然使用されなくともよい。
【図面の簡単な説明】
【図1】ネットワーク取付周辺装置を中央サーバから構築する全体のネットワーク環境を示す。
【図2】ネットワーク取付周辺装置を中央サーバから構築する全体のネットワーク環境を示す。
【図3】ネットワーク取付周辺装置を中央サーバから構築する全体のネットワーク環境を示す。
【図4】ネットワーク取付周辺装置を中央サーバから構築する全体のネットワーク環境を示す。
【図5】本発明の一実施例による二重モードチップおよび周辺装置のハードウェアブロック図である。
【図6】IEEE802.3パケットを示す。
【図7】構成化プロセスの種々の層でサーバおよび周辺装置間で送られるパケットを示す。
【図8】サーバでのデータ構造を示す。
【図9】サーバによって行われる周辺装置構築プロセスのプロセス流れ図である。
【図10】周辺装置によって行なわれる構築プロセスのプロセス流れ図である。
【図11】周辺装置によって行なわれる構築プロセスのプロセス流れ図である。
【符号の説明】
200 CPU
202 ローカルメモリ
204 キャッシュ
206 DMAコントローラ
208 メモリコントローラ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to integrated and methods of causing integrated circuits to execute instructions.
[0002]
[Prior art]
Control units used in embedded systems, such as network peripherals that control various functions in a computer network, include a CPU (Central Processing Unit) and other essential units that work with the CPU, such as a cache memory. A processing circuit having an integrated circuit (IC) is formed. The processing circuit often also includes a number of external units such as external memory units that are connected to and communicate with the integrated circuit via a number of ports.
[0003]
Various types of processing circuit designs can be achieved by equipping a specific design of the integrated circuit with various external units and loading different software into the processing units thus formed. This allows one IC design to be used for a wide range of applications.
[0004]
Often in connection with the manufacturing process, when the processing circuit is first loaded with the software required for its function, it is equipped with one or more memory units and a start-up program is loaded for the function of the processing circuit. It is necessary to provide the integrated circuit with external memory means providing a memory space for receiving additional software programs.
[0005]
Accordingly, the processing circuitry is permanently equipped with external units necessary for initial software loading, or such external units are temporarily connected to the integrated circuit during the software loading phase of the manufacturing process.
[0006]
The cost of the processing circuit increases in an undesired manner since this circuit must be equipped with units that are not preferred or necessary for its subsequent use.
[0007]
If the external unit for initial software loading is connected to the integrated circuit only at the loading stage, this stage of manufacturing is disadvantageously time consuming.
[0008]
The testing of software test versions at the time of development often involves replacing, erasing and reloading memory units, which makes such tests time consuming.
[0009]
[Problems to be solved by the invention]
An object of the present invention is to simplify the loading of necessary software into a processing circuit.
[0010]
Another object is to provide an integrated circuit that can be used in a wide variety of applications.
[0011]
Yet another object of the present invention is to limit the costs associated with the processing circuit manufacturing process.
[0012]
[Means for Solving the Problems]
According to the present invention, these objects and other objects that will become apparent from the following description are achieved in accordance with
[0013]
According to a first aspect of the invention, the integrated circuit comprises switching means for switching the circuit between a working mode and a start mode, in which the circuit essentially receives an external signal from a CPU on the circuit. The instruction is executed.
[0014]
In the manufacturing process, such an integrated circuit can be equipped with suitable external units for the creation of the desired processing circuit design. There is no need to consider special external unit requirements for the initial software loading of the processing circuitry. Furthermore, the software loading stage can be performed quickly because the processing circuit can be loaded without an auxiliary device during the loading stage.
[0015]
For example, the manufacturing process can be simplified here because software loading can be done at an optional stage in connection with the testing of the final product.
[0016]
Also, an integrated circuit according to the present invention can reload new and different software in the same simple manner as initial loading at any time during its future lifetime.
[0017]
Another advantage is that it allows simple software testing during the development of new software.
[0018]
Yet another advantage of such an integrated circuit is that it can be made to perform limited instructions such as switching external systems without having to load additional software on itself at the start stage.
[0019]
In the context of the present invention, an integrated circuit (IC) means a piece or electronic circuit in a chip having conductors and elements integrated therewith.
[0020]
According to a preferred embodiment of the present invention, the IC is programmed to receive a signal and cause the CPU to execute an instruction. This can be accomplished by logic elements formed in the IC by the hardware itself (hard coded instructions). However, the memory means of the circuit preferably comprises a first memory unit storing the internal instructions for receiving the signals and executing external instructions. The first memory unit preferably includes a ROM that stores the internal command. Thereby, the programming is achieved in a compact and low cost.
[0021]
In another preferred embodiment of the present invention, the memory means of the IC comprises a second memory unit that stores external instructions as executed by the CPU. This second memory unit and the first memory unit described above can be integrated into one and the same unit. However, according to the present invention, it is preferable that the second memory unit is constituted by a cache memory unit. Preferably, the cache memory unit is provided for the CPU anyway and is intended to be used during the subsequent life of the circuit so that the use of the cache memory unit avoids the auxiliary memory unit. The cache memory unit preferably comprises random access memory (RAM), which is switched to a mode that can be used for storage of external instruction storage.
[0022]
According to another preferred embodiment of the present invention, the IC comprises interface control means connected to at least one of the ports, the interface control means for recognizing and receiving the signal in a start mode. Has been. Thereby, this IC can be made to actively intercept signals, for example in a network.
[0023]
According to a second aspect of the present invention, it includes a method in which the IC is put into a start mode to receive an external start signal comprising an external start command. The IC then receives the external signal and uses the integrated CPU to execute the instruction. With the method according to this second feature, the same advantages are achieved as with the integrated circuit according to the first feature.
[0024]
When bringing the integrated circuit into the start mode, the method according to the preferred embodiment includes the act of causing the interface control means of the integrated circuit to receive an external signal. Thereby, the integrated circuit preferably enables the external signal to be recognized among other signals, for example in a network connected thereto. In a preferred manner, this can be accomplished by giving the integrated circuit a predetermined starting address. This address is temporary and unique to the start mode and is recognized by the interface means for receiving an external signal.
[0025]
Thereafter, the method according to the preferred embodiment includes the act of sending an external signal to the integrated circuit, whereby the signal is preferably addressed to a predetermined starting address and preferably has a predetermined size.
[0026]
According to another preferred embodiment of the method, the external instruction is stored in memory means, preferably a cache memory unit, which forms part of the integrated circuit before it is executed when it is received. . Thereby, bringing the IC into the start mode preferably includes an operation that causes the cache memory unit to act as a RAM for storing external instructions.
[0027]
According to another feature of the invention, a first small startup program is permanently stored in the IC and is activated to cause the IC to receive a second, somewhat larger startup program in the start mode. . Thereafter, this second program starts the actual loading of the IC and the external unit connected to it.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
FIGS. 1-4 show the various phases of interaction between a configuration server and a plurality of network attached peripherals that need to be built. In the illustrated embodiment, the network attached peripheral device is not manufactured with a unique (unique) network address or basic operating capability. Even when they are attached to the network, they are not built in both network and operational sense. This greatly reduces manufacturing costs on the assumption that peripheral devices can be configured with a unique network address and device-dependent operational capabilities throughout the network, and each processor-like component of the peripheral device is single. To be made from chips.
[0029]
FIG. 1 shows a
[0030]
Each peripheral device includes an attached multi-mode chip with an ID. The chip ID is not as unique as the device ID, but instead identifies the chip type and / or model number. There may be many chips with the same ID.
[0031]
In operation, the
[0032]
The operation of the next phase is shown in FIG. In FIG. 2, each of the
[0033]
Numerous benefits are realized by manufacturing multi-mode chips and peripheral devices that have neither application code nor operating system nor a unique network ID. Initially, the network ID can be dynamically assigned in the process described below. Second, the latest version of the OS and / or application code can be downloaded to the device during the actual build on the network. Third, the cost of the peripheral device can be reduced by implementing the peripheral device with a chip that can have both network interaction and capabilities that function as a basic processing unit for the external device. When the
[0034]
FIG. 3 shows the next phase of the download phase operation. As described above in FIG. 2, after the server receives a packet from one or more external devices, the server establishes
[0035]
In either embodiment, the payload of each packet contains the random number sequence received in the incoming packet and the boot and application code for the corresponding device. In some embodiments of the invention, each packet may also include a corresponding chip and device identifier.
[0036]
Each
[0037]
FIG. 4 shows the final operation phase. At this point, each multimode chip has a unique network address. Multimode chips are beginning to function additionally as an integral processing unit for each peripheral component. The
[0038]
FIG. 5 is a hardware block diagram of the
[0039]
[0040]
Within the peripheral device, the
[0041]
There are three phases in the initialization of multimode chips and peripheral devices. These phases correspond to the
[0042]
An additional feature of the kernel BIOS is that it disables the
[0043]
Next, the operation of the second or temporary phase starts in the multimode chip. The operation of this phase is illustrated in FIGS. In the temporary phase,
[0044]
A third or operational phase chip operation is shown in FIG. In this phase, storage from the server and OS /
[0045]
6 and 7A to C show an embodiment of a packet protocol in the local area network (LAN) 100 (see FIGS. 1 to 4). Information transferred through the network is processed by a wrapping protocol for the information being transferred. Each packet includes a plurality of headers and a payload. These headers contain information specific to one of the corresponding seven layers of the OSI model. The header and payload in the LAN are called a packet. The header and payload in an integrated services digital network (ISDN) are called a frame. Until recently, network traffic in LAN and ISDN networks consisted of packets / frames with up to seven headers and payloads. The header contained information specific to each of the seven layers of the OSI model. The payload contains the audio, video or data to be transferred. The structure of the header and payload in the LAN is defined by each IEEE LAN standard such as 802.3, 802.5, and the like. These standards are referred to below as 802. Call it X. On the ISDN side, the header and payload structure is defined by the Point-to-Point Protocol (PPP) or High Level Data Link Protocol (HDLC) popularized by the International Organization for Standardization (ISO).
[0046]
FIG. 6 shows a detailed view of one of the
[0047]
7A to 7C show the
[0048]
FIG. 7A shows a
[0049]
FIG. 7B shows a
[0050]
FIG. 7C shows a
[0051]
FIG. 8 shows the data structure of the storage device 104 (see FIGS. 1 to 4) of the
[0052]
FIG. 9 illustrates a
[0053]
In
[0054]
In
[0055]
The device and chip ID, as described above, distinguishes only one type of peripheral device from other or preferably one model number peripheral device from others of the same type. However, the device and chip ID do not distinguish peripheral devices having the same model number from others. This distinction is achieved by a unique network address assigned by the server. The server passes the random number stamp in the packet from 1 to the server. The server keeps track of random numbers received in the incoming packet from the peripheral device and assigns the corresponding network address to the device. Control is then passed to process 614.
[0056]
In
[0057]
Control is then passed to process 616 where the server sends the packet to the peripheral device over network 100 (see FIG. 3). Control is then passed to process 618. Here, the server completes the operation of detecting and configuring the peripheral device. As will be apparent to those skilled in the art, the server may then function as a repository or database for the peripheral device.
[0058]
FIGS. 10-11 illustrate one embodiment of a process with a multi-mode chip and attached peripherals to obtain a unique network ID and a suitable operating system. Processing for the
[0059]
In a
[0060]
For example, if a determination is made that the multi-mode chip is in runtime mode, control is passed to process 708. In
[0061]
In one embodiment of the present invention, the
[0062]
Unlike the previous case, if
[0063]
When control is passed to the
[0064]
In
[0065]
In FIG. 11, the process is executed from the code stored in the cache, not the BIOS. The temporarily disabled cache serves as volatile memory, which contains the temporary code received from the server (see FIG. 1) in the
[0066]
In
[0067]
In
[0068]
Control is then passed to process 768 for processing incoming packets from
[0069]
In a
[0070]
In
[0071]
In
[0072]
It will be apparent to those skilled in the art and the length of the operating system can be greater than 1500 bytes without departing from the teachings of the present invention. However, this is the case if an additional process is made to retrieve the packets followed by the temporary code and transfer them to the main memory.
[0073]
In an alternative embodiment of the invention in which only one peripheral device is connected to the network at a time, many of the procedures described and described above, together with the device connected to the network alone, Or it can work with multiple devices connected to the network simultaneously.
[0074]
It is also possible to use the method described above to send a simple command to the CPU and activate it to do simple things such as machine activation or light on / off switching.
[0075]
The processing circuit formed by the IC according to the present invention and the external unit connected to it are suitable for use in different network peripheral devices such as print servers and CD-ROM servers.
[0076]
The invention has been represented by way of example above and many modifications are possible within the scope of protection of the claims.
[0077]
In the preferred embodiment of the present invention, the CPU receives the first start program and then executes a command to switch the IC to the start mode. However, in an alternative embodiment, the NIC and / or cache memory can have the ability to switch itself to a start mode.
[0078]
By allowing the IC to receive a second startup program via the network port and actively receiving this second startup program, the IC can be used during the manufacturing process as well as during subsequent lifetimes. Easy to load. In particular, the last feature is a great advantage when the processing circuit is used in a network peripheral. This is because it can be upgraded or changed over the network when it is in start mode.
[0079]
However, the present invention is not limited to the second startup program being received via the network port. Other ports of the IC such as a parallel port, serial port or auxiliary loading port can be used for loading processing circuitry. In these cases, the program preferably has a predetermined size. Thereby, another interface control unit can be used, or the control unit may not be used at all, for example if the second startup program is immediately transferred to the cache memory unit.
[Brief description of the drawings]
FIG. 1 shows an overall network environment in which network attached peripheral devices are built from a central server.
FIG. 2 shows an overall network environment in which network attached peripheral devices are constructed from a central server.
FIG. 3 shows an overall network environment in which network attached peripheral devices are constructed from a central server.
FIG. 4 shows an overall network environment in which network attached peripheral devices are constructed from a central server.
FIG. 5 is a hardware block diagram of a dual mode chip and peripheral device according to an embodiment of the present invention.
FIG. 6 shows an IEEE 802.3 packet.
FIG. 7 shows packets sent between a server and a peripheral device at various layers of the configuration process.
FIG. 8 shows a data structure in a server.
FIG. 9 is a process flow diagram of a peripheral device construction process performed by a server.
FIG. 10 is a process flow diagram of a construction process performed by a peripheral device.
FIG. 11 is a process flow diagram of a construction process performed by a peripheral device.
[Explanation of symbols]
200 CPU
202 Local memory
204 cache
206 DMA controller
208 Memory controller
Claims (5)
上記サーバで上記ネットワーク接続装置のうちの未識別のネットワーク接続装置から第1のデータパケットを受ける動作(act)であって、上記第1のデータパケットは装置形式識別子と不規則識別子とを含み、上記装置形式識別子は上記ネットワーク接続装置のうちの上記未識別のネットワーク接続装置の群に対応し、上記不規則識別子は上記ネットワーク接続装置のうちの上記未識別のネットワーク接続装置によって発生される上記動作と、
第1のデータパケットを受ける上記動作に応答し、上記サーバから第2のデータパケットを送る動作であって、上記第2のデータパケットは上記不規則識別子とプログラムコードセグメントと特異なネットワークアドレスとを含み、上記プログラムコードセグメントは上記ネットワーク接続装置のうちの上記未識別のネットワーク接続装置の上記群に対応し、上記特異なネットワークアドレスは上記ネットワーク接続装置のうちの上記未識別のネットワーク接続装置に上記サーバによって割り当てられた、上記動作と、
上記ネットワーク接続装置のうちの上記未識別のネットワーク接続装置において、上記第2のデータパケットを該第2のデータパケットに含まれた上記不規則識別子に基づいて処理する動作と、
上記ネットワーク接続装置のうちの上記非識別のネットワーク接続装置において、第2のデータパケットを送る上記動作の間に上記サーバによって割り当てられた上記特異なネットワークアドレスをネットワークアドレスとして割り当てる動作と、
を具備することを特徴とする方法。A method of remotely constructing a network-connected device, wherein the network connection device is connected to a server by a network, the server is connected to a storage device including a program code segment, and each program code A method for remotely constructing the network connection device, wherein the segment is suitable to enable operation of the corresponding group of the network connection device,
An operation of receiving a first data packet from an unidentified network connection device among the network connection devices in the server (act), wherein the first data packet includes a device type identifier and an irregular identifier; The device type identifier corresponds to the group of unidentified network connection devices among the network connection devices, and the irregular identifier is the operation generated by the unidentified network connection device among the network connection devices. When,
In response to the operation of receiving the first data packet, an operation of sending a second data packet from the server, wherein the second data packet includes the irregular identifier, the program code segment, and a unique network address. The program code segment corresponds to the group of the unidentified network connection devices of the network connection devices, and the unique network address is assigned to the unidentified network connection device of the network connection devices. The above actions assigned by the server, and
An operation of processing the second data packet based on the irregular identifier included in the second data packet in the unidentified network connection device of the network connection devices;
In the non-identified network connection device of the network connection devices, an operation of assigning the unique network address assigned by the server during the operation of sending a second data packet as a network address;
A method comprising the steps of:
上記サーバから上記ネットワーク接続装置に初期データパケットを送信する動作と、
上記ネットワーク接続装置のそれぞれで上記初期データパケットを受け入れる動作と、
上記初期データパケットを受け入れる上記動作に応答して、上記ネットワーク接続装置のうちの未識別のネットワーク接続装置から上記第1のデータパケットを送る動作であって、上記第1のデータパケットは装置形式識別子と不規則識別子を含み、上記装置形式識別子は上記ネットワーク接続装置のうちの上記未識別のネットワーク接続装置の群に対応し、上記不規則識別子は上記ネットワーク接続装置のうちの上記未識別のネットワーク接続装置によって発生される上記動作と、
を具備することを特徴とする方法。The method of claim 1, wherein the act of receiving a first data packet is prior to the act of:
An operation of transmitting an initial data packet from the server to the network connection device;
Accepting the initial data packet in each of the network connection devices;
In response to the operation of accepting the initial data packet, an operation of sending the first data packet from an unidentified network connection device among the network connection devices, wherein the first data packet is a device type identifier. The device type identifier corresponds to the group of unidentified network connection devices of the network connection devices, and the irregular identifier is the unidentified network connection of the network connection devices. The above operations generated by the device;
A method comprising the steps of:
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US162681 | 1993-12-03 | ||
| SE9801671A SE520101C2 (en) | 1998-05-13 | 1998-05-13 | Integrated circuit and method to induce an integrated circuit to execute instructions |
| US9801671-0 | 1998-09-29 | ||
| US09/162,681 US6356942B1 (en) | 1998-05-13 | 1998-09-29 | Integrated circuit and method for bringing an integrated circuit to execute instructions |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000059439A JP2000059439A (en) | 2000-02-25 |
| JP4291919B2 true JP4291919B2 (en) | 2009-07-08 |
Family
ID=26663301
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17149799A Expired - Lifetime JP4291919B2 (en) | 1998-05-13 | 1999-05-13 | Method for remotely constructing networked devices |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4291919B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5968652B2 (en) * | 2012-03-15 | 2016-08-10 | 株式会社イシダ | Electronic display system |
-
1999
- 1999-05-13 JP JP17149799A patent/JP4291919B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000059439A (en) | 2000-02-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6356942B1 (en) | Integrated circuit and method for bringing an integrated circuit to execute instructions | |
| EP0899655B1 (en) | Information communicating apparatus and method | |
| KR100412009B1 (en) | Redirected network boot to multiple remote file servers | |
| US6665724B2 (en) | Method for automatically delaying initialization of a protocol stack within a network interface | |
| US5787306A (en) | Automatic assignment of I/O addresses in a computer system | |
| US7996563B2 (en) | Method for designating internet protocol addresses | |
| US6678728B1 (en) | Method and apparatus for automatically loading device status information into a network device | |
| US20050246518A1 (en) | Computer system and booting method therefor and server used for the same | |
| KR101033966B1 (en) | Software upgrade via USB connection | |
| JPH10507019A (en) | Integrated structure for microprocessor programming using state machine and method of assembling the circuit board | |
| CN116192995B (en) | A message processing method, device and system | |
| US5815500A (en) | Network connection device | |
| US6694360B1 (en) | Multi-mode network interface having loadable software images | |
| US7181567B2 (en) | Hitless restart of access control module | |
| US7076787B2 (en) | Supporting multiple protocols with a single device driver | |
| JP4291919B2 (en) | Method for remotely constructing networked devices | |
| US7720097B2 (en) | Communication apparatus, communication method, communication program and recording medium | |
| CN112995069A (en) | Instruction writing method and device and network equipment | |
| US8902906B2 (en) | Dynamic network identity architecture | |
| US8260968B2 (en) | Method and system for booting a software package on a network processor | |
| US11171653B2 (en) | Method for programming a field programmable gate array and network configuration | |
| US20030225916A1 (en) | Implementing a data link layer protocol for multiple network interface devices | |
| US20050110418A1 (en) | Command processing device and command processing device control method | |
| JP2005050097A (en) | Information processing apparatus, information processing method, program, and recording medium | |
| SE521305C2 (en) | Bringing of an integrated circuit to execute instructions with simplified loading of the necessary hardware into the processing circuit |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051014 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071109 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071120 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080220 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080225 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080321 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080905 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081202 |
|
| 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: 20090327 |
|
| 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: 20090406 |
|
| 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: 20120410 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120410 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140410 Year of fee payment: 5 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |