ARM2010. 6. 22. 16:38

다음은 ARM의 여러가지 동작모드 가운데 유저모드 FIQ모드 IRQ모드 3가지를 사용할 때 쓰이는 레지스터의

모습을 그림으로 나타낸 것 이다.

검은색 삼각형이 없는 레지스터는 모든 동작모드에서 구별하지 않고 동일하게 사용되는 범용 레지스터이다.

검은색 삼각형은 해당하는 모드에서 자신만이 쓰는 레지스터이다. 

여기서 FIQ모드가 IRQ보다 빠른 이유는 먼저 유저모드에서 IRQ로 모드가 변환될 때 IRQ의 값을 스택에 저장하게 된다.

여기서 자기만이 쓰는 레지스터(r13_irq,r14_irq)는 스택에 복사되지 않고 범용 레지스터 부분만 스택에 저장하게 되며

다시 유저모드로 돌아갈 때 r0 ~ r12까지의 값을 다시 가져오게 된다.

반면에 FIQ모드는 자기만이 쓰는 r8_fiq ~ r14_fiq는 스택에 저장하지 않고 r0 ~ r7만 스택에 저장하고 다시 모드가 변환

될 때 r0 ~ r7레지스터만 불러오기 때문에 상대적으로 12개의 레지스터를 저장하고 불러오는 IRQ모드보다 8개의

레지스터만 사용하는 FIQ모드가 보다 빠르다.


'ARM' 카테고리의 다른 글

ADS(ARM Developer Suite) 설정하기  (0) 2010.06.21
Posted by 해해해해해해해해