용's
[Chap 10] Cache 본문
10.1 Cache
- 프로세서는 메모리보다 훨씬 빠르므로 속도차 극복을 위해 캐시라는 것을 사용하게 됨
- 캐시가 재대로 이용되면서 높은 성능을 보일 수있는 이유는 프로그램들이 보통 locality의 특징을 가지기 때문
- 단일화 된 캐시(명령어 캐시와 데이터 캐시가 하나로 단일화)
- 분리된 데이터&명령어 캐시(하버드 아키텍처)
.단일 클락 사이클 안에 load/store 명령이 execute stage에서 되도록 허락
- Mapping(사상 방법)
.Direct Mapped Cache: 단순하고 가장 빠르다. 같은 인덱스 값을 가지는 다수의 메모리주소들을 가짐
.Set Associative Cache: 특정 메모리를 경쟁하는 문제를 줄이기 위해 특정 메모리 주소를 캐시 영역에 한 군데 이상(set) 둘 수 있도록 (direct mapped cache 방식을 사용하는 캐시를 n개(n way)로 구성)
n개의 캐시에서 각각의 index값과 비교하여 필요한 데이터가 있으면 hit함
.Fully Associative Cache: CAM(Content Addressable Memory)를 이용함
위의 셋 연상을 최대화하여 설계
유효한 캐시라인안에 저장되어 있는 캐시태그와 입력태그 주소를 비교하는 비교기가 포함되어 있어 동시에 더 많은 캐시 태그를 동시에 비교할 수 있게 됨
- 쓰기(write) 전략
.Write-Through: 모든 쓰기 연산들이 메인 메모리에 전달됨(프로세서가 느려짐)
.Write-Through with buffed write: 버퍼를 이용한 write-through(프로세스가 다음 일을 할 동안 버퍼가 데이터를 전송하도록 함
.Copy-Back(write-back): Replacement가 일어 날떄 메모리 쓰기가 실행되도록 함
10.2 Cache Design
- ARM3에서 최초로 캐시가 도입되기 시작했는데, 가장 단순한 write through방식이 채택되었음
- 여러 캐시 매핑 방법과 캐시 크기에 따라 성능을 비교 해봤을 때, 16K 사이즈에 2 way 방법이 가장 좋았다
- 하지만 16KByte 캐시는 그 당시 너무 넓은 Chip 영역을 차지하여 비효율적이었음(그렇다고 4K , 2 way를 하기엔 성능이 좋지 못함
- 그리하여 채택한 것이 4KByte에 64way 캐시이다. 이는 16K 2way와 비슷한 성능을 낸다.
- 아래의 ARM3 캐시 구조 그림을 보면 CAM RAM 구조의 캐시 구조가 사용되었음을 알 수 있음
10.3 Memory Management
- 메모리 관리 유닛(MMU: Memory Management Unit)은 Segmentation & Paging을 지원한다.
- Segmentation(메모리 맵을 쪼개는 것)
.메모리 매니지먼트는 어플리케이션이 메모리를 세그먼트의 집합(코드 세그먼트, 데이터 세그먼트, 스택 세그먼트) 으로 볼 수 있도록 해줌
.각 세그먼트는 base&limit 레지스터를 가진다
- Paging
.논리&물리적 페이지 주소는 페이지 테이블에 저장된다
.페이지가 4Kbytes라면, 이 페이지를 한 테이블에 담기에 너무 크기가 크다.
대부분의 페이징 시스템드은 2개 이상의 페이지 테이블 level을 이용한다
'Computer Science > Embedded System' 카테고리의 다른 글
[Chap 9] ARM Processor Cores (0) | 2014.12.16 |
---|---|
[Chap 8] Architecture Support for System (0) | 2014.12.12 |
[Chap 5] The ARM Instruction Set (0) | 2014.10.22 |
[Chap 4] ARM Organization & Implementation (0) | 2014.10.21 |
[Chap 3] ARM Assembly Language Programming (0) | 2014.10.17 |