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

Dynamically allocating space in RAM shared between multiple USB endpoints and USB host

Assignee: Microchip Technology Inc
•
Filing: 1997-05-01
•
Granted: 2001-02-06
•
Expires: 2017-05-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention relates to a peripheral microcontroller for providing a high performance USB (Universal Serial Bus) connection to existing peripheral architectures (such as printers and disk drives with existing microcontrollers) and to new peripheral architectures (such as a 4-port USB-to-Ethernet Bridge). The USB peripheral microcontroller includes three units. A Serial Interface Engine (SIE) connects to a USB host or USB hub. A Microcontroller (MCU) Interface Unit connects to one or more peripheral devices such as ISA-like peripherals. A Memory Management Unit (MMU) provides a buffering mechanism between the SIE and MCU Interface Unit. The MMU utilizes a unique data packet buffering architecture. Packets received at the MMU from a peripheral for transmission to the USB host and packets received at the MMU from the USB host for transmission to a peripheral are buffered in a RAM. The capacity of the RAM is dynamically allocatable among various USB endpoints and the USB host so that the size of the RAM is minimized. The data path of the inventive USB peripheral controller is also highly advantageous. The SIE accesses the packet buffer RAM via a DMA controller in the MMU. The MCU Interface Unit accesses the packet buffer RAM via a microcontroller or a DMA controller. An arbiter in the MMU enables these multiple masters to access the packet buffer RAM.

Inventors

  • 👤 Jeffrey Clay Dunnihoo

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 19:59
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/38; G06F13/42; G06F13/4204; G06F13/4221; G06F5/00; G06F5/06; G06F5/065; G06F13/14; G06F13/20; G06F13/28

Claims Analysis

Total Claims: 31
Claim 1
Independent Claim 126 words
A USB microcontroller comprising: a first interface for interfacing with one of a USB host or USB hub, at least one second interface for interfacing with at least one peripheral device so that said peripheral device can be connected to said USB host or USB hub, and a single memory management unit connected to both said first and said at least one second interface, said memory management unit comprising a RAM for buffering packets received from said first interface or received from said at least one second interface, wherein said RAM is not limited to buffering said packets in a first-in-first-out (FIFO) paradigm, and an arbiter for dynamically allocating capacity in said RAM to packets received from said first and said at least one second interface.
Claim 2
Dependent Claim 126 words
A USB microcontroller comprising: a first interface for interfacing with one of a USB host or USB hub, at least one second interface for interfacing with at least one peripheral device so that said peripheral device can be connected to said USB host or USB hub, and a single memory management unit connected to both said first and said at least one second interface, said memory management unit comprising a RAM for buffering packets received from said first interface or received from said at least one second interface, wherein said RAM is not limited to buffering said packets in a first-in-first-out (FIFO) paradigm, and an arbiter for dynamically allocating capacity in said RAM to packets received from said first and said at least one second interface.
Claim 3
Dependent Claim 16 words
The USB microcontroller of claim 1 wherein said first interface is a Serial Interface Engine (SIE).
Claim 4
Dependent Claim 28 words
The USB microcontroller of claim 1 wherein said memory management unit includes a first DMA controller for providing a data path between said first interface and said RAM.
Claim 5
Dependent Claim 39 words
The USB microcontroller of claim 3 wherein said second interface comprises a microcontroller and a second DMA controller and wherein said arbiter arbitrates access of said first DMA controller, said second DMA controller and said microcontroller to said RAM.
Claim 6
Dependent Claim 23 words
The USB microcontroller of claim 4 wherein said second interface includes a bus interface for connecting to an I/O controller of said peripheral.
Claim 7
Dependent Claim 15 words
The USB microcontroller of claim 5 wherein said bus interface is an ISA bus interface.
Claim 8
Dependent Claim 15 words
The USB microcontroller of claim 5 wherein said bus interface is an EISA bus interface.
Claim 9
Dependent Claim 15 words
The USB microcontroller of claim 5 wherein said bus interface is a PCI bus interface.
Claim 10
Dependent Claim 15 words
The USB microcontroller of claim 5 wherein said bus interface is an NU bus interface.
Claim 11
Dependent Claim 33 words
The USB microcontroller of claim 1 wherein said memory management unit includes a receive packet buffer for storing packet identifiers corresponding to packets received from said USB host and buffered in said RAM.
Claim 12
Dependent Claim 48 words
The USB microcontroller of claim 10 wherein said memory management unit includes a transmit packet buffer corresponding to each USB endpoint associated with said peripheral device, each of said transmit packet buffers storing packet identifiers for packets buffered in said RAM and associated with the corresponding USB endpoint.
Claim 13
Dependent Claim 30 words
The memory management unit of claim 11 wherein said memory management unit includes a circuit for converting between said packet identifiers and a corresponding physical address space in said RAM.
Claim 14
Dependent Claim 44 words
The USB microcontroller of claim 1 , wherein said first interface and said at least one second interface is capable of requesting an allocation of space of said RAM from said arbiter, such that said arbiter dynamically allocates space to multiple requesting interfaces simultaneously.
Claim 15
Dependent Claim 91 words
A USB microcontroller comprising: a first interface for interfacing with one of a USB host or USB hub, at least one second interface for interfacing with at least one peripheral device so that said peripheral device can be connected to said USB, and a memory management unit for use in a USB peripheral controller comprising a single RAM whose address space is dynamically allocatable between packets associated with a plurality of USB endpoints and packets associated with said USB host, and whose buffering is not limited to a first-in-first-out (FIFO) paradigm.
Claim 16
Dependent Claim 91 words
A USB microcontroller comprising: a first interface for interfacing with one of a USB host or USB hub, at least one second interface for interfacing with at least one peripheral device so that said peripheral device can be connected to said USB, and a memory management unit for use in a USB peripheral controller comprising a single RAM whose address space is dynamically allocatable between packets associated with a plurality of USB endpoints and packets associated with said USB host, and whose buffering is not limited to a first-in-first-out (FIFO) paradigm.
Claim 17
Dependent Claim 22 words
The USB microcontroller of claim 14 further comprising a receive buffer for storing identifiers of said packets associated with said USB host.
Claim 18
Dependent Claim 30 words
The USB microcontroller of claim 14 further comprising a transmit buffer corresponding to each of said USB endpoints for storing identifiers of said packets associated with the corresponding USB endpoints.
Claim 19
Dependent Claim 23 words
The USB microcontroller of claim 14 further comprising an arbiter which controls allocation of said address space in said RAM to said packets.
Claim 20
Dependent Claim 23 words
The USB microcontroller of claim 17 further including a first DMA controller for enabling a USB Serial Interface Engine to access said RAM.
Claim 21
Dependent Claim 21 words
The USB microcontroller of claim 18 wherein said arbiter enables a microcontroller and a second DMA controller to access said RAM.
Claim 22
Dependent Claim 123 words
A USB microcontroller comprising: a first interface for interfacing with one of USB host or USB hub, a second interface for interfacing with at least one peripheral device and comprising first and second masters, a memory management unit connected to both said first and second interfaces, said memory management unit comprising a single RAM whose address space is dynamically allocated to packets directly received by the first and second interfaces, where the packets are associated with both a plurality of USB endpoints and said USB host, wherein said RAM is not limited to buffering said packets in a first-in-first-out (FIFO) paradigm, and an arbiter for enabling said first and second masters and a master associated with said first interface to access said RAM.
Claim 23
Dependent Claim 123 words
A USB microcontroller comprising: a first interface for interfacing with one of USB host or USB hub, a second interface for interfacing with at least one peripheral device and comprising first and second masters, a memory management unit connected to both said first and second interfaces, said memory management unit comprising a single RAM whose address space is dynamically allocated to packets directly received by the first and second interfaces, where the packets are associated with both a plurality of USB endpoints and said USB host, wherein said RAM is not limited to buffering said packets in a first-in-first-out (FIFO) paradigm, and an arbiter for enabling said first and second masters and a master associated with said first interface to access said RAM.
Claim 24
Dependent Claim 69 words
A memory management unit for a USB peripheral controller comprising a single RAM whose address space is dynamically allocatable between packets directly received from a plurality of USB endpoints and a USB host, a receive queue for queuing identifiers of said packets associated with said USB host, a transmit queue associated with each of said USB endpoints for queuing identifiers of said packets associated with the corresponding USB endpoint.
Claim 25
Dependent Claim 69 words
A memory management unit for a USB peripheral controller comprising a single RAM whose address space is dynamically allocatable between packets directly received from a plurality of USB endpoints and a USB host, a receive queue for queuing identifiers of said packets associated with said USB host, a transmit queue associated with each of said USB endpoints for queuing identifiers of said packets associated with the corresponding USB endpoint.
Claim 26
Dependent Claim 27 words
The memory management unit of claim 21 , further comprising a circuit for relating each of said packet identifiers to a particular address space in said RAM.
Claim 27
Dependent Claim 25 words
The memory management unit of claim 21 wherein said memory management unit is connected to an external device interface and to USB serial input engine.
Claim 28
Dependent Claim 99 words
A USB peripheral microcontroller comprising: a Serial Input Engine for interfacing with one of a USB host or USB hub, an external device interface for interfacing with at least one peripheral device, and a memory management unit connected to said Serial Input Engine and said external device interface, said memory management unit comprising a RAM whose address space is dynamically allocated to packets generated at one or more USB endpoints associated with said at least one peripheral device and packets transmitted from said host via said USB hub, and whose buffering is not limited to a first-in-first-out (FIFO) paradigm.
Claim 29
Dependent Claim 99 words
A USB peripheral microcontroller comprising: a Serial Input Engine for interfacing with one of a USB host or USB hub, an external device interface for interfacing with at least one peripheral device, and a memory management unit connected to said Serial Input Engine and said external device interface, said memory management unit comprising a RAM whose address space is dynamically allocated to packets generated at one or more USB endpoints associated with said at least one peripheral device and packets transmitted from said host via said USB hub, and whose buffering is not limited to a first-in-first-out (FIFO) paradigm.
Claim 30
Dependent Claim 113 words
A USB microcontroller comprising: a first interface for interfacing with one of a USB host or USB hub, said first interface being an upstream USB port, at least one second interface for interfacing with at least one peripheral device so that said peripheral device can be connected to one of said USB host or said USB hub, and a single memory management unit connected to both said first and said at least one second interface wherein said USB microcontroller being configured such that one of said at least one peripheral device is capable of transfering information to another of said at least one peripheral device through said USB host or said USB hub.
Claim 31
Dependent Claim 113 words
A USB microcontroller comprising: a first interface for interfacing with one of a USB host or USB hub, said first interface being an upstream USB port, at least one second interface for interfacing with at least one peripheral device so that said peripheral device can be connected to one of said USB host or said USB hub, and a single memory management unit connected to both said first and said at least one second interface wherein said USB microcontroller being configured such that one of said at least one peripheral device is capable of transfering information to another of said at least one peripheral device through said USB host or said USB hub.

References Cited (Backward Citations)

US5214760A Cited
US5416909A Cited
US5313582A Cited
US5602995A Cited
US5604916A Cited
US5764929A Cited
US5923660A Cited
US5805931A Cited
US5802055A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-02-06 2004-08-07 2005-02-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-02-06 2008-08-07 2009-02-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-02-06 2012-08-07 2013-02-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag