본문 바로가기
하드웨어/메모리 반도체

메모리가 왜 컴퓨터의 전체 성능을 좌우할까?

by bantomak 2023. 7. 28.

메모리가 왜 컴퓨터의 전체 성능을 좌우할까?

CPU가 일을 하려면 일의 내용이 CPU로 전달이 되어야 한다. 이 명령어나 데이터는 파일에 담겨있다. 파일은 하드디스크에 저장되어 있다. 파일의 내용이 하드 디스크에서 CPU까지 전달되려면 데이터가 BUS를 타야 한다. 컴퓨터 안에도 버스가 있다. 컴퓨터 안의 데이터들을 실어 날라주는 연결선이다. 데이터 버스 이렇게 부른다.

 

그러면 하드디스크에 있는 파일의 일부가 이 버스를 타고 CPU로 올라간다. CPU에서 일처리가 끝나면 결과가 다시 버스를 타고 어디론가 흘러간다. 이렇게 버스로 컴퓨터 안에서 오간다. 이때 문제는 버스가 상대적으로 느리다는 것이다. 상대적이라는 말을 이해해야 하는 것은 컴퓨터 안에서 데이터가 오가는 속도는 사실 굉장히 빠르다. 사실 하드디스크가 느리다고 말하지만, 엄청난 속도로 실린더를 돌고 있다. CPU가 빠른 처리를 하기 위해 하드디스크의 파일의 내용 일부를 메모리에 올려놓고 수행한다.

 

여기서 자꾸 프로그램의 일부라고 하는 이유는 프로그램이 얼마나 큰가 그 파일이 메모리에 한꺼번에 다 올라가는 것이 아니다. 메모리는 매우 한정된 공간이기때문에 프로그램 중 일부가 올라가는 것이다. 메모리는 CPU가 하고자 하는 일을 임시 저장한다. 메모리는 하드디스크보다 훨씬 속도가 빠르기 때문에 CPU의 일거리를 바로바로 줄 수가 있다. 그래서 CPU가 일을 얼마나 빨리 처리하느냐도 중요하지만, 옆에 일을 얼마나 많이 잘 대기 시켜줄 수 있느냐도 중요하다. 메모리는 그래서 일을 쌓아두는 임시 창고 같은 곳이다. 그래서 그 창고의 크기가 중요하다. 그래서 CPU는 속도가 중요하고, 메모리는 크기가 중요하다. 사실 메모리를 많이 쓰게 되면 속도는 빨라질 수 있다. 하지만 창고는 크지만 일처리가 느리다면 일이 빨라지는 것은 아닐 것이다. 전체 컴퓨터 성능에는 영향을 미친다. 메모리가 많아야 하는 경우는 어떤 경우 일까?

일처리를 빨리만 해야 한다면 사실 CPU의 성능이 중요할텐데, 메모리가 많아지면 성능이 좋아질 수 있는 경우는 많은 양의 데이터를 한꺼번에 메모리에 올려 실행하는 프로그램이 있는 경우이다. 대표적인 것이 게임이다. 최근 게임들을 보면 용량이 엄청 크다. 그래픽 사양도 높다. 한꺼번에 메모리에 올려야 할 파일도 많아진다. 그리고 여러 개의 작업을 동시에 많이 하는 경우라면 많은 양의 메모리가 요구된다. 이유는 메모리에 여러 개의 프로그램의 일부분이 올라가기 때문이다.

 

메모리 동작 원리

일반적으로 메모리라고 하면 기억이라는 개념이다. 컴퓨터에서 말하는 메모리는 기억소자, 즉 반도체를 의미한다. 반도체는 특성상 전류를 흐르게도 하고 흐르지 않게도 하는 특징이 있다. 이를 이용해서 임시적인 내용들을 기억하게 만드는 것이다. 컴퓨터는 1과 0이라는 값을 저장하기 때문에 기억 소자는 상태가 ON인지 OFF인지 수준으로 기억을 하게 되는 것이다. 반도체 기억장치의 기본 요소는 기억 소자(memory cell)이다. 모든 반도체 기억 소자들이 갖는 공통적인 성질이 있다. 두 개의 안정된 상태를 갖는다. 1과 0이다. 상태를 세트 할 수 있도록 쓰일 수 있다. 상태를 감지할 수 있도록 읽힐 수 있다. 쓰는(write) 동작인 경우는 기억 소자의 상태를 1 또는 0으로 만들어 준다는 의미이고 읽기(read) 동작이라는 것은 그 소자가 갖는 현재 상태가 어떤 상태인지를 확인하는 개념이다.

 

쓰기와 읽기

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

 

메모리 동작

메모리는 정보에 대해서 1 또는 0으로 저장되는데, 이 정보를 유지하기 위해서는 전기적으로 재충전이 되어야 한다. 이를 메모리 리프래시라고 하며 메모리 타이밍이라고도 한다. 메모리는 정보를 저장(write)하거나 저장된 정보를 읽기(read) 위하여 바둑판과 같이 열(row, 가로줄)과 행(column, 세로줄)으로 구성된 행렬구조의 주소를 가지고 있다. 이를 두고 CAS(Column Address Stobe)와 RAS(row Address Strobe)라 부르는데 프로세서가 메모리에 있는 정보를 읽거나 메모리에 정보를 기록할 때는 먼저 가로줄에 신호(RAS)를 보내고 나서 세로줄에 신호(CAS)를 보내어 주소를 확인한다. 어떤 주소에 어떤 데이터가 들어있는지 아니면 비어 있는 지를 CAS가 담당하며 CAS 신호가 없어지면 그 주소에 다시 새로운 정보를 저장한다.

 

메모리 동작 과정

메모리의 동작 과정은 다음과 같다.

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

 

출처

 

1.2.0. 메모리가 왜 컴퓨터의 전체 성능을 좌우할까?

CPU가 일을 하려면 일의 내용이 CPU로 전달이 되어야 한다. 이 명령어나 데이터는 파일에 일부로 담겨있다. 파일은 하드 디스크에 저장이 되어 있다. 파일의 일부 내용이 하드 …

wikidocs.net

'하드웨어 > 메모리 반도체' 카테고리의 다른 글

DDR5란 무엇인가?  (22) 2023.07.03
HDD에서 SSD로의 전환  (4) 2023.04.07
메모리 주소(Memory Address)에 대해서  (0) 2023.03.08
SRAM과 DRAM에 대하여  (2) 2023.03.03

댓글