← 전체 글로 돌아가기
Protocol

𝗔𝗫𝗜𝟰 𝗜𝗡𝗖𝗥 │ 𝟰 𝗞𝗕 경계 검사의 함정

AXI4 INCR burst 4 KB boundary check with unaligned start address

AXI4 INCR burst 4 KB boundary check with unaligned start address 인포그래픽
Daily ASIC original infographic · English labels

AXI4 INCR burst는 4 KB 주소 경계를 넘어서는 안 됩니다. 시작 주소가 unaligned일 때 AxADDR + (AxLEN+1)×2^AxSIZE로 끝을 검사하면, 합법적인 burst까지 막을 수 있습니다.

Arm의 주소 규칙에서 첫 beat는 AxADDR부터 접근하고, 이후 beat는 transfer size로 정렬된 주소를 기준으로 전진합니다. B=2^AxSIZE, N=AxLEN+1, A=floor(AxADDR/B)×B라 두면 마지막 접근 byte는 A+N×B−1입니다.

예를 들어 AxADDR=0xFFD, AxSIZE=2(4 B/beat)일 때 AxLEN=0이면 실제 접근 byte는 0xFFD~0xFFF입니다. 마지막 byte가 0xFFF이므로 허용됩니다. AxLEN=1이면 두 번째 beat가 0x1000~0x1003을 접근해 4 KB 경계를 넘습니다.

첫 beat에서 0xFFC byte lane은 건너뜁니다. 따라서 0xFFD+4=0x1001만 보고 1-beat burst를 거절하면 오판입니다. RTL에서는 AxADDR와 계산한 마지막 byte의 4 KB page를 비교하고, 중간 계산은 overflow가 나지 않도록 넓은 bit width로 수행합니다. 이 식은 INCR burst에 적용합니다.

근거: Arm AMBA AXI and ACE Protocol Specification, IHI 0022H, §A3.4
https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/IHI0022H_amba_axi_protocol_spec.pdf
Arm Introduction to AMBA AXI4, §7.6
https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Learn%20the%20Architecture/102202_0100_01_Introduction_to_AMBA_AXI.pdf

ORIGINAL POSTLinkedIn에서 원문 보기 ↗
이전 글𝗖𝗗𝗖 𝗣𝗨𝗟𝗦𝗘 | 이벤트 간격도 CDC 사양이다다음 글𝗔𝗫𝗜 𝗥𝗘𝗚𝗜𝗦𝗧𝗘𝗥 𝗦𝗟𝗜𝗖𝗘 │ READY 경로는 짧아졌는데, 전송률은 왜 절반일까?