Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4291919B2 - Method for remotely constructing networked devices - Google Patents
[go: Go Back, main page]

JP4291919B2 - Method for remotely constructing networked devices - Google Patents

Method for remotely constructing networked devices Download PDF

Info

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
Application number
JP17149799A
Other languages
Japanese (ja)
Other versions
JP2000059439A (en
Inventor
ベングトソン ヤン
ラネルプ ケニイ
ザンデル ベル
Original Assignee
アクシス アクチボラグ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from SE9801671A external-priority patent/SE520101C2/en
Application filed by アクシス アクチボラグ filed Critical アクシス アクチボラグ
Publication of JP2000059439A publication Critical patent/JP2000059439A/en
Application granted granted Critical
Publication of JP4291919B2 publication Critical patent/JP4291919B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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 claims 1 and 9 by an integrated circuit and a method for causing an integrated circuit to execute instructions.
[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 server 102, a workstation 112, and a plurality of peripheral devices 120A-B, 122 and 124 connected to each other through a network 100. The storage device 104 includes a plurality of applications, an operating system, a transit code, and a storage code in the file 106, and includes program code 108 that configures the server to function as a configuration server. It is out. Each of the peripheral devices 120A-B, 122, and 124 includes two identifiers (IDs) in an embodiment of the present invention, one for the device itself and the other being part of the device. For possible multimode chips. These IDs are not unique to each device, but instead identify the device type, eg, printer / camera type and model number. There may be many peripheral devices with the same ID. The peripheral device IDs of the devices 120A-B are IDs 130A-B, respectively. The peripheral device ID of the printer 122 is a printer ID 132. The ID of the card reader 124 is a card reader ID 134. Each of the peripheral devices is shown in dotted lines in FIG. 1 because all of them are not capable of functioning as printers, card readers or cameras at this point. All of them lack the processing capabilities or operating system code (OS) necessary to function as either a printer, card reader or camera.
[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. Multimode chip 140A and associated ID 142A are part of peripheral device 120A. The other mode chip 140B and its ID 142B are part of the peripheral device 120B. The other mode chip 140C and its ID 142C are part of the peripheral device 122. The other mode chip 140D and its associated ID 142D are part of the peripheral device 124.
[0031]
In operation, the server 102 starts the processor 102A as a result of the program code 108 contained in the storage device 104. These processes assemble a packet 110 having a group ID (see FIG. 6) and send it through the network 100. Each of the multi-mode chips 140A-D implements a kernel BIOS 144A-D process (see FIG. 1) for a respective peripheral device 120A-B, 122, and 124. These minimal boot code processes that are part of the initial configuration of chips 140A-D allow these chips to accept packets from network 100 with a group ID corresponding to their own group ID. Accordingly, each multi-mode chip receives a packet having a single group ID and allows the processing thereof. Alternatively, one group ID can be for a chip connected to a printer and the other can be for a chip connected to a camera or the like. Even in this embodiment, the other mode chip of one camera may have the same group ID as the others. In one alternative embodiment of the present invention, the initial packet 110 can be broadcast over the network with an address that indicates that all peripheral devices should accept the packet.
[0032]
The operation of the next phase is shown in FIG. In FIG. 2, each of the multimode chips 140A to 140D receives an initial packet 110 having a group ID as a destination address. In this packet, the multi-mode chips 140A-D cause the temporary processes 160A-D to start with the temporary code sent by the server in the initial packet. The chip retrieves their identifiers and the identifiers of the peripheral devices to which they are attached. In response to this, the other mode chip sends response packets 150A to 150D to the server 102. In one embodiment of the invention, these packets include a source address that is a group address and a unique identifier generated by each of the chips 140A-D so that the server can distinguish one packet from the other. A payload may be included. This identifier is not a unique destination address as required in previous peripheral devices. Instead of building each of the multi-mode chips 140A-D in the factory with a unique network ID network, a unique network ID is assigned in the next process. In one embodiment of the invention, each of the chips generates a random number and stores it in the payload portion of the response packet sent to the server. In addition, the response packet sent by each of the multimode chips may include a chip ID and a device ID.
[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 server 102 receives the packet (s) 150A-D from each of the multi-mode chips 140A-D, it begins the file 106 lookup process 102B.
[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 process 102C. Process 102C utilizes the chip and device identifier of the incoming packet to find the appropriate OS or application code for the multimode chip and the application code for the peripheral device that embeds each multimode chip in file 106. . The server then sends packets 170A-D using the same group ID as the destination address. In another embodiment of the present invention, the server may include a broadcast address as a destination address.
[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 multimode chip 140A-D of each peripheral device collects all group packets, but only the OS and / or application code from a packet containing a random number that matches the random number generated by a particular multimode chip. use. In this manner, each of the peripheral devices processes only its own unique packet even though they lack a unique network address at this stage. In addition, the payload of each unique packet from the server includes a unique network address assigned by the server for subsequent use by the peripheral device.
[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 card reader 124, the configuration process 174 can now read the card 114. The printer 122 and the configuration process 172 can receive print jobs via the network 100. Cameras 120A-B, configuration process 176-B can take images and send them over the network. This latter function is achieved by the device specific OS and / or application code downloaded from the server 102 in FIG.
[0038]
FIG. 5 is a hardware block diagram of the multimode chip 140A and the peripheral device 120A (see FIGS. 1 to 4). Multimode chip 140A includes a central processing unit (CPU) 200, local memory 202, cache 204, direct memory access (DMA) controller 206, memory controller 208, address and data buffers 210A-B, and optional switch 212. The cache includes a cache controller 248 and a cache memory 250. In this case, the peripheral device that is the webcam 120A includes a main memory 220, a charge coupled device (CCD) controller 222, a CCD and lens assembly 224, a device ID 130, a volatile memory 226, and an external port 230 that connects the chip to the network. It is out.
[0039]
Multimode chip 140A includes a local data and address bus and control bus 218, indicated at 214-216, respectively. Local bus 214 couples CPU 200 to local memory 202, cache 204, DMA controller 206, and data buffer 210B. Local address bus 216 couples the CPU to local memory, cache and memory controller 208. The control bus couples the CPU to the local memory 202, cache 204 and DMA controller 206. Both the DMA controller and the memory controller are coupled to address buffer 210A. Optional switch 212 provides a switchable input to CPU 200. An external port 230 couples the CPU to the LAN (see FIGS. 1-4). In this embodiment of the invention, the network interface function is performed by either chip 140A or by CPU 200 or a separate on-chip media access controller (MAC) and packet processor. In another embodiment of the present invention, external port 230 couples the chip to the LAN via an external network interface (not shown). Peripherals and chips are coupled to each other via an interface port 258 that includes address, data and control signal lines.
[0040]
Within the peripheral device, the system bus 228 connects the main memory 220, the peripheral device ID 130, the volatile memory 226, and the CCD controller 222. The CCD controller is coupled to the CCD and lens coupling assembly 224. Between the multimode chip and peripheral devices, address and data connections from address and data buffers 210A-B respectively couple the two devices. Additional coupling is provided by a control bus 218 that couples the CCD controller 222 to the DMA controller 206. A multimode chip identifier 142A exists in the multimode chip 140A. The chip ID is organized in one embodiment of the invention as a read-only register that is part of the CPU of this chip. In other embodiments, the chip ID may be stored in the local memory 202. This chip identifier is used with the device identifier 130 to identify the multi-mode chip and device manufacture and / or model number to the server 102. In other words, this identifier need not be unique to a device except for groups of devices that have a common manufacturing and / or model number.
[0041]
There are three phases in the initialization of multimode chips and peripheral devices. These phases correspond to the packets 110, 150A-D and 170A-D shown in FIGS. The present invention provides a combination device that can be configured remotely over the network from the original configuration without a unique network address or operating system. In the first phase of operation, the local memory contains only the group identifier 242 and the kernel BIOS 144A. The kernel BIOS 144A can configure the local bus, determine whether it is in initialization or normal mode, and from the server 102 that has a group identifier rather than a unique network ID as the destination address. It can respond to the packet 110 (see FIG. 1).
[0042]
An additional feature of the kernel BIOS is that it disables the cache controller 248 to allow temporary use of the cache as normal volatile memory. In normal mode, the chip's cache subsystem has the function of checking for hit / miss, dirty bits, etc. In BIOS and transit phase operations, the cache memory acts as a “normal” random access memory (RAM) by disabling hit / miss checks and the like. Instead, the cache RAM is mapped with a fixed address. In the operation of the BIOS phase shown in FIG. 1, the server 102 sends out a packet 110 having a generic group identifier as a destination address. This packet is processed by any and all multimode chips 140A-D shown in FIG. Although each of these chips has a condition that the local memory 202 has a group identifier 242 corresponding to the group identifier in the packet. When a packet is received, its payload portion is extracted and a temporary code 252 is loaded. This temporary code provides random number generation, identification, packet transmission and packet reception capabilities.
[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, temporary code 252 is executed. This code has several functions. First, it performs the function of sending a response packet with a payload containing the random number generated by the CPU 200 at runtime and the chip and device model IDs 142A, 130 when the multi-mode chip is executed. In one embodiment of the present invention, this random number may correspond to the time since a power-on reset, for example. This random number needs to have enough bits so that the risk of two peripheral devices generating the same number can be ignored. Even if several units or peripherals are turned on at the same time, they will generate different numbers because more than one unit cannot send packets over the network at the same time. By putting this number in a packet and temporarily storing this number in the cache memory 250, the multimode chip can identify the return packet from the server that contains this random number in the payload with these two simple comparisons. It becomes.
[0044]
A third or operational phase chip operation is shown in FIG. In this phase, storage from the server and OS / application code 254 are downloaded to the multi-mode chip and stored in the cache memory 250. Using the storage code, this operational process transfers the operating system to main memory. With the device constructed in this way, the multi-mode chip acts as a central processing unit for the webcam execution process 176A (see FIG. 4). The cache returns to its normal function of holding a copy of the newly used portion of main memory 220 for access by CPU 200.
[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 possible packet formats 320 that may be transmitted over the LAN 100 (see FIGS. 1-4). Details of wrappers for packet 320 are shown. In particular, the protocol for this packet conforms to the IEEE 802.3 standard. An 802.3 packet begins with a preamble 300. This preamble is 7 bytes in length, and each byte includes a bit pattern 10101010. This preamble allows the receiver clock to be synchronized with the sender. Next comes the start part 302 of the frame flag containing the binary sequence 10101011. Next is a destination address field 304 that is 6 bytes in length, followed by a source address field 306 that is also 6 bytes in length. Source address field 306 identifies the party sending the packet, and destination address field 304 identifies the party to which the packet is being sent. A length field 308 follows. This length field, which is 2 bytes in length, indicates how many bytes are present in the data / payload field from a minimum of 0 to a maximum of 1500 bytes. Headers 310-314 include a network layer header, a transport layer header, and a session layer header for payload field 316, respectively. The payload may include various types of information including modem session start commands, session parameters or data. The data may be audio, video or text. Immediately following the payload is a checksum field 318.
[0047]
7A to 7C show the packets 110, 150A, and 170A, respectively, sent between the server and the peripheral device as described above with reference to FIGS.
[0048]
FIG. 7A shows a packet 110 sent first from the server to all peripheral devices having a group identifier corresponding to the group ID in the packet destination address field (see FIG. 1). This packet includes a group identifier which is the same identifier (see number 242 in FIG. 5) as each of the multimode chips 140A to 140D as its destination address field 304. The portion of the source address field 306 of the packet contains the network address of the server 102. The payload field 316A includes a temporary code 252 (see FIG. 5). This code enables a receiving multimode chip with the ability to obtain both its peripheral device identifier and chip identifier. In addition, this code allows the chip to generate a random number and send a response packet to the server. Furthermore, this code allows the chip to receive a return packet and process it. Thereafter, this code is erased or rewritten by a normal cache operation.
[0049]
FIG. 7B shows a packet 150A sent from any peripheral device in response to the initial packet 110 of the server. Using the temporary code, the multimode chip places a random number 420, a chip model identifier 142A, and a camera identifier 130 (see FIG. 5) in the payload field 316B of the packet. A destination address field 304 is an address of the server 102. The multimode chip gets its address from the source address field 306 (see FIG. 7A) of the initial incoming packet 110 from the network 100.
[0050]
FIG. 7C shows a second packet 170A sent by the server 102 to the peripheral device (see FIG. 3). This packet has a group identifier as a destination address. This packet is received and processed by all multimode chips. The source address of this packet is the address of the server 102. In the payload field 316C, the server packages a random number 420 that was originally generated by the multimode chip and received by the server in packet 150A. This number is unique to each chip for the reasons described above in FIG. 5 and is used by the chip to identify one packet containing the same random number among packets 170A-D. In one embodiment of the present invention, the chip model ID 142A and the camera ID may also be included in the payload from the server to the chip. The next portion of the payload field 316C contains a unique network address 440 assigned by the server for the particular peripheral that generated the random number. Peripheral device addresses are global and are centrally managed by the server to ensure the specificity of each address. This unique network address is used by peripheral devices and multimode chips in subsequent network communications. Thus, in all subsequent communications over the network, packets sent to the peripheral device are not sent on a group basis, and the destination address field 304 of the LAN packet contains a unique network address, so a targeted basis. Sent based on The next portion 442 of the payload field 316C includes two code segments 254 and 450. The first of these code segments is the operating system and / or application for this particular peripheral that is networked. The second of these code segments, “store” code 450, contains the code necessary to write OS 254 and its image to main memory 220 and volatile memory 226 (see FIG. 5).
[0051]
FIG. 8 shows the data structure of the storage device 104 (see FIGS. 1 to 4) of the server 102. The device operating system of program code 108 and temporary code file 106 is illustrated. More particularly, the temporary code database device operating system includes a plurality of records for each of the peripheral devices 120A-B, 122, 124, as well as for all multi-mode chips 140A-D. Similarly, a record of each model and version number may be included. Each record includes a format identifier field 500, a product ID field 502, an address field 504, a temporary code field 506 and an operating system code field 508. In the illustrated example of this record, the webcams 120A-B include a product ID 130A-B in the product ID field 502 and the operating of the camera 254 so that the CPU 200 can program the main memory 220 (see FIG. 5). Includes both system and storage code 450. The records of the multimode chips 140A-D include a temporary code 252 (see FIG. 5) in the temporary code field 506. In order for the server to download the code to each peripheral device, it assigns the device a unique network ID that is first sent to the device in the payload of the packet with the group address as the destination address. That address is used by peripheral devices and associated multimode chips in subsequent network communications. To deal with this, the server records the address it assigned to the device in the network namespace and file 106. The entry “1234” in the address field 440 of the record of the peripheral device 120A is shown in the destination address field 440 of that record. They become individual records and individual network addresses of the peripheral device 120B.
[0052]
FIG. 9 illustrates a process 102A associated with the operation of the server 102 as described above in FIGS. The server process 600 begins at process 602 where a temporary code 252 (see FIGS. 5 and 7) is obtained from the file 106 of the storage device 104 (see FIGS. 1-4). Control is then passed to process 604. In process 604, the packet 110 is assembled using the destination address corresponding to the peripheral device group ID (see FIG. 7A, FIG. 1). Control is then passed to decision process 606. In decision process 606, the server responds to any one of the packets 159A-D of one or more multimode chips 140A-B (see FIG. 2). Control is then passed to process 608. In process 608, the server extracts the random number generated by the multi-mode chip from the payload field 316B (see FIG. 7B) and the chip and device ID represented by 142A and 130, respectively.
[0053]
In process 610, the server goes to the lookup table of file 106 to find the corresponding record of chip ID and peripheral device ID obtained in the incoming packet in process 608 described above. Using these IDs, a record with the corresponding chip and peripheral device ID is located in the lookup table of file 106. For example, a temporary code such as 252 (see FIG. 8) is obtained from the record having the corresponding chip ID. From the record with the corresponding peripheral device ID, for example, 120A / B, OS and / or application code and storage code are obtained at 254, 450, for example. The storage code is used to load the OS and / or application code for the peripheral device into the main memory. Control is then passed to process 612.
[0054]
In process 612, the server generates a unique network address for the peripheral device and includes that address in the payload portion of packet 170. That address is used by peripheral devices and associated multimode chips in subsequent network communications. To address this, the server records the unique network address that it assigned to the device in the network namespace and file 106. For example, the unique network address “1234” is shown in the network address field 440 that is part of the record of the peripheral device 120A.
[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 process 614, a payload similar to that described in FIG. 7C and described above is assembled by the server. The payload includes a generic group ID, which means that it is received by all peripheral devices, and a random number 420 received by the server from the corresponding peripheral device is included in the payload. The payload also contains the OS and storage code that make up the device. The payload also contains a random number originally generated by the device. This random number is used by the peripheral device to distinguish the packet from others that contain the same group address.
[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 bios subroutine 700 begins with a process 702 that occurs after power on. In process 702, kernel BIOS 144A begins execution (see FIG. 5). The local bus and associated elements, ie local memory 202, cache 204, DMA controller 206 and memory controller 208 are enabled (see FIG. 5). Control is then passed to process 704. In process 704, the BIOS attempts to determine the mode of the multimode chip. In one embodiment of the invention, the BIOS monitors a specific address or pin to determine its state. In one embodiment of the invention, the pins are connected to an optional switch 212 (see FIG. 5) that can be used to manually place the multi-mode chip 140A into either the normal runtime mode or the initialization mode. In another embodiment of the present invention, the address is an address in local memory that includes one bit sequence for initialization mode and another for runtime mode. For example, if a unique network ID 244 (see FIG. 5) does not exist in local memory, the BIOS is in initialization mode. Control is then passed to decision process 706.
[0059]
In a decision process 706, a determination is made as to which mode the chip is in. There are many ways that this determination can be achieved. Optional switch 212 can be manually set. Alternatively, a certain address in memory can be read by CPU 200 to determine its value. In one alternative embodiment of the present invention, each multimode chip and peripheral device initially operates in a start mode. The non-volatile programmable means (eg, PROM, FPGA, fuse, etc.) of the chip provides a switching signal to the switch when the optional switch 212 (see FIG. 5) is in its initial state (eg, the fuse is not blown). After the chip is initialized and the OS code is loaded into the main memory (see FIG. 5), the programmable device that controls the switching signal is changed so that the CPU boots from the main memory at the next time.
[0060]
For example, if a determination is made that the multi-mode chip is in runtime mode, control is passed to process 708. In process 708, the cache 204 is enabled to function as a cache with, for example, any number of cache policies, including, for example, “write-through” or “copy-back”. The Control is then passed to process 710 where the operating system 256 stored in the main memory 220 of the peripheral device (see FIG. 5) is loaded from the main memory into the RAM 226 to cause the peripheral device operation to start as a webcam. The In this mode, control is then passed to process 712 where the BIOS completes its operation. In another embodiment of the present invention, the OS is executed directly from main memory without being loaded into RAM.
[0061]
In one embodiment of the present invention, the CPU 200 acts as a processor for a packet assembler and deassembler (PAD) as well as a network interface including a medium access control (MAC) function. In another embodiment of the present invention, CPU 200 serves as a processor for a peripheral device, such as webcam 120A. At this time, the CPU 200 implements various image processing algorithms. In another embodiment of the present invention, CPU 200 serves as both a network interface processor including MAC and PAD functions and a processor for peripheral devices.
[0062]
Unlike the previous case, if decision process 706 reaches a decision that the chip is in initialization mode, control is passed to process 720. In process 720, cache controller 248 (see FIG. 5) is disabled, so that the cache functions as normal volatile memory. Control is then passed to process 722. In process 722, CPU 200 performs the simple network interface functions described in the following processes 724-742, either on its own or in conjunction with a dedicated MAC chip and PAD chip. Control is then passed to process 724. In process 724, the CPU 200 intercepts packets from the LAN 100. Control is then passed to decision process 726. In process 726, CPU 200 examines destination address field 304 (see FIG. 7A) to determine the destination address. If the destination address is a group ID corresponding to the group ID 242 stored in the local memory 202 (see FIG. 5), control is then passed to the decision process 728. If the destination address does not correspond to the group ID for this multimode chip, control returns to process 724 for retrieval of the next packet.
[0063]
When control is passed to the decision process 728, the packet received with the group ID in the destination address field 304 is in the first packet format, such as packet 110, sent by the server or as in 170, for example. A determination is made whether the packet is of a second packet type. In one embodiment of the invention, this determination is based on the number of sequences, for example 0 or 1, placed by the server in packets 110, 170 (see FIGS. 1 and 3). There are a number of different ways in which server packets with temporary codes can be distinguished from packets containing random numbers, network addresses and OS and storage codes. First, when the IP protocol is realized, the number of sequences is included in the transmission layer included in the transmission layer header (see FIG. 6) of the LAN packet. Alternatively, the sequence number can be placed in the payload by the server. Alternatively, the CPU 200 can examine the payload to see if there is something similar to the temporary code unlike the payload random number, network address and OS. If a determination is made that the received packet is not in the first packet format, it is a packet defined in some other peripheral device further in the initialization process. In this case, control is returned to the next packet fetch process 724. If a positive determination is reached as before, ie if the packet with the group ID is the first packet 110 rather than the second packet 170 sent by the server, control is passed to process 738.
[0064]
In process 738, the source address of the incoming packet, i.e., the unique network address of server 102, is stored at a particular location in the cache, and control is then passed to process 740. In process 740, temporary code 408 (see FIG. 7A) is extracted from the payload and stored in a particular portion of the cache. Control is then passed to process 742 where a jump from local memory kernel BIOS to temporary code is realized. Control is then passed to process 744 where the kernel BIOS completes its function.
[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 initial packet 110. Temporary mode 750 begins with a process 752 that begins with the portion of the cache where the temporary code is stored. Control is then passed to process 754. In process 754, the CPU 200 obtains the processor ID 142A and the peripheral device ID 130 from the function code segment of the temporary code. These device IDs can be determined in a number of ways. In the embodiment described above, device ID 142A is organized as part of the CPU, ie as its read-only register. Alternatively, the ID may be somewhere on the chip including a local memory such as an electrically programmable and electrically erasable read only memory (EEPROM) 202. Alternatively, the chip ID can be formed on an external series of DIP switches or fusible links. In one embodiment of the invention, this ID is part of the multimode chip at the time of manufacture. In another embodiment of the present invention, this ID is designed during installation. The same form can be given to the device ID 130. It can also be a dedicated memory, such as an EEPROM, a DIP switch or a fusible link. In another embodiment of the present invention, the device ID is not hard-coded, but is found by a process that is initialized with temporary code and executed by the CPU 200. The CPU may, for example, determine the type of response that is derived by continuing reading and writing to a particular location in the memory map or I / O space. Based on the response, the CPU can determine what type of peripheral device it is connected to and the characteristics of the multimode chip.
[0066]
In process 756, CPU 200 generates a random number that may be a function of time since bootup. As noted above, this random number does not match the random number generated by any other peripheral device that may be responding to the same packet 110 from the server 102 (see FIG. 1). It must be of a sufficient number of bits to Control is then passed to process 758. In process 758, the CPU 200 reads the group ID in the nonvolatile local memory 202. In another embodiment of the present invention, the group ID may be in a totally independent media access controller (MAC) connected to the CPU. Control is then passed to process 760. In process 760, the CPU 200 reads the portion of the cache memory that is executed by the kernel BIOS and includes the source address described above in FIG. The source address corresponds to the unique network address of the server 102 obtained from the initial packet 110 by the kernel BIOS. In process 762, simple network interface functions including media access control (MAC) and packet assembly and deassembly (PAD) are performed by the CPU. Control is then passed on to the first part of the function as performed in the next process 764.
[0067]
In process 764, the payload is assembled including the random number generated in process 756. A group ID 242 (see FIG. 5) and a source address field 306 (see FIG. 7A) are placed in the source and destination fields of the payload, respectively. The group ID 242 may be built into the chip at the time of manufacture. The destination address is obtained from the source address field 110 of the incoming packet 110. This packet is sent to server 102 in process 766.
[0068]
Control is then passed to process 768 for processing incoming packets from network 100. Each of these packets is analyzed in a continuous decision process 770-774. In process 770, a determination is made as to whether the packet includes a destination address corresponding to the group ID of the peripheral device. If so, control is passed to process 772. In process 772, the packet is of the first or second format, ie it is the first packet format (see FIGS. 1 and 7A) containing only a temporary code or the second packet format 170 (FIG. 3, A determination is made as to whether (see FIG. 7C). The second packet format includes a random number, OS and / or application and storage code as described above. If it is a second type packet and contains a random number, control is passed to decision process 774.
[0069]
In a decision process 774, a determination is made whether the random number in the packet payload matches the random number generated by the CPU 200. If the random number of the packet matches the random number generated by the CPU, control is passed to process 776. In process 776, the payload of incoming packet 170A is obtained and the unique network address 440, storage code 450 and OS code 454 are decomposed from the payload. The storage code is stored in a specific location in the cache, the operating system is stored elsewhere in the cache, and the network address field 440 is stored in the local memory 202 as a network ID 244. In another embodiment of the present invention, the network ID may be sent to a separate network interface device. Control is then passed to process 778. In process 778, CPU 200 jumps to the portion of the cache memory that contains the stored code and begins executing that code. Control is then passed to process 780.
[0070]
In process 780, the stored code causes CPU 200 to transfer a continuous line of operating system code from cache memory 250 (see FIG. 5) to main memory 220 (see FIG. 5). Further, the unique network ID is also transferred to the nonvolatile memory, for example, the main memory 220. In an alternative embodiment of the present invention, the unique network address can be stored in any non-volatile memory of either the chip or peripheral device or network interface. Once the entire operating system has been transferred, control is passed to process 782.
[0071]
In process 782, the OS image is loaded from the main memory into the RAM 226. The process then enables the cache in process 784, for example by allowing the CPU to write to a specific pin that has a connection to that cache controller that converts to runtime mode by enabling the cache controller 248. Is done. Control is then passed to process 786 where the temporary code is terminated and normal operation of the multimode chip and peripheral device begins.
[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のデータパケットを受ける上記動作は、該動作に先立って、
上記サーバから上記ネットワーク接続装置に初期データパケットを送信する動作と、
上記ネットワーク接続装置のそれぞれで上記初期データパケットを受け入れる動作と、
上記初期データパケットを受け入れる上記動作に応答して、上記ネットワーク接続装置のうちの未識別のネットワーク接続装置から上記第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:
請求項2記載の方法において、初期データパケットを送信する上記動作で上記サーバから送信される上記初期データパケットは上記ネットワーク接続装置のうちの上記未識別のネットワーク接続装置が上記不規則識別子を発生することができるようにする一時プログラムコードを更に含むようにされたことを特徴とする方法。  3. The method according to claim 2, wherein the initial data packet transmitted from the server in the operation of transmitting an initial data packet is generated by the unidentified network connection device among the network connection devices. A method characterized in that it further comprises temporary program code that allows the 請求項2記載の方法において、初期データパケットを送信する上記動作で上記サーバから送信される上記初期データパケットは上記ネットワーク接続装置のうちの上記未識別のネットワーク接続装置が上記初期データパケットを受け入れる上記動作で上記第2のデータパケットを検出することができるようにする一時プログラムコードを更に含むようにされたことを特徴とする方法。  3. The method according to claim 2, wherein the initial data packet transmitted from the server in the operation of transmitting an initial data packet is received by the unidentified network connection device among the network connection devices. A method, further comprising temporary program code that enables the second data packet to be detected in operation. 請求項1記載の方法において、初期データパケットを送信する上記動作で上記サーバから送信される上記初期データパケットは上記ネットワーク接続装置のうちの上記未識別のネットワーク接続装置が、上記割り当てる動作において上記特異なネットワークアドレスを割り当てることができるようにする一時プログラムコードを更に含むようにされたことを特徴とする方法。  The method according to claim 1, wherein the initial data packet transmitted from the server in the operation of transmitting an initial data packet is determined by the unidentified network connection device among the network connection devices in the operation to be assigned. A method characterized in that it further comprises temporary program code that allows a unique network address to be assigned.
JP17149799A 1998-05-13 1999-05-13 Method for remotely constructing networked devices Expired - Lifetime JP4291919B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5968652B2 (en) * 2012-03-15 2016-08-10 株式会社イシダ Electronic display system

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