METHOD AND APPARATUS FOR EFFICIENT MEMORY-READ OPERATIONS WITH A VGA-COMPLIANT VIDEO DISPLAY ADAPTOR

Abstract: The efficiency of reading information from video RAM in a display adaptor such as a VGA-compliant adaptor is improved by providing the desired information from a latch whenever possible rather than reading the desired information from video RAM or cache memory. Routine operations with graphical user interfaces such as moving and resizing visual images can be improved by first reading information for all pixels stored in a given location stored in video RAM before executing any commands that modify the contents of that location.

Description: DESCRIPTION METHOD AND APPARATUS FOR EFFICIENT MEMORY-READ OPERATIONS WITH A VGA-COMPLIANT VIDEO DISPLAY ADAPTOR Technical Field The present invention relates generally to interface circuitry between an information processing unit such as a personal computer and a display device such as a color video monitor. In particular, the present invention relates to improving the efficiency of obtaining information stored in random access memory of a display adaptor compliant with interface specifications such as the Video Graphics Array standard by improving the way in which graphics controller latches are used. Background Art Many information processing systems such as personal computers, for example, generate signals representing information intended for visual display on devices such as video monitors; however, the voltages and form of these signals are generally not compatible with such display devices. The signals generated by the information processing systems can be converted into signals suitable for driving a display device by interface circuitry referred to herein as a "display adaptor." Display adaptors conform to a variety of interface specifications, some of which are recognized standards and others of which are proprietary. One well-known standard is the Video Graphics Array (VGA) standard. Many of these interface standards support graphics-mode type displays in which images are presented as a matrix of small picture elements or "pixels." In color images, each pixel may assume any one of several available colors. Within a VGA-compliant adaptor, for example, information describing each pixel is stored in random access memory (RAM). Like other types of random access memory, each storage location in the video RAM of a VGA-compliant adaptor is individually addressable. The exact way in which this information is organized depends on the specific graphics mode that is used. In packed-pixel modes, information for one or more pixels are packed into each memory location. For example, one storage location could record 32 bits in which eight bits of information is stored for each of four pixels representing any one of 256 colors. In planar modes, video RAM is organized into several parallel planes. In one particular 16-color graphics mode, for example, four one-bit planes collectively provide for each pixel a four-bit value, thereby conveying any one of sixteen colors. One or more "palettes" may be used in a display adaptor to translate the values stored in RAM into specific red, green and blue (RGB) levels which define particular colors. In a VGA-compliant adaptor, when a memory-read instruction is executed in packed-pixel mode, all information stored at a designated address is accessed. For the example mentioned above, the process of obtaining information for a single pixel results in information for four pixels being read. When a memory-read command is executed in planar mode, information is read from multiple planes at a designated address. In one particular planar mode, for example, a memory- read instruction obtains four bytes of information, one byte from each of four memory planes. The information that is read from memory is not sent immediately to the device that requested it but instead is copied into one or more graphics controller latches and then subsequently returned to the requesting device. Nearly all modern implementations of display adaptors use RAM to increase the speed at which video signals can be generated to render an image on a video display device. A number of developments in the field of information processing, including the use of graphic display modes and a need to display greater numbers of colors to achieve more accurate rendering of color images, has lead to an increase in the amount of RAM that is typically used in a display adaptor. For example, several megabytes of RAM are used in display adaptors that are capable of supporting screen display resolutions of 1280 x 1024 pixels and/or are capable of displaying more than 16 million different colors. Unfortunately, as the amount of information stored in RAM has increased, the amount of time required to effect changes in displayed images has also increased; therefore, advances in faster memory management such as memory caching and dual-port RAM have been sought to improve the efficiency of generating display images. Despite these advances, an inefficient use of the latches referred to above degrades memory-read performance in display adaptors which conform to interfaces specifications such as the VGA standard. Disclosure of the Invention It is an object of the present invention to improve the efficiency of obtaining information stored in random access memory of a display adaptor compliant with interface specifications such as the Video Graphics Array standard by improving the way in which graphics controller latches are used. According to one aspect of the present invention, a display adaptor comprises random access memory having a plurality of locations, each of location capable of storing a plurality of bits representing display attributes of one or more pixels in a display image, and a control circuit having a command input and a data output, the control circuit coupled to the random access memory so as to have read access to the locations, thereby being capable of generating a data signal at the data output in response to a memory-read command signal received at the command input, the data signal representing digital information stored in a respective location, the control circuit also having a latch circuit coupled to the random access memory so as to be capable of latching information representing the respective location and the digital information, wherein, in response to a subsequent memory-read command signal, the control circuit is capable of generating the data signal in response to information latched in the latch circuit without access to the random access memory whenever the subsequent memory-read command signal requests reading information in the random access memory stored at the respective location. According to another aspect of the present invention in a display adaptor having random access memory, each respective location in the random access memory storing a plurality of bits representing display attributes of one or more pixels in a display image, a method for generating an output signal representing digital information stored at a respective location in random access memory in response to a memory-read command comprises the steps of: receiving a command signal and determining whether the received command signal represents a memory- read command for reading information from the random access memory; if the received command signal does not represent a memory-read command, clearing a saved address if processing of a command represented by the received command signal affects contents of the random access memory, processing the command represented by the received command signal, and bypassing the following steps: if the received command signal does represent a memory-read command, determining whether the saved address agrees with a command address specified by the memory-read command; if the saved address does not agree with the command address, saving the command address as a new saved address, processing the memory-read command represented by the received command signal, wherein the processing includes obtaining information stored in the random access memory at a location specified by the command address, placing the information in a latch, generating the output signal in response to the information, and bypassing the following step; and if the saved address does agree with the command address, generating the output signal in response to information previously placed in the latch. According to yet another aspect of the present invention, a medium readable by a machine embodying a program of instructions executable by the machine to perform a method in a display adaptor comprising random access memory, wherein the method is equivalent to the method recited in the previous paragraph. According to a further aspect of the present invention, a display adaptor comprises random access memory having a plurality of locations, each of the locations capable of storing a plurality of bits representing display attributes of one or more pixels in a display image; a latch coupled to the random access memory so as to be capable of latching digital information stored in a location of the random access memory; and control means coupled to the random access memory and to the latch for generating an output signal in response to a command signal representing a memory-read command, wherein the output signal represents digital information stored at a specified location in the random access memory specified by the memory-read command, wherein the control means generates the output signal in response to information in the latch without access to the random access memory whenever the memory-read command requests information in the random access memory at a location corresponding to the information in the latch. Display adaptors incorporating the present invention may be implemented using discrete components or high-level application-specific integrated circuits (ASIC), for example, and may include microprocessors or other forms of program-controlled circuits. Preferably, ASICs are used to obtain an implementation that is less expensive to manufacture than can be achieved by many other techniques; however, no particular implementation is critical to the practice of the present invention. The various features of the present invention and various embodiments may be better understood by referring to the following discussion and to the accompanying drawings in which like reference numbers refer to like features. The specific embodiments discussed and illustrated herein are offered as examples only and do not represent limitations on the scope of the present invention. Brief Description of the Drawings Fig. 1 is a functional block diagram of a typical personal computer incorporating a display adaptor for interfacing with a display device. Fig. 2 is a functional block diagram of one embodiment of a display adaptor. Fig. 3 is a flow diagram illustrating various aspects of one embodiment of a method according to the present invention. Modes for carrying Out the Invention and Industrial Application Fig. 1 is a functional block diagram of a typical personal computer incorporating a display adaptor for interfacing with a display device. CPU 2 provides computing resources. Input/output 3 represents an interface to I/O device 4 such as a keyboard, mouse, modem or printer. Storage controller 6 represents an interface to storage device 7 such as a magnetic tape drive or a disk drive. Display adaptor 8 provides an interface to display device 9. RAM 5 is system random access memory that should not be confused with any video RAM that may exist in display adaptor 8. The functions of one or more of these components can be implemented in a wide variety of ways including discrete logic components, one or more ASICs and/or program-controlled processors. All major system components connect to bus 1 which may represent more than one physical bus. For example, some personal computers incorporate only a so called Industry Standard Architecture (ISA) bus. Many more modern computers incorporate an ISA bus as well as a higher bandwidth bus conforming to some bus standard such as the VESA local bus standard or the PCI local bus standard. Preferably, display adaptor 8 connects to a high-bandwidth bus to improve the speed of display; however, a bus architecture is not required to practice the present invention. The present invention pertains to features of display adaptor 8; therefore, all of the components illustrated in Fig. 1 are not required to practice the present invention. For example, a display adaptor incorporating aspects of the present invention may be used in an information processing system that includes only CPU 2, input/output 3 connected to some input device 4 such as a switch or keypad, RAM 5, display adaptor 8 and display device 9. Display Adaptor Fig. 2 is a functional block diagram of one embodiment of display adaptor 8. In this embodiment, controller 100 is coupled to bus 1 to send and receive signals conveying various types of information. For example, controller 100 receives commands from path 11, addresses from path 13, data from path 15 and timing from path 17. Controller 100 sends data to bus 1 along path 15. If a command received from path 11 is a memory-read command, the address received from path 13 indicates the location in memory that is to be read. Data that is obtained from memory by the read is placed into latch 102 and sent along path 15. If a command received from path 11 is a memory-write command, the address received from path 13 indicates the location in memory where data received from path 15 is to be written. Controller 100 uses memory controller 104 to access video RAM 106. Information read from video RAM 106 passes through memory controller 104 onto memory bus 109. Information written into memory passes from memory bus 109 through memory controller 104 into video RAM 106. As illustrated, memory bus 109 is a 32-bit bus. This width is not critical to the present invention and other widths can be used. Cache 108 is optional but can be used to decrease the time required to access information stored in video RAM 106. Whether or not caching is used, information read from a location in video RAM 106 is placed into latch 102. Video output 110 generates a video output display signal in response to information obtained from video RAM 106. No particular implementation of video output 110 is critical to the practice of the present invention but typical implementations includes a first-in-first-out (FIFO) buffer to ease timing constraints imposed on obtaining information needed to generate a video output display signal, a palette to modify information obtained from video RAM 106 according to display attributes that can be established by controller 100, for example, to make color and gamma corrections, a video shift register to convert pixel information into a serial bit stream, and a digital-to-analog converter to generate an analog video signal. Controller 100 adapts the operation of shift register according to information such as the number of bits per pixel and also provides a video synchronization signal along path 123. The embodiment shown in Fig. 2 is intended to be generic, illustrating basic functions in a broad range of display adaptor implementations. One example of a display adaptor into which the present invention may be incorporated is model SPC8110F0A, manufactured by S MOS Systems Inc., San Jose, California. The embodiment shown in Fig. 2 is also intended to be simple, omitting some elements such as buffers, clocks, sprite management, bus mastering, co-processing, pipelining and power management found in many practical implementations. The features omitted from the figure may be used in a wide variety of combinations and can be implemented in many ways; however, these features are not essential to the present invention. The present invention is not limited to display adaptors implemented according to any particular embodiment including the embodiment shown in Fig. 2. The essential features are a latch control function described below that can be provided by controller 100, a graphics controller latch such as latch 102, and random access memory such as video RAM 106. Latch Control Fig. 3 is a flow diagram illustrating functional steps in one method of a latch control function according to the present invention. The operation of this control method will be described with reference to the display adaptor embodiment shown in Fig. 2. Step 202 provides initialization as required. Step 204 determines whether a command received from path 11 is a memory- read command. If it is, step 208 determines whether the read address specified by the command agrees with a previously saved address. If the two addresses agree, data previously placed in latch 102 is provided to path 15. If the two addresses do not agree, the read address specified by the command is saved and the command is processed, causing the requested information to be obtained from cache 108 if possible, otherwise obtained from video RAM 106. If the command received from path 11 is not a memory-read command, step 216 determines whether execution of the command will affect the contents of video RAM 106. If it will, step 218 clears the saved address; step 212 processes the command. Step 214 can provide various housekeeping functions as desired. It should be apparent that the essential features of the latch control method described above can be achieved by equivalent methods comprising similar steps arranged in different orders. These variations do not depart from the scope of the present invention. Programming Two common operations with graphical user interfaces that illustrate a benefit achieved by the present invention are moving and resizing display objects such as windows. Operations like these cause many iterations of commands that read data from video RAM, modify the data, and write the modified data into video RAM. According to the prior art, subsequent memory-read commands cause either cache memory 108, if implemented, or video RAM 106 to be accessed even if the desired information is available in latch 102. For example, suppose information stored in video RAM 106 is organized according to either a packed-pixel mode or a planar mode such that each location stores information representing two or more pixels. A move or resizing operation could be performed more efficiently by first executing memory-read commands for all pixels requiring modification that are stored in a given location. The first memory-read command to the given location would obtain the desired information from either cache 108 or video RAM 106 and place the information stored in that location into latch 102. Subsequent memory- read commands for pixel information stored in that location would obtain the desired information from latch 102. Following all the necessary reads to that location, the modified pixel information can be written to video RAM as desired. The proper order for executing memory-read commands relative to other types of commands can be specified by logic in the device that requests the information, e.g., an application or operating system component, or it can be provided by either a special interface called a "device driver" in the requesting device or by logic in the display adaptor itself which examines sequences of commands and reorders them as appropriate. In addition to moving and resizing, the present invention can improve the efficiency of other types of operations which require repeated access to the same location in video RAM. Although it is contemplated that the greatest benefit of the present invention will occur in situations where locations in video RAM store information for more than one pixel, benefits can be realized even for graphics modes that store information for only one pixel in each location where repeated read access to a given location is made without any intervening command that affects video memory contents.

