Mengapa chip ROM BIOS tidak dibuat menggunakan teknologi CMOS?

9

Setelah membaca kursus perangkat keras komputer pada BIOS / CMOS, saya masih tidak dapat menentukan alasan mengapa chip ROM BIOS tidak dibangun menggunakan teknologi CMOS, dan mengapa itu terhubung ke chip terpisah yang disebut "CMOS" untuk menyimpan informasi konfigurasi.

Ini dari catatan kuliah :

Program disimpan pada chip BIOS sistem, sementara data yang dapat diubah disimpan pada chip CMOS

CMOS Group of Hardware : Perangkat keras yang umum, perlu tetapi dapat berubah - RAM, hard drive, floppy drive, port serial dan paralel

Saya tahu bahwa BIOS disimpan dalam memori flash, dan bahwa teknologi CMOS MOSFET menghabiskan daya lebih sedikit dibandingkan dengan implementasi lainnya.

Mengapa hanya ROM BIOS yang tidak menggunakan CMOS, seperti perangkat penyimpanan lainnya - apa sebenarnya keuntungannya? Dan mengapa informasi konfigurasi BIOS tidak dapat disimpan dalam chip ROM sendiri, bukan "CMOS chip"?

Kais
sumber
1
Bukankah CMOS membutuhkan baterai untuk menyimpan data? Ada satu hal yang kehilangan pengaturan konfigurasi dan jam ketika baterai mati tetapi itu akan menjadi bencana jika BIOS hilang. Anda dapat mengedit kalimat terakhir Anda. Saya tidak tahu apa yang Anda minta.
Transistor
1
Bios adalah ROM sementara pengaturannya adalah RAM
Tony Stewart Sunnyskyguy EE75
1
@Kais tidak ada bagian dari ROM yang dapat ditulisi. Ini bertentangan dengan arti istilah itu sendiri. Di antara teknologi - Eraseble Programmable ROM yang mulai membuat apa yang Anda usulkan mungkin, dan sekarang di sirkuit pemrograman sederhana, ini sebenarnya adalah sering dilakukan. Tetapi pada saat yang sama, menjaga sudut daya rendah dari chip pada baterai menjadi jam dan mempertahankan beberapa pengaturan juga menjadi mungkin, sehingga juga merupakan opsi yang digunakan dalam beberapa sistem.
Chris Stratton
2
"ROM" berarti " Memori Hanya Baca ". Ini menurut definisi tidak dapat ditulisi. Biasanya ROM yang sebenarnya melibatkan menyesuaikan lapisan metalisasi atau bahkan transistor konstituen yang sebenarnya. Sebaliknya ada banyak jenis memori "Read Mostly" (PROM, EPROM, EEPROM, Flash, dll.) Yang dapat mengubah isinya, tetapi dengan lebih banyak keterbatasan kecepatan dan berapa kali daripada RAM. Biasanya hari ini Anda hanya menemukan ROM yang sebenarnya di dalam prosesor (dan bahkan mungkin itu adalah sesuatu yang Anda tidak dapat menulis), sementara perangkat eksternal akan dapat ditulisi dengan koneksi yang tepat.
Chris Stratton
1
Misalnya, dalam sistem modern Anda mungkin memiliki ROM kecil di dalam prosesor yang tahu cara membaca isi serial NOR flash ke memori, dan mulai menjalankannya. BIOS dalam NOR flash kemudian diekspos untuk ditingkatkan, sedangkan rintisan boot kecil yang menyalinnya dari flash ke RAM dan melompat ke dalamnya secara permanen diperbaiki pada saat pembuatan chip.
Chris Stratton

Jawaban:

33

Anda mencampuradukkan teknologi implementasi dengan istilah sehari-hari untuk fungsionalitas.

CMOS - Semikonduktor Oksida Logam Pelengkap - adalah metode pembuatan logika dan sirkuit terkait menggunakan transistor efek medan N-Channel dan P-Channel. Salah satu karakteristik yang menentukan adalah konsumsi daya statis yang sangat rendah - daya hampir hanya digunakan ketika mengubah keadaan. Akibatnya, chip memori statis CMOS dapat mempertahankan isinya selama bertahun-tahun menggunakan baterai, dan merupakan tempat praktis untuk menyimpan informasi semi-permanen.

BIOS dan kode startup terkait secara tradisional disimpan di perangkat PROM atau EPROM. EPROM di era IBM PC biasanya dibuat dalam teknologi pra-CMOS seperti NMOS, tetapi perbedaan kritisnya adalah bahwa ini tidak dapat ditulisi ketika diinstal di komputer, tetapi hanya di programmer khusus. Lebih lanjut, sementara banyak sistem dan klon kontemporer menggunakan EPROM, versi produksi sebenarnya dari IBM-PC menggunakan PROM yang tidak dapat diprogram ulang yang lebih murah (pinout biasanya kompatibel untuk digunakan).

