Electrical computers and digital data processing systems: input/ – Input/output data processing – Direct memory accessing
Reexamination Certificate
2002-07-24
2004-06-22
Fleming, Fritz (Department: 2182)
Electrical computers and digital data processing systems: input/
Input/output data processing
Direct memory accessing
C710S023000, C710S027000, C347S005000
Reexamination Certificate
active
06754733
ABSTRACT:
TECHNICAL FIELD OF THE INVENTION
The technical field of the invention is printer controllers.
BACKGROUND OF THE INVENTION
Printer controllers for computer systems have steadily grown in sophistication and performance. Digital signal processors are increasingly used to perform the wide variety of tasks required which include a high level of signal processing capability and multi-faceted interface requirements. Memory control is centralized in a memory interface controller function. These systems use increasingly large memory functions of several types, such as synchronous DRAM (SDRAM) and flash memory.
FIG. 1
illustrates the prior art steps required to process the input data that a printer typically receives from a conventional personal computer (PC). The output from the PC normally is supplied by a printer driver
101
that prepares an output print file. This file includes a set of instructions and data in a page description language (PDL) or compressed bitmap format. These instructions and data may be transported to the printer via IEEE 1284 (Firewire) or Universal Serial Bus (USB) cabling or over a local area network and stored in an input buffer memory
102
.
The first computational step in the printer controller pipeline is interpretation
103
of the data. The display list from interpretation
103
includes a description of individual elements of graphics data or text data along with the position of these elements on the page. The display list may be in a banded or a non-banded format. In a banded format discrete bands are defined and formed as a part of the processing. After rendering, a number of these bands collectively form a full printer controller output page. In a non-banded format, each page is interpreted as a unit. After rendering, this unit forms an integral part of printer controller output.
The rendering pipeline stage
104
reduces the interpreted data of the display list to printer specific raster data. This process is sometimes called rasterization. The output of the rendering process is a bit map format in which discrete digitized dots (pixels) are generated to control the output device (e.g. ink jet pen, laser drum) with proportions of the colors cyan, yellow, magenta, and black. The rendering step is well suited to digital processing operations commonly used in digital signal processor devices. After rendering, the bit map data is stored in an output buffer memory stage
105
. This bit map data is sent as needed to the printer output mechanism
106
.
FIG. 2
illustrates a high-level view of the full complement of printer pipeline functions of the prior art. The input data has a variety of sources, such as spooled jobs on disc
201
, parallel printer port
202
, Universal Serial Bus (USB) port
203
, Ethernet TCP/IP port
204
and IEEE 1284 (Firewire)
205
. Each data source has its specific data format. This data must be reduced to a common format for processing in the pipeline. Streams interface unit
207
adjusts the format of the input data as required. For example, data arrives in parallel form from parallel printer port
202
and is converted in streams interface unit
207
as necessary for uniform processing in later stages. Likewise, streams interface unit
207
often carries out format adjustments upon data from USB port
203
in queue coming from the host processor.
Streams interface unit
207
sends data to the path that performs parallel interpretation of the composite postscript
208
, printer control language PCL
210
or other PDL interpreter
210
. Page pipeline block
209
re-assembles the results of the interpretation process into page format for page oriented processing before submitting page data to rendering unit
212
. Postscript interpreter
208
or PCL interpreter
210
may send banded format data directly to rendering unit
212
. Rendering unit
212
also performs compression, decompression or screening as required. PDL print controller to print engine controller interface unit
225
supplies data and control information to ASIC special purpose processor
213
to drive paper path control
216
, the control panel/display
214
and the video data output
215
.
FIG. 3
illustrates a conventional printer controller system. The system has typically a main processor
300
and a system ASIC printer controller
301
, both served by a single processor bus
302
. All major compute functions are carried out within the main processor
300
.
The system interfacing to a personal computer (PC)
303
is directed by the system ASIC printer controller
301
via a USB port
304
or alternately by an IEEE 1284 (Firewire) compatible parallel port
305
. ASIC printer controller
301
directs networking by the system via the Ethernet
306
from a local area network
307
and provides a mass storage interface via an ATA-4 compatible disc interface
308
to disc drive
309
.
System data movement among main processor
300
, system ASIC print controller
301
, DRAM memory
310
and FLASH or ROM memory
311
are all accomplished via processor bus
302
. System ASIC print controller
301
provides interface to printer engine via engine control signals
312
and video data output
313
.
FIG. 4
illustrates the memory bandwidth requirement for the processor-initiated video output in the conventional system of FIG.
3
. The processor-initiated video output is the most bandwidth intensive operation and must occur in real time. Three operations require processor bus
302
bandwidth: processor band clearing and write
406
of rasterized data to the output band buffer; the real-time read
407
of data from the printer engine; and real-time write
408
of data to the printer engine. This video output requires a total of 256 Mbytes/page for processor band clearing and write
406
, 128 Mbytes/page for real-time read
407
and 128 Mbytes/page for real-time write
408
for a total of 512 Mbytes/page of processor bus
302
bandwidth. This translates into 136 Mbytes/sec for a 16 page/min printer.
FIG. 5
illustrates the data flow diagram for a conventional printer controller using a single processor bus. Three parts of the printer controller are identified with dashed-line boxes: DRAM
550
, processor
551
, and engine and peripheral interfaces
552
. Operations and operation end points given in boxes in
FIG. 5
require in many cases that the main processor yield the main processor bus to non-compute operations thereby slowing down overall processing speed. Each transfer of data is represented by a line and is labeled with the transfer size in Mbytes/page. Note that all transfer size requirements in
FIG. 5
involve use of bus bandwidth on the common processor bus
302
in FIG.
3
. Table 1 gives a complete list of the bus bandwidth requirements for each major controller operation. Specific operations in
FIG. 5
may be cross-referenced to the list given following Table 1, which also shows the bus bandwidth requirements for each major controller operation.
TABLE 1
Processor Bus
Number
Operation
Mbytes/page
1
Networking
120
2
Spooling
80
3
Stream I/F
80
4
Image Filter
80
5
Color Conversion
47
6
Text Interpretation
4
(Font Decompression)
7
Graphics Interpretation
64
(Display List)
8
Band Clearing
128
9
Rendering and Compression
43
10
Compressed Output Data
11
11
Decompress and Screen
139
12
Video Output Data
256
Total
1052
These data paths are detailed below. Note: DMA is direct memory access; PCI
1. Networking: Processor Bus 120 Mbytes/page
From PDL input
500
to DMA
531
to PCI buffer
501
to DMA
521
to mbuffer
502
to DMA
522
to socket buffer
503
.
2. Spooling: Processor Bus 80 Mbytes/page
From socket buffer
503
to DMA
523
to temporary buffer
504
to DMA
524
to DOS buffer
505
to DMA
532
to disc write DMA
506
.
3. Stream I/F: Processor Bus 80 Mbytes/page
From disk read DMA
507
to DMA
533
to DOS buffer
508
to DMA
525
to stream buffer
510
.
4. Image Filter: Processor Bus 80 Mbytes/page
From stream buffer
510
to DMA
526
to temporary buffer
511
to filter
512
to image buffer
513
.
5. Color Conversion: Processor Bus 47 Mbytes/page
From
Brady III W. James
Fleming Fritz
Marshall, Jr. Robert D.
Telecky , Jr. Frederick J.
Texas Instruments Incorporated
LandOfFree
Shared memory architecture for increased bandwidth in a... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Shared memory architecture for increased bandwidth in a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Shared memory architecture for increased bandwidth in a... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3341569