구글 안티그래비티 완전 분석 — 모델·요금제·CLI 총정리

🚀 구글 안티그래비티(Antigravity) 완전 분석 구글이 2025년 11월 Gemini 3와 함께 공개한 에이전트 퍼스트(agent-first) IDE 안티그래비티는 Claude·GPT·Gemini를 한 도구에서 골라 쓰는 멀티모델 코딩 환경이다. 이 글에서는 ① 지원 모델과 요금제별 사용량의 실체, ② 실사용자 평가, ③ 구글의 방향성, ④ Claude Code와의 비교·연계, ⑤ CLI( agy )로 직접 쓰는 법까지 다섯 갈래를 차례로 정리한다. 자료 간 충돌이 있는 지점은 한쪽으로 단정하지 않고 양쪽을 모두 살려 표기했다. 📅 기준 시점: 2026년 6월 · 프리뷰 단계 정보로 수치는 변동 가능 1. 안티그래비티란 무엇인가 — 기초 정리 안티그래비티는 2025년 7월 구글이 24억 달러 규모 라이선스 계약 으로 영입한 전 Windsurf 팀이 설계를 주도했다. VSCode를 포크한 위에 자율 에이전트 오케스트레이션 계층을 얹은 구조다. 2026년 5월 Google I/O에서 발표된 안티그래비티 2.0 은 데스크탑 앱과 함께 공식 CLI agy 를 처음 공개하며 기존 Gemini CLI의 공식 후계자 자리를 확정했다. 핵심 정체성은 단순 코드 자동완성이 아니라 병렬 에이전트 오케스트레이션 이다. 여러 에이전트가 동시에 — 하나는 API, 하나는 테스트, 또 하나는 프론트엔드 — 작업을 나눠 진행하고, 각 에이전트는 계획·테스트 결과·스크린샷·영상을 담은 Artifact 를 남긴다. "사람이 한 줄씩 승인"하는 방식이 아니라 "에이전트들이 일을 마치고 사람이 사후 검수"하는 모델이다. flowchart TD A([사용자 작업 지시]) --> B[에이전트 A API 구현] A --> C[에이전트 B 테스트 작성] A --> D[에이전트 C UI 생성] B --> E[Artifact 계획·결과·영상] C --> E D --> E...

SoC 성능의 핵심, Outstanding Transaction의 원리와 설계 전략

🔬 SoC Transaction의 'Outstanding' 개념 완전 정복

반도체 설계의 핵심 성능 지표, AMBA AXI 프로토콜 기반 심층 분석

💡 현대 SoC 설계에서 Outstanding Transaction은 시스템 성능을 좌우하는 결정적 요소입니다. CPU와 메모리 사이의 물리적 지연을 논리적 병렬성으로 극복하는 이 기법은, 스마트폰부터 데이터센터 칩까지 모든 고성능 반도체의 핵심 설계 철학입니다.

📌 Outstanding Transaction이란?

SoC 환경에서 'Outstanding'이란 마스터(Master)가 이전 트랜잭션의 응답을 받기 전에 다음 트랜잭션을 연속으로 발행할 수 있는 능력을 의미합니다.

전통적인 버스 프로토콜(초기 AHB 등)은 하나의 요청을 보낸 뒤 결과가 올 때까지 대기하는 Blocking 방식이었습니다. 이는 마치 편의점에서 한 명이 계산을 끝낼 때까지 다음 손님이 물건을 올려놓지도 못하는 것과 같은 비효율적 구조였죠.

반면 Outstanding을 지원하는 프로토콜은 통신 채널을 파이프라인(Pipeline)화하여 대기 시간을 최소화하고, 대역폭 활용도를 극대화합니다. 🚀

🧩 핵심 용어 정리

용어 설명
Latency 요청 발생부터 완료까지의 시간. Outstanding은 이 지연을 '숨기는(Masking)' 역할
Throughput 단위 시간당 처리 트랜잭션 양. Outstanding으로 비약적 향상 가능
ID Tagging 여러 트랜잭션을 동시 처리할 때 각 응답의 대응 관계를 식별하는 고유 번호
AMBA AXI Arm이 설계한 업계 표준 프로토콜. Outstanding 구현의 대표 사례

⚡ 왜 Outstanding이 필요한가? — 성능 비교

현대 SoC에서 CPU와 메모리 컨트롤러 사이의 거리는 물리적으로 상당하며, DDR 메모리 자체의 지연 시간은 수백 사이클에 달합니다. Outstanding이 없으면 마스터는 데이터가 올 때까지 버스를 점유한 채 아무것도 하지 못합니다.

