가속 그래픽 포트

[섬네일|300px|1 개의 AGP 슬롯과 2 개의 [PCI 버스|PCI 슬롯]]
**가속 그래픽 포트**(Accelerated Graphics Port , **고급 그래픽 포트**, **AGP**)는 3차원 컴퓨터 그래픽스의 가속을 돕기 위해 컴퓨터 시스템에 비디오 카드를 연결하도록 설계된 병렬 확장 카드 표준이다. 이는 원래 비디오 카드용 PCI 버스 연결의 후속으로 설계되었다. 2004년부터 AGP는 병렬이 아닌 직렬 방식의 PCI 익스프레스 (PCIe)로 점진적으로 대체되었으며, 2008년 중반에는 PCI 익스프레스 카드가 시장을 지배했고 AGP 모델은 몇 개만 남아 있었다. GPU 제조업체와 추가 보드 파트너들은 결국 PCI 익스프레스를 선호하여 이 인터페이스에 대한 지원을 중단했다.

## PCI에 대한 이점
AGP는 PCI 표준의 상위 집합으로, 당시 고성능 그래픽 카드의 요구 사항을 충족하는 데 있어 PCI의 한계를 극복하기 위해 설계되었다.

AGP의 주요 이점은 PCI 버스를 공유하지 않아 확장 슬롯과 마더보드 칩셋 사이에 전용의 지점 대 지점 경로를 제공한다는 것이다. 직접 연결은 또한 더 높은 클럭 속도를 허용한다.

두 번째 주요 변경 사항은 주소와 데이터 단계를 분리하는 분할 트랜잭션을 사용하는 것이다. 카드는 여러 주소 단계를 보낼 수 있으므로 호스트는 이를 순서대로 처리하여 읽기 작업 중에 버스가 유휴 상태로 인해 발생하는 긴 지연을 피할 수 있다.

세 번째, PCI 버스 핸드셰이킹이 단순화되었다. FRAME# 및 STOP# 신호를 사용하여 주기별로 길이가 협상되는 PCI 버스 트랜잭션과 달리, AGP 전송은 항상 8바이트 길이의 배수이며, 총 길이는 요청에 포함된다. 또한, 각 워드에 대해 IRDY# 및 TRDY# 신호를 사용하는 대신, 데이터는 4클럭 주기 (AGP 8배속에서는 32워드) 블록으로 전송되며, 일시 중지는 블록 사이에서만 허용된다.

마지막으로, AGP는 (AGP 3.0에서만 필수적) 사이드밴드 주소 지정을 허용한다. 즉, 주소 및 데이터 버스가 분리되어 주소 단계가 주 주소/데이터 (AD) 라인을 전혀 사용하지 않는다. 이는 추가 8비트 "사이드밴드 주소" 버스를 추가하여 이루어지며, 이를 통해 그래픽 컨트롤러는 주 32개 주소/데이터 (AD) 라인을 통해 다른 AGP 데이터가 흐르는 동안 새로운 AGP 요청을 발행할 수 있다. 이는 전반적인 AGP 데이터 처리량 개선으로 이어진다.

이러한 메모리 읽기 성능의 큰 개선으로 AGP 카드는 시스템 RAM에서 텍스처를 직접 읽을 수 있게 되었지만, PCI 그래픽 카드는 시스템 RAM에서 카드의 비디오 메모리로 복사해야 한다. 시스템 메모리는 그래픽스 주소 재매핑 테이블 (GART)을 사용하여 사용 가능하게 되며, 이는 텍스처 저장에 필요한 주 메모리를 할당한다. AGP에 사용 가능한 최대 시스템 메모리 양은 AGP 조리개로 정의된다.

## 역사
섬네일|AGP 카드

AGP 슬롯은 X86 호환 시스템 보드에서 처음 등장했으며, 소켓 7 인텔 펜티엄 P5 및 슬롯 1 펜티엄 II P6 프로세서 기반이었다. 인텔은 1997년 8월 26일 i440LX 슬롯 1 칩셋과 함께 AGP 지원을 도입했으며, 모든 주요 시스템 보드 공급업체에서 수많은 제품이 잇따라 출시되었다.

