왜 CMOS 기술을 사용하여 BIOS의 ROM 칩이 만들어지지 않습니까?


9

BIOS / CMOS에서 컴퓨터 하드웨어 과정을 읽은 후에도 여전히 CMOS 기술을 사용하여 BIOS의 ROM 칩이 빌드되지 않은 이유와 저장을 위해 "CMOS"라는 별도의 칩에 연결된 이유를 확인할 수 없습니다. 구성 정보.

이것은 강의 노트 에서 나온 것입니다 .

프로그램은 시스템 BIOS 칩에 저장되고 변경 가능한 데이터는 CMOS 칩에 저장됩니다

CMOS 하드웨어 그룹 : 일반적이지만 필요하지만 변경 될 수있는 하드웨어 – RAM, 하드 드라이브, 플로피 드라이브, 직렬 및 병렬 포트

BIOS가 플래시 메모리에 저장되어 있고 CMOS MOSFET 기술이 다른 구현에 비해 전력 소비가 적다는 것을 알고 있습니다.

왜 다른 저장 장치와 같이 CMOS를 사용하지 않는 것이 BIOS ROM 뿐입니 까? 정확히 장점은 무엇입니까? 왜 BIOS 구성 정보를 "CMOS 칩"대신 자체 ROM 칩에 저장할 수 없습니까?


1
CMOS에 데이터를 유지하기 위해 배터리가 필요하지 않습니까? 배터리가 방전되면 구성 및 시계 설정이 손실되는 것이지만 BIOS가 손실되면 재앙이됩니다. 마지막 문장을 편집 할 수 있습니다. 나는 당신이 무엇을 요구하는지 알 수 없습니다.
트랜지스터

1
설정이 RAM 인 동안 BIOS는 ROM입니다
Tony Stewart Sunnyskyguy EE75

1
@Kais ROM의 어떤 부분도 쓸 수 없습니다. 이는 용어의 의미와 상반됩니다. 기술 간-Eraseble Programmable ROM이 제안한 것을 가능하게하기 시작했으며 이제 회로 프로그래밍이 간단 해 졌으므로 실제로 종종 이루어집니다. 그러나 동시에 배터리에서 칩의 저전력 코너를 시계로 유지하고 일부 설정을 유지하는 것도 가능해 졌으므로 일부 시스템에서 사용되는 옵션 이기도 합니다.
Chris Stratton

2
"ROM"은 " 읽기 전용 메모리"를 의미 합니다. 그것은이다 정의에 쓸 수 없습니다. 전형적으로 실제 ROM은 금속 화 층 또는 심지어 실제 구성 트랜지스터를 커스터마이징하는 것을 포함한다. 반대로 내용을 변경할 수 있지만 RAM보다 속도 및 횟수에 더 많은 제한이있는 많은 종류의 "대부분 읽기"메모리 (PROM, EPROM, EEPROM, Flash 등)가 있습니다. 일반적으로 오늘날에는 프로세서 내부에서만 진정한 ROM을 찾을 수 있으며 (그리고 심지어 쓰기가 잠겨있는 것일 수도 있습니다) 외부 장치는 올바른 연결로 쓸 수 있습니다.
Chris Stratton

1
예를 들어, 최신 시스템에서는 직렬 NOR 플래시의 내용을 메모리로 읽고 실행하는 방법을 알고있는 프로세서 내부에 작은 ROM이있을 수 있습니다. NOR 플래시의 BIOS는 업그레이드에 노출되는 반면, 플래시에서 RAM으로 복사하여 점프하는 소형 부트 스텁은 칩 제조시 영구적으로 고정됩니다.
Chris Stratton

답변:


33

기능에 대한 구어체 용어와 구현 기술을 혼합하고 있습니다.

CMOS (Complementary Metal Oxide Semiconductor)는 N 채널 및 P 채널 전계 효과 트랜지스터를 사용하여 로직 및 관련 회로를 만드는 방법입니다. 정의 특성 중 하나는 매우 낮은 정적 전력 소비입니다. 전력은 상태를 변경할 때만 거의 사용됩니다. 결과적으로 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-사실이 아닐 수 있으며 실제로 링크에 대한 광범위한 설명으로 지원되지 않습니다. 일부 용도가 다른 캐시 램 또는 그 밖의 것에서 실행될 수 있지만 SPI에서 직접 실행하는 것은 잘 작동하지 않으므로 피할 가능성이 큽니다. 일단 메인 시스템 RAM이 가동되면 바이오스가 그 기능을 수행 할 것임이 분명합니다. 이러한 섀도 잉은 병렬 EPROM 바이오스 시대에도 일반적이었습니다.
Chris Stratton

