알파 21464
알파 21464(Alpha 21464)는 디지털 이큅먼트 코퍼레이션이 개발하고 나중에 컴팩이 인수한 후 컴팩이 개발한 알파 명령어 집합 (ISA)을 구현하는 미완성 마이크로프로세서이다. 이 마이크로프로세서는 EV8 (코드명 아라냐)로도 알려져 있었다. 2004년 출시 예정이었으나, 2001년 6월 25일 컴팩이 2004년까지 알파를 단종하고 아이테니엄으로 전환할 것이라고 발표하면서 취소되었다. 취소 당시 알파 21464는 개발 막바지 단계에 있었지만 테이프 아웃되지는 않았다.[1][2]
21464의 기원은 1990년대 중반, 컴퓨터 과학자 조엘 에머가 워싱턴 대학교의 딘 털슨의 동시 멀티스레딩 (SMT) 연구에 영감을 받으면서 시작되었다. 에머는 1990년대 후반에 이 기술을 연구했고 그 가치를 확신하게 되자 이를 홍보하기 시작했다. 컴팩은 1999년 10월 마이크로프로세서 포럼 1999에서 다음 알파 마이크로프로세서가 SMT를 사용할 것이라고 발표했다.[3] 당시 알파 21464를 사용하는 시스템은 2003년에 출시될 것으로 예상되었다.[3]
설명
이 마이크로프로세서는 8-이슈 슈퍼스칼라 설계로, 비순차적 명령어 처리, 4방향 SMT 및 깊은 파이프라인을 특징으로 한다. 64KB의 2-방향 세트 연관 명령어 캐시에서 16개의 명령어를 가져온다. 분기 예측기는 "좋은" 명령어를 선택하여 collapsing 버퍼에 입력한다. (이를 통해 분기 발생 밀도에 따라 사이클당 최대 16개의 명령어 페치 대역폭을 얻을 수 있었다.) 프런트엔드는 이전 알파 구현보다 훨씬 많은 단계를 가졌고, 그 결과 21464는 최소 분기 예측 실패 페널티가 14사이클로 상당히 컸다.[1] 이 마이크로프로세서는 이러한 값비싼 페널티를 최소화하기 위해 고급 분기 예측 알고리즘을 사용했다.
SMT를 구현하려면 프로그램 카운터와 같은 특정 자원의 복제가 필요했다. 하나의 프로그램 카운터 대신 각 스레드에 하나씩 4개의 프로그램 카운터가 있었다. 그러나 SMT 지원을 위해 프런트엔드 이후의 로직은 거의 확장할 필요가 없었다. 레지스터 파일은 512개의 항목을 포함했지만, 그 크기는 SMT가 아닌 최대 처리 중인 명령어 수에 의해 결정되었다. 회로의 물리적 크기 때문에 레지스터 파일에 접근하려면 3단계의 파이프라인이 필요했다. 4개의 스레드에서 최대 8개의 명령어를 매 사이클마다 8개의 정수 및 4개의 부동 소수점 실행 장치로 디스패치할 수 있었다. 21464는 이중 포팅을 지원하기 위해 8개의 뱅크로 구성된 64KB 데이터 캐시(Dcache)를 가지고 있었다. 이는 온다이 3MB, 6-방향 세트 연관 통합 보조 캐시(Scache)에 의해 지원되었다.
정수 실행 장치는 새로운 구조인 레지스터 캐시를 활용했다. 레지스터 캐시는 (일부 보고서에서 주장했듯이) 3틱 레지스터 파일 지연 시간을 완화하기 위한 것이 아니라, 피연산자 우회 관리의 복잡성을 줄이기 위한 것이었다. 레지스터 캐시는 이전 N 사이클 동안 ALU 및 로드 파이프에 의해 생성된 모든 결과를 저장했다. (N은 약 8 정도였다.) 레지스터 캐시 구조는 이전 프로세서가 분산형 멀티플렉서로 구현했던 것을 아키텍처적으로 재라벨링한 것이었다.
시스템 인터페이스는 알파 21364와 유사했다. 10개의 RDRAM 채널을 제공하는 통합 메모리 컨트롤러가 있었다. 다중 처리는 다른 21464에 링크를 제공하는 라우터를 통해 용이해졌으며, 글루 로직 없이 512-방향 다중 처리를 아키텍처적으로 지원했다.
0.125μm (때로는 0.13μm로 언급됨) 상보형 금속 산화물 반도체(CMOS) 공정으로 구현될 예정이었으며, 7개 층의 구리 인터커넥트, 부분 고갈 실리콘 온 인슐레이터(PD-SOI), 저유전율 유전체를 사용했다. 트랜지스터 수는 2억 5천만 개, 다이 크기는 420mm2로 추정되었다.[2][4]
타란튤라
타란튤라는 고려 중인 알파 아키텍처의 확장과 이 확장을 구현한 알파 21464의 파생 제품에 대한 코드명이었다. 21464가 완성되기 전, 어떤 구현 작업도 시작되기 전에 개발 중에 취소되었다. 이 확장은 알파에 벡터 처리 기능을 제공하기 위한 것이었다. 이는 32개의 64x128비트 (8,192비트 또는 1KB) 벡터 레지스터, 약 50개의 벡터 명령어, 그리고 벡터 레지스터로 데이터를 이동하거나 이동하는 데 사용되는 불특정 개수의 명령어를 지정했다. 다른 EV8 후속 후보로는 두 개의 EV8 코어와 4.0GHz 작동 주파수를 갖춘 멀티코어 설계가 있었다.
내용주
각주
- Diefendorff, Keith (1999년 12월 6일). 《Compaq Chooses SMT for Alpha: Simultaneous Multithreading Exploits Instruction- and Thread-Level Parallelism》. 《마이크로프로세서 리포트》 13. ISSN 0899-9341.
- Emer, Joel (1999). 《Simultaneous Multithreading: Multiplying Alpha Performance》. Proceedings of Microprocessor Forum 1999. CiteSeerX 10.1.1.467.2597.
- Espasa, R.; Ardanaz, F.; Emer, J.; Felix, S.; Gago, J.; Gramunt, R.; Hernandez, I.; Juan, T.; Lowney, G.; Mattina, M.; Seznec, A. (2002). 〈Tarantula: a vector extension to the alpha architecture〉. 《Proceedings of the 29th IEEE-ACM International Symposium on Computer Architecture》. IEEE. 281–292쪽. doi:10.1109/ISCA.2002.1003586. ISBN 978-0-7695-1605-9. S2CID 11487071.
- Preston, R.P.; Badeau, R.W.; Bailey, D.W.; Bell, S.L.; Biro, L.L.; Bowhill, W.J.; Dever, D.E.; Felix, S.; Gammack, R.; Germini, V.; Gowan, M.K.; Gronowski, P.; Jackson, D.B.; Mehta, S.; Morton, S.V.; Pickholtz, J.D.; Reilly, M.H.; Smith, M.J. (2002). 〈Design of an 8-wide superscalar RISC microprocessor with simultaneous multithreading〉. 《2002 IEEE International Solid-State Circuits Conference》. 266–500쪽. doi:10.1109/ISSCC.2002.993068. ISBN 978-0-7803-7335-8. S2CID 44580305.
- Seznec, A.; Felix, S.; Krishnan, V.; Sazeides, Y. (2002). 〈Design Tradeoffs for the Alpha EV8 Conditional Branch Predictor〉. 《Proceedings of the 29th IEEE-ACM International Symposium on Computer Architecture》. IEEE. 295–306쪽. doi:10.1109/ISCA.2002.1003587. ISBN 978-0-7695-1605-9. S2CID 65324.
더 읽어보기
- 《Alpha 21464 Targets 1.7 GHz in 2003》. 《마이크로프로세서 리포트》 13. 1999년 12월 6일. ISSN 0899-9341.
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- DEC의 마이크로프로세서
- 슈퍼스칼라 마이크로프로세서