JPH10293684A - コンピュータシステムおよびその立ち上げ制御方法 - Google Patents

コンピュータシステムおよびその立ち上げ制御方法

Info

Publication number
JPH10293684A
JPH10293684A JP10023097A JP10023097A JPH10293684A JP H10293684 A JPH10293684 A JP H10293684A JP 10023097 A JP10023097 A JP 10023097A JP 10023097 A JP10023097 A JP 10023097A JP H10293684 A JPH10293684 A JP H10293684A
Authority
JP
Japan
Prior art keywords
program
memory address
bios
memory
address space
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
JP10023097A
Other languages
English (en)
Inventor
Keiichi Uehara
啓市 上原
Toshitaka Sanada
俊孝 真田
Manabu Koarai
学 小荒井
Naonobu Fujiwara
尚伸 藤原
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.)
Toshiba Corp
Toshiba Computer Engineering Corp
Original Assignee
Toshiba Corp
Toshiba Computer Engineering 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 Toshiba Corp, Toshiba Computer Engineering Corp filed Critical Toshiba Corp
Priority to JP10023097A priority Critical patent/JPH10293684A/ja
Publication of JPH10293684A publication Critical patent/JPH10293684A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】既存のシステムとの互換性を損なうことなくシ
ステムBIOSによって提供される各種ハードウェア制
御機能を効率よく実行できるようにする。 【解決手段】BIOS−ROM14のシステムBIOS
の内、POSTルーチンおよび拡張用ドライバルーチン
などを含むシステムBIOS#2についてはプロテクト
モード化されており、そのシステムBIOS#2につい
てはプロテクトモードでのみアクセス可能な10000
0h以降のCPUアドレス空間に割り当てられ、BIO
Sドライバ群を含むシステムBIOS#1については従
来通りリアルモードでアクセス可能なアドレス空間F0
000h〜FFFFFhに割り当てられる。これによ
り、常にシステムBIOS全体を開いておけるため、オ
ペレーティングシステムなどによって要求されたBIO
S処理を即座に実行できるようになり、システム性能の
向上を図ることが可能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明はコンピュータシス
テムおよびその立ち上げ制御方法に関し、特にリアルモ
ードとプロテクトモードを有するCPUを備えたコンピ
ュータシステムおよびその立ち上げ制御方法に関する。
【0002】
【従来の技術】一般に、PC/AT互換のパーソナルコ
ンピュータで使用されているCPUの動作モードには、
メモリアドレス00000h〜0FFFFFhまでアク
セス可能なリアルモードと、CPUアドレス00000
h〜0FFFFFFFFhまでアクセス可能なプロテク
トモードが存在する。リアルモードではCPUアドレス
100000h以降のアドレスへのアクセスは行えな
い。これら2つのCPU動作モードは、互いにセグメン
ト管理の方法が異なっている。
【0003】プロテクトモードは米インテル社のマイク
ロプロセッサ80286以降のCPUから搭載された機
能であり、8086などには搭載されていなかった。ま
た、80286では、CPU動作モードをプロテクトモ
ードからリアルモードに移行させるためには、CPUを
一旦リセットしなければならないという制限があった。
このような事情から、PC/AT互換のパーソナルコン
ピュータで使用されるシステムBIOSはリアルモード
で動作するものと決まっていた。プロテクトモードで動
作するオペレーティングシステムが主流の今日において
も、システムBIOSはリアルモードで動作するように
構成するのが当然となっている。
【0004】リアルモードで動作するシステムBIOS
は、本来は、100000h以降のメモリアドレス空間
をアクセスすることはできない。このため、システムB
IOSから100000h以降のメモリアドレス空間を
アクセスする場合には、図11のフローチャートに示す
ように、CPU動作モードをリアルモードからプロテク
トモードに一旦切り替えた後に、セグメントレジスタの
設定を行うことによって100000h以降のメモリア
ドレス空間をセグメントベースアドレスとして指定し、
再びリアルモードに移行してからアクセスを行うという
方法(ステップS102〜S105)が採られていた。
この方法は、プロテクトモードにおいては、リアルモー
ドでは指定できない100000h以降のメモリアドレ
ス値をセグメントベースアドレスとして指定することが
でき、またその時のセグメントレジスタの設定値はその
設定を変更し直さない限り、リアルモードに戻っても有
効であるという点を利用したものである。
【0005】しかし、リアルモードでは実際には1つの
セグメントで、00000h〜0FFFFhの64Kバ
イト分しかアクセスが行えないので、システムBIOS
がCPUアドレス100000h以降の別のセグメント
をアクセスする場合には、再びプロテクトモードに移行
してセグメントレジスタの設定を変更し直すことが必要
となる。このため、システムBIOSがCPUアドレス
100000h以降のメモリの初期化を行う場合には、
図11に示されているように、前述のステップS102
〜S105の処理を、システムに搭載されたメモリの最
後の64Kバイト分の初期化が完了するまで64Kバイ
トのセグメント単位で繰り返し行うことが必要とされ
た。
【0006】また、PC/AT互換機では、システムB
IOSを格納したBIOS−ROMはCPUアドレスF
0000h〜FFFFFhの64Kバイトに割り当てら
れており、その64Kバイトのアドレス範囲を通してし
かアクセスすることができようになっている。
【0007】しかし、近年では、たとえばPnPやパワ
ーセーブ機能等の機能の増加により、システムBIOS
は64Kバイトでは納まらなくなってきており、128
Kバイト程度のプログラムサイズを要するのが通常とな
っている。
【0008】この場合、システムBIOSの64Kバイ
トを越える部分は、C0000h〜EFFFFhの領域
の一部に割り当てられるが、このアドレス空間はVGA
−BIOSやオプションROMに割り当てられる領域で
あるので、常にシステムBIOSをそこに開いておくこ
とはできない。また、システムBIOSはリアルモード
で動作するため、100000h以降のCPUアドレス
空間に開くこともできない。従って、システムBIOS
の64Kバイトを越える部分については必要なときだけ
C0000h〜EFFFFhの領域に割り当て、使用し
ない時はシステムBIOSを閉じなければならない。
【0009】このようなCPUアドレスのマッピングの
切り替えを行う際には、キャッシュフラッシュ等の処理
を伴うことになる。なぜなら、マッピングの切り替え前
と後では、同一メモリアドレス空間に異なる命令やデー
タが存在することになるので、キャッシュを無効化して
おかなければ誤動作が生じるからである。
【0010】図12には、閉じられているシステムBI
OS領域へのアクセスを行うためのフローが示されてい
る。まず、起動すべきシステムBIOS内のサービスル
ーチンが、CPUアドレスF0000h〜FFFFFh
の64Kバイトに割り当てられたシステムBIOS領域
と、閉じられているシステムBIOS領域のどちらに存
在するかが調べられる(ステップS111)。CPUア
ドレスF0000h〜FFFFFhの64Kバイトに割
り当てられたシステムBIOS領域に存在するサービス
ルーチンならば、メモリマッピングの切り替えなどは行
われず、そのサービスルーチンが起動されることによっ
てすぐに要求された処理が実行される(ステップS11
2)。
【0011】一方、起動すべきサービスルーチンが閉じ
られているシステムBIOS領域に存在する場合には、
まず、キャッシュフラッシュが実行され(ステップS1
13)、それまでにキャッシュに蓄積されていた使用頻
度の高い命令やデータは無効化される。次いで、メモリ
マッピングの切り替えが行われ、これにより閉じられて
いるシステムBIOS領域がC0000h〜EFFFF
hの領域の一部に再配置された後に、目的のサービスル
ーチンが実行される(ステップS114,S115)。
サービスルーチンの処理が終了すると、再びキャッシュ
フラッシュが実行され(ステップS116)、その後、
メモリマッピングが元の状態に戻される(ステップS1
17)。
【0012】このように、従来では、システムBIOS
の64Kバイトを越える部分を使用する場合には、その
都度キャッシュフラッシュとメモリマッピングの切り替
えを行うことが必要とされ、これによってオーバーヘッ
ドが生じるという問題があった。
【0013】
【発明が解決しようとする課題】上述したように、従来
では、システムBIOSがリアルモードで動作するた
め、CPUアドレス100000h以降のメモリの初期
化、テストを行う場合には、64Kバイト毎にセグメン
トレジスタを変更しなければならず、これによってオー
バーヘッドが生じるという問題があった。また、システ
ムBIOSの64Kバイトを越える部分を使用する場合
には、キャッシュフラッシュを伴うメモリマッピングの
切り替えを行うことが必要とされ、これによってオーバ
ーヘッドが生じるという問題があった。
【0014】この発明はこのような点に鑑みてなされた
ものであり、既存のシステムとの互換性を損なうことな
くシステムBIOSによって提供される各種ハードウェ
ア制御機能を効率よく実行することができるコンピュー
タシステムおよびその立ち上げ制御方法を提供すること
を目的とする。
【0015】
【課題を解決するための手段】この発明は、第1のメモ
リアドレス空間をアクセス可能な第1動作モードと、前
記第1のメモリアドレス空間およびそれよりも上位アド
レスに位置する第2のメモリアドレス空間をアクセス可
能な第2動作モードとを有するCPUと、ハードウェア
制御のためのシステムプログラムが格納されたシステム
ROMとを備えたコンピュータシステムにおいて、前記
システムプログラムは、前記第1動作モードで動作可能
に構成された第1プログラムと、前記第2動作モードで
動作可能に構成された第2プログラムとを含み、前記第
1プログラムを前記第1のメモリアドレス空間上に配置
し、前記第2プログラムを前記第2のメモリアドレス空
間上に配置する手段を具備することを特徴とする。
【0016】このコンピュータシステムにおいては、シ
ステムBIOSの一部がプロテクトモード化されてお
り、その部分についてはプロテクトモードでのみアクセ
ス可能な100000h以降のCPUアドレス空間に割
り当てられ、他の部分については従来通りリアルモード
でアクセス可能なアドレス空間F0000h〜FFFF
Fhに割り当てられる。これにより、オペレーティング
システムの起動後でもシステムBIOS全体を常にメモ
リアドレス空間上に開いておくことができるようにな
る。
【0017】したがって、コンピュータシステムがパワ
ーオンされてからオペレーティングシステムが起動され
るまでに実行すべきハードウェアの初期化およびテスト
処理の手順を記述したテストプログラムなどをプロテク
トモード化しておくことにより、セグメントレジスタを
64Kバイト単位で設定し直すといった煩雑なセグメン
ト管理を行うことなく、主メモリの初期化を行うことが
可能となる。この結果、コンピュータシステムがパワー
オンされてからオペレーティングシステムが起動される
までの時間を大幅に短縮できるようになる。
【0018】また、常にシステムBIOS全体を開いて
おけるため、メモリマッピングの切り替えや、キャッシ
ュフラッシュを行うことなく、オペレーティングシステ
ムなどによって要求されたBIOS処理を即座に実行で
きるようになり、システム性能の向上を図ることが可能
となる。
【0019】
【発明の実施の形態】以下、図面を参照してこの発明の
実施形態を説明する。図1には、この発明の一実施形態
に係わるコンピュータシステムが示されている。このシ
ステムはノートブックタイプまたはラップトップタイプ
のポータブルパーソナルコンピュータを実現するための
ものであり、システムボード上には、図示のように、C
PU11、システムコントローラ12、主メモリ13、
BIOS−ROM14、リアルタイムクロック(RT
C)15、割り込みコントローラ(PIC)16、キー
ボードコントローラ(KBC)17、ディスプレイコン
トローラ18などが実装されている。
【0020】また、システムボード上には、CPUロー
カルバス(プロセッサバスと称する場合もある)31、
システムバス32、およびメモリアドレスバス33など
が配設されている。
【0021】CPU11は、大規模なキャッシュメモリ
を内蔵したマイクロプロセッサであり、例えば米インテ
ル社のPentiumなどが用いられる。このCPU1
1は、リアルモードとプロテクトモードという互いにア
ドレス計算形式の異なる2種類の動作モードを有してい
る。リアルモードは1Mバイトまでのメモリアドレス空
間をアクセス可能な動作モードであり、セグメントレジ
スタにセットされるセレクタ値によってセグメントベー
スアドレスが決定され、そのセグメントベースアドレス
から始まる16ビットのオフセット値で物理メモリアド
レスが決定される。各セグメントのオフセット値は64
Kバイトに制限される。プロテクトモードは、プロテク
トモードは1タスク当たり最大4Gバイトのメモリ空間
をアクセスできる動作モードであり、セグメントレジス
タのセレクタ値によってディスクプリタテーブルを参照
することによってセグメントベースアドレスが決定さ
れ、そのセグメントベースアドレスから始まる32ビッ
トのオフセット値でリニアアドレスが決定される。この
リニアアドレスはページングを用いないときはそのまま
物理メモリアドレスとなり、またページング使用時はペ
ージテーブルによって最終的に物理アドレスに変換され
る。
【0022】CPU11はCPUローカルバス31を介
してシステムコントローラ12に接続されている。CP
Uローカルバス31は、CPU11を構成するマイクロ
プロセッサの入出力ピンに直接繋がる信号群である。
【0023】ここには、32または64ビットのデータ
バス、32ビットアドレスバス、およびW/R#,MI
O#などの信号線を含む各種ステータス信号線などが含
まれている。W/R#線は、それが“H”レベルの時は
現在のバスサイクルがライトアクセスサイクルであるこ
とを示し、“L”レベルの時はリードアクセスサイクル
であることを示す。MIO#線は、それが“H”レベル
の時は現在のバスサイクルがメモリアクセスサイクルで
あることを示し、“L”レベルの時はI/Oアクセスサ
イクルであることを示す。
【0024】システムコントローラ12は、CPUロー
カルバス31とシステムバス32との間に接続されてお
り、CPU11からの要求に応じてシステム内のメモリ
およびI/Oデバイスを制御する。このシステムコント
ローラ12は、ゲートアレイによって構成された1個の
LSIによって実現されており、その中にはメモリおよ
びI/Oを制御するためのロジックが組み込まれてい
る。
【0025】主メモリ13には、オペレーティングシス
テム、実行対象のアプリケーションプログラム、および
各種処理データなどが格納される。この主メモリ13
は、システムボード上に実装された複数のDRAMバン
クから構成されている。各DRAMバンクは、複数のD
RAMチップを有している。
【0026】主メモリ13は32または64ビットのメ
モリデバイスであり、そのデータポートはCPUローカ
ルバス31のデータバスに接続され、また、アドレス入
力ポートはメモリアドレスバス33に接続されている。
メモリアドレスバス33はDRAM専用のアドレスバス
であり、このメモリアドレスバス33上にはDRAMの
物理アドレス(ロウアドレスRA/カラムアドレスC
A)がシステムコントローラ12から出力される。ま
た、主メモリ13には、ロウアドレスストローブ信号線
RAS0〜RAS5、カラムアドレスストローブ信号線
CAS、ライトイネーブル信号線WE、アウトプットイ
ネーブル信号線OE、チップセレクト信号線CSが接続
されている。この場合、RAS0〜RAS5は主メモリ
13を構成する複数のDRAMバンクにそれぞれ接続さ
れ、CAS,WE,OE,CSは全てのDRAMバンク
に共通接続される。
【0027】このシステムでは、主メモリ13の記憶領
域の一部は、BIOS−ROM14の内容がコピーされ
るコピーエリア131として使用される。このコピーエ
リア131に対するリード/ライトアクセスは、主メモ
リ13の他の記憶エリアと同様にシステムコントローラ
12からのメモリアドレスおよび各種制御信号(RA
S,CAS,WE,OE,CSなど)によって制御され
る。この場合、システムコントローラ12の制御により
コピーエリア131をライトプロテクトして、そのコピ
ーエリア131に対するライトアクセスを禁止すること
もできる。
【0028】BIOS−ROM14は、システムバス3
2に接続された8ビットまたは16ビットのデバイスで
あり、その記憶内容の書き換えが可能なようにフラッシ
ュメモリから構成されている。このBIOS−ROM1
4には通常、システムBIOSとVGA−BIOSが格
納されるが、本実施形態では、システムBIOS全体を
常にCPUアドレス空間上に開いておけるようにするた
めに、システムBIOSは二つに分けられており、一方
はプロテクトモードのプログラムとして実現されてい
る。BIOS−ROM14の記憶内容の一例を図2に示
す。
【0029】図2に示されているように、BIOS−R
OM14には、第1のシステムBIOS(システムBI
OS#1)、第2のシステムBIOS(システムBIO
S#2)、およびVGA−BIOSなどが格納されてい
る。このうち、第2のシステムBIOS(システムBI
OS#2)についてはプロテクトモードで動作するよう
にコーディングされており、第1のシステムBIOS
(システムBIOS#1)およびVGA−BIOSにつ
いては従来通り、リアルモードで動作するようにコーデ
ィングされている。
【0030】システムBIOS#1は、CPUのソフト
ウェア割り込み命令(INTXXh)を用いて起動され
る各種BIOSドライバ群から構成されている。これら
BIOSドライバ群は、CPUメモリアドレス空間の0
0000hから始まる領域に存在する割り込みベクタに
よってそれぞれアドレス指定される複数のファンクショ
ン実行ルーチンから構成されている。これらBIOSド
ライバ群のファンクション実行ルーチンは、オペレーテ
ィングシステムまたはアプリケーションプログラムが実
行するソフトウェア割り込み命令に応答して実行される
ものであるので、通常、オペレーティングシステムの起
動前には実行されない。システムBIOS#1は、既存
のシステムとの互換性を維持するために、オペレーティ
ングシステム起動後においては、リアルモードでアクセ
ス可能なCPUアドレスF0000h〜FFFFFhの
64Kバイトに割り当てられる。
【0031】システムBIOS#2は、POST(Po
wer On Self Test)ルーチンと、機能
拡張のための拡張ドライバと、プロテクトモードで動作
するオペレーティングシステムから直接呼び出して実行
される各種サービスルーチン(パワーセーブルーチン、
SMIルーチンなど)などから構成されている。
【0032】POSTルーチンは、コンピュータシステ
ムのパワーオン時に最初に実行されるプログラムであ
り、ここには、メモリおよびI/Oなどのハードウェア
に対して初期化およびテストを行う初期化ルーチン、B
IOS−ROM14の内容をDRAMから構成される主
メモリ13にコピーするROM/RAMコピールーチ
ン、およびOSを起動するためのブートルーチンなどを
含んでいる。これらPOSTルーチンのプログラム群
は、通常、オペレーティングシステムの起動前にのみ実
行され、起動後には実行されない。
【0033】拡張ドライバは、システムBIOS#1の
ドライバプログラムによって提供される機能を追加する
目的で用意されたものであり、オペレーティングシステ
ム起動後にそのオペレーティングシステムまたはアプリ
ケーションプログラムから呼び出されるシステムBIO
S#1によって必要に応じて呼び出される。パワーセー
ブルーチン、およびSMIルーチンは、それぞれオペレ
ーティングシステムと共同してコンピュータシステムの
電源管理、およびSMI(システム管理割り込み)を用
いた各種システム管理を行うためのものであり、オペレ
ーティングシステム起動後にそのオペレーティングシス
テムから必要に応じて呼び出される。
【0034】これらシステムBIOS#2に含まれるプ
ログラムはすべてプロテクトモードで動作するように構
成されており、システムのパワーオン時はPOSTルー
チンを最初に実行できるようにするためにCPUアドレ
スF0000h〜FFFFFhの64Kバイトに割り当
てられているが、その後、100000h以降の所定の
64KバイトのCPUアドレス空間に再配置される。
【0035】VGA−BIOSはコンピュータシステム
の表示コントローラ18を制御するためのプログラムで
あり、既存のシステムとの互換性を維持するために、オ
ペレーティングシステム起動後においては、リアルモー
ドでアクセス可能なCPUアドレスC0000hからC
FFFFhの64Kバイトに配置される。
【0036】このように、この実施形態では、リアルモ
ードのプログラムであるBIOSドライバ群から構成さ
れたシステムBIOS#1については通常通りにCPU
アドレスF0000h〜FFFFFhの64Kバイトに
割り当てられるが、プロテクトモードのPOSTルーチ
ンなどから構成されるシステムBIOS#2について
は、100000h以降のCPUアドレス空間に割り当
てられる。したがって、オペレーティングシステムに制
御が移されてからもシステムBIOS全体を常にメモリ
アドレス空間上に開いておくことが可能となる。
【0037】図1のリアルタイムクロック(RTC)1
5、割り込みコントローラ(PIC)16、およびキー
ボードコントローラ(KBC)17は、それぞれISA
仕様の8ビットまたは16ビットのI/Oデバイスであ
る。
【0038】ディスプレイコントローラ18はVGA仕
様に準拠したものであり、コンピュータ本体に標準装備
されたLCDパネルの表示制御、およびオプション接続
されるCRTディスプレイの表示制御を行う。ビデオメ
モリ(VRAM)181には、表示データが格納され
る。このビデオメモリ(VRAM)181のリード/ラ
イト制御は、ディスプレイコントローラ18によって行
われる。
【0039】次に、システムコントローラ12に設けら
れたメモリ制御サブシステムの構成について説明する。
メモリ制御サブシステムは、図示のように、CPUコン
トローラ121、アクセスコントローラ122、DRA
Mマッパ123、DRAMコントローラ124、および
バスコントローラ125から構成されている。
【0040】CPUコントローラ121は、アクセスコ
ントローラ122と共同して、CPU11のバスサイク
ル制御、およびCPUアドレスデコードを行う。CPU
アドレスデコードには、CPUコントローラ121に設
けられたアトリビュートレジスタファイル201が利用
される。
【0041】アトリビュートレジスタファイル201
は、このコンピュータシステムのメモリアドレスマップ
を定義するためのものであり、CPU11のメモリアド
レス空間を構成する複数のメモリアドレスエリアにそれ
ぞれ対応する複数のアトリビュートレジスタから構成さ
れている。
【0042】各アトリビュートレジスタはCPU11に
よってリード/ライト可能なI/O制御レジスタであ
り、各レジスタには、それに対応するメモリアドレスエ
リアに配置すべきメモリデバイスの種類(DRAM、B
IOS−ROM、オプションROMなど)を指定するた
めの属性情報(ATTRIBUTE)が設定される。属
性情報はメモリリードサイクル用のリード属性情報とメ
モリライトサイクル用のライト属性情報を含んでおり、
これによって各メモリアドレスエリアに配置すべきメモ
リデバイスの種類をメモリリードサイクルとメモリライ
トサイクルとで別個に指定することができる。
【0043】CPU11がメモリアクセスのためのバス
サイクルを実行した時、CPUアドレス(A31:0
2)の値に対応するメモリアドレスエリアの属性情報が
アトリビュートレジスタファイル201から読み出さ
れ、それがアクセスコントローラ122に送られる。
【0044】アクセスコントローラ122は、アトリビ
ュートレジスタファイル201からから読み出された属
性情報に従ってアクセス対象のメモリデバイスの種類を
決定し、そのメモリデバイスの種類に対応する1つのメ
モリコントローラ、すなわち、DRAMコントローラ1
24、またはバスコントローラ125、にメモリサイク
ルの実行を指示する。この場合、アクセス対象のメモリ
デバイスの種類は、CPU11のバスサイクルがメモリ
リードサイクルの場合にはアトリビュートレジスタファ
イル201から読み出された属性情報の中のリード属性
情報によって決定され、メモリライトサイクルの場合に
はライト属性情報によって決定される。CPU11のバ
スサイクルがメモリリードサイクル/メモリライトサイ
クルのどちらであるかは、前述のW/R#信号の論理レ
ベルによって検出できる。
【0045】DRAMマッパー123は、CPUアドレ
ス(A31:02)をDRAMアドレス(MA31:0
2)に変換する。この変換は、CPU11のメモリアド
レス空間に分散配置されているDRAMメモリエリアを
DRAMアクセス専用の連続したアドレス空間に割り付
けるために行われる。ここで、このアドレス変換動作の
一例を図3を参照して説明する。
【0046】図3(A)は、この実施形態で用いられる
メモリアドレスマップであり、また図3(B)は図2
(A)のメモリアドレスマップに対応するDRAMアド
レス空間である。
【0047】本例のDRMMアドレス空間は、いわゆる
“高速ROM”機能を採用した場合の例である。“高速
ROM”機能は、低速なBIOS−ROM14の内容を
高速アクセス可能なDRAMから読み出させるようにす
る機能であり、前述のROM/RAMコピールーチンを
用いてBIOS−ROM14の内容をDRAM上のコピ
ーエリア131にコピーし、そのコピーエリア131を
CPUアドレス空間にマッピングすることによって実現
される。この高速ROM機能を採用すると、BIOS−
ROM14の代わりにDRAMがアクセスされる。従っ
て、システムBIOSの命令コードなどをDRAMから
高速にフェッチすることが可能となり、システムBIO
Sを頻繁に使用するOSやアプリケーションプログラム
などの実行速度を早めることができる。
【0048】図3(A)に示されているように、CPU
11によってアドレッシング可能なメモリアドレス空間
にはコンベンショナルメモリエリア、拡張メモリエリア
のようなDRAMを配置するためのDRAMアドレスエ
リアの他に、斜線で示すDRAM以外の他のメモリデバ
イス(VRAM、BIOS−ROM、オプションROM
など)を配置するためのアドレスエリアが確保されてい
る。VGA−BIOSをアクセスするためのアドレス範
囲はC0000h〜CFFFFhまでの64Kバイトで
ある。また、システムBIOS#1をアクセスするため
のアドレス範囲はF0000h〜FFFFFhまでの6
4Kバイト、システムBIOS#2をアクセスするため
のアドレス範囲はDRAMアドレスエリアの最後尾の6
4Kバイト(ここでは、FE0000h〜FEFFFF
h)である。
【0049】BIOS−ROM14のVGA BIOS
およびシステムBIOS#1,#2はDRAM上にコピ
ーして使用されるので、実際には、VRAMおよびオプ
ションROMを除く全てのメモリアドレエリアに属する
CPUアドレス(A31:02)がDRAMアドレス
(MA31:02)に変換される。このアドレス変換に
より、VRAMおよびオプションROMそれぞれのアド
レスエリアの直前および直後のDRAMアドレスエリア
のCPUアドレスは、DRAMアドレス空間上では連続
したアドレスとなる。
【0050】このようなCPUアドレスからDRAM論
理アドレスへの変換は、例えば16Kバイト単位で行わ
れる。これにより、DRAM論理アドレスの下位ビット
部(MA13:02)は、アドレス変換後においても、
CPUアドレスの下位ビット部(A13:02)と等し
い。
【0051】DRAMマッパー123によって得られた
DRAM論理アドレス(MA31:02)は、図1のD
RAMコントローラ124に送られる。DRAMコント
ローラ124は、アクセスコントローラ122によって
CPU11のバスサイクルがDRAMサイクルであるこ
とが指示された時、アクセス制御信号(RAS,CA
S,WE,OE,CS)およびDRAM物理アドレス
(ロウアドレスRA、カラムアドレスCA)を用いて、
主メモリ13、すなわちDRAMのアクセスサイクルを
実行する。ロウアドレスRAおよびカラムアドレスCA
は、DRAM論理アドレス(MA31:02)を分解す
る事によって得られる。
【0052】バスコントローラ125は、アクセスコン
トローラ122によってCPU11のバスサイクルがシ
ステムバス32上のBIOS−ROM14に対するメモ
リアクセスサイクルであることが指示された時、システ
ムバス32上のBIOS−ROM14にチップセレクト
信号を発行し、そのBIOS−ROM14をシステムバ
ス32のバスサイクルに対応するタイミングでアクセス
制御する。
【0053】次に、アトリビュートレジスタファイル2
01によって管理される属性情報について具体的に説明
する。まず、図4を参照して、CPU11のメモリアド
レス空間とアトリビュートレジスタファイル201によ
ってエリア毎に管理される属性情報との関係を説明す
る。
【0054】前述したようにアトリビュートレジスタフ
ァイル201によって管理される1つのアドレスエリア
のサイズは16Kバイトであり、図4に示されているよ
うに、CPUメモリアドレス空間00000000h〜
FFFFFFFFhは00000000hから順番に1
6Kバイト単位でAREA番号が定義されている。DR
AMを含む複数種のメモリデバイスが配置される可能性
があるAREAについては、各アトリビュートレジスタ
には、図5に示すような8ビットの属性情報が設定され
る。
【0055】図5に示されているように、8ビットの属
性情報のうち、bit7とbit6の2ビットはリード
属性情報(READ ATTRIBUTE)、bit5
とbit4の2ビットはライト属性情報(WRITE
ATTRIBUTE)、bit3はDRAMライトプロ
テクト情報(WP)、bit2とbit1の2ビットは
キャッシング制御情報(CASH)として使用される。
【0056】リード属性情報(READ ATTRIB
UTE)は、リードアクセス対象のメモリデバイスの種
類を示すものであり、図6に示されているように、その
bit7とbit6の2ビットの組み合わせによって、
DRAM、システムバス上のメモリのいずれかが指定さ
れる。
【0057】ライト属性情報(WRITE ATTRI
BUTE)は、ライトアクセス対象のメモリデバイスの
種類を示すものであり、図7に示されているように、そ
のbit5とbit4の2ビットの組み合わせによっ
て、DRAM、システムバス上のメモリのいずれかが指
定される。
【0058】このように、各エリアについてリード属性
情報とライト属性情報を別個に定義しておくことによ
り、同一の転送元および転送先アドレスを指定したMO
V命令だけでROM/RAMコピーを実現できる。
【0059】DRAMライトプロテクト情報(WP)
は、ライト属性情報によってDRAMがライトアクセス
対象のメモリデバイスとして指定されている時、bit
3の内容によってDRAMに対する書き込み保護を行う
か否かを示す。
【0060】キャッシング制御情報(CASH)は、リ
ード属性情報およびライト属性情報によって共にDRA
Mが指定されている時に於いて、そのRAMのキャッシ
ング操作の有効/無効を制御するためのものであり、そ
のbit2とbit1の2ビットの組み合わせによっ
て、ライトバックキャシュイネーブル、ライトスルーキ
ャシュイネーブル、キャシュディセーブルのいずれかが
指定される。
【0061】DRAMライトプロテクト情報(WP)お
よびキャッシング制御情報(CASH)により、たとえ
ばVGA−BIOS、システムBIOS#1,#2がコ
ピーされたDRAMエリアに対して、ライトプロテクト
の設定をしたり、キャシュディセーブルの設定などを行
うことができる。
【0062】次に、図8のフローチャートを参照して、
図1のシステムの電源投入時の動作について説明する。
図1のコンピュータシステムがパワーオンされると、C
PU11はリセットされ、リアルモードで動作を開始す
る(ステップS201)。システムパワーオン時には、
前述したように、BIOS−ROM14のシステムBI
OS#2がCPUメモリアドレスE0000〜EFFF
Fに割り当てられており、CPU11は、アドレスFF
FF0の命令をフェッチする。これにより、システムB
IOS#2のPOSTルーチンの実行がリアルモード環
境で開始される。
【0063】POSTルーチンは、CPU11のMSW
レジスタの設定などによってCPU11の動作モードを
リアルモードからプロテクトモードに変更する(ステッ
プS202)。この後、POSTルーチンは、プロテク
トモードにおいてメモリチェックを開始する(ステップ
S203)。このメモリチェックでは、システムに設け
られているDRAMに対するリード・ライトコンペア処
理によって主メモリ13の記憶サイズが調べられる。す
なわち、メモリチェックにおいては、図9に示されてい
るように、POSTルーチンは、まず、全CPUメモリ
アドレス空間に対するアクセスが可能になるようにセグ
メントレジスタの設定を行い(ステップS301)、次
いで、メモリアドレスを順次更新しながらメモリライト
アクセス、メモリリードアクセス、ライトデータとリー
ドデータとの比較を行い、その結果に従ってDRAMサ
イズを調べる(ステップS302)。
【0064】このように、プロテクトモードのPOST
ルーチンによってメモリチェックの初期化を行うことに
より、一回のセグメントレジスタの設定だけで、全DR
AMアドレス空間のチェックを行うことが可能となる。
【0065】メモリチェックが完了すると、POSTル
ーチンは、ROM/RAMコピーによってBIOS−R
OM14の内容をDRAMのコピーエリア131にコピ
ーする(ステップS204)。このROM/RAMコピ
ーは様々な方法で実現可能であるが、その一例は、次の
通りである。
【0066】すなわち、まず、DRAMのコピーエリア
131に対応するCPUメモリアドレス範囲のライト属
性情報およびリード属性情報の設定によって同一アドレ
ス空間上にDRAMとBIOS−ROM14を配置す
る。この場合、リードデバイスはBIOS−ROM14
に、ライトデバイスはDRAMに設定する。そして、M
OV命令を、アドレスをインクリメントしながら繰り返
し実行することにより、DRAMコピーエリア131に
BIOS−ROM14のVGA−BIOS、システムB
IOS#1、システムBIOS#2をコピーする。
【0067】この後、アトリビュートレジスタファイル
201によってメモリマッピングを変更し、DRAM上
のVGA−BIOS、システムBIOS#1、システム
BIOS#2を、それぞれCPUアドレスC0000h
〜CFFFFh、F0000h〜FFFFFh、および
FE0000h〜FEFFFFhに再配置する(ステッ
プS205)。そして、FE0000h〜FEFFFF
hに配置されたシステムBIOS#2のPOSTルーチ
ンに制御が移行され、I/Oデバイスの初期化処理およ
びブートルーチンの実行などが行われる(ステップS2
06)。次いで、CPU11のMSWレジスタの設定な
どによってCPU11の動作モードをプロテクトモード
からリアルモードに変更(ステップS202)した後、
OSに制御が渡される。
【0068】次に、図10のフローチャートを参照し
て、BIOSファンクションルーチンの実行手順につい
て説明する。前述したように、OSの起動後において
は、BIOSドライバ群から構成されるシステムBIO
S#1がCPUアドレスF0000h〜FFFFFhに
配置されるため、OSやアプリケーションプログラムか
らの要求はシステムBIOS#1で受け付けられる。
【0069】システムBIOS#1は、要求されたシス
テムBIOS内のサービスルーチンが、CPUアドレス
F0000h〜FFFFFhの64Kバイトに割り当て
られたシステムBIOS#1と、FE0000h〜FE
FFFFhに割り当てられたシステムBIOS#2のど
ちらに存在するかを調べる(ステップS401)。シス
テムBIOS#1に存在するサービスルーチンならば、
そのサービスルーチンが起動されることによってすぐに
要求された処理が実行される(ステップS402)。
【0070】一方、起動すべきサービスルーチンがシス
テムBIOS#2の拡張用ドライバに存在する場合に
は、システムBIOS#2に存在するサービスルーチン
に制御が移行され、そのサービスルーチンによって要求
された処理が実行される(ステップS403,S40
4)。
【0071】以上のように、この実施形態においては、
POSTルーチンおよび拡張用ドライバルーチンを含む
システムBIOS#2がプロテクトモード化されてお
り、そのシステムBIOS#2についてはプロテクトモ
ードでのみアクセス可能な100000h以降のCPU
アドレス空間に割り当てられ、BIOSドライバ群を含
むシステムBIOS#1については従来通りリアルモー
ドでアクセス可能なアドレス空間F0000h〜FFF
FFhに割り当てられる。これにより、セグメントレジ
スタを64Kバイト単位で設定し直すといった煩雑なセ
グメント管理を行うことなく、主メモリ13の初期化を
行うことが可能となる。この結果、コンピュータシステ
ムがパワーオンされてからオペレーティングシステムが
起動されるまでの時間を大幅に短縮できるようになる。
また、常にシステムBIOS全体を開いておけるため、
メモリマッピングの切り替えや、キャッシュフラッシュ
を行うことなく、オペレーティングシステムなどによっ
て要求されたBIOS処理を即座に実行できるようにな
り、システム性能の向上を図ることが可能となる。
【0072】
【発明の効果】以上説明したように、この発明によれ
ば、既存のシステムとの互換性を損なうことなく常にシ
ステムBIOS全体を開いておけるようになり、システ
ムBIOSによって提供される各種ハードウェア制御機
能を効率よく実行することが可能となる。
【図面の簡単な説明】
【図1】この発明の一実施例に係るコンピュータシステ
ムの構成を示すブロック図。
【図2】図1のシステムにおけるシステムBIOSの構
造を示す図。
【図3】図1のシステムにおけるメモリアドレスマップ
の一例を示す図。
【図4】図1のシステムに設けられているアトリビュー
トレジスタファイルによって管理される属性情報とCP
Uメモリアドレス空間との関係を示す図。
【図5】図1のシステムに設けられているアトリビュー
トレジスタファイルに設定される属性情報のフォーマッ
トを示す図。
【図6】図5の属性情報に含まれるリード属性情報の内
容を示す図。
【図7】図5の属性情報に含まれるライト属性情報の内
容を示す図。
【図8】図1のシステムの立ち上げ処理の手順を示すフ
ローチャート。
【図9】図8の立ち上げ処理において実行されるメモリ
の初期化処理の手順を示すフローチャート。
【図10】図1のシステムにおけるBIOSファンクシ
ョンルーチンの起動処理動作を説明するフローチャー
ト。
【図11】従来のメモリ初期化処理の手順を示すフロー
チャート。
【図12】従来のBIOSファンクションルーチン起動
処理動作を説明するフローチャート。
【符号の説明】
11…CPU、12…システムコントローラ、13…主
メモリ、14…BIOS−ROM、18…ディスプレイ
コントローラ、121…CPUコントローラ、122…
アクセスコントローラ、124…DRAMコントロー
ラ、125…ISAコントローラ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 真田 俊孝 東京都青梅市新町1381番地1 東芝コンピ ュ―タエンジニアリング株式会社内 (72)発明者 小荒井 学 東京都青梅市新町1381番地1 東芝コンピ ュ―タエンジニアリング株式会社内 (72)発明者 藤原 尚伸 東京都青梅市新町1381番地1 東芝コンピ ュ―タエンジニアリング株式会社内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 第1のメモリアドレス空間をアクセス可
    能な第1動作モードと、前記第1のメモリアドレス空間
    およびそれよりも上位アドレスに位置する第2のメモリ
    アドレス空間をアクセス可能な第2動作モードとを有す
    るCPUと、ハードウェア制御のためのシステムプログ
    ラムが格納されたシステムROMとを備えたコンピュー
    タシステムにおいて、 前記システムプログラムは、前記第1動作モードで動作
    可能に構成された第1プログラムと、前記第2動作モー
    ドで動作可能に構成された第2プログラムとを含み、 前記第1プログラムを前記第1のメモリアドレス空間上
    に配置し、前記第2プログラムを前記第2のメモリアド
    レス空間上に配置する手段を具備することを特徴とする
    コンピュータシステム。
  2. 【請求項2】 前記第1プログラムは、オペレーティン
    グシステムまたはアプリケーションプログラムからの要
    求に応じて実行すべきハードウェアアクセス処理の手順
    を記述したドライバプログラム群を含み、 前記第2プログラムは、前記コンピュータシステムがパ
    ワーオンされてからオペレーティングシステムが起動さ
    れるまでに実行すべきハードウェアの初期化およびテス
    ト処理の手順を記述した初期化プログラムを含むことを
    特徴とする請求項1記載のコンピュータシステム。
  3. 【請求項3】 前記第2プログラムは、さらに、前記第
    1プログラムの機能拡張のための拡張プログラムを含む
    ことを特徴とする請求項2記載のコンピュータシステ
    ム。
  4. 【請求項4】 前記拡張プログラムは、前記オペレーテ
    ィングシステムから直接、または前記第1メモリアドレ
    ス空間上に割り当てられた前記第1プログラムを介し
    て、呼び出されることを特徴とする請求項3記載のコン
    ピュータシステム。
  5. 【請求項5】 前記初期化プログラムは、前記コンピュ
    ータシステムのパワーオン時に前記CPUの動作モード
    を前記第1動作モードから第2動作モードに切り替え、
    前記第2動作モードでアクセス可能な前記第1および第
    2のメモリアドレス空間に渡って配置された前記コンピ
    ュータシステムの主メモリの初期化を行うことを特徴と
    する請求項2記載のコンピュータシステム。
  6. 【請求項6】 前記CPUからのメモリアドレスの値
    を、前記コンピュータシステムの主メモリとして用いら
    れるRAMをアクセスするためのRAMアドレスに変換
    するメモリアドレス変換手段をさらに具備し、 前記第2プログラムは、 前記システムROMに格納されている前記第1および第
    2プログラムを、前記コンピュータシステムの主メモリ
    として用いられるRAM上の所定領域にコピーし、前記
    第2プログラムがコピーされた前記RAM上の領域を前
    記メモリアドレス変換手段を用いて前記第2のメモリア
    ドレス空間の一部に再配置することを特徴とする請求項
    1記載のコンピュータシステム。
  7. 【請求項7】 第1のメモリアドレス空間をアクセス可
    能な第1動作モードと、前記第1のメモリアドレス空間
    およびそれよりも上位アドレスに位置する第2のメモリ
    アドレス空間をアクセス可能な第2動作モードとを有す
    るCPUと、ハードウェア制御のためのシステムプログ
    ラムが格納されたシステムROMとを備えたコンピュー
    タシステムであって、前記システムプログラムは、前記
    コンピュータシステムがパワーオンされてからオペレー
    ティングシステムが起動されるまでに実行すべきハード
    ウェアの初期化およびテスト処理の手順を記述した初期
    化プログラムを含み、この初期化プログラムは前記第2
    動作モードで動作可能に構成されているコンピュータシ
    ステムで使用される立ち上げ制御方法であって、 前記コンピュータシステムの電源投入時に前記CPUの
    動作モードを前記第1モードから前記第2モードに切り
    替え、 前記第2動作モードで動作可能な前記初期化プログラム
    を用いて、前記第2動作モードでアクセス可能な前記第
    1および第2のメモリアドレス空間に渡って配置された
    前記コンピュータシステムの主メモリを初期化すること
    を特徴とする立ち上げ制御方法。
  8. 【請求項8】 前記システムプログラムは、さらに、 前記第1動作モードで動作可能に構成され、オペレーテ
    ィングシステムまたはアプリケーションプログラムから
    の要求に応じて実行すべきハードウェアアクセス処理の
    手順を記述したドライバプログラム群と、 前記第2動作モードで動作するように構成され、前記ド
    ライバプログラム群によって提供される機能の拡張のた
    めの拡張プログラムとを含み、 前記ドライバプログラム群を前記第1のメモリアドレス
    空間上に配置し、前記第2プログラムを前記第2のメモ
    リアドレス空間上に配置した後に、オペレーティングシ
    ステムを起動することを特徴とする請求項7記載の立ち
    上げ制御方法。
JP10023097A 1997-04-17 1997-04-17 コンピュータシステムおよびその立ち上げ制御方法 Pending JPH10293684A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10023097A JPH10293684A (ja) 1997-04-17 1997-04-17 コンピュータシステムおよびその立ち上げ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10023097A JPH10293684A (ja) 1997-04-17 1997-04-17 コンピュータシステムおよびその立ち上げ制御方法

Publications (1)

Publication Number Publication Date
JPH10293684A true JPH10293684A (ja) 1998-11-04

Family

ID=14268482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10023097A Pending JPH10293684A (ja) 1997-04-17 1997-04-17 コンピュータシステムおよびその立ち上げ制御方法

Country Status (1)

Country Link
JP (1) JPH10293684A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305768A (ja) * 1999-04-19 2000-11-02 Nec Software Kobe Ltd システムソフトウェア書換方法
JP2001142714A (ja) * 1999-06-18 2001-05-25 Fiinikkusu Technologies Ltd 通常のos制御下でコンピュータのプリ−ブート及びポスト−ブート作動の際にアプリケーションを実行する方法と装置
JP2005515517A (ja) * 2001-05-10 2005-05-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド パーソナルコンピュータの記憶位置用外部ロッキング機構
JP2006285798A (ja) * 2005-04-01 2006-10-19 Ark Joho Systems:Kk リアルモードにて1M以上のメインメモリを利用するx86系計算機
US8312257B2 (en) 2009-03-18 2012-11-13 Nec Corporation System and method for performing hardware resource assignment in a large-scaled system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305768A (ja) * 1999-04-19 2000-11-02 Nec Software Kobe Ltd システムソフトウェア書換方法
JP2001142714A (ja) * 1999-06-18 2001-05-25 Fiinikkusu Technologies Ltd 通常のos制御下でコンピュータのプリ−ブート及びポスト−ブート作動の際にアプリケーションを実行する方法と装置
JP4689006B2 (ja) * 1999-06-18 2011-05-25 フィーニックス  テクノロジーズ  リミテッド 通常のos制御下でコンピュータのプリ−ブート及びポスト−ブート作動の際にアプリケーションを実行する方法と装置
JP2005515517A (ja) * 2001-05-10 2005-05-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド パーソナルコンピュータの記憶位置用外部ロッキング機構
JP2006285798A (ja) * 2005-04-01 2006-10-19 Ark Joho Systems:Kk リアルモードにて1M以上のメインメモリを利用するx86系計算機
US8312257B2 (en) 2009-03-18 2012-11-13 Nec Corporation System and method for performing hardware resource assignment in a large-scaled system

Similar Documents

Publication Publication Date Title
US6073206A (en) Method for flashing ESCD and variables into a ROM
US5953746A (en) Method and apparatus for dynamically resizing a frame buffer in a shared memory buffer architecture system
US5479639A (en) Computer system with a paged non-volatile memory
US6321314B1 (en) Method and apparatus for restricting memory access
JP3571667B2 (ja) 割り込みフラグ管理方法
US7519754B2 (en) Hard disk drive cache memory and playback device
KR100797325B1 (ko) 통합 메모리 및 컨트롤러
US5951685A (en) Computer system with system ROM including serial-access PROM coupled to an auto-configuring memory controller and method of shadowing BIOS code from PROM
JP3987577B2 (ja) システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置
KR20010006749A (ko) 설치된 모든 대용량 저장 장치들의 리부트/파워 온리컨피그레이션을 최종 사용한 컨피그레이션과 동일하게하도록 각각의 대용량 저장 장치의 비휘발성 메모리에시스템 레벨 대용량 저장 컨피그레이션 데이터를 저장하는장치 및 방법
JPH11161547A (ja) データ処理装置用記憶装置、および記憶場所にアクセスする方法
EP0377970A2 (en) I/O caching
US5544344A (en) Apparatus for caching smram in an intel processor based computer system employing system management mode
JP3605205B2 (ja) データ処理装置および処理方法
US5638532A (en) Apparatus and method for accessing SMRAM in a computer based upon a processor employing system management mode
US5161219A (en) Computer system with input/output cache
US5555423A (en) Multi-mode microprocessor having a pin for resetting its register without purging its cache
US5954812A (en) Apparatus for caching system management memory in a computer having a system management mode employing address translation
BR9811952B1 (pt) processador e método para especificar atributos de memória.
JPH10293684A (ja) コンピュータシステムおよびその立ち上げ制御方法
JP3505231B2 (ja) コンピュータシステム
US4628450A (en) Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor
JPH09114768A (ja) コンピュータシステム
KR200190099Y1 (ko) 메모리 겸용 캐시
JP2954988B2 (ja) 情報処理装置