AGP를 지원하는 첫 번째 소켓 7 칩셋은 VIA 아폴로 VP3, SiS 5591/5592, 그리고 ALI 알라딘 V였다. 인텔은 AGP를 장착한 소켓 7 칩셋을 출시한 적이 없다. FIC는 1997년 11월 VIA 아폴로 VP3 칩셋을 기반으로 하는 FIC PA-2012를 첫 소켓 7 AGP 시스템 보드로 시연했으며, 곧이어 VIA VP3 칩셋을 기반으로 하는 EPoX P55-VP3가 시장에 먼저 출시되었다.

AGP 지원 기능을 갖춘 초기 비디오 칩셋에는 렌디션 베리티 V2200, 3dfx 부두 밴시, 엔비디아 리바 128, 3D랩스 퍼미디아 2, 인텔 i740, ATI 레이지 시리즈, 매트록스 밀레니엄 II, 그리고 S3 버지 GX/2가 포함되었다. 일부 초기 AGP 보드는 PCI를 기반으로 구축된 그래픽 프로세서를 사용했으며 단순히 AGP에 브리지되었다. 이로 인해 카드는 새로운 버스로부터 거의 이점을 얻지 못했으며, 유일한 개선 사항은 66MHz 버스 클럭과 그에 따른 PCI에 비해 두 배의 대역폭 및 버스 독점성이었다. 인텔의 i740은 새로운 AGP 기능 세트를 활용하도록 명시적으로 설계되었다. 실제로 AGP 메모리에서만 텍스처를 구현하도록 설계되어 PCI 버전 보드를 구현하기가 어려웠지만 (로컬 보드 RAM이 AGP 메모리를 에뮬레이트해야 했음), 이는 나중에 AGP-PCI 브리지 형태로 달성되었다.

윈도우에 AGP 지원은 1997년 윈도우 95의 OSR2용 USB 보충 패치(OSR2.1로도 알려짐)를 통해 마이크로소프트가 처음 도입했다. AGP를 지원하는 첫 번째 윈도우 NT 기반 운영 체제는 서비스 팩 3이 적용된 윈도우 NT 4.0으로, 역시 1997년이었다. AGP 강화 고속 데이터 전송에 대한 리눅스 지원은 1999년에 AGPgart 커널 모듈이 구현되면서 처음 추가되었다.

### 후기 사용
PCIe의 채택이 증가함에 따라 그래픽 카드 제조업체는 AGP 카드를 계속 생산했지만, 이 표준은 점차 구식화되었다. GPU가 PCIe에 연결되도록 설계되기 시작하면서, AGP 호환 그래픽 카드를 만들기 위해서는 추가 PCIe-AGP 브리지 칩이 필요하게 되었다. 브리지의 포함과 별도의 AGP 카드 설계 필요성으로 인해 추가적인 보드 비용이 발생했다.

2004-2005년에 출시된 GeForce 6600과 ATI Radeon X800 XL은 최초의 브리지 카드였다. 2009년 엔비디아의 AGP 카드는 지포스 7 시리즈가 상한선이었다. 2011년 AMD 벤더(Club 3D, HIS, Sapphire, Jaton, Visiontek, Diamond 등)에서 DirectX 10 지원 AGP 카드에는 라데온 HD 2400, 3450, 3650, 3850, 4350, 4650, 4670이 포함되었다. AMD Catalyst 소프트웨어에 언급된 HD 5000 AGP 시리즈는 출시되지 않았다. 윈도우 7에서 HD 4000 시리즈 AGP 비디오 카드와 함께 AMD Catalyst 11.2 - 11.6 AGP 핫픽스 드라이버에 많은 문제가 있었다. 10.12 또는 11.1 AGP 핫픽스 드라이버를 사용하는 것이 해결책이 될 수 있다. 위에 나열된 여러 벤더는 AGP 드라이버의 이전 버전을 제공한다.

2010년까지 새로운 마더보드 칩셋은 AGP를 지원하지 않았고, 새로운 마더보드 중 AGP 슬롯을 가진 것은 거의 없었지만, 일부는 여전히 구형 AGP 지원 칩셋으로 생산되었다.

2016년, 윈도우 10 버전 1607은 AGP 지원을 중단했다. 2020년에는 오픈 소스 리눅스 커널 드라이버에서 AGP 지원을 제거할 가능성이 고려되었다.

## 버전

