01.02.2013 Views

Chapter 4 PA-RISC Computer Systems - OpenPA.net

Chapter 4 PA-RISC Computer Systems - OpenPA.net

Chapter 4 PA-RISC Computer Systems - OpenPA.net

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

HP 9000/500 FOCUS Architecture<br />

� Introduced 1984<br />

� One CPU (up to three supported)<br />

� 512 KB RAM (10 MB maximum)<br />

� Up two four Display Station Buffer Cards (DSBs) [graphics adapters]<br />

� One IOP (up to two supported)<br />

� HP-IB interface ( “medium-speed” )<br />

� 9050A: base system (probably equals 9050)<br />

� 9050AT (bundled system): 9050A with 1.5 MB RAM, HP-UX operating system (single-user)<br />

� 9050AM (bundled system): 9050A with 1.5 MB RAM, HP-UX operating system (multi-user)<br />

HP 9000/500s in SMP configuration were confusingly also called 600 series (some of the 1980s’ 800s<br />

server systems were also called 600 series for a short time).<br />

Possible I/O and expansion options (for all 500s):<br />

� HP-IB card for external HP-IB (HP Instrumentation Bus) devices<br />

� GP-IO card for GP-IO (General Purpose I/O) devices with 8-bit or 16-bit DMA<br />

� Asynchronous Serial<br />

� I/O Expander for eight I/O channels/slots (CIO) for additional IOPs<br />

� LAN 9000, 10 Mbit Ether<strong>net</strong> (coax)<br />

4.56.4 Architecture<br />

The FOCUS is a stack architecture, with 230 instructions (both 32 bits and 16 bits wide), a segmented<br />

memory model, and no general purpose programmer-visible registers. There are thirty-nine 32-bit<br />

registers in the CPU hardware — thirty-one internal 32-bit general purpose registers, two 32-bit ALU<br />

registers, and others.<br />

It has a flat address space but that is not really what most programs see: their access to memory is<br />

largely described by registers that contain the absolute memory addresses of segment boundaries. For<br />

example, instructions come from the current code segment, which is described by three registers: P,<br />

the program counter, which is a 32-bit register containing the absolute address of the instruction being<br />

executed; PB, the program base register, which is a 32-bit register containing the absolute address of<br />

the first word of the current code segment; and PL, the program limit register, which is a 32-bit register<br />

containing the absolute address of the last word of the current code segment.<br />

The data segment also has base (DB) and limit (DL) registers, and so does the stack segment (SB, SL).<br />

The stack segment also has a stack pointer (S) and a stack marker pointer (Q) which points to the<br />

current procedure’s activation record on the stack.<br />

There is also an index register, a status register, a flags register (really a sort of debugging-state register),<br />

a message register (interrupting conditions) and message mask register (which enables/disables<br />

interrupts from the message register), a breakpoint register, and a couple of registers which are for the<br />

memory controllers to talk to the CPU.<br />

The machine instruction set is oriented toward moving words between memory and the top of the<br />

stack, and operating on the words at the top of the stack. To take an addition of two numbers: load<br />

364

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!