🐢 Non-Outstanding 방식 (직렬 처리)

Address A → ⏳ Wait → Data A → Address B → ⏳ Wait → Data B

🚀 Outstanding 방식 (파이프라인 처리)

Address A → Address B → Address C → ⚙️ → Data A → Data B → Data C

이 차이는 단순히 이론적인 것이 아닙니다. 실제 SoC 설계에서 Outstanding 수를 1에서 4로 늘리면 메모리 대역폭 활용률이 2~3배 이상 향상되는 경우가 일반적입니다. 특히 GPU나 DMA 엔진처럼 대량 데이터 전송이 필요한 마스터에서는 그 효과가 더욱 극적입니다.

🎯 Outstanding Address의 핵심 원리

이 모든 것은 주소 채널과 데이터 채널의 분리를 통해 가능합니다. 마스터는 슬레이브가 첫 번째 데이터를 준비하는 동안 두 번째, 세 번째 주소를 미리 전달합니다. 슬레이브는 이를 통해 내부적으로 Pre-fetching, Bank Interleaving 등의 최적화를 수행할 수 있게 됩니다. 마치 레스토랑에서 주방이 첫 번째 요리를 조리하는 동안 웨이터가 다음 테이블의 주문을 미리 전달하는 것과 같은 원리입니다. 🍽️

🔄 AMBA AXI 프로토콜 — 데이터 흐름 상세 분석

📡 5개 독립 채널 구조

AXI 프로토콜의 가장 혁신적인 설계 포인트는 5개 채널의 완전한 독립성입니다. 각 채널이 별도의 핸드셰이크(VALID/READY)로 동작하기 때문에 병렬 처리가 자연스럽게 이루어집니다.

채널 이름 방향 역할
AW Write Address Master → Slave 쓰기 대상 주소 전달
W Write Data Master → Slave 실제 쓰기 데이터 전송
B Write Response Slave → Master 쓰기 완료 응답
AR Read Address Master → Slave 읽기 대상 주소 전달
R Read Data Slave → Master 읽기 데이터 + 응답 전송

📖 Read Transaction 전송 순서

① Address Issuance (마스터 측)

마스터는 ARVALIDARREADY 핸드셰이크를 통해 읽기 주소(ARADDR)를 슬레이브에 전달합니다. 핵심은 첫 번째 주소에 대한 응답을 기다리지 않고, 슬레이브의 Queue Depth가 허용하는 한 연속해서 다음 주소들을 발행한다는 점입니다. 각 주소에는 고유한 ARID가 부여됩니다.

② Request Queuing (슬레이브 측)

슬레이브는 수신된 주소들을 내부 요청 큐(Request Queue)에 저장합니다. 이 큐의 깊이가 곧 해당 슬레이브가 지원하는 최대 Outstanding 수를 결정합니다.

③ Data Preparation (슬레이브 측)

슬레이브(예: 메모리 컨트롤러)는 요청받은 데이터를 순차적 혹은 내부 효율에 따라 비순차적으로 준비합니다. DDR 메모리의 경우 Bank/Row 상태에 따라 접근 시간이 달라지므로, 내부 스케줄링을 통해 최적의 순서로 데이터를 fetch합니다.

④ Data Transfer (슬레이브 → 마스터)

데이터 준비가 완료되면 슬레이브는 RVALIDRREADY를 통해 데이터를 전송합니다. 각 데이터 패킷에는 요청 시 부여된 RID가 포함되어, 마스터가 어떤 주소에 대한 응답인지 정확히 식별할 수 있습니다.

✏️ Write Transaction 흐름

쓰기 작업에서는 주소(AW 채널)를 미리 여러 개 보낸 뒤, 데이터(W 채널)를 연속해서 밀어 넣습니다. 슬레이브는 모든 데이터 수신이 완료되면 B 채널을 통해 쓰기 완료 응답을 보냅니다. 여기서 Outstanding은 마스터가 B 응답을 받기 전에 다음 AW와 W를 보낼 수 있음을 의미합니다. AXI4에서는 W 채널에 WID가 제거되어 Write Data는 반드시 Address 순서와 동일하게 전송되어야 하는 점도 주목할 만합니다.

🛡️ 슬레이브의 반응 및 처리 로직

Outstanding 요청을 받는 슬레이브는 단순한 수신을 넘어 복잡한 관리 로직을 수행해야 합니다. 이 부분이 SoC 설계에서 가장 도전적인 영역 중 하나입니다.

