← Back to Patent Explorer
US5828856A Expired / Lapsed US ⏱️ 0.0 years remaining

Dual bus concurrent multi-channel direct memory access controller and method

Assignee: Apple Inc
•
Filing: 1996-03-21
•
Granted: 1998-10-27
•
Expires: 2016-03-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A direct memory access (DMA) controller is connected to the CPU bus of a computer system through a bus interface and is also connected to an I/O bus, which is coupled to one or more I/O controllers. Multiple channels, each corresponding to a particular I/O controller, are contained within the DMA controller. The DMA controller controls DMA transfers between the I/O controllers and the main memory of the system and allows multiple transfers to occur concurrently. The DMA controller controls transfers in part through a first arbiter which arbitrates requests for access to the CPU bus coming from the DMA channels and a second arbiter which arbitrates requests for access to the I/O bus coming from the DMA channels and the CPU.

Inventors

  • 👤 Michael J. Bowes
  • 👤 Brian A. Childers

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 13:41
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/14; G06F13/20; G06F13/28

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 215 words
A computer system comprising: a first bus; a second bus; a memory unit and a central processing unit coupled to said first bus; a plurality of input/output controllers coupled to said second bus; and a direct memory access controller, coupled to said first bus and said second bus, the direct memory access controller including, a plurality of direct memory access channels including a first channel and a second channel, for transferring data between said first bus and said second bus, wherein the first channel controls data transfers from a first input/output controller of the plurality of input/output controllers and the second channel, concurrently with the first channel controlling data transfers from the first input/output controller, controls data transfers from a second input/output controller of the plurality of input/output controllers, wherein the first and second input/output controllers are two different input/output controllers, a first arbiter coupled to each of said direct memory access channels, said first arbiter selecting one of the first channel or the second channel on behalf of which the direct memory access controller can arbitrate for access to said first bus; and a second arbiter coupled to each of said direct memory access channels, said second arbiter for arbitrating access requests from said plurality of direct memory access channels for said second bus.
Claim 2
Dependent Claim 215 words
A computer system comprising: a first bus; a second bus; a memory unit and a central processing unit coupled to said first bus; a plurality of input/output controllers coupled to said second bus; and a direct memory access controller, coupled to said first bus and said second bus, the direct memory access controller including, a plurality of direct memory access channels including a first channel and a second channel, for transferring data between said first bus and said second bus, wherein the first channel controls data transfers from a first input/output controller of the plurality of input/output controllers and the second channel, concurrently with the first channel controlling data transfers from the first input/output controller, controls data transfers from a second input/output controller of the plurality of input/output controllers, wherein the first and second input/output controllers are two different input/output controllers, a first arbiter coupled to each of said direct memory access channels, said first arbiter selecting one of the first channel or the second channel on behalf of which the direct memory access controller can arbitrate for access to said first bus; and a second arbiter coupled to each of said direct memory access channels, said second arbiter for arbitrating access requests from said plurality of direct memory access channels for said second bus.
Claim 3
Dependent Claim 39 words
A computer system as claimed in claim 1 wherein said first arbiter determines a single channel of said plurality of direct memory access channels which is entitled to access said first bus according to a predetermined fixed priority scheme.
Claim 4
Dependent Claim 38 words
A computer system as claimed in claim 1 wherein said second arbiter also determines whether said central processing unit or a single channel of said plurality of direct memory access channels is entitled to access said second bus.
Claim 5
Dependent Claim 36 words
A computer system as claimed in claim 3 wherein said second arbiter determines whether said central processing unit or said single channel is entitled to access said second bus according to a predetermined round-robin priority scheme.
Claim 6
Dependent Claim 38 words
A computer system as claimed in claim 4 wherein said round-robin priority scheme determines said direct memory access controller is entitled to twice as much access to said second bus as said central processing unit is entitled to.
Claim 7
Dependent Claim 48 words
A computer system as claimed in claim 1 wherein said second arbiter determines a single channel of said plurality of direct memory access channels which is entitled to access said second bus if more than one channel of said plurality of channels requests access to said second bus.
Claim 8
Dependent Claim 39 words
A computer system as claimed in claim 6 wherein said second arbiter determines a single channel of said plurality of direct memory access channels which is entitled to access said second bus according to a predetermined fixed priority scheme.
Claim 9
Dependent Claim 167 words
A direct memory access controller comprising: a plurality of direct memory access channels including a first channel and a second channel, for transferring data between a first bus and a second bus, wherein the first channel controls data transfers from a first input/output controller of a plurality of input/output controllers and the second channel, concurrently with the first channel controlling data transfers from the first input/output controller, controls data transfers from a second input/output controller of the plurality of input/output controllers, wherein the first and second input/output controllers are two different input/output controllers; a first arbiter coupled to each of said direct memory access channels, said first arbiter selecting one of the first channel or the second channel on behalf of which the direct memory access controller can arbitrate for access to said first bus; and a second arbiter coupled to each of said direct memory access channels, said second arbiter for arbitrating access requests from said plurality of direct memory access channels for said second bus.
Claim 10
Dependent Claim 167 words
A direct memory access controller comprising: a plurality of direct memory access channels including a first channel and a second channel, for transferring data between a first bus and a second bus, wherein the first channel controls data transfers from a first input/output controller of a plurality of input/output controllers and the second channel, concurrently with the first channel controlling data transfers from the first input/output controller, controls data transfers from a second input/output controller of the plurality of input/output controllers, wherein the first and second input/output controllers are two different input/output controllers; a first arbiter coupled to each of said direct memory access channels, said first arbiter selecting one of the first channel or the second channel on behalf of which the direct memory access controller can arbitrate for access to said first bus; and a second arbiter coupled to each of said direct memory access channels, said second arbiter for arbitrating access requests from said plurality of direct memory access channels for said second bus.
Claim 11
Dependent Claim 25 words
A direct memory access controller as claimed in claim 8 wherein said first bus is coupled to a central processing unit and a memory unit.
Claim 12
Dependent Claim 41 words
A direct memory access controller as claimed in claim 8 wherein said first arbiter determines a single channel of said plurality of direct memory access channels which is entitled to access said first bus according to a predetermined fixed priority scheme.
Claim 13
Dependent Claim 33 words
A direct memory access controller as claimed in claim 9 wherein said second arbiter determines whether said central processing unit or said direct memory access controller is entitled to access said second bus.
Claim 14
Dependent Claim 40 words
A direct memory access controller as claimed in claim 11 wherein said second arbiter determines whether said central processing unit or said direct memory access controller is entitled to access said second bus according to a predetermined round-robin priority scheme.
Claim 15
Dependent Claim 40 words
A direct memory access controller as claimed in claim 12 wherein said round-robin priority scheme determines said direct memory access controller is entitled to twice as much access to said second bus as said central processing unit is entitled to.
Claim 16
Dependent Claim 53 words
A direct memory access controller as claimed in claim 8 wherein said second arbiter determines a single channel of said plurality of direct memory access channels which is entitled to access said second bus if more than one channel of said plurality of direct memory access channels requests access to said second bus.
Claim 17
Dependent Claim 41 words
A direct memory access controller as claimed in claim 14 wherein said second arbiter determines a single channel of said plurality of direct memory access channels which is entitled to access said second bus according to a predetermined fixed priority scheme.
Claim 18
Dependent Claim 244 words
A direct memory access controller in a computer system with a central processing unit and a memory unit connected to a first bus and an input/output controller connected to a second bus, said direct memory access controller comprising: a plurality of direct memory access channels including a first channel and a second channel, coupled to said first bus and said second bus, for transferring data between said first bus and said second bus, wherein the first channel controls data transfers from a first input/output controller of a plurality of input/output controllers and the second channel, concurrently with the first channel controlling data transfers from the first input/output controller, controls data transfers from a second input/output controller of the plurality of input/output controllers, wherein the first and second input/output controllers are two different input/output controllers; a first arbiter coupled to said plurality of direct memory access channels, said first arbiter selecting one of the first channel or the second channel on behalf of which the direct memory access controller can arbitrate for access to said first bus; and a second arbiter coupled to said plurality of direct memory access channels, said second arbiter determining whether said central processing unit or said direct memory access controller is entitled to access said second bus, and if said direct memory access controller is entitled to access said second bus further determining which channel of said plurality of direct memory access channels is entitled to access said second bus.
Claim 19
Dependent Claim 244 words
A direct memory access controller in a computer system with a central processing unit and a memory unit connected to a first bus and an input/output controller connected to a second bus, said direct memory access controller comprising: a plurality of direct memory access channels including a first channel and a second channel, coupled to said first bus and said second bus, for transferring data between said first bus and said second bus, wherein the first channel controls data transfers from a first input/output controller of a plurality of input/output controllers and the second channel, concurrently with the first channel controlling data transfers from the first input/output controller, controls data transfers from a second input/output controller of the plurality of input/output controllers, wherein the first and second input/output controllers are two different input/output controllers; a first arbiter coupled to said plurality of direct memory access channels, said first arbiter selecting one of the first channel or the second channel on behalf of which the direct memory access controller can arbitrate for access to said first bus; and a second arbiter coupled to said plurality of direct memory access channels, said second arbiter determining whether said central processing unit or said direct memory access controller is entitled to access said second bus, and if said direct memory access controller is entitled to access said second bus further determining which channel of said plurality of direct memory access channels is entitled to access said second bus.
Claim 20
Independent Claim 145 words
A method for transferring data between a first bus and a second bus in a computer system with a direct memory access controller, the direct memory access controller having a plurality of direct memory access channels, the method comprising the steps of: a first channel of the plurality of direct memory access channels controlling a first data transfer from a first input/output controller coupled to the second bus; a second channel of the plurality of direct memory access channels controlling, concurrently with the first channel controlling the first data transfer, a second data transfer from a second input/output controller coupled to the second bus; selecting one of the first channel and the second channel on behalf of which the direct memory access controller can arbitrate for access to the first bus; and arbitrating for access to the first bus on behalf of the selected channel.
Claim 21
Independent Claim 145 words
A method for transferring data between a first bus and a second bus in a computer system with a direct memory access controller, the direct memory access controller having a plurality of direct memory access channels, the method comprising the steps of: a first channel of the plurality of direct memory access channels controlling a first data transfer from a first input/output controller coupled to the second bus; a second channel of the plurality of direct memory access channels controlling, concurrently with the first channel controlling the first data transfer, a second data transfer from a second input/output controller coupled to the second bus; selecting one of the first channel and the second channel on behalf of which the direct memory access controller can arbitrate for access to the first bus; and arbitrating for access to the first bus on behalf of the selected channel.
Claim 22
Dependent Claim 49 words
A method for transferring data as claimed in claim 17 further comprising a step of transferring data from said first input/output controller to a buffer of said first channel simultaneously with transferring data from a buffer of said second channel to a memory unit coupled to the first bus.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-10-26 2002-04-27 2002-10-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-10-26 2006-04-27 2006-10-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-10-26 2010-04-27 2010-10-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag