Like all Silicon Graphics systems, the Personal IRIS relies on the VLSI technology of the Geometry Engine. Breakthroughs in component design and optimization of the Geometry Pipeline permit a high level of integration and a corresponding reduction in physical size and cost. The Personal IRIS runs the powerful Graphics Library set of software routines, including those for drawing, rendering, and lighting. Users have the power to display full color images, run solid-modeling applications, and simulate ideas, motion, and natural phenomena.
The Personal IRIS CPU provides substantial power to run demanding applications at your desk. Reduced instruction set (RISC) technology combines with a new, efficient, low-cost CPU architecture and an advanced optimizing compiler to yield exceptional computing performance.
This product comes with a large number of standard features to let you add I/O peripherals, plug into a network, or enhance your graphics with sound.
The Personal IRIS is designed as a modular product to let users install options, to reduce manufacturing cost, and to provide easy access for simple maintenance and servicing. By turning a locking dial - without having to undo any screws - you can remove a plastic side panel and gain access to the electronics module. This houses the graphics and CPU boards, which are connected by a high-speed, 32-bit bus. And you don't need tools to install the optional tape drive and disk drive - in seconds, you can snap them into place.
Owning and using the Personal IRIS is simple. It's designed for ease of use and low cost of ownership, and it fits easily into the typical office. The system package is small and attractive, and an efficient design reduces heat output and fan noise to a minimum. You can place the Personal IRIS on a bare floor or on a carpet, and it will fit under your desk.
The Personal IRIS is a member of the 4D product family and is binary code-compatible with the IRIS-4D series of superworkstations. Since all 4D systems run the same UNIX V.3 operating system, applications will run on the entire 4D product line. The Personal IRIS is the entry point to this powerful family, offering low-cost application stations (a diskless version is available) that fit easily in work groups with other 4D systems and in networks with other workstations or mainframes.
Drawing on their experience as industly-leading architects of RISC-based graphics workstations. Silicon Graphics engineers designed the Personal IRIS to provide true 3D graphics performance at a significantly lower price. They did this by leveraging an ASIC design to develop much more efficient CPU and graphics architectures than were previously possible.
The combination of these architectural improvements with the latest off-the-shelf integrated circuits - and nine Silicon Graphics-proprietary ASICs - allows the CPU and graphics systems each to occupy single II" by 15" boards. This allows a dramatic reduction in the number of parts, the size of boards, and the cost of packaging and manufacturing. Additionally, the single-board subsystems actually allow improved performance by reducing physical interconnection distances and eliminating inter-board delays.
2.2 RISC Technology Computing
RISC technology computing, the use of reduced instruction set computers as core elements in a computing system, represents the latest major advance in microprocessor computing technology. RISC technology will be widely employed in future generations of scientific and engineering workstations. Leading the world in this technology is the R2000 series of microprocessors from MIPS Computer Systems. The Personal IRIS uses the MIPS R2000A microprocessor and takes full advantage of its computing power.
RISC technology lets engineers design computers with reduced (that is, simplified) instruction sets so the computers can execute most instructions in one machine cycle. The result is an instruction set where most instructions are relatively unencoded and fixed in length - usually a single 32-bit computer word. Computers can easily decode and execute these types of instructions. The resulting simplicity of decoding, executing, and performing other CPU functions enables pipelined instruction streams. Also, the simplicity of the instruction fetching and decoding circuitry conserves silicon real estate. This frees up space for logic-intensive, fast arithmetic and RAM-intensive translation look-aside buffers to provide fast virtual memory support and fast instruction execution.
2.3 Personal IRIS CPU Architecture
The efficient, high-performance architecture of the Personal IRIS CPU is illustrated in the block diagram in Figure 1. A single printed circuit board contains a complete computer system including:
The heart of the CPU is the 12.5 MHz MIPS R2000A microprocessor. Running industry-standard integer benchmarks, this microprocessor provides ten times the performance of a VAX 11 /780. Augmented by the optional R2010A floating-point chip, this machine delivers more than 900,000 double-precision floating-point operations per second (0.9 MFLOPS).
The 16Kb instruction and 8 Kb data caches support the memory access requirements of the R2000A and reside on the 100 megabyte/sec (peak) CPU bus. These separate, direct-mapped caches ensure that instructions and data do not compete for the same cache locations and let most instruction and data references complete in a single cycle. A single-deep write buffer allows the CPU to continue running after issuing a write command in this write-through data cache implementation. In the event of a cache miss, an optimized data path to the main memory system maintains near-peak operating speeds.
The I/O bus itself runs asynchronously to the CPU bus at 10 MHz. This design allows an easy upgrade to higher clock speed versions of the MIPS microprocessor without affecting the rest of the system. The I/O control gate array off-loads the CPU by completely handling communications with the (X)7990-based Ethernet interface, the 1.5 megabyte/sec SCSI disk and peripheral interface, the Centronics printer port, and the audio channel.
The audio channel lets users record sound, and play back pre-recorded data. An 8-bit analog-to-digital converter samples either line-in or microphone input at rates of 8K, 16K, or 32K bytes/sec. An 8-bit digital-to-analog converter (DAC) generates sounds while another 8-bit DAC lets you adjust the volume for the audio output, which can directly drive an external 8-ohm speaker.
The VME interface lets you install a single, double-height (6U) board. The interface also lets you install bus masters, which can directly access main memory, and meets the industry standard VME bus specification.
Finally, the I/O bus provides the link to the Geometry Engine, coupling the outstanding computational characteristics of the Personal IRIS CPU with the 3D display capabilities of the graphics system.
The Personal IRIS compiler improves run-time efficiency on several levels corresponding to the different functional layers in the optimizing compiler (this is illustrated in Figure 2). The result of any optimization is transparent to the user.
At the highest level, the compiler improves run-time efficiency through advanced techniques similar to those found in optimizing compiler research and supercomputing platforms. This technology never before existed in workstation environments. Techniques provided by a machine-independent global optimizer include copy propagation, common subexpression elimination, invariant code motion, redundant arguments removal, and strength reduction.
At the lowest level, the optimizing compiler takes full advantage of the load/store nature of RISC machines by using register allocation very effectively. By globally analyzing usage patterns, the optimizer decides which variables should reside in registers and then schedules instructions based upon the characteristics of the MIPS processor. Since the optimization process is layered, the compiler analyzes intermediate computational results that higher level optimizations generate for register allocation. The thirty-one general purpose registers in the MIPS CPU make the register allocation portion of the optimization particularly versatile.
At the highest level, the compiler performs cross-module register allocation based on its analysis of interprocedural usage. While this is a difficult task, it can yield significant performance enhancements - this is unique on the IRIS^D family of workstations. Together with the in-line procedure merging available at this level, this lets high-level programmers use as many procedure calls as needed, knowing that they are computationally inexpensive.
All layers of optimization eventually use a machine code generator. This generator further optimizes the code by folding in expressions, deleting dead code, and optimizing branches and labels, which are best suited to the MIPS instruction set.
The Personal IRIS optimizing compiler is a significant advance in workstation technology - it uses a very complete set of higher level optimization techniques while exploiting the benefits of the MIPS chip set. In the supercomputing environment, the importance of having an excellent optimizing compiler tuned to the hardware has long been recognized. For the first time. Silicon Graphics brings this technology to a personal 3D workstation.
2.5 Hardware Subsystems
The Personal IRIS is composed of several hardware subsystems:
The electronics module is a compact sheet metal cage (see Figure 3). It contains the graphics board, CPU board, VME slot, high-speed proprietary bus, and connectors for peripheral devices. The module is designed to protect the electronics boards and to provide easy access, efficient ventilation, and optimal control of emissions. To remove the module, you unlatch the plastic side panel, remove one retaining screw, disconnect power, bus, and peripheral cables, and lift it out of the chassis.
At the rear of the electronics module are ports for the keyboard and mouse, RGB connectors for the monitor, one Ethernet port, two additional serial ports, a Centronics port, audio in, out, and MIC jacks, and connectors for the optional video board. By taking off its sheet metal cover, you can install RAM upgrades without removing the module from the chassis.
The system module includes the chassis, disk drive, power supply, and ventilation fan. The chassis is a rigid (yet lightweight) structure that houses the other subsystems and permits easy access to modules. The chassis is fitted with durable plastic panels that you can quickly remove. A simple latching system (no screws) holds the side panels in place and makes removing and replacing them very simple. The panel color is molded into the plastic so scratches do not reveal a different color underneath.
At the front of the system, a hinged plastic door neatly conceals the power switch and the optional tape or additional disk drives. A firm steel handle at the rear of the chassis acts as a bumper and a handle.
Ventilation is straightforward and takes advantage of convection cooling. The top rear-mounted fan advances to a higher speed when the system detects unusually high temperatures. Undernormal operating conditions the fan maintains a lower, quieter speed.
The internal 5.25-inch Winchester hard disk drive and 350-watt power supply are mounted on the side of the chassis opposite the electronics module. Users can easily install additional SCSI devices in one of two ways: by inserting a cartridge tape drive or hard disk into the front SCSI drive slot (behind the hinged plastic door), or by connecting external SCSI devices to the SCSI port located on the chassis next to the electronics module.
The Personal IRIS includes a standard 60 Hz, non-interlaced, 19" color monitor with 1280 x 1024 resolution. The monitor has tilt and swivel capabilities and RGB and AC power cables that connect directly to the main system. The keyboard has 101 keys and two ports for connecting to the mouse and to the electronics module. The ports are identical and are located at the left and right underside of the keyboard so users can choose the best side for connecting the mouse. The three-button optical mouse has 200 cpi resolution.
The optional extended SCSI disk system connects directly to the SCSI port and offers storage expansion ranging from 344 Mb to over I gigabyte (formatted). You can connect printers to the Centronics port and use the optional IEEE-488 or six-port serial boards to connect other peripheral devices.
As with all Silicon Graphics products, the Personal IRIS graphics subsystem relies heavily on VLSI technology. Four new gate-array circuits handle functional components such as the host interface, frame-buffer control, and display subsystem. The designers also reduced the amount of discrete external logic, resulting in a design of tightly coupled functional blocks.
Unique architectural innovations - such as optimized partitioning of the geometric pipeline and high-speed, interleaved frame buffer access - give the Personal IRIS its high level of integration.
The Personal IRIS's RISC-based CPU describes 3D objects to the graphics subsystem. This description takes the form of Graphics Library routines and world coordinate vertex data. It describes the object's geometric position, color, and surface normal vectors used for complex lighting calculations.
The Personal IRIS graphics architecture performs transformations and other graphics operations to calculate specific pixel values for each of the 1.3 million pixels on the 1280 x 1024 high-resolution display. Before being displayed on the screen, graphics commands from the RISC host are processed by four pipelined graphics subsystems:
The Host-interface Subsystem contains a 32-bit proprietary bus to the host, a set of fifos and interface logic, and two Silicon Graphics ASICs. The host-to-graphics bus is synchronous and minimizes handshaking for maximum throughput.
The interface is primarily controlled by the Silicon Graphics-designed HQ chip. This chip has the dual purpose of maintaining the interface to the host and being the Geometry Engine microcontroller. The HQ handles either single-access transfers from the host or burst DMA cycles. Single-cycle accesses pass color map and other display data to the Display Subsystem and graphics commands to the Geometry Subsystem. The HQ inserts graphics commands in the fifos to match their flow more evenly with Geometry Engine compute time.
The HQ supports burst DMA transfers between the host and the Geometry Engine data RAM and between the host and the frame buffer. Burst transfers let the host interact rapidly with data used by the Geometry Subsystem and access the pixel data stored in the frame buffer faster. Fast pixel access lets the HQ transfer pixel images rapidly from the host to the frame buffer or retrieve frame buffer data to perform pixel operations on the host. Burst transfers to and from the Geometry Engine data let the HG switch contexts and read back Geometry Engine results quickly.
3.2 Geometry Engine Subsystem
The Geometry Subsystem consists of data RAM and the Geometry Engine chip. This subsystem receives world coordinate geometric data via the 32-bit host interface, performs the specified transformations and lighting computations, and then performs any necessary calculations to reduce the subsequent vertex data into spans, lines, or points to pass to the Raster Subsystem. The Geometry Subsystem contains a single microcoded processor capable of 20 million floating-point operations per second (MFLOPS), a loadable micro-store holding hand-coded routines, a data store, and the HQ microcontroller which controls the program and data flow.
The Geometry Engine processes a stream of high-level graphics commands mixed with single-precision floating point data. A stack of 4x4 coordinate matrices rotates, translates, and scales 2D and 3D homogeneous coordinates. A stack of 3 x 3 matrices also transforms surface normals. The Geometry Engine also maintains position, direction, and intensity specifications for lighting calculations. It supports up to eight local or infinite point-source lights. Material specifications include coefficients for ambient, diffuse, and specular reflective aspects of an object. The color the system applies to each transformed vertex is a function of the vertex position, the normal direction, the lighting model, the lights, and the characteristics of the surface. The result of the lighting calculation is either a set of three 8-bit red, green, and blue values (RGB mode) or a single 12-bit color index (color index mode).
The Geometry Engine then clips vertex coordinates to a 6-plane bounding box. A fast accept/reject clip-checking algorithm eliminates the need for complex clipping calculations in most cases. When complex clipping is required, the Geometry Engine uses a derivative of the Cohen-Sutherland dipping algorithm to perform a perspective division and convert coordinates to screen space.
The Geometry Engine also does the first stage of scan conversion. The Raster Subsystem can draw only lines or spans, and the Geometry Engine must pass appropriate slope information - it can pass points immediately. For line primitives, the Geometry Engine need only compute appropriate slopes before turning over responsibility to the Raster Subsystem. Scan conversion of polygons requires three steps:
The Geometry Engine (illustrated in the figure below) performs scan conversions using floating-point precision to maintain coordinate integrity during iterations and slope calculations. Additionally, it computes the x coordinates of polygon edges to a fractional pixel tolerance. The Geometry Engine first corrects all depth and color component iterations to the nearest pixel center and then iterates them in full pixel steps. As a result, iterated color and depth values remain planar across polygonal surfaces, and subsequent Z-buffer calculations result in clean intersections.
3.3 Raster Subsystem
The Raster Subsystem contains a single memory controller chip designed by Silicon Graphics (called the RE chip) which performs scan conversion and controls the frame buffer memory and optional Z-buffer memory.
The standard frame buffer configuration has 12 bits of information at every pixel location on the screen. In this configuration, the user has 8 color bitplanes to work with. The system uses two additional bitplanes for window ID control. The remaining two bitplanes are for overlay or underlay and are typically controlled by the Silicon Graphics window manager.
As an option, you can add 20 frame buffer bitplanes and 24 planes of Z-buffer memory. This fully loaded system has 24 color bitplanes, four window ID planes, four planes for overlay/underlay, and 24 z planes for a total of 56 bits stored at each pixel.
The image bitplanes store either 8 or 24 bits of information for each pixel of the 1280 x 1024 high-resolution display.
In the 8 bits/pixel configuration, the system always uses color-index mode to draw 8-bit single-buffered, or 4-bit double- buffered images.
In a 24-bitplane system, you can choose among four modes: 24-bit single-buffered RGB operation, 12-bit double-buffered RGB, 24-bit single-buffered color index, or 12-bit double-buffered color index.
A 24-bit Z-buffer is included with fully loaded systems.
When you enable hidden surface removal, the system compares the z coordinate of each incoming pixel to the current depth value already stored for the pixel. If the new z coordinate is closer to the viewpoint (and is therefore visible), the system updates the image bitplanes with the color value of the new pixel, and the z value of the new pixel is used to update the Z- buffer at this location.
Conversely, if the new z coordinate is farther away from the user's viewpoint, the pixel is hidden from view and is ignored. A full 24 bits of precision is maintained from the host into the Z-buffer.
The frame buffer dedicates either 2 or 4 bits per pixel to overlay and underlay operations. These bitplanes are provided for applications that use features such as pop-up menus and windowing backgrounds.
Window ID Planes
These 2 or 4 bitplanes hold the data that defines the state of the windows visible in the display. The window planes let you display multiple 3D images in a concurrent display environment. The window planes also determine whether individual pixels need to be masked against a window on the screen. This allows the hardware to support non- rectangular windows (circular or any other shape) without imposing overhead on the window system.
The RE Chip
The RE chip accepts commands, pixel location and color data, and slope data from the Geometry Subsystem. The RE uses this data to iterate horizontal spans or arbitrarily angled lines to produce pixel values that it writes into both the frame and Z-buffer. The RE updates only those bitplanes that are appropriate for the current drawing mode (single or double buffered, color index or RGB). The RE hardware supports fast screen-clear, anti-aliasing color index lines, and dithering shaded images via a 4x4 pixel randomizing scheme.
The RE controls all memory timing for both the frame buffer and the Z-buffer. Each buffer is organized as a five-pixel word on the screen (see the figure below). The RE uses a unique interleaving scheme to achieve the necessary bandwidth from the single chip RE into the five-pixel word. The RE interleaves frame buffer accesses so each pixel in the five-pixel word is rapidly updated in turn. Z-buffer accesses are done in parallel with the frame buffer access to the same address. The RE achieves additional bandwidth for screen clears by filling the five pixel word on four adjacent lines simultaneously.
3.4 Display Subsystem
The Display Subsystem receives pixel information from the frame buffer, routes it through the appropriate display mode, and then sends it to the digital-to-analog converters for display.
Multimode Graphics Processors
Five multiplexed multimode graphics processors (MGPs) concurrently read the contents of the image and window planes. Information from the window planes determines the color mode format that should be used to interpret the data from the image bitplanes. The Personal IRIS displays multiple images simultaneously in an overlapping window environment, in single-buffered RGB, double-buffered RGB, single-buffered color-index, and double-buffered color-index modes.
The MGPs let the system display up to 16 different windows simultaneously in various color modes. You gain the flexibility to display both static and dynamic images at will, without having to consider your color representation scheme.
With the MGPs, the Personal IRIS is the first entry-level workstation to display real-time, smooth-shaded graphics within a complex windowing environment. The MGPs also position and draw the user-definable rectangular graphics cursor or a full-screen crosshair cursor and incorporate a 16 x 24 bit auxiliary color lookup table for overlays and underlays.
High-speed digital-to-analog converters (DACs) drive the red, green and blue electron guns of the color display. When the Graphics Subsystem operates in RGB color mode, the DACs receive up to 24 bits of color information for each pixel. Eight of these bits are directly assigned to each of the red, green and blue DACs, to yield more than 16 million colors. The DACs multiplex the input from the five parallel pixel pipes. In color-index mode, the system uses pixel data packets as indices into a 12-bit-in/24-bit-out color map before sending them to the DACs. This map defines 4096 simultaneously visible colors from a palette of 16.7 million. The pixel-mapping feature of the color-index mode lets you quickly modify screen colors by simply changing the values stored in the color maps.
The Personal IRIS uses new RAMDAC technology to provide gamma correction under application control for the monitor. Gamma correction converts color intensities contained in the 12-bit color index to a range of color intensities that the human eye can discern. Thus, gamma correction gives applications full use of the 12-bit color map.
Besides controlling the timing of the interleaved parallel Multimode Graphics Processors, the Color Interface controls the timing of the SYNC and BLANK signals that structure the scanning pattern of the display device. Three oscillators provide the appropriate timing pulses to the output devices. The first oscillator supports both 60 Hz non-interlaced and 30 Hz interlaced 1280 x 1024 display resolutions with a 107.352 MHz clock. The second oscillator provides a 12.272 MHz clock to support RS-170, which produces NTSC resolution video signals. The third oscillator supports the European video standard with a 15 MHz clock and a resolution of 780 x 480.
An optional genlock board will be available to synchronize the display timing of the Personal IRIS with external video sources.
4.1 The IRIS Workspace
The IRIS Workspace provides new and experienced users with a rich, visual alternative to conventional interaction with the UNIX system, its tools, and application packages.
The IRIS Workspace extends the 4Sight Windowing System with an interactive visual representation of the UNIX file system. New users quickly learn to operate the workstation, run packaged applications, and create a personal and productive work environment, without needing to learn the complexities of UNIX commands.
These services are provided through two windowed views - the file manager and directory views.
The file manager view is a window for all interaction through the workstation. It is like a desktop, workbench or drafting table.
A new view contains a connected path from the user's home directory back to the root of the UNIX file system.
The user can move files, directories, and executable programs from directory views to the file manager view to provide a personalized road map of the system and immediate access to user tools.
Users on a network or sharing a workstation have different, personalized views of the file system, without affecting each other.
The file manager remembers where everything is, for use at next sign-on.
A directory view is a window that shows the contents of one UNIX directory (see the Figure 10). Both NFS-mounted and local directories appear. Different icons represent UNIX directories, files, devices, executable programs (including shell scripts), and links to these.
The user starts applications, opens documents, and moves, copies, or removes objects using the mouse and on-screen menus. Removal of files is, at the user's choice, immediate or indirect (through a personal trash directory). The menus also let the user print files and make tape backups of their information. Any rearrangement a user makes in the layout of a directory view is retained from session to session.
The file manager and directory views make the UNIX system easier to understand and use, allowing more of the user's time to be spent on actual applications. These tools are completely unrestrictive. Windowed applications run on top of or beside the file manager and directory views without interference.
A non-windowed application can even take control of the whole screen. When it exits, control is returned to 4Sight and the IRIS Workspace.
Since the file manager and directory views are non-privileged applications running on top of 4Sight, the user may dismiss them at any time. Some users may prefer to work in part or completely with a favorite UNIX shell, running in a window. Changes to the file system, whether caused by an application, a windowed shell, or by other users on the network, are correctly reflected in the file manager and directory views.
Friendly System Administration
The system administration package for the Personal IRIS complements the Personal IRIS Workspace. Both are based on a friendly, event-driven, graphical user interface, and make everyday administration tasks easier and more straightforward. The system administration package covers the administration of UNIX users, networking, peripherals, and file systems.
User administration is a state-based, event-driven package that tracks all users with current access to the machine. The package enables a user to add new users, delete current users, and modify the characteristics of current users. The package is fully integrated with NFS Yellow Pages and therefore is aware of remote users from networked workstations.
The networking administration package lets a network client bring up TCP/IP, NFS, and Yellow Pages by simply clicking on a button. You control the UNIX network centrally from a network server.
The peripheral administration package lets users configure new Personal IRIS peripheral options quickly and easily. Some of the peripherals covered include local and remote printers, terminals, dial and button boxes, and tablets.
The file system package lets a user easily administer local and remote file systems as well as local disks. Users can partition local disks into new file system space, swap space, and raw scratch space. Users can also easily access remote file systems using NFS.
The Personal IRIS diagnostics system is another illustration of how easy it is to use the Personal IRIS. Peripheral diagnostics are available under the system administration package to exercise peripheral components such as tapes and printers. Also available is a system diagnostic which brings the machine out of the UNIX environment and non-destructively exercises all basic components of the machine. The diagnostic test isolates failures and identifies field-replaceable units most likely to cause the failure.
System Maintenance Environment
The Personal IRIS features a friendly, menu-driven system maintenance environment. This menu lets users launch diagnostics, install software, and start the system. Software installation is also simplified to a menu-driven interface.
The screen in Figure 11 illustrates the user interface for system maintenance.
Silicon Graphics's 4Sight Windowing System lets you interact simultaneously with multiple graphics programs. 4Sight lets dedicated graphics programs and networked graphics programs coexist on a single screen.
The Personal IRIS lets you use 4Sight plus another windowing system such as NeWS to manage the window interface. In addition, end users can customize and extend the interface.
The 4Sight model supports traditional rectangular windows, plus unique state-of-the art capabilities made possible by the Personal IRIS graphics architecture. These include features such as clipping to arbitrarily-shaped windows in real-time and simultaneously maintaining multiple display modes on a single screen. The Personal IRIS'S high-speed pixel-transfer rates contribute to the robust performance of the windowing systems.
The 4Sight Windowing System uses a client/server model to manage the Personal IRIS I/O resources (such as the display, mouse, and keyboard). The Window Server (server) portion of the windowing system manages screen space for the graphics programs (clients).
The 4Sight Windowing System uses three different server models:
Network Extensible Window System (NeWS)
The Network Extensible Window System (NeWS) manages NeWS clients' access to the Personal IRIS hardware. The NeWS server manages window manipulation, access to the display device, and the generation and distribution of graphics events.
The NeWS server also supports the PostScript imaging model to provide networked distributed graphics. This capability lets users display networked graphics programs locally, regardless of the geographic location of the computer running the NeWS application. NeWS application programs access these services via their own NeWS-client interface, which communicates with the central NeWS server. In addition, the 4Sight PostScript page-description language provides a graphic arts quality imaging foundation for constructing windows and events.
Graphics Library Interface
The 4Sight Graphics Library Interface (GLI) lets applications running on IRIS-4D Series Superworkstations use the Graphics Library to directly access the Personal IRIS graphics hardware. The GLI uses the central 4Sight window manager to initiate and maintain a hardware clipping region for the GL client program. Input events are sent back to the GL client program via theGU. The GU model uses a powerful user-extensible approach to manage contention among arbitrarily-shaped windows.
To a client program, the GLI is identical to mex. Silicon Graphics' original high-performance windowing system. As a result, applications developed with the Graphics Library under mex need only be relinked to run under the 4Sight Windowing System.
Distributed Graphics Library
The Distributed Graphics Library (DGL) lets graphics routines from remote IRIS Superworkstations execute on the local Personal IRIS. In this case, the remote application's GL calls link with a DGL front end. The DGL client program passes the remote graphics requests across the network to the DGL server. The DGL server ensures that the network sends the graphics routines properly to the graphics hardware, and are displayed in the client's local application window.
4Sight Window Manager
Although the 4Sight Server provides the facilities for window management, it does not directly implement a specific windowing interface. Instead, the server contains a Window Manager process that handles the actual window management details. This design lets developers and end-users customize their windowing environment by implementing their own window manager programs.
4.3 Operating System and Programming Tools
IRIS-4D Series Superworkstations include an enhanced version of the UNIX V.3 operating system called IRIX. IRIX incorporates many features of the Berkeley 4.3 BSD UNIX release, plus many local system enhancements to support real-time graphics. This extended software environment permits easier connectivity and improved system throughput. Other operating system enhancements include the Extent File System (EFS), a unique UNIX file structure handler that improves file handling performance two-fold over the standard System V file architecture. EFS is modified so it writes files in large extents to the disk. By writing disk files in this way, EFS improves disk seek times, which results in improved overall system performance.
To make the Personal IRIS software system less cumbersome and to use fewer system resources, the system software is divided into two major components.
The application environment, shipped with all systems, includes system support for all graphics applications, the IRIS Window System (4Sight), IRIS Workspace, QuickPaint and QuickModel packages, the System Administration package, TCP/IP, and base UNIX commands.
The development environment option indudes the C compiler and all header files and libraries necessary to develop applications which run on the graphics subsystem and 4Sight.
The UNIX 4.3 BSD TCP/IP extensions provide easy connectivity in a networked environment. An Ethernet controller provides an industry-standard communications protocol for the IRIS-4D Series Superworkstations. In addition, Silicon Graphics supports the Network File System, which provides transparent access to files across a network. Adherence to these industry standards lets users easily integrate IRI&4D Series Superworkstations into existing computing environments.
The operating system software of the Personal IRIS Graphics Subsytem includes several significant enhancements and provides upward compatibility for users. These enhancements fall into these areas:
UNIX 4.3 BSD TCP/IP provides easy connectivity. This industry-standard communications protocol uses an Ethernet controller that is standard on the Personal IRIS. Silicon Graphics also supports the Network File System (NFS) that supports transparent access to files across a network. Adherence to these industry standards permits easy integration of the IRIS-4D Series Superworkstations into existing computing environments.
The diskless Personal IRIS addresses the needs of networked environments. Diskless support lets a network client machine access all files and use virtual memory paging over the network through NFS; this eliminates the need for a local disk drive. The diskless client organization also lets a user administer work groups of Personal IRIS workstations centrally (on a file server) rather than individually. Diskless support also introduces the ability of the system to allocate backing store within the file system, thus eliminating the need to allocate a structured swap partition for swap space.
4.5 Graphics Library and Compatibility
IRIS Graphics Library
Powerful IRIS Graphics Library (GL) software routines let programmers take full advantage of the advanced capabilities of the Personal IRIS hardware. Programmers can access both high-level C and FORTRAN subroutine calls. The GL simplifies development of highly interactive, real-time graphics applications. The GL routines support object interaction, manipulation, drawing and rendering.
The Graphics Library contains all of the tools that a programmer needs to create highly interactive applications. The Graphics Library supports graphical input devices such as the mouse, keyboard, digitizing tablet, and dial & button box. When used with the window manager and other sophisticated user interface techniques, the Graphics Library lets developers create highly responsive computing environments that provide a customized interface to the application program. Programs written to provide immediate response to user input will offer the highest levels of productivity.
The Graphics Library's manipulation routines bring the power of the IRIS Graphics Subsystem to the user. Programmers can create their own object, world, and viewer coordinate systems and apply orthographic or perspective projection to map them to any sized viewport on the graphics screen. They can also translate, rotate, scale, and display objects in real-time by taking advantage of double buffering routines. These routines control the graphics hardware directly.
Drawing and Rendering
The Graphics Library includes powerful primitives that let the programmer create graphical objects such as points, lines, arcs, circles, polygons, parametric curves, rational bi-cubic surface patches, and Gouraud shaded, Z-buffered solids. Programmers can quickly create complex objects by using combinations of these primitives. They can ignore the details of generating objects, and can concentrate instead on building larger graphic scenes and moving the objects interactively. All of these routines may be called directly from a program and executed in immediate mode, or they can be compiled in a hierarchical display list to provide instancing capability.
Graphics Library Compatibility
The Personal IRIS Graphics Library contains all of the features of Silicon Graphics's IRIS GT Graphics Library except alphablending and some primitives used to draw into the Z-buffer. The use of the IRIS GT Z-buffer as a fully functional additional frame buffer is not supported by the Personal IRIS. However, the Personal IRIS supports writing and reading of pixels to and from the Z-buffer, letting programs use it as a resource for instantaneous storage and retrieval of image data.
The Personal IRIS supports the enhancements described below which were added to the Graphics Library with the release of the IRIS GT.
Graphics Library lighting routines provide these capabilities:
Graphics Library routines let programmers read, write, and store color values in the image memory buffer (8 or 24 bits), the 24-bit Z-buffer, and the 2 or 4 overlay/underlay planes.
A new mesh primitive lets users manipulate solids at high rates. This new capability is very useful for applications where objects are represented by spheres, conic sections, or fractals.
Optimized Graphics Library routines that read and write image data between host memory and the frame buffer provide fast pixel access for applications that require quick image manipulation.
Pan and Zoom
New Graphics Library routines access all bitplanes of the frame buffer to pan and zoom large images within windows in real time.
The Personal IRIS provides a new level of realism when rendering 12-bit or 4-bit shaded solids in motion. It automatically turns on hardware dithering for:
5.1 Different Users, Different Needs
The Personal IRIS is designed for two distinct users: the developer, who writes application programs to run on the Personal IRIS, and the end user, who uses these applications.
Once you know who will use the system, you can design hardware, software, and manuals that accommodate the needs of the user. That's what creating a usable product is all about - finding out what your users need and designing the product to fit those needs.
For the End User...
End users need a system that makes their jobs easier - not one that gets in the way. It needs to:
When you're ready to set up and learn to use the Personal IRIS, the hardware, software, and manual complement each other to provide a clear, easy path. We conducted a series of usability tests where we presented end users with the system in its packaging (which included the manual) and had them try to set up and start up the system. After correcting several design flaws in all three areas, we repeated the testing with another group of users, and the average time to unpack, set up, start up, and log in to the working system was 15 minutes.
There is only one manual that ships with every Personal IRIS: the Personal IRIS Owner's Guide. This brief, easy-to-understand manual is targeted towards end users who want to know only what they need to know to run their application and to take care of the system. This half- inch-thick book contains all the UNIX information an end user will ever need. It teaches the user how to use the IRIS Workspace, administer the system, use electronic mail, transfer files across the network, and how to diagnose the system when it's not working properly. The IRIS Workspace and its visual system administration tools make such a manual possible. After several discussions with current IRIS 4D customers, we designed software that provides a friendly interface to the common UNIX commands and utilities that end users need to manage their data and keep the system running smoothly. We also made the system smarter about itself so it can automatically perform administrative tasks that, in the past, users had to do by themselves.
When you're ready to expand the capabilities of the Personal IRIS, you can do it yourself. The hardware options, such as a disk or tape drive, are simple to install, and the visual system administration lets you configure the new hardware in minutes. And, the new software installation tool makes adding new software fast and easy.
Finally, if anything goes wrong with the system, you're covered. The manual shows you how to run the simple diagnostics that report failures down to a module that you can replace by yourself. If hardware is not the problem, the manual shows you how to use the software crash-recovery techniques to restore your software to the level of your most recent backup. And, as always, Silicon Graphics, Inc. provides several excellent support programs.
By constantly tracking the development and integration of the three main components, the hardware, software, and documents, we have created a usable system. By working closely with customer and field support and the education groups, we have created a complete product that addresses the needs of an end user.
For the Developer...
Developers share most of the needs of an end user and, in addition, have their own separate set of needs. For the developer, the Personal IRIS must:
Finally, the development document set provides comprehensive, understandable tutorials and reference information on every part of the development environment.
Silicon Graphics understands that developers create applications that run on several platforms and that platforms are only usable and attractive if they support both official and de facto industry standards. Our 4Sight windowing system supports NeWS and GL windows, an interface that provides compatibilty with applications written for our old windowing system, mex. The Personal IRIS also supports TCP/IP, NFS, UNIX System V, DECnet, and IBM 5080 and 3270. Our commitment to supporting standards is clear.
The Personal IRIS extends the range of the 4D product line; this is a valid extension only if the Personal IRIS is truly compatible with the rest of the line. After carefully designing the Personal IRIS for compatibility and bringing in several outside developers to do trial ports from their current 4Ds to the Personal IRIS, we can confidently state that the systems are binary compatible. Writing portable code to run on all systems is easy and well documented. And, if you are not already running your application on a 4D, there is comprehensive documentation that shows you how to port to the 4D family from an older IRIS or from any other type of UNIX system.
Finally, the Personal IRIS is an attractive system for the developers' end users. We've designed a product that our current developers can easily port to one that will also attract new developers. This increases the number of applications end users can run on the system. Usability, availability of quality 3D applications, and an affordable price make this a system end users won't want to pass up.
5.2 Usability Testing
No matter how well you think you know the needs and abilities of your users, you can never be sure you made all the right design decisions until one of those users actually tries to use the system. Usability testing uncovers deficiencies in the design of hardware, software, and manuals early enough in the development process that you can eliminate them.
What is Usability Testing?
Usability testing starts with a design goal. For example, "a completely naive user should be able to set up and start up the system in 20 minutes". To test whether the product meets the goal, you find some completely naive users, package the prototype product in prototype packaging with a prototype manual, and ask the users to set up and start up the system. You record these tests on video tape, and summarize the results for the design team. They in turn rework the design of hardware, manuals, or both. Then you test it again.
What Was Tested on the Personal IRIS?
We tested several tasks a user must perform with the Personal IRIS. We tested some tasks only once or twice, and other more difficult tasks three or four times. Here is a list of the tasks:
What Did We Gain?
By testing the usability of the Personal IRIS before our customers do, we: