EP0525986A2 - Apparatus for fast copying between frame buffers in a double buffered output display system - Google Patents
Apparatus for fast copying between frame buffers in a double buffered output display system Download PDFInfo
- Publication number
- EP0525986A2 EP0525986A2 EP92305993A EP92305993A EP0525986A2 EP 0525986 A2 EP0525986 A2 EP 0525986A2 EP 92305993 A EP92305993 A EP 92305993A EP 92305993 A EP92305993 A EP 92305993A EP 0525986 A2 EP0525986 A2 EP 0525986A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- frame buffer
- data
- frame
- display
- output display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 162
- 238000000034 method Methods 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G1/00—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data
- G09G1/06—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows
- G09G1/14—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam tracing a pattern independent of the information to be displayed, this latter determining the parts of the pattern rendered respectively visible and invisible
- G09G1/16—Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam tracing a pattern independent of the information to be displayed, this latter determining the parts of the pattern rendered respectively visible and invisible the pattern of rectangular co-ordinates extending over the whole area of the screen, i.e. television type raster
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/399—Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
Definitions
- This invention relates to computer output display apparatus and, more particularly, to methods and apparatus for eliminating frame tearing from a computer output display through the use of inexpensive double buffering.
- a typical computer system generates data which is displayed on an output display.
- This output display is typically a cathode ray tube which produces a number of full screen images one after another so rapidly that to the eye of the viewer the screen will appear to display constant motion when a program being displayed is capable of producing such motion.
- data is written into a frame buffer.
- the frame buffer stores information about each position on the display which can be illuminated (each pixel) to produce the full screen image.
- a display may be capable of displaying pixels in approximately one thousand horizontal rows each having approximately one thousand pixels. All of this information in each frame is written to the frame buffer before it is scanned to the display.
- the frame When data describing an entire picture exists in the frame buffer, the frame may be transferred to the display. Typically, data is transferred from the frame buffer to the display pixel by pixel and line by line beginning at the upper left hand corner of the display and proceeding horizontally from left to right line by line downwardly to the lower right hand corner of the display. In order for the picture to appear continuous on the output display, the successive frames in the frame buffer must be constantly scanned to the output display at a rate of thirty frames per second or more.
- VRAM video random access memory
- Double buffering uses two complete frame buffers each of which may store one entire frame. Data is written to one frame buffer and scanned to the display from the other. In its simplest form, this is accomplished using a pair of VRAM frame buffers and multiplexing the data in one or the other to the display. In this form, data is never written to the frame buffer during the time its data is being scanned to the display. Once a frame has been completely written, it may in turn be scanned to the display and all further data written to the other frame buffer. Since data is never written to a frame buffer while its contents are being scanned to the display, frame tearing cannot occur.
- This simple form of double buffering is somewhat expensive because it uses two entire VRAM frame buffers and includes control signal generating circuitry and a multiplexor for switching between the two frame buffers.
- One of the primary aims of computer designers is to allow a number of individual programs to run on a computer and be displayed simultaneously on an output display of that computer.
- a number of individual programs are displayed on a computer output display, each individual program appears in a window, typically a rectangular area of the screen which may be moved about, enlarged and reduced in size, and otherwise manipulated. If a number of programs can be run and displayed in a number of windows simultaneously, the work being accomplished using the computer may be accelerated.
- information being written to the individual windows by the different individual programs will be written at different rates.
- the information being directed to a window displaying real time video changes very rapidly while the information typed from the keyboard to a word processor program being displayed in another window changes much more slowly. Consequently, the rate at which frames are changed varies from program to program.
- the simplest form of double buffering described above is very useful when a single program is being run on the output display.
- this form of double buffering is insufficient.
- the simple form of double buffering requires that the entire contents of each frame buffer be scanned to the display. If data is being written to a number of windows at asynchronous rates, then the timing at which writing occurs differs from window to window; and it is very difficult to adjust the timing of the writing so that writing does not occur to a frame buffer being scanned to the display.
- an advanced form of double buffering has been used which adds another buffer called a window identification (ID) plane.
- ID window identification
- the window identification plane provides a storage position for each pixel displayed on the output display. Stored in these positions of the window ID plane are identifications of the window to which each pixel of data is related. Use of this plane allow pixels from any buffer to be selected for display at any time. Thus, the window ID plane may be used to scan to the display data from any window to which data is not being written at the time of the scan. Thus, this form of double buffering allows frame tearing to be eliminated where multiple active windows appear simultaneously on the output display.
- This second form of double buffering is quite expensive because it not only uses two entire VRAM frame buffers and circuitry for controlling and multiplexing from the two frame buffers to the display, it also adds an ID plane containing memory for each pixel of the display and circuitry for selecting pixels to be displayed based on the windows in which they appear.
- This form of double buffering is much less expensive than the other forms because a less expensive DRAM replaces one of the VRAM frame buffers and the control circuitry for multiplexing is eliminated.
- This arrangement is also useful because it works well with software conforming to the X11 standard (X Windows) which does not expect to see more than a single frame buffer and stores information to be transferred to the frame buffer in a section of main memory. To this software, the DRAM frame buffer appears to be a portion of main memory.
- the arrangement also offers the advantage that individual windows may be transferred from the invisible DRAM frame buffer to the VRAM frame buffer since the central processing unit may selectively control the areas to be transferred.
- an output display system comprising a first frame buffer; a second frame buffer; means for transferring data from the second frame buffer to an output display device; means for controlling the transfer of data to each of the frame buffers, this last-mentioned means including means for writing new data only to the first frame buffer, and means for both reading data from the first frame buffer and writing the data read to the second frame buffer during the same operation.
- the manipulations performed are often referred to in terms, such as adding or comparing, which are commonly associated with mental operations performed by a human operator. No such capability of a human operator is necessary or desirable in most cases in any of the operations described herein which form part of the present invention; the operations are machine operations. In all cases the distinction between the method operations in operating a computer and the method of computation itself should be borne in mind.
- the present invention relates to apparatus and to method steps for operating a computer in processing electrical or other (e.g. mechanical, chemical) physical signals to generate other desired physical signals.
- circuit 10 constructed in accordance with the prior art.
- the circuit 10 includes only the rudiments of the circuitry required to provide data to an output display terminal used in a typical computer system. Other portions necessary for providing the operations of a computer are well known to those skilled in the art and are not shown in the figure. Illustrated are a central processing unit 12 which may control the operation of the entire computer system and which represents in Figure 1 circuitry for providing data to be display on an output display 14. In order to accomplish the transfer of the data from the central processing unit 12 to the output display 14, first and second frame buffers 16 and 17 are utilized.
- double buffering data is written from the central processing unit 12 to one frame buffer and scanned to the display 14 from the other. In its simplest form, this is accomplished using a pair of VRAM frame buffers and multiplexing the entire frame of data in one of the frame buffers 16 or 17 to the display by means of a multiplexor 19. The data transferred by the multiplexor 19 is converted from digital to analog form by a digital-to-analog converter 20 and scanned to the display. In this form of double buffering, data is never written to a frame buffer 16 or 17 during the time data is being scanned to the display from that frame buffer.
- the data in that frame buffer may in turn be scanned to the display; and new data may be written to the other frame buffer. Since data is never written to a frame buffer while its contents are being scanned to the display, frame tearing cannot occur.
- one prior art arrangement has replaced the VRAM used in the frame buffer 16 with DRAM. Since DRAM is single ported, the frame buffer 16 does not provide an output which may be scanned directly to the display 14. Consequently, the lines from the frame buffer 16 to the multiplexor 19 (which are dotted in the figure) are eliminated. Since no output is transferred from the frame buffer 16 to the multiplexor 19, the multiplexor 19 (again shown in dotted outline) is also eliminated. With no multiplexor, the control circuitry for selecting one or the other of the frame buffers 16 or 17 to scan to the display 14 is also unnecessary and is eliminated. This substantially reduces the cost of the system.
- All new data is written by the central processing unit 12 to the frame buffer 16. All data is scanned to the display 14 from the frame buffer 17. Once a frame stored in frame buffer 16 has been changed, the frame is transferred to the frame buffer 17. To accomplish this transfer, a control circuit 23 within the central processing unit 12 selects a portion of the frame buffer 16 to be read, typically thirty-two bits or some amount usually equivalent to the width of the bus. This data is read and latched into the central processing unit 12. This read typically requires three clock periods for row addressing and four clock periods for column addressing by the control circuit 23. The central processing unit 12 then writes the information read from the frame buffer 16 to the frame buffer 17. This again typically requires three clock cycles for row addressing by the control circuitry 23 in frame buffer 17 and three clock cycles for column addressing in that frame buffer.
- the additional clock period for column addressing in reading frame buffer 16 during the read operation is actually necessary in order to provide a dead cycle on the bus between the reading by the central processing unit 12 of the frame buffer 16 and the following write cycle to the frame buffer 17 so that two devices are not accessing the bus simultaneously.
- a total of thirteen or more clock cycles are required to transfer a given amount of information from the frame buffer 16 to the frame buffer 17 in this arrangement.
- This transfer is repeated a sufficient number of times to transfer the desired amount of data (which may be as large as an entire frame) from the frame buffer 16 to the frame buffer 17.
- this is a relatively slow process and, when copying entire frames, allows only approximately twenty frames to be transferred per second.
- a typical display may be receiving information from the frame buffer 17 at a rate of seventy-six frames per second. The scan proceeds at approximately three times the rate of the write to the frame buffer 17.
- this less expensive arrangement allows the scan to the display to catch up with the writing of data into the frame buffer 17 from the frame buffer 16 so that frame tearing may occur.
- the arrangement 25 includes a central processing unit 27, a first frame buffer 28 which may be constructed of VRAM, a second frame buffer 29 which may be constructed of DRAM, a digital-to-analog converter 31, and an output display 33.
- the arrangement 25 functions in the same general manner as does the least expensive arrangement of Figure 1. That is, all new data is written by the central processing unit 27 to the DRAM frame buffer 29. All data is scanned to the display 33 from the VRAM frame buffer 28. Once new data has been written to a frame stored in frame buffer 29, the frame is transferred to the frame buffer 28. To accomplish this transfer, the central processing unit 27 reads a selected portion of the frame buffer 29, typically thirty-two bits, and writes that data to the frame buffer 28. This process is accomplished over and over until the desired amount of data has been transferred.
- the arrangement of the present invention transfers the data approximately four times as fast.
- approximately eighty frames per second may be written to the frame buffer 28 from the frame buffer 29; and tearing of frames scanned to the display may be eliminated.
- the arrangement 25 includes within the central processing unit 27 (or other device controlling the rendering into and reading from the frame buffers 28 and 29) a pair of individual control circuits 34 and 35.
- the first of these circuits 34 controls the accessing of the frame buffer 29, and the second circuit 35 controls the accessing of the frame buffer 28.
- both frame buffers 28 and 29 may be accessed simultaneously. Data is still written only to the frame buffer 29 by the central processing unit when rendering.
- control circuit 34 selects the appropriate row and column addresses in the frame buffer 29, and the control circuit 35 selects the same row and column addresses in the frame buffer 28. Then the control circuit 34 reads the accessed data in the frame buffer 29 and places it on the bus where the information is written to the same accessed addresses in the frame buffer 28. The data is not latched into the central processing unit 27; and, consequently, no dead cycle is needed for bus turn around so that two devices are not attempting to access that bus simultaneously.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Controls And Circuits For Display Device (AREA)
- Digital Computer Display Output (AREA)
- Image Input (AREA)
Abstract
Description
- This invention relates to computer output display apparatus and, more particularly, to methods and apparatus for eliminating frame tearing from a computer output display through the use of inexpensive double buffering.
- A typical computer system generates data which is displayed on an output display. This output display is typically a cathode ray tube which produces a number of full screen images one after another so rapidly that to the eye of the viewer the screen will appear to display constant motion when a program being displayed is capable of producing such motion. In order to produce the individual images (frames) which are displayed one after another, data is written into a frame buffer. The frame buffer stores information about each position on the display which can be illuminated (each pixel) to produce the full screen image. For example, a display may be capable of displaying pixels in approximately one thousand horizontal rows each having approximately one thousand pixels. All of this information in each frame is written to the frame buffer before it is scanned to the display.
- When data describing an entire picture exists in the frame buffer, the frame may be transferred to the display. Typically, data is transferred from the frame buffer to the display pixel by pixel and line by line beginning at the upper left hand corner of the display and proceeding horizontally from left to right line by line downwardly to the lower right hand corner of the display. In order for the picture to appear continuous on the output display, the successive frames in the frame buffer must be constantly scanned to the output display at a rate of thirty frames per second or more.
- While each frame of data is being scanned to the display, new data to appear in the next frame must be transferred to the frame buffer. In general, only data which is changing replaces old data in the frame buffer at a position representing that pixel position on the screen. All unchanged data remains in the frame buffer without change. New data to be displayed in a frame may be written to any portion of the frame buffer at any time. In order to allow information to be both written to the frame buffer and scanned out of the frame buffer to the output display simultaneously, two ported video random access memory (VRAM) is used for the frame buffer. Data is written through one port and scanned to the display through the other. VRAM is more expensive than typical dynamic access ram (DRAM) because providing the two ports requires a significant number more transistors.
- If data is being placed in a VRAM frame buffer at the same time that information is being scanned to the display, it is possible that information being scanned to the display will come from two succeeding time displaced frames. For example, if scanning is proceeding at a faster rate than data is being written to the frame buffer and a portion of the frame buffer which is changing (being written) is scanned to the display, a portion of the display will be from what should be a first frame and a portion from what should be a second later frame. The display of portions of two time displaced frames simultaneously is called frame tearing. This can be disconcerting where the information is rapidly changing as in real time video, for images may be grossly distorted.
- In order to eliminate frame tearing, double buffering is used. Double buffering uses two complete frame buffers each of which may store one entire frame. Data is written to one frame buffer and scanned to the display from the other. In its simplest form, this is accomplished using a pair of VRAM frame buffers and multiplexing the data in one or the other to the display. In this form, data is never written to the frame buffer during the time its data is being scanned to the display. Once a frame has been completely written, it may in turn be scanned to the display and all further data written to the other frame buffer. Since data is never written to a frame buffer while its contents are being scanned to the display, frame tearing cannot occur.
- This simple form of double buffering is somewhat expensive because it uses two entire VRAM frame buffers and includes control signal generating circuitry and a multiplexor for switching between the two frame buffers.
- One of the primary aims of computer designers is to allow a number of individual programs to run on a computer and be displayed simultaneously on an output display of that computer. Typically, when a number of individual programs are displayed on a computer output display, each individual program appears in a window, typically a rectangular area of the screen which may be moved about, enlarged and reduced in size, and otherwise manipulated. If a number of programs can be run and displayed in a number of windows simultaneously, the work being accomplished using the computer may be accelerated.
- Typically, information being written to the individual windows by the different individual programs will be written at different rates. For example, the information being directed to a window displaying real time video changes very rapidly while the information typed from the keyboard to a word processor program being displayed in another window changes much more slowly. Consequently, the rate at which frames are changed varies from program to program.
- The simplest form of double buffering described above is very useful when a single program is being run on the output display. However, where a number of programs are being run simultaneously in different windows on the same output display, this form of double buffering is insufficient. The reason for this is that the simple form of double buffering requires that the entire contents of each frame buffer be scanned to the display. If data is being written to a number of windows at asynchronous rates, then the timing at which writing occurs differs from window to window; and it is very difficult to adjust the timing of the writing so that writing does not occur to a frame buffer being scanned to the display. To solve this problem, an advanced form of double buffering has been used which adds another buffer called a window identification (ID) plane. The window identification plane provides a storage position for each pixel displayed on the output display. Stored in these positions of the window ID plane are identifications of the window to which each pixel of data is related. Use of this plane allow pixels from any buffer to be selected for display at any time. Thus, the window ID plane may be used to scan to the display data from any window to which data is not being written at the time of the scan. Thus, this form of double buffering allows frame tearing to be eliminated where multiple active windows appear simultaneously on the output display.
- This second form of double buffering is quite expensive because it not only uses two entire VRAM frame buffers and circuitry for controlling and multiplexing from the two frame buffers to the display, it also adds an ID plane containing memory for each pixel of the display and circuitry for selecting pixels to be displayed based on the windows in which they appear.
- Experimenters have looked for arrangements which would reduce the expense of the two VRAM buffers and the control circuitry for multiplexing between the two VRAM frame buffers or between individual pixels in the first and second forms of double buffering. One form of double buffering which has been used in the prior art to reduce cost replaces one of the VRAM frame buffers with a single-ported DRAM frame buffer and eliminates the control circuitry for scanning to the display from either of the frame buffers. Instead, all frames are scanned to the display from the single VRAM frame buffer; and all new data is written to the DRAM frame buffer. Once written, the data in the DRAM frame buffer is transferred by the central processing unit from the DRAM frame buffer to the VRAM frame buffer. This requires a read of the DRAM by the processor followed by a write of the data to the VRAM frame buffer. Typically this takes place in blocks of data as large as the processor is able to transfer on its bus (e.g., thirty-two bits); and the transfer is repeated over and over until complete.
- This form of double buffering is much less expensive than the other forms because a less expensive DRAM replaces one of the VRAM frame buffers and the control circuitry for multiplexing is eliminated. This arrangement is also useful because it works well with software conforming to the X11 standard (X Windows) which does not expect to see more than a single frame buffer and stores information to be transferred to the frame buffer in a section of main memory. To this software, the DRAM frame buffer appears to be a portion of main memory. The arrangement also offers the advantage that individual windows may be transferred from the invisible DRAM frame buffer to the VRAM frame buffer since the central processing unit may selectively control the areas to be transferred.
- However, the transfer of information from the DRAM frame buffer to the VRAM frame buffer is relatively slow compared to the typical scan rate to the display. Consequently, it is possible for writing to the VRAM frame buffer to occur in a position from which information is being scanned to the display; and the problem of frame tearing arises. Were the writing to proceed at a rate faster than the scan out to the display, it would be possible to eliminate this problem by writing below the row being scanned and still utilize inexpensive circuitry to accomplish double buffering.
- It is, therefore, an object of the present invention to reduce the expense of double buffering arrangements of the prior art while retaining the ability to eliminate frame tearing.
- It is another more specific object of the present invention to increase the speed of transfer between frame buffers in a system in which information from only one of two frame buffers is scanned to the output display.
- These and other objects of the present invention are realized in an output display system comprising a first frame buffer; a second frame buffer; means for transferring data from the second frame buffer to an output display device; means for controlling the transfer of data to each of the frame buffers, this last-mentioned means including means for writing new data only to the first frame buffer, and means for both reading data from the first frame buffer and writing the data read to the second frame buffer during the same operation.
- These and other objects and features of the invention will be better understood by reference to the detailed description which follows taken together with the drawings in which like elements are referred to by like designations throughout the several views.
-
- Figure 1 is a block diagram illustrating a prior art arrangement for reducing the cost of double buffering arrangements.
- Figure 2 is a block diagram of an arrangement in accordance with the present invention for providing double buffering.
- Some portions of the detailed descriptions which follow are presented in terms of symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.
- Further, the manipulations performed are often referred to in terms, such as adding or comparing, which are commonly associated with mental operations performed by a human operator. No such capability of a human operator is necessary or desirable in most cases in any of the operations described herein which form part of the present invention; the operations are machine operations. In all cases the distinction between the method operations in operating a computer and the method of computation itself should be borne in mind. The present invention relates to apparatus and to method steps for operating a computer in processing electrical or other (e.g. mechanical, chemical) physical signals to generate other desired physical signals.
- Referring now to Figure 1, there is illustrated a
circuit 10 constructed in accordance with the prior art. Thecircuit 10 includes only the rudiments of the circuitry required to provide data to an output display terminal used in a typical computer system. Other portions necessary for providing the operations of a computer are well known to those skilled in the art and are not shown in the figure. Illustrated are acentral processing unit 12 which may control the operation of the entire computer system and which represents in Figure 1 circuitry for providing data to be display on anoutput display 14. In order to accomplish the transfer of the data from thecentral processing unit 12 to theoutput display 14, first andsecond frame buffers - In the simplest form of double buffering described above, data is written from the
central processing unit 12 to one frame buffer and scanned to thedisplay 14 from the other. In its simplest form, this is accomplished using a pair of VRAM frame buffers and multiplexing the entire frame of data in one of the frame buffers 16 or 17 to the display by means of amultiplexor 19. The data transferred by themultiplexor 19 is converted from digital to analog form by a digital-to-analog converter 20 and scanned to the display. In this form of double buffering, data is never written to aframe buffer frame buffer - The implementation of this form of double buffering is somewhat expensive because it uses two frame buffers both of which are constructed of expensive VRAM. Moreover, the arrangement requires control signal generating circuitry for selecting the frame buffer the information from which is to be multiplexed for display and a
multiplexor 19 for switching between the twoframe buffers - In order to reduce these expenses, one prior art arrangement has replaced the VRAM used in the
frame buffer 16 with DRAM. Since DRAM is single ported, theframe buffer 16 does not provide an output which may be scanned directly to thedisplay 14. Consequently, the lines from theframe buffer 16 to the multiplexor 19 (which are dotted in the figure) are eliminated. Since no output is transferred from theframe buffer 16 to themultiplexor 19, the multiplexor 19 (again shown in dotted outline) is also eliminated. With no multiplexor, the control circuitry for selecting one or the other of the frame buffers 16 or 17 to scan to thedisplay 14 is also unnecessary and is eliminated. This substantially reduces the cost of the system. - All new data is written by the
central processing unit 12 to theframe buffer 16. All data is scanned to thedisplay 14 from theframe buffer 17. Once a frame stored inframe buffer 16 has been changed, the frame is transferred to theframe buffer 17. To accomplish this transfer, acontrol circuit 23 within thecentral processing unit 12 selects a portion of theframe buffer 16 to be read, typically thirty-two bits or some amount usually equivalent to the width of the bus. This data is read and latched into thecentral processing unit 12. This read typically requires three clock periods for row addressing and four clock periods for column addressing by thecontrol circuit 23. Thecentral processing unit 12 then writes the information read from theframe buffer 16 to theframe buffer 17. This again typically requires three clock cycles for row addressing by thecontrol circuitry 23 inframe buffer 17 and three clock cycles for column addressing in that frame buffer. The additional clock period for column addressing inreading frame buffer 16 during the read operation is actually necessary in order to provide a dead cycle on the bus between the reading by thecentral processing unit 12 of theframe buffer 16 and the following write cycle to theframe buffer 17 so that two devices are not accessing the bus simultaneously. - Thus, a total of thirteen or more clock cycles are required to transfer a given amount of information from the
frame buffer 16 to theframe buffer 17 in this arrangement. This transfer is repeated a sufficient number of times to transfer the desired amount of data (which may be as large as an entire frame) from theframe buffer 16 to theframe buffer 17. As may be visualized, this is a relatively slow process and, when copying entire frames, allows only approximately twenty frames to be transferred per second. A typical display, on the other hand, may be receiving information from theframe buffer 17 at a rate of seventy-six frames per second. The scan proceeds at approximately three times the rate of the write to theframe buffer 17. - Consequently, this less expensive arrangement allows the scan to the display to catch up with the writing of data into the
frame buffer 17 from theframe buffer 16 so that frame tearing may occur. - To obviate the problem of frame tearing in this less expensive double buffering system, the arrangement of the present invention illustrated in Figure 2 has been devised. The
arrangement 25 includes a central processing unit 27, afirst frame buffer 28 which may be constructed of VRAM, asecond frame buffer 29 which may be constructed of DRAM, a digital-to-analog converter 31, and anoutput display 33. Thearrangement 25 functions in the same general manner as does the least expensive arrangement of Figure 1. That is, all new data is written by the central processing unit 27 to theDRAM frame buffer 29. All data is scanned to thedisplay 33 from theVRAM frame buffer 28. Once new data has been written to a frame stored inframe buffer 29, the frame is transferred to theframe buffer 28. To accomplish this transfer, the central processing unit 27 reads a selected portion of theframe buffer 29, typically thirty-two bits, and writes that data to theframe buffer 28. This process is accomplished over and over until the desired amount of data has been transferred. - In contrast to the time taken to transfer data from the
frame buffer 16 to theframe buffer 17 in the arrangement of Figure 1, the arrangement of the present invention transfers the data approximately four times as fast. Thus, approximately eighty frames per second may be written to theframe buffer 28 from theframe buffer 29; and tearing of frames scanned to the display may be eliminated. - The fast copying of data from the
frame buffer 29 to theframe buffer 28 is accomplished in the following manner. Rather than thesingle control circuit 23 for controlling the selection of data to be accessed in both of the frame buffers 16 and 17 as in the arrangement of Figure 1, thearrangement 25 includes within the central processing unit 27 (or other device controlling the rendering into and reading from the frame buffers 28 and 29) a pair ofindividual control circuits circuits 34 controls the accessing of theframe buffer 29, and thesecond circuit 35 controls the accessing of theframe buffer 28. By utilizingindividual control circuits frame buffers frame buffer 29 by the central processing unit when rendering. However, when data is to be read from theframe buffer 29 and written to theframe buffer 28, thecontrol circuit 34 selects the appropriate row and column addresses in theframe buffer 29, and thecontrol circuit 35 selects the same row and column addresses in theframe buffer 28. Then thecontrol circuit 34 reads the accessed data in theframe buffer 29 and places it on the bus where the information is written to the same accessed addresses in theframe buffer 28. The data is not latched into the central processing unit 27; and, consequently, no dead cycle is needed for bus turn around so that two devices are not attempting to access that bus simultaneously. - This arrangement saves a drastic amount of access time. First, there are not independent read and write cycles so that row and column selects for the two frame buffers occur simultaneously and occupy half the time. Then, the clock cycle for bus turn around is not needed. Finally, since the control circuitry need not address first one frame buffer and then another, it may essentially latch the row address at the first transfer. This eliminates the time for succeeding row accesses for the remainder of any particular row to be displayed. Consequently, after the first piece of data is accessed, the remaining transfers from a row each require only a single three clock access time to both read the
frame buffer 29 and write the data to theframe buffer 28. This is less than one quarter of the time required by the prior art circuitry. - Because the time necessary to copy from the
frame buffer 29 to theframe buffer 28 is reduced to less than one quarter, more than four times as many full frames of data can be written to theframe buffer 28 using the invention as in prior art double buffering arrangements. Thus, over eighty frames per second may written to theframe buffer 28 while the highest scan rate from the frame buffer is seventy-six frames per second. At this rate, the scan cannot catch up with the writing to framebuffer 28 and frame tearing will not occur. In order to assure that copying does not catch up with the scan, however, it is necessary to begin all copying between theframe buffer frame buffer 28 to the display. - Although the present invention has been described in terms of a preferred embodiment, it will be appreciated that various modifications and alterations might be made by those skilled in the art without departing from the spirit and scope of the invention. The invention should therefore be measured in terms of the claims which follow.
Claims (4)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US73668691A | 1991-07-26 | 1991-07-26 | |
US736686 | 1991-07-26 |
Publications (3)
Publication Number | Publication Date |
---|---|
EP0525986A2 true EP0525986A2 (en) | 1993-02-03 |
EP0525986A3 EP0525986A3 (en) | 1993-07-21 |
EP0525986B1 EP0525986B1 (en) | 1996-11-13 |
Family
ID=24960883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP92305993A Expired - Lifetime EP0525986B1 (en) | 1991-07-26 | 1992-06-29 | Apparatus for fast copying between frame buffers in a double buffered output display system |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0525986B1 (en) |
JP (1) | JPH06214549A (en) |
KR (1) | KR100196686B1 (en) |
DE (1) | DE69215155T2 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1193671A2 (en) * | 2000-09-27 | 2002-04-03 | Mitsubishi Denki Kabushiki Kaisha | Matrix-type display device |
EP1217602A2 (en) * | 2000-12-04 | 2002-06-26 | Nokia Corporation | Updating image frames in a display device comprising a frame buffer |
EP1355487A1 (en) * | 2001-01-25 | 2003-10-22 | Sony Corporation | Data transfer device |
DE19654766B4 (en) * | 1995-12-29 | 2004-11-18 | Wyse Technology, Inc., San Jose | Terminal for displaying application information in a window environment |
US6873335B2 (en) * | 2000-09-07 | 2005-03-29 | Actuality Systems, Inc. | Graphics memory system for volumeric displays |
US7554551B1 (en) | 2000-06-07 | 2009-06-30 | Apple Inc. | Decoupling a color buffer from main memory |
WO2009092033A1 (en) * | 2008-01-18 | 2009-07-23 | Qualcomm Incorporated | Multi-buffer support for off-screen surfaces in a graphics processing system |
US7720672B1 (en) | 1995-12-29 | 2010-05-18 | Wyse Technology Inc. | Method and apparatus for display of windowing application programs on a terminal |
WO2011142937A1 (en) * | 2010-05-11 | 2011-11-17 | Amulet Technologies Llc | Auto double buffer in display controller |
CN113066450A (en) * | 2021-03-16 | 2021-07-02 | 长沙景嘉微电子股份有限公司 | Image display method, device, electronic equipment and storage medium |
CN113450733A (en) * | 2021-06-11 | 2021-09-28 | 上海跳与跳信息技术合伙企业(有限合伙) | Screen refreshing method, display system and user equipment |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100469820B1 (en) | 2004-06-29 | 2005-02-03 | 엔에이치엔(주) | Method and system for renewing screen |
KR100843615B1 (en) * | 2006-05-24 | 2008-07-04 | 엠텍비젼 주식회사 | Efficient dual frame buffer control device and the same method |
KR20230160542A (en) | 2022-05-17 | 2023-11-24 | 주식회사 두라스택 | Laminated block for sound-absorbing or sound-insulating |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0312720A2 (en) * | 1987-10-20 | 1989-04-26 | Tektronix Inc. | Double buffered graphics design system |
EP0315321A2 (en) * | 1987-11-06 | 1989-05-10 | International Business Machines Corporation | Multiprocessor system with multiple memories |
GB2215959A (en) * | 1988-03-23 | 1989-09-27 | Benchmark Technologies | Graphics display system |
-
1992
- 1992-06-29 EP EP92305993A patent/EP0525986B1/en not_active Expired - Lifetime
- 1992-06-29 DE DE69215155T patent/DE69215155T2/en not_active Expired - Fee Related
- 1992-07-23 KR KR1019920013149A patent/KR100196686B1/en not_active IP Right Cessation
- 1992-07-27 JP JP4218790A patent/JPH06214549A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0312720A2 (en) * | 1987-10-20 | 1989-04-26 | Tektronix Inc. | Double buffered graphics design system |
EP0315321A2 (en) * | 1987-11-06 | 1989-05-10 | International Business Machines Corporation | Multiprocessor system with multiple memories |
GB2215959A (en) * | 1988-03-23 | 1989-09-27 | Benchmark Technologies | Graphics display system |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19654766B4 (en) * | 1995-12-29 | 2004-11-18 | Wyse Technology, Inc., San Jose | Terminal for displaying application information in a window environment |
US8904362B2 (en) | 1995-12-29 | 2014-12-02 | Wyse Technology L.L.C. | Method and apparatus for display of windowing application programs on a terminal |
US8079021B2 (en) | 1995-12-29 | 2011-12-13 | Wyse Technology Inc. | Method and apparatus for display of windowing application programs on a terminal |
US7720672B1 (en) | 1995-12-29 | 2010-05-18 | Wyse Technology Inc. | Method and apparatus for display of windowing application programs on a terminal |
US7554551B1 (en) | 2000-06-07 | 2009-06-30 | Apple Inc. | Decoupling a color buffer from main memory |
US6873335B2 (en) * | 2000-09-07 | 2005-03-29 | Actuality Systems, Inc. | Graphics memory system for volumeric displays |
EP1193671A3 (en) * | 2000-09-27 | 2003-04-23 | Mitsubishi Denki Kabushiki Kaisha | Matrix-type display device |
US6700571B2 (en) | 2000-09-27 | 2004-03-02 | Mitsubishi Denki Kabushiki Kaisha | Matrix-type display device |
EP1193671A2 (en) * | 2000-09-27 | 2002-04-03 | Mitsubishi Denki Kabushiki Kaisha | Matrix-type display device |
EP1217602A2 (en) * | 2000-12-04 | 2002-06-26 | Nokia Corporation | Updating image frames in a display device comprising a frame buffer |
EP1217602A3 (en) * | 2000-12-04 | 2002-10-30 | Nokia Corporation | Updating image frames in a display device comprising a frame buffer |
US6816163B2 (en) | 2000-12-04 | 2004-11-09 | Nokia Corporation | Updating image frames on a screen comprising memory |
EP1355487A1 (en) * | 2001-01-25 | 2003-10-22 | Sony Corporation | Data transfer device |
EP1355487A4 (en) * | 2001-01-25 | 2006-01-25 | Sony Corp | Data transfer device |
WO2009092033A1 (en) * | 2008-01-18 | 2009-07-23 | Qualcomm Incorporated | Multi-buffer support for off-screen surfaces in a graphics processing system |
WO2011142937A1 (en) * | 2010-05-11 | 2011-11-17 | Amulet Technologies Llc | Auto double buffer in display controller |
CN113066450A (en) * | 2021-03-16 | 2021-07-02 | 长沙景嘉微电子股份有限公司 | Image display method, device, electronic equipment and storage medium |
CN113066450B (en) * | 2021-03-16 | 2022-01-25 | 长沙景嘉微电子股份有限公司 | Image display method, device, electronic equipment and storage medium |
CN113450733A (en) * | 2021-06-11 | 2021-09-28 | 上海跳与跳信息技术合伙企业(有限合伙) | Screen refreshing method, display system and user equipment |
Also Published As
Publication number | Publication date |
---|---|
EP0525986A3 (en) | 1993-07-21 |
KR100196686B1 (en) | 1999-06-15 |
DE69215155T2 (en) | 1997-06-19 |
JPH06214549A (en) | 1994-08-05 |
DE69215155D1 (en) | 1996-12-19 |
EP0525986B1 (en) | 1996-11-13 |
KR930002926A (en) | 1993-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5742788A (en) | Method and apparatus for providing a configurable display memory for single buffered and double buffered application programs to be run singly or simultaneously | |
US5543824A (en) | Apparatus for selecting frame buffers for display in a double buffered display system | |
EP0197413B1 (en) | Frame buffer memory | |
US5587726A (en) | Method and apparatus for increasing the speed of operation of a double buffered display system | |
US5251298A (en) | Method and apparatus for auxiliary pixel color management using monomap addresses which map to color pixel addresses | |
EP0398510B1 (en) | Video random access memory | |
US4570161A (en) | Raster scan digital display system | |
EP0525986B1 (en) | Apparatus for fast copying between frame buffers in a double buffered output display system | |
KR100328424B1 (en) | Method and apparatus for constructing a frame buffer with a fast copy means | |
US5146211A (en) | Bit mapped color cursor | |
US4910505A (en) | Graphic display apparatus with combined bit buffer and character graphics store | |
JPH07113818B2 (en) | Method and apparatus for displaying image portion selected by operator | |
EP0225197B1 (en) | Video display control circuit arrangement | |
GB2214038A (en) | Image display system | |
US5376949A (en) | Display system with graphics cursor | |
US5847700A (en) | Integrated apparatus for displaying a plurality of modes of color information on a computer output display | |
JPS6016634B2 (en) | Graphic generation method in display devices | |
JPH08211849A (en) | Display control device | |
JP2907630B2 (en) | Frame memory controller | |
JPS6024586A (en) | Display data processing circuit | |
GB2290207A (en) | Image display system | |
JPH0443594B2 (en) | ||
JP3292960B2 (en) | Circuit for translating pixel data stored in a frame buffer into pixel data to be displayed on an output display of a computer device | |
JP3431925B2 (en) | Image display control apparatus and method | |
JPH0830254A (en) | Display effect generation circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): DE FR GB IT NL |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): DE FR GB IT NL |
|
17P | Request for examination filed |
Effective date: 19940119 |
|
17Q | First examination report despatched |
Effective date: 19950825 |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB IT NL |
|
ITF | It: translation for a ep patent filed | ||
REF | Corresponds to: |
Ref document number: 69215155 Country of ref document: DE Date of ref document: 19961219 |
|
ET | Fr: translation filed | ||
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed | ||
REG | Reference to a national code |
Ref country code: GB Ref legal event code: IF02 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20040608 Year of fee payment: 13 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: NL Payment date: 20050605 Year of fee payment: 14 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES;WARNING: LAPSES OF ITALIAN PATENTS WITH EFFECTIVE DATE BEFORE 2007 MAY HAVE OCCURRED AT ANY TIME BEFORE 2007. THE CORRECT EFFECTIVE DATE MAY BE DIFFERENT FROM THE ONE RECORDED. Effective date: 20050629 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20060228 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST Effective date: 20060228 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20060622 Year of fee payment: 15 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20060628 Year of fee payment: 15 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20070101 |
|
NLV4 | Nl: lapsed or anulled due to non-payment of the annual fee |
Effective date: 20070101 |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20070629 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20080101 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20070629 |