誰がコンピュータのブートストラップ中にBIOSをRAMにロードするか


8

コンピュータが起動すると、BIOSのコードが最初に実行されます。しかし、BIOSのコードはどのようにRAMにロードされて実行されますか?

この質問を参照しました-BIOSはBIOSチップから読み取られるか、起動時にRAMにコピーされますか?。しかし、それは私をもっと混乱させました。BIOSがROMからロードされ、ROMが別のチップである場合、RAMのセグメントアドレスについて説明する意味は何ですか?また、BIOSコードはどこにロードされていますか?リアルモードアドレス空間の最後の1 MiBにありますか、それとも他の場所にありますか?

誰かがコンピュータの起動から使用されたメモリアドレスを含む最初のBIOS命令の実行までのステップをリストできれば、それは非常に役に立ちます

回答:


7

その質問への私の回答で書いたように、残念ながらそこにある他の回答(そしてここではスーパーユーザー)に例証されているように、この件に関して受け取られた民衆の知恵は、1991年頃と同じように世界中で利用されています。それ以外の場合は、現在の状態です。

そもそも、私の答えを読んでいれば、混乱することはなかったでしょう。そもそも、「ROMから読み込まれたBIOS」について尋ねる必要はないからです。

「BIOSチップ」 ROMではありません。プロセッサの起動とファームウェアの最初の命令の間にマシンコードはありません。また、「RAM」と「ROM」の両方の「M」は「メモリ」を意味します。

前に書いたように、最近のPCでは、マシンのファームウェアは不揮発性RAMに保持されています。それは以前のようにROMではありません。LPCバスに接続されたNVRAMチップの詳細については、前の回答を参照してください。(例:私がこれをタイプするときに、私の横に逆アセンブルされて座っているマシンでは、ファームウェアを保持するNVRAMは、LPCフラッシュRAMチップであるPm49FL004Tです。)

32ビットCPUはリアルモードで起動せず、1MiB境界より下のアドレスで起動しません。これは、16ビットx86プロセッサの時代から数十年の古いゴミです。それらは口語的にアンリアルモードと呼ばれているものから始まり、以前の回答でも、80386の登場以来実際に何が起こっているのかについて詳しく説明しました。彼らは最初の命令を、実際には32ビットアドレス空間の最上部にあるアドレスからロードしますFFFFFFF0

以前の回答で、マシンのファームウェアが主に32ビットおよび64ビットのx86マシンの物理アドレス空間にマッピングされる場所について詳しく説明しました。注意:RAMとROMはどちらもメモリです。物理アドレスは、システムバス上のメモリアドレスです。RAMまたはROMのいずれかをアドレス指定できます。(彼らも同様に他の事に対処することができますが、それだけでこの議論を複雑です。)物理アドレスはFFFFFFF016バイトトップファームウェアの512KiBは、不揮発性RAMには、され512KiB範囲の最上部の下で、常に上にマップ「チップセット」によるシステムバス。

プロセッサーの初期化時またはリセット時に行われる神秘的なROMチップからの「ロード」はありません。ファームウェアを保持するチップは、不揮発性RAMです。「フラッシュ」されたときに書き込まれた内容は、電源を入れ直しても保持されます。そして、CPUは、システムバス上、およびチップセットを介してシステムバスに接続されたLPCバス(およびおそらくLPC / FWHブリッジ)経由で、物理メモリアドレスを使用して、ファームウェアの命令とデータを読み取るだけです。

参考文献


ありがとう、これは私にはずっとはっきりしているようです。しかし、不揮発性RAMとそこから読み取られるデータを言うとき、それはBIOSが何らかの方法でRAMと結合されていることを意味しますか?各RAMチップにはBIOSが付属していますか?馬鹿げているように見えるかもしれませんが、このトピックの初心者です。
Cygnus 2014年

彼が不揮発性ランダムアクセスメモリ(NVRAM)と言ったとき、彼はメインシステムメモリとして使用されているRAM(通常はダイナミックランダムアクセスメモリ、DRAM)とは異なるテクノロジについて言及しています。これはメインRAMとは別のチップであり、電源がオフの場合でもファームウェアが含まれるため、「不揮発性」の部分になります。
Dougvj 2014年

@Dougvj:その場合、なぜFFFFFFF0という別のアドレスがあるのですか?NVRAMのサイズはファームウェアのサイズと同じではありませんか?
Cygnus 2014年

あなたの質問は、この回答に対するコメントではなく、実際の質問として扱うほうがよいと思います。右側の「関連する」質問のいくつかを見て、理解を深めるために尋ねる質問を見つけてください。(確かに、SuperUserには基本的な質問と回答の余地があります。簡単な説明からと思われます。)
JdeBP

@JdeBP:私は新しいquestion-の追加したsuperuser.com/questions/695769/...
シグナス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.