본문 바로가기
컴퓨터 일반

1. 컴퓨터 구조 - 기억장치

by 쬑께께 2026. 1. 21.

(33)

RAM(Ramdom Access Memory)

- 전원이 끊어지면 기억 내용이 소멸되는 휘발성 메모리로 읽기와 쓰기가 가능함

- 임의장소에 데이터 또는 프로그램을 기억시키고 기억된 내용을 프로세서로 가져와 사용 가능

SRAM(Static RAM, 정적램) - 메모리 셀이 한 개의 플립플롭으로 구성됨 -> 전원이 공급되고 있으면 기억내용이 지워지지 않음
- 재충전(refresh)이 필요 없음, 캐시 메모리에 이용됨
- DRAM과 비교하여 속도 빠름 but 가격 비쌈, 용량 작음
DRMA(Dynamib RAM, 동적램) - 메모리 셀이 한 개의 콘덴서로 구성됨 -> 충전된 전하의 누설에 의해 주기적인 재충전이 없으면 기억 내용 지워짐
- 재충전(refresh)이 필요하며, PC의 주기억장치에 이용됨
- SRAM과 비교하여 속도 늦음 but 가격이 저가, 용량 큼

 

ROM(Read Only Memory)

- 한 번 기록한 정보에 대해 오직 읽기만을 허용하도록 설계뙨 비휘발성 기억장치

- 기본 입출력 프로그램이나 글꼴 등의 펌웨어를 저장하는 데 사용함

Mask Rom - 제조사에서 필요한 자료를 제조 과정에서 기록하여 제공
- 사용자는 내용을 읽기만 가능, 기입하거나 변경 불가능
PROM(Programmable Rom) - 사용자가 특수장치를 이요하여 내용을 단 1회 기입할 수 있으나 기억된 내용은 변경 불가능

 

 

(34)

디스크

1. 자기 테이프(magnetic tape)

- 순차적 접근 기억장치(SASD)로 대량의 데이터를 보관하는 데 사용

- 주로 일괄처리 시스템의 데이터 저장장치나 백업 데이터 저장장치로 사용됨

- 기록 시 비블록 형식 또는 블록 형식으로 처리 (블록화)

- 비블록 형식 (속도 낮음, 효율성 낮음)

*IRG:Inter Record Gap

IRG R1 IRG R2 IRG R3

- 블록 형식

*IBG: Inter Block Gap

IBG R1 R2 R3 IBG R1 R2 R3

* 블록 인수(blocking factor): 하나의 블록을 구성하는 논리 레코드의 수

- 레코드 형식

고정길이 레코드 - 구성 간단
비블록화 고정길이 레코드 전송효율과 경제성이 낮고, 프로그램 작성이 쉬움
블록화 고정길이 레코드 전송효율과 경제성이 높고, 프로그램 작성도 용이
* 블록화: 블록을 인수로 사용
가변길이 레코드 - 구성 복잡(길이 정보 추가 때문)
비블록화 가변길이 레코드 전송효율과 경제성이 낮고, 길이정보 추가로 인해 프로그램 작성 어려움
블록화 가변길이 레코드 전송효율과 경제성이 높고, 길이정보 추가로 인해 프로그램 작성 어려움

 

2. 자기 디스크(magnetic disk)

- 데이터가 위치하는 주소를 지정함으로서 직접 액세스하는 직접 접근 방식(DADS)

- 액세스암,  R/W 헤드, 트랙, 실린더, 섹터로 구성

 

(39)

3. 광디스크(optical disk)

- 유리 또는 아크릴수지로 만든 디스크에 알루미늄과 같은 반사성이 큰 물질로 코딩된 표면을 레이저로 기록, 읽어내는 기억장치

CD_ROM - 컴팩트 디스크(저장매체)에 데이터를 저장
- 오직 읽을 수만 있도록 구성한 저장매체
DVD - 순수히 디지털비디오를 위해 고안된 최초의 디지털비디오 재생매체

 

