|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a method and apparatus for converting an input signal to an output signal at a high rate of speed, and, more particularly, to a method and apparatus for accessing values in a memory device at high rates of speed.
2. Description of Related Art
In the field of information processing it is highly desirable to convert or transform a signal from one form to another at a high rate of speed. A signal is often represented by a stream of data and arrives at an input to the information
processing system. Each datum in the stream often arrives at the input at a fixed time period after the preceding datum has arrived. The shorter the period is between incoming data, the higher the rate is of the data stream.
The data stream can also be considered as a time sequence of values arriving at the input to the information processing device. When a stream of incoming data arrives at an input to an information processing system at a high rate, it is often
advantageous to convert or transform that data to an output at an equally high rate. Usually, at least one output stream of data is desired at a rate substantially equal to the input rate.
One example of a system wherein high conversion rates are desired is in a color-enhancement system for conventional video displays. The image on the video display is composed of many points known as pixels. Each pixel is displayed according to
data indicating its position on the display screen and the color to be displayed at that position. The image is composed by updating the display screen frequently using data provided for each pixel. Color-enhancement usually is accomplished by
expanding the number of bits used to designate color data for each pixel.
In many conventional video display systems, pixel color data is composed of 8-bits of digital information, which allow for the potential to display 256 different colors at that pixel position. In order to enhance the quality of the displayed
image, a practice has developed of expanding, in a conversion or transformation, the number of pixel color data bits, to, for example, 18 or 24 bits per pixel. Although such a practice results in an enhanced color image, difficulties and limitations are
encountered in its implementation.
A significant limitation is that the conversion device requires a relatively long amount of time to effect a conversion, or, in this case, a bit-length expansion. This has required the makers of color enhancement systems to limit the rate of the
incoming color pixel data stream to accommodate a slow conversion device. Slowing down the data stream means that the pixel information in the video display cannot be sent to the display screen as frequently, thereby limiting the image quality.
One of the most commonly used types of conversion devices is a Random Access Memory (RAM). In a RAM, data values are stored in a number of locations commonly referred to as addresses. Each address or location holds one data value. An input
signal to the RAM, commonly referred to as an address signal, indicates which data value will be made available by the RAM on its output line as an output signal. The RAM effects a conversion by accepting an address input value, pointing to or selecting
a stored data value in a memory location based on the address input value, and by outputting the data value stored in the selected memory location. The time it takes for the RAM to convert an address input to a valid data signal value is usually
referred to as an access time.
Returning to the video display example, one color-enhancement scheme makes use of a RAM with an 8-bit address input capable of addressing or pointing to 256 (2.sup.8) separate memory locations. The RAM can be built to store and output data
values having virtually any bit-length, such as 18 or 24 bits. By storing appropriate data values in each memory location, the RAM is capable of converting 8-bits of input data to, for example, 18 or 24 bits of output data. Ordinarily, a conventional
video display is configured to accept 8-bits of incoming color data per pixel in a data stream. The video display can be reconfigured to accept an expanded number of bits, such as 18 or 24, in an incoming data stream. A RAM is interposed between the
video display and the incoming 8-bit data stream so that the incoming 8-bit data stream becomes an address input to the RAM. The address input is used to access an appropriate expanded value, stored in a memory location or address, and to use that value
as output to the video display.
Hence, the video display accepts more color information per pixel, increasing the image quality of the displayed image. However, the period between incoming data values in the data stream must not exceed the access time of the RAM, or erroneous
conversions will occur, scrambling the image. In other words, the rate of incoming data must be decreased to accommodate the RAM access time to maintain image integrity. This limits the quality of the image capable of being displayed by the video
display.
The display of a video image is just one example of an information processing application which requires a conversion of a signal from one form to another at a high rate of speed. Many other situations are encountered where a conversion device,
such as a RAM, requires a conversion time which exceeds the potential period between incoming data in a data stream, so that accurate conversion is not possible without slowing down the incoming data stream. A common solution in such situations has been
to slow down the data stream to accommodate a slow conversion device.
Various references discuss the rate of image generation in a video display device. However, the general problem of having to accommodate a relatively slow access device has not been adequately resolved by these references.
For example, U.S. Pat. No. 4,905,189, issued to Brunolli, discloses a system for synchronously reading information from a RAM device on a fast port independently of the devices ability to asynchronously read or write information to the RAM on a
slow port. Information is read out of the memory and evaluated using two alternatingly switched channels to increase the evaluation speed.
This reference does not effectively address the problem of converting values in an incoming data steam at a relatively high rate using a conversion device having a high conversion or access time, utilizing external timing control elements. It
merely teaches how to increase the evaluation speed of data after it has been read out of the device.
Another example, U.S. Pat. No. 4,742,350, issued to Ko et al., discloses a system for displaying an image using picture data, attribute data, and synchronization data, wherein the attribute data includes embedded synchronization data.
U.S. Pat. No. 4,791,580, issued to Sherrill et al., discloses multiple color map memories to quickly store color map information during display line retrace intervals. This primarily involves a scheme for quickly writing data into multiple
color map RAM memories, included in a display processor, from a video RAM (VRAM) memory.
U.S. Pat. No. 5,163,024, issued to Heilveil et al., discloses a video memory device employing a bit-mapped RAM unit, a serial shift register and appropriate decode circuitry to enable a single video memory to be used with displays using various
numbers of bit resolution.
Although teaching the principles of data storage and retrieval in a random access memory, the prior art, as represented by these references, does not effectively address the problem of converting values in a data stream at a relatively high rate
using a conversion device having a high conversion time.
SUMMARY OF THE INVENTION
The present invention effectively overcomes the problem discussed above which has remained unsolved in the prior art. More specifically, a device and method of the invention enable a random access memory having an access time which is ordinarily
too long to effectively process input data and perform conversions thereon, to accomplish this task.
In accordance with the invention, a random access memory has an access time which is longer than the period of read input signals, for example digital video data signals, such that it cannot respond directly to the input signals. The memory has
two read address inputs and two outputs which are arranged as separate channels, each of which can access any location in the memory. The access time of the memory is shorter than two input signal periods.
The input signals are applied alternatingly to the read address inputs, and output signals constituted by data stored at addresses corresponding to the input signals are produced at the memory outputs by an arrangement of clocked latches such
that, although two input signal periods are used for accessing each memory location, the alternating accessing using two channels enables the memory to produce output signals having the same period (at the same frequency) as the input signals.
Additional elements are provided to enable writing to the memory using the alternating channel arrangement, and also to enable memory locations to be read by the cpu 12 while color conversion is occurring.
The present invention also comprises a method of converting input values in a time sequence of signal values into a time sequence of output values. The method comprises the steps of temporarily storing a first input value in a time sequence of
signal values, temporarily storing a second input value in the time sequence of signal values, initiating conversion of the first stored input value, initiating conversion of the second stored input value before completion of the first conversion,
temporarily storing a converted output value of the first input value, temporarily storing a converted output value of the second input value, and selectively coupling to an output the stored converted output values of the first and second input values
so as to provide a time sequence of converted output values.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows the present high speed signal conversion device in the context of a system for enhancing color in video display image.
FIG. 2 shows a timing diagram of data flow in the present high speed signal conversion device for converting an input sequence of values to an output sequence of values.
FIG. 3(a) shows a timing diagram of timing signals for the present high speed signal conversion device.
FIG. 3(b) shows a timing diagram of timing signals for effecting a read operation in the present high speed signal conversion device.
FIG. 4 shows a timing diagram of data flow during a read operation in the present high speed signal conversion device.
DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring to FIG. 1 of the drawings, in one typical operating environment, a high speed signal conversion device 10 in accordance with the present invention can enhance the quality of an image displayed on a conventional video display. The
operating environment depicted in FIG. 1 is of a computer controlled video display device, and shows conventional computer or central processing unit (CPU) 12, video controller 14, display memory 16, digital-to-analog conversion device 18 and video
display 20, in addition to the present high speed signal conversion device 10.
In conventional fashion, video controller 14 is operatively connected to video RAM 16 and to CPU 12. Digital-to-analog conversion device 18 is operably connected to video display 20, also in conventional fashion. High speed signal conversion
device 10 connects between video controller 14 and digital-to-analog conversion device 18, and replaces conventional devices for effecting an expansion of the number of color bits used to provide color information for a pixel in a video display 20.
In the context of this typical environment, high speed signal conversion device 10 accepts an input time sequence of values, or a data stream, typically comprising 8-bit digital values, over color data bus 42 from video controller 14. Each
digital value in the data stream comprises 8-bits of color information, or an 8-bit color value, which provides color information for a pixel displayable in an image on the video display 20.
High speed signal conversion device 10 converts 8-bit color values at a substantially high rate, expanding the number of bits available to provide color information to, for example, 18-bits per pixel. By using high speed signal conversion device
10, the frequency of the incoming (and outgoing) time sequence of data values can be increased, for example, from 80 MHz-90 MHz to 160 MHz-170 MHz, when utilizing a memory device 22 with an access time of approximately 4 ns-5 ns, nominal, and
approximately 10 ns worst case.
One of ordinary skill in the art will appreciate that the designation, interconnection, and operation of the conventional elements listed above is susceptible to many different forms of implementation, and in no way limits the scope of the
present invention. Furthermore, the block diagrams shown in FIG. 1 merely illustrate the functions performed and should not be construed as limiting the possible applications of the present invention to any specific environment. Thus, by way of
example, display memory 16 could be either some form of RAM or ROM memory. Similarly, if desired, all of the CPU, video controller, and memory could be embodied in a single circuit. Alternatively, the CPU 12 may be embodied in a single integrated
circuit with conventional dynamic random access memory (DRAM) employed as the display memory 16 thus applicants do not regard their invention as being limited to any specific embodiment of these conventional elements. A detailed discussion of the high
speed conversion device 10 of the present invention follows.
Still referring to FIG. 1, one preferred embodiment of the high speed conversion device 10 comprises a memory device 22, first and second input latches 24 and 26, first and second output latches 28 and 30, and a first multiplexer 32. The device
10 can further include a second multiplexer 34, an address module 36, a third multiplexer 38 and a read latch 40. A timing module 92 is also shown.
Memory device 22 preferably is a RAM and includes at least two inputs, or address ports (AD1 and AD2), and at least two outputs, or data ports (OD1 and OD2). The memory device 22 may further include a write address port (WAD), a write data port
(WD), and a write enable control (WE). Memory device 22 may, in alternative embodiments, comprise any type of digital storage device, such as, for example, a read only memory (ROM). Memory device 22 contains a plurality of stored digital values which
are selectable for output on the data ports based on input values on the address ports.
Memory device 22 is of conventional design such that any and all storage locations (addresses) are addressable on either address port AD1 or AD2, and such that the data stored in any address location may be simultaneously output to either data
port OD1 or OD2. The address port AD1 and output OD1 constitute a first memory channel, whereas the address port AD2 and output OD2 constitute a second memory channel.
Thus, inputs to AD1 at a particular time cause a particular stored data value to be output at OD1 at a later time which depends on the access or conversion time of memory device 22. Similarly, inputs to AD2 at a particular time cause a
particular stored data value to be output at OD2 at a later time which depends on the access or conversion time of memory device 22. The two input-output channels just described operate independently from each other and can therefore simultaneously
access the stored data values.
A preferred example of a two-port RAM memory device which is commercially available as an off-the-shelf item and can be directly utilized as the memory device 22 is the Model IDT7130SA/LA, IDT7140SA/LA, CMOS DUAL-PORT RAMS 8K (1K.times.8-BIT),
manufactured by Integrated Device Technology Inc., Santa Clara, Calif., as described in a data sheet published in December 1987.
The first and second input latches 24 and 26, as well as first and second output latches 28 and 30, each preferably have at least one input and at least one output, and each respond to a timing pulse at a control input. Respectively, on the
occurrence of an appropriate timing pulse, a digital value presented at the latch input is provided at the latch output. Preferably, the input and output latches are conventional edge-triggered flip-flop type devices. Alternatively, the input and
output latches may be conventional level-sensitive, or transparent, latches.
First (input) multiplexer 34, second (output) multiplexer 32, and third (read) multiplexer 38, are conventional multiplexers each including at least two data inputs, one output, and a select input. Each multiplexer respectively provides a data
value at a single input to its output in response to a value, or select pulse, presented to its select input.
Read latch 40 preferably includes at least one input and at least one output, and responds to a timing pulse at a control input. On the occurrence of an appropriate timing pulse, a digital value presented at the latch input is provided at the
latch output. Preferably, the read latch 40 is a conventional edge-triggered flip-flop type device. Alternatively, it may be a conventional level-sensitive, or transparent, latch. In an alternative preferred embodiment, the read latch 40 may further
include a conventional double-buffered, or multistage-buffered, arrangement, so that it may respectively accept and store previous data values and new data values in each stage-buffer. Read latch 40 may also accept as input a byte-select signal, as part
of R/W control bus 70, so that a subset of the digital bits stored therein may be selected for output on read/write interface bus 62.
Address module 36 is preferably included in an embodiment of the present high speed conversion device 10. Address module 36 comprises conventional digital circuitry, and includes a read input 64 (RD), a write input 66 (WR), and an input/output
address input 120 (I/O ADD) for controlling the read/write mode of operation within the address module 36, a pixel clock timing input (PCLK), and a read/write data input (R/W DATA) for accepting read or write input data from the video controller 14, or,
indirectly, from the CPU 12. Address module 36 provides as output a read output (RD), a read/write address output (R/W ADD), and a read/write control output (R/W).
Timing module 92 comprises conventional digital circuitry and preferably includes a pixel clock timing input (PCLK) and preferably includes a read input (RD). Timing module 92 preferably provides phase timing pulse outputs (B/D and C/E) and
first select pulse output (F). The timing module 92 can also provide second timing pulse output (H) and second select pulse output (G).
Still referring to FIG. 1, memory device 22 connects at a first address port AD1 to an output of first latch 24 over a first input channel 76. Memory device 22 connects at a second address port AD2 to an output of second input latch 26 over
second input channel 78. First and second input channels 76 and 78 preferably comprise 8-bit paths.
Similarly, memory device 22 connects at a first data port OD1 to an input of output latch 28 over first output channel 80 and connects at a second data port OD2 to an input of output latch 30 over second output channel 82. First and second
output channels 80 and 82 preferably comprise 18-bit paths.
First input latch 24 and second input latch 26 are respectively connected, at an input, to common input channel 74. Common input channel 74, first input latch 24, and second input latch 26 all preferably comprise 8-bits.
First output latch 28 and second output latch 30 connect at an output to an input of first multiplexer 32 over first and second latched output channels 84 and 86, respectively. Both output latches 28 and 30 and the first multiplexer 32, as well
as the latched output channels 84 and 86, preferably comprise 18-bits. The output of first multiplexer 32 is provided on converted output channel 94, which preferably comprises 18-bits.
The timing module 92 connects at an input to a clock output of video controller 14 over pixel clock line 72. Timing module 92 also connects at a first phase output (B/D) to a timing pulse input of first input latch 24 over a first phase timing
pulse line 46 and to a timing pulse input of first output latch 28 over a first phase timing pulse line 50. Second input latch 26 and second output latch 30 also connect at a respective timing pulse input to a second phase output (C,E) of timing module
92 over second phase timing pulse lines 48 and 52. Finally, timing module 92 connects at a first select output (F) to a select input of first (output) multiplexer 32 over first select pulse line 54.
In operation, the present invention provides for an input signal arriving at a high rate to be converted to an output signal at a same rate, even though a conversion device is used with an access time ordinarily too long (slow) to operate
properly at such a high rate. In particular, input signal rates substantially in excess of 160 MHz-170 MHz are achievable when a memory device 22 is used having a nominal access time of approximately 4 nS-5 nS (nanoseconds) and a worst case access time
of approximately 10 nanoseconds.
Operation of the invention proceeds with reference to FIGS. 1 and 2. A pixel clock signal, carried on pixel clock line 72, is generated in the video controller 14 and controls the frequency of transmission of pixel information in the overall
video display system. In this embodiment a period, or cycle, of the pixel clock preferably begins on each rising edge and concludes on the next rising edge of the pixel clock signal.
Input data values on common input channel 74 arrive in synchronized relationship with the periods of the pixel clock, as shown in FIG. 2. Hence, a time sequence of data values is presented at an input to high speed signal conversion device 10,
at a frequency of approximately 160-170 Megahertz.
On a first rising edge of the pixel clock a first data value ID.sub.1 is valid on common input channel 74. On a second rising edge of the pixel clock a second data value ID.sub.2 is valid on common input channel 74, and so forth as indicated in
FIG. 2. Timing module 92 generates, in a conventional manner, a first phase timing pulse and a second phase timing pulse each having a frequency which is one-half the frequency of the pixel clock, respectively shown in FIG. 3 at numerals 46, 50 and 48,
52.
Also, the first and second phase timing pulses are 180 degrees out of phase with each other. Finally, the timing pulse signals are slightly delayed with respect to the pixel clock so that valid data values are present on common input line 74
whenever a rising edge-transition occurs on the pixel clock, and so that either the first phase signal is high or the second phase signal is high during a given rising edge-transition of the pixel clock. This scheme uses the first and second phase
signal levels to enable the first input latch 24 or the second input latch 26 on alternate data values in the incoming data sequence. The first phase timing pulse signal appears on lines 46 and 50, while the second phase timing pulse signal appears on
lines 48 and 52. Alternatively, the latches 24 and 26 could be edge triggered by an edge-transition of the first or second phase timing signals, respectively.
First input latch 24 and second input latch 26 each capture, or latch, alternate values from common input line 74 in response to rising edge-transitions of the pixel clock, enabled by a high logic level of either first phase timing pulse line 46
or second phase timing pulse line 48. With reference to FIG. 2, the arrangement of the pixel clock periods and phase timing pulses is such that, during a first period of the pixel clock, a first data value ID.sub.1 is latched from common input line 74
into first input latch 24. During a second period of the pixel clock, a second data value ID.sub.2 is latched from common input line 74 into second input latch 26. In this fashion, the first and second input latches 24 and 26 alternatingly latch odd
and even numbers of data values from the input time sequence of data values.
Once latched, a data value is provided at the outputs of first and second input latches for two cycles of the pixel clock, as shown in FIG. 3. In particular, reference is made to the signal appearing on first input channel 76 and second input
channel 78, which prolong the availability of data values ID.sub.x at the address ports AD1 and AD2 of memory device 22.
Memory device 22 has an access or conversion time associated with a data value conversion in each channel. A first channel access or conversion time 104 and a second channel access or conversion time 106 are shown in FIG. 2. The access or
conversion time is the time it takes before valid output data appears at a memory device 22 data port OD1 or OD2, after receiving a valid address port input value at AD1 or AD2, respectively.
In FIG. 2, access or conversion operations within memory device 22 are shown by vertical arrows 96, 98, 100, and 102. The access or conversion operations 96, 98, 100, and 102 respectively terminate with a valid output data value OD.sub.1,
OD.sub.2, OD.sub.3, and OD.sub.4 appearing on first and second output channels 80 and 82 at the conclusion of an access or conversion time 104 or 106. Also, the conversions for odd and even values are time-staggered in the two channels.
From FIG. 2 it can be seen that access or conversion times 104 and 106 both exceed the time of a single pixel clock period. This means that the input time sequence of values is changing at a rate which is faster than a rate at which memory
device 22 would ordinarily be able to properly convert the values to valid output data. The latching and timing scheme herein discussed allows for the conversion of values at a rate in excess of the conversion rate in either channel of memory device 22.
Converted output values are latched in a similar manner. First output latch 28 and second output latch 30 each capture, or latch, a value from respective data ports OD1, OD2 of memory device 22 over first output channel 80 and second output
channel 82, in response to a rising edge-transition of the pixel clock, in conjunction with the signal levels on first phase timing pulse line 50 and on second phase timing pulse line 52. With reference to FIG. 2, it is seen that output data values are
respectively latched into first and second output latches 28 and 30 a fixed number of pixel clock periods (two cycles) after input data values are latched in first and second input latches 24 and 26. In this fashion, the first and second input latches
24 and 26, and the first and second output latches 28 and 30, alternatingly latch odd and even numbers of data values.
Once latched, an output data value is provided at the outputs of first and second output latches 28 and 30 for two cycles of the pixel clock, as shown in FIG. 2. In particular, reference is made to the signal appearing on first latched output
channel 84 and second latched output channel 86, which prolong the availability of output data values OD.sub.x at the respective inputs to first multiplexer 32.
Timing module 92 also generates, in conventional fashion, a first select pulse signal which is provided to a select input of first multiplexer 32 on first select pulse line 54. Referring to FIG. 3, the first select pulse signal on select pulse
line 54 is preferably generated to be one-half the frequency of the pixel clock and preferably has level-transitions in phase with pixel clock transitions.
The application of the first select pulse signal to first multiplexer 32 results in an output time sequence of converted values being provided at converted output channel 94 at the same rate as the incoming input time sequence of data values,
despite an access time in memory device 22 which ordinarily would prevent proper conversions at such rates. This is accomplished by responding to read input signals in time alternating relation using the two memory channels.
Summarizing briefly the above operation with reference to FIG. 2, during a first period of the pixel clock, the first input value (ID.sub.1) is latched into a first input latch, the first input value (ID.sub.1) is presented to memory input at the
output of the first latch and memory device 22 begins the process of converting the first input value (ID.sub.1) to a first output value (OD.sub.1) which requires an access time 104.
During a second period of the pixel clock, the second value (ID.sub.2) is latched into a second input latch, the first input value (ID.sub.1) continues to be presented to memory input at the output of the first latch, memory device 22 completes
the process of converting the first input value (ID.sub.1) to a first-output value (OD.sub.1) at the end of access time 104, and memory device 22 begins the process of converting the second input value (ID.sub.2) to a second output value (OD.sub.2) which
requires access time 106.
During a third period of the pixel clock, the third input value (ID.sub.3) is latched into the first input latch, the first output value (OD.sub.3) is latched into a first output latch, the second input value (ID.s | | |