6메모리와 캐시메모리

6.1 RAM의 특징과 종류

주기억장치 RAM부터 알아보자.
크게 RAM과 ROM이 있고 메모리는 RAM을 지칭하는 경우가 많다.

RAM크면뭐가좋나 DRAM SRAM SDRAM DDR SDRAM이 뭘까?

6.1.1 RAM의 특징

CPU가 메모리로부터 데이터를 가져온다.
RAM은 실행할 대상을 저장한다. 그런데 저장한 내용을 전원이 꺼지면 지워진다.
그래서 보조기억장치인 대용량 저장장치가 필요하다. 즉 보관할 대상을 저장한다.

즉 램은 휘발성 저장장치이다.

6.1.2 램의 용량과 성능

램이 크면 뭐가 좋을까 램의 용량이 컴퓨터 성능에 어떤 영향이 미칠까?

램이 작을 경우를 알아보면 클때를 알 수 있다.
보조기억장치에 프로그램 A B C가 있는데 램은 하나만 가져올 수 있다고 해보자.
CPU가 상호작용하는 것은 램이다. 만약 프로그램A 실행중에 B를 하고싶다면 한번에 여러개를 돌리는데 어려움이 있게 된다.

그래서 램이 큰게 좋다.

책장에 있는 책들을 책상에 가져와서 읽는데 비유해보자.
책장이 크면 정말 많은 책(데이터 프로그램)을 가져올 수 있다.
책상이 크다면 미리 가져다 두고 사용하면된다. 그런데 책상이 작다면 여러번 다녀와야한다.
그래서 메모리 크기는 성능에 이렇게 영향을 미친다

6.1.3 RAM의종류

6.1.3.1 DRAM

Dynamic RAM
동적의 램
저장된 데이터가 동적으로 사라지는 램이다.
데이터 소멸을 막기 위해 주기적으로 재활성화해야한다.(refresh)

안좋아보이지만
일반적인 메모리로 사용된다.
상대적으로 소비전력이 낮고 저렴하고 집적도가 높기때문에 대용량으로 설계하기 용이하다.

6.1.3.2 SRAM

Static RAM
정적의 램이다.
저장된 데이터가 정적(사라지지않는) RAM
전원이 연결되어있다면 데이터가 사라지지 않는다.

DRAM보다 일반적으로 더빠르다.
소비전력이 높고 가격이 높고 집적도가 낮아 대용량으로 설계할 필요가 없으나 빨라야하는 장치에 사용한다.
그래서 일반적으로 캐시메모리에 사용한다.

6.1.3.3 SDRAM

Synchronous DRAM

발전한 형태의 DRAM이다. SRAM과는 관계없다.
클럭 신호와 동기화된 DRAM이다.
클럭신호가 똑딱할때 한번에 하나씩 데이터를 주고받는 것이다.

6.1.3.4 DDR SDRAM

Double Data Rate SDRAM

발전한 형태의 SRAM이다.
최근 가장 대중적으로 사용한다.
대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다.

기본 SDRAM은 클럭신호마다 한번에 하나의 데이터만 보냈다.
DDR SDRAM은 한번에 여러 데이터를 보낼 수 있다.
그래서 더 많이 더빨리 데이터를 주고받을 수 있다.

DDR2 SDRAM은 길의 넓이가 더 넓다
요즘엔 DDR3 DDR4 까지 가고있다.

기본에 비해 2배 8배 16배가 늘어난다.

6.2 메모리의 주소공간

물리주소와 논리주소에 대해 알아보자 매우 중요하다.
현재까지는 주소가 하나만 있다고 설명했는데 CPU가 논리적으로 바라보는 주소와 실제 메모리 번지에 해당되는 물리주소가 있다.
왜 논리주소와 물리주소를 나누었는가 논리주소를 물리주소로 변환하는 방법이 무엇인가에 대해 알아보자.

CPU와 실행중인 프로그램(메모리에 있는 프로그램)은 혀재 메모리에 몇번지에 무엇이 저장되어있는지 알수있나?
-> 불 가 능 하다.

메모리에 저장된 값들은 시시각각 변하기때문이다.
새롭게 실행된 ㅣ프로그램은 새롭게 메모리에 적재
실행이 끝난 프로그램은 메모리에서 삭제
같은 프로그램을 실행하더라도 실행할따마다 주소가 달라진다.

이를 극복하기 위해 물리주소와 논리주소를 나눠놓는다.

6.2.1 물리주소와 논리주소

물리주소 :
메모리 입장에서 바라본 주소
말 그대로 정보가 실제로 저장된 하드웨어상의 주소

논리주소 :
CPU와 실행중인 프로그램입장에서 바라본 주소
실행중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소

논리주소는 각각의 실행중인 프로그램에 부여되어있고
각가 0번지부터 시작되는 각각에게 부여된 주소가 있다.

반면에 물리주소는 하드웨어에 저장되는 것이라 0번지는 하나뿐이다.
겹치는게 있을 수가 없다.

6.2.2 MMU 메모리 관리 장치

그렇다면 물리주소와 논리주소 간의 변환은 어떻게 이루어질까?

MMU(메모리 관리 장치)라는 하드웨어에 의해 변환된다.
CPU가 논리주소로 실행하면 MMU가 주소버스를 통해 물리주소로 변환해서 받아들이거나 출력한다.

MMU는 논리주소와 베이스 레지스터 값을 더하여 논리 주소를 물리주소로 변환한다.
베이스레지스터는 프로그램의 기준주소, 시작주소가 담겨있다.
논리주소는 얼마나 떨어져있느냐이다.

CPU -> 논리주소 100 -> MMU 베이스레지스터 15000 -> 물리주소 15000에서 100만큼 떨어진 곳
기준주소로부터 논리주소만큼 떨어진곳이 실제 주소이다.

이것은 대표적이고 기본적인 주소변환방법이다.

6.2.3 한계 레지스터

여기서 문제가 있다. 다른 프로그램을 침범하는 명령어를 실행하면안된다.

프로그램의 영역을 침범할수 있는 명령어릐 실행을 막는다.
베이스 레지스터가 실행주인 프로그램의 가장 작은 물리 주소를 저장한다면
한계 레지스터는 논리 주소의 최대 크기를 저장한다.

베이스 레지스터값 <= 프로그램 물리주소 범위 < 베이스 레지스터 + 한계레지스터 값

그래서 명령어가 한계레지스터보다 큰 범위를 넘어가려하면 인터럽트를 발생시켜 막는다.

2023.09.01

램의 기본은 알고있었는데
최근 램들 DDR4 DDR3이런식으로 붙어있는 이유를 알게되었다.

논리주소와 물리주소의 변환방법 기준을 알게 되었다.

'개념정리 > 컴퓨터 구조 및 운영체제' 카테고리의 다른 글

2023.09.06 컴퓨터구조  (0) 2023.09.06
2023.09.05 컴퓨터구조  (0) 2023.09.06
2023.08.30 컴퓨터구조  (0) 2023.08.30
2023.08.26 컴퓨터구조  (0) 2023.08.27
2023.08.25 컴퓨터 구조  (0) 2023.08.26

+ Recent posts