Desain PC-AT kemudian menambahkan memori CMOS yang didukung baterai untuk menyimpan pengaturan yang dapat disesuaikan, dan juga (mungkin di perangkat yang sama) jam waktu nyata yang persisten. Ini menjadi bahasa sehari-hari disebut oleh pengguna akhir sebagai CMOS, meskipun tentu saja hanya penggunaan tertentu yang dimungkinkan oleh teknologi chip yang kemudian menyebar dengan cepat.

Hari ini tentu saja kita tidak lagi menggunakan E / PROM paralel untuk BIOS, tetapi lebih menggunakan serial NOR flash dan mentransfer konten ke dalam RAM yang lebih cepat untuk eksekusi. Chip FLASH modern yang sebenarnya terbuat dari teknologi CMOS yang diturunkan. Dan mereka biasanya dapat diprogram ulang di sirkuit. Ini sepenuhnya tergantung pada perancang sistem jika mereka ingin menempatkan informasi konfigurasi semi permanen dalam RAM yang didukung baterai, atau dalam flash yang dapat diprogram ulang - pengguna akhir atau sistem operasi pasca-boot mungkin memiliki sedikit visibilitas aktual ke dalam perbedaan.

Tetapi bahkan jika flash digunakan untuk pengaturan, masih ada biasanya akan menjadi jam waktu nyata daya rendah yang terus berjalan pada baterai.

Chris Stratton
sumber
1
Ketika CPU pertama kali dinyalakan, RAM bahkan tidak diinisialisasi (DRAM init kompleks). Yang perlu dilakukan hanyalah mengeksekusi kode di lokasi tertentu (biasanya chip BIOS lebih dari SPI, tetapi Anda dapat memprogram boot selanjutnya untuk mencari BIOS dari PCI atau LPC lama untuk alasan debugging). Satu-satunya hal yang dimasukkan ke dalam RAM adalah hal-hal seperti IVT (Interrupt Vector Table) dan kode terkait yang hanya berguna sebelum beralih dari mode nyata. Eksekusi BIOS yang sebenarnya ketika CPU booting tidak terjadi di memori. Lihat wiki.osdev.org/System_Initialization_(x86) untuk detail lebih lanjut.
hutan
1
@forest - itu tidak mungkin benar, dan sebenarnya tidak didukung oleh deskripsi yang agak luas di tautan Anda. Ini mungkin berakhir mengeksekusi dari beberapa ram cache yang digunakan kembali atau sesuatu, tetapi eksekusi langsung dari SPI tidak bekerja dengan baik, dan itu sangat mungkin untuk dihindari. Maka cukup jelas bahwa sekali sistem RAM utama naik bios akan mengeksekusi keluar dari itu - bayangan seperti itu umum bahkan pada hari-hari paralel bios EPROM.
Chris Stratton
1
Ya, begitu memori utama diinisialisasi, IVT, BDA, EBDA, dll disalin di sana. Namun sebelum itu dilaksanakan secara langsung. Itu tidak dieksekusi dalam cache (itu akan menjadi mode CAR, Cache-As-RAM, yang memerlukan inisialisasi eksplisit oleh BIOS).
hutan
1
Silakan lihat stackoverflow.com/questions/5300527/… yang menjelaskan hal ini lebih terinci. Secara khusus, bagaimana blok boot BIOS dijalankan secara langsung melalui SPI. Ini dimungkinkan dengan memetakan area BIOS ke memori (tentu saja, sebelum memori diinisialisasi, jadi seperti MMIO). Jadi itu tidak hanya mungkin benar, itu benar.
hutan
Chris Stratton, "melainkan menggunakan flash serial NOR dan mentransfer konten ke dalam RAM yang lebih cepat untuk eksekusi" Dan bagaimana tepatnya Anda membayangkan "transfer konten" ini selain menjalankan beberapa kode "data pemindahan" awal langsung dari SPI?
Ale..chenski
12

Kembali ketika PC pertama kali ditemukan, sebagian besar logika di atasnya adalah chip NMOS dan TTL yang haus daya. CMOS sangat baru dan satu-satunya sirkuit di PC yang digunakan dikaitkan dengan hal-hal yang perlu dijalankan dengan baterai ketika daya dimatikan, seperti konfigurasi RAM dan jam waktu nyata.

Saat ini, hampir semua logikanya adalah CMOS, termasuk CPU yang haus daya dan EEPROM flash yang memegang BIOS. Jadi dalam arti tertentu, pertanyaan Anda didasarkan pada premis yang tidak valid - flash EEPROM adalah CMOS. Namun, untuk alasan apa pun, istilah "CMOS" dalam PC masih mengacu hanya pada fungsi RAM dan RTC.

Jika Anda bertanya mengapa BIOS tidak disimpan dalam RAM yang mudah menguap daripada flash yang tidak mudah menguap, itu karena baterai gagal, dan menghapus BIOS akan secara efektif "merusak" komputer, membutuhkan perangkat keras khusus untuk menjalankannya kembali.

Dave Tweed
sumber
1
"Jadi dalam arti tertentu, pertanyaan Anda didasarkan pada premis yang tidak valid - flash EEPROM adalah CMOS" - Ungkapan "Program disimpan pada chip sistem BIOS, sementara data yang dapat diubah disimpan pada CMOS" agak membingungkan saya, sekarang Saya sudah mengerti.
Kais
"Jika Anda bertanya mengapa BIOS tidak disimpan dalam RAM volatil daripada flash nonvolatile, itu karena baterai gagal" Tidak, maksud saya sebaliknya - mengapa informasi pada chip CMOS tidak disimpan dalam flash BIOS.
Kais
3
@Kais karena memori flash tidak dapat ditimpa secara sewenang-wenang, dan mengelola penulisan ulang seluruh halaman memori flash memperumit masalah dengan cara yang rawan kesalahan. Juga, ada hal-hal seperti log peristiwa yang disimpan oleh beberapa BIOSen, ini disertai bahaya kerusakan pada flash Anda dan / atau berakhir dengan data yang rusak jika daya gagal pada saat yang salah. Memori EEPROM yang sebenarnya dimungkinkan - tetapi a) lambat untuk menulis, dan b) Anda memiliki baterai berdaya rendah untuk jam itu .
rackandboneman
1
... juga karena seluruh sistem dirancang sebelum flash umumnya tersedia, sehingga BIOS disimpan dalam PROM (yang menggunakan sekering untuk menentukan apakah setiap bit adalah 1 atau 0, dan hanya dapat diubah dari 1 ke 0 tetapi tidak kembali lagi) atau ROM bertopeng (yang menggunakan lapisan kawat logam yang dilapis chip untuk memprogramnya dan tidak dapat dimodifikasi sama sekali setelah pembuatan), sehingga diperlukan perangkat terpisah, dan semuanya diperlukan untuk mempertahankan kompatibilitas sejak saat itu .
Jules
8

Saya pikir Anda membingungkan dua penggunaan akronim "CMOS". Ada chip yang dibangun seluruhnya dari teknologi transistor MOS komplementer. Sebenarnya hampir semua chip saat ini dibangun dengan cara ini termasuk banyak sirkuit kontrol digital pada chip Flash.

Penggunaan CMOS lainnya telah bertahan di industri PC sejak hari-hari awal untuk merujuk pada chip yang menyimpan beberapa pengaturan dan jam waktu nyata dengan baterai yang terpasang. Kembali pada masa itu (awal tahun 80-an) sebagian besar chip besar di PC adalah teknologi NMOS dan chip logika lain-lain adalah logika transistor bipolar (TTL, LSTTL dll). Satu-satunya chip CMOS yang digunakan adalah chip RTC dan kemudian dikenal sebagai "CMOS".

Saat ini RTC bukan lagi chip terpisah pada perangkat arsitektur PC. Sebaliknya itu dibangun tepat ke dalam chipset motherboard (yang kebetulan diproduksi dengan sirkuit MOS komplementer). Jarang ada BIOS yang menggunakan RAM yang didukung baterai lama di bagian RTC chipset untuk menyimpan pengaturan. Sebaliknya BIOS menggunakan beberapa halaman perangkat penyimpanan Flash SPI untuk menyimpan pengaturannya dengan cara yang tidak mudah menguap. Karena itu ada pengaturan minimal yang hilang di PC ketika baterai habis atau terputus. Pengaturan minimal yang hilang pada penghilangan daya baterai adalah pengaturan tertentu yang mengontrol perilaku menyalakan dan mengatur ulang chipset dan bahkan tidak disimpan dalam sel RAM bertenaga baterai tetapi sebagai gantinya dalam kait flipflop daya rendah khusus yang ditenagai dari koin baterai sel.

Michael Karas
sumber
2

Lihat juga /superuser/989499/what-does-a-cmos-chip-look-like : ini memberi kami tautan praktis ke lembar data MC146818 asli .

Chip ini dipetakan dalam memori dan menyediakan lokasi 64 byte. 14 di antaranya adalah untuk clock, meninggalkan sisanya sebagai RAM tujuan umum. Seluruh chip tetap ditenagai oleh baterai saat PC mati, agar jam terus berdetak.

pjc50
sumber