4.10.9. DBG, DMB, DSB 및 ISB

디버그, 데이터 메모리 장벽, 데이터 동기화 장벽 및 명령어 동기화 장벽

구문

DBG{cond} {#option}
DMB{cond} {#option}
DSB{cond} {#option}
ISB{cond} {#option}

인수 설명:

cond

선택적 조건 코드입니다 (조건부 실행 참조).

option

힌트 작업에 대한 선택적 제한입니다.

사용법

힌트 명령어로, 경우에 따라 구현하거나 구현하지 않을 수 있습니다. 이러한 명령어 중 하나를 구현하지 않으면 해당 명령어는 NOP처럼 동작합니다.

DBG

디버그 힌트는 디버그 및 관련 시스템에 대한 힌트를 제공합니다. 이러한 시스템에서 이 명령어가 어떤 용도로 사용되는지 보려면 해당 시스템 설명서를 참조하십시오.

DMB

메모리 장벽 역할을 하는 데이터 메모리 장벽으로, 프로그램 순서에서 DMB 명령어 앞에 있는 모든 명시적 메모리 액세스가 DMB 명령어 뒤에 있는 명시적 메모리 액세스보다 앞에 표시되도록 합니다. 이때 프로세서에서 실행 중인 다른 명령어의 순서에는 영향을 주지 않습니다.

허용되는 option의 값은 다음과 같습니다.

SY

전체 시스템 DMB 작업. 기본값이며 생략할 수 있습니다.

ST

저장이 완료될 때까지만 기다리는 DMB 작업

ISH

공유 가능한 내부 도메인에만 수행되는 DMB 작업

ISHST

저장이 완료될 때까지만 기다리고 공유 가능한 내부 도메인까지만 수행되는 DMB 작업

NSH

통합 지점까지만 수행되는 DMB 작업

NSHST

저장이 완료될 때까지만 기다리고 통합 지점까지만 수행되는 DMB 작업

OSH

공유 가능한 외부 도메인에만 수행되는 DMB 작업

OSHST

저장이 완료될 때까지만 기다리고 공유 가능한 외부 도메인까지만 수행되는 DMB 작업

DSB

특수한 유형의 메모리 장벽 역할을 하는 데이터 동기화 장벽. 이 명령어가 완료될 때까지 프로그램 순서에서 이 명령어 뒤에 있는 명령어는 실행되지 않습니다. 이 명령어는 다음 경우에 완료됩니다.

  • 이 명령어 앞에 있는 모든 명시적 메모리 액세스가 완료될 경우 다음 사항이 적용됩니다.

  • 이 명령어 앞에 있는 모든 캐시, 분기 예측기 및 TLB 유지관리 작업이 완료될 경우 다음 사항이 적용됩니다.

허용되는 option의 값은 다음과 같습니다.

SY

전체 시스템 DSB 작업. 기본값이며 생략할 수 있습니다.

ST

저장이 완료될 때까지만 기다리는 DSB 작업

ISH

공유 가능한 내부 도메인에만 수행되는 DSB 작업

ISHST

저장이 완료될 때까지만 기다리고 공유 가능한 내부 도메인까지만 수행되는 DSB 작업

NSH

통합 지점까지만 수행되는 DSB 작업

NSHST

저장이 완료될 때까지만 기다리고 통합 지점까지만 수행되는 DSB 작업

OSH

공유 가능한 외부 도메인에만 수행되는 DSB 작업

OSHST

저장이 완료될 때까지만 기다리고 공유 가능한 외부 도메인까지만 수행되는 DSB 작업

ISB

명령어 동기화 장벽은 ISB 명령어가 완료된 후 이 명령어 뒤에 있는 모든 명령어를 캐시나 메모리에서 가져오기 위해 프로세서에서 파이프라인을 플러시합니다. 이렇게 하면 ISB 명령어 앞에서 실행된 CP15 레지스터에 대한 모든 변경 작업뿐 아니라 ASID 변경 같은 컨텍스트 변경 작업, 완료된 TLB 유지관리 작업 또는 분기 예측기 작업의 효과가 ISB 명령어 뒤에서 가져온 명령어에 나타납니다.

또한 ISB 명령어는 프로그램 순서에서 자신보다 뒤에 있는 모든 분기가 항상 ISB 명령어 뒤에 있는 컨텍스트를 사용하여 분기 예상 논리에 기록되도록 합니다. 이것은 명령어 스트림이 올바로 실행되도록 하는 데 필요합니다.

허용되는 option의 값은 다음과 같습니다.

SY

전체 시스템 ISB 작업. 기본값이며 생략할 수 있습니다.

별칭

DMB 및 DSB에 대해서는 다음과 같은 option의 대체 값이 지원되지만, 이러한 값은 사용하지 않는 것이 좋습니다.

  • SHISH의 별칭입니다.

  • SHSTISHST의 별칭입니다.

  • UNNSH의 별칭입니다.

  • UNSTNSHST의 별칭입니다.

아키텍처

이러한 ARM 및 32비트 Thumb 명령어는 ARMv7에서 사용할 수 있습니다.

이러한 명령어의 16비트 Thumb 버전은 없습니다.

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential