CPU가 처리 할 수있는 최대 RAM 크기를 계산할 때 페이지가 단위로 사용되지 않는 이유는 무엇입니까?


0

위키 백과는 말합니다

페이지, 메모리 페이지 또는 가상 페이지는 페이지 테이블의 단일 항목으로 설명되는 고정 길이의 연속 가상 메모리 블록입니다. 프로그램 대신 운영 체제에서 수행하는 메모리 할당 및 주 메모리와 다른 보조 저장소 (예 : 하드 디스크 드라이브) 간 전송을위한 가장 작은 데이터 단위입니다.

...

페이지 크기는 일반적으로 프로세서 아키텍처에 의해 결정됩니다. 전통적으로 시스템의 페이지 크기는 예를 들어 4096 바이트였습니다. 그러나 프로세서 설계는 종종 이점과 위약금으로 인해 둘 이상의 페이지 크기 (동시 페이지 크기)를 허용합니다.

32 비트 CPU는 최대 2 ^ 32 바이트 = 4GiB 메모리를 처리 할 수 ​​있습니다. 페이지 대신 계산에서 바이트가 단위로 사용되는 이유는 무엇입니까?

페이지가 4096 바이트이면 32 비트 CPU가 훨씬 큰 메모리를 처리 할 수 ​​있습니다.

무언가를 놓치거나 오해합니까?


32 비트 CPU가 최대 2 ^ 32 바이트 만 처리 할 수있는 경우는 아닙니다. 참조 en.wikipedia.org/wiki/Physical_Address_Extension
ChrisInEdmonton

답변:


2

CPU가 한 번에 전체 페이지를 처리하지 않기 때문입니다. 각각의 모든 바이트를 처리합니다. 페이지는 단순히 메모리 를 할당 하고 사용 권한을 설정 하는 데 사용되는 단위입니다 . 또한 위키 백과 기사에 오류가 있습니다. 디스크 IO도 페이지 단위로 수행 되지 않습니다 . 일반적으로 512 바이트 인 섹터에서 수행됩니다.


내가 "데이터 전송을위한 최소 단위"에 대한 비트에 물리적 메모리가 가상 메모리를 전송 참조 생각 (즉, 교환이 전체 페이지 단위로 발생, 당신은 페이지의 인 / 아웃 부분에 바꿀 수 없습니다)
cpast

1

예전에는 메인 프레임 메모리가 너무 많은 단어로 설명되었습니다. 하드웨어에 의해 단어가 정의 된 곳 (18,20,30,32,60, ... 비트) 미니와 PC가 도착했을 때, 메모리는 바이트 (64K까지 4K)로 설명되었습니다. 이제 우리는 훨씬 더 많은 메모리를 가지고 있으며 여전히 바이트 수로 설명됩니다. 당신이 말하는 것은 사실이며 페이지는 그것을 설명하는 더 나은 방법 일 수 있습니다. 말했듯이 32 비트 CPU는 4GB의 메모리를 처리 할 수 ​​있습니다. 더 이상 페이징으로 수행해야합니다. 메모리 관리를 위해 페이징을 사용하는 것이 효율적입니다. 페이지 크기는 OS에 따라 다를 수 있으므로 바이트 수는 여전히 실제 메모리 양을 알 수있는 유일한 방법입니다 (페이지 크기를 알아야 함). 나는 항상 그것이 항상 이루어진 방식이라고 생각합니다.


바이트 주소 지정 가능 메모리로 오래 전에 예정된 "미니 및 PC"-가장 유명한 예는 IBM System / 360을 참조하십시오. 그리고 페이징은 CPU의 "비트 폭"보다 많은 RAM을 처리하는 것과 직접 관련이 없습니다. 주소 변환을 생각하고 있습니다. 페이징과 주소 변환은 일반적으로 함께 진행되지만 별도의 메커니즘입니다.
Jamie Hanrahan

0

Wikipedia 페이지는 몇 가지 세부 사항으로 잘못되었거나 잘못 오도 된 것 같습니다.

프로그램 대신 운영 체제에서 수행하는 메모리 할당을위한 가장 작은 데이터 단위입니다.

페이지 단위로 작동하는 메모리 할당 호출에 대해서만 수정하십시오. 예를 들어, Windows에서 이것은 VirtualAlloc입니다. 그러나 힙 관리 루틴은 확실히 더 작은 단위로 작동 할 수 있습니다. (그리고 누군가가 "운영 체제가 아니라면 힙 루틴은 모두 사용자 공간에있다"고 말하기 전에 커널 공간 힙도 있다는 것을 고려하십시오. 그리고 사용자 모드에서 프로그램이하는 일은 OS가 커널을 할당하도록 요구합니다 힙 ... 및 커널 힙 할당은 페이지 크기 보폭이 아닙니다.)

주 메모리와 다른 보조 저장소 (예 : 하드 디스크 드라이브) 간 전송 용.

이것은 사실이 아닙니다. 페이징 으로 인한 전송에 해당됩니다 . 그러나 디스크 및 디스크 컨트롤러는 한 블록의 전송을 처리 할 수 ​​있으며 이는 일반적으로 512 바이트를 의미합니다. "기타 보조 기억 장치"에 대한 위반은 다음과 같은 범죄를 유발합니다. 테이프 드라이브는 거의 임의의 블록 길이의 읽기 및 쓰기를 처리 할 수 ​​있습니다.

다른 응답자가 올바르게 언급했듯이 CPU는 바이트를 주소 지정하고 주소에 사용 가능한 비트 수는 주소 를 지정할 수있는 바이트 수를 결정 합니다.

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