[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 캐시는 캐시 히트 비율이 떨어진다는 단점이 있습니다. 각각
애플 실리콘(ARM) 맥에 대한 좀더 추가된 생각
By being nice to me | 2020년 7월 3일 |
Mac OS는 Mac OS. 실사용자는 아키텍쳐에 따른 차이점을 거의 느낄 수 없을 듯 합니다. 로제타2역시 정말 특별한 앱이 아니고서는 알아서 자동으로 돌아가기 때문에 사용자 입장에서는 차이를 알아채기 힘들 것 같은데, 벤치마크 결과에서 볼 수 있듯(구버전 하드웨어 주물러 만든 DTK로 최신 서피스 프로X를 안습하게 만들었다는 해외 평가) 실제 퍼포먼스는 기대 이상이라고 볼 수 있을 듯. 물론 로제타2는 에뮬레이터라기 보다 첫 사용시 될수 있는 한 arm64 네이티브 코드로 번역을 해 놓는 물건이라서 실제 Get Info 등으로 인텔 바이너리인지 확인하기 전에는 사용자는 눈치채기 어려울 것입니다. 물론 인텔 특화 명령어를 쓰거나 했다면 안돌아갈 것이니 포기하십쇼. 여기에는 패러럴즈 같은 윈도우 가상화 포
[ARM][ARMv7 아키텍처] 성능: 사이클(cycle) 정보 얻어오기 - [1]
By Guillermo Austin Kim | 2020년 7월 20일 |
이번 포스팅에서는 ARM 프로세서의 성능 측정 지표인, 사이클 정보를 얻는 방법을 정리한다.아쉽게도 관련 문서나 코드를 100% 이해한 내용은 아니나, 리서치한 부분까지 정리한다. 리눅스 커널의 ARM 어셈블리 코드 분석 아래 소스를 열어보면 뭔가 의미있어 보이는 주석이 있다. * Cortex-A8 has up to 4 configurable performance counters and * a single cycle counter. * Cortex-A9 has up to 31 configurable performance counters and * a single cycle counter. * * All counters can be enabled/disabled and IRQ masked separ
[Arm프로세서][Armv7] 트러스트존(TrustZone): 시큐어 월드로 실행 흐름이 변경되는 과정
By Guillermo Austin Kim | 2021년 12월 29일 |
이번에는 Armv7 아키텍처에서 정의된 전체 동작 모드를 보면서 논 시큐어 월드에서 시큐어 월드로 실행 흐름이 바뀌는 과정과 이 때 SCR.NS 비트가 어떻게 바뀌는지 알아봅시다. 그림 11.4 모드, privilege 레벨과 시큐리티 상태들 먼저 그림을 넓은 시야로 봅시다. 그림의 왼쪽 부분은 논 시큐어 상태, 오른쪽 부분은 시큐어 상태를 나타냅니다. 각 박스 내에 PL이 보이는데 이는 Privilege level의 약자이며 권한 수준을 나타냅니다. 권한 수준이 낮은 User 모드는 PL0이고, 시스템 레벨로 권한 수준이 있는 System, IRQ, Undef, Abort, Supervisor 모드는 PL1입니다. 그런데 그림의 오른쪽 부분에도 PL0에 해당되는 User 모드, PL1에 해당되