Home > Store

PA-RISC 2.0 Architecture

Register your product to gain access to bonus material or receive a coupon.

PA-RISC 2.0 Architecture

Book

  • Sorry, this book is no longer in print.
Not for Sale

About

Features

  • details the key features of PA-RISC that differentiates it from other RISC architectures: pathlength reduction features, integrated CPU features, and extendibility and longevity features.
  • explains the "precision architecture" approach of PA-RISC that enables the implementation of PA-RISC machines that are significantly more efficient than competing RISC machines.

Description

  • Copyright 1996
  • Dimensions: 7" x 9-1/4"
  • Pages: 496
  • Edition: 1st
  • Book
  • ISBN-10: 0-13-182734-0
  • ISBN-13: 978-0-13-182734-9

Hewlett-Packard's PA-RISC architecture is one of the most mature Reduced Instruction Set Computer designs in the industry. This book is the first publicly available, detailed description of the next revision of the PA-RISC architecture. KEY TOPICS: Covers the RISC characteristics of PA-RISC, PA- RISC processing resources, addressing and access control, control flow, interruptions, and an overview of the instruction set and floating point corprocessor. MARKET: For system designers and analysts, system software programmers, application developers, and technical managers.

Sample Content

Table of Contents



1. Overview.

Traditional RISC Characteristics of PA-RISC. PA-RISC-The Genius is in the Details. A Critical Calculus: Instruction Pathlength. Multimedia Support: The Precision Process Illustrated. Integrated CPU. Extensibility and Longevity. System Organization.



2. Processing Resources.

Non-Privileged Software-Accessible Registers. Privileged Software-Accessible Registers. Unused Registers and Bits. Data Types. Byte Ordering (Big Endian/Little Endian).



3. Addressing and Access Control.

Physical and Absolute Addressing. Virtual Addressing. Pointers and Address Specification. Address Resolution and the TLB. Access Control.



4. Page Table Structure.

Caches. Control Flow. Branching. Nullification. Instruction Execution. Instruction Pipelining.



5. Interruptions.

Interrupt Classes. Interruption Handling. Instruction Recoverability. Masking and Nesting of Interruptions. Interruption Priorities. Return from Interruption. Interruption Descriptions.



6. Instruction Set Overview.

Computation Instructions. Multimedia Instructions. Memory Reference Instructions. Long Immediate Instructions. Branch Instructions. System Control Instructions. Assist Instructions. Conditions and Control Flow. Additional Notes on the Instruction Set.



7. Instruction Descriptions.


8. Floating-point Coprocessor.

The IEEE Standard. The Instruction Set. Coprocessor Registers. Data Registers. Data Formats. Floating-Point Status Register. Floating-Point Instruction Set.



9. Floating-Point Instruction Set.


10. Floating-Point Exceptions.

Exception Registers. Interruptions and Exceptions. Saving and Restoring State.



11. Performance Monitor Coprocessor.

Performance Monitor Instructions. Performance Monitor Interruptions. Monitor Units.



Glossary.


Appendix B. Instruction Formats.


Appendix C. Operation Codes.


Appendix D. Conditions.


Appendix E. Instruction Notation Control Structures.


Appendix F. TLB and Cache Control.


Appendix G. Memory Ordering Model.


Appendix H. Address Formation Details.


Appendix I. Programming Notes.


Appendix J. PA-RISC 2 Instruction Completers & Pseudo-Ops.

Preface

Preface

Hewlett-Packard's PA-RISC architecture was first introduced in 1986. Although there have been interim improvements in the intervening years, the PA-RISC 2.0 architecture described in this book is the most significant step in the evolution of the PA-RISC architecture. While the primary motivation for PA-RISC 2.0 was to add support for 64-bit integers, 64-bit virtual address space offsets, and greater than 4 GB of physical memory, many other more subtle enhancements have been added to increase the performance and functionality of the architecture.

Compatibility with PA-RISC 1.
From an unprivileged software perspective, PA-RISC 2.0 is forward compatible with the earlier PA-RISC 1.0 and PA-RISC 1.1 architectures all unprivileged software written to the PA-RISC 1.0 or PA-RISC 1.1 specifications will run unchanged on processors conforming to the PA-RISC 2.0 specification.

However, unprivileged software written to the PA-RISC 2.0 specification will not run on processors conforming to the PA-RISC 1.0 or PA-RISC 1.1 specifications.

PA-RISC 2.0 Enhancements.
PA-RISC 2.0 contains 64-bit extensions, instructions to accelerate processing of multimedia data, features to reduce cache miss and branch penalties, and a number of other changes to facilitate high performance implementations. The 64-bit extensions have the highest profile and the greatest impact on the programming model for both applications and system programs. The paragraphs that follow provide thumbnail sketches of some of the more significant features of PA-RISC 2.0.

64-bit Extensions.
PA-RISC has always supported a style of 64-bit addressing known as “segmented” addressing. In this style, many of the benefits of 64-bit addressing were obtained without requiring the integer datapath to be larger than 32 bits. While this approach was cost-effective, it did not easily provide the simplest programming model for single data objects (mapped files or arrays) larger than 4 billion bytes (4GB).

Support of such objects calls for larger-than-32-bit “flat<170 addressing, that is, pointers longer than 32 bits which can be the subject of larger-than-32-bit indexing operations. Since nature prefers powers of two, the next step for an integer data path width greater than 32 bits is 64 bits. PA-RISC 2.0 provides full 64-bit support with 64-bit registers and data paths. Most operations use 64-bit data operands and the architecture provides a flat 64-bit virtual address space.

Multimedia Extensions.
Since multimedia capabilities are rapidly becoming universal in desktop and notebook machines, and since general purpose processors are becoming faster than specialized digital signal processors, it was seen as critical that PA-RISC 2.0 support these multimedia data manipulation operations as a standard feature, thus eliminating the need for external hardware.

PA-RISC 2.0 contains a number of features which extend the arithmetic and logical capabilities of PA-RISC to support parallel operations on multiple 16-bit subunits of a 64-bit word. These operations are especially useful for manipulating video data, color pixels, and audio samples, particularly for data compression and decompression.

Cache Prefetching.
Because processor clock rates are increasing faster than main memory speeds, modern pipelined processors become more and more dependent upon caches to reduce the average latency of memory accesses.

However, caches are effective only to the extent that they are able to anticipate the data and instructions that are required by the processor. Unanticipated surprises result in a cache miss and a consequent processor stall while waiting for the required data or instruction to be obtained from the much slower main memory.

The key to reducing such effects is to allow optimizing compilers to communicate what they know (or suspect) about a program's future behavior far enough in advance to eliminate or reduce the “surprise” penalties. PA-RISC 2.0 integrates a mechanism that supports encoding of cache prefetching opportunities in the instruction stream to permit significant reduction of these penalties.

Branch Prediction.
A “surprise” also occurs when a conditional branch is mispredicted. In this case, even if the branch target is already in the cache, the falsely predicted instructions already in the pipeline must be discarded. In a typical high-speed superscalar processor, this might result in a lost opportunity to execute more than a dozen instructions. This is known as the mispredicted branch penalty.

PA-RISC 2.0 contains several features that help compilers signal future data and likely instruction needs to the hardware. An implementation may use this information to anticipate data needs or to predict branches more successfully, thus avoiding the penalties associated with surprises.

Some of these signals are in the nature of “hints” which are encoded in “don't care” bits of existing instructions. These hints are examples of retroactive additions to PA-RISC 1.1, since all existing code will run on newer machines, and newly annotated code will run correctly (but without advantage) on all existing machines. The benefit of making such retroactive changes is that compilers are thereby permitted to implement the anticipatory hints at will, without ÒsynchronizingÓ to any particular hardware release.

Memory Ordering.
When cache misses cannot be avoided, it is important to reduce the resultant latencies. The PA-RISC 1 architecture specified that all loads and stores are observed to be performed “in order,” a characteristic known as “strong ordering.”

Future processors are expected to support multiple outstanding cache misses while simultaneously performing loads and stores to lines already in the cache. In most cases this effective reordering of loads and stores causes no inconsistency, and permits faster execution. The latter model is known as “weak ordering,” and it is intended to become the default model in future machines. Of course, strongly ordered variants of loads and stores must be defined to handle contexts in which ordering must be preserved — mainly related to synchronization among processors or with I/O activities.

Coherent I/O.
As the popularity and pervasiveness of multiprocessor systems increase, the traditional PA-RISC model of I/O transfers to and from memory without cache coherence checks has become less advantageous. Multiprocessor systems require that processors support cache coherence protocols. By adding similar support to the I/O subsystem, the need to flush caches before and/or after each I/O transfer can be eliminated. As disk and network bandwidths increase, there is increasing motivation to move to such a cache coherent I/O model. The incremental impact on the processor is small, and is supported in PA-RISC 2.0.

How This Book is Organized.
The audience for this book might be divided into the following broad categories (listed in decreasing order of probable size, though, one hastens to add, not in any presumed order of importance):
application programmers

operating system programmers

