Published on

Memory

Authors
  • avatar
    Name
    유사공대생
    Twitter

메모리

메모리는 집이 빈틈없이 늘어선 거리와 같다. 모든 집은 크기가 똑같고 모든 집에는 정해진 개수 만큼 비트를 저장할 수 있는 방이 있다. 컴퓨터를 만드는 규칙에는 각 집마다 1바이트를 저장한다고 되어 있다. 실제 거리와 마찬가지로 각 집에는 주소address가 부여된다. 주소는 그냥 숫자일 뿐이다. 여러분의 컴퓨터 메모리 크기가 64MiB라면, 전체는 64X1,024 X I,024 = 67,108,864바이트(또는 536,870,912비트)다. 각 바이트에는 0부터 67,108,863까지 주소가 붙어 있다. (1부터 시작 하고 기껏해야 몇천 번까지밖에 없는) 실제 거리와 달리 컴퓨터에서는 이런 주소가 의미가 있다.

‘3 메모리 길’처럼 구체적인 주소에 있는 메모리를 가리킬 때 메모리 위치(memory location)라는 말을 자주 사용한다

image

비트, 바이트, 킬로바이트, 메가바이트

  • bit = 0101010101에서 0 또는 1이 들어가는 자리를 1 bit라고 한다.
  • 1byte = 8bit
  • 1KB = 1024byte
  • 1MB = 1024KB
  • 1GB = 1024MB
  • 1TB = 1024GB

메모리의 정보처리 방식

메모리의 기본 단위는 바이트이지만, 바이트 단위로만 데이터를 읽지는 않는다. 예를 들어, 32비트 컴퓨터는 보통 메모리를 4바이트 덩어리로, 64비트 컴퓨터는 메모리를 8바이트 덩어리로 구성한다.

왜 이렇게 구성하는 것인가? 이는 마치 1차선 도로 대신 4차선이나 8차선 고속도로를 사용하는 것과 비슷하다. 차선이 더 많으면 더 많은 메모리를 데이터 버스에 실을 수 있기 때문에 더 많은 양의 데이터를 처리할 수 있다.

32비트 컴퓨터에서는 4바이트를, 64비트 컴퓨터에서는 8바이트를 사용하기 때문에 긴 워드의 주소를 지정하는 방법은 1바이트의 주소를 지정하는 방식과는 다르다.

  • 워드: 워드는 컴퓨터에 따라 다르다. 여기서는 16비트를 워드, 32비트를 긴 워드라고 부른다.

image

도심을 오가는 비트들은 좌석이 4개인(4 차선에 걸친) 버스를 사용해 오가며, 버스 좌석은 차선마다 하나씩이다. 현대 컴퓨터는 이 버스는 한 건물에만 정차해 비트를 태워 도심으로 돌아온다. 주소가 5, 6, 7, 8인 바이트를 사용하는 긴 워드를 사용할 수는 없다는 말이다. 한번은 1번 주소, 한번은 2번 주소에 들러야 한다.

image

위 그림과 같이 한번에 두 건물에 걸쳐 있는 데이터를 읽는 경우를 정렬이 맞지 않는 접근이라고 부른다.

도심을 오가는 버스의 각 자리에는 누가 어떻게 앉을까? 긴 단어의 경우에 가장 왼쪽 자리에 0번 바이트가 들어갈까 3번 바이트가 들어갈까?

사용하는 프로세서에 따라 순서가 달라진다. 두 방식은 모두 사용되며 어느 방식을 사용할지는 프로세서를 설계하는 사람의 마음에 달렸다.

실제로 엔디안이라는 용어로 이런 차이를 표현한다.

image

인텔 프로세서 같은 기계에서는 0번 바이트가 가장 오른쪽 자리에 간다. 모토로라 프로세서 같은 기계는 0번 바이트가 가장 왼쪽에 간다.

한 시스템에서 다른 시스템으로 데이터를 전송할 때는 엔디안을 염두에 둬야 한다. 엔디안을 부시하면 데이터 순서가 뒤섞일 수 있다. 좌석 배정이 서로 다르기 때문이다.