음 · CHAPTER 04

두 영(0·-0)과 음의 빈자리·완벽매칭

도입 — 왜 영이 둘인가

앞 장에서 TOAU 인코딩을 마치며 나는 한 가지를 일부러 미뤄두었다. 4상을 네 부호 +1, 0, -1, -0으로 적을 때, 마지막 둘이 모두 "영"으로 보인다는 사실 말이다. 처음 이 표기를 본 엔지니어는 거의 예외 없이 같은 질문을 한다. 0과 -0이 같은 값이면, 왜 굳이 둘로 나누어 적는가. 부동소수점의 음수 영처럼 표기상의 잔재인가.

아니다. 옴(0)과 음(-0)은 겉보기에만 영이고, 기계 수준에서는 서로 다른 일을 한다. 이 구분이야말로 ISA729가 729개의 자리를 낭비 없이 배치할 수 있었던 이유이고, 한선씨 컴파일러가 RPN을 한 트릿의 어긋남도 없이 TOAU로 떨어뜨릴 수 있는 이유다. 나는 이 장에서 두 영의 정확한 정의를 분리하고, 특히 음(-0)이 빈자리·경계·정렬을 어떻게 책임지는지 — 우리가 "완벽매칭"이라 부르는 그 성질을 — 기계어 수준에서 풀어내려 한다.

미리 한 문장으로 요약하면 이렇다. 옴은 "아직"의 영이고, 음은 "불가"의 영이다. 같은 영처럼 적히지만, 하나는 정규 상태이고 다른 하나는 비정규 예외의 총합이다.

옴(0) — 대기와 정규성, 그리고 화이트홀

옴은 정규 3상(티 +1, 옴 0, 타 -1) 한가운데의 중립이다. 티가 yes, 타가 no라면, 옴은 그 둘 사이에서 판단을 보류하는 상태 — "wait, 아직 결정하지 않음"이며 동시에 정상값(normal)이다. 시스템이 기대하는 세 값 가운데 하나이므로, 옴은 언제나 정상 범위 안에 있다. 사람이 이해할 수 있고, 다음 상태를 예측할 수 있다.

큐브 구조에서 옴은 화이트홀(white hole)에 대응한다. 창발이 일어나고 새로운 상태가 드러나는 자리, 안에서 밖으로 값이 솟는 중심이다. 연산 관점에서 옴이 맡는 일은 세 가지로 정리된다.

  • 메모리에 값을 올려두고 다음 명령을 기다리는 상태 — 적재 직후, 소비 직전
  • 검증이 끝나지 않아 불확실성을 매달고 있는 상태 — 보류
  • 3진 논리에서 "참도 거짓도 아님" — Kleene 3값의 미정(unknown)

핵심은 옴이 값으로서 스택에 올라간다는 것이다. 옴은 0을 적재한다. 그것은 비어 있음이 아니라, "지금은 0이라는 정상값"이다. 정규 루프 안에서 옴은 정상적으로 흘러간다.

음(-0) — 예외의 총합과 블랙홀

음은 정규 3상에 담기지 않는 모든 것의 자리다. 음을 "또 하나의 0"으로 오해하면 안 된다. 음은 값이 아니라 자리의 성질이다.

음이 끌어안는 것은 다음과 같다.

  • 돌연변이와 회귀 — 정상 범위를 벗어난 변이
  • 이해되지 않는 것 — 논리 실패, 스택 붕괴, 정의되지 않은 상태
  • 3진 논리(+1, 0, -1) 밖의 변수들 — 세 값으로 환원되지 않는 그 위의 차원
  • 신호의 왜곡과 손실 — 의도한 상태와 어긋난 것
  • 빈자리와 구분자 — 데이터 없음, 경계, 여백