compiler programmers

hardware/system designers.

The book has been organized to make information easily accessible to each of these audience categories based on the assumption that each category requires an additional level of detail. For example, application programmers are primarily concerned with such things as data types, addressing capabilities, and the instruction set. Operating system programmers need all of that information and also must concern themselves with such things as page table structures and cache operations, topics that application programmers do not usually need to worry about. Accordingly, chapters are generally structured so that the information that is of interest to the broadest audience is presented at the beginning, and details that have a more limited audience come later. Similarly, the book contains a rather large number of appendices: they are used to provide specialized information which, if included in the main body of the book, might add unneeded complexity to topics that are otherwise of broad interest.

Conventions Used in This Book.
Several typographical and notation conventions are used throughout this book to simplify, emphasize, and standardize presentation of information.

Fonts.
In this book, fonts are used as follows:
Italic is used for instruction fields and arguments. For example: “The completer, compte, encoded in the u and m fields of the instruction,...” .

Italic is also used for references to other parts of this and other books or manuals. For example: “As described in Chapter 4, Flow Control and ...” .

Bold is used for emphasis and the first time a word is defined. For example: “Implementations provide seven registers called shadow registers ...” .
UPPER CASE
is used for instruction names, instruction mnemonics, short (three characters or less) register and register field names, and acronyms. For example: “The PL field in the IIAOQ register ...” . Underbar (_) characters join words in register, variable, and function names. For example: “The boolean variable cond_satisfied in the Operation section ...” .
Numbers.
The standard notation in this book for addresses and data is hexadecimal (base 16). Memory addresses and fields within instructions are written in hexadecimal. Where numbers could be confused with decimal notation, hexadecimal numbers are preceded with 0x. For example, 0x2C is equivalent to decimal 44.

Instruction Notations.
Instruction operation is described in a C-like algorithmic language. This language is the same as the C programming language with a few exceptions. These are:
The characters “{}” are used to denote bit fields.
The assignment operator used is “” instead of “=” .
The functions “cat” (concatenation), and “xor” (logical exclusive OR) take a variable number of arguments, for which there is no provision in C.
The switch statement usage is improper because we do not use constant expressions for all the cases.
The keyword “parallel” may appear before loop control statements such as “for” and “while” and indicates that the loop iterations are independent and may execute in parallel.
Bit Ranges.
A range of bits within a larger unit, is denoted by “unit{range}” , where unit is the notation for memory, a register, a temporary, or a constant; range is a single integer to denote one bit, or two integers separated by “..” to denote a range of bits.

For example, “GR1{0}” denotes the leftmost bit of general register 1, “CR24{59..63}” denotes the rightmost five bits of control register 24, and “5{0..6}” denotes a 7-bit field containing the number 5. If m > n, then {m..n} denotes the null range.

Registers.
In general, a register name consists of two or three uppercase letters. The name of a member of a register array consists of a register name followed by an index in square brackets. For example, “GR1” denotes general register 1.
The named registers and register arrays are:
Register
Range
Description
GRt
t = 0..31
General registers
SHRt
t = 0..6
Shadow registers
SRt
t = 0..7
Space registers
CRt
t = 0, 8..31 CPRuidt
t = 0..31
Coprocessor “uid” registers
FPRt
t = 0..31
Floating-point coprocessor registers

The Processor Status Word and the Interruption Processor Status Word, denoted by “PSW” and “IPSW” , are treated as a series of 1-bit and multiple-bit fields. A field of either is denoted by the register name followed by a field name in square brackets, and bit ranges within such fields are denoted by the usual notation. For example, PSWC/B denotes the 16-bit carry/borrow field of the PSW and PSWC/B{0} denotes bit 0 of that field.

Temporaries.
A temporary name comprises three or more lowercase letters and denotes a quantity which requires naming, either for clarity, or because of limitations imposed by the sequential nature of the operational notation. It may or may not represent an actual processing resource in the hardware. The length of the quantity denoted by a temporary is implicitly determined and is equal to that of the quantity first assigned to it in an operational description.

Operators.
The operators used and their meanings are as follows:
assignment
|
bitwise or
+
addition
==
equal to
P
subtraction
<
less than
*
multiplication
>
greater than
~
bitwise complement
!=
not equal to
&&
logical and
<=
less than or equal to
&
bitwise and
>=
greater than or equal to
||
logical or

All operators are binary, except that “~” is unary and “P” is both binary and unary, depending on the context.

Control Structures and Functions.

The control structures used in the instruction notation are relatively standard and are described in Appendix E, “Instruction Notation Control Structures” .

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020