Digital Semiconductor
Alpha 21164PC Microprocessor
Hardware Reference Manual
Order Number: EC–R2W0A–TE
Revision/Update Information: This is a preliminary document.
Preliminary
Digital Equipment Corporation
Maynard, Massachusetts
http://www.digital.com/semiconductor
September 1997
While DIGITAL believes the informa ti on included in this pub li cation is correct as of the date of publication, it is
subject to chang e without notice.
Digital Equipment Corpora ti on makes no representations that the use of its products in the manner de scri bed in this
publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication
imply the granting of li ce nses to make, use, or sell equipm e n t or software in accordance with the description.
DIGITAL, Digital Semiconductor, OpenVMS, VAX, the AlphaGeneration design mark, and the DIGITAL logo ar e
trademarks of Digital Equipment Corporation.
Digital Semiconducto r is a Digital Equipment Corporation business.
GRAFOIL is a registered trademark of Union Carbide Corporation.
IEEE is a registered trademark of The Institute of Ele ct rical and Electronics Eng ine ers, Inc.
Windows NT is a trademark of Microsoft Corp oration.
All other trademarks and registe re d trademarks are the property of t heir respective owners.
9–12BiSt Timing for Some System Clock Ratios, Port Mode=Normal (System Cycles)9-18
9–13BiSt Timing for Some System Clock Ratios, Port Mode=Normal (CPU Cycles). .9-18
9–14SROM Load Timing for Some System Clock Ratios (System Cycles) . . . . . . . . .9-19
9–15SROM Load Timing for Some System Clock Ratios (CPU Cycles) . . . . . . . . . . .9-19
This manual provides information about the architecture, internal design, external
interface, and speci f ica ti ons of the Digital Semiconduct or Al pha 21164PC microprocessor (referred to as the 21164PC) and its associated software.
Audience
This reference manual is for system designers and programmers who use the
21164PC.
Manual Organization
This manual includes the following chapters and appendixes, and an index.
•Chapter 1, Introduction, introduces the 21164PC and provides an overview of
the Alpha architecture.
•Chapter 2, Internal Architec ture, describes the major hardware funct ions and the
internal chip architecture. It describes performance measurement facilities, coding rules, and design examples.
•Chapter 3, H ardware Interface, lists and describes the external hard ware inter-
face signals.
Preface
•Chapter 4, Clo cks, Cache, and External Interface, describes the e xternal bus
functions and transactions, lists bus commands, and describes the clock functions.
•Chapter 5, Internal Pro cessor Reg isters, lists and de scribes the 21164PC internal
processor register set.
•Chapter 6, Privileged Architecture Library Code, describes the privileged archi-
tecture library code (PALcode).
29 September 1997 – Subject To Change
xvii
•Chapter 7, Initialization and Configuration, describes the initialization and con-
figuration sequence.
•Chapter 8, Error Detection and Error Handling, describes error detection and
error handling.
•Chapter 9, Electri cal Data, p rovide s electr ical dat a and descr ibes sign al int egrity
issues.
•Chapter 10, Thermal Management, pr ovides infor mation abou t ther mal manage -
ment.
•Chapter 11, Mechanical Packaging Information, provides mechanical data and
packaging information, including signal pin lists.
•Chapter 12, Testability and Diagn ostics, describes chip and system t estability
features.
•Appendix A, Alpha Instruction Set, summarizes the Alpha instruction set.
•Appendix B, 21164PC Microprocessor Specifications, summarizes the
21164PC specifications.
•Appendix C, Serial Icache Load Predecode Values, provides a C code example
that calculates the predecode values of a serial Icache load.
•Appendix D, Errata Sheet, lists changes and revisions to this manual.
xviii
•Appendix E, Support, Products, and Documentation, provides phone numbers
for support and lists rela ted DIGITAL and third-party publications with order
information .
•The Glossary lists and defines terms associated with the 21164PC.
The companion volume to this manual, the Alpha AXP Architecture Reference Manual, contains the Alpha architecture information.
29 September 1997 – Subject To Change
Conventions
This section defines product-specific terminology, abbreviations, and other conventions used throughout this manual.
Abbreviations
Binary Multiples
•
The abbreviations K, M, and G (kilo, mega , and giga ) repr esent b inary mul tipl es
and have the following values.
K
M
G
10
=2
20
=2
30
=2
(1024)
(1,048,576)
(1,073,741,824)
For example:
2KB=2 kilobytes
4MB=4 megabytes
8GB=8 gigabyte s
•Register Access
=2 × 2
=4 × 2
=8 × 2
10
20
30
bytes
bytes
bytes
The abbreviations used to indicate the type of access to register fields and bits
have the following definit io ns:
IGN — Ignore
Register bits specified as IGN are ignored when written and are UNPRE-
DICTABLE when read if not otherwise specified.
MBZ — Must Be Zero
Software must never place a nonzero value in bits and fields specified as
MBZ. Reads return unpredictable values. Such fields are reser ved for future
use.
RAO — Read As One
Register bits specified as RAO return a 1 when read.
RAZ — Read As Zero
Register bits specified as RAZ return a 0 when read.
29 September 1997 – Subject To Change
xix
RC — Read To Clear
A register field specifie d as RC is writte n by hardware and remains
unchanged until read. The value may be read by software, at which point,
hardware may write a new value into the field.
RES — Reserved
Bits and fields specified as RES are reserved by Digital Semiconductor and
should not be used; however, zeros can be written to r eserve d field s that can not be masked.
RO — Read Only
Bits and fields specified as RO can be read and are ignored (not written) on
writes.
RW — Read/Write
Bits and fields specified as RW can be read and written.
W0C — Write Zero to Clear
Bits and fields s pecif ied as W0C can be rea d. Writing a zero clears these bits
for the duration of the write; writing a one has no effect.
W1C — Write One to Clear
Bits and fields specifi ed as W1C ca n be read. Writ i ng a one cl ea rs thes e bits
for the duration of the write; writing a zero has no effect.
xx
WO — Write Only
Bits and fields specified as WO can be written but not read.
Addresses
Unless otherwise noted, all addresses and offsets are hexadecimal.
Aligned and Unaligned
The terms aligned and naturally align ed are interchangeable and refer to data objects
n
that are powers of two in size. An aligned datum of size 2
n
byte address that is a multiple of 2
; that is, one that has n low-order zeros. For ex-
is stored in memory at a
ample, an aligned 64-byte stack frame has a memory address that is a multiple of 64.
A datum of size 2
n
.
of 2
n
is unaligned if it is stored in a byte address that is not a multiple
29 September 1997 – Subject To Change
Bit Notation
Multiple-bit f ields can i nclud e cont igu ous and noncon ti guous b its c ontai ned in an gle
brackets (<>). Multiple contiguous bits are indicated by a pair of numbers separated
by a colon (:). For example, <9:7,5,2:0> specifies bits 9,8,7,5,2,1, and 0. Similarly,
single bits ar e f re quently indicated with angle brackets. For example, <27 > s pec ifies
bit 27.
Caution
Cautions indicate potential damage to equipment or loss of data.
Data Units
The following data-unit terminology is used throughout this manual.
Unless otherwise stated, external means not contained in the 21164PC.
Numbering
All numbers are decimal or hexadecimal unless otherwise indicated. The prefix 0x
indicates a hexadecimal number. For example, 19 is decimal, but 0x19 and 0x19A
are hexadecimal (also see Addresses). Otherwise, the base is indicated by a subscript; for example, 100
Ranges and Extents
is a binary number.
2
Ranges are specified by a pair o f numb ers se parat ed by t wo per iods ( ..) and are inclu sive. For example, a range of integers 0..4 includes the integers 0, 1, 2, 3, and 4.
Extents are specified by a pair of numbers in angle brackets (<>) separated by a
colon (:) and are i nclus ive. Bit fi elds a re oft en speci fi ed as e xtents . For examp le, bit s
<7:3> specifies bits 7, 6, 5, 4, and 3.
29 September 1997 – Subject To Change
xxi
Security Holes
Security holes exist when unpr ivil eged sof tware ( that i s, soft ware tha t is run ning out side of kernel mode) can:
•Affect the o per ation of another pr oc ess wi thout authorizatio n f ro m th e operating
system.
•Amplify its privilege without authorization from the operating system.
•Communicate with another process, either overtly or covertly, without authori-
zation from the operating system.
Signal Names
Signal names are printed in lowercase, boldface type. Low-asserted signals are indicated by the _l suffix, while high-asserted signals have the _h suffix. For example,
osc_clk_in_h is a high-asserted signal, and osc_clk_in_l is a low-asserted signal.
Unpredictable and Undefined
Throughout this manual, the te rms UNPREDICTABLE and UNDEFINED are used.
Their meanings are quite different and must be carefully distinguished.
In particular, only privileged software (that is, software running in kernel mode) can
trigger UNDEFINED operations. Unprivileged software cannot trigger UNDEFINED operations. However, either privileged or unprivileged software can trigger
UNPREDICTABLE results or occurrences.
xxii
UNPREDICTABLE results or occurrences do not disrupt the basic operation of the
processor. The processor continues to execute instructions in its normal manner. In
contrast, UNDEFINED operations can halt the processor or cause it to lose information.
The terms UNPREDICTABLE and UNDEFINED can be further described as follows:
Unpredictable
Results or occurrence s s pec if ie d a s UNPREDI CTABLE may vary from moment
•
to moment, implementation to implementation, and instruction to instructio n
within implementations. Software can never depend on results specified as
UNPREDICTABLE.
29 September 1997 – Subject To Change
•An UNPREDICTABLE result may acquire an arbitrary value subject to a few
constraints. Such a result may be a n arbitrar y functi on of t he input operands or of
any state informati on that is accessible to the proc ess in its current access mode.
UNPREDICTABLE results may be unchanged from their previous values.
Operations that produ ce UNPREDICTABLE results may also produce exceptions.
•An occurrence specified as UNPREDICTABLE may happen or not based on an
arbitrary choice function. The choice function is subject to the same constraints
as are UNPREDICTABLE results and, in particular, must not constitute a security hole.
Specifically, UNPREDICTABLE r es ult s must not depend upon, or be a functio n
of the contents of memory locations or registers that are inaccessible to the current process in the current access mode.
Also, operations that may produce UNPREDICTABLE results must not:
–Write or modi fy the contents of memory locations or registers to which the
current process in the current access mode does not have access.
–Halt or hang the system or any of its components.
For example, a security hole would exist if some UNPREDICTABLE result
depended on the value of a register in another process, on the contents of processor
temporary registers left behind by some previously running process, or on a
sequence of actions of different processes.
Undefined
Operations specified as UNDEFINED may vary from moment to moment,
•
implementation to impleme ntation, and instruction to instructio n within imple mentations. The operation may vary in effect from nothing, to stopping system
operation.
•UNDEFINED operations may halt the processor or cause it to lose information.
However, UNDEFINED operat ions must not cause the pro cessor t o hang, th at is,
reach an unhalted state from which there is no transition to a normal state in
which the machine exec utes instructions. Only privileged software (that is, so ftware running in kernel mode) may trigger UNDEFINED operations.
29 September 1997 – Subject To Change
xxiii
This chapter provides a brief introduction to the Alpha architecture, Digital
Equipment Corporation’s RISC (reduced instruction set computing) architecture
designed for high perfo rmance. Th e c hapter then s ummari zes t he spec ific fe ature s of
the Digital Semiconductor Alpha 21164PC microprocessor (hereafter called the
21164PC) that implements the Alpha architecture. Appendix A provides a list of
Alpha instructions.
For a complete definition of the Alpha architecture, refer to the companion volume,
the Alpha AXP Architecture Reference Manual.
1.1 The Architecture
The Alpha architecture is a 64-bit load and store RISC architecture designed with
particular emphasis on speed, multiple instruction issue, multiple processors, and
software migration from many operating systems.
All registers are 64 bits long and all operations are performed between 64-bit registers. All instructions are 32 bits long. Memory operations are either load or store
operations. All data manipulation is done between registers.
1
Introduction
The Alpha architecture supports the following data types:
•8-, 16-, 32-, and 64-bit integers
•IEEE 32-bit and 64-bit floating-point formats
•VAX architecture 32-bit and 64-bit floating-point formats
In the Alpha architecture, instructions interact with each other only by one instruction writing to a register or memory location and another instruction reading from
that register or memory location. This use of resources makes it easy to build implementations that issue multiple instructions every CPU cycle.
29 September 1997 – Subject To Change
Introduction1–1
The Architecture
The 21164PC uses a set of subroutines, called privileged architecture library code
(PALcode), that is specific to a particular Alpha operating system implementation
and hardware platform. These subroutines provide operating system primitives for
context switching, interrupts, exceptions, and memory management. These subroutines can be invoked by hardware or CALL_PAL instructions. CALL_PAL instructions use the function field of the instruction to vector to a specified subroutine.
PALcode is written in standard machine code with some implementation-specific
extensions to provide direct access to low-level hardware functions. PALcode supports optimiza tions for multip le operating sy stems, flexible memory-management
implementations, and multi-instruction atomic sequences.
The Alpha architecture performs byte shifting and masking with normal 64-bit, register-to-register instructions; it does not include single-byte load and store instructions.
1.1.1 Addressing
The basic addressable unit in the Alpha architecture is the 8-bit byte. The 21164PC
supports a 43-bit virtual address.
Virtual addresses as seen by the program are translated into physical memory
addresses by the memory-management mechanism. The 21164PC supports a 40-bit
uncached and a 33-bit cached physical address space.
1–2Introduction
29 September 1997 – Subject To Change
1.1.2 Integer Data Types
Alpha architecture supports four integer data types.
Data TypeDescription
ByteA byte is eight contiguous bits that start at an addressable b yte boundary. A
byte is an 8-bit value. A byte is supported in Alpha architecture by the
EXTRACT, INSERT, LDBU, MASK, SEXTB, STB, ZAP, PACK,
UNPACK, MIN, MAX, and PERR instructions.
WordA word is two cont igu ous by te s th at s t art at an ar bi trary byt e b oun dary. A
word is a 16-bit value. A word is supported in Alpha architecture by the
EXTRACT, INSERT, LDWU, MASK, SEXTW, STW, PACK, UNPACK,
MIN, and MAX instructions.
LongwordA longword is four contiguous bytes that start at an arbitrary byte bound-
ary. A longword is a 32-bit value. A longword is supported in Alpha architecture by sign-extended load and store instructions and by longword
arithmetic instructions.
QuadwordA quadword is eight contiguous bytes that start at an arbitrary byte bound-
ary. A quadword is supported in Alpha architecture by load and store
instructions and quadword integer operate instructions.
The Architecture
Note:Alpha implementations may impose a significant performance penalty
when accessing operands that are not NATURALLY ALIGNED. Refer
to the Alpha AXP Architecture Reference Manual for details.
1.1.3 Floating-Point Data Types
The 21164PC supports the following floating-point data types:
The 21164PC is a superscalar pipelined processor manufactured using 0.35-µm
CMOS technology. It is packaged in a 413-pin IPGA carrier and has removable
application-specific heat sinks. The 21164PC has been optimized for uniprocessor
systems with very high cache and memory bandwidth. The 21164PC supports the
new motion video instructions (MVI) added to the Alpha instruction set.
The 21164PC ca n issue four Alpha instruct ions in a si ngle cycle , thereby mini mizing
the average cycles per instruction (CPI). A number of low-latency and/or highthroughput features in the instruction issue unit and the onchip components of the
memory subsystem further reduce the average CPI.
The 21164PC and associated PALcode implements IEEE single-precision and double-precision, VAX F_floating and G_floating data types, and supports longword
(32-bit) and quadword (64-bit) integers. Byte (8-bit) and word (16-bit) support is
provided by byte-manipulation instructions. Limited hardware support is provided
for the VAX D_floating data type.
Other 21164PC features include:
•A peak instruction execution rate of four times the CPU clock frequency.
•The ability to issue up to four instructions during each clock cycle.
•An onchip, demand-paged memory-management unit with translation buffer,
which, when used with PALcode, can implement a variety of page table structures and translation algorithms. The unit consists of a 64-entry data translation
buffer (DTB) and a 48-entry instruction translation buffer (ITB), with each entry
able to map a single 8KB page or a group of 8, 64, or 51 2 8KB page s. The size of
each translation buffer entry’s group is specified by hint bits stored in the entry.
The DTB and ITB implement 7-bit address space numbers (ASN),
(MAX_ASN=127).
•Two onchip, high-throughput pipelined floating-point units, capable of execut-
ing both DIGITAL and IEEE floating-point data types.
•An onchip, 16KB virtual instruction cache with 7-bit ASNs (MAX_ASN=127).
1–4Introduction
29 September 1997 – Subject To Change
21164PC Microprocessor Features
•An onchip, dual-read-ported, 8KB data cache.
•An onchip write buffer with six 32-byte entries.
•A 128-bit data bus with onchip parity and offchip longword parity.
•Support for an external second-level cache. The size and access time of the
external second-level cache is programmable.
•An internal clock generator providing a high-speed clock used by the 21164PC,
and a pair of programmable system clocks for use by the CPU module.
•Onchip performance counters to measure and analyze CPU and system perfor-
mance.
•Chip and module level test support, including an instruction cache test interface
to support chip and module level testing.
•A 3.3-V exte rnal interface and 2.5-V internal interface.
Refer to Chapter 9 for 21164PC dc and ac electrical characteristics. Refer to the
Alpha AXP Architecture Reference Manual for a description of address space numbers (ASNs).
29 September 1997 – Subject To Change
Introduction1–5
Loading...
+ 342 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.