RAM없이 컴퓨터를 실행 하시겠습니까? [복제]


14

CPU 인출 시간 에 대해 읽었 습니다 . 여기서 CPU는 하드 디스크에 액세스하는 것과 비교하여 RAM에서 데이터에 액세스하는 데 훨씬 적은 시간이 걸리고 RAM은 프로그램 실행 정보 및 데이터를 저장하기 위해 존재합니다.

그런 다음 하드 디스크 만 사용하고 RAM은 사용하지 않을 경우 어떻게 될지 궁금했습니다.



1
답장을 보내 주셔서 감사 @Cornelius 내가 :) 확인해거야
아카 쉬를 ujjwal

12
신호음이 울리면 화면이 꺼집니다.
arch-abit

1
내 질문은, 적어도 그래픽 카드가 작동하는지 테스트 할 수 있습니까? 비디오 또는 모니터가 최소한으로 작동합니까?
마샬 크래프트

답변:


27

어느 시점에서 이것은 심지어 "RAM"으로 간주되는 것에 대한 질문에 도달합니다. 별도의 RAM 칩이 부착되지 않은 작은 운영 체제를 실행하기 위해 충분한 온칩 메모리가있는 많은 CPU 및 마이크로 컨트롤러가 있습니다. 실제로 이것은 임베디드 시스템 세계에서 실제로 일반적입니다. 따라서 별도의 RAM 칩이 부착되어 있지 않다고 말하는 경우, 특히 현재 세계, 특히 임베디드 세계 용으로 설계된 많은 칩으로 수행 할 수 있습니다. 나는 직장에서 직접했다. 그러나 어드레싱 가능한 온칩 메모리와 별도의 RAM 칩의 유일한 차이점은 단지 위치 (및 대기 시간) 뿐이므로 온칩 메모리 자체를 RAM으로 간주하는 것이 합리적입니다. 이것을 RAM으로 계산한다면 전류의 수는

일반 PC를 언급하는 경우 아니요, 별도의 RAM 스틱을 부착하지 않고는 실행할 수 없지만 BIOS는 RAM이 설치되지 않은 상태에서 부팅을 시도하지 않도록 설계 되었기 때문입니다. 최신 PC 운영 체제는 특히 RAM이 필요합니다. x86 시스템은 일반적으로 온칩 메모리를 직접 처리 할 수 ​​없기 때문에 캐시로만 사용됩니다.)

마지막으로 Zeiss가 말했듯이 몇 개의 레지스터를 제외하고 RAM없이 컴퓨터를 실행할 수 없다는 이론적 인 이유는 없습니다. RAM은 온칩 메모리보다 저렴하고 디스크보다 훨씬 빠르기 때문에 존재합니다. 최신 컴퓨터에는 메모리가 크지 만 느리거나 매우 빠르지 만 작은 메모리 계층이 있습니다. 일반적인 계층 구조는 다음과 같습니다.

  • 레지스터-매우 빠르며 (일반적으로 추가 대기 시간없이 CPU 명령어로 직접 작동 할 수 있음) 일반적으로 매우 작습니다 (64 비트 x86 프로세서 코어에는 16 개의 범용 레지스터 만 있음) 단일 64 비트 숫자) 레지스터는 바이트 당 매우 비싸기 때문에 일반적으로 레지스터 크기가 작습니다.
  • CPU 캐시-여전히 매우 빠르며 (종종 1-2주기 지연) 레지스터보다 훨씬 크지 만 일반 DRAM보다 훨씬 작습니다 (더 빠름). CPU 캐시는 DRAM보다 바이트 당 훨씬 비싸기 때문에 일반적으로 훨씬 작습니다. 또한 많은 CPU는 실제로 캐시 내에도 계층 구조를 가지고 있습니다. 일반적으로 더 크고 느린 캐시 (L3) 외에 더 작고 빠른 캐시 (L1 및 L2)가 있습니다.
  • DRAM (대부분의 사람들이 'RAM'이라고 생각하는 것)-캐시보다 훨씬 느리지 만 (액세스 대기 시간은 수십에서 수백 클럭 사이클에 이르는 경향이 있음) 바이트 당 훨씬 저렴하므로 일반적으로 캐시보다 훨씬 큽니다. 그러나 DRAM은 여전히 ​​디스크 액세스보다 몇 배 빠릅니다 (보통 수백에서 수천 배 빠름).
  • 디스크-이것들은 다시 DRAM보다 훨씬 느리지 만 일반적으로 바이트 당 훨씬 저렴하므로 더 큽니다. 또한 디스크는 일반적으로 비 휘발성이므로 프로세스가 종료 된 후에도 (컴퓨터를 다시 시작한 후에도) 데이터를 저장할 수 있습니다.

