JPH0588918A - マシン・サイクルの浪費を回避する方法 - Google Patents

マシン・サイクルの浪費を回避する方法

Info

Publication number
JPH0588918A
JPH0588918A JP8535892A JP8535892A JPH0588918A JP H0588918 A JPH0588918 A JP H0588918A JP 8535892 A JP8535892 A JP 8535892A JP 8535892 A JP8535892 A JP 8535892A JP H0588918 A JPH0588918 A JP H0588918A
Authority
JP
Japan
Prior art keywords
task
operating system
instruction
queue
mode
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.)
Pending
Application number
JP8535892A
Other languages
English (en)
Inventor
Richard Bealowski
リチヤード・ベアルコフスキ
Michael Robert Turner
マイケル・ロバート・ターナー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0588918A publication Critical patent/JPH0588918A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 本発明の目的は、命令シーケンス中で待機点
を指示する方法を提供することである。 【構成】 本発明によれば、プロセッサが多重タスク処
理オペレーティング・システム環境で保護モードで動作
するとき、中央演算処理装置に特徴的なHALT命令ま
たは類似の命令をうまく利用して、プロセッサが有用な
作業をしておらず、たとえば入出力動作を待っている時
間中に、中央演算処理装置のサイクルを節約する方法が
提供される。本発明は、そのタイム・スライスが終わる
前にそのようなタスクに割り込んで、中央演算処理装置
を待ち行列上の次のタスクに割り振る方法を提供する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パーソナル・コンピュ
ータ・システムに関し、具体的には、コンピュータ・シ
ステムが有用な動作を実行していないときにコンピュー
タによって処理中の命令シーケンスの実行の時間を検出
し、指示する方法及び装置に関する。より具体的には、
本発明は、コンピュータ・システムにおける命令シーケ
ンスの実行において静止状態を検出し、それを有効に利
用して処理上の利益を得ることを目的とする。
【0002】
【従来の技術】一般にパーソナル・コンピュータ・シス
テム、具体的にはIBMパーソナル・コンピュータ・シ
ステムは、現代社会の多くの分野にコンピュータ・パワ
ーを提供するために広範に使用されるようになった。パ
ーソナル・コンピュータ・システムは、通常、システム
・プロセッサ、表示装置、キーボード、1つまたは複数
のディスケット・ドライブ、固定ディスク記憶装置、及
び任意選択のプリンタを有するシステム・ユニットから
なる、デスク・トップ型、床置き型、または携帯型のマ
イクロコンピュータとして定義することができる。マイ
クロコンピュータという言葉は、一般的に、少なくとも
1つの中央演算処理装置と、キーボードやマウスなど任
意選択の入力装置と、フレキシブルかつ拡張可能な方式
で相互接続された出力用の表示装置及びプリンタを有す
るシステムを意味する。これらは、必ずそうとは限らな
いが、通常は、一般に個々のオフィスまたは家庭環境で
使用するのに十分な小型サイズのシングル・ユーザ・シ
ステムとして構成される。これらのシステムは、主とし
て1人または小グループのユーザに独立の計算能力を提
供するように設計され、個人または企業が購入できるよ
うに安価な価格になっている。このようなパーソナル・
コンピュータ・システムの例は、IBMのパーソナル・
コンピュータAT、及びIBMパーソナル・システム/
2モデル25、30、50、60、70、80、90、
95である。これらすべては現在市販されており、その
アーキテクチャ及び動作は当業者には周知である。
【0003】これらのシステムは、大別して2つのファ
ミリに分類することができる。第1のファミリは、通
常、ファミリ1モデルと呼ばれ、IBMパーソナル・コ
ンピュータAT、及び「IBM互換」機によって例示さ
れるバス・アーキテクチャを使用する。第2のファミリ
は、ファミリ2モデルと呼ばれ、IBMパーソナル・シ
ステム/2 モデル50ないし95によって例示される
IBMのマイクロ・チャネル・バス・アーキテクチャを
使用する。
【0004】IBMパーソナル・コンピュータなどのフ
ァミリ1モデルの最初期のパーソナル・コンピュータ・
システムから始まり、ファミリ2モデルを通じて、中央
演算処理装置は、インテル「86ファミリ」のマイクロ
プロセッサから選択された。インテル86ファミリのマ
イクロプロセッサには、8088、8086、8028
6、80386、80486が含まれる。IBMパーソ
ナル・コンピュータ用に選択されたマイクロプロセッサ
は、インテル8088であった。インテル86ファミリ
のマイクロプロセッサのアーキテクチャは、当業者には
周知であって、文書に十分に記載されており、「86フ
ァミリ」以前のマイクロプロセッサに対するソフトウェ
ア投資を保護する、上位互換の命令セットを提供する。
ソフトウェア適用業務ベースを保存するプロセッサのこ
の上位互換性は、IBMパーソナル・コンピュータ及び
以後の各種モデルの大成功に寄与した主要な因子の1つ
である。
【0005】IBMパーソナル・コンピュータは、IB
Mパーソナル・コンピュータ・ラインの最初のモデルで
あり、インテル8088マイクロプロセッサを使用して
いた。IBMパーソナル・コンピュータ・システムの次
のモデルは、やはりインテル8088マイクロプロセッ
サを使用するIBMパーソナル・コンピュータXTであ
った。IBMパーソナル・コンピュータ・システムの次
のモデルは、インテル80286マイクロプロセッサを
使用するIBMパーソナル・コンピュータATであっ
た。IBMパーソナル・コンピュータATに続く2つの
IBMパーソナル・コンピュータ・システムは、IBM
パーソナル・システム/2モデル50及び60であった
が、これらのモデルはともにインテル80286プロセ
ッサを使用していた。IBMパーソナル・システム/2
モデル80、及びIBMパーソナル・システム/2モデ
ル70のいくつかのバージョンでは、インテル8038
6プロセッサを使用し、IBMパーソナル・システム/
2モデル70の他のバージョンでは、インテル8048
6プロセッサを使用している。IBMパーソナル・シス
テム/2モデル90 XP 486、及びIBMパーソ
ナル・システム/2モデル95 XP 486はともに
インテル80486を使用している。これらすべてのシ
ステムの共通の特徴の1つは、インテル86ファミリ・
マイクロプロセッサの使用である。
【0006】インテル86ファミリのマイクロプロセッ
サは各種の動作「モード」をサポートする。インテル8
6ファミリの基本モードは「実モード」である。実モー
ドは8088及び8086の唯一の動作モードである。
実モードは1メガバイトのアドレス空間をサポートす
る。8088及び8086マイクロプロセッサには保護
機構はない。保護機構という言葉は、他の適用業務また
はプロセスの動作を妨げずに、個々の適用業務またはプ
ロセスの独立かつ別個の処理を可能にする機構を、プロ
セッサがもつことを意味する。それには必然的に、プロ
セッサ・サイクルを分割し、処理されている様々な適用
業務の間にそれを割り振ることが必要である。8028
6プロセッサは、実モード及び「保護モード」の両方の
動作モードをサポートする。保護モードは、「保護」と
いう言葉が意味するように、ある適用業務プログラムが
他の適用業務プログラム、またはシステム内に常駐する
オペレーティング・システムの動作に干渉するのを防止
する、保護された動作モードを提供する。80286
は、8088及び8086より優れた拡張されたアドレ
ス指定能力を提供し、最大16メガバイトまでの直接ア
ドレス指定が可能である。下方互換性を維持するため
に、80286は、実モードで動作して8088及び8
086の実モードをエミュレートすることができる。8
0386及び80486は、インテル86ファミリ・ア
ーキテクチャをさらに拡張し、最大4ギガバイトの物理
メモリをアドレス指定できる能力を提供する。また、8
0386及び80486は、「仮想86」動作モードを
サポートする。仮想86モードは、保護モード環境の全
範囲で実モードの動作特性をサポートする。この仮想8
6モードは、パーソナル・コンピュータの分野で標準と
して確立されたDOSオペレーティング・システムの下
で走る適用業務とのきわめて高水準の互換性を提供する
のに有用である。実モード、保護モード及び仮想86モ
ードを記載した文書は、インテル社から容易に入手でき
る。
【0007】DOSオペレーティング・システムは、最
初のIBMパーソナル・コンピュータをサポートするオ
ペレーティング・システムの1つであった。IBMパー
ソナル・コンピュータがインテル8088マイクロプロ
セッサを利用して以来、DOSオペレーティング・シス
テムは必然的に実モードのオペレーティング・システム
であったし、現在もそうである。DOSオペレーティン
グ・システムは通常、一時に1つの適用業務の実行だけ
をサポートする。ある適用業務が活動状態のときに別の
適用業務を走らせるには、活動状態の適用業務を終了さ
せるか、あるいは活動状態の適用業務を中断しなければ
ならない。インテル86ファミリのプロセッサの1つを
使用する各種のパーソナル・コンピュータ・システムで
動作するDOSの各種バージョン、たとえばDOSバー
ジョン2.0、3.0、3.2、3.3、4.0が開発
された。保護モードをサポートするインテル・マイクロ
プロセッサ上でも、DOSは依然として実モードで動作
しなければならない。DOSは実モード専用のオペレー
ティング・システムである。
【0008】インテル80386または80486マイ
クロプロセッサ上で使用可能な仮想86動作モードを利
用する保護モード・オペレーティング・システムは、D
OS上で同時に走るように設計された複数の適用業務プ
ログラムを実行することができるが、DOS自体は本質
的には多重タスク処理はしない。保護モード専用の適用
業務は、仮想86モードのDOS環境で実行中の実モー
ド適用業務と同時に走らせることができる。したがっ
て、これらの保護モード・オペレーティング・システム
は、実モード適用業務を含む複数の適用業務の「多重タ
スク処理」をサポートすることができる。上述の環境を
サポートするオペレーティング・システムの例は、周知
のAIX及びOS/2オペレーティング・システムのい
くつかのバージョンである。
【0009】インテル80286、80386及び80
486マイクロプロセッサの保護動作モードは、4段階
層特権システムをサポートする。4段階層特権システム
は、従来技術であり、周知であり、引用によって本明細
書に合体される"Intel iAPX286 Programmer^s Referenc
e Manual"のたとえば pp.1−4以下に記載されてい
る。これらの特権レベルは、特権命令や入出力命令の使
用などいくつかのマイクロプロセッサ機能の使用を制御
する。その4つのレベルには、0から3までの番号が付
いている。レベル0は最高の特権を有する、すなわち最
も信頼されたレベルである。
【0010】インテル86ファミリのプロセッサはすべ
てHALT命令を提供する。プロセッサが実モードで動
作しているとき、HALT命令は命令の実行を停止し、
プロセッサをHALT状態に置く。実モードの通常の条
件下では、イネーブルされた割り込み、マスク不能割り
込み(NMI)またはリセット命令が、実行を再開させ
る。インテル80386や80486などのプロセッサ
でHALT命令を実行すると、保護モード(現特権レベ
ルが0でない場合。適用業務については現特権レベルは
0であってはならない。なぜなら、レベル0は伝統的に
オペレーティング・システムのコア部分に予約されてい
るからである。非オペレーティング・システム機能また
は非コア・オペレーティング・システムは非0レベルで
操作される)及び仮想86モードで一般的記憶保護例外
が発生する。
【0011】パーソナル・コンピュータなどのコンピュ
ータ・システムで使用されている1つの共通なタイプの
プログラム構造はループである。多くのコンピュータ・
プログラムは、ループ内で特定の事象が起こるのを待
つ。この事象は打鍵またはその他の割り込みでよい。事
象が起こるまで、タスクは本質的にアイドル状態にあ
り、事象を待っている。この間、プログラムは、中央演
算処理装置(CPU)サイクル中で待つ以外に有用な作
業を何も実行しない。これはCPUサイクルの無駄であ
り、この無駄がなくなれば、CPUサイクルを利用して
システム性能を向上させることができる。多重タスク処
理が可能なオペレーティング・システム環境では、アイ
ドル・ループで浪費される時間がシステム性能を大きく
低下させる可能性がある。
【0012】本発明をよく理解するために、命令シーケ
ンス及び具体的に待機ループの動作に関する典型的な従
来技術を要約して示す。これから詳細に説明する図面、
具体的には図1を参照すると、プログラミング・ループ
の流れ図が示されている。ループの始まりは、Top_
of_Loopアドレス110などの標識でマークされ
ている。Top_of_Loop110には、前の命令
からあるいは直接飛び越しまたは分岐を介して至るプロ
グラム・コードから入る。ループ本体112は、ループ
内で必要とされる任意の作業を実行する。これには、計
算またはその他のプログラム活動が含まれる。次に、1
14でこのループからの脱出基準が検査される。この検
査は、入出力ポートにおいて1つまたは複数のビットに
よって指示される特定の状況条件など何らかの外部保留
事象のテストでよい。ステップ116でのテストでルー
プ脱出基準が満たされた場合、プログラム・プロセス中
の次の論理モジュールに制御が移り、プログラムを続行
する(122)。ステップ116でループ脱出基準が満
たされなかった場合は、ステップ120のジャンプ命令
に制御が移り、ループの始め110に制御を戻すことに
よって、ループの動作がもう1度繰り返される。
【0013】図1に示したループ構造は、上述のループ
のアイドル期間中に、オペレーティング・システムがC
PUを別のプロセスに割り振るオプションを可能にす
る、エスケープ機構の追加によって機能を高めることが
できる。ここで図2を参照すると、ステップ117の追
加によって従来技術の図1の機能を高めることができ
る。オペレーティング・システム特有の呼び出し117
が、ステップ116の脱出基準テストの後に追加され
る。この呼び出しは、オペレーティング・システムに制
御を渡して、オペレーティング・システムがCPUを別
の活動プロセスに割り振るオプションを可能にする。こ
の呼び出しを原点とするプロセスは、ラウンド・ロビン
式のCPU割り振り法を含むいくつかの基準に従って、
オペレーティング・システムによって再開される。ステ
ップ117の呼び出し法の明白な欠点は、この方法がオ
ペレーティング・システム特有であり、各種のパーソナ
ル・コンピュータ及びそれらの関連オペレーティング・
システムのすべての実施態様に対して一般的ではないこ
とである。
【0014】次に図3を参照すると、実モードで動作し
ているインテル80286などのインテル86ファミリ
・プロセッサ124が示されている。このタイプのシス
テムで使用されるオペレーティング・システムは、普
通、DOS126である。DOSは単一タスク処理用の
オペレーティング・システムなので、せいぜい1つの適
用業務プログラム128しか活動状態になることができ
ない。
【0015】IBMパーソナル・コンピュータ・システ
ムのラインは、様々なオペレーティング・システムをサ
ポートする。これらのオペレーティング・システムは、
インテル86ファミリのマイクロプロセッサの様々なモ
ードのうちの1つまたは複数のモードを使用する。いく
つかのオペレーティング・システムでは、待機中のプロ
グラムが、オペレーティング・システム呼び出しを介し
て、自発的にそのCPUタイム・スライスを放棄(surr
ender)することができる。この呼び出しの性質は、使
用されるオペレーティング・システムに従って変わる。
たとえば、周知であり、文書に記載されている、OS/
2オペレーティング・システム呼び出し"DosSle
ep"は、現スレッド(命令を実行する単位)を指定さ
れた時間だけ中断する。要求されたDosSleep時
間がゼロの場合、この呼び出しは現タイム・スライスの
残り部分を放棄する。AIXオペレーティング・システ
ムでは、呼び出し"sleep"は、現プロセス(命令を
実行する単位)の実行をある時間だけ中断する。したが
って、インテル86ファミリ及びその動作モードなどの
あるプロセッサ・アーキテクチャ全体を通じて首尾一貫
しており、しかもオペレーティング・システム独立な、
タイム・スライス(CPU割り振りの単位)を放棄する
方法は、きわめて有利となるはずであるが、まだ知られ
ていず、本発明によって提供される。
【0016】
【発明が解決しようとする課題】本発明は、上述の諸問
題を軽減するために開発された。したがって、本発明の
1つの目的は、命令シーケンス中で待機点を指示する方
法を提供することである。本発明の別の目的は、オペレ
ーティング・システムが待機点の標識を管理するための
方法を提供することである。本発明の別の目的は、オペ
レーティング・システムとは無関係な形で上記の2点を
達成することである。
【0017】
【課題を解決するための手段】本発明によれば、プロセ
ッサが多重タスク処理オペレーティング・システム環境
で保護モードで動作するとき、中央演算処理装置に特徴
的なHALT命令または類似の命令をうまく利用して、
プロセッサが有用な作業をしておらず、たとえば入出力
動作を待っている時間中に、中央演算処理装置のサイク
ルを節約する方法が提供される。本発明は、そのタイム
・スライスが終わる前にそのようなタスクに割り込ん
で、中央演算処理装置を待ち行列上の次のタスクに割り
振る方法を提供する。
【0018】本発明は、保護モードまたは類似のモード
で動作できる中央演算処理装置を有するコンピュータ・
システムで実施される。中央演算処理装置はHALT命
令を実行することができる。本発明によれば、保護モー
ドのオペレーティング・システムを介して一連の命令を
実行する際に、中央演算処理装置のサイクルが浪費され
ない。本発明の第1段階では、あるタスクにおいて、保
護機構の下で、たとえばインテル・アーキテクチャの保
護モードで一連の命令中のあるコマンドによって生成さ
れた、マイクロプロセッサの実行を中断する命令(たと
えばHALT命令)を実行してそのタスクを中断させ
る。これによって、その一連の命令からオペレーティン
グ・システムに制御が移る。実行中のタスクの状態は、
たとえばHALT命令の結果としてセーブされ、停止さ
れたタスクはオペレーティング・システムの待ち行列に
置かれ、後で処理される。通常、タスクのセーブは、通
常の方式でオペレーティング・システムによって実行さ
れる。その後、中央演算処理装置が、待ち行列上の次の
タスクに割り振られる。
【0019】本明細書では、「停止」命令という用語
は、モトローラM68000ファミリのプロセッサの
「ストップ」命令など他の同等な命令を含むものとし、
一般にプロセッサの動作中断を意味することを理解され
たい。同様に、「保護」動作モードという用語は、モト
ローラM68000ファミリのプロセッサにおいて例外
が発生するとスーパバイザ・モードに切り替わるユーザ
・モードなど、同様の動作モードを含むものとする。
【0020】
【実施例】次に図面、具体的には図4を参照すると、本
発明を適用できるパーソナル・コンピュータ・システム
10が示されている。図示されているように、パーソナ
ル・コンピュータ・システム10は、相互接続されたい
くつかの構成要素を含む。より具体的には、マイクロプ
ロセッサ、メモリなどを含むシステム装置12が、任意
選択の表示装置14(通常のビデオ・ディスプレイな
ど)に結合され、それを駆動することができる。また、
システム装置12は、任意選択としてキーボード16や
マウス18などの入力装置に結合することができる。ま
た、プリンタ20など任意選択の出力装置もシステム装
置12に接続することができる。最後に、システム装置
12は、ディスケット・ドライブ22など1つまたは複
数の大容量記憶装置を含むことができる。
【0021】以下に説明するように、システム装置12
は、キーボード16、マウス18、ローカル・エリア・
ネットワーク・インターフェースなどの入力装置に応答
する。さらに、ディスケット・ドライブ22、表示装置
14、プリンタ20、ローカル・エリア・ネットワーク
通信システムなどの入出力装置が、当業者に周知の方式
でシステム装置12に接続されている。もちろん、当業
者なら知っているように、その他の通常の構成要素もシ
ステム装置12に接続してそれと対話することができ
る。本発明によれば、コンピュータ・システム10は、
ランダム・アクセス・メモリ(RAM)、読取り専用メ
モリ(ROM)、及び複数の入出力装置に相互接続され
たシステム・プロセッサを含む。
【0022】通常の使用では、パーソナル・コンピュー
タ・システムは、サーバとしての小グループのユーザに
または単一のユーザに独立の計算能力を与えるように設
計され、個人または小企業が購入できるように安価な価
格になっている。動作に当っては、システム・プロセッ
サは、IBMのOS/2オペレーティング・システムや
DOSなどのオペレーティング・システムの下で動作す
る。このタイプのオペレーティング・システムは、入出
力装置とオペレーティング・システムの間にBIOSイ
ンターフェースを含む。BIOSは、IBMパーソナル
・コンピュータ・プロダクト用の基本入出力システムで
あり、オペレーティング・システム及び適用業務プログ
ラムを特定のハードウェア装置と分離するソフトウェア
・インターフェースまたは「層」である。BIOSは、
引用によって本明細書に合体される "IBM Personal Sys
tem/2 and Personal Computer BIOS Interface Technic
alReference",1988 に明確に記載されている。BIOS
は、マザーボードまたはプレーナ・ボード上のROMに
最初に記憶することができ、POSTと呼ばれる電源投
入時自己試験セクションに診断ルーチンを含んでいる。
【0023】上記の構造を本発明に関係づける前に、パ
ーソナル・コンピュータ・システム10の一般的動作を
要約して示す。図5を参照すると、本発明によるパーソ
ナル・コンピュータ・システム10の様々な構成要素を
示すコンピュータ・システム10のブロック・ダイアグ
ラムが示されている。さらに図5は、プレーナ・ボード
8の諸構成要素、ならびにパーソナル・コンピュータ・
システム10の入出力スロット46及びその他のハード
ウェアへのプレーナ・ボード8の接続を示す。プレーナ
・ボード8には、マイクロプロセッサからなるシステム
・プロセッサ26が接続されている。このマイクロプロ
セッサは、高速CPUローカル・バス24によってバス
制御式タイミング装置38を介してメモリ制御ユニット
50に接続されている。メモリ制御ユニット50はさら
に揮発性ランダム・アクセス・メモリ(RAM)58に
接続されている。任意の適当なマイクロプロセッサが使
用できるが、1つの好適なマイクロプロセッサはインテ
ル社から市販されている80386マイクロプロセッサ
である。
【0024】次に図5のシステム・ブロック・ダイアグ
ラムを具体的に参照して本発明について説明するが、本
発明による装置及び方法は、他のハードウェア構成のプ
レーナ・ボードでも使用できることが企図されている。
たとえば、システム・プロセッサはインテル80286
または80486マイクロプロセッサでもよい。
【0025】図5についてさらに説明すると、(デー
タ、アドレス及び制御構成要素を含む)CPUローカル
・バス24は、マイクロプロセッサ26、任意選択の演
算用コプロセッサ27、キャッシュ制御装置28及びキ
ャッシュ・メモリ30の接続を行う。またCPUローカ
ル・バス24上にはバッファ32も結合されている。バ
ッファ32はそれ自体(CPUローカル・バスに比べ
て)低速のシステム・バス34に接続されている。この
システム・バスもアドレス、データ及び制御構成要素を
含む。システム・バス34は、バッファ32と別のバッ
ファ36の間に延びる。システム・バス34はさらにバ
ス制御/タイミング装置38及びDMAユニット40に
接続されている。DMAユニット40は、中央アービタ
48とDMA制御装置41からなる。バッファ36は、
システム・バス34と、IBM PS/2ラインのパー
ソナル・コンピュータで使用されるマイクロ・チャネル
・バス44などの任意選択の機能バスの間のインターフ
ェースを提供する。バス44には、マイクロ・チャネル
・アダプタ・カード(図示せず)を受けるための複数の
入出力スロット46が接続されている。入出力スロット
46はさらに入出力装置またはメモリに接続することも
できる。アービトレーション・バス42は、DMA制御
装置41及び中央アービタ48を入出力スロット46及
びディスケット・アダプタ82に結合する。システム・
バス34には、メモリ制御ユニット50も接続されてい
る。メモリ制御ユニット50は、メモリ制御装置52、
アドレス・マルチプレクサ54、及びデータ・バッファ
56からなる。メモリ制御ユニット50は、さらにRA
Mモジュール58で表されているランダム・アクセス・
メモリに接続されている。メモリ制御装置52は、アド
レスをマイクロプロセッサ26とRAM58の特定の領
域との間にマップする論理機構を含む。パーソナル・コ
ンピュータ・システム10は1メガバイトの基本RAM
モジュールで示されているが、図5で任意選択のメモリ
・モジュール60ないし64によって表されるように、
追加のメモリを相互接続できることを理解されたい。
【0026】システム・バス34とプレーナ入出力バス
68の間にさらに別のバッファ66が結合されている。
プレーナ入出力バス68は、アドレス、データ、及び制
御構成要素を含む。プレーナ入出力バス68に沿って、
ディスプレイ・アダプタ70(これは任意選択の表示装
置14を駆動するために使用される)、クロック72、
不揮発性RAM74(ここではNVRAMとして参
照)、RS232アダプタ76、並列アダプタ78、複
数のタイマ80、ディスケット・アダプタ82、PCキ
ーボード/マウス制御装置84、読取り専用メモリ(R
OM)86など各種の入出力アダプタ及びその他の周辺
構成要素が結合されている。ROM86はBIOSを格
納している。このBIOSはさらに、パーソナル・コン
ピュータ・システム10の主要構成要素を試験するため
に使用されるPOSTを含んでいる。
【0027】クロック72は時刻計算に使用される。不
揮発性RAM74は、システム構成データを記憶するた
めに使用される。すなわち、不揮発性RAM74は、シ
ステムの現在の構成を記述する値を格納する。たとえ
ば、不揮発性RAM74は、固定ディスクまたはディス
ケットの容量、表示装置のタイプ、メモリの量などを記
述する情報を含む。さらに、これらのデータは、特別の
構成プログラムが実行されたときに不揮発性RAM74
に記憶される。この構成プログラムの目的は、このシス
テムの構成を特徴づける値を不揮発性RAM74に記憶
することである。これらの値は、システムから電源が切
れるときセーブされる。
【0028】キーボード/マウス制御装置84には、ポ
ートA及びBが接続されている。これらのポートは、P
Cキーボード及びマウスをPCシステムに接続するため
に使用される。RS232アダプタ装置76には、RS
232コネクタが結合されている。モデムなど任意選択
の装置を、このコネクタを介してシステムに結合するこ
とができる。
【0029】本発明は、上述のようなコンピュータ・シ
ステムで容易に実施することができる。さらに、以下で
図6、図7、図8、及び図9を具体的に参照して本発明
を説明するが、以下の説明にあたって、本発明による方
法は、命令シーケンスを含む様々なプログラム構造で使
用できることが企図されていることを理解されたい。こ
こで、図1を修正した図6の命令シーケンスを参照する
と、テスト116の後、ジャンプ120の前にHALT
命令118が制御流れに追加されている。ステップ11
6のループ脱出基準が満たされなかった場合、HALT
命令118に制御が移る。実動作モードでは、HALT
命令はマイクロプロセッサ26にプログラムの実行を停
止させる。保護動作モードでは、ステップ118のHA
LT命令は、オペレーティング・システムに対する例外
を発生する。いったん停止されると、マイクロプロセッ
サ26は再始動されるまでローカル・バス24を使用で
きなくされる。このHALT条件の処理については、実
動作モードに関しては図7で、保護動作モードに関して
は図8でさらに詳しく述べる。実行の継続が許されたと
き、このプロセスは、ステップ118のHALT命令の
後のジャンプ命令120から再開する。
【0030】次に、図7を参照すると、ステップ130
で、ステップ118のHALT命令が実モードで実行さ
れたとき、HALT状態に入る(132)。HALT状
態は命令の実行を終了させることを思い起こされたい。
通常の条件下では、マイクロプロセッサ26は、イネー
ブルされた割り込み、マスク不能割り込み(NMI)ま
たはリセットによってHALT状態から脱出することが
できる(134)。上記の条件の1つが発生すると、マ
イクロプロセッサ26は実行を再開する(136)。
【0031】次に、図8を参照すると、ステップ118
のHALT命令が、保護モード環境で走っており、かつ
特権レベル0で実行中ではない、適用業務などのコード
によって実行されたとき、一般的記憶保護例外タイプ0
が発生する(140)。仮想86モードでHALTを実
行しても、一般的記憶保護例外タイプ0が生ずることを
思い起こされたい。オペレーティング・システムに常駐
する一般的保護ハンドラは、この例外の発生源がHAL
Tであったかどうか判定するために検査をする(14
2)。この例外がHALT以外の理由で発生した場合、
この例外を処理するために、その条件に適切な処置がと
られる(144)。その例外がHALTによるものであ
った場合は、ステップ146で、この例外を発生したタ
スクの状態がセーブされる。「セーブされる」という言
葉は、後の処理のために復元できるように、そのタスク
のレジスタ状態がメモリに記憶されることを意味する。
HALT命令は、このように、自発的な「タイム・スラ
イスの放棄(surrender of Time-Slice)」として扱わ
れる。このタスクは、後でスケジューリングされるよう
に作動可能待ち行列上に置かれる(148)。次にオペ
レーティング・システムは、CPU26を作動可能待ち
行列上の次のタスクに割り振る(150)。
【0032】次に図9を参照すると、80836または
80486の保護モードで動作しているインテル86フ
ァミリのプロセッサ160が示されている。仮想86モ
ードをサポートする保護モード・オペレーティング・シ
ステム162が複数のDOS環境164−168をサポ
ートしている。各DOS環境164−168は、それぞ
れ通常のDOSモードの適用業務170−174をサポ
ートする。また保護モード・オペレーティング・システ
ム162は、複数の保護モード適用業務178−182
を走らせることができる保護モード環境176をサポー
トする。
【0033】通常、タイト・ループ内で実行している適
用業務は、計算拘束プロセスのように見える。このタス
クは、そのタイム・スライスが終わりになるまで実行さ
れ、終わりになった時点で、そのタスクはオペレーティ
ング・システムが代わって獲得し、CPU26は別のプ
ロセスに与えられる。適用業務の見かけの計算拘束状況
は、実際には割り込みなどの入出力を待っている可能性
もあるので、正確なものではない。HALT技法によっ
て、適用業務はアイドル・ループから一時的に出ること
ができ、CPUサイクルの浪費が避けられる。このHA
LT法の使用は、計算プラットフォーム全体を通して首
尾一貫しており、システム性能を向上させることができ
る。
【0034】本発明はインテル・ファミリのプロセッサ
を参照して説明したが、他の装置、たとえばモトローラ
社刊 "M68000 16/32-BIT Microprocessor Programmer^s
Reference Manual"、第4版、1984年(引用によっ
て本明細書に合体する)に記述されたモトローラM68
000 16/32ビット・マイクロプロセッサ・ファ
ミリでも実施できることが企図されている。
【0035】このようなシステムでは、一連の命令がモ
トローラ・プロセッサの「ユーザ」状態で実行される可
能性がある。あるタスクの実行中に事象を待っている間
にプロセッサ・サイクルが浪費されている場合、プロセ
ッサ・サイクルを待ち行列中の別のタスクに割り振るこ
とが望ましくなる。このような場合、「ストップ」命令
が命令シーケンス中にコーディングされ、それが実行さ
れたときユーザ状態のプロセッサの動作に例外を発生さ
せる。次に、例外処理によって特権状態がユーザ状態か
らスーパバイザ状態に変更され、その結果、実行中のタ
スクがセーブされる。
【0036】スーパバイザ状態では、オペレーティング
・システムが制御を取り、待ち行列上の次のタスクを実
行のために設定して、プロセッサをユーザ状態に戻し次
のタスクを実行させる。
【図面の簡単な説明】
【図1】典型的な従来技術のコンピュータ・プログラム
・ループを示す流れ図である。
【図2】図1を参照して前に説明した、CPUを放棄す
るためのオペレーティング・システム呼び出しを含む、
典型的な従来技術のコンピュータ・プログラム・ループ
を示す流れ図である。
【図3】インテル86ファミリ・マイクロプロセッサの
実モードで動作する典型的なDOSオペレーティング・
システム環境を示す階層図である。
【図4】本発明を実施できる典型的なコンピュータ・シ
ステムを示す透視図である。
【図5】図4のシステムの典型的なコンピュータ・シス
テムのハードウェア図である。
【図6】HALT機構を含む典型的なコンピュータ・プ
ログラム・ループを示す流れ図である。
【図7】実モードでのHALT命令の実行の取扱いに関
する事象のシーケンスを示す流れ図である。
【図8】保護モードでのHALT命令の実行の取扱いに
関する、サポートするオペレーティング・システムの制
御流れを示す流れ図である。
【図9】(仮想86モードの形での)実モード及び保護
モードの環境及び適用業務をサポートする、保護モード
・オペレーティング・システムを示すブロック・ダイア
グラムである。
【符号の説明】
26 マイクロプロセッサ 27 演算用コプロセッサ 28 キャッシュ制御装置 30 キャッシュ 32 バッファ 36 バッファ 38 バス制御/タイミング装置 40 DMA制御装置 46 入出力スロット 48 中央アービタ 50 メモリ制御ユニット 52 メモリ制御装置 54 アドレス・マルチプレクサ 56 データ・バッファ 58 ランダム・アクセス・メモリ(RAM) 66 バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル・ロバート・ターナー アメリカ合衆国33433、フロリダ州ボカ・ ラトン、パシフイツク・ブールバード 5637番地 2906号

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】保護機構の下で動作でき、マイクロプロセ
    ッサに実行を停止させる命令を実行することのできる、
    中央演算処理装置を有するコンピュータ・システムにお
    いて、オペレーティング・システムを介して一連の命令
    を実行する際に保護機構動作モードの下で中央演算処理
    装置のサイクルの浪費を回避する方法であって、 一連の命令内のあるコマンドによって発生されたタスク
    中に前記実行停止命令を実行して前記タスクを停止させ
    る段階と、 制御を前記一連の命令からオペレーティング・システム
    に移す段階と、 前記実行停止命令を発生した前記一連の命令によって実
    行中のタスクの状態をセーブする段階と、 停止されたタスクを後で処理されるようにオペレーティ
    ング・システムの待ち行列上に置き、その後、中央演算
    処理装置を待ち行列上の次のタスクに割り振り、それに
    よって中央演算処理装置のサイクルを放棄して待ち行列
    上の次のタスクに自発的に譲る段階とを含む方法。
  2. 【請求項2】前記実行停止命令が、最高特権レベル以外
    の特権レベルで実行中のコードによって実行されること
    を特徴とする、請求項1に記載の方法。