Claims: CLAIMS 1. A display adaptor comprising: random access memory comprising a plurality of locations, each of said locations capable of storing a plurality of bits representing display attributes of one or more pixels in a display image, and control circuit having a command input and a data output, said control circuit coupled to said random access memory so as to have read access to said locations, thereby being capable of generating a data signal at said data output in response to a memory-read command signal received at said command input, said data signal representing digital information stored in a respective location, said control circuit also having a latch circuit coupled to said random access memory so as to be capable of latching information representing said respective location and said digital information, wherein, in response to a subsequent memory-read command signal, said control circuit is capable of generating said data signal in response to information latched in said latch circuit without access to said random access memory whenever said subsequent memory-read command signal requests reading information in said random access memory stored at said respective location. 2. A display adaptor according to claim 1 wherein said random access memory is organized into a plurality of planes and each location stores information representing display attributes of a respective pixel in said display image, each plane in a respective location capable of storing one or more bits. 3. A display adaptor according to claim 1 further comprising a memory cache interposed between said random access memory and said control circuit. 4. In a display adaptor, a method for generating an output signal in response to a command signal representing a memory-read command, said output signal representing digital information stored at a respective location in random access memory specified by said memory-read command, each respective location in said random access memory storing a plurality of bits representing display attributes of one or more pixels in a display image, said method comprising the steps of: (a) receiving a command signal and determining whether the received command signal represents a memory-read command for reading information from said random access memory, (b) if the received command signal does not represent a memory-read command, clearing a saved address if processing of a command represented by the received command signal affects contents of said random access memory, processing the command represented by the received command signal, and bypassing the following steps, (c) if the received command signal does represent a memory-read command, determining whether said saved address agrees with a command address specified by the memory-read command, (d) if said saved address does not agree with said command address, saving the command address as a new saved address, processing the memory-read command represented by the received command signal, wherein said processing includes obtaining information stored in said random access memory at a location specified by said command address, placing said information in a latch, generating said output signal in response to said information, and bypassing the following step, and (e) if said saved address does agree with said command address, generating said output signal in response to information previously placed in said latch. 5. In a display adaptor, a method according to claim 4 wherein said random access memory is organized into a plurality of planes and each location stores information representing display attributes of a respective pixel in said display image, each plane in a respective location capable of storing one or more bits. 6. In a display adaptor comprising a memory cache coupled to said random access memory, a method according to claim 4 wherein processing of a memory-read command having a command address that does not agree with said saved address includes obtaining said information from said memory cache. 7. A medium readable by a machine embodying a program of instructions executable by said machine to perform a method in a display adaptor comprising random access memory, wherein said method is for generating an output signal in response to a command signal representing a memory-read command, said output signal representing digital information stored at a respective location in said random access memory specified by said memory-read command, each respective location in said random access memory storing a plurality of bits representing display attributes of one or more pixels in a display image, said method comprising the steps of: (a) receiving a command signal and determining whether the received command signal represents a memory-read command for reading information from said random access memory, (b) if the received command signal does not represent a memory-read command, clearing a saved address if processing of a command represented by the received command signal affects contents of said random access memory, processing the command represented by the received command signal, and bypassing the following steps, (c) if the received command signal does represent a memory-read command, determining whether said saved address agrees with a command address specified by the memory-read command, (d) if said saved address does not agree with said command address, saving the command address as a new saved address, processing the memory-read command represented by the received command signal, wherein said processing includes obtaining information stored in said random access memory at a location specified by said command address, placing said information in a latch, generating said output signal in response to said information, and bypassing the following step, and (e) if said saved address does agree with said command address, generating said output signal in response to information previously placed in said latch. 8. A medium according to claim 7 wherein said random access memory is organized into a plurality of planes and each location stores information representing display attributes of a respective pixel in said display image, each plane in a respective location capable of storing one or more bits. 9. A medium according to claim 7 wherein said display adaptor further comprises a memory cache coupled to said random access memory, and wherein processing of a memory-read command having a command address that does not agree with said saved address includes obtaining said information from said memory cache. 10. A display adaptor comprising: random access memory comprising a plurality of locations, each of said locations capable of storing a plurality of bits representing display attributes of one or more pixels in a display image, latch coupled to said random access memory so as to be capable of latching digital information stored in a location of said random access memory, and control means coupled to said random access memory and to said latch for generating an output signal in response to a command signal representing a memory-read command, wherein said output signal represents digital information stored at a specified location in said random access memory specified by said memory-read command, wherein said control means generates said output signal in response to information in said latch without access to said random access memory whenever said memory-read command requests information in said random access memory at a location corresponding to the information in said latch. 11. A display adaptor according to claim 10 wherein said random access memory is organized into a plurality of planes and each location stores information representing display attributes of a respective pixel in said display image, each plane in a respective location capable of storing one or more bits. 12. A display adaptor according to claim 10 comprising a memory cache coupled to said random access memory and to said control means, wherein said control means generates said output signal in response to information in said latch without access to said memory cache whenever said memory-read command requests information in said random access memory at a location corresponding to the information in said latch. 13. An information display system comprising: an information processing device, a display adaptor having a command input, a data input, a data output and an image output, wherein said command input, data input and data output are coupled to said information processing device, and a display device coupled to said image output of said display adaptor, wherein said display adaptor comprises: random access memory comprising a plurality of locations, each of said locations capable of storing a plurality of bits representing display attributes of one or more pixels in an image to be displayed on said display device, and control circuit coupled to said random access memory so as to have read access to said locations, thereby being capable of generating a data signal at said data output in response to a memory-read command signal received at said command input, said data signal representing digital information stored in a respective location, said control circuit also having a latch circuit coupled to said random access memory so as to be capable of latching said digital information, wherein, in response to a subsequent memory-read command signal received at said command input, said control circuit is capable of generating said data signal in response to information latched in said latch circuit without access to said random access memory whenever the subsequent memory-read command signal requests reading information in said random access memory stored at said respective location. 14. An information processing system according to claim 13 wherein said random access memory is organized into a plurality of planes and each location stores information representing display attributes of a respective pixel in said display image, each plane in a respective location capable of storing one or more bits. 15. An information processing system according to claim 13 further comprising a memory cache interposed between said random access memory and said control circuit.

Inventors: LYONS GEORGE, LYONS, GEORGE
Applicants: SEIKO EPSON CORP, SEIKO EPSON CORPORATION
Application year: 1998
Main classification: G06F3
IPC codes: G06F3, G06F12, G06T1, G09G5