One of the most competitive areas in the personal computer market today is the race to provide printing solutions to meet the needs of the entire family. The specifications for a successful printer in this arena include technologies that provide continuous improvement in throughput and print quality, low cost, attractive small size, quiet operation, ease of use, and designs that lend them-selves to high-volume production.
Design teams at Hewlett-Packard divisions that are responsible for HP color inkjet printers decided to take a phased approach to meet the challenges posed by these specifications. The HP DeskJet 820C (Article 1) is the first product resulting from this evolutionary product plan. The DeskJet 820C contains a writing system, print mechanism, and package leveraged from the HP DeskJet 850C and a new electronic, firmware, and software architecture called the Printing Performance Architecture (PPA).
PPA grew out of the recognition that newer generations of personal computers have the bandwidth to take on some of the computing tasks typically relegated to the printer, and many software applications are rapidly moving away from MS-DOS ) to a Microsoft Windows ) environment. With this realization, the design teams developed a software, firmware, and digital electronics architecture that uses the computing resources of the PC instead of duplicating these resources in the printer. This architecture helped to lower the cost of the printer by reducing RAM from 1M bytes to 128K bytes, ROM from 2M bytes to 64K bytes, and the gate count of the largest ASIC by 25%.
With the reduction in the logic-supporting hardware in the DeskJet 820C, printer functions such as swath cutting and data formatting were moved into the software driver. Article 2 discusses the design of the PPA printer software driver, which implements functions traditionally found in the printer, handles PPA communication between the host and the printer, and provides PCL emulation for DOS application support.
Because so many printer functions are implemented in the host software driver, fewer functions are needed in the firmware for the DeskJet 820C. As described in Article 3, “Don’t touch the dots” was the firmware designers’ golden rule. This means that firmware in the printer was designed so that it is only responsible for taking the formatted data from the host and sending commands to the motor and print cartridge to place the dots at the appropriate places on the paper. The printer firmware is also responsible for user interface and status functions.
ASIC development for the PPA printer controller and the inkjet printhead drive electronics is described Article 4 and Article 5 respectively. A typical digital controller for a printer contains a micro-processor to control the printer, RAM for incoming data, ROM for firmware, and custom logic for printer-specific functions. For the DeskJet 820C, these functions were integrated on one chip and optimized to meet the requirements of PPA. The pen drive electronics are responsible for driving signals to eject the ink from the pen and providing a control system to maintain a constant temperature in the active area of the pen. For the DeskJet 820C’s pen drive electronics, the functions of four ICs were integrated in one chip, and all the electronics related to the pens were moved onto the carriage’s printed circuit assembly.
Today, key design decisions associated with developing a microprocessor not only focus on technical requirements such as a higher speed, but also on business and marketing requirements. A few years ago HP began developing a line of PA-RISC processors to meet the needs of higher-volume and more cost-sensitive products. Article 6 introduces four articles that describe the latest proces-sor in this line, the HP PA 7300LC. The HP PA 7300LC processor is optimized for entry-level to midrange high-volume systems such as workstations and servers.
The PA 7300LC processor is the result of leveraging the superscalar CPU core from the HP PA 7100LC processor, adding a large embedded primary cache, and reducing the chip area and pipeline stalls. Article 7 describes the PA 7300LC microarchitecture, the CPU core, and the memory and I/O controller. The leveraging effort, the chip area reduction, and the redundant cache RAM arrays are discussed in Article 8.
No matter how much leveraging is done or how mature the IC fabrication process, functional verification of a new chip is always an important step in the process. Article 9 describes the processes used in the presilicon and postsilicon phases to verify the correctness of the PA 7300LC processor.
The HP 9000 D-class server (Article 10) and the HP 9000 B-class workstation (Article 11) are examples of products that use the PA 7300LC processor. The D-class server is targeted for the high-volume environ-ment of departmental and branch computing. The article includes a comparison between different models of D-class servers that use HP processors other than the PA 7300LC. The HP 9000 B-class workstation is comparably priced to the HP 9000 Model 715 workstation but has superior performance and I/O capabili-ties. The article focuses on how cooperative engineering between the various entities involved in product development helped to reduce the time to market for this product.
Software testing is always one of the most critical phases of the software development process. If test planning is late or inadequate, the test effort can cause late, or worse, low-quality products. The level of testing and the pass/fail criteria vary with the type of software. For example, software used in video games would not be tested the same way or have the same pass/fail criteria as software used in patient monitors. Article 12 describes the processes, languages, and tools the authors have developed for testing safety-critical software. In this case the safety-critical software involves software used in the HP OmniCare patient monitors, which monitor the physiological parameters of critically ill patients.
The evolution of the software testing process for the HP OmniCare patient monitors and resulting test tooling called testware are described in the first article. The next article (Article 13) describes a high-level programming language called ATP (Automatic Test Processor), which allows the integration of existing test processors used for validation. The AutoCheck program (Article 14) evaluates test files and documents the results of the evaluations. The final article (Article 15) describes how these test tools can be used to help in testing localized software.