🚦 버퍼 관리 및 역압(Back-pressure)

슬레이브는 자신이 한꺼번에 처리할 수 있는 최대 Outstanding 개수를 정의합니다. 내부 큐가 가득 차면, 슬레이브는 READY 신호(ARREADY/AWREADY)를 Low로 떨어뜨려 마스터의 추가 요청을 일시적으로 차단합니다. 이것이 바로 역압(Back-pressure) 메커니즘이며, 데이터 손실 없이 흐름을 조절하는 핵심 안전장치입니다. 마치 고속도로의 진입 램프 신호등처럼, 본선이 정체되면 진입을 일시 중지시키는 것과 같습니다. 🚗

🔀 Out-of-Order Completion (비순차 완료)

Outstanding의 가장 강력한 기능 중 하나는 비순차 처리입니다. 슬레이브는 요청받은 순서와 상관없이 먼저 준비된 데이터를 먼저 보낼 수 있습니다.

⚠️ 단, 동일한 ID를 가진 트랜잭션끼리는 순서가 반드시 보장되어야 합니다.

실전 예시: 마스터가 주소 1(느린 장치, ID=0), 주소 2(빠른 장치, ID=1) 순으로 요청했을 때, 슬레이브는 주소 2의 데이터를 먼저 반환할 수 있습니다. ID가 다르기 때문입니다. 이는 전체 시스템의 대기 시간을 획기적으로 줄여줍니다.

🔃 재정렬 버퍼(Reorder Buffer)

마스터 측(혹은 인터커넥트)에는 비순차적으로 도착한 응답들을 다시 원래 소프트웨어가 의도한 순서대로 정렬하여 CPU 등에 전달하는 로직이 포함됩니다. 이 재정렬 버퍼는 ID별로 응답을 관리하며, 특히 캐시 라인 필 요청처럼 순서가 중요한 트랜잭션에서 핵심적인 역할을 합니다. Arm의 최신 CCI/CMN 인터커넥트에서는 이 기능이 더욱 정교하게 구현되어 있습니다.

⚖️ 설계 시 핵심 고려사항

🔸 Area vs. Performance 트레이드오프

Outstanding 개수를 늘리면 성능은 향상되지만, 슬레이브와 인터커넥트의 큐/버퍼 사이즈가 커져 하드웨어 면적(Area)과 소모 전력이 증가합니다. 모바일 AP에서는 전력 효율이 중요하므로 보통 4~16개 수준으로 제한하고, 서버용 SoC에서는 32개 이상을 지원하기도 합니다. 최적의 Outstanding 수는 타깃 워크로드 프로파일링을 통해 결정해야 합니다.

🔸 Dependency 관리

여러 Outstanding 요청 사이에 데이터 의존성(Dependency)이 존재할 수 있습니다. 예를 들어, 같은 주소에 대한 Write 후 Read(RAW hazard)가 발생하면, 하드웨어 수준에서 이를 감지하고 올바른 순서를 보장하는 Hazard Check 로직이 필수적입니다. 이를 잘못 처리하면 데이터 정합성이 깨지는 치명적 버그로 이어집니다.

🔸 NoC로의 진화

최근의 NoC(Network-on-Chip) 구조에서는 Outstanding 개념이 더욱 확장되어 패킷 기반의 멀티 홉 통신으로 진화하고 있습니다. Arm의 CMN-700, Synopsys의 FlexNoC 등이 대표적이며, 여기서는 Outstanding 관리가 단일 버스가 아닌 네트워크 토폴로지 수준에서 이루어집니다. Chiplet 기반의 UCIe 인터페이스에서도 유사한 Outstanding 메커니즘이 적용되고 있어, 이 개념의 중요성은 앞으로 더욱 커질 전망입니다.

🧠 핵심 인사이트

Outstanding Transaction은 단순히 '빨리 보내는 것'이 아닙니다. 이는 시스템의 물리적 지연(Latency)을 논리적 병렬성(Parallelism)으로 극복하는 고도의 설계 기법입니다. 주소-데이터 채널 분리, ID 기반 태깅, 큐잉 시스템이라는 세 가지 축이 유기적으로 결합되어 현대 SoC의 성능 한계를 끌어올리고 있습니다.

참고: Arm AMBA AXI and ACE Protocol Specification (IHI0022E) · Digital Design and Computer Architecture, ARM Edition

📄 Raw Data
# SoC Transaction에서의 'Outstanding' 개념 및 메커니즘 리서치 보고서

