캐시

Category
아이템: 
포스트 갯수14

[Arm프로세서] 캐시: 캐시 관련 어셈블리 명령어

By Guillermo Austin Kim | 2022년 7월 22일 | 
캐시를 설정하거나 원하는 방식으로 캐시를 구동하려면 캐시와 연관된 시스템 레지스터만 설정해야 한다고 생각할 수 있습니다. Arm 아키텍처에서는 캐시를 세세하게 동작시킬 수 있는 어셈블리 명령어를 제공합니다. 이번에는 캐시를 제어하는 어셈블리 명령어를 알아봅시다. 표 17.5 캐시 관련 어셈블리 명령어 시스템을 초기화할 때 캐시를 원하는 방식으로 설정해야 성능을 제대로 낼 수 있습니다. 이를 위해 캐시를 제어하는 명령어의 사용 방법을 잘 익혀 둘 필요가 있습니다. 시스템을 초기화하는 과정에서 캐시를 스팩에 마젝 적절히 설정하면 시스템의 성능을 극대화할 수 있습니다.

[Arm프로세서] 캐시: 캐시 관련 용어 알아보기(Arm 아키텍처 관점)

By Guillermo Austin Kim | 2022년 7월 22일 | 
Arm 아키텍처는 캐시를 제어하는 명령어를 제공하는데, 명령어의 동작 원리를 제대로 파악하려면 Arm 아키텍처에서 정의된 캐시의 동작과 관련된 용어를 알아야 합니다. 먼저 캐시와 관련된 용어를 소개하고 캐시를 제어하는 명령어를 소개합니다. 실전 개발에서 캐시의 동작을 설명할 때 '캐시 플러시(Cache Flush)'란 용어를 많이 씁니다. 일반적으로 캐시의 데이터를 메인 메모리에 내린다는 의미로 사용됩니다. 리눅스 커널이나 RTOS에서 Arm 프로세서의 캐시를 제어하는 함수나 레이블의 이름에 flush가 포함된 경우가 많습니다. 일반적으로 캐시 플러시는 캐시 라인에 있는 데이터를 메인 메모리에 복사해 캐시와 메인 메모리에 있는 데이터의 싱크를 맞추는 동작을 뜻합니다. 그런데 Arm 아키텍처 문서를

[Arm프로세서] 캐시(Cache): Direct-Mapped 캐시 구조

By Guillermo Austin Kim | 2022년 6월 12일 | 
Direct-Mapped 캐시는 가장 단순한 캐시 구조입니다. 사실 이전 절에서 다뤘던 캐시의 구조는 모두 Direct-Mapped 입니다. 이번에는 다음 그림을 보면서 Direct-Mapped 캐시의 구조 배워봅시다. 그림 17.9 Direct-Mapped 캐시의 구조 그림 왼쪽 부분은 캐시, 오른쪽 부분은 메인 메모리의 주소 공간을 나타냅니다. 먼저 왼쪽 부분에 있는 캐시를 보면 캐시 라인은 8개이며 각각 라인은 메모리 주소에 바로 매핑됩니다. Direct-Mapped 캐시는 그림과 같이 구조가 간단하므로 하드웨어 관점으로 회로를 간단하게 구성할 수 있습니다. 또한 데이터를 빠르게 검색할 수 있습니다. 그런데 Direct-Mapped 캐시는 캐시 히트 비율이 떨어진다는 단점이 있습니다. 각각