JP8535892A 1991-04-30 1992-04-07 マシン・サイクルの浪費を回避する方法 Pending JPH0588918A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69320391A 1991-04-30 1991-04-30
US693203 1991-04-30

Publications (1)

Publication Number Publication Date
JPH0588918A true JPH0588918A (ja) 1993-04-09

Family

ID=24783736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8535892A Pending JPH0588918A (ja) 1991-04-30 1992-04-07 マシン・サイクルの浪費を回避する方法

Country Status (2)

Country Link
EP (1) EP0511748A2 (ja)
JP (1) JPH0588918A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011134162A (ja) * 2009-12-25 2011-07-07 Internatl Business Mach Corp <Ibm> タスクの切り換えを制御するシステムおよび方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493741B1 (en) * 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011134162A (ja) * 2009-12-25 2011-07-07 Internatl Business Mach Corp <Ibm> タスクの切り換えを制御するシステムおよび方法
US8601488B2 (en) 2009-12-25 2013-12-03 International Business Machines Corporation Controlling the task switch timing of a multitask system

Also Published As

Publication number Publication date
EP0511748A2 (en) 1992-11-04
EP0511748A3 (ja) 1994-02-02

Similar Documents

Publication Publication Date Title
EP0794492B1 (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US5339437A (en) Method and apparatus for saving a system image onto permanent storage that is operating system independently
Barabanov A linux-based real-time operating system
US5357628A (en) Computer system having integrated source level debugging functions that provide hardware information using transparent system interrupt
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
US5161226A (en) Microprocessor inverse processor state usage
US8261284B2 (en) Fast context switching using virtual cpus
EP0106669B1 (en) Operating system supervisor
US6230118B1 (en) DOS based application supports for a controllerless modem
JP2743233B2 (ja) マイクロプロセッサ装置及び自動化停止状態再始動を実行させる方法
EP1766518B1 (en) Adaptive algorithm for selecting a virtualization algorithm in virtual machine environments
JPH0430053B2 (ja)
AU640134B2 (en) Information processing system emulation apparatus and method
US7565659B2 (en) Light weight context switching
US7516311B2 (en) Deterministic microcontroller context arrangement
JPH0916409A (ja) マイクロコンピュータ
US6990669B1 (en) Real-time scheduler
US7562207B2 (en) Deterministic microcontroller with context manager
JPH0588918A (ja) マシン・サイクルの浪費を回避する方法
WO1998029807A1 (en) Real time services in backwardly compatible operating systems
JPH07311686A (ja) コンピュータシステム、およびその中でシステム管理割込を発生し処理するための方法
WO2006081094A2 (en) Deterministic microcontroller
Betti et al. Hard real-time performances in multiprocessor-embedded systems using asmp-linux
Keate A real-world approach to benchmarking DSP real-time operating systems
EP0138045A2 (en) Apparatus and method for synchronization of peripheral devices via bus cycle alteration in a microprocessor implemented data processing system