메모리 계층의 전체 이유는 단순히 경제적 인 것입니다. CPU 다이에 테라 바이트의 비 휘발성 레지스터를 가질 수 없었던 이론적 이유는 없습니다 (적어도 컴퓨터 과학은 아님). 문제는 구축하기가 엄청나게 어렵고 비용이 많이 든다는 것입니다. 소량의 매우 비싼 메모리에서 대량의 저렴한 메모리에 이르는 계층 구조를 갖추면 합리적인 비용으로 빠른 속도를 유지할 수 있습니다.


이제 마지막으로 내가 필요한 것을 얻습니다. 대단히 감사합니다 :)
akash ujjwal

실제로 PC가 RAM없이 부팅되지 않는 이유는 BIOS인데, BIOS 코드가 RAM에서 재배치 주소를 찾지 못하면 중단됩니다. 당신이 듣게 될 것은 전원 공급 장치의 허밍과 팬의 소음 및 회전하는 디스크 일뿐입니다. 그러나 컴퓨터는 기본적으로 머리가 죽었습니다. CPU는 모든 작업을 수행 할 기회를 얻지 못합니다. RAM이 매우 중요합니다.
arch-abit

@ arch-abit 예, 사실이지만 컴퓨터를 실행하는 데 RAM이 필요한 구성 요소입니까?
akash ujjwal

2
@reirab이 말한 것 외에도 명령 실행의 의미에서 DRAM없이 'PC'를 실행할 수 있습니다. 이는 DRAM 컨트롤러가 초기화되기 전에 시스템이 작동하는 모드입니다 (BIOS / EFI / Coreboot 등에서 수행됩니다 ). 그러나 어쨌든 대부분의 구성 요소가 DMA를 사용하므로 유용한 작업을 수행하지 못할 수 있습니다 .
Maciej Piechotka

1
32 비트 x86 CPU 레지스터는 64 비트가 아닌 32 비트이며 64 비트 x86 CPU는 8 개가 아닌 32 개입니다.
psusi

23

