Memory
youngwiki
상위 문서: 컴퓨터 시스템
개요
memory(메모리)는 개념적으로 a large array of bytes를 의미한다. 이때 각각의 byte는 그에 대한 address를 가지고 있다.[1] 또한 메모리에 있는 데이터는 CPU와 주고받아지며, 이를 통해 프로그램이 메모리에 address를 사용하여 접근할 수 있다. 이때 다음과 같은 특성을 가진다.
- 프로그램은 다수의 byte에 동시에 접근할 수 있다. 예를 들어 0x200에서 시작하는 4개의
- C에서의 pointer 변수는 address 값을 의미한다.
- 모든 address가 사용되는 것은 아니며, 사용되지 않는 주소값에 접근하면 오류가 발생한다.
- 각각의 동작하는 프로그램은 private address space를 가지며, 해당 space에는 다른 프로그램이 접근할 수 없다.
Machine Word

컴퓨터는 CPU가 가장 효율적으로 다룰 수 있는 data의 크기인 word size를 가지고 있다. 이는 다음 세가지 중요한 의미를 가진다.
- word size는 CPU의 register 크기이다.
- word size는 CPU와 메모리간에 주고받을 수 있는 data의 가장 큰 data 크기이다.
- word size는 메모지 address의 크기이다.
옛날에는 대부분의 machine은 32-bit word를 사용했다. 따라서 address또한 4byte로 구성되며, 그 범위는 0 ~232-1에 해당한다.[2]
요즘은 대부분의 machine이 64-bit word를 사용한다. 따라서 address또한 8byte로 구성되며, 그 범위는 0 ~264-1에 해당한다.[3]
Endianness
컴퓨터가 bit들을 저장하는 byte ordering을 endianness라고 한다. 자세한 내용은 endianness를 참조하십시오.