인텔은 1997년에 "AGP 사양 1.0"을 발표했다. 이 사양은 3.3&nbsp;V 신호와 1배속 및 2배속을 명시했다. 사양 2.0은 1.5&nbsp;V 신호 방식을 문서화했으며, 이는 1배속, 2배속 및 추가적인 4배속으로 사용할 수 있었다. 그리고 3.0은 0.8&nbsp;V 신호 방식을 추가했으며, 이는 4배속 및 8배속으로 작동할 수 있었다. (1배속 및 2배속도 물리적으로 가능하지만, 명시되지는 않았다.)

사용 가능한 버전은 옆 표에 나열되어 있다.

AGP 버전 3.5는 마이크로소프트의 UAGP(Universal Accelerated Graphics Port)에서만 공개적으로 언급되며, 이는 AGP 3.0에서 선택 사항으로 표시되었던 추가 레지스터에 대한 필수 지원을 명시한다. 업그레이드된 레지스터에는 PCISTS, CAPPTR, NCAPID, AGPSTAT, AGPCMD, NISTAT, NICMD가 포함된다. 새롭게 요구되는 레지스터에는 APBASELO, APBASEHI, AGPCTRL, APSIZE, NEPG, GARTLO, GARTHI가 포함된다.

다양한 물리적 인터페이스(커넥터)가 있다. 호환성 섹션을 참조하라.

### 공식 확장
[섬네일|AGP 그래픽 카드 (애플 [매킨토시)]]
섬네일|AGP Pro 그래픽 카드

#### AGP Pro
더 많은 전력을 요구하는 카드를 위한 공식 확장으로, 이 목적을 위한 추가 핀이 있는 더 긴 슬롯이 있다. AGP Pro 카드는 일반적으로 건축, 기계 가공, 공학, 시뮬레이션 등과 같은 분야에서 사용되는 전문 컴퓨터 지원 설계 애플리케이션의 가속을 위해 사용되는 워크스테이션급 카드였다.

#### 64비트 AGP
64비트 채널은 한때 AGP 3.0 초안 문서에서 선택적 표준으로 제안되었지만, 표준의 최종 버전에서는 제외되었다.

이 표준은 AGP8× 읽기, 쓰기 및 빠른 쓰기에 대해 64비트 전송을 허용하며, PCI 작업에는 32비트 전송을 허용한다.

### 비공식 변형
제조업체에 의해 다수의 비표준 AGP 인터페이스 변형이 생산되었다.

#### 내부 AGP 인터페이스
;울트라-AGP, 울트라-AGPII: 통합 그래픽이 있는 노스브릿지 컨트롤러에 SiS가 사용하는 내부 AGP 인터페이스 표준이다. 원래 버전은 AGP 8배속과 동일한 대역폭을 지원하며, 울트라-AGPII는 최대 3.2&nbsp;GB/초 대역폭을 가진다.

#### PCI 기반 AGP 포트
;AGP 익스프레스: 실제 AGP 인터페이스는 아니지만, PCI 익스프레스 마더보드의 레거시 PCI 버스를 통해 AGP 카드를 연결할 수 있도록 한다. ECS에서 만든 마더보드에 사용된 기술로, PCIe 카드를 새로 구매할 필요 없이 기존 AGP 카드를 새 마더보드에서 사용할 수 있도록 의도되었다 (PCIe 그래픽 카드가 도입된 이후 AGP 슬롯을 제공하는 마더보드는 거의 없었다). "AGP 익스프레스" 슬롯은 기본적으로 AGP 커넥터가 있는 PCI 슬롯(두 배의 전력)이다. AGP 카드와의 하위 호환성을 제공하지만, 불완전한 지원을 제공하며 (일부 AGP 카드는 AGP 익스프레스에서 작동하지 않음) 성능이 저하된다. 카드는 더 빠른 AGP를 독점적으로 사용하는 대신 공유 PCI 버스를 더 낮은 대역폭으로 사용하도록 강제된다.
;AGI: ASRock 그래픽스 인터페이스 (AGI)는 가속 그래픽 포트 (AGP) 표준의 독점 변형이다. 그 목적은 기본 AGP 지원이 없는 칩셋을 사용하는 ASRock 마더보드에 AGP 지원을 제공하는 것이다. 그러나 AGP와 완전히 호환되지 않으며, 여러 비디오 카드 칩셋이 지원되지 않는 것으로 알려져 있다.
;AGX: 에폭스 고급 그래픽스 확장 (AGX)은 AGI와 동일한 장단점을 가진 또 다른 독점 AGP 변형이다. 사용자 설명서에서는 AGX 슬롯에 AGP 8배속 ATI 카드를 사용하지 말 것을 권장한다.
;XGP: 바이오스타 익스트림 그래픽스 포트 (XGP)는 AGI 및 AGX와 동일한 장단점을 가진 또 다른 AGP 변형이다.

