DevGang
[CA-15] 특수 기억장치 본문
1. 연관 기억장치 (Associative Memory)
- 연관 기억장치는 기억장치에서 자료를 찾을 때 주소에 의해 접근하지 않고, 기억된 내용의 일부를 이용하여 Access 할 수 있는 기억장치로, CAM(Content Addressable Memory)이라고도 함
- 연관 기억장치의 특징
- 주소에 의해서만 접근이 가능한 기억장치보다 정보 검색이 신속함
- 캐시 메모리나 가상 메모리 관리 기법에서 사용하는 Mapping Table에 사용됨
- 메모리의 내용으로 접근(access) 할 수 있는 메모리
- 기억된 여러 개의 자료 중에서 주어진 특성을 가진 자료를 신속히 찾을 수 있음
* Mapping Table
- 메모리 계층 시스템에서 보조 기억장치의 내용을 주기억장치로 옮기는 데 필요한 것
- 대응 관계를 테이블로 표현하여 임의의 정보를 그에 대응하는 정보로 변환하는 것
- 연관 기억장치에 사용되는 기본 요소
- 일치 지시지 : 내용의 일부가 같은 워드를 찾았으면 1로 세트함
- 마스크 레지스터 : 비교할 비트를 정해 1로 세트함
- 검색 데이터 레지스터 : 비교할 내용이 들어 있음
2. 복수 모듈 기억장치
- 독자적으로 데이터를 저장할 수 있는 기억장치 모듈을 여러 개 가진 기억장치
- 복수 모듈 기억장치의 특징
- 주기억장치와 CPU의 속도 차의 문제점을 개선함
- 기억장치 버스를 시분할하여 사용함
- 기억 장소의 접근을 보다 빠르게 함
- 메모리 인터리빙 (Memory Interleaving)
- 인터리빙이란 여러 개의 독립된 모듈로 이루어진 복수 모듈 메모리와 CPU 간의 주소 버스가 한 개로만 구성되어 있으면 같은 시각에 CPU로부터 여러 모듈들로 동시에 주소를 전달할 수 없기 때문에, CPU가 각 모듈로 전송할 주소를 교대로 배치한 후 차례대로 전송하여 여러 모듈을 병행 접근하는 기법
- CPU와 기억장치 사이에 실질적인 대역폭(bandwidth)을 늘리기 위한 방법
- 프로그램 수행 도중 서로 다른 번지의 주소를 동시에 지정하는 방식
- 메모리 인터리빙 방법의 사용 목적 : 메모리 액세스의 효율 증대
* 디스크 인터리빙
- 디스크 인터리빙은 독립된 디스크를 2개 이상 나누어 연결하고 독립된 디스크를 번갈아 가면서 연속적으로 액세스가 이루어지도록 구현하는 방법으로 주기억장치 처리 속도에 비해 사이클 타임이 오래 걸리는 디스크에 접근하는 시간을 효율적으로 높일 수 있는 방식
3. 캐시 메모리 (Cache Memory)
- 캐시 메모리는 CPU의 처리 속도와 주기억장치의 접근 속도 차이를 줄이기 위해 사용하는 고속 Buffer Memoey
- CPU의 속도와 주기억장치의 속도차가 클 때 명령어의 수행 속도를 CPU의 속도와 비슷하도록 하기 위하여 사용하는 메모리
- 성능을 향상하기 위하여 주기억장치와 CPU 레지스터 사이에서 데이터를 이동시키는 중간 버퍼로 작용하는 기억장치
- 캐시 메모리의 특징
- 캐시는 주기억장치와 CPU사이에 위치
- 캐시를 사용하면 주기억장치를 접근하는 횟수가 줄어듦으로 컴퓨터의 처리 속도가 향상됨
- 주기억장치와 CPU사이에서 일종의 버퍼 기능을 수행
- 수십 Kbyte-수백 Kbyte의 용량을 사용
- 매핑 프로세스 (Mapping Process)
- 매핑 프로세스는 주기억장치로부터 캐시 메모리로 데이터를 전송하는 방법을 말함
- 매핑 프로세스의 종류(캐시 메모리에서 사용하는 매핑 방법)
- 직접 매핑 (Direct Mappin)
- Associative Mapping
- Set-Associative Mapping
3-1. 캐시 메모리 쓰기 정책
- 연속 기입 방식(write through)
- 데이터를 쓰기 하고자 할 때 캐시와 주기억장치 동시에 쓰기 하는 방식으로 주기억장치와 캐시 기억장치가 항상 동일한 내용을 기록
- 기억장치들 간의 접근이 빈번하게 일어나 쓰기 동작에 걸리는 시간이 길어짐.
- 후 기입 방식(wirte back)
- 데이터를 쓰기 하고자 할 때 캐시에 먼저 기록된 후, 특정 조건 발생 시 주기억 장치로 쓰기 하는 방식
- 쓰기 동작에 걸리는 시간이 짧음
- 복잡한 하드웨어 구조
- 주기억장치의 내용이 무효 상태인 경우가 발생
- 단일 기입 방식(write once)
3-2. 캐시의 적중률 구하는 공식
- 적중률
- 캐시에 찾는 내용이 있을 확률
- 적중 횟수 / 총 액세스 = 적중 횟수 / 적중 횟수 + 실패 횟수
- 캐시의 적중률은 평균적으로 90% 이상
- 미스율
- 캐시에 찾는 내용이 없을 확률
- 1 - (적중 횟수 / 총 액세스 횟수)
3-3. 캐시 메모리의 주소 매핑 방법
- 직접 매핑 (Direct Mapping)
- 직접적인 매핑
- Block 단위로 나눈 주소를 오직 한 군데만 저장
- 장점 : 구조 자체가 간단
- 단점 : 비효율적인 캐시 사용 (적중률이 낮아질 수 있음)
- 연산 매핑 (Full associative Mappin)
- 순서에 상관없이 저장
- 메인 데이터 주소와 data까지 모두 저장
- 장점 : 직접 매핑보다 빠르게 원하는 데이터를 찾을 수 있음
- 단점 : 캐시의 모든 부분을 검사 (원하는 데이터가 어디에 존재하는지 알 수 없음)
- 세트/연산 매핑 (set Associative Mappin) - 위 두 가지 방법의 장점을 섞어 만든 방법.
4. 가상 기억장치 (Virtual Memory)
- 기억용량이 적은 주기억장치를 마치 큰 용량을 가진 것처럼 사용할 수 있도록 하는 운영체제의 메모리 운영 기법
- 사용자는 프로그램의 크기에 제한받지 않고 프로그램의 실행이 가능함
- 사용자가 보조 메모리의 총용량에 해당하는 기억 장소를 컴퓨터가 갖고 있는 것처럼 가상하고, 프로그램을 짤 수 있는 것을 말함
- 가상 기억장치의 특징
- 주기억장치를 확장한 것과 같은 효과를 제공
- 실제로는 보조기억장치를 사용하는 방법
- 사용자가 프로그램 크기에 제한받지 않고 실행이 가능
- 컴퓨터 속도는 문제시되지 않음
- 주소 공간의 확대(용량의 확대)가 가장 큰 목적
- 사용할 수 있는 보조기억장치는 DASD이어야 함
- 가상 기억공간의 구성은 프로그램에 의해서 수행됨
- 보조기억장치는 자기 디스크를 많이 사용함
- 보조기억장치의 접근이 자주 발생되면 컴퓨터 시스템의 처리 효율이 저하될 수 있음
- 주기억장치와 보조기억장치가 계층 기억 체제를 이루고 있음
- 하드웨어에 의한 것이 아니라 소프트웨어에 의해 실현됨
- 주소 공간이란 가상공간의 집합
- 실제 컴퓨터의 기억장치 내 주소를 물리 주소라고 함
- 가상 주소를 물리 주소로 변환하는 방법의 하나로 CAM을 사용
5. 기억장치의 관리 전략
- 기억장치의 관리 전략은 보조기억장치에 저장되어 있는 프로그램을 주기억장치에 효율적으로 적재하기 위한 방법
- 반입(Fetch) 전략
- 보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
- 요구 반입(Demand Fetch) : 실행 프로그램이 요구할 때 비로소 적재하는 방법
- 예상 반입(Anticipatory Fetch) : 실행 프로그램에 의해 참조될 것을 예상하여 미리 적재하는 방법
- 배치(Placement) 전략
- 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인가를 결정하는 전략
- 최초 적합(First Fit), 최적 적합(Best Fit), 최악 적합(Worst Fit)이 있음
- 교체(Replacement) 전략
- 주기억장치의 모든 분할된 영역이 이미 사용 중인 상태에서 새로운 프로그램을 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 페이지 프레임 중에서 어느 하나를 선택하여 빈 페이지 프레임으로 만들어 줄 것인지를 결정하는 전략
- FIFO, OPT, LRU, NUR, LFU, MFU 등의 방법이 있음
6. 가상 기억장치의 관리 기법
- 페이징(Paging) 기법
- 가상 기억장치를 고정 길이의 페이지로 구분하고 이러한 페이지를 하나의 단위로 하여 주기억장치에 설치하고 주소를 변환함
- 보조기억장치를 여러 개의 page로 구분함
- OS가 보조기억장치에 있는 프로그램을 동일한 크기의 블록으로 나누어서 관리하는 기법
<예제>
- 64K인 주소 공간과 4K의 기억 공간을 가진 컴퓨터인 경우 한 페이지가 512 워드로 구성된다면 페이지와 블록 수는 각각 얼마인가?
- 페이지는 주소 공간에서 그리고 블록은 기억공간에서 사용되는 용어임, 주소 공간이 64K이므로 페이지수는 64K/512=2^16/2^9=2^7=128페이지 (K=1024) // 기억공간이 4K이므로 블록 수는 4K/512=2^12/2^9=2^3=8블록
- 세그먼트(Segmentation) 기법
- 가상 기억장치를 논리적으로 하나의 단위가 되는 가변 길이의 세그먼트로 구분하고, 이러한 세그먼트를 하나의 단위로 하여 주기억장치에 설치하고 주소를 반환함
- 일반적으로 하나의 세그먼트는 독립적으로 구성되는 하나의 모듈이나 하나의 자료 구조 등으로 구성됨
- 사용자가 보조기억장치에 있는 프로그램을 가변적인 크기의 블록으로 나누어서 관리하는 기법
7. 주소 매핑 (주소 변환)
- 주소 매핑은 가상 주소를 실기억 주소로 변환하는 작업
- 보조기억장치에 보관 중이던 프로그램을 실행하기 위하여 각 Page들을 주기억장치에 Load 했다 하더라도 프로그램을 구성하는 각 기계 명령에 포함된 주소는 가상 주소로 남아 있기 때문에, CPU에서 주기억장치를 Access 하기 위해서는 가상 주소를 실 주소로 변환해야 함
- 주소 변환 순서
- 페이지 번호에 해당하는 페이지 프레임 번호와 가상 주소의 변위 주소 값을 이용하여 실기억 주소를 만듦
- 만들어진 실기억 주소를 이용하여 주기억장치를 액세스함
- 사상 함수 (Mapping Function)
- 인스트럭션이 수행될 때 주기억장치에 접근하려면 인스트럭션에서 사용한 주소는 주기억장치에 직접 적용될 수 있는 기억 장소의 주소로 변환되어야 하는데, 이때 주소로부터 기억 장소로의 변환에 사용되는 것
- 실기억 주소를 계산하는 함수를 말함
- 매핑 (mapping)
- 가상 기억장치에서 주기억장치로 자료의 페이지를 옮길 때 주소를 조정해 주어야 하는 것
* 전자계산기 기억장치의 주소 설계 시 고려사항
- 주소를 효율적으로 나타내야 함
- 사용자에게 편리하도록 해야 함
- 주소 공간과 기억공간을 독립시킬 수 있어야 함
'정보처리 > CA' 카테고리의 다른 글
[CA-17] 인터럽트 (0) | 2021.02.06 |
---|---|
[CA-16] 입/출력 장치 (0) | 2021.02.06 |
[CA-14] 기억장치 (0) | 2021.02.06 |
[CA-13] 명령 실행과 제어 (0) | 2021.02.06 |
[CA-12] 연산(Operation) (0) | 2021.02.06 |
Comments