06-1. RAM의 특징과 종류
RAM의 특징
- RAM은 실행할 프로그램의 명령어와 데이터가 저장됨
- 휘발성 저장 장치는 전원을 끄면 저장된 내용이 사라지는 특징을 가지고 있음
- 반면 비휘발성 저장 장치는 전원이 꺼져도 저장된 내용이 유지되며, 하드 디스크나, SSD, CD-ROM, USB 메모리 등이 있음
- 보조기억장치는 전원을 꺼도 내용을 유지하지만, CPU는 보조 기억장치에 직접 접근하지 못함
- 비휘발성 저장 장치는 보관할 대상을 저장하고, 휘발성 저장 장치인 RAM에는 실행할 대상을 저장함
- CPU가 실행하고 싶은 프로그램이 보조기억 장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행함
RAM의 용량과 성능
- CPU가 실행하고 싶은 프로그램이 있다면 이를 RAM으로 가져와야 함
- RAM 용량이 작다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어짐
- 하지만 RAM 용량이 충분히 크다면 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장해 빠르게 실행 가능o
if?
- 만약에 RAM 용량이 무지막하게 크다면 프로그램 속돈느 그에 비례하여 빨라질까요?
a : RAM 용량이 많아진다면 프로그램의 실행속도가 어느정도 커지는 것은 맞지만 속도가 필요이상으로 커지면
속도가 그에 비례하여 증가하지 x
RAM의 종류
DRAM
- Dynamic RAM의 준말 영어로는 동적의 의미 함
- 이는 저장된 데이터가 동적으로 변하는 RAM
- 즉 DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM
- DRAM은 데이터의 소멸을 막기위해 일정주기로 데이터를 재활성화(다시 저장)해야 함
- 이런 단점에도 불구하고 우리가 일반적으로 메모리로써 사용하는 RAM은 DRAM임
- 소비 전력이 비교적 낮고, 저렴하고, 집적도가 높기 때문에 대용량으로 설계하기가 용이함
SRAM
- Static RAM의 준말 영어로는 정적의를 의미 함
- 이는 저장된 데이터가 변하지 않는 RAM을 의미
- 시간이 지나도 저장된 데이터가 사라지지 않는다는 것이 특징
- 당연하게 주기적으로 데이터를 재활화할 필요도 없음
- 그리고 DRAM 보다 속도가 빠름!!
- 이런 장점에도 불구하고 사람들은 DRAM을 더 많이 씀
- 집적도도 낮고, 소비 전력도 크며, 가격도 더 비싸기 때문이다
DRAM | SRAM | |
재충전 | 필요함 | 필요 없음 |
속도 | 느림 | 빠름 |
가격 | 저렴한 | 비쌈 |
소비 전력 | 적음 | 높음 |
사용 용도 | 주기억장치(RAM) | 캐시 메모리 |
SDRAM
- 클럭 신호와 동기화된, 발전된 형태의 DRAM
- 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있음
- SDRAM은 클럭을 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM
DDR SDRAM
- 최근에 들어 흔히 많이 사용되는 RAM
- 대역폭을 넓여 속도를 빠르게 만든 SDRAM
- 대역폭이란 데이터를 주고 받는 길의 너비를 얘기함
- 예를 들어 한 클럭에 하나씩 정보를 주고 받을 수 있는 SDRAM과 비교했을 때 너비가 두 배인 도로임
- 전송 속도도 당연하게도 두 배나 빠름
- 이런 이유에서 한 클럭당 주고 받을 수 있는 SDRAM을 SDR SDRAM 이라 부르기도 함
참고로!!
- DDR2 SDRAM은 SDR SDRAM 보다 너비가 네 배 넓은 도로와도 같음
- DDR3 SDRAM은 DDR2 SDRAM보다 대역폭이 두 배 넓음
- SDR SDRAM 보다 대역폭이 여덟 배 넓은 SDRAM임
- DDR4 SDRAM은 SDR SDRAM 보다 열 여섯배 높은 개역폭을 가짐
06-2. 메모리의 주소 공간
물리 주소와 논리 주소
- 물리 주소는 말 그대로 정보가 실제로 저장된 하드웨어 상의 주소를 의미
- 논리 주소는 실행 중인 프로그램 각각애게 부여된 0번지부터 시작된 주소
- 메모리가 사용중인 주소는 하드웨어 상의 실제 주소인 물리주소
- CPU와 실행 중인 프로그램이 사용하는 주소는 각각의 프로그램이 부여된 논리주소
- 논리 주소와 물리 주소간의 변환은 CPU의 주소 버스 사이에 위치한 메모리 관리 장치 MMU 라는 하드웨어에 의해 수행됨
- MMU는 CPU가 발생시킨 논리 주소에 베이스 레이스터 값을 더하여 논리 주소를 물리 주소로 변환함
- 예를 들어 현재 베이스 레이스터에 15000이 저장되어 있고 CPU가 발생시킨 논리 주소가 100번지라면 이는 15100번지 주소가 됨
- 베이스 레지스터는 프로그램의 가장 작은 물리주소, 즉 첫번쨰 프로그램의 첫 물리 주소를 저장하는 셈
- 논리 주소는 프로그램의 시작점으로부터 떨어진 거리인 셈
메모리 보호 기법
- 다른 프로그램의 영역을 침범 할 수 있는 명령어는 위험함
- 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 해야 함
- 이는 한계 레지스터 라는 레지스터가 담당함
- 한계 레지스터는 논리 주소의 최대 크기를 저장함
- CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안 됨
- 한계 레지스터 보다 높은 주소 값에 접근하는 것은 프로그램의 범위에 벗어난 메모리 공간에 접근하는 것보다 같기 때문
- CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터 보다 적은지를 항상 검사해야 함
- 만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려 하면 인터럽트(트랩)을 발생시켜 실행을 중단함
06-3. 캐시 메모리
저장 장치 계층 구조
- 저장 장치가 가지고 있는 명제는 다음과 같다
- CPU가 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다
- 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다
- CPU와 가장 가까운 레지스터는 일반적으로 RAM보다 용량은 작지만, 접근 시간이 압도적으로 빠르고 비쌈
- 그리고 USB 메모리보다 CPU에 가까운 RAM은 접근시간이 빠르지만, 같은 용량이라 할지라도 가격은 더 비쌈
- 저장 장치 계층 구조는 컴퓨터가 사용하는 저장 장치들은 CPU에 얼마나 가까운가를 기준으로 계층적으로 나타낼 수 있음
캐시 메모리
- 캐시 메모리는 CPU와 메모리 사이에 위치하며, 레지스터보다 용량이 크고 메모리 보다 빠른 SRAM 기반 저장장치
- CPU와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 만들어짐
- 우리가 사용하는 컴퓨터 내부에는 여러 개의 캐시 메모리가 있음
- 그리고 이 캐시들은 코어와 가까운 순서대로 계층을 구성함
- 코어와 가까운 캐시를 L1, L2, L3로 나뉨
- 분리형 캐시란 L1 캐시의 속도를 빠르게 만들게 하기 위해서 분리해 놓은 L1I 캐시와 L1D 캐시
참조 지역성 원리
- 캐시 히트란 자주 사용할 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리내 데이터가 CPU에서 활용되는 경우
- 캐시 미스는 예측이 틀려서 필요한 데이터를 직접 가져와야 하는 경우
- 참고로 캐시가 히트되는 비율을 캐시 적중률이라 하고 다음과 같이 계산함
캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
- 캐시 메모리는 한 가지 원칙에 따라 메모리로 부터 가져올 데이터를 결정함
- 참조 지역성의 원리는 CPU가 메모리에 접근할 때의 주된 경향으로 만들어진 원리
- 시간 지역성이란 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
- 공간 지역성은 접근한 메모리 공간 근처를 접근하려는 경향
- 예를 들어 워드 프로세서가 프로그램을 실행 한다면 모여 있는 공간 근처를 집중적으로 접근하고, 사용자가 입력을 할 적에는
입력 기능이 모여 있는 공간 근처로 접근하게 되는 것을 말함
- 캐시 메모리는 이렇듯 참조 지역성의 원리에 입각해 CPU가 사용할 법한 데이터를 예측함
'공부 기록일지' 카테고리의 다른 글
유성이의 공부일지(8) - 혼자공부하는 컴퓨터 구조 + 운영체제 8장 (1) | 2024.07.09 |
---|---|
유성이의 공부일지(7) - 혼자공부하는 컴퓨터 구조 + 운영체제 7장 (0) | 2024.07.07 |
유성이의 공부일지(5) - 혼자공부하는 컴퓨터 구조 + 운영체제 5장 (0) | 2024.07.04 |
유성이의 공부일지(4) - 혼자공부하는 컴퓨터 구조 + 운영체제 4장 (0) | 2024.07.03 |
유성이의 공부일지(3) - 혼자공부하는 컴퓨터 구조 + 운영체제 3장 (0) | 2024.07.02 |