※ 주기억장치(main memory)
- RAM = '메모리'
- ROM
06-1. RAM의 특징과 종류
▷ RAM의 특징
- RAM: 휘발성 저장 장치(volatile memory)
- 보조기억장치: 비휘발성 저장 장치(non-volatile memory)
▷ RAM의 용량과 성능
: CPU <--> RAM <--> 보조기억장치
▷ RAM의 종류
- DRAM(Dynamic RAM): 시간이 지나면 저장된 데이터가 점차 사라지는 RAM --> 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장) 해야 한다.
- SRAM(Static RAM): 저장된 데이터가 변하지 않는 RAM, DRAM보다 일반적으로 속도가 더 빠르다.
- SDRAM(Synchronous DRAM): 클럭 신호와 동기화된 DRAM, 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있다.
- DDR SDRAM(Double Data Rate SDRAM): 대역폭을 넓혀 속도를 빠르게 만든 DRAM, 데이터 전송 속도가 빠르다.
06-2. 메모리의 주소 공간
물리 주소와 논리 주소
- 물리 주소(physical address): 말 그대로 정보다 실제로 저장된 하드웨어상의 주소
- 논리 주소(logical address): 실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소
--> 프로그램마다 같은 논리 주소는 얼마든지 있을 수 있다.
▷ 논리 주소와 물리 주소 간의 변환: 메모리 관리 장치(MMU; Memory Management Unit)
: MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.
- 베이스 레지스터: 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하는 것
- 논리 주소: 프로그램의 시작점으로부터 떨어진 거리
메모리 보호 기법
▶ 한계 레지스터(limit register)
: 논리 주소의 최대 크기를 저장한다.
즉, 프로그램의 물리 주소의 범위는 베이스 레지스터 값 이상, (베이스 레지스터 값 + 한계 레지스터 값) 미만이 된다.
--> CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다. 만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)을 발생시켜 실행을 중단한다.
06-3. 캐시 메모리
저장 장치 계층 구조(memory hierarchy)
- CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
- 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.
▶ 캐시 메모리(cache memory)
: CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
--> CPU의 연산 속도와 메모리 접근 속도 차이를 줄이기 위한 목적이다.
- L1 캐시
- L2 캐시
- L3 캐시
참조 지역성의 원리(locality of reference, principle of locality)
- 캐시 히트(cache hit): 자주 사용될 것으로 예측하여 캐시 메모리에 저장해둔 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우
- 캐시 미스(cache miss): 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우
- 캐시 적중률(cache hit rate) = 캐시 히드 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
▶ 참조 지역성의 원리(locality of reference, principle of locality)
- CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
- CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. --> 공간 지역성(spatial locality)
'컴퓨터구조' 카테고리의 다른 글
[혼자 공부하는 컴퓨터구조] 08. 입출력장치(I/O device) (0) | 2023.07.29 |
---|---|
[혼자 공부하는 컴퓨터구조] 07. 보조기억장치 (0) | 2023.07.29 |
[혼자 공부하는 컴퓨터구조] 05. CPU 성능 향상 기법 (0) | 2023.07.29 |
[혼자 공부하는 컴퓨터구조] 04-3. 명령어 사이클과 인터럽트 (0) | 2023.07.27 |
[혼자 공부하는 컴퓨터구조] 04-2. 레지스터 (0) | 2023.07.27 |