본문 바로가기
컴퓨터구조

[키워드로 풀어본 컴퓨터구조] 03. 메모리(Memory)

by Lizardee 2023. 7. 21.
메모리(Memory)

컴퓨터에서 말하는 메모리는 기억 소자, 즉 반도체를 의미한다. 반도체는 특성상 전류를 흐르게도 하고 흐르지 않게도 하는 특징이 있다. 이를 이용해서 임시적인 내용들을 기억하게 만드는 것이다.

 

반도체 기억장치의 기본 요소는 기억 소자(memory cell)이다. 모든 반도체 기억 소자들이 갖는 공통적인 성질이 있다. 두 개의 안정된 상태를 갖는다. 1과 0이다. 상태를 세트할 수 있도록 쓰일 수 있다(write). 상태를 감지할 수 있도록 읽힐 수 있다(read). 쓰는 도악인 경우에는 기억 소자의 상태를 1 또는 0으로 만들어준다는 의미이고, 읽기 동작이라는 것은 그 소자가 갖는 현재 상태가 어떠한 상태인지 알아 오는 개념이다.

 

기억 장소라는 개념에서 확장하면, 저장 장소라는 개념의 하드디스크, CD/DVD, USB 저장장치와 같은 보조 기억장치까지를 의미한다. 메모리가 이런 저장장치와 다른 점은 휘발성이라는 특징이다. 시스템이 활성화된 상태에서 그 값을 기억하고 있다가 다시 시스템의 shutdown과 함께 지워지게 된다. 그리고 저장/읽기 속도 면에서 현저하게 차이가 난다.

 

 

메모리 동작

▶ 메모리 리프레시(메모리 타이밍)

메모리는 정보에 대해서 1 또는 0으로 저장이 되는데, 이 정보를 유지하기 위해서는 전기적으로 연속으로 재충전이 되어야 한다. 이를 메모리 리프레시 또는 메모리 타이밍이라고 한다.

 

메모리는 정보를 저장(write)하거나, 저장된 정보를 읽기(read) 위하여 바둑판과 같이 행(raw, 가로줄)과 열(column, 세로줄)으로 구성된 matrix(행렬) 구조의 주소(address)를 가지고 있다. 이를 두고 CAS(Column Address Strobe)RAS(Row Address Strobe)라 부르는데, 프로세서가 메모리에 있는 정보를 읽거나 메모리에 정보를 기록할 때는 먼저 행(raw)에 신호(RAS)를 보내고 나서 열(column)에 신호(CAS)를 보내어, 주소를 확인한다. 

 

▶ 메모리 동작 과정

: CPU --> 메인보드 칩셋 --> 메모리 --> 메모리 셀 --> 출력 버퍼 --> 메인보드 칩셋 --> CPU

  1. CPU메인보드 칩셋에 데이터를 요청하면, 메인보드 칩셋은 그 데이터가 있는 곳의 행(raw) 주소를 메모리로 보낸다. 이것을 하는 데는 각각 1사이클(Hz)이 걸린다.
  2. 행 주소가 메모리의 행 주소 버퍼로 들어오면, 센스 앰프(semse amp)가 그 행에 들어 있는 모든 셀을 읽어낸다. 이렇게 그 행 부분을 읽는 신호는 RAS(row address strobe)라고 부르고, 읽는데 걸리는 시간은 RAS-to-CAS delay라고 한다. 이 과정은 2~3 사이클이 걸린다.
  3. 행 주소만으로는 필요한 데이터가 어디에 있는지 알 수 없으니, 이번에는 열(column) 주소를 받는다. 그러면 CAS(column address strobe) 신호가 일어나 정확한 열을 찾아낸다. 이때 걸리는 시간을 CAS latency라고 한다. 이것을 하는 데도 역시 2~3 사이클이 걸린다.
  4. 정확한 행과 열(raw, column)을 찾았으니 필요한 데이터를 찾은 셈이다. 메모리 셀에 있는 내용이 출력 버퍼(output buffer)로 옮겨진다. 이것을 하는 데는 1사이클이 걸린다.
  5. 마지막으로 메인보드 칩셋이 출력 버퍼의 내용을 읽고 CPU로 전달한다. 이때 각각 1사이클씩 모두 2사이클이 걸린다.

 

 

메모리 성능

메모리의 속도는 메모리가 CPU와 데이터를 주고받는 시간을 말한다. 이를 액세스라 부르며, 단위는 ns(nano second)로서, 메모리 속도의 기준이 된다.

 

리프레시 시간