것이 이론적으로 실제로 콘웨이의 생명의 적당히 큰 / 빠른 구현을 구성 할 수있다 - (매우 작은 (수 레지스터 '가치) 또는 전혀 RAM으로 작동 튜링 기계의 정의를 찾기 위해 컴퓨터를 설계 할 수 시뮬레이션).

모든 실제 컴퓨터가 RAM을 사용하는 이유는 첫째 역사적입니다. 코어 메모리 (RAM의 프로토 타입, 반 휘발성)는 마그네틱 드럼이나 디스크와 같은 대용량 저장 장치보다 훨씬 앞서 있습니다 (펀치 카드와 종이 테이프 뒤에 나왔지만). 전자는 기본 형식으로 1801 년으로 거슬러 올라갑니다 (예, 19 세기 초; 자카드 직기는 천공 카드를 사용하여 수십 년 전의 임의의 복잡한 색상 패턴을 자동으로 짜서 Babbage Difference Engines 또는 Hollerith tabulators까지); RAM (코어 메모리와 같은)은 전자적이므로 저장 매체의 물리적 이동에 의존하여 데이터를 읽기 / 쓰기 메커니즘에 제공하는 모든 장치보다 훨씬 빠릅니다.

RAM없이 실행되는 최신 Windows 또는 Linux 컴퓨터 (진짜 튜링 머신과 유사)의 시스템 또는 이와 유사한 복잡성은 시작하는 데 며칠이 걸리고 최신 해상도로 그래픽 인터페이스 화면을 업데이트하는 데 몇 시간이 걸립니다. CP / M 또는 초기 버전의 DOS와 비교할 수있는 텍스트 전용 운영 체제조차도 초기 명령 프롬프트에 도달하는 데 시간오래 걸립니다 .


4
본질적으로 지속적인 데이터 스트림에서 계산을 수행하기 때문에 일부 DSP (디지털 신호 프로세서) 및 유사한 마이크로 프로세서를 RAM없이 실행하는 컴퓨터라고 생각할 수 있습니다.
jamesqf

1
"가상 메모리 전용"머신의 속도 저하에 대한 귀하의 평가는 다소 과장된 것이지만 원칙적으로는 맞습니다.
leftaroundabout

1
디스크가 RAM보다 1,000,000보다 느리기 때문에 추정치는 낮은 편이라고 생각합니다.
단 크럼

2
@ Dancrumb 나는 당신의 1,000,000 (시간)이 어디에서 왔는지 확실하지 않습니다. DDR3 SDRAM은 10GB / s 정도의 속도 를 제공하는 반면 회전 7200rpm HDD도 약 100MB / s (0.1GB / s)의 순차를 제공합니다. 100 배입니다. 확실히 중요하지만 1,000,000 배와는 거리가 멀다. RAM이 HDD보다 성능이 뛰어난 성능은 검색 대기 시간에 있지만 SSD를 사용하면 RAM을 크게 줄일 수 있습니다. DDR3은 10ns 영역에서 대기 시간이 있으며 빠른 SSD는 10,000ns 영역 (100k IOPS)에서 대기 시간이 1,000 배일 수 있습니다. 여전히 1,000,000과는 거리가 멀다.
CVn

1
@PeterCordes Edited 그래서 Win / Linux가 RAM없이 실행될 수 있다고 주장하지 않는 것 같습니다.
Zeiss Ikon

10

x86 CPU가 시작될 때 L2 캐시는 처음에 캐시로 사용되기 전에 SRAM이기 때문에 가능합니다. 따라서 RAM을 초기화하지 않고 CPU 내부의 소량의 SRAM 만 L2 / L3 캐시가 아닌 RAM으로 사용하기 위해 자체 BIOS를 작성할 수 있습니다.

CPU 제조업체의 BIOS 지침을 읽으십시오.


4
그것을 말하면 +1입니다. 실제로 모든 x86 시스템 (컴퓨터)은 "ram을 사용하지 않고"시작됩니다. BIOS 코드는 먼저 램이 있는지 감지하고없는 경우 경고음을 울립니다. 이 코드는 램없이 실행할 수 있습니다) (많은 RAM이없이 할 수 없습니다 OFC, 확인 레지스터 HDD를 처리하고 그것을 "램으로"사용하기에 충분하지 않을 경우)
SEBI

10

모든 최신 표준 범용 CPU는 기본적으로 다음과 같이 작동합니다.

  • CPU는 주소 공간을 가리키는 레지스터를 다음 명령어로 유지합니다.
  • CPU는 해당 주소 공간에있는 모든 것을 가져오고 레지스터를 증가시킵니다.
  • 명령어에 목적지 주소 또는 다른 피연산자와 같은 추가 정보가 필요한 경우 가져옵니다.
  • CPU가 명령을 실행 함
  • 명령이 점프, 호출, 리턴, 인터럽트에서 리턴 또는 분기 인 경우 다음 명령을 가리키는 레지스터를 수정할 수 있습니다.
  • 반복

CPU는 해당 주소 공간에있는 모든 것을 가져오고 레지스터를 증가시킵니다.

주소 공간에서 "살아"있을 수있는 것은 무엇입니까?

  • 아무것도 없음 (0을 반환하거나 임의의 데이터를 반환하거나 CPU가 잠길 수 있음)
  • RAM (마더 보드 RAM, 그래픽 어댑터와 같은 PCI 장치의 RAM 등)
  • ROM
  • I / O 장치의 등록 (CPU의 로컬 APIC와 같은 "내부 I / O 장치"포함)
  • 최신 CPU는 "캐시로 RAM"을 허용하므로 CPU 캐시의 일부가 주소 공간에 나타날 수 있습니다.

"하드 디스크"는 해당 목록에 없습니다. 하드 디스크가 CPU에 직접 연결되어 있지 않습니다. 데이터는 CPU에 연결된 I / O 장치 (SATA 호스트 어댑터)를 통해 하드 디스크로 들어오고 나옵니다.

I / O 장치는 DMA를 사용하여 하드 디스크에 데이터를로드 / 저장합니다. 즉, I / O 장치는 CPU 개입없이 RAM 자체를 직접 읽고 쓸 수 있으며 RAM이 있어야합니다. 그러나 데이터가 I / O 장치에 의해 RAM에로드되지 않은 경우 CPU는이를 볼 기회가 없습니다.

따라서 하드 디스크에서 CPU 페치 명령을 직접 가져올 수 없습니다.


페이지 오류 중에 발생하는 사항은 다음과 같습니다.

  • CPU는 로컬 CPU 페이지 테이블에서 스왑 아웃 된 것으로 표시된 메모리 페이지 (항상 RAM에 있음)에 액세스하려고합니다.
  • 이 액세스는 CPU에서 페이지 결함 예외를 발생시킵니다.
  • 이제 커널 모드 인 CPU는 다른 프로세스가 액세스하려는 페이지를 확인합니다.
  • 커널은 사용자 프로세스가 스왑 아웃 페이지에 액세스하려고 시도하고 일반 I / O 프로세스를 호출하여 해당 페이지를 디스크에서 다시 스왑합니다. 디스크에서 다른 데이터를로드 / 저장할 때 사용되는 것과 동일한 프로세스입니다. CPU가 스왑 된 메모리에서 페이징하고 있기 때문에 다르지 않습니다.
  • 그런 다음 CPU는 중단 된 프로세스로 다시 제어권을 넘겨 주지만 아무 일도 일어나지 않은 것처럼 계속됩니다.

따라서 메모리가 스왑 아웃되기 때문에 디스크에서 데이터를 가져와야하는 CPU는 다르지 않습니다.


2
+1실제 문제를 다루는 유일한 대답 이 되었기 때문일 뿐만 아니라 그 이유도 있습니다.

@ultrasawblade 왜 CPU가 페이지 (정보)에 대한 CPU 요구가 있고 램 (1 차 메모리)에서 사용할 수없는 경우에도 페이지 오류가 발생하면 CPU가 데이터를 볼 수있는 기회를 가지지 않습니다. 원하는 데이터. 이는 CPU가 마지막으로 필요한 정보를 얻기 위해 하드 디스크로 이동해야 함을 의미합니다.
akash ujjwal

2
편집 내용을 참조하십시오. 스왑 된 메모리의 커널 페이징은 프로그램로드 또는 프로그램 디스크 읽기 / 쓰기와 다르지 않습니다. 그것은 커널 내에서 그리고 사용자 프로세스의이면에서 발생하지만 커널의이면에서는 발생하지 않습니다.
LawrenceC

x86은 최소한 채우기가없는 모드에서 RAM 으로 캐시 사용할 수 있지만 내장 RAM이있는 마이크로 컨트롤러와 같은 보트에 있습니다. ROM 만 있고 쓰기 가능한 주소 공간이없는 CPU를 실행하는 것은 그럴듯합니다 (모든 상태가 레지스터에 적합하고 최신 x86 CPU에 32 개의 512b ZMM 벡터 레지스터가있는 경우 ...). 코드를 읽을 수있는 주소 공간 (x86의 경우 GDT / LDT / IDT 및 기타 테이블)
Peter Cordes

7

개인용 컴퓨터 RAM이 필요 합니다. 하드 디스크에서 시작된 모든 응용 프로그램은 실행되기 전에 먼저 RAM에 복사됩니다.

따라서 컴퓨터에 RAM이 없으면 컴퓨터가 시작되지 않습니다. RAM이 설치되어 있지 않다는 것을 알리는 경고음이 여러 번 울릴 수 있습니다.


5
그런 다음 이마를 두드리고 "12 월 27 일 북반구 습도가 10 % 미만인 카펫이 깔린 환경에서이 RAM 스틱을 설치하려고하지 말아야합니까?" 예?
arch-abit

@LPChip이 왜 Ram의 주요 목적이 Ram에 저장되어 있는지. 시스템을 빠르게 만들거나 액세스 시간을 줄이려면 캐시가 내장되어 있습니다. 내가 옳고 그른가?
akash ujjwal

1
RAM은 빠른 메모리 저장 공간이고 디스크 액세스는 느리고 비 휘발성 메모리 저장 공간이며 다른 이유로 CPU 캐시가 있습니다.
Fiasco Labs

1
@FiascoLabs 실제로, CPU 캐시는 RAM과 같은 이유로 존재합니다 : 정말 빠른 스토리지입니다. RAM보다 훨씬 빠르지 만 바이트 당 더 비쌉니다.
reirab

그리고 컴퓨터는 따라서 "다른 이유"그것에 독립 실행되지 않습니다
큰 실수 연구소

5

컴퓨터가 작동하지 않습니다. RAM은 마더 보드에서 성공적으로 게시하는 데 필수적인 부분입니다. RAM이 없거나 손상되지 않은 경우, 많은 마더 보드는 일반적으로 문제 해결에서 확인할 위치를 나타내는 경고음 코드를 제공합니다.


그러나 그들은 자화 / 자화 될 작은 금속 고리였다. en.wikipedia.org/wiki/Magnetic-core_memory (삭제 된 오래된 진공관 컴퓨터에 대한 코멘트에 응답에서)
큰 실수 연구소

2

실제로 두 개 이상의 경우 기술적으로 RAM이라고하는 컴퓨터없이 컴퓨터를 실행할 수 있습니다.

  1. 최초의 오래된 기계 "컴퓨터"(Konrad Zuse의 구성과 Charles Babbage의 컴퓨터는 컴퓨터라고하는 RAM이없는 기계 장치 임)

  2. RAM이없고 레지스터가 있는 프로세서 (칩) 만있는 최신 컴퓨터 . 대부분의 경우 프로세서에 SRAM (캐시 메모리)이 있지만 가장 빠른 컴퓨터 메모리를 칩에있는 레지스터라고하며 기술적으로 칩의 레지스터는 RAM이 아닙니다.


1
이 답변에 감사드립니다-Zuse와 그의 초기 전기 기계 컴퓨터에 대한 이야기를 처음으로 회상합니다. (컴퓨터에 대해 가장 초기에 읽은 수치는 항상 스위칭 장치로 "릴레이"라고 말했지만 다른 모든 초기 컴퓨터는 진공관을 사용한 것으로 보입니다 ).
Zeiss Ikon

1

그냥 실행되지 않습니다. 마더 보드는 아마도 비정상적인 방식으로 경고음을 내고 종료됩니다. RAM이 충분하지 않으면 Windows XP의 경우 128MB라도 설치를 거부합니다 (실제로 오래된 컴퓨터에서 시도했지만 칩 중 하나가 올바르게 배치되지 않았습니다). 따라서 현재 설정으로는 불가능합니다. 메인 보드 검사를 비활성화 할 수 있어도 CPU는 하드 디스크에서 직접 데이터를 읽을 수 없으며 모든 작업에 RAM이 필요합니다.

이론적으로는 RAM을 거의 또는 전혀 사용하지 않는 머신을 구성하는 것이 가능하지만 비효율적이라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.