-
강의 과제) 메모리란 무엇인가?TIL-sparta 2024. 7. 10. 17:46
> 컴퓨터의 메모리(Memory)에 대해서 가볍게 알아보았다.
학습 키워드: memory, cache memory, main(primary) memory, secondary memory
메모리 (Memory)
1) What is it?:
메모리는 컴퓨터의 기억장치로, CPU 내에 존재하는 레지스터(register), 캐시 메모리(SRAM)와 메인 메모리(DRAM), 보조 기억장치인 HDD (Hard Disk)나 SSD (Solid State Drive) 등으로 나뉜다. 이 중에서 우리가 흔히 메모리라고 부르는 영역에 속한 부분은 캐시 메모리(L2, L3)와 메인 메모리이며, 보조 기억장치는 스토리지(Storage)로 분류된다.
2) Static Random-Access Memory (SRAM):
정적 램은 flip-flop을 이용하여 bit를 저장하는 방식의 휘발성 메모리(volatile memory)다. 휘발성 메모리라 함은 전원이 차단되었을 때 내용물이 함께 사라지는 메모리를 의미한다. SRAM의 data cell은 일반적으로 6개의 트랜지스터를 사용하는 구조로 이루어져 있으며, 이를 6T SRAM cell이라고 부른다. DRAM에 비해 성능이 월등히 뛰어나기 때문에 가격이 비싸다는 특징이 있으며, flip flop에 저장하는 특성상 전원 공급만 유지되면 추가 작업이 필요 없이 데이터가 보존되기 때문에 빠르게 access할 수 있다는 장점이 있어 주로 캐시 메모리나 레지스터로 사용된다.
캐시 메모리는 처리 속도가 빠른 장치와 느린 장치 간의 속도 차이에 따른 병목 현상을 극복하기 위한 메모리다. 다른 말로 하면 메모리 계층과 계층 사이의 속도 차이를 극복하기 위한 임시 저장소라고 할 수 있다. 물론 실제로 캐시 메모리라고 불리우는 구간은 SRAM 뿐인데, 이는 레지스터나 DRAM과 다르게 온전히 캐싱 기능만 하는 구간이 SRAM이기 때문이다.
캐시 메모리와 관련된 주요 개념 중 하나로 지역성(locality)이 있다. 지역성은 캐시를 직접 설정할 때 자주 사용되는 데이터를 기반으로 저장되어야 하는 특성을 말하는데, 최근 사용한 데이터를 다시 접근하려는 특성을 시간 지역성(temporal locality), 최근 접근한 데이터의 주소 공간이나 그에 가까운 공간에 접근하려는 특성을 공간 지역성(spatial locality)이라고 한다.
CPU가 작업을 위해 데이터를 찾는 과정에서 캐시 메모리에서 해당 데이터를 발견한 경우를 캐시 히트(cache hit)라고 하는데, 물리적 거리 + CPU 내부 버스 사용으로 인해 제어장치를 통해 빠른 속도로 데이터를 가져올 수 있다. 반면에 캐시 메모리에서 원하는 데이터를 발견하지 못하는 경우를 캐시 미스(cache miss)라고 부르며, 이 때는 주 메모리에 접근하여 데이터를 가져와야 하기 때문에 시스템 버스를 사용하게 되어 상대적으로 느린 속도로 동작하게 된다. 따라서 캐시 히트를 자주 발생시키기 위해 올바른 매핑 방법을 사용하는 것이 중요하다.
3) Dynamic Random-Access Memory (DRAM):
동적 램(DRAM) 또한 SRAM과 마찬가지로 휘발성 메모리다. DRAM은 각각의 bit를 일반적으로 하나의 capacitor와 하나의 transistor(간혹 capacitor 없이 transistor 두 개)로 구성되어 있는 data cell에 저장한다. Capacitor가 사용되는 경우에는 이 capacitor의 상태가 charged인지 discharged인지에 따라 bit의 값을 1과 0으로 구분짓는다. 이렇게 충전된 전하는 전원이 차단되지 않더라도 서서히 누전되는데, 이 현상을 방지하기 위해 주기적으로 memory refresh를 진행하여 capacitor의 전하 충전 상태를 유지해주는 동적인 작업이 필요하기 때문에 동적(dynamic) 램이라고 불리게 되었다.
DRAM의 주요 역할은 CPU가 사용하기 위해 필요로 하는 각종 정보들을 임시로 저장해두는 것이다. 실제 구조 상으로 (물리적으로) 프로세서와 가까운 곳에 위치하고 있기 때문에 보조 기억장치보다 빠르게 데이터에 접근이 가능하다. 성능상으로는 SRAM에 비해 많이 떨어지지만 가격이 싸고, 높은 수준의 용량 집적도를 달성할 수 있어 주로 대용량 기억 장치에 사용된다.
4) NAND Flash:
MOS(metal-oxide-semiconductor) 트랜지스터에는 소스(Source), 드레인(Drain), 게이트(Gate)로 총 3개의 단자가 존재하는데, 여기서 게이트의 단자가 1개라면 DRAM, 2개라면 NAND Flash Memory로 분류한다. NAND Flash에 존재하는 두 번째 게이트를 floating gate라고 부르는데, 이 게이트의 존재로 인해 다른 RAM과는 다르게 비휘발성이라는 특징과 높은 집적도로 인한 큰 저장 용량을 가지게 된다. 물론 이러한 특징들을 공짜로 가지게 되는 것은 아니고 동작 속도와 trade-off 된 것으로, NAND Flash는 모든 메모리 중 가장 느린 동작 속도를 가지고 있다.
(내용 보강 예정)
--
REFERENCES:
> Wikipedia, "Dynamic random-access memory", accessed: 2024-07-10
> Samsung, "DRAM", accessed: 2024-07-10
> Samsung, "NAND Flash Memory", accessed: 2024-07-10
> SK Hynix, "디램과 낸드플래시의 차이", accessed: 2024-07-10
> Wikipedia, "Static random-access memory", accessed: 2024-07-10
--
> 강의 노트, "2강. CPU 와 메모리 심화", by 김태선 튜터님, Figure 2
> 이전 TIL (작성일 24-04-27)
728x90'TIL-sparta' 카테고리의 다른 글
스파르타) Ch.5 팀 프로젝트 - 타워 디펜스 온라인 (D-6) (0) 2024.07.12 LeetCode) 1280. Students and Examinations 풀이 (MySQL) (0) 2024.07.12 [TIL] 원격 프로시저 호출 (Remote Procedure Call, RPC) (0) 2024.07.09 강의 과제) CPU란 무엇인가? (1) 2024.07.08 [TIL] 스파르타) Chapter 5 주특기 플러스 개인 과제 진행 (TCP 게임 서버, D-1) (0) 2024.07.07