(36)

캐시메모리

- 중앙처리장치와 주기억장치의 속도 차이를 개선하기 위한 기억장치

- 주기억장치보다 용량 작음  but  SRAM 으로 구성 -> 고속 처리 가능

- 캐시의 동작은 중앙처리장치가 메모리에 접근할 때, 먼저 캐시를 참조하여 적중(hit)되면 읽고, 실패(miss)하면 주기억장치에 접근해 해등 블록을 읽음

적중률(hit ratio) 적중률(hit ratio) = 적정횟수/전체 참조횟수 * 100(%)
* 적중(hit): 중앙처리장치가 처리할 명령이 캐시에 있는 경우
캐시기반 평균
기억장치 접근 시간
- 캐시에 적중시간과 캐시에 접근했지만 미적중된 실패 시의 시간의 합으로 구함
평균 기억장치 접근시간 = 적중률 * 캐시 기억장치 접근시간 + (1 - 적중률) * 주기억장치 접근시간
(Taverage) = Hhit-ratio * Tcache + (1 - Hhit-ratio) * Tmain
캐시의 사상
(mapping)
- 매핑 프로세스: 주기억장치로부터 캐시기억장치로 데이터를 전송하는 것
직접 사상
(direct mapping)
- 미스율 높음
- 주기억장치의 블록이 특정 라인(인덱스)에만 적용됨
- 캐시의 적중 여부는 그 블록이 적재될 수 있는 라인만 검사
- 간단, 가격이 저렴(탐색이 필요하지 않음, 매치 기법도 간단)
- 주기억장치의 블록이 적재될 수 있는 라인이 하나밖에 없음
* 프로그램이 동일한 라인에 적재되는 두 블록들을 반복적으로 액세스하는 경우 캐시 실패율이 매우 높아짐 -> 동일한 캐시 블록을 놓고 경쟁할 수 있음
연관 사상
(associative mapping)
- 상대적으로 캐시
실패율 낮음
- 주기억장치의 블록이 캐시의 어느 라인에든 적재될 수 있어 직접 사상에서 발생하는 단점을 보완함 -> 주기억장치의 어떤 블록도 캐시의 어디든 놓일 수 있음
- 적중 검사가 모든 라이넹 대해서 이루어져야 함 -> 검사 시간이 길어짐
- 캐시 슬롯의 태그를 병렬로 검사하기 위해 매우 복잡하고 비용이 높은 회로가 필요
- 전체 태그 메모리를 동시에 검색하기 위해 많은 하드웨어 필요
집합 연관 사상
(set associative
mapping)
- 직접 사상과 연관 사상 방식을 조합한 방식
- 하나의 주소 영역이 서로 다른 태그를 갖는 여러 개의 집합으로 이루어지는 방식
- 두 개의 집합을 갖는 집합 연관 캐시기억장치의 구조
* 주소가 지정되어 있는 특징: 직접 사상 차용
* 데이터 집어넣는 방식: 연관 사상 방식 차용

 

캐시 쓰기 정책
- 캐시 블록이 수정되면 주기억장치에도 수정해 무결성과 일관성 유지해야 함

- 캐시 내용이 수정될 때마다 주기억장치 내용도 수정하는 방법을 쓰기 정책이라 함

- 종류

