본문 바로가기

메모리 계층과 주기억장치

접근 시간·용량·비용의 관계와 지역성을 이해하고 SRAM·DRAM·ROM의 차이를 설명합니다.

CPU 바로 옆에 모든 사진·영상·프로그램을 빠른 저장 소자로 넣으면 편할 것입니다. 하지만 속도·용량·비용·전력 조건을 모두 만족시키기 어렵습니다. 메모리 계층은 자주 쓰는 정보를 가까운 빠른 계층에 두고, 큰 저장 공간은 아래 계층에 두는 설계입니다.

계층은 복사와 접근의 관계입니다

레지스터→캐시→주기억장치→저장장치 순서로 기능을 구분합니다. 일반적인 시스템에서 가까운 계층은 더 작고 빠르며 비트당 비용이 높습니다. 그러나 실제 지연과 크기는 부품·설계·접근 패턴에 따라 달라집니다. “최적 캐시 용량은 언제나 몇 KiB”라는 보편적 정답은 없습니다.

접근 지연(latency)은 요청 하나가 끝날 때까지의 시간, 대역폭(bandwidth)은 일정 시간에 옮기는 양입니다. 첫 데이터가 늦게 도착해도 이후 큰 블록을 빠르게 옮기는 장치가 있을 수 있습니다. 두 수치를 하나의 “속도”로 뭉뚱그리지 마세요.

CPU 명령의 LOAD가 저장장치 파일을 바로 읽는다고 생각하면 계층을 혼동합니다. 보통 파일 내용을 주기억장치로 가져오는 일에는 운영체제·장치 제어가 관여하고, CPU의 주소 접근은 정해진 메모리 체계에서 수행됩니다.

SRAM·DRAM·ROM

SRAM은 전원이 공급되는 동안 상태를 유지하는 저장 회로로 캐시에 쓰이는 대표적인 소자입니다. DRAM은 작은 전하를 저장하고 주기적으로 재생(refresh)해야 하며 주기억장치에 널리 사용됩니다. static·dynamic이라는 이름은 프로그램이 “정적·동적”이라는 뜻이 아닙니다.

ROM 계열은 읽기 중심의 비휘발 저장을 가리킵니다. 제조 시 고정된 ROM, 한 번 기록하는 PROM, 지우고 다시 기록하는 EPROM·EEPROM, 블록 단위 지우기를 사용하는 플래시는 쓰기·지우기 방법이 다릅니다. RAM은 임의 위치 접근 방식의 이름으로 이해해야 하며, 실제 휘발성은 소자 종류와 함께 설명합니다.

칩 내부의 논리 주소가 k비트이면 구별 가능한 위치는 2ᵏ개입니다. 한 위치에 w비트를 저장하면 데이터 용량은 2ᵏ×w비트입니다. 논리 주소를 동시에 전달하는 비다중화 교육용 칩에서는 물리 주소선 k개가 이 k비트와 일치합니다. 그 조건에서 12개 주소선·8비트 데이터 폭은 4,096×8비트=4,096바이트입니다.

DRAM처럼 같은 물리 신호에 행·열 주소를 서로 다른 시점에 보내는 주소 다중화가 있으면 물리 핀 수만 세어 논리 주소 폭을 구할 수 없습니다. 행·열·bank 조직과 데이터 폭을 함께 확인해야 합니다. 같은 6개 신호를 행 6비트·열 6비트로 두 번 쓰는 논리 모델은 64×64위치를 구별하며 단순히 2⁶위치가 아닙니다. 실제 부품의 조직·명령·타이밍은 데이터시트의 조건을 따릅니다.

여러 칩의 폭·뱅크 확장에서는 데이터 lane을 늘리는 일과 주소 영역을 늘리는 일을 구분하고 바이트 주소·칩 주소·chip-select를 계산합니다.

지역성이 복사를 유용하게 합니다

시간 지역성은 최근 사용한 데이터를 다시 쓰는 경향, 공간 지역성은 사용한 주소의 가까운 주소를 쓰는 경향입니다. 배열을 순서대로 읽으면 같은 블록 안의 다음 원소를 사용할 가능성이 높습니다. 반복문에서 합계 레지스터·명령을 반복 사용하는 것은 시간 지역성입니다. 모든 프로그램이 강한 지역성을 갖는 것은 아닙니다.

평균 접근 시간 계산

가장 단순한 단일 캐시 모델의 평균 접근 시간은 hit time + miss rate × miss penalty입니다. 실패 패널티는 캐시 검사 이후 추가 시간으로 정의합니다. 적중 시간 2 ns, 실패율 5%, 추가 패널티 80 ns이면 2 + 0.05×80 = 6ns입니다. 실패율을 3%로 줄이면 4.4 ns이지만 적중 시간이 4 ns로 늘면 6.4 ns입니다. 적중률만 높아졌다고 이 모델의 평균 시간이 줄어드는 것은 아닙니다.

독립 문제: 정의가 다른 시간

A 캐시는 적중 시간 1 ns, 실패율 10%, 추가 실패 패널티 50 ns입니다. B는 적중 시간 2 ns, 실패율 5%, 추가 패널티 50 ns입니다. 평균 시간을 구하세요. 공급 업체가 “실패 시 총 시간 51ns”라고 적었다면 A 계산의 패널티 자리에 51을 그대로 넣어도 될까요?

힌트

적중 검사 시간의 중복을 피하세요. 총 시간과 추가 시간이 다릅니다.

풀이

A는 6 ns, B는 4.5 ns입니다. A의 총 실패 시간 51 ns는 이미 검사 1 ns를 포함하므로 추가 패널티는 50ns입니다. 같은 값을 두 번 더하면 잘못 계산합니다. 지역성 설명은 MIT의 메모리 계층 강의와 비교할 수 있습니다. 다음 캐시 매핑에서는 저장 위치와 태그를 계산합니다.