ARM Architecture6 Cache(1) Overview요즘 processor의 clock speed는 external memory에 접근하는 bus speed에 비해 매우 빠른 속도를 가지고 있는데, 때문에 상대적으로 느리게 메모리에 접근하여 처리하는 동안 processor는 유휴 상태가 된다. 이와 같은 속도 차이때문에 발생하는 낭비를 막기 위해 cpu와 가까이 메모리를 위치시키고 미리 외부 메모리로 부터 data를 미리 가져옴으로써 성능을 향상하는 기법을 caching 기법이라 한다. Memory Hierarchy 일반적으로 memory는 core와 근접해 있을수록 낮은 latency를 가지고 있어 속도면에서는 장점이 있으나 사이즈나 비용적인 측면에서 제한적이며 반대로 core와 멀어질수록 큰 size의 메모리를 구성할 수 있으나 속도 .. 2024. 8. 9. ARM Memory System Memory TypeARM architecture에서 memory는 크게 두 가지 type으로 분류 됨. Normal Memory일반적으로 data나 code가 load되어 처리되는 영역으로서 R/W나 RO로 동작ARM processor는 해당 영역에 대하여 cache 기법을 적용할 수 있음 또한 성능 향상이나 최적화를 위해 하기와 같은 기법을 사용할 수 있음. Merge access연속된 메모리 공간에 접근하는 2개 이상의 명령어를 한번에 처리. ex) 0xF000_0000. 0xF000_0004, 0xF000_0008의 연속된 메모리에 대해 4byte씩 접근하는 경우 3번의 access를 수행하여야 하는데, 이때 다수의 access를 merge하여 0xF000_0000으로 부터 한번의 transact.. 2024. 8. 9. ARM Memory System Memory TypeARM architecture에서 memory는 크게 두 가지 type으로 분류 됨. Normal Memory일반적으로 data나 code가 load되어 처리되는 영역으로서 R/W나 RO로 동작ARM processor는 해당 영역에 대하여 cache 기법을 적용할 수 있음 또한 성능 향상이나 최적화를 위해 하기와 같은 기법을 사용할 수 있음. Merge access연속된 메모리 공간에 접근하는 2개 이상의 명령어를 한번에 처리. ex) 0xF000_0000. 0xF000_0004, 0xF000_0008의 연속된 메모리에 대해 4byte씩 접근하는 경우 3번의 access를 수행하여야 하는데, 이때 다수의 access를 merge하여 0xF000_0000으로 부터 한번의 transact.. 2024. 7. 30. ARMv8 Exception Exception CPU 아키텍처 관점에서 기계어를 정상적으로 처리하지 못한 상황을 의미하며 이를 처리하기 위해 모든 CPU Architecture에서는 대개 Exception이 유발되면 해당 Exception 종류에 해당하는 특정 주소로 분기 ARM의 경우 Exception을 "외부에서 발생한 인터럽트나 정의되지 않은 명령어를 실행하려는 시도와 같은 이벤트를 처리하기 위해 실행되고 있는 프로세스를 멈추게하는 것"으로 정의하고 있으며, Exception을 처리하기 위해 다양한 정보들을 register에 업데이트 하고, 해당 Exception 종류에 해당하는 특정 주소로 분기하는 과정을 수행함. Exception Type ARMv8의 익셉션 종류는 대략 하기와 같이 분류 됨 Synchronous Excep.. 2024. 1. 29. ARMv8 Exception Level Exception Level Overview ARMv7 대비 ARMv8에 새로 도입된 개념 중 하나인 Exception Level은 레벨마다 System의 resource에 대한 특권(Privilege)를 다르게 부여하여 각 레벨에 맞는 동작을 수행 Privileged / Unprivileged mode를 구분하는 이유(a.k.a user space와 kernel space를 구분한 이유) Privileged mode로 동작을 하게되면 시스템의 주요 설정과 메모리 등에 접근이 가능함 만약 User Application도 Privilege가 부여되어 시스템 메모리나 시스템 설정이 가능해진 상황에서 이러한 주요 resource를 잘못 사용할 경우 시스템에 critical한 error를 유발할 수 있음. 따라.. 2024. 1. 21. ARMv8 주요 register General Purpose Registerassembly instruction의 입력과 출력을 담당하는 registerAArch64: 각 64bit size의 X0 - X30 register로 구성AArch32: 각 32bit size의 W0 - W30 register로 구성X30은 LR(Link Register)로 사용 됨주로 데이터를 연산하거나 메모리에 접근하는 명령어를 실행할 때 address나 data를 저장하는 역할Special Register프로세스의 흐름을 저장하는 기능을 수행하는 registerException Level별로 사용하는 레지스터를 구분하여 Exception 발생 이전의 Exception Level로 복귀할 때 주로 사용 됨.종류XZR / WZR(Zero Register): .. 2024. 1. 21. 이전 1 다음 728x90