#### PCIe 기반 AGP 포트
;AGR: 어드밴스드 그래픽스 라이저는 MSI에서 제조한 일부 PCIe 마더보드에서 AGP와의 제한적인 하위 호환성을 제공하기 위해 사용되는 AGP 포트의 변형이다. 이는 사실상 AGP 4배속/8배속 슬롯과 비슷한 성능을 허용하는 수정된 PCIe 슬롯이지만, 모든 AGP 카드를 지원하지는 않는다. 제조업체는 수정된 슬롯과 호환되는 일부 카드 및 칩셋 목록을 게시했다.

## 호환성
오른쪽|섬네일|300px|호환성, 카드 상의 AGP 키(상단), 슬롯 상의 AGP 키(하단)

AGP 카드는 제한적인 범위 내에서 하위 및 상위 호환이 가능하다. 1.5V 전용 키가 있는 카드는 3.3V 슬롯에 장착되지 않으며 그 반대도 마찬가지이지만, 양쪽 유형의 슬롯에 모두 맞는 "범용" 카드도 존재한다. 또한 양쪽 유형의 카드를 모두 받아들일 수 있는 키가 없는 "범용" 슬롯도 있다. AGP 범용 카드가 AGP 범용 슬롯에 연결되면 카드 중 1.5V 부분만 사용된다. 엔비디아의 지포스 6 시리즈 (6200 제외) 또는 ATI의 라데온 X800 시리즈와 같은 일부 카드는 1.5V 지원이 없는 구형 메인보드에 설치되는 것을 방지하기 위해 1.5V 전용 키만 가지고 있다. 3.3V를 지원하는 마지막 현대 카드 중 일부는 다음과 같다.
* 엔비디아 지포스 FX 시리즈 (FX 5200, FX 5500, FX 5700, 일부 FX 5800, FX 5900 및 일부 FX 5950),
* 특정 엔비디아 지포스 6 시리즈 및 7 시리즈 (일부 6600, 6800, 7300, 7600, 7800, 7900 및 7950 카드, 1.5V 전용 버전에 비해 매우 드물다. 지포스 6200은 유일한 예외로, 3.3V 지원 카드 중 가장 흔한 카드였다.),
* ATI 라데온 9000 시리즈 (라데온 9500/9700/9800 (R300/R350), 단, 9600/9800 (R360/RV360)은 제외).

일부 카드는 이중 노치가 잘못되어 있고, 일부 마더보드는 슬롯이 완전히 열려 있어 카드가 올바른 신호 전압을 지원하지 않는 슬롯에 꽂힐 수 있어 카드 또는 마더보드가 손상될 수 있다. 일부 잘못 설계된 구형 3.3V 카드는 1.5V 키를 가지고 있다.

AGP Pro 카드는 표준 슬롯에 맞지 않지만, 표준 AGP 카드는 Pro 슬롯에서 작동한다. 범용 AGP Pro 슬롯이 장착된 마더보드는 AGP Pro 또는 표준 AGP 구성의 1.5V 또는 3.3V 카드, 범용 AGP 카드 또는 범용 AGP Pro 카드를 허용한다.

표준 AGP와 호환되지 않는 일부 독점 시스템이 있다. 예를 들어, 애플 파워 맥 컴퓨터에는 애플 디스플레이 단자 (ADC)가 있어 연결된 디스플레이에 전원을 공급하는 추가 커넥터가 있다. 특정 CPU 아키텍처 (예: PC, 애플)에서 작동하도록 설계된 일부 카드는 펌웨어 문제로 인해 다른 아키텍처에서는 작동하지 않을 수 있다.

Playtools.com의 마크 앨런은 AGP 3.0 및 AGP 2.0의 실제 AGP 호환성에 대해 다음과 같이 언급했다. 

## 전력 소비

