메모리(RAM)

0

RAM은 전원을 끄면 저장된 명령어와 데이터가 모두 날라가는 휘발성 저장 장치이다.

반면, 보조기억장치는 전원을 꺼도 내용을 유지한다.

cpu는 보조기억 장치에 직접 접근하지 못하기 때문에 보조기억 장치에는 저장할 대상

RAM에는 실행할 대상을 저장한다.

RAM이 크면 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장할 수 있어 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다.

RAM의 종류

  • DRAM(Dynamic RAM)

DRAM은 시간이 지나면 저장된 데이터가 점차 사라지기 때문에, 데이터의 소멸을 막기 위해 일정

주기로 데이터를 재활성화 해야한다.

  • SRAM(Static RAM)

SRAM 시간이 지나도 저장된 데이터가 사라지지 않기 때문에, 주기적으로 데이터를 재활성화 할 필

요가 없다. DRAM보다 일반적으로 빠르지만, DRAM보다 집적도가 낮고, 소비 전력도 크며, 가격도

더 비싸기 때문에 메모리에는 보통 DRAM이 사용되고, SRAM은 cache에 사용된다.

  • SDRAM(Synchronous Dynamic RAM)

클럭 신호에 맞춰 동작하며 클럭마다 cpu와 정보를 주고 받을 수 있는 DRAM

  • DDR SDRAM(Double Data Rate SDRAM)

데이터를 주고받는 길의 너비(대역폭)을 넓혀 한 클럭당 두 번씩 cpu와 데이터를 주고 받는다.

큰 대역폭으로 인해 주고받는 데이터의 양이 크기 때문에, 최근 가장 흔히 사용되는 RAM이다.

메모리의 주소 공간

메모리에는 새롭게 실행되는 프로그램이 시시때때로 적재되고, 실행이 끝난 프로그램은 삭제되기 때

문에 메모리에 저장된 정보는 시시각각 변한다.

그럼 cpu는 현재 실행되고 있는 프로그램이 메모리의 몇 번지에 있는지 어떻게 알까?

이 때문에 논리주소가 사용된다.

물리 주소와 논리 주소

물리주소는 말 그대로 정보가 실제로 저장된 하드웨어상의 주소를 의미한다.

실행중인 프로세스들은 저마다의 논리 주소를 지닌다.

실제 메모리가 0번지 부터 100번지 까지 있다면, 실행 중인 메모장, 게임, 인터넷 브라우져들은 각각의 0번지 부터

50번지 까지 있는 논리 주소를 가지고 있는 셈이다.

논리 주소를 물리 주소로 변환

메모리 관리 장치(MMU)는 이 논리주소를 물리 주소를 변환해 준다.

MMU는 cpu가 발생시킨 논리 주소에 베이스 레지스터 값을 더해서 물리 주소로 변환한다.

베이스 레지스터는 프로그램의 가장 작은 물리 주소가 저장되어있다.

만약 베이스 레지스터에 1000이 들어있고 논리 주소가 100이라면 실제 주소는 1100이 된다.

메모리 보호 기법

만약 메모장 프로그램이 물리 주소 1000번지 부터 1999번지 까지 사용하고있고, 게임이 2000번지

부터 2999까지 사용하고 있다 하자.

그럼 메모장과 게임은 각각 0번지 부터 999까지 논리 주소를 가질 것이다.

이때 메모장 프로그램에 1500번지에 데이터를 삭제하라는 명령어를 입력하면 게임의 2500번지인

게임의 데이터가 삭제 될 것이다.

한계 레지스터

이렇게 논리 주소를 벗어나 다른 프로그램의 영역을 침범하지 않게 한계 레지스터가 담당한다.

한계 레지스터는 논리 주소의 최대 크기를 저장해서 cpu가 한계 주소보다 큰 주소 값에 접근하려

할때 인터럽트를발생시켜 실행을 중단한다.

캐시 메모리

저장 장치 계층 구조

저장 장치에는 아래의 명제를 따른다

  • cpu와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
  • 속도가 가장 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다

컴퓨터가 사용하는 저장 장치들은 cpu에 얼마나 가까운가를 기준으로 계층적으로 나타낼 수 있다.

캐시 메모리

cpu가 메모리에 접근하는 시간은 cpu의 연산속도 보다 느리다. cpu는 메모리에 빈번히 접근해야

하므로 메모리에 접근하는 속도가 빨라야 한다. 이 때문에 캐시 메모리를 사용해야한다.

캐시 메모리의 종류

  • L1 캐시
  • L2 캐시
  • L3 캐시

캐시는 cpu와 가까운 순서대로 계층을 구성한다.

L1, L2, L3 순으로 cpu와 가깝고, 용량은 L3가 가장 크고 속도는 L1이 가장 빠르다.

캐시적중률

캐시에는 자주 사용될 것으로 예측한 데이터를 저장한다.

예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 cpu에서 활용될 경우를 캐시히트라 한다.

예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우를 캐시미스라 한다.

캐시 적중률 = 캐시 히트 횟수 / ( 캐시 히트 횟수 + 캐시 미스 횟수 ) 이다

대략 컴퓨터의 캐시 적중률은 85%~95% 이다.

참조 지역성의 원리

그럼 어떻게 자주 사용될 것을 예측할 수 있을까?

캐시 메모리는 참조 지역성의 원리에 의해 메모리로부터 가져올 데이터를 결정한다.

  • 시간 지역성

cpu는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.

  • 공간 지역성

cpu는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.

profile
https://www.youtube.com/watch?v=__9qLP846JE

0개의 댓글

관련 채용 정보