JP2004526233A - オペレーティングシステムなしでcpuおよびデバイスを管理するモジュラーマイクロコントローラ - Google Patents
オペレーティングシステムなしでcpuおよびデバイスを管理するモジュラーマイクロコントローラ Download PDFInfo
- Publication number
- JP2004526233A JP2004526233A JP2002560006A JP2002560006A JP2004526233A JP 2004526233 A JP2004526233 A JP 2004526233A JP 2002560006 A JP2002560006 A JP 2002560006A JP 2002560006 A JP2002560006 A JP 2002560006A JP 2004526233 A JP2004526233 A JP 2004526233A
- Authority
- JP
- Japan
- Prior art keywords
- microcontroller
- memory
- manager
- instructions
- cause
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 177
- 239000004065 semiconductor Substances 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 20
- 238000012360 testing method Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims 2
- 238000000034 method Methods 0.000 abstract description 69
- 230000008569 process Effects 0.000 abstract description 48
- 238000007726 management method Methods 0.000 description 33
- 230000006870 function Effects 0.000 description 17
- 241000700605 Viruses Species 0.000 description 5
- 241000699666 Mus <mouse, genus> Species 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000002405 diagnostic procedure Methods 0.000 description 2
- 208000015181 infectious disease Diseases 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 241000233805 Phoenix Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Abstract
【選択図】 図6
Description
【0001】
(発明の分野)
本発明は、コンピュータアーキテクチャ、ハードウェアおよび方法に関し、特に、オペレーティングシステムの必要性を排除するコンピュータアーキテクチャ、ハードウェアおよび方法に関する。
【背景技術】
【0002】
(発明の背景)
図1は、ハードウェアプラットフォーム層200、ファームウェア層300、オペレーティングシステム層400およびアプリケーションプログラム層102を含む従来のコンピュータシステムアーキテクチャ100を示す。ハードウェアプラットフォーム層200は、コンピュータシステムの実際の操作を行うコンピュータシステムの物理層である。ファームウェア層300は、特に、ハードウェアプラットフォーム層200とオペレーティングシステム層400との間のインターフェースを行う。オペレーションシステム層400は、プロセッサリソース管理、メモリ割り当て管理、デバイスリソース管理、およびデータファイル管理等のコンピュータリソースの管理を行うソフトウェア層である。オペレーティングシステムは、また、アプリケーションプログラムが構築される基部である。アプリケーションプログラム層102は、所望の結果に応じてデータを操作および/または処理する命令セットを提供するコンピュータプログラムを含む。例としては、ワードプロセッサ、データベース、スプレッドシートおよびウェブブラウザプログラムがある。
【0003】
図2は、システムバス208を介して一緒に接続された、中央処理装置(CPU)202、リードオンリーメモリ(ROM)204およびメインメモリ206を含むコンピュータシステムの従来のハードウェアプラットフォーム層(一般に「コンピュータ」として呼ばれる)200を示す。示された構成は、一般的に用いられるバスアーキテクチャタイプのコンピュータシステムの例示であり、パーソナルコンピュータインタフェース(PCI)、工業規格アーキテクチャ(ISA)、拡張ISA(ESIA)および他のバス規格を含む。コンピュータ200は、バスアーキテクチャに限定される必要はなく、異なるアーキテクチャを用いてもよい。コンピュータ200は、特に、メモリコントローラ212、ダイレクトメモリアクセス(DMA)コントローラ214、インタラプトコントローラ216、入力/出力(I/O)コントローラ218、統合デバイスエレクトロニクス/フロッピー(R)ドライブコントローラ(IDE/FDC)コントローラ222およびビデオコントローラ224のような種々のコントローラをさらに含む。種々のデバイスがコントローラに接続され、その結果、コンピュータ200は、ユーザまたは外部世界と相互作用し得る。例えば、ビデオモニタ226は様々な情報を表示するためにビデオコントローラ224に接続され、キーボード228およびポインティングデバイス232はコンピュータ200にデータおよびコマンドを入力するためにシリアルポートを介してI/Oコントローラ218に接続され、プリンタ234もまたユーザに要求されたデータのハードコピーを作成するためにパラレルポートを介してI/Oコントローラ218に接続されている。IDE/FDCコントローラ222は、ディスケットドライブ236、ハードディスクドライブ238、コンパクトディスク(CD)ROMドライブ242、および、デジタルビデオディスク(DVD)ROMドライブ244のような様々なディスクドライブを制御し、モデム246はインターネットのような外界とのコミュニケーションを提供する。通常、ハードウェアは一つ以上の拡張スロット248を持ち、様々な拡張カードを受取る。拡張カードは、ハードウェアプラットフォームの特性を強化および増加させ、従って、モデムカード246を拡張スロット248に挿入することができ、コミュニケーション特性を提供する。
【0004】
ベーシックインプットアウトプットオペレーティングシステム(BIOS)300のようなファームウェア層はROM204に位置づけることができ、かつ、それが支えるコンピュータのハードウェアプラットフォームに対して一般的に特定である。BIOSのルーティンは様々なセットアップ手順およびパワーオンセルフテスト(POST)を含む。様々なセットアップ手順は様々なコントローラの設定を含み、その設定では、BIOSはコントローラとオペレーティングシステムとの間で一様なインターフェースとして振るまい、そのため、オペレーティングシステムがハードウェアプラットフォーム200にアクセスすることを可能にする。BIOSは、キーボード、マウス、ビデオモニタ、ディスクドライブ、プリンタその他のようなデバイスや様々なコントローラを利用するデータのやりとりを支える。他のセットアップ手順は、オペレーティングシステムのための予備のメモリのセットアップ、障害処理、クロック、および、様々な回路、例えば、メインメモリを含むDRAMをリフレッシュするダイナミックランダムアクセスメモリ(DRAM)リフレッシュ回路のためのタイマーを含む。POSTは、メモリおよびコントローラ上で様々なセルフテストを行い、セルフテストの最中に障害が見つかれば、オーディオの形式でエラーメッセージがビーっと鳴る、および/もしくは、エラーメッセージが表示される。
【0005】
図3は、本明細書で参照として援用される、Compaq Computer Corporation、Phoenix Technologies Ltd.、および、Intel Corporationの1994年5月5日のVersion1.0aのプラグアンドプレイBIOS規格に準拠し得るBIOSを利用した例示的な電源投入順序のフローチャートである。このBIOSは、本明細書で参照として援用される。BIOSは、Intel CorporationおよびMicrosoft Corporationの1994年5月5日のVersion1.0aのプラグアンドプレイISA規格にも準拠し得る。このBIOSは、本明細書で参照として援用される。プラグアンドプレイ(PnP)規格は、ユーザによる手動操作なしに、コンピュータに取り付けるデバイスの設定をコンピュータが操作することを可能にする。ユーザはサウンドカードのような新しいデバイスを付けることができ、コンピュータは自動的にデバイスを検知し、カードを操作するためのデバイスドライバを提供する(もしコンピュータが内部にすでにドライバを所有していなければ、デバイスドライバを含むディスクもしくはCDを挿入することをユーザに要求するステップを含み得る)。デバイスに準拠するPnPは、通常デバイス自身を一意に識別し、デバイスが提供するサービスおよびデバイスが必要とするリソースを指示し、デバイスを支えるデバイスドライバを識別させ、さらに、オペレーティングシステムにデバイスを制御させることができるという特徴を有する。こうした特徴は、オペレーティングシステムにとっては非常に重要であり、オペレーティングシステムに、コンピュータに接続された全てのデバイスに対して機能する設定を確立させ、かつ、メモリに正しいデバイスドライバを読み込ませることを可能にする。
【0006】
デバイスドライバは、デバイスの低いレベルもしくは特定のコンポーネントを制御し、従って、オペレーティングシステムがデバイスを制御することを可能するためのロジックを含むソフトウェアモジュールである。例えば、デバイスドライバは、コンピュータにつながれた磁気ディスクドライブを制御するために利用され得る。この例では、デバイスドライバが、さまざまなハードウェアの特定のレジストリまたはラッチまたは信号または磁気ディスクドライブデバイスの他のコンポーネントを制御する。デバイスドライバは、具体的には、通常特定のデバイスと通信するように設定されている。
【0007】
ここで図3を参照すると、あるひとつの電源投入順序に従うと、ステージ302で、コンピュータに電源が投入される、もしくは、リセット信号が受信される。このステージでは、コンピュータは、リセット論理状態にアクセス可能なデバイスを含むそのコンピュータ内のコンポーネントに焦点を当てる。リセット論理状態では、コンピュータは、コンピュータの実際の設定を「知ら」ず、拡張カードによるデバイスを含む、どんなデバイスがコンピュータに取り付けられているのかを知らない。あらかじめ定義された電源供給が安定するための時間が経過した後、ステージ304で、BIOSの位置するROMを指す開始アドレスから、CPUが起動する。BIOSのPOSTルーティンが開始し、POSTは、あるデバイスおよびデバイスの操作性を決定するシステムのコンポーネントと共に、メインメモリを構成するダイナミックランダムアクセスメモリ(DRAMS)をテストする。テストプロセスの間は、BIOSのコピーがROMから検索され、メインメモリにコピーされる。BIOSは、コンピュータシステムを準備する命令ルーティンの集合であり、その結果、ディスクドライブでもあり得る初期ロードディバイス(IPL)からオペレーティングシステムを受取る。ステージ306では、BIOSは、どのデバイスが、オペレーティングシステムを検索し立ち上げるために使用され得る(たとえばIPL)のかを決定するために、全てのデバイスを止めようとする。IPLは止められ得ないので、このステージで検知される。ステージ308では、BIOSは、デバイスを作動させ、非IPLを、オペレーティングシステムによって開始されるための待ち状態に置く。ステージ310では、BIOSは、オペレーティングシステムのカーネル(通常はハードディスクドライブに含まれている)を起動させるブートストラップルーティンを実行し、メインメモリへ読み込む。このステージで、ファームウェア(たとえばBIOS)によって制御されるハードウェアは、ソフトウェア(カーネル)に渡される。カーネル402は、プロセス実行、メモリ管理、ダイナミックリンクライブラリ管理、スケジューリング、ファイルシステム管理、I/Oサービス、および、ユーザインターフェイス表示他のようなコンピュータのリソース管理である、オペレーティングシステムの核機能を提供する。
【0008】
ステージ312では、カーネルは個々のデバイスを分離するアイソレーションプロシージャを開始させる。アイソレーションプロトコルのキーは、個々のデバイスがシリアルIDとして知られるユニークな72ビットのナンバーを含むことである。デバイスは分離されるとカードシリアルナンバー(CSN)が割り当てられる。カードシリアルナンバーは、割り当てられるデバイスに対してユニークであり、「ハンドル」としてサービスを行う。カードシリアルナンバーによって、オペレーティングシステムはデバイスを識別し、デバイスはそれ自体を識別する。それは例えば、割り込みが発生した時である。ステージ314では、カーネルはデバイスのリソース要求に対して、個々の分離されたデバイスを読み取る。デバイスに要求されたリソースはDMA、割り込み要求(IRQ)、I/O、および、メモリアドレスを含む。ステージ316では、カーネルは、個々のデバイスのリソース要求の統合的なリストを作成する。ステージ318では、カーネルは利用できるシステムリソースを把握しているので、リソース配分が衝突しないことを保証しながら、カーネルは利用可能なリソースを必要とされるようにデバイスに割り当てる。ステージ320では、カーネルがシステムリソースをデバイスへ割り当てているときに、アロケーションマップはメモリ内に作成され保存される。アロケーションマップの作成に付け加えて、ステージ322では、デバイスによって提供される識別ナンバーを利用しながら、カーネルは通常ハードディスクドライブに保存されている関連するデバイスドライバを識別する。デバイスドライバが入手されなければ、カーネルはユーザにデバイスドライバを提供するように促す。検知されたデバイスに関連する全てのデバイスドライバは、デバイスを制御するためにカーネルによって使用されるメインメモリの中に読み込まれる。さらなる電源投入順序の詳細は、プラグアンドプレイISA規格で調べられ得る。アイソレーション、様々なデバイスの問い合わせ、および、デバイスドライバのメインメモリへの読み出しは、時間を消費し、また、利用可能なメインメモリを減少させる。
【0009】
図4は、カーネル402、デバイスドライバ層404、アプリケーションプログラムインターフェイス(API)406、ライブラリ層408を含むオペレーティングシステム400の概略図である。図3に関連して述べた通り、カーネル402はオペレーティングシステムの核機能を提供する。アプリケーションプログラムは直接的、もしくは、間接的に、オペレーティングシステムのカーネル、もしくは、その他の部分における前述、ならびに、その他の性能に依存している。デバイスドライバ層404は、デバイスを制御し通信するのに必要なデバイスドライバを含む。オペレーティングシステムは、ハードウェアとアプリケーションプログラム層との間のインターフェースも提供する。アプリケーションプログラムの開発を促進するために、オペレーティングシステムは、アプリケーションプログラムと相互に通信するためのアプリケーションプログラムインターフェイス(API)406も含む。APIは、オペレーティングシステムによって実行される下位レベルのサービスにアクセスするためにアプリケーションプログラムが利用するルーティンの集合である。オペレーティングシステムは、モジュール管理、インタープロセスコミュニケーション(IPC)およびスケジューリングを含むアプリケーションプログラムのための、多くのサービスを追行する。提供される他のサービスは、ライブラリ層408に含まれるダイナミックリンクライブラリ(DLL)である。オペレーティングシステムは、ライブラリ層で利用されるDLLのリンキング、読み込み、実行を支えることによって、モジュール管理を追行する。
【0010】
オペレーティングシステムはまた、アプリケーションプログラムからの複数の命令をスレッドと呼ばれるかたまりへ組織化する。スレッドは、CPUによる実行のために「噛まれ」得る命令のパケットとして捉え得る。オペレーティングシステムは、多重のアプリケーションプログラムの操作を連続的な実行のためのスレッドに変え、マルチタスクとして知られるように、CPUにいくつかのアプリケーションプログラムを同時に支持することを可能にする。1つの例では、CPUをアイドリングさせないように様々なデバイスに作動を可能にすることで、マルチタスクはコンピュータ操作のスピードを増加させる。通常、CPUは、データが記憶デバイスに読み書きされ得るよりもずっと速く命令を実行する。従って、もしCPUが記憶デバイスにデータが読み書きされるのを待たなくてはならなければ、アイドル状態になるであろう。遅いシステムのコンポーネントのためのタスクを実行させなければならないときはいつでも、スレッドの利用によって、オペレーティングシステムがCPUを再配置することを許可される。例えば、データがディスクドライブから読み込まれなければならないときはいつでも、第一のアプリケーションプログラムからの命令の処理は一時停止され得る。そして、CPUは、データが読まれている間に別のアプリケーションプログラムからのスレッドを実行することができ、データが読み込まれてしまえば、第一のアプリケーションプログラムからの命令処理を再開する。
【0011】
バスアーキテクチャを利用するコンピュータは、通常、CPUおよび様々なデバイスが通信する1つのバスを有する。そのため、オペレーティングシステムは、アプリケーションプログラムからのCPUに対する命令の流れと、アプリケーションプログラム命令のCPUの処理の一時停止とを制御する。その結果、データがDMAコントローラを介してディスクドライブからメインメモリに運ばれるように、様々なデバイスによるI/O通信を可能にする。
【0012】
上述のオペレーティングシステムを利用したコンピュータシステムは、ユーザに不便を感じさせ、貴重なメモリスペースを消費する好ましくない冗長な電源投入順序を有する。既知の方法では、より高速のCPUを用いて電源投入順序をスピードアップさせる。しかし、より高速なCPUは高価であり、コンピュータのコストを増大させる。オペレーティングシステムに依存したコンピュータシステムは、損なわれた実行されたアプリケーションプログラムが原因となって、もしくは、マルチタスク処理の間に多数の割り込みとプロシージャの呼び出しとを操作した結果生じるエラーが原因となって、「クラッシュ」しがちである。さらに、オペレーティングシステムは、コンピュータシステムを不制御にし得、および、貴重なデータファイルを破壊するウィルスの攻撃を受けやすい。必要とされるのは、これらおよびその他の欠点を解決するコンピュータシステムと方法である。
【発明の開示】
【課題を解決するための手段】
【0013】
(発明の要旨)
本発明の実施形態は、オペレーティングシステムの必要性を排除するコンピュータアーキテクチャとハードウェアと方法を提供する。
【0014】
1つの一般的な局面では、コンピュータシステムは、中央処理装置(CPU)、メインメモリ、第一のマイクロコントローラと、該マイクロコントローラにCPU操作を管理させるように設定された第一の命令のセットを含む第一のメモリとを備えるさらなるユニット、および、該さらなるユニットと該CPUと該メインメモリとの間の通信を促進するために該CPUと該メインメモリとに該さらなるユニットを接続している複数のトレースリンクを備える。その他の特性は、少なくとも1つのデバイス、および、該デバイスを前記さらなるユニットに接続するトレースリンクを備え、該さらなるユニットは、第二のマイクロコントローラと第二のマイクロコントローラに該デバイスを管理させるように設定された第二の命令のセットを含む第二のメモリとをさらに備える。前記さらなるユニットは、第三のマイクロコントローラと第三のマイクロコントローラにメモリ操作を管理させるように構成された第三の命令のセットを含む第三のメモリとをさらに備える。前記さらなるユニットは、第四のコントローラと第四のコントローラにデータ操作を管理させるように構成された第四の命令のセットを含む第四のメモリとをさらに備える。前記さらなるユニットの複数のマイクロコントローラは、一緒に接続されて互いに通信する。前記さらなるユニットはクロスバースイッチを備え、複数のマイクロコントローラを接続する。前記デバイスは、第五のマイクロコントローラと、第五のマイクロコントローラにデバイス操作を制御させるように構成された第五の命令のセットを含む第五のメモリとを備え、第五のマイクロコントローラは少なくとも第二のマイクロコントローラと通信する。第五のメモリに含まれる第五の命令のセットは、さらに第五のマイクロコントローラに前記デバイスをテストさせるように構成され、もしデバイスが操作可能であれば、第五の命令のセットは、第五のマイクロコントローラが少なくとも第二のマイクロコントローラに、該デバイスが利用可能であることを知らせるための信号を送信するように構成される。第五のマイクロコントローラが少なくとも第二のマイクロコントローラに該デバイスの利用可能性を知らせるための信号を送信するようにさらに構成された、第五のメモリに含まれる第五の命令のセットは、送信デバイスのIDおよび必要なリソースのデータを含む。第二のメモリに含まれる第二の命令のセットは、さらに第二のマイクロコントローラが、前記デバイスの利用可能性を知らせ、かつ、前記デバイスに利用可能なリソースを割り当てる信号を受信するように構成される。
【0015】
本発明のさらなる局面において、コンピュータ操作を管理するための装置は、第一のマイクロコントローラと、該マイクロコントローラに中央処理装置(CPU)の操作を管理させるように構成された第一の命令のセットを含む第一のメモリとを備える。
【0016】
その他の特性は、第二のマイクロコントローラと、第二のマイクロコントローラに該デバイス操作を管理させるように構成された第二の命令のセットを含む第二のメモリとを備える。第三のマイクロコントローラと第三のマイクロコントローラにメモリ操作を管理させるように構成された第三の命令のセットを含む第三のメモリとをさらに備える。第四のコントローラと、第四のコントローラにデータ操作を管理させるように構成された第四の命令のセットを含む第四のメモリとをさらに備える。前記複数のマイクロコントローラは、一緒に接続されて互いに通信する。複数のマイクロコントローラを接続するクロスバースイッチを備える。ここで、前記メモリはリードオンリーメモリ(ROM)である。ここで、メモリは消去可能プログラム可能ROM(EPROM)である。ここで、メモリはフラッシュメモリである。ここで、マイクロコントローラはデジタル信号プロセッサ(DSP)である。ここで、前記装置は半導体チップに含まれている。デバイスは、第五のマイクロコントローラと、第五のマイクロコントローラにデバイス操作を制御させるように設定された第五の命令のセットを含む第五のメモリとをさらに備え、第五のマイクロコントローラは少なくとも第二のマイクロコントローラと通信する。第五のメモリに含まれる第五の命令のセットは、さらに第五のマイクロコントローラに前記デバイスをテストさせるように設定され、もしデバイスが操作可能であれば、第五の命令のセットは、第五のマイクロコントローラが少なくとも第二のマイクロコントローラに、該デバイスの利用可能であることを知らせる信号を送信するように構成される。第五のマイクロコントローラが少なくとも第二のマイクロコントローラに該デバイスの利用可能性を知らせる信号を送信するようにさらに構成された、第五のメモリに含まれる第五の命令のセットは、送信するデバイスのIDおよび必要なリソースのデータを含む。第二のメモリに含まれる第二の命令のセットは、さらに第二のマイクロコントローラが前記デバイスの利用可能性を知らせ、かつ、前記デバイスに利用可能なリソースを割り当てる信号を受信するように設定される。
【0017】
本発明のさらなる局面において、オペレーティングシステムの必要性を排除するコンピュータシステムにおいて利用するためのデバイスは、デバイス回路と、第一のマイクロコントローラと、該マイクロコントローラにデバイス回路を制御させるように構成された命令のセットを含むメモリとを備える。前記命令は、さらに前記マイクロコンピュータが中央処理装置(CPU)の操作を管理する第二のマイクロコンピュータと通信することを促進するように設定される。
【0018】
本発明をより理解するために、本発明で参照として援用される図に、参照が付け加えられる。
【発明を実施するための最良の形態】
【0019】
(本発明の詳細な説明)
本発明は、オペレーティングシステムの必要性を排除するコンピュータシステムにおけるハードウェア/ファームウェア層に関連する。本発明のひとつの局面では、ハードウェア/ファームウェア層は、デバイスマネージャ、インフォメーションマネージャ、メモリマネージャ、および、プロセスマネージャを含み、それらのマネージャは1つ以上の半導体チップに含まれ得る。個々のマネージャは、ROMまたはフラッシュメモリに組込まれたファームウェアに関連したマイクロコントローラを含む。ROMまたはフラッシュメモリは、デバイス管理、インフォメーション管理、メモリ管理、および、プロセス管理の計画されたタスクをマイクロコントローラに提供させる、命令セットを含む。半導体チップまたはチップセットは、コンピュータマザーボードに組込まれたとき、コンピュータハードウェアがオペレーティングシステムなしで作動することを可能にする。本発明の別の局面では、コンピュータシステムに接続されたディスクドライブ、モデム、プリンタ、およびビデオモニタのようなデバイスは、「スマートデバイス」であり、ここで、個々のデバイスは、デバイスマイクロコントローラと、ROMもしくはフラッシュメモリに組込まれたデバイスドライバを有する。オペレーティングシステムのないコンピュータシステムで使用される半導体チップは、利用可能なデバイスを調べる、診断テストを提供する、または、デバイスと通信するためのデバイスドライバを入手する必要がない。その代わりとして、デバイスマイクロコントローラは、設定と自己診断テストと、および、デバイスの操作を自発的に実行する組込みディスクドライバを利用する。もしデバイスが利用可能であれば、デバイスマイクロコントローラは、マザーボード上のトレースリンクを介して、オペレーティングシステムチップのないコンピュータシステムで使用される半導体チップに、リソース要求を含むID信号を送信し、デバイスが利用可能であることを知らせる。
【0020】
図5は、本発明の実施形態に沿ったオペレーティングシステムの必要性を排除する、ハードウェア/ファームウェア層504を含むコンピュータアーキテクチャ500のハイレベル層の図である。このアーキテクチャはまた、ハードウェアプラットフォーム層502およびアプリケーションプログラム層506を含む。ハードウェアプラットフォーム層502は、図2に示される従来のハードウェアプラットフォーム層と同様である。しかし、図13に関連して明らかになるように、様々なハードウェアコンポーネント、および、ディスクドライブ、モデム、プリンタ、ビデオモニタのようなデバイスが、ハードウェア/ファームウェア層504と相互通信することを許容するように、ハードウェアプラットフォーム層は改良される。アプリケーションプログラム層506は、図1に示される従来のアプリケーションプログラム層と同様であり、ワードプロセッサ、データベース、スプレッドシート、ブラウザなどのアプリケーションプログラムを含み得る。
【0021】
ハードウェア/ファームウェア層504は、上述したように、オペレーティングシステムのカーネルによってこれまで実行されていたサービスを提供する。図6に図示されるひとつの実施形態では、ハードウェア/ファームウェア層504は、ハードウェアプラットフォームに挿入された集積半導体チップ、もしくは、チップセット600の実施形態を採用している。オペレーティングシステムのないコンピュータシステムにおいて利用されるチップは、入力デバイス650、出力デバイス660、および、永久記憶デバイス670を備えるハードウェアプラットフォーム層において、CPUおよび様々なコンポーネントと相互通信する。この実施形態によれば、チップ600は、4つのマイクロコントローラと、好ましくはデジタル信号プロセッサ(DSP)612、622、632、642を含む。個々のDSPは、4つのルーティン、すなわち、デバイス管理ルーティン614、プロセス管理ルーティン624、メモリ管理ルーティン634、インフォメーション管理ルーティン644の1つを含む組込みファームウェアに連結されている。これらのルーティンは、オペレーティングシステム設計の当業者の知識の中にある。ファームウェアは、ROM、消去可能プログラム可能ROM(EPROM)、フラッシュメモリなどに組込まれ得る。マイクロコントローラおよび連結されたファームウェアは、図6に示されるデバイスマネージャ610、インフォメーションマネージャ640、メモリマネージャ630、および、プロセスマネージャ620の1つを形成する。デバイスマネージャ610は、入力/出力(I/O)デバイス650、660と永久記憶デバイス670とに、直接接続され、アクセスする。インフォメーションマネージャ640およびデバイスマネージャ610は、永久記憶デバイス670に、直接接続され、アクセスする。メモリマネージャ630は、メインメモリ206に直接接続され、アクセスする。プロセスマネージャ620は、CPU202に直接接続され、アクセスする。マネージャ610、620、630、640は一緒に接続されて、その結果、個々のマネージャは、1つもしくは複数のマネージャと通信できる。図7に示されるクロスバースイッチ750、または、図8に示されるメッシュ接続などの様々な接続方法が用いられ得る。個々のマネージャは独立に動作し、操作のために適用され得るこれらのコンポーネントとデバイスとのみ接するので、オペレーティングシステムのないコンピュータシステムにおけるチップを利用したこのアーキテクチャは、本質的に強固である。さらに、コンポーネントとデバイスとの相互通信は、クラッシュしがちなオペレーティングシステムのようなソフトウェアレベルに介入されることなく、ハードウェアレベルで実行される。ここで、マネージャのさらなる記述が与えられる。
【0022】
図6および図9に関連して、デバイスマネージャ610は、コンピュータシステムに接続された全てのデバイス650、660、670を識別し、かつ、図14に関連して明らかになるように、それらの接続手段と制御部の機能性とデバイスの容量および性能とを確立する。デバイス650、660、670をタスクに配分し、デバイスによる操作を開始させ、タスク完了についてデバイスに再要求することによって、デバイス管理ルーティン614は、デバイスマネージャ610がI/Oスケジューラとして動作するのを許可する命令を提供する。ユーザとコンピュータリソースとの相互通信は、マウスまたはキーボードのような入力デバイス650からデバイスマネージャ610に投入された要求を介して、デバイスマネージャ610を介してユーザのスクリーンに提供されるグラフィックユーザインターフェース(GUI)によって支えられる。
【0023】
図6と図10に関連して、プロセスマネージャ620は、デバイスマネージャ610を介して投入されたプロセス要求に応じて作動する。プロセス管理ルーティン624によって提供される命令を利用して、プロセスマネージャ620は、CPU202およびメインメモリ206内部のレジストリの割り当てを含む必要性に応じて、直接CPU202リソースを個々の要求に配分する。プロセスマネージャ620はまた、デバイスマネージャ610に、永久記憶装置670からメインメモリ206へ、該当データの移動を処理することを要求する。プロセスマネージャ620はまた、CPU202の容量およびプロセスの状態を連続してトラックし、個々のプロセスが割り当てられたリソースを終了および超過するとき、新しい動作をCPU202に再要求する。
【0024】
図6および図11に関連して、メモリ管理ルーティン634は、プロセスマネージャ620によって制御されるジョブの即時のメモリの必要性に応じて、メモリマネージャ630がメモリ206のリソースをプロセスマネージャ620に割り当てるための命令を提供する。メモリマネージャ630はまた、デバイスマネージャ610を介して、メモリ206のリソースのための直接の要求に応答する。メモリマネージャ630は、絶え間なくユーザ、および、利用されているメモリの個々の要素の関連する量をトラックする。そして、ジョブ終了時に、再利用可能なメモリのリソースを再要求し、作成する。メモリマネージャ630は、論理的にメモリのリソースを二つの領域に区分する。ひとつは、用いられている常駐のアプリケーション(例えば、MicrosoftTMWordTM)のために確保され、もうひとつは、プロセス要求(例えば、ExcelTMによって動作しているデータファイル、もしくは、C++で開発されたプログラム)のために確保される。用いられるアプリケーションは、アプリケーションメモリスペースに連続的に読み込まれる。ファイルおよびデータは、操作されているときはプロセスメモリスペースを占有するのみであり、メモリマネージャ630は、メモリのリソースのための外部のキューを、重み付けし、スケジューリングし、維持する。
【0025】
図6および図12に関連して、インフォメーションマネジメントルーティン644は、システム全体に対する完全なインフォメーションリソースレコードおよび管理性能を提供することによって、インフォメーションマネージャ640に、ユーザが計画し、および、現在使用しているコンピュータシステムの機能について決定する手段を提供するための命令を提供する。その他のマネージャから、および、接続された永久記憶デバイス670からの直接の入力を用いて、メインメモリ206の中にファイル管理レコードファイルを保存する。このファイルは、全てのファイルの場所と用途とサイズと、全てのファイルの状態(すなわち、開いている/閉じている、ファイルのタイプ、セキュリティレベル)と、メモリ206、入力デバイス650、出力デバイス660、および、永久記憶デバイス670の全体的な容量ならびに用法のレベルとを含む。
【0026】
コンピュータアーキテクチャのほかの局面は、グラフィックユーザインターフェース(GUI)およびアプリケーションプログラムインターフェース(API)を含む。GUIとAPIは、ソフトウェアとして実行され、オペレーティングシステムのないコンピュータシステムで利用されるチップ600によって呼び出されるまで、永久記憶デバイスに保存され得る。例えば、グラフィックユーザインターフェース(GUI)は、電源投入順序の間、適切なマネージャによって取り出されるまで、永久記憶デバイスの中に含まれ得る。GUIの設計はよく知られた技術であり、ここでさらに議論する必要はない。MicrosoftTMOfficeSuiteTM、LotusNotesTM、CorelDrawTM、SymanticTMWinfaxTM、および、ACTTMなどの現在利用可能なアプリケーションソフトウェアプログラムに関して、これら個々のプログラムは、アプリケーションに読み込まれる関連付けられたオペレーティングシステムインターフェースを必要とする。すなわち、特定のオペレテーティングシステム型にプログラムされたソフトウェアである。オペレーティングシステムを排除するコンピュータアーキテクチャの中でそのような現在利用可能なプログラムに対応するために、ソフトウェアに対応するAPIは、永久記憶デバイスの中に保存され、ソフトウェアがアプリケーションソフトウェアとチップ600との間のインターフェースとして動作するように操作される時に、メインメモリに呼び出される。代替として、APIはウェブサイトに保存されることができ、関連付けられたアプリケーションプログラムがメモリ206の中にロードされているときに、モデム246を介して、適切なAPIがメインメモリ206にチップ600によって呼び出される。
【0027】
図13は、オペレーティングシステムのないコンピュータシステムにおいて利用されるチップ600を含む、例示的なコンピュータマザーボード1300のレイアウトである。マザーボードはまた、回路およびメインメモリを構成するダイナミックランダムアクセスメモリ(DRAM)1302のアレイを支えながら、メモリコントローラ、ダイレクトメモリアクセス(DMA)コントローラ、インタラプトコントローラ、入力/出力(I/O)コントローラ、集積ドライブエレクトロニクス(IDE)コントローラなどの様々なコントローラを含むチップセットC1、C2、C3、C4を備える。また、マザーボード1300上には、CPU202を受取るために設定されたCPUスロット1303と、キーボードポート1304、ユニバーサルシリアルバス(USB)ポート1306、ゲームポート1307、シリアルポート1308、パラレルポート1312、フロッピー(R)ドライブコントローラ(FDC)コネクタ1314、プライマリおよびセカンダリIDEコネクタ1316、ならびに、拡張スロットのような様々な周辺デバイスコネクタとが備えられる。拡張スロットは、パーソナルコンピュータインターフェース(PCI)バススロット1318、インダストリスタンダードアーキテクチャ(ISA)バススロット1316、アドバンストグラフィックポート(AGP)バススロット1322などである。マザーボードは、さらに、BIOS ROM1326を含み、BOIS ROM1326は、パワーオンセルフテスト(POST)ルーティンを含むBOISを含む。1つの実施形態では、BIOSは、従来のPOSTと、システムレベルデバイス、および、I/Oインターフェース、キーボードコントローラ、ビデオコントローラ、タイマー、ダイレクトメモリアクセス(DMA)コントローラ、周辺インターフェースコントローラなどのようなコントローラの設定と、チップ600に対するブートストラップとのサービスを提供する。本発明の実施形態に沿うと、周辺デバイスコネクタおよび拡張スロットは、トレースリンク1328を介して、チップ600のそれぞれのマネージャに接続されている。トレースリンク1328を通って、デバイスとチップ600との間に直接の通信が生じる。
【0028】
デバイスはチップ600のデバイスマネージャ610に物理レベルで直接接続されており、デバイスの検知および管理は、任意のインフォメーション、メモリ、または、プロセッシング機能から分離されている。個々のデバイスをチップ600に対して利用可能にする手段は、デバイス自体内部に含まれる組込みデバイスドライバを有するマイクロコントローラを介する。
【0029】
図14に示されるスマートデバイス1400は、デバイスマイクロコントローラ1402と組込みデバイスドライバ1404とを、デバイス1400内部に含む。デバイス1400は、デバイス自体に、自己診断テストおよびデバイス操作を設定し、かつ、実行させることを可能にする。従って、スマートデバイスは、外部の制御ソースなしに独立に作動するという意味において、スマートである。スマートデバイスは、ディスクドライブ、モデム、プリンタ、ビデオモニタなどのようなデバイスを含む。スマートデバイスは、デバイスのサービスを利用可能にするために、オペレーティングシステムのないコンピュータシステムにおいて利用されるチップの中の適切なマネージャに結ばれる。本発明のひとつの局面によると、電源投入の初期化において、個々のデバイスマイクロコントローラ1402は、デバイス1400に含まれる組込みROMを指すスタートアップアドレスを有するので、デバイス1400内部の個別のデバイスマイクロコントローラ1402は起動される。ROMは、デバイスドライバ1404を含み得る。デバイスドライバ1404は、デバイスに特定であり、かつ、デバイスマイクロコントローラ1402によって設定および自己診断テストの実行のために用いられる。本発明のひとつの局面では、1つ以上のデバイス1400の中の個々のデバイスマイクロコントローラ1402は、設定と診断とを、自発的、かつ、同時または実質的に同時に実行する。もし前記手順の後、デバイス1400が使用できると判断されるなら、デバイスマイクロコントローラ1412は、図15に図示されるような、デバイス1400が利用可能であることを指示するID信号1500(レジストリに保存されている)を、オペレテーティングシステムのないコンピュータシステムにおいて利用されるチップ600に、トレースリンク1328を介して送信する。ID信号1500は、デバイスIDビット1502および必要なリソースデータビット1504を含み、直列もしくは並列に送信されるデータのビット列でもよい。前記信号は、プラグアンドプレイISA規格のシリアル識別子とリソースデータのフォーマットとに準拠し得る。記述すべきは、信号の設定は、あらゆるフォーマット標準において、デバイス製造とともに、もしくは、デバイス製造によって、決定され得る。デバイスマネージャ610は、識別信号の受信に基づいて、デバイスの存在を認知する。デバイスマネージャ610は利用可能なシステムリソースにアクセスするので、デバイスマネージャ610は、デバイスによって要求されたリソースを識別し、デバイスに適切なリソースを割り当てる。リソースの割り当ては、通常、システムリソースを要求する他のデバイスと衝突しないように実行される。デバイスに割り当てられたリソースは、デバイスへのポインタとして機能するアドレスが割り当てられる。記述すべきは、I/Oおよび記憶デバイスの数、および、それらと通信能力は、周辺デバイスコネクタ、拡張スロット、および、チップ600に接続されたトレースリンク全体の機能として事前に定められるので、ひとつの実施形態では、デバイスの検知および論理的接続性は、有限状態機構(finite state machine)に基づき得る。
【0030】
図13を参照してわかるように、オペレテーティングシステムのないコンピュータシステムにおいて利用されるチップ600は、CPU(CPUスロット1303)およびメインメモリ(メモリスロット1302)に直接接続されているように示される。このように、CPU202およびメモリ206(図6を参照)は、チップ600内部のプロセスマネージャ620とメモリマネージャ630とによって実行される、プロセス要求、および、マルチタスク管理に、完全に集中し得る。結果として、十分なメモリとCPUとの容量が利用可能でないとき、システムにもうこれ以上のプロセスが付加されることはなく、要求は入力デバイスレベルで拒絶され、システムレベルで潜在的なクラッシュが引き起こされることはない。プロセッシングとメモリ管理機能とを他のルーティンから分離する結果、処理速度は、上述のCPU202容量と、メモリ206容量と、チップ600とCPU202とメモリ206との間の移動速度との間の簡単な関係である。このことは、CPU202がその他種々のルーティンを処理するために切り替えられる必要がないので、コンピュータアーキテクチャのロバスト性、および、CPU202とメモリ206との間により高速の相互通信を提供する役目を果たす。
【0031】
メインメモリ204には常駐のオペレーティングシステムが存在しないので、メモリ容量の全てを、ユーザのタスクのためにすぐ直接利用可能である。メモリマネージャ630は、利用可能なメモリの容量、および、処理待ちのプログラムとデータとのキューの管理を対外的に実行し、十分なメモリがいつでもプロセス要求を支えるために利用可能であることを保証する。その結果として、プロセス要求を満足させ続けるために、記憶デバイスとメモリとの間で、データファイル、プログラムエレメント、もしくは、アドレスマップデータを絶え間なくスワップさせる必要がない。このことは、現在実行中の1つ以上のプログラムのための空間をメモリに確保するためにCPU202は不必要なファイルやプログラムエレメントをオフロードするという他のタスクに切り替えられることがないので、CPU202を最良の容量で操作するのに役立つ。
【0032】
インフォメーションマネージャ640は、永久記憶のアドレスのリストを保持し、要求されたとき、および、完了にあわせて、メモリへ、もしくは、メモリからファイルを転送する。メモリマネージャ630と接続されているので、上述の特徴は、プロセッシングおよびファイル管理レベルの両方で高速データアクセスを結果としてもたらし、ハードディスクメモリの利用を最小化/最適化する。
【0033】
記述すべきは、ソフトウェア(オペレテーティングシステム)の全体レベルがコンピュータシステムから取り除かれたために、このセクションはウィルス攻撃にさらされているシステムの危険性を低減することである。デバイス650、660、670、チップ600、CPU202、および、メモリ206の間の直接の物理的接続の結果、永久記憶デバイスから処理のために運ばれたファイルは、コンピュータシステムに入る時に他のソフトウェアインターフェースにさらされず、したがって、潜在的感染を避ける。外部からI/Oデバイス650、660へ入る外部の感染ファイルによって引き起こされるクラッシュは、デバイスレベルで発生し、システム全体に影響を与えない。オペレテーティングシステムのないコンピュータシステムにおいて利用されているチップのマネージャのモジュール性により、セキュリティ対策はインフォメーションマネージャ640で行われ得、例えば、外部の感染ファイルもしくはウィルスはフィルタリングされ、システム全体に感染ファイルやウィルスを暴露しない。
【0034】
セキュリティ予防のほかの例は、外部の感染デバイス(例えば、モデムまたはLANカード)がデバイスマネージャ610に接続されたとき、デバイスマネージャ610に組込まれたDataSecurityInspection(DSI)ソフトウェアがファイルを検査する。もしファイルが疑わしければ、デバイスマネージャ610は、ファイルをある保持領域に隔離し、ユーザに対してファイルの問題にフラグを立てる。そのファイルに該当する永久記憶デバイスを暴露せず、このようにシステムへの感染を避ける。
【0035】
図16〜25は、オペレテーティングシステムのないコンピュータシステムにおいて利用されるチップ600内部のマネージャによって実行される操作の例を示している。図16および図17は、本発明のひとつの実施形態に沿った電源投入順序を示している。電源投入において、ステージ172では、BIOS1326(図13を参照)がPOSTルーティンを呼び出すために起動される。ひとつの実施形態では、PhoenixTechnologies,Ltd製品のような商業上利用可能なBIOSが利用されるが、ブートストラップ手順では、チップ600にブートストラップするよう修正される。POSTは、標準メモリチェックを行い、BIOSをメインメモリ206へコピーする。ステージ174では、BIOSは様々なコントローラを設定し、チップ600のデバイスマネージャ610にブートストラップする。その間に、ステージ176では、図14に関連して述べられ、かつ、I/Oデバイス650、660によって表現されるような様々なスマートデバイス、および、永久記憶デバイス670は、セルフテストと、操作可能であれば設定を開始する。スマートデバイスは、ID信号が、スマートデバイスの利用可能性を指示できるようにする。デバイスマネージャ610は、個々のデバイス650、660、670の存在を検知する。キーボード、マウス、もしくは、ビデオモニタのようなデバイス650、660、670に対して、マザーボードBIOS ROM1326を介して信号が生成されるか、または、デバイスの組込みBIOSはチップ600と直接通信する。他のデバイス650、660、670に対する検知は、デバイスの信号生成器によって信号を送信される電気的連結性によって達成される。
【0036】
ステージ178では、個々のデバイス650、660、670の利用可能性、容量、性能は、有効である。論理的接続性は、有限状態機構概念(finite state machine concept)に基づいている。個々のデバイス650、660、670は、デバイスのポインタとして振舞うメモリ内部のアドレスを割り当てられている。
【0037】
ステージ180では、インフォメーションマネージャ640は、前回のシャットダウンにおいて検知されたシステムの状態を含むファイルを読み込む。インフォメーションマネージャは、個々の永久記憶デバイス670上のすべての利用可能なプログラムおよびデータファイルに対するレコードフィールドを指示するポインタを含む。ステージ182では、インフォメーションマネージャ640は、前もって決められた固定ドライブの位置からグラフィックユーザインターフェース(GUI)を読み出すための命令に従って、プロセスマネージャ620に制御をパスする。プロセスマネージャ620は、デバイスマネージャ610を介してビデオモニタの画面にGUIを表示する。インフォメーションマネージ640のアイコンは、シャットダウンの前にユーザによって画面に表示されていたデータまたはプログラムファイルを表示するアイコンと同様に、画面上に表示される。ここで、オペレテーティングシステムのないコンピュータシステムにおいて利用されるチップ600は、ユーザの要求またはその他の入力に応じて、検知し、動作する準備ができている。インフォメーションマネージャ640の問い合わせは、GUI、レコードフィールドファイル、および、デバイスレコードファイルがメモリ内部に常駐することを明らかにする。メモリは、接続されたデバイスおよびデバイスの現在の状態を指示する。
【0038】
図18および図19は、プログラム/ソフトウェアアプリケーションを作動させるための例示的な手順を示している。ステージ192では、ユーザは、この要求を、通常、マウスおよび/またはキーボードのような入力デバイス650、ならびに、それらデバイスのデバイスマネージャ610とのインターフェースを介して、入力する。ステージ194では、前記要求は、プロセスマネージャ620へ送られ、ステージ196において、プロセスマネージャ620は、メモリマネージャ630との接続により、メモリ内のレジストリから適切なファイルを識別する。プロセスマネージャ620は、十分なメモリ206およびCPU202のリソースが利用可能であるかどうかを識別し、リソースを割り当て、デバイスマネージャ610から前記ファイルを要求する。ステージ198では、デバイスマネージャ610は、デバイスからメモリへ該当するファイルを導く。ステージ202では、プログラムファイルの識別が、プロセスマネージャ620とメモリマネージャ630との間で発生する。ステージ204では、メモリマネージャ630は、メモリ管理をトラックし続ける、すなわち、プログラムによって使用されるメモリを割り当て続ける。プログラムは、配分されたリソースを終了、もしくは、超過するまで、実行される。プログラムが実行している間の記憶の要求は、ステージ206において、デバイスマネージャ610とメモリマネージャ630との間で調整される。製造過程のファイルの要求、待機、および、配達は、ステージ208において、プロセスマネージャ620とメモリマネージャ630との間で調整される。ステージ212では、さらなるユーザの入力が要求されると、プロセスマネージャ620は、デバイスマネージャインターフェース610を介して、ユーザの入力を要求する。インフォメーションマネージャ640は、ステージ214において、ユーザに、要求されれば残りのシステムリソースの状況を提供する。
【0039】
図18および図19はまた、同時処理の例示的な手順を図示している。プロセス間の通信および命令は、(例えば、スプレッドシートプログラムであるMicrosoft Excelは、プロセスマネージャ620に、プレゼンテーションプログラムであるMicrosoft Powerpointを実行するように要求する)同様の方法で処理される。ステージ208では、プロセス間の要求キューは、永久記憶デバイス670において生成され、そして、これらは、上述の方法により入力要求としてスケジューリングされる。プログラム管理がCPU202およびメモリ206の外で発生するので、ますます多くのプログラムを読み込み、かつ、実行し続けるための能力は、それら接続されたメモリ202およびCPU202の要求をプログラム要求と比較するという単純な機能である。プロセスマネージャ620およびメモリマネージャ630は、このタスクを処理する。メモリマネージャ630はまた、ステージ206の処理中において、メモリの割り当てより前に永久記憶にデータのキューを作るために、デバイスマネージャ610に、要求された情報を提供する。オペレーティングシステムなしのアプローチでは、続くプロセッサリソースの再要求のための判断基準は、特定の処理要求へプロセッサリソースを割り当てるより前に、あらかじめ定義される。この要求は終了し、かつ、次の処理が読み込まれる、もしくは、あらかじめ割り当てられたリソースを超過し、かつ、割り込まれるかのどちらかである。インフォメーションマネージャ640は、ユーザに、絶え間なく状況を指示し、潜在的なシステムのオーバーロードを事前に認知させる。さらに、システムをオーバーロードする不注意な試みは、そのプロセスが実行され得ないことを指示するメッセージによって、単純に対処される。CPU202とメモリ206はこの点において関係がないので、システムクラッシュの危険性はない。
【0040】
図20および図21は、出力(例えば、印刷情報)のための例示的な手順を図示している。ステージ222では、アプリケーション(例えばMicrosoft Word)は、デバイスマネージャ610によって直接「キューステーション」アプリケーションに送られる印刷ファイルを作成する。これは、先入れ先出し(FIFO)の原理に基づく標準的なソフトウェア操作である。このアプリケーションは、デバイスマネージャ610接続を介して、プリンタコントローラにより直接管理されるハードディスク上に常駐するか、もしくは、このアプリケーションは、理想的にはプリンタコントローラ自体に組込まれるかのどちらかである。ステージ224では、キューアプリケーションの最初のジョブは、プリンタのような出力デバイス660からのジョブが進行中であるという信号の受理に合わせて、印刷ジョブのために確保されたメモリのある場所に置かれる。プリンタが、ステージ226において、最初のジョブをデバイスマネージャ610に対する信号とともに解放するとき、ステージ228において、次のジョブがプリンタのメモリに読み込まれる。障害が発生した時は、「目下のジョブ」が、ただプリンタメモリから解放されるだけである。あらゆる問題はプリンタに限定され、システムクラッシュの危険性はない。もちろん、これと同じ手順が、ネットワークプリンタまたはその他のネットワークデバイスに、最小限の修正をもって適応され得る。キューアプリケーションは、起動時に識別されているLAN接続もしくはネットワークカードのいずれかを介して、データが、デバイスのIPアドレスへ向かうように道順を定める。再び、あらゆる問題は特定のデバイスに限定され、CPU202、もしくは、メモリ206内の他のプログラムまたはファイルに障害を与えない。
【0041】
図22および図23は、ファイル管理のための例示的な手順を図示している。ステージ232では、GUIを介して、ユーザはインフォメーションマネージャ640に問い合わせる。インフォメーションマネージャ640は、メモリ206および永久記憶670の両方に常駐するファイルについての情報を保持する。ファイルは二つの要素を含む。すなわち、ファイルについての全ての関連する情報(例えば、そのファイルがデータファイルなのかプログラムファイルなのか、または、そのファイルが読み取り専用なのかフルアクセス可能なファイルなのか)を含む記述子フィールドと、実際のデータフィールドである。インフォメーションマネージャの640の用途に合わせて、記述子フィールドだけがメモリに保存されており、実際のデータは保存されていない。記述子フィールドは、ファイルに基づく二次記憶に対しては、デバイスマネージャ610を介して、直ちに書き換えられ得る。結果として、ファイルのセキュリティレベル、タイプ変更、または、内容は、CPU202リソースを消費することなく、かつ、ファイル全体にアクセスすることおよびメモリ206のリソースを消費することなく、直ちに変更される。ステージ234では、ユーザが要求したファイルの転送は、デバイスマネージャ610に対するユーザの要求(例えばマウスを用いた)に従って、達成される。これは単に、ファイルをひとつの記憶デバイス670から他のデバイスに渡しているだけであり、ステージ236において、インフォメーションマネージャ640にファイルに関連したデバイスにおける変更を報告する。CPU202にもメモリ206にも、相互通信は要求されない。アプリケーションによって使用されているファイル(例えば、メモリに常駐している使用中のExcelファイル)をユーザが保存するためには、そのファイルは、通常の出力要求と同様に、メモリマネージャ630を利用して、デバイスマネージャ610を介し、該当するデバイスに送信される。あらゆる待機中の要求を含むこのプロセスは、上述の印刷プロセスと同様の方法で扱われる。
【0042】
図24および図25は、様々なコンピュータシステム操作を実行するための、一般的に接続されたマネージャインターフェイスと、適切なマネージャの相互通信を図示している。機能1では、プログラムまたはデータまたはファイルを検索するというようなユーザの処理要求は、デバイスマネージャ610を呼び出す。機能2では、モデムを介してジョブを印刷する、または、ファックスを送信するというような出力要求が原因で、デバイスマネージャ610は適切な出力デバイス660と相互通信する。永久記憶デバイス670からファイルを転送するというようなユーザの要求は、デバイスマネージャ610を呼び出し、永久記憶デバイス670にアクセスし、ファイルを検索する。機能5と連結した機能4では、ファイル情報のような情報に対するユーザの要求は、最初にデバイスマネージャ610を呼び出し、次に、デバイスマネージャ610は、要求の性質を決定し、インフォメーションマネージャ640へその要求を渡す。インフォメーションマネージャ640は、該当ファイルを含む永久記憶デバイスにアクセスし、要求されたファイル情報を検索する。ファイル情報はデバイスマネージャ610に渡され、デバイスマネージャはその情報をビデオモニタのような出力デバイス660を介してユーザに渡す。機能6〜12は、プログラムの実行に付随する。ユーザのプログラム実行の要求によって、機能6では、デバイスマネージャ610はプロセスマネージャ620にプロセス実行を要求する。機能7では、デバイスマネージャ610はメモリマネージャ630と相互通信し、そのプログラムをメモリ206に読み込む。機能8および9では、デバイスマネージャ610は、あるプログラムが実行されるべきであることをインフォメーションマネージャ640に知らせ、インフォメーションマネージャ640にプロセスの用法とプロセスの容量情報、および、メモリ206用法とメモリ202容量を集めさせる。機能10では、メモリマネージャ630は、プロセスマネージャ620と相互通信して、特にメモリ要求およびメモリスペースの割り当てを提供する。機能11では、プロセスマネージャ620は、絶えずCPU202実行サイクルを制御およびモニタリングしながら、CPU202にプログラムの実行を開始させるようにする。その間に、メモリマネージャ630は、絶えずメモリ206の用法および容量と、メモリ206の割り当てとを制御およびモニタリングする。
【0043】
このように、オペレテーティングシステムの必要性を排除したファームウェア/ハードウェア層を提供し、コンピュータのマザーボードに対する少しの修正を加えることによって、ユーザおよびコンピュータリソースおよびデバイスとの間に、ハードウェアレベルで、画期的な新たなインターフェースがもたらされる。オペレテーティングシステムの必要性を排除することは、より高速で、より安価で、より頑強で、かつ、より簡単な型であることにおいて、オペレテーティングシステムによって今まで操作されてきた全てのユーザの要求を満足させる。オペレーティングシステムを排除することはまた、デバイス製造およびアプリケーションプロバイダのプラットフォームへの依存を低減し、未来の開発をより単純にする。例えば、デバイス生産が、デバイスマイクロコントローラと、オペレーティングシステムへの依存性を排除する組込みデバイスドライバとを含むスマートデバイスを製造してもよい。アプリケーションプロバイダは、オペレーティングシステムによって設定されているインターフェースの決まりに関係なく、最適にソフトウェアを動作させる独自のAPIを作成してもよい。アプリケーションのさまざまな実施形態が述べられたが、本発明の範囲内でより多くの実施形態および実装が可能になるということは、当業者にとっては、明らかである。従って、本発明は公にされないのではなく、付属の請求項とそれに相当する観点で読まれるべきである。
【図面の簡単な説明】
【0044】
【図1】図1は、従来のコンピュータシステムアーキテクチャを示す。
【図2】図2は、図1のコンピュータアーキテクチャの従来のハードウェアプラットフォーム層を示す。
【図3】図3は、従来のベーシックインプットアウトプットシステム(BIOS)とカーネル起動操作とのフロー図である。
【図4】図4は、従来のオペレーティングシステムを示す。
【図5】図5は、オペレーティングシステムの必要性を排除するハードウェア/ファームウェア層を有するコンピュータアーキテクチャを示す。
【図6】図6は、本発明の実施形態に沿った、オペレーティングシステムのないコンピュータシステムにおいて使用される半導体チップである。
【図7】図7は、本発明の実施形態に沿った、オペレーティングシステムのないコンピュータシステムにおいて使用されるチップ内のさまざまなマネージャを接続するクロスバースイッチを示す。
【図8】図8は、本発明の別の実施形態に沿った、オペレーティングシステムのないコンピュータシステムにおいて使用される半導体チップ内のさまざまなマネージャを接続するメッシュ接続を示す。
【図9】図9は、本発明の実施形態に沿った、デバイスマネージャインターフェースを示す。
【図10】図10は、本発明の実施形態に沿った、プロセスマネージャインターフェースを示す。
【図11】図11は、本発明の実施形態に沿った、メモリマネージャインターフェースを示す。
【図12】図12は、本発明の実施形態に沿った、インフォメーションマネージャインターフェースを示す。
【図13】図13は、オペレーティングシステムおよびトレースリンクのないコンピュータシステムにおいて使用されるチップを含むコンピュータマザーボードの例示的なレイアウトである。
【図14】図14は、オペレーティングシステムチップのないコンピュータシステムにおいて使用される半導体チップに連結されたスマートデバイスを示す。
【図15】図15は、シリアルIDとリソースデータとを含むスマートデバイスにおけるレジスタフォーマットを示す。
【図16】図16は、本発明の実施形態に沿った、電源投入順序を示す。
【図17】図17は、本発明の実施形態に沿った、電源投入順序を示す。
【図18】図18は、本発明の実施形態に沿った、動作中のプログラム/ソフトウェアアプリケーションのための順序を示す。
【図19】図19は、本発明の実施形態に沿った、動作中のプログラム/ソフトウェアアプリケーションのための順序を示す。
【図20】図20は、本発明の実施形態に沿った、出力するための順序を示す。
【図21】図21は、本発明の実施形態に沿った、出力するための順序を示す。
【図22】図22は、本発明の実施形態に沿った、ファイル管理を行うための順序を示す。
【図23】図23は、本発明の実施形態に沿った、ファイル管理を行うための順序を示す。
【図24】図24は、本発明の実施形態に沿った、一般にプラットフォームコンピュータオペレーションと組み合わされたマネージャのインターフェースおよび相互作用を示す。
【図25】図25は、本発明の実施形態に沿ってコンピュータオペレーションを実行するために、一般的な、結合されたマネージャインターフェースと相互作用とを示す。
Claims (26)
- オペレーティングシステムの必要性を排除するコンピュータシステムであって、
中央処理装置(CPU)と、
メインメモリと、
さらなるユニットであって、
第一のマイクロコントローラと、
該マイクロコントローラにCPU操作を管理させるように設定された第一の命令セットを含む第一のメモリと
を備えるさらなるユニットと、
該さらなるユニットと該CPUと該メインメモリとの間の通信を促進するために、該さらなるユニットを該CPUと該メインメモリとに接続する複数のトレースリンクと
を備えるコンピュータシステム。 - 少なくとも1つのデバイスと、該デバイスを前記さらなるユニットとに接続するトレースリンクとをさらに備え、
該さらなるユニットは、
第二のマイクロコントローラと、
該第二のマイクロコントローラに該デバイスを管理させるように設定された第二の命令セットを含む第二のメモリと
を含む、請求項1に記載のコンピュータシステム。 - 前記さらなるユニットは、
第三のマイクロコントローラと、
該第三のマイクロコントローラにメモリ操作を管理させるように設定された第三の命令セットを含む第三のメモリと
をさらに備える、請求項2に記載のコンピュータシステム。 - 前記さらなるユニットは、
第四のコントローラと、
該第四のコントローラにデータ操作を管理させるように設定された第四の命令セットを含む第四のメモリと
をさらに備える、請求項3に記載のコンピュータシステム。 - 前記さらなるユニットにおける前記複数のマイクロコントローラが、一緒に接続され互いに通信される、請求項4に記載のコンピュータシステム。
- 前記さらなるユニットは、
前記複数のマイクロコントローラを接続するクロスバースイッチ
を備える、請求項5に記載のコンピュータシステム。 - 前記デバイスは、
第五のマイクロコントローラと、
該第五のマイクロコントローラに該デバイス操作を制御させるように設定された第五の命令セットを含む第五のメモリと
を備え、
該第五のマイクロコントローラは少なくとも前記第二のマイクロコントローラと通信する、請求項2に記載のコンピュータシステム。 - 前記第五のメモリの前記第五の命令セットであって、該第五のマイクロコントローラに前記デバイスをテストさせるようにさらに設定され、該デバイスが操作可能であれば、該第五の命令セットは、該第五のマイクロコントローラが、少なくとも前記第二のマイクロコントローラに該デバイスが利用可能であることを知らせる信号を送信するように設定される、請求項7に記載のコンピュータシステム。
- 前記第五のメモリの前記第五の命令セットは、前記第五のマイクロコントローラが、少なくとも前記第二のマイクロコントローラに、デバイスID、および、必要なリソースデータの送信を含む前記デバイスの利用可能性を知らせるための信号を送信するようにさらに設定される、請求項8に記載のコンピュータシステム。
- 前記第二のメモリの前記第二の命令セットは、前記第二のマイクロコントローラが、前記デバイスの利用可能性を知らせ、かつ、該デバイスが利用可能なリソースを配分するための前記信号を受信するようにさらに設定される、請求項9に記載のコンピュータシステム。
- コンピュータ操作を管理するための装置であって、
第一のマイクロコントローラと、
該マイクロコントローラに中央処理装置(CPU)操作を管理させるように設定された第一の命令セットを含む第一のメモリと
を備える装置。 - 第二のマイクロコントローラと、
該第二のマイクロコントローラにデバイス操作を管理させるように設定された第二の命令セットを含む第二のメモリと
をさらに備える、請求項11に記載の装置。 - 第三のマイクロコントローラと、
該第三のマイクロコントローラにメモリ操作を管理させるように設定された第三の命令セットを含む第三のメモリと
をさらに備える、請求項12に記載の装置。 - 第四のコントローラと、
該第四のコントローラにデータ操作を管理させるように設定された第四の命令セットを含む第四のメモリと
をさらに備える、請求項13に記載の装置。 - 前記複数のマイクロコントローラが、一緒に接続され互いに通信される、請求項14に記載の装置。
- 前記複数のマイクロコントローラを接続するクロスバースイッチ
をさらに備える、請求項15に記載の装置。 - 前記メモリがリードオンリーメモリ(ROM)である、請求項14に記載の装置。
- 前記メモリが消去可能プログラム可能ROM(EPROM)である、請求項14に記載の装置。
- 前記メモリがフラッシュメモリである、請求項14に記載の装置。
- 前記マイクロコントローラがデジタル信号プロセッサ(DSP)である、請求項14に記載の装置。
- 前記装置が半導体チップに含まれる、請求項15に記載の装置。
- 第五のマイクロコントローラと、
該第五のマイクロコントローラにデバイス操作を制御させるように設定された第五の命令セットを含む第五のメモリと
を備えるデバイスをさらに備える、請求項12に記載の装置。 - 前記第五のメモリの前記第五の命令セットは、前記第五のマイクロコントローラが前記デバイスをテストするようにさらに設定され、かつ、もし該デバイスが操作可能であれば、該第五のマイクロコントローラが、少なくとも前記第二のマイクロコントローラに該デバイスが利用可能であることを知らせるための信号を送信するように設定される、請求項22に記載の装置。
- 前記第五のメモリの前記第五の命令セットは、前記第五のマイクロコントローラが、少なくとも前記第二のマイクロコントローラに、デバイスID、および、必要なリソースデータの送信を含む前記デバイスの利用可能性を知らせるための信号を送信するようにさらに設定される、請求項23に記載の装置。
- 前記第二のメモリの前記第二の命令セットは、前記第二のマイクロコントローラが、前記デバイスの利用可能性を知らせ、かつ、該デバイスに利用可能なリソースを配分するための前記信号を受信するようにさらに設定される、請求項24に記載の装置。
- オペレーティングシステムの必要性を排除するコンピュータシステムにおいて利用するためのデバイスであって、
デバイス回路と、
第一のマイクロコントローラと、
該マイクロコントローラにデバイス回路を制御させるように設定された命令セットを含むメモリと
を備え、該命令は、該マイクロコントローラが中央処理装置(CPU)の操作を管理する第二のマイクロコントローラとの通信を促進するようにさらに設定されたデバイス。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/770,810 US6591358B2 (en) | 2001-01-26 | 2001-01-26 | Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU |
PCT/US2002/002310 WO2002059744A1 (en) | 2001-01-26 | 2002-01-25 | Modular microcontrollers managing cpu and devices without operating system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008110547A Division JP2008181569A (ja) | 2001-01-26 | 2008-04-21 | オペレーティングシステムなしでcpuおよびデバイスを管理するモジュラーマイクロコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004526233A true JP2004526233A (ja) | 2004-08-26 |
JP4491194B2 JP4491194B2 (ja) | 2010-06-30 |
Family
ID=25089754
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002560006A Expired - Fee Related JP4491194B2 (ja) | 2001-01-26 | 2002-01-25 | オペレーティングシステムなしでcpuおよびデバイスを管理するモジュラーマイクロコントローラ |
JP2008110547A Pending JP2008181569A (ja) | 2001-01-26 | 2008-04-21 | オペレーティングシステムなしでcpuおよびデバイスを管理するモジュラーマイクロコントローラ |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008110547A Pending JP2008181569A (ja) | 2001-01-26 | 2008-04-21 | オペレーティングシステムなしでcpuおよびデバイスを管理するモジュラーマイクロコントローラ |
Country Status (4)
Country | Link |
---|---|
US (4) | US6591358B2 (ja) |
EP (1) | EP1364282A4 (ja) |
JP (2) | JP4491194B2 (ja) |
WO (1) | WO2002059744A1 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009503738A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | 直接データファイル記憶を用いるフラッシュメモリにおけるデータ操作 |
JP2009503735A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | フラッシュメモリシステムのデータ記憶容量の解放 |
JP2009503745A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | ブロック管理を伴う不揮発性メモリ |
JP2009503729A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | 論理アドレス空間と直接データファイル方式で動作するインターフェイスシステム |
US7669003B2 (en) | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7814262B2 (en) | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in fixed sized storage blocks |
US7949845B2 (en) | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7055151B1 (en) * | 1998-04-03 | 2006-05-30 | Applied Micro Circuits Corporation | Systems and methods for multi-tasking, resource sharing and execution of computer instructions |
US7993194B1 (en) * | 1998-06-18 | 2011-08-09 | Aristocrat Technologies Australia Pty Limited | Method of linking devices to gaming machines |
US6785807B1 (en) * | 2000-03-06 | 2004-08-31 | International Business Machines Corporation | Method and system for providing bootcode support in a data processing system that uses a communications port that utilizes a first communications protocol, an external device that utilizes a second communications protocol, and a device driver that is loaded in response to booting to communicate with the external device through the communications port |
US6970957B1 (en) * | 2000-04-24 | 2005-11-29 | Microsoft Corporation | Dynamically configuring resources for cycle translation in a computer system |
TW548550B (en) * | 2001-05-16 | 2003-08-21 | Ibm | Method and system for efficient access to remote I/O functions in embedded control environments |
US6966051B2 (en) * | 2001-05-24 | 2005-11-15 | International Business Machines Corporation | Automatically generated symbol-based debug script executable by a debug program for software debugging |
US20030002458A1 (en) * | 2001-06-29 | 2003-01-02 | Bernheim Henrik F. | System and method for providing a communication system configurable for increased capacity |
US6931646B2 (en) * | 2001-06-29 | 2005-08-16 | Intel Corporation | Accessing a translated resource descriptor of a hardware device |
US7231637B1 (en) * | 2001-07-26 | 2007-06-12 | Mcafee, Inc. | Security and software testing of pre-release anti-virus updates on client and transmitting the results to the server |
US7351151B1 (en) * | 2001-08-20 | 2008-04-01 | Sierra Design Group | Gaming board set and gaming kernel for game cabinets |
US20030072027A1 (en) * | 2001-10-11 | 2003-04-17 | Haines Robert E. | Unique identifier for customer account and method |
US20030074547A1 (en) * | 2001-10-11 | 2003-04-17 | Haines Robert E. | Hardcopy output engine consumable supply management and method |
US20030074268A1 (en) | 2001-10-11 | 2003-04-17 | Haines Robert E. | User and device interactions for web consolidation |
US20030074442A1 (en) * | 2001-10-11 | 2003-04-17 | Haines Robert E. | Hardcopy output engine discovery method and apparatus |
US6654707B2 (en) * | 2001-12-28 | 2003-11-25 | Dell Products L.P. | Performing diagnostic tests of computer devices while operating system is running |
US6948058B2 (en) * | 2002-07-26 | 2005-09-20 | Mitac Technology Corp. | Method and device for playing multimedia files in semi-power on state of a computer |
US7370191B2 (en) * | 2002-07-26 | 2008-05-06 | Mitac Technology Corp. | Method and device for playing compressed multimedia files in semi-power on state of a computer |
US7017038B1 (en) * | 2002-08-26 | 2006-03-21 | Network Equipment Technologies, Inc. | Method and system to provide first boot to a CPU system |
CA2435655A1 (en) * | 2003-07-21 | 2005-01-21 | Symbium Corporation | Embedded system administration |
CN100336006C (zh) * | 2003-12-01 | 2007-09-05 | 国际商业机器公司 | 用于连接外设到计算机系统的方法和系统 |
CN100371917C (zh) * | 2004-09-22 | 2008-02-27 | 宏正自动科技股份有限公司 | 内建于硬件装置的驱动程序的安装方法 |
JP2006270675A (ja) * | 2005-03-25 | 2006-10-05 | Fujitsu Ltd | 情報機器連携装置、情報機器連携システム、並びに情報機器連携プログラム |
US20060242611A1 (en) * | 2005-04-07 | 2006-10-26 | Microsoft Corporation | Integrating programmable logic into personal computer (PC) architecture |
US20070011491A1 (en) * | 2005-06-30 | 2007-01-11 | Priya Govindarajan | Method for platform independent management of devices using option ROMs |
US7979733B2 (en) | 2005-12-30 | 2011-07-12 | Sap Ag | Health check monitoring process |
US8272000B2 (en) * | 2006-09-01 | 2012-09-18 | International Business Machines Corporation | System and method for abstracting computer disk image cloning capabilities from bootable media |
US8321598B2 (en) * | 2007-05-03 | 2012-11-27 | Fairchild Semiconductor Corporation | Method and circuit for capturing keypad data serializing/deserializing and regenerating the keypad interface |
JP2009193301A (ja) * | 2008-02-14 | 2009-08-27 | Nec Corp | 情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラム |
US20100122261A1 (en) * | 2008-11-11 | 2010-05-13 | Cray Inc. | Application level placement scheduler in a multiprocessor computing environment |
US8301716B2 (en) * | 2009-11-20 | 2012-10-30 | Time Warner Cable Inc. | Interface for a multi-processor gateway apparatus and method for using the same |
US8321501B2 (en) * | 2009-12-23 | 2012-11-27 | Intel Corporation | Secure out-of-band storage control |
US9208047B2 (en) | 2010-10-16 | 2015-12-08 | Hewlett-Packard Development Company, L.P. | Device hardware agent |
US9043179B2 (en) | 2011-01-06 | 2015-05-26 | International Business Machines Corporation | Voltage-driven intelligent characterization bench for semiconductor |
US20120179943A1 (en) * | 2011-01-06 | 2012-07-12 | International Business Machines Corporation | Method for information transfer in a voltage-driven intelligent characterization bench for semiconductor |
US8615373B2 (en) | 2011-01-06 | 2013-12-24 | International Business Machines Corporation | Voltage driver for a voltage-driven intelligent characterization bench for semiconductor |
US10042688B2 (en) | 2016-03-02 | 2018-08-07 | Western Digital Technologies, Inc. | Self-diagnosis of device drive-detected errors and automatic diagnostic data collection |
CN107621958B (zh) * | 2017-09-19 | 2020-11-06 | 四川福润得数码科技有限责任公司 | 一种嵌入式系统及其工作方法 |
US10678568B2 (en) * | 2017-11-02 | 2020-06-09 | International Business Machines Corporation | System resource allocation in respect of display interfaces |
US20230076376A1 (en) * | 2021-09-09 | 2023-03-09 | Texas Instruments Incorporated | Resource access in a microcontroller |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61148535A (ja) * | 1984-12-21 | 1986-07-07 | Fujitsu Ltd | 関数型/論理型言語処理装置 |
JPS61276027A (ja) * | 1985-05-31 | 1986-12-06 | Mitsubishi Electric Corp | オペレ−テイングシステムの記憶方式 |
JPS63501987A (ja) * | 1985-10-15 | 1988-08-04 | ユニシス・コーポレーション | 大型デ−タ処理システムにおいて多くの作動システム機能をオフロ−ドするための特殊目的プロセッサ |
JPH03129543A (ja) * | 1989-10-16 | 1991-06-03 | Matsushita Electric Ind Co Ltd | 主記憶装置管理方式 |
JPH0588931A (ja) * | 1991-09-27 | 1993-04-09 | Ricoh Co Ltd | 自己診断手段を有する端末装置 |
JPH05173849A (ja) * | 1991-12-19 | 1993-07-13 | Nec Corp | 障害情報収集方法 |
JPH07262101A (ja) * | 1994-03-17 | 1995-10-13 | Hitachi Ltd | 光チャネル制御装置の診断方法 |
JPH1055272A (ja) * | 1996-08-12 | 1998-02-24 | Matsushita Electric Ind Co Ltd | 半導体装置 |
JPH11353287A (ja) * | 1998-06-08 | 1999-12-24 | Hitachi Ltd | 並列システムにおけるプロセスのスケジューリング方式 |
JP2000231487A (ja) * | 1999-02-09 | 2000-08-22 | Matsushita Electric Ind Co Ltd | デジタル信号処理回路 |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4371925A (en) * | 1980-02-11 | 1983-02-01 | Data General Corporation | Data processing system having unique bus control operation |
JPH0640302B2 (ja) | 1984-01-30 | 1994-05-25 | 株式会社日立製作所 | 図式・ソ−スプログラム自動生成方法 |
US5764922A (en) * | 1986-11-04 | 1998-06-09 | Unisys Corporation | I/O system for off-loading operating system functions |
JPH0827645B2 (ja) * | 1987-04-27 | 1996-03-21 | 株式会社東芝 | プログラマブルコントロ−ラ |
US5261104A (en) * | 1990-03-22 | 1993-11-09 | International Business Machines | Flexible computer initialization |
US5319751A (en) | 1991-12-27 | 1994-06-07 | Intel Corporation | Device driver configuration in a computer system |
US5355498A (en) * | 1992-02-25 | 1994-10-11 | Sun Microsystems, Inc. | Method and apparatus for booting a computer system without loading a device driver into memory |
KR930020266A (ko) | 1992-03-06 | 1993-10-19 | 윌리암 에이취. 뉴콤 | 응용 프로그램 및 운영 시스템 확장을 컴퓨터와 인터페이스시키는 방법 |
EP0571170B1 (en) | 1992-05-18 | 2000-04-12 | Canon Kabushiki Kaisha | Encoding method and decoding method |
US5428787A (en) | 1993-02-23 | 1995-06-27 | Conner Peripherals, Inc. | Disk drive system for dynamically selecting optimum I/O operating system |
US5634074A (en) | 1993-05-07 | 1997-05-27 | Apple Computer, Inc. | Serial I/O device identifies itself to a computer through a serial interface during power on reset then it is being configured by the computer |
US5438681A (en) * | 1993-08-24 | 1995-08-01 | Mensch, Jr.; William D. | Topography for CMOS microcomputer |
US5490272A (en) | 1994-01-28 | 1996-02-06 | International Business Machines Corporation | Method and apparatus for creating multithreaded time slices in a multitasking operating system |
CA2137488C (en) * | 1994-02-18 | 1998-09-29 | Richard I. Baum | Coexecuting method and means for performing parallel processing in conventional types of data processing systems |
KR0130871B1 (ko) * | 1994-03-21 | 1998-04-21 | 김광호 | 디지탈 콘버젼스 보정방법 및 장치 |
US5748980A (en) | 1994-05-27 | 1998-05-05 | Microsoft Corporation | System for configuring a computer system |
US5559965A (en) | 1994-09-01 | 1996-09-24 | Intel Corporation | Input/output adapter cards having a plug and play compliant mode and an assigned resources mode |
JPH08212086A (ja) | 1994-09-30 | 1996-08-20 | Microsoft Corp | オフィスマシンのオペレーティングシステム及び方法 |
JPH08106394A (ja) * | 1994-10-03 | 1996-04-23 | Takumi Nakano | 制御部付加方式 |
US6108715A (en) | 1994-12-13 | 2000-08-22 | Microsoft Corporation | Method and system for invoking remote procedure calls |
US5495614A (en) * | 1994-12-14 | 1996-02-27 | International Business Machines Corporation | Interface control process between using programs and shared hardware facilities |
US5715456A (en) | 1995-02-13 | 1998-02-03 | International Business Machines Corporation | Method and apparatus for booting a computer system without pre-installing an operating system |
US6138140A (en) | 1995-07-14 | 2000-10-24 | Sony Corporation | Data processing method and device |
US5819112A (en) | 1995-09-08 | 1998-10-06 | Microsoft Corporation | Apparatus for controlling an I/O port by queuing requests and in response to a predefined condition, enabling the I/O port to receive the interrupt requests |
US5727227A (en) * | 1995-11-20 | 1998-03-10 | Advanced Micro Devices | Interrupt coprocessor configured to process interrupts in a computer system |
US6393495B1 (en) * | 1995-11-21 | 2002-05-21 | Diamond Multimedia Systems, Inc. | Modular virtualizing device driver architecture |
US5802265A (en) | 1995-12-01 | 1998-09-01 | Stratus Computer, Inc. | Transparent fault tolerant computer system |
US5754853A (en) * | 1995-12-15 | 1998-05-19 | Dell Usa, Lp | System for executing utility programs while preserving the state of a native operating system |
US5835964A (en) | 1996-04-29 | 1998-11-10 | Microsoft Corporation | Virtual memory system with hardware TLB and unmapped software TLB updated from mapped task address maps using unmapped kernel address map |
US5960087A (en) | 1996-07-01 | 1999-09-28 | Sun Microsystems, Inc. | Distributed garbage collection system and method |
US5819087A (en) | 1996-07-19 | 1998-10-06 | Compaq Computer Corporation | Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events |
US6061695A (en) | 1996-12-06 | 2000-05-09 | Microsoft Corporation | Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document |
WO1998027547A1 (en) * | 1996-12-16 | 1998-06-25 | Seagate Technology, Inc. | Bimorph piezoelectric microactuator head and flexure assembly |
US5878276A (en) | 1997-01-09 | 1999-03-02 | International Business Machines Corporation | Handheld computer which establishes an input device as master over the CPU when it is coupled to the system |
US5935224A (en) | 1997-04-24 | 1999-08-10 | Microsoft Corporation | Method and apparatus for adaptively coupling an external peripheral device to either a universal serial bus port on a computer or hub or a game port on a computer |
US6049854A (en) | 1997-05-09 | 2000-04-11 | Vlsi Technology, Inc. | System and method for sharing physical memory among distinct computer environments |
US5999989A (en) | 1997-06-17 | 1999-12-07 | Compaq Computer Corporation | Plug-and-play |
US5937200A (en) | 1997-11-21 | 1999-08-10 | Phoenix Technologies Ltd. | Using firmware to enhance the functionality of a controller |
US6128307A (en) * | 1997-12-01 | 2000-10-03 | Advanced Micro Devices, Inc. | Programmable data flow processor for performing data transfers |
US6418496B2 (en) * | 1997-12-10 | 2002-07-09 | Intel Corporation | System and apparatus including lowest priority logic to select a processor to receive an interrupt message |
US6330584B1 (en) * | 1998-04-03 | 2001-12-11 | Mmc Networks, Inc. | Systems and methods for multi-tasking, resource sharing and execution of computer instructions |
US6189050B1 (en) | 1998-05-08 | 2001-02-13 | Compaq Computer Corporation | Method and apparatus for adding or removing devices from a computer system without restarting |
US6145021A (en) | 1998-06-02 | 2000-11-07 | International Business Machines Corporation | Method and system for managing resource allocation for plug and play devices by providing only the resources required to the devices before system initialization |
US6189049B1 (en) | 1998-08-10 | 2001-02-13 | Micron Technology | Method for operating processor with internal register for peripheral status |
US6154836A (en) | 1998-08-17 | 2000-11-28 | International Business Machines Corporation | Method and system for configuring plug and play devices for a computer operating system |
US6628663B1 (en) * | 1998-12-04 | 2003-09-30 | International Business Machines Corporation | System and method for permitting a dumb device to create and transmit network packets |
US6272629B1 (en) * | 1998-12-29 | 2001-08-07 | Intel Corporation | Method and apparatus for establishing network connection for a processor without an operating system boot |
US6269480B1 (en) * | 1999-03-29 | 2001-07-31 | International Business Machines Corporation | Cross platform installer-with the ability to create platform independent variables of specific operating system variables from a scripting language |
US6463530B1 (en) * | 1999-06-10 | 2002-10-08 | International Business Machines Corporation | Method and apparatus for remotely booting a client computer from a network by emulating remote boot chips |
US6487656B1 (en) * | 1999-12-10 | 2002-11-26 | Phoenix Technologies Ltd. | System and method for providing functionalities to system BIOS |
US6785807B1 (en) * | 2000-03-06 | 2004-08-31 | International Business Machines Corporation | Method and system for providing bootcode support in a data processing system that uses a communications port that utilizes a first communications protocol, an external device that utilizes a second communications protocol, and a device driver that is loaded in response to booting to communicate with the external device through the communications port |
US6681282B1 (en) * | 2000-08-31 | 2004-01-20 | Hewlett-Packard Development Company, L.P. | Online control of a multiprocessor computer system |
-
2001
- 2001-01-26 US US09/770,810 patent/US6591358B2/en not_active Expired - Fee Related
-
2002
- 2002-01-25 JP JP2002560006A patent/JP4491194B2/ja not_active Expired - Fee Related
- 2002-01-25 EP EP02714790A patent/EP1364282A4/en not_active Withdrawn
- 2002-01-25 WO PCT/US2002/002310 patent/WO2002059744A1/en active Application Filing
-
2003
- 2003-05-23 US US10/444,768 patent/US7197626B2/en not_active Expired - Fee Related
-
2007
- 2007-01-23 US US11/626,248 patent/US20070118723A1/en not_active Abandoned
-
2008
- 2008-04-21 JP JP2008110547A patent/JP2008181569A/ja active Pending
- 2008-06-20 US US12/142,995 patent/US20090113173A1/en not_active Abandoned
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61148535A (ja) * | 1984-12-21 | 1986-07-07 | Fujitsu Ltd | 関数型/論理型言語処理装置 |
JPS61276027A (ja) * | 1985-05-31 | 1986-12-06 | Mitsubishi Electric Corp | オペレ−テイングシステムの記憶方式 |
JPS63501987A (ja) * | 1985-10-15 | 1988-08-04 | ユニシス・コーポレーション | 大型デ−タ処理システムにおいて多くの作動システム機能をオフロ−ドするための特殊目的プロセッサ |
JPH03129543A (ja) * | 1989-10-16 | 1991-06-03 | Matsushita Electric Ind Co Ltd | 主記憶装置管理方式 |
JPH0588931A (ja) * | 1991-09-27 | 1993-04-09 | Ricoh Co Ltd | 自己診断手段を有する端末装置 |
JPH05173849A (ja) * | 1991-12-19 | 1993-07-13 | Nec Corp | 障害情報収集方法 |
JPH07262101A (ja) * | 1994-03-17 | 1995-10-13 | Hitachi Ltd | 光チャネル制御装置の診断方法 |
JPH1055272A (ja) * | 1996-08-12 | 1998-02-24 | Matsushita Electric Ind Co Ltd | 半導体装置 |
JPH11353287A (ja) * | 1998-06-08 | 1999-12-24 | Hitachi Ltd | 並列システムにおけるプロセスのスケジューリング方式 |
JP2000231487A (ja) * | 1999-02-09 | 2000-08-22 | Matsushita Electric Ind Co Ltd | デジタル信号処理回路 |
Non-Patent Citations (2)
Title |
---|
CSND200001201015, 岡崎 俊彦, "Windows NT入門講座第6回 出発!NT経由2000行", PC WORK!, 19990818, 第6巻、第8号, p136〜139, JP, 株式会社毎日コミュニケーションズ * |
JPN6007008282, 岡崎 俊彦, "Windows NT入門講座第6回 出発!NT経由2000行", PC WORK!, 19990818, 第6巻、第8号, p136〜139, JP, 株式会社毎日コミュニケーションズ * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009503738A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | 直接データファイル記憶を用いるフラッシュメモリにおけるデータ操作 |
JP2009503735A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | フラッシュメモリシステムのデータ記憶容量の解放 |
JP2009503745A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | ブロック管理を伴う不揮発性メモリ |
JP2009503746A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | 直接データファイル記憶メモリにおけるデータ統合およびガベージコレクション |
JP2009503729A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | 論理アドレス空間と直接データファイル方式で動作するインターフェイスシステム |
US7669003B2 (en) | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7949845B2 (en) | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
US8055832B2 (en) | 2005-08-03 | 2011-11-08 | SanDisk Technologies, Inc. | Management of memory blocks that directly store data files |
US7814262B2 (en) | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in fixed sized storage blocks |
Also Published As
Publication number | Publication date |
---|---|
US6591358B2 (en) | 2003-07-08 |
US20070118723A1 (en) | 2007-05-24 |
JP4491194B2 (ja) | 2010-06-30 |
EP1364282A1 (en) | 2003-11-26 |
US7197626B2 (en) | 2007-03-27 |
JP2008181569A (ja) | 2008-08-07 |
WO2002059744A1 (en) | 2002-08-01 |
US20020103987A1 (en) | 2002-08-01 |
US20090113173A1 (en) | 2009-04-30 |
US20030200354A1 (en) | 2003-10-23 |
EP1364282A4 (en) | 2008-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4491194B2 (ja) | オペレーティングシステムなしでcpuおよびデバイスを管理するモジュラーマイクロコントローラ | |
JP3546678B2 (ja) | マルチos構成方法 | |
JP5801372B2 (ja) | システム管理モードのためのプロセッサにおける状態記憶の提供 | |
US8544021B2 (en) | Execution context isolation in a driver execution environment (DXE) with marshaling arguments to a common location in response to an LPC | |
US7284083B2 (en) | Dynamically configuring resources for cycle translation in a computer system | |
US7712104B2 (en) | Multi OS configuration method and computer system | |
US5519870A (en) | System and method for performing a continuous multi-stage function | |
TW445416B (en) | Upgrade card for a computer system and method of operating the same | |
EP1774435B1 (en) | Method and apparatus for discovering hardware in a data processing system | |
EP1252569B1 (en) | Virtual rom for device enumeration | |
WO2009151445A1 (en) | Method and apparatus for configuring a hypervisor during a downtime state | |
EP2951705A1 (en) | Assigning processors to memory mapped configuration | |
JPH1097490A (ja) | スケーラブル対称型マルチプロセッサにおいてバス幅またはバス・プロトコルを変更せずに割り込みを分散する方法および装置 | |
JPH1097509A (ja) | 対称型マルチプロセッサ・システムにおいて割り込みを分散する方法および装置 | |
CN115658277B (zh) | 一种任务调度方法、装置及电子设备和存储介质 | |
JP2004258840A (ja) | 仮想化されたi/oデバイスをもつ計算機システム | |
US6832278B2 (en) | PCI bar target operation region | |
US6963970B2 (en) | System and method for executing a fast reset of a computer system | |
JP2007035066A (ja) | マルチos構成方法 | |
US11226755B1 (en) | Core dump in a storage device | |
CN115220864A (zh) | 虚拟模式执行管理器 | |
US20240036881A1 (en) | Heterogeneous compute domains with an embedded operating system in an information handling system | |
JP2005056017A (ja) | 情報処理装置 | |
JP2004038995A (ja) | マルチos構成方法 | |
KR20050079579A (ko) | 컴퓨터 부팅 속도 향상 방법 및 이를 이용한 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050125 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071119 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080212 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080825 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081120 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20081128 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081222 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090126 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090305 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090703 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20091130 |
|
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: 20100330 |
|
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: 20100405 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130409 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |