WO1995012191A1 - Method for increasing the rate of scrolling in a frame buffer - Google Patents

Method for increasing the rate of scrolling in a frame buffer Download PDF

Info

Publication number
WO1995012191A1
WO1995012191A1 PCT/US1994/012315 US9412315W WO9512191A1 WO 1995012191 A1 WO1995012191 A1 WO 1995012191A1 US 9412315 W US9412315 W US 9412315W WO 9512191 A1 WO9512191 A1 WO 9512191A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
circuitry
array
row
frame buffer
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.)
Ceased
Application number
PCT/US1994/012315
Other languages
French (fr)
Inventor
Curtis Priem
Chris Malachowsky
Rick Silverman
Shuen Chin Chang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Semiconductor Inc
Sun Microsystems Inc
Original Assignee
Samsung Semiconductor Inc
Sun Microsystems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Semiconductor Inc, Sun Microsystems Inc filed Critical Samsung Semiconductor Inc
Priority to DE69430296T priority Critical patent/DE69430296T2/en
Priority to KR1019950702525A priority patent/KR100355077B1/en
Priority to EP95901057A priority patent/EP0677200B1/en
Priority to JP7512818A priority patent/JPH08505244A/en
Publication of WO1995012191A1 publication Critical patent/WO1995012191A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • G09G5/346Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling for systems having a bit-mapped display memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/02Addressing, scanning or driving the display screen or processing steps related thereto
    • G09G2310/0264Details of driving circuits
    • G09G2310/0297Special arrangements with multiplexing or demultiplexing of display data in the drivers for data electrodes, in a pre-processing circuitry delivering display data to said drivers or in the matrix panel, e.g. multiplexing plural data signals to one D/A converter or demultiplexing the D/A converter output to multiple columns