## 1. 연구의 개요 및 목적
본 보고서는 현대 SoC(System on Chip) 설계의 핵심 성능 지표 중 하나인 **'Outstanding Transaction'**의 개념과 기능, 그리고 이를 지원하는 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜 기반의 데이터 흐름(Data Flow)에 대해 학술적으로 분석한다. 특히 고성능 통신 프로토콜인 AXI(Advanced eXtensible Interface)를 중심으로 트랜잭션의 전송 순서와 수신측의 반응 메커니즘을 규명하는 데 목적이 있다.

---

## 2. 기초 정보 (Foundation)

### 2.1 Outstanding Transaction의 정의
SoC 환경에서 'Outstanding'이란 **마스터(Master)가 이전 트랜잭션에 대한 응답(Response/Data)을 완전히 받기 전에 다음 트랜잭션(Address/Command)을 연속해서 발행할 수 있는 능력**을 의미한다. 

전통적인 버스 프로토콜(예: 초기 AHB)은 하나의 요청을 보내고 그 결과가 올 때까지 대기하는 'Blocking' 방식을 사용했다. 반면, Outstanding을 지원하는 프로토콜은 통신 채널을 파이프라인(Pipeline)화하여 대기 시간을 최소화하고 대역폭 활용도를 극대화한다.

### 2.2 주요 용어 및 배경 지식
*   **Latency (지연 시간):** 요청이 발생하고 완료될 때까지 걸리는 시간. Outstanding은 이 지연 시간을 '숨기는(Masking)' 역할을 한다.
*   **Throughput (처리량):** 단위 시간당 처리되는 트랜잭션의 양.
*   **ID Tagging:** 여러 트랜잭션이 동시에 처리될 때, 각 응답이 어떤 요청에 대응하는지 식별하기 위한 고유 번호.
*   **AMBA AXI:** Outstanding 트랜잭션을 구현하는 가장 대표적인 업계 표준 프로토콜.

---

## 3. Outstanding 메커니즘 및 현황 데이터 (Current State)

### 3.1 병렬 처리를 통한 성능 최적화
현대 SoC에서 CPU, GPU, 메모리 컨트롤러 사이의 거리는 물리적으로 멀고, 메모리(DDR) 자체의 지연 시간은 수백 사이클에 달한다. 만약 Outstanding 기능이 없다면, 마스터는 데이터가 올 때까지 버스를 점유한 채 아무것도 하지 못하게 된다. 

*   **Non-outstanding 방식:** Address A -> Wait -> Data A -> Address B -> Wait -> Data B
*   **Outstanding 방식:** Address A -> Address B -> Address C -> (Processing) -> Data A -> Data B -> Data C

### 3.2 Outstanding Address 기능
이는 '주소 채널'이 데이터 채널과 분리되어 있기에 가능하다. 마스터는 슬레이브(Slave)가 첫 번째 데이터를 준비하는 동안 두 번째, 세 번째 주소를 미리 전달하여 슬레이브가 내부적으로 다음 작업을 준비(Pre-fetching 등)할 수 있도록 한다.

---

## 4. 데이터 흐름 및 프로토콜 시퀀스 분석 (Data Flow in AMBA AXI)

AMBA AXI 프로토콜을 기반으로 Outstanding 트랜잭션이 전송되는 상세 순서와 메커니즘은 다음과 같다.

### 4.1 5개의 독립된 채널 구조
AXI는 다음 5개 채널이 독립적으로 작동하여 Outstanding을 지원한다.
1.  **AW (Write Address)**
2.  **W (Write Data)**
3.  **B (Write Response)**
4.  **AR (Read Address)**
5.  **R (Read Data)**

### 4.2 트랜잭션 전송 순서 (Read Transaction 기준)
1.  **Address Issuance (Master):** 마스터는 `ARVALID`와 `ARREADY` 핸드셰이크를 통해 읽기 주소(`ARADDR`)를 슬레이브에 보낸다. 이때 마스터는 첫 번째 주소에 대한 응답을 기다리지 않고, 슬레이브의 수용량(Queue Depth)이 허용하는 한 연속해서 다음 주소들을 보낸다. 각 주소에는 고유의 `ARID`가 부여된다.
2.  **Request Queuing (Slave):** 슬레이브는 수신된 주소들을 내부 요청 큐(Request Queue)에 저장한다.
3.  **Data Preparation (Slave):** 슬레이브(예: 메모리 컨트롤러)는 요청받은 데이터를 순차적 혹은 내부 효율에 따라 비순차적으로 준비한다.
4.  **Data Transfer (Slave to Master):** 데이터가 준비되면 슬레이브는 `RVALID`와 `RREADY`를 통해 데이터를 전송한다. 이때 각 데이터 패킷에는 요청 시 부여된 `RID`가 포함되어 있어, 마스터가 어떤 주소에 대한 데이터인지 알 수 있게 한다.

### 4.3 Write Transaction에서의 흐름
쓰기 작업에서는 주소(`AW`)를 미리 여러 개 보낸 뒤, 데이터(`W`)를 연속해서 밀어 넣는다. 슬레이브는 모든 데이터 수신이 완료되면 `B` 채널을 통해 '쓰기 완료 응답'을 보낸다. 여기서 Outstanding은 마스터가 `B` 응답을 받기 전에 다음 `AW`와 `W`를 보낼 수 있음을 의미한다.

---

## 5. 수신측(Slave)의 반응 및 처리 로직

Outstanding 요청을 받는 슬레이브는 단순한 수신 이상의 복잡한 관리 로직을 수행해야 한다.

### 5.1 버퍼 관리 및 역압(Back-pressure)
슬레이브는 자신이 한꺼번에 처리할 수 있는 최대 Outstanding 개수를 정의한다. 만약 내부 큐가 가득 차면, 슬레이브는 `READY` 신호(ARREADY/AWREADY)를 `Low`로 떨어뜨려 마스터의 추가 요청을 일시적으로 차단한다.

### 5.2 Out-of-Order Completion (비순차 완료)
Outstanding의 강력한 기능 중 하나는 비순차 처리다. 슬레이브는 요청받은 순서와 상관없이 먼저 준비된 데이터를 먼저 보낼 수 있다. (단, 동일한 ID를 가진 트랜잭션끼리는 순서가 보장되어야 함). 
*   **예시:** 마스터가 주소 1(느린 장치), 주소 2(빠른 장치) 순으로 요청했을 때, 슬레이브는 주소 2의 데이터를 먼저 반환할 수 있다. 이는 전체 시스템의 대기 시간을 획기적으로 줄인다.

### 5.3 재정렬 버퍼(Reorder Buffer)
마스터 측(혹은 인터커넥트)에는 비순차적으로 도착한 응답들을 다시 원래 소프트웨어가 의도한 순서대로 정렬하여 CPU 등에 전달하는 로직이 포함되기도 한다.

---

## 6. 결론 및 시사점

### 6.1 핵심 요약
Outstanding 트랜잭션은 SoC의 통신 효율을 결정짓는 핵심 설계 요소다. 이는 **주소와 데이터 채널의 분리**, **ID 기반의 트랜잭션 태깅**, 그리고 **슬레이브의 큐잉 시스템**을 통해 구현된다.

### 6.2 설계 시 고려사항
1.  **Area vs. Performance:** Outstanding 개수를 늘리면 성능은 좋아지지만, 슬레이브와 인터커넥트의 큐/버퍼 사이즈가 커져 하드웨어 면적(Area)과 소모 전력이 증가한다.
2.  **Dependency 관리:** 여러 Outstanding 요청 사이에 데이터 의존성(Dependency)이 있는 경우, 이를 하드웨어 수준에서 해결하기 위한 복잡한 로직(Hazard check)이 필요하다.
3.  **System-on-Chip 아키텍처:** 최근의 NoC(Network-on-Chip) 구조에서는 이러한 Outstanding 개념이 더욱 확장되어 패킷 기반의 멀티 홉 통신으로 진화하고 있다.

결론적으로, Outstanding은 단순히 '빨리 보내는 것'이 아니라, **시스템의 물리적 지연(Latency)을 논리적 병렬성(Parallelism)으로 극복하는 고도의 설계 기법**이라 할 수 있다.
---

## References

- [Arm AMBA AXI and ACE Protocol Specification](https://developer.arm.com/documentation/ihi0022/e/)
- [Digital Design and Computer Architecture (ARM Edition)](https://www.sciencedirect.com/book/9780128000564/digital-design-and-computer-architecture)

댓글

이 블로그의 인기 게시물

Vim 9.2 릴리즈 총정리: 더 빠르고 강력해진 텍스트 편집의 제왕

폐쇄망 SoC 설계자를 위한 가볍고 빠른 Vim 최적화 가이드

에이전트 시대를 위한 터미널 cmux 가이드: 설치부터 AI 활용까지