크라우니집사 (Jetson AGX Orin) — 하드웨어 제어 최적화·수정 실행계획
작성일 2026-06-09 · 유형 실행계획 문서(구현 아님)
상위 문서 젯슨오린-크라우니집사-정리방향 · 크라우니집사 v0 스펙
근거 코드 /Users/ef/CrownyOS/hal/, crownyc/crownyc_os.c, build-crownyos.sh, crownyc/libs/{GPIO,HAL,하드웨어}.한선, /Users/ef/crowny-butler/libs/
표기 규약 — [확인] = 본 세션이 파일/코드로 직접 확인. [추정] = 설계 의도·외부 사실 기반 추론(실측 전). [가설] = 측정으로 검증해야 할 미검증 주장.
원칙 — 한선씨 우선(새 로직은 .한선부터). 비-한선(C 헤더/CUDA) 도입은 외부 HW 인터페이스 등 부득이한 지점에만, 즉시 .한선 동반.
0. 현황 요약 (직접 확인분)
| 항목 | 상태 | 근거 |
|---|
| HAL 3플랫폼(RPi5/OPi5/Kria) | [확인] 동결, 94KB 커널, 크로스컴파일 성공 | hal/hal_{rpi5,opi5,kria}.h, v1-stable 문서 |
| Jetson HAL | [확인] 부재 — hal_jetson.h 없음 | ls hal/ 결과 |
| HAL 인터페이스 | [확인] UART 4함수(init/putc/getc/puts)만 정의. GPIO/I2C/SPI/PWM 미정의 | hal_common.h 18~22행 주석 |
| GPIO 라이브러리 | [확인] GPIO.한선 존재 — 순수 소프트 모델(맵 기반, 실 MMIO 미연결) | libs/GPIO.한선 115행 데모 |
| Kria FPGA PL 3진 ALU | [확인] AXI 레지스터 맵만 선언(PL_TRIT_ALU 등), 비트스트림·통신 미검증 | hal_kria.h 39~80행 |
| 집사 의사결정 모듈 | [확인] 7개 .한선 컴파일·실행 검증(개인/국가/기업/YAO 등) | crowny-butler/libs/ |
| hwtest 도구 | [확인] crowni-tvm/src/hwtest.rs — Rust, <rpi5\|n100\|jetson\|all> 타겟 존재 | Crowny/crowni-tvm/src/hwtest.rs |
| VM 2진→3진 전환 | [확인] 11/11 완료(v9.6.1+): 메모리/산술/로직/GC 네이티브 트릿 | project_ternary_audit.md |
핵심 결론: 집사 = 신규 구축이 아니라
재배선. L0/L1 기판(CrownyOS+crownyc)·L2 의사결정 모듈은 정본 존재. 빠진 것은
(a) Jetson HAL, (b) 소프트 GPIO 모델→실 MMIO 연결, (c) CUDA/TensorRT 추론 브리지, (d) L1 BitNet 삼진 가중치 적용의 4개 결합점뿐.
1. Jetson Orin 디바이스 제어 스택 (GPIO/I2C/SPI/PWM + CUDA/TensorRT 통합)
1-1. 현황
[확인] HAL 인터페이스는 UART 4함수로만 정의(hal_common.h). GPIO/I2C/SPI/PWM은 인터페이스 자체가 없음.
[확인] GPIO.한선은 맵 기반 순수 소프트 시뮬레이션 — 실제 핀 MMIO에 닿지 않음(115행 이하가 데모).
[확인] Jetson HAL 부재. build-crownyos.sh는 rpi5/opi5/kria 3타겟만.
[추정] Jetson Orin은 Tegra(T234) SoC — UART는 8250/16550 계열(OPi5의 16550 HAL 재활용 가능), GPIO/I2C/SPI/PWM은 Tegra 전용 MMIO. CUDA/TensorRT-LLM은 Linux(L4T) 유저공간에서만 동작 → 베어메탈 커널과는 별도 평면.
1-2. 수정/최적화 (단계)
hal/hal_jetson.h 신설 — OPi5의 16550 UART 헤더를 Tegra UART 베이스주소로 포팅(가장 가까운 선례). CROWNYOS_PLATFORM_ID "jetson".
[추정] Tegra UART-A 베이스 =
0x03100000 계열 — 실기 확인 필요.
- HAL 인터페이스 확장 —
hal_common.h 주석 인터페이스에 hal_gpio_*/hal_i2c_*/hal_spi_*/hal_pwm_* 시그니처를 선언만 추가(플랫폼별 구현은 각 HAL). 기존 4함수 계약 불변 → RPi5/OPi5/Kria 회귀 없음.
GPIO.한선 이중 백엔드화 — 현 맵 모델을 _GPIO_백엔드(0=소프트/1=실HW) 스위치로 분기. 실HW 분기는 hal_gpio_* 호출. 소프트 모델은 헤드리스 검증·교실 에뮬레이션용으로 유지(삭제 금지).
- I2C/SPI/PWM 라이브러리 신설 —
I2C.한선/SPI.한선/PWM.한선을 GPIO.한선과 동일 패턴(맵+백엔드 스위치)으로. 패턴DB search "GPIO" 선조회 후 변형.
- CUDA/TensorRT 브리지 = 별도 평면 — 베어메탈 커널에 CUDA를 넣지 않는다. 두 모드 분리:
-
운영 모드(권장): Jetson은 L4T Linux 부팅 → crownyc(유저공간 VM) 위에서 집사 실행 → CUDA/TensorRT-LLM은
추론 외부프로세스, 집사는
체계()/소켓/파일로 IPC(추론요청·결과 JSON).
-
베어메탈 모드: GPIO/센서 직접 제어 전용(추론 없음). 저전력 현장 제어기.
-
[추정] 통합 지점 = 라우터 폴백 체인의 "하이브리드 SLM" 칸(v0 스펙 2-2). 집사 라우터가 음(-0) 트래픽만 추론 브리지로 보냄.
1-3. 검증
hal_jetson.h 추가 후 build-crownyos.sh jetson → 크로스컴파일 성공 + ARM64 디스어셈블 _start→kernel_main 확인(v1-stable과 동일 절차).
GPIO.한선 실HW 분기: 핀 토글 → 오실로스코프/LED 육안 + UART 로그로 T/A 출력 대조.
- 추론 브리지: 동일 프롬프트를 브리지/직접 호출에 던져 결과 일치 + 지연 ms 기록.
2. L1 순수3진 최적화 — BitNet b1.58식 곱셈→덧셈/뺄셈 (핵심)
개념 분리(혼선 방지): Orin은 2진 실리콘이다. 트릿 기계어 1:1 에뮬레이션은 느려진다. L1 이득은 데이터구조·가중치 알고리즘 층 — 2진 HW 위에서 도는 3진 자료구조/연산이지, 기계어 에뮬레이션이 아니다(정리방향 B-2-1).
2-1. 현황
[확인] crownyc VM은 정수연산이 이미 네이티브 트릿(cube_add/sub/mul/divmod, Kleene 3값) — project_ternary_audit 11/11.
[확인] 곱셈은 cube_mul() = shift-and-add. 컴파일러 피홀에 ×3ⁿ→TSHL, ×(-1)→NEG 존재(crownyc CLAUDE.md).
[가설] "의미어 19,000 + 삼진 도메인 SLM이 체감 Opus급" — 측정 전 단정 금지(Phase1 KPI).
[확인 부재] BitNet식 삼진 가중치 행렬곱은 VM 정수연산과 별개 — 추론 엔진(TensorRT-LLM) 측에 미적용.
2-2. 적용할 구체 연산 지점
| 지점 | 현재(2진) | BitNet b1.58식 치환 | 효과(추정) |
|---|
| 가중치 행렬곱 W·x | FP16/INT8 곱셈 | W∈{-1,0,1} → x의 덧셈/뺄셈/스킵으로 치환 | [추정] 곱셈기 제거, 메모리 ~10배↓(16bit→1.58bit) |
| 추론 루프 내적 | MAC(곱누산) | 부호별 누산: +1→가산, -1→감산, 0→스킵 | [추정] Orin DLA/CUDA에서 정수가산만 |
| 양자화 | FP | INT8(활성)·INT4 + 삼진(가중치) 혼합 | [추정] TensorRT-LLM 양자화 경로 |
| 임베딩 다이어트 | 대형 vocab | 의미어 19,000 한정 → 임베딩 테이블 축소 | [추정] 환각↓ + 메모리↓ |
- 3진 자료구조 적용처(에뮬레이션 아님): 라우터 규칙 매칭(R1 키워드 → 트릿 해시 243슬롯, 이미 VM에
trit_hash_cube 존재 [확인]), 4상 플래그 누산(티/옴/타/음 = +1/0/-1/-0), 가중치 패킹(2비트=1트릿).
2-3. 수정/최적화 (단계)
- 삼진 가중치 커널 명세
.한선 — 삼진가중치.한선: W{-1,0,1} 패킹·언패킹 + 부호별 덧셈/뺄셈 누산을 한선씨로 명세(crownyc에서 검증 가능한 참조구현). 실가속은 TensorRT 커널이 담당하되, 한선씨 명세가 정본.
- TensorRT-LLM 포팅 후보 조사 — BitNet b1.58 계열 소형 모델을 Orin TensorRT-LLM로(외부 의존 최소: 모델만 외부, 라우팅·후처리는 한선씨).
- 양자화 프로파일 — 활성 INT8/INT4 + 가중치 삼진 혼합 프로파일 정의, 메모리·지연 측정표 작성.
2-4. 검증
- 삼진가중치.한선: 동일 W·x를 (a)일반 곱셈 (b)부호별 덧/뺄로 계산 → 결과 일치 + 연산 카운트(곱셈 0건) 확인.
- 추론 KPI: BitNet 양자화 모델 vs FP16 baseline → 보류셋 품질·첫토큰지연·메모리 비교표.
[가설] 체감 동등을 수치로 입증.
3. 2진→4상균형3진 전환 우선순위 (메모리/산술/로직/GC) + L0 TOAU 정합
3-1. 현황
[확인] crownyc VM 코어는 4영역 모두 3진 네이티브 완료(project_ternary_audit 1~11): 메모리(bounds+자동확장), 산술(cube_), 로직(Kleene), GC(마크-스윕+컴팩션).
[확인] L0 인코딩 = TOAU(2비트=1트릿=4상태). 집사 음(-0)은 TOAU의 U슬롯에 1:1 매핑 → 새 인코딩 불필요(v0 스펙 §1).
3-2. 전환 우선순위 (집사 HW 제어 관점 — 잔여분)
| 우선 | 영역 | 현황 | 잔여 수정 |
|---|
| 1 | 로직(라우팅) | VM Kleene 완료 | 집사 라우터 R1~R4가 VM Kleene 3값을 직접 쓰는지 정합(티/옴/타 + 음 분리). 음=가중치0과 혼동 금지(네임스페이스 분리) |
| 2 | 메모리(가중치 패킹) | VM 큐브 OK | 삼진 가중치 2비트=1트릿 패킹을 L0 TOAU 셀과 동일 레이아웃으로 → FPGA 합성 시 재사용 |
| 3 | 산술(추론) | VM 정수 OK | 추론 행렬곱은 VM 밖(TensorRT) → §2 삼진커널로 정합 |
| 4 | GC(셀 153인) | VM GC OK | 153인 셀 분산 상태 GC 동작 부하 측정(오프라인 장기구동) |
[추정] 핵심은 음(-0)의 이중역할 가드: TOAU U=구분자 vs 집사 음=4번째 의사결정 상태. 코드 주석·네임스페이스로 분리(v0 스펙 §8-4).
3-3. 검증
- 라우터 출력 트릿이 VM Kleene 진리표와 일치(
모름&&참=모름 등) 단위테스트.
- 가중치 패킹 ↔ TOAU 셀 라운드트립(패킹→언패킹 무손실) 검증.
4. Kria FPGA 순수3진 ALU 경로 — L1 하드웨어화 로드맵 (Jetson=소프트 / Kria=하드)
4-1. 현황
[확인] hal_kria.h에 AXI PL 인터페이스 선언만: PL_TRIT_ALU(0xA0000000), PL_TRIT_STATUS/DATA_IN/DATA_OUT, hal_pl_available()(비트스트림 로드 체크).
[확인] 비트스트림·AXI 통신은 미검증(v1-stable 잔여이슈 "FPGA 순수3진 ALU 고도화").
[확인] 하드웨어 기술용 한선씨 자산 존재: 하드웨어.한선(게이트/DFF/ALU 시뮬), 회로 방언(.회로), HDL opcode 470~479.
4-2. 역할 분담 (사용자 확정 방향)
| 플랫폼 | L1 순수3진 | 역할 |
|---|
| Jetson Orin | 소프트(BitNet 삼진 가중치, §2) | 현장 셀 브레인 — CUDA/추론 + GPIO 제어 |
| Kria(Zynq PL) | 하드(FPGA 트릿 ALU) | L1 산술의 하드웨어화 연구 트랙 — perf/watt 극한 |
4-3. 로드맵 (장기 연구 트랙, 단계)
- 트릿 ALU RTL을 한선씨로 —
하드웨어.한선/회로 방언으로 1트릿(2비트) 가산기·NEG·비교기 명세* → 시뮬 검증(삼진AND/OR/NOT 등 기존 함수 재사용).
- AXI 프로토콜 명세 —
hal_kria.h 레지스터 맵을 한선씨 드라이버(Kria트릿ALU.한선)로: DATA_IN 쓰기→ALU 트리거→STATUS 폴링→DATA_OUT 읽기.
- 비트스트림 합성 —
한선씨하드웨어합성.한선으로 트릿 ALU → (외부 합성도구는 부득이 의존) → KR260 PL 로드.
- L1 연결 — 집사 추론 행렬곱의 부호별 누산을 PL 트릿 ALU로 오프로드(소프트 fallback 유지).
[추정] 풀 삼진 가속기는 수년 R&D. Plan B(공급망)는 FPGA가 아니라 RK3588급 범용 SoC(이미 OPi5 HAL 존재 [확인]).
4-4. 검증
- 헤드리스: 동일 입력을 (a)VM 소프트 cube_add (b)Kria PL ALU에 던져 결과 일치 + 4상 T/A 출력 대조.
hal_pl_available() 게이트로 비트스트림 부재 시 소프트 fallback 자동 전환 확인.
5. 교실 시나리오 디바이스 (3D프린터/CNC) + 저전력 제약
5-1. 현황
[확인] GPIO.한선만 존재(소프트). 3D프린터/CNC 제어 라이브러리 부재.
[추정] 교실 셀 = Orin 1 + 태블릿 20, 153인 규격. 태양광/ESS 15~60W 제약(정리방향 A-1).
5-2. 수정/최적화 (설계데이터 → 한선씨 → 기계어 → GPIO)
- G코드/스텝 생성 라이브러리
.한선 — CNC제어.한선/프린터제어.한선: 설계데이터(좌표/경로) → 스텝펄스·방향 신호 → §1 GPIO/PWM 실HW 백엔드. 한선씨가 정본, GPIO HAL이 물리.
- 저전력 프로파일 — 추론 OFF(베어메탈 제어모드) 시 Orin 전력 클램프. 제어 작업은 GPIO/PWM만 → §1 베어메탈 모드 활용.
- 교실 에뮬레이션 — 실 프린터 없이 GPIO 소프트 백엔드로 펄스 시퀀스 검증(태블릿 화면 시뮬). 실HW 도착 시 백엔드 스위치만 1→.
5-3. 검증
- 헤드리스: 사각형 경로 G코드 → 스텝펄스 시퀀스 → 소프트 백엔드 로그가 기대 좌표열과 일치(T/A 출력).
- 전력: 제어모드 vs 추론모드 소비전력 측정 → 15~60W 창 내 확인(
[가설] 실측 필요).
6. 전력·발열·오프라인 + 153인 셀 무중단
6-1. 현황
[확인] 오프라인 우선 설계(정리방향 A-1), 셀코어 분산·오프라인 동기화 자산 존재(v0 스펙 §7).
[확인 부재] Orin 전력/발열 거버너·셀 무중단 페일오버는 집사 측 미구현.
6-2. 수정/최적화
- 전력 거버너
.한선 — 전력거버너.한선: 부하별 모드(추론/제어/대기) 전환, 추론 음(-0) 트래픽만 GPU 깨움(나머지 로컬 규칙=한계비용 0, v0 스펙 §2-3).
- 발열 관리 — PWM 팬 제어(§1 PWM 라이브러리 재사용) + 온도 임계 시 추론 스로틀.
- 오프라인 동기화 — 셀코어 N(실시간)·M(멀티에이전트) 위에 커밋규칙 통과분만 게이트웨이 병합(v0 스펙 §7). 재연결 시 패치 하향.
- 153인 무중단 — 셀 1대 다운 시 이웃 셀로 페일오버(셀코어 상태기계 F). 태블릿 20대는 로컬 와이파이 폐쇄망.
6-3. 검증
- 장기 오프라인 구동(24h+) → GC 부하·메모리 누수 모니터(§3-4).
- 셀 강제 다운 → 페일오버 시간 측정 + 작업 연속성(YAO 목표회상 복귀) 확인.
7. 단계별 마일스톤 + 검증(헤드리스 hwtest, 4상 T/A)
검증 공통: 헤드리스(스크린샷 반복 금지, feedback_headless_gui_verify), 4상 T/A 출력(통과=T/+1, 실패=A/-1, 보류=O/0)으로 자동 판정. hwtest는 crowni-tvm hwtest jetson 타겟 확장.
| M | 마일스톤 | 산출(전부 .한선 우선) | 검증(헤드리스) |
|---|
| M1 | Jetson HAL 부팅 | hal_jetson.h + boot/linker + build-crownyos.sh jetson | 크로스컴파일 성공 + 디스어셈블 + UART 배너 출력 |
| M2 | GPIO 실HW 연결 | GPIO.한선 이중백엔드 + hal_gpio_* | 핀 토글 → LED/스코프 + T/A 로그 |
| M3 | I2C/SPI/PWM | I2C/SPI/PWM.한선 | 센서 readback 일치 + PWM 듀티 측정 |
| M4 | 추론 브리지 | 집사↔TensorRT IPC + 라우터 음(-0) 분기 | 동일 프롬프트 결과 일치 + 지연 ms |
| M5 | L1 삼진 가중치 | 삼진가중치.한선 + BitNet 양자화 모델 | 곱셈 0건 + 품질/지연/메모리 KPI표 |
| M6 | 교실 디바이스 | CNC/프린터제어.한선 | G코드→펄스열 일치 + 저전력 창 |
| M7 | Kria 하드 ALU | Kria트릿ALU.한선 + 비트스트림 | 소프트 vs 하드 결과 일치 |
| M8 | 무중단·오프라인 | 전력거버너.한선 + 셀 페일오버 | 24h 구동 + 페일오버 시간 |
- 의존성: M1→M2→M3(HW 스택). M4→M5(추론). M1·M4는 병렬 가능. M7은 장기 트랙(M1~M6과 독립).
8. 최우선 3개 액션 + 예상 효과
| 순위 | 액션 | 근거 | 예상 효과(정량/정성) |
|---|
| ① | hal/hal_jetson.h + build-crownyos.sh jetson (M1) | Jetson HAL 부재가 모든 HW 제어의 차단점 [확인] | OPi5 16550 헤더 재활용으로 [추정] 헤더 1개·boot/linker 2개 추가만으로 4번째 플랫폼 개통. 94KB 커널 규모 유지 예상. 이후 M2~M8 전부 해금 |
| ② | GPIO.한선 이중 백엔드(소프트/실HW) + hal_gpio_* 인터페이스 (M2) | 현 GPIO는 소프트 데모뿐 [확인]. 교실 디바이스(§5)·발열 PWM(§6)·CNC가 전부 여기 의존 | 백엔드 스위치 1개로 소프트 검증↔실HW 무수정 전환. 교실 에뮬레이션과 실배포 코드 단일화. I2C/SPI/PWM이 같은 패턴 복제로 빠르게 따라옴 |
| ③ | 삼진가중치.한선 명세 + BitNet 양자화 KPI 측정 (M5 선행) | "체감 Opus급"은 [가설] — 측정 없이 백서 불가(정리방향 B-3) | [추정] 가중치 16bit→1.58bit ≈ 메모리 ~10배↓, 곱셈기 제거. KPI표가 나오면 가설→사실 전환, Orin 단독 추론 타당성 확정 |
잔여 이슈 / 미검증(측정 필요)
[추정] Tegra(T234) UART/GPIO MMIO 베이스주소 — 실기 데이터시트 확인 필요(M1).
[가설] BitNet 삼진 + 의미어 19,000 → 체감 Opus급 — Phase1 KPI로 실증(M5).
[가설] 교실 15~60W 창 내 제어+추론 동시 — 실측(§5-3, §6-3).
[추정] Kria 풀 삼진 가속기 = 수년 R&D — 장기 트랙 분리, 단기 공급망 Plan B는 RK3588(OPi5).
- 음(-0) 이중역할(TOAU U=구분자 vs 집사 음=의사결정 4번째 상태) 네임스페이스 가드 — 코드 주석 명시 필요.
- CUDA/TensorRT = 베어메탈 불가, L4T Linux 유저공간 평면 → 운영모드는 crownyc 유저공간 + 추론 외부프로세스 IPC로 분리(§1-2).
관련 파일
- HAL:
/Users/ef/CrownyOS/hal/hal_{common,rpi5,opi5,kria}.h (jetson 신설 대상)
- 빌드:
/Users/ef/CrownyOS/build-crownyos.sh, crownyc/crownyc_os.c
- HW 라이브러리:
/Users/ef/CrownyOS/crownyc/libs/{GPIO,HAL,하드웨어,한선씨하드웨어합성}.한선
- 집사 의사결정:
/Users/ef/crowny-butler/libs/{개인,국가,기업}의사결정·YAO상태기계·티옴타좌표.한선
- hwtest:
/Users/ef/Crowny/crowni-tvm/src/hwtest.rs (jetson 타겟 확장)
- 상위 스펙:
2026-06-09-크라우니집사-v0-스펙.md, 2026-06-09-젯슨오린-크라우니집사-정리방향.md, 2026-05-02-crownyos-v1-stable.md