US6977656B1 - Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories - Google Patents

Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories Download PDF

Info

Publication number
US6977656B1
US6977656B1 US10/604,524 US60452403A US6977656B1 US 6977656 B1 US6977656 B1 US 6977656B1 US 60452403 A US60452403 A US 60452403A US 6977656 B1 US6977656 B1 US 6977656B1
Authority
US
United States
Prior art keywords
access
dram
sram
graphics
dual
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, expires
Application number
US10/604,524
Inventor
Hin-Kwai Lee
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.)
Intellectual Ventures I LLC
Original Assignee
NeoMagic Corp
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 NeoMagic Corp filed Critical NeoMagic Corp
Priority to US10/604,524 priority Critical patent/US6977656B1/en
Assigned to NEOMAGIC CORP. reassignment NEOMAGIC CORP. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LEE, HIN-KWAI (IVAN)
Application granted granted Critical
Publication of US6977656B1 publication Critical patent/US6977656B1/en
Priority to US11/961,624 priority patent/USRE43565E1/en
Assigned to FAUST COMMUNICATIONS HOLDINGS, LLC reassignment FAUST COMMUNICATIONS HOLDINGS, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NEOMAGIC CORPORATION
Assigned to INTELLECTUAL VENTURES I LLC reassignment INTELLECTUAL VENTURES I LLC MERGER (SEE DOCUMENT FOR DETAILS). Assignors: FAUST COMMUNICATIONS HOLDINGS, LLC
Adjusted expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

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/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
    • 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/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • G09G5/397Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels

Definitions

  • This invention relates to graphics systems, and more particularly to arbitration of multiple requestors to multiple memory devices.
  • Improvements in semiconductor processing has allowed for larger systems to be integrated together on smaller integrated circuit chips.
  • More powerful graphics engines such as for 3-D rendering and manipulation can be integrated together with basic screen refresh controllers.
  • Advanced functions such as for video-overlay can be integrated with screen refresh controllers.
  • video overlay engines and screen refresh controllers access the same physical memory device, such as a graphics dynamic-random-access memory (DRAM).
  • DRAM graphics dynamic-random-access memory
  • SRAM static random-access memory
  • the frame buffer of pixels to display on the screen during each refresh can be located in a fast SRAM while video objects and textures are stored in a slower DRAM.
  • DRAM usually stores data as charges on capacitors that periodically require refreshing of the charges, while SRAM stores data as states of a bi-stable circuit such as a bi-stable latch.
  • the access time for the SRAM is often much smaller than the access time for the DRAM.
  • FIG. 1 shows a graphics system memory that uses both SRAM and DRAM.
  • SRAM 12 is faster than DRAM 10 , so frame buffer 14 is stored primarily in SRAM 12 to improve refresh speed.
  • larger screens and pixel sizes may require the use of extension 18 in DRAM 10 .
  • Extensions may be needed when frame buffer 14 is larger than the available space in SRAM 12 .
  • the frame buffer may have different sizes, depending on whether the display is a cathode-ray tube (CRT) or liquid crystal display (LCD). Some display modes may display two or more display devices, such as when a laptop drives both its LCD and an external CRT or TV monitor.
  • CTR cathode-ray tube
  • LCD liquid crystal display
  • More realistic-looking images may be constructed from 3-D objects that are manipulated in a variety of ways, such as by rotation, transformation, shading, blending, transparency, and texturing.
  • a portion of the screen may contain a window displaying a video from a feed or other source different from the rest of the screen.
  • Video overlay processors can perform these advanced video.
  • Video overlay engines may require a number of buffers and storage areas in memory. Some buffer areas may store objects in a 3-Dimensional space that are only occasionally accessed. These objects may be stored as video overlay data 19 in slower DRAM 10 . Other buffers may be more frequently accessed, such as temporary buffers or video-feed buffers. Video overlay data 16 in SRAM 12 may contain these higher-speed buffers. Thus refresh and overlay data may each be present in both SRAM 12 and DRAM 10 .
  • a bus architecture and arbitration scheme is desired for such as multi-master, multi-memory graphics system.
  • FIG. 1 shows a graphics system memory that uses both SRAM and DRAM.
  • FIG. 2 is a block diagram of a simple multi-master, multi-memory-device graphics system.
  • FIG. 3 shows a single arbiter controlling access to separate memory devices in a 2-layer bus architecture.
  • FIG. 4 shows a dual-layer arbiter with 3 requestors.
  • FIG. 5 details signals to and from the dual-layer arbiter with three requestors.
  • FIG. 6 shows a more sophisticated embodiment of a dual-layer arbiter that prioritizes the refresh controller.
  • FIG. 7 is a waveform illustrating arbitration using the dual-layer arbiter.
  • the present invention relates to an improvement in graphics systems.
  • the following description is presented to enable one of ordinary skill in the art to make and use the invention as provided in the context of a particular application and its requirements.
  • Various modifications to the preferred embodiment will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed.
  • FIG. 2 is a block diagram of a simple multi-master, multi-memory-device graphics system.
  • Liquid crystal display (LCD) refresh controller 20 writes a stream of pixels to one or more display devices such as a flat-panel LCD screen or a CRT monitor. These pixels are read from a frame buffer that usually resides in SRAM 12 , but may be partially in DRAM 10 .
  • Video overlay engine 22 performs complex graphics functions, such as 3-D rendering and manipulation, or video-feed processing. Overlay data is often in DRAM 10 , but may also be located in SRAM 12 .
  • Arbiter 24 arbitrates requests from refresh controller 20 and from overlay engine 22 for access to SRAM 12 .
  • overlay engine 22 must wait since it generally has lower priority.
  • arbiter 26 arbitrates requests from refresh controller 20 and from overlay engine 22 for access to DRAM 10 . Again, refresh controller 20 is often given higher access privilege, but since the frame buffer is often not in DRAM 10 , overlay engine 22 can often access DRAM 10 without delays.
  • Having two separate buses to DRAM 10 and to SRAM 12 allows for concurrent memory access, where one master can access the DRAM while the other master is accessing the SRAM. Since the LCD frame buffer is often in SRAM, or mostly in SRAM, while the video overlay data is mostly in DRAM, refresh controller 20 can access SRAM 12 while overlay engine 22 is accessing DRAM 10 . On the occasions when both masters desire to access the same memory, “real” arbitration can occur using arbiters 24 , 26 .
  • arbitration is separate and uncoordinated. Logic may be duplicated in arbiters 24 , 26 , wasting silicon area and perhaps adding to circuit propagation delays. With only 2 masters, only one “real” arbitration can occur at any time, either for the DRAM or for the SRAM, since typically a master cannot access both DRAM and SRAM at the same instant.
  • FIG. 3 shows a single arbiter controlling access to separate memory devices in a 2-layer bus architecture.
  • Dual-layer arbiter 30 receives memory-access requests from refresh controller 20 and from overlay engine 22 .
  • R — LCD request line from refresh controller 20 When the R — LCD request line from refresh controller 20 is activated, dual-layer arbiter 30 examines the SRAM-DRAM (L — S/D) line which indicates whether refresh controller 20 desires to access SRAM 12 or DRAM 10 .
  • the L — S/D line can be a high-order address line or memory-select line that distinguishes between locations in DRAM 10 and in SRAM 12 . For example, L — S/D high could select SRAM 12 , while L — S/D low selects DRAM 10 .
  • dual-layer arbiter 30 examines the SRAM-DRAM (V — S/D) line from overlay engine 22 .
  • V — S/D indicates whether overlay engine 22 desires to access SRAM 12 or DRAM 10 .
  • refresh controller 20 accesses SRAM 12 while overlay engine 22 accesses DRAM 10 .
  • dual-layer arbiter 30 allows simultaneous memory access.
  • the grant line (GNT — LCD) to refresh controller 20 is activated to indicate that access to the requested memory has been granted to refresh controller 20 .
  • the select — A line to multiplexer (mux) A is set to cause mux 32 connect refresh controller 20 to SRAM 12 .
  • refresh controller 20 can access SRAM 12 over bus A through mux 32 .
  • the grant line (GNT — VO) to overlay engine 22 is set to indicate that overlay engine 22 has been granted access to DRAM 10 over bus B.
  • SEL — B is driven low to allow mux 34 to connect overlay engine 22 to bus B and DRAM 10 .
  • dual-layer arbiter 30 When both requestors desire to access the same memory device, dual-layer arbiter 30 performs real arbitration. One of the requestors is denied access or delayed while the other requestor performs its memory access. A simple round-robin scheme could be used that alternates which requestor wins. For example, if refresh controller 20 won arbitration the last time, then overlay engine 22 is granted access the next time.
  • Round-robin arbitration may also be more random, such as by using a dual-phase clock.
  • refresh controller 20 and overlay engine 22 make a simultaneous request during the first phase of the clock, then refresh controller 20 wins, but when the simultaneous request occurs in the second phase of the clock, then overlay engine 22 wins.
  • a limit can be placed on the size or length of the memory access.
  • dual-layer arbiter 30 chooses one or the other requestor.
  • SEL — A is first driven high to allow overlay engine 22 to access SRAM 12 through mux 32 .
  • SEL — A is driven low to allow overlay engine 22 to access SRAM 12 through mux 32 .
  • the control signals indicate that refresh controller 20 has access, then indicate that overlay engine 22 has access.
  • a multi-bit grant line may be used that combines timing and selection information, or additional signals may be used.
  • FIG. 4 shows a dual-layer arbiter with 3 requesters. Some graphics systems may have two video overlay engines. Dual-layer arbiter 40 receives requests from refresh controller 20 , first overlay engine 22 , and second overlay engine 23 on request lines R — LCD, R — VO 1 , R — VO 2 . Device-select lines L — S/D, V 1 — S/D, and V 2 — S/D are high when access to SRAM 12 is requested, but low when access to DRAM 10 is requested.
  • Dual-layer arbiter 30 arbitrates requests to two memory devices—SRAM 12 and DRAM 10 . Each memory device has its own bus layer. Thus three requesters arbitrate for two memory devices in this embodiment.
  • Mux 42 can select either refresh controller 20 , first overlay engine 22 , or second overlay engine 23 to connect to bus A and SRAM 12 .
  • the SEL — A signal from dual-layer arbiter 40 can be a 2-bit signal to indicate which of 3 requestors is selected.
  • SEL — B from dual-layer arbiter 40 instructs mux 44 to select either refresh controller 20 , first overlay engine 22 , or second overlay engine 23 to be connected to bus B and DRAM 10 .
  • Two-layer bus matrix 48 contains address, data, and control signals for bus A and bus B. Individual signals in the two buses are kept separate at any particular time, but routing area and other bus resources may be shared. A single arbitration state machine is used, making the two-layer bus matrix appear to be a single layer to the requestors.
  • FIG. 5 details signals to and from the dual-layer arbiter with three requestors.
  • Each requestor has a pair of request-grant lines that carry request-grant handshake signals.
  • refresh controller 20 activates its request signal REQ — LCD to signal to dual-layer arbiter 40 that it requests memory access.
  • Device signal L — S/D is high, indicating that access to SRAM 12 is requested rather than to DRAM 10 .
  • dual-layer arbiter 40 activates grant signal GNT — LCD to let refresh controller 20 know that it has been granted access to SRAM 12 .
  • Dual-layer arbiter 40 drives SEL — A to indicate that mux 42 selects lines from refresh controller 20 to connect to bus A and SRAM 12 .
  • Dual-layer arbiter 40 activates the grant line to indicate that the A bus is ready to begin access.
  • Two-layer bus matrix 48 responds with a ready signal RDY — A when SRAM 12 is ready to allow access.
  • Similar control signal SEL — B from dual-layer arbiter 40 controls mux 44 and two-layer bus matrix 48 , which generates RDY — B as an acknowledgement back to dual-layer arbiter 40 .
  • First and second video overlay engines 22 , 23 also generate request handshake signals REQ — VO 1 , REQ — VO 2 and receive grant handshake signals GNT — VO 1 , GNT — VO 2 from dual-layer arbiter 40 .
  • dual-layer arbiter 40 When a new requestor is denied access or has to wait for an earlier requestor to finish access, dual-layer arbiter 40 does not immediately return the grant signal back to the new requestor. The new requestor cannot begin access until its grant signal is activated.
  • FIG. 6 shows a more sophisticated embodiment of a dual-layer arbiter that prioritizes the refresh controller. While a simple round-robin arbitration scheme is often preferred, a more complex scheme may also be used in some embodiments.
  • Arbitration logic for the two buses can be shared, potentially reducing area, complexity, and cost.
  • Device select and request signals are combined for each of the three requestors.
  • AND gate 82 generates LC — A when the refresh controller requests access to the SRAM (A-bus) while AND gate 83 generates LC — B when the refresh controller requests access to the DRAM (B-bus).
  • AND gate 84 generates V 1 — A when the first video overlay engine requests access to the SRAM (A-bus) while AND gate 85 generates V 1 — B when it requests access to the DRAM (B-bus).
  • AND gate 86 generates V 2 — A when the request is to the SRAM (A-bus) while AND gate 87 generates V 2 — B when the request is to the DRAM (B-bus).
  • Flip-flop 81 acts as a toggle flip-flop, since its has its QB output fed back to its D input.
  • Output RR 1 is a toggled signal that can implement a round-robin scheme, since RR 1 alternates high and low with each clock or grant. Round-robin can be used for arbitrating between the first and second video overlay engines.
  • Arbiter state machine 90 receives pre-grant request inputs for each of the six possible requestor-memory combinations. State machine 90 then selects the highest priority pre-grant input and activates grant signals such as GNT — LCD, GNT — VO 1 , and GNT — VO 2 to the requesters. State machine 90 can generate more complex timing signals, or can activate other state machines that control the exact timing of bus transfers and memory accesses.
  • AND gate 91 activates PG — LC — A to indicate that the refresh controller should win arbitration for the A-bus (SRAM) when neither the first or second video overlay engines request the A-bus.
  • AND gate 92 activates PG — LC — B to indicate that the refresh controller should win arbitration for the B-bus (DRAM) when neither the first or second video overlay engines request the B-bus.
  • OR-AND gate 93 activates PG — V 1 — A to indicate that the first video overlay engine should win arbitration for the SRAM when either the second video overlay engine does not request the SRAM or the toggle signal RR 1 favors the first video overlay engine over the second video overlay engine.
  • OR-AND gate 94 generates PG — V 1 — B for the similar condition for the B-bus.
  • OR-AND gates 95 , 96 generate PG — V 2 — A, PG — V 2 — B for similar conditions for the second video overlay engine.
  • the conditions detected by the pre-grant request inputs are cases where real arbitration is not necessary, such as when requestors are requesting different memory resources.
  • state machine 90 can grant access to both requestors when they are requesting different memory resources.
  • State machine 90 also receives the raw request lines LC — A, LC — B, V 1 — A, V 1 — B, V 2 — A, and V 2 — B. State machine 90 can perform real arbitration when two requesters are requesting the same memory, such as when LC — A and V 1 — A are both active. PG — V 1 — A could be active, showing that V 1 has won the round-robin arbitration between V 1 and V 2 . Then state machine 90 can arbitrate between the first video overlay engine and refresh controller. State machine 90 can choose the highest priority input, refresh controller, or it can use another layer of round-robin, alternately selecting refresh controller and the overlay engines. Another toggle flip-flop could be used to implement round-robin arbitration with the refresh controller, or prioritizing logic can be included in state machine 90 .
  • FIG. 7 is a waveform illustrating arbitration using the dual-layer arbiter.
  • the refresh controller keeps its request line REQ — LCD active (high). Initially the refresh controller has been granted access to the SRAM, and is performing a burst data access as its transaction TRANS — LCD.
  • a second requestor the first video overlay engine, activates its request line REQ — VO 1 , with its V 1 — S/D line high (not shown) to indicate SRAM device selection.
  • the dual-layer arbiter grants the video overlay engine access, as a round-robin arbitration scheme allows access by other requesters, preventing the refresh controller from hogging the SRAM bus.
  • the dual-layer arbiter kicks the refresh controller off the SRAM bus by de-activating the grant line GNT — LCD to the refresh controller. The burst access for the refresh controller ends.
  • the two-layer bus matrix de-activates RDY — A.
  • the falling RDY — A is passed back to the refresh controller 20 as RDY — LCD.
  • the dual-layer arbiter When the dual-layer arbiter de-activates GNT — LCD, it also activates GNT — V 1 to indicate that the first video refresh controller has won arbitration.
  • the grant bus-A signal to the two-layer bus matrix 48 is again activated, and the two-layer bus matrix responds by activating RDY — A (not shown), which is passed back to the first video overlay engine as RDY — VO 1 to indicate to the overlay engine that it may begin access.
  • the first video overlay engine begins the active burst address and data transfers as bus transactions, shown as TRANS — VO 1 .
  • a memory management unit or memory mapper external to refresh controller 20 and overlay engine 22 may be used to generate the DRAM-SRAM select lines L — S/D, V — S/D, or these lines may be generated by the masters themselves.
  • Muxes may be bus switches or pass transistors that connect bit lines and control line on one bus to another bus. Buses A and B can differ in the number of address and data lines, and in the number and type of control lines.
  • SRAM 12 may be smaller than DRAM 10 and require fewer address bits.
  • DRAM 10 may require different strobe control signals such as RAS and CAS.
  • Address and data lines can be separate or can share the same physical lines by being time-multiplexed.
  • Other memory types such as FLASH or ROM types are possible variations.
  • An additional memory controller may be used for DRAM 10 , such as to generate lower-level RAS and CAS control signals from higher-level request signals from refresh controller 20 or overlay engine 22 .
  • the exact timing and meaning of request, grant, and ready handshake signals can vary with different implementations and embodiments.
  • Arbitration may be pipelined, masking some of the decisions. For example, one requestor's request may be delayed by pipelining, allowing a later request by a non-pipelined requestor to arrive at the dual-layer arbiter first.
  • the grant can be given to a particular requestor as an indication that the requestor will be the next requestor granted to the bus even when there is a currently-active bus transaction.
  • the ready signal can be used to indicate exactly when the requester should start accessing. Two separate grants GNT — LCD and GNT — V 1 could be used, or a single grant could be used for a basic 2-layer arbiter.
  • An additional arbiter channel may be used for arbitrating DRAM refresh cycles, or a hidden refresh scheme may be used. Additional requesters may be added to the arbitration, and may share a channel or have separate channels. Arbitration may be performed first among the additional requestors, then with the refresh controller and overlay engine. Display pixels may be further altered by the refresh controller, such as by color mapping, highlighting, inverting, clipping, etc. or for re-formatting for specific display types.
  • the muxes can be bi-directional, allowing data to be returned from memory to the requestors during a READ, or data to flow in the other direction to the memories for a WRITE.
  • the ready signal can be generated by the memory (SRAM or DRAM) controller.
  • the bus matrix can multiplex the two ready signals and pass the correct ready signal to the active requestor.
  • the ready signal can have two meanings: 1—during a transfer, ready can be a cycle-by-cycle indicator as data is ready/valid; 2—during idle cycles, ready can indicate whether the DRAM or SRAM memory system is ready to accept new accesses or not from the granted requestor.
  • a requestor obtains the grant from the arbiter while the memory controller is not ready to be accessed.
  • the same ready signal can be used for all 3 requestors in this case. Only the granted requestor needs to sample the ready signal.
  • the two separate physical memories could actually be of the same type if a high-level of data access parallelism is required without the real need of using memories with different characteristics like latencies and costs.

Abstract

A graphics system stores graphics data in a dynamic-random-access memory (DRAM) and in a faster static random-access memory (SRAM). A refresh controller reads pixel data from a frame buffer that is usually in the faster SRAM, while one or more video overlay engines read graphics objects from the DRAM. However, large frame buffers may be partially stored in the DRAM. Some of the graphics data read by the video overlay engine may reside in the SRAM. A dual-layer arbiter receives requests from the refresh controller and the overlay engines for access to the SRAM and DRAM. When two requestors request the same memory device, the dual-layer arbiter arbitrates access. However, often the requests are to different memory devices and the dual-layer arbiter can pass the requests through without delay, since separate buses to the DRAM and SRAM can be used simultaneously.

Description

BACKGROUND OF INVENTION
This invention relates to graphics systems, and more particularly to arbitration of multiple requestors to multiple memory devices.
Improvements in semiconductor processing has allowed for larger systems to be integrated together on smaller integrated circuit chips. More powerful graphics engines such as for 3-D rendering and manipulation can be integrated together with basic screen refresh controllers. Advanced functions such as for video-overlay can be integrated with screen refresh controllers.
Sometimes video overlay engines and screen refresh controllers access the same physical memory device, such as a graphics dynamic-random-access memory (DRAM). However, higher-resolution, high-color-depth, and high-speed graphics displays may require the use of faster static random-access memory (SRAM). For example, the frame buffer of pixels to display on the screen during each refresh can be located in a fast SRAM while video objects and textures are stored in a slower DRAM.
DRAM usually stores data as charges on capacitors that periodically require refreshing of the charges, while SRAM stores data as states of a bi-stable circuit such as a bi-stable latch. The access time for the SRAM is often much smaller than the access time for the DRAM.
FIG. 1 shows a graphics system memory that uses both SRAM and DRAM. SRAM 12 is faster than DRAM 10, so frame buffer 14 is stored primarily in SRAM 12 to improve refresh speed. However, larger screens and pixel sizes may require the use of extension 18 in DRAM 10. Extensions may be needed when frame buffer 14 is larger than the available space in SRAM 12. The frame buffer may have different sizes, depending on whether the display is a cathode-ray tube (CRT) or liquid crystal display (LCD). Some display modes may display two or more display devices, such as when a laptop drives both its LCD and an external CRT or TV monitor.
More realistic-looking images may be constructed from 3-D objects that are manipulated in a variety of ways, such as by rotation, transformation, shading, blending, transparency, and texturing. A portion of the screen may contain a window displaying a video from a feed or other source different from the rest of the screen. Video overlay processors can perform these advanced video.
Video overlay engines may require a number of buffers and storage areas in memory. Some buffer areas may store objects in a 3-Dimensional space that are only occasionally accessed. These objects may be stored as video overlay data 19 in slower DRAM 10. Other buffers may be more frequently accessed, such as temporary buffers or video-feed buffers. Video overlay data 16 in SRAM 12 may contain these higher-speed buffers. Thus refresh and overlay data may each be present in both SRAM 12 and DRAM 10.
What is desired is a graphics system that allows a refresh controller and an overlay engine to access both DRAM and SRAM devices. A bus architecture and arbitration scheme is desired for such as multi-master, multi-memory graphics system.
BRIEF DESCRIPTION OF DRAWINGS
FIG. 1 shows a graphics system memory that uses both SRAM and DRAM.
FIG. 2 is a block diagram of a simple multi-master, multi-memory-device graphics system.
FIG. 3 shows a single arbiter controlling access to separate memory devices in a 2-layer bus architecture.
FIG. 4 shows a dual-layer arbiter with 3 requestors.
FIG. 5 details signals to and from the dual-layer arbiter with three requestors.
FIG. 6 shows a more sophisticated embodiment of a dual-layer arbiter that prioritizes the refresh controller.
FIG. 7 is a waveform illustrating arbitration using the dual-layer arbiter.
DETAILED DESCRIPTION
The present invention relates to an improvement in graphics systems. The following description is presented to enable one of ordinary skill in the art to make and use the invention as provided in the context of a particular application and its requirements. Various modifications to the preferred embodiment will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed.
FIG. 2 is a block diagram of a simple multi-master, multi-memory-device graphics system. Liquid crystal display (LCD) refresh controller 20 writes a stream of pixels to one or more display devices such as a flat-panel LCD screen or a CRT monitor. These pixels are read from a frame buffer that usually resides in SRAM 12, but may be partially in DRAM 10.
Video overlay engine 22 performs complex graphics functions, such as 3-D rendering and manipulation, or video-feed processing. Overlay data is often in DRAM 10, but may also be located in SRAM 12.
Arbiter 24 arbitrates requests from refresh controller 20 and from overlay engine 22 for access to SRAM 12. When refresh controller 20 accesses SRAM 12, overlay engine 22 must wait since it generally has lower priority. Likewise, arbiter 26 arbitrates requests from refresh controller 20 and from overlay engine 22 for access to DRAM 10. Again, refresh controller 20 is often given higher access privilege, but since the frame buffer is often not in DRAM 10, overlay engine 22 can often access DRAM 10 without delays.
Having two separate buses to DRAM 10 and to SRAM 12 allows for concurrent memory access, where one master can access the DRAM while the other master is accessing the SRAM. Since the LCD frame buffer is often in SRAM, or mostly in SRAM, while the video overlay data is mostly in DRAM, refresh controller 20 can access SRAM 12 while overlay engine 22 is accessing DRAM 10. On the occasions when both masters desire to access the same memory, “real” arbitration can occur using arbiters 24, 26.
While such a dual-arbiter architecture is useful, arbitration is separate and uncoordinated. Logic may be duplicated in arbiters 24, 26, wasting silicon area and perhaps adding to circuit propagation delays. With only 2 masters, only one “real” arbitration can occur at any time, either for the DRAM or for the SRAM, since typically a master cannot access both DRAM and SRAM at the same instant.
FIG. 3 shows a single arbiter controlling access to separate memory devices in a 2-layer bus architecture. Dual-layer arbiter 30 receives memory-access requests from refresh controller 20 and from overlay engine 22. When the RLCD request line from refresh controller 20 is activated, dual-layer arbiter 30 examines the SRAM-DRAM (LS/D) line which indicates whether refresh controller 20 desires to access SRAM 12 or DRAM 10. The LS/D line can be a high-order address line or memory-select line that distinguishes between locations in DRAM 10 and in SRAM 12. For example, LS/D high could select SRAM 12, while LS/D low selects DRAM 10.
Likewise, when the RVO request line from overlay engine 22 is activated, dual-layer arbiter 30 examines the SRAM-DRAM (VS/D) line from overlay engine 22. VS/D indicates whether overlay engine 22 desires to access SRAM 12 or DRAM 10.
In many cases, refresh controller 20 accesses SRAM 12 while overlay engine 22 accesses DRAM 10. Then dual-layer arbiter 30 allows simultaneous memory access. The grant line (GNTLCD) to refresh controller 20 is activated to indicate that access to the requested memory has been granted to refresh controller 20. The selectA line to multiplexer (mux) A is set to cause mux 32 connect refresh controller 20 to SRAM 12. Then refresh controller 20 can access SRAM 12 over bus A through mux 32. The grant line (GNTVO) to overlay engine 22 is set to indicate that overlay engine 22 has been granted access to DRAM 10 over bus B. SELB is driven low to allow mux 34 to connect overlay engine 22 to bus B and DRAM 10.
When both requestors desire to access the same memory device, dual-layer arbiter 30 performs real arbitration. One of the requestors is denied access or delayed while the other requestor performs its memory access. A simple round-robin scheme could be used that alternates which requestor wins. For example, if refresh controller 20 won arbitration the last time, then overlay engine 22 is granted access the next time.
Round-robin arbitration may also be more random, such as by using a dual-phase clock. When both refresh controller 20 and overlay engine 22 make a simultaneous request during the first phase of the clock, then refresh controller 20 wins, but when the simultaneous request occurs in the second phase of the clock, then overlay engine 22 wins.
When one requestor has already gained access to the memory, then the later requestor must wait until the earlier requestor finishes accessing the memory. A limit can be placed on the size or length of the memory access.
For example, when refresh controller 20 activates its RLCD request line and overlay engine 22 activates its RVO1 request line at the same time, and both LS/D and VS/D are high, dual-layer arbiter 30 chooses one or the other requestor. When refresh controller 20 is chosen, SELA is first driven high to allow overlay engine 22 to access SRAM 12 through mux 32. Once refresh controller 20 has completed access, SELA is driven low to allow overlay engine 22 to access SRAM 12 through mux 32. The control signals indicate that refresh controller 20 has access, then indicate that overlay engine 22 has access. A multi-bit grant line may be used that combines timing and selection information, or additional signals may be used.
FIG. 4 shows a dual-layer arbiter with 3 requesters. Some graphics systems may have two video overlay engines. Dual-layer arbiter 40 receives requests from refresh controller 20, first overlay engine 22, and second overlay engine 23 on request lines RLCD, RVO1, RVO2. Device-select lines LS/D, V1 S/D, and V2 S/D are high when access to SRAM 12 is requested, but low when access to DRAM 10 is requested.
Dual-layer arbiter 30 arbitrates requests to two memory devices—SRAM 12 and DRAM 10. Each memory device has its own bus layer. Thus three requesters arbitrate for two memory devices in this embodiment.
Mux 42 can select either refresh controller 20, first overlay engine 22, or second overlay engine 23 to connect to bus A and SRAM 12. The SELA signal from dual-layer arbiter 40 can be a 2-bit signal to indicate which of 3 requestors is selected. Likewise, SELB from dual-layer arbiter 40 instructs mux 44 to select either refresh controller 20, first overlay engine 22, or second overlay engine 23 to be connected to bus B and DRAM 10.
Two-layer bus matrix 48 contains address, data, and control signals for bus A and bus B. Individual signals in the two buses are kept separate at any particular time, but routing area and other bus resources may be shared. A single arbitration state machine is used, making the two-layer bus matrix appear to be a single layer to the requestors.
FIG. 5 details signals to and from the dual-layer arbiter with three requestors. Each requestor has a pair of request-grant lines that carry request-grant handshake signals. For example, refresh controller 20 activates its request signal REQLCD to signal to dual-layer arbiter 40 that it requests memory access. Device signal LS/D is high, indicating that access to SRAM 12 is requested rather than to DRAM 10.
When refresh controller 20 wins arbitration, or when there are no other requesters to DRAM 10, then dual-layer arbiter 40 activates grant signal GNTLCD to let refresh controller 20 know that it has been granted access to SRAM 12. Dual-layer arbiter 40 drives SELA to indicate that mux 42 selects lines from refresh controller 20 to connect to bus A and SRAM 12.
Once mux 42 has connected refresh controller 20 to bus A, another set of handshake signals between dual-layer arbiter 40 and two-layer bus matrix 48 help perform the memory access. Dual-layer arbiter 40 activates the grant line to indicate that the A bus is ready to begin access. Two-layer bus matrix 48 responds with a ready signal RDYA when SRAM 12 is ready to allow access.
Similar control signal SELB from dual-layer arbiter 40 controls mux 44 and two-layer bus matrix 48, which generates RDYB as an acknowledgement back to dual-layer arbiter 40. First and second video overlay engines 22, 23 also generate request handshake signals REQVO1, REQVO2 and receive grant handshake signals GNTVO1, GNTVO2 from dual-layer arbiter 40.
When a new requestor is denied access or has to wait for an earlier requestor to finish access, dual-layer arbiter 40 does not immediately return the grant signal back to the new requestor. The new requestor cannot begin access until its grant signal is activated.
FIG. 6 shows a more sophisticated embodiment of a dual-layer arbiter that prioritizes the refresh controller. While a simple round-robin arbitration scheme is often preferred, a more complex scheme may also be used in some embodiments.
Arbitration logic for the two buses (bus A to SRAM, bus B to DRAM) can be shared, potentially reducing area, complexity, and cost. Device select and request signals are combined for each of the three requestors. AND gate 82 generates LCA when the refresh controller requests access to the SRAM (A-bus) while AND gate 83 generates LCB when the refresh controller requests access to the DRAM (B-bus).
Similarly, AND gate 84 generates V1 A when the first video overlay engine requests access to the SRAM (A-bus) while AND gate 85 generates V1 B when it requests access to the DRAM (B-bus). For the second video overlay engine, AND gate 86 generates V2 A when the request is to the SRAM (A-bus) while AND gate 87 generates V2 B when the request is to the DRAM (B-bus).
Flip-flop 81 acts as a toggle flip-flop, since its has its QB output fed back to its D input. Output RR1 is a toggled signal that can implement a round-robin scheme, since RR1 alternates high and low with each clock or grant. Round-robin can be used for arbitrating between the first and second video overlay engines.
Arbiter state machine 90 receives pre-grant request inputs for each of the six possible requestor-memory combinations. State machine 90 then selects the highest priority pre-grant input and activates grant signals such as GNTLCD, GNTVO1, and GNTVO2 to the requesters. State machine 90 can generate more complex timing signals, or can activate other state machines that control the exact timing of bus transfers and memory accesses.
AND gate 91 activates PGLCA to indicate that the refresh controller should win arbitration for the A-bus (SRAM) when neither the first or second video overlay engines request the A-bus. Likewise, AND gate 92 activates PGLCB to indicate that the refresh controller should win arbitration for the B-bus (DRAM) when neither the first or second video overlay engines request the B-bus.
OR-AND gate 93 activates PGV1 A to indicate that the first video overlay engine should win arbitration for the SRAM when either the second video overlay engine does not request the SRAM or the toggle signal RR1 favors the first video overlay engine over the second video overlay engine. OR-AND gate 94 generates PGV1 B for the similar condition for the B-bus. OR-AND gates 95, 96 generate PGV2 A, PGV2 B for similar conditions for the second video overlay engine.
The conditions detected by the pre-grant request inputs are cases where real arbitration is not necessary, such as when requestors are requesting different memory resources. When two or more pre-grant request inputs are active, state machine 90 can grant access to both requestors when they are requesting different memory resources.
State machine 90 also receives the raw request lines LCA, LCB, V1 A, V1 B, V2 A, and V2 B. State machine 90 can perform real arbitration when two requesters are requesting the same memory, such as when LCA and V1 A are both active. PGV1 A could be active, showing that V1 has won the round-robin arbitration between V1 and V2. Then state machine 90 can arbitrate between the first video overlay engine and refresh controller. State machine 90 can choose the highest priority input, refresh controller, or it can use another layer of round-robin, alternately selecting refresh controller and the overlay engines. Another toggle flip-flop could be used to implement round-robin arbitration with the refresh controller, or prioritizing logic can be included in state machine 90.
FIG. 7 is a waveform illustrating arbitration using the dual-layer arbiter. The refresh controller keeps its request line REQLCD active (high). Initially the refresh controller has been granted access to the SRAM, and is performing a burst data access as its transaction TRANSLCD.
However, at the 3rd clock pulse, a second requestor, the first video overlay engine, activates its request line REQVO1, with its V1 S/D line high (not shown) to indicate SRAM device selection.
The dual-layer arbiter grants the video overlay engine access, as a round-robin arbitration scheme allows access by other requesters, preventing the refresh controller from hogging the SRAM bus. The dual-layer arbiter kicks the refresh controller off the SRAM bus by de-activating the grant line GNTLCD to the refresh controller. The burst access for the refresh controller ends.
The two-layer bus matrix de-activates RDYA. The falling RDYA is passed back to the refresh controller 20 as RDYLCD.
When the dual-layer arbiter de-activates GNTLCD, it also activates GNTV1 to indicate that the first video refresh controller has won arbitration. The grant bus-A signal to the two-layer bus matrix 48 is again activated, and the two-layer bus matrix responds by activating RDYA (not shown), which is passed back to the first video overlay engine as RDYVO1 to indicate to the overlay engine that it may begin access. The first video overlay engine begins the active burst address and data transfers as bus transactions, shown as TRANSVO1.
ALTERNATE EMBODIMENTS
Several other embodiments are contemplated by the inventor. A memory management unit or memory mapper external to refresh controller 20 and overlay engine 22 may be used to generate the DRAM-SRAM select lines LS/D, VS/D, or these lines may be generated by the masters themselves. Muxes may be bus switches or pass transistors that connect bit lines and control line on one bus to another bus. Buses A and B can differ in the number of address and data lines, and in the number and type of control lines. For example, SRAM 12 may be smaller than DRAM 10 and require fewer address bits. DRAM 10 may require different strobe control signals such as RAS and CAS. Address and data lines can be separate or can share the same physical lines by being time-multiplexed. Other memory types such as FLASH or ROM types are possible variations.
An additional memory controller may be used for DRAM 10, such as to generate lower-level RAS and CAS control signals from higher-level request signals from refresh controller 20 or overlay engine 22. The exact timing and meaning of request, grant, and ready handshake signals can vary with different implementations and embodiments. Arbitration may be pipelined, masking some of the decisions. For example, one requestor's request may be delayed by pipelining, allowing a later request by a non-pipelined requestor to arrive at the dual-layer arbiter first.
Various bus protocols are possible. For example, the grant can be given to a particular requestor as an indication that the requestor will be the next requestor granted to the bus even when there is a currently-active bus transaction. The ready signal can be used to indicate exactly when the requester should start accessing. Two separate grants GNTLCD and GNTV1 could be used, or a single grant could be used for a basic 2-layer arbiter.
An additional arbiter channel may be used for arbitrating DRAM refresh cycles, or a hidden refresh scheme may be used. Additional requesters may be added to the arbitration, and may share a channel or have separate channels. Arbitration may be performed first among the additional requestors, then with the refresh controller and overlay engine. Display pixels may be further altered by the refresh controller, such as by color mapping, highlighting, inverting, clipping, etc. or for re-formatting for specific display types. The muxes can be bi-directional, allowing data to be returned from memory to the requestors during a READ, or data to flow in the other direction to the memories for a WRITE.
The ready signal can be generated by the memory (SRAM or DRAM) controller. The bus matrix can multiplex the two ready signals and pass the correct ready signal to the active requestor. The ready signal can have two meanings: 1—during a transfer, ready can be a cycle-by-cycle indicator as data is ready/valid; 2—during idle cycles, ready can indicate whether the DRAM or SRAM memory system is ready to accept new accesses or not from the granted requestor. There can be a case where a requestor obtains the grant from the arbiter while the memory controller is not ready to be accessed. Typically, the same ready signal can be used for all 3 requestors in this case. Only the granted requestor needs to sample the ready signal. The two separate physical memories could actually be of the same type if a high-level of data access parallelism is required without the real need of using memories with different characteristics like latencies and costs.
The abstract of the disclosure is provided to comply with the rules requiring an abstract, which will allow a searcher to quickly ascertain the subject matter of the technical disclosure of any patent issued from this disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. 37 C.F.R. § 1.72(b). Any advantages and benefits described may not apply to all embodiments of the invention. When the word “means” is recited in a claim element, Applicant intends for the claim element to fall under 35 USC § 112, paragraph 6. Often a label of one or more words precedes the word “means”. The word or words preceding the word “means” is a label intended to ease referencing of claims elements and is not intended to convey a structural limitation. Such means-plus-function claims are intended to cover not only the structures described herein for performing the function and their structural equivalents, but also equivalent structures. For example, although a nail and a screw have different structures, they are equivalent structures since they both perform the function of fastening. Claims that do not use the word means are not intended to fall under 35 USC § 112, paragraph 6. Signals are typically electronic signals, but may be optical signals such as can be carried over a fiber optic line.
The foregoing description of the embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.