즉시 쓰기 정책
(Write Through)
- 프로세서에서 메모리에 쓰기 요청을 할 때마다 캐시의 내용과 메모리의 내용을 같이 바꿈
- 주기억장치와 캐시기억장치가 항상 동일한 내용 저장
- 구조가 단순하지만 쓰기 요청 시 매번 메인 메모리에 접근 -> 캐시에 의한 접근 시간 개선이 의미가 없음(= 속도 느림)
나중 쓰기 정책
(Write Back)
- CPU에서 메모리에 대한 쓰기 작업 요청 시 캐시에서만 쓰기 작업과 그 변경 사실을 확일할 수 있는 표시를 해, 캐시로부터 해당 블록의 내용이 제거될 때 그 블록을 메인 메모리에 복사하는 방식
- 캐시에서 데이터 내용이 변경된 적이 있다면 교체되기 전에 먼저 주기억장치에 갱신함
주기억장치와 캐시기억장치의 데이터가 서로 일치하지 않는 경우도 종종 발생
- 동일한 블록 내에 여러 번 쓰기를 실행하는 경우 캐시에만 여러 번 쓰고 메인 메모리에는 한 번만 쓰게 됨 -> 효율적임 (= 속도 빠르다)

 

캐시 일관성

- 캐시의 내용과 그에 대응하는 주기억장치 또는 디스크 내용이 항상 일치하도록 캐시를 관리하는 알고리즘을 잘 설계함으로서 확보됨

- 복수의 처리장치가 주기억장치나 디스크를 공유하는 대칭의 다중 처리(SMP)에서 특히 더 중요함

- 공유 메모리 시스템에서 각 프로세서가 가진 로컬 캐시 간의 일관성

 

캐시 일관성 문제

- 캐싱: 멀티프로세서 시스템에서 메모리 액세스 시간을 줄이기 위해 반드시 필요

- 멀티 프로세서 시스템에서 개별 캐시는 일관성 문제를 발생시킬 수 있으며, 변수의 복사본이 여러 캐시에 있을 수 있음

- 프로세서가 읽은 값은 항상 최신의 값이기를 기대하며, 한 프로세서에 의해 쓰여진 결과가 다픈 프로세서에게 보이지 않을 수 있음)

- 단일 프로세서에선는 I/O를 제외하면 문제가 없으며, I/O 장치와 프로세서 캐시 간의 일관성 문제로 주로 DMA에 의해 발생함

- 캐시 일관성 프로토콜: 어떤 주소가 읽혔을 때 그 데이터가 항상 최신의 값임을 보장해줌

- 일관성 미스: invalidate 기반 캐시 일관성 프로토콜에 의해 캐시라인이 invalidate되어 발생한 미스

- 캐시 일관성 구조 및 일관성 프로토콜: snoopy, Directory protocols / MSI, MESI, MOESI 등

* 공유 캐시는 일관성 문제가 발생하지 않음

 

캐시 일관성 구조

디렉터리 기반 일관성 구조 - 캐시 블록의 공유 상태, 노드 등을 기록하는 저장 공간인 디렉터리를 이용하여 관리하는 구조
스누핑(snooping) - 각 프로세서는 메모리로 가는 요청을 감시(snoop)함
- 만약 어떤 프로세서가 요청된 캐시 블록의 수정본(dirty copy)을 갖고 있다면, 해당 블록을 요청한 프로세서에게 보내고 메모리 요청은 중단시킴
- 주소 버스를 항상 감시하여 캐시상의 메모리에 대한 접근이 있는지를 감시하는 구조
- 다른 캐시에서 쓰기가 발생하면 캐시 컨트롤러에 의해서 자신의 캐시 위에 있는 복사본을 무효화시킴

 

캐시 일관성 모델

