BIOSのROMチップがCMOSテクノロジーを使用して作られていないのはなぜですか?


9

BIOS / CMOSのコンピューターハードウェアコースを読んでも、BIOSのROMチップがCMOSテクノロジーを使用して構築されていない理由、およびそれを「CMOS」と呼ばれる別のチップに接続して、構成情報。

これは講義ノートからです:

プログラムはシステムBIOSチップに保存され、変更可能なデータはCMOSチップに保存されます

ハードウェアのCMOSグループ:一般的で必要なハードウェア(変更される可能性があります– RAM、ハードドライブ、フロッピードライブ、シリアルおよびパラレルポート)

BIOSはフラッシュメモリに格納されており、CMOS MOSFETテクノロジは他の実装と比較して消費電力が少ないことを知っています。

他のストレージデバイスのように、CMOSを使用しないのはなぜBIOS ROMだけなのですか?正確には何が利点ですか?また、BIOS構成情報を「CMOSチップ」ではなく独自のROMチップに保存できないのはなぜですか。


1
CMOSはデータを保持するためにバッテリーを必要としませんか?これは、バッテリーが切れたときに設定とクロック設定が失われることの1つですが、BIOSが失われた場合は惨事になります。最後の文を編集するかもしれません。私はあなたが何を求めているのか理解できません。
トランジスタ

1
BIOS

1
@KaisはROMのどの部分も書き込み可能ではありません。それはまさにその用語の意味に反しています。テクノロジーの中間-Eraseble Programmable ROMは、提案していることを可能にするようになり、回路プログラミングは簡単になりましたが、実際にこれよく行われています。しかし同時に、時計をすることと、いくつかの設定を保持するために、バッテリーの上に生きているチップの低消費電力のコーナーを維持することがあるので、また、可能となっているにもいくつかのシステムで利用さオプション。
Chris Stratton、2018

2
「ROM」は「読み取り専用メモリ」意味します。それは定義によって書き込み可能ではありません。通常、実際のROMには、メタライゼーション層または実際の構成トランジスタのカスタマイズが含まれます。対照的に、内容を変更することができる「Read Mostly」メモリ(PROM、EPROM、EEPROM、フラッシュなど)には多くの種類がありますが、RAMよりも速度と回数に制限があります。典型的には今日、外付けデバイスが正しい接続で書き込み可能である一方で、本当のROMはプロセッサー内部にしかありません(それでも、書き込みからロックされているだけの可能性があります)。
Chris Stratton、2018

1
たとえば、最近のシステムでは、シリアルNORフラッシュの内容をメモリに読み込んで実行を開始する方法を知っている小さなROMがプロセッサ内にある場合があります。次に、NORフラッシュのBIOSがアップグレードされ、フラッシュからRAMにコピーしてジャンプする小さなブートスタブは、チップの製造時に永久的に修正されます。
Chris Stratton

回答:


33

実装テクノロジと、機能に関する口語的な用語を混同しています。

CMOS-Complementary Metal Oxide Semiconductor-は、NチャネルとPチャネルの両方の電界効果トランジスタを使用してロジックと関連回路を作成する方法です。その特徴的な特性の1つは、非常に低い静的電力消費です。電力は、状態を変更するときにのみ使用されます。その結果、CMOSスタティックメモリチップはバッテリーで何年もその内容を保持でき、半永久的な情報を保存するのに便利な場所です。

BIOSおよび関連する起動コードは、伝統的にPROMまたはEPROMデバイスに格納されていました。IBM PC時代のEPROMは通常、NMOSなどのプレCMOSテクノロジーで作られていましたが、重要な違いは、これらをコンピューターにインストールした場合、通常は書き込みができず、特別なプログラマーだけが書き込めたことです。さらに、現在の多くのシステムとクローンではEPROMが使用されていましたが、IBM-PCの実際の製品バージョンでは、安価な再プログラム不可能なPROMが使用されていました(ピン配置は通常、使用時に互換性がありました)。

次に、PC-AT設計は、カスタマイズ可能な設定を保存するためのバッテリバックアップ付きCMOSメモリ、および(おそらく同じデバイス内に)永続的なリアルタイムクロックを追加しました。これは、口語的にCMOSと呼ばれるようになりましたが、もちろん、当時急速に普及しているチップテクノロジーによって可能になった特定の用途にすぎません。

もちろん今日では、BIOSにパラレルE / PROMを使用するのではなく、シリアルNORフラッシュを使用して、実行のために内容をより高速なRAMに転送します。最新のFLASHチップ、実際にはCMOSから派生したテクノロジーで作られています。そして、それらは通常、回路で再プログラムすることができます。半永久的な構成情報をバッテリーバックアップ付きRAMまたは再プログラム可能なフラッシュに格納するかどうかは、システム設計者次第です。エンドユーザーまたはブート後のオペレーティングシステムでは、区別の実際の可視性がほとんどない場合があります。

ただし、設定にフラッシュを使用する場合でも、通常はバッテリーで動作し続ける低電力のリアルタイムクロックが存在します。


1
CPUが最初に起動するとき、RAMは初期化されていません(DRAMの初期化は複雑です)。特定の場所でコードを実行するだけです(通常はSPI上のBIOSチップですが、その後のブートをプログラムして、デバッグの理由でレガシーPCIまたはLPC上のBIOSを探すことができます)。RAMに入れられる唯一のものは、IVT(Interrupt Vector Table)や、リアルモードから切り替える前にのみ役立つ関連コードのようなものです。CPUが起動しているときの実際のBIOSの実行は、メモリ内では発生しません。詳細については、wiki.osdev.org / System_Initialization_(x86)を参照してください。
フォレスト

1
@forest-それは本当である可能性は低く、実際にはリンクのかなり広い説明ではサポートされていません。最終的には、再利用されたキャッシュRAMなどから実行される可能性がありますが、SPIからの直接実行はうまく機能せず、回避される可能性が非常に高くなります。メインのシステムRAMがアップすると、BIOSが実行されることは明らかです。そのようなシャドウイングは、パラレルEPROMのBIOSの時代でも一般的でした。
Chris Stratton、2018

1
はい、メインメモリが初期化されると、IVT、BDA、EBDAなどがそこにコピーされます。ただし、その前に直接実行されます。これはキャッシュでは実行されません(BIOSによる明示的な初期化が必要なCARモード、Cache-As-RAMになります)。
フォレスト

1
詳細については、stackoverflow.com / questions / 5300527 /…をご覧ください。特に、BIOSブートブロックがSPIを介して直接実行される方法。これは、BIOSのその領域をメモリにマッピングすることで可能です(もちろん、メモリが実際に初期化される前なので、MMIOと同じです)。したがって、それは本当である可能性が高いだけでなく、本当です。
フォレスト

Chris Stratton、「シリアルNORフラッシュを使用し、実行のために高速のRAMにコンテンツを転送する」 そして、SPIから直接「データ移動」コードを直接実行する以外に、この「コンテンツの転送」をどのように正確に想定しますか?
Ale..chenski

12

PCが最初に発明された当時、PC上のロジックのほとんどは電力を消費するNMOSチップとTTLチップでした。CMOSは非常に新しいものであり、それを使用したPC内の唯一の回路は、構成RAMやリアルタイムクロックなど、電源がオフのときにバッテリーで実行する必要があるものに関連付けられていました。

今日では、ロジックのほとんどすべてがCMOSであり、電力を消費するCPUとBIOSを保持するフラッシュEEPROMを含みます。したがって、ある意味では、あなたの質問は無効な前提に基づいています。フラッシュEEPROM CMOSです。ただし、何らかの理由で、PCの「CMOS」という用語は、依然としてRAMおよびRTC機能のみを指します。

BIOSが不揮発性フラッシュではなく揮発性RAMに保存されていない理由を尋ねるのは、バッテリーが故障しているためであり、BIOSを消去すると、コンピューターが効果的に「ブリック」され、特殊なハードウェアが必要になります。


1
「つまり、ある意味で、あなたの質問は無効な前提に基づいています—フラッシュEEPROMはCMOSです」-「プログラムはシステムBIOSチップに保存され、変更可能なデータはCMOSに保存されます」というフレーズは少し混乱しましたが、理解しました。
Kais

「なぜBIOSが不揮発性フラッシュではなく揮発性RAMに保存されていないのかと尋ねるのは、バッテリーが故障しているためです」いいえ、私は反対です-なぜCMOSチップの情報がBIOSフラッシュに保存されていないのですか。
Kais

3
@Kaisは、フラッシュメモリを任意に上書きできないため、フラッシュメモリのページ全体の書き換えを管理すると、エラーが発生しやすくなります。また、いくつかのBIOSenによって保存されたイベントログなどがあります。これには、フラッシュが消耗したり、電源が誤ったタイミングで失敗した場合にデータが破損したりする危険が伴います。真のEEPROMメモリは可能ですが、a)書き込みが遅く、b)とにかく時計用の低電力バッテリーを持っています
rackandboneman

1
...また、フラッシュが一般的になる前にシステム全体が設計されたため、BIOSはいずれかのPROMに保存されていました(ヒューズを使用して各ビットが1か0かを判断し、1から0にのみ変更できますが、変更はできません)再び)またはマスクされたROM(チップにオーバーレイされた金属線の層を使用してそれをプログラムし、製造後はまったく変更できない)のため、別のデバイスが必要であり、それ以来すべてが下位互換性を維持する必要がありました。
Jules

8

「CMOS」の頭字語の2つの使用法を混同していると思います。完全に相補型MOSトランジスタ技術で構築されたチップがあります。実際、最近のほとんどすべてのチップは、フラッシュチップ上のデジタル制御回路の多くを含め、この方法で構築されています。

一部の設定とバッテリーが接続されたリアルタイムクロックを保存したチップを参照する最初の日以来、CMOSの他の用途はPC業界で続いています。当時(80年代初頭)、PCの大規模なチップの大部分はNMOSテクノロジーで、その他のロジックチップはバイポーラトランジスタロジック(TTL、LSTTLなど)でした。使用された唯一のCMOSチップはRTCチップであり、「CMOS」として知られるようになりました。

最近では、RTCはPCアーキテクチャデバイス上の個別のチップではなくなりました。代わりに、マザーボードのチップセットに組み込まれています(偶発的に相補型MOS回路で製造されています)。最近のBIOSが、チップセットのRTC部分にあるバッテリーでバックアップされたレガシーRAMを使用して設定を保存することはまれです。代わりに、BIOSはSPIフラッシュストレージデバイスの数ページを使用して、不揮発性の方法で設定を保存します。そのため、バッテリーが消耗したり切断されたりすると、PCで失われる設定が最小限に抑えられます。バッテリーの電源を切ると失われる最小限の設定は、チップセットの電源投入とリセットの動作を制御する特定の設定であり、実際にはバッテリー駆動のRAMセルには保存されず、コインから電源が供給される特別な低電力フリップフロップラッチに保存されますセルバッテリー。


2

/superuser/989499/what-does-a-cmos-chip-look-likeも参照してください。これにより、元のMC146818データシートへの便利なリンクが提供されます。

このチップはメモリマップされ、64バイトの場所を提供しました。これらのうち14個は時計用で、残りは汎用RAMのままにしておきます。リアルタイムクロックの動作を維持するために、PCの電源が切れている間、チップ全体がバッテリーで駆動されていました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.