[TIL] 20250114 TIL : CA #2 Memory pt.1 (1/3)

Jaeyoung Ko·2025년 1월 14일
0

[컴퓨터 구조 - 하드웨어 - 메모리]

참고한 자료:
Computer Organization and Desgin 5th edition,
Operating System: Concepts 10th edition BY A.Silberschatz






<1> Memory


컴퓨터 구조에 있어서, Memory란 데이터를 저장하는 구성요소이다.





cf. 선행할 개념: 지역성

Locality

메모리 구조에 대해서 이야기를 할 때에 빠지지 않는 부분으로, principle of Locality가 적용되기 때문에 지역성에 관하여 다루는 것이 중요하다.


1) Temporal Locality

시간적 지역성은 어떤 항목이 참조되었을 때, 해당 항목은 곧바로 다시 참조될 가능성이 높다는 원칙이다.

2) Spatial Locality

공간적 지역성은 어떤 항목이 참조되었을 때, 해당 항목의 근처에 가까운 항목들이 곧바로 참조될 가능성이 높다는 원칙이다.


이러한 지역성의 원칙은, 컴퓨터의 메모리에 대해 계층구조를 구현함으로 이용할 수 있다.






<2> Memory Hierarchy

메모리는 속도와 용량, 비용에 따라 계층적으로 구조가 분화된다. 이러한 계층 구조의 목적은 유저에게

가장 빠른 메모리의 접근 속도를 제공하면서,

가장 싼 기술로 최대한 큰 메모리 용량을 제공하는 것

이라고 할 수 있다.

이러한 계층구조를 만든 이유는 물론 성능 향상이기 때문에, hit-miss ratio로서 처리 속도가 매우 중요하다.

hit time이란 메모리 계층구조에서 상위 계층에 접근하는 시간이다.



메모리 계층구조는 최근에 접근한 데이터들을 프로세서 가까이 적재함으로 temporal locality를,

메모리의 상위 계층으로 필요한 데이터 뿐만 아니라 그와 인접한 데이터 블록들을 옮김으로 spatial locality를 이용한다.



메모리 계층구조에서 주요 저장장치들은 다음과 같다.

(1) 레지스터(Register)

CPU 내부에 있는 가장 빠른 메모리.
용량이 작고, CPU가 직접 접근하여 연산에 사용.
명령어나 데이터 처리를 위한 임시 저장소.

(2) 캐시(Cache)

CPU와 메인 메모리(RAM) 사이에서 데이터를 임시 저장.
CPU의 연산 속도와 메모리의 속도 차이를 줄이기 위해 사용.
L1, L2, L3 등 계층적으로 구성되며, L1이 가장 빠르고 용량이 작음.

(3) 메인 메모리(Main Memory, RAM)

현재 실행 중인 프로그램과 데이터를 저장.
DRAM(Dynamic RAM)을 주로 사용하며, 휘발성(전원이 꺼지면 데이터 소실).
속도는 캐시보다 느리지만, 용량은 큼.

(4) 보조 저장 장치(Secondary Storage)

SSD, HDD와 같은 대용량 저장 장치.
데이터를 영구적으로 저장하며, 비휘발성.
메인 메모리보다 느리지만, 저장 용량이 훨씬 큼.




<2> 주요 메모리의 종류와 역할

RAM(Random Access Memory)

RAM은 대표적인 컴퓨터의 주요메모리로 실행중인 프로그램과 데이터를 임시 저장하는 저장장치이다.

명명에서 알 수 있듯이, 물리적인 저장 위치와 상관없이 어느 곳에서든 원하는 위치의 데이터에 대한 접근과 처리가 가능하여 Random Access를 통해 임의의 메모리 주소에 동일한 속도로 접근이 가능하다.

RAM은 다음과 같은 주요 특징이 존재한다.

- Volatile

전원이 꺼지면 RAM에 저장된 데이터가 완전히 사라지는 휘발성을 가지기 때문에, long-term 데이터 저장에 사용하지 않는다.

- 빠른 속도

SSD나 하드디스크와 같은 Secondary Storage와 비교하여 상위의 메모리 계층구조에 위치하여 더 빠른 처리 속도를 가진다.

cf.

- DRAM (Dynamic RAM)

=> Main Memory로 주기억장치 사용

- SRAM (Static RAM)

=> Cache로 임시 메모리 사용


ROM(Read-Only Memory)

ROM은 이름에서 알 수 있다시피 Read-Only 이기 때문에, 저장 시 수정이 불가능한 읽기 전용 으로 데이터를 저장하는 저장장치이다. 따라서 보통 컴퓨터가 부팅될 때 필요한 기본적인 입/출력 시스템, 펌웨어, 하드웨어 초기화 코드등을 저장하는 데에 사용된다.

- Non-volatile

휘발성을 가진 RAM과 차별적으로, ROM은 데이터를 영구적으로 저장한다.

cf.

- EPROM (Erasable Programmable ROM)과 EEPROM (Electrically Erasable Programmable ROM)

=> 자외선을 쬠으로 데이터를 지우고 다시 기록할 수 있는 EPROM은 번거롭기 때문에,
전기 신호를 통해 삭제 가능한 EEPROM을 사용한다.

- Flash Memory






<3> 메모리의 주소공간 (물리주소와 논리주소)


베이직한 하드웨어에서, 각각의 프로세스가 독립된 메모리 공간을 가지도록 보장해야 한다. 따라서 특정 프로세스만 접근 가능하도록 legal한 메모리 주소 영역을 설정하여 접근할 수 있도록 해야 한다.

메모리 보호 기법

2개의 register, BaseLimit 을 사용한다.

  • Base

Base 레지스터는 기준으로서 가장 작은 legal한 물리 메모리 주소의 값을 저장한다.

  • Limit

Limit 레지스터는 상한으로서 주어진 영역의 크기를 저장한다.

ex. Given base reg 300040, limit reg 120900

프로그램은 300040 ~ 420940 (= 30040 + 120900) 범위의 모든 주소 접근 가능



Address: Physical vs Logical


!caution: 시간 관계 상 주소 할당 분류에서의 compile time, load time, execution time 바인딩의 설명은 생략하겠음.

주소 할당에 있어서 사용되는 메모리 주소에 대해,

Physical Address

물리 주소 공간은 하드웨어 메모리가 취급하는 (MAR, memory address register 에 주어지는 주소) 주소를 가리킨다.

Logical Address

논리 주소 공간은 CPU가 생성하는 주소를 말하며, 일반적으로 virtual address와 같은 의미로 사용한다.


MMU (Memory Management Unit)

프로그램 실행 중에 CPU가 생성한 logical address에 대해 physical address로 변환해줘야 하는데, 이러한 매핑 작업이 하드웨어 장치인 MMU에 의해 실행된다.



예시 시나리오로 위 이미지를 다루자면,

CPU가 생성한 논리 주소 346에 대해, MMU내의 relocation reg의 값이 더해지면서 실제 메인 메모리의 14346 번지를 접근하게 된다.



to be continued..

profile
안녕하세요, 고재영입니다. 언제나 즐겁게 살려고 노력합니다.

0개의 댓글

관련 채용 정보