RAM 제한

RAM limit

모든 컴퓨터 시스템에 탑재되는 최대 랜덤 액세스 메모리(RAM)는 하드웨어, 소프트웨어 및 경제적 요인에 의해 제한됩니다.하드웨어에는 프로세서 패키지 또는 시스템 설계에 따라 제한된 수의 주소 버스 비트가 있을 수 있습니다.일부 주소 공간은 RAM, 주변기기 및 읽기 전용 메모리 간에 공유될 수 있습니다.외부 RAM이 없는 마이크로 컨트롤러의 경우 집적회로 다이의 크기에 따라 RAM 어레이의 크기가 제한된다.패키지형 시스템에서는, 제조 후에 메모리를 증설할 필요는 없고, 시스템에 필요한 기능에 충분한 RAM만을 제공할 수 있습니다.

사용 가능한 물리 RAM에 대한 소프트웨어 제한이 있을 수 있습니다.오퍼레이팅시스템은 일정량의 메모리만 할당하도록 설계되어 있으며 I/O, 슈퍼바이저 모드, 기타 보안 정보 등의 지정을 나타내기 위해 상위 주소 비트가 예약되어 있습니다.또는, operating system은, 주소 지정 가능한 메모리의 제한이 정해져 있는 내부 데이터 구조에 의존하고 있는 경우가 있습니다.

대량 판매 PC의 경우, 대량 판매 소프트웨어를 실행하는 데 필요한 것보다 더 많은 메모리 소켓, 주소 라인 또는 기타 하드웨어를 제공하는 것은 제조업체에 재정적 이점이 없을 수 있습니다.메모리 디바이스가 프로세서에 비해 상대적으로 비쌌을 때, 대부분의 경우 시스템과 함께 제공되는 RAM은 비용 때문에 하드웨어의 주소 용량보다 훨씬 낮았습니다.

RAM 제한은 특수한 기술을 사용하여 극복할 수 있습니다.뱅크 스위칭을 사용하면 RAM 메모리 블록을 필요에 따라 프로그램 제어 하에 프로세서의 주소 공간으로 전환할 수 있습니다.operating system은, 실행중의 프로그램을 가상 메모리를 사용해 일상적으로 관리합니다.이 경우, 개별 프로그램은 메모리 영역을 디스크 스토리지와 스왑 해 시뮬레이트 하고 있는 대용량 메모리 공간에 액세스 할 수 있는 것처럼 동작합니다.

CPU 어드레싱 제한

퍼포먼스상의 이유로 어드레스 버스의 모든 병행 어드레스 라인을 동시에 유효하게 할 필요가 있습니다.그렇지 않으면 메모리 접근이 지연되어 퍼포먼스가 현저하게 저하됩니다.집적회로 패키지는 메모리 버스를 제공하기 위해 사용할 수 있는 핀 수에 제한이 있을 수 있습니다.다양한 버전의 CPU 아키텍처를 다양한 크기의 IC 패키지로 설계할 수 있으며, 축소된 패키지 크기를 핀 수 및 주소 공간 감소와 교환할 수 있습니다.주소 핀과 다른 기능 간에 트레이드오프가 이루어지기 때문에 본질적으로 용량이 더 큰 경우에도 아키텍처에서 물리적으로 사용 가능한 메모리가 제한될 수 있습니다.한편 세그먼트 또는 뱅크 스위칭 설계는 내부 메모리 주소 레지스터에서 사용할 수 있는 것보다 더 많은 메모리 주소 공간을 제공합니다.

집적회로 메모리의 비용이 낮아짐에 따라 점점 더 큰 물리 메모리 공간을 가진 시스템을 설계할 수 있게 되었습니다.

16개 미만의 주소 핀

내장 I/O 및 메모리 온칩을 탑재한 마이크로컨트롤러 디바이스는 외부 디바이스에서 사용할 수 있는 주소 버스가 없거나 작은 경우가 있었습니다.예를 들어 2킬로바이트의 주소 공간을 사용할 수 있는 마이크로컨트롤러 패밀리는 외부 ROM에 11라인 주소 버스를 도입하는 배리언트일 수 있습니다.이는 I/O 핀을 주소 버스 핀으로 재할당함으로써 실행할 수 있습니다.내장 ROM을 탑재한 일부 범용 프로세서는 내장 ROM과 외장 15비트 메모리 버스 간에 16비트 주소 공간을 분할합니다.

일부 초기 컴퓨터에는 주소 핀이 16개 미만인 CPU도 있었습니다.MOS Technology 6507(6502의 핀 수를 줄인 버전)은 Atari 2600에서 사용되었으며 13줄 주소 버스로 제한되었습니다.