Claims (19)

1. A graphics system comprising:
a dynamic-random-access memory (DRAM) for storing graphics data;
a static random-access memory (SRAM) for storing pixels in a frame buffer;
a first bus to the SRAM,
a second bus to the DRAM;
a refresh controller, coupled to the SRAM through the first bus, and coupled to the DRAM through the second bus, for reading pixels from the frame buffer for display to a display device;
a frame-buffer extension in the DRAM, the frame-buffer extension for storing pixels read by the refresh controller for larger frame buffers;
a graphics engine, coupled to the SRAM through the first bus, and coupled to the DRAM through the second bus, for reading and writing graphics data; and
a dual-layer arbiter, receiving requests from the refresh controller to access the SRAM and requests from the graphics engine to access the DRAM, and also receiving requests from the refresh controller to access the DRAM and requests from the graphics engine to access the SRAM, the dual-layer arbiter allowing simultaneous access of the DRAM and SRAM when the refresh controller requests access of the SRAM and the graphics engine requests access of the DRAM, but the dual-layer arbiter delaying access of the DRAM by the graphics engine when the refresh controller access the DRAM,
whereby the dual-layer arbiter allows simultaneous DRAM and SRAM access or arbitrated access of either the DRAM or the SRAM.
2. The graphics system of claim 1 wherein the DRAM stores data as charges on capacitors that periodically require refreshing of the charges;
wherein the SRAM stores data as states of a bi-stable circuit.
3. The graphics system of claim 1 wherein an access time for the SRAM is smaller than an access time for the DRAM.
4. The graphics system of claim 3 further comprising:
a first mux, coupled between the refresh controller, the graphics engine, and the first bus, for connecting the refresh controller to the first bus in response to the dual-layer arbiter signaling that the refresh controller is granted access to the SRAM, but for connecting the graphics engine to the first bus in response to the dual-layer arbiter signaling that the graphics engine is granted access to the SRAM;
a second mux, coupled between the refresh controller, the graphics engine, and the second bus, for connecting the refresh controller to the second bus in response to the dual-layer arbiter signaling that the refresh controller is granted access to the DRAM, but for connecting the graphics engine to the second bus in response to the dual-layer arbiter signaling that the graphics engine is granted access to the DRAM.
5. The graphics system of claim 4 wherein the first bus can transfer data to the SRAM through the first mux at a same time that the second bus transfers data to the DRAM through the second mux.
6. The graphics system of claim 5 wherein the first bus comprises address, data, and control signals for controlling access to the SRAM;
wherein the second bus comprises address, data, and control signals for controlling access to the DRAM.
7. The graphics system of claim 4 further comprising:
a buffer extension, in the SRAM, for storing graphics data read by the graphics engine.
8. The graphics system of claim 4 further comprising:
a second graphics engine, coupled to the SRAM through the first bus, and coupled to the DRAM through the second bus, for reading and writing graphics data;
wherein the dual-layer arbiter further receives requests from the second graphics engine to access the DRAM, and requests from the second graphics engine to access the SRAM,
the dual-layer arbiter also allowing simultaneous access of the DRAM and SRAM when the refresh controller requests access of the SRAM and the second graphics engine requests access of the DRAM, but the dual-layer arbiter delaying access of the DRAM by the second graphics engine when the refresh controller access the DRAM,
wherein the first mux is further coupled to the second graphics engine, the first mux connecting the second graphics engine to the first bus in response to the dual-layer arbiter signaling that the second graphics engine is granted access to the SRAM;
wherein the second mux is further coupled to the second graphics engine, the second mux connecting the second graphics engine to the second bus in response to the dual-layer arbiter signaling that the second graphics engine is granted access to the SRAM.
9. The graphics system of claim 8 wherein the graphics engine is a video overlay engine or a 3-dimensional graphics engine.
10. A dual-layer arbitrated graphics system comprising:
a dynamic-random-access memory (DRAM) for storing graphics data;
a static random-access memory (SRAM) for storing display pixels in a frame buffer;
an SRAM bus for transferring data to and from the SRAM;
a DRAM bus for transferring data to and from the DRAM;
a refresh controller coupled to drive display pixels to a display;
a frame-buffer extension in the DRAM, the frame-buffer extension for storing pixels read by the refresh controller;
a first overlay engine that manipulates graphics data;
a first mux, coupled to the SRAM bus, for selecting either the refresh controller or the first overlay engine for coupling to the SRAM bus in response to a first select signal;
a second mux, coupled to the DRAM bus, for selecting either the refresh controller or the first overlay engine for coupling to the DRAM bus in response to a second select signal; and
a dual-layer arbiter coupled to receive requests from the refresh controller and requests from the first overlay engine, for arbitrating access to the SRAM when both the refresh controller and the first overlay engine request access to the SRAM, and for arbitrating access to the DRAM when both the refresh controller and the first overlay engine request access to the DRAM, but for allowing parallel access to both the SRAM and to the DRAM when the refresh controller and the first overlay engine request access to different memories;
wherein the dual-layer arbiter generates the first select signal to the first mux and the second select signal to the second mux in response to the dual-layer arbiter arbitrating access or allowing parallel access,
whereby parallel access to the SRAM and to the DRAM is allowed when arbitrating access is not required by requests.
11. The dual-layer arbitrated graphics system of claim 10 wherein the dual-layer arbiter arbitrates access using round-robin arbitration wherein the refresh controller and the first overlay engine are given equal priority for accessing the SRAM or the DRAM, or using priority arbitration wherein the refresh controller is given higher priority than the first overlay engine for accessing the SRAM or the DRAM.
12. The dual-layer arbitrated graphics system of claim 11 further comprising:
a refresh controller request signal, generated by the refresh controller and sent to the dual-layer arbiter, for requesting access to the SRAM or to the DRAM by the refresh controller 20;
a refresh controller type signal, generated by the refresh controller and sent to the dual-layer arbiter, for indicating when access to the SRAM is requested or when access to the DRAM is requested;
a first overlay engine request signal, generated by the first overlay engine and sent to the dual-layer arbiter, for requesting access to the SRAM or to the DRAM by the first overlay engine;
a first overlay engine type signal, generated by the first overlay engine and sent to the dual-layer arbiter, for indicating when access to the SRAM is requested or when access to the DRAM is requested.
13. The dual-layer arbitrated graphics system of claim 12 further comprising:
a refresh controller grant signal, generated by the dual-layer arbiter and sent to the refresh controller, to indicate that the refresh controller may access a requested memory;
a first overlay engine grant signal, generated by the dual-layer arbiter and sent to the first overlay engine, to indicate that the first overlay engine may access a requested memory.
14. The dual-layer arbitrated graphics system of claim 11 further comprising:
a second overlay engine, coupled to the first mux and to the second mux, for manipulating the graphics data;
wherein the first select signal further indicates when the second overlay engine is granted access to the SRAM by the dual-layer arbiter;
wherein the second select signal further indicates when the second overlay engine is granted access to the DRAM by the dual-layer arbiter.
15. A dual-memory arbitrated graphics sub-system comprising:
dynamic-random-access memory (DRAM) means for storing graphics data;
static random-access memory (SRAM) means for storing display pixels in a frame buffer;
refresh controller means for reading the display pixels from the frame buffer and writing the display pixels to a display during a screen refresh;
wherein the DRAM means is further for storing extension pixels in an extended frame buffer read by the refresh controller means;
first overlay engine means for processing the graphics data to generate display pixels or intermediate graphics data;
second overlay engine means for processing the graphics data to generate display pixels or intermediate graphics data;
arbiter means, receiving first requests for access of the SRAM means from the refresh controller means, the first overlay engine means, or the second overlay engine means, and receiving second requests for access of the DRAM means from the refresh controller means, the first overlay engine means, or the second overlay engine means, for arbitrating among the first requests when received at a same time period to generate a first grant to a first winning requester, and for arbitrating among the second requests when received at a same time period to generate a second grant to a second winning requester, the arbiter means allowing simultaneous access of the SRAM means by the first winning requestor and the DRAM means by the second winning requestor;
first bus means for transferring address and data to the SRAM means;
second bus means for transferring address and data to the DRAM means;
first selector means, coupled to the first bus means, for selecting the refresh controller means, the first overlay engine means, or the second overlay engine means for connection to the first bus means in response to an indication of the first winning requestor from the arbiter means; and
second selector means, coupled to the second bus means, for selecting the refresh controller means, the first overlay engine means, or the second overlay engine means for connection to the second bus means in response to an indication of the second winning requester from the arbiter means,
whereby three requestors are arbitrated for access of two memories.
16. The dual-memory arbitrated graphics subsystem of claim 15 wherein the first bus means is further for transferring control signals to the SRAM means;
wherein the second bus means is further for transferring control signals to the DRAM means;
wherein the first bus means and the second bus means differ in control signals and width of address.
17. The dual-memory arbitrated graphics sub-system of claim 15 wherein the SRAM means is further for storing extension graphics data read by the first and second overlay engine means.
18. The dual-memory arbitrated graphics sub-system of claim 15 wherein the arbiter means further comprises:
first round-robin means for alternately selecting as the first winning requestor the refresh controller means, the first overlay engine means, or the second overlay engine means; and
second round-robin means for alternately selecting as the second winning requestor the refresh controller means, the first overlay engine means, or the second overlay engine means.
19. The dual-memory arbitrated graphics sub-system of claim 15 wherein the arbiter means further comprises:
priority means for selecting the refresh controller means as the first winning requestor when the first overlay engine means or the second overlay engine means also generates a first request during the same time period.
US10/604,524 2003-07-28 2003-07-28 Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories Ceased US6977656B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/604,524 US6977656B1 (en) 2003-07-28 2003-07-28 Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories
US11/961,624 USRE43565E1 (en) 2003-07-28 2007-12-20 Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/604,524 US6977656B1 (en) 2003-07-28 2003-07-28 Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/961,624 Reissue USRE43565E1 (en) 2003-07-28 2007-12-20 Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories

Publications (1)

Publication Number Publication Date
US6977656B1 true US6977656B1 (en) 2005-12-20

Family

ID=35465597

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/604,524 Ceased US6977656B1 (en) 2003-07-28 2003-07-28 Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories
US11/961,624 Expired - Lifetime USRE43565E1 (en) 2003-07-28 2007-12-20 Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories

Family Applications After (1)

Application Number Title Priority Date Filing Date
US11/961,624 Expired - Lifetime USRE43565E1 (en) 2003-07-28 2007-12-20 Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories

Country Status (1)

Country Link
US (2) US6977656B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060103948A1 (en) * 2004-11-17 2006-05-18 Nokia Corporation Multimedia card interface method, computer program product and apparatus
US20080229030A1 (en) * 2007-03-14 2008-09-18 Hyun-Wook Ha Efficient Use of Memory Ports in Microcomputer Systems
US7639768B1 (en) * 2006-05-01 2009-12-29 Spansion Llc Method for improving performance in a mobile device
CN101515262B (en) * 2008-02-18 2010-10-27 瑞昱半导体股份有限公司 Arbitration device and method thereof
US20110118016A1 (en) * 2009-11-13 2011-05-19 Bally Gaming, Inc. Video Extension Library System and Method
US8151025B1 (en) * 2010-12-07 2012-04-03 King Fahd University Of Petroleum & Minerals Fast round robin circuit
USRE43565E1 (en) 2003-07-28 2012-08-07 Intellectual Ventures I Llc Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8665283B1 (en) * 2010-03-29 2014-03-04 Ambarella, Inc. Method to transfer image data between arbitrarily overlapping areas of memory
US9858997B2 (en) * 2015-07-14 2018-01-02 Nanya Technology Corp. Electronic apparatus applying unified non-volatile memory and unified non-volatile memory controlling method
KR102373544B1 (en) 2015-11-06 2022-03-11 삼성전자주식회사 Memory Device and Memory System Performing Request-based Refresh and Operating Method of Memory Device

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237686A (en) 1989-05-10 1993-08-17 Mitsubishi Denki Kabushiki Kaisha Multiprocessor type time varying image encoding system and image processor with memory bus control table for arbitration priority
US5335322A (en) * 1992-03-31 1994-08-02 Vlsi Technology, Inc. Computer display system using system memory in place or dedicated display memory and method therefor
US5377331A (en) 1992-03-26 1994-12-27 International Business Machines Corporation Converting a central arbiter to a slave arbiter for interconnected systems
US5555425A (en) 1990-03-07 1996-09-10 Dell Usa, L.P. Multi-master bus arbitration system in which the address and data lines of the bus may be separately granted to individual masters
US5579473A (en) * 1994-07-18 1996-11-26 Sun Microsystems, Inc. Interface controller for frame buffer random access memory devices
US5664223A (en) 1994-04-05 1997-09-02 International Business Machines Corporation System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively
US5802560A (en) 1995-08-30 1998-09-01 Ramton International Corporation Multibus cached memory system
US5900885A (en) * 1996-09-03 1999-05-04 Compaq Computer Corp. Composite video buffer including incremental video buffer
US6070205A (en) * 1997-02-17 2000-05-30 Ssd Company Limited High-speed processor system having bus arbitration mechanism
US6076139A (en) 1996-12-31 2000-06-13 Compaq Computer Corporation Multimedia computer architecture with multi-channel concurrent memory access
US6131140A (en) * 1995-12-22 2000-10-10 Cypress Semiconductor Corp. Integrated cache memory with system control logic and adaptation of RAM bus to a cache pinout
US6216205B1 (en) 1998-05-21 2001-04-10 Integrated Device Technology, Inc. Methods of controlling memory buffers having tri-port cache arrays therein
US6237130B1 (en) 1998-10-29 2001-05-22 Nexabit Networks, Inc. Chip layout for implementing arbitrated high speed switching access of pluralities of I/O data ports to internally cached DRAM banks and the like
US6275890B1 (en) 1998-08-19 2001-08-14 International Business Machines Corporation Low latency data path in a cross-bar switch providing dynamically prioritized bus arbitration
US6288729B1 (en) * 1999-02-26 2001-09-11 Ati International Srl Method and apparatus for a graphics controller to extend graphics memory
US6313844B1 (en) * 1998-02-24 2001-11-06 Sony Corporation Storage device, image processing apparatus and method of the same, and refresh controller and method of the same
US6389480B1 (en) * 1996-12-30 2002-05-14 Compaq Computer Corporation Programmable arbitration system for determining priority of the ports of a network switch
US6812929B2 (en) * 2002-03-11 2004-11-02 Sun Microsystems, Inc. System and method for prefetching data from a frame buffer

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450542A (en) * 1993-11-30 1995-09-12 Vlsi Technology, Inc. Bus interface with graphics and system paths for an integrated memory system
US6950083B1 (en) * 1997-12-18 2005-09-27 Mustek Systems Inc. Electronic projector capable of saving and displaying a user-defined logo
US6311245B1 (en) * 1998-06-05 2001-10-30 Micron Technology, Inc. Method for time multiplexing a low-speed and a high-speed bus over shared signal lines of a physical bus
US6600493B1 (en) * 1999-12-29 2003-07-29 Intel Corporation Allocating memory based on memory device organization
US6977656B1 (en) 2003-07-28 2005-12-20 Neomagic Corp. Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237686A (en) 1989-05-10 1993-08-17 Mitsubishi Denki Kabushiki Kaisha Multiprocessor type time varying image encoding system and image processor with memory bus control table for arbitration priority
US5555425A (en) 1990-03-07 1996-09-10 Dell Usa, L.P. Multi-master bus arbitration system in which the address and data lines of the bus may be separately granted to individual masters
US5377331A (en) 1992-03-26 1994-12-27 International Business Machines Corporation Converting a central arbiter to a slave arbiter for interconnected systems
US5335322A (en) * 1992-03-31 1994-08-02 Vlsi Technology, Inc. Computer display system using system memory in place or dedicated display memory and method therefor
US5664223A (en) 1994-04-05 1997-09-02 International Business Machines Corporation System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively
US5579473A (en) * 1994-07-18 1996-11-26 Sun Microsystems, Inc. Interface controller for frame buffer random access memory devices
US5802560A (en) 1995-08-30 1998-09-01 Ramton International Corporation Multibus cached memory system
US6131140A (en) * 1995-12-22 2000-10-10 Cypress Semiconductor Corp. Integrated cache memory with system control logic and adaptation of RAM bus to a cache pinout
US5900885A (en) * 1996-09-03 1999-05-04 Compaq Computer Corp. Composite video buffer including incremental video buffer
US6389480B1 (en) * 1996-12-30 2002-05-14 Compaq Computer Corporation Programmable arbitration system for determining priority of the ports of a network switch
US6076139A (en) 1996-12-31 2000-06-13 Compaq Computer Corporation Multimedia computer architecture with multi-channel concurrent memory access
US6070205A (en) * 1997-02-17 2000-05-30 Ssd Company Limited High-speed processor system having bus arbitration mechanism
US6313844B1 (en) * 1998-02-24 2001-11-06 Sony Corporation Storage device, image processing apparatus and method of the same, and refresh controller and method of the same
US6216205B1 (en) 1998-05-21 2001-04-10 Integrated Device Technology, Inc. Methods of controlling memory buffers having tri-port cache arrays therein
US6275890B1 (en) 1998-08-19 2001-08-14 International Business Machines Corporation Low latency data path in a cross-bar switch providing dynamically prioritized bus arbitration
US6237130B1 (en) 1998-10-29 2001-05-22 Nexabit Networks, Inc. Chip layout for implementing arbitrated high speed switching access of pluralities of I/O data ports to internally cached DRAM banks and the like
US6288729B1 (en) * 1999-02-26 2001-09-11 Ati International Srl Method and apparatus for a graphics controller to extend graphics memory
US6812929B2 (en) * 2002-03-11 2004-11-02 Sun Microsystems, Inc. System and method for prefetching data from a frame buffer

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Multiplexer." http://en.wikipedia.org/wiki/Multiplexer. *
"Video Overlay." http://www.webopedia.com/TERM/V/video<SUB>-</SUB>overlay.html. *
Rynearson, John. "VMEbus System Controller." Jul. 1997. VITA Journal. http://www.vita.com/vme-faq/systemcontroller.html. *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE43565E1 (en) 2003-07-28 2012-08-07 Intellectual Ventures I Llc Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories
US20060103948A1 (en) * 2004-11-17 2006-05-18 Nokia Corporation Multimedia card interface method, computer program product and apparatus
JP2008521080A (en) * 2004-11-17 2008-06-19 ノキア コーポレイション Multimedia card interface method, computer program, and apparatus
US7565469B2 (en) * 2004-11-17 2009-07-21 Nokia Corporation Multimedia card interface method, computer program product and apparatus
JP4739349B2 (en) * 2004-11-17 2011-08-03 ノキア コーポレイション Multimedia card interface method, computer program, and apparatus
US7639768B1 (en) * 2006-05-01 2009-12-29 Spansion Llc Method for improving performance in a mobile device
US20080229030A1 (en) * 2007-03-14 2008-09-18 Hyun-Wook Ha Efficient Use of Memory Ports in Microcomputer Systems
CN101515262B (en) * 2008-02-18 2010-10-27 瑞昱半导体股份有限公司 Arbitration device and method thereof
US20110118016A1 (en) * 2009-11-13 2011-05-19 Bally Gaming, Inc. Video Extension Library System and Method
US8568227B2 (en) * 2009-11-13 2013-10-29 Bally Gaming, Inc. Video extension library system and method
US9214055B2 (en) 2009-11-13 2015-12-15 Bally Gaming, Inc. Video extension library system and method
US8151025B1 (en) * 2010-12-07 2012-04-03 King Fahd University Of Petroleum & Minerals Fast round robin circuit

Also Published As

Publication number Publication date
USRE43565E1 (en) 2012-08-07

Similar Documents

Publication Publication Date Title
USRE43565E1 (en) Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories
US6076139A (en) Multimedia computer architecture with multi-channel concurrent memory access
EP0972251B1 (en) A method and apparatus for providing concurrent acces by a plurality of agents to a shared memory
US5581782A (en) Computer system with distributed bus arbitration scheme for symmetric and priority agents
EP0919029B1 (en) Memory control unit providing optimal timing of memory control sequences between different memory segments
US5398211A (en) Structure and method for providing prioritized arbitration in a dual port memory
US6532525B1 (en) Method and apparatus for accessing memory
US6330645B1 (en) Multi-stream coherent memory controller apparatus and method
US5854638A (en) Unified memory architecture with parallel access by host and video controller
US5586299A (en) Systems and methods for accessing multi-port memories
US6721864B2 (en) Programmable memory controller
CA2214868C (en) A unified memory architecture with dynamic graphics memory allocation
US5440713A (en) M-way N-port paged-interleaved memory system
EP2430554B1 (en) Hierarchical memory arbitration technique for disparate sources
US20010042178A1 (en) Data path architecture and arbitration scheme for providing access to a shared system resource
KR100814904B1 (en) On-Chip Communication architecture
EP1564646A2 (en) Configurable embedded processor
US6957298B1 (en) System and method for a high bandwidth-low latency memory controller
US6314047B1 (en) Low cost alternative to large dual port RAM
US6675251B1 (en) Bridge device for connecting multiple devices to one slot
US5822768A (en) Dual ported memory for a unified memory architecture
US5640517A (en) Method and apparatus for masters to command a slave whether to transfer data in a sequential or non-sequential burst order
US6317813B1 (en) Method for arbitrating multiple memory access requests in a unified memory architecture via a non unified memory controller
US20080288688A1 (en) Bus system and method of arbitrating the same
US5802581A (en) SDRAM memory controller with multiple arbitration points during a memory cycle

Legal Events

Date Code Title Description
AS Assignment

Owner name: NEOMAGIC CORP., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LEE, HIN-KWAI (IVAN);REEL/FRAME:013940/0868

Effective date: 20030829

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: FAUST COMMUNICATIONS HOLDINGS, LLC, DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NEOMAGIC CORPORATION;REEL/FRAME:020617/0966

Effective date: 20080213

RF Reissue application filed

Effective date: 20071220

FEPP Fee payment procedure

Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: INTELLECTUAL VENTURES I LLC, DELAWARE

Free format text: MERGER;ASSIGNOR:FAUST COMMUNICATIONS HOLDINGS, LLC;REEL/FRAME:026636/0268

Effective date: 20110718