[0001] The invention relates to a method for processing data, in a multimedia graphics system
for use with a monitor for displaying information as indicated in claims 1 and 5.
[0002] Significant advances have been made in recent years in providing displays of a video
information on a video monitor or screen. For example, graphics information has been
displayed oh a video monitor with enhanced resolution and fidelity as a result of
significant advances in the processing of the digital information representing such
colors and in the conversion of such digital information into an analog form. Such
information has often been processed in digital form and thereafter converted to analog
form in a personal computer or work station. In recent years, video information has
been simultaneously displayed with the graphics information in such personal computers
and work stations. For example, video information has been displayed in a window on
the face of the video monitor of the personal computer or work station while graphics
information has been displayed on the remainder of the monitor face.
[0003] In recent years there have also been significant strides in using miniaturized computers
such as personal computers and work stations in processing information involving multimedia
applications. These multimedia applications may take many different forms. For example,
they may involve graphics, television, facsimile and/or audio. In spite of these advances,
a suitable system does not exist which is sufficiently flexible to process different
types of information efficiently, inexpensively and reliably. For example, the systems
now in use are not capable of switching efficiently, inexpensively and reliably between
different types of presentations such as graphics, video and audio. This has been
particularly true when information from more than one type of media (e.g. graphics,
video, television and audio) is to be presented simultaneously. This has limited the
utility of the systems now in use. Such limitations exist now in multimedia equipment
even though considerable amounts of money have been expended, and considerable effort
has been devoted, through the years, and particularly in recent years, to develop
a satisfactory multimedia system.
[0004] In one embodiment of this invention, bytes of different types of digital information
including standard interframe video (SIF), graphics, television and audio are transferred
between a controller, a storage memory and shift registers (e.g. FIFO's) individually
associated with the different information types. For a VRAM memory, information is
transferred in parallel, controlled by tag bus information, from the controller to
the memory and then serially from the memory to the FIFO's, all at a frequency higher
than a clock frequency in a monitor raster scan.
[0005] The tag bus information is decoded and introduced to an additional FIFO. A state
machine processes such additional FIFO information and transfers the digital information
to the different FIFO's at times controlled in each line by such additional FIFO-e.g.
particular times in each line for the SIF and the graphics and thereafter, for television
and audio, at times unrelated to any times in such line.
[0006] The graphics transfer is timed to substantially fill, but not overflow, the limited
capacity of the associated FIFO in each line. Their limited capacities cause the television
and audio FIFO's to stop receiving bytes when filled to particular limits. For a DRAM
memory, information is transferred, dependent upon tag bus information, in parallel
between the controller, memory and FIFO's at the clock frequency. In a "Rambus" system,
a bus common with the controller, memory and FIFO's provides control and timing bytes.
The information in successive bytes is transferred through the common bus to the controller,
memory and FIFO's dependent upon such timing and control information in such bytes.
[0007] In the drawings:
Figure 1 is a schematic block diagram of a system of the prior art;
Figure 1(a) shows wave forms at strategic terminals in the system shown in Figure
1;
Figure 2 is a schematic block diagram of another system of the prior art, this system
being shown and disclosed in a patent application recently filed in the Patent Office
by the assignee of record in this application;
Figure 2(a) shows wave forms at strategic terminals in the system shown in Figure
2;
Figure 3 is a schematic block diagram of a system constituting one embodiment of the
invention;
Figure 3(a) shows waveforms at strategic terminals in the system shown in Figure 3;
Figure 4 is a table illustrating the different types of digital information processed
by the system shown in Figure 3;
Figure 5 illustrates the sequence of signals processed by the system of Figure 3 in
each line in a raster scan in a monitor included in Figure 3;
Figure 5(a) illustrates wave forms at strategic terminals in the system of Figure
3;
Figure 6 is an expanded schematic block diagram illustrating one of the blocks in
Figure 3 in additional detail;
Figure 7 is an expanded schematic block diagram illustrating one of the blocks in
Figure 6 in additional detail;
Figure 8 is a schematic block diagram of another embodiment of the invention;
Figure 9 is a schematic block diagram of a further embodiment of the invention; and
Figure 10 is an expanded schematic block diagram illustrating one of the blocks in
Figure 9 in additional detail.
[0008] Figure 1 illustrates an embodiment of the prior art. The embodiment includes a graphics
controller 10, a storage memory such as a VRAM 12 and stages 14 comprising a random
access memory (RAM) and a digital-to-analog converter (DAC). The graphics controller
10 may be a central processing unit which transfers information into the VRAM 12 as
indicated at 16. Information is in turn transferred from the VRAM 12 into the stages
14 (designated as "RAMDAC" in Figure as an acronym for random access memory and digital-to-analog
converter). The random access memory may comprise a palette (also known as a look-up
table) which is well known in the art. The transfer of information into the RAMDAC
14 is indicated at 18. A "/32" indication is provided adjacent the line 18 to indicate
that there may be thirty two (32) bits in each byte of information. The analog output
from the RAMDAC is indicated at 19. This output may be introduced to a monitor 20
for display on the face of a display screen in the monitor.
[0009] The palette in the RAMDAC may have a plurality of positions each indicating an individual
color. The color at each position may be indicated by a first plurality of bits indicating
the primary color red, a second plurality of bits indicating the primary color blue
and a third plurality of colors indicating the primary color green. When an individual
position in the palette is selected, the bits indicating each of the primary colors
are converted to corresponding analog values in the RAMDAC. The respective intensities
of the three primary colors at each pixel position controls the color generated at
such pixel position on the face of the monitor 20.
[0010] The graphics controller 10 introduces binary indications into successive positions
in the VRAM 12. Each of these binary indication is comprised of a plurality of binary
bits. Each plurality indicates a particular position to be selected in the palette.
The information transferred from the graphics controller 10 to the VRAM 12 and from
the VRAM to the RAMDAC 16 may be provided at a particular clock frequency as indicated
by a line 22 extending from the graphics controller 10 to the VRAM 12 and the RAMDAC
14.
[0011] Graphics information may be displayed on the screen of the monitor 20. When the RAMDAC
is included in a work station (not shown), the image on the face of the monitor 20
may be formed by a plurality of pixels in a raster scan. For example, twelve hundred
and eighty (1280) pixels may be provided in each horizontal line in the raster scan
and ten hundred and twenty four(1024) lines may be provided in such raster scan. The
raster may be refreshed at a rate of seventy hertz (70 Hz). Under such circumstances,
the pixels are presented at a frequency of one hundred and thirty two megahertz (132
Mhz). When the VRAM is thirty two (32) bits wide, four (4) words each of eight (8)
bits may be presented in parallel. This allows the information to be transferred serially
from the VRAM at a frequency of thirty three megahertz (33 Mhz). Since each word comprises
eight (8) bits, the palette may have two hundred and fifty six (256) different positions
each indicating an individual color.
[0012] It may be desired to update the palette in the RAMDAC 14. This may be accomplished
during the horizontal retrace period at the end of each line or during the horizontal
blanking interval at the beginning of each line. The horizontal retrace period is
relatively short but the horizontal blanking interval in each line is approximately
twelve percent (12%) of the duration of the line. The palette may also be updated
during the vertical retrace period at the end of each raster scan. The vertical retrace
period is considerably longer than each horizontal retrace period. Figure 1 (a) schematically
indicates the clock signals on the line 22 as at 24 and schematically indicates the
blanking interval 26 at the beginning of each line.
[0013] The system shown schematically in Figure 1 and discussed above has had extensive
usage in the prior art. It is advantageous in that it is relatively simple and reliable.
It is disadvantageous in that it provides only a limited number of pseudo colors rather
than real colors. Furthermore, it is able to provide only graphics information for
display on the monitor 20. It is also not capable of fully utilizing the advantages
offered by the latest models of VRAMS which are just being introduced to the market.
These VRAMS are capable of operating at a frequency of sixty six megahertz (66 Mhz).
This is in contrast to the maximum frequency response of thirty three megahertz (33
Mhz) for the VRAMs now on the market.
[0014] Figure 2 schematically shows a system which is disclosed in EP-A-0610829 (published
17.8. 94).
[0015] A graphics controller 40, a storage member (such as a VRAM 42) and stages 44 are
included in the system. The stages 44 may include a shift register such as a first-in-first-out
(FIFO) register and may also include a random access memory (RAM) and a digital-to-analog
converter (DAC).
[0016] Information is introduced into the VRAM 42 from the graphics controller 40 in the
embodiment shown in Figure 2. This information may be graphics information in a first
portion 42a of the VRAM and may also be standard interframe video information (SIF)
such as NTSC or PAL video in a second portion 42b of the VRAM. The first and second
portions of the VRAM are indicated schematically by a broken horizontal line in the
VRAM 42. This information may illustratively have 320 pixels per horizontal line and
may have 240 horizontal lines in each raster scan. The graphics information for a
frame may be stored in one portion of the VRAM 42 as indicated at 42a and the standard
interframe video information for a frame may be stored in a second portion 42b of
the VRAM. This is advantageous over the prior art because it eliminates the need for
a separate storage memory to store the standard interframe video information. The
graphics information and the standard interframe video information are transferred
from the graphics controller 40 into the VRAM 42 in parallel form. Each byte of parallel
information may have thirty two (32) bits.
[0017] The graphics information and the standard interframe video information are serially
transferred from the VRAM 42. The graphics information in the portion 42a of the VRAM
42 is transferred, as in the embodiment shown in Figure 1, at a rate of thirty three
megahertz (33 Mhz) by providing four (4) words, each of eight (8) bits. The transfer
is made into the RAMDAC portion of the stages 42 in a manner similar to that disclosed
above for the embodiment shown in Figure 1. This transfer occurs during the portion
of each line in the raster scan in a monitor 46 other than the video blanking interval.
This transfer is in synchronism with the rate of presentation of pixels on the screen
of the video monitor 46. The transfer is accordingly at thirty three megahertz (33
Mhz). This transfer is indicated at 48a in Figure 2a.
[0018] However, as previously indicated, the VRAMs now being introduced into the market
can transfer information serially out of the VRAM 42 at a rate of sixty six megahertz
(66 Mhz). The transfer accordingly does not utilize the full capability of the VRAM
42. During the horizontal retrace and the horizontal blanking interval in each line
in the raster scan in the monitor 46, the standard video information (SIF) is transferred
serially from the portion 42b of the VRAM 42 into the FIFO portion of the stages 44
at a frequency of sixty six megahertz (66 Mhz). This transfer is indicated at 48b
in Figure 2a.
[0019] The horizontal blanking interval constitutes only about twelve percent (12%) of the
time in a line. However, since there are only three hundred and twenty (320) pixels
in a line in standard interframe video information, the horizontal retrace period
and the horizontal blanking interval are sufficiently long to transfer all of the
standard interframe video information for a line into the FIFO portion of the stages
44. This is particularly true if the information transfer is at a rate of sixty six
megahertz (66 Mhz). The information stored in the FIFO portion of the stages 44 for
each line is converted into a line of twelve hundred and eighty (1280) pixels in the
stages 44 by techniques known in the prior art. A multiplexer included in the stages
44 (but not specifically shown) then selects, in accordance with information from
the controller 40, whether the graphics information in the RAM or the standard interframe
information obtained from the FIFO will be converted by the DAC to analog information
for display on the screen of the monitor 46. The video information in the portion
42b of the VRAM is transferred into the stages 44 at the graphics frequency of thirty
three megahertz (33 Mhz).
[0020] The system shown in Figure 2 and described above has certain important advantages.
As described above, it uses only one (1) VRAM to store two (2) types (graphics and
standard interframe video) information. It provides for the transfer of both types
of information in each line in the raster scan and provides for the display of both
types of information simultaneously in the successive frames on the screen of the
monitor 46. For example, the graphics information may be displayed in the major portion
of the raster scan and the standard interframe video information may be displayed
in a window in the raster scan. However, the full transfer capabilities of the VRAM
at sixty six megahertz (66 Mhz) are utilized for only a small (12%) portion of each
line. Furthermore, only two (2) types of information can be presented. This is less
than the number of different types of information that it is often desired to provide
in a multimedia system.
[0021] Figure 3 is a schematic diagram illustrating one embodiment of the invention. This
embodiment includes a graphics controller 60 similar to that shown in Figures 1 and
2. Bytes of digital information are transferred from the graphics controller 60 to
a storage member such as a VRAM 62 similar to that shown in Figures 1 and 2. Each
byte may be thirty two (32) bits wide and may be provided through a bus 64. Each byte
is transferred to a particular location in the VRAM 62 under the control of address
information passing to the VRAM 62 through a pair of lines 66 and 68. A row address
select (RAS) may be provided on the line 66 and a column address select (CAS) may
be provided on the line 66. The digital information passing through the lines 64,
66 and 68 may be at the VRAM clock frequency of sixty six megahertz (66 Mhz). These
clock signals are provided through a line 70.
[0022] The digital information in the VRAM 62 is transferred from the VRAM serially at the
clock frequency of sixty six megahertz (66 Mhz). Unlike the embodiment shown in Figure
2 in which this high clock rate was possible only during the blanking interval in
each horizontal line in the raster scan, the high clock rate is essentially continuous
in the embodiment shown in Figure 3. The only time that the clock is not at sixty
six megahertz (66 Mhz) is when a serial register transfer is being made inside the
VRAM at the request of the graphics controller 60. During this time, new data is being
transferred from the storage location in the VRAM register to the VRAM serial data
register. This occurs for only a few cycles of the clock frequency in each line in
the raster scan.
[0023] The blanking interval in each line in the raster scan is indicated at 70 in Figure
3(a). The serial transfer of data from the VRAM 62 at essentially the clock frequency
of sixty six megahertz (66 Mhz) is indicated at 72 in Figure 3(a). The information
transferred serially from the VRAM 62 at this clock frequency may represent a number
of different media. For example, the information may constitute television information
in NTSC, PAL or SECAM form. This information is transferred to a television encoder
74 and is then transferred from the television encoder to a television receiver 76.
[0024] The digital information may also be transferred from the VRAM 62 to stages 78. This
information may have several different forms. It may constitute standard interframe
video information (SIF). Actually, the standard interframe video interframe information
may have several different forms. For example, SIF information may have 240 lines
each of 320 pixels in a raster scan (designated as SIF1). Similarly, information designated
as SIF2 may have 120 lines and 160 pixels in each line.
[0025] The digital information transferred from the VRAM 62 may also be in graphics form.
The graphics information may have several different formats. For example, when the
graphics information is intended for a workstation, there may be 1024 rows and 1280
pixels in each row. When the graphics information is intended for a VGA format, there
may be 4xx rows and 6xx pixels in each row. For a super VGA format, the number of
rows may be 768 and the number of pixels in each row may be 1024. The stages 78 may
receive other types of information in addition to the standard interframe video information
and the graphics information. For example, digital information may be transferred
from the VRAM 62 to the stages 78 to indicate cursor information.
[0026] The information transferred to the stages 78 is introduced to a monitor 80 corresponding
to the monitors 20 and 46 respectively shown in Figures 1 and 2. Audio information
may also be transferred to an audio encoder 82 for storage and conversion to analog
form and may then be transferred from these stages to an audio receiver 84. As will
be appreciated and as will be seen from subsequent Figures, the stages 78 are shown
in simplified form as a single stage but may actually constitute a plurality of different
stages.
[0027] Some control may accordingly have to be provided to direct the information from the
VRAM 62 at different times to individual ones of the television encoder 74, the stages
78 (including standard interframe video, graphics and cursor encoders) and the audio
encoder 82. This control is provided by a tag bus 86 which may provide four (4) bits
in parallel. In the embodiment shown in Figure 3, the tag bus 86 provides these four
(4) bits for each byte or packet of thirty two (32) bits from the VRAM 62. The four
(4) bits are encoded to direct such byte or packet into the proper one of the different
encoders. A line 88 also extends in Figure 3 from the stages 78 to the graphics controller
60 to synchronize the operation of the graphics controller in each line in the raster
scan in providing for the passage of information serially from the VRAM 62 to the
different encoders in the stages 78.
[0028] As illustrated in Figure 4 and as discussed above, different types of digital information
may be transferred from the VRAM 62 to the different types of encoders shown schematically
in Figure 3 and in additional detail in Figure 6. Such different types of digital
information may include graphics, different types of standard interframe video (such
as those designated as SIF1 and SIF2), audio, television (designated as NTSC only
be way of illustration) and cursor.
[0029] The information transferred from the VRAM 62 may also include what is designated
in Figure 4 as a palette shadow. This information involves an updating of every position
in the palette or look-up table at the end of each frame in the raster scan in the
monitor 80 in Figure 3. The updating is provided in each position in the palette even
though the color information in some positions in the palette remains unchanged. This
is different from the updating provided in the prior art. In the prior art, the updating
is generally provided at the end of each line and is only in selected positions. The
updating of all of the positions in the palette at the end of each frame in the raster
scan may be provided because the updating is occurring at the high frequency of sixty
six (66) megahertz.
[0030] The transfer of information from the VRAM 62 may occur in a particular sequence in
each line in the raster scan in the monitor 80. This sequence is illustratively shown
in Figure 5. The sequence in each line may be as follows: standard interframe video
information (SIFI and STF2), graphics information, audio information and television
information (designated as NTSC). The standard interframe video information and the
graphics information may be synchronized at a particular time in each line. The audio
information and the television (NTSC) information may occur after the standard interframe
video information and the graphics information in each line but at a time unrelated
to any synchronizing information, such as the blanking interval, in such line. It
will be appreciated that, although NTSC information is specifically designated in
Figure 5, other types of television information such as PAL or SECAM are within the
scope of the invention.
[0031] Figure 5 illustrates the sequence of the different types of digital information in
each line. As will be seen, the standard interframe video information (SIF1 and SIF2)
occurs first in each line. This is followed by the graphics information. The audio
and television (e.g. NTSC) information then occur in each line. For the line in each
raster scan where the cursor appears, the cursor information occurs after the television
(e.g. NTSC) information. During the vertical retrace interval in each raster scan,
the palette shadow information is provided to update the palette or look-up table
for the graphics information in the next raster scan.
[0032] As shown in Figure 5, the graphics data is transferred into a shift register such
as a first-in-first out register 100 (e.g. FIFO) in Figure 6. The FIFO 100 and other
FIFO's in the embodiment shown in Figure 6 and in other Figures in this application
are well known in the art. They receive and store bytes of information. These bytes
of information are shifted through the FIFO 100 (and other FIFO's) in the same order
as they are received. When the information introduced into the FIFO 100 has been shifted
through the FIFO, the bytes of digital information are then transferred from the FIFO
in the same order that they are received.
[0033] The FIFO 100 for the graphics information has a capacity less than the number of
pixels in each line. This causes the transfer of the bytes of binary graphics information
into the FIFO 100 to be initiated at a particular instant in each line in the raster
scan. This initiation of the transfer of the digital graphics information in each
line into the FIFO 100 occurs at a particular time during the blanking interval 102
(see Figure 5) in each line. By initiating the transfer of the digital graphics information
into the FIFO 100 at such time, substantially the full capacity of the FIFO 100 can
be utilized in receiving the bytes of graphics information for the line without any
of the graphics information being unable to be transferred into the FIFO because the
FIFO has become filled. Furthermore, with this type of transfer, substantially the
full capacity of the FIFO is used all of the time.
[0034] The standard interframe video information is transferred into storage registers such
as FIFO's 104 (for the SIF1) and 106 (for the SIF2) in Figure 6. The transfer of the
standard interframe video information into the FIFO's 104 and 106 for each line may
be initiated at a time 108 in Figure 5 before the blanking interval for the line.
The FIFO's 104 and 106 may have a full capacity (rather than a partial capacity as
for the FIFO 100) because the capacities of the FIFO's 104 and 106 are not very large.
This results from the fact that there are only 320 pixels per line in SIF1 information
and only 160 pixels per line in SIF2 information. This is in contrast to 1280 pixels
per line in graphics information for display on the monitors in work stations.
[0035] As will be seen from Figure 5 and from the discussion above, the transfers of the
standard interframe video information and the graphics information may be initiated
at particular times in each line in the raster scan in the monitor 80 in Figure 3.
The transfer of the audio information for each line in the raster scan into the audio
encoder 82 in Figure 3 may be initiated immediately after the transfer of the graphics
information for that line has been completed. However, the transfer of the audio information
may be initiated without reference to any particular time in each line. The capacity
of the audio encoder 82 (which may be a FIFO) is somewhat limited. Because of this,
when the audio encoder 82 has been substantially filled in a line, it sends a signal
(designated as "Audio FF Full") on a line 110 in Figure 3 to the graphics controller
60. This signal causes the graphics controller 60 to instruct the VRAM 62 to stop
sending bytes of digital audio information to the audio encoder 82 for that line.
[0036] In like manner, the transfer of the bytes of the digital television information may
be initiated in each line after the transfer of the audio information in that line.
The transfer of such bytes of digital television information in each line is made
into the encoder 74 in Figure 3. As with the audio information, the transfer may be
made on any asynchronous basis in each line, in other words, without reference to
any particular time in such line. The capacity of the encoder 74 may be somewhat limited.
Because of this, the encoder sends a signal through a line 112 in Figure 3 to have
the graphics controller 60 discontinue the transfer of television information into
the encoder 74 from the VRAM 62 in any line when the encoder has been filled to a
particular capacity in that line. This signal is designated in Figure 3 as "NTSC-FF-FULL".
[0037] The stages 78 in Figure 3 are shown in additional detail in Figure 6. This is indicated
by broken lines which extend around the stages shown in Figure 6 and which have the
numerical designation 78. As previously described, the stages 78 in Figure 3 may include
the stages 100, 104 and 106 in Figure 6. They may also include FIFO's 114 and 116
in Figure 6. The FIFO 116 receives the cursor information in a particular line in
the raster scan. The stages 100, 104, 106 and 116 may receive bytes of digital information
through a line 118 (also shown in Figure 3) from the VRAM 62. In contrast, the FIFO
114 may receive the timing and control information from the tag bus 84 also shown
in Figure 3.
[0038] The information from the tag bus 84 may pass through an amplifier 120 in Figure 6
to decoders 122, 124, 126 ,128 and 130 respectively for the FIFO's 104, 106, 100,
114 and 116. Decoders such as the decoders 122, 124, 126, 128 and 130 are well known
in the art. They decode the four (4) bits of digital information in the tag bus 84
for each byte of digital information in the bus 118. The decoded information controls
which one of the FIFO's 100, 104, 106 and 116 will receive and store that byte of
information. Furthermore, the decoder 128 decodes the bytes of the digital information
in the tag bus 84 to provide timing and control information in binary form. This timing
and control information passes from the decoder 128 into the FIFO 114.
[0039] The information in the FIFO 114 then passes into a timing state machine 134 which
processes this information to produce various timing and control signals for each
line in the raster scan. For example, the timing state machine 134 may produce the
synchronizing signal on the line 88 to initiate the transfer of the standard interframe
video information in each line into the FIFO's 104 and 106 at the time indicated at
108 in Figure 5(a). The timing state machine 134 may also produce on a line 136 the
horizontal sync signal for each line in the raster scan and on a line 138 the vertical
sync signal after each such raster scan. The timing state machine may also produce
the horizontal blanking signal (see 70 in Figure 3a and 102 in Figure 5) on a line
154 in Figure 6.
[0040] The timing state machine 134 may also produce signals on a line 135 for introduction
to the FIFO's 100, 104, 106 and 116. These signals may activate individual ones of
the FIFO's 100, 104, 106 and 116 to provide for the passage of signals from these
FIFO's at times determined by the timing state machine. The signals from the standard
interframe video FIFO's 104 and 106 pass to a scaler 144; the signals from the graphics
FIFO pass to a palette 146; and the signals from the cursor FIFO 116 pass to a cursor
palette 147.
[0041] The timing state machine 134 may additionally produce a priority signal on a line
140. This signal is introduced to a pixel priority multiplexer 142 to control whether
the standard interframe video information from one of the FIFO's 104 and 106 or the
graphics information from the FIFO 100 will pass through the multiplexer at each instant.
The information in the FIFO's 104 and 106 may be initially introduced to the scaler
144 and the scaled information may be then passed to the multiplexer 142. The scaler
144 is well known in the art and different examples of the scaler 144 are disclosed
in some detail in EP-A-0 610 829 (published 17.8.94).
[0042] The scaler increases the number of bytes in the FIFO's 104 and 106 for each line
in the raster scan into a number of bytes corresponding to the number of bytes in
each line in the graphics information.
[0043] The bytes of the digital information in the FIFO 100 for each line may be introduced
to the palette 146 to select the individual positions in the palette for the passage
of color information to the pixel priority multiplexer 142. The palette 146 corresponds
in construction to the palette in the RAMDAC 14 in Figure 1 and to the palette in
the stages 44 in Figure 2. In like manner, the FIFO 116 passes information to the
cursor palette 147 which passes the cursor information to the multiplexer 142 for
passage through the multiplexer. The passage of the cursor information from the palette
147 through the multiplexer 142 may be controlled by the priority signal on the line
140.
[0044] The bytes of information passing through the multiplexer 142 from the scaler 144,
the palette 146 and the palette 147 may be introduced to digital-to-analog converters
148, 150 and 152 respectively for the primary colors red, green and blue. The analog
signals from the converters 148, 150 and 152 then pass to the monitor 80 shown in
Figure 3. The converters 148, 150 and 152 may receive a blanking signal on the line
154 from the timing state machine 134. The blanking signal blanks the converters 148,
150 and 152 during each line in the raster scan.
[0045] The timing state machine 134 is shown in additional detail in Figure 7 as being included
within broken lines designated as 134. As shown in Figure 7, each byte of information
from the timing FIFO 114 may comprise thirty two (32) bits. Of these, twenty (20)
bits may be introduced to stages 160 (designated as "state") which produce the horizontal
sync signal on the line 136, the vertical sync signal on the line 138, the blanking
signal on the line 154, the priority signal on the line 140 and the signals on the
lines 135 to the FIFO's 100, 104, 106 and 116. The timing of these signals is provided
by the other twelve (12) bits in each byte from the timing FIFO 114. These bits are
introduced to a counter 162 which is preset to a particular value. The counter 162
then counts downwardly by an integer through a documenting stage 164 every time that
a pixel clock signal is produced on the line 70 (also shown in Figure 3). When the
counter 162 reaches a count of zero (0), the count from the counter corresponds to
a count preset in a comparator 166. The comparator 166 then produces a signal on a
line 168 to provide for the passage of the next byte of thirty two (32) bits from
the FIFO 114 to the stages 160 and the counter 162.
[0046] Figure 8 schematically illustrates an embodiment in which a dynamic random access
memory (DRAM) 170 may be used instead of a VRAM as in the previous embodiment. The
DRAM 170 is advantageous because the cost of a DRAM is approximately one halt (1/2)
of the cost of a VRAM of the same size. The embodiment shown in Figure 8 is also advantageous
because all of the transfer of information, even from the DRAM 170, to PACDAC stages
172 is in parallel. This tends to increase the speed of operation of the system shown
in Figure 8.
[0047] However, a DRAM is disadvantageous in comparison to a VRAM because first information
cannot be simultaneously introduced into a DRAM while second information is being
transferred out of the DRAM. Furthermore, the data bandwidth of the system shown in
Figure 8 is not as great as that of Figure 3 because only the random access port of
the DRAM 170 is used and the bandwidth of the DRAM is typically less than half of
the sixty six megahertz (66 Mhz) bandwidth in the VRAMs which are being introduced
into the market.
[0048] The embodiment shown in Figure 8 includes a graphics controller 172 similar to the
graphics controller 60 shown in Figure 3. It also includes stages 174 designated as
"PACDAC". These stages correspond to the stages 78 shown in Figure 3. One difference
between the system shown in Figure 8 and the system shown in Figure 3 is that, in
the system shown in Figure 8, each of the controller 172, the DRAM 170 and the PACDAC
stages 174 can communicate with the others. The transfer of information into the DRAM
170 from the controller 172 and out of the DRAM 172 is controlled by address signals
on a bus 175. The signals on the bus 175 correspond to the signals on the lines 66
and 68 in Figure 3.
[0049] As in the embodiment shown in Figure 3, a tag bus 176 is provided in Figure 8 to
control the destination of the bytes of the different types of information in the
DRAM 170 and the time in each line for the transfer of such bytes. As in the embodiment
shown in Figure 3, the PACDAC stages 174 can have the construction shown in Figure
6 and the timing state machine can have the construction shown in Figure 7. The different
types of information can be provided in the sequence shown in Figure 5 and the timing
for the standard interframe video information in each line can be provided as by a
pulse on a line 175 corresponding to the pulse 108 in Figure 5.
[0050] As shown in Figure 8, the bytes of digital information transferred between the DRAM
170, the graphics controller 172 and the PACDAC stages 174 on a bus 177 may have sixty
four (64) bits. The DRAM 170 may accordingly be formed from four (4) DRAMs in parallel,
each DRAM having sixteen (16) bits. As in the embodiment shown in Figure 3, the FIFO
for the graphics information may have a limited capacity to conserve cost and space.
The FIFO's for the television (e.g. NTSC) and audio information may also have limited
capacities as in the embodiment shown in Figure 3. This is indicated by the designation
of "NTSC-FF-FULL" for a line 178 and "AUDIO-FF-FULL" for a line 180. Signals may accordingly
be produced respectively on the lines 178 and 180 to instruct the graphics controller
to interrupt the transfer of information from the DRAM 170 into the television and
audio FIFO's when these FIFO's become filled to a particular limit. Clock signals
may be produced on a line 182 in the embodiment shown in Figure 8 in a manner similar
to the production of clock signals on the line 70 in the embodiment shown in Figure
3.
[0051] The embodiment shown in Figure 9 is intended to be used for a system designated as
"RAMBUS." The "RAMBUS" system is well known in the prior art. The embodiment shown
in Figure 9 represents an improvement in the "RAMBUS" system of the prior art. The
system shown in Figure 9A includes a graphics controller 190, PACDAC stages 192 and
DRAMs 194 as in the embodiments shown in Figures 3 and 8. However, unlike the embodiments
shown in Figures 3 and 8, the controller 190, the stages 192 and the DRAMs 194 may
be connected by a common bus 196. Packets or bytes of digital information may pass
through the bus 196 between the controller 190, the stages 192 and the DRAMs 194.
Each of these bytes or packets may have ten (10) bits.
[0052] Eight (8) of the ten (10) bits in each byte or packet in the embodiment of Figure
9 may comprise data. The other two (2) bits in each byte or packet may be used to
provide parity checking and to provide special signalling. The two (2) bits for special
signalling in individual ones of the bytes or packets may be used to indicate that
the eight (8) data bits in such bytes or packets provide the information provided
in the Tag Bus in the embodiments shown in Figures 3 and 8. For example, such eight
(8) bits specify the destination of the data in the subsequent bytes or packets and
specify the timing for the information in the subsequent bytes or packets.
[0053] The graphics controller 190 in Figure 9 may have the same construction as the graphics
controller in the embodiments shown in Figures 2 and 8. The DRAMs 194 in the embodiment
of Figure 9 may have the same construction as the DRAM 170 in the embodiment shown
in Figure 8. However, the DRAMs 190 may be only ten (10) bits wide rather than sixty
four (64) bits wide as in the embodiment shown in Figure 8. The PACDAC stages 192
shown in Figure 9 are substantially the same as the PACDAC stages shown in Figure
3 except that, as described above, a Tag Bus is not included in the embodiment shown
in Figure 9. Because of this, the PACDAC stages 192 may have the construction shown
in Figure 10. They are included within broken lines designated as 192 in Figure 10.
In the PACDAC stages shown in Figure 10, different stages have the same numerical
designation as the stages shown in Figure 6 except that they are preceded by the numeral
"2" rather than the numeral "1" as in the embodiment shown in Figure 6. For example,
the graphics FIFO is designated as "200" in Figure 10 but is designated as "100" in
Figure 6.
[0054] In the embodiment shown in Figure 10, the bytes or packets on the bus 196 from the
graphics controller 190 may pass to the decoder 228 which decodes the bits indicating
that the eight (8) data bits in the bytes or packets contain timing and control information
rather than digital information for the other FIFO's. These eight (8) bits in the
timing and control packets may then pass to the timing FIFO 214. The eight (8) bits
may then pass from the FIFO 214 to the timing state machine 234 which produces the
timing and control signals indicating the destination of the subsequent bytes or packets
of information. The destination signals may be produced by the timing state machine
234 on lines 235. These signals may accordingly activate one of the decoders 222,
224, 226 and 230. The activated one of the decoders 222, 224, 226 and 230 may then
pass the subsequent bytes or packets of information on the line 218 to the respective
ones of the FIFO's 200, 204, 206 and 216.
[0055] When the standard interframe video signals pass through one of the video FIFO's 204
and 206, the scaler 244 acts on these signals to scale the number of pixels in each
line upwardly and the signals from the scaler 244 may then pass to the pixel priority
multiplexer 242. This is the same as in the embodiment shown in Figure 6. As in the
embodiment shown in Figure 6, the signals from the graphics FIFO 200 may select positions
in the palette 246 and these signals may pass to the pixel priority multiplexer 242.
Similarly, the signals in the FIFO 216 may select positions in the cursor palette
246 and the signals from the palette may pass to the pixel priority multiplexer 242.
[0056] The pixel priority multiplexer 242 may pass the signals from individual ones of the
scaler 244, the palette 246 and the cursor FIFO 216 in accordance with signals on
the line 240 from the timing state machine 234. The signals passing through the pixel
priority multiplexer 242 are introduced to the color converters 248, 250 and 252.
The passage of the signals from the converters 248, 250 and 252 and the display of
the signals on the monitor 280 are controlled by signals produced on the lines 236,
238 and 254 by the timing state machine 234.
[0057] The apparatus disclosed above has several important advantages. It provides for an
efficient processing of different types of information including standard interframe
video information, graphics information, television information, audio information
and cursor information. The system provides for such processing either with a VRAM
or a DRAM. In some embodiments, the system employs a data bus for the different types
of information and employs a tag bus for the timing and control information. For the
RAMBUS embodiment, the system employs a common bus for all of the sub-systems in the
system and uses individual bits in each byte or packet on such bus to indicate whether
the data bits in such byte or packet represent media information or timing and control
information.
1. A method for processing data, in a multimedia graphics system for use with a monitor
(80) for displaying information, said monitor providing a raster scan defined by a
plurality of lines and by a plurality of pixels presented at a first particular frequency
in each line, the method comprising:
storing bytes of different types of digital information selected from a group including
standard interframe video information (SIF1, SIF2), graphics information (GRAPHICS
DATA), audio information (AUDIO) and television information (NTSC) in a storage means
(62, 170; 194);
transferring bytes of at least a first one of the different types of information,
at a particular time relative to each line in the raster scan in the monitor, from
the storage means (62; 170; 194) to a first individual one (100, 104, 106: 200, 204,
206) of the shift register means (100,...216) receiving such bytes;
receiving a plurality bytes, of an individual one, of the first one of the different
types of digital information in a shift register means (100, 104, 106, 114, 116; 200,
204, 206, 214, 216) of the shift register means receiving such bytes;
passing the stored information from the shift register means;
receiving, in a plurality of converter means (148, 150, 152; 248, 250, 252) each byte
associated with an individual one of the shift register means (100,...216) each byte
passed from the shift register means in the plurality;
converting, to analog form, the bytes of digital information received from the associated
one of the shift register means in the plurality; and
transferring the bytes of at least a second one of the different types of information
in each line, at times relative to such line after the transfer of the bytes of the
first individual one of the different types of information to the first individual
one of the shift register means in such line but without reference to any particular
time relative to such line, from the storage means (62; 70; 194) to a second individual
one (116, 216) of the shift register means (100; 216) receiving such bytes.
2. A method as set forth in claim 1, wherein the method further comprises:
selecting the bytes of the first individual one of the different types of information
from the group including of standard interframe video information (SIF1, SIF2) and
graphics information (GRAPHICS DATA); and
selecting the bytes of the second individual one of the different types of information
from the group including audio information (AUDIO) and television information (NTSC).
3. A method as set forth in claim 1, the method further comprising:
providing the transfer of the bytes of a pair of the different types of information
in each line in the raster scan, at particular times relative to such line in the
raster scan in the monitor (80) and in a particular order for the information in the
pair of different types, from the storage means (62;...194) to a respective pair (100,
103, 106; 200, 204, 206) of the shift register means (100,...216) in the plurality.
4. A method as set forth in claim 3, the method further comprising:
providing a blanking interval at the beginning of each line, and
transferring bytes of the pair of the different types of information relative to each
line in the raster provides such transfer at particular times in such line relative
to the blanking interval in such line.
5. A method for processing data in a multimedia graphics system for use with a monitor
(80) for displaying information, the method comprising:
storing bytes of different types of digital information selected from a group including
standard interface video information (SIF1, SIF2), graphics information (GRAPHICS
DATA) audio information (AUDIO) and television information (NTSC) within a storage
means (62; 170; 194);
transferring the different types of digital information from the storage means (62;
170; 194) to a plurality of shift register means (100, 104, 106, 114, 116; 200, 204,
206, 214, 216);
receiving and storing the bytes of an individual one of the different types of digital
information within the plurality of shift register means (100, 104, 106, 114, 116;
200, 204, 206, 214, 216);
associating a plurality of converter means (148, 150, 152; 248, 250, 252) with an
individual one of the shift register means (100,...216) in the plurality;
converting to analog form, at a first particular frequency, the bytes of digital information
from the individual one of the shift register means in the plurality;
transferring each individual one of the different types of digital information in
particular sequence relative to each line in the raster scan, at a second particular
frequency (72) greater than the first particular frequency, to the individual one
of the shift register means (100,...216) receiving that individual one of the different
types of digital information; and
transferring at each instant the bytes of information from a selective one of the
shift register means (100,...216) to a selective one of the converter means (148,...252)
for the presentation in analog form of the information introduced to such selective
one of the second means.
6. The method as set forth in claim 5 wherein the step of transferring each individual
one of the different types of digital information in particular sequence relative
to each line in the raster scan further comprises:
transferring successive bytes of the different types of digital information from the
controller means to the storage means in parallel form and;
passing bits in each successive byte of the different types of digital information
from the storage means to the individual ones of the shift register means (100,...216)
in serial form.
7. The method as set forth in claim 5 wherein the monitor provides a raster scan defined
by a plurality of lines and by a plurality of pixels in each line, the method further
comprising:
transferring of the successive bytes of the different types of digital information
from the controller means (60;...190) to the storage means (62;...192) using a first
bus (66, 68; 175); and
selecting, using a second bus, the individual one of the shift register means (100,...216)
to receive the successive bytes of signal information from the storage means (62;...192)
at each instant and for synchronizing the reception by the individual ones of the
shift register means (100,...216) of the bytes of the standard interface video information
(SIF1, SIF2) and graphics information (GRAPHICS...) for each line relative to the
presentation of the successive lines in the raster scan in the monitor (80).
8. A method as set forth in claim 5 wherein the monitor provides a raster scan defined
by a plurality of lines and by a plurality of pixels in each line, the method further
comprising:
transferring successive bytes of the different types of digital information from the
controller means (60;...190) to the storage means (62,...192) using a first bus (66,...175);
and
selecting the individual ones of the shift register means (100,...216) in the plurality
to receive the successive bytes of digital information from the storage means at each
instant using a second bus (84, 86; 196);
synchronizing the reception by such individual ones of the shift register means (SIF1,
SIF2) and graphics information (GRAPHICS...) for each line with the presentation of
the lines in the raster scan in the monitor (80) using the second bus (84, 86; 196);
providing a blanking interval at the beginning of each line;
transferring bytes of the standard interframe video information for each line from
the storage means to the individual one of the shift register means at a particular
time before the blanking interval for such line in the raster scan; and
providing a shift register means (100; 200) for the bytes of the graphics information
in each line, said shift register means having a capacity less than the number of
bytes in such line of the graphics information and the means (122, 230) including
the second bus initiating the transfer of the bytes of the graphics information for
each line into the individual one of the shift register means at a time during the
blanking interval in each line in the raster scan in the monitor (80) to provide substantially
full use of such shift register means (100, 200) in such line without preventing any
transfer of the bytes of the graphics information into such shift register means throughout
such line because of the full loading of such shift register means.
9. A method as set forth in claim 5, wherein the monitor provides a raster scan defined
by a plurality of lines and by a plurality of pixels in each line, the method further
comprising:
providing a blanking interval at the beginning of each line;
transferring bytes for each line, using a bus, at a particular time before the blanking
interval, from the storage means (62;...19) to the individual one (104, 106; 204,
206) of the shift register means (100,...206);
receiving said bytes (standard interface video information (SIF1, SIF2)); and
initiating the transfer of the bytes of the graphics information (GRAPHICS) for each
line, at a particular time during the blanking interval in such line, from the storage
means to the individual one (100; 200) of the shift register means receiving such
bytes.
10. The method as set forth in claim 9 the method further comprising:
transferring bytes of the graphics information into shift register means (100; 200),
having a capacity less than the number of bytes in each line of the graphics information,
at a time during the blanking interval in each line in the raster scan in the monitor
to provide substantially full use of such shift register means in such line without
preventing any transfer of the bytes of the graphics information into such shift register
means throughout such line because of the full loading of such shift register means.