Skip to the content.

D

← 전체 목차로 돌아가기


DC

✅ Data Cache operation. Performs a cache-maintenance action (clean, invalidate, or zero) on the cache line containing the address in the given register. Essential in bare-metal/kernel code whenever data written by the CPU must actually reach memory that a non-coherent observer (DMA device, another core before MMU is up, etc.) will read - e.g. after writing page tables, before enabling the MMU.

✅ 데이터 캐시 유지보수 명령. 지정한 레지스터 주소가 속한 캐시 라인에 대해 clean(메모리에 반영), invalidate(무효화), zero(0으로 채움) 중 하나의 동작을 수행합니다. CPU가 쓴 데이터가 캐시에만 머물지 않고 실제 메모리까지 반드시 도달해야 할 때(비일관성 관찰자인 DMA 장치, MMU 켜지기 전의 다른 코어 등이 읽을 때) 베어메탈/커널 코드에서 필수적입니다 - 예: 페이지 테이블을 쓴 직후, MMU를 켜기 전.

Syntax

DC <op>, <Xt>   // op: IVAC, ISW, CVAC, CSW, CVAU, CIVAC, CISW, ZVA ...

Example

DC CVAC, X0      // X0 주소의 캐시 라인을 메모리로 clean
DSB SY           // clean이 실제로 끝날 때까지 대기

🔗 Open Example

DMB

✅ Data Memory Barrier. Ensures that all memory accesses issued before the barrier (by this core) are observed by other cores/agents before any memory accesses issued after the barrier.

✅ 데이터 메모리 배리어. 이 배리어 이전에 발생시킨 메모리 접근이, 배리어 이후에 발생시킨 메모리 접근보다 다른 코어/장치에 먼저 보이도록 순서를 보장합니다.

Syntax

DMB <option>   // 예: ISH, SY, OSH 등

Example

DMB ISH   // 같은 이너 공유 도메인 내 순서 보장

🔗 Open Example

DSB

✅ Data Synchronization Barrier. Stronger than DMB: blocks execution of any further instructions on this core until all prior memory accesses have fully completed.

✅ 데이터 동기화 배리어. DMB보다 강력합니다: 이전의 모든 메모리 접근이 완전히 끝날 때까지 이 코어의 이후 명령어 실행 자체를 막습니다.

Syntax

DSB <option>

Example

DSB SY   // 전체 시스템 범위로 완료를 기다림

🔗 Open Summary

DUP

✅ Duplicate (broadcast). Copies a single value - from a general-purpose register or from one lane of a vector - into every lane of the destination vector. The classic way to build a constant vector, e.g. for adding the same value to every pixel.

✅ 복제 (브로드캐스트). 범용 레지스터 값이나 벡터의 특정 레인 하나를, 대상 벡터의 모든 레인에 똑같이 복사해 채웁니다. 모든 픽셀에 같은 값을 더하고 싶을 때처럼, 상수 벡터를 만드는 기본 방법입니다.

Syntax

DUP <Vd>.<T>, <Rn>  or  DUP <Vd>.<T>, <Vn>.<Ts>[<index>]

Example

DUP V0.4S, W0        // W0 값을 4개 레인 전부에 복제

🔗 Open Summary