1
예, 메인 메모리가 초기화되면 IVT, BDA, EBDA 등이 그 위에 복사됩니다. 그러나 그 전에는 직접 실행됩니다. 캐시에서 실행되지 않습니다 (CAR 모드, Cache-As-RAM, BIOS에 의해 명시 적으로 초기화해야 함).

1
이에 대해 자세히 설명하는 stackoverflow.com/questions/5300527/… 를 참조하십시오 . 특히 BIOS 부팅 블록이 SPI를 통해 직접 실행되는 방식. 이것은 BIOS의 해당 영역을 메모리에 매핑하여 가능합니다 (물론 메모리가 실제로 초기화되기 전에 MMIO와 같습니다). 사실 일뿐 아니라 사실입니다.

Chris Stratton은 "직렬 NOR 플래시를 사용하고 실행을 위해 더 빠른 RAM으로 내용을 전송합니다" 그리고 SPI에서 직접 "데이터 이동"코드를 실행하는 것 외에이 "내용 전송"을 정확히 어떻게 계획하고 있습니까?
Ale..chenski

12

PC가 처음 발명되었을 때 대부분의 로직은 전력이 부족한 NMOS와 TTL 칩이었습니다. CMOS는 매우 새롭고 PC를 사용하는 유일한 회로는 구성 RAM 및 실시간 클록과 같이 전원이 꺼 졌을 때 배터리로 실행해야하는 것과 관련이있었습니다.

요즘에는 거의 모든 로직이 전력 소모량이 많은 CPU와 BIOS를 보유한 플래시 EEPROM을 포함한 CMOS입니다. 어떤 의미에서, 귀하의 질문은 잘못된 전제에 기초합니다. 플래시 EEPROM CMOS입니다. 그러나 어떤 이유로 든 PC에서 "CMOS"라는 용어는 여전히 RAM 및 RTC 기능만을 나타냅니다.

왜 BIOS가 비 휘발성 플래시가 아닌 휘발성 RAM에 저장되어 있지 않은지 묻는다면 배터리가 고장 나서 BIOS를 지우면 컴퓨터가 효과적으로 "차단"되어 다시 특수한 하드웨어가 필요하기 때문입니다.


1
"어떤 의미에서 귀하의 질문은 잘못된 전제에 기초하고 있습니다-플래시 EEPROM은 CMOS입니다"- "프로그램은 시스템 BIOS 칩에 저장되고 변경 가능한 데이터는 CMOS에 저장됩니다"라는 문구가 약간 혼란 스러웠습니다. 이해했습니다.
Kais

"BIOS가 비 휘발성 플래시가 아닌 휘발성 RAM에 저장되어 있지 않은 이유를 묻는다면 배터리가 고장 났기 때문입니다."반대의 의미입니다. CMOS 칩의 정보가 BIOS 플래시에 저장되지 않는 이유입니다.
Kais

3
@Kais 플래시 메모리를 임의로 덮어 쓸 수 없기 때문에 플래시 메모리의 전체 페이지를 다시 쓰는 것을 관리하면 오류가 발생하기 쉽습니다. 또한 일부 BIOS에 의해 저장된 이벤트 로그와 같은 것들이 있습니다. 이것은 잘못된 순간에 정전이 발생하면 플래시가 마모되거나 데이터가 손상 될 위험이 있습니다. 진정한 EEPROM 메모리가 가능하지만 a) 쓰기 속도가 느리고 b) 어쨌든 시계를위한 저전력 배터리가 있습니다.
rackandboneman

1
... 또한 전체 시스템이 플래시를 일반적으로 사용하기 전에 설계되었으므로 BIOS는 PROM (퓨즈를 사용하여 각 비트가 1 또는 0인지 여부를 결정하고 1에서 0으로 만 변경할 수는 있지만 어느 쪽이든)에 저장되었습니다. 다시 다시) 또는 마스킹 된 ROM (칩 위에 오버레이 된 금속 와이어 층을 사용하여 칩을 프로그래밍하고 제조 후에는 전혀 수정할 수 없음)이므로 별도의 장치가 필요했으며 그 이후로 이전 버전과의 호환성을 유지하기 위해 모든 것이 필요했습니다 .
Jules

8

"CMOS"의 두 가지 사용법을 혼동하고 있다고 생각합니다. 보완적인 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.