RAM의 특징과 종류
RAM의 특징
실행할 프로그램의 명령어와 데이터 저장
휘발성 저장 장치 : 전원을 끄면 저장된 내용 사라짐.
(비휘발성 저장 장치 : 전원을 꺼도 저장된 내용이 남아있음 (HDD,SDD,FLASH메모리 등등)
(※ ROM은 Read Only Memory로 읽기전용으로 부트로더 또는 CD ROM같이 읽어들이는 것만 가능합니다.)
RAM의 용량과 성능
RAM의 용량이 작을 경우, 보조기억장치에 액세스 하는 횟수가 많아짐. 프로그램 실행 속도 저하.
프로그램 명령어를 하나하나 옮겨야 하니 느림
RAM의 용량이 클 경우, 보조기억장치에 액세스 하는 횟수 적어짐. 프로그램 실행 속도 상승.
이미 저장된 프로그램 명령어를 바로 쓸 수 있음 -> 빨라짐
즉 RAM의 용량이 클수록 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다. 하지만 용량이 필요 이상으로 커졌을 때에는 속도가 그에 비례하여 증가하지 않는다.
RAM의 종류
DRAM (Dynamic RAM) : 저장된 데이터가 시간에 따라 사라지는 RAM (동적)
저장되는 데이터의 소멸을 막기위해 주기적으로 재충전 해줘야함
상대적으로 소비전력이 낮고,저렴하고, 집적도가 높다 -> 대용량으로 설계하기 용이함 ->
일반적으로 사용되기 쉬운 렘
SRAM (Static RAM) : 시간이 지나도 저장된 데이터가 사라지지 않는 RAM (정적)
일반적으로 DRAM보다 속도가 빠름
상대적으로 소비전력이 높고,가격도 높고, 집적도도 낮아 대용량으로 설계는 필요없으나 빠른 속도가 필요한 곳에 사용 ->
캐시 메모리 사용
DRAM | SRAM | |
재충전 | 필요함 | 필요 없음 |
속도 | 느림 | 빠름 |
가격 | 저렴 | 비쌈 |
집적도 | 높음 | 낮음 |
소비전력 | 적음 | 높음 |
사용 용도 | 주기억장치 | 캐시 메모리 |
SDRAM (Synchronous DRAM): 클럭 신호와 동기화된 DRAM
클럭신호에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM
DDR SDRAM (Double Data Rate SDRAM): 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
대역폭 : 데이터를 주고받는 길의 너비
가장 많이 사용되는 대중적인 RAM
SDR SDRAM(싱글 대역폭) VS DDR(더블 대역폭) SDRAM
-> 길이 하나보다 두개가 넓고 빠르다. 즉 DDR SDRAM이 두배 빠름
DDR SDRAM -> DDR2 SDRAM -> DDR3 SDRAM -> DDR4 SDRAM
-> 대역폭이 두배씩 늘어난다!
메모리의 주소 공간
물리 주소와 논리 주소
물리 주소: 메모리입장에서 바라본 주소 , 정보가 실제로 저장된 하드웨어상의 주소. -겹치는 주소가 없다!
논리 주소: CPU와 실행 중인 프로그램 입장에서 바라본 주소, 실행 중인 프로그램에 각각 부여된 0번지 부터 시작하는 주소 -겹치는 주소가 있을 수 있다.(중복이 있을 수 있음)
논리주소의 중복이 있을 수 있다 -> 같은 주소라 착각하는 오류 발생 -> 따라서 MMU가 필요하다
MMU (메모리 관리 장치): 논리 주소와 물리 주소를 변환해주는 장치.
-> CPU의 프로그램 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.
베이스 레지스터: 프로그램의 가장 작은 물리주소. 즉, 프로그램의 첫 물리주소를 저장.(기준주소)
논리 주소: 프로그램의 시작점으로부터의 거리.(떨어진 거리)
메모리 보호 기법
한계 레지스터
프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음
베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장함
베이스 레지스터 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터 값
즉 논리 주소의 최대 크기를 저장하여 물리적 주소를 벗어나는 명령어 실행을 막는 것!
만일 CPU가 접근하려는 논리 주소가 한계 레지스터가 저장한 값보다 크면 인터럽트를 발생시켜 막음
논리주소를 물리 주소로 바꾸는 순서
- 명령어 실행
- 명령어의 논리 주소값이 한계 레지스터 보다 작은지 비교 -> True : 통과 , False : 인터럽트 발생 (다른주소영역 침범하게됨)
- 베이스 레지스터 + 논리 주소 합산 -> 물리 주소
- 물리 주소에 명령어 실행
캐시 메모리
저장 장치 계층 구조
※ 우선 CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 느리다!
1.CPU와 가까운 저장장치는 빠르고 멀리있는 장치는 느리다
2. 속도가 빠른 저장 장치는 저장용량이 작고 비싸다
저장장치들은 CPU에 얼마만큼 가까운가를 기준으로 계층구조를 이렇게 그려볼 수 있다.
캐시메모리
CPU와 메모리 사이에 위치한 레지스터보다 용량이 크고 메모리보다 빠른 SRAM기반의 저장장치
CPU 연산속도와 메모리 접근속도의 차이를 조금이나마 줄이기 위해 탄생
CPU에서 사용할 일부 데이터를 미리 캐시메모리에 가지고 와서 쓰는 방식으로 빠르게 사용가능!
캐시메모리를 추가한 저장 장치 계층 구조!
계층적 캐시 메모리(L1 < L2 < L3)
저장장치와 마찬가지로 캐시 메모리 또한 CPU에 멀어질 수록 용량이 늘어나고 속도가 느려진다.
세부적인 저장 계층 구조
참조 지역성의 원리
캐시 메모리는 메모리보다 용량이 적다! 무엇을 저장해야 할까?
-> CPU가 자주 사용할 법한 내용을 예측하여 저장한다.
캐시 히트 : 예측이 맞을 경우
캐시 히트 : 캐시 메모리 내 데이터가 CPU에서 활용될 경우.
캐시 미스 :예측이 틀릴 경우
캐시 미스 : 캐시 메모리 내 데이터가 CPU에서 활용되지 못하고 주기억장치에서 직접 데이터를 가져와야 하는 경우.
캐시 적중률 : 캐시 히트 횟수 / ( 캐시 히트 횟수 + 캐시 미스 횟수 )
===> 캐시 적중률을 높여야 한다 --> CPU가 사용할 법한 데이터를 잘 예측해야 한다
참조 지역성의 원리
CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
1. CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다,
'컴퓨터 사이언스 > 컴퓨터 구조 & 운영체제' 카테고리의 다른 글
[혼공컴운] 컴퓨터 구조 chapter 8 (0) | 2024.01.20 |
---|---|
[혼공컴운] 컴퓨터 구조 chapter 7 (0) | 2024.01.20 |
[혼공컴운] 컴퓨터 구조 2주차 미션 (1) | 2024.01.15 |
[혼공컴운] 컴퓨터 구조 chapter 5 (1) | 2024.01.15 |
[혼공컴운] 컴퓨터 구조 chapter 4 (0) | 2024.01.13 |