Scratchpad Memory
임베디드 시스템에서 메모리를 사용할 때 자주 쓰이는 간단한 테크닉
Main Memory에 빠르게 접근하기 위해 Main Memory에서 데이터를 복사해 가깝고, 작고, 빠른 Cache Memory에 옮겨놓고 사용한다.
그러나 어떤 데이터가 Cache에 존재하는지를 장담할 수 있을까? 물론 Locality가 굉장히 강한 데이터는 Cache에 오래도록 머무를 수 있지만, 기본적으로 100%를 장담할 수는 없는 일이다. 확률적으로 Ejection이 될 가능성이 있음. 이럴 경우 Additional Delay를 발생시키고 심할 경우에는 목표로 삼았던 Execute Deadline을 넘길 수 있음
만일 정말정말 자주 사용되는 데이터가 있다면 SRAM에 고정시켜놓고 사용하는 쪽이 효율이 좋고, 안정적이다. Ejection이 안 되므로 성능이 보장되고, 실행 시점을 예측할 수 있다. 물론 이를 위해서는 어떤 데이터가 자주 사용되고, 필수적인지 확인이 필요하다. 이러한 확인을 위해 애플리케이션에 대한 분석이 선행되어야 한다. 실행할 애플리케이션이 정해져 있고, 이에 따라 하드웨어의 최적화가 가능한 임베디드 시스템에서나 가능한 기법.
최근 아키텍쳐와 컴파일러 분석의 발전으로 Scratchpad Memory의 다양한 베리에이션이 나타나고 있다.
Cache Lockdown
Scratchpad Memory의 개념 자체에는 동의하지만, 추가적인 하드웨어 구성은 그 자체로 부담이 된다. Cache Lockdown은 Set Associative Cache의 조작을 통해 Scratchpad Memory와 같은 효과를 내는 기법이다.
Time-Critical한 코드와 데이터를 캐시 메모리에 로드하고 Eviction을 방지한다. lockdown 된 코드나 데이터는 시스템에 더 빨리 응답하고 응답 시간이 예측 가능하다
ARM 프로세서가 해당 기능을 제공하며 4-way 캐시의 1개 영역을 lockdown 용도로 사용하는 식이다. Vector Interrupt Table, Interrupt Service Routine, Extensively used critical algorithm, Frequently used global variable을 저장하는 용도로 사용된다.
'대학 수업' 카테고리의 다른 글
I/O Commands, ARM Interrupt - 임베디드 컴퓨터 구조 (0) | 2020.12.14 |
---|---|
I/O Device와 I/O 인터페이스 - 임베디드 컴퓨터 구조 (0) | 2020.12.14 |
Virtual Memory, TLB, Cache Interacton - 임베디드 컴퓨터 구조 (1) | 2020.12.13 |
DRAM 구조와 Cache Performance 측정 - 임베디드 컴퓨터 구조 (0) | 2020.12.13 |
Write-Through vs. Write-Back Cache - 임베디드 컴퓨터 구조 (0) | 2020.12.12 |