16 주소 비트, 16 주소 핀

대부분의 8비트 범용 마이크로프로세서는 16비트 주소 공간을 가지며 16개의 주소 라인을 생성합니다.를 들어 인텔 8080, 인텔 8085, Zilog Z80, Motorola 6800, 마이크로칩 PIC18 등이 있습니다.이러한 프로세서에는 8비트 CPU와 8비트 데이터 및 16비트 어드레싱이 탑재되어 있습니다.이러한 CPU의 메모리는, 바이트 레벨로 주소 지정이 가능합니다.따라서 메모리 주소 지정 가능한 제한은16 2 × 1 바이트 = 65,536 바이트 또는 64 킬로바이트입니다.

16 주소 비트, 20 주소 핀: 8086, 8088, 80186 및 80188

인텔 80868088, 80186, 80188 등의 파생 모델은 널리 사용되는 x86 플랫폼의 기반이 되며 IA16 아키텍처의 첫 번째 레벨입니다.이것들은 20비트 어드레싱을 가진 16비트 CPU입니다.이러한 CPU의 메모리는, 바이트 레벨로 행선지 지정이 가능했습니다.이러한 프로세서는, 2 바이트(1 메가바이트)의 주소를 지정할20 수 있습니다.

16비트 주소, 24개의 주소 핀: 80286

인텔 80286 CPU는 24비트 어드레싱 방식을 사용했습니다.각 메모리 위치는 바이트 주소 지정 가능했습니다.따라서 총 주소 지정 가능 공간은 2 × 1 바이트 = 16,132,216 바이트 또는 16 메가바이트가 됩니다24.286 이후는 리얼 모드에서도 동작할 수 있기 때문에, 8086 프로세서의 어드레싱 제한이 부과됩니다.286은 가상 메모리를 지원했습니다.

32비트 주소, 24개의 주소 핀

인텔 80386SX는 386DX의 경제적인 버전입니다.386DX의 32비트와 달리 24비트 어드레싱 스킴을 갖추고 있었습니다.286과 마찬가지로 386SX도 최대 16MB의 메모리만 사용할 수 있습니다.

Motorola 68000은 최대 16MB의 메모리에 액세스할 수 있는 24비트 주소 공간을 가지고 있습니다.

32비트 주소, 32개의 주소 핀

386DX는 32비트 어드레싱으로 최대 4기가바이트(4096메가바이트)의 메모리를 어드레싱할 수 있었습니다.

1984년에 출시된 Motorola 68020은 32비트 주소 공간을 가지고 있으며 주소 지정 가능한 최대 메모리 제한은 4GB입니다.Motorola 68000 시리즈의 모든 칩이 이 제한을 계승했습니다.

32비트 주소, 36개의 주소 핀: Pentium Pro(P6)

Pentium Pro 및 모든 Pentium 4는 36비트 주소 지정을 지원하므로 총 주소 지정 가능 공간이 64기가바이트가 되지만 운영 체제가 물리적 주소 확장을 지원해야 합니다.

64비트 컴퓨팅

ARM, 인텔, AMD 등의 최신 64비트 프로세서는 일반적으로 RAM 주소용으로 64비트 미만을 지원합니다.일반적으로 물리 어드레스[1][2][3][4] 비트는 40~52비트(1TB~4PB의 RAM 지원)를 실장합니다.이러한 아키텍처와 같이, 테크놀로지의 향상에 수반해 RAM 어드레싱의 상한치를 서포트하도록 설계되어 있습니다.인텔64 및 AMD64에서는 모두 아키텍처 사양(4PB)에 52비트의 물리 주소 제한이 정의되어 있습니다.

운영체제 RAM 제한

CP/M 및 8080 주소 제한

마이크로컴퓨터의 첫 번째 주요 운영체제는 CP/M이었다.이 운영체제는 Gary Kildall이 프로그래밍 언어 PL/M과 함께 만든 Altair 8800과 유사한 마이크로컴퓨터와 호환되며 인텔에 의해 거부된 후 Kildall의 회사 Digital Research에 의해 컴퓨터 제조업체에 라이선스되었습니다.이러한 컴퓨터에서 사용되는 인텔 8080은 최대 64KB의 메모리에 액세스할 수 있는 16비트 주소 공간을 가진 8비트 프로세서입니다.이 때문에 CP/M에서 사용되는 COM 실행 파일의 크기는 최대 64KB이며, 16비트 마이크로프로세서용 DOS 운영 체제에서 사용되는 파일도 마찬가지입니다.

