13

現代のコンピューターがハーバードアーキテクチャを変更したことを理解しています。

データを保持している場所以外の場所から命令を読み取ることができるという事実により、ROMチップから直接命令をフェッチすることができますか?BIOSを最初にRAMにロードしますか、それともチップから直接実行しますか?近くに開けるコンピュータがないので...メモリスロットからすべてのRAMを削除すると、コンピュータは完全なBIOSを起動し、POSTを実行して、RAMが必要だと教えてくれますか?私が試したことがないのはおかしいです...

編集:この質問での私の意図は、商用CPU(または少なくともIntel cpus)がROMから直接コードを実行できるかどうかを知ることです。これは実用的な目的ではなく、コンピュータアーキテクチャなどの理解を深めるためです。RAM部分の削除は私の主な疑問ではなく、単なる例です

4

2 に答える 2

17

ROMから直接実行し、RAMにコピーします

最新のx86プロセッサでは、チップセットメモリコントローラは最初の電源投入時に初期化されていないため、使用可能なRAMはありません。

最新のBIOSは通常、次の2つの部分に分かれています。

  1. ブートブロック(初期のPOST)
  2. 圧縮領域(中期から後期のPOST)

プロセッサがリセットを終了すると、「リセットベクトル」と呼ばれるメモリ内の固定アドレスで命令の実行を開始します。BIOSフラッシュチップは、メモリ内のこのアドレスにマップされます。プロセッサは、このアドレスから命令の実行を開始するだけです。

「ブートブロック」とは、リセットベクトル(およびいくつかのJMP)から始まるBIOSコードを指します。これはROMから直接実行されるため(メモリコントローラーはまだ起動していません)、非常に低速です。

BIOSブートブロックは通常、次のことを行います。

  1. メモリコントローラを初期化します。(マザーボードから「メモリが検出されません」というビープコードを受け取った場合は、ここで発生します。)
  2. 圧縮領域でチェックサムを実行して、BIOSの残りの部分に破損がないことを確認します。
  3. 破損が検出された場合は、リカバリモードにジャンプします。
  4. チェックサムに合格したら、BIOSの残りの部分をRAMのどこかに解凍します(通常は1MBの境界より下)。
  5. RAM内の解凍されたコードにジャンプし、起動を続行します。
于 2011-03-18T03:29:28.203 に答える
0

RAMを完全に取り外すと、電源を入れたときにPCからビープ音が鳴り始めます。

何が起こるかについての良い説明はここにあります:http: //www.pcguide.com/ref/mbsys/bios/boot.htm

プロセスを説明しているHans-PeterMessmerの「TheIndespensiblePCHardwareBook」もあります。

于 2011-03-14T15:19:10.830 に答える