음은 블랙홀을 포함하되 그보다 넓다. 블랙홀(비어 있는 깊이, 흡수의 중심)은 음의 일부일 뿐이다. 음은 비어 있음에 더해 "깨짐", "예외", "왜곡된 신호"까지 한꺼번에 빨아들인다. 화이트홀(옴)이 드러내는 중심이라면, 블랙홀(음)은 빨아들이고 닫는 경계다. 4상이 균형을 이루는 까닭은, 드러냄(티·옴)과 닫음·연결(타·음)이 같은 격자 안에서 서로를 받쳐주기 때문이다.

음의 기계어 용법 — 완벽매칭의 세 갈래

여기서부터가 이 장의 본론이다. ISA729와 한선씨 RPN 컴파일러에서 음(-0)은 기계어 수준의 세 가지 역할을 맡는다. 캐논이 분명히 단서를 단 대로, 이 세 용법은 음 개념의 일부다 — 음 전체는 흡수·여백·예외·왜곡까지 아우르지만, 기계어가 직접 쓰는 것은 이 셋이다.

1. 비워진 자리(empty slot)

큐브는 27 트릿의 3×3×3 격자이며, 각 명령은 정해진 트릿 폭을 차지한다. 만약 4-트릿 명령이 5-트릿 자리에 놓이면, 남는 한 자리는 음으로 채운다. VM이 디코드 중 음을 만나면 "여기는 데이터가 아니다"를 즉시 알고 소비하지 않는다.

명령: [T O A 음 음] — 앞 세 자리는 유효 트릿, 뒤 두 자리는 비어 있음을 뜻하는 음이다.

옴으로 채우지 않는 이유가 여기서 분명해진다. 옴을 넣으면 VM은 그것을 "정상값 0"으로 읽어 스택에 올린다. 음을 넣어야 비로소 "이 자리는 값이 아니다"가 된다. 빈자리와 0은 결코 같지 않다.

2. 셋(+1/0/-1)에 정확히 안 맞는 자리

티(데이터)·옴(명령)·타(연결) 어디로도 분류되지 않는 것 — 메타정보, 디버그 신호, 타입 외의 표지 — 는 음 위치에 놓인다. 메모리 할당 표를 예로 들면 자리의 성질이 4상으로 갈린다.

  • 티 자리 = 할당된 메모리
  • 옴 자리 = 미할당(할당 가능)
  • 타 자리 = 예약됨
  • 음 자리 = 잠금 — 읽지도 쓰지도 못함

음을 잠금 표지로 쓰면 "이 영역은 접근 불가"라는 신호가 한 트릿으로 끝난다. 세 값으로 표현할 수 없는 네 번째 성질을, 음이 받아낸다.

3. 띄움 횟수(spacing count) — 정렬과 리듬

큐브는 격자이므로 연산에는 호흡이 필요하다. 한선씨 컴파일러가 RPN을 TOAU로 변환할 때, 연산과 연산 사이의 간격을 정확히 맞춰야 파이프라인이 어긋나지 않는다.

RPN: 5 3 + 2 * 를 풀면, TOAU 스택은 [T5] [T3] [O+] [음] [T2] [O*] 처럼 늘어선다. 가운데 음은 값이 아니라, 첫 덧셈의 결과가 정렬되고 다음 곱셈이 제때 시작되도록 잡아주는 한 칸의 띄움이다.

VM은 이 음을 만나면 상태를 정렬(realign)하고 다음 연산의 시작점을 맞춘다. 한 칸을 띄우는 횟수가 곧 리듬이고, 이 리듬이 3진 파이프라인의 정확성을 보장한다. 음이 없으면 연산들이 서로의 결과 위로 밀려 들어가, 격자의 박자가 무너진다.

두 영은 다르다 — 정리

구분옴(0)음(-0)
범주정규 상태비정규 예외
우주론화이트홀(드러냄·창발)블랙홀(흡수·닫음)
의미판단 보류, 대기, 정상값빈자리, 경계, 예외, 왜곡
논리값0(중립·미정)값 아님(자리의 성질)
기계어스택에 0 적재빈칸 표시 · 잠금 · 정렬 신호
루프정상 진행무한루프·오염 차단