IBM PC 및 8088 주소 지정 제한

원래 IBM PC의 기본 RAM 제한은 640KB입니다.이는 주소 지정 가능한 총 메모리 공간 1024KB(1MB) 중 상위 384KB(Upper Memory Area(UMA; 메모리 영역)에 하드웨어 주소 지정 공간을 허용하기 위한 것입니다.알려진 바와 같이 640k 장벽을 극복하는 방법에는 286 이후의 x86 프로세서에서 사용할 수 있는 특별한 어드레싱 모드를 사용하는 것이 포함됩니다.총 주소 공간 1MB는 8088 CPU에 부과된20비트 주소 공간 제한의 결과입니다.

일부 서드파티 유틸리티는 컬러 비디오 버퍼 공간을 사용하여 640k의 기존 메모리 영역 상단에 메모리를 추가하여 하드웨어 어댑터가 사용하는 기본 주소까지 메모리를 확장할 수 있습니다.이것에 의해, 최종적으로 MDA 베이스 주소까지 RAM이 다시 채워질 가능성이 있습니다.

하드웨어 확장을 통해 8086 CPU가 페이징 메모리를 통해 처리할 수 있는 것보다 더 많은 메모리에 액세스할 수 있었습니다.이 메모리를 확장 메모리라고 합니다.업계 표준은 Lotus, Intel 및 Microsoft로 구성된 LIM 컨소시엄에 의해 개발되었습니다.이 표준은 확장 메모리 사양(EMS)입니다.확장 메모리 하드웨어의 메모리 페이지는 UMA 공간의 빈 영역에 있는 주소 지정 창을 통해 액세스할 수 있으며, 다른 메모리에 액세스하기 위해 필요한 경우 다른 페이지로 교환하여 액세스할 수 있습니다.EMS는 16MB의 공간을 지원했습니다.

286 CPU 아키텍처의 쿼크를 사용하면 x86 아키텍처의 20비트어드레싱의 1MB 제한을 넘는 최초의 64KB로서 HMA(High Memory Area)에 액세스 할 수 있었습니다.

286 CPU 아키텍처의 24비트 메모리 어드레싱 기능을 사용하여 총 16MB의 주소 공간에 액세스할 수 있었습니다.1 MB 제한을 넘는 메모리를 확장 메모리라고 부릅니다.그러나 640KB와 1MB 사이의 영역은 IBM PC 호환기기에서 하드웨어 주소 지정을 위해 예약되었습니다.20비트 주소로 제한된 DOS 및 기타 리얼 모드 프로그램은 확장 메모리의 EMS 에뮬레이션 또는 확장 메모리의 EMS 아날로그를 통해서만 이 공간에 액세스할 수 있습니다.Microsoft 는, 확장 메모리 사양(XMS)이라고 불리는 표준을 개발했습니다.HMA 상단의 메모리에 액세스 하려면 , 286 CPU 의 보호 모드를 사용할 필요가 있습니다.

64.99DPMI달러이러한 표준에서는 EMS 및 XMS에서 사용되는 페이징 방식 대신 16MB 공간에 직접 액세스할 수 있습니다.

16비트 OS/2 RAM 제한

16비트 OS/2는 운영체제로 설계된 여유 공간을 위해 15MB로 제한되었습니다.16 MB의 24 비트주소 공간 중 상위1 MB는 비메모리용으로 예약되어 있습니다(16 MB ~15 MB).

32비트 x86 RAM 제한

32비트 x86 프로세서의 비PAE 모드에서는 사용 가능한 RAM이 4GB 미만으로 제한될 수 있습니다.메모리와 주소 공간의 제한은 플랫폼과 운영 체제에 따라 다릅니다.32비트 플랫폼의 물리 메모리의 제한은 물리 주소 확장(PAE)의 유무에 의해서도 다릅니다.PAE를 사용하면 32비트 시스템에서는 4GB 이상의 물리 메모리를 사용할 수 있습니다.

PAE 및 64비트 시스템은 x86 프로세서의 최대 주소 공간까지 주소를 지정할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "AMD64 Programmer's Manual Volume 2: System Programming" (PDF). Advanced Micro Devices. December 2016. p. 120.
  2. ^ "Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide, Part 1" (PDF). Intel. September 2016. p. 4-2.
  3. ^ "ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile". pp. D4-1723, D4-1724, D4-1731.
  4. ^ http://infocenter.arm.com/help/topic/com.arm.doc.den0001c/DEN0001C_principles_of_arm_memory_maps.pdf[베어 URL PDF]

외부 링크