shopkeeper/korean_wiki_content_only_120125 huggingface dataset:
부트 로더는 특이한 제약에 직면할 수 있는데, 특히 크기에 있어서 그렇다. 예를 들어, IBM PC 및 호환 기종에서 부팅 코드는 MBR과 PBR에 들어가야 하며, 이는 단일 섹터로 제한된다. IBM 시스템/360에서는 크기가 IPL 매체(예: 천공 카드 크기, 트랙 크기)에 의해 제한된다.
이러한 제약이 있는 시스템에서 RAM에 로드되는 첫 번째 프로그램은 운영 체제를 로드하기에 충분히 크지 않을 수 있으며, 대신 더 큰 다른 프로그램을 로드해야 한다. RAM에 로드되는 첫 번째 프로그램을 1단계 부트 로더(first-stage boot loader)라고 하며, 이 프로그램이 로드하는 프로그램을 2단계 부트 로더(second-stage boot loader)라고 한다. 많은 임베디드 CPU에서, 종종 0단계 부트 로더라고 불리는 CPU 내장 부트 ROM은 1단계 부트 로더를 찾아 로드할 수 있다.
1단계 부트 로더.
1단계(하드웨어 초기화 단계) 부트 로더의 예로는 바이오스, UEFI, 코어부트, Libreboot 및 Das U-Boot가 있다. IBM PC에서 마스터 부트 레코드 (MBR) 및 파티션 부트 레코드 (PBR)의 부트 로더는 최소 32KB (나중에는 64KB)의 시스템 메모리를 요구하고 원래 8088/8086 프로세서가 지원하는 명령만 사용하도록 코딩되었다.
2단계 부트 로더.
shim, GNU GRUB, rEFInd, BOOTMGR, Syslinux, 그리고 NTLDR과 같은 2단계(OS 초기화 단계) 부트 로더는 그 자체가 운영 체제는 아니지만, 운영 체제를 적절히 로드하고 실행을 전달할 수 있다. 운영 체제는 그 후 자체적으로 초기화하고 추가 장치 드라이버를 로드할 수 있다. 2단계 부트 로더는 자체 작동을 위한 드라이버가 필요하지 않지만, 대신 바이오스, UEFI 또는 오픈 펌웨어와 같은 시스템 펌웨어에서 제공하는 일반적인 저장소 접근 방법을 사용할 수 있으며, 일반적으로 제한된 하드웨어 기능과 낮은 성능을 갖는다.
많은 부트 로더(GNU GRUB, rEFInd, Windows의 BOOTMGR, Syslinux, Windows NT/2000/XP의 NTLDR 등)는 사용자에게 여러 부팅 선택지를 제공하도록 구성할 수 있다. 이러한 선택지에는 다른 운영 체제(듀얼 또는 멀티 부팅을 위한 다른 파티션 또는 드라이브), 동일한 운영 체제의 다른 버전(새 버전에서 예상치 못한 문제가 발생할 경우), 다른 운영 체제 로딩 옵션(예: 복구 또는 안전 모드로 부팅), 그리고 운영 체제 없이 작동할 수 있는 일부 독립 실행형 프로그램(예: 메모리 테스터(memtest86+)), 기본 셸(GNU GRUB에서와 같이), 또는 심지어 게임(List of PC Booter games)이 포함될 수 있다. 일부 부트 로더는 다른 부트 로더를 로드할 수도 있다. 예를 들어, GRUB은 Windows를 직접 로드하는 대신 BOOTMGR을 로드한다. 일반적으로 기본 선택지는 시간 지연과 함께 미리 선택되며, 이 시간 동안 사용자는 키를 눌러 선택지를 변경할 수 있다. 이 지연 후에는 기본 선택지가 자동으로 실행되어 상호 작용 없이 정상적인 부팅이 이루어질 수 있다.
부팅 프로세스는 컴퓨터가 사용자와 상호작용할 준비가 되거나, 운영체제가 시스템 프로그램이나 응용 프로그램을 실행할 수 있을 때 완료된 것으로 간주될 수 있다.
임베디드 및 다단계 부트 로더.
많은 임베디드 시스템은 즉시 부팅되어야 한다. 예를 들어, 디지털 텔레비전이나 GPS 내비게이션 장치가 시작되기까지 1분씩 기다리는 것은 일반적으로 용납되지 않는다. 따라서 이러한 장치는 ROM 또는 플래시 메모리에 소프트웨어 시스템을 가지고 있어 장치가 즉시 작동을 시작할 수 있다. 장치 제작 시 로딩이 미리 계산되어 ROM에 저장될 수 있기 때문에 로딩이 거의 또는 전혀 필요하지 않다.
크고 복잡한 시스템은 운영체제 및 다른 프로그램이 로드되고 실행될 준비가 될 때까지 여러 단계로 진행되는 부팅 절차를 가질 수 있다. 운영체제는 시작되거나 중지되지 않는 것처럼 설계되므로, 부트 로더는 운영체제를 로드하고, 그 시스템 내의 단순한 프로세스로 자신을 구성한 다음, 운영체제로 제어를 돌이킬 수 없게 전환할 수 있다. 그러면 부트 로더는 다른 프로세스와 마찬가지로 정상적으로 종료된다.
네트워크 부팅.
대부분의 컴퓨터는 컴퓨터 네트워크를 통해서도 부팅이 가능하다. 이 시나리오에서는 운영체제가 서버의 디스크에 저장되며, 특정 부분이 단순 파일 전송 프로토콜 (TFTP)과 같은 간단한 프로토콜을 사용하여 클라이언트로 전송된다. 이러한 부분이 전송된 후에는 운영체제가 부팅 프로세스의 제어를 넘겨받는다.
2단계 부트 로더와 마찬가지로, 네트워크 부팅은 네트워크 인터페이스의 부트 ROM에서 제공하는 일반 네트워크 액세스 방법을 사용하여 시작된다. 이 ROM에는 일반적으로 PXE 이미지가 포함되어 있다. 드라이버는 필요하지 않지만, 운영 체제 커널과 드라이버가 전송되어 시작될 때까지 시스템 기능이 제한된다. 결과적으로, ROM 기반 부팅이 완료되면 네트워크 인터페이스를 사용할 수 없는 운영 체제로 네트워크 부팅하는 것이 전적으로 가능하다.
IBM 호환 개인용 컴퓨터 (PC).
부팅 장치.
부팅 장치는 운영체제가 로드되는 저장 장치이다. 최신 PC의 UEFI 또는 바이오스 펌웨어는 다양한 장치에서 부팅을 지원하는데, 일반적으로 GPT 또는 MBR을 통한 로컬 솔리드 스테이트 드라이브 또는 하드 디스크 드라이브, El Torito를 사용하는 광학 디스크 드라이브, USB 대용량 저장 장치 (USB 플래시 드라이브, 메모리 카드 리더, USB 하드 디스크 드라이브, USB 광학 디스크 드라이브, USB 솔리드 스테이트 드라이브 등), 또는 PXE를 사용하는 네트워크 인터페이스 카드 등이 있다. 구식의 덜 일반적인 BIOS 부팅 가능 장치로는 플로피 디스크 드라이브, 집 드라이브, LS-120 드라이브 등이 있다.
일반적으로 시스템 펌웨어(UEFI 또는 BIOS)는 사용자가 부팅 순서를 구성할 수 있도록 한다. 만약 부팅 순서가 "첫째, DVD 드라이브; 둘째, 하드 디스크 드라이브"로 설정되어 있다면, 펌웨어는 DVD 드라이브에서 부팅을 시도하고 (예: 드라이브에 DVD가 없어서) 실패하면 로컬 하드 디스크 드라이브에서 부팅을 시도한다.
예를 들어, 하드 드라이브에 Windows가 설치된 PC에서 사용자는 위에서 주어진 부팅 순서를 설정한 다음 리눅스 라이브 CD를 삽입하여 하드 드라이브에 운영 체제를 설치할 필요 없이 리눅스를 시험해 볼 수 있다. 이는 듀얼 부팅의 한 예인데, 사용자는 컴퓨터가 POST(Power-On Self-Test)를 수행한 후 시작할 운영 체제를 선택한다. 이 듀얼 부팅 예시에서 사용자는 컴퓨터에서 DVD를 삽입하거나 제거하여 선택하지만, 선택된 장치의 부트 매니저 메뉴에서 선택하거나, 컴퓨터 키보드를 사용하여 바이오스 또는 UEFI 부팅 메뉴에서 선택하거나, 또는 둘 다 사용하는 것이 더 일반적이다. 부팅 메뉴는 일반적으로 POST 중에 또는 키를 눌러 진입하며, BIOS 설정은 일반적으로 POST 중에 또는 키를 눌러 진입한다.
사용자가 인터넷 접속과 같은 다양한 간단한 작업을 위해 일반적으로 리눅스의 변형인 OS로 빠른 부팅을 가능하게 하는 몇 가지 장치가 있다. 예를 들어 Splashtop과 Latitude ON이 있다.
부팅 순서.
시작 시 IBM 호환 PC의 X86 CPU는 리얼 모드에서 리셋 벡터(세그먼트:오프셋 의 물리적 메모리 주소와 32비트 및 64비트 x86 프로세서의 )에 있는 명령어를 실행하며, 이는 일반적으로 ROM 내의 펌웨어(UEFI 또는 바이오스) 진입점을 가리킨다. 이 메모리 위치는 일반적으로 실행을 펌웨어(UEFI 또는 바이오스) 시작 프로그램의 위치로 전송하는 점프 명령어를 포함한다. 이 프로그램은 POST(Power-On Self-Test)를 실행하여 주기억장치 (DRAM), PCI 버스 및 PCI 장치(내장 옵션 롬 실행 포함)와 같은 필수 장치를 확인하고 초기화한다. 가장 복잡한 단계 중 하나는 SPD를 통해 DRAM을 설정하는 것인데, 이 시점에서는 메모리가 매우 제한적이기 때문에 더욱 복잡하다.
필수 하드웨어 초기화 후, 펌웨어(UEFI 또는 바이오스)는 미리 구성된 비휘발성 메모리 장치 목록("부팅 장치 순서")을 순회하며 부팅 가능한 장치를 찾을 때까지 탐색한다.
BIOS.
바이오스는 부팅 가능한 장치를 찾으면 부트 섹터를 선형 주소 (일반적으로 세그먼트:오프셋 :이지만, 일부 BIOS는 잘못하여 :를 사용한다)로 로드하고 부팅 코드로 실행을 전달한다. 하드 디스크의 경우 이를 마스터 부트 레코드 (MBR)라고 한다. 일반적인 MBR 코드는 MBR의 파티션 테이블에서 부팅 가능으로 설정된 파티션을 확인한다. 활성 파티션이 발견되면 MBR 코드는 해당 파티션에서 볼륨 부트 레코드 (VBR)라고 알려진 부트 섹터 코드를 로드하고 실행한다. MBR 부팅 코드는 종종 운영 체제에 특화된다.
부팅 가능한 MBR 장치는 읽을 수 있는 장치이며, 첫 번째 섹터의 마지막 두 바이트에 리틀 엔디언 워드 (디스크에는 바이트 시퀀스 , 로 존재하며, 이는 MBR 부팅 서명으로도 알려져 있다)가 포함되어 있거나, 해당 섹터 내의 코드가 x86 PC에서 실행 가능하다는 것이 다른 방식으로 확립된 장치로 정의된다.
부트 섹터 코드는 1단계 부트 로더이다. 이는 고정 디스크 및 이동식 드라이브에 위치하며, 기본 64바이트 파티션 테이블과 4개의 파티션 항목, 그리고 적절한 부트 로더를 위해 바이오스가 요구하는 2바이트 MBR 부팅 서명을 위한 공간을 남기기 위해 마스터 부트 레코드의 첫 446 바이트 내에 들어가야 한다. 추가 기능(예: 16바이트씩 최대 16개의 파티션 항목), MBR 디스크 서명 (6바이트), MBR 디스크 타임스탬프 (6바이트), Advanced Active Partition (18바이트) 또는 특수 멀티 부팅 로더가 일부 환경에서 지원되어야 하는 경우에는 더 적은 공간이 필요할 수 있다. 플로피 및 슈퍼플로피 볼륨 부트 레코드에서, FAT12 및 FAT16 볼륨에서는 DOS 4.0부터 확장 바이오스 파라미터 블록에 최대 59바이트가 할당되며, DOS 7.1과 함께 도입된 FAT32 EBPB는 심지어 87바이트를 요구하므로, 섹터 크기가 512바이트라고 가정할 때 부트 로더를 위해 423바이트만 남는다. 따라서 마이크로소프트 부트 섹터는 전통적으로 부팅 프로세스에 특정 제약을 두었는데, 예를 들어 부팅 파일은 파일 시스템의 루트 디렉토리에 고정된 위치에 연속적인 섹터로 저장되어야 했다. 이 조건은 codice_1 명령에 의해 처리되었으며, DOS의 후기 버전에서 약간 완화되었다. 부트 로더는 그 다음 파일의 처음 세 섹터를 메모리로 로드할 수 있었는데, 이는 파일의 나머지를 메모리로 로드할 수 있는 또 다른 내장 부트 로더를 포함했다. 마이크로소프트가 LBA 및 FAT32 지원을 추가했을 때, 그들은 크기상의 이유로 두 개의 물리적 섹터에 걸쳐 386 명령어를 사용하는 부트 로더로 전환했다. 동시에 다른 벤더들은 최소한의 사용 가능한 메모리(32KB) 및 프로세서 지원()에 대한 원래 제약을 완화하지 않고도 단일 부트 섹터에 훨씬 더 많은 기능을 집어넣을 수 있었다. 예를 들어, DR-DOS 부트 섹터는 FAT12, FAT16 및 FAT32 파일 시스템에서 부팅 파일을 찾고, 파일이 고정된 위치에 연속적인 섹터로 저장되어 있지 않더라도 CHS 또는 LBA를 통해 전체를 메모리로 로드할 수 있다.
VBR은 종종 OS별로 다르지만, 주요 기능은 활성 파티션에서 운영체제 부트 로더 파일(예: 또는 )을 로드하고 실행하는 것이며, 이것이 2단계 부트 로더이다. 그런 다음 부트 로더는 저장 장치에서 OS 커널을 로드한다.
활성 파티션이 없거나 활성 파티션의 부트 섹터가 유효하지 않으면 MBR은 보조 부트 로더를 로드할 수 있으며, 이 로더는 파티션을 선택하고 (종종 사용자 입력을 통해) 해당 부트 섹터를 로드하여 일반적으로 해당 운영 체제 커널을 로드한다. 어떤 경우에는 MBR이 활성 파티션을 부팅하기 전에 보조 부트 로더를 로드하려고 시도할 수도 있다. 모든 시도가 실패하면 INT 18h 바이오스 인터럽트 호출을 발행하고 (INT 18h가 반환할 경우를 대비하여 INT 19h를 이어서 발행), 바이오스로 제어를 돌려준다. 그러면 BIOS는 다른 장치에서 부팅을 시도하거나 네트워크를 통한 원격 부팅을 시도한다.
UEFI.
많은 최신 시스템(인텔 맥 및 최신 개인용 컴퓨터)은 UEFI를 사용한다.
바이오스와 달리 UEFI (CSM을 통한 레거시 부팅 아님)는 부트 섹터에 의존하지 않고, USB 디스크 또는 EFI 시스템 파티션에 있는 부트 로더(EFI 응용 프로그램 파일)를 직접 로드한다. 그리고 OS 커널은 부트 로더에 의해 로드된다.
SoCs, 임베디드 시스템, 마이크로컨트롤러 및 FPGA.
많은 최신 CPU, SoC 및 마이크로컨트롤러(예: TI OMAP) 또는 때로는 디지털 신호 처리 장치 (DSP)에도 부트 ROM이 실리콘에 직접 통합되어 있어, 이러한 프로세서는 자체적으로 간단한 부팅 시퀀스를 수행하고 NAND 플래시 또는 eMMC와 같은 부팅 소스에서 부팅 프로그램(펌웨어 또는 소프트웨어)을 로드할 수 있다. 이러한 장치를 처리하는 데 필요한 모든 논리를 하드웨어에 직접 연결하는 것은 어렵기 때문에, 이러한 시나리오에서는 통합 부트 ROM이 대신 사용된다. 또한, 부트 ROM은 UART, SPI, USB 등과 같은 직렬 인터페이스를 통해 부트 로더 또는 진단 프로그램을 로드할 수 있다. 이 기능은 종종 시스템 복구 목적으로 사용되거나, 비휘발성 메모리에 소프트웨어가 아직 없는 경우 초기 비휘발성 메모리 프로그래밍에 사용될 수도 있다. 많은 최신 마이크로컨트롤러(예: USB 플래시 드라이브의 플래시 메모리 컨트롤러)는 펌웨어 ROM이 실리콘에 직접 통합되어 있다.
일부 임베디드 시스템 설계에는 중간 부팅 시퀀스 단계가 포함될 수도 있다. 예를 들어, Das U-Boot는 두 단계로 나뉠 수 있다. 플랫폼은 U-Boot의 간소화된 버전인 작은 SPL(Secondary Program Loader)을 로드하고, SPL은 일부 초기 하드웨어 구성(예: RAM으로 CPU 캐시를 사용한 DRAM 초기화)을 수행하고 더 크고 완전한 U-Boot 버전을 로드한다. 일부 CPU 및 SoC는 부팅 과정에서 CPU 캐시를 RAM으로 사용하지 않을 수 있으며, 비용 절감을 위해 통합된 부팅 프로세서를 사용하여 일부 하드웨어 구성을 수행한다.
JTAG과 같은 하드웨어 디버그 인터페이스를 사용하여 시스템을 제어하는 것도 가능하다. 이러한 인터페이스는 프로세서 코어에 비휘발성 메모리를 프로그래밍하는 데 필요한 작업을 수행하도록 지시하여 부팅 가능한 비휘발성 메모리(예: 플래시)에 부트 로더 프로그램을 기록하는 데 사용될 수 있다. 또는 디버그 인터페이스를 사용하여 일부 진단 또는 부팅 코드를 RAM에 업로드한 다음 프로세서 코어를 시작하고 업로드된 코드를 실행하도록 지시할 수 있다. 이를 통해 예를 들어, 지원되는 부팅 장치에 소프트웨어가 남아 있지 않고 프로세서에 통합된 부트 ROM이 없는 임베디드 시스템을 복구할 수 있다. JTAG는 표준이자 인기 있는 인터페이스이며, 많은 CPU, 마이크로컨트롤러 및 기타 장치가 JTAG 인터페이스를 사용하여 제조된다().
일부 마이크로컨트롤러는 시스템을 임의로 제어하거나 코드를 직접 실행할 수는 없지만, 간단한 프로토콜을 통해 부팅 가능한 비휘발성 메모리(예: 플래시 메모리)에 부팅 코드를 삽입할 수 있는 특수 하드웨어 인터페이스를 제공한다. 그런 다음 제조 단계에서 이러한 인터페이스는 부팅 코드(및 기타 코드)를 비휘발성 메모리에 주입하는 데 사용된다. 시스템 재설정 후, 마이크로컨트롤러는 일반적인 프로세서가 ROM을 사용하여 부팅하는 것처럼 비휘발성 메모리에 프로그램된 코드를 실행하기 시작한다. 가장 주목할 만한 것은 아트멜 AVR 마이크로컨트롤러 및 기타 마이크로컨트롤러에서도 이 기술이 사용된다는 것이다. 많은 경우 이러한 인터페이스는 하드와이어드 로직으로 구현된다. 다른 경우에는 온칩 부트 ROM에 통합된 소프트웨어가 GPIO 핀에서 실행되어 이러한 인터페이스를 생성할 수 있다.
대부분의 DSP는 직렬 모드 부팅과 병렬 모드 부팅(예: 호스트 포트 인터페이스(HPI 부팅))을 가지고 있다.
DSP의 경우 종종 시스템 설계에 두 번째 마이크로프로세서 또는 마이크로컨트롤러가 존재하며, 이는 전체 시스템 동작, 인터럽트 처리, 외부 이벤트 처리, 사용자 인터페이스 등을 담당하는 반면, DSP는 신호 처리 작업에만 전념한다. 이러한 시스템에서 DSP는 호스트 프로세서라고도 불리는 다른 프로세서에 의해 부팅될 수 있다(호스트 포트의 이름을 따서). 이러한 프로세서는 또한 종종 마스터라고 불리는데, 이는 일반적으로 자체 메모리에서 먼저 부팅한 다음, DSP 부팅을 포함한 전체 시스템 동작을 제어하고, 그 다음 DSP의 동작을 제어하기 때문이다. DSP는 종종 자체 부팅 메모리가 없으므로 호스트 프로세서가 필요한 코드를 공급하는 데 의존한다. 이러한 설계의 가장 주목할 만한 시스템은 휴대폰, 모뎀, 오디오 및 비디오 플레이어 등으로, DSP와 CPU/마이크로컨트롤러가 함께 존재한다.
많은 FPGA 칩은 전원을 켜면 외부 구성 ROM(일반적으로 직렬 EEPROM)에서 구성을 로드한다.
부팅 과정의 보안을 강화하기 위한 다양한 조치가 구현되었다. 그 중 일부는 의무적이며, 다른 일부는 최종 사용자가 비활성화하거나 활성화할 수 있다. 전통적으로 부팅은 암호학 사용을 포함하지 않았다. 보안은 제조사가 승인할 수도 있고 안 할 수도 있는 부트 로더 잠금 해제를 통해 우회될 수 있다. 최신 부트 로더는 동시성을 활용하는데, 이는 여러 프로세서 코어와 스레드를 동시에 실행할 수 있음을 의미하며, 이는 보안 부팅에 추가적인 복잡성을 더한다.
매튜 가렛은 부팅 보안이 정당한 목표를 가지고 있지만, 그 과정에서 사용자에게 적대적인 기본값을 선택한다고 주장했다.
부트루프.
동시적이고 분산된 시스템 오브 시스템즈를 디버그할 때, 부트루프(boot loop 또는 boot-loop라고도 씀)는 컴퓨팅 장치에서 발생하는 오류 상태의 진단 조건이다. 이러한 장치들이 부팅 프로세스를 완료하지 못하고 부팅 시퀀스가 끝나기 전에 재시작을 반복하면, 재시작이 사용자가 일반 인터페이스에 접근하는 것을 막을 수 있다.
오류 상태 감지.
시스템은 복구가 필요한 시점 이전에 명시적인 부트루프나 블루스크린과 같은 오류 상태를 나타낼 수 있다. 오류 상태를 감지하려면 분산 시스템의 실시간 작동을 위한 분산 이벤트 저장 및 스트림 처리 플랫폼이 필요할 수 있다.
오류 상태 복구.
오류 상태는 부트루프를 유발할 수 있으며, 이 상태는 이전에 정상적으로 작동하던 설정에서 잘못된 구성으로 인해 발생할 수 있다. 그 오류 상태에서 복구를 시도하면 재부팅이 시작되어 알려진 정상 상태로 돌아가려고 시도한다. 예를 들어, Windows OS 작업에서 복구 절차는 세 번 재부팅하는 것이었으며, 재부팅을 통해 사용 가능한 메뉴로 돌아가야 했다.
복구 정책.
복구는 SAML을 통해 지정될 수 있으며, 이는 일부 애플리케이션에 대한 SSO도 구현할 수 있다. 제로 트러스트 보안 모델에서는 SSO 세션에서 식별, 권한 부여, 인증이 분리된 관심사이다. 사이트 복구가 필요하다고 표시될 때(즉, 공항 터미널 화면에 블루스크린이 표시될 때)&lt;efn|name=crowdstrikeBootloop}} 상황을 해결하기 위해 현장 방문이 필요할 수 있다.
메인보드(), 마더보드(), 주회로 기판(), 주 기판(), 플레이너 보드() 또는 시스템 보드()는 범용 컴퓨터 및 기타 확장 가능한 시스템의 주요 인쇄 회로 기판(PCB)이다. 이는 중앙 처리 장치(CPU) 및 주기억장치와 같은 시스템의 주요 전자 부품 간의 통신을 유지하고 허용하며, 다른 주변기기를 위한 커넥터를 제공한다.
백플레인과 달리, 메인보드는 일반적으로 CPU, 칩셋의 입출력 및 메모리 컨트롤러, 인터페이스 (컴퓨팅) 커넥터, 그리고 일반적인 용도를 위해 통합된 다른 구성 요소와 같은 중요한 서브시스템을 포함한다.
옥스포드 영어사전은 '마더보드'라는 단어의 기원을 1965년으로 거슬러 올라가며, 그 가장 초기에 발견된 증명은 잡지 일렉트로닉스에 실렸다고 한다. 이 용어는 컴퓨터 시스템에서 "모든 보드의 어머니"로서, 부착된 부품들에 비해 그 중요성과 크기를 암시한다.
1980년대부터 마더보드에 대한 여러 성 중립적 대안들이 생겨났다. 여기에는 메인보드, 시스템 보드, 논리 보드, 베이스보드, 모보 등이 포함된다. 시스템 보드는 IBM이 IBM PC 및 그 파생 모델(IBM PS/2 라인의 Model 80과 같은 고급 모델은 제외, 이 모델의 경우 '플래너'라는 용어를 선호)에 대한 문서에서 사용했다. 논리 보드는 주로 애플이 애플 II 및 맥 (컴퓨터)을 포함한 자사 컴퓨터 문서에서 사용한다. 베이스보드는 인텔이 기술 매뉴얼에서 사용하지만, 때로는 마더보드라는 단어를 상호 교환적으로 사용하기도 한다. 모보는 1990년대에 열정적인 컴퓨터 제작자들이 만들어낸 마더보드의 속어 줄임말이다.
메인보드라는 용어는 때때로 레이저 프린터, 텔레비전 세트, 세탁기, 휴대 전화 및 제한된 확장 기능을 가진 기타 임베디드 시스템과 같이 추가 확장이나 기능이 없는 단일 보드 장치를 설명하는 데 사용된다.
마이크로프로세서의 발명 이전에 컴퓨터의 중앙 처리 장치(CPU)는 여러 회로 기판으로 구성되어 카드 케이지 케이스에 들어 있었으며, 구성 요소들은 상호 연결된 소켓 세트가 포함된 백플레인을 통해 연결되어 있었다. 매우 오래된 설계에서는 구리선이 카드 커넥터 핀 간의 개별 연결이었지만, 곧 인쇄 회로 기판이 표준 관행이 되었다. 중앙 처리 장치(CPU), 주기억장치, 주변기기는 개별 인쇄 회로 기판에 장착되어 백플레인에 꽂혔다.
초기 마이크로프로세서 기반 시스템에서는 CPU와 일부 지원 회로가 단일 CPU 보드에 장착되었고, 메모리와 주변 장치는 추가 보드에 장착되어 모두 백플레인에 연결되었다. 1970년대의 유비쿼터스 S-100 버스가 이러한 유형의 백플레인 시스템의 예이다.
1980년대에 가장 인기 있었던 컴퓨터들, 예를 들어 애플 II와 IBM PC는 회로도와 기타 문서가 공개되어 빠른 역공학과 타사 대체 메인보드의 제작이 가능했다. 주로 원래 모델과 호환되는 새로운 컴퓨터를 만드는 데 사용되었지만, 많은 메인보드는 추가적인 성능이나 다른 기능을 제공했으며 제조업체의 원래 장비를 업그레이드하는 데 사용되기도 했다.
1980년대 후반부터 1990년대 초반까지, 점점 더 많은 주변 장치 기능을 메인보드에 통합하는 것이 경제적이게 되었다. 1980년대 후반에 개인용 컴퓨터 메인보드는 저속 주변기기를 지원할 수 있는 단일 집적 회로(일명 슈퍼 I/O 칩)를 포함하기 시작했다: PS/2 단자, 컴퓨터 자판, 마우스, 플로피 디스크 드라이브, 직렬 포트 및 병렬 포트. 1990년대 후반에는 많은 개인용 컴퓨터 메인보드에 소비자용 임베디드 오디오, 비디오, 저장 및 네트워킹 기능이 확장 카드 없이도 포함되었다. 3차원 컴퓨터 그래픽스 게임 및 컴퓨터 그래픽스를 위한 고급 시스템은 일반적으로 그래픽 카드만 별도의 구성 요소로 유지했다. 비즈니스 PC, 워크스테이션, 서버는 보다 강력한 기능이나 더 빠른 속도를 위해 확장 카드가 필요할 가능성이 높았다. 이러한 시스템은 종종 내장 구성 요소가 더 적었다.
1990년대에 개발된 랩톱 및 노트북 컴퓨터는 가장 일반적인 주변기기를 통합했다. 이는 업그레이드 가능한 구성 요소가 없는 메인보드를 포함하는 경우도 있었으며, 이는 2000년대 이후 더 작은 시스템(예: 태블릿 컴퓨터 및 넷북)이 도입되면서 계속되는 추세였다. 주기억장치, 마이크로프로세서, 네트워크 인터페이스 컨트롤러, 전원 및 저장 장치가 일부 시스템에 통합되었다.
메인보드는 시스템의 다른 구성 요소들이 통신할 수 있는 전기적 연결을 제공한다. 백플레인과는 달리, 메인보드는 중앙 처리 장치도 포함하며 다른 서브시스템과 장치들을 호스팅한다.
일반적인 데스크톱 컴퓨터는 마이크로프로세서, 주기억장치, 그리고 다른 필수 구성 요소들이 메인보드에 연결되어 있다. 외부 저장 장치, 그래픽 카드 및 사운드 카드를 위한 컨트롤러, 그리고 주변기기와 같은 다른 구성 요소들은 플러그인 카드나 케이블을 통해 메인보드에 부착될 수 있다. 최신 마이크로컴퓨터에서는 이러한 주변기기 중 일부를 메인보드 자체에 통합하는 것이 점점 더 일반적이다.
메인보드의 중요한 구성 요소는 마이크로프로세서의 지원 칩셋으로, CPU와 다양한 버스 (컴퓨팅) 및 외부 구성 요소 간의 지원 인터페이스를 제공한다. 이 칩셋은 어느 정도 메인보드의 특징과 기능을 결정한다.
현대적인 메인보드는 다음을 포함한다:
또한, 거의 모든 메인보드는 마우스 및 컴퓨터 자판과 같은 일반적으로 사용되는 입력 장치를 지원하기 위한 논리와 USB용 커넥터를 포함한다. 애플 II 및 IBM PC와 같은 초기 개인용 컴퓨터는 메인보드에 이러한 최소한의 주변기기 지원만을 포함했다. 비디오 인터페이스 하드웨어 또한 가끔 메인보드에 통합되었다. 예를 들어, 애플 II에서 그랬다. IBM PC 호환기종 컴퓨터에서는 IBM PCjr와 같이 훨씬 덜 일반적이었다. 디스크 컨트롤러 및 직렬 포트와 같은 추가 주변기기는 확장 카드로 제공되었다.
고속 컴퓨터 CPU 및 구성 요소의 높은 열 설계 전력을 고려할 때, 최신 메인보드는 거의 항상 히트 싱크와 컴퓨터 팬 장착 지점을 포함하여 과도한 열을 분산시킨다.
메인보드는 다양한 크기와 모양으로 생산되며, 이를 폼 팩터라고 부른다. 일부 폼 팩터는 특정 컴퓨터 제조업체에 한정된다. 그러나 IBM PC 호환기종 시스템에 사용되는 메인보드는 다양한 컴퓨터 케이스 크기에 맞게 설계되었다. , 대부분의 데스크톱 컴퓨터 메인보드는 ATX 표준 폼 팩터를 사용한다. 이는 맥 (컴퓨터) 및 썬 마이크로시스템즈 컴퓨터에서도 마찬가지인데, 이들은 상용 부품으로 제작되지 않았다. 케이스의 메인보드와 전원 공급 장치 (컴퓨터)(PSU) 폼 팩터는 모두 일치해야 하지만, 같은 계열의 일부 더 작은 폼 팩터 메인보드는 더 큰 케이스에 맞을 수 있다. 예를 들어, ATX 케이스는 일반적으로 마이크로ATX 메인보드를 수용할 수 있다. 랩톱 컴퓨터는 일반적으로 고도로 통합되고 소형화된 맞춤형 메인보드를 사용한다. 이것이 랩톱 컴퓨터가 업그레이드하기 어렵고 수리 비용이 비싼 이유 중 하나이다. 종종 랩톱 구성 요소 중 하나의 고장은 전체 메인보드의 교체를 필요로 하며, 이는 일반적으로 데스크톱 메인보드보다 더 비싸다.
CPU 소켓.
CPU 소켓(중앙 처리 장치) 또는 슬롯은 인쇄 회로 기판(PCB)에 부착되어 CPU(또는 마이크로프로세서)를 장착하도록 설계된 전기 부품이다. 이는 매우 많은 핀 수를 위해 설계된 특수 유형의 집적 회로 소켓이다. CPU 소켓은 CPU를 물리적으로 지지하고, 히트 싱크를 지지하며, 교체를 용이하게 하고(비용 절감 효과도 있음), 가장 중요하게는 CPU와 PCB 모두와 전기적 인터페이스를 형성하는 등 다양한 기능을 제공한다. 메인보드의 CPU 소켓은 대부분의 데스크톱 및 서버 컴퓨터에서 가장 흔히 발견되며(랩톱은 일반적으로 표면 실장 CPU를 사용함), 특히 인텔 x86 아키텍처 기반의 시스템에서 그러하다. CPU 소켓 유형과 메인보드 칩셋은 CPU 시리즈와 속도를 지원해야 한다.
통합 주변 장치.
집적 회로의 비용과 크기가 꾸준히 감소함에 따라, 이제 많은 주변기기를 메인보드에 통합할 수 있게 되었다. 하나의 인쇄 회로 기판에 많은 기능을 결합함으로써 시스템의 물리적 크기와 총 비용을 줄일 수 있다. 따라서 고도로 통합된 메인보드는 스몰 폼 팩터 및 보급형 컴퓨터에서 특히 인기가 있다. 통합된 주변기기는 온보드 장치라고도 불릴 수 있다.
주변 카드 슬롯.
일반적인 메인보드는 표준 및 폼 팩터에 따라 서로 다른 수의 연결을 갖는다.
표준적인 최신 ATX 메인보드는 일반적으로 그래픽 카드용 PCI 익스프레스 x16 연결 2개 또는 3개, 다양한 확장 카드용 구형 PCI 버스 슬롯 1개 또는 2개, 그리고 PCI를 대체한 PCI 익스프레스 x1 슬롯 1개 또는 2개를 갖는다. 표준 EATX 메인보드는 그래픽 카드용 PCI 익스프레스 x16 연결 2개에서 4개를 가지며, PCI 버스 및 PCI 익스프레스 x1 슬롯의 수는 다양하다. 때로는 PCI 익스프레스 x4 슬롯도 가질 수 있다(브랜드 및 모델에 따라 다름).
일부 메인보드는 2개 이상의 PCI 익스프레스 x16 슬롯을 가지고 있어, 특별한 하드웨어 없이 2개 이상의 모니터를 사용하거나 스케일러블 링크 인터페이스(엔비디아용) 및 ATI 크로스파이어(AMD용)라는 특수 그래픽 기술을 사용할 수 있다. 이를 통해 2개에서 4개의 그래픽 카드를 연결하여 게임, 비디오 편집 등과 같은 집중적인 그래픽 컴퓨팅 작업에서 더 나은 성능을 얻을 수 있다.
최신 메인보드는 일반적으로 1개 또는 2개의 M.2 슬롯을 가지며, 일부 모델에서는 최대 4개까지 가질 수 있다. 이 슬롯은 NVMe SSD 또는 직렬 ATA M.2 및 무선 네트워크 인터페이스 컨트롤러를 위해 사용된다.
온도 및 신뢰성.
메인보드는 일반적으로 공랭식이며, 최신 메인보드에서는 대형 칩 위에 히트 싱크가 장착되는 경우가 많다. 불충분하거나 부적절한 냉각은 컴퓨터 내부 부품에 손상을 입히거나 심지어 충돌 (컴퓨팅)을 일으킬 수 있다. 수동 냉각 또는 전원 공급 장치 (컴퓨터)에 장착된 단일 팬은 1990년대 후반까지 많은 데스크톱 컴퓨터 CPU에 충분했지만, 그 이후로는 클럭 속도와 전력 소비 증가로 인해 대부분 CPU 팬이 히트 싱크에 장착되어야 했다. 대부분의 메인보드에는 추가 컴퓨터 팬용 커넥터와 메인보드 및 CPU 온도를 감지하는 통합 온도 센서, 그리고 바이오스 또는 운영체제가 팬 속도를 조절하는 데 사용할 수 있는 제어 가능한 팬 커넥터가 있다. 또는 컴퓨터는 많은 팬 대신 수랭식 시스템을 사용할 수 있다.
일부 스몰 폼 팩터 컴퓨터 및 조용하고 에너지 효율적인 작동을 위해 설계된 홈 시어터 PC는 팬 없는 디자인을 자랑한다. 이는 일반적으로 저전력 CPU 사용과 함께 히트 싱크 배치를 허용하도록 메인보드 및 기타 전자 부품의 신중한 레이아웃이 필요하다.
2003년의 한 연구에 따르면, 화면 이미지 왜곡에서 입출력 읽기/쓰기 오류에 이르는 일부 거짓 컴퓨터 충돌 및 일반적인 신뢰성 문제는 소프트웨어나 컴퓨터 하드웨어 주변 장치 때문이 아니라 PC 메인보드의 노후화된 축전기 때문일 수 있다고 한다. 궁극적으로 이는 결함 있는 전해액 제형의 결과로 밝혀졌으며, 이를 캐패시터 플레이그라고 불렀다.
최신 메인보드는 전해 축전기를 사용하여 보드 전체에 분배되는 직류 전력을 필터링한다. 이 축전기는 수성 전해액이 서서히 증발함에 따라 온도에 따라 노화된다. 이는 용량 손실과 그로 인한 전압 불안정으로 인한 메인보드 오작동을 초래할 수 있다. 대부분의 축전기는 에서 2000시간 작동 등급이지만, 이보다 낮을 때마다 예상 설계 수명이 대략 두 배로 늘어난다. 에서는 3년에서 4년의 수명을 기대할 수 있다. 그러나 많은 제조업체는 표준 미달 축전기를 제공하여 수명 기대치를 현저히 단축시킨다. 부적절한 케이스 냉각과 CPU 소켓 주변의 높은 온도가 이 문제를 악화시킨다. 상단 블로어를 사용하면 메인보드 구성 요소를 미만으로 유지하여 메인보드 수명을 효과적으로 두 배로 늘릴 수 있다.
반면, 중급 및 고급 메인보드는 고체 축전기만을 사용한다. 온도가 10°C 낮아질 때마다 평균 수명이 약 3배로 증가하여 에서 6배 더 높은 수명 기대치를 갖는다. 이러한 축전기는 에서 5000, 10000 또는 12000시간 작동 등급을 가질 수 있어 표준 고체 축전기에 비해 예상 수명을 연장한다.
데스크톱 PC 및 노트북 컴퓨터에서 메인보드 냉각 및 모니터링 솔루션은 일반적으로 슈퍼 I/O 칩 또는 임베디드 컨트롤러를 기반으로 한다.
부트스트래핑.
메인보드에는 펌웨어를 저장하는 ROM(이후 EPROM, EEPROM, NOR 플래시)이 내장되어 있어 하드웨어 장치를 초기화하고 주변기기에서 운영체제를 부팅한다. 부트스트래핑과 부트라는 용어는 "신발 끈을 잡아당겨 스스로 일어서다"라는 문구에서 유래했다.
애플 II와 IBM PC와 같은 마이크로컴퓨터는 메인보드 소켓에 장착된 ROM 칩을 사용했다. 전원이 켜지면 중앙 처리 장치는 프로그램 카운터에 부팅 ROM의 주소를 로드하고 부팅 ROM에서 명령을 실행하기 시작했다. 이 명령은 시스템 하드웨어를 초기화하고 테스트했으며, 화면에 시스템 정보를 표시하고 RAM 검사를 수행한 다음 주변기기에서 운영체제를 부팅하려고 시도했다. 운영체제를 포함하는 주변기기가 없으면 컴퓨터는 다른 ROM 저장소의 작업을 수행하거나 컴퓨터 모델 및 설계에 따라 오류 메시지를 표시했다. 예를 들어, 애플 II와 초기 IBM PC 모두 카세트 베이직(ROM 베이직)을 가지고 있었으며, 플로피 디스크나 하드 디스크에서 운영체제를 로드할 수 없는 경우 이를 시작했다.
최신 IBM PC 호환기종 메인보드 설계의 부팅 펌웨어에는 초기 IBM PC의 부팅 ROM과 마찬가지로 바이오스 또는 통일 확장 펌웨어 인터페이스가 포함되어 있다. 통일 확장 펌웨어 인터페이스는 마이크로소프트가 윈도우 8을 실행하는 시스템에 대해 인증을 요구하기 시작한 후 인기를 얻은 바이오스의 후속작이다.
컴퓨터가 켜지면 부트 펌웨어는 메모리, 회로 및 주변기기를 테스트하고 구성한다. 이 파워 온 셀프 테스트(POST)는 다음 중 일부를 테스트할 수 있다:
메인보드 회사.
주요 메인보드 회사는 다음과 같다.
컴퓨터에서 랜덤 액세스 메모리(, 임의 접근 메모리 또는 임의 접근 기억 장치, 순화어: 막기억장치) 즉 램(RAM)은 전자 컴퓨터 메모리의 한 형태로, 임의의 순서로 데이터를 읽고 변경할 수 있으며, 일반적으로 작업 데이터 및 기계어를 저장하는 데 사용된다. 랜덤 액세스 메모리 장치는 하드 디스크 및 자기 테이프와 같이 데이터 항목의 읽기 또는 쓰기 시간이 기록 매체의 물리적 위치에 따라 회전 속도 및 암 이동과 같은 기계적 제한으로 인해 크게 달라지는 다른 직접 액세스 데이터 저장 매체와 대조적으로 메모리 내 데이터의 물리적 위치와 관계없이 거의 동일한 시간 내에 데이터 항목을 읽거나 쓸 수 있다.
오늘날의 기술에서 랜덤 액세스 메모리는 집적 회로(IC) 칩 형태로 MOS(금속-산화물-반도체) 메모리 셀을 사용한다. RAM은 일반적으로 전원이 제거되면 저장된 정보가 손실되는 휘발성 메모리 유형과 관련이 있다. 휘발성 랜덤 액세스 반도체 메모리의 두 가지 주요 유형은 정적 램(SRAM)과 동적 램(DRAM)이다.
비휘발성 RAM도 개발되었으며 다른 유형의 비휘발성 메모리는 읽기 작업에 대해 랜덤 액세스를 허용하지만, 쓰기 작업을 허용하지 않거나 다른 종류의 제한이 있다. 여기에는 대부분의 ROM 및 NOR 플래시 메모리 유형이 포함된다.
반도체 RAM의 사용은 1965년 IBM이 System/360 Model 95 컴퓨터용 모놀리식(단일 칩) 16비트 SP95 SRAM 칩을 도입하고, 도시바가 180비트 Toscal BC-1411 전자 계산기에 양극성 DRAM 메모리 셀을 사용하면서 시작되었는데, 둘 다 접합형 트랜지스터를 기반으로 한다. 양극성 DRAM은 자기코어 메모리보다 더 빠른 속도를 제공했지만, 당시 지배적이던 자기 코어 메모리의 낮은 가격과 경쟁할 수 없었다. 1966년, 로버트 H. 데나드 박사는 캐패시터당 단일 MOS 트랜지스터가 있는 현대적인 DRAM 아키텍처를 발명했다. 최초의 상업용 DRAM IC 칩인 1K 인텔 1103은 1970년 10월에 출시되었다. SDRAM은 1992년 삼성 KM48SL2000 칩과 함께 다시 도입되었다.
초기 컴퓨터는 주요 메모리 기능에 전자계전기, 기계식 카운터 또는 지연선 기억기를 사용했다. 초음파 지연선은 데이터를 기록된 순서대로만 재현할 수 있는 직렬 장치였다. 자기 드럼은 비교적 저렴한 비용으로 확장될 수 있었지만, 메모리 항목의 효율적인 검색을 위해서는 드럼의 물리적 레이아웃에 대한 지식이 필요하여 속도를 최적화해야 했다. 진공관으로, 나중에는 개별 트랜지스터로 만들어진 래치들은 하드웨어 레지스터와 같이 더 작고 빠른 메모리에 사용되었다. 이러한 레지스터는 상대적으로 크고 많은 양의 데이터를 사용하는 데 너무 비쌌으며, 일반적으로 수십 또는 수백 비트의 메모리만 제공될 수 있었다.
랜덤 액세스 메모리의 첫 번째 실용적인 형태는 윌리엄스관이었다. 이 메모리는 브라운관 표면에 전하를 띤 점으로 데이터를 저장했다. CRT의 전자빔이 튜브의 점을 어떤 순서로든 읽고 쓸 수 있었기 때문에 메모리는 랜덤 액세스였다. 윌리엄스관의 용량은 수백에서 약 천 비트였지만, 개별 진공관 래치를 사용하는 것보다 훨씬 작고 빠르며 전력 효율이 높았다. 영국 맨체스터 빅토리아 대학교에서 개발된 윌리엄스관은 1948년 6월 21일 처음으로 프로그램을 성공적으로 실행한 맨체스터 베이비 컴퓨터에서 최초의 전자적으로 저장된 프로그램이 구현된 매체였다. 사실, 윌리엄스관 메모리가 베이비 컴퓨터를 위해 설계된 것이 아니라, 베이비 컴퓨터는 메모리의 신뢰성을 입증하기 위한 테스트베드였다.
자기코어 메모리는 1947년에 발명되어 1970년대 중반까지 개발되었다. 이는 자화된 링 배열에 의존하는 널리 퍼진 랜덤 액세스 메모리 형태가 되었다. 각 링의 자화 방향을 변경함으로써 링당 1비트의 데이터를 저장할 수 있었다. 모든 링이 선택 및 읽기 또는 쓰기를 위한 주소 와이어 조합을 가지고 있었기 때문에 어떤 순서로든 모든 메모리 위치에 접근할 수 있었다. 자기 코어 메모리는 1970년대 초반 집적 회로(IC)의 반도체 메모리로 대체될 때까지 컴퓨터 메모리의 표준 형태였다.
집적 고정 기억 장치(ROM) 회로가 개발되기 전에는 영구적(또는 읽기 전용) 랜덤 액세스 메모리가 종종 주소 디코더에 의해 구동되는 다이오드 매트릭스 또는 특수하게 감긴 코어로프 메모리 평면을 사용하여 구성되었다.
반도체 메모리는 1960년대 접합형 트랜지스터를 사용한 양극성 메모리와 함께 등장했다. 더 빠르기는 했지만, 자기 코어 메모리의 낮은 가격과 경쟁할 수 없었다.
MOS RAM.
1957년, 벨 연구소에서 프로시와 데릭은 최초의 실리콘 다이옥사이드 전계 효과 트랜지스터를 제조했는데, 이는 드레인과 소스가 표면에 인접한 최초의 트랜지스터였다. 그 후 1960년, 한 팀이 벨 연구소에서 작동하는 MOSFET을 시연했다. 이는 1964년 페어차일드 반도체의 존 슈미트가 금속-산화물-반도체(MOS) 메모리를 개발하는 데 이어졌다. 더 빠른 속도 외에도 MOS 반도체 메모리는 자기 코어 메모리보다 저렴하고 전력 소비가 적었다. 1968년 페어차일드의 페데리코 파진에 의한 실리콘 게이트 MOS 집적 회로(MOS IC) 기술 개발은 MOS 메모리 칩 생산을 가능하게 했다. MOS 메모리는 1970년대 초에 지배적인 메모리 기술로서 자기 코어 메모리를 능가했다.
집적 양극성 정적 램(SRAM)은 1963년 페어차일드 반도체의 로버트 H. 노먼이 발명했다. 이어서 1964년 페어차일드의 존 슈미트가 MOS SRAM을 개발했다. SRAM은 자기 코어 메모리의 대안이 되었지만, 각 비트 데이터에 대해 6개의 MOS 트랜지스터가 필요했다. SRAM의 상업적 사용은 1965년 IBM이 System/360 Model 95용 SP95 메모리 칩을 도입하면서 시작되었다.
동적 램(DRAM)은 4개 또는 6개 트랜지스터 래치 회로를 각 메모리 비트당 단일 트랜지스터로 교체하여 메모리 밀도를 크게 높이는 대신 휘발성을 가지게 되었다. 데이터는 각 트랜지스터의 작은 정전 용량에 저장되었고, 전하가 사라지기 전에 몇 밀리초마다 주기적으로 새로 고쳐야 했다.
1965년에 출시된 도시바의 Toscal BC-1411 전자 계산기는 저마늄 양극성 트랜지스터와 축전기로 구성된 개별 메모리 셀에 180비트 데이터를 저장하는 일종의 축전기 양극성 DRAM을 사용했다. 축전기는 이전에 애터너소프-베리 컴퓨터의 드럼, 윌리엄스관 및 셀렉트론 튜브와 같은 메모리 방식에도 사용되었다. 양극성 DRAM은 자기 코어 메모리보다 빠른 속도를 제공했지만, 당시 지배적이던 자기 코어 메모리의 낮은 가격과 경쟁할 수 없었다.
1966년 로버트 데나드는 MOS 기술의 특성을 조사하던 중 축전기를 만들 수 있음을 발견했고, MOS 축전기에 전하를 저장하거나 저장하지 않는 것이 비트의 1과 0을 나타낼 수 있으며, MOS 트랜지스터가 축전기에 전하를 쓰는 것을 제어할 수 있음을 발견했다. 이는 그가 캐패시터당 단일 MOS 트랜지스터가 있는 현대 DRAM 아키텍처를 개발하게 된 계기가 되었다. 1967년, 데나드는 MOS 기술을 기반으로 한 단일 트랜지스터 DRAM 메모리 셀에 대해 IBM에 특허를 출원했다. 최초의 상업용 DRAM IC 칩은 인텔 1103으로, 8 µm MOS 공정으로 반도체 제조되었으며, 1kbit의 용량을 가지고 1970년에 출시되었다.
가장 초기의 DRAM은 종종 CPU 클록과 동기화되었고 초기 마이크로프로세서와 함께 사용되었다. 1970년대 중반, DRAM은 비동기식 설계로 전환했지만, 1990년대에는 동기식 작동으로 돌아왔다. 1992년 삼성은 16Mbit 용량의 KM48SL2000을 출시했다. 최초의 상업용 더블 데이터 레이트 SDRAM은 1998년 6월에 출시된 삼성의 64Mbit DDR SDRAM이었다. GDDR(그래픽 DDR)은 SGRAM(동기 그래픽 RAM)의 한 형태로, 1998년 삼성에서 16Mbit 메모리 칩으로 처음 출시되었다.
일반적으로 RAM이라는 용어는 솔리드 스테이트 메모리 장치를, 특히 대부분의 컴퓨터에서 주 메모리를 의미한다. 현대 RAM의 널리 사용되는 두 가지 형태는 정적 램(SRAM)과 동적 램(DRAM)이다. SRAM에서 데이터 비트는 메모리 셀의 상태를 사용하여 저장되며, 일반적으로 6개의 MOSFET를 사용한다. 이 형태의 RAM은 생산 비용이 더 많이 들지만, 일반적으로 DRAM보다 빠르고 정적 전력이 덜 필요하다. 현대 컴퓨터에서 SRAM은 종종 CPU 캐시 메모리로 사용된다. DRAM은 트랜지스터와 축전기 쌍(일반적으로 MOSFET와 MOS 캐패시터)를 사용하여 데이터 비트를 저장하며, 이들이 함께 DRAM 셀을 구성한다. 축전기는 높은 또는 낮은 전하(각각 1 또는 0)를 유지하며, 트랜지스터는 칩의 제어 회로가 축전기의 전하 상태를 읽거나 변경할 수 있도록 하는 스위치 역할을 한다. 이 형태의 메모리는 정적 RAM보다 생산 비용이 저렴하므로 현대 컴퓨터에서 사용되는 컴퓨터 메모리의 주요 형태이다.
정적 RAM과 동적 RAM 모두 전원이 시스템에서 제거되면 상태가 손실되므로 휘발성으로 간주된다. 대조적으로, 고정 기억 장치(ROM)는 선택된 트랜지스터를 영구적으로 활성화하거나 비활성화하여 데이터를 저장하므로 메모리를 변경할 수 없다. ROM의 쓰기 가능한 변형(예: EEPROM 및 NOR 플래시)은 ROM과 RAM의 특성을 모두 공유하며, 전원 없이도 데이터가 유지되고 특별한 장비 없이도 업데이트될 수 있다.
ECC 메모리(SRAM 또는 DRAM일 수 있음)는 패리티 비트 또는 오류 정정 코드를 사용하여 저장된 데이터의 무작위 오류(메모리 오류)를 감지 및 수정하는 특수 회로를 포함한다.
메모리 셀.
메모리 셀은 컴퓨터 메모리의 기본적인 구성 요소이다. 메모리 셀은 1비트의 이진 정보를 저장하는 전자 회로이며, 논리 1(고전압 레벨)을 저장하도록 설정되고 논리 0(저전압 레벨)을 저장하도록 재설정되어야 한다. 그 값은 설정/재설정 프로세스에 의해 변경될 때까지 유지/저장된다. 메모리 셀의 값은 읽기를 통해 액세스할 수 있다.
SRAM에서 메모리 셀은 플립플롭 회로의 한 유형이며, 일반적으로 FET를 사용하여 구현된다. 이는 SRAM이 접근되지 않을 때 매우 낮은 전력을 필요로 하지만, 비용이 많이 들고 저장 밀도가 낮다는 것을 의미한다.
두 번째 유형인 DRAM은 축전기를 중심으로 구성된다. 이 축전기를 충전하고 방전하는 것으로 셀에 "1" 또는 "0"을 저장할 수 있다. 그러나 이 축전기의 전하는 천천히 새어 나가므로 주기적으로 새로 고쳐야 한다. 이러한 새로 고침 프로세스로 인해 DRAM은 더 많은 전력을 사용하지만, SRAM에 비해 더 높은 저장 밀도와 낮은 단위 비용을 달성할 수 있다.
주소 지정.
유용하기 위해서는 메모리 셀을 읽고 쓸 수 있어야 한다. RAM 장치 내에서는 메모리 셀을 선택하기 위해 멀티플렉싱 및 디멀티플렉싱 회로가 사용된다. 일반적으로 RAM 장치는 formula_1와 같은 일련의 주소 라인을 가지고 있으며, 이 라인에 적용될 수 있는 비트의 각 조합에 대해 일련의 메모리 셀이 활성화된다. 이러한 주소 지정 때문에 RAM 장치는 거의 항상 2의 거듭제곱인 메모리 용량을 가진다.
일반적으로 여러 메모리 셀이 동일한 주소를 공유한다. 예를 들어, 4비트 "폭" RAM 칩은 각 주소에 대해 4개의 메모리 셀을 가진다. 종종 메모리의 폭과 마이크로프로세서의 폭이 달라 32비트 마이크로프로세서의 경우 8개의 4비트 RAM 칩이 필요할 수 있다.
종종 장치에서 제공할 수 있는 것보다 더 많은 주소가 필요하다. 이 경우 장치 외부의 멀티플렉서가 액세스되는 올바른 장치를 활성화하는 데 사용된다. RAM은 종종 바이트 주소 지정이 가능하지만, 워드 주소 지정이 가능한 RAM을 만드는 것도 가능하다.
메모리 계층 구조.
RAM에서는 데이터를 읽고 덮어쓸 수 있다. 많은 컴퓨터 시스템에는 프로세서 레지스터, 다이 내 SRAM 캐시, 외부 캐시, 동적 램, 페이징 시스템, 하드 드라이브의 가상 메모리 또는 스왑 공간으로 구성된 메모리 계층 구조가 있다. 이러한 전체 메모리 풀은 다양한 하위 시스템이 RAM의 랜덤 액세스 개념을 위반하는 매우 다른 액세스 타임을 가질 수 있음에도 불구하고 많은 개발자들이 "RAM"이라고 부를 수 있다. DRAM과 같은 계층 수준 내에서도 구성 요소의 특정 행, 열, 뱅크, 랭크, 채널 또는 인터리브 구성에 따라 액세스 시간이 달라지지만, 회전 기억 매체나 테이프에 대한 액세스 시간이 달라지는 정도는 아니다. 메모리 계층 구조를 사용하는 전체 목표는 전체 메모리 시스템의 총 비용을 최소화하면서 가능한 가장 빠른 평균 액세스 시간을 얻는 것이다(일반적으로 메모리 계층 구조는 맨 위에 빠른 CPU 레지스터, 맨 아래에 느린 하드 드라이브를 두어 액세스 시간을 따른다).
많은 최신 개인용 컴퓨터에서 RAM은 씹는 껌 몇 개 크기의 메모리 모듈 또는 DRAM 모듈이라는 쉽게 업그레이드할 수 있는 형태로 제공된다. 이는 손상되거나 변경되는 요구 사항에 따라 더 많은 저장 용량이 필요할 때 빠르게 교체할 수 있다. 위에서 언급했듯이 더 적은 양의 RAM(주로 SRAM)은 CPU 및 메인보드의 다른 IC뿐만 아니라 하드 드라이브, CD-ROM, 컴퓨터 시스템의 여러 다른 부분에도 통합되어 있다.
RAM의 다른 용도.
운영 체제 및 애플리케이션의 임시 저장 공간 및 작업 공간 역할을 하는 것 외에도 RAM은 다양한 다른 방식으로 사용된다.
대부분의 최신 운영 체제는 "가상 메모리"라고 알려진 RAM 용량을 확장하는 방법을 사용한다. 컴퓨터의 하드 디스크 드라이브의 일부는 페이징 파일 또는 스크래치 파티션으로 할당되며, 물리적 RAM과 페이징 파일의 조합이 시스템의 총 메모리를 형성한다. (예를 들어, 컴퓨터에 2GB(10243B)의 RAM과 1GB의 페이지 파일이 있다면, 운영 체제는 총 3GB의 메모리를 사용할 수 있다.) 시스템의 물리적 메모리가 부족해지면, RAM의 일부를 페이징 파일로 "스왑"하여 새로운 데이터를 위한 공간을 만들거나 이전에 스왑된 정보를 다시 RAM으로 읽어올 수 있다. 이 메커니즘을 과도하게 사용하면 스레싱이 발생하여 전반적인 시스템 성능을 저해하는데, 이는 주로 하드 드라이브가 RAM보다 훨씬 느리기 때문이다.
램 드라이브.
소프트웨어는 컴퓨터 RAM의 일부를 "파티션"하여 램 드라이브라고 불리는 훨씬 빠른 하드 드라이브처럼 작동하게 할 수 있다. 램 드라이브는 컴퓨터가 종료될 때 저장된 데이터를 잃어버리는데, 메모리가 대기 배터리 전원을 갖도록 배열되거나 램 드라이브의 변경 사항이 비휘발성 디스크에 기록되지 않는 한 그렇다. 램 드라이브는 램 드라이브 초기화 시 물리적 디스크에서 다시 로드된다.
섀도우 RAM.
때로는 상대적으로 느린 ROM 칩의 내용을 읽기/쓰기 메모리로 복사하여 액세스 시간을 단축하기도 한다. 그러면 ROM 칩은 비활성화되고, 초기화된 메모리 위치는 동일한 주소 블록에(종종 쓰기 방지되어) 전환된다. 섀도잉이라고도 불리는 이 과정은 컴퓨터와 임베디드 시스템에서 흔히 볼 수 있다.
흔한 예로, 일반적인 개인용 컴퓨터의 바이오스에는 "use shadow BIOS"와 같은 옵션이 있다. 이 옵션을 활성화하면 BIOS ROM의 데이터에 의존하는 기능이 DRAM 위치를 대신 사용한다(대부분의 경우 비디오 카드 ROM 또는 다른 ROM 섹션의 섀도잉도 전환할 수 있다). 시스템에 따라 성능 향상으로 이어지지 않을 수 있으며 호환성 문제가 발생할 수도 있다. 예를 들어, 섀도우 RAM이 사용되면 일부 하드웨어는 운영체제에 액세스할 수 없을 수도 있다. 일부 시스템에서는 BIOS가 부팅 후 직접 하드웨어 액세스를 선호하여 사용되지 않기 때문에 이점은 가설에 불과할 수 있다. 사용 가능한 메모리는 섀도우된 ROM의 크기만큼 줄어든다.
메모리 장벽.