컴퓨터 구조 12 : 캐시 메모리, 가상 메모리, 메모리 관리 하드웨어

728x90

캐시 메모리, 가상 메모리, 메모리 관리 하드웨어

 

캐시 메모리

 

 

빠른 CPU 처리 속도와 상대적으로 느린 메인 메모리에서의 속도 차이를 극복하는 중간 버퍼 역할을 함. 데이터의 임시 보관소.

속도가 빠른 CPU와 느린 RAM 사이에서 오는 병목 현상을 해소하기 위해 사용됨. 메인 메모리보다 동작 속도가 더 빠르고 컴퓨터 시스템 속도 향상에 중요한 역할을 함.

 

 

캐시 메모리 Mapping Function

 

CPU가 메모리 주소를 사용해 메모리로 데이터를 받으려고 한다.

메모리 관리 장치(MMU)는 메모리가 이해할 수 있는 물리 주소로 변환을 해준다.

 

각 주기억 장치 블록이 어느 캐시 라인에 적재될 것인지 결정해주는 방식을 mapping이라고 한다.

 

 

직접 매핑(Direct Mapping : 직접 사상) : 메모리와 주소의 캐시 순서를 일치시킨다.

메모리가 1~100, 캐시가 1~10까지 있을 경우, 1~10의 메모리는 캐시의 1에, 11~20의 메모리는 캐시의 2에 위치시킨다.

장점 : 하드웨어가 간단, 비용이 적게 든다.

단점 : 메모리 블록이 적재될 수 있는 캐시 라인이 한 개뿐이므로 그 라인을 공유하는 다른 블록이 적재되는 경우는 덮어 씌워지거나 교채 되는 상황이 빈번히 일어남.

 

 

연관 매핑(Associative Mapping : 연관 사상) : 순서 불일치, 필요한 메모리 값을 캐시의 어디든 편하게 저장 가능

장점 : 적중률 높음

단점 : 찾는 과정이 복잡하고 느림. 캐시 검색량 많아짐.

 

 

직접 연관 매핑(Set Associative Mapping : 직접 연관 사상) : 순서를 일치시키고 편하게 저장하되, 일정 그룹을 두어 그 그룹 내에서 편하게 저장시킬 수 있다.

메모리가 1~100, 캐시가 1~10까지 있을 경우, 캐시 1~5에서는 메모리 1~50의 데이터를 무작위로 저장시킬 수 있다.

장점 : 블록화가 되어있어서 검색이 효율적이고 저장 위치에 대한 제약이 많지 않아 적중률이 많이 떨어지지는 않는다.

단점 : 알고리즘이 복잡해질 수 있다.

 


가상 메모리(Virtual memory)

가상 메모리를 이용하여 각 프로그램이 전체 메모리를 다 쓰고 있는 것처럼 보이게 한다.

각 Process가 모든 메모리 공간을 독점한 것처럼 이용할 수 있게 하면 효율적으로 메모리를 사용할 수 있기 때문.

 

사용 예 : multi-processing으로 메모리 관리.

하나의 cpu안에서 여러 개의 process를 한 번에 동작시킴.

각각의 process는 가상 메모리를 이용해 혼자 시스템을 독점하여 사용하는 것처럼 작동함.

 

 


메모리 관리 하드웨어

많은 프로그램이 메모리 내에 존재하는 멀티프로그래밍에서는 프로그램과 데이터를 메모리 내에서 이동시키고, 사용되는 메모리 양을 조절하며, 프로그램이 다른 프로그램을 바꾸지 못하도록 관리해야 한다.

 

역할

1 : 가상 메모리 참조를 물리 메모리 주소로 변환하는 동적 저장 장소 재배치

프로그램과 데이터가 저장되는 공간을 분리시킨다.

(가상 메모리는 프로그래머가 쓰는 주소 공간이고 물리적 메모리 주소는 하드웨어가 실제로 접근하는 주소이다.

가상 주소는 주소 매핑을 통해 주기억 장치의 물리적 주소로 전환되어야 한다.)

 

2 : 메모리 내에서 서로 다른 사용자가 하나의 프로그램을 같이 사용하기 위한 편의 제공

 

3 : 사용자 간의 허락되지 않은 접근을 방지, 사용자가 OS 기능을 변경하지 못하도록 정보를 보호.

728x90