(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 검사, 캐시 태그 등에 사용
- 기억된 데이터의 내용에 의해 접근하는 기억장치
- 기억장치의 정보에 접근하기 위해서 주소를 사용하는 것이 아닌, 기억된 정보의 일부분을 이용해 원하는 정보가 기억된 위치를 알아낸 후 나머지 정보에 접근할 수 있는 메모리
- 내용에 대한 병렬검색이 가능, 검색을 전체 워드 또는 일부만 가지고도 실행할 수 있음
'컴퓨터 일반' 카테고리의 다른 글
| 2. 운영체제 - 운영체제의 개념 (0) | 2026.01.22 |
|---|---|
| 1. 컴퓨터 구조 - 입출력장치 및 병렬처리 (1) | 2026.01.21 |
| 1. 컴퓨터 구조 - 중앙처리장치 (0) | 2026.01.21 |
| 1. 컴퓨터 구조 - 자료의 표현 (0) | 2026.01.21 |
| 1. 컴퓨터 구조 - 컴퓨터와 동작원리 (0) | 2026.01.13 |