인텔® Stratix®10 MX는 HBM2 하드 메모리 컨트롤러를 포함하여 3D 스택형 HBM2 DRAM 메모리를 통합할 FPGAs 있습니다. 따라서 HBM2 메모리 컨트롤러 효율을 극대화하는 것이 매우 중요합니다.
몇 가지 요인이 컨트롤러 효율성에 영향을 줄 수 있습니다. 최상의 효율성을 얻으려면 설계에서 다음 요소를 고려해야 합니다.
• 사용자 인터페이스 주파수와 HBM2 인터페이스 주파수 비교 - FPGA 패브릭의 사용자 로직 주파수는 HBM2 메모리 효율성을 결정하는 데 중요한 역할을 합니다.
• 컨트롤러 설정:
- 컨트롤러 설정에서 재정렬 버퍼를 비활성화하여 효율성을 개선합니다. (그러나 애플리케이션에서 읽기 요청과 동일한 순서로 읽기 데이터를 제공해야 하는 경우 Reorder Buffer를 사용하도록 설정하는 것이 좋습니다.)
- 버스트 길이 - 의사 BL8 모드는 컨트롤러 효율성을 향상시키기 위해 연속 BL4 트랜잭션 간의 메모리 액세스 타이밍을 단축하는 데 도움이 됩니다.
• 트래픽 패턴 - 트래픽 패턴은 컨트롤러 효율성을 결정하는 데 중요한 역할을 합니다.
- 순차 DRAM 주소와 랜덤 DRAM 주소 비교: 순차적 주소를 사용하면 컨트롤러가 열린 페이지에 연속 쓰기 요청을 보낼 수 있으며 높은 컨트롤러 효율성을 달성할 수 있습니다. 임의 주소에는 지속적인 PRECHARGE/ACTIVATE 명령이 필요하며 컨트롤러 효율성이 저하될 수 있습니다.
- 사용자 자동 사전 충전 정책을 FORCED로 설정하고 AXI 인터페이스의 awuser/aruser 신호를 HIGH로 설정하여 랜덤 트랜잭션에 대한 자동 사전 충전을 활성화합니다. 순차적 트랜잭션의 경우 자동 선충전 정책을 HINT로 설정합니다.
- 순차적 읽기 전용 또는 쓰기 전용 트랜잭션: 순차적 읽기 전용 또는 쓰기 전용 트랜잭션은 DRAM 양방향 데이터 버스의 버스 턴어라운드 시간을 방지하므로 효율성이 더 높습니다.
• AXI 트랜잭션 ID - 다양한 AXI 트랜잭션 ID를 사용하면 HBM2 컨트롤러가 트랜잭션을 고효율로 예약할 수 있습니다. 동일한 AXI 트랜잭션 ID를 사용하면 명령 순서가 유지되고 효율성이 저하될 수 있습니다.