Digital Semiconductor Alpha 21064 and Alpha 21064A Microprocessors Hardware Reference Manual
Total Page:16
File Type:pdf, Size:1020Kb
Digital Semiconductor Alpha 21064 and Alpha 21064A Microprocessors Hardware Reference Manual Order Number: EC–Q9ZUC–TE Abstract: This document contains information about the following Alpha microprocessors: 21064-150, 21064-166, 21064-200, 21064A-200, 21064A-233, 21064A-275, 21064A-275-PC, and 21064A-300. Revision/Update Information: This manual supersedes the Alpha 21064 and Alpha 21064A Microprocessors Hard- ware Reference Manual (EC–Q9ZUB–TE). Digital Equipment Corporation Maynard, Massachusetts June 1996 While Digital believes the information included in this publication is correct as of the date of publication, it is subject to change without notice. Digital Equipment Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description. © Digital Equipment Corporation 1996. All rights reserved. Printed in U.S.A. AlphaGeneration, Digital, Digital Semiconductor, OpenVMS, VAX, VAX DOCUMENT, the AlphaGeneration design mark, and the DIGITAL logo are trademarks of Digital Equipment Corporation. Digital Semiconductor is a Digital Equipment Corporation business. GRAFOIL is a registered trademark of Union Carbide Corporation. Windows NT is a trademark of Microsoft Corporation. All other trademarks and registered trademarks are the property of their respective owners. This document was prepared using VAX DOCUMENT Version 2.1. Contents Preface ..................................................... xix 1 Introduction to the 21064/21064A 1.1 Introduction ......................................... 1–1 1.2 The Architecture . ................................... 1–1 1.3 Chip Features ....................................... 1–2 1.4 Backward Compatibility ................................ 1–4 1.5 Section 1.5 21064A-275-PC Differences . ................... 1–4 2 Internal Architecture 2.1 Introduction ......................................... 2–1 2.2 21064/21064A Overview ................................ 2–3 2.3 Ibox ............................................... 2–4 2.3.1 Branch Prediction Logic . ........................... 2–5 2.3.1.1 21064 Branch Prediction Logic . ................... 2–5 2.3.1.2 21064A Branch Prediction Logic ................... 2–5 2.3.1.3 21064/21064A Subroutine Return Stack . .......... 2–6 2.3.2 Instruction Translation Buffers (ITBs) .................. 2–6 2.3.3 Interrupt Logic . ................................... 2–7 2.3.4 Performance Counters . ........................... 2–8 2.4 Ebox ............................................... 2–10 2.5 Abox ............................................... 2–10 2.5.1 Data Translation Buffer (DTB) ....................... 2–10 2.5.2 Bus Interface Unit (BIU) . ........................... 2–12 2.5.3 Load Silos ....................................... 2–12 2.5.4 Write Buffer . ................................... 2–13 2.6 Fbox ............................................... 2–15 2.6.1 Fbox Exception Handling . ........................... 2–16 2.7 IEEE Floating-Point Conformance ........................ 2–19 2.8 Cache Organization ................................... 2–22 iii 2.8.1 21064/21064A Instruction Cache (Icache) ............... 2–22 2.8.1.1 21064 Instruction Cache (Icache) . ................ 2–22 2.8.1.2 21064A Instruction Cache (Icache) . ................ 2–22 2.8.1.3 21064/21064A Icache Stream Buffer ................ 2–22 2.8.2 21064/21064A Data Cache (Dcache) .................... 2–23 2.8.2.1 21064 Data Cache (Dcache) ....................... 2–23 2.8.2.2 21064A Data Cache (Dcache) ...................... 2–23 2.9 Pipeline Organization . ................................ 2–23 2.9.1 Static and Dynamic Stages . ........................ 2–25 2.9.2 Aborts . ........................................ 2–25 2.9.3 Non-Issue Conditions............................... 2–26 2.10 Scheduling and Issuing Rules . ........................ 2–27 2.10.1 Instruction Class Definition . ........................ 2–27 2.10.2 Producer-Consumer Latency . ........................ 2–28 2.10.3 Producer-Producer Latency . ........................ 2–30 2.10.4 Instruction Issue Rules ............................. 2–30 2.10.5 Dual Issue Table . ................................ 2–31 2.11 PALcode ............................................ 2–34 2.11.1 Architecturally Reserved PALcode Instructions ........... 2–34 3 Instruction Set 3.1 Scope .............................................. 3–1 3.1.1 Instruction Summary ............................... 3–1 3.1.2 IEEE Floating-Point Instructions ...................... 3–7 3.1.3 VAX Floating-Point Instructions ...................... 3–9 3.1.4 Required PALcode Function Codes ..................... 3–10 3.1.5 Opcodes Reserved for PALcode ........................ 3–10 3.1.6 Opcodes Reserved for Digital . ........................ 3–10 4 Privileged Architecture Library Code 4.1 Introduction . ........................................ 4–1 4.2 PALcode ............................................ 4–1 4.3 PALmode Environment ................................ 4–2 4.4 Invoking PALcode .................................... 4–3 4.4.1 CALL_PAL Instruction .............................. 4–5 4.5 PALcode Entry Points . ................................ 4–6 4.6 PALmode Restrictions . ................................ 4–9 4.7 Memory Management . ................................ 4–16 4.7.1 TB Miss Flows .................................... 4–16 4.7.1.1 ITB Miss ..................................... 4–16 4.7.1.2 DTB Miss .................................... 4–18 iv 4.8 21064/21064A Implementation of the Architecturally Reserved Opcodes Instructions .................................. 4–19 4.8.1 HW_MFPR and HW_MTPR Instructions ................ 4–20 4.8.2 HW_LD and HW_ST Instructions . ................... 4–23 4.8.3 HW_REI Instruction ............................... 4–24 4.8.4 Required PALcode Instructions ....................... 4–25 5 Internal Processor Registers 5.1 Introduction ......................................... 5–1 5.2 Ibox Internal Processor Registers ......................... 5–1 5.2.1 Translation Buffer Tag Register (TB_TAG) .............. 5–1 5.2.2 Instruction Translation Buffer Page Table Entry Register (ITB_PTE) ....................................... 5–2 5.2.3 Instruction Cache Control and Status Register (ICCSR) . 5–3 5.2.3.1 Performance Counters ........................... 5–6 5.2.4 Instruction Translation Buffer Page Table Entry Temporary Register (ITB_PTE_TEMP) .......................... 5–8 5.2.5 Exceptions Address Register (EXC_ADDR) .............. 5–9 5.2.6 Clear Serial Line Interrupt Register (SL_CLR) . .......... 5–10 5.2.7 Serial Line Receive Register (SL_RCV) ................. 5–11 5.2.8 Instruction Translation Buffer ZAP Register (ITBZAP) . 5–11 5.2.9 Instruction Translation Buffer ASM Register (ITBASM) . 5–12 5.2.10 Instruction Translation Buffer IS Register (ITBIS) ........ 5–12 5.2.11 Processor Status Register (PS) ........................ 5–12 5.2.12 Exception Summary Register (EXC_SUM) ............... 5–12 5.2.13 PAL_BASE Address Register (PAL_BASE) .............. 5–14 5.2.14 Hardware Interrupt Request Register (HIRR) . .......... 5–14 5.2.15 Software Interrupt Request Register (SIRR) . .......... 5–16 5.2.16 Asynchronous Trap Request Register (ASTRR) . .......... 5–17 5.2.17 Hardware Interrupt Enable Register (HIER) . .......... 5–18 5.2.18 Software Interrupt Enable Register (SIER) .............. 5–19 5.2.19 AST Interrupt Enable Register (ASTER) ................ 5–20 5.2.20 Serial Line Transmit Register (SL_XMIT) ............... 5–20 5.3 Abox Internal Processor Registers ........................ 5–21 5.3.1 Translation Buffer Control Register (TB_CTL) . .......... 5–21 5.3.2 Data Translation Buffer Page Table Entry Register (DTB_PTE) ....................................... 5–21 5.3.3 Data Translation Buffer Page Table Entry Temporary Register (DTB_PTE_TEMP) .......................... 5–22 5.3.4 Memory Management Control and Status Register (MM_CSR) ....................................... 5–23 5.3.5 Virtual Address Register (VA) ........................ 5–24 v 5.3.6 Data Translation Buffer ZAP Register (DTBZAP) . ....... 5–24 5.3.7 Data Translation Buffer ASM Register (DTBASM) . ....... 5–24 5.3.8 Data Translation Buffer Invalidate Single Register (DTBIS) . ........................................ 5–24 5.3.9 Flush Instruction Cache Register (FLUSH_IC) ........... 5–24 5.3.10 Flush Instruction Cache ASM Register (FLUSH_IC_ASM) . ................................ 5–24 5.3.11 Abox Control Register (ABOX_CTL) . ................ 5–24 5.3.12 Alternate Processor Mode Register (ALT_MODE) . ....... 5–28 5.3.13 Cycle Counter Register (CC) . ........................ 5–28 5.3.14 Cycle Counter Control Register (CC_CTL) ............... 5–29 5.3.15 Bus Interface Unit Control Register (BIU_CTL) . ....... 5–30 5.3.16 Data Cache Status Register (DC_STAT—21064 Only) ...... 5–35 5.3.17 Cache Status Register (C_STAT, 21064A Only) ........... 5–35 5.3.18 Bus Interface Unit Status Register (BIU_STAT) . ....... 5–36 5.3.19 Bus Interface Unit Address Register (BIU_ADDR) . ....... 5–39 5.3.20 Fill Address Register (FILL_ADDR) .................... 5–40 5.3.21 Fill Syndrome Register (FILL_SYNDROME) ............. 5–41 5.3.22 Backup Cache Tag Register (BC_TAG) . ................ 5–43 5.4 PAL_TEMP Registers . ...............................