나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2026-10-07 10:04:50

Alpha 21264




파일:관련 문서 아이콘.svg   관련 문서: DEC Alpha
#!if 문서명2 != null
, [[]]
#!if 문서명3 != null
, [[]]
#!if 문서명4 != null
, [[]]
#!if 문서명5 != null
, [[]]
#!if 문서명6 != null
, [[]]


1. 개요2. 특징3. 상세
3.1. 프론트엔드
3.1.1. 분기 예측3.1.2. 명령어 인출
3.2. 리네이밍3.3. 백엔드
3.3.1. 정수 유닛3.3.2. 부동소수점 유닛
3.4. 메모리 서브시스템
4. 기타5. 관련 문서

1. 개요

DEC이 설계한 64비트 Alpha의 세 번째 CPU 시리즈. 1996년 공개되어 1998년 출시되었으며, 출시 당시에는 DEC을 인수한 컴팩의 제품으로 공급되었다.

개발 코드명은 EV6으로, Alpha 계열에서 처음으로 비순차적 실행을 도입하여 출시 시점에 SPECint95 및 SPECfp95 모두 단일 프로세서 최고 성적을 경신하였다.

짐 켈러, AMD의 전 CEO 더크 메이어 등이 설계에 참여하였다.

2. 특징

DEC Alpha 특유의 도미노 로직을 사용한 혁신적인 커스텀 회로 설계로 당대 최고 수준의 클럭을 달성하였으며, 최고 클럭 타이틀은 이후 인텔 펜티엄III 시리즈와 AMD 애슬론 시리즈가 DEC 대비 1-2세대 앞선 0.18μm 공정에서 경쟁적으로 클럭 속도를 높이던 1999년 하반기에 깨지게 된다.

클럭 당 성능 또한 넓은 4-wide 슈퍼스칼라 파이프라인 구조를 바탕으로 비순차적 실행 및 당대 최신 추측 실행 기법들을 파격적으로 도입하여 MIPS R10000을 제쳤고, 이후 x86 진영은 이 수준의 클럭 당 성능을 2003년 들어 K8 및 펜티엄 M이 나오고 나서야 달성하게 되었다.

파일:HC10-EV6-02.png

3. 상세

파일:HC10-EV6-03.png

높은 클럭 속도와 높은 클럭 당 성능을 모두 달성하기 위해 정교한 설계가 이뤄졌다.

3.1. 프론트엔드

파일:HC10-EV6-05.png

3.1.1. 분기 예측

파일:HC10-EV6-08.png

당대 최고 수준의 정교한 분기 예측기를 구현하였다. 단, 어디까지나 당대 수준에서 최고로 2010년대 이후 고성능 프로세서에 적용된 TAGE 방식 분기 예측에 비하면 원시적인 편이다.

당시 일반적으로 사용되던 지역(local) 예측기 및 전역(global) 예측기는 상황에 따라 한쪽이 완전히 우월하지는 않았기 때문에 두 예측기를 나란히 두고, 각 분기에 대해 어느 예측기가 더 정확한지 확인해 토너먼트처럼 나은 쪽을 고르는 추가 예측기를 합쳐 정확도를 높였다.

3.1.2. 명령어 인출

파일:HC10-EV6-06.png

분기 명령어 인출 후 바로 다음 사이클에 연속으로 인출이 가능하도록 (zero-bubble) 명령어 캐시의 각 블록마다 분기 명령어의 목적지를 포함하는 블록의 주소를 저장하였다. MIPS R10000 및 인텔 P6 마이크로아키텍처는 분기 명령어 직후 1 사이클 동안 유효한 명령어가 인출되지 않는 공백이 발생한다.

3.2. 리네이밍

파일:HC10-EV6-11.png

21264의 매퍼는 물리 레지스터마다 대응하는 아키텍처 레지스터 이름과 현재 매핑 여부를 기록하는 CAM을 사용한다. 여기에는 매핑 복구에 필요한 정보를 해당하는 과거 시점의 매핑 여부 비트(총 80비트)로 줄여주는 이점이 있다.

이는 21264가 공격적인 추측 실행 기법을 도입하면서도 예측 실패 시 복구를 빠르게 하기 위한 설계 결정으로, 빠른 복구를 위해 완료 처리가 되지 않은 모든 명령어에 대해 복구용 체크포인트를 찍었기 때문에 CAM 회로의 비용을 감수한 것이다.

참고로 최근의 고성능 마이크로아키텍처는 분기 예측 실패시 파이프라인 길이가 10단계 이상으로 깊기 때문에 복구를 지나치게 빠르게 할 필요가 없어 가장 가까운 체크포인트를 기준으로 사이클당 몇 개씩 되감는 방식으로 복원용 데이터를 절감한다.

3.3. 백엔드

3.3.1. 정수 유닛


실행 파이프는 총 4개이며 2개 클러스터로 분할된 구조이다. 정수 레지스터 파일의 크기는 80 엔트리이다.

MIPS R10000처럼 레지스터 파일 하나가 4개 실행 파이프에 연결되어 대칭적으로 포워딩이 가능한 구조의 경우 (8R6W, 총 14포트) 회로의 지연 시간이 길어지기 때문에 정수 실행부를 2개의 클러스터로 쪼개 각 클러스터당 80 엔트리 레지스터 파일 (4R6W, 총 10포트) 및 2개의 실행 파이프가 배치되었다.

클러스터 간 포워딩에는 추가 1사이클이 소요되며, 두 클러스터의 레지스터 파일은 클러스터 간에 1사이클 차이로 동기화되는 서로의 복사본 관계이다.

별도의 주소 생성 유닛 대신 ALU가 주소 생성을 담당한다.

3.3.2. 부동소수점 유닛

실행 파이프는 총 2개이며, 부동소수점 레지스터 파일의 크기는 72 엔트리이다.

덧셈 유닛 1개와 곱셈 유닛 1개가 있으며, 두 유닛은 각각 파이프라인 구조로 매 사이클 새 명령어를 받을 수 있다.

나눗셈/제곱근 연산은 덧셈 파이프에서 반복 연산으로 처리된다.

3.4. 메모리 서브시스템


4. 기타

5. 관련 문서