CIRCUITS AND METHODS FOR CONTROLLING THE REFRESH OF A FRAME BUFFER COMPRISING AN OFF-SCREEN AREA

Abstract: A method is provided for refreshing data stored in a frame buffer. Data stored in the first area of the frame buffer are automatically refreshed during retrieval of such data for display generation. Data stored in a second area of a frame buffer is refreshed according to the following substeps. A determination is made as to whether selected data in the second area of the frame buffer is required during the generation of an upcoming display line. The selected data is read from the second area when such data from the second area of the frame buffer is required for generation of the upcoming display line. A refresh is initiated of at least a portion of the second area when data from the second area is not required for the generation of the upcoming display line and a time for refresh of the second area has been reached.

Description: CIRCUITS AND METHODS FOR CONTROLLING THE REFRESH OF A FRAME BUFFER COMPRI¬ SING AN OFF-SCREEN AREA TECHNICAL FIELD OF THE INVENTION The present invention relates in general to display subsystems and display controllers and in particular to circuits and methods for controlling 5 frame buffer refresh. _, 76 BACKGROUND OF THE INVENTION A typical processing system with video/graphics display capability includes a central processing unit (CPU) , a display controller coupled with the CPU by a CPU bus, a system memory also coupled to the CPU bus, a frame buffer coupled to the display controller by a local bus, peripheral circuitry (e.g., clock drivers and signal converters), display driver circuitry, and a display unit. The CPU generally provides overall system control and, in response to user commands and program instructions retrieved from the system memory, controls the contents of graphics images to be displayed on the display unit. The display controller, which may for example be a video graphics array (VGA) controller, generally interfaces the CPU and the display driver circuitry, controls the exchange graphics and/or video data with the frame buffer during data update and display refresh operations, controls frame buffer memory operations, and performs additional processing on the subject graphics or video data, such as color expansion. The display driver circuitry converts digital data received from the display controller into the analog levels required by the display unit to generate graphics/video display images. The frame buffer typically includes an on-screen memory area, an off-screen area and areas for holding data defining the cursor and various icons. The on-screen area stores words of display data defining the color/gray-shade of each pixel in an entire display frame. During display refresh, this "pixel data" is retrieved out of the on-screen memory area by the display controller word by word as the corresponding pixels on the display screen are refreshed during the raster scan. The off-screen memory stores other types of data required for display controller operation. For example, the off-screen memory may act as a scratch pad for BIOS operations. The cursor area typically stores pixel data defining cursor shape and size. The cursor will typically overlay a portion of the images generated from the on-screen memory data, as determined by the user. Often the cursor may not be displayed at all. The same is true for icons, which are periodically pulled up and displayed "on top of " the images defined by pixel data from the on-screen memory. Most frame buffers are constructed from dynamic random access memory devices (DRAMs) . As is well known in the art, data in the memory cells in a DRAM device must be periodically refreshed or it will degrade -or be completely lost. In conventional DRAMs, cell refresh occurs either during a read operation or during a refresh operation (a refresh operation is essentially a read operation without output of the data from the device) . Reading or refresh is done on a row by row basis, with the wordline of the given row activated and the resulting change in voltage on the bitlines sensed. Conventional sense amplifiers are sensitive enough to measure even a small change in the voltage- on a bitline resulting from coupling to a deteriorated positive voltage of a cell storing a logic one. The sense amplifiers then latch to either a full logic one or full a logic zero, depending on the sensed voltage swing on the corresponding bitlines. This latching the pulls the bitlines and the storage capacitors of the corresponding cells back to their original value, thereby refreshing the data. In current display systems, the refresh logic within the display controller which controls frame buffer DRAM refresh typically operates as follows. Λ , mr 8676 While the data for the current display line is being retrieved from the on-screen memory, the refresh logic idles. When the end of the current line is reached, the refresh logic looks ahead to determine if the next line contains icon or cursor data. If cursor or icon data is found, the refresh logic initiates a read out of the icon/cursor data. The refresh logic then goes back to idle and the pixel data for the next display line is rastered from the on-screen memory. The icon/cursor data then overlays, as appropriate, this data at the backend of the display controller. If cursor or icon data is not to be displayed on the upcoming line, a refresh cycle for the DRAM is initiated. A group of rows in the DRAM (typically three to five from any of the memory areas, including the on-screen area) are refreshed during the refresh cycle. The refresh logic sequentially cycles through the entire DRAM (all areas) group by group with each new refresh cycle required. The disadvantage of presently available refresh schemes is that display data in the on-screen memory are refreshed twice, once during read out for display screen refresh and once when the DRAM refresh sequence cycles through the on-screen memory. Since each refresh cycle prevents other accesses to the DRAM, such as accesses for graphics data updates by the CPU or for block data moves, the double refreshing of the data in the on-screen memory substantially impacts memory bandwidth. Thus the need has arisen for circuits, systems and methods which allow for the more efficient refresh of the frame buffer in a display control subsystem. In particular, such circuits, systems and methods should minimize the amount of time required to refresh the display data in each of the different data areas of the frame buffer. SUMMARY OF THE INVENTION The principles of the present invention provide for the optimization of memory cycles in a display control subsystem. In particular, by minimizing the number of cycles required to refresh a DRAM frame buffer, additional accesses may be made to that frame buffer to perform other important operations, such as data update and block transfers. In general, according to the present invention, the on-screen memory area of a frame buffer is only refreshed by the retrieval of data therefrom for a display screen refresh. True refresh cycles are only required for the much smaller icon, cursor, and off-screen data storage areas, and then only when a time for refresh has been reached. According to a first embodiment of the present invention, a method is provided for refreshing data stored in a frame buffer. Data stored in a first area of the frame buffer are automatically refreshed during retrieval of such data for display generation. Data stored in a second area of the frame buffer are refreshed as follows: A determination is made as to whether data in the second area of the frame buffer is required during the generation of an upcoming display line. Selected data from the second area are then read when data from the second area are required for generation of the upcoming display line. A refresh is initiated of at least a portion of the second area when data from the second area are not required for the generation of the display line and a time for refresh of the second area has been reached. According to a second embodiment of the principles of the present invention, another method is provided for frame buffer refresh. An on-screen area of the frame buffer is refreshed by retrieving pixel data therefrom for the generation of a plurality of display lines. A second area of the frame buffer is selectively refreshed during a period between the retrieval of pixel data corresponding to a first display line from the on-screen area and retrieval of pixel data corresponding to a second display line from the on-screen memory, the step of refreshing the second area comprising the following substeps. A determination is made if data from the second area are required during the generation of the second display line. Selected data are then read from the second area when data from the second area are required for display of the second display line. At least a portion of the second area is refreshed when data from the second area are not required for display of the second display line and refresh of the second area is required. Finally, access is allowed to a selected one of the on-screen . and second memory areas when data from the second data are not required for display of the second line and the second area does not require refresh. According to a further embodiment of the present invention, refresh control circuitry is provided which includes circuitry for idling the refresh control circuitry during retrieval of data from an- on-screen area of an associated frame buffer for display generation. Circuitry is also provided for refreshing data stored in a second area of the frame buffer. The circuitry for refreshing is operable to determine whether data in the second area of the frame buffer are required during the generation of a selected display line. The circuitry for refreshing is further operable to initiate a read of selected data from the second area when data from the second area are required for generation of that selected display line. Further, the circuitry for refreshing is operable to initiate a refresh of at least a portion of the second area when data from the second area are not required for the generation of the selected display line and a time for refresh of the second area has been reached. According to an additional embodiment of the present invention, a display control system is provided which includes a frame buffer having an on-screen memory area and a second memory area. A display controller is provided for retrieving pixel data from the on-screen memory area of the generation of a plurality of display lines. The system additionally includes a refresh state machine for refreshing a second area of the frame buffer during a period between the retrieval area of pixel data corresponding to a first display line from the on-screen area and retrieval of pixel data corresponding to a second display line from the on-screen memory. The state machine is operable to determine if data from the second area are required for generation of a display of the second display line. The refresh state machine initiates a refresh by the display controller of selected data from the second area when data from the second area are required for display of the second display line. The refresh state machine initiates a refresh of at least a portion of the second area when data from the second area are not required for display of the second display line and refresh of the second area is required. Finally, the refresh state machine is operable to grant access to a selected one of the on-screen and second memory areas when data from the second area are not required for display of the second line and the second area does not require refresh. The principles of the present invention provide for the implementation of circuits, systems and methods which allow for more efficient refresh of the frame buffer in a display control subsystem. In particular, the principles of the present invention optimize the amount of time required to refresh the display data in each of the different areas of the frame buffer. By optimizing refresh time by minimizing the number of refresh cycles, the number of cycles which can instead be used for other accesses to the frame buffer, such as display data update, are maximized. As a result, higher performance data processing systems can be constructed. The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and the specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims. BRIEF DESCRIPTION OF THE DRAWINGS For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which: FIGURE 1 is a high level functional block diagram of a display control sub-system embodying the principles of the present invention; and FIGURE 2 is a flow chart describing the operation of a refresh control state machine according to the principles of the present invention, the state machine of FIGURE 2 being applicable in one instance to the display controller of FIGURE 1. DETAILED DESCRIPTION OF THE INVENTION FIGURE 1 is a high level functional block diagram of the portion of a processing system 100 controlling the display of graphics and/or video data. System 100 includes a central processing unit 101, a CPU bus 102, a display controller 103, a frame buffer 104, a digital to analog converter (DAC) 105 and a display device 106. According to the principles of the present invention, display controller 103 and frame buffer 104 and DAC 105 are fabricated together on a single integrated circuit chip 107. CPU ("master") 101 controls the overall operation of system 100, determines the content of graphics data to be displayed on display unit 106 under user commands, and performs various data processing functions. CPU 101 may be for example a general purpose microprocessor used in commercial personal computers. CPU 101 communicates with the remainder of system 100 via CPU bus 102, which may be for example a local bus, an ISA bus or a PCI bus. DAC 105 receives digital data from controller 103 and outputs in response the analog data required to drive display 106. Depending on the specific implementation of system 100, DAC 105 may also include a color palette, YUV to RGB format conversion circuitry, and/or x- and y-zooming circuitry, to name a few options. Display 106 may be for example a CRT unit or liquid crystal display, electroluminescent display (ELD) , plasma display (PLD), or other type of display device displays images on a display screen as a plurality of pixels. Further, display 106 may be a state-of-the-art device such as a digital micromirror device or a silicon carbide like device (which directly accepts digital data) . It should also be noted that in alternate embodiments, "display" 106 may be another type of output device such as a laser printer or similar document view/print appliances. In the illustrated embodiment, controller 103 is a display controller, such as a VGA controller, which among other things, controls the exchange of graphics and/or video data with frame buffer 104, controls memory refresh, and performs data processing functions such as color expansion. A display controller is the "master" for the specific application of display and thus frees up CPU 101 to perform computational tasks. Moreover, the architecture of a display controller optimizes it to perform graphics and video functions in a manner far superior to that of a general purpose microprocessor. Controller 103 may also include a color palette, cursor generation hardware, and/or video to graphics conversion circuitry, to name a few options. According to the principles of the present invention, an improved refresh logic state machine is provided in display controller 103. Preferably, this state machine is provided as part of the memory sequencer found in conventional display controllers, although in alternate embodiments it may be located elsewhere. Display refresh operation of the state machine of the preferred embodiment is described in the flow chart of FIGURE 2. During retrieval of pixel data for screen refresh of each display line of each display frame by display controller 103, the refresh state machine enters an idle state at Step 201. This periodic retrieval of data typically occurs at a frequency of 72 frames per second. Thus, the refresh period for a given DRAM cell in the on-screen area of frame buffer 104 (i.e., the period between automatic refreshes of a given cell by reads during display refresh alone) is 13.8 milliseconds. For the cells of conventional DRAM devices, 13.8 milliseconds is a sufficiently short enough period to insure that data will not be lost or substantially deteriorated without an intervening specific refresh operation. For the lowest allowable screen refresh rate of 60Hz, the refresh period increases to 16 milliseconds, which is still sufficiently small. When the end of the current display line is reached control signal EOL (end of line) goes active. The EOL signal is generated in conventional CRT control circuitry within controller 103. A determination is then made at Step 202 as to whether either cursor or icon information will appear on the next display line. This determination can be made by monitoring the state of internally generated signals typically found internal to a conventional display controller 103 which contain information indicating if a cursor or icon is to appear on the screen and defining where such cursor/icon is to appear. If cursor/icon data will appear on the next display line, then at Step 203 the necessary pixel data is read from the corresponding icon or cursor area in frame buffer 104. The cursor/icon data is then queued for overlay of the on-screen pixel data to be retrieved on the next occurrence of Step 201 in the read cells. At the completion of Step 203, the state machine returns to idle at Step 201 and the pixel data from the next display line in the on-screen memories retrieved, at least some of which will be overlayed by the cursor or icon data retrieved at Step 203 at the backend of controller 103. If at Step 202 a determination is made that no cursor or icon information will be displayed on the next line, processing continues with Step 204. At Step 204, a determination is made as to whether or not the time to refresh of the icon, cursor, and off-screen areas of frame buffer 104 has been reached. This step may be accomplished for example by monitoring a conventional refresh timer within controller 103. The refresh timer could for example be reset with each vertical sync (VSYNC) signal indicating the start of each new display frame. If the refresh time has arrived, then a refresh cycle for the limited frame buffer area (region) comprising the icon, cursor and off-screen areas only is initiated. Depending on the size of the icon, cursor and off-screen memory areas (typically a total 16 kbytes) and/or the time between the end of one display scan line and the start of the next, the entirety of the icon, cursor and off-screen memory areas may be all refreshed at once. Alternatively, 3 to 5 DRAM rows may be refreshed at the end of a given display line and 3 to 5 more rows refreshed at the end of a subsequent line, and so on until refresh of the limited area is complete. It should be noted that not every application or instance requires the use of off-screen memory. If off-screen memory is not being used, then refresh of any areas assigned to off-screen memory may be foregone. A register control bit may be set to control whether refresh of any off-screen memory areas should occur. At Step 204, if the refresh time for the icon, cursor and off-screen areas has not arrived, then the state machine moves to Step 206. At Step 206, other accesses to frame buffer 104 are allowed until the EOL signal goes inactive and processing returns to Step 201. For example, during this step, CPU 101 may perform accesses to either the on-screen, off-screen, or cursor/icon memory areas during this period in order to implement data updates. Further, memory operations such as bit-block transfers (BLIT) may be performed during this period under control of CPU 101 and/or a BLIT engine within display controller 103. Advantageously, the conservation of refresh cycles (operations) provide a substantial number of cycles per display frame during which Step 206 can be performed. This is a direct result of the efficient control of frame buffer refresh according to the present invention. As stated above, refresh of the on-screen memory (which is the majority of the DRAM memory space, typically on the order of 1 megabyte) is effectuated by the reads during display scan line refresh. True refresh cycles are only needed for the much smaller icon and cursor areas, and off-screen memory areas if used, and only when reads of those areas have not been performed with sufficient frequency (i.e. the refresh time has arrived) . Further, even if refresh operations must be performed, these refresh operations may only be required at end of a few lines per each display frame, depending on the refresh requirements of the DRAM devices of frame buffer 104. Since each display frame is typically several hundred lines, there are several hundred end-of-line periods between the end of the scan of one line and the start of the scan of the next line. During each of these periods, the cycles which in the prior art were used for full frame buffer DRAM refresh can now be used for other operations. Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims.

Claims: WHAT IS CLAIMED IS: 1. A method for refreshing data stored in a frame buffer, comprising the steps of: automatically refreshing data stored in a first area of the frame buffer during retrieval of such data for display generation; and refreshing data stored in a second area of the frame buffer comprising the substeps of: determining whether data in the second area of the frame buffer are required during the generation of an upcoming display line ; reading selected data from the second area when data from the second area are required for the generation of the upcoming display line ; and initiating a refresh of at least a portion of the second area when data from the second area are not required for the generation of the upcoming display line and a time for refresh of the second area has been reached. 2. The method of Claim 1 and further comprising a step of: allowing accesses to the frame buffer when the data from the second area are not required and the time for refresh of the second area has not been reached. 3. The method of Claim 1 wherein the first area comprises an on-screen area of the frame buffer. 4. The method of Claim 1 wherein the second area stores icon data. 5. The method of Claim 1 wherein the second area stores cursor data. 6. The method of Claim 2 wherein said step of allowing accesses to the frame buffer comprises the step of allowing accesses to a selected one of the first and second frame buffer areas for display data update. 7. The method of Claim 2 wherein said step of allowing accesses to the frame buffer comprises the step of allowing accesses to a selected one of the first and second frame buffer areas for performing a block transfer. 8. A method of frame buffer refresh comprising the steps of: refreshing an on-screen area of the frame buffer by retrieving pixel data therefrom for the generation of a plurality of display lines; selectively refreshing a second area of the frame buffer during a period between the retrieval of pixel data corresponding to a first display line from the on-screen area and the retrieval of pixel data corresponding to a second display line from the on-screen memory, comprising the substeps of: determining if data from the second area are required during the generation of a display of the second display line; reading selected data from second area when such data from the second area are required for display of the second display line; refreshing at least a portion of the second area when data from the second area is not required for display of the second display line and refresh is of the second area are required; and allowing access to a selected one of said on-screen and second memory areas when data from the second area is not required for display of the second line and the second area does not require refresh. 9. The method of Claim 8 wherein said step of determining comprises the step of reading from registers controlling the display of data from the second memory area. 10. The method of Claim 8 wherein the second memory area includes an icon storage area. 11. The method of Claim 8 wherein the second memory area includes a cursor storage area. 12. Refresh control circuitry comprising: circuitry for idling said refresh control circuitry during retrieval of data from on-screen area of an associated frame buffer for display generation; and circuitry for selectively refreshing data stored in a second area of said frame buffer, said circuitry for refreshing operable to: determine whether data in said second area of the frame buffer are required during the generation of a selected display line; initiate a read of selected data from said second area when data from said second area are required for the generation of said display line; and initiate a refresh of at least a portion of the said second area when data from said second area are not required for the generation of said display line and a time for refresh of said second area has been reached. 13. The refresh control circuitry of Claim 12 wherein said refresh control circuitry comprises a state machine forming a portion of a display controller. 14. The refresh control circuitry of Claim 12 wherein said second area includes cursor memory. 15. The refresh control circuitry of Claim 12 wherein said second area includes icon memory. 16. The refresh control circuitry of Claim 12 wherein said second area includes off-screen memory. 17. A display control system comprising: a frame buffer including an on-screen memory area and a second memory area; a display controller for retrieving pixel data from said on-screen memory area for the generation of a plurality of display lines; a refresh state machine for refreshing a second area of the frame buffer during a period between the retrieval of pixel data corresponding to a first said display line from said on-screen area and the retrieval of pixel data corresponding to a second said display line from said on-screen memory, said state machine operable to: determine if data from said second area are required for generation of a display of said second display line; initiate a read by said display controller of selected data from second area when data from said second area are required for display of said second display line; initiate a refresh of at least a portion of said second area when data from said second area are not required for display of said second display line and refresh of said second area is required; and granting access to a selected one of said on-screen and second memory areas when data from said second area are not required for display of the second line and said second area does not require refresh. 18. The display control system of Claim 17 wherein said display control system further comprises a CPU, said CPU updating data stored in said selected one of said memory areas when access is granted by said refresh state machine. 19. The display control system of Claim 17 wherein said display controller is further operable to implement a block transfer when access is granted by said refresh state machine.

Inventors: SHARMA SUDHIR, SHARMA, SUDHIR
Applicants: CIRRUS LOGIC INC, CIRRUS LOGIC, INC.
Application year: 1996
Main classification: G09G1
IPC codes: G06F12, G09G1, G09G5