일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 슬픔의 후에
- 오라클 아키텍처
- 신입
- 데이터베이스
- 기타
- DBMS 구성요소
- IT
- I'm fine thank you
- 러블리즈
- 장범준
- oracle
- DBMS
- 니가 참 좋아
- nginx
- 핑거스타일
- 레이디스코드
- 봄 사랑 벚꽃 말고
- 오라클
- 인덱스
- 천공의 시간
- Inside Of Me
- 아이유
- db
- 6학년 8반 1분단
- 말 더듬
- 악보
- SQL 처리
- 개발자
- index
- 스위트라떼
취미로 음악을 하는 개발자
메모리 사상, Memory Mapping 본문
- 메모리 계층구조
- 캐시 메모리
: CPU에 읽어 들인 데이터들로 채워지는 버퍼, CPU와 메모리의 속도 차이를 극복하기 위해 존재함
ㄴ Locality of Reference, 참조 지역성
: CPU가 한 번 참조한 데이터는 다시 참조할 가능성이 높고 주변의 데이터 역시 참조될 가능성이 높다
-> 자주 쓰는 데이터를 캐시에 두고 데이터를 전달
- 메모리 사상, Mapping
: CPU의 가상 주소를 MMU를 통해 물리 주소로 변환하여 메모리에 전달
캐시에 해당 주소의 데이터 확인 후 캐시에 데이터를 저장하는 방식에 따라 물리 주소를 달리 해석가능
- 캐시 사이즈
ex) 32비트 캐시
2^n개 블록, 인덱스 필드 : n개
블록 크기 : 2^m개 워드, m개 비트는 블록내부에서 워드를 구분하는데 사용
태그 길이 : 32-(m+n+2), 1워드 = 2^2바이트
캐시 전체 비트 수 : 2^n(2^m*32 + 32-(n+m+2)+1) = 2^n(32*2^m+31-n-m) 비트
- 캐시 실패 시 1) 원래의 PC값(현재 PC값 – 4)을 메모리로 보냄
2) 메인 메모리에 읽기 동작 지시 후 메모리가 접근 끝낼 때까지 기다림
3) 메모리에서 인출된 데이터를 데이터 부분에, 태그 필드에 주소의 상위 비트를 쓰고 유효 비트를 1로 만들어서 캐시 엔트리에 쓰기 수행
4) 명령어 수행을 첫 단계부터 다시 시작하여 캐시에 명령어 가져옴
1) Direct Mapping, 직접 매핑 : 캐시의 데이터들은 메모리에서와 동일한 배열을 가짐
블록 단위 : 참조 지역성 때문에 한 번 퍼낼 때 인접한 곳까지 한꺼번에 가져오는(?) 단위,
블록에 몇 번째에 원하는 데이터가 있는지 보여주는 지표가 됨
-> 매우 단순하고 탐색이 쉽다
적중률(Hit ratio)이 낮다.
1. 캐시의 태그와 주소상의 태그가 동일한지 확인 후 같으면 블록 영역을 통해 데이터를 읽음
2. 만일 태그가 다르다면 메모리에서 데이터를 가져옴
2) Associative Mapping, 연관 매핑 : 직접 매핑의 단점을 보완, 메모리의 순서와 상관없음, 캐시를 전부 뒤짐
- 병렬 검사를 위해 복잡한 회로를 가짐
적중률이 높다.
구현이 복잡하여 비용이 큼
3. Set Associative Mapping, 세트 연관 매핑 : 위의 두 방식의 장점만을 취하기 위해서 만들어짐
-> 연관 매핑의 병렬 탐색을 줄일 수 있음
모든 라인에 무작위 위치
캐시 Fin/Fout 발생 증가, 구현 비용 큼
각각의 라인들은 하나의 세트에 속해 있다. 세트 번호를 통해 영역을 탐색
사진 출처
: https://constructor.tistory.com/18 , https://ssoonidev.tistory.com/35, http://blog.skby.net/%EC%BA%90%EC%8B%9C-%EC%82%AC%EC%83%81mapping-%EA%B8%B0%EB%B2%95/
'공대인 > Theory' 카테고리의 다른 글
JSON JSP JS (0) | 2019.05.14 |
---|---|
[TOPCIT] 소프트웨어 개발 및 관리 (0) | 2019.05.11 |
[TOPCIT] 준비 (0) | 2019.05.10 |
유클리드 알고리즘 (0) | 2019.05.05 |
CPU 용어 정리 (0) | 2019.04.04 |