(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムの必要性をなくすコンピュータシステムであって、該コンピュータシステムは、
中央処理装置（ＣＰＵ）と、
メインメモリと、
デバイスと、
さらなるユニットと、
複数のトレースリンクと
を備え、
該さらなるユニットは、
第１のマイクロコントローラと、
第１の組の命令を含む第１のメモリであって、該第１の組の命令は、該第１のマイクロコントローラによって実行されると、ＣＰＵ操作を管理することを該第１のマイクロコントローラに行わせる、第１のメモリと、
第２のマイクロコントローラと、
第２の組の命令を含む第２のメモリであって、該第２の組の命令は、該第２のマイクロコントローラによって実行されると、該デバイスを管理することを該第２のマイクロコントローラに行わせ、該デバイスを識別し、該デバイスによって用いられる接続手段を確立することを該第２のマイクロコントローラに行わせる、第２のメモリと
を含み、
該複数のトレースリンクは、該さらなるユニットと該ＣＰＵと該デバイスと該メインメモリとの間で通信を行うために、該さらなるユニットを該ＣＰＵと該デバイスと該メインメモリとに接続する、コンピュータシステム。
【請求項２】
前記さらなるユニットは、
第３のマイクロコントローラと、
第３の組の命令を含む第３のメモリであって、該第３の組の命令は、該第３のマイクロコントローラによって実行されると、メモリ操作を管理することを該第３のマイクロコントローラに行わせる、第３のメモリと
をさらに含む、請求項１に記載のコンピュータシステム。
【請求項３】
前記さらなるユニットは、
第４のマイクロコントローラと、
第４の組の命令を含む第４のメモリであって、該第４の組の命令は、該第４のマイクロコントローラによって実行されると、データ操作を管理することを該第４のマイクロコントローラに行わせる、第４のメモリと
をさらに含む、請求項２に記載のコンピュータシステム。
【請求項４】
前記さらなるユニットにおける前記複数のマイクロコントローラが、互いに通信するように一緒に接続されている、請求項３に記載のコンピュータシステム。
【請求項５】
前記さらなるユニットは、
前記複数のマイクロコントローラを接続するクロスバースイッチを含む、請求項４に記載のコンピュータシステム。
【請求項６】
前記デバイスは、
第５のマイクロコントローラと、
第５の組の命令を含む第５のメモリであって、該第５の組の命令は、該第５のマイクロコントローラによって実行されると、該デバイス操作を制御することを該第５のマイクロコントローラに行わせる、第５のメモリと
を含み、
該第５のマイクロコントローラは、少なくとも前記第２のマイクロコントローラと通信する、請求項１に記載のコンピュータシステム。
【請求項７】
前記第５のメモリにおける前記第５の組の命令は、前記第５のマイクロコントローラによって実行されると、前記デバイスの利用可能性をテストすることを該第５のマイクロコントローラに行わせ、該デバイスが利用可能である場合には、該デバイスが利用可能であることを示す信号を少なくとも前記第２のマイクロコントローラに送信することを該第５のマイクロコントローラに行わせる、請求項６に記載のコンピュータシステム。
【請求項８】
前記第５のメモリにおける前記第５の組の命令は、前記第５のマイクロコントローラによって実行されると、デバイスＩＤおよび必要なリソースデータの送信を含む前記デバイスが利用可能であることを示す信号を少なくとも前記第２のマイクロコントローラに送信することを該第５のマイクロコントローラに行わせる、請求項７に記載のコンピュータシステム。
【請求項９】
前記第２のメモリにおける前記第２の組の命令は、前記第２のマイクロコントローラによって実行されると、前記デバイスが利用可能であることを示し、かつ、該利用可能なリソースを該デバイスに割り当てる前記信号を受信することを前記第２のマイクロコントローラに行わせる、請求項８に記載のコンピュータシステム。
【請求項１０】
コンピュータ操作を管理する装置であって、
第１のマイクロコントローラと、
中央処理装置（ＣＰＵ）と、
第１の組の命令を含む第１のメモリであって、該第１の組の命令は、該第１のマイクロコントローラによって実行されると、ＣＰＵ操作を管理することを該第１のマイクロコントローラに行わせる、第１のメモリと、
デバイスと、
第２のマイクロコントローラと、
第２の組の命令を含む第２のメモリであって、該第２の組の命令は、該第２のマイクロコントローラによって実行されると、該デバイスを管理することを該第２のマイクロコントローラに行わせ、該デバイスを識別し、該デバイスによって用いられる接続手段を確立することを該第２のマイクロコントローラに行わせる、第２のメモリと
を備える装置。
【請求項１１】
第３のマイクロコントローラと、
第３の組の命令を含む第３のメモリであって、該第３の組の命令は、該第３のマイクロコントローラによって実行されると、メモリ操作を管理することを該第３のマイクロコントローラに行わせる、第３のメモリと
をさらに備える、請求項１０に記載の装置。
【請求項１２】
第４のマイクロコントローラと、
第４の組の命令を含む第４のメモリであって、該第４の組の命令は、該第４のマイクロコントローラによって実行されると、データ操作を管理することを該第４のマイクロコントローラに行わせる、第４のメモリと
をさらに備える、請求項１１に記載の装置。
【請求項１３】
前記複数のマイクロコントローラが、互いに通信するように一緒に接続されている、請求項１２に記載の装置。
【請求項１４】
前記複数のマイクロコントローラを接続するクロスバースイッチをさらに備える、請求項１３に記載の装置。
【請求項１５】
前記メモリがリードオンリーメモリ（ＲＯＭ）である、請求項１２に記載の装置。
【請求項１６】
前記メモリが消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）である、請求項１２に記載の装置。
【請求項１７】
前記メモリがフラッシュメモリである、請求項１２に記載の装置。
【請求項１８】
前記マイクロコントローラがデジタル信号プロセッサ（ＤＳＰ）である、請求項１２に記載の装置。
【請求項１９】
前記装置が半導体チップに含まれる、請求項１３に記載の装置。
【請求項２０】
前記デバイスは、
第５のマイクロコントローラと、
第５の組の命令を含む第５のメモリであって、該第５の組の命令は、該第５のマイクロコントローラによって実行されると、該デバイス操作を制御することを該第５のマイクロコントローラに行わせる、第５のメモリと
を含み、
該第５のマイクロコントローラは、少なくとも前記第２のマイクロコントローラと通信する、請求項１０に記載の装置。
【請求項２１】
前記第５のメモリにおける前記第５の組の命令は、前記第５のマイクロコントローラによって実行されると、前記デバイスの利用可能性をテストすることを該第５のマイクロコントローラに行わせ、該デバイスが利用可能である場合には、該デバイスが利用可能であることを示す信号を少なくとも前記第２のマイクロコントローラに送信することを該第５のマイクロコントローラに行わせる、請求項２０に記載の装置。
【請求項２２】
前記第５のメモリにおける前記第５の組の命令は、前記第５のマイクロコントローラによって実行されると、デバイスＩＤおよび必要なリソースデータの送信を含む前記デバイスが利用可能であることを示す信号を少なくとも前記第２のマイクロコントローラに送信することを該第５のマイクロコントローラに行わせる、請求項２１に記載の装置。
【請求項２３】
前記第２のメモリにおける前記第２の組の命令は、前記第２のマイクロコントローラによって実行されると、前記デバイスが利用可能であることを示し、かつ、該利用可能なリソースを該デバイスに割り当てる前記信号を受信することを前記第２のマイクロコントローラに行わせる、請求項２２に記載の装置。
【請求項２４】
オペレーティングシステムの必要性をなくすコンピュータシステムにおいて用いられるデバイスであって、
デバイス回路と、
第１のマイクロコントローラと、
第１の組の命令を含む第１のメモリであって、該第１の組の命令は、該第１のマイクロコントローラによって実行されると、該デバイス回路を制御することを該第１のマイクロコントローラに行わせ、該第１の組の命令は、中央処理装置（ＣＰＵ）の操作を管理する第２のマイクロコントローラと通信することを該第１のマイクロコントローラにさらに行わせる、第１のメモリと、
第２の組の命令を含む第２のメモリであって、該第２の組の命令は、該第２のマイクロコントローラによって実行されると、該デバイスを管理することを該第２のマイクロコントローラに行わせ、該デバイスを識別し、該デバイスによって用いられる接続手段を確立することを該第２のマイクロコントローラに行わせる、第２のメモリと
を備えるデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、コンピュータアーキテクチャ、ハードウェアおよび方法に関し、特に、オペレーティングシステムの必要性を排除するコンピュータアーキテクチャ、ハードウェアおよび方法に関する。
【背景技術】
【０００２】
（発明の背景）
図１は、ハードウェアプラットフォーム層２００、ファームウェア層３００、オペレーティングシステム層４００およびアプリケーションプログラム層１０２を含む従来のコンピュータシステムアーキテクチャ１００を示す。ハードウェアプラットフォーム層２００は、コンピュータシステムの実際の操作を行うコンピュータシステムの物理層である。ファームウェア層３００は、特に、ハードウェアプラットフォーム層２００とオペレーティングシステム層４００との間のインターフェースを行う。オペレーションシステム層４００は、プロセッサリソース管理、メモリ割り当て管理、デバイスリソース管理、およびデータファイル管理等のコンピュータリソースの管理を行うソフトウェア層である。オペレーティングシステムは、また、アプリケーションプログラムが構築される基部である。アプリケーションプログラム層１０２は、所望の結果に応じてデータを操作および／または処理する命令セットを提供するコンピュータプログラムを含む。例としては、ワードプロセッサ、データベース、スプレッドシートおよびウェブブラウザプログラムがある。
【０００３】
図２は、システムバス２０８を介して一緒に接続された、中央処理装置（ＣＰＵ）２０２、リードオンリーメモリ（ＲＯＭ）２０４およびメインメモリ２０６を含むコンピュータシステムの従来のハードウェアプラットフォーム層（一般に「コンピュータ」として呼ばれる）２００を示す。示された構成は、一般的に用いられるバスアーキテクチャタイプのコンピュータシステムの例示であり、パーソナルコンピュータインタフェース（ＰＣＩ）、工業規格アーキテクチャ（ＩＳＡ）、拡張ＩＳＡ（ＥＳＩＡ）および他のバス規格を含む。コンピュータ２００は、バスアーキテクチャに限定される必要はなく、異なるアーキテクチャを用いてもよい。コンピュータ２００は、特に、メモリコントローラ２１２、ダイレクトメモリアクセス（ＤＭＡ）コントローラ２１４、インタラプトコントローラ２１６、入力／出力（Ｉ／Ｏ）コントローラ２１８、統合デバイスエレクトロニクス／フロッピー（Ｒ）ドライブコントローラ（ＩＤＥ／ＦＤＣ）コントローラ２２２およびビデオコントローラ２２４のような種々のコントローラをさらに含む。種々のデバイスがコントローラに接続され、その結果、コンピュータ２００は、ユーザまたは外部世界と相互作用し得る。例えば、ビデオモニタ２２６は様々な情報を表示するためにビデオコントローラ２２４に接続され、キーボード２２８およびポインティングデバイス２３２はコンピュータ２００にデータおよびコマンドを入力するためにシリアルポートを介してＩ／Ｏコントローラ２１８に接続され、プリンタ２３４もまたユーザに要求されたデータのハードコピーを作成するためにパラレルポートを介してＩ／Ｏコントローラ２１８に接続されている。ＩＤＥ／ＦＤＣコントローラ２２２は、ディスケットドライブ２３６、ハードディスクドライブ２３８、コンパクトディスク（ＣＤ）ＲＯＭドライブ２４２、および、デジタルビデオディスク（ＤＶＤ）ＲＯＭドライブ２４４のような様々なディスクドライブを制御し、モデム２４６はインターネットのような外界とのコミュニケーションを提供する。通常、ハードウェアは一つ以上の拡張スロット２４８を持ち、様々な拡張カードを受取る。拡張カードは、ハードウェアプラットフォームの特性を強化および増加させ、従って、モデムカード２４６を拡張スロット２４８に挿入することができ、コミュニケーション特性を提供する。
【０００４】
ベーシックインプットアウトプットオペレーティングシステム（ＢＩＯＳ）３００のようなファームウェア層はＲＯＭ２０４に位置づけることができ、かつ、それが支えるコンピュータのハードウェアプラットフォームに対して一般的に特定である。ＢＩＯＳのルーティンは様々なセットアップ手順およびパワーオンセルフテスト（ＰＯＳＴ）を含む。様々なセットアップ手順は様々なコントローラの設定を含み、その設定では、ＢＩＯＳはコントローラとオペレーティングシステムとの間で一様なインターフェースとして振るまい、そのため、オペレーティングシステムがハードウェアプラットフォーム２００にアクセスすることを可能にする。ＢＩＯＳは、キーボード、マウス、ビデオモニタ、ディスクドライブ、プリンタその他のようなデバイスや様々なコントローラを利用するデータのやりとりを支える。他のセットアップ手順は、オペレーティングシステムのための予備のメモリのセットアップ、障害処理、クロック、および、様々な回路、例えば、メインメモリを含むＤＲＡＭをリフレッシュするダイナミックランダムアクセスメモリ（ＤＲＡＭ）リフレッシュ回路のためのタイマーを含む。ＰＯＳＴは、メモリおよびコントローラ上で様々なセルフテストを行い、セルフテストの最中に障害が見つかれば、オーディオの形式でエラーメッセージがビーっと鳴る、および／もしくは、エラーメッセージが表示される。
【０００５】
図３は、本明細書で参照として援用される、Ｃｏｍｐａｑ  Ｃｏｍｐｕｔｅｒ  Ｃｏｒｐｏｒａｔｉｏｎ、Ｐｈｏｅｎｉｘ  Ｔｅｃｈｎｏｌｏｇｉｅｓ  Ｌｔｄ．、および、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎの１９９４年５月５日のＶｅｒｓｉｏｎ１．０ａのプラグアンドプレイＢＩＯＳ規格に準拠し得るＢＩＯＳを利用した例示的な電源投入順序のフローチャートである。このＢＩＯＳは、本明細書で参照として援用される。ＢＩＯＳは、Ｉｎｔｅｌ  ＣｏｒｐｏｒａｔｉｏｎおよびＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの１９９４年５月５日のＶｅｒｓｉｏｎ１．０ａのプラグアンドプレイＩＳＡ規格にも準拠し得る。このＢＩＯＳは、本明細書で参照として援用される。プラグアンドプレイ（ＰｎＰ）規格は、ユーザによる手動操作なしに、コンピュータに取り付けるデバイスの設定をコンピュータが操作することを可能にする。ユーザはサウンドカードのような新しいデバイスを付けることができ、コンピュータは自動的にデバイスを検知し、カードを操作するためのデバイスドライバを提供する（もしコンピュータが内部にすでにドライバを所有していなければ、デバイスドライバを含むディスクもしくはＣＤを挿入することをユーザに要求するステップを含み得る）。デバイスに準拠するＰｎＰは、通常デバイス自身を一意に識別し、デバイスが提供するサービスおよびデバイスが必要とするリソースを指示し、デバイスを支えるデバイスドライバを識別させ、さらに、オペレーティングシステムにデバイスを制御させることができるという特徴を有する。こうした特徴は、オペレーティングシステムにとっては非常に重要であり、オペレーティングシステムに、コンピュータに接続された全てのデバイスに対して機能する設定を確立させ、かつ、メモリに正しいデバイスドライバを読み込ませることを可能にする。
【０００６】
デバイスドライバは、デバイスの低いレベルもしくは特定のコンポーネントを制御し、従って、オペレーティングシステムがデバイスを制御することを可能するためのロジックを含むソフトウェアモジュールである。例えば、デバイスドライバは、コンピュータにつながれた磁気ディスクドライブを制御するために利用され得る。この例では、デバイスドライバが、さまざまなハードウェアの特定のレジストリまたはラッチまたは信号または磁気ディスクドライブデバイスの他のコンポーネントを制御する。デバイスドライバは、具体的には、通常特定のデバイスと通信するように設定されている。
【０００７】
ここで図３を参照すると、あるひとつの電源投入順序に従うと、ステージ３０２で、コンピュータに電源が投入される、もしくは、リセット信号が受信される。このステージでは、コンピュータは、リセット論理状態にアクセス可能なデバイスを含むそのコンピュータ内のコンポーネントに焦点を当てる。リセット論理状態では、コンピュータは、コンピュータの実際の設定を「知ら」ず、拡張カードによるデバイスを含む、どんなデバイスがコンピュータに取り付けられているのかを知らない。あらかじめ定義された電源供給が安定するための時間が経過した後、ステージ３０４で、ＢＩＯＳの位置するＲＯＭを指す開始アドレスから、ＣＰＵが起動する。ＢＩＯＳのＰＯＳＴルーティンが開始し、ＰＯＳＴは、あるデバイスおよびデバイスの操作性を決定するシステムのコンポーネントと共に、メインメモリを構成するダイナミックランダムアクセスメモリ（ＤＲＡＭＳ）をテストする。テストプロセスの間は、ＢＩＯＳのコピーがＲＯＭから検索され、メインメモリにコピーされる。ＢＩＯＳは、コンピュータシステムを準備する命令ルーティンの集合であり、その結果、ディスクドライブでもあり得る初期ロードディバイス（ＩＰＬ）からオペレーティングシステムを受取る。ステージ３０６では、ＢＩＯＳは、どのデバイスが、オペレーティングシステムを検索し立ち上げるために使用され得る（たとえばＩＰＬ）のかを決定するために、全てのデバイスを止めようとする。ＩＰＬは止められ得ないので、このステージで検知される。ステージ３０８では、ＢＩＯＳは、デバイスを作動させ、非ＩＰＬを、オペレーティングシステムによって開始されるための待ち状態に置く。ステージ３１０では、ＢＩＯＳは、オペレーティングシステムのカーネル（通常はハードディスクドライブに含まれている）を起動させるブートストラップルーティンを実行し、メインメモリへ読み込む。このステージで、ファームウェア（たとえばＢＩＯＳ）によって制御されるハードウェアは、ソフトウェア（カーネル）に渡される。カーネル４０２は、プロセス実行、メモリ管理、ダイナミックリンクライブラリ管理、スケジューリング、ファイルシステム管理、Ｉ／Ｏサービス、および、ユーザインターフェイス表示他のようなコンピュータのリソース管理である、オペレーティングシステムの核機能を提供する。
【０００８】
ステージ３１２では、カーネルは個々のデバイスを分離するアイソレーションプロシージャを開始させる。アイソレーションプロトコルのキーは、個々のデバイスがシリアルＩＤとして知られるユニークな７２ビットのナンバーを含むことである。デバイスは分離されるとカードシリアルナンバー（ＣＳＮ）が割り当てられる。カードシリアルナンバーは、割り当てられるデバイスに対してユニークであり、「ハンドル」としてサービスを行う。カードシリアルナンバーによって、オペレーティングシステムはデバイスを識別し、デバイスはそれ自体を識別する。それは例えば、割り込みが発生した時である。ステージ３１４では、カーネルはデバイスのリソース要求に対して、個々の分離されたデバイスを読み取る。デバイスに要求されたリソースはＤＭＡ、割り込み要求（ＩＲＱ）、Ｉ／Ｏ、および、メモリアドレスを含む。ステージ３１６では、カーネルは、個々のデバイスのリソース要求の統合的なリストを作成する。ステージ３１８では、カーネルは利用できるシステムリソースを把握しているので、リソース配分が衝突しないことを保証しながら、カーネルは利用可能なリソースを必要とされるようにデバイスに割り当てる。ステージ３２０では、カーネルがシステムリソースをデバイスへ割り当てているときに、アロケーションマップはメモリ内に作成され保存される。アロケーションマップの作成に付け加えて、ステージ３２２では、デバイスによって提供される識別ナンバーを利用しながら、カーネルは通常ハードディスクドライブに保存されている関連するデバイスドライバを識別する。デバイスドライバが入手されなければ、カーネルはユーザにデバイスドライバを提供するように促す。検知されたデバイスに関連する全てのデバイスドライバは、デバイスを制御するためにカーネルによって使用されるメインメモリの中に読み込まれる。さらなる電源投入順序の詳細は、プラグアンドプレイＩＳＡ規格で調べられ得る。アイソレーション、様々なデバイスの問い合わせ、および、デバイスドライバのメインメモリへの読み出しは、時間を消費し、また、利用可能なメインメモリを減少させる。
【０００９】
図４は、カーネル４０２、デバイスドライバ層４０４、アプリケーションプログラムインターフェイス（ＡＰＩ）４０６、ライブラリ層４０８を含むオペレーティングシステム４００の概略図である。図３に関連して述べた通り、カーネル４０２はオペレーティング
システムの核機能を提供する。アプリケーションプログラムは直接的、もしくは、間接的に、オペレーティングシステムのカーネル、もしくは、その他の部分における前述、ならびに、その他の性能に依存している。デバイスドライバ層４０４は、デバイスを制御し通信するのに必要なデバイスドライバを含む。オペレーティングシステムは、ハードウェアとアプリケーションプログラム層との間のインターフェースも提供する。アプリケーションプログラムの開発を促進するために、オペレーティングシステムは、アプリケーションプログラムと相互に通信するためのアプリケーションプログラムインターフェイス（ＡＰＩ）４０６も含む。ＡＰＩは、オペレーティングシステムによって実行される下位レベルのサービスにアクセスするためにアプリケーションプログラムが利用するルーティンの集合である。オペレーティングシステムは、モジュール管理、インタープロセスコミュニケーション（ＩＰＣ）およびスケジューリングを含むアプリケーションプログラムのための、多くのサービスを追行する。提供される他のサービスは、ライブラリ層４０８に含まれるダイナミックリンクライブラリ（ＤＬＬ）である。オペレーティングシステムは、ライブラリ層で利用されるＤＬＬのリンキング、読み込み、実行を支えることによって、モジュール管理を追行する。
【００１０】
オペレーティングシステムはまた、アプリケーションプログラムからの複数の命令をスレッドと呼ばれるかたまりへ組織化する。スレッドは、ＣＰＵによる実行のために「噛まれ」得る命令のパケットとして捉え得る。オペレーティングシステムは、多重のアプリケーションプログラムの操作を連続的な実行のためのスレッドに変え、マルチタスクとして知られるように、ＣＰＵにいくつかのアプリケーションプログラムを同時に支持することを可能にする。１つの例では、ＣＰＵをアイドリングさせないように様々なデバイスに作動を可能にすることで、マルチタスクはコンピュータ操作のスピードを増加させる。通常、ＣＰＵは、データが記憶デバイスに読み書きされ得るよりもずっと速く命令を実行する。従って、もしＣＰＵが記憶デバイスにデータが読み書きされるのを待たなくてはならなければ、アイドル状態になるであろう。遅いシステムのコンポーネントのためのタスクを実行させなければならないときはいつでも、スレッドの利用によって、オペレーティングシステムがＣＰＵを再配置することを許可される。例えば、データがディスクドライブから読み込まれなければならないときはいつでも、第一のアプリケーションプログラムからの命令の処理は一時停止され得る。そして、ＣＰＵは、データが読まれている間に別のアプリケーションプログラムからのスレッドを実行することができ、データが読み込まれてしまえば、第一のアプリケーションプログラムからの命令処理を再開する。
【００１１】
バスアーキテクチャを利用するコンピュータは、通常、ＣＰＵおよび様々なデバイスが通信する１つのバスを有する。そのため、オペレーティングシステムは、アプリケーションプログラムからのＣＰＵに対する命令の流れと、アプリケーションプログラム命令のＣＰＵの処理の一時停止とを制御する。その結果、データがＤＭＡコントローラを介してディスクドライブからメインメモリに運ばれるように、様々なデバイスによるＩ／Ｏ通信を可能にする。
【００１２】
上述のオペレーティングシステムを利用したコンピュータシステムは、ユーザに不便を感じさせ、貴重なメモリスペースを消費する好ましくない冗長な電源投入順序を有する。既知の方法では、より高速のＣＰＵを用いて電源投入順序をスピードアップさせる。しかし、より高速なＣＰＵは高価であり、コンピュータのコストを増大させる。オペレーティングシステムに依存したコンピュータシステムは、損なわれた実行されたアプリケーションプログラムが原因となって、もしくは、マルチタスク処理の間に多数の割り込みとプロシージャの呼び出しとを操作した結果生じるエラーが原因となって、「クラッシュ」しがちである。さらに、オペレーティングシステムは、コンピュータシステムを不制御にし得、および、貴重なデータファイルを破壊するウィルスの攻撃を受けやすい。必要とされるのは、これらおよびその他の欠点を解決するコンピュータシステムと方法である。
【発明の開示】
【課題を解決するための手段】
【００１３】
（発明の要旨）
本発明の実施形態は、オペレーティングシステムの必要性を排除するコンピュータアーキテクチャとハードウェアと方法を提供する。
【００１４】
１つの一般的な局面では、コンピュータシステムは、中央処理装置（ＣＰＵ）、メインメモリ、第一のマイクロコントローラと、該マイクロコントローラにＣＰＵ操作を管理させるように設定された第一の命令のセットを含む第一のメモリとを備えるさらなるユニット、および、該さらなるユニットと該ＣＰＵと該メインメモリとの間の通信を促進するために該ＣＰＵと該メインメモリとに該さらなるユニットを接続している複数のトレースリンクを備える。その他の特性は、少なくとも１つのデバイス、および、該デバイスを前記さらなるユニットに接続するトレースリンクを備え、該さらなるユニットは、第二のマイクロコントローラと第二のマイクロコントローラに該デバイスを管理させるように設定された第二の命令のセットを含む第二のメモリとをさらに備える。前記さらなるユニットは、第三のマイクロコントローラと第三のマイクロコントローラにメモリ操作を管理させるように構成された第三の命令のセットを含む第三のメモリとをさらに備える。前記さらなるユニットは、第四のコントローラと第四のコントローラにデータ操作を管理させるように構成された第四の命令のセットを含む第四のメモリとをさらに備える。前記さらなるユニットの複数のマイクロコントローラは、一緒に接続されて互いに通信する。前記さらなるユニットはクロスバースイッチを備え、複数のマイクロコントローラを接続する。前記デバイスは、第五のマイクロコントローラと、第五のマイクロコントローラにデバイス操作を制御させるように構成された第五の命令のセットを含む第五のメモリとを備え、第五のマイクロコントローラは少なくとも第二のマイクロコントローラと通信する。第五のメモリに含まれる第五の命令のセットは、さらに第五のマイクロコントローラに前記デバイスをテストさせるように構成され、もしデバイスが操作可能であれば、第五の命令のセットは、第五のマイクロコントローラが少なくとも第二のマイクロコントローラに、該デバイスが利用可能であることを知らせるための信号を送信するように構成される。第五のマイクロコントローラが少なくとも第二のマイクロコントローラに該デバイスの利用可能性を知らせるための信号を送信するようにさらに構成された、第五のメモリに含まれる第五の命令のセットは、送信デバイスのＩＤおよび必要なリソースのデータを含む。第二のメモリに含まれる第二の命令のセットは、さらに第二のマイクロコントローラが、前記デバイスの利用可能性を知らせ、かつ、前記デバイスに利用可能なリソースを割り当てる信号を受信するように構成される。
【００１５】
本発明のさらなる局面において、コンピュータ操作を管理するための装置は、第一のマイクロコントローラと、該マイクロコントローラに中央処理装置（ＣＰＵ）の操作を管理させるように構成された第一の命令のセットを含む第一のメモリとを備える。
【００１６】
その他の特性は、第二のマイクロコントローラと、第二のマイクロコントローラに該デバイス操作を管理させるように構成された第二の命令のセットを含む第二のメモリとを備える。第三のマイクロコントローラと第三のマイクロコントローラにメモリ操作を管理させるように構成された第三の命令のセットを含む第三のメモリとをさらに備える。第四のコントローラと、第四のコントローラにデータ操作を管理させるように構成された第四の命令のセットを含む第四のメモリとをさらに備える。前記複数のマイクロコントローラは、一緒に接続されて互いに通信する。複数のマイクロコントローラを接続するクロスバースイッチを備える。ここで、前記メモリはリードオンリーメモリ（ＲＯＭ）である。ここで、メモリは消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）である。ここで、メモリはフラッシュメモリである。ここで、マイクロコントローラはデジタル信号プロセッサ（ＤＳＰ）である。ここで、前記装置は半導体チップに含まれている。デバイスは、第五のマイクロコントローラと、第五のマイクロコントローラにデバイス操作を制御させるように設定された第五の命令のセットを含む第五のメモリとをさらに備え、第五のマイクロコントローラは少なくとも第二のマイクロコントローラと通信する。第五のメモリに含まれる第五の命令のセットは、さらに第五のマイクロコントローラに前記デバイスをテストさせるように設定され、もしデバイスが操作可能であれば、第五の命令のセットは、第五のマイクロコントローラが少なくとも第二のマイクロコントローラに、該デバイスの利用可能であることを知らせる信号を送信するように構成される。第五のマイクロコントローラが少なくとも第二のマイクロコントローラに該デバイスの利用可能性を知らせる信号を送信するようにさらに構成された、第五のメモリに含まれる第五の命令のセットは、送信するデバイスのＩＤおよび必要なリソースのデータを含む。第二のメモリに含まれる第二の命令のセットは、さらに第二のマイクロコントローラが前記デバイスの利用可能性を知らせ、かつ、前記デバイスに利用可能なリソースを割り当てる信号を受信するように設定される。
【００１７】
本発明のさらなる局面において、オペレーティングシステムの必要性を排除するコンピュータシステムにおいて利用するためのデバイスは、デバイス回路と、第一のマイクロコントローラと、該マイクロコントローラにデバイス回路を制御させるように構成された命令のセットを含むメモリとを備える。前記命令は、さらに前記マイクロコンピュータが中央処理装置（ＣＰＵ）の操作を管理する第二のマイクロコンピュータと通信することを促進するように設定される。
【００１８】
本発明をより理解するために、本発明で参照として援用される図に、参照が付け加えられる。
【発明を実施するための最良の形態】
【００１９】
（本発明の詳細な説明）
本発明は、オペレーティングシステムの必要性を排除するコンピュータシステムにおけるハードウェア／ファームウェア層に関連する。本発明のひとつの局面では、ハードウェア／ファームウェア層は、デバイスマネージャ、インフォメーションマネージャ、メモリマネージャ、および、プロセスマネージャを含み、それらのマネージャは１つ以上の半導体チップに含まれ得る。個々のマネージャは、ＲＯＭまたはフラッシュメモリに組込まれたファームウェアに関連したマイクロコントローラを含む。ＲＯＭまたはフラッシュメモリは、デバイス管理、インフォメーション管理、メモリ管理、および、プロセス管理の計画されたタスクをマイクロコントローラに提供させる、命令セットを含む。半導体チップまたはチップセットは、コンピュータマザーボードに組込まれたとき、コンピュータハードウェアがオペレーティングシステムなしで作動することを可能にする。本発明の別の局面では、コンピュータシステムに接続されたディスクドライブ、モデム、プリンタ、およびビデオモニタのようなデバイスは、「スマートデバイス」であり、ここで、個々のデバイスは、デバイスマイクロコントローラと、ＲＯＭもしくはフラッシュメモリに組込まれたデバイスドライバを有する。オペレーティングシステムのないコンピュータシステムで使用される半導体チップは、利用可能なデバイスを調べる、診断テストを提供する、または、デバイスと通信するためのデバイスドライバを入手する必要がない。その代わりとして、デバイスマイクロコントローラは、設定と自己診断テストと、および、デバイスの操作を自発的に実行する組込みディスクドライバを利用する。もしデバイスが利用可能であれば、デバイスマイクロコントローラは、マザーボード上のトレースリンクを介して、オペレーティングシステムチップのないコンピュータシステムで使用される半導体チップに、リソース要求を含むＩＤ信号を送信し、デバイスが利用可能であることを知らせる。
【００２０】
図５は、本発明の実施形態に沿ったオペレーティングシステムの必要性を排除する、ハードウェア／ファームウェア層５０４を含むコンピュータアーキテクチャ５００のハイレベル層の図である。このアーキテクチャはまた、ハードウェアプラットフォーム層５０２およびアプリケーションプログラム層５０６を含む。ハードウェアプラットフォーム層５０２は、図２に示される従来のハードウェアプラットフォーム層と同様である。しかし、図１３に関連して明らかになるように、様々なハードウェアコンポーネント、および、ディスクドライブ、モデム、プリンタ、ビデオモニタのようなデバイスが、ハードウェア／ファームウェア層５０４と相互通信することを許容するように、ハードウェアプラットフォーム層は改良される。アプリケーションプログラム層５０６は、図１に示される従来のアプリケーションプログラム層と同様であり、ワードプロセッサ、データベース、スプレッドシート、ブラウザなどのアプリケーションプログラムを含み得る。
【００２１】
ハードウェア／ファームウェア層５０４は、上述したように、オペレーティングシステムのカーネルによってこれまで実行されていたサービスを提供する。図６に図示されるひとつの実施形態では、ハードウェア／ファームウェア層５０４は、ハードウェアプラットフォームに挿入された集積半導体チップ、もしくは、チップセット６００の実施形態を採用している。オペレーティングシステムのないコンピュータシステムにおいて利用されるチップは、入力デバイス６５０、出力デバイス６６０、および、永久記憶デバイス６７０を備えるハードウェアプラットフォーム層において、ＣＰＵおよび様々なコンポーネントと相互通信する。この実施形態によれば、チップ６００は、４つのマイクロコントローラと、好ましくはデジタル信号プロセッサ（ＤＳＰ）６１２、６２２、６３２、６４２を含む。個々のＤＳＰは、４つのルーティン、すなわち、デバイス管理ルーティン６１４、プロセス管理ルーティン６２４、メモリ管理ルーティン６３４、インフォメーション管理ルーティン６４４の１つを含む組込みファームウェアに連結されている。これらのルーティンは、オペレーティングシステム設計の当業者の知識の中にある。ファームウェアは、ＲＯＭ、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、フラッシュメモリなどに組込まれ得る。マイクロコントローラおよび連結されたファームウェアは、図６に示されるデバイスマネージャ６１０、インフォメーションマネージャ６４０、メモリマネージャ６３０、および、プロセスマネージャ６２０の１つを形成する。デバイスマネージャ６１０は、入力／出力（Ｉ／Ｏ）デバイス６５０、６６０と永久記憶デバイス６７０とに、直接接続され、アクセスする。インフォメーションマネージャ６４０およびデバイスマネージャ６１０は、永久記憶デバイス６７０に、直接接続され、アクセスする。メモリマネージャ６３０は、メインメモリ２０６に直接接続され、アクセスする。プロセスマネージャ６２０は、ＣＰＵ２０２に直接接続され、アクセスする。マネージャ６１０、６２０、６３０、６４０は一緒に接続されて、その結果、個々のマネージャは、１つもしくは複数のマネージャと通信できる。図７に示されるクロスバースイッチ７５０、または、図８に示されるメッシュ接続などの様々な接続方法が用いられ得る。個々のマネージャは独立に動作し、操作のために適用され得るこれらのコンポーネントとデバイスとのみ接するので、オペレーティングシステムのないコンピュータシステムにおけるチップを利用したこのアーキテクチャは、本質的に強固である。さらに、コンポーネントとデバイスとの相互通信は、クラッシュしがちなオペレーティングシステムのようなソフトウェアレベルに介入されることなく、ハードウェアレベルで実行される。ここで、マネージャのさらなる記述が与えられる。
【００２２】
図６および図９に関連して、デバイスマネージャ６１０は、コンピュータシステムに接続された全てのデバイス６５０、６６０、６７０を識別し、かつ、図１４に関連して明らかになるように、それらの接続手段と制御部の機能性とデバイスの容量および性能とを確立する。デバイス６５０、６６０、６７０をタスクに配分し、デバイスによる操作を開始させ、タスク完了についてデバイスに再要求することによって、デバイス管理ルーティン６１４は、デバイスマネージャ６１０がＩ／Ｏスケジューラとして動作するのを許可する命令を提供する。ユーザとコンピュータリソースとの相互通信は、マウスまたはキーボードのような入力デバイス６５０からデバイスマネージャ６１０に投入された要求を介して、デバイスマネージャ６１０を介してユーザのスクリーンに提供されるグラフィックユーザインターフェース（ＧＵＩ）によって支えられる。
【００２３】
図６と図１０に関連して、プロセスマネージャ６２０は、デバイスマネージャ６１０を介して投入されたプロセス要求に応じて作動する。プロセス管理ルーティン６２４によって提供される命令を利用して、プロセスマネージャ６２０は、ＣＰＵ２０２およびメインメモリ２０６内部のレジストリの割り当てを含む必要性に応じて、直接ＣＰＵ２０２リソースを個々の要求に配分する。プロセスマネージャ６２０はまた、デバイスマネージャ６１０に、永久記憶装置６７０からメインメモリ２０６へ、該当データの移動を処理することを要求する。プロセスマネージャ６２０はまた、ＣＰＵ２０２の容量およびプロセスの状態を連続してトラックし、個々のプロセスが割り当てられたリソースを終了および超過するとき、新しい動作をＣＰＵ２０２に再要求する。
【００２４】
図６および図１１に関連して、メモリ管理ルーティン６３４は、プロセスマネージャ６２０によって制御されるジョブの即時のメモリの必要性に応じて、メモリマネージャ６３０がメモリ２０６のリソースをプロセスマネージャ６２０に割り当てるための命令を提供する。メモリマネージャ６３０はまた、デバイスマネージャ６１０を介して、メモリ２０６のリソースのための直接の要求に応答する。メモリマネージャ６３０は、絶え間なくユーザ、および、利用されているメモリの個々の要素の関連する量をトラックする。そして、ジョブ終了時に、再利用可能なメモリのリソースを再要求し、作成する。メモリマネージャ６３０は、論理的にメモリのリソースを二つの領域に区分する。ひとつは、用いられている常駐のアプリケーション（例えば、ＭｉｃｒｏｓｏｆｔＴＭＷｏｒｄＴＭ）のために確保され、もうひとつは、プロセス要求（例えば、ＥｘｃｅｌＴＭによって動作しているデータファイル、もしくは、Ｃ＋＋で開発されたプログラム）のために確保される。用いられるアプリケーションは、アプリケーションメモリスペースに連続的に読み込まれる。ファイルおよびデータは、操作されているときはプロセスメモリスペースを占有するのみであり、メモリマネージャ６３０は、メモリのリソースのための外部のキューを、重み付けし、スケジューリングし、維持する。
【００２５】
図６および図１２に関連して、インフォメーションマネジメントルーティン６４４は、システム全体に対する完全なインフォメーションリソースレコードおよび管理性能を提供することによって、インフォメーションマネージャ６４０に、ユーザが計画し、および、現在使用しているコンピュータシステムの機能について決定する手段を提供するための命令を提供する。その他のマネージャから、および、接続された永久記憶デバイス６７０からの直接の入力を用いて、メインメモリ２０６の中にファイル管理レコードファイルを保存する。このファイルは、全てのファイルの場所と用途とサイズと、全てのファイルの状態（すなわち、開いている／閉じている、ファイルのタイプ、セキュリティレベル）と、メモリ２０６、入力デバイス６５０、出力デバイス６６０、および、永久記憶デバイス６７０の全体的な容量ならびに用法のレベルとを含む。
【００２６】
コンピュータアーキテクチャのほかの局面は、グラフィックユーザインターフェース（ＧＵＩ）およびアプリケーションプログラムインターフェース（ＡＰＩ）を含む。ＧＵＩとＡＰＩは、ソフトウェアとして実行され、オペレーティングシステムのないコンピュータシステムで利用されるチップ６００によって呼び出されるまで、永久記憶デバイスに保存され得る。例えば、グラフィックユーザインターフェース（ＧＵＩ）は、電源投入順序の間、適切なマネージャによって取り出されるまで、永久記憶デバイスの中に含まれ得る。ＧＵＩの設計はよく知られた技術であり、ここでさらに議論する必要はない。ＭｉｃｒｏｓｏｆｔＴＭＯｆｆｉｃｅＳｕｉｔｅＴＭ、ＬｏｔｕｓＮｏｔｅｓＴＭ、ＣｏｒｅｌＤｒａｗＴＭ、ＳｙｍａｎｔｉｃＴＭＷｉｎｆａｘＴＭ、および、ＡＣＴＴＭなどの現在利用可能なアプリケーションソフトウェアプログラムに関して、これら個々のプログラムは、アプリケーションに読み込まれる関連付けられたオペレーティングシステムインターフェースを必要とする。すなわち、特定のオペレテーティングシステム型にプログラムされたソフトウェアである。オペレーティングシステムを排除するコンピュータアーキテクチャの中でそのような現在利用可能なプログラムに対応するために、ソフトウェアに対応するＡＰＩは、永久記憶デバイスの中に保存され、ソフトウェアがアプリケーションソフトウェアとチップ６００との間のインターフェースとして動作するように操作される時に、メインメモリに呼び出される。代替として、ＡＰＩはウェブサイトに保存されることができ、関連付けられたアプリケーションプログラムがメモリ２０６の中にロードされているときに、モデム２４６を介して、適切なＡＰＩがメインメモリ２０６にチップ６００によって呼び出される。
【００２７】
図１３は、オペレーティングシステムのないコンピュータシステムにおいて利用されるチップ６００を含む、例示的なコンピュータマザーボード１３００のレイアウトである。マザーボードはまた、回路およびメインメモリを構成するダイナミックランダムアクセスメモリ（ＤＲＡＭ）１３０２のアレイを支えながら、メモリコントローラ、ダイレクトメモリアクセス（ＤＭＡ）コントローラ、インタラプトコントローラ、入力／出力（Ｉ／Ｏ）コントローラ、集積ドライブエレクトロニクス（ＩＤＥ）コントローラなどの様々なコントローラを含むチップセットＣ１、Ｃ２、Ｃ３、Ｃ４を備える。また、マザーボード１３００上には、ＣＰＵ２０２を受取るために設定されたＣＰＵスロット１３０３と、キーボードポート１３０４、ユニバーサルシリアルバス（ＵＳＢ）ポート１３０６、ゲームポート１３０７、シリアルポート１３０８、パラレルポート１３１２、フロッピー（Ｒ）ドライブコントローラ（ＦＤＣ）コネクタ１３１４、プライマリおよびセカンダリＩＤＥコネクタ１３１６、ならびに、拡張スロットのような様々な周辺デバイスコネクタとが備えられる。拡張スロットは、パーソナルコンピュータインターフェース（ＰＣＩ）バススロット１３１８、インダストリスタンダードアーキテクチャ（ＩＳＡ）バススロット１３１６、アドバンストグラフィックポート（ＡＧＰ）バススロット１３２２などである。マザーボードは、さらに、ＢＩＯＳ  ＲＯＭ１３２６を含み、ＢＯＩＳ  ＲＯＭ１３２６は、パワーオンセルフテスト（ＰＯＳＴ）ルーティンを含むＢＯＩＳを含む。１つの実施形態では、ＢＩＯＳは、従来のＰＯＳＴと、システムレベルデバイス、および、Ｉ／Ｏインターフェース、キーボードコントローラ、ビデオコントローラ、タイマー、ダイレクトメモリアクセス（ＤＭＡ）コントローラ、周辺インターフェースコントローラなどのようなコントローラの設定と、チップ６００に対するブートストラップとのサービスを提供する。本発明の実施形態に沿うと、周辺デバイスコネクタおよび拡張スロットは、トレースリンク１３２８を介して、チップ６００のそれぞれのマネージャに接続されている。トレースリンク１３２８を通って、デバイスとチップ６００との間に直接の通信が生じる。
【００２８】
デバイスはチップ６００のデバイスマネージャ６１０に物理レベルで直接接続されており、デバイスの検知および管理は、任意のインフォメーション、メモリ、または、プロセッシング機能から分離されている。個々のデバイスをチップ６００に対して利用可能にする手段は、デバイス自体内部に含まれる組込みデバイスドライバを有するマイクロコントローラを介する。
【００２９】
図１４に示されるスマートデバイス１４００は、デバイスマイクロコントローラ１４０２と組込みデバイスドライバ１４０４とを、デバイス１４００内部に含む。デバイス１４００は、デバイス自体に、自己診断テストおよびデバイス操作を設定し、かつ、実行させることを可能にする。従って、スマートデバイスは、外部の制御ソースなしに独立に作動するという意味において、スマートである。スマートデバイスは、ディスクドライブ、モデム、プリンタ、ビデオモニタなどのようなデバイスを含む。スマートデバイスは、デバイスのサービスを利用可能にするために、オペレーティングシステムのないコンピュータシステムにおいて利用されるチップの中の適切なマネージャに結ばれる。本発明のひとつの局面によると、電源投入の初期化において、個々のデバイスマイクロコントローラ１４０２は、デバイス１４００に含まれる組込みＲＯＭを指すスタートアップアドレスを有するので、デバイス１４００内部の個別のデバイスマイクロコントローラ１４０２は起動される。ＲＯＭは、デバイスドライバ１４０４を含み得る。デバイスドライバ１４０４は、デバイスに特定であり、かつ、デバイスマイクロコントローラ１４０２によって設定および自己診断テストの実行のために用いられる。本発明のひとつの局面では、１つ以上のデバイス１４００の中の個々のデバイスマイクロコントローラ１４０２は、設定と診断とを、自発的、かつ、同時または実質的に同時に実行する。もし前記手順の後、デバイス１４００が使用できると判断されるなら、デバイスマイクロコントローラ１４１２は、図１５に図示されるような、デバイス１４００が利用可能であることを指示するＩＤ信号１５００（レジストリに保存されている）を、オペレテーティングシステムのないコンピュータシステムにおいて利用されるチップ６００に、トレースリンク１３２８を介して送信する。ＩＤ信号１５００は、デバイスＩＤビット１５０２および必要なリソースデータビット１５０４を含み、直列もしくは並列に送信されるデータのビット列でもよい。前記信号は、プラグアンドプレイＩＳＡ規格のシリアル識別子とリソースデータのフォーマットとに準拠し得る。記述すべきは、信号の設定は、あらゆるフォーマット標準において、デバイス製造とともに、もしくは、デバイス製造によって、決定され得る。デバイスマネージャ６１０は、識別信号の受信に基づいて、デバイスの存在を認知する。デバイスマネージャ６１０は利用可能なシステムリソースにアクセスするので、デバイスマネージャ６１０は、デバイスによって要求されたリソースを識別し、デバイスに適切なリソースを割り当てる。リソースの割り当ては、通常、システムリソースを要求する他のデバイスと衝突しないように実行される。デバイスに割り当てられたリソースは、デバイスへのポインタとして機能するアドレスが割り当てられる。記述すべきは、Ｉ／Ｏおよび記憶デバイスの数、および、それらと通信能力は、周辺デバイスコネクタ、拡張スロット、および、チップ６００に接続されたトレースリンク全体の機能として事前に定められるので、ひとつの実施形態では、デバイスの検知および論理的接続性は、有限状態機構（ｆｉｎｉｔｅ  ｓｔａｔｅ  ｍａｃ��ｉｎｅ）に基づき得る。
【００３０】
図１３を参照してわかるように、オペレテーティングシステムのないコンピュータシステムにおいて利用されるチップ６００は、ＣＰＵ（ＣＰＵスロット１３０３）およびメインメモリ（メモリスロット１３０２）に直接接続されているように示される。このように、ＣＰＵ２０２およびメモリ２０６（図６を参照）は、チップ６００内部のプロセスマネージャ６２０とメモリマネージャ６３０とによって実行される、プロセス要求、および、マルチタスク管理に、完全に集中し得る。結果として、十分なメモリとＣＰＵとの容量が利用可能でないとき、システムにもうこれ以上のプロセスが付加されることはなく、要求は入力デバイスレベルで拒絶され、システムレベルで潜在的なクラッシュが引き起こされることはない。プロセッシングとメモリ管理機能とを他のルーティンから分離する結果、処理速度は、上述のＣＰＵ２０２容量と、メモリ２０６容量と、チップ６００とＣＰＵ２０２とメモリ２０６との間の移動速度との間の簡単な関係である。このことは、ＣＰＵ２０２がその他種々のルーティンを処理するために切り替えられる必要がないので、コンピュータアーキテクチャのロバスト性、および、ＣＰＵ２０２とメモリ２０６との間により高速の相互通信を提供する役目を果たす。
【００３１】
メインメモリ２０４には常駐のオペレーティングシステムが存在しないので、メモリ容量の全てを、ユーザのタスクのためにすぐ直接利用可能である。メモリマネージャ６３０は、利用可能なメモリの容量、および、処理待ちのプログラムとデータとのキューの管理を対外的に実行し、十分なメモリがいつでもプロセス要求を支えるために利用可能であることを保証する。その結果として、プロセス要求を満足させ続けるために、記憶デバイスとメモリとの間で、データファイル、プログラムエレメント、もしくは、アドレスマップデータを絶え間なくスワップさせる必要がない。このことは、現在実行中の１つ以上のプログラムのための空間をメモリに確保するためにＣＰＵ２０２は不必要なファイルやプログラムエレメントをオフロードするという他のタスクに切り替えられることがないので、ＣＰＵ２０２を最良の容量で操作するのに役立つ。
【００３２】
インフォメーションマネージャ６４０は、永久記憶のアドレスのリストを保持し、要求されたとき、および、完了にあわせて、メモリへ、もしくは、メモリからファイルを転送する。メモリマネージャ６３０と接続されているので、上述の特徴は、プロセッシングおよびファイル管理レベルの両方で高速データアクセスを結果としてもたらし、ハードディスクメモリの利用を最小化／最適化する。
【００３３】
記述すべきは、ソフトウェア（オペレテーティングシステム）の全体レベルがコンピュータシステムから取り除かれたために、このセクションはウィルス攻撃にさらされているシステムの危険性を低減することである。デバイス６５０、６６０、６７０、チップ６００、ＣＰＵ２０２、および、メモリ２０６の間の直接の物理的接続の結果、永久記憶デバイスから処理のために運ばれたファイルは、コンピュータシステムに入る時に他のソフトウェアインターフェースにさらされず、したがって、潜在的感染を避ける。外部からＩ／Ｏデバイス６５０、６６０へ入る外部の感染ファイルによって引き起こされるクラッシュは、デバイスレベルで発生し、システム全体に影響を与えない。オペレテーティングシステムのないコンピュータシステムにおいて利用されているチップのマネージャのモジュール性により、セキュリティ対策はインフォメーションマネージャ６４０で行われ得、例えば、外部の感染ファイルもしくはウィルスはフィルタリングされ、システム全体に感染ファイルやウィルスを暴露しない。
【００３４】
セキュリティ予防のほかの例は、外部の感染デバイス（例えば、モデムまたはＬＡＮカード）がデバイスマネージャ６１０に接続されたとき、デバイスマネージャ６１０に組込まれたＤａｔａＳｅｃｕｒｉｔｙＩｎｓｐｅｃｔｉｏｎ（ＤＳＩ）ソフトウェアがファイルを検査する。もしファイルが疑わしければ、デバイスマネージャ６１０は、ファイルをある保持領域に隔離し、ユーザに対してファイルの問題にフラグを立てる。そのファイルに該当する永久記憶デバイスを暴露せず、このようにシステムへの感染を避ける。
【００３５】
図１６〜２５は、オペレテーティングシステムのないコンピュータシステムにおいて利用されるチップ６００内部のマネージャによって実行される操作の例を示している。図１６および図１７は、本発明のひとつの実施形態に沿った電源投入順序を示している。電源投入において、ステージ１７２では、ＢＩＯＳ１３２６（図１３を参照）がＰＯＳＴルーティンを呼び出すために起動される。ひとつの実施形態では、ＰｈｏｅｎｉｘＴｅｃｈｎｏｌｏｇｉｅｓ，Ｌｔｄ製品のような商業上利用可能なＢＩＯＳが利用されるが、ブートストラップ手順では、チップ６００にブートストラップするよう修正される。ＰＯＳＴは、標準メモリチェックを行い、ＢＩＯＳをメインメモリ２０６へコピーする。ステージ１７４では、ＢＩＯＳは様々なコントローラを設定し、チップ６００のデバイスマネージャ６１０にブートストラップする。その間に、ステージ１７６では、図１４に関連して述べられ、かつ、Ｉ／Ｏデバイス６５０、６６０によって表現されるような様々なスマートデバイス、および、永久記憶デバイス６７０は、セルフテストと、操作可能であれば設定を開始する。スマートデバイスは、ＩＤ信号が、スマートデバイスの利用可能性を指示できるようにする。デバイスマネージャ６１０は、個々のデバイス６５０、６６０、６７０の存在を検知する。キーボード、マウス、もしくは、ビデオモニタのようなデバイス６５０、６６０、６７０に対して、マザーボードＢＩＯＳ  ＲＯＭ１３２６を介して信号が生成されるか、または、デバイスの組込みＢＩＯＳはチップ６００と直接通信する。他のデバイス６５０、６６０、６７０に対する検知は、デバイスの信号生成器によって信号を送信される電気的連結性によって達成される。
【００３６】
ステージ１７８では、個々のデバイス６５０、６６０、６７０の利用可能性、容量、性能は、有効である。論理的接続性は、有限状態機構概念（ｆｉｎｉｔｅ  ｓｔａｔｅ  ｍａｃｈｉｎｅ  ｃｏｎｃｅｐｔ）に基づいている。個々のデバイス６５０、６６０、６７０は、デバイスのポインタとして振舞うメモリ内部のアドレスを割り当てられている。
【００３７】
ステージ１８０では、インフォメーションマネージャ６４０は、前回のシャットダウンにおいて検知されたシステムの状態を含むファイルを読み込む。インフォメーションマネージャは、個々の永久記憶デバイス６７０上のすべての利用可能なプログラムおよびデータファイルに対するレコードフィールドを指示するポインタを含む。ステージ１８２では、インフォメーションマネージャ６４０は、前もって決められた固定ドライブの位置からグラフィックユーザインターフェース（ＧＵＩ）を読み出すための命令に従って、プロセスマネージャ６２０に制御をパスする。プロセスマネージャ６２０は、デバイスマネージャ６１０を介してビデオモニタの画面にＧＵＩを表示する。インフォメーションマネージ６４０のアイコンは、シャットダウンの前にユーザによって画面に表示されていたデータまたはプログラムファイルを表示するアイコンと同様に、画面上に表示される。ここで、オペレテーティングシステムのないコンピュータシステムにおいて利用されるチップ６００は、ユーザの要求またはその他の入力に応じて、検知し、動作する準備ができている。インフォメーションマネージャ６４０の問い合わせは、ＧＵＩ、レコードフィールドファイル、および、デバイスレコードファイルがメモリ内部に常駐することを明らかにする。メモリは、接続されたデバイスおよびデバイスの現在の状態を指示する。
【００３８】
図１８および図１９は、プログラム／ソフトウェアアプリケーションを作動させるための例示的な手順を示している。ステージ１９２では、ユーザは、この要求を、通常、マウスおよび／またはキーボードのような入力デバイス６５０、ならびに、それらデバイスのデバイスマネージャ６１０とのインターフェースを介して、入力する。ステージ１９４では、前記要求は、プロセスマネージャ６２０へ送られ、ステージ１９６において、プロセスマネージャ６２０は、メモリマネージャ６３０との接続により、メモリ内のレジストリから適切なファイルを識別する。プロセスマネージャ６２０は、十分なメモリ２０６およびＣＰＵ２０２のリソースが利用可能であるかどうかを識別し、リソースを割り当て、デバイスマネージャ６１０から前記ファイルを要求する。ステージ１９８では、デバイスマネージャ６１０は、デバイスからメモリへ該当するファイルを導く。ステージ２０２では、プログラムファイルの識別が、プロセスマネージャ６２０とメモリマネージャ６３０との間で発生する。ステージ２０４では、メモリマネージャ６３０は、メモリ管理をトラックし続ける、すなわち、プログラムによって使用されるメモリを割り当て続ける。プログラムは、配分されたリソースを終了、もしくは、超過するまで、実行される。プログラムが実行している間の記憶の要求は、ステージ２０６において、デバイスマネージャ６１０とメモリマネージャ６３０との間で調整される。製造過程のファイルの要求、待機、および、配達は、ステージ２０８において、プロセスマネージャ６２０とメモリマネージャ６３０との間で調整される。ステージ２１２では、さらなるユーザの入力が要求されると、プロセスマネージャ６２０は、デバイスマネージャインターフェース６１０を介して、ユーザの入力を要求する。インフォメーションマネージャ６４０は、ステージ２１４において、ユーザに、要求されれば残りのシステムリソースの状況を提供する。
【００３９】
図１８および図１９はまた、同時処理の例示的な手順を図示している。プロセス間の通信および命令は、（例えば、スプレッドシートプログラムであるＭｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌは、プロセスマネージャ６２０に、プレゼンテーションプログラムであるＭｉｃｒｏｓｏｆｔ  Ｐｏｗｅｒｐｏｉｎｔを実行するように要求する）同様の方法で処理される。ステージ２０８では、プロセス間の要求キューは、永久記憶デバイス６７０において生成され、そして、これらは、上述の方法により入力要求としてスケジューリングされる。プログラム管理がＣＰＵ２０２およびメモリ２０６の外で発生するので、ますます多くのプログラムを読み込み、かつ、実行し続けるための能力は、それら接続されたメモリ２０２およびＣＰＵ２０２の要求をプログラム要求と比較するという単純な機能である。プロセスマネージャ６２０およびメモリマネージャ６３０は、このタスクを処理する。メモリマネージャ６３０はまた、ステージ２０６の処理中において、メモリの割り当てより前に永久記憶にデータのキューを作るために、デバイスマネージャ６１０に、要求された情報を提供する。オペレーティングシステムなしのアプローチでは、続くプロセッサリソースの再要求のための判断基準は、特定の処理要求へプロセッサリソースを割り当てるより前に、あらかじめ定義される。この要求は終了し、かつ、次の処理が読み込まれる、もしくは、あらかじめ割り当てられたリソースを超過し、かつ、割り込まれるかのどちらかである。インフォメーションマネージャ６４０は、ユーザに、絶え間なく状況を指示し、潜在的なシステムのオーバーロードを事前に認知させる。さらに、システムをオーバーロードする不注意な試みは、そのプロセスが実行され得ないことを指示するメッセージによって、単純に対処される。ＣＰＵ２０２とメモリ２０６はこの点において関係がないので、システムクラッシュの危険性はない。
【００４０】
図２０および図２１は、出力（例えば、印刷情報）のための例示的な手順を図示している。ステージ２２２では、アプリケーション（例えばＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄ）は、デバイスマネージャ６１０によって直接「キューステーション」アプリケーションに送られる印刷ファイルを作成する。これは、先入れ先出し（ＦＩＦＯ）の原理に基づく標準的なソフトウェア操作である。このアプリケーションは、デバイスマネージャ６１０接続を介して、プリンタコントローラにより直接管理されるハードディスク上に常駐するか、もしくは、このアプリケーションは、理想的にはプリンタコントローラ自体に組込まれるかのどちらかである。ステージ２２４では、キューアプリケーションの最初のジョブは、プリンタのような出力デバイス６６０からのジョブが進行中であるという信号の受理に合わせて、印刷ジョブのために確保されたメモリのある場所に置かれる。プリンタが、ステージ２２６において、最初のジョブをデバイスマネージャ６１０に対する信号とともに解放するとき、ステージ２２８において、次のジョブがプリンタのメモリに読み込まれる。障害が発生した時は、「目下のジョブ」が、ただプリンタメモリから解放されるだけである。あらゆる問題はプリンタに限定され、システムクラッシュの危険性はない。もちろん、これと同じ手順が、ネットワークプリンタまたはその他のネットワークデバイスに、最小限の修正をもって適応され得る。キューアプリケーションは、起動時に識別されているＬＡＮ接続もしくはネットワークカードのいずれかを介して、データが、デバイスのＩＰアドレスへ向かうように道順を定める。再び、あらゆる問題は特定のデバイスに限定され、ＣＰＵ２０２、もしくは、メモリ２０６内の他のプログラムまたはファイルに障害を与えない。
【００４１】
図２２および図２３は、ファイル管理のための例示的な手順を図示している。ステージ２３２では、ＧＵＩを介して、ユーザはインフォメーションマネージャ６４０に問い合わせる。インフォメーションマネージャ６４０は、メモリ２０６および永久記憶６７０の両方に常駐するファイルについての情報を保持する。ファイルは二つの要素を含む。すなわち、ファイルについての全ての関連する情報（例えば、そのファイルがデータファイルなのかプログラムファイルなのか、または、そのファイルが読み取り専用なのかフルアクセス可能なファイルなのか）を含む記述子フィールドと、実際のデータフィールドである。インフォメーションマネージャの６４０の用途に合わせて、記述子フィールドだけがメモリに保存されており、実際のデータは保存されていない。記述子フィールドは、ファイルに基づく二次記憶に対しては、デバイスマネージャ６１０を介して、直ちに書き換えられ得る。結果として、ファイルのセキュリティレベル、タイプ変更、または、内容は、ＣＰＵ２０２リソースを消費することなく、かつ、ファイル全体にアクセスすることおよびメモリ２０６のリソースを消費することなく、直ちに変更される。ステージ２３４では、ユーザが要求したファイルの転送は、デバイスマネージャ６１０に対するユーザの要求（例えばマウスを用いた）に従って、達成される。これは単に、ファイルをひとつの記憶デバイス６７０から他のデバイスに渡しているだけであり、ステージ２３６において、インフォメーションマネージャ６４０にファイルに関連したデバイスにおける変更を報告する。ＣＰＵ２０２にもメモリ２０６にも、相互通信は要求されない。アプリケーションによって使用されているファイル（例えば、メモリに常駐している使用中のＥｘｃｅｌファイル）をユーザが保存するためには、そのファイルは、通常の出力要求と同様に、メモリマネージャ６３０を利用して、デバイスマネージャ６１０を介し、該当するデバイスに送信される。あらゆる待機中の要求を含むこのプロセスは、上述の印刷プロセスと同様の方法で扱われる。
【００４２】
図２４および図２５は、様々なコンピュータシステム操作を実行するための、一般的に接続されたマネージャインターフェイスと、適切なマネージャの相互通信を図示している。機能１では、プログラムまたはデータまたはファイルを検索するというようなユーザの処理要求は、デバイスマネージャ６１０を呼び出す。機能２では、モデムを介してジョブを印刷する、または、ファックスを送信するというような出力要求が原因で、デバイスマネージャ６１０は適切な出力デバイス６６０と相互通信する。永久記憶デバイス６７０からファイルを転送するというようなユーザの要求は、デバイスマネージャ６１０を呼び出し、永久記憶デバイス６７０にアクセスし、ファイルを検索する。機能５と連結した機能４では、ファイル情報のような情報に対するユーザの要求は、最初にデバイスマネージャ６１０を呼び出し、次に、デバイスマネージャ６１０は、要求の性質を決定し、インフォメーションマネージャ６４０へその要求を渡す。インフォメーションマネージャ６４０は、該当ファイルを含む永久記憶デバイスにアクセスし、要求されたファイル情報を検索する。ファイル情報はデバイスマネージャ６１０に渡され、デバイスマネージャはその情報をビデオモニタのような出力デバイス６６０を介してユーザに渡す。機能６〜１２は、プログラムの実行に付随する。ユーザのプログラム実行の要求によって、機能６では、デバイスマネージャ６１０はプロセスマネージャ６２０にプロセス実行を要求する。機能７では、デバイスマネージャ６１０はメモリマネージャ６３０と相互通信し、そのプログラムをメモリ２０６に読み込む。機能８および９では、デバイスマネージャ６１０は、あるプログラムが実行されるべきであることをインフォメーションマネージャ６４０に知らせ、インフォメーションマネージャ６４０にプロセスの用法とプロセスの容量情報、および、メモリ２０６用法とメモリ２０２容量を集めさせる。機能１０では、メモリマネージャ６３０は、プロセスマネージャ６２０と相互通信して、特にメモリ要求およびメモリスペースの割り当てを提供する。機能１１では、プロセスマネージャ６２０は、絶えずＣＰＵ２０２実行サイクルを制御およびモニタリングしながら、ＣＰＵ２０２にプログラムの実行を開始させるようにする。その間に、メモリマネージャ６３０は、絶えずメモリ２０６の用法および容量と、メモリ２０６の割り当てとを制御およびモニタリングする。
【００４３】
このように、オペレテーティングシステムの必要性を排除したファームウェア／ハードウェア層を提供し、コンピュータのマザーボードに対する少しの修正を加えることによって、ユーザおよびコンピュータリソースおよびデバイスとの間に、ハードウェアレベルで、画期的な新たなインターフェースがもたらされる。オペレテーティングシステムの必要性を排除することは、より高速で、より安価で、より頑強で、かつ、より簡単な型であることにおいて、オペレテーティングシステムによって今まで操作されてきた全てのユーザの要求を満足させる。オペレーティングシステムを排除することはまた、デバイス製造およびアプリケーションプロバイダのプラットフォームへの依存を低減し、未来の開発をより単純にする。例えば、デバイス生産が、デバイスマイクロコントローラと、オペレーティングシステムへの依存性を排除する組込みデバイスドライバとを含むスマートデバイスを製造してもよい。アプリケーションプロバイダは、オペレーティングシステムによって設定されているインターフェースの決まりに関係なく、最適にソフトウェアを動作させる独自のＡＰＩを作成してもよい。アプリケーションのさまざまな実施形態が述べられたが、本発明の範囲内でより多くの実施形態および実装が可能になるということは、当業者にとっては、明らかである。従って、本発明は公にされないのではなく、付属の請求項とそれに相当する観点で読まれるべきである。
【図面の簡単な説明】
【００４４】
【図１】図１は、従来のコンピュータシステムアーキテクチャを示す。
【図２】図２は、図１のコンピュータアーキテクチャの従来のハードウェアプラットフォーム層を示す。
【図３】図３は、従来のベーシックインプットアウトプットシステム（ＢＩＯＳ）とカーネル起動操作とのフロー図である。
【図４】図４は、従来のオペレーティングシステムを示す。
【図５】図５は、オペレーティングシステムの必要性を排除するハードウェア／ファームウェア層を有するコンピュータアーキテクチャを示す。
【図６】図６は、本発明の実施形態に沿った、オペレーティングシステムのないコンピュータシステムにおいて使用される半導体チップである。
【図７】図７は、本発明の実施形態に沿った、オペレーティングシステムのないコンピュータシステムにおいて使用されるチップ内のさまざまなマネージャを接続するクロスバースイッチを示す。
【図８】図８は、本発明の別の実施形態に沿った、オペレーティングシステムのないコンピュータシステムにおいて使用される半導体チップ内のさまざまなマネージャを接続するメッシュ接続を示す。
【図９】図９は、本発明の実施形態に沿った、デバイスマネージャインターフェースを示す。
【図１０】図１０は、本発明の実施形態に沿った、プロセスマネージャインターフェースを示す。
【図１１】図１１は、本発明の実施形態に沿った、メモリマネージャインターフェースを示す。
【図１２】図１２は、本発明の実施形態に沿った、インフォメーションマネージャインターフェースを示す。
【図１３】図１３は、オペレーティングシステムおよびトレースリンクのないコンピュータシステムにおいて使用されるチップを含むコンピュータマザーボードの例示的なレイアウトである。
【図１４】図１４は、オペレーティングシステムチップのないコンピュータシステムにおいて使用される半導体チップに連結されたスマートデバイスを示す。
【図１５】図１５は、シリアルＩＤとリソースデータとを含むスマートデバイスにおけるレジスタフォーマットを示す。
【図１６】図１６は、本発明の実施形態に沿った、電源投入順序を示す。
【図１７】図１７は、本発明の実施形態に沿った、電源投入順序を示す。
【図１８】図１８は、本発明の実施形態に沿った、動作中のプログラム／ソフトウェアアプリケーションのための順序を示す。
【図１９】図１９は、本発明の実施形態に沿った、動作中のプログラム／ソフトウェアアプリケーションのための順序を示す。
【図２０】図２０は、本発明の実施形態に沿った、出力するための順序を示す。
【図２１】図２１は、本発明の実施形態に沿った、出力するための順序を示す。
【図２２】図２２は、本発明の実施形態に沿った、ファイル管理を行うための順序を示す。
【図２３】図２３は、本発明の実施形態に沿った、ファイル管理を行うための順序を示す。
【図２４】図２４は、本発明の実施形態に沿った、一般にプラットフォームコンピュータオペレーションと組み合わされたマネージャのインターフェースおよび相互作用を示す。
【図２５】図２５は、本発明の実施形態に沿ってコンピュータオペレーションを実行するために、一般的な、結合されたマネージャインターフェースと相互作用とを示す。
【図１】
0004491194.tif 000002
【図２】
0004491194.tif 000003
【図３】
0004491194.tif 000004
【図４】
0004491194.tif 000005
【図５】
0004491194.tif 000006
【図６】
0004491194.tif 000007
【図７】
0004491194.tif 000008
【図８】
0004491194.tif 000009
【図９】
0004491194.tif 000010
【図１０】
0004491194.tif 000011
【図１１】
0004491194.tif 000012
【図１２】
0004491194.tif 000013
【図１３】
0004491194.tif 000014
【図１４】
0004491194.tif 000015
【図１５】
0004491194.tif 000016
【図１６】
0004491194.tif 000017
【図１７】
0004491194.tif 000018
【図１８】
0004491194.tif 000019
【図１９】
0004491194.tif 000020
【図２０】
0004491194.tif 000021
【図２１】
0004491194.tif 000022
【図２２】
0004491194.tif 000023
【図２３】
0004491194.tif 000024
【図２４】
0004491194.tif 000025
【図２５】
0004491194.tif 000026