메모리는 일정 시간마다 재충전을 해줘야 하는데(메모리 리프레시), 그렇지 않으면 정보는 사라지게 된다. 이 일정 시간을 리프레시 시간이라고 한다. 이는 메모리에서 한 번 읽고 나서 다시 읽을 수 있는 사이 시간을 말한다.

 

메모리 액세스 시간

메모리 액세스 시간은 데이터를 읽어 오라는 명령을 받고 데이터를 읽기 시작하기까지의 시간을 말한다.

CPU에서 명령어를 처리할 때 명령어가 갖는 주소인 CAS, RAS 데이터를 보낸다. CPU에 그 주소에 해당하는 값을 가져오게 되는 데 걸리는 시간이 액세스 시간이다.

 

사이클 시간

사이클 시간은 메모리 작업이 완료와 동시에 대기 신호를 내놓은 후, 다음 신호를 받을 준비가 되었다는 신호를 주기까지의 시간이다.

  • 사이클 시간 = 메모리 액세스 시간 + 리프레시 시간

 

 

메모리 분류

RAM(Random Access Memory)은 주기억장치(Main memory)에서 사용되며, 자료 저장 방식, 형태별, 사용처에 따라 메모리를 분류할 수 있다.

 

자료 저장 방식에 따른 분류

자료 저장 방식에 따른 분류로 정적인 방식/동적인 방식으로 나눌 수 있다.

이는 SRAM(Static RAM)과 DRAM(Dynamic RAM)으로 나뉜다. DRAM은 커패시터에 전하를 충전하는 방식으로, 데이터를 저장하는 기억 소자들로 이루어진 것이고, 저장 내용을 기억하기 위해서는 주기적인 재충전이 필요하다. SRAM, 정적인 방식은 flip-flop을 이용하여 고정된 값을 기억하는 방식으로, 재충전이 필요하지 않다.

SRAM과 DRAM의 비교

 

형태에 따른 분류

램 모듈의 형태상에 따라서 램과 소켓과 접촉하는 면의 핀 수에 따라서 30핀, 72핀, 184핀으로 나뉜다. 그리고 내부적인 선이나 형태에 따라서 구분이 된다.

메모리 형태에 따른 분류

 

사용처에 따른 분류

메모리 사용에 따른 분류

 

 

DRAM의 종류

▶ 동기식 DRAM(Synchronous DRAM)

가장 널리 사용되고 있는 DRAM의 형태는 동기식 DRAM(Synchronous DRAM)이다. 전통적인 DRAM과 달리 외부 클록 신호와 동기화되어, 대기상태 없이 프로세스/기억장치 버스의 전속력으로 실행되고 있는 프로세서와 데이터를 교환한다.

전통적인 DRAM의 경우, 프로세서는 주소와 제어신호를 기억장치로 보내서 읽히거나 쓰일 데이터를 가리킨다. 액세스 시간만큼 지연된 후 DRAM은 데이터를 쓰거나 읽는다. 

하지만 동기식 액세스는 시스템 클록의 제어하에 데이터를 받고 내보내게 된다.

 

▶ Rambus DRAM

인텔이 펜티엄과 이타늄 프로세서를 위해 채택하였다. RDRAM은 비동기식 블록 지향 프로토콜(asynchronous block-oriented protocol)을 이용하여 주소와 제어 정보를 저장한다. 기존에 사용되었던 RAS, CAS, R/W 신호에 의해서 제어되지 않고, 고속버스(high-speed bus)를 통해서 기억장치 요구를 받는다. 이를 통해서 기존 DRAM보다 상대적으로 속도가 향상된다.

 

▶ 인텔의 터보 메모리

최근에 노트북에 많이 도입되는 터보 메모리라는 이름으로 인텔에서 메모리를 만들었다. 랜덤 액세스 성능이 하드디스크보다 우수한 NAND 플래시 메모리를 별도의 캐시 영역으로 할당하여, 데스크톱과 비교해 느린 속도인 노트북 하드디스크의 퍼포먼스를 향상시키고, 노트북의 사용 환경에 맞는 서비스를 제공하기 위한 목적으로 개발되었다.

 

 


유비쿼터스 환경에서의 메모리 역할

실생활의 환경들이 유비쿼터스라는 이름으로 네트워크화됨에 따라서 정보의 집중, 전달, 저장 개념이 늘어나고 있는 추세이다. 디지털로의 전환 그리고 디지털 콘텐츠 등의 증가, 디지털 정보 등의 흐름 속에서 메모리의 역할은 빼놓을 수 없다. 메모리는 유비쿼터스 환경을 이루는 요소 기술이라 할 수 있다.