RAM의 특성과 종류
주기억장치의 종류에는 크게 RAM과 ROM 두 가지가 있고 메모리는 RAM을 지칭하는 경우가 많다. RAM은 휘발성 저장 장치이고 보조기억장치는 비휘발성 저장 장치이다. RAM이 작으면 여러 프로그램을 실행 할 수 있는 여력이 떨어진다. 프로그램을 보조기억장치에서 RAM이 가져와야 하기 때문이다. 반대로 RAM이 크면 프로그램이 전부 RAM 안에 있기 때문에 성능이 좋다. 즉 책장(보조기억장치)에서 책을 가져오냐 아니면 책상(RAM,메모리) 책을 미리 올려놓느냐인데 책상의 크기에 따라 속도가 달라지는 것이다.
DRAM
다이나믹 렘이다. 저장된 데이터가 동적으로 사라지는 RAM이다. 데이터 소멸을 막기 위해 주기적으로 재활성화 해야한다. 일반적으로 메모리로 사용된다. 상대적으로 소비전력이 낮고 저렴하고 집적도가 높아 대용량으로 설계하기 용이하기 때문이다.
SRAM
저장된 데이터가 정적인 (즉 사라지지 않는) RAM. DRAM 보다 일반적으로 더 빠르다. 일반적으로 캐시 메모리에서 사용되는데 상대적으로 소비전력이 높고 가격이 높고 집적도가 낮아 대용량으로 설계할 필요는 없으나 빨라야 하는 장치에 사용된다.
정리하자면 다음과 같다.
DRAM | SRAM | |
재충전 | 필요함 | 필요없음 |
속도 | 느림 | 빠름 |
가격 | 저렴함 | 비쌈 |
집적도 | 높음 | 낮음 |
소비 전력 | 적음 | 높음 |
사용 용도 | 주기억장치(RAM) | 캐시 메모리 |
SDRAM (Synchronous DRAM) : 특별한 (발전된 형태이다) DRAM. 클럭 신호와 동기화된 DRAM
DDR SDRAM (Double Data Rate SDRAM) : 특별한 SDRAM. 최근 가장 대중적으로 사용하는 RAM 으로 대역폭을 넓혀 속도를 빠르게 만들었다. 대역폭은 데이터를 주고 받는 길의 너비라고 할 수 있다.
메모리의 주소 공간
CPU와 실행 중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 다 알지 못한다. 메모리에 저장된 값들은 시시각각 변하기 때문이다. 새롭게 실행되는 프로그램은 새롭게 메모리에 적재되고, 실행이 끝난 프로그램은 메모리에서 삭제되고, 같은 프로그램을 실행하더라도 실행할 때마다 적재된느 주소가 달라지는 등등. 이러한 점을 극복하기 위해 주소 체계를 물리 주소와 논리 주소로 나누었다.
물리 주소 : 메모리 입장에서 바라본 주소로 말 그대로 정보가 실제로 저장된 하드웨어 상의 주소
논리 주소 : CPU와 실행 중인 프로그램 입장에서 바라본 주소. 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소.
MMU(메모리 관리장치) : 논리 주소와 베이스 레지스터 값(프로그램의 기준 주소)을 더하여 논리 주소를 물리 주소로 변환.
예를 들어 프로그램 A가 15000번지부터 16000번지까지 저장이 되어있을 때 CPU에서 프로그램 A의 100번지를 삭제하라는 명령을 실행하게 되면 MMU에서 베이스 레지스터에서 시작주소인 15000번지의 값과 논리주소 100을 더해서 15100번지의 데이터를 삭제하게 된다. 즉 베이스 레지스터에는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하고 논리 주소는 그 프로그램의 시작점으로부터 떨어진 거리라고 할 수 있겠다.
물론 다른 프로그램의 영역을 침범하는 명령어는 실행할 수 없기 때문에 한계 레지스터가 존재한다.
한계 레지스터 : 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막으며 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 장소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장한다.
즉 식을 세우면
베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터+한계 레지스터 값
이 된다
CPU는 메모리에 접근하기 전 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사하여 실행 중인 프로그램의 독립적인 실행공간을 확보하고 하나의 프로그램이 다른 프로그램을 침범하지 못하게 보호한다.
캐시 메모리
CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 느리다. CPU와 가까운 저장 장치는 빠르고 멀리 있는 저장 장치는 느리며 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.
낮은 가격대의 대용량 저장 장치를 원하면 느린 속도는 감수해야 하며 빠른 속도의 저장 장치를 원한다면 작은 용량과 비싼 가격은 감수해야 한다.
저장장치들은 CPU에 얼마나 가까운가를 기준으로 계층적으로 나타낼 수 있다.

캐시메모리는 CPU와 메모리 사이에 위치한 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치이다. CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생했다.
메모리는 물건이 많지만 집에서 먼 대형 마트, 캐시 메모리는 물건이 많지 않아도 집 근처에 있는 편의점으로 비유할 수 있다.
계층적 캐시 메모리 (L1-L2-L3 캐시) : CPU(코어) dksdp L1,L2 캐시가 있고 L3 캐시는 코어 외부에 위치
멀티코어 프로세서의 캐시 메모리 : 각각의 코어에 L1,L2 가 있고 L3는 공유한다. 혹은 명령어랑 데이터를 저장하는 캐시 메모리를 각각 나누는 분리형 캐시 역시 있다.
참조 지역성의 원리
캐시 메모리는 메모리보다 용량이 작다. 당연하게도 메모리의 모든 내용을 저장할 수는 없다. 그러면 CPU가 자주 사용할 법한 내용을 예측해서 저장해야 하며 예측이 맞았을 경우 캐시 히트, 틀리면 캐시 미스라고 표현한다.
캐시 적중률 = 캐시 히트 횟수/(캐시 히트 횟수 + 캐시 미스 회수)
즉 CPU 가 사용할 법한 데이터를 잘 예측해야 한다. 이 때 CPU가 사용할 법한 데이터를 예측하는 방법이 참조 지역성의 원리이다. 이는 CPU가 메모리에 접근할 때 주된 경향을 바탕으로 만들어진 원리인데 CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다. 또 접근한 메모리 공간 근처를 접근하려는 경향이 있다. 이를 공간 지역성이라고 하는데 실행하려는 프로그램은 관련된 데이터들이 모여서 저장되어 있는 경향이 있기 때문이다. 이른 통해서 CPU가 사용할 법한 데이터를 예측하여 캐시 메모리에 저장한다.
'CS' 카테고리의 다른 글
[CS] 컴퓨터 구조 (7) 입출력장치 (0) | 2023.07.13 |
---|---|
[CS] 컴퓨터 구조 (7) 보조기억장치 (0) | 2023.07.06 |
[CS] 컴퓨터 구조 (5) CPU 설계 기법 (0) | 2023.06.28 |
[CS] 컴퓨터 구조 (4) ALU와 제어장치 (0) | 2023.06.27 |
[CS] 컴퓨터 구조 (3) CPU의 작동 원리 (0) | 2023.06.15 |