===== CPUs ===== Wikipedia has articles on the [[wp>DEC Alpha|Alpha architecture]] and on the [[wp>Alpha 21064|21064]], [[wp>Alpha 21164|21164]], [[wp>Alpha 21264|21264]], [[wp>Alpha 21364|21364]], and [[wp>Alpha 21464|21464]] processors. See also [[hardware:chipsets|Chipsets]]. ==== Linux support ==== Since Linux 6.10, released in July 2024, the kernel requires an EV56 (21164A) or later processor, because it needs the byte/word extension (BWX) to make byte and word stores atomic. [(>[[https://git.kernel.org/torvalds/c/a4184174be36|"alpha: drop pre-EV56 support"]], Linux 6.10)] Current kernels therefore support the EV56 (21164A), the PCA56 and PCA57 (21164PC), all 21264 variants (EV6, EV67, EV68), and the EV7 (21364). The EV4 and EV45 (21064 and 21064A), the LCA4 and LCA45 (21066, 21066A, 21068, and 21068A), and the EV5 (21164) need Linux 6.9 or earlier. Distribution userlands have their own baseline. Debian's GCC has generated EV56 code by default since May 2023, [(>[[https://bugs.debian.org/1036158|Debian bug #1036158]])] so Debian packages need at least a 21164A. Gentoo's Alpha profile sets no ''-mcpu'', so its stages use the compiler's default, the architecture baseline. [(>[[https://gitweb.gentoo.org/repo/gentoo.git/tree/profiles/arch/alpha/make.defaults|profiles/arch/alpha/make.defaults]], gentoo.git)] See [[documentation:toolchains#distribution_baselines|Toolchains: Distribution baselines]]. ==== Names and type codes ==== The consoles report processors by part number rather than by EV name, for example "Alpha 21264A-8 666 MHz" on a DS20E, so the EV name has to be looked up from the part number. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/tru64-unix-managers-mbox/2000-January.mbox#L16570|"SUMMARY: cpu EV revision?"]], Kim Roy, tru64-unix-managers, 13 Jan 2000)] The table maps the processor type codes in Tru64 UNIX's ''cpuconf.h'' to part numbers and EV names, [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/tru64-unix-managers-mbox/2000-March.mbox#L6483|"Displaying system model ID string"]], Alan Davis, tru64-unix-managers, 16 Mar 2000)] with the LCA4 and EV7 codes from the kernel's ''hwrpb.h'', [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/alpha/include/asm/hwrpb.h?h=v7.3-rc1|arch/alpha/include/asm/hwrpb.h]], Linux 7.3)] and gives the GCC ''-mcpu'' value for each. GCC has no separate value for the LCA4, which uses ''ev4'', for the EV68 and EV7, which add no instructions to the EV67, or for the PCA57, which uses ''pca56''. [(>[[https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/config/alpha/alpha.cc|gcc/config/alpha/alpha.cc]], GCC)] ^ Code ^ Name ^ Part ^ GCC ''-mcpu'' ^ Extensions ^ Current kernels ^ | 2 | EV4 | 21064 | ''ev4'' | none | No | | 4 | LCA4 | 21066, 21068 | ''ev4'' | none | No | | 5 | EV5 | 21164 | ''ev5'' | none | No | | 6 | EV45 | 21064A | ''ev45'' | none | No | | 7 | EV56 | 21164A | ''ev56'' | BWX | Yes | | 8 | EV6 | 21264 | ''ev6'' | BWX, MVI, FIX | Yes | | 9, 10 | PCA56, PCA57 | 21164PC | ''pca56'' | BWX, MVI | Yes | | 11 | EV67 | 21264A | ''ev67'' | BWX, MVI, FIX, CIX | Yes | | 12 | EV68CB | 21264C | ''ev67'' | BWX, MVI, FIX, CIX | Yes | | 13 | EV68AL | 21264B | ''ev67'' | BWX, MVI, FIX, CIX | Yes | | 14 | EV68CX | 21264D | ''ev67'' | BWX, MVI, FIX, CIX | Yes | | 15 | EV7 | 21364 | ''ev67'' | BWX, MVI, FIX, CIX | Yes | The Extensions column lists the optional instruction set extensions that GCC enables for each ''-mcpu'' value. [(>[[https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/config/alpha/alpha.cc|gcc/config/alpha/alpha.cc]], GCC)] BWX is the byte/word extension (''ldbu'', ''ldwu'', ''stb'', ''stw'', ''sextb'', ''sextw''), FIX the square-root and floating-point convert extension, CIX the count extension (''ctlz'', ''ctpop'', ''cttz''), and MVI the multimedia extension. [(>{{wiki:documentation:references:alpha_architecture_handbook_v4.pdf?linkonly|Alpha Architecture Handbook, Version 4}}, p. D-3)] Code built for a processor with more extensions does not run on one with fewer; see [[documentation:toolchains#selecting_a_processor|Toolchains: Selecting a processor]] and [[documentation:toolchains#distribution_baselines|Distribution baselines]] for the ''-mcpu'' that distributions build with, and [[documentation:amask|amask]] for checking a running processor. ==== Socket 499 (AlphaPC 164, 164LX, 164UX/BX, Personal Workstation) ==== ^ Manufacturer ^ Part Number ^ Type ^ Frequency ^ | Digital | 21-43918-03 | EV56 | 400 MHz | | Digital | 21-43918-10 | EV56 | 433 MHz | | Digital | 21-43918-35 | EV56 | 533 MHz | | Digital | 21-43918-37 | EV56 | 600 MHz | | Digital | 21-43918-42 | EV56 | 433 MHz | | Digital | 21-43918-44 | EV56 | 500 MHz | | Digital | 21-43918-45 | EV56 | 533 MHz | | Digital | 21-43918-46 | EV56 | 600 MHz | | | 21-43918-S5 | EV56 | 500 MHz | | | 21-43918-S6 | EV56 | 533 MHz | | | 21-43918-S7 | EV56 | 600 MHz | | | 21-43918-S8 | EV56 | 633 MHz | | Samsung | KP21164-466CN | EV56 | 466 MHz | | Samsung | KP21164-500CN | EV56 | 500 MHz | | Samsung | KP21164-533CN | EV56 | 533 MHz | | Samsung | KP21164-566CN | EV56 | 566 MHz | | Samsung | KP21164-600CN | EV56 | 600 MHz | | Samsung | KP21164-633CN | EV56 | 633 MHz | | Samsung | KP21164-667CN | EV56 | 667 MHz | The Samsung part numbers are from Samsung's AlphaPC 164UX/BX manual. [(>{{wiki:hardware:motherboards:pc164ux:pc164ux_windows_nt_user_manual.pdf?linkonly|AlphaPC 164UX/BX Motherboard Windows NT User's Manual}}, Samsung, 1998, p. B-2)] ==== DP264, DS20, DS20E ==== Compaq sold the DS20 and DS20E CPU modules as options ''KN310'' (500 MHz), ''KN311'' (667 MHz), and ''KN312'' (833 MHz). The suffix of the option number gives the operating system the option was sold for: -//x//B for Tru64 UNIX, -//x//C for OpenVMS, and -//x//D for Linux. The table lists the Compaq modules; the AlphaPC 264DP's own 500 MHz daughtercard (21A06-M0) has 2 MiB of cache. [(>{{wiki:hardware:motherboards:pc264dp:pc264dp_data_sheet.pdf?linkonly|AlphaPC 264DP Motherboard Data Sheet}})] ^ Part Number ^ Type ^ Frequency ^ Cache ^ Notes ^ | 54-24758-01 | EV6 | 500 MHz | 4 MiB | | | 54-24758-02 | EV6 | 500 MHz | 4 MiB | | | 54-24758-03 | EV6 | 500 MHz | 4 MiB | revision E06 or later for dual CPU | | 54-24758-05 | EV6 | 500 MHz | 4 MiB | pass 2.3; revision E06 or later for dual CPU | | 54-24758-06 | EV6 | 500 MHz | | | | 54-24758-07 | EV6 | 500 MHz | | | | 54-24758-08 | EV6 | 500 MHz | | | | 54-24758-33 | EV6 | 500 MHz | | revision F06 or later for dual CPU | | 54-24758-35 | EV6 | 500 MHz | 4 MiB | IBM cache; revision F06 or later for dual CPU | | 54-30060-01 | EV67 | 667 MHz | 8 MiB | pass 2.2; IBM/Sony cache | | 54-30060-02 | EV67 | 667 MHz | 8 MiB | pass 2.2.3; IBM/Sony cache | | 54-30060-03 | EV67 | 667 MHz | 8 MiB | pass 2.6; IBM/Sony cache | | 54-30060-04 | EV67 | 667 MHz | 8 MiB | pass 2.6; IBM/Sony cache | | 54-30068-01 | EV67 | 667 MHz | | | | 54-30482-01 | EV68 | 833 MHz | 8 MiB | IBM/Sony cache | | 54-30482-02 | EV68 | 833 MHz | 8 MiB | | On earlier revisions of the 500 MHz modules the second CPU of a dual system could disappear after a power cycle; the revision notes are from Compaq's Information Blitz TD 2690. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/tru64-unix-managers-mbox/1999-August.mbox#L11563|"Summary - DS20 missing processor.."]], Burch Seymour, tru64-unix-managers, 17 Aug 1999)] See [[hardware:systems:goldrush#known_issues|Goldrush]]. ==== Performance notes ==== Alpha has no integer divide instruction; division is a library routine, so division-heavy code runs slowly. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/comp-unix-osf-misc-mbox/googlegroups-1994-January.mbox#L2040|"Re: Optimization on ALPHA OSF1 ??"]], Burkhard Neidecker-Lutz, comp.unix.osf.misc, 27 Jan 1994)] ==== History ==== The 21164 was announced on 7 September 1994 in 266 MHz and 300 MHz versions, as the first Alpha with two levels of on-chip cache. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/biz-digital-announce-mbox/googlegroups-1994-September.mbox#L855|"Press/Digital Microprocessor Posts World Record"]], Digital Press and Analysts News, biz.digital.announce, 7 Sep 1994)] [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/biz-digital-articles-mbox/googlegroups-1994-September.mbox#L7010|"Alpha AXP 21164 Microprocessor -- The World's Fastest Chip"]], Customer Update, biz.digital.articles, 23 Sep 1994)] Faster parts followed, reaching 600 MHz from Digital on 31 March 1997, alongside the ATX form factor [[hardware:motherboards:pc164lx|AlphaPC 164LX]] motherboard; Samsung later sold 633 MHz and 667 MHz parts. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/biz-digital-announce-mbox/googlegroups-1997-April.mbox#L1|"Press/Alpha 21164 Microprocessor Streaks to 600MHz, Sets New Records"]], Digital Press and Analysts News, biz.digital.announce, 2 Apr 1997)] ==== Documentation ==== === 21064 === ^ Document ^ Part number ^ Date ^ | {{wiki:hardware:cpu:21064:21064_21064a_hardware_reference_manual.pdf?linkonly|Alpha 21064 and Alpha 21064A Microprocessors Hardware Reference Manual}} | EC-Q9ZUC-TE | June 1996 | | {{wiki:hardware:cpu:21064:21064a_data_sheet.pdf?linkonly|Alpha 21064A Microprocessors Data Sheet}} | EC-QFGKC-TE | January 1996 | | {{wiki:hardware:cpu:21064:21064-aa_preliminary_data_sheet_1992.pdf?linkonly|DECchip 21064-AA RISC Microprocessor Preliminary Data Sheet}} | | April 1992 | | {{wiki:hardware:cpu:21064:21064-aa_product_brief_1992.pdf?linkonly|DECchip 21064-AA Microprocessor Product Brief}} | | July 1992 | | {{wiki:hardware:cpu:21064:21064_fact_sheet.pdf?linkonly|Digital Equipment Corporation Fact Sheet: 21064 150 MHz Microprocessor}} | | | | {{wiki:hardware:cpu:21064:introduction_to_designing_a_system_with_21064.pdf?linkonly|Introduction to Designing a System with the DECchip 21064 Microprocessor, Revision 1.0}} | | April 1992 | | {{wiki:hardware:cpu:21064:ev3_ev4_specification_v2.0.pdf?linkonly|EV3 and EV4 Specification, DC227 and DC228, Version 2.0}} | | May 1991 | === 21066 === ^ Document ^ Part number ^ Date ^ | {{wiki:hardware:cpu:21066:21066_21066a_data_sheet.pdf?linkonly|Alpha 21066 and Alpha 21066A Microprocessors Data Sheet}} | EC-QC4HB-TE | December 1995 | | {{wiki:hardware:cpu:21066:21066_21066a_hardware_reference_manual.pdf?linkonly|Alpha 21066 and Alpha 21066A Microprocessors Hardware Reference Manual}} | EC-QC4GB-TE | January 1996 | === 21164 === ^ Document ^ Part number ^ Date ^ | {{wiki:hardware:cpu:21164:21164_hardware_reference_manual.pdf?linkonly|Alpha 21164 Microprocessor Hardware Reference Manual}} | EC-QAEQD-TE | July 1996 | | {{wiki:hardware:cpu:21164:21164_366-600_hardware_reference_manual.pdf?linkonly|Alpha 21164 Microprocessor Hardware Reference Manual}} | EC-QP99C-TE | December 1998 | | {{wiki:hardware:cpu:21164:21164_366-600_hardware_reference_manual_preliminary_1997.pdf?linkonly|21164 Alpha Microprocessor Hardware Reference Manual, Preliminary}} | EC-QP99B-TE | February 1997 | | {{wiki:hardware:cpu:21164:21164_hardware_reference_manual_preliminary_1994.pdf?linkonly|Alpha 21164 Microprocessor Hardware Reference Manual, Preliminary}} | EC-QAEQA-TE | September 1994 | | {{wiki:hardware:cpu:21164:21164_data_sheet.pdf?linkonly|Alpha 21164 Microprocessor Data Sheet}} | EC-QAEPD-TE | July 1996 | | {{wiki:hardware:cpu:21164:21164_366-600_data_sheet.pdf?linkonly|Alpha 21164 Microprocessor Data Sheet}} | EC-QP98C-TE | August 1998 | | {{wiki:hardware:cpu:21164:21164_product_brief_1995.pdf?linkonly|Digital Semiconductor Alpha 21164 Microprocessor Product Brief}} | EC-QAENB-TE | March 1995 | | {{wiki:hardware:cpu:21164:21164_product_brief.pdf?linkonly|21164 Alpha Microprocessor Product Brief}} | EC-QP97D-TE | March 1997 | | {{wiki:hardware:cpu:21164:ev5_functional_specification_rev_1.9_partial.pdf?linkonly|DECchip 21164-AA (EV5 CPU) Functional Specification, Revision 1.9}} (partial scan, chapters 1 to 11) | | December 1992 | | {{wiki:hardware:cpu:21164:ev5_functional_specification_rev_1.9.pdf?linkonly|DECchip 21164-AA (EV5 CPU) Functional Specification, Revision 1.9}} | | December 1992 | | {{wiki:hardware:cpu:21164:ev5_internal_specification_rev_0.0.pdf?linkonly|EV5 CPU Chip Internal Specification, Revision 0.0}} | | February 1992 | | {{wiki:hardware:cpu:21164:21164_microarchitecture_overview.pdf?linkonly|An Overview of the Alpha AXP 21164 Microarchitecture (John Edmondson and Paul Rubinfeld)}} | | | === 21164PC === ^ Document ^ Part number ^ Date ^ | {{wiki:hardware:cpu:21164pc:21164pc_data_sheet.pdf?linkonly|Alpha 21164PC Microprocessor Data Sheet}} | EC-R2W1A-TE | September 1997 | | {{wiki:hardware:cpu:21164pc:21164pc_product_brief.pdf?linkonly|Alpha 21164PC Microprocessor Product Brief}} | EC-R2W2B-TE | June 1997 | | {{wiki:hardware:cpu:21164pc:21164pc_hardware_reference_manual.pdf?linkonly|Digital Semiconductor Alpha 21164PC Microprocessor Hardware Reference Manual (Preliminary)}} | EC-R2W0A-TE | September 1997 | | {{wiki:hardware:cpu:21164pc:21164pc_0.28um_hardware_reference_manual.pdf?linkonly|Alpha 21164PC (.28 um) Microprocessor Hardware Reference Manual}} | EC-RADPA-TE | December 1998 | === 21264 === ^ Document ^ Part number ^ Date ^ | {{wiki:hardware:cpu:21264:21264_data_sheet.pdf?linkonly|Alpha 21264 Microprocessor Data Sheet, Revision 1.0}} | EC-R4CFA-TE | February 1999 | | {{wiki:hardware:cpu:21264:21264_product_brief.pdf?linkonly|Alpha 21264 Microprocessor Product Brief}} | EC-R2YTB-TE | September 1998 | | {{wiki:hardware:cpu:21264:21264_hardware_reference_manual.pdf?linkonly|Alpha 21264 Microprocessor Hardware Reference Manual}} | EC-RJRZA-TE | July 1999 | | {{wiki:hardware:cpu:21264:21264_ev6_hardware_reference_manual.pdf?linkonly|Alpha 21264/EV6 Microprocessor Hardware Reference Manual}} | DS-0027C-TE | March 2002 | | {{wiki:hardware:cpu:21264:21264_ev67_hardware_reference_manual.pdf?linkonly|Alpha 21264/EV67 Microprocessor Hardware Reference Manual}} | DS-0028C-TE | March 2002 | | {{wiki:hardware:cpu:21264:21264_ev68a_hardware_reference_manual.pdf?linkonly|21264/EV68A Microprocessor Hardware Reference Manual}} | DS-0038B-TE | March 2002 | | {{wiki:hardware:cpu:21264:21264_ev68cb_ev68dc_hardware_reference_manual.pdf?linkonly|21264/EV68CB and 21264/EV68DC Hardware Reference Manual, Revision 1.2}} | DS-0031C-TE | May 2002 | | {{wiki:hardware:cpu:21264:21264_compiler_writers_guide.pdf?linkonly|Compiler Writer's Guide for the Alpha 21264}} | EC-RJ66A-TE | June 1999 | | {{wiki:hardware:cpu:21264:ev6_specification_rev_2.0.pdf?linkonly|EV6 Specification, Revision 2.0}} | | April 1996 | | {{wiki:hardware:cpu:21264:21264a_specifications_rev_1.1.pdf?linkonly|21264A Specifications, Revision 1.1}} | DS-0014B-TE | May 1999 | | {{wiki:hardware:cpu:21264:21264_microprocessor_architecture.pdf?linkonly|The Alpha 21264 Microprocessor Architecture}} | | | | {{wiki:hardware:cpu:21264:21264_ieee_micro_article.pdf?linkonly|The Alpha 21264 Microprocessor (R. E. Kessler), IEEE Micro}} | | March 1999 | | {{wiki:hardware:cpu:21264:21264_compcon_97_paper.pdf?linkonly|The Alpha 21264: A 500 MHz Out-of-Order Execution Microprocessor (Daniel Leibholz and Rahul Razdan), Compcon '97}} | | February 1997 | | {{wiki:hardware:cpu:21264:21264_keller_presentation.pdf?linkonly|21264 presentation (Jim Keller, Digital Semiconductor)}} | | | | {{wiki:hardware:cpu:21264_21364_compiler_writers_guide.pdf?linkonly|Compiler Writer's Guide for the 21264/21364}} | EC-0100A-TE | January 2002 | === 21464 === ^ Document ^ Part number ^ Date ^ | {{wiki:hardware:cpu:21464:21464_internal_design_specification_rev_1.1k.pdf?linkonly|21464 Internal Design Specification, Revision 1.1k}} | | January 2001 | {{tag>hardware}}