Printer Processors:

Most printers contain a processor, sometimes several of them. Tasks are:

  • Storing sufficient of a page image to meet the print machinery's real-time demands.
  • Making up the page image from the mixture of text, vectors and graphics sent in the print language
  • Possibly, editing material like pictures and adjusting text so that it looks better on the page.

At one time printers were dumb mechanical things. Teletypes had just one transistor and a solenoid; everything else in the printer worked by mechanical logic. The typefaces was cast in metal. A typical print action was rotate a character on a wheel into position and then bang it against a ribbon and paper. Purely mechanical printers had various problems; for instance they were expensive to buy and although they were often built to last they could be temperamental to maintain. They couldn't print graphics unless you count ASCII art.

Modern printers - laser and dot matrix machines - began to be made around the time microprocessors became available in 1970. Microprocessors have been a vital part of making these more complicated printers affordable.

Dot matrix printers don't look as though they need much processing power, (see below)but even they might have three processors, one handling communications, another controlling the motors and a third providing character data to the printhead (The MT 490 was an example).

Laser printers usually require most processing power. The processor and memory needed could add several thousand dollars to the cost of a printer in the 1980s. The primary purpose of laser printers was to give the prestige of pages that looked very neatly typed but could include graphics like a logo or a picture. The white-paper office that didn't need letterhead or pre-printed forms became a possibility, so there were cost savings to be had as well. However laser printers needed a lot of memory to do this, potentially more than a megabyte to produce one page of 300dpi print and graphics. To deal with a page of handle the kind of graphics tasks people now expect to print, full page pictures at 1200dpi and beyond, a mono printer can easily need 96 megabytes and a colour machine four times as much.

Little inkjet printers generally don't have much of a processor, it wouldn't be affordable with their low price tag; they rely on the user's PC. Laser printers do have a substantial processor delivering their ability to process the PCL and PostScript languages.   In recent times the processor in the printer has seemed less important, it is often unmentioned in specification sheets, or the speed is given but the type is not stated. Indeed details of the processor might not help much, special circuits to handle font construction, dithering patterns and colour-space transformations can be more important than the speed of the processor.

The need for printers to have a powerful local processor is debatable.

Use the Computer

Problems with building processing power into printers are that it wastes computer resources and puts an arbitrary limit on the life of the printer itself.

Given some extra memory most users would choose to put it in their computer, where it can help with every task and not just printing. Likewise if there is money to spend on a processor its better putting an extra pipeline in the CPU rather than in a peripheral.

Putting significant computer power in the printer also plays into the hands of Moore's law, which effectively suggests computer power will double every couple of years. After ten years the chassis and control electronics in the printer are still good, but the printer is saddled with a very outdated processor and too little memory for new tasks.

For this kind of reason some industrial printers have an external Raster Image Processor (RIP). The Printers RIP can be upgraded without interfering with the hardware.

Processing in the Printer

The contrary argument is that all printers need some local processing power, to take the real-time burden off users computers if nothing else. In consequence, it makes sense to offload from the PC as much of the print processing problem as seems practical. The sort of processing power and memory a printer needs to deal with a page is no longer very costly. Gigabyte RAMS and gigahertz processors are the sort of things that also appear in set-top boxes, PVRs, engine management, switches and routers so they can be mass produced at quite a low price-point.

Devices that might print these days include cameras and smartphones which don't all have a great deal of memory and processing power. Printers often have a scanner making them into a digital copier, and a USB port and photo-card slots so that they can handle text and photos without a PC. Printers are performing tricks like printing and then scanning in and marking student test pages - that sort of thing needs a fairly powerful processor, memory and an operating system.

The falling cost of computer power allows printers to include powerful devices at a low price. That potentially removes some of the distinctions between printers that used to be important like speed and resolution. The very first laser printers actually ran at around 60 pages per minute - they competed with bandprinters and other fast machines. One of the key reasons why later printers ran slowly is that the processing power to render a page image in less than a second was expensive - so there was not a great deal of point making fast print engines unless they were intended to sell for a premium price.

At one time processing power was a significant point in buying a printer. As printers compete on capabilities other than just speed and resolution attention might shift back to the processing ability they offer.


Processing Power

Anybody used to the language of PC overclockers and gamers will find printers strange. There are precious few Pentiums or Athlons, even the Atom and the Via C5 are overlooked.   Nvidia and AMD are interested in graphics but printer graphics processing is rather different. Oak, who were once known for video graphics chips are now part of Zoran, they are still involved in graphics, but also design laser printers. Printers do use some chips with the ARM cores popular on smartphones - HP have used them on the JetDirect for instance and Samsung use them in their Chorus series print processorr chips. Printers can need substantial computer power but they don't have to be code-compatible with the PC or with Windows. Printer manufacturers are looking for a very different value proposition.

Printers tend to use the kind of processors used by other embedded systems: SPARC chips such as the Fujitsu MB86832. PowerPC, MIPS like the Toshiba TMPR4955, MIPS 64 bit PMC Sierra RM523 and particularly the Freescale Coldfire - successor to the Motorola 68000 which was very popular in early laser printers (as well as being the basis of the Apple Mac and Atari).

In the early days processor speed and memory were very critical to laser printers. But then in recent times most printers have seemed adequate in that respect, so attention shifted to speed and resolution, and only refocussed on the processor and memory when a printer wasn't performing to specification.

The comparatively low speed and resolution of a lot of older printers was not so much a limitation of their mechanical inking processes. They didn't work all that quickly because there was no point since the computer - the local PC or their on-board formatter-wouldn't be able to keep up.

Delivering a gigabyte of memory and a gigahertz of processing power is no longer an expensive issue. There are special chipsets to take page description languages such as PCL and PostScript and turn them into a display list, then bands waiting in memory.


Real-Time

In principle a printer doesn't need any processing capability of it's own, it could just make use of the processing power provided by a nearby PC. Some low cost inkjet printers do take this general approach as outlined later. However there are problems with it.

Print mechanisms make some real-time demands. Dot matrix and inkjet printers provide examples; the dot matrix is considered here because the printheads are less complicated. Dot matrix heads typically have 9 pins with which to write a dot-pattern that will be read as text. The printhead rides across the page in a carriage, driven by a motor. Once the motor sets off from the left margin the carriage has momentum, the pins must be fed with data at the correct time because if they aren't the carriage will be in the wrong place and the page will be spoilt. If the printer is entirely dependent on a local PC then servicing the printhead pins will have to take precedence over anything else the computer is doing.

The printer might store the dot-pattern in memory before the printhead sets off. Then as the printhead moves a counter, timer, or position sensor can fetch the patterns needed and place them on the page. The computer still has the task of making up the pattern and overall control, but the demands are no longer real-time. When a line completes, if the computer hasn't yet made up the next line the printhead can stop and wait.

The printer does need a small amount of memory to do this. It also needs counters to work through the memory positions as the computer stores them, and as the printhead uses them.

Text Characters

Printers generally produce text. Rather than send dot-patterns for the printhead to use it would be preferable to send character codes to the printer and have a local character-generator circuit create the patterns needed. That reduces the data the computer usually has to send to about an eighth. A computer is a valuable resource to it's user, a printer with local intelligence can offload processing effort, so the computer is more responsive.

Some early printers were built with special printing circuits but the best way to do the job was to use a relatively low cost microprocessor and some memory to act like those circuits.

Now suppose the printer's processor is busy when the computer has data to send. The computer could wait, but the printer can be made more responsive with a second processor that has nothing to do but queue data ready for use. If the chip can be cheap enough then it makes sense to have a communications processor.

Using the microprocessor abilities more tasks can be done in the printer. Changing to a different font is possible, the printer holds several different dot-patterns for characters in it's local memory and the computer just sends a selection command. Fonts for characters might be pre-programmed in a ROM, they could also be downloaded from a computer for use later. Likewise text size, coloured backgrounds and borders might be specified. Text might be printed vertically instead of horizontally, or rotated.

Selecting between graphics and text modes, fonts and so forth can be done in ASCII code by prefixing an instruction with the escape code.

Printer Language

A very popular letter-quality printer in the 1980s was the Diablo 630. This was a daisy wheel printer which could use proportional spacing, underline, double-strike, strike-out, bold and shadow print. Margins, horizontal and vertical tabs could be set and by adjusting the carriage and line feed motors and striking the full-stop continually it could draw graphics, albeit crudely. The instructions all begin with an escape character.

In Diablo 630 code <Esc>O turns on bold, <Esc>E turns on underline, <Esc>M turns on Auto-justify and <Esc>3 turns on graphics mode.

Because laser printers were often bought to replace daisywheel printers they very often supported the Diablo 630 language. What begins to emerge is a print language.

Print languages became a problem because as graphics became a priority most printer makers came up with their own variety. So for instance <Esc>E sent to an Epson FX850 would turn on emphasised mode not underline. Computer software setup for the wrong printer would probably print gibberish. Things became very messy if a user had several software packages and a couple of printers - things would go to the wrong printer and waste paper.

Operating System Drivers

To sort the problem of packages and printers out out Windows and other multi-tasking operating systems provide a uniform Application Programming Interface (API) to programs. Software packages talk to the API, the API channels information through the appropriate printer. The print API is usually known as the print driver. Modern print drivers are actually complicated subsystems of the operating system which might translate what the user wants to print through several stages, finally using the correct print language for the hardware.

Another way to sort out the printer language problem is for the printer makers to adopt some standards. Dot matrix and inkjet printers usually emulate the Epson Esc/P code. For laser printers PCL and PostScript are prefered.


Differences Between Screen & Print

Computers usually give the impression that what is going to be printed is already on the screen. System designers have put a lot of effort into creating systems that give the "What You See Is What You Get" experience - the acronym is WYSIWYG. This simplicity generally makes users more productive, things work intuitively. However the simplicity is an illusion, what is on the screen often bears little resemblance to what is in the computer's working memory.

Information takes many forms in a computer, text, numbers, formulae, vectors, bitmaps. Text sounds familiar but the form in the computer may be less so, it is probably held as a linked list of strings rather than as anything very like what is seen on the screen.

One of the main tasks for the processor and graphics co-processor in a typical computer is to create the screen graphics. A graphical operating system provides each application with a window onto the screen and an API (Application Programing Interface) to send information and recieve when it has focus. The screen is made to look simple, how screen content is created is far from simple.

  • Screen resolution is often just 85 dots per inch whilst print resolution is typically 300, 600 or 1200 dots per inch. People hold printed material closer to their eyes and are more critical of it's look.
  • Printers generally lack the greyscale that screens have. What looks grey on the screen prints to the page as a fine pattern of black and white dots, printers have high resolution partly to compensate for the lack of greyscale
  • Printer handling of colour is completely different. Screens use an RGB colour scheme for transmitted light but paper uses a CMYK colour scheme for reflected light.
  • Paper comes in a variety of styles, almost non of them bearing much resemblance to screens. Paper documents may be reformatted to reflect the fact that screen and page have different orientations and that there are several different page lengths and possible layouts for paper.
  • Printers can have accessory input and output trays, a duplexer and finishing options that might be selected. The selection of paper size might dictate a tray, but equally the selection of a tray might suggest reformatting the document.

Printed pages may look like what is shown on the screen but their makeup is likely to be quite different.

At one time the computer sent the printer and if the printer couldn't do the job because the paper size was wrong it would simply print in the wrong places. Later printers tried to detect the paper size and show an error if instructions from the computer are wrong.


Host Based

Low cost home inkjet printers using a USB connection don't actually make up the page themselves, the user's PC does it in the driver software. This pre-processed raster image goes to the printer. The printer does not strictly need a processor, although it probably will use a microprocessor to translate information from packets on USB to a swath by the printhead. Printing action can pause at the end of a line if the users computer is busy and doesn't keep up with the printer.

Cheap laser printers that use "host based processing" do the same thing. The user's computer turns the data into a page image and sends that to the printer. The problem for a laser printer is that the whole page image needs to be stored, not just a single swath across it. Either there must be sufficient memory in the printer, or the print task must take priority in the computer. A page will be ruined if the raster image cannot be completed as the page is produced.

Raster Image Processor

At the other extreme are professional printers like those used by printers for pre-press checking. These often use specialised Raster Image Processors (RIPs) to create pages exactly as their plate-making machine and press will handle them. External RIPs are often fast PCs with lots of RAM and possibly a special video processing board. To ensure accuracy and speed in a job where a lot of money is at stake the printer actually has it's own PC alongside it.

Formatter

There are at least two processors in most laser printers:   the engine controller deals with motors and sensors whilst a more powerful formatter with a significant amount of memory makes up the page.   Interest usually focuses on the abilities of the formatter, on fast colour printers it can be a fairly powerful computer. The formatter takes the page description language (PCL, Postscript, PDF, XPF)  and makes the page image or raster ready for print.

Most laser printers have their own RIP like device called a formatter. These have a processor, flash RAM for the program(s) and dynamic RAM as a workspace.  When the first laser printers were built the formatter was an expensive item, so the 1985 Apple LaserWriter had a Motorola 68000 running at 12MHz, 1.5 megabytes of RAM and 512KB ROM which was considered almost mainframe class computing for the time and making the price $6995.

Processors get faster and memory cheaper as semiconductor design improves in accordance with Moore's Law. Affordability of the formatter processor and memory has become less of a problem over time. Processors now tend to have speeds rated to about 600MHz - devices like the Motorola Coldfire V5x often packaged as part of an ASIC single chip solution. Printers often come with base memories between 64 and 256 megabytes - sufficient for all but the most demanding pages.

Although cheap home inkjet printers can use the power of a nearby PC to format pages that isn't entirely desirable. Even if the printer has a scanner and photo-card slots it means the PC has to be turned on to copy and print photos for instance. That is more of a problem with PCs shared on an office network, particularly if it means one machine slowing down whilst another prints. As the cost of computer power has fallen more inkjet printers have their own processor and operating system - and increasingly they have bigger LCD screens.

Information in a computer is a mixture of text, graphics primitives, vectors and bitmaps. The result on the page is a bitmap. Print languages are a mixture of the same things, but the priorities are changed to optimise the way data is presented for printing.

Printers do usually have an operating system - Express ThreadX is a popular choice, HP LaserJets use Lynuxworks LynxOS.

There are several print subsystems by specialists like Zoran, Global Graphics, Marvell Semiconductor and Software Imaging.

A curious point about print formatters is that the combination of Intel processor and Microsoft operating system that are so dominant in desktop computing are almost never found in a printer. There are something like 100 million laser-printers and several hundred million inkjets so it isn't a small market. Delivering cost-effective computing power in a device like a printer is a different world. However as printers get big LCD touch-screens we might assume they will also need user-responsive operating systems