(57)【特許請求の範囲】
【請求項１】
計算システムであって、
主中央処理装置（ＣＰＵ）マイクロプロセッサ、
前記主ＣＰＵマイクロプロセッサとは異なる命令集合を有するディジタル信号処理装置（ＤＳＰ）マイクロプロセッサ、
前記主ＣＰＵマイクロプロセッサと前記ＤＳＰマイクロプロセッサとに結合された記憶装置、
前記記憶装置内のファイルベースオペレーティングシステムであって、前記主ＣＰＵが他に係わって占有されている時間間隔中前記ＤＳＰが前記主ＣＰＵの動作を実行し、それによって前記計算システムの性能を高めるように配置され、前記計算システムはソフトウェアアプリケーションの少なくともソフトウェア部分を実行することができ、前記ファイルベースオペレーティングシステムは仮想メモリ内の何処でそのようなソフトウェア部分が開始し終了するかを示すハンドルを含む前記ファイルベースオペレーティングシステム、
前記ＤＳＰマイクロプロセッサに主ＣＰＵマイクロプロセッサ機能を行わさせるプログラムを含むＤＳＰカーネルソフトウェア
を備え、
何処に送り手ハンドルと受け手ハンドルとが存在するかを特定するために前記主ＣＰＵマイクロプロセッサが前記ファイルベースオペレーティングシステムを実行し、
前記主ＣＰＵマイクロプロセッサを制御して送り手ハンドルによって示される位置から受け手ハンドルによって示される位置へ情報を送るプログラムを前記ファイルベースオペレーティングシステムが含み、
前記ＤＳＰマイクロプロセッサに前記主ＣＰＵマイクロプロセッサの代わりに機能を実行させるために前記記憶装置内の何処に前記送り手ハンドルと前記受け手ハンドルとが存在するかに基づいて動作する前記ＤＳＰマイクロプロセッサを制御するプログラムを前記ＤＳＰカーネルソフトウェアが含む
計算システム。
【請求項２】
請求項１に記載の計算システムにおいて、前記ＤＳＰマイクロプロセッサと前記主ＣＰＵマイクロプロセッサとに結合されたビデオ集積回路を更に含み、前記記憶装置がディスクとダイナミックランダムアクセスメモリ（ＤＲＡＭ）を更に含み、前記ＤＲＡＭが前記ＤＳＰマイクロプロセッサと、前記主ＣＰＵマイクロプロセッサと、前記ビデオ集積回路とに対して統一メモリアーキテクチャ内で結合される、計算システム。
【請求項３】
請求項１に記載の計算システムにおいて、前記計算システムのアプリケーションをサポートする少なくとも１つのアプリケーション装置を更に含み、前記アプリケーション装置が物理層のみに減少させられかつ前記ＤＳＰマイクロプロセッサに結合されたハードウェアを更に含み、その結果、前記ＤＳＰマイクロプロセッサが前記物理層によって媒介される信号を利用する前記アプリケーションの残りを仮想化しかつ遂行する、計算システム。
【請求項４】
請求項１に記載の計算システムにおいて、前記ＤＳＰマイクロプロセッサによる実行用に前記記憶装置内に前記ＤＳＰカーネルソフトウェアが存在する、計算システム。
【請求項５】
請求項４に記載の計算システムにおいて、前記ＤＳＰマイクロプロセッサに結合されたＩ／Ｏポートを更に有し、前記ＤＳＰカーネルソフトウェアが前記ファイルベースオペレーティングシステムと協働するＤＳＰマイクロプロセッサ動作を制御し、前記主ＣＰＵマイクロプロセッサが占有されすぎて仮想ハードウェアを表す所与の機能を実行できない場合は、前記ＤＳＰマイクロプロセッサが前記機能を実行し、前記主ＣＰＵマイクロプロセッサと前記ＤＳＰマイクロプロセッサとの両方が自由である場合は、前記ファイルベースオペレーティングシステムによって決定されるに従って前記主ＣＰＵマイクロプロセッサ又は前記ＤＳＰマイクロプロセッサのどちらかが前記機能を実行するために選択され、それによって前記主ＣＰＵマイクロプロセッサ上か又は前記Ｉ／Ｏポート上かで動作する仮想ハードウェアを制御するプログラムを前記ファイルベースオペレーティングシステムが含む、計算システム。
【請求項６】
請求項４に記載の計算システムにおいて、前記ＤＳＰカーネルソフトウェアが前記ファイルベースオペレーティングシステムを用いて割り込みベースでＤＳＰマイクロプロセッサ動作を制御し、所与の機能に対する優先権が実時間に計算され、かつ機能がダイナミックに実行され、かつ前記ＤＳＰカーネルソフトウェアが前記ファイルベースオペレーティングシステムを供給し、それによって実時間優先権を計算することができる、計算システム。
【請求項７】
請求項１に記載の計算システムにおいて、前記ファイルベースオペレーティングシステムが前記ＤＳＰマイクロプロセッサ用プログラム空間について、かつ更に前記主ＣＰＵマイクロプロセッサと前記ＤＳＰマイクロプロセッサとの共用メモリモデルとしての読み出しデータ送り手空間と書込みデータ受け手空間とについて前記記憶装置に対するポインタアドレスを前記ＤＳＰマイクロプロセッサに供給するソフトウェアを含み、それによって前記配置が前記ファイルベースオペレーティングシステムを使用して前記ＤＳＰマイクロプロセッサを前記主ＣＰＵマイクロプロセッサに緊密に結合する、計算システム。
【請求項８】
請求項１に記載の計算システムにおいて、前記ファイルベースオペレーティングシステムが、１６ビットアプリケーション用にコールバック機能を通して、かつ３２ビット用にセマフォーを通してアプリケーションと通信する仮想デバイスドライバ（ＶｘＤ）を制御するソフトウェアを含む、計算システム。
【請求項９】
請求項１に記載の計算システムにおいて、前記ファイルベースオペレーティングシステムが前記ＤＳＰマイクロプロセッサと前記主ＣＰＵマイクロプロセッサとの間を通信するために使用される割り込みを仮想化するプログラムを含む、計算システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に改善されたパーソナルコンピュータ（以下、ＰＣと称する）回路、コンピュータシステム、及びこれらの動作方法に関する。
【０００２】
【発明が解決しようとする課題】
初期のコンピュータは、大きな空間を要し、室全体を占めた。時来、ミニコンピュータ及びデスクトップコンピュータが市場に出回ってきた。
【０００３】
普及しているデスクトップコンピュータには、「Ａｐｐｌｅ（商標）」（Ｍｏｔｏｒｏｌａ（商標）６８０ｘ０  マイクロプロセッサベース）及び「ＩＢＭ（商標）−互換機」（Ｉｎｔｅｌ（商標）又はその他のｘ８６マイクロプロセッサベース）等多種のものがあり、これらはＰＣとして知られ、オフィス及び家庭での使用に非常に普及してきている。また、いくつかのスーパスカラ及びＳｕｐｅｒＳＰＡＲＣ（商標）のような他の非常に高性能マイクロプロセッサに基づくワークステーションと呼ばれるハイエンド（ｈｉｇｈ  ｅｎｄ）デスクトップコンピュータも導入されている。
【０００４】
更に発展して、ノートブック寸法又はパームトップコンピュータが、携帯ユーザ応用のためにオプショナルに電池式を採っている。このようなノートブック及び小形コンピュータは、ミニチュア化、絶えずより高速、より高性能、より融通性及び充電間電池の長寿命化と云う相容れない目標を迫られる技術に挑戦している。また、ドッキングステーションと呼ばれるデスクトップ密閉容器はドッキングステーション内へはめ込まれる携帯用コンピュータを有し、かつこのような携帯用コンピュータ／ドッキングステーションシステムの改善が望まれる。しかしながら、これら全てのシステムは、一般に、中央処理装置（以下、ＣＰＵと称する）の選択がシステムの処理能力を決定しかつアドインカード（ａｄｄ−ｉｎ−ｃａｒｄ）、すなわち、組込みカードがＣＰＵに付加されて、モデム、マルチメディアのような特定応用又は機能を付加すると云う意味でＣＰＵ中心的である。回路、集積回路デバイス、あらゆる型式のコンピュータシステムにおける改善、かつ、なかでも、いま上に挙げた挑戦に取り組む方法が、本明細書に説明するように望まれる。
【０００５】
【課題を解決するための手段】
全体的に、かつ本発明の１つの形では、ＰＣシステムは、主ＣＰＵマイクロプロセッサ、ファイルベースオペレーティングシステム、及びディジタル信号処理装置（以下、ＤＳＰと称する）マイクロプロセッサを含み、これらは主ＣＰＵが他に係わって占有されている時間間隔中ＤＳＰが主ＣＰＵ動作を実行することができるように配置され、それによってこのＰＣシステムの帯域幅を広げる。このＰＣシステムは、多数のＣＰＵ及び（又は）多数のＤＳＰを含むこともできる。
【０００６】
本発明の他の形では、ＤＳＰマイクロプロセッサ、ビデオ／オーディオ制御論理回路、及び圧縮／伸張電子回路を含む組合わせビデオ／作像システムが、共に、ＤＳＰマイクロプロセッサ、主ＣＰＵマイクロプロセッサ、これら両マイクロプロセッサに結合されたメモリ管理回路、及びメモリ回路をメモリ管理路に結合するメモリ回路とローカルバスに結合され、それであるから、メモリ回路がＤＳＰ、主ＣＰＵ、ビデオ／オーディオ制御論理回路、及び圧縮／伸張電子回路に対する統一メモリアーキテクチャとして働き、かつＤＳＰがビデオ／オーディオ制御論理回路及び圧縮／伸張電子回路の両方に関する処理機能を遂行する。加えて、ビデオ／作像機能の部分を仮想化するソフトウェアがこのシステムに付加されることがある。
【０００７】
本発明は、ＰＣを総合的にソフト高度化するシステムを提供する。
【０００８】
本発明は、アドインカードを通してアドイン特徴、すなわち、組込み特徴をまとめて取り扱うことによって性能を向上するシステムを提供する。
【０００９】
本発明は、マザーボード実現のためにコア論理内の特徴を集積化する方法論を提供する。
【００１０】
本発明は、ＣＰＵチップ上にシステムの全機能集積化する。
【００１１】
本発明は、主ＣＰＵ、ＤＳＰ、及び実質的に物理層のみに減少したアプリケーションハードウェアの少なくとも１つの片を有し、それであるからそのＤＳＰがこの物理層によって媒介される信号に関連したアプリケーションの残りを仮想化しかつ遂行するシステムを提供する。このシステムは、多数のアプリケーション及び層を採用することがある。ＤＳＰは、例えば、ローカルエリアネットワーク（以下、ＬＡＮと称する）、ビデオコントローラ、画像圧縮／伸張電子回路、ファックス、及びモデムを仮想化する。
【００１２】
本発明は、ＤＳＰコア、マスタ／スレーブバスインタフェース、このインタフェースに結合された先入れ先出し（以下、ＦＩＦＯと称する）機能を含むメモリ回路、及びＤＳＰコアに結合されたＲＡＭ機能を有する集積回路を提供する。
【００１３】
本発明は、ＤＳＰコア、マスタ／スレーブバスインタフェース、及びこのインタフェースに結合されたＦＩＦＯ機能を含むメモリ回路、及びこのメモリをＤＳＰコアに結合する単一命令／多重データ制御回路を含む集積回路を提供する。
【００１４】
本発明は、ＤＳＰコア、マスタ／スレーブバスインタフェースと翻訳回路を含むインタフェース回路、マスタスレーブバスインタフェースに結合されたＦＩＦＯ機能と翻訳回路に結合されたＲＡＭ機能を含むメモリ回路を有し、前記ＤＳＰコアが前記メモリ回路とインタフェースに結合される集積回路を提供する。
【００１５】
本発明は、第１バスインタフェース回路、ディスプレイインタフェースを有するディスプレイコントローラ回路、及び第２バスインタフェース回路を有し、前記ディスプレイコントローラ回路が前記第２バスインタフェース回路に結合されたバスマスタリング回路を含むビデオコントローラ集積回路を提供する。
【００１６】
本発明は、次のようなソフトウェアシステムを提供する。すなわち、オペレーティングシステム、少なくとも１つのマルチメディアドライバ、ｘ８６オブジェクトコードアプリケーション、ハードウェアアプリケーションを仮想化する非ｘ８６ＤＳＰコードアプリケーション、及びＤＳＰカーネルソフトウェアを有するソフトウェアシステムであって、このカーネルソフトウェアが、オペレーティングシステム及び（又は）マルチメディア実時間事象と関連して、実時間割り込み、及び（又は）直接メモリアクセス（以下、ＤＭＡと称する）仮想化及び（又は）ＤＳＰコア内でのマルチスレッドマルチタスキングオペレーションを遂行するためにＤＳＰコア上で動作可能であり、及び（又は）ＤＳＰコアに、そうでなければｘ８６によって遂行されるメモリトランザクション機能及び（又は）入出力（以下、Ｉ／Ｏと称する）トランザクション機能を遂行させる。
【００１７】
本発明は、処理素子、前記処理素子に接続された相互接続回路、前記処理素子（又は前記相互接続回路）に接続されたメモリ電子回路、前記相互接続回路に接続された多重化バス、及び予め選択されたアプリケーション機能を遂行するために前記多重化バスに接続された仮想化回路を有す計算システムを提供する。
【００１８】
本発明は、第１多重化バスインタフェース回路、第２多重化バスインタフェース回路、及び前記第１多重化バスインタフェース回路と第２多重化バスインタフェース回路に接続された少なくとも１つの信号処理素子を有する予め選択されたアプリケーション機能を遂行する仮想化回路を提供する。
【００１９】
他の改善されたＰＣ装置、システム、及びこれらの動作方法もまた特許請求の範囲で請求される。
【００２０】
本発明は、添付図面と関連して次の詳細な説明を参照することによって理解される。
【００２１】
これらの添付図面において、もし他に指示がなければ、同一機能を有する部品は同一符号で示してある。
【００２２】
【発明の実施の形態】
図２７を初めに参照すると、本発明の改善されたＰＣ１００のブロック図が示されている。図２７で、マイクロプロセッサユニット（ＭｉｃｒｏＰｒｏｃｅｓｓｏｒ  Ｕｎｉｔ、以下、ＭＰＵと称する）ブロック２７０２は、４８６（又はＰ５）ＣＰＵ、又はｘ８６ＣＰＵの他のいずれかの型式、ダイナミックＲＡＭ（以下、ＤＲＡＭと称する）コントローラ回路、及び周辺デバイス相互接続（以下、ＰＣＩと称する）ブリッジ回路を含む。ＰＣ１００は、マルチメディアアプリケーション能力を有する。
【００２３】
ローカルＣＰＵバス２７０６は、ＭＰＵブロック２７０２をＤＲＡＭ２７１４に接続する。このＤＲＡＭは、好適には、少なくとも４Ｍの容量を有する。もっとも、多かれ少なかれメモリがこのように採用されるのは明白である。ローカルバス２７０６は、種々のＣＰＵが同じバス上で使用されるようにＣＰＵを独立させて維持するように設計される。
【００２４】
ＰＣＩバス２７１０は、ＣＰＵブロック２７０２内のＰＣＩブリッジを経由してブロック２７０２内のＣＰＵに接続される。このようにして、ＰＣＩ２７１０バスは、広い帯域幅バスを提供し、かつまた、そうでなければローカルバス２７０６を不利にロードするおそれのある多種の周辺デバイスに対してコネクタを提供する。
【００２５】
周辺処理装置（以下、ＰＰＵと称する）２７１８は、ＰＣＩバス２７１０をＩＳＡ／ＡＴバス２７３４に接続するシステムブリッジとして働く。また、ＰＣＭＣＩＡカード又はＰＣＭＣＩＡカードバス用ＰＣＭＣＩＡブリッジ２７２６がＰＣＩバスに接続する。ＰＣＩバスに接続されたネットワークブリッジ２７３０は、ＬＡＮブリッジと同じように複雑でないものでよく、又は広域ネットワーク（以下、ＷＡＮと称する）ブリッジ、無線周波数（以下、ＲＦと称する）ブリッジ、非同時伝送モード（以下、ＡＴＭと称する）ブリッジ又は総合サービスディジタル網（以下、ＩＳＤＮと称する）ブリッジであってよい。ブリッジのこれらの型式の各々は、ＰＣＩバス上に直接かなり多量のトラフィックを発生し、及びローカルバス２７０６上に間接にかなりのトラフィックを発生する。ＰＣ１００は、ユーザ入力用にこれに接続されたキーボード及びマウス（図２７には示されていない）、及びＣＰＵ出力のユーザ観察用ディスプレイ又はＣＲＴ（図２７に示されていない）を有する。
【００２６】
図２７において、バス２７０６、２７１０、及び２７３４、は、相互接続されていない。ＩＳＡ／ＡＴバス２７３４に接続されて、例えば、ゲーム２７３９、ハードディスク装置２７４２、プリンタ２７４６、ファックスデータモデム２７５０、電話代理応答機（ＤＴＡＤとも称する）２７５４、業務用オーディオブロック２７５８、及びマルチメディアＰＣ用ＣＤ（コンパクトディスク）装置２７６２のような、しかしこれらに限定されないオプショナルアクセサリ周辺デバイスの集合が表示されている。これらのＩＳＡブロックの各々は、パートタイム機能を遂行するアクセサリ周辺デバイスであり、かつ多くのもの（星印を付されたもの）はＤＳＰを含む。
【００２７】
一般に、図２７でＰＣＩバス２７１０に接続された他のブロックは、ＩＳＡ／ＡＴバス２７３４に接続された全ての周辺デバイスとほぼ同じ位のコストがかかる。例えば、業務用オーディオシステム２７５８の総合システムコストは、１０ドル未満、すなわち総合ＰＣシステムコストの約０．５％未満のはずである。
【００２８】
コスト低減の構図（ｒｏａｄｍａｐ）、将来の高度化へと、及び現存する（「遺産」）ソフトウェア目標との互換性は、いずれの改善されたＰＣシステムにとっても重要な目標である。本発明のシステム実施例は、システムレベルでの改善がこれらの目標を達成し得ることを確認しかつ証明する。特に、システム実施例は、ＰＣマザーボードに含まれるそのいずれもが、好適には、低コスト、ソフトウェア無用、及び本質的に無視可能なマザーボードエリアしか占めないことを確認する。
【００２９】
ＤＯＳ及びＷｉｎｄｏｗｓ（商標）３．１１との後方互換性（ｂａｃｋｗａｒｄ  ｃｏｍｐａｔｉｂｉｌｉｔｙ）が、本発明の「仮想」ハードウェアによって提供されると云える。仮想ハードウェアは、図２７に示された全ての機能が固定されかつ専用され、及びたとえこれらの機能が分散されても更新可能でないことを意味する。ソフトウェアは、それらを仮想化するのを助援することができる。もし１チップが図２７に示された機能の全てを実現するならば、このチップは非常にプログラマブルなものであろう。したがって、本発明の種々の実施例は、図２７に示した全ての冗長なかつ相容れないハードウェアを組み合わせて図２７に示された機能の全てを「仮想化」するのに充分にプログラマブルであるいくつかのチップを作成し、かつ、最終的に、これらの機能を遂行する単一チップを提供する。
【００３０】
Ｗｉｎｄｏｗｓは、最近及び将来のＰＣ用オペレーティングシステム（以下、ＯＳと称する）であって、かつライブラリにダイナミックにリンクし、それであるからソフトウェアは実行時間前にコンパイルされかつリンクされなくてよく、例えば、ダイナミックリンクローディング（以下、ＤＬＬと称する）はラン時間までリンクされず、かつ仮想ソフトウェアを提供する。これが、ソフトウェア寸法を縮小する。
【００３１】
一般に、従来のＣＰＵシステムは、種々のアプリケーションを実現するために固定ＣＰＵハードウェアを使用するが、しかしそのＣＰＵはＡＴバス又は図２７に示された全てのＩ／Ｏポートに係わることでがきない。本明細書に後に説明される本発明の一実施例では、ハードウェアがこれを正にできるようにする。
【００３２】
マルチメディアアプリケーション用に、システムブリッジ２７１８内のＤＭＡ２７１９及び割り込みコントローラ２７２０が、固定ハードウェア及び固定機能を有する。本発明の一実施例では、ＤＭＡ及び割り込み制御は仮想化される。マルチメディアをサービスするに当たって２つの鍵になる挑戦が、マルチメディアデータ用広帯域幅に及び実時間割り込みをサービスする能力に必要である。これらの挑戦は、障害、及び実時間事象をサービスする能力に制約又は限界を持ち込む割り込み可能性を生じることがある。これの全てを、本発明の実施例では、ハードウェアを仮想化して、例えば、ハードウェアを多数の個性を帯びるようにプログラマブルにすることによって克服する。ハードウェアが割り込みハンドラ（ｈａｎｄｌｅｒ）の個性を帯びるとき、それはＣＰＵの部分又はそうでなければ実時間能力のあるＣＰＵ及びＯＳの拡張であって、コプロセッサ又は付属装置ではない。
【００３３】
仮想ハードウェアは、同時にＣＰＵ内とＯＳ内とに係わる移動性を有する。これを物理的に達成する方法は知られていないので、本発明の教示に従って仮想化が実現される。プログラマブルであるＤＳＰ解決及びコアは、仮想ハードウェアの基礎として働き、これは、本明細書に説明されるようにカスタム化されかつ改善される。
【００３４】
ＤＳＰコアは、本発明の実施例に必要な種々の仮想化をランするために高度に有利な基礎である。しかしながら、ＤＳＰはメモリ周辺デバイス及びローカルＤＳＰバスを利用し、これが更に加わる挑戦を導入する。本発明の教示を使用すると、正反対に異なるＤＳＰが、Ｐｅｎｔｉｕｍ（Ｒ）のような、ｘ８６ＣＰＵのように「見える」ように作られ、又はこの逆にも作られる。
【００３５】
ソフトウェアリンクが、ＤＳＰとその周辺デバイスをｘ８６ＣＰＵに緊密に結合するために使用され、かつ、これを行うのに、例えば、Ｗｉｎｄｏｗｓ９５のような、しかしこれに限定されない、普及したＯＳを使用する。このソフトウェアリンクは、ＤＳＰとその周辺デバイスが同じチップ上にある場合よりもこれら２つを緊密に結合する。それゆえ、ことごとくがソフトウェアに作られ、ハードウェアとソフトウェアとの間の線がはっきりしておらず、或る著しい利点を達成する。結局、電話線によって又は制御情報転送によって遠隔的に高度化可能なソフトウェアを有する単一チップが得られる。
【００３６】
図１９ａは、Ｗｉｎｄｏｗｓ３．１１内で支配的な層構造アーキテクチャを示す。アプリケーションブロック１９０２は、音声アプリケーションのような、マルチメディアアプリケーションである。ブロック１９０２の下の普通ブロックは、独立系ソフトウェアベンダー（以下、ＩＳＶ）にトランスペアレントである。Ｗｉｎｄｏｗｓアプリケーションは、クライアント／サーバモデルを使用し、この場合アプリケーションはクライアントであり、かつサーバはそのリクエストを取り扱うものは何でもそうである。そのリクエスリトの発する方（ｉｓｓｕｅ）が、多くの場合、正しいサーバが見つけている。ブロック１９０６は、ブロック１９０２の下の第１層ＭＭＳＹＳＴＥＭ（マルチメディアシステム）であり、マルチメディアハードウェアと通信し、かつ音声  ．ＷＡＶファイルを再生する。Ｗｉｎｄｏｗｓ．ＷＡＶ  ドライバブロック１９１０は、このシステム内の第２層又は第１ドライバ層であり、アプリケーション１９０２からのリクエストを取り扱い、かつ圧縮を伴わず  ．ＷＡＶフォーマットで信号を再生する。ＣＰＵ環境内の最下層は、ＤＳＰドライバ１９１４であり、これはハードウェア適合層（以下、ＨＡＬと称する）内のハードウェアを仮想化する仮想デバイスドライバである。オーディオ圧縮マネージャ（以下、ＡＶＭと称する）ドライバ１９１８は、システム内に圧縮／伸張機能性を提供し、かつブロック１９１４と通信する。これは、ＣＰＵ２７０２側からの画像マッピングを完全にする。
【００３７】
これは、クライアント／サーバアーキテクチャへプラグインする方法をＷｉｎｄｏｗｓアーキテクチャ内に提供する。それゆえ、Ｗｉｎｄｏｗｓを通してＤＳＰサーバ又はオーディオ圧縮サーバをプラグインすることができ、それらの機構はどれも同じである。図１９ａは、所望のどれかのアーキテクチャをＷｉｎｄｏｗｓにプラグインする方法を示す。また、これは、後方互換性に対する鍵であると共に、将来への優れた（ｂｌａｎｄ）新たな非浸入性の（ｎｏｎｉｎｔｒｕｓｉｖｅ）構図を確立する。
【００３８】
次に、図１９ｂで、仮想ハードウェア環境１９２２が、既に利用可能な最大第３者設置ソフトウェアベース（例えば、モデム、オーディオ機器等）に適合する特別ＤＳＰカーネルソフトウェアを備えたＴＩ  ＴＭＳ３２０Ｃ５ｘ  ＤＳＰで以て、しかしこれに限定されることなく、実現されている。ことごとくがプリエンプティブ割り込み（ｐｒｅｅｍｐｔｉｖｅ）ベースでランし、及び優先権が実時間に計算されかつダイナミックに実行される。しかしながら、ＯＳが実時間に優先権を計算することができるように或る何かがＯＳを供給しなければならない。その或る何かが実時間カーネルソフトウェア１９２２である。これはＷｉｎｄｏｗｓ  ＯＳを補完し、かつこれと相容れないようなことはなく、これを拡張するように働く。これによって、マルチスレッドかつマルチタスキングシステムが提供される。
【００３９】
次に、オーディオコンバータブロック１９２６がＤＳＰ側上でオーディオ圧縮／伸張を遂行するのに対して、ＡＣＭドライバブロック１９１８がＣＰＵ側で同じ機能を果たすこともできる。しかしながら、もしそのＣＰＵが占有されており、この機構を遂行する時間を持たないならば、ＤＳＰがそれを取り扱うことがある。もしＣＰＵもＤＳＰも自由ならば、ＣＰＵとＤＳＰの間の線をはっきりさせないソフトウェアの能力のために、これらのいずれか又は両方がこの機能を行うことができる。それゆえ、全て、ＯＳを通しての有利な結果として、ＣＰＵはＤＳＰを体現でき、かつＤＳＰはＣＰＵを体現できる。従来、ＣＰＵはデータ移動を遂行するが、これはＣＰＵが３２又は６４ビットチャンクで移動を遂行できるからである。しかしながら、本発明では、ＤＳＰに対するアプリケーション呼び出し内のアルゴリズム性の強い（ａｌｇｏｒｉｔｈｕｍｉｃ  ｉｎｔｅｎｓｉｖｅ）ブロックがそれを行う。このようにして、アプリケーションが加速されると云える。
【００４０】
ＤＳＰコーデックドライバ１９３０は、ステレオコーデック１９３４に結合する。好適には、このシステム実施例の場合、コーデック更新を考慮に入れるために、ＤＳＰに対して１チップを外部ステレオコーデック１９３４と共に適当に使用する。
【００４１】
図１は、本発明の改善されたＰＣシステム１００のブロック図を示す。図１で、ＰＣシステム１００はＣＰＵ１０２を含み、このＣＰＵはキャッシュ１０４及びホストブリッジ１０８に接続される。ホストブリッジ１０８は、主メモリバス１０６（ときには、ＣＰＵバス又はローカルバスと称する）に接続され、これによって主メモリ１１２に、かつまたＰＣＩバス１１６に接続される。ＰＣシステム１００は、ユーザ入力用にこれに接続された典型的にキーポード及び（又は）マウス（図１には示されていない）、及びＣＰＵ出力のユーザ観察用ディスプレイ又はＣＲＴ（図１には示されていない）を有する。仮想ＤＳＰ回路２００は、ＰＣＩバス１１６に接続される。システム１００用に低速から高速直列キャプチャポートを実現するＰ１３９４／ＵＳＢ（上側波帯）ブロック１２０は、ＰＣＩバス１１６に接続される。Ｉ／Ｏブロック１２４は、図１に示されており、ＰＣＩバス１１６に接続される。このＩ／Ｏブロック１２４は、ＡＴＭ／ＬＡＮ、ＩＳＤＮ又はＲＦリンクであってよい。ＤＳＰブロック２００は、これらの種々の全てのＩ／Ｏシステムにオプショナルに接続する。
【００４２】
ＤＳＰ２００は、ブロック１２４の上掲の機能又はアプリケーションを遂行するために必要なハードウェアを「仮想化」するＤＳＰ２００の能力があるので、Ｉ／Ｏブロック１２４を包含する又は置換することができる。
【００４３】
図１で、ＤＳＰブロック２００に適当なモデムソフトウェアを備えることによって過去のモデムが仮想化されている。仮想化されることがある他の類似のアプリケーションは、スピーカホーン、スピーチ、ＤＳＶＤ（ｄｉｇｉｔａｌ  ｓｉｍｕｌｔａｎｅｏｕｓ  ｖｏｉｃｅ  ａｎｄ  ｄａｔａ  ｍｏｄｅｍ）、Ｔ．１２０トランスポート層、ＶＤＳＶＤ（ｖｉｄｅｏ  ｄｉｇｉｔａｌ  ｓｉｍｕｌｔａｎｅｏｕｓ  ｖｏｉｃｅ  ａｎｄ  ｄａｔａ）である。図１の「長円形ブロック」は、これらアプリケーションの或るものを示す。
【００４４】
他の仮想化可能アプリケーションには、ビデオ圧縮／伸張用ベクトル量子化（以下、ＶＱと称する）、ビデオ圧縮／伸張用ＭＰＥＧ、ＩＳＤＮに基づく室内会議Ｈ．３２０、ＡＴＮ及びＬＡＮに基づくＨ．３２１、Ｈ．３２２、及び電話線によるテレビ会議がある。
【００４５】
更に他の仮想化可能アプリケーションには、３次元グラフィック表示アプリケーション、及び移送指向性オーディオ用３次元音声がある。
【００４６】
このようなアプリケーションの多くは、業務用オーディオ、ゲーム、ハードディスク装置、プリンタ、ファックスデータモデム、電話代理応答機（ＤＴＡＤ）、マルチメディア用ＣＤ装置、及びデータ／ファイル圧縮があり、後者はシステムトラフィック及びＣＰＵ負担を軽減するためにＤＳＰによって実行され、またフォーマット変換、及びディジタルフィルタとディジタル変換がある。
【００４７】
図１に、Ｐ１３９４／ＵＳＢブロック１２０を含めてあるが、これは国内市場はＰＣを表向き家庭器具として供給しているが、常時運転しているとは限らないと認めるためである。例えば、ＰＣは、簡単にオン、オフスイッチされ、ユーザはこれにインタフェースしない。１つはＵＳＢ用、１つはＰ１３９４用に２つのケーブルがこのＰＣに接続され、かつＲＦインタフェースが同様に接続されることがある。ユーザは電話代理応答機を欲するとき、低コスト電話機を持つ、すなわち、その電話機はこれからＰＣのＵＳＢジャックへ延びるＵＳＢケーブルを持つ、また同様に通常の壁取り付け電話ジャックへの線を持つ。もしＰＣがその家の他の部屋内にあるならば、ＲＦが使用されるか、又はその家がＰ１３９４に対して配線される。
【００４８】
セルラ電話からコストを借り出すために、ハードウェアをセルラ電話の設計から除去し、ＰＣへ移す。それゆえ、セルラ電話は、もはや孤立したシステムでない。
【００４９】
それゆえ、各家庭アプリケーション毎に、現在知られているようにハードウェアをそのアプリケーションから除去して、このハードウェアを仮想化するＰＣへ移す。
【００５０】
Ｉ／Ｏブロック１２４のＲＦハードウェアも同様にその物理層だけになるように仮想化される。それゆえ、ＰＣシステムは、真に多機能化かつマルチタスキングである。
【００５１】
図２は、本発明の改善されたＰＣシステム１００の仮想ＤＳＰブロック２００の更に詳細なブロック図を示す。図２で、ブロック２００は、ＰＣＩバス１１６及びＩＳＡバス１２８に接続されている。他の実施例では、ブロック２００がなおまたローカルバス１０６にも接続される。
【００５２】
図２で、ＰＣＩバス１１６はハードウェアインタフェース電子回路２１０に接続され、このインタフェースが第１層に接続され、この層が次にインタフェース電子回路２１４に接続され、この回路が次に２つのテキサスインスツルメンツＴＭＳ３２０Ｃ５ｘ  ＤＳＰコア２１８及び２２２に結合される。電子回路２１０は、スピーチトランスコーディング用ＰＣＩスレーブインタフェース（Ｔｒｕｅｓｐｅｅｃｈ  Ｓｌａｖｅ）、Ｗｉｎｄｏｗｓベースモデムデータポンプ用ＰＣＩスレーブインタフェース（ＷｉｎＭｏｄｅｍ  Ｓｌａｖｅ）、ＤＭＡ散乱−収集機能性（ｓｃａｔｔｅｒ−ｇａｔｈｅｒ）用ＰＣＩスーパーバス・マスタインタフェース、Ｉ／Ｏポートに似たサウンドブラスタ（Ｒ，Ｃｒｅａｔｉｖｅ  Ｌａｂｓ）、及びＤＭＡインタフェースを含む。電子回路２１０及びＰＣＩバス１１６によって、ＰＣＩ／ＩＳＡブリッジがまたマルチメディア用に確立される。
【００５３】
ブロック２００の心臓は、１つ以上のＤＳＰコア２１８、２２２である。電子回路２１４はＦＩＦＯ  ＲＡＭである、すなわち、電子回路２１４はハードウェアＦＩＦＯでなくてＦＩＦＯ機能を遂行する主メモリ１１２、すなわち、ＲＡＭの片である。ＤＳＰコア２１８、２２２にとってＲＡＭ１１２は正規ＲＡＭのように見えるのに対して、このインタフェースのＰＣＩバス側にとってＲＡＭ１１２はＦＩＦＯのように見える。電子回路２１４内で沢山の翻訳が行われる。データ及びオペランドは、ＣＰＵ１０２とブロック２００との間に流れる。ＣＰＵ１０２は、バイト又はビット単位で動作しない。たとえＣＰＵ１０２が３２又は６４ビット単位で動作しても、それはキャッシュ線に基づくキャッシュ１０４及び主メモリ１１２を経由するバーストを通して動作する。このデータ流の非互換性が、翻訳に当たって多くのサイクルを消費する。
【００５４】
インタフェースハードウェア２１４は、３２又は６４ビット幅データ路を取り、そのどれかの部分を抽出してバイトにし、次いで１６ビット語をＤＳＰコアに供給するように設計される。それゆえ、単一命令多重データ（以下、ＳＩＭＤと称する）アーキテクチャに対する複雑命令セットコンピュータ（以下、ＣＩＳＣと称する）又は縮小命令セットコンピュータ（以下、ＲＩＳＣと称する）がインタフェース挑戦を解決するめに実現される。
【００５５】
それゆえ、有利上、インタフェース電子回路２１４は、次の機能を行う。すなわち、１）ＦＩＦＯ互換性バーストとして６４又は１２８ビット幅バーストを流し込む。２）それらを予め選択されたＤＳＰフォーマットに翻訳する。３）ＤＳＰコアに対するＲＡＭとして作用する。
【００５６】
異なるクロックが異なるチップ上でランするので、ＤＳＰコア動作をＰＣＩ動作から減結合することによってクロッキング挑戦をブロック２１０内で解決する。ＣＰＵ側からは、このシステムは、充分にＰＣＩ動作と同期させられる。ＤＳＰ側からは、このシステムはＰＣＩ動作と非同期である。このようにして多数待機状態を回避し、ＤＳＰ動作速度を上げても、ＣＰＵにインタフェースするとき苛酷な停止（ｇｒｉｎｄｉｎｇｈａｌｔ）に立ち至ることはない。
【００５７】
ＤＭＡトランザクションは、好適には、流れ−Ｉ／Ｏに基づく。ＣＰＵは仮想空間内で動作するが、ＤＭＡは物理空間で働く。翻訳は、ＣＰＵ１０２内の古い又は新しいハードウェアに頼ることなく、好適には、Ｗｉｎｄｏｗｓ９５を使用するソフトウェア制御の下にＤＳＰによって遂行される。ＤＳＰは、主ＤＭＡのエンジンになる。他の実施例では、ＣＰＵ１０２内のＤＭＡエンジンをＤＳＰ２１８から減結合することができ、かつＤＳＰコア２１８及びＤＳＰコア２２２がＤＭＡエンジンと関連させられる。ＤＳＰは、ＣＰＵ１０２又はＷｉｎｄｏｗｓが望む方法でＤＭＡを組み立てかつ実行する。例えば、１００Ｍｂｙｔｅ／ｓのＤＭＡ処理能力が、現行技術のＤＭＡコアを用いて容易に達成可能である。
【００５８】
ブロック２１０自体は、ＰＣＩエージェントであり、かつ動作中以外は、ハードウェア内の単一マスタ、マルチスレーブＲＣＩエージェントであると云う意味においてコストを低減している。ブロック２１０のバス支配能力によって、全てのスレーブが動作中従動させられるが、しかしアプリケーションによってＰＣＩバスを支配するように呼び出されるとそれを行う能力を有する。ソフトウェアは、適当な構成データによってスレーブをマスタであるように呼び出す。この多重体現インターフェースは、ＣＰＵが他に係わって占有されていないならばＣＰＵがポーリングを行う場合に、働く。もしバスマスタリングが要求されるが、しかしＣＰＵが他に係わって占有されているならば、同じことを実現するためにブロック２１０内のマスタを通してＤＳＰをバスマスタにならせる。それゆえ、同じアプリケーションのために、ＤＳＰは、ＣＰＵ１０２自体の代わりにホストの資格で働く。
【００５９】
Ｗｉｎｄｏｗｓのソフトウェアアーキテクチャは、Ｗｉｎｄｏｗｓ下でファイルトランザクションのように見えることごとくを要求する。ファイルトランザクションは、メモリトランザクションであり、かつＣＰＵ又はＤＳＰのどれがそれらを遂行しようとかまわない。ＣＰＵは一時に１つのことを遂行することしかできず、それでＤＳＰがシステム休止時間に作業を行い、休止時間を満たすので、ハードウェアは必要ない。チェリーピック（ｃｈｅｒｒｙ  ｐｉｃｋ）するかつ休止時間に作業を行うこの能力は、ＣＰＵでは遂行することができないこの調査研究の重要な利点である。ビデオチップ、ＤＳＰ、ＣＰＵ、…等、これら全てのチップは、ことごとくのトランザクションがメモリトランザクション又はファイルトランザクション（又はこの目的では余り重要でないＩ／Ｏトランザクション）でなければならないと云う同じ拘束によって統制される。全ては、ＯＳの下で同等に扱われる。
【００６０】
図３は、図１の改善されたコンピュータシステムの部分の一好適実施例の更に詳細な電気回路図（部分的に概略図、部分的にブロック図）である。図３は、図２のハードウェアインタフェース電子回路２１０及びインタフェース電子回路２１４を概略的に示す。特に、ＰＣＩマスタ／スレーブインタフェース回路３０４がＰＣＩバス１１６に接続されていることが判る。ＰＣＩマスタ／スレーブインタフェース回路３０４は、マスタ動作及びスレーブ動作用電子回路を含み、かつハードウェア層３０５に接続され、この層はＰＣＩ構成制御及び状態レジスタ電子回路３０６、ＰＣＩ  Ｉ／Ｏ空間レジスタ電子回路３０８、２重ポート読み出し書き込みＦＩＦＯ電子回路３１０、及びＤＳＰ  Ｉ／Ｏ空間レジスタ電子回路３１２を含む。ハードウェア層３０５は、次にインタフェース／コーデックＤＭＡ制御回路３１６に接続され、後者は次にＤＳＰ（図３に示されていない）に接続される。
【００６１】
図４ａは、図１の改善されたコンピュータシステムの部分の好適実施例の更に詳細な電気回路図（部分的に概略図、部分的にブロック図）である。図４ａで、ＰＣＩバス１１６は、マスタ／スレーブインタフェース４２４へのゲートウェイを経由してマザーボード上又はアドインカード上の単一チップ４２０に接続される。図４ａは、また、ＰＣＩバス１１６に接続される第２チップ４６０を示す。２つのチップ４２０、４６０は、本発明の教示による種々の機能性を区分する２つの異なる方法を示す。
【００６２】
チップ４２０は、オンチップ加速バス３４３を有しかつ好適にはデスクトップＰＣである。汎用バスＧＰＩ４０１及びＧＰＩ４０２が、チップ４２０又は４６０のどちらか用に備わる（図４ａには示されていない）。チップ４２０内で、ＩＤＳＰ論理ブロック４２８が図２のブロック２００の全ての論理を少なくとも含む。同様に、チップ４２０のＩＤＳＰ論理ブロック４２８が図２のブロック２００の全ての論理を少なくとも含む。チップ４６０は、２つのズームビデオ（以下、ＺＶと称する）バスを含み、かつ好適には携帯用ＰＣ内に使用される。グラフィック／ビデオコントローラ４３２は、２次元、３次元グラフィック能力ばかりでなく、ビデオ捕獲／圧縮／伸張能力を有する。コントローラ４３２は、バスマスタであることを要するが、しかし慣例的には常にスレーブである。提案された新しい統一メモリアーキテクチャ（ＵＭＡと称する）は、バスマスタを有利にする。
【００６３】
典型的又は従来のメモリサイクルは長過ぎるので、メモリも変化しなければならない。メモリは機能性の点では商品であり得ない。それでメモリは追加機能を要し、かつこれを新ブロックにインタフェースさせなければならない。本発明は、この追加機能性を有するメモリの利点を活かす。
【００６４】
図４ｂで、ＰＣＩバス１１６が図４ａのＤＳＰ／ビデオチップ４２０に接続されて、ＰＣシステムを形成する。チップ４２０はメモリコントローラ４８４に接続され、このコントローラはＣＰＵ１０２との他の結合を有する。メモリコントローラ４８４及びＣＰＵ１０２は、更に、データバッファ４８８に結合され、これを制御し、かつこのバッファはローカルバス１０６上のＵＭＡメモリにアクセスする。データバッファ４８８を使用することによって、ＣＰＵは、また、メモリアクセスを制御するのではなくメモリアクセスをリクエストしなければならない。有利には、ビデオ／グラフィックブロック４３２の機能が、ＰＣシステム内に合体されている。チップ４２０は、おそらくパッドバウンド（すなわち、多くのピンを有しかつ要求される全てのパッドに適合するのに必要なシリコンの全てを回路が占めない）であるので、ビデオ／グラフィック機能は有利な空間内に存在する。ここで初めに挙げた種々のアプリケーションの全ては、ＩＤＳＰ加速バスに持ち込まれる。
【００６５】
ＵＭＡブロック４９２は、ローエンド（ｌｏｗ−ｅｎｄ）市場用拡張データ出力ＤＲＡＭ（Ｅｘｔｅｎｄｅｄ  Ｄａｔａ  Ｏｕｔｐｕｔ  ＤＲＡＭ、以下、ＥＤＯと称する）を含む。ＥＤＯは、不変ピンカウントを有し、４８６レべルＣＰＵを支持し、かつそのデータ出力は予充電を回避するためにより長く活性に維持される。他の適当なＵＭＡは、キャッシュ線を満たすバースト能力を備える高速ＥＤＯである。高レベルＵＭＡは、マルチバンクバーストＥＤＯである。熟練作業員は、特定アプリケーションシステムに望まれる性能及び市場価格点考慮に従ってメモリ型式を選択する。
【００６６】
ＵＭＡブロック４９２から、一実施例は、バス１０６上に最高１１Ｇｂｙｔｅ／ｓの帯域幅の非圧縮出力を有する。これは、広帯域バス又は５００ＭＨｚ以上で動作するＲＡＭバスのような高速バスのどちらかによって達成されると云える。図４ｂで、コントローラ４３２は、ＵＭＡ４９２をアクセスしかつ非圧縮ビデオをディスプレイ４３６（図４ｂには示されていない）へ送る。広帯域メモリ及びＰＣＩバス１１６を通してのメモリへのアクセスは、広帯域及び短待ち時間（例えば、２ｍｓ）を維持する。
【００６７】
図４ａの加速バス４３４は、コントローラ４３２の加速を考慮するために外部アクセス又は内部アクセスできるようにＤＳＰ４２８に接続される。同様にして、図４ｂも外部又は内部アクセスをできるように加速バスを含む。
【００６８】
図５は、ホスト依存性である非対称多重処理に対する本発明の改善されたコンピュータシステムの一実施例のブロック図を示す。図５で、Ｐ５プロセッサはＣＰＵである。図５で、ＰＣ内のどのＣＰＵ／ＩＤＳＰインテリジェンスも、これらをアプリケーションを支持するのに必要な量だけ本発明の仮想技術を介して一括集中することができ、そのアプリケーションが停止した後これを解散することができる。ユーザには、いかなるときにも所与のアプリケーションに要求される計算リソースの所与の量さえあればよい。
【００６９】
どれか特定のアプリケーションの必要を満足する多数のＩＤＳＰが図５に示されている。これらのチップは、ＩＳＡバス及びＰＣＩバスに適当にインタフェースするために異なって設計されている。いくつかの例が図５に示されている。ＩＤＳＰブロックは、これらのバスに取り付けられて示されているが、これらをノース（ｎｏｒｔｈ）ブリッジ又はサウス（ｓｏｕｔｈ）ブリッジのどちらかに取り付けてもよく、及びそのブロックの機能内に集積化してもよい。
【００７０】
図６ａは、本発明の改善されたコンピュータシステムに対してスーパスカラ拡張を使用するＣＰＵモデルの実施例の概略ブロック図を示す。図６ｂで、新チップが３つのパイプラインを有し、これらのパイプラインは２つの従来スーパスカラパイプライン及び第３のＤＳＰオペレーションパイプラインである。すなわち、スーパスカラＣＩＳＣ／ＲＩＳＣ及びＤＳＰ  ＣＰＵアーキテクチャが単一チップ上にディスパッチされた３つのオペレーションを有する。ＣＩＳＣ内にマイクロコード記憶がある。ＤＳＰコアはＤＳＰハードウェアマイクロ記憶であり、これはＤＳＰオペレーションをディスパッチする。ＤＳＰコアは、ユーザがＷｉｎｄｏｗｓアイコンをクリックオンし、次いで、ＤＳＰコードが実行のためにハードディスクから主メモリ、ローカルメモリへキャッシュされるまで、「空」でいられる。このようにして、ｘ８６ＣＰＵは、非標準オペレーション及びディスパッチＤＳＰオペレーションを行わなくて済む。このような組合わせアーキテクチャは、Ｗｉｎｄｏｗｓ９５と互換性である。
【００７１】
図６ｂは、１つのこのようなメモリキャッシュ階層構造を示す。ディスク記憶装置２７４２は、図６ｂに定義されたスペクトルの１極にある。次は、主メモリ１１２である。外部単一アクセスメモリは、ＩＳＡバス、ＰＣＩバス上のどれか他のメモリ、又はチップ２００内の又は図６ｂの第３レベルのＰＣシステム内の他の何処かにあるメモリ２１４である。第２レベルに、構成可能（ｃｏｎｆｉｇｕｒａｂｌｅ）ＤＳＰコア・アドオンメモリ内のように、単一アクセスオンチップメモリが備わっている。第１レベルに、テキサスインツルメンツＴＭＳ３２０ＣｘコアのＢ０、Ｂ１、Ｂ２メモリを有する２重アクセスオンチップＤＳＰコアメモリが、例示として、しかしこれに限られる訳でなく、備わっている。
【００７２】
これは、キャッシュ動作するブロック２１０及びキャッシュ動作するＣＰＵ、ＯＳを備えるソフトウェアキャッシュである。それゆえ、ＤＳＰはソフトウェア内でキャッシュ動作サイクルを組み立て、かつ制御が階層構造を上へ過ぎる。
【００７３】
例として、１つのＶ．３４モデムは、モデム速度交渉がこのモデムにどれか他のモデムと話すことができるように要求するので、従来のようにコードとデータ間隔の６４Ｋを使用する。７５ｍｓ期間中、このモデムは他のモデムが何を話しているかを知り、次いで、交渉の結果として求められたそのモデムに相当する特定のアプリケーションを維持するためにコードの断片のみの間中スイッチを入れる。このようにして、先行技術に比較して必要とするコード及びデータは少なくて済む。
【００７４】
１３２Ｍｂｙｔｅ／ｓの転送速度を持つことによって、多くのアプリケーションが、要求されるコードをメモリからそれを実行するＤＳＰローカルメモリへ容易に移動させることができる。
【００７５】
図７は、ＤＳＰとＣＰＵを結合するためにいかに共用メモリモデルを使用するかを示す。Ｗｉｎｄｏｗｓのアーキテクチャに基づく共用メモリモデムは、その下にあるどんな対称ソフトウェアアーキテクチャ上にも非対称にＤＳＰとＣＰＵを緊密に結合する。
【００７６】
図７で、Ｗｉｎｄｏｗｓは、仮想メモリ内の何処でソフトウェアが開始し、終了するかを告げるファイル引出し状のハンドルを呼び出すアーキテクチャを有する。それらのハンドルは、仮想メモリ空間内のメモリリソースの位置を示す機構を提供する。これらのハンドルによって、ＤＳＰはホストＣＰＵが行うことができる。ホストは、アプリケーションが或るメモリ内容をマニピュレートすることを必要とすること、及び送り手（ｓｏｕｒｃｅ）ハンドルが何処にあるか、また受け手（ｄｅｓｔｉｎａｔｉｏｎ）ハンドルが何処にあるか発言する。内容をベースにするＷｉｎｄｏｗｓは、情報を受け手ハンドルによって定義された位置へ送る。１）何処に送り手ハンドルがあるか、２）何処に受け手ハンドルがあるかを知って、ＤＳＰは動作に入り、ＣＰＵに代わって転送を取り扱う。アプリケーションに従って、ＯＳの仮想メモリマネージャが何処に物理アドレスがあるかをＣＰＵに告げる。また、ＣＰＵは、物理アドレスの決定を助援するオンチップハードウェアを有する。ＤＳＰは、スーパバスマスタ（例えば、このマスタは単なるバスマスタと異なりページ境界と交差することができる）としてのＯＳの仮想メモリマネージャに質問する。ハンドルを仮想アドレスとして取り扱うＣＰＵと異なり、ＤＳＰはアプリケーションをランしている間、ハンドルをロックしてこれらを実際の物理アドレスにならせる。ＤＳＰロックは、ＨＡＬ層内の主ＤＳＰドライバに書き込まれたユーティリティであり、ＯＳ仮想メモリマネージャ内の既存のユーティリティを活性化して物理アドレスを復帰させる。
【００７７】
図８は、本発明の改善されたコンピュータシステムに対するマルチメディア拡張モデルの実施例の概略線図である。特に、本発明のＩＤＳＰによって提供された実時間サービスが、また、マルチスレッドかつマルチタスキングであるＷｉｎｄｏｗｓ  ＯＳの割り込みスケジューラに実時間優先権を供給することが判る。図３２及び３３は、後に論じられるが、実時間性を与えるためにいかに割り込みを取り扱うかの詳細を示す。図３５は、或る実時間サービスの詳細を示す。
【００７８】
図９は、本発明の改善されたコンピュータシステムに対するシステム／キャッシュ／仮想メモリモデルの実施例の概略線図である。ＤＳＰコアは、データ及び命令を非常に効率的に往き、戻り移動させるキャッシュである。ＣＰＵは、データをハードディスクからこのキャッシュへ移動させる。本発明の改善されたＰＣ用キャッシュ動作方式を説明する。
【００７９】
図９で、ラン時間中、コードをハードディスク装置（ＨＤＤとも称する）から主メモリ１１２へ取り出す。ラン時間中、コードの断片を主メモリ１１２から図２のブロック２１４へ取り出す。ブロック２１０がＤＳＰ及びＣＰＵと独立に、コードを更に図９のＤＳＰメモリ９１８及びＣ５ｘメモリへ移動させる。キャッシュ動作方式は図６ｂに示されている。図２で、ブロック２１０はキャッシュ動作方式の部分を行う。図１９ｂで、ＣＰＵの休止時間に相当するコードの断片を、いまやブロック３００内のＤＳＰ側上のメモリを含むように拡張されているＣＰＵ内の仮想空間を通して、ページする。このようにして、ＯＳを使用して仮想メモリを物理メモリに翻訳する。図９で、ＤＡＲＡＭは２重アクセススタティックＲＡＭ、ＳＡＲＡＭは単一アクセススタティックＲＡＭである。
【００８０】
図１０は、本発明の改善されたコンピュータシステムに採用されることがあるＭＰＥＧ再生フィルタグラフモデルの実施例の概略ブロック図である。図１０でユーザがソフトウェアオブジェクトをクリックオンすると、Ｗｉｎｄｏｗｓは、ダイナミックにメモリを配分しかつオブジェクトリンキング埋込み（ｏｂｊｅｃｔ  ｌｉｎｋｉｎｇ  ｅｍｂｅｄｄｉｎｇ、以下、ＯＬＥと称する）をランする。ＭＰＥＧは、層から層式の代わりにオブジェクトからオブジェクト式で働く。送り手は、伸張するために画像捕獲データを含むことがある。
【００８１】
図１１は、本発明の改善されたコンピュータシステムに対する仮想Ｉ／Ｏハードウェア−ＰＣＩＤＭＡ及びマルチメディア実時間割り込みハンドラモデルの実施例の概略ブロック図である。図１１で、システムは、実時間に割り込みを遮る。ＤＳＰ空間は、主メモリ１１２内に実際目的のために在駐する外部スタティックＲＡＭ（以下、ＳＲＡＭと称する）である。それゆえ、送り手空間、受け手空間、及びＤＳＰ空間は、全て同じ空間内に包含される。このようにして、そうでなければＷｉｎｄｏｗｓシステムに配分することのできないリソースをダイナミックに得る。遺産コードは、システム１００上で互換的にＷｉｎｄｏｗｓの下で有利にランする。アプリケーション（ＡＰＰとも称する）は主メモリの部分を使用し、これらをＰＣＩバス散乱−収集ＤＭＡコントローラを示されたブロックへ効果的に分解する。
【００８２】
図１２は、本発明の改善されたコンピュータシステムに対するフレーム内のＣＰＵ及びＩＤＳＰによる並列処理の概略ブロック図である。図１２で、フレームが与えられると、ホストＣＰＵは、処理を全て実行しかつ時間帯１２０４内の多数のスロットを独占しなけばならない。有利上、ＤＳＰとＣＰＵの組合わせが２つの時間帯１２１０と１２１２を提供し、ここでＤＳＰは時間帯１２１０内のフレームを処理し、かつ離散余弦変換器（以下、ＤＣＴと称する）がＣＰＵ時間帯１２１２内の２つの短いタイムスロットになる。
【００８３】
それゆえ、比較的中位の性能のＤＳＰが主要な画像処理を行う充分なリソースを有するが、これはこのＤＳＰがその信号処理タスクに専用されるためである。ＬＡＮ、モデム、及び他のアプリケーションは画像処理と時分割されるが、しかし図１２の分析点と無関係な他の時間間隔中においてである。
【００８４】
図１３は、本発明の改善されたコンピュータシステムが採用することがあるＭＰＥＧエンコーダ１３００の簡単化ブロック図である。特に、入来ビデオ画像をブロック１３０１内でリオーダ（ｒｅｏｒｄｅｒ）し、次いで運動推定ブロック１３０３に供給して画像のどのエリアが変化しているかを判定する。運動推定ブロック１３０３からの出力を画像／記憶予測ブロック１３０５、出力マルチプレクサ１３０７、及び加算器１３０９に供給する。画像／記憶予測ブロック１３０５からの出力を加算器１３１１及び加算器１３０９に供給する。加算器１３０９はＤＣＴブロック１３１３の入力へ供給し、ブロック１３１３は出力を量子化ブロック１３１５へ供給する。量子化ブロック１３１５は、出力を可変長エンコーダ１３１７及び逆量子化ブロック１３１９へ供給する。逆量子化ブロック１３１９は、出力を逆ＤＣＴブロック１３２１に供給し、後者は出力を加算器１３１１に供給する。可変長エンコーダブロック１３１７は、出力をマルチプレクサ１３０７に供給し、このマルチプレクサは出力をバッファ１３２３に供給し、このバッファはコード化ビデオデータを出力する。このようなエンコーダは、ハードウェア内又はソフトウェア内で実現される。
【００８５】
図１４は、本発明の改善されたコンピュータシステムが採用することがあるＭＰＥＧデコーダ１４００の簡単化ブロック図である。入来コード化ビデオを入力バッファ１４０１に記憶し、このバッファはデマルチプレクサ１４０３へ出力し、このデマルチプレクサは画像記憶／予測ブロック１４０５及び可変長デコーダ１４０９へ出力する。画像記憶／予測ブロック１４０５は加算器１４０７へ出力する。可変長デコーダ１４０９は逆量子化ブロック１４１１へ出力し、このブロック１４１１は量子化ブロックステップをデマルチプレクサ１４０３から供給される。逆量子化ブロック１４１１は逆ＤＣＴブロック１４１３へ出力し、後者は加算器１４０７へ出力する。加算器１４０７は画像記憶／予測ブロック１４０５及び画像リオーダブロック１４１５へ出力し、ブロック１４１５はデコードしたビデオ画像を出力する。
【００８６】
図１５は、ＣＰＵとしてＰ５プロセッサを採用することがある本発明のノートブックコンピュータに対するビデオ解決の実施例の簡単化ブロック図である。図１５で、システムは、図４ａに示されたのと同じように、ＰＣＭＣＩＡ標準、改正２．１を用いて働く。
【００８７】
ＺＶは、エキストラフレームバッファを要せずフレームバッファ内に収容されるビデオ入力リソースに適合する。ＰＣＩは、等時的ではなく、バーストされかつ割り込まれ、したがってビデオには極めて不利である。本発明によれば、フレームバッファに接続された専用バックドア私設高速バスＺＶによって等時性能力が付けられる。ブロックを図４のチップ４２０又は４６０内に一括にリンクするのが、加速バスである。
【００８８】
図１６は、ＣＰＵとしてＰ５プロセッサを採用することがある本発明のデスクトップコンピュータに対するビデオ解決の実施例の簡単化ブロック図である。図１６は、ＰＣＭＣＩＡ又はカードバスを用いないデスクトップＰＣを示す。それゆえ、ＭＰＥＧビデオを再生中、ＣＰＵはビデオデコード機能を遂行するのに対して、ＤＳＰはオーディオデコード機能を遂行するか、又はこれの反対である。もしデータがＣＤ  ＲＯＭから到来するのであるならば、システム同期はＣＰＵによって遂行される。もしデータが外部カメラ１３９４又は他の外部画像捕獲システムから来るならば、ＤＳＰがシステム同期を遂行するが、それはこのデータがまずＤＳＰに到来するためである。このようにして、このシステム及び方法は、どのプロセッサがシステム同期を遂行するべきかの問題を有利に解決する。
【００８９】
図１７は、本発明の改善されたコンピュータシステムに対するアプリケーションパイプラインの簡単化ブロック図である。図１７で、単一プロセッサは、たとえスーパースカラプロセッサであっても、アプリケーションレベルでパイプラインすることはできない。これは、パイプラインプロセッサのハードウェアパイプラインと明確に異なる。意味する所は、アプリケーションをパイプラインするために同じ時間にパイプラインの異なる部分を実行すると云うことである。
【００９０】
ステージが、アプリケーションの性質によって確立される。例えば、ＤＳＰがビデオのＮフレームを伸張するのに対して、ｘ８６ＣＰＵが同時にフレームＮ−１についてプロセッサデータをスクリーンへ出力し、次いで、このサイクルをパイプラインに関係した仕方で繰り返す。ＤＳＰは、また、フィルタリング、スケーリング、及びカラー変換を遂行するのに対して、ＣＰＵはデータを入力又はデータを出力する。
【００９１】
図１８は、本発明による改善されたコンピュータシステムに対するハードウェアアーキテクチャの他の実施例のシステムレベルを示すブロック図である。図１８は、図１の簡単化ブロック図の代替配置を示す。図１８は、ＰＣＩバスを使用しかつプラグインＰＣＩカード１８２０用スロット１８１０を有するＰＤＣを示す。プラグインＰＣＩカード１８２０は、図３又は図４ａに示されたように、ＰＣＩインタフェース（Ｉ／Ｆ）１８２２、ＤＳＰ１８２４、及び関連コーデック１８２６を含む。その他はいずれも標準ＰＣハードウェアである。ハードディスク装置１８３０は、標準ＰＣハードウェアの部分である。コーデック１８２６は、オーディオ機能を取り扱う。
【００９２】
ＰＣＩカード１８２０は、ＰＣＩマスタ及びＰＣＩスレーブの両方である。ホストＣＰＵは、スレーブモードでＰＣＩ構成レジスタ及び主メモリポインタレジスタにアクセスすることができる。マスタモードで、ＤＳＰは、散乱−収集ＤＭＡを使用してプログラムコード及びデータを取り出し、かつ主メモリに記憶することができる。
【００９３】
図１９ｂは、図１の改善されたコンピュータシステムの好適実施例の更に詳細な電気回路図（部分的に概略図、部分的にブロック図）である。図１９ｂは、図３に類似しているが、しかし更にＤＳＰ１９５０及び関連メモリ１９５２、１９５４の詳細を示す。加えて、コーデックチップ１９５６ばかりでなく、チップ３００（図３に示されている）、スピーカ１９６２、及びマイクロホン１９６０へのその接続を示す。図３８から図４４は、この実施例における一配置の詳細を示す。
【００９４】
ＤＳＰ１９５０は、ＣＰＵと独立にランする。ＣＰＵは、ＰＣＩカードがスレーブのとき、リセットの後初期化コードをＤＳＰへダウンロードし、そこで、ＤＳＰは独立する。ＣＰＵは、ＰＣＩ  Ｉ／Ｏ空間レジスタ３０８内のＳＴＡＲＴビットをセットすることによってＤＳＰを始動させることができる。ＳＴＡＲＴビットは、ＤＳＰにとって割り込みであり、ＤＳＰにコード実行を開始させる。ＤＳＰは、コード実行を終了するまでＰＣＩマスタとして独立に実施する。ＤＳＰアルゴリズムが終了したとき、ＤＯＮＥビットがＰＣＩ状態語（ＳｔａｔｕｓＷｏｒｄ）３０８内にセットされかつＣＰＵへの割り込みがＰＣＩバス上に発生される。
【００９５】
ＣＰＵは、主メモリにポインタアドレスを供給する。必要な３つのアドレスは、プログラム空間についてのＤＳＰの１２８Ｋバイトに対するベースアドレス、読び出し空間（送り手）についての１２８Ｋバイトに対するアドレス、及び書き込み空間（受け手）についての１２８Ｋバイトに対するアドレスである。アプリケーションに従って、これらはメモリの異なるエリアを指摘する、又はメモリの同じエリアを指摘する。ＣＰＵは、ＤＳＰに対するＳＴＡＲＴビットを有するレジスタ３０８に書き込むことによってＤＳＰを制御する。ＤＳＰは、このビットを割り込みとして使用する。この割り込みは、ＤＳＰにロードされたアルゴリズムを開始させるか、又はホストがコマンドをＤＳＰに送ったことを表示する。
【００９６】
レジスタ３０８内の他のビットは、ＤＳＰリセットビットである。このビットは、ＤＳＰのリセットピンへ送られる。このビットは、現行ＤＳＰタスクを打ち切らせて、ＤＳＰをブートロード順序で開始させる。新タスクをＤＳＰにロードするために、ＤＳＰをリセットするか（これはブートロードするために追加の時間を要する）又はＭＡＳＴＥＲ  ＡＢＯＲＴビットをホスト制御されるレジスタ３０８にセットするかのどちらかをできる。ＭＡＳＴＥＲ  ＡＢＯＲＴビットがセットされると、割り込みがＤＳＰに発生されて、これが初めにロードされたブートコードを実行させる。このブートコードは、ＲＣＩ  Ｉ／Ｏ空間メモリプログラム空間ポインタによって現在指摘されているホスト主メモリからＤＳＰタスクをロードする。ＤＳＰは、ＰＣＩ  Ｉ／Ｏ空間ＣＭＤ／ＳＴＡＴＵＳレジスタ３０８内にＥＶＥＮＴビットをセットすることによってそのタスクが終了したことを表示しかつＰＣＩ割り込みを発生する（タスクを完了する前にビットがまたセットされて、ＤＳＰが働いていることを表示する）。
【００９７】
ＰＣＩアプリケーションカードＤＳＰアーキテクチャは、初期的には無メモリである。これは、コストを可能な限り低く押さえる必要のあるシステム製造業者の関心を引く。しかしながら、このアーキテクチャは、メモリ１９５２、１９５４で示されたような、外部プログラム空間メモリ又は外部データ空間メモリを追加することを妨げない。もしＤＳＰアプリケーションソフトウェアが逐次８ビットアクセスを行う時間及びオーバヘッドを提供できるならば、データメモリを実現するために１６ビット２ＲＡＭチップメモリシステムの代わりに１つの８ビット幅外部ＲＡＭを使用してもよい。無メモリシステムを達成するために、ＤＳＰの内部メモリをプログラム空間とデータ空間とに分割することになる。もしプログラムが内部メモリに適合するには大き過ぎるならば、コードを必要に応じて主メモリからＰＣＩバス上へ取り出さなければならない。生データが主メモリから取り出され、かつＤＳＰ動作の結果のデータを主メモリに帰されることになる。
【００９８】
外部メモリがない場合は、ＤＳＰ内へのコードを実行化可能にするただ１つの方法は、ＤＳＰをリセットしかつＲＯＭをベースにしたブートローダを使用して主メモリからの小さい初期化プログラムをロードすることである。ＤＳＰのブートローダ版（「ＢＤＳＰ」）を以下の説明に使用する。このＤＳＰは、どの型式のブートローディングが起こるかを決定するために、リセットされたグローバルメモリアドレスＦＦＦＦを読み出す。４つの最下位ビット内の１１００の値は、ハンドシェーキング用ＸＦ信号及びベーシックＩ／Ｏ（以下、ＢＩＯと称する）信号を使用する１６ビット並列Ｉ／Ｏロードを表示する。ＢＩＯが低のとき、データバスが駆動される。ブートロードが完了した後、ＢＩＯはＤＳＰデータバス上のバス衝突を防止するために高のままでなければならない。
【００９９】
１６ビット語をＩ／Ｏブートモードを介してロードすることによって、ＣＰＵがベーシック主メモリ初期化プログラムをＤＳＰに敏速にロードすることができる。ＤＳＰはリセット状態になり、それであるからＤＳＰはスレーブとしてＰＣＩバストランザクションに応答することができるだけである。ＰＣＩホストは、ＤＳＰにロードされている初期化プログラム値を制御することになる。これが、初期化プログラムをソフトウェアで修正できるようにする。このルーチンがロードされた後、ＤＳＰはリセットを解かれ、それであるからＤＳＰは初期化プログラムを実行することができる（ＤＳＰのＢＩＯ信号をＦＩＦＯ状態信号で駆動できるようにするためＢＩＯ選択ビットをまたセットしなければならない）。初期化プログラムは、ＰＣＩバスマスタとして働きかつ主メモリに入って実際ＤＳＰアプリケーションソフトウェアを取り出す。初期化プログラムのみをブートロードすることによって、ＤＳＰ  ＰＣＩバスマスタが実際ＤＳＰアプリケーションコードのローディングを制御することができる。
【０１００】
もしＤＳＰアプリケーションソフトウェアがＤＳＰ内部メモリ内に全体として適合できないならば、より多くのコードをスワップインする必要がある。このコードは、主メモリから取り出される。多くのコードを取り出すために、ＤＳＰアプリケーションはＢＬＤＰ（Ｂｌｏｃｋ  Ｌｏａｄ  Ｐｒｏｇｒａｍ  ｔｏ  Ｄａｔａ）命令を遂行することがあり、これはグローバル（Ｇｌｏｂａｌ）空間データを取り出し、それをプログラム空間へ移動させる。もしグローバルデータ（Ｇｌｏｂａｌ  Ｄａｔａ）空間が外部メモリであると指定されかつプログラム空間が内部メモリであると指定されるならば、コードを移動させるために必要な外部アクセスをＢＤＳＰが行う。ＤＳＰは外部世界へのグローバルデータ空間取り出しを行いつつあるので、そのアプリケーションソフトウェアは、ＰＣＩインタフェースにＤＳＰコードがバス上に取り出されつつあり、データではないことを告げる機構を必要とする。Ｉ／Ｏポートレジスタビットが、取り出されつつあるのはプログラム空間コードか、送り手データか、受け手データか、又はＤＳＰ決定したデータかどうかを表示するために使用されることになる。Ｉ／Ｏポートレジスタビットは、リセットされているプログラム空間をアクセスするようにセットされる。
【０１０１】
アプリケーションコード内に持ち込まれて使用された最初にブートロードされたコードは、好適には、メモリ内に維持されているものとする。これは、ＣＰＵにこのアプリケーションをリロードするように割り込みを強制することによってＤＳＰ動作を打ち切らせる。もしこのコードが喪失するならば、ＣＰＵはＤＳＰを制御しなくなり、かつプログラムコードをリロードするためにＤＳＰをリセットしなければならない。ＤＳＰアプリケーションソフトウェアは、データを外部メモリから内部メモリへ転送しかつＢＬＤＤ（Ｂｌｏｃｋ  Ｌｏａｄ  Ｄａｔａ  ｔｏ  Ｄａｔａ）コマンドによってこれを復帰させることができる。
【０１０２】
ＰＣＩインタフェースは、ＰＣＩマスタ及びＰＣＩスレーブの両方である。このインタフェースは、ＣＰＵが構成空間にアクセスすることができるようにスレーブであることを要する。ＣＰＵは、ＤＳＰへの或る制御を実行しかつ主メモリポインタを組み立てるためにメモリ空間又はＩ／Ｏ空間のどちらかにアクセスすることができる。ＤＳＰは、コード及びデータについて主メモリをアクセスするためにＰＣＩマスタであることになる。また、ＰＣＩインタフェースに含まれてＦＩＦＯ３１０がある。このＦＩＦＯは、好適には、データの６４バイトを保持する。ＢＤＳＰは１６ビット外部データバスを有するので、ＰＣＩバスとＢＤＳＰバスとの間のＦＩＦＯは、ＤＳＰプログラムとデータを３２ビットから１６ビットに変換しなければならない。各主メモリ場所に２つの命令又は２つのデータ語を詰めることによって、所与のアプリケーションに要求されるＰＣＩバスの数を２分の１に減少することができる。
【０１０３】
ＰＣＩ標準によって要求される構成レジスタは、ＰＣＩ  Ｉ／Ｏ空間及びメモリアドレス空間内のエリヤを０及び１で以て指定するために使用される。要求される限りのＰＣＩ空間は５つの倍語である。アドレス空間は２のべきで要求されるので、８アドレスを確保しなければならない。必要とされるこれら５つの倍語より上のレジスタは使用されず、もし読み出されるならば、０を返すことになる。これら５つの倍語は、プログラム空間ポインタ、データ空間ポインタ、ＤＳＰコマンド、ＤＳＰ状態語、及びＢＤＳＰをブートロードするためのＩ／Ｏポートに使用される。
【０１０４】
ＰＣＩホストは、ＰＣＩ  Ｉ／Ｏ空間レジスタ３０８を書き込む。ＤＳＰは、これらのレジスタによって制御される。構成レジスタ内のベースアドレス０及び１は、このチップが応答するＰＣＩ空間のエリアを指摘する。両ベースアドレスが同じ空間を指摘するが、しかしベースアドレス０はＩ／Ｏ空間として構成される。ベースアドレス１は、メモリ空間として構成される。これによって、メモリベースシステム又はＩ／Ｏベースシステムのいずれかを設計するシステム設計者にとって融通性が増すようになる。ＤＳＰと通信しかつこれを制御するために、２０バイトが必要である。３２バイトがＰＣＩ構成レジスタ内に確保されている。レジスタ０ｘ６４から０ｘ１Ｆが確保されることになりかつ０だけを返す。それらのアドレスは、ベースアドレス＋０ｘ０からベースアドレス＋０ｘ１３である。これらのレジスタによって、ＣＰＵが、主メモリのどの部分をＤＳＰメモリに対して使用するべきかを決定できるばかりでなく、ＤＳＰの状態を開始、停止、及び監視できるようになる。主メモリプログラム（及びデータ）空間レジスタの下位１２ビットが確保される。これによって、プログラム及びデータ空間が４Ｋ境界内に再配置される。
【０１０５】
ＤＳＰアルゴリズムが終了すると、状態語内のＥＶＥＮＴ  ＩＮＴＥＲＲＵＰＴビットがセットされる。このビットがセットされると、割り込みがＰＣＩバスを通してアプリケーションソフトウェアに対して発生される。この割り込みはＤＳＰソフトウェアによって制御されるので、割り込み許可（ｅｎａｂｌｅ）はハードウェア内で実現されない。
【０１０６】
ＤＳＰハードウェア制御語は、ＤＳＰハードウェアの動作を直接制御する。その最下位４ビットは、リトライカウンタ（Ｒｅｔｒｙ  Ｃｏｕｔｅｒ）ビットである。リトライカウンタビットは、もしＰＣＩマクロ機能がＰＣＩトランザクションを初期的に失敗するならば、この機能にそれをリトライさせる。この値は、上掲の機能にいつまでもリトライをさせることになる００００にリセットされる。この値を、１から１５リトライの間にするように変化させることができる。もしトランザクションが遂行されないためにリトライカウンタがランしなくなるならば、ＭＩＳＣ  ＣＴＲＬレジスタ内のリトライカウンタ期限切れ（ＲｅｔｒｙＣｏｕｎｔｅｒ  Ｅｘｐｉｒｅｄ）ビットがセットされる。この状態は、ホストに利用可能である。
【０１０７】
ＤＳＰインタフェースＡＳＩＣは、ＰＣＩインタフェース、ＰＣＩ  ＦＩＦＯ、ＤＳＰ（接続デバイス）インタフェース、及びＣＯＤＥＣインタフェースからなる。この調査研究は、ＢＤＳＰが離散チップであることを必要とする。
【０１０８】
ＤＳＰは、利用可能な５ユーザ割り込みを有する。これらの割り込みの１つは、マスク不可能であり、４つはマスク可能である。ＣＯＤＥＣインタフェースは、３割り込みを必要とし、ＰＣＩインタフェースレジスタは２割り込み及びＲＥＳＥＴピンを必要とする。これらの割り込みは、次のように使用される。すなわち、ＮＭＩ−  マスタ打ち切り（ＰＣＩホストからＤＳＰへ）、ＩＮＴ１−ＣＤＲＱ（コーデックから）、ＩＮＴ２−ＰＤＱＲ（コーデックから）、ＩＮＴ３−ＩＲＱ／ＩＲＱ２（コーデック１とコーデック２から）、及びＩＮＴ４−コマンド（ＰＣＩホストからＤＳＰへ）。コンマンド割り込みは最低優先権であるが、これはＲＥＳＥＴピンから出るのとＤＳＰアルゴリズムに応答するのとの間になされる充分なハウスキーピングがあるから問題はない。マスタ打ち切り割り込みは、最高優先権であり、ＤＳＰにその初めのＤＳＰコードをリロードさせるのに使用される。割り込み１、２、及び３は、コーデックによって発生される。もし第２コーデックがユーザによって必要とされるならば、ＩＲＱ割り込みを共用することができる。ＩＲＱ信号とＩＲＱ２信号が一緒にゲートされてＤＳＰに対する１割り込みを生じる。ＩＲＱ信号、ＣＤＲＱ信号、及びＰＤＲＱ信号は、ＡＳＩＣによって反転される。ユーザによって供給されるＩＲＱ２信号は、低で活性でなければならない。
【０１０９】
ＤＳＰは、メモリマップＩ／Ｏポートにアクセスし、このポートは動作マスタリング用ＰＣＩマクロを制御するために使用される。
【０１１０】
ＣＯＤＥＣレジスタは、ＤＳＰによってＰＣＩアプリケーションボード上の離散ＣＯＤＲＥＣと通信するために使用される。ＦＩＦＯ状態は、Ｉ／ＯポートでＤＳＰによって利用可能である。このＡＳＩＣ又は将来のＡＳＩＣの改正によっては、ＦＩＦＯが異なった寸法を持つこともある。性能を同調させるために、どんな寸法のＦＩＦＯと共にＤＳＰが働かなくてはならないかを知ることは、ＤＳＰを助援するであろう。ＦＩＦＯ寸法レジスタは、ＦＩＦＯが保持することのできる語の最大数を表示する。転送するＤＳＰ語の数は、他のＩ／Ｏポートに書き込まれる。この値は、転送するバイトの数を得るためにハードウェアでは２倍される。転送することのできる語の最大数は、３２７６８（６５５３６バイト）である。これは、レジスタ０ｘ５９の最上位ビットを使用することができないことを意味する。もし１がそのビットに書き込まれるならば、それは無視される。
【０１１１】
ＰＣＩアドレスオフセット（０ｘ５８）はＤＳＰ空間内のアドレスであって、ＰＣＩ空間内に転送されて、データをホストへ又はこれから転送するのに使用される。ＤＳＰは、ＤＳＰポインタをＰＣＩ加算（Ａｄｄｅｒ）ポインタレジスタに書き込むことによってホスト主メモリをアクセスし、ＰＣＩ加算ポインタレジスタは２ＤＳＰ語を取り上げかつ３２ビットＰＣＩポインタを作る。これは、もしＤＳＰが散乱−収集テーブルにデータベースを有する主メモリ内の位置を計算することを必要とするならば、有効である。ＰＣＩ制御レジスタ内のＰＣＩアドレス空間選択ビットは、ＰＣＩバストランザクションが開始されたとき、ＰＣＩＩ／Ｏ空間に書き込まれたＤＳＰポインタ又はＰＣＩポインタを使用するかどうかを決定する。
【０１１２】
コーデック状態／モードレジスタ（０ｘ５Ｆ）は、全１６ビットについて読み出し可能である。その下位８ビットだけが書込み可能である（上位８ビットは読み出されるだけ）、ＢＩＯ選択は、ＤＳＰ  ＢＩＯ入力に接続されるＦＩＦＯ状態又はユーザ信号を融通性選択を可能にする。状態信号の全て、したがって、ＢＩＯは、高で活性である。
【０１１３】
ＤＳＰは、ＰＣＩ  ＡＳＩＣ上の６４バイトＦＩＦＯを通してＰＣＩバスからの又はこれへの読み出し及び書込みを遂行する。ＰＣＩのＦＩＦＯは、ＰＣＩクロックに同期する２並列１６語ＦＩＦＯとして構成される。ＤＳＰ制御信号は、ＤＳＰのＣＬＫＯＵＴ１信号に同期する。プロセッサをクロックするのに２つのオプションが用意されている。第１オプションは、ＤＳＰをＰＣＩクロック速度（最高３３ＭＨｚ）で内部的にランさせるためにＰＣＩクロックを２で分周しかつＤＳＰのＣＬＫＩＮ２入力を使用する（これはＣＬＫＩＮ２信号を２で倍周することになる）。この結果、ＰＣＩＣＬＫ信号がＣＬＫＯＵＴ１信号と同じ周波数になる状況を生じる。しかしながら、ＣＬＫＯＵＴ１信号が最大約２７０度移相されることがある。クロック分周電子回路を通しての遅延及びＤＳＰの位相ロックループ（以下、ＰＬＬと称する）を通しての移相は、最長２５ｎｓの総合遅延を起こすこともある。第２オプションは、ＰＣＩＣＬＫ信号を１で分周しかつＤＳＰの１による分周入力オプションを使用する（ＤＳＰはこのモードを支持しない）ことである。最終結果は、ＰＣＩＣＬＫ信号が依然ＣＬＫＯＵＴ１信号と同じ周波数であるが、しかしその位相は異なると云うことであろう。
【０１１４】
ＤＳＰのＲＤｚ（読み出し許可−−低で活性）信号及びＷＥｚ（書き込み許可−−低で活性）信号が、ＦＩＦＯ読み出しパルス及び書き込みパルスを発生するために使用される。ＤＳＰによる読み出しを、クロック遅延を考慮することを保証するために、少なくとも３ソフトウェア待機状態で以て遂行しなければならない。
【０１１５】
クロック遅延を考慮に入れる保証をするために、ＤＳＰによる書き込みを少なくとも２ソフトウェア待機状態で以て遂行しなければならない。
【０１１６】
ＤＳＰは、ＦＩＦＯから到来する及びこれへ行くデータを管理する。このデータ流は、ＦＩＦＯをオーバーランかつアンダラン（ｕｎｄｅｒｕｎ）させない限りＤＳＰにトランスペアレントであり得ない［ＤＳＰはＰＣＩバスをアウトラン（ｏｕｔｒｕｎ）しかつＦＩＦＯをオーバランすることもあり得る］。ＤＳＰにリソースを最善に使用させるために、いつＦＩＦＯが読み出すデータを有する又はＦＩＦＯが書き込み中いつ空になったかをＤＳＰに告げるためにフラグとしてＢＩＯ信号を使用することになっている。ＤＳＰからの書き込みを遂行する２つに方法がある。第１の方法は、ＦＩＦＯが（読み出し又は書き込み前に）空になるまで待機し、次いでＦＩＦＯを満たす数の語を読み出す又は書き込むことである。これは、現行のハードウェア構成では３２語を扱うことになり、ＦＩＦＯをオーバラン又はアンダランしないように保証する。３２語を読み出し又は書き込んだ後、ＤＳＰはＢＩＯ信号をループに載せ（これはＦＩＦＯが他の１２語を受ける用意を整えたことを表示する）かつ他の３２語を読み出し又は書き込みすることができる。
【０１１７】
第２の方法は、１２語より大きいデータのブロックを転送させることである。この方法は、ＢＩＯ信号を使用するが、しかしＤＳＰはＦＩＦＯへの毎読み出し又は書き込みの前にＢＩＯ信号をループに載せる。これらの動作に関してＢＩＯ信号を介してＦＩＦＯ状態を表示するために、半空及び半満フラグを使用することができる。ＤＳＰは、そのＩ／Ｏ空間を使用して、ＰＣＩトランザクションを開始させるために制御レジスタ内にビットをセットする。その制御レジスタパラメータは、ＰＣＩアドレス空間選択ビット、ＦＩＦＯリセットビット、ＰＣＩマクロビット、ＤＳＰ状態ビット、開始ビット、及びＢＩＯ選択ビットである。トランザクションが開始する前にＦＩＦＯの状態を検査するために状態レジスタがまた必要である。ＰＣＩバストランザクションを開始させるのに必要なパラメータは、ＤＳＰアドレス（これはＰＣＩ主メモリアドレスに翻訳される）、転送する語の数（ハードウェアは語の数をバイトの数へ変換する）、及び方向である。
【０１１８】
２語だけがＰＣＩバスを通して転送されるとき、信号データ位相転送が起こる。これらの２語は１つの３２ビットトランザクションを満たすだけである。ＰＣＩマクロは、ＰＣＩプロトコルを正しく取り扱うためにこの特別な状況を知っている必要がある。ＤＳＰによって書き込まれた値（語の数）は、バイトの数を得るために２倍され、それであるからバイトの最少数は２である。実際に転送するべきバイトの数は４ある。もし４バイト未満が転送されるならば、ＤＳＰはＰＣＩバスバイト許可ビットを変化させなければならないか、又はＰＣＩデータ位相の４バイトのうちの２つが有効でないことになる。方向ビットは、これがＦＩＦＯの入力の送り手内の決定因子であるので、重要である。方向ビットは、ＤＳＰがＦＩＦＯに書き込むとき自動的にセットされる（これは、ビットをセットし、ＦＩＦＯを書込み、次いでトランザクショを開始させなければならないことを防止する）。ＰＣＩバスからの読み出しの際、方向ビットは、トランザクションを開始させるレジスタへの書込みによってセットされる。ＢＩＯ信号は、ＢＩＯ選択レジスタの値によって選択される。この値を、読み出し動作と書き込み動作との間に変化がある毎に変化させなければならない。
【０１１９】
これらのパラメータがインタフェースＡＳＩＣに書き込まれた後に、開始ビットがＤＳＰによって書き込まれたときＰＣＩ転送が開始される。ＤＳＰ順序の例は次のとおりである。すなわち、
【０１２０】
ＤＳＰ読み出し順序
１．  転送されて来るデータのアドレスを書き込め。
２．  転送する語の数（≧２）を書き込め。
３．  終了（ＤＯＮＥ）ビット（それをクリアせよ）、  ワーキングビット（それをセットせよ）、転送の方向（０＝読み出し）、ＢＩＯ選択、及び開始（ＳＴＡＲＴ）ビットを書き込め。
【０１２１】
いったん開始ビットがセットされると、ハードウェアは、すなわち、
３．１  ＰＣＩバスが自由になる（Ｐ２ＣＤＧＮＴＣＵＰＬ信号が不活性へ移行する）のを待機せよ。
３．２  ＣＤ２ＰＲＥＱＣＵＬＰＬ信号及びＣＤ２ＰＧＮＴＣＵＰＬ信号をセットするためにレジスタに書き込め。
３．３  Ｐ２ＣＤＧＮＴＣＵＰＬ信号が活性へ移行するのを待機せよ。
３．４  （他のトランザクションを防止するために）ＣＤ２ＰＭＳＴＣＵＰＬ信号をセットするためにレジスタに書き込め。
３．５  新アドレス、バイトの数、方向、及び多相状態をマクロへストローブせよ。
３．６  ＦＩＦＯを満す動作を開始せよ。
４．  ＦＩＦＯが空でないことをマクロが表示するのを待機せよ。（この状態をＢＩＯとしてＤＳＰにもたらせ）。
５．  ＦＩＦＯから読み出せ。読み出しを２サイクル／１待機状態命令をで以てＦＩＦＯから行うことができる。これらの待機状態は、ソフトウェア待機状態である。ＦＩＦＯ読み出しパルスは、ＤＳＰ読み出し信号によって発生される。もしＦＩＦＯがデータを持たないならば、ＢＩＯはセットされず、動作は延期される（これについて、内部時間切れを使用しなければならないことがある）。ＢＩＯ信号を使用することによって、ＤＳＰはデータを待機する。３．にループバックして、完成まで繰り返せ。ＰＣＩ割り込みの発生が完了するとき、ＤＯＮＥビットをオプショナルにセットすることができる。
【０１２２】
もしＰＣＩバススレーブが最後の２データ位相中待機状態なしでランできるならば、ＰＣＩマクロはＦＩＦＯを満たすことになる。もし最後のデータ位相になんらの待機状態がないならば、ＦＩＦＯは最後の語を書き込まれないことになる。ＦＩＦＯは、ＦＩＦＯ  Ｆｕｌｌ−１倍語を内部に有することになる。
【０１２３】
ＤＳＰ書き込み順序
１．  ＦＩＦＯが空であることをマクロが表示するのを待機せよ。（この状態をＢＩＯとしてＤＳＰ内に持たらせ。）
２．  ＦＩＦＯに書き込め。書き込みを３サイクル／１待機状態命令で以てＦＩＦＯに行うことができる。これらの待機状態は、ソフトウェア待機状態である。ＦＩＦＯ書き込みパルスは、ＤＳＰ書き込み信号によって発生される。
３．  転送されるデータのアドレスを書き込め。
４．  転送する語の数（この場合、３２）を書き込め。
５．  終了（ＤＯＮＥ）ビット（それをリセットせよ）、ワーキングビット（それをセットせよ）、ＢＩＯ選択、及び開始ビットを書き込め。
【０１２４】
いったん開始ビットがセットされると、ハードウェアは、すなわち、
５．１  ＰＣＩバスが自由になる（Ｐ２ＣＤＧＮＴＣＵＰＬ信号が不活性へ移行する）のを待機せよ。
５．２  ＣＤ２ＰＲＥＱＣＵＰＬ信号及びＣＤ２ＰＧＮＴＣＵＰＬ信号をセットするためにレジスタに書き込め。
５．３  Ｐ２ＣＤＧＮＴＣＵＰＬ信号が活性へ移行するのを待機せよ。
５．４  （他のトランザクションを防止するために）ＣＤ２ＰＭＳＴＣＵＰＬ信号をセットするためにレジスタに書き込め。
５．５  新アドレス、バイトの数、方向、及び多相状態をマクロへストローブせよ。
５．６  ＦＩＦＯが空であることをＤＳＰに警告せよ（ＢＩＯ信号を使用せよ）。３．にループバックして完成まで繰り返せ。
【０１２５】
ＤＳＰが主メモリにアクセスするとき、ＤＳＰの１６ビット語指向アドレスを３２ビットバイト指向アドレスに翻訳しなければならない。この翻訳の部分は、ＤＳＰの１６ビットを１ビット左へシフトさせる（２を乗じる）ことを要求する。これは、メモリ空間の６４Ｋ語をアドレス指定する代わりに、ＤＳＰがＰＣＩホスト主メモリの１２８Ｋバイトをアクセスすることが実際にできることを意味する。ＰＣＩ仕様は、直線アドレス指定（アドレスがバースト転送中直線的に増分する）を使用することを望むＰＣＩイニシエータがアドレスの２最下位ビットを００として残すことを要求する。これは、主メモリからの全ての取り出しを奇数アドレス（最下位ビットが０）で以て開始しなければならないと云う制約をＤＳＰソフトウェアに課する。主メモリ内のアプリケーションに融通性持たせるために、ＤＳＰデータ空間及び命令空間は４Ｋ境界上で再配置可能であることになる。
【０１２６】
ＰＣＩバスは、選択可能幅バスである。どんな４バイト許可信号も、このバス上の４バイトのどれか又は全てが有効データであることを、活性で以て表示することができる。ＤＳＰは１６ビットバスを有し、このバスは毎転送の際有効データの１６ビットを有するものと仮定する。ＤＳＰがＰＣＩバス上のイニシエータである間、全てのバイト許可信号は活性である（全てのデータは３２ビット）。ＰＣＩバスとＤＳＰバスとの間で転送するために、並列な２つの１６ビットがあってＰＣＩデータを捕獲する。ＤＳＰは、いくつかのＦＩＦＯの出力を多重化（ｍｕｘ）して１６ビット語を得る。多重化はＤＳＰの最下位ビットによって制御される。アドレスビット０上の０は、最下位語ＦＩＦＯを選択しかつアドレスビット０上の１は最上位語ＦＩＦＯを選択する。
【０１２７】
ステレオオーディオコーデック１９５６は、ＩＳＡバスインタフェースを備える８ビットデバイスである。このコーデックは、ＤＳＰのデータバスから分離されているデータバスに接続される。ＤＳＰは、Ｉ／Ｏ空間レジスタを経由してこのコーデックにアクセスする。ＤＳＰが低速ＩＳＡインタフェースを待機するのに拘束されるのを防止するために、ＡＳＩＣ３１６がＤＳＰからの及びこれへの実際読み出し及び書き出しを制御するステートマシンを実現する。
【０１２８】
コーデックを統制するこのステートマシンは、ＤＳＰ  Ｉ／Ｏアドレス空間におけるコーデック状態／モード（ＣＯＤＥＣ  Ｓｔａｔｕｅ／Ｍｏｄｅ）レジスタを介して制御される。ステートマシンは、１が開始ビットに書き込まれるとき開始する。読み出し又は書き込みが要求されるかどうか、及びＰＩＯアクセス又はＤＭＡアクセスが要求されるか否かに従って、ステートマシンは適当なプロトコルに従い、かつそれらのバイトをＩ／Ｏ空間レジスタに書き込むか又はコーデックの内容を読み出してそれらのレジスタ内に入れるかする。ＢＹＴＥ  ＸＦＥＲ  ＣＯＵＮＴビットは、ＤＭＡ動作中いくつのバイトが転送されるかを決定する（ビット１から４）。ＡＤＤＲ  ＳＥＬビットは、ＰＩＯアクセス中どのアドレスに最下位バイトが書き込まれるかを決定する（ビット０から３）。コーデックステートマシンが完了すると、コーデック状態ビットＤＯＮＥがセットされる。このビットは、ステートマシンが開始するときクリアされる。このビットは、ＤＳＰのみに対する情報のために提供される。
【０１２９】
ＰＣＩカードユーザは、ＤＳＰのプログラム空間内及びデータ空間内の外部メモリを含むオプションを有する。このメモリ（容易な設置及び除去のためにソケット接続される）によって、ＤＳＰアルゴリズムは、ホスト主メモリへのアクセスの利点を活かしてコードを再書き込みできるようになるまで、その現行形式を維持することができるようになる。データ空間は、ローカルデータをホスト主メモリから分離して維持するために利用可能である。グローバルメモリは、ホストシステムへのインタフェースとして指定される。このインタフェースは、グローバルメモリ空間内に在駐するＦＩＦＯを経由することになる。このメモリは、ＲＥＡＤＹ信号の代わりにソフトウェア待機状態を使用してアクセスされる。
【０１３０】
ブートロードプロセスは、グローバルメモリ位置０ｘＦＦＦＦ及びメモリマップＩ／Ｏポート５０ｈを使用する。この位置は、もしＰＣＩ  Ｉ／Ｏ空間レジスタ内のＢＩＯビット（ＤＳＰコマンド語  −−  ビット３）が高にセットされるならば、グローバルメモリ内で利用可能である。もしＢＩＯが低にセットされるならば、位置０ｘＦＦＦＦからの読み出しの結果、ブートロードデータとグローバルメモリデータとの間にバス衝突が起こる。もしユーザがグローバルメモリを使用しなければならないならば、ＤＳＰからＡＳＩＣへのＢＲ＃信号がユーザアドレスデコード信号で以てゲートされて、ユーザのグローバルメモリアクセスの際にＡＳＩＣのＦＩＦＯが活性になるのを防止する。
【０１３１】
パワーオンの際に実行されるＰＣ  ＢＩＯシステム（以下、ＢＩＯＳと称する）ソフトウェアは、どの種のＰＣＩカードがシステムに設置されているかを発見する責務を負う。このソフトウェアは、云わゆるパワーオンセルフテスト（以下、ＰＯＳＴと称する）コードであり、かつＰＣＩアプリケーションの総称的初期化を遂行する責務を負う。初期化を完了した後、カードを主メモリに挿入し、自己のプログラムコードを取り出す。
【０１３２】
いったんＰＣがパワーアップされると、ＤＳＰは、ホストＤＳＰドライバがＤＳＰのリセットを解くまで、リセット状態に保持される。この点で、ドライバは、ＰＣＩ  Ｉ／Ｏ空間コマンド語（ＣＯＭＭＡＮＤ  ＷＯＲＤ）レジスタに書込みしてＤＳＰのリセットを解く。そこで、ＣＰＵがＢＤＳＰをブートロードする。このデバイスドライバは、ＸＦをセットするためにＢＤＳＰを捜すことによってＰＣＩ  Ｉ／Ｏ空間ブートロードデータ（ＢＯＯＴＬＯＡＤ  ＤＡＴＡ）レジスタを経由して１６ビット語をＤＳＰにダウンロードし、次いで、有効データがブートロードデータレジスタに書き込まれた後、（コマンド語レジスタ内に）ＢＩＯをセットする。これは、ＰＣＩ  ＡＳＩＣ内に又はアプリケーションカード上に追加のハードウェアを必要としない。これは、ホストＤＳＰドライバに関していくらかのオーバヘッドを起こす。これは、また、ブートロードコードをソフトウェア内で変化させることができるので、最も融通性に富む調査研究である。いったんＤＳＰが初期化されると、ＤＳＰはＣＰＵがレジスタに書き込みかつＣＯＭＭＡＮＤビットをセットするのを待機する。ＣＯＭＭＡＮＤビットは、ＤＳＰへの割り込みを発生しかつＤＳＰに実行を開始させる。この初期ＤＳＰコードのなすべき第１のことの１つは、データメモリの存在を検査することである。もしデータメモリが発見されるならば、そのメモリが８ビット幅か１６ビット幅かどうか判定しなければならない。ＤＳＰグローバルメモリの存在は、ＤＳＰアプリケーションがＰＣＩカードにアクセスするＰＣＩバスを経由することを要せずＰＣＩカード上の高速メモリにデータの最大６４Ｋ語（又はバイト）までを記憶する機会を得ることを意味する。
【０１３３】
図２０は、本発明の改善されたコンピュータシステムに対するメモリ分配及びロッキングモデルの概略ブロック図である。図２０に示されたメモリ配分及びロッキングは、図１１に示されたものに相当する。ＤＳＰ空間に対するポインタがあることがＤＳＰソフトウェアを通して知られている。トランザクション毎に、何処に送り手及び受け手テーブルあるかがまた知られている。図２０は、メモリアーキテクチャに対するディレクトリを提供する。図１１は、単一送り手空間及び連続受け手空間を表す。Ｗｉｎｄｏｗｓ９５では、これは仮想空間について云えるが、物理アドレスは全空間にわたって散乱している。それゆえ、ＤＳＰによる散乱−収集バスマスタリングなる用語がある。
【０１３４】
図２１は、本発明の改善されたコンピュータシステムに対する送り手及び受け手データＤＭＡ転送テーブルモデルの概観ブロック図である。図２１で、各ブロック２１１０、２１２０、２１３０、２１４０は、ラン時間にそのアプリケーションに利用されるメモリ１１２又はメモリ１１２の部分内の（散乱ロックされた）領域である。その瞬間にディレクトリが組み立てられ、これが領域内の多数の片に分裂する。リンクリストよって、アプリケーションは仮想空間内を飛び回わることができるようになる。ピンポンバッファ２１５０、２１６０調査研究が使用される。このＣＰＵに巧く継がるＣＰＵにとって、受け手が送り手になる。
【０１３５】
図２２は、本発明の改善されたコンピュータシステムに対する送り手データＤＭＡ転送テーブルモデルの内部構造の概略ブロック図である。図２２で、図２０と比較して送り手ＤＭＡ転送テーブルの更に詳細な構造が示されている。
【０１３６】
図２３は、図２２の送り手ＤＭＡ転送テーブルに対する領域リストの詳細である。図２４は、本発明の改善されたコンピュータシステムに対する受け手データＤＭＡ転送テーブルモデルの内部構造の概略ブロック図である。図２５は、図２０のプログラマ／データ空間の部分テーブルの更に詳細なブロック図である。図２４は、受け手転送テーブル構造の詳細を示す。図２５は、図２０のプログラマ／データ空間ブロックの詳細を示す。図２３は、図２２、２４、及び２５のいずれか１つにおけるリスト領域の詳細を示す。これらの図は、いかにＤＳＰ及びホストＣＰＵがローカルメモリ１１２のような同じメモリ空間を使用する際効に共用しかつ共存するかを示す。
【０１３７】
図２６は、本発明による改善されたコンピュータシステムの他の実施例の電気回路ブロック図である。この実施例の場合、メモリ管理論理、メモリコントローラ、及びメモリ、及びキャッシュは１つのブロックに組み合わせられ、かつローーカルバスを経由してＣＰＵに接続される。ローカルバスは、次に、ＰＣＩブリッジに接続され、このブリッジはＰＣＩバスに接続される。更に、ビデオ／グラフィックチップ２６１４及び画像捕獲／伸張ブロック２６１８が、２次元及び３次元グラフィック及び本明細書で先に挙げた種々のビデオ画像機能を提供する。
【０１３８】
図２８は、本発明による改善されたコンピュータシステムの他の実施例の電気回路ブロック図である。この実施例の場合、ＣＰＵは、そのチップ上に集積されたメモリコントローラ及びＰＣＩブリッジを有し、それゆえメモリ及びＰＣＩバスに直接接続される。集積マルチメディアグラフィックコントローラがＰＣＩバス及びディスプレイに接続される。加えて、２つのオプショナルチップが提供されＰＣＩバスに接続される。１つのチップはＤＳＰを備える周辺Ｉ／Ｏ  ＣＯＭＢＯ用である。他のチップは、ＤＳＰを備えるＰＣＭＣＩＡコントローラ用である。キーボード、マウス、及び並列ポート（以下、ＰＰと称する）が接続されているように、ＰＣのＢＩＯＳがＩ／Ｏブロックに接続される。ハードディスク装置（以下、ＨＤＤと称する）及びフロッピィディスク装置（以下、ＦＤＤと称する）ばかりでなく、直列ポート（以下、ＳＰと称する）がＤＳＰ部分に接続される。
【０１３９】
図２９は、本発明による改善されたコンピュータシステムの他の実施例の電気回路ブロック図である。図２９は、図２８に類似しているが、しかし図２９の無線ＬＡＮはＰＣＭＣＩＡコントローラブロックと共に集積化され、１３９４データ流を含むように高度化されている。
【０１４０】
図２９は、１チップで以て全ての機能が提供されかつ裸ボンド物理層で以てＩ／Ｏを提供される実施例を示す。物理層以外のことごとくがＰＣの部分である。この実施例は、多重周辺電子回路を回避しており、米連邦通信委員会（ＦＣＣ）の承認を必要とする物理層に重点を置くことができる。回線保護装置（以下、ＤＡＡと称する）は、ソフトウェアであり、スピーチコーデックで以て音声注釈する能力を備えている。ＬＡＮは物理層に重点を置き、ＤＳＰは他のＬＡＮ機能を仮想化する。コスト低減の終局的ディジタル革新において、物理層以外のことごとくが仮想化され、ＤＳＰ２００はこの革新の中核をなしている。
【０１４１】
図３０は、本発明の改善されたコンピュータシステムに対するアプリケーション／ドライバモデルの実施例の電気回路ブロック図である。ＶｘＤ環境（以下、ＶＸＤＥと称する）は、Ｗｉｎｄｏｗｓアプリケーション用ＤＳＰ関連低レベルサービス、例えば、マルチメディアアプリケーションを提供する。図３０に示されたＤＳＰドライバのＷｉｎｄｏｗｓ３．１モデルは、ＷｉｎｄｏｗｓＶｘＤ及びＷｉｎｄｏｗｓＤＬＬを含む。Ｗｉｎｄｏｗｓアプリケーションとの又はこれへのＤＬＬインタフェースは、アプリケーションコールバック及びファイルＩ／Ｏを遂行し、割り込みを取り扱い、及びＶｘＤとインタフェースする。ＶｘＤは、ＤＳＰによって使用されることがある物理メモリをロックダウンし及び自由にする責務を負うだけである。
【０１４２】
ＤＳＰドライバＤＬＬが通信する必要のあるＷｉｎｄｏｗｓドライバは１６ビット又は３２ビットであるので、Ｗｉｎｄｏｗｓ９５の下では、上述のモデルはもはや適当でない。１６ビットＷｉｎｄｏｗｓドライバ及び３２ビットＷｉｎｄｏｗｓドライバの両方がＤＳＰドライバと通信できるためには、上述のモデルを図３１に示したように修正する。
【０１４３】
図３１は、本発明の改善されたコンピュータシステムに対するアプリケーション／ドライバモデルの他の実施例の電気回路ブロック図である。図３１に示されたモデルは、ＷｉｎｄｏｗｓＶｘＤ、１６ビットＷｉｎｄｏｗｓＤＬＬ、及び３２ビットＷｉｎｄｏｗｓＤＬＬを有する。これらのＤＬＬは、ＷｉｎｄｏｗｓドライバとＤＳＰ  ＶｘＤとの間の通信のためにのみ必要である。しかしながら、このモデルにとって、ＤＳＰ  ＶｘＤは、ことごとくに責務を負う、すなわち、ＤＳＰとインタフェースし、アプリケーションコールバック及びファイルＩ／Ｏ等を取り扱い、割り込みを遂行し、かつＤＳＰ  ＶｘＤ環境と云う名称を与えられている。
【０１４４】
ＶＸＤＥは、Ｗｉｎｄｏｗｓアプリケーション用ＤＳＰ関連低レベルサービス、例えば、マルチメディアアプリケーションを提供する。マルチメディアアプリケーションの場合、これらのサービスには、次が挙げられる。ＮｏｄｅＡｄｖｉｓｅ、ＮｏｄｅＡｌｌｏｃａｔｅ、ＮｏｄｅＤｅｓｔｒｏｙ、ＮｏｄｅＧｅｔＡｔｔｒ、ＮｏｄｅＧｅｔＤａｔａ、ＮｏｄｅＧｅｔＰｏｓｉｔｉｏｎ、ＮｏｄｅＰａｕｓｅ、ＮｏｄｅＰｕｔｔＤａｔａ、ＮｏｄｅＲｅｓｅｔＳｔｒｅａｍ、ＮｏｄｅＲｕｎ、ＮｏｄｅＳｅｔＡｔｔｒ、ＮｏｄｅＳｉｇｎａｌＥｖｅｎｔ、ＮｏｄｅＣｏｖｅｒｔＤａｔａ、ＮｏｄｅＷａｉｔＳｅｍａｐｈｏｒｅ、ＮｏｄｅＣｒｅａｔＳｅｍａｐｈｏｒｅ、及びＮｏｄｅＤｅｓｔｒｏｙＳｅｍａｐｈｏｒｅ。
【０１４５】
Ｗｉｎｄｏｗｓマルチメディアアプリケーションは１６ビットＤＬＬ又は３２ビットＤＬｌを通してＶＸＤＥと通信し、ＶＸＤＥは１６ビットの場合はコールバック機能を通して又は３２ビットの場合は或る事象信号機構［セマフォー（Ｓｅｍａｐｈｏｒｅ）］を通してＷｉｎｄｏｗｓアプリケーションと通信する。ＶＸＤＥは、ＤＳＰのメモリマップポートに書き込むことによってＤＳＰと通信し、ＤＳＰはハードウェア割り込みを発生することによってＶＸＤＥと通信する。ただし、このハードウェアはＶＸＤＥによってＶＰＩＣＤを通して仮想化される。
【０１４６】
ＶＸＤＥとの通信を望むどのＷｉｎｄｏｗｓアプリケーションにとっても、行う必要のある全ては、１６ビットＤＬＬ又は３２ビットＤＬＬ（ＤＳＡＰＩ．ＤＬＬ又はＤＳＰＡＰ３２．ＤＬＬと称する）と一緒に上に挙げたＡＰＩの集合を使用することである。好適には、１６ビットＤＬＬは、呼出し構造にパラメータを入れ、この構造を１６ビット側からの呼としてマークし、次いで入口（ｅｎｔｒｙ）点を通してＶＸＤＥを呼び出す。入口点は、Ｉｎｔ  ２Ｆ機能１６８４ｈを使用して位置検出される。他方、３２ビットＤＬＬは、ＤＥＶＩＣＥＩＯＣＯＮＴＲＯＬインタフェースを通してＶＸＤＥを呼び出す。ＶＸＤＥ側では、呼を入口点から受信すると、呼び出し構造のポインタが直線アドレスに翻訳されかつその呼が相当する機能へディスパッチされる。この機能は、どんな型式のポインタでもＳＥＬＥＣＴＯＲ／ＯＦＦＳＥＴアドレスから直線アドレスに翻訳し、次いでこの呼を処理する。もし呼がＤＥＶＩＣＥＩＯＣＯＮＴＲＯＬインタフェースから受信されるならば、この呼はなんら翻訳を要せず相当する機能へ直接ディスパッチされる。
【０１４７】
いつＤＳＰハードウェアが特定タスクを終了したかの通知を望む１２ビットＷｉｎｄｏｗｓアプリケーションは、それを次によって行うことができる、すなわち、ＯＶＥＲＬＡＰＰＥＤ構造内に有効事象ハンドルを入れかつポインタをＶＸＤＥへ送る。したがって、これは、事象に際してＷａｉｔＦｏｒＳｉｇｌｅＯｂｊｅｃｔを呼び出す必要がある。通知を望まないアプリケーションの場合、ＶＸＤＥを呼び出すとき、ＯＶＥＲＬＡＰＰＥＤ構造に対するポインタを含むパラメータは零であるとする。
【０１４８】
いつＤＳＰハードウェアが特定タスクを仕上げたかの報せを望む１６ビットＷｉｎｄｏｗｓアプリケーションは、コールバック機能を使用することができる。
【０１４９】
図３２及び３３は、本発明の改善されたコンピュータシステムに対する図３１及び３２のアプリケーション／ドライバモデルにおける種々の作用を示す概略ブロック図である。ＶＸＤＥは、ＶＰＩＣＤを通してＤＳＰと通信するために使用されるＩＲＱを仮想化する。指定されたＩＲＱへのどんな割り込みもＶＸＤＥへディスパッチされる。割り込みが発生すると、ＶＸＤＥはまず当該割り込みをクリヤしてどんな将来の割り込みも使用許可し、次いで当該割り込みへのサービスを開始する。もし当該割り込みが１６ビットアプリケーションからの呼び出しの結果であるならば、コールバック機能がスケジュール事象（Ｃａｌｌ＿Ｐｒｉｏｒｉｔｙ＿Ｅｖｅｎｔ）を通して取り扱われ、この間コールバック機能はＶｍｍサービスＳｉｍｕｌａｔｅ＿Ｆａｒ＿Ｃａｌｌを通して呼び出される。これは、ＶｘＤがハードウェア割り込みを処理するとき、それがその呼び出す番号サービスによって制約されるためである。もし割り込みが３２ビットアプリケーションからの呼び出しの結果ならば、アプリケーションの通告がやはりスケジューリング事象を通して取り扱われ、ここで、通告はＥＢＸ＝ｏｖｅｒｌａｐｐｅｄ．
Ｉｎｔｅｒｎａｌを用いてＷｉｎ３２サービスｖＷｉｎ３２＿ＤＩＯＣＣｏｍｐｌｅｔｉｏｎＲｏｕｔｉｎｅを呼び出すことによって実現される。
【０１５０】
図３４は、本発明の改善されたコンピュータシステムに対する仮想メモリモデルの実施例の概略ブロック図である。図３４のモデルは、いかに全ての通信を直列ポートを通してＤＳＰハードウェアへ再指向させるかを示す。
【０１５１】
直列ポートを通して通信をＤＳＰハードウェアへ再指向させるために、ＤＳＰＶｘＤがサービスの集合をポートドライバ及びポート仮想化ＶｘＤに提供する。ポート仮想化ＶｘＤがロードされるシステムブート時間に際し、この仮想化ＶｘＤは、その実行環境を初期化し、Ｉ／Ｏトラッピングハンドラを設置し、ポートＩ／Ｏコンテンションハンドラを設置する、等々、それゆえコンピュータ出力マイクロフィルム（以下、ＣＯＭと称する）デバイスを仮想化する。
【０１５２】
ディスクオペレーションシステム（以下、ＤＯＳと称する）内のＤＯＳアプリケーションがＣＯＭポートを獲得しようとするとき、そのポートの所有権が実モード仮想メモリ（以下、仮想メモリをＶＭと称する）に与えられ、そのＣＯＭに関連したＩＲＱがＶＰＩＣＤを通して仮想化され、それだからそのＩＲＧからの割り込みを正しいＶＭへ反映することができる。ＣＯＭポートを通すどんな通信も設置されたポートＩ／Ｏトラッピングハンドラを通してトラップされ、かつＤＳＰ  ＶｘＤによって提供されるサービスの集合を使用してＤＳＰハンドラへ再指向させられる。
【０１５３】
システムＶＭｚ上でラン中のＷｉｎｄｏｗｓアプリケーションがＣＯＭポートを獲得しようとするとき、ポートドライバが、ポート仮想化ＶｘＤによって設置されたコンテンションハンドラを呼び出してそのＣＯＭポートの所有権をシステムＶＭにセットし、かつＩ／Ｏトラッピングをターンオフする。ＣＯＭポートを通るどんな通信もＤＳＰ  ＶｘＤによって提供されるサービスの集合を使用するポートドライバによってＤＳＰハードウェアへリダイレクトさせられる。
【０１５４】
図３５は、本発明の改善されたコンピュータシステムに対する仮想メモリモデルの他の実施例の概略ブロック図である。ハードウェアとのインタフェースがポートドライバ内でのみ起こるように図３４のモデルを図３５へ変化させることができる。これを行う利点は、ハードウェアを変化させるとき、ポートドライバのみを修正すればよいと云うことである。欠点は、ＤＯＳベースアプリケーションに関する追加の遅延である。
【０１５５】
図３６は、本発明による改善されたコンピュータシステムの部分の実施例の電気回路ブロック図である。図３６は、グラフィックコントローラのメモリコントローラとの集積化及びこれらのメモリデータバスを通してのメモリの共用を示す。ＣＰＵは、メモリコントローラにアドレスを供給し、これを制御し、かつそのホストバス上のデータをデータバッファを経由して受信する。
【０１５６】
図３７は、本発明による改善されたコンピュータシステムの部分の実施例の電気回路ブロック図である。図３７は、ＰＣカードソケットとビデオグラフィックアレイ（以下、ＶＧＡと称する）コントローラとの間の点対点単方向ビデオバスとしてのＶＺ（ズームビデオ）の使用を示す。この図は、いかに窓内のＴＶを低コストＰＣカードを備える携帯用コンピュータ内で達成することができるかを示す。ＭＰＥＧ又はテレビ会議カードをまたＰＣＭＣＩＡスロットにプラグインすることもできる。
【０１５７】
図３８から４４は、本発明による改善されたコンピュータシステムの部分のブレッドボードを示す実施例の電気回路ブロック図である。この実施例は、ＰＣＩショートカード定義に適合する多層ＰＣボードであるＤＣ／ＰＣ質問カードに変形される。このカードは、ディジタルエリア、アナログエリア、及びブランクエリアを有し、ブランクエリアに子カードを背の低い姿勢で接続することが可能である。アナログエリア用アナログ接地面及びディジタルエリア用ディジタル接地面をコーデックチップに近くして接続するものとする。このボードの端板は、Ｃ５ｘエミュレーションヘッダ（マザーボードに最も近い）、３つのステレオホーンジャック（３．５ｍｍ）、２つのＲＣＡ８４４ジャック、及びＲＪ１１ホーンジャック（マザーボードから最も遠い）を収容する。
【０１５８】
子カード用ヘッダはマザーボード上の２重９０度ピンである。子カードは、全体的に背の低いボード用に作られる２重ヘッダソケットを有する。子カード上のＩ／Ｏバスを経由して利用可能のアドレス範囲は、ソフトウェア待機状態を異なるアドレス範囲に割り当てるのに融通性を持たせるために分解される。
【０１５９】
ＤＳＰのＣ５ｘ系列は、どの型式の入力クロック動作方式を使用するか決定する２つの入力ピンを有する。ＣＬＬＫＭＤ１信号及びＣＬＫＤ２信号は、４つの異なるロック動作を使用できるようにする（これらの１つは試験用に確保される）。このボード設計は、２つのクロック動作オプションを有する。
【０１６０】
図４５は、本発明の改善されたコンピュータシステムに採用されるＭＰＥＧ再生フィルタグラフモデルの実施例の概略ブロック図である。図１０で、ユーザがソフトウェアオブジェクトをクリックオンすると、Ｗｉｎｄｏｗｓアプリケーションは、ダイナミックにメモリを配分しかつＯＬＥをランする。図４５の「ＣＯＭインタフェース」円は、アプリケーションとフィルタグラフマネージャとの間のインタフェースであり、及びＭＣＩブロックはメディアインタフェースを制御する。ＭＰＥＧは、層から層式の代わりにオブジェクトからオブジェクト式に働く。送り手は、伸張するために画像捕獲データを含むことがある。
【０１６１】
図４６は、本発明による改善されたコンピュータシステムの他の実施例の電気回路ブロック図である。図４６は、図２９に類似しているが、しかしＰＣカードバスブロックが集積化ＩＤＳＰ、及びビデオ用ＺＶバスを有する。サウスブリッジは、また、集積化ＩＤＳＰ機能を含む。グラフィック及びビデオ機能はＰＣＩバスに接続された単一チップ内に集積されている。
【０１６２】
図４７は、本発明の改善されたコンピュータシステムに使用されるソフトウェアアプリケーション及びそれらの関連アプリケーションのブロック図である。図４７は、図２９の下側部分に類似している。
【０１６３】
図４８は、本発明の改善されたコンピュータシステムに使用されるオーディオデコーダの簡単化ブロック図である。入来コード化オーディオは多重分離され、誤り検査され、かつどんな付随データも出力される。種々のオーディオ副帯域が逆量子化ブロックへ出力され、この逆量子化ブロックは量子化ブロックステップをデータの部分として供給される。逆量子化ブロック１４１１は逆フィルタバンクブロックへ出力し、後者はデコードしたオーディオ信号を出力する。
【０１６４】
図４９は、直接ＤＳＰ（ｄｉｒｅｃｔＤＳＰ）構成要素及びいかにこの要素をそのドライバ及びエミュレーションブロックとインタフェースするかの概略ブロック図である。このような構成要素は本発明の改善されたコンピュータシステムに採用される。
【０１６５】
図５０は、本発明の改善されたコンピュータシステムに対する仮想メモリモデルの他の実施例の概略ブロック図である。図５０に示されたモデルは、図１２のそれに類似しているが、しかしＷｉｎｄｏｗｓ直接ＤＳＰ  ＨＡＬ、１６ビットＷｉｎｄｏｗｓＤＬＬ、及び３２ビットＷｉｎｄｏｗｓＤＬＬを有する。これらのＤＬＬは、Ｗｉｎｄｏｗｓドライバと直接ＤＳＰとの間の通信にのみ必要である。しかしながら、このモデルにとって、直接ＤＳＰは、ことごとくの責務を負う、すなわち、ＤＳＰとインタフェースし、割り込みを取り扱い、アプリケーションコールバック及びファイルＩ／Ｏを遂行する、等々、かつ直接ＤＳＰ環境の名称を与えられている。
【０１６６】
図５１は、本発明の改善されたコンピュータシステムを実現するＷｉｎｄｏｗｓアプリケーションと基礎をなすＰＣハードウェアとの間のソフトウェアの種々の層を示す概略ブロック図である。
【０１６７】
図５２は、本発明の改善されたコンピュータシステムに対する図５０の種々のモデル内の種々の作用を示す概略ブロック図である。図５２は、図３２に類似しているが、しかしまたＡＰＩレベルブロックを含む。
【０１６８】
図５３は、本発明の改善されたコンピュータシステムに対する図５０の種々仮想モデル内の種々の作用を示す概略ブロック図である。図５２は、図３３に類似しているが、しかしまたＡＰＩレベルブロックを含む。
【０１６９】
図５４は、本発明の改善されたコンピュータシステムに対する仮想モデルの他の実施例の概略ブロック図である。図５４は、図３４に類似しているが、しかしまた直接ＨＡＬブロックを含む。
【０１７０】
図５５は、本発明の改善されたコンピュータシステムに対する仮想モデルの他の実施例の概略ブロック図である。図５５は、図３５に類似しているが、しかしまた直接ＨＡＬブロックを含む。
【０１７１】
図５６は、本発明の改善されたコンピュータシステム上で使用可能なマルチメディアに対する仮想モデルの他の実施例の概略ブロック図である。このモデルはｄｉｒｅｔｘ  ｎｏｍｅｎｃｌａｔｕｒｅを使用しかつアプリケーションとドライバ構成要素との間の種々のインタフェースを示す。
【０１７２】
図５７は、本発明の改善されたコンピュータシステムを実現するＷｉｎｄｏｗｓアプリケーションとその基礎をなすＰＣハードウェアとの間のソフトウェアの種々の層を示す概略ブロック図である。このモデルは、アプリケーション、ドライバ構成要素、及び種々のハードウェアブロックの間の種々のインタフェースを示す。
【０１７３】
図５８は、本発明の技術に従いＤＳＰを含むブロックを提供するように選択されたアプリケーション機能性が一括組み合わせられる種々の方法を示す概略ブロック図である。この図は、ＰＣＩバスに典型的に付属する機能性を使用する種々の集積化を示す。
【０１７４】
図５９は、本発明の技術に従いＤＳＰを含むブロックを提供するように選択されたアプリケーション機能性が一括組み合わせられる代替方法を示す概略ブロック図である。この図は、ＰＣＩバスに典型的に付属する機能性を使用する種々の集積化及びいかにこの機能性の或るものがＣＰＵの動作を加速するためにノースブリッジと共に含まれるかを示す。加えて、第２ＰＣＩバスが種々のネットワーキング機能性又は高速アクセス用に示されている。
【０１７５】
図６０は、本発明の改善されたコンピュータシステムに採用される他の実施例の概略ブロック図である。図６０は、ＣＰＵ及びメモリへのアクセスを提供するインタフェース５５５０の使用を示す。インタフェース５５５０に接続されて、複数のブロック５５１０、５５２０、５５３０があり、これらは各々ＤＳＰを含みかつ本発明の教示に従って１つ以上のアプリケーションを仮想化するために使用される。これらのブロックは、次にインタフェース５５６０に接続され、後者はＰＣＭＣＩＡ、ＰＣＩ、及び（又は）ＩＳＡバスに適当に接続される。加えて、高速ＺＶバスがブロック５５１０、５５２０、５５３０の適当な１つと相互接続するようにまた示されている。
【０１７６】
図６１は、本発明の改善されたコンピュータシステムに採用される他の実施例の高レベル概略ブロック図である。図６１は、いかに図６０の総合ブロック５５００が、メモリ及び適当なＡＤ変換ブロック、ＤＡ変換ブロックと接続している処理素子として分類されるかを示す。追加のＩ／Ｏもまた示されている。
【０１７７】
本発明は、図示の実施例を参照して説明されたが、この説明を限定的に解釈することを意図しているのではない。図示の実施の種々の変形ばかりでなく、本発明の他の実施例は、本説明を参照するならば当技術の習熟者に実施可能でありかつ明白である。したがって、添付の特許請求の範囲は、本発明の真の範囲に属するあらゆるこのような変形及び実施例を包含すると考える。
【０１７８】
以上の説明に関して更に以下の項を開示する。
【０１７９】
（１）  計算システムであって、
主ＣＰＵマイクロプロセッサ、
前記主ＣＰＵマイクロプロセッサとは異なる命令集合を有するＤＳＰマイクロプロセッサ、
前記主ＣＰＵマイクロプロセッサと前記ＤＳＰマイクロプロセッサとに結合された記憶装置、及び
主ＣＰＵが他に係わって占有されている時間間隔中ＤＳＰが前記ＣＰＵの動作を実行することによって前記システムの性能を高めるように配置された前記記憶装置内のファイルベースオペレーティングシステム
を含む計算システム。
【０１８０】
（２）  第１項記載の計算システムであって、前記ＤＳＰマイクロプロセッサと前記主ＣＰＵマイクロプロセッサとに結合されたビデオ集積回路を更に含み、前記記憶がディスクとＤＲＡＭを更に含み、前記ＤＲＡＭが前記マイクロプロセッサと、前記主ＣＰＵマイクロプロセッサと、前記ビデオ集積回路とに対して統一メモリアーキテクチャ内で結合される、計算システム。
【０１８１】
（３）  第１項記載の計算システムであって、前記システムのアプリケーションを支持する少なくとも１つのアプリケーション装置を更に含み、前記アプリケーション装置が物理層のみに実質的に減少させられたハードウェアを更に含み、それであるから、前記ＤＳＰマイクロプロセッサが前記物理層によって媒介される信号を利用して前記アプリケーションの残りを仮想化しかつ遂行する、計算システム。
【０１８２】
（４）  第１項記載の計算システムであって、前記ＤＳＰマイクロプロセッサによる実行用に前記記憶装置内にカーネルソフトウェアを更に含む計算システム。
【０１８３】
（５）  第４項記載の計算システムであって、前記ＤＳＰマイクロプロセッサに結合されたＩ／Ｏポートを更に有し、前記カーネルソフトウェアが前記ファイルベースオペレーティングシステムと適切に調整するＤＳＰマイクロプロセッサ動作を定義し、もし前記主ＣＰＵマイクロプロセッサが仮想ハードウェアを表す所与の機能を実行するのに占有されるならば、前記ＤＳＰマイクロプロセッサが前記機能を実行し、もし前記主ＣＰＵと前記ＤＳＰの両方が自由であるならば、前記ファイルベースオペレーティングシステムによって決定されるに従って前記主ＣＰＵマイクロプロセッサ又は前記ＤＳＰマイクロプロセッサのどちらかが前記機能を実行することができ、前記仮想ハードウェアが前記ＣＰＵと前記Ｉ／Ｏとに係わる移動度を有する、計算システム。
【０１８４】
（６）  第４項記載の計算システムにおいて、前記カーネルソフトウェアが前記ファイルベースオペレーティングシステムを用いて割り込みベースでＤＳＰマイクロプロセッサ動作を定義し、所与の機能に対する優先権が実時間に計算され、かつ機能がダイナミックに実行され、かつ前記カーネルソフトウェアが前記ファイルベースオペレーティングシステムを供給し、それによって実時間優先権を計算することができる、計算システム。
【０１８５】
（７）  第１項記載の計算システムにおいて、前記ファイルベースオペレーティングシステムが前記ＤＳＰマイクロプロセッサ用プログラム空間について、かつ更に前記主ＣＰＵマイクロプロセッサと前記ＤＳＰマイクロプロセッサとの共用メモリモデルとしての読み出しデータ送り手空間と書込みデータ受け手空間とについて前記記憶装置に対するポインタアドレスを前記ＤＳＰマイクロプロセッサに供給するソフトウェアを含み、それによって前記配置が前記ファイルベースオペレーティングシステムを使用して前記ＤＳＰマイクロプロセッサを前記主ＣＰＵマイクロプロセッサに緊密に結合する、計算システム。
【０１８６】
（８）  ソフトウェアアプリケーションの少なくとも部分を実行する能力のある第１項記載の計算システムであって、前記ファイルベースオペレーティングシステムが、仮想メモリ内の何処にソフトウェアの部分が開始しかつ終了するか告げるハンドルを定義する前記ソフトウェアを含み、前記システムが前記ＤＳＰマイクロプロセッサに主ＣＰＵ機能を実行させる動作を定義するＤＳＰカーネルを更に含み、前記主ＣＰＵマイクロプロセッサは何処に送り手ハンドルと受け手ハンドルがあるかを定義し、前記ファイルベースオペレーティングシステムは情報を受け手ハンドルによって定義された位置へ送る動作を定義し、前記ＤＳＰカーネルは何処で前記送り手ハンドルと前記受け手ハンドルとが前記ＤＳＰマイクロプロセッサに前記主ＣＰＵの代わりに機能を実行させるべきかに基づき動作を定義する、計算システム。
【０１８７】
（９）  第１項記載の計算システムにおいて、前記主ＣＰＵマイクロプロセッサが仮想アドレスを利用し、かつ前記ファイルベースオペレーティングシステムが前記仮想アドレスに相当する物理アドレスを提供する仮想メモリマネージャを含み、かつ前記計算システムがＤＳＰマイクロプロセッサ機能用物理アドレスを利用する動作を定義するＤＳＰカーネルを更に含む、計算システム。
【０１８８】
（１０）  第１項記載の計算システムにおいて、前記ファイルベースオペレーティングシステムが、１６ビットアプリケーション用にコールバック機能を通して、かつ３２ビット用にセマフォーを通してアプリケーションと通信する仮想デバイスドライバ（ＶｘＤ）を定義するソフトウェアを含む、計算システム。
【０１８９】
（１１）  第１項記載の計算システムにおいて、前記ファイルベースオペレーティングシステムが前記ＤＳＰマイクロプロセッサと前記主ＣＰＵマイクロプロセッサとの間を通信するために使用される割り込みを仮想化する動作を定義する、計算システム。
【０１９０】
（１２）  幅を有するデータ入力、前記データ入力と異なる幅のデータ出力、アドレス入力、アドレス出力、及びアドレスとデータ幅と第１バスクロック周波数とを有する第１バスと前記第１バスと異なるデータ幅の第２バスであってかつアドレスを有する前記第２バスとの間のインタフェースとして使用されるようなデバイスとを有する集積回路デバイスであって、
前記第１バスクロック周波数に同期するＦＩＦＯの動作用クロック入力を有する少なくとも２つの並列複数語ＦＩＦＯ、
制御入力を有するマルチプレクサ電子回路であって、前記ＦＩＦＯを経由して前記データ入力と前記異なる幅のデータ出力との間のデータのバイトを多重化するように結合された前記マルチプレクサ電子回路、及び
前記アドレス入力と前記アドレス出力との間でアドレスを翻訳するアドレス翻訳回路であって、前記アドレス入力が前記マルチプレクサ電子回路の前記制御入力に結合された最下位ビットを有し、それであるからデータバイトが前記アドレス入力最下位ビットに従って異なって多重化される、前記アドレス翻訳回路
を含む集積回路デバイス。
【０１９１】
（１３）  第１２項記載の集積回路デバイスであって、命令集合を有しかつ前記集積回路デバイス上に集積されたプロセッサを更に含み、前記プロセッサが前記アドレス入力と前記アドレス出力とに結合された、集積回路デバイス。
【０１９２】
（１４）  第１３項記載の集積回路デバイスであって、バイト使用許可出力を有し、かつ前記バイト使用許可出力をセットしかつ前記ＦＩＦＯからのデータを前記データ出力に結合するために前記プロセッサに更に応答性の集積回路デバイス。
【０１９３】
（１５）  第１３項記載の集積回路デバイスであって、ＤＲＡＭメモリコントローラとＰＣＩバスインタフェースとを含むノースブリッジ電子回路を更に有する集積回路デバイス。
【０１９４】
（１６）  第１３項記載の集積回路デバイスであって、カードバスコントローラ電子回路を更に有する集積回路デバイス。
【０１９５】
（１７）  第１３項記載の集積回路デバイスであって、汎用直列バス（ＵＳＢ）とＩＥＥＥ１３９４−準拠直列バスとを含む群から選択される直列バスコントローラ電子回路を更に有する集積回路デバイス。
【０１９６】
（１８）  第１２項記載の集積回路デバイスであって、前記アドレス出力に結合された散乱−収集ＤＭＡ電子回路を更に有する集積回路デバイス。
【０１９７】
（１９）  第１２項記載の集積回路デバイスであって、前記データ出力に結合されたマスタ回路とスレーブ回路との両方を含むバス制御ブロック更に含む集積回路デバイス。
【０１９８】
（２０）  主ＣＰＵマイクロプロセッサ、
前記主ＣＰＵマイクロプロセッサに結合された第１バスであって、アドレス線と、データ幅と、第１バスクロック周波数とを有する前記第１バス、
前記主ＣＰＵマイクロプロセッサと異なる命令集合を有する第２マイクロプロセッサ、
前記第１バスと異なるデータ幅の第２バスであって、アドレス線を有しかつ前記第２マイクロプロセッサに結合された前記第２バス、及び
幅を有するデータ入力と、前記データ入力と異なる幅のデータ出力と、アドレス入力とアドレス出力とを有し、前記第１バスと第２バスとへのインタフェースとして結合された集積回路デバイスであって、
前記第１バスクロック周波数に同期するＦＩＦＯの動作用クロック入力を有する少なくとも２つの並列複数語ＦＩＦＯ、
制御入力を有するマルチプレクサ電子回路であって、前記ＦＩＦＯを経由して前記データ入力と前記異なる幅のデータ出力との間のデータのバイトを多重化するように結合された前記マルチプレクサ電子回路、及び
前記アドレス入力と前記アドレス出力との間でアドレスを翻訳するアドレス翻訳回路であって、前記アドレス入力が前記マルチプレクサ電子回路の前記制御入力に結合された最下位ビットを有し、それであるからデータバイトが前記アドレス入力最下位ビットに従って異なって多重化される前記アドレス翻訳回路
を有する前記集積回路デバイス
を含み、
、前記第２マイクロプロセッサが前記第２バスを経由して前記アドレス入力と前記データ入力とに結合されている
計算システム。
【０１９９】
（２１）  改善されたＰＣシステム（１００）であって、主ＣＰＵマイクロプロセッサ（１０２）と、ファイルベースオペレーティングシステム（図１９ａ）と、ＤＳＰマイクロプロセッサ（２００）とを含み、主ＣＰＵ（１０２）が他に係わって忙殺されている時間間隔中前記ＤＳＰ（２００）が前記主ＣＰＵの動作を実行するように配置され、それによって前記ＰＣシステムの帯域幅の増大が達成される。このＰＣシステムは多重ＣＰＵ及び（又は）多重ＤＳＰを含むこともできる。
【図面の簡単な説明】
【図１】本発明による改善されたコンピュータシステムの実施例の電気回路ブロック図。
【図２】図１の改善されたコンピュータシステムの部分の好適実施例の詳細な電気回路ブロック図（部分的に概略図、部分的にブロック図）。
【図３】図１の改善されたコンピュータシステムの部分の一好適実施例の更に詳細な電気回路図（部分的に概略図、部分的にブロック図）である。
【図４】図１の改善されたコンピュータシステムの部分の好適実施例の詳細な電気回路ブロック図（部分的に概略図、部分的にブロック図）であって、ａはその含むチップ内の構成図、ｂは全体の接続図。
【図５】ホスト依存性である非対称多重処理のための本発明の改善されたコンピュータシステムの一実施例のブロック図。
【図６】本発明の改善されたコンピュータシステムに対してスーパスカラ拡張を使用する実施例の概略ブロック図であって、ａはＣＰＵモデルの図、ｂはメモリキャッシュ階層構造図。
【図７】本発明の改善されたコンピュータシステムに対する共用メモリモデルの実施例の概略線図。
【図８】本発明の改善されたコンピュータシステムに対するマルチメディア拡張モデルの実施例の概略線図。
【図９】本発明の改善されたコンピュータシステムに対するシステム／キャッシュ／仮想メモリモデルの実施例の概略線図。
【図１０】本発明の改善されたコンピュータシステムに採用されることがあるＭＰＥＧ再生フィルタグラフモデルの実施例の概略ブロック図。
【図１１】本発明の改善されたコンピュータシステムに対する仮想Ｉ／Ｏハードウェア−ＰＣＩＤＭＡ及びマルチメディア実時間割り込みハンドラモデルの実施例の概略ブロック図。
【図１２】本発明の改善されたコンピュータシステムに対するフレーム内の並列処理の概略ブロック図。
【図１３】本発明の改善されたコンピュータシステムが採用することがあるＭＰＥＧエンコーダの簡単化ブロック図。
【図１４】本発明の改善されたコンピュータシステムが採用することがあるＭＰＥＧデコーダ１４００の簡単化ブロック図。
【図１５】本発明のノートブックコンピュータに対するビデオ解決の実施例の簡単化ブロック図。
【図１６】本発明のデスクトップコンピュータに対するビデオ解決の実施例の簡単化ブロック図。
【図１７】本発明の改善されたコンピュータシステムに対するＤＳＰアルゴリズム用アップリケーションパイプラインの簡単化ブロック図。
【図１８】本発明による改善されたコンピュータシステムの他の実施例の電気回路ブロック図。
【図１９】本発明の改善されたコンピュータシステム流れ図と電気回路図であって、ａはシステム流れ図、ｂは図１の改善されたコンピュータシステムの好適実施例の更に詳細な電気回路図（部分的に概略図、部分的にブロック図）。
【図２０】本発明の改善されたコンピュータシステムに対するメモリ分配及び物理ロッキングモデルの概略ブロック図。
【図２１】本発明の改善されたコンピュータシステムに対する送り手及び受け手データＤＭＡ転送テーブルモデルの概観ブロック図。
【図２２】本発明の改善されたコンピュータシステムに対する送り手データＤＭＡ転送テーブルモデルの内部構造の概略ブロック図。
【図２３】図２２の送り手ＤＭＡ転送テーブルに対する領域リストの詳細を示すブロック図。
【図２４】本発明の改善されたコンピュータシステムに対する受け手データＤＭＡ転送テーブルモデルの内部構造の概略ブロック図。
【図２５】図２０のプログラマ／データ空間の部分テーブルの更に詳細なブロック図。
【図２６】本発明による改善されたコンピュータシステムの他の実施例の電気回路ブロック図。
【図２７】本発明による改善されたコンピュータシステムの他の実施例の電気回路ブロック図。
【図２８】本発明による改善されたコンピュータシステムの更に他の実施例の電気回路ブロック図。
【図２９】本発明による改善されたコンピュータシステムのなお更に他の実施例の電気回路ブロック図。
【図３０】本発明の改善されたコンピュータシステムに対する仮想メモリモデルの実施例の電気回路ブロック図。
【図３１】本発明の改善されたコンピュータシステムに対する仮想メモリモデルの他の実施例の電気回路ブロック図。
【図３２】本発明の改善されたコンピュータシステムに対する図３１及び３２の仮想メモリ内の種々の作用を示す概略ブロック図。
【図３３】本発明の改善されたコンピュータシステムに対する図３１及び３２の仮想メモリ内のなおまた種々の作用を示す概略ブロック図。
【図３４】本発明の改善されたコンピュータシステムに対する仮想メモリモデルの他の実施例の概略ブロック図。
【図３５】本発明の改善されたコンピュータシステムに対する仮想メモリモデルの更に他の実施例の概略ブロック図。
【図３６】本発明による改善されたコンピュータシステムの部分の実施例の電気回路ブロック図。
【図３７】本発明による改善されたコンピュータシステムの部分の実施例の電気回路ブロック図。
【図３８】本発明の改善されたコンピュータシステムの部分の実施例の概略ブロック図。
【図３９】本発明の改善されたコンピュータシステムの部分の実施例の概略ブロック図。
【図４０】本発明の改善されたコンピュータシステムの部分の実施例の概略ブロック図。
【図４１】本発明の改善されたコンピュータシステムの部分の実施例の概略ブロック図。
【図４２】本発明の改善されたコンピュータシステムの部分の実施例の概略ブロック図。
【図４３】本発明の改善されたコンピュータシステムの部分の実施例の概略ブロック図。
【図４４】本発明の改善されたコンピュータシステムの部分の実施例の概略ブロック図。
【図４５】本発明の改善されたコンピュータシステムに対するＭＰＥ再生フィルタグラフモデルの実施例の概略ブロック図。
【図４６】本発明による改善されたコンピュータシステムの他の実施例の電気回路ブロック図。
【図４７】本発明の改善されたコンピュータシステムに使用されるソフトウェアアプリケーション及びそれらの関連アプリケーションのブロック図。
【図４８】本発明の改善されたコンピュータシステムに使用される音声デコーダの簡単化ブロック図。
【図４９】直接ＤＳＰ構成要素及びいかにこの要素をドライバ及びエミュレーションブロックとインタフェースさせるかの概略ブロック図。
【図５０】本発明の改善されたコンピュータシステムに対する仮想メモリモデルの他の実施例の概略ブロック図。
【図５１】本発明の改善されたコンピュータシステムを実現するＷｉｎｄｏｗｓアプリケーションと基礎をなすＰＣハードウェアとの間のソフトウェアの種々の層を示す概略ブロック図。
【図５２】本発明の改善されたコンピュータシステムに対する図５０の種々のモデル内の種々の作用を示す概略ブロック図。
【図５３】本発明の改善されたコンピュータシステムに対する図５０の種々仮想モデル内の種々の作用を示す概略ブロック図。
【図５４】本発明の改善されたコンピュータシステムに対する仮想モデルの他の実施例の概略ブロック図。
【図５５】本発明の改善されたコンピュータシステムに対する仮想モデルの他の実施例の概略ブロック図。
【図５６】本発明の改善されたコンピュータシステム上で使用可能なマルチメディアに対する仮想モデルの他の実施例の概略ブロック図。
【図５７】本発明の改善されたコンピュータシステムを実現するＷｉｎｄｏｗｓアプリケーションとその基礎をなすＰＣハードウェアとの間のソフトウェアの種々の層を示す概略ブロック図。
【図５８】本発明の技術に従いＤＳＰを含むブロックを提供するように選択されたアプリケーション機能性が一括組み合わせられる種々の方法を示す概略ブロック図。
【図５９】本発明の技術に従いＤＳＰを含むブロックを提供するように選択されたアプリケーション機能性が一括組み合わせられる代替方法を示す概略ブロック図。
【図６０】本発明の改善されたコンピュータシステムに採用される他の実施例の概略ブロック図。
【図６１】本発明の改善されたコンピュータシステムに採用される他の実施例の高水レベル略ブロック図。
【符号の説明】
１００  ＰＣシステム
１０２  ＣＰＵ
１０４  キャッシュ
１０６  主メモリバス
１０８  ホストブリッジ
１１２  主メモリ
１１６  ＰＣＩバス
１２０  Ｐ１３９４／ＵＳＢブロック
１２４  Ｉ／Ｏブロック
１２８  ＩＳＡバス
２００  ＤＳＰブロック
２１０  ハードウェアインタフェース電子回路
２１４  インタフェース電子回路、メモリ
２１８  ＤＳＰコア
２２２  ＤＳＰコア
３０４  ＰＣＩマスタ／スレーブインタフェース回路
３０５  ハードウェア層
３０６  ＰＣＩ構成制御及び状態レジスタ電子回路
３０８  ＰＣＩ  Ｉ／Ｏ空間レジスタ電子回路
３１０  ２重ポート読み出し書き込みＦＩＦＯ電子回路
３１２  ＤＳＰ  Ｉ／Ｏ空間レジスタ電子回路
３１６  インタフェース／コーデックＤＭＡ制御回路
４２０  チップ
４２４  マスタ／スレーブインタフェース
４２８  ＤＳＰ
４３２  カードバスコントローラ
４６０  チップ
４８８  データバッファ
ＡＰＰ  アプリケーション
ＦＦＤ  フロッピィディスク装置
ＨＤＤ  ハードディスク装置
ＭＵＸ  マルチプレクサ
ＰＣＩ  周辺デバイス相互接続
ＰＰ  並列ポート
ＰＰＵ  周辺処理装置
ＳＰ  直列ポート
ＵＭＡ  統一メモリアーキテクチャ
ＶｘＤ  ビデオドライバ
ＷＡＮ  広域ネットワーク
【図１】
0003774538.tif 000002
【図２】
0003774538.tif 000003
【図３】
0003774538.tif 000004
【図４】
0003774538.tif 000005
【図５】
0003774538.tif 000006
【図６】
0003774538.tif 000007
【図７】
0003774538.tif 000008
【図８】
0003774538.tif 000009
【図９】
0003774538.tif 000010
【図１０】
0003774538.tif 000011
【図１１】
0003774538.tif 000012
【図１２】
0003774538.tif 000013
【図１３】
0003774538.tif 000014
【図１４】
0003774538.tif 000015
【図１５】
0003774538.tif 000016
【図１６】
0003774538.tif 000017
【図１７】
0003774538.tif 000018
【図１８】
0003774538.tif 000019
【図１９】
0003774538.tif 000020
【図２０】
0003774538.tif 000021
【図２１】
0003774538.tif 000022
【図２２】
0003774538.tif 000023
【図２３】
0003774538.tif 000024
【図２４】
0003774538.tif 000025
【図２５】
0003774538.tif 000026
【図２６】
0003774538.tif 000027
【図２７】
0003774538.tif 000028
【図２８】
0003774538.tif 000029
【図２９】
0003774538.tif 000030
【図３０】
0003774538.tif 000031
【図３１】
0003774538.tif 000032
【図３２】
0003774538.tif 000033
【図３３】
0003774538.tif 000034
【図３４】
0003774538.tif 000035
【図３５】
0003774538.tif 000036
【図３６】
0003774538.tif 000037
【図３７】
0003774538.tif 000038
【図３８】
0003774538.tif 000039
【図３９】
0003774538.tif 000040
【図４０】
0003774538.tif 000041
【図４１】
0003774538.tif 000042
【図４２】
0003774538.tif 000043
【図４３】
0003774538.tif 000044
【図４４】
0003774538.tif 000045
【図４５】
0003774538.tif 000046
【図４６】
0003774538.tif 000047
【図４７】
0003774538.tif 000048
【図４８】
0003774538.tif 000049
【図４９】
0003774538.tif 000050
【図５０】
0003774538.tif 000051
【図５１】
0003774538.tif 000052
【図５２】
0003774538.tif 000053
【図５３】
0003774538.tif 000054
【図５４】
0003774538.tif 000055
【図５５】
0003774538.tif 000056
【図５６】
0003774538.tif 000057
【図５７】
0003774538.tif 000058
【図５８】
0003774538.tif 000059
【図５９】
0003774538.tif 000060
【図６０】
0003774538.tif 000061
【図６１】
0003774538.tif 000062