Please enable JavaScript.
Coggle requires JavaScript to display documents.
Large and fast : Exploiting Memory Hierarchy (메모리 계층구조 (메모리 기술 (DRAM (동적…
Large and fast :
Exploiting Memory Hierarchy
메모리 계층구조
여러 계층의 메모리를 사용하는 구조
프로세서로부터 거리가 멀어질수록 메모리의 크기/접근 시간 향상
목적
: 메모리의 접근 속도와 용량을 둘 다 충족하기 위함
블록 / 라인 / 적중률 / 실패율...
적중 시간
:메모리 계층구조 상위에 접근하는 시간
실패 손실
:하위 계층에서 상위 블록과 교쳬, 블록 프로세서 보낼 때 걸리는 시간
시간적 지역성/공간적 지역성 (용어 정의 확인)
메모리 기술
메인 메모리-DRAM
캐시-SRAM
SRAM
접근 시간==사이클 시간
읽기/쓰기 접근 포트 1개
데이터마다의 접근 시간 동일, 정적 저장
DRAM
동적 저장
: 커패시터에 전하 저장
성능 향상을 위해 행 버퍼링해 반복적 접근
클럭 추가 가능(동기화 DRAM 혹은 SDRAM)
주소 인터리빙
: 여러 뱅크에서 읽기 쓰기 가능
플래시 메모리
쓰기가 비트 마모시킴
마모 균등화
: 쓰기 분산시키기
디스크 메모리
회전 지연 시간
: 헤드가 원하는 트랙에 도달하면 읽기/쓰기 헤드의 아래에 원하는 섹터가 위치할 때까지 기다려야 함
캐시 메모리
직접 사상
: 메모리 주소에 기반을 두고 캐시 내 위치 할당
태그
: 캐시 내의 위치==프로세서가 요구하는 것인지 확인
유효 비트
: 엔트리가 타당한 주소 포함하는지 확인(1일 때)
캐시 접근
태그 필드
: 캐시의 태그 필드 값과 비교하는 데 사용함
32-(n+m+2)
32비트의 주소
직접 사상 캐시
캐시는 2^n개의 블록을 가지고 있고 n개 비트는 인덱스를 위해 사용됨
캐시 블록의 크기는 2^m개의 워드이다. m개 비트는 블록 내부에서 워드 구별에 쓰인다.
직접 사상 캐시의 전체 비트 수 = 2^n * (블록 크기+태그 크기+유효 비트 크기)
캐시 실패 처리
프로세서의 제어 유닛과 별도 제어기의 공동 작업
원래의 PC값을 메모리로 보냄
메인 메모리에 읽기 동작 지시
인출한 데이터 쓰고 주소의 상위 비트를 태그 필드에 씀
캐시 엔트리에 쓰기 수행
캐시에서 명령어 갖고 옴
완전 연관
: 블록이 캐시의 어느 곳에나 위치할 수 있는 캐시 구조
집합 연관
: 각 블록이 배치될 수 있는 위치의 개수가 조정되어 있는 캐시 구조
연관 정도를 늘리면 실패율 감소
다단계 캐시를 이용한 실패 손실 줄일 수 있음
1차 캐시/2차 캐시 사용
즉시 쓰기
: 메인 메모리와 캐시 일치시키기 위해 항상 데이터를 메모리와 캐시에 같이 씀
쓰기 버퍼 이용
나중 쓰기
: 즉시 쓰기의 대안, 새로운 값을 캐시 내 블록에만 씀
캐시 성능의 측정 및 향상
메모리 지연 클럭 사이클 = (명령어/프로그램) X (실패/명령어) X 실패 손실
평균 메모리 접근 시간 사용
캐시에서 블록 찾기
: 직접 사상 캐시는 인덱스만을 이용해 접근 가능
교체시킬 블록의 선택
완전 연관 캐시: 모든 블록이 교체 후보
집합 연관 캐시: 선정된 집합 내의 블록 중에서
블로킹을 이용한 소프트웨어의 최적화
큰 배열 처리 시 좋은 기술
가상 머신
소프트웨어 관리
추상화 제공
하드웨어 관리
다수의 서버->분리된 컴퓨터의 적합한 운영체제 상
ex) 다양한 소프트웨어 스택이 하드웨어 공유/독립적 동작
명령어 집합 구조
VMM
프로세서 가상화 비용 줄임
가상화로 인한 인터럽트 오버헤드 비용 줄임
VMM 호출 없이 적절한 VM의 인터럽트 처리
요구사항
사용자 프로세스/관리자 프로세스
운영체제는 관리자 모드에서만 사용 가능한 특수 명령어 사용
시스템 호출
예외 처리 방식으로 실현
메모리 계층구조에서
신용도
확보할 것
패리티 비트
(p.428-430 참고)
가상 메모리
메인 메모리를 2차 저장 장치를 위한 캐시로 사용하는 기술
페이지 부재
: 가상 메모리 실패
스왑 스페이스
: 하나의 프로세스에 필요한 전체 가상 메모리를 위해 예약된 디스크 공간
가상 주소
: 가상 메모리에서의 위치를 나타내는 주소
메모리 접근 시 주소 사상에 의해 실제 기술로 변환
재배치
수행될 프로그램의 적재 단순회
다른 실제 주소로 사상시켜 줌
TLB와 캐시의 통합
TLB
: 변환 참조용 버퍼
페이지 테이블에 접근하는 것을 피하기 위해 최근에 사용된 사상을 보관하고 있는 캐시
TLB가 페이지 테이블 변환을 위한 캐시 기능을 함
각 주소는 TLB 내의 변환을 통해 가상 주소->실제 주소
가장 좋은 경우: 가상 주소가 TLB에 의해 변환되고 캐시로 보내져서 원하는 데이터 찾아내어 프로세스로 보내기
메모리 계층을 위한 공통 구조
캐시, 가상 메모리, TLB 모두 공통되는 원칙과 정책에 의존
블록의 위치 2. 블록 찾기 3. 캐시 실패 시 교체 4. 쓰기 시 발생하는 일들
3C 모델
: 필수 실패/용량 실패/대립 실패
실패율 개선이 전체 성능 저하로 이어질 수도 있음(trade-off)
유한상태기(FLM)
입력과 출력의 집합, 다음 상태 함수, 출력 함수로 구성된 순차 논리 함수
<네 가지 상태> 1. 대기 상태 2. 비교 태그 상태 3. 나중쓰기 상태 4. 할당 상태
캐시 일관성
두 개의 다른 프로세서가 같은 위치에 어떻게 두 개의 다른 값을 갖게 되는가?
쓰기 순서화가 필요함
스누핑
: 캐시 제어기들은 버스 또는 스위치 접근에 의해 요청된 블록의 복사본의 여부를 확인하기 위해 감시(snoop)해야 함