현재 구성은 M=32 Output Core, 투영코어 2개, ARM의 창별 타일 캐시를 함께 사용하는 SW–HW Co-Design입니다. 바뀐 부분만 투영하고 그대로인 창은 이전 결과를 재사용합니다.
창 갱신 경로
PS는 이전 원본 픽셀, 창 기하 정보와 coverage mask를 관리합니다. bilinear 샘플 범위까지 포함해 실제 수정이 영향을 주는 목적지 타일을 고르고 두 투영코어에 나눠 보냅니다. 겹쳐 있는 다른 창의 투영 결과도 재사용합니다. 최종 합성 결과가 바뀐 타일만 Output Core 드라이버에 전달합니다.
역할과 메모리 연결
| 구성 | 책임 | DDR 경로 |
|---|---|---|
| PS / Bosio / BoAYo | 앱·입력·변경 판정·캐시·영향 타일 합성·버퍼 수명 | CPU 메모리 접근 |
| Projection Core ×2 | 지정된 창 타일을 HW로 투영 | HP1 / HP2 |
| Output Core | IMU 또는 SW 자세에서 구면 셀 조회, 화면 회전·반전, RGB24 생성 | HP0 |
| HDMI VDMA | 완성 화면 저장·선택·반복 출력 | HP3 |
GY-521 센서 허브는 자세를 AXI4-Stream으로 Output Core에 직접 보냅니다. 두 창 투영코어는 별도 IP로 유지되며, 최종 화면 방향 변경은 Output Core에서 처리합니다.
두 종류의 버퍼
구면 장면 버퍼 두 개는 부분 갱신을 프레임 경계에서 안전하게 교체하기 위한 것입니다. 비활성 버퍼에 변경 payload와 directory를 기록하고, 코어의 전환 승인을 받은 뒤 이전 버퍼에도 변경을 반영합니다. 투영 scratch와 앱 이미지는 이 버퍼와 별개입니다.
HDMI 화면 버퍼 세 개는 픽셀 생성과 영상 송출을 분리합니다. VDMA가 완성된 1280×720 RGB 화면을 읽고, 다음 화면이 늦으면 이전 완성 화면을 반복합니다. CPU가 매 프레임 화면을 복사하지 않습니다. 장면 갱신 속도, 픽셀 생성 속도, HDMI 주사율은 서로 다릅니다.
근거: 증분 투영, HDMI 버퍼 구조, 출력 변환.