옴은 "아직"의 영, 음은 "불가"의 영이다. 옴은 흘러가고, 음은 닫는다.

완벽매칭 — 240개의 빈칸이 왜 비어 있는가

ISA729는 729개의 자리를 정의하고, 그중 489개를 활용 중이다. 남은 240개는 미사용이 아니라 예약된 여백이다. 음의 논리가 그대로 ISA 설계에 올라간 결과다.

빈자리·경계·정렬 신호로 기계어를 구조화한다는 것은, 곧 미래의 새로운 opcode가 들어올 "틈"을 지금 정확히 비워둔다는 뜻이다. 그래서 새 명령을 추가해도 기존 인코딩이 흔들리지 않는다. 자리는 이미 음의 자리로 예약되어 있었고, 거기에 티(데이터)나 옴(명령)을 채워 넣기만 하면 된다. 이것이 우리가 완벽매칭이라 부르는 성질이다 — 채워질 자리와 비워둘 자리가 처음부터 한 트릿 단위로 일치한다.

한선씨 고수준 컴파일러가 매끄럽게 동작하고, 같은 program.toau가 WASM으로 변환되어 RPi5에서 FPGA까지 동일하게 실행되는 까닭도 여기에 있다. 계층이 바뀌어도 어긋나지 않는 것은, 음(-0)이 각 계층 사이의 여백을 한 칸의 오차도 없이 채워주기 때문이다.

셀코어와 음 — 규칙의 폴백

규칙 기반 에이전트 프레임워크인 셀코어 역시 음의 논리 위에 선다. 규칙의 조건이 맞지 않는 경우 — 어떤 룰도 발화하지 않는 상태 — 를 음으로 표현하면, 폴백(fallback) 동작이 빈자리의 자리에 정확히 들어선다. 조건 불일치를 0(옴)으로 처리하면 "정상값 0"과 뒤섞이지만, 음으로 처리하면 "해당 없음"이 또렷이 분리된다. 셀코어가 27-트릿 큐브 구조와 마찰 없이 맞물리는 이유가 이것이다.

결론 — 빈자리를 아는 것이 완전함이다

TOAU에서 단지 표기로 보였던 두 영은, ISA729에 이르러 기계어의 자유도가 되고, 한선씨에 이르러 컴파일러의 정확성이 된다. 옴은 흐름을 정상으로 유지하고, 음은 빈자리·경계·예외를 받아내며 무한루프와 오염을 막는다. 균형 잡힌 3진 VM이 견고한 까닭은, 채워야 할 자리만큼이나 비워야 할 자리를 정확히 알기 때문이다.

이 음의 논리는 위로 올라갈수록 더 크게 작동한다. 생태계로, 셀 기반 OS로, 그리고 화폐로 — 크라우니원(머니)에서 포네·맘(에셋)을 거쳐 크라우니(웰스)에 이르는 부의 사다리에서도, 앞으로 열릴 한선과 선호의 군집까지도, 예외를 끌어안고 여백을 남겨두는 음의 자리가 복원력의 근간이 될 것이다. 비어 있음을 정확히 아는 시스템만이, 언젠가 그 빈자리를 무엇으로 채울지도 정확히 알 수 있다.

다음 장에서는 ISA729의 구조와 인코딩 공식을 따라, 이 두 영이 729개의 자리 위에서 실제로 어떻게 좌표가 되는지를 한 트릿씩 짚어 보인다.

내 맘 –

독자 게시판 — 함께 읽고 남기는 곳

불러오는 중…

크라우니 책방에 가입하고 무료로 읽기

첫 번째 책은 선물이에요. 가입하면 100맘을 드리니까, 두 번째 책부터 자유롭게 읽을 수 있어요. 친구를 추천하면 50맘도 생겨요.