AGP 슬롯이 공급하는 실제 전력은 사용되는 카드에 따라 달라진다. 각 버전의 사양에는 다양한 레일에서 인출되는 최대 전류가 명시되어 있다. 예를 들어, 모든 공급 장치에서 최대 전류가 인출되고 모든 전압이 지정된 상한에 있을 때, AGP&nbsp;3.0 슬롯은 최대 48.25&nbsp;와트를 공급할 수 있다. 이 수치는 전원 공급 장치를 보수적으로 지정하는 데 사용될 수 있지만, 실제로는 카드가 슬롯에서 40&nbsp;W 이상을 인출하는 경우는 거의 없으며, 많은 카드는 그보다 적게 사용한다. AGP Pro는 최대 110&nbsp;W의 추가 전력을 제공한다. 많은 AGP 카드는 슬롯이 제공할 수 있는 것보다 더 많은 전력을 공급하기 위한 추가 전원 커넥터를 가지고 있었다.

## 프로토콜
AGP 버스는 66&nbsp;MHz 기존 PCI 버스의 상위 집합이며, 리셋 직후에는 동일한 프로토콜을 따른다. 카드는 PCI 타겟으로 작동해야 하며, 선택적으로 PCI 마스터로 작동할 수 있다. (AGP 2.0은 마더보드에서 카드로 PCI 쓰기 시 더 빠른 속도로 데이터를 전송할 수 있도록 하는 "빠른 쓰기" 확장을 추가했다.)

PCI 트랜잭션을 사용하여 카드가 초기화된 후, AGP 트랜잭션이 허용된다. 이러한 트랜잭션의 경우, 카드는 항상 AGP 마스터이고 마더보드는 항상 AGP 타겟이다. 카드는 PCI 주소 단계에 해당하는 여러 요청을 대기열에 넣고, 마더보드는 나중에 해당 데이터 단계를 스케줄링한다. 초기화의 중요한 부분은 카드에 주어진 시간에 대기열에 넣을 수 있는 최대 AGP 요청 수를 알려주는 것이다.

AGP 요청은 PCI 메모리 읽기 및 쓰기 요청과 유사하지만, C/BE[3:0] 명령 라인에서 다른 인코딩을 사용하며 항상 8바이트 정렬되어 있다. 시작 주소와 길이는 항상 8바이트(64비트)의 배수이다. 주소의 하위 3비트는 대신 요청의 길이를 전달하는 데 사용된다.

PCI GNT# 신호가 버스를 카드에 부여하면서 주장될 때마다, 세 개의 추가 상태 비트 ST[2:0]는 다음으로 수행될 전송 유형을 나타낸다. 비트가 `0xx`이면 이전에 대기열에 있던 AGP 트랜잭션의 데이터가 전송될 것이다. 세 비트가 `111`이면 카드는 PCI 트랜잭션을 시작하거나 (사이드밴드 주소 지정이 사용되지 않는 경우) PIPE#를 사용하여 대역 내에서 요청을 대기열에 넣을 수 있다.

### AGP 명령 코드
PCI와 마찬가지로 각 AGP 트랜잭션은 주소 단계로 시작하며, 주소와 4비트 명령 코드를 통신한다. 그러나 가능한 명령은 PCI와 다르다.

