IP Library Granted Patent US 7,089,336
Granted Patent B2
US 7,089,336 · App. 11/125,563 · Granted Aug 8, 2006

Arbitrating and servicing polychronous data requests in Direct Memory Access

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,089,336
App. No.
11/125,563
Granted
Aug 8, 2006
Kind
B2
Abstract

Systems for servicing the data and memory requirements of system devices. A DMA engine that includes a data reservoir is provided that manages and arbitrates the data requests from the system devices. An arbitration unit is provided that only allows eligible devices to make a data request in any given cycle to ensure that all devices will be serviced within a programmable time period. The data reservoir contains the data buffers for each channel of each device. A memory interface ensures that sufficient data for each channel is present in the data reservoir by making requests to a system's memory based on an analysis of each channel. Based on this analysis, a request is either made to the system's main memory, or the channel waits until it is evaluated again in the future. Each channel is thereby guaranteed a response time.

Claims (13)

1. For a system that comprises a main memory storing data for one or more devices, each device having one or more associated channels, and a direct memory access (DMA) engine with a data reservoir for transferring data between the one or more devices and the main memory, a computer program product comprising one or more computer readable storage media with computer executable instructions that implement a method of arbitrating access to main memory through the DMA engine, the method comprising the acts of:

providing a device interface to transfer data between the DMA engine and the one or more devices by performing acts of:

selecting at least one of the one or more devices as being eligible to request data from the DMA engine during a particular DMA cycle; and

allowing the at least one eligible device to make a data request to the DMA engine during the particular DMA cycle; and

providing a memory interface to transfer data between the DMA engine and main memory by performing acts of:

defining a circular list having a plurality of entries, each entry corresponding to one of the one or more channels for each device;

evaluating an entry in the circular list to determine whether the channel corresponding to the entry requires service by performing acts of:

determining an entry time that represents how long until the channel will be evaluated again, based at least on how many entries are in the circular list and how much time is needed to service each entry;

determining a latency that represents how long the main memory will take to respond to a request from the DMA engine;

determining a buffer time that represents how long data stored in the data reservoir for the channel will last; and

determining that the channel requires service if the buffer time is less than the entry time and the latency; and

servicing the channel by requesting channel data from the main memory to replenish the data reservoir if the channel requires service.

2. A computer program product as defined in claim 1 , wherein at least one of the plurality of entries in the circular list represents a call to a circular sub list having one or more sub entries, each of which corresponds to one of the one or more channels for each device, the method further comprising an act of evaluating only one of the one or more sub entries in the circular sub list before returning to evaluate the plurality of entries in the circular list.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
MERGER Recorded Jul 9, 2014
From: WEBTV NETWORKS, INC.
To: MICROSOFT CORPORATION
Reel/Frame 033275/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2014
From: GRAY, DONALD M.; AHSAN, AGHA ZAIGHAM
To: WEBTV NETWORKS, INC.
Reel/Frame 033277/0007 →