Definitions

  • This invention relates to computer systems and, more particularly, to methods and apparatus for providing very fast modes of writing pixel data from one row to another in a frame buffer which stores data for display on an output display device.
  • this accelerating circuitry (often referred to as a graphic rendering device) is adapted to relieve the central processor of the computer of the need to accomplish many of the functions necessary to transfer data to the display.
  • these accelerators take over various operations which the central processor would normally be required to accomplish. For example, block transfers of data from one position on the screen to another require that each line of data on the screen being transferred be read and rewritten to a new position on a new line. Storing information within window areas of a display requires that the data available for each window portion be clipped to fit within that window portion and not overwrite other portions of the display.
  • a problem which has been discovered by designers of graphics accelerator circuitry is that a great deal of the speed improvement which is accomplished by the graphics accelerator circuitry is negated by the frame buffer circuitry into which the output of the graphics accelerator is loaded for ultimate display on an output display device.
  • a frame buffer offers a sufficient amount of dynamic random access memory (DRAM) to store one frame of data to be displayed.
  • DRAM dynamic random access memory
  • transferring the data to and from the frame buffer is very slow because of the manner in which the frame buffers are constructed.
  • VRAM two-ported video random access memory
  • DRAM dynamic random access memory
  • One of the slowest operations performed is the scrolling of data.
  • rows of data are moved up or down on the output display. Since the data describing the pixels which are displayed on an output display device is stored in a frame buffer, scrolling requires that the pixel data in the frame buffer describing a row of the display be read from the frame buffer by the central processor and written back to another position in the frame buffer.
  • thirty-two bits of data are read from the frame buffer simultaneously in an operation that typically requires 120 nanoseconds. This is followed by an access to write the data back to the appropriate positions in the frame buffer which again requires 120 nanoseconds. The total time per bit is thus approximately 7.5 ns./bit transferred.
  • an object of the present invention to provide a new design of frame buffer capable of speeding the display of data by factors which are orders of magnitude of the speed of prior art frame buffers.
  • a frame buffer including a memory array, circuitry for accessing the array, a plurality of latches each capable of storing a plurality of pixel values equivalent to a large portion of a row of pixels in the array which may be read simultaneously from the array, and circuitry for writing simultaneously to the memory cells of a row of the array the data stored in the latches whereby a row of pixels may be read and written back to the array bus in a minimum time period.
  • Figure 1 is a block diagram illustrating a computer system which may include the present invention.
  • FIG. 2 is a block diagram illustrating a frame buffer designed in accordance with the prior art.
  • Figure 3 is a timing diagram illustrating the operation of the prior art frame buffer of Figure 2.
  • Figure 4 is a block diagram illustrating the basic arrangement of the invention.
  • Figure 5 is a timing diagram illustrating the operation of the frame buffer of Figure 4.
  • Figure 6 is a more detailed block diagram of the circuitry of Figure 4 which may be used to carry out the present invention.
  • Figure 7 is a diagram useful in understanding Figure 6.
  • Figure 8 is a flow chart describing a method in accordance with the present invention.
  • 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.
  • Useful machines for performing the operations of the present invention include general purpose digital computers or other similar devices. 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 for operating a computer in processing electrical or other (e.g. mechanical, chemical) physical signals to generate other desired physical signals.
  • the 10 includes a central processor 11 which carries out the various instructions provided to the computer 10 for its operations.
  • the central processor 11 is joined to a bus 12 adapted to carry information to various components of the system 10.
  • main memory 13 which is typically constructed of dynamic random access memory arranged in a manne r well known to those skilled in the prior art to store information being used by the central processor during the period in which power is provided to the system 10.
  • a read only memory 14 which may include various memory devices (such as electrically programmable read only memory devices (EPROM devices)) well known to those skilled in the art which are adapted to retain a memory condition in the absence of power to the system 10.
  • the read only memory 14 typically stores various basic functions used by the processor
  • a frame buffer 17 is also coupled to the bus 12.
  • the frame buffer 17 stores data which is to be transferred to an output device such as a monitor 18 to define pixel positions on the output device.
  • the frame buffer 17 may be considered to include in addition to various memory planes necessary to store information, various circuitry well known to those skilled in the art for controlling the scan of information to the output display.
  • the frame buffer 17 may be connected to the bus 12 through circuitry such as graphic accelerating circuit 15 used for providing fast rendering of graphical data to be furnished to the frame buffer 17.
  • FIG. 2 illustrates a frame buffer 17 constructed in accordance with the prior art.
  • a frame buffer includes a dynamic random access memory array designed to store the information defining pixels on the output display.
  • data is written to or read from the frame buffer 17 on data conductors 23 connected to the conductors of the data bus 12 by the device controlling the operation, the central processing unit or the graphics accelerator.
  • the frame buffer 17 is written in this normal mode, all of the data conductors 23 transfer binary data.
  • thirty-two bits of data may be written on the bus and appear at thirty-two data input pins to the frame buffer memory.
  • This data may define one or more pixels depending upon the number of bits required to define a pixel in the particular color mode of operation. For example, if the mode of operation is eight bit color, then each pixel displayed requires eight bits of data; and thirty-two bits of data on the data conductors are capable of defining four pixels in each access.
  • This normal mode is a relatively slow method of filling the frame buffer with data to be written to the display. This is, however, the typical method of writing to and reading from a frame buffer.
  • the controlling device Once the controlling device has read the data, it then rewrites the data to the new address (the new row) in the frame buffer 17 using the data conductors 23.
  • the number of pixels which may be read at one time is equal to the number of data conductors on the data bus divided by the size of the pixel; with a thirty-two bit bus, for eight bit color pixels, four pixels are read at once and then written back to its new position, while with thirty-two bit color pixels only one pixel is read and written back to its new position with each access.
  • FIG 3 is a timing diagram illustrating certain of the signals necessary to each of these read and write operations. Shown are the row access strobe (RAS) signals and the column access strobe (CAS) signals which are used to time the operations.
  • the RAS signal initiates the row selection while the CAS signal initiates the column selection and signals the time at which data is sampled in prior art frame buffers. Since each read and each write access requires both a RAS signal and a CAS signal, to both read and write the number of bits carried by the data conductors on the bus in one operation requires approximately 240 ns. in state of the art prior art systems.
  • Figure 4 illustrates a frame buffer 30 constructed in accordance with the present invention which may be used to drastically accelerate the speed by which scrolling may be accomplished.
  • a flow chart outlining the process of scrolling is illustrated in Figure 8.
  • the frame buffer 30 is connected to a plurality of data input conductors 32. Data is transferred to the frame buffer 30 on the data conductors 32 from a data bus which is not illustrated in detail but typically includes thirty-two individual data conductors.
  • a multiplexor 35 selects the data on the data conductors 32 for transfer to the array of the frame buffer when data provided by the central processor or by a graphics accelerator is to be written.
  • Data is read from the frame buffer 30 for transfer to the output display on an internal data bus 38 which in one embodiment may be wide enough to handle 32 pixels of eight bit color data.
  • Data on the internal data bus 38 may be transferred to an output register 40 from which the pixel data may be transferred serially to circuitry for driving an output display device (not shown in Figure 3).
  • Data on the internal data bus 38 may also be transferred to a series of four internal data latches 42 (individually designated latches 0-3).
  • Each of the data latches 42 is constructed in a manner well known to those skilled in the art and is capable of storing 32 pixels of eight bit color data. As will be seen, the four latches 42 are thus sufficient to hold a total number of pixels equal to 128 pixels read from the frame buffer.
  • reading data from a row of the frame buffer may be accomplished 32 pixels at a time. Consequently, as is illustrated in Figure 5, only one individual RAS and four CAS operations are necessary to read a total of 128 pixels from the frame buffer to the latches rather than one RAS/CAS operation for each pixel. With a display in which a row of pixels includes 1024 individual eight bit pixels, this is approximately 85 times as fast as using the prior art scrolling technique.
  • Figure 6 illustrates a circuit which includes the various components of a frame buffer 50.
  • the frame buffer 50 includes a plurality of memory devices 53 such as field effect transistor devices arranged to provide dynamic random access memory array 52.
  • the arrangement of the devices 53 constituting the array 52 is developed in accordance with principals well known to those skilled in the art. It is adapted to provide in the array 52 of the frame buffer 50 a sufficient number of addressable memory devices 53 to describe the number of pixels to be presented on an output display device in a particular mode of operation.
  • the array 52 may include a total of thirty-two planes (only the first is illustrated in detail in Figure 6), each plane including 256 rows, each row including 1024 memory devices; such an arrangement would allow the storage of color data sufficient to display thirty-two bit color in a 512 X 512 pixel display on a color output display terminal.
  • the frame buffer 50 includes row and column decode circuitry for decoding the addresses furnished by a controller such as a central processor and selecting individual memory cells in each plane of the array 52 to define the various pixels which may be represented on an output display device.
  • the address decoding circuitry includes row decoding circuitry 54 and column decoding circuitry 56 by which individual memory devices representing individual pixels may be selected for reading and writing.
  • data conductors 58 which may be connected to a data bus to provide data to be utilized in the array 52.
  • thirty-two data conductors 58 are provided although this number will vary with the particular computer system. The number thirty-two matches the number of bits which are transferred to indicate the color of a single pixel of the largest number of bits expected to be used by the display system in the most accurate color mode of operation.
  • each group of thirty-two bits When data is written to the frame buffer 50 on the data bus in the normal mode of operation, each group of thirty-two bits will define one or more color values to be displayed at one or more pixel positions on the output display.
  • the thirty-two bits carried by the data conductors 58 may define four pixel positions on the display in normal write mode.
  • the thirty-two bits of the data conductors 58 carry information defining a single pixel position on the display.
  • one of the data conductors 58 of the bus is connected to all of eight multiplexors 62 in each plane of the array so that the data bit carried by that conductor 58 may be placed in the appropriate memory cell of the plane of the array 52.
  • Each of the multiplexors 62 selects the source of the data to be transferred to the array 52 in each plane depending on the mode of operation selected. Thus, if the mode is normal, then the data bit is selected directly from the data conductor 58 for that plane of the array. The bit is transferred to the particular column selected and written to that column and the selected row.
  • thirty-two bits may be written from the bus conductors 58 (one to each plane) as one thirty-two bit pixel, two sixteen bit pixels, or four eight bit pixels, depending on the mode of color operation.
  • the embodiment illustrated in Figure 6 is the preferred embodiment of the invention which is particularly adapted to be used in a system utilizing eight bit color modes.
  • the system is adapted to function with eight bit color modes of operation.
  • the system utilizes eight individual multiplexors 62 in each plane of the frame buffer 50 for selecting particular write input data.
  • Each of these multiplexors 62 has its output connected to one of eight tri-state write drivers 73 which furnishes an output signal via a write enable switch such as a transmission gate 71 on a conductor connected to every eighth column of the particular plane of the array.
  • a particular address is transferred on the address bus to select a particular row and column.
  • the row address is furnished to the row decode circuitry 54 on the falling edge of a row address strobe signal (which typically requires 120 ns.) which is furnished to enable a row address latch 51.
  • the row address causes power to be furnished to all of the memory devices 53 joined to the particular row of the array.
  • the value of each memory cell in the row is sensed by a sense amplifier 63 for each column of the array.
  • the sense amplifiers 63 are turned on, and the value on the memory device sensed by each sense amplifier 63 is driven back to refresh the memory device 53.
  • the column address applied to the appropriate switch 67 of the column decode circuitry 56 selects the appropriate column in each plane to be written.
  • the column address is ten bits. These ten bits are transferred to a latch 57 which is enabled by the CAS signal. Of these ten bits, the higher valued seven bits CA3-9 of the ten bit column address are used to select a group of eight adjacent columns.
  • the normal mode write control signal at each of the multiplexors 62 causes the data signal on the single conductor 58 associated with that plane to be transferred by each of the eight multiplexors 62.
  • One of the signals produced by the multiplexors 62 is amplified by a single one of the amplifiers 73 and transferred to the addressed memory cell 53 in that plane of the array.
  • the lower three bits CAO-2 of the column address signal from the latch 57 select the particular one of the amplifiers 73 which transfers the data bit to a single one of the columns. Since each of the conductors 58 associated with each plane of the array 52 carries an individual bit for the memory cell at the selected row and column, the pixel value (or values) will be transferred to the appropriate column and row position in each plane of the array.
  • the row and column address is transferred to the decode circuitry 54 and 56.
  • a row address is selected on the falling edge of the RAS signal; and the entire row of memory cells in each selected plane of the array 52 is refreshed.
  • the higher valued seven bits CA3-9 of the column address are applied to the appropriate switches 67 of the column decode circuitry 56 to select the eight adjacent columns in each plane which have been addressed and are to be read.
  • the condition of the memory cells 53 in each of these eight columns of each selected plane are sensed by a second set of output sense amplifi:. 75.
  • the output of a particular one of the columns is selected by a array of transfusion gates 77 in each plane which is controlled by the normal mode read signal and the value of the lower three bits CAO-2 of the column address. This causes the condition of a particular memory cell 53 to be transferred to a particular one of the conductors 58 of the data bus associated with that plane of the array 52.
  • a rapid scrolling operation may be accomplished by the present invention.
  • the data is first read and then written back to the array to a new row.
  • a scroll mode signal is initiated by the controlling circuitry; and an address is furnished to the row and column decode circuitry to designate the particular data to be scrolled.
  • the scroll mode causes a particular row to be selected at the falling edge of a RAS signal as in normal mode of operation and the memory cells of that row to be refreshed.
  • the higher order bits of the column address are used to select the eight adjacent columns of the address.
  • the scroll mode signal at the array of transmission gates 77 of each plane causes the data in the memory cells of each of the eight columns selected to be transferred to a first eight bit latch shown as latch 0 in the figure.
  • a next sequential address causes the data in the memory cells of each of the next eight columns to be selected and to be transferred to a second eight bit latch shown as latch 1 in the figure. This continues for two more read operations which select two more sets of eight memory cells in each plane and place the results read in third and fourth eight bit latches latch 2 and latch 3.
  • a total of thirty-two bits in each of thirty-two planes is read and stored in the Latches 0-3.
  • a total of 1024 pixels may be accessed and stored in a total period of 1440 ns.
  • each latch 0-3 is connected so that its individual bits may be selected by a multiplexor 79 to be furnished to the multiplexors 62.
  • one of the latches 0-3 is illustrated with each of its bit positions furnishing input to each of the eight individual multiplexors 62 of that memory plane. This allows four sequential write operations to four consecutive addresses, each operation requiring one RAS and four CAS signals and taking a total of approximately 180 ns., to write the data in the four latches being scrolled back to the new row positions in the array 52 to which the row is addressed.
  • the scroll mode control signal causes the higher bits of the column address to select the appropriate eight adjacent columns in each write operation.
  • the scroll mode control signal selects all of the columns using the drivers 73 and the write enable switches 71.
  • the values in each of the individual bit latches 0-3 are then driven onto the array by overdriving the sense amplifiers 63 to establish the new values at the selected memory positions in the appropriate cells of the array.
  • the total time required to read and write back the data to scroll the row is only 2880 ns., approximately one-85th of that required to scroll in prior art arrangements.
  • the arrangement of the present invention provides very rapid scrolling operations in a frame buffer.
  • An additional facility of the invention allows it to clip pixel data to fit windows in which that data is stored at the same time that scrolling is taking place. It will have been noted that during any period in which scrolling is occurring, the conductors 58 on the data bus are not being used for the scrolling. By sending enabling signals on the data conductors 58 to the write enable gates 71 of each array, clipping may be accomplished. For example, if a first data conductor 58 carries a zero indicating that a write is not to occur and that signal is applied to disable the transmission gates 71 connected to all of the conductors 66 (one in each plane of the array 52) affecting a particular pixel, then the bits in the particular latch bit position will not be written. Thus an entire pixel may be clipped. If all of the data conductors controlling pixel positions outside a window carry zero values, then the entire area outside a window may be clipped while the scrolling is occurring.
  • FIG. 7 illustrates how this may be accomplished.
  • the control signal data appearing on the conductors 58 used for clipping is sent to a pixel mask register 55 (also shown in Figure 6).
  • the pixel mask register 55 is used to control all of the drivers 73 controlling transfer of data to a particular pixel.
  • the example here considered involves eight bit pixels and assumes that the first eight columns have been selected by the high order bits of the column address. In such a case, the bits defining the first pixel lie in the first column in the selected row and the first eight planes of that column.
  • the first pixel PI in the pixel mask register 55 controls the drivers 73 to transfer or not transfer the values in the latches 0-3 to the particular pixel position.
  • the present invention may accomplish clipping of a row of data during the scrolling of that data to a new position.
  • the data appearing on the conductors 38 is sent to a pixel mask register 55.
  • the pixel mask register is used to control all of the drivers 53 controlling transfer of data to a particular pixel. The manner in which this is accomplished is illustrated in Figure 5. Since the example considered involves eight bit color and assuming that the first eight columns have been selected by the column address, the bits defining the first pixe ie in the first column in the selected row and the first eight planes of that column.
  • the first pixel PI in the pixel mask register 55 controls the drivers 53 to transfer the color to these bit positions in the array from the color value register CO.
  • the drivers 53 connected to the bit positions lying in the next eight planes of column 0 are disabled so that the value in the color value register CO is not transferred to these bit positions.
  • the control of the other bit positions occurs in a similar manner as is illustrated in Figure 5. Consequently, with one row and eight columns selected, a number of pixels selected by one values on the data conductors 38 up to a total of thirty-two eight bit color pixels may be written simultaneously with the value stored in the color value register CO.
  • Another facility of the present invention for scrolling rows of pixel data allows the data in a row to be shifted while scrolling.
  • each of the bits stored in any latch 0-3 may be furnished to every eighth column simply by changing the column address to which the bit is written back in the array 52, data may be shifted in increments of thirty-two pixels to the right or left in a row simply by modifying the address to which the data is written back.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Input (AREA)
  • Digital Computer Display Output (AREA)
  • Memory System (AREA)

Abstract

A frame buffer (17) including a memory array (30), circuitry for accessing the array, a plurality of latches (42) each capable of storing a plurality of pixel values equivalent to a large portion of a row of pixels in the array which may be read simultaneously from the array, and circuitry for writing simultaneously to the memory cells of a row of the array the data stored in the latches whereby a row of pixels may be read and written back to the array bus in a minimum time period.

Description

METHOD FOR INCREASING THE RATE OF SCROLLING IN A FRAME BUFFER
BACKGROUND OF THE INVENTION
Field Of The Invention
This invention relates to computer systems and, more particularly, to methods and apparatus for providing very fast modes of writing pixel data from one row to another in a frame buffer which stores data for display on an output display device.
History Of The Prior Art
One of the significant problems involved in increasing the speed of operation of desktop computers has been in finding ways to increase the rate at which information is transferred to an output display device. Many of the various forms of data presentation which are presently available require that copious amounts of data be transferred. For example, if a computer output display monitor is operating in a color mode in which 1024 X 780 pixels are displayed on the screen and the mode is one in which thirty-two bits are used to define each pixel, then a total of over twenty-five millions bits of information must be transferred to the screen with each frame that is displayed. Typically, sixty frames are displayed each second so that over one and one-half billion bits must be transferred each second. This requires a very substantial amount of processing power and, in general, slows the overall operation of the computer.
In order to speed the process of transferring data to the display, various accelerating circuitry has been devised. In general, this accelerating circuitry (often referred to as a graphic rendering device) is adapted to relieve the central processor of the computer of the need to accomplish many of the functions necessary to transfer data to the display. Essentially, these accelerators take over various operations which the central processor would normally be required to accomplish. For example, block transfers of data from one position on the screen to another require that each line of data on the screen being transferred be read and rewritten to a new position on a new line. Storing information within window areas of a display requires that the data available for each window portion be clipped to fit within that window portion and not overwrite other portions of the display. Many other functions require the generation of various vectors when an image within a window on the display is moved or somehow manipulated. When accomplished by a central processing unit, all of these operations require a substantial portion of the time available to the central processing unit. These repetitive sorts of functions may be accomplished by a graphics accelerator and relieve the central processor of the burden. In general, it has been found that if operations which handle a great number of pixels at once are mechanized by a graphics accelerator, then the greatest increase in display speed may be attained.
A problem which has been discovered by designers of graphics accelerator circuitry is that a great deal of the speed improvement which is accomplished by the graphics accelerator circuitry is negated by the frame buffer circuitry into which the output of the graphics accelerator is loaded for ultimate display on an output display device. Typically, a frame buffer offers a sufficient amount of dynamic random access memory (DRAM) to store one frame of data to be displayed. However, transferring the data to and from the frame buffer is very slow because of the manner in which the frame buffers are constructed. Various improvements have been made to speed access in frame buffers. For example, two-ported video random access memory (VRAM) has been substituted for dynamic random access memory (DRAM) so that information may be taken from the frame buffer at the same time that other information is being loaded into the frame buffer.
One of the slowest operations performed is the scrolling of data. In a scrolling operation rows of data are moved up or down on the output display. Since the data describing the pixels which are displayed on an output display device is stored in a frame buffer, scrolling requires that the pixel data in the frame buffer describing a row of the display be read from the frame buffer by the central processor and written back to another position in the frame buffer. In a typical personal computer, thirty-two bits of data (one pixel in thirty-two bit color or four pixels is eight bit color) are read from the frame buffer simultaneously in an operation that typically requires 120 nanoseconds. This is followed by an access to write the data back to the appropriate positions in the frame buffer which again requires 120 nanoseconds. The total time per bit is thus approximately 7.5 ns./bit transferred. This pattern of reading and writing is continued until an entire row has been read and rewritten. Since a typical screen holds rows of 1024 pixels, 240 nanoseconds times 1024 pixels is required to scroll a single row of thirty-two bit color pixels on the display or one-fourth that time for eight bit pixels. Each line of text takes up approximately twelve rows of pixels so scrolling a line of text takes a very long time. Using the latest and most advanced rendering accelerators, it is possible to scroll approximately three times as fast as this. It is very desirable that frame buffers be provided which allow more rapid scrolling than that presently available.
Summary Of The Invention
It is, therefore, an object of the present invention to provide a new design of frame buffer capable of speeding the display of data by factors which are orders of magnitude of the speed of prior art frame buffers.
It is another more specific object of the present invention to provide a new design of frame buffer capable of rapidly scrolling large blocks of data.
These and other objects of the present invention are realized in a frame buffer including a memory array, circuitry for accessing the array, a plurality of latches each capable of storing a plurality of pixel values equivalent to a large portion of a row of pixels in the array which may be read simultaneously from the array, and circuitry for writing simultaneously to the memory cells of a row of the array the data stored in the latches whereby a row of pixels may be read and written back to the array bus in a minimum time period.
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.
Brief Description Of The Drawings
Figure 1 is a block diagram illustrating a computer system which may include the present invention.
Figure 2 is a block diagram illustrating a frame buffer designed in accordance with the prior art.
Figure 3 is a timing diagram illustrating the operation of the prior art frame buffer of Figure 2. Figure 4 is a block diagram illustrating the basic arrangement of the invention.
Figure 5 is a timing diagram illustrating the operation of the frame buffer of Figure 4.
Figure 6 is a more detailed block diagram of the circuitry of Figure 4 which may be used to carry out the present invention.
Figure 7 is a diagram useful in understanding Figure 6.
Figure 8 is a flow chart describing a method in accordance with the present invention.
Notation And Nomenclature
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. Useful machines for performing the operations of the present invention include general purpose digital computers or other similar devices. 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 for operating a computer in processing electrical or other (e.g. mechanical, chemical) physical signals to generate other desired physical signals.
Detailed Description Of The Invention
Referring now to Figure 1, there is illustrated a computer system 10. The system
10 includes a central processor 11 which carries out the various instructions provided to the computer 10 for its operations. The central processor 11 is joined to a bus 12 adapted to carry information to various components of the system 10. Also connected to the bus 12 is main memory 13 which is typically constructed of dynamic random access memory arranged in a manner well known to those skilled in the prior art to store information being used by the central processor during the period in which power is provided to the system 10. A read only memory 14 which may include various memory devices (such as electrically programmable read only memory devices (EPROM devices)) well known to those skilled in the art which are adapted to retain a memory condition in the absence of power to the system 10. The read only memory 14 typically stores various basic functions used by the processor
11 such as basic input/output and startup processes.
Also connected to the bus 12 are various peripheral components such as long term memory 16. The construction and operation of long term memory 16 (typically electro-mechanical hard disk drives) are well known to those skilled in the art. A frame buffer 17 is also coupled to the bus 12. The frame buffer 17 stores data which is to be transferred to an output device such as a monitor 18 to define pixel positions on the output device. For the purposes of the present explanation, the frame buffer 17 may be considered to include in addition to various memory planes necessary to store information, various circuitry well known to those skilled in the art for controlling the scan of information to the output display. In addition, the frame buffer 17 may be connected to the bus 12 through circuitry such as graphic accelerating circuit 15 used for providing fast rendering of graphical data to be furnished to the frame buffer 17.
Figure 2 illustrates a frame buffer 17 constructed in accordance with the prior art. Typically such a frame buffer includes a dynamic random access memory array designed to store the information defining pixels on the output display. As outlined above, when a random access memory used as a frame buffer 17 is accessed in its normal mode of operation, data is written to or read from the frame buffer 17 on data conductors 23 connected to the conductors of the data bus 12 by the device controlling the operation, the central processing unit or the graphics accelerator. When the frame buffer 17 is written in this normal mode, all of the data conductors 23 transfer binary data. In a typical computer system having a thirty-two bit bus, thirty-two bits of data may be written on the bus and appear at thirty-two data input pins to the frame buffer memory. This data may define one or more pixels depending upon the number of bits required to define a pixel in the particular color mode of operation. For example, if the mode of operation is eight bit color, then each pixel displayed requires eight bits of data; and thirty-two bits of data on the data conductors are capable of defining four pixels in each access. This normal mode is a relatively slow method of filling the frame buffer with data to be written to the display. This is, however, the typical method of writing to and reading from a frame buffer.
There are many operations which affect the display, however, which manipulate very large numbers of pixels. One of these operation is the scrolling operation in which data on the screen is moved up or down, line by line. This is typically a very slow operation because of the amount of data which must be moved in order to accomplish the operation and because the operation affects at most four pixels at once (in eight bit color mode). When the frame buffer 17 is read in a typical scrolling operation, a number of memory devices equal to the number of data conductors on the data bus are typically read to provide data for from one (thirty- two bit color) to four (eight bit color) pixels. This information is placed on the data bus and is sent to the device controlling the scrolling operation, typically the central processing unit. Once the controlling device has read the data, it then rewrites the data to the new address (the new row) in the frame buffer 17 using the data conductors 23. The number of pixels which may be read at one time is equal to the number of data conductors on the data bus divided by the size of the pixel; with a thirty-two bit bus, for eight bit color pixels, four pixels are read at once and then written back to its new position, while with thirty-two bit color pixels only one pixel is read and written back to its new position with each access.
Figure 3 is a timing diagram illustrating certain of the signals necessary to each of these read and write operations. Shown are the row access strobe (RAS) signals and the column access strobe (CAS) signals which are used to time the operations. The RAS signal initiates the row selection while the CAS signal initiates the column selection and signals the time at which data is sampled in prior art frame buffers. Since each read and each write access requires both a RAS signal and a CAS signal, to both read and write the number of bits carried by the data conductors on the bus in one operation requires approximately 240 ns. in state of the art prior art systems. Thus, to read the pixels of a single row of the frame buffer and rewrite those pixels to a new row where the pixels are stored in thirty-two bit color mode requires 240 nanoseconds multiplied by the number of pixels in a row (typically 512 or 1024). Since each line of text and the space to the next line occupies approximately twelve rows of a display, moving a single line of text requires 240 X 1024 X 12 nanoseconds in thirty-two bit color mode with a display in which a row is 1024 pixels wide.
Figure 4 illustrates a frame buffer 30 constructed in accordance with the present invention which may be used to drastically accelerate the speed by which scrolling may be accomplished. A flow chart outlining the process of scrolling is illustrated in Figure 8. The frame buffer 30 is connected to a plurality of data input conductors 32. Data is transferred to the frame buffer 30 on the data conductors 32 from a data bus which is not illustrated in detail but typically includes thirty-two individual data conductors. A multiplexor 35 selects the data on the data conductors 32 for transfer to the array of the frame buffer when data provided by the central processor or by a graphics accelerator is to be written.
Data is read from the frame buffer 30 for transfer to the output display on an internal data bus 38 which in one embodiment may be wide enough to handle 32 pixels of eight bit color data. Data on the internal data bus 38 may be transferred to an output register 40 from which the pixel data may be transferred serially to circuitry for driving an output display device (not shown in Figure 3). Data on the internal data bus 38 may also be transferred to a series of four internal data latches 42 (individually designated latches 0-3). Each of the data latches 42 is constructed in a manner well known to those skilled in the art and is capable of storing 32 pixels of eight bit color data. As will be seen, the four latches 42 are thus sufficient to hold a total number of pixels equal to 128 pixels read from the frame buffer. Using this arrangement, reading data from a row of the frame buffer may be accomplished 32 pixels at a time. Consequently, as is illustrated in Figure 5, only one individual RAS and four CAS operations are necessary to read a total of 128 pixels from the frame buffer to the latches rather than one RAS/CAS operation for each pixel. With a display in which a row of pixels includes 1024 individual eight bit pixels, this is approximately 85 times as fast as using the prior art scrolling technique.
In a similar manner, since the data is immediately available in the latches stored on the frame buffer and need not be taken off the chip, writing the latches 42 back to the frame buffer is done in 32 pixel groups through the selection offered by the multiplexor 35. The new location to which the data is to be written is addressed on the address bus using one RAS and four CAS cycles in order to address the four sequential groups of columns necessary to write the data stored in the four latches. Thus, this operation (like the read operation) also requires only one RAS and four CAS cycles (as is illustrated in Figure 5). Thus, the total time required to scroll a row of pixels is approximately 180 ns. multiplied by eight with a 1024 pixel wide display. As may be seen, this entire operation is also approximately 85 times as fast as scrolling is accomplished in prior art frame buffers. As will be appreciated, the read, latch, write sequence provides what is essentially a very wide internal bus for accomplishing the scrolling operation
Referring now to Figure 6, there is illustrated a more specific block diagram useful in understanding the invention. Figure 6 illustrates a circuit which includes the various components of a frame buffer 50. The frame buffer 50 includes a plurality of memory devices 53 such as field effect transistor devices arranged to provide dynamic random access memory array 52. The arrangement of the devices 53 constituting the array 52 is developed in accordance with principals well known to those skilled in the art. It is adapted to provide in the array 52 of the frame buffer 50 a sufficient number of addressable memory devices 53 to describe the number of pixels to be presented on an output display device in a particular mode of operation. For example, the array 52 may include a total of thirty-two planes (only the first is illustrated in detail in Figure 6), each plane including 256 rows, each row including 1024 memory devices; such an arrangement would allow the storage of color data sufficient to display thirty-two bit color in a 512 X 512 pixel display on a color output display terminal.
In addition to the array 52, the frame buffer 50 includes row and column decode circuitry for decoding the addresses furnished by a controller such as a central processor and selecting individual memory cells in each plane of the array 52 to define the various pixels which may be represented on an output display device. The address decoding circuitry includes row decoding circuitry 54 and column decoding circuitry 56 by which individual memory devices representing individual pixels may be selected for reading and writing. Also included as a part of the frame buffer 50 are data conductors 58 which may be connected to a data bus to provide data to be utilized in the array 52. Typically, thirty-two data conductors 58 are provided although this number will vary with the particular computer system. The number thirty-two matches the number of bits which are transferred to indicate the color of a single pixel of the largest number of bits expected to be used by the display system in the most accurate color mode of operation.
When data is written to the frame buffer 50 on the data bus in the normal mode of operation, each group of thirty-two bits will define one or more color values to be displayed at one or more pixel positions on the output display. Thus, when an output display is displaying data in an eight bit color mode, the thirty-two bits carried by the data conductors 58 may define four pixel positions on the display in normal write mode. On the other hand, when a display is displaying data in a thirty-two bit color mode, the thirty-two bits of the data conductors 58 carry information defining a single pixel position on the display. As may be seen, one of the data conductors 58 of the bus is connected to all of eight multiplexors 62 in each plane of the array so that the data bit carried by that conductor 58 may be placed in the appropriate memory cell of the plane of the array 52. Each of the multiplexors 62 selects the source of the data to be transferred to the array 52 in each plane depending on the mode of operation selected. Thus, if the mode is normal, then the data bit is selected directly from the data conductor 58 for that plane of the array. The bit is transferred to the particular column selected and written to that column and the selected row. Since a bit may be written in each of thirty-two planes of the array, thirty-two bits may be written from the bus conductors 58 (one to each plane) as one thirty-two bit pixel, two sixteen bit pixels, or four eight bit pixels, depending on the mode of color operation.
The embodiment illustrated in Figure 6 is the preferred embodiment of the invention which is particularly adapted to be used in a system utilizing eight bit color modes. As will be seen, the system is adapted to function with eight bit color modes of operation. To this end, the system utilizes eight individual multiplexors 62 in each plane of the frame buffer 50 for selecting particular write input data. Each of these multiplexors 62 has its output connected to one of eight tri-state write drivers 73 which furnishes an output signal via a write enable switch such as a transmission gate 71 on a conductor connected to every eighth column of the particular plane of the array.
In a normal mode write operation, a particular address is transferred on the address bus to select a particular row and column. The row address is furnished to the row decode circuitry 54 on the falling edge of a row address strobe signal (which typically requires 120 ns.) which is furnished to enable a row address latch 51. The row address causes power to be furnished to all of the memory devices 53 joined to the particular row of the array. Once power has been furnished to the appropriate row of the array, the value of each memory cell in the row is sensed by a sense amplifier 63 for each column of the array. The sense amplifiers 63 are turned on, and the value on the memory device sensed by each sense amplifier 63 is driven back to refresh the memory device 53.
At the falling edge of the CAS signal, the column address applied to the appropriate switch 67 of the column decode circuitry 56 selects the appropriate column in each plane to be written. In the preferred embodiment of the invention, the column address is ten bits. These ten bits are transferred to a latch 57 which is enabled by the CAS signal. Of these ten bits, the higher valued seven bits CA3-9 of the ten bit column address are used to select a group of eight adjacent columns. The normal mode write control signal at each of the multiplexors 62 causes the data signal on the single conductor 58 associated with that plane to be transferred by each of the eight multiplexors 62. One of the signals produced by the multiplexors 62 is amplified by a single one of the amplifiers 73 and transferred to the addressed memory cell 53 in that plane of the array. The lower three bits CAO-2 of the column address signal from the latch 57 select the particular one of the amplifiers 73 which transfers the data bit to a single one of the columns. Since each of the conductors 58 associated with each plane of the array 52 carries an individual bit for the memory cell at the selected row and column, the pixel value (or values) will be transferred to the appropriate column and row position in each plane of the array.
In a similar manner, when a particular pixel value is to be read in the normal mode of operation, the row and column address is transferred to the decode circuitry 54 and 56. A row address is selected on the falling edge of the RAS signal; and the entire row of memory cells in each selected plane of the array 52 is refreshed. At the falling edge of the CAS signal, the higher valued seven bits CA3-9 of the column address are applied to the appropriate switches 67 of the column decode circuitry 56 to select the eight adjacent columns in each plane which have been addressed and are to be read. The condition of the memory cells 53 in each of these eight columns of each selected plane are sensed by a second set of output sense amplifi:. 75. The output of a particular one of the columns is selected by a array of transfusion gates 77 in each plane which is controlled by the normal mode read signal and the value of the lower three bits CAO-2 of the column address. This causes the condition of a particular memory cell 53 to be transferred to a particular one of the conductors 58 of the data bus associated with that plane of the array 52.
As has been described above in general, a rapid scrolling operation may be accomplished by the present invention. In the scrolling operation, the data is first read and then written back to the array to a new row. In order to accomplish this, a scroll mode signal is initiated by the controlling circuitry; and an address is furnished to the row and column decode circuitry to designate the particular data to be scrolled. The scroll mode causes a particular row to be selected at the falling edge of a RAS signal as in normal mode of operation and the memory cells of that row to be refreshed. The higher order bits of the column address are used to select the eight adjacent columns of the address. The scroll mode signal at the array of transmission gates 77 of each plane causes the data in the memory cells of each of the eight columns selected to be transferred to a first eight bit latch shown as latch 0 in the figure. A next sequential address causes the data in the memory cells of each of the next eight columns to be selected and to be transferred to a second eight bit latch shown as latch 1 in the figure. This continues for two more read operations which select two more sets of eight memory cells in each plane and place the results read in third and fourth eight bit latches latch 2 and latch 3.
Thus, in a set of four read operations taking only 180 ns, a total of thirty-two bits in each of thirty-two planes is read and stored in the Latches 0-3. This means that in eight read accesses each requiring a single RAS signal and four CAS signal, a total of 1024 eight bit pixels, or an entire row of pixels on a display 1024 pixels wide, may be stored in the latches 0-3. Thus, a total of 1024 pixels may be accessed and stored in a total period of 1440 ns.
As is shown in Figure 6, each latch 0-3 is connected so that its individual bits may be selected by a multiplexor 79 to be furnished to the multiplexors 62. In the figure, one of the latches 0-3 is illustrated with each of its bit positions furnishing input to each of the eight individual multiplexors 62 of that memory plane. This allows four sequential write operations to four consecutive addresses, each operation requiring one RAS and four CAS signals and taking a total of approximately 180 ns., to write the data in the four latches being scrolled back to the new row positions in the array 52 to which the row is addressed. As with the scroll read operation, the scroll mode control signal causes the higher bits of the column address to select the appropriate eight adjacent columns in each write operation. The scroll mode control signal then selects all of the columns using the drivers 73 and the write enable switches 71. In each write back operation used in scrolling, the values in each of the individual bit latches 0-3 are then driven onto the array by overdriving the sense amplifiers 63 to establish the new values at the selected memory positions in the appropriate cells of the array. Thus, the total time required to read and write back the data to scroll the row is only 2880 ns., approximately one-85th of that required to scroll in prior art arrangements.
Thus, it may be seen that the arrangement of the present invention provides very rapid scrolling operations in a frame buffer.
An additional facility of the invention allows it to clip pixel data to fit windows in which that data is stored at the same time that scrolling is taking place. It will have been noted that during any period in which scrolling is occurring, the conductors 58 on the data bus are not being used for the scrolling. By sending enabling signals on the data conductors 58 to the write enable gates 71 of each array, clipping may be accomplished. For example, if a first data conductor 58 carries a zero indicating that a write is not to occur and that signal is applied to disable the transmission gates 71 connected to all of the conductors 66 (one in each plane of the array 52) affecting a particular pixel, then the bits in the particular latch bit position will not be written. Thus an entire pixel may be clipped. If all of the data conductors controlling pixel positions outside a window carry zero values, then the entire area outside a window may be clipped while the scrolling is occurring.
Figure 7 illustrates how this may be accomplished. The control signal data appearing on the conductors 58 used for clipping is sent to a pixel mask register 55 (also shown in Figure 6). The pixel mask register 55 is used to control all of the drivers 73 controlling transfer of data to a particular pixel. The example here considered involves eight bit pixels and assumes that the first eight columns have been selected by the high order bits of the column address. In such a case, the bits defining the first pixel lie in the first column in the selected row and the first eight planes of that column. The first pixel PI in the pixel mask register 55 controls the drivers 73 to transfer or not transfer the values in the latches 0-3 to the particular pixel position. Presuming that the second one of the conductors 58 carries a zero value and that this value is stored in the pixel mask register 55, the drivers 73 connected to the bit positions lying in the next eight planes of column 0 are disabled so that the value in the latches are not transferred to these bit positions. The control of the other bit positions occurs in a similar manner as is illustrated in Figure 7 In this manner, the present invention may accomplish clipping of a row of data during the scrolling of that data to a new position.
The data appearing on the conductors 38 is sent to a pixel mask register 55. The pixel mask register is used to control all of the drivers 53 controlling transfer of data to a particular pixel. The manner in which this is accomplished is illustrated in Figure 5. Since the example considered involves eight bit color and assuming that the first eight columns have been selected by the column address, the bits defining the first pixe ie in the first column in the selected row and the first eight planes of that column. The first pixel PI in the pixel mask register 55 controls the drivers 53 to transfer the color to these bit positions in the array from the color value register CO. Presuming that the second one of the conductors 38 carries a zero value and that this value is stored in the pixel mask register 55, the drivers 53 connected to the bit positions lying in the next eight planes of column 0 are disabled so that the value in the color value register CO is not transferred to these bit positions. The control of the other bit positions occurs in a similar manner as is illustrated in Figure 5. Consequently, with one row and eight columns selected, a number of pixels selected by one values on the data conductors 38 up to a total of thirty-two eight bit color pixels may be written simultaneously with the value stored in the color value register CO.
Another facility of the present invention for scrolling rows of pixel data allows the data in a row to be shifted while scrolling. As may be seen, since each of the bits stored in any latch 0-3 may be furnished to every eighth column simply by changing the column address to which the bit is written back in the array 52, data may be shifted in increments of thirty-two pixels to the right or left in a row simply by modifying the address to which the data is written back.
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

What Is Claimed Is:
Claim 1. A frame buffer comprising
a memory array including a plurality of rows and columns of memory cells;
circuitry for accessing the array;
latching circuitry for storing data sufficient to define a plurality of pixel values;
circuitry for reading data defining a portion of a row of pixels from the array and storing the data in the latching circuitry; and
circuitry for writing data stored in the latching circuitry to the memory cells of a row of the array.
Claim 2. A frame buffer as claimed in Claim 1 in which
the latching circuitry comprises four individual latches each capable of storing data defining the pixels in a portion of a row of a display, and
the circuitry for reading data defining a portion of a row of pixels from the array and storing the data in the latching circuitry comprises
circuitry for reading data from a plurality of columns of a memory array simultaneously, and
circuitry for writing data read simultaneously to one of the latches.
Claim 3. A frame buffer as claimed in Claim 2 in which the circuitry for writing the data stored in the latching circuitry to the memory cells of a row of the array comprises circuitry for writing data from a latch to memory cells in a plurality of columns of the memory array simultaneously.
Claim 4. A frame buffer as claimed in Claim 3 in which the circuitry for writing data from a latch to memory cells in a plurality of columns of a memory array simultaneously comprises a plurality of multiplexors in each plane, each of the multiplexors being arranged to transfer data to columns of the array, and
means for causing the multiplexors to select data in an individual latch for transfer to the array.
Claim 5. A frame buffer as claimed in Claim 4 further comprising
a bus joined to the multiplexors,
a source of data for the bus, and
means for causing the multiplexors to select data from the bus for transfer to the array.
Claim 6. A frame buffer as claimed in Claim 4 further comprising
a bus joined to the multiplexors,
a source of control signals which may be provided on the bus, and
means for clipping data transferred to the array from an individual latch in response to the control signals.
Claim 7. A frame buffer as claimed in Claim 6 in which the means for clipping data transferred to the array from an individual latch in response to the control signals comprises
means for disabling in response to the control signals the transfer of specific data selected by the means for causing the multiplexors to select data in an individual latch for transfer to the array.
Claim 8. A frame buffer as claimed in Claim 3 in which the circuitry for writing the data stored in the latching circuitry to the memory cells of a row of the array comprises circuitry for writing data to different columns than the columns from which the data was read to the latching circuitry.
Claim 9. A frame buffer as claimed in Claim 8 in which the circuitry for writing data to different columns than the columns from which the data was read to the latching circuitry comprises means for varying the column address during writing to the array.
Claim 10. A computer system comprising
a plurality of components including a central processing unit;
main memory;
a system bus for transferring information between components; and
a frame buffer comprising
a memory array, the memory array including
a plurality of planes, each of the planes including a plurality of rows and columns of memory cells;
circuitry for accessing the array;
latching circuitry for storing data sufficient to define a plurality of pixel values;
circuitry for reading data defining a plurality of pixels from the array and storing the data in the latching circuitry; and
circuitry for writing the data stored in the latching circuitry to the memory cells of a row of the array,
the time required to read and write the data to and from the latching circuitry being at least one order of magnitude less than the time required to read and write data representing individual pixels in operations transferring pixel data using the system bus.
Claim 11 A computer system as claimed in Claim 10 in which
the latching circuitry comprises four individual latches each capable of storing data defining the pixels a portion of a row of a display, and
the circuitry for reading data defining a plurality of pixels from the array and storing the data in the latching circuitry comprises circuitry for reading data from a plurality of columns and a plurality of planes of a memory array simultaneously, and
circuitry for writing the data read simultaneously to one of the latches.
Claim 12. A computer system as claimed in Claim 11 in which the circuitry for writing the data stored in the latching circuitry to the memory cells of a row of the array comprises circuitry for writing data from a latch to memory cells in a plurality of columns and a plurality of planes of a memory array simultaneously.
Claim 13. A computer system as claimed in Claim 12 in which the circuitry for writing data from a latch to memory cells in a plurality of columns and a plurality of planes of a memory array simultaneously comprises
a plurality of multiplexors in each plane, each of the multiplexors being arranged to transfer data to columns of the array, and
means for causing the multiplexors to select data in an individual latch for transfer to the array.
Claim 14. A computer system as claimed in Claim 13 further comprising a source of data for the system bus to the multiplexors, and
means for causing the multiplexors to select data on the system bus for transfer to the array.
Claim 15. A computer system as claimed in Claim 13 further comprising a source of control signals which may be provided on the system bus, and
means for clipping data transferred to the array from an individual latch in response to the control signals.
Claim 16. A frame buffer as claimed in Claim 15 in which the means for clipping data transferred to the array from an individual latch in response to the control signals comprises means for disabling in response to the control signals the transfer of specific data selected by the means for causing the multiplexors to select data in an individual latch for transfer to the array.
Claim 17. A frame buffer as claimed in Claim 12 in which the circuitry for writing the data stored in the latching circuitry to the memory cells of a row of the array comprises circuitry for writing data to different columns than the columns from which the data was read to the latching circuitry.
Claim 18. A frame buffer comprising
a memory array, the memory array including a plurality of rows and columns of memory cells;
circuitry for accessing the array; and
busing means internal to the frame buffer for transferring pixel data equivalent to a row of pixels from a first position in the memory array to a second position in the memory array.
Claim 19. A frame buffer as claimed in Claim 18 in which the busing means internal to the frame buffer for transferring pixel data equivalent to a large portion of a row of pixels from a first position in the memory array to a second position in the memory array comprises
latching circuitry for storing data sufficient to define a row of pixels,
circuitry for reading data defining a large number of pixel values in a row of pixels from the array and storing the data in the latching circuitry; and
circuitry for writing the data stored in the latching circuitry to the memory cells of a second row of the array.
Claim 20. In a frame buffer comprising a memory array including a plurality of planes, each of the planes including a plurality of rows and columns of memory cells, and circuitry for accessing the array, and latching circuitry internal to the frame buffer for storing data sufficient to define a row of pixels, a method for transferring rows of pixel data from a first row to a second prising the steps of:
transferring pixel data equivalent to a row of pixels from a first row of memory positions within the memory array to latching circuitry internal to the frame buffer, and
writing pixel data stored in the latching circuitry to the memory cells of a second row of the aπay.
PCT/US1994/012315 1993-10-29 1994-10-27 Method for increasing the rate of scrolling in a frame buffer Ceased WO1995012191A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE69430296T DE69430296T2 (en) 1993-10-29 1994-10-27 SHIFT SPEED INCREASE IN A GRID BUFFER
KR1019950702525A KR100355077B1 (en) 1993-10-29 1994-10-27 Method and apparatus for increasing the scrolling speed in a framebuffer system designed for Windows operation
EP95901057A EP0677200B1 (en) 1993-10-29 1994-10-27 Method for increasing the rate of scrolling in a frame buffer
JP7512818A JPH08505244A (en) 1993-10-29 1994-10-27 Method and apparatus for increasing scroll rate in a frame buffer system designed for windowing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14579193A 1993-10-29 1993-10-29
US08/145,791 1993-10-29

Publications (1)

Publication Number Publication Date
WO1995012191A1 true WO1995012191A1 (en) 1995-05-04

Family

ID=22514569

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1994/012315 Ceased WO1995012191A1 (en) 1993-10-29 1994-10-27 Method for increasing the rate of scrolling in a frame buffer

Country Status (6)

Country Link
US (1) US5805133A (en)
EP (1) EP0677200B1 (en)
JP (1) JPH08505244A (en)
KR (1) KR100355077B1 (en)
DE (1) DE69430296T2 (en)
WO (1) WO1995012191A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141024A (en) * 1997-02-03 2000-10-31 Ati Technologies, Inc Generating color text
US7313764B1 (en) * 2003-03-06 2007-12-25 Apple Inc. Method and apparatus to accelerate scrolling for buffered windows
JP2004287165A (en) * 2003-03-24 2004-10-14 Seiko Epson Corp Display driver, electro-optical device, electronic apparatus, and display driving method
US7492371B2 (en) * 2005-12-02 2009-02-17 Seiko Epson Corporation Hardware animation of a bouncing image
US9116607B2 (en) 2011-05-11 2015-08-25 Microsoft Technology Licensing, Llc Interface including selectable items corresponding to single or multiple data items
US8949857B2 (en) 2011-07-15 2015-02-03 Microsoft Corporation Value provider subscriptions for sparsely populated data objects
US9377940B2 (en) * 2013-02-28 2016-06-28 Facebook, Inc. Predictive pre-decoding of encoded media item
CN119207246B (en) * 2024-11-29 2025-03-18 北京数字光芯集成电路设计有限公司 Method for avoiding bad pixels in frame buffer circuit in micro display chip

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648077A (en) * 1985-01-22 1987-03-03 Texas Instruments Incorporated Video serial accessed memory with midline load
US4823302A (en) * 1987-01-30 1989-04-18 Rca Licensing Corporation Block oriented random access memory able to perform a data read, a data write and a data refresh operation in one block-access time
US5282177A (en) * 1992-04-08 1994-01-25 Micron Technology, Inc. Multiple register block write method and circuit for video DRAMs

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1526232A (en) * 1975-10-08 1978-09-27 Texas Instruments Ltd Digital data storage systems
GB2180729B (en) * 1985-09-13 1989-10-11 Sun Microsystems Inc Method and apparatus for dma window display
US4752893A (en) * 1985-11-06 1988-06-21 Texas Instruments Incorporated Graphics data processing apparatus having image operations with transparent color having a selectable number of bits
US4769637A (en) * 1985-11-26 1988-09-06 Digital Equipment Corporation Video display control circuit arrangement
US5170157A (en) * 1986-05-20 1992-12-08 Takatoshi Ishii Memory device for an image display apparatus having a serial port and independently operable data registers
JPS6358395A (en) * 1986-08-11 1988-03-14 テクトロニックス・インコ−ポレイテッド Color display device
KR960001106B1 (en) * 1986-12-17 1996-01-18 가부시기가이샤 히다찌세이사꾸쇼 Semiconductor memory
US5042013A (en) * 1987-05-27 1991-08-20 Hitachi, Ltd. Semiconductor memory
US5249159A (en) * 1987-05-27 1993-09-28 Hitachi, Ltd. Semiconductor memory
US4875196A (en) * 1987-09-08 1989-10-17 Sharp Microelectronic Technology, Inc. Method of operating data buffer apparatus
US5093805A (en) * 1990-06-20 1992-03-03 Cypress Semiconductor Corporation Non-binary memory array
JPH04216392A (en) * 1990-12-18 1992-08-06 Mitsubishi Electric Corp Semiconductor storage device provided with block write function
US5261049A (en) * 1991-07-22 1993-11-09 International Business Machines Corporation Video RAM architecture incorporating hardware decompression
US5319606A (en) * 1992-12-14 1994-06-07 International Business Machines Corporation Blocked flash write in dynamic RAM devices
US5504855A (en) * 1993-10-29 1996-04-02 Sun Microsystems, Inc. Method and apparatus for providing fast multi-color storage in a frame buffer
US5533187A (en) * 1993-10-29 1996-07-02 Sun Microsystems, Inc Multiple block mode operations in a frame buffer system designed for windowing operations
US5442748A (en) * 1993-10-29 1995-08-15 Sun Microsystems, Inc. Architecture of output switching circuitry for frame buffer
US5539430A (en) * 1993-10-29 1996-07-23 Sun Microsystems, Inc. Pipelined read write operations in a high speed frame buffer system
KR100335474B1 (en) * 1993-10-29 2002-09-26 삼성세미콘덕터, 인코포레이티드 Frame Buffer System Designed by Window Influence

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648077A (en) * 1985-01-22 1987-03-03 Texas Instruments Incorporated Video serial accessed memory with midline load
US4823302A (en) * 1987-01-30 1989-04-18 Rca Licensing Corporation Block oriented random access memory able to perform a data read, a data write and a data refresh operation in one block-access time
US5282177A (en) * 1992-04-08 1994-01-25 Micron Technology, Inc. Multiple register block write method and circuit for video DRAMs

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP0677200A4 *