MSI 프로토콜 - 멀티 프로세서 시스템에서 사용되는 기초적인 캐시 일관성 프로토콜
- MSI 프로토콜은 메모리가 가질 수 있는 세 가지의 캐시 상태를 정의함
- 프로그램이 M 상태나 S상태에 있는 블록을 읽으려고 하는 경우 -> 별다른 조치 없이 캐시에서 읽을 수 있음
- I 상태의 메모리 블록을 읽으려고 하는 경우 -> 다른 캐시에서 그 메모리를 M 상태로 가지고 있는지 확인, 그에 따른 중갱신 작업이 추가적으로 이루어짐
Modified - 블록이 캐시에서 수정된 상태
- 메모리는 수정되지 않았으며 캐시만 수정됨 -> 캐시와 메모리는 다른 데이터 가지고 있음
- 이러한 캐시 블록을 캐시에서 내보낼 때 메모리에 그 변경된 내용을 반영해야 함
Shared - 블록이 캐시로 공유된 상태
- 캐시와 메모리의 상태가 동일-> 해당 블록을 캐시에서 내보낼 때 메모리에 쓰기 작업을 할 필요 X
Invalid - 블록이 유효하지 않은 상태
- 해당 블록이 내용을 캐시로 올리기 위해서는 메모리나 다른 캐시에서 갱신된 내용을 확인핧 필요 있음
MESI 프로토콜 - 데이터 캐시는 태그 당 드 개의 상태 비트를 포함
- 아래와 같은 상태 정보 중 하나를 저장함
Modified 캐시 내 라인이 수정되었으며, 그 라인이 캐시에만 있음
Exclusive 캐시 내 라인은 주기억장치의 것과 동일하며, 다른 캐시에는 존재하지 않음
Shared 캐시 내 라인은 주기억장치의 것과 동일하며, 다른 캐시에도 있을 수 있음
Invalid 캐시 내 라인은 유효한 데이터를 가지고 있지 않음

 

(38)

가상기억장치

- 한정된 주기억장치(실공간) 용량의 문제 해결하기 위한 기술

- 주소공간의 확대를 목적으로 함

- 보조기억장치의 공간(가상공간)을 가상기억장치 관리기법을 통해 주기억장치의 용량에 제한없이 프로그램을 실행할 수 있는 환경 제공

 

구현기술         * 내부 단편화 발생

페이징 기법 - 가상기억장치를 고정길이의 페이지로 구분해 주기억장치로 페이지 단위로 이동하여 주소 변환 (외부 X)
세그먼테이션 기법 - 가상기억장치를 가변길이의 세그먼트로 구분해 주기억장치로 세크먼트 단위로 이동하여 주소가 변환 (외부 O)

 

사상 (mapping)

- 가상주소: 페이지번호(=프레임번호)와 변위(offset)으로 구성

- 페이지 번호의 비트 수 =  페이지 수

* 페이지번호의 크기가 n비트이면 페이지 수는 2ⁿ개가 지정됨

- 변위의 비트 수 = 한 페이지의 크기

* 변위 크기고 n비트이면 한 페이지의 크기는 2ⁿ워드로 구성됨

 

페이징 시스템

- 페이징 시스템에서의 가상 주소는 v=(p,d)로 표현

* p: 가상메모리 내에서 참조될 항목이 속해 있는 페이지 번호

* d: 페이지 p내에서 참조될 항목이 위치하고 있는 곳의 변위

- 순수 페이징 시스템에서의 가상 주소 v= (p,d)

페이지 번호 p 변위 d

 

페이징 기법에서의 동적 주소 변환

-1. 실행 중의 프로세스가 참조하는 가상 주소를 v=(p,d)라고 할 때, 페이지 사상 테이블(page mapping table)에서 페이지 p를 찾고, 페이지 p가 페이지 프레임 p'에 있음을 알아냄

-2. 그 후 p'와 d를 더하여 주기억장치상의 실제 주소 r = p'+d를 구함

 

연관(associative) 메모리 = CAM(content addressble memory, 내용 지정 메모리)

- DB 검사, 캐시 태그 등에 사용

- 기억된 데이터의 내용에 의해 접근하는 기억장치

- 기억장치의 정보에 접근하기 위해서 주소를 사용하는 것이 아닌, 기억된 정보의 일부분을 이용해 원하는 정보가 기억된 위치를 알아낸 후 나머지 정보에 접근할 수 있는 메모리

- 내용에 대한 병렬검색이 가능, 검색을 전체 워드 또는 일부만 가지고도 실행할 수 있음