Security

[Security] 메모리 시스템(Memory System)

구루싸 2019. 12. 15. 22:15
반응형
SMALL

지난 글에서 CPU와 버스(Bus)에 대해 알아보았습니다

오늘은 메모리 시스템(Memory System)에 대해 학습하겠습니다

먼저 기억장치가 계층구조를 띄는 이유에 대해 살펴보겠습니다

기억장치는 엑세스 속도가 높아질수록 비트당 가격이 높아지고

용량이 커질수록 비트당 가격이 낮아지면서 엑세스 속도가 낮아지는 특성이 있습니다

그런데 앞서 학습한 CPU는 고속이므로 저속의 보조기억장치 사이에 캐시와 주기억장치를 배치해서

빠르지만 고가인 RDRAM의 사용량을 줄여 가격적인 경쟁력을 확보하는 것이

기억장치 계층구조(Memory Hierarchy)를 이루는 이유입니다

기억장치 계층구조의 가장 최상위인 레지스터는 지난 시간에 살펴보았습니다

그 다음인 캐시 메모리(Cache Memory)는 CPU와 주기억장치(Memory)의 속도 차이를 극복하기 위해 

CPU와 주기억장치 사이에 존재하는 고속의 버퍼 메모리입니다

캐시 메모리와 주기억장치(Main Memory)를 사상(Mapping)하는 방법은

직접사상(Direct Mapping), 연관사상(Associate Mapping), 집합 연관사상(Set Associate Mapping)이 있습니다

방법 장점 단점
직접사상 매핑 절차가 단순하고 신속하게 처리 높은 캐시 미스율(같은 블록에 사상되는 데이터 적재 시 교체 발생)
연관사상 지역성 높은 접근 시 캐시 적중률 높음 구현 하드웨어가 복잡하여 구현 비용 상승
집합 연관사상 직접사상과 연관사상의 장점을 수용 캐시 Fin/Fout 발생 증가하고 구현 비용 상승

한편, 주기억장치에서 캐시 메모리로 데이터를 인출(Fetch)하는 방식은

필요 시에 인출하는 Demand Fetch와 예상되는 블록을 미리 인출하는 Pre-Fetch가 있습니다

그런데 캐시 메모리의 용량은 한정적이고 필요한 데이터가 없을 경우에는

기존의 데이터 중에 페이지 부재(Page Fault)와 스레싱(Thrashing)이 적도록

데이터를 골라 지우고 필요한 데이터를 넣어야합니다

아래의 표는 이 때 어떤 데이터를 지울 것이냐에 관한 알고리즘을 간단히 정리한 것입니다

종류 내용 특징
FIFO(First In First Out) 캐시 내에 오래 있었던 Page 교체 자주 사용되는 Page가 교체될 수 있음
LFU(Least Frequently Used) 사용 횟수가 가장 적은 Page 교체 최근 적재된 Page가 교체될 수 있음
LRU(Least Recently Used) 가장 오랫동안 사용되지 않은 Page 교체 Time stamping에 의한 Overhead가 있음
Optimal 향후 가장 참조되지 않을 Page 교체 실현 불가능
NUR(Not Used Recently) 참조 비트와 수정 비트로 미사용 Page 교체 최근 사용되지 않은 페이지 교체
SCR(Second Change Replacement) 최초 참조 비트 1로 세팅, 1인 경우는 0으로 세팅, 0인 경우 교체 기회를 한 번 더 줌
Random 임의 Page 교체 Overhead가 적음

마지막으로 CPU가 캐시와 메모리에 데이터를 기록하는 방식인 Write-through와 Write-back을 보겠습니다

Write-back 정책은 사용하는 데이터를 캐시에만 기록하고, 차후에 메모리에 저장하는 방식이고

Write-througth 정책은 캐시와 메모리에 동시에 저장하는 방식입니다

그런데 이 두가지 방식 모두 캐시 메모리 일관성(Cache Coherence) 유지에 실패할 수 있는 상황이 발생합니다

그럼 오늘의 학습은 여기까지-_-

 

 

 

 

반응형
LIST