이야기박스
메모리 복습2 본문
§ 블록 배치
○ Direct mapped
: 블록을 한 곳에만 들어갈 수 있게 하는 구조
○ Set associative
: 한 블록이 들어갈 수 있는 자리의 개수 고정 (n-way)
○ Fully associative
: 블록이 캐시 내의 어느곳에나 위치할 수 있는 방식
* Set associative
- 장점 : 실패율 감소
- 단점 : 적중시간 증가
○ 블록 교환 정책
- LRU 가 대표적
--> 4-way 까지는 사용하지만, 그 이상은 어려워서 잘 사용하지 않음
○ Multilevel cache
- Primary cache
- L2 cache
==> 프로세서의 빠른 클럭 속도와 상대적으로 점점 느려지는 DRAM 접근 시간 사이를 보완하기 위해
§ 메모리 구조와 신용
○ Fault
: Failure of a component
--> may or may not lead to System Failure
○ Failure
: fault의 영향으로 내가 원하는 기준점 이상의 서비스가 이루어지지 않는 것
○ Restoration (복구)
: Fault나 Failure를 정상 작동하게 하는 것
○ 신뢰성
: 서비스 수행의 지속성에 대한 척도
- MTTF ; Mean time to Failure
: 신뢰성의 척도
- MTTR ; Mean time to Repair
: 서비스 중단은 이것으로 측정
- MTBF ; Mean time between failures
: MTTF + MTTR
- availability (가용성)
: 내가 가용해서 쓰는 시간
= failure 안난 시간 / failure나서 고치는 시간
= MTTF / (MTTF + MTTR)
§ 가상 머신 (Virtual Machine)
: Host Computer emulates guest Operating System and machine resource
○ 가상머신으로 여러개의 OS 실행 가능
○ Virtual resource --> Physical resource로 사상
○ 가상 OS는 원래 OS와 다를 수 있다.
○ Guest code는 native machine에 유저모드에서 동작할 수 있다.
§ 가상 메모리 (Virtual Memory)
: 메인 메모리가 디스크로 구현되는 2차 저장장치를 위한 캐시처럼 이용되는 기술
○ VM's block = page
○ VM's miss = page fault
○ 마찬가지로 page fault(페이지 부재) 패널티를 줄이기 위하여
- Fully associative placement
- Smart replacement algorithms
○ Page Tables
: 가상 메모리 시스템에서 가상 주소를 실제 주소로 변환해 주는 테이블
○ 교환 및 쓰기 정책
- LRU 등 사용 (운영체제 참조)
- wirte-back을 사용 ( Dirty bit 사용함 )
--> write-through는 너무 비실용적이다.
( 메모리 <---> 디스크 는 캐시 <----> 메모리에 비해 비용이 너무 크다 )
§ 3C
○ Compulsory misses (필수 실패)
- 블록에 첫 번째 접근에 의해 발생
○ Capacity misses (용량 실패)
- 유한한 캐시 사이즈 때문에
- 블록이 교체되고 나중에 다시 그 블록을 가져올 때 발생
○ Collision/Conflict misses (충돌/대립 실패)
- 완전 연관 캐시에서는 발생하지 않음
- 다수의 블록들이 하나의 집합에 대해 경쟁을 벌일 때 발생
§ 병렬성과 메모리 계층
○ Cache coherence 문제
: 만약 어떤 데이터를 읽을 경우, 가장 최근에 쓰인 값을 반환한다면 메모리 시스템이 일관된다고 말할 수 있다.
○ Cache coherence protocols
: 일관성을 가진 프로세서라면, 이동(migration)과 복사(replication) 제공
- Snooping protocols
: 캐시들은 버스를 감시한다 ( reads / write )
==> 값이 바뀌면 broadcast
==> 쓰기 작업은 배타적 접근이 필요
--> 다른 캐시의 복사본들은 모두 무효화 됨
--> 다시 캐시 미스 생김
- Directory-based protocols
: 테이블에 block의 status를 적고 공유한다.
○ Memory Consistency
: X이후에 Y가 나온다.
==> 모든 프로세서에 대해서 새로 쓰인 Y를 본다는 것은 새로 쓰인 X 또한 보앗다는 말이다.
'Computer & Data > Computer Architecture' 카테고리의 다른 글
10진수 - 2진수 (hexadecimal - binary) (0) | 2017.11.24 |
---|---|
RAID (0) | 2017.11.04 |
데이터 패스 (0) | 2017.10.20 |
메모리 복습 (0) | 2017.10.19 |