Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesHow PrintGear Works


September 1996 / Core Technologies / How PrintGear Works

A new architecture designed for low-cost printers requires an inexpensive yet powerful processor.

Andrew Shaw

Adobe got its start with its PostScript page-description language (PDL), a rich set of resolution- and device-independent graphics operators that assemble an image on the printed page. Its versatility and device-independence have made PostScript a standard on output devices ranging all the way from ink-jet printers to printing presses.

However, PostScript's very sophistication makes it a big-ticket item on a low-cost printer. That's because implementing the PostScript interpreter requires the equivalent of a separate computer inside the printer. If the small office/home office (SOHO) mark et is going to benefit from high-resolution graphics and text, a different -- yet affordable -- printing technology is necessary.

Adobe's PrintGear technology is a new printing architecture designed specifically for low-cost, high-quality output. At the core of this architecture is a custom chip, the PrintGear Imaging Processor (or PrintGear processor for short). This processor supplies the performance required for high-resolution output, yet helps keep the overall cost of the output device low.

PrintGear Goals

The PrintGear design team faced two opposing goals. First, the printing architecture had to offer high performance, great print quality, and unique features such as status feedback and cross-platform support. The second design goal ran counter to this: The technology had to be inexpensive.

It quickly became apparent that achieving such ambitious goals would require a top-to-bottom redesign of every component involved in the printing process. This included the printer soft ware, the printer firmware (the programs that execute in the printer), and the printer hardware itself. By using custom-designed hardware that places just the right amount of smarts into the printer, the team hoped to achieve the speed and quality associated with much more expensive printers. Also, the custom hardware would eliminate a number of parts in the design, thus keeping the printer affordable.

Building a New Printer

This custom hardware made it necessary to come up with a radically new design for the printer's controller board. A printer controller board -- which implements that separate computer mentioned earlier -- typically contains a processor of some sort to run the firmware programs; ROM to hold the firmware; and RAM to hold downloaded fonts, the page image, and working data. Then there's the all-important support electronics for things such as memory and I/O controllers. With all this stuff, the controller board contributes significantly to the printer's cost.

Pr intGear's key innovation borrows the fundamental idea behind RISC processors and applies it to printing. RISC processors support only a small set of commonly used instructions, but those instructions execute at very high speed. The PrintGear Imaging Processor's design resulted from analysis that showed that the most commonly printed SOHO documents use only a few basic imaging primitives.he engineering team optimized the PrintGear chip so that its hardware supports the high-speed rendering of these basic imaging primitives. Text, for example, is one of the most common basic imaging objects for SOHO printing. Adobe made a special effort to ensure that this class of objects was rendered at the highest possible speed. As a result, the processor can render text at over 75 million pixels per second.

Similarly, where RISC processors typically have a very complete set of instructions for common operations such as loading and storing data, the PrintGear processor has a complete set of raster imaging instruction s needed for most printing tasks. For example, the chip provides direct hardware support for all 256 Windows raster operation (ROP) calls.

The PrintGear processor also handles a variety of other functions, such as RAM and ROM addressing, system timing, and parallel port I/O. For instance, the parallel port's 25 signal lines run directly into the processor, and are managed by it. The diagram "PrintGear Imaging Processor Functions" shows the main functions handled by the processor. Rolling all these functions into the PrintGear processor eliminated the number of support chips required on the controller board, thus reducing its overall cost.

The PrintGear Controller

To lower printer costs further and to maintain good performance, Adobe produced a "reference system" schematic, dubbed the PrintGear controller, that supplies the remaining support hardware. The printer vendor uses this schematic to build an actual controller board. Since the schematic is based on the PrintGear processor, inexpensive ROM, RAM, and CPU can be used in the controller board's design.

Because the PrintGear processor directly implements a large number of imaging operations, the PrintGear controller's firmware -- which includes the Printer Control Language (PCL) interpreter -- fits in less than 256 KB. Adobe tuned its proprietary Memory Booster Technology for use with the PrintGear processor so that only 1 MB of RAM is necessary to support 600-dots-per-inch (dpi) printing. And because the PrintGear processor already incorporates so many system functions, a low-cost, 16-MHz Motorola 68EC000 was sufficient for other CPU tasks.

The biggest job the 68EC000 chip takes care of is the built-in PCL 4.5 emulation. Since the 68EC000 runs the emulation with plenty of cycles to spare, it can also handle other housekeeping chores. Such jobs include display list preprocessing, page pipelining, automatically detecting the printer language, managing memory, and relaying printer and job status bac k to the user.

The Software Side

Building so many functions into the PrintGear processor meant that the rest of the PrintGear architecture could be optimized to take advantage of it. The diagram "The PrintGear Printing Process" shows how the other parts of the printing system work with the PrintGear processor.

A print job starts when a user chooses the Print command. The operating system's graphics subsystem (Graphical Device Interface (GDI) in Windows, QuickDraw on the Macintosh) passes the application's calls through to the PrintGear printer driver. The PrintGear driver then converts these image object calls into PrintGear imaging operators. The result is a very compact page description, or display list. Typical objects represented in the PrintGear display list include bit maps, characters, lines, simple geometric shapes, and patterns. This page description is then transmitted to the printer using standard I/O mechanisms.

Fast I/O rates are unnecess ary for high-performance output because PrintGear print files are typically very small (about 44 KB for a spreadsheet page). However, the PrintGear controller is capable of accepting data at very high speeds (up to 200 KB per second) and still render the printed page on-the-fly. This ability to accept print data at a wide range of speeds means that PrintGear printers can work in a variety of environments, including direct connection (serial or parallel), Macintosh LocalTalk connections, printer-sharing devices, and networks.

The Plummeting Price of Printing

Integration of the PrintGear processor into the PrintGear architecture means that the performance and quality formerly associated with business-class printers retailing for around $800 can now be offered in a SOHO printer that sells for less than $500. It is noteworthy that the first PrintGear printer -- the NEC SuperScript 860 -- sells for around $499. It offers resolution of 600 dpi resolution and print speed of 8 pages per minut e. (For our review of the SuperScript 860, see "Quality Printing, Fast and Cheap".) These performance gains and cost reductions result directly from the printer's use of the PrintGear Imaging Processor and the new Adobe PrintGear printing architecture.


PrintGear Imaging Processor Functions

illustration_link (19 Kbytes)

Adobe's processor implements high-speed imaging operations and system bus control signals.


The PrintGear Printing Process

illustration_link (24 Kbytes)

Adobe completely revised the print architecture to take advangtage of the PrintGear processor's features.


Andy Shaw is a technical product manager in the Personal Printing Group at Adobe Systems. You can reach him at ashaw@adobe.com .

Up to the Core Technologies section contentsGo to previous article: Go to next article: Better Java ProgrammingSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network