; 000p: 읽기
: 8×(AD[2:0]+1) = 8, 16, 24, ..., 64바이트를 읽는다. 최하위 비트 p는 저우선순위의 경우 0이고 고우선순위의 경우 1이다.
; 001x: (예약됨):
; 010p: 쓰기
: 8×(AD[2:0]+1) = 8–64바이트를 쓴다.
; 011x: (예약됨):
; 100p: 긴 읽기
: 32×(AD[2:0]+1) = 32, 64, 96, ..., 256바이트를 읽는다. 이는 읽기 요청과 동일하지만, 길이는 4배로 곱해진다.
; 1010: 플러시
: 동기화를 위해 이전에 기록된 데이터를 강제로 메모리에 저장한다. 이는 저우선순위 읽기로 작동하며, 대기열 슬롯을 차지하고 8바이트의 임의 데이터를 반환하여 완료를 나타낸다. 이 명령과 함께 제공된 주소와 길이는 무시된다.
; 1011: (예약됨):
; 1100: 펜스
: 이는 메모리 펜스로 작동하며, 모든 이전 AGP 요청이 완료된 후에야 다음 요청이 완료되어야 한다. 일반적으로 성능 향상을 위해 AGP는 매우 약한 일관성 모델을 사용하며, 나중 쓰기가 이전 읽기를 통과하는 것을 허용한다. (예: "1 쓰기, 2 쓰기, 읽기, 3 쓰기, 4 쓰기" 요청을 모두 동일한 주소로 보낸 후, 읽기는 2에서 4 사이의 값을 반환할 수 있다. 1을 반환하는 것은 금지되는데, 쓰기는 다음 읽기 전에 완료되어야 하기 때문이다.) 이 작업은 어떤 대기열 슬롯도 필요하지 않다.
; 1101: 이중 주소 사이클
: 232를 초과하는 주소로 요청을 할 때, 이는 두 번째 주소 사이클이 추가 주소 비트와 함께 뒤따를 것임을 나타내는 데 사용된다. 이는 일반적인 PCI 이중 주소 사이클처럼 작동한다. 주소의 하위 32비트(및 길이)와 함께 제공되며, 다음 사이클에는 상위 32비트 주소와 원하는 명령이 포함된다. 두 사이클은 하나의 요청을 구성하며, 요청 대기열에서 하나의 슬롯만 차지한다. 이 요청 코드는 사이드밴드 주소 지정과 함께 사용되지 않는다.
; 111x: (예약됨):

AGP 3.0은 거의 사용되지 않았기 때문에 고우선순위 요청과 긴 읽기 명령을 삭제했다. 또한 사이드밴드 주소 지정을 필수로 지정하여 이중 주소 사이클을 삭제하고, 저우선순위 읽기(0000), 저우선순위 쓰기(0100), 플러시(1010), 펜스(1100)의 네 가지 요청 유형만 남겼다.

### PIPE#를 사용한 인밴드 AGP 요청
인밴드에서 요청을 대기열에 넣으려면, 카드는 표준 PCI REQ# 신호를 사용하여 버스를 요청하고, GNT# 및 버스 상태 ST[2:0]가 `111`과 동일한 값을 수신해야 한다. 그런 다음, PCI 트랜잭션을 시작하기 위해 FRAME#을 주장하는 대신, 카드는 C/BE[3:0], AD[31:3] 및 AD[2:0] 라인에 각각 AGP 명령, 주소 및 길이를 구동하는 동안 PIPE# 신호를 주장한다. (주소가 64비트인 경우, PCI와 유사한 이중 주소 사이클이 사용된다.) PIPE#가 주장되는 모든 사이클마다, 카드는 구성된 최대 대기열 깊이까지 마더보드의 승인을 기다리지 않고 다른 요청을 보낸다. 마지막 사이클은 REQ#를 비주장함으로써 표시되며, PIPE#는 다음 유휴 사이클에서 비주장된다.

### SBA[7:0]를 사용한 사이드밴드 AGP 요청
사이드밴드 주소 지정이 지원되고 구성된 경우, PIPE# 신호는 사용되지 않는다. (그리고 이 신호는 사이드밴드 주소 지정이 필수인 AGP 3.0 프로토콜에서 다른 용도로 재사용된다.) 대신, 요청은 16비트 조각으로 나뉘어 SBA 버스를 통해 두 바이트로 전송된다. 카드가 마더보드에 허락을 구할 필요는 없다. 미처리 요청 수가 구성된 최대 대기열 깊이 내에 있는 한 언제든지 새 요청을 보낼 수 있다. 가능한 값은 다음과 같다.