Also Published As

Publication number Publication date
KR950704769A (en) 1995-11-20
EP0677200A1 (en) 1995-10-18
US5805133A (en) 1998-09-08
KR100355077B1 (en) 2002-12-26
DE69430296D1 (en) 2002-05-08
EP0677200A4 (en) 1996-07-24
EP0677200B1 (en) 2002-04-03
DE69430296T2 (en) 2002-11-07
JPH08505244A (en) 1996-06-04

Similar Documents

Publication Publication Date Title
KR100279039B1 (en) Improved memory structure, device, system and how to use it
KR970005392B1 (en) Decrypt / Write Memory with Multiple Column Selection Modes
US5442748A (en) Architecture of output switching circuitry for frame buffer
US5528751A (en) Frame buffer system designed for windowing operations
US5587726A (en) Method and apparatus for increasing the speed of operation of a double buffered display system
US5504855A (en) Method and apparatus for providing fast multi-color storage in a frame buffer
US5805133A (en) Method and apparatus for increasing the rate of scrolling in a frame buffer system designed for windowing operations
US5539430A (en) Pipelined read write operations in a high speed frame buffer system
US5654742A (en) Method and apparatus for providing operations affecting a frame buffer without a row address strobe cycle
US5533187A (en) Multiple block mode operations in a frame buffer system designed for windowing operations
JPH1092172A (en) Semiconductor memory device having data read / write function
KR100281250B1 (en) Memory architecture and devices, system and method utilizing the same

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 1995901057

Country of ref document: EP

AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

WWE Wipo information: entry into national phase

Ref document number: 1019950702525

Country of ref document: KR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1995901057

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1995901057

Country of ref document: EP