; `0aaa aaaa aaaa alll`
: 주어진 하위 주소 비트 A[14:3] 및 길이 8×(L[2:0]+1)를 가진 요청을 대기열에 넣는다. 명령 및 상위 비트는 이전에 지정된 대로이다. 명령 및 상위 주소 비트가 동일하게 유지되는 한, 이 패턴만 전송하여 여러 요청을 대기열에 넣을 수 있다.
; `10cc ccra aaaa aaaa`
: 향후 요청에 대해 명령 C[3:0] 및 주소 비트 A[23:15]를 사용한다. (비트 R은 예약됨.) 이는 요청을 대기열에 넣지는 않지만, 향후 모든 대기열에 있는 요청에서 사용될 값을 설정한다.
; `110r aaaa aaaa aaaa`
: 향후 요청에 대해 주소 비트 A[35:24]를 사용한다.
; `1110 aaaa aaaa aaaa`
: 향후 요청에 대해 주소 비트 A[47:36]를 사용한다.
; `1111 0xxx`, `1111 10xx`, `1111 110x`
: 예약됨, 사용하지 말 것.
; `1111 1110`
: 유휴 기간 후 SBA 버스를 시작할 때 사용되는 동기화 패턴.
; `1111 1111`
: 명령 없음; 요청 없음. AGP 1배속에서는 단일 바이트로 전송될 수 있으며, 다음 16비트 사이드밴드 요청은 한 사이클 뒤에 시작된다. AGP 2배속 이상에서는 이 NOP를 포함한 모든 사이드밴드 요청은 16비트 길이이다.

사이드밴드 주소 바이트는 66&nbsp;MHz 기본 버스 클록의 최대 8배속으로 데이터 전송과 동일한 속도로 전송된다. 사이드밴드 주소 지정은 읽기 작업이 쓰기 작업보다 훨씬 많은 일반적인 경우에 전송 간 AD 버스에서 턴어라운드 사이클의 필요성을 대부분 제거한다는 장점이 있다.

### AGP 응답
GNT#가 주장되는 동안 마더보드는 대신 ST 비트를 통해 대기열에 있는 요청에 대한 데이터 단계가 다음에 수행될 것임을 나타낼 수 있다. 네 개의 대기열이 있다. 읽기 및 쓰기 각각에 대해 두 가지 우선순위(낮은 우선순위와 높은 우선순위)가 있으며, 각 대기열은 순서대로 처리된다. 당연히 마더보드는 높은 우선순위 요청을 먼저 완료하려고 시도하지만, 높은 우선순위 요청이 처리되는 동안 전달될 수 있는 낮은 우선순위 응답의 수에는 제한이 없다.

GNT#가 주장되고 상태 비트가 `00p` 값을 갖는 각 사이클에 대해, 표시된 우선순위의 읽기 응답이 반환되도록 스케줄링된다. 다음 사용 가능한 기회(일반적으로 다음 클럭 사이클)에 마더보드는 TRDY#(대상 준비)를 주장하고 표시된 읽기 대기열에서 가장 오래된 요청에 대한 응답 전송을 시작한다. (FRAME#, DEVSEL#, IRDY#와 같은 다른 PCI 버스 신호는 비주장 상태로 유지된다.) 최대 4클럭 사이클에 해당하는 데이터(AGP 1배속에서는 16바이트, AGP 8배속에서는 128바이트)가 카드로부터 승인을 기다리지 않고 전송된다. 응답이 이보다 길면 카드와 마더보드 모두 세 번째 사이클에서 각각 IRDY#(개시자 준비)와 TRDY#를 주장하여 계속할 수 있음을 나타내야 한다. 둘 중 하나라도 그렇게 하지 않으면, 둘 다 그렇게 한 후 두 사이클이 지날 때까지 대기 상태가 삽입된다. (다른 시간의 IRDY#와 TRDY# 값은 관련이 없으며 일반적으로 비주장 상태이다.)

C/BE# 바이트 인에이블 라인은 읽기 응답 중에 무시될 수 있지만, 마더보드에 의해 주장된 상태(모든 바이트 유효)로 유지된다.

카드는 또한 RBF#(읽기 버퍼 가득 참) 신호를 주장하여 일시적으로 더 이상 낮은 우선순위 읽기 응답을 받을 수 없음을 나타낼 수 있다. 마더보드는 더 이상 낮은 우선순위 읽기 응답을 스케줄링하지 않을 것이다. 카드는 현재 응답의 끝과 스케줄링된 다음 응답의 첫 번째 4사이클 블록, 그리고 요청한 모든 높은 우선순위 응답을 여전히 수신할 수 있어야 한다.

GNT#가 주장되고 상태 비트가 `01p` 값을 갖는 각 사이클에 대해, 쓰기 데이터가 버스를 통해 전송되도록 스케줄링된다. 다음 사용 가능한 기회(일반적으로 다음 클럭 사이클)에 카드는 IRDY#(개시자 준비)를 주장하고 표시된 쓰기 대기열에서 가장 오래된 요청의 데이터 부분 전송을 시작한다. 데이터가 4클럭 사이클보다 길면, 마더보드는 세 번째 사이클에서 TRDY#를 주장하여 계속할 수 있음을 나타낼 것이다. 읽기와 달리, 카드가 쓰기를 지연시킬 수 있는 조항은 없다. 데이터를 보낼 준비가 되지 않았다면 요청을 대기열에 넣지 않았어야 했다.

C/BE# 라인은 쓰기 데이터와 함께 사용되며, 카드에 의해 어떤 바이트를 메모리에 기록할지 선택하는 데 사용될 수 있다.

AGP 2배속, 4배속, 8배속에서의 배율은 각 66&nbsp;MHz 클럭 사이클 동안 버스를 통한 데이터 전송 횟수를 나타낸다. 이러한 전송은 데이터 소스에서 생성된 "스트로브" 신호(AD_STB[0], AD_STB[1], SB_STB)를 사용하여 소스 동기 클럭킹을 사용한다. AGP 4배속은 보완적인 스트로브 신호를 추가한다.

AGP 트랜잭션은 두 번의 전송만큼 짧을 수 있으므로, AGP 4배속 및 8배속에서는 클럭 사이클 중간에 요청이 완료될 수 있다. 이러한 경우, 사이클은 더미 데이터 전송(C/BE# 바이트 인에이블 라인은 비주장 상태로 유지됨)으로 채워진다.

## 커넥터 핀 배열
AGP 커넥터는 거의 모든 PCI 신호를 포함하며, 몇 가지 추가 사항이 있다. 커넥터는 각 측면에 66개의 접점을 가지지만, 각 키 노치마다 4개가 제거된다. 핀&nbsp;1은 I/O 브래킷에 가장 가깝고, B 및 A 측면은 마더보드 커넥터를 내려다볼 때 표와 같다.

접점은 1&nbsp;mm 간격으로 떨어져 있지만, 두 개의 엇갈린 수직 행으로 배열되어 각 행의 핀 사이에 2&nbsp;mm 간격이 있다. 홀수 번호의 A측 접점과 짝수 번호의 B측 접점은 하단 행(카드 가장자리에서 1.0~3.5&nbsp;mm)에 있다. 다른 접점은 상단 행(카드 가장자리에서 3.7~6.0&nbsp;mm)에 있다.

생략된 PCI 신호는 다음과 같다.
* −12&nbsp;V 공급 장치
* 세 번째 및 네 번째 인터럽트 요청(INTC#, INTD#)
* JTAG 핀(TRST#, TCK, TMS, TDI, TDO)
* SMBus 핀(SMBCLK, SMBDAT)
* IDSEL 핀; AGP 카드는 내부적으로 AD[16]을 IDSEL에 연결한다.
* 64비트 확장(REQ64#, ACK64#) 및 66&nbsp;MHz(M66EN) 핀
* 잠긴 트랜잭션 지원을 위한 LOCK# 핀

추가된 신호는 다음과 같다.
* 데이터 스트로브 AD_STB[1:0] (및 AGP 2.0의 AD_STB[1:0]#)
* 사이드밴드 주소 버스 SBA[7:0] 및 SB_STB (및 AGP 2.0의 SB_STB#)
* ST[2:0] 상태 신호
* USB+ 및 USB− (및 AGP 2.0의 OVERCNT#)
* PIPE# 신호 (0.8&nbsp;V 신호 전송을 위해 AGP 3.0에서 제거됨)
* RBF# 신호
* TYPEDET#, Vregcg 및 Vreggc 핀 (1.5V 신호 전송을 위한 AGP 2.0)
* DBI_HI 및 DBI_LO 신호 (0.8&nbsp;V 신호 전송 전용 AGP 3.0)
* GC_DET# 및 MB_DET# 핀 (0.8V 신호 전송을 위한 AGP 3.0)
* WBF# 신호 (AGP 3.0 빠른 쓰기 확장)

## 같이 보기
* PCI
* PCI 익스프레스

## 각주

; 내용주


## 외부 링크
* 
* Archived AGP Implementors Forum
* AGP 규격: 1.0, 2.0, 3.0, Pro 1.0, Pro 1.1a

분류:IBM PC 호환기종
분류:메인보드 확장 슬롯
분류:인텔 그래픽스
분류:PCI 버스