Architectures for supporting communication and access between multiple host devices and one or more common functions
A controller circuit can provide communication paths between multiple host devices and at least one function interface (I/F), where a function I/F can allow access to a predetermined circuit function. The controller circuit can include an endpoint buffer circuit having a plurality of storage locations configurable as endpoints according to a predetermined data transmission protocol and a data switching circuit coupled to the endpoint point buffer circuit. The data switching circuit is configurable to provide communication paths that enable a first host I/F and a second host I/F to access at least a same function I/F, and enable the first and second host I/Fs to communicate with one another.
Latest Cypress Semiconductor Corporation Patents:
- Synchronous rectifier scheme to avoid cross-conduction in a fly-back converter
- Nano-power capacitance-to-digital converter
- Multipath robust antenna design for phase-based distance measurement
- Independently clocking digital loop filter by time-to-digital converter in digital phase-locked loop
- WIRELESS SENSING
The present invention relates generally to architectures that provide communication paths between host devices and functions, and more particularly to architectures for accommodating communication paths between multiple hosts and one or more shared functions.
BACKGROUND OF THE INVENTIONCommunication protocols can allow a “host” computing devices (for example a personal computer, laptop computer, etc.) to communicate with one or more “secondary” devices. For example, media files can be transferred between media players and a host, image files can be transferred from a camera to a host, or input devices can provide input data for the host (e.g., mouse, game controller, etc.). One popular communication protocol is that included in the Universal Serial Bus (USB) Specification.
To better understand various aspects of the disclosed embodiments, conventional systems for interconnecting secondary devices with a host will now be described with reference to
Various embodiments will now be described in detail that show methods and devices that can allow for communication paths to be created between two hosts, as well as between the hosts and a common function. Such communication paths can be essentially independently of one another. As a result, accesses to a function by either host can be “direct” (i.e., not pass through the other host). Further, such an arrangement can allow hosts to access multiple functions, and/or allow multiple logical communication endpoints to be created from a single physical communication endpoint. Such arrangements can provide significant communication speeds over conventional arrangements like that shown in
Referring now to
A second host device 104 can also send commands and data, and receive responses and data. While a second host device 104 could be a USB type host, a second host device 104 can also operate according to a different protocol than first host device 102, and/or can have an entirely different interface than first host device 102. As but two very particular examples, if first host device 102 communicates via a serial interface (e.g., USB), second host device 104 can communicate via a parallel interface or different type of serial interface.
Functions circuit 106 can provide one or more predetermined function. However, unlike a conventional case like that of
A controller circuit 108 can provide configurable communication paths between first host device 102, second host device 104 and functions circuit 106. Such communication paths are shown as 110-0, 110-1 and 110-2. Communication path 110-0 can be a first host-to-second host (H1-H2) path formed between first host 102 and second host device 104 that does not access functions circuit 106. Communication path 110-1 can be a second host-to-function (H2-F) path formed between second host 104 and functions circuit 106 that does not access first host device 102. In a similar fashion, communication path 110-2 can be a first host-to-function (H1-F) path formed between first host device 102 and functions circuit 106 that does not access second host device 104.
In this way, a controller circuit 108 can provide direct communication paths between host devices and between the host devices and one or more common functions. Such direct communication paths (e.g., paths not through other devices or functions) can allow for faster and/or more efficient data throughput or function execution. Further, such an arrangement can allow for greater versatility in a secondary device, as multiple functions can be accessed any of multiple host devices.
Referring now to
A controller circuit 200 can include an endpoint (EP) storage circuit 202, a switch/control circuit 204, configuration circuit 206, a first host interface (I/F) 208, a second host I/F 210, and a function I/F 212. An EP storage circuit 202 can include storage locations divided, or dividable into multiple EP locations. Each such EP location can store a quantifiable amount of data (e.g., data of a given packet length, or payload size). Such EP locations can also be assigned an identification value (e.g., EP number), and configured for a particular direction. In the example of
It is noted that an endpoint can be a destination or source of information commonly identifiable by all entities participating in a communication flow (e.g., device, threads, etc.). In the very particular example of the Universal Serial Bus (USB) protocol, an endpoint can be a uniquely addressable portion of a USB device that is the source or sink of information in a communication flow between a host and a function. Each USB endpoint can have an endpoint number as well as a direction of flow.
In very particular arrangements, the physical implementation of an endpoint can include an endpoint buffer. An endpoint buffer can be a memory circuit that stores data arriving from a host (configured in the OUT direction), or that stores data that can be read out to a host (configured in the IN direction). Thus, a physical endpoint can be circuitry that can actually stores data in a communication flow. In particular embodiments, such data can be in a predetermined packet format. According to particular embodiments of the invention, an endpoint buffer can be a first-in-first-out memory (FIFO), with start and end pointers that can dictate where data can be read from or written to. Such endpoint FIFOs can include flags to indicate when the FIFO is ready to be read from or written to.
A physical endpoint is a buffer where data will be stored. Logical endpoints are USB endpoints that can be mapped to any physical endpoint. Physical endpoint can be dedicated to a logical endpoint or shared between multiple logical endpoints. All logical endpoints that map to a single physical endpoint share the buffer(s).
Referring still to
In this way, a communication path between two hosts can be created that includes endpoint locations.
In this way, a communication path between one host and one or more functions can be created that includes endpoint locations.
In this way, a communication path between a second of multiple hosts and one or more functions can be created that includes endpoint locations.
Referring now to
In the particular example of
Switch controller circuit 304 can provide control signals to EP storage circuit 302 to enable switch paths and create various communication paths shown as 314-0 to 314-3 in
In the example of
Second host I/F 310′ can be programmable to accommodate different types of host interfaces. For example, second host I/F 310′ can be programmable to enable input signals generated by a second host to be capable of accessing endpoint locations and/or provide control data to other portions of controller circuit 300. Similarly, signals generated by controller circuit 310′ can be altered for compatibility with such a second host device.
Function I/F 312′ can be programmable to provide access to different types and/or numbers of functions. For example, function I/F 312′ can be programmable to enable any of multiple function interfaces. Further I/F 312′ can be programmable to provide different versions of a same function (e.g., one function may execute predetermined operations and provide/receive data according to a first bit width, while a different version of the same function can perform the same operation, but provide/receive data according to a larger or smaller bit width).
As noted above, communication paths that can be created with controller circuit are shown as 314-0 to 314-3. Communication path 314-0 can be a H1-H2 communication path passing from first host I/F 308′ to second host I/F 310′, but completely bypasses function I/F 312′. Communication path 314-1 can be a H1-F communication path passing from first host I/F 308′ to function I/F 312′, bypassing second host I/F 310′. Communication path 314-2 can be a H2-F communication path passing from second host I/F 310′ to function I/F 312′, bypassing first host I/F 308′.
Referring still to
Referring now to
A controller circuit 400 can include some sections like those of
In the particular example of
A configuration circuit 406 can include a processor block 406-0 and processor I/F 406-1. A processor block 406-0 can include a processor, associated I/Os, and instruction set. Although not shown in
The particular example of
Having described the structure of a controller circuit in
Referring to
In this way, a controller circuit like that of
Another feature of the arrangement like of
In this way, a controller circuit can provide multiple logical endpoints for a first host I/F utilizing a single physical endpoint.
Another example showing the mapping of multiple logical endpoints to a same physical endpoint is shown in
While
In this way, a controller circuit can provide multiple logical endpoints for a second host I/F utilizing a single physical endpoint.
An arrangement like of
While
In this way, a controller circuit can allow any of multiple host devices (via host I/Fs) to access any of multiple functions.
An arrangement like of
As shown in
In this way, a controller circuit can establish a control communication path to one host while allowing another host to access available functions.
As noted above, embodiments of the present invention can include a configurable function interface. A first particular example of a configurable function interface is shown in
A configurable function I/F 600 can include a number of physical input/outputs (I/Os) 602, an I/O switch circuit 604, a first function I/F circuit 606, and a second function I/F circuit 608. In the particular example of
An I/O switch circuit 604 can selectively connect configurable I/Os 602-1 to either first function I/F circuit 606 or second function I/F circuit 606 according to configuration information FUNC_CFG.
First function I/F circuit 606 can translate a first type of external signal set into signals compatible with circuits internal to a controller circuit. Similarly, second function I/F circuit 608 can translate a second type of external signal set into signals compatible with circuits internal to controller circuit. As but one example, function I/F circuits (606 and 608) can enable data transfers from endpoint locations to predetermined addresses of devices attached to function I/F 600. The very particular example of
In one very particular example, a first I/F circuit 606 can be a storage port compatible with the SD Memory Card Specification (SD), promulgated by the SD Card Association, the MultiMediaCard System Specification (MMC), promulgated by the MMC Association, and the CE-ATA Standard, promulgated by the CE-ATA Working Group. A second I/F circuit 608 can be a storage port compatible with a NAND memory device, such as those complying with the Open NAND Flash Interface Working Group. More particularly, second I/F circuit 608 can be configurable to operate to operate with one number of I/Os (e.g., ×8) or another number of I/Os (e.g., ×16).
In this way, a configurable function I/F can accommodate one or more different mass storage media devices of differing types.
A second particular example of a configurable function interface is shown in
Of course, while
Just as function interfaces can be programmable, in the embodiments described herein, host interfaces can be programmable. An example of such an arrangement is shown in
A programmable host I/F 800 can include a number of host physical input/outputs (I/Os) 802, a clock circuit 804, data input latches 806-0, address input latches 808, control input latches 810-0, data output buffers 806-1, control output buffers 810-1, and I/O switch circuit 812, a control input map circuit 814, a control output map circuit 816, and a programmable state machine 818.
In the particular example of
A clock circuit 804 can receive a clock signal CLK_IN, and generate an internal clock signal CLK. In particular arrangements, a clock circuit 804 can be a buffer circuit, or alternatively, can include frequency locking circuits, such as a phase lock loop (PLL) or delay lock loop (DLL).
Data input latches 806-0 can latch data input signals according to clock signal CLK. Similarly, address input latches 808 can latch address values, and control input latches 810-0 can latch control input values according to clock signal CLK.
Data output buffers 806-1 can drive data values on data I/Os 802-1, also in synchronism with clock signal CLK. Control output buffers 810-1 can drive control data on control outputs 802-4 according to clock signal CLK.
I/O switch circuit 812 can selectively enable signal paths from GPI/Os 802-5 to programmable state machine 818, according to host configuration data HOST_CFG.
Control input map circuit 814 can map incoming control signals to particular internal nodes of a controller circuit and/or logically combine such signals to generate internal control signals. In the reverse manner, control output map circuit 816 can map signals at internal nodes of a controller circuit to output control signals and/or logically combine such internal signals to generate output control signals. Such a mapping can be based upon host configuration data HOST_CFG.
A programmable state machine 818 can be programmed to generate a set of output signals in response to predetermined input signals, and set of input signals in response to predetermined output signals. In one particular case, such an arrangement can include “waveform descriptors” which can include both unconditional and conditional steps that are executed according to predetermined signal sets.
In this way, a programmable interface can allow a controller circuit to accommodate various types of host devices.
A controller circuit according the various embodiments can base timing on a generated clock signal. To accommodate various system speeds, it may be desirable to include a clock circuit that can generate or accommodate clock signals of varying frequencies. One particular example of such an arrangement is shown in
Referring to
A crystal oscillator circuit 902 can be connected to a crystal and other passive components by way of a crystal input terminal 912-0 and a crystal output terminal 912-1, which are preferably physical inputs to an integrated circuit (e.g., pins). Crystal oscillator circuit 902 can generate a periodic output signal fxout having a frequency dependent upon an attached crystal. Different oscillating frequencies can be accommodated by selection of different components based on signal XCLKSEL. A crystal oscillator circuit 902 can receive a power supply voltage VDDX, which can be greater than that of other components of a controller circuit.
A level translator circuit 904 can translate and buffer output signal fxout to levels suitable for the other portions of the clock circuit 900.
An external clock buffer 906 can buffer a clock signal received at an external clock input terminal 914. Preferably, such a clock input terminal is a physical input to an integrated circuit.
A clock signal selector 908 can select a clock signal provided from the external clock buffer 906 or crystal oscillator circuit 902 as an input clock signal CLK_IN based on a clock configuration signal CLK_CFG. Optionally, clock input signal CLK_IN can be provided as an input to a phase lock loop circuit 910, which can multiply and/or divide signal CLK_IN to generate a device clock signal CLK_IN′. In the particular arrangement shown, clock division multiplication can occur according to values CFG_CLK.
In this way, a controller circuit can include a clock signal that can operate according to clock signals having a selectable frequency. Further such a clock signal can be generated by an onboard oscillator, or received via a clock input.
As shown in various embodiments above, a controller circuit can provide various communication paths by controlling a data path between an endpoint storage circuit and either a second host I/F or a function I/F. Additional communication paths can be formed by dynamically switching directions of endpoints. As previously noted, it may be advantageous to provide changes in the configuration of such paths in a dynamic fashion. One example of a configuration circuit for providing such dynamic control is shown in
A configuration circuit 1000 can include a processor 1002, an instruction memory 1004, control registers 1006, and an address/data bus 1008. In very particular examples, a configuration circuit 1000 can correspond to any of configuration circuits shown as 206, 306 or 406 in other embodiments above.
A processor 1002 can execute instructions stored in an instruction memory 1004 and can provide input/output signals on configuration I/O lines 1010. In the very particular example of
It is noted that instruction memory 1004 can be connected to address/data bus 1008, and address bus 1008 can be connected to a second host I/F, EPs, and/or a function I/F. Such an arrangement can allow instructions to be stored in instruction memory 1004 by either a first host (e.g., via an EP), a second host, or a function. Instructions stored within instruction memory 1004 can be firmware or software. This configuration can allow such firmware or software to be loaded via a first host I/F, second host I/F, or even a function I/F.
In the particular example of
Alternatively, a processor 1002 can provide configuration data by way of I/O lines, rather than control registers.
In this way, a control circuit can configure a controller circuit according to sequences contained within firmware or software.
In controller circuit configurations like that of
An endpoint detect circuit 1104 can examine outgoing data from a host for a destination endpoint. Such an endpoint value can be provided to acknowledgement circuit 1106. Acknowledgement circuit 1106 can receive endpoint status information EP_STATUS and a destination endpoint value from endpoint detect circuit 1104. If acknowledgement circuit 1106 determines that a destination endpoint matches an endpoint currently in use by another host or function, it can output a “no acknowledge” indication (NAK) to physical layer logic circuit 1102. In response, physical layer logic circuit 1100 can issue a no acknowledgement back to the host.
In this way, a controller circuit can handle accesses from one host while an endpoint is in use by another host or function.
Embodiments of the present invention can be well suited to performing various other steps or variations of the steps recited herein, and in a sequence other than that depicted and/or described herein.
For purposes of clarity, many of the details of the various embodiments and the methods of designing and manufacturing the same that are widely known and are not relevant to the present invention have been omitted from the following description.
It should be appreciated that reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the invention.
Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim standing on its own as a separate embodiment of this invention.
It is also understood that the embodiments of the invention may be practiced in the absence of an element and/or step not specifically disclosed. That is, an inventive feature of the invention can be elimination of an element.
Accordingly, while the various aspects of the particular embodiments set forth herein have been described in detail, the present invention could be subject to various changes, substitutions, and alterations without departing from the spirit and scope of the invention.
Claims
1. A controller circuit comprising:
- an endpoint buffer circuit having a plurality of storage locations configurable as endpoints according to a USB protocol; and
- a data switching circuit coupled to the endpoint buffer circuit configurable to provide communication paths that enable a first host interface (I/F) and a second host I/F to access at least an individual function I/F of one or more function I/Fs of the controller circuit configured to allow access to at least one predetermined circuit function, and to enable first and second host I/F's to communicate with one another, wherein the communication paths include a first communication path that enables the first host I/F to access at least the individual function I/F without passing through the second host I/F and a second communication path that enables the second host I/F to access at least the individual function I/F without passing through the first host I/F, and wherein the data switching circuit comprises a multiplexer (MUX) and a de-multiplexer (DE-MUX) coupled to the endpoint buffer circuit, the second host I/F and the at least one individual function I/F to selectively provide the communication paths.
2. The controller circuit of claim 1, wherein:
- the individual function I/F is coupled to any selected from the group consisting of a storage device or input/output device.
3. The controller circuit of claim 1, wherein:
- the data switching circuit can include any selected from the group consisting of a shared data bus or the multiplexer selectively accessible by at least the second host I/F and the individual function I/F.
4. The controller circuit of claim 1, wherein:
- the controller circuit is configurable to provide a first host-to-second host transmission path that includes portions of the data switching circuit and portions of the endpoint buffer circuit.
5. The controller circuit of claim 1, wherein:
- the controller circuit is configurable to provide a third communication path between the individual function I/F and both the first host I/F and the second host I/F that includes portions of the data switching circuit and portions of the endpoint buffer circuit.
6. The controller circuit of claim 1, wherein:
- the at least one function I/F comprises a plurality of function I/Fs that are each configurable to provide one or more signals for accessing at least one different predetermined function, the controller circuit being configurable to provide an individual first host I/F communication path between the first host I/F and at least two of the plurality of function I/Fs.
7. The controller circuit of claim 1, wherein:
- the at least one function I/F comprises a plurality of function I/Fs that are each configurable to provide one or more signals for accessing at least one different predetermined function, the controller being configurable to provide an individual second host I/F communication path between the second host I/F and at least two of the plurality of function I/Fs.
8. The controller circuit of claim 1, wherein:
- the endpoint buffer circuit is configurable to have at least one physical endpoint corresponding to an endpoint identification value of the USB protocol; and
- the data switching circuit is configurable to provide at least two different communication paths from the one physical endpoint as different logical endpoints corresponding to the one physical endpoint.
9. The controller circuit of claim 1, wherein:
- the individual function I/F is programmable between at least two different function I/Fs, each different function I/F enabling access to at least one other predetermined circuit function.
10. The controller circuit of claim 9, wherein:
- the at least two different functions include accesses to different types of solid state storage media.
11. The controller circuit of claim 1, wherein:
- the second host I/F is programmable between at least two different configured host I/Fs, each different configured host I/F enabling communication with a different type of host.
12. The controller circuit of claim 1, further including:
- a processor coupled to a memory and configurable to execute instructions stored in the memory and outputs configuration data; and
- wherein the data switching circuit is configurable according to the configuration data.
13. The controller circuit of claim 1, wherein the first host I/F comprises:
- an endpoint detector configurable to determine an endpoint value of a communication received at the first host I/F, and
- a response circuit coupled to the endpoint detector and configurable to receive endpoint status information, the response circuit providing a predetermined indication when the endpoint value corresponds to an endpoint indicated as in use by at least one function I/F of the one or more function I/Fs or the second host I/F by the endpoint status information.
14. The controller circuit of claim 1, wherein:
- the data switching circuit is configurable to provide a control communication path between the first host I/F and a control endpoint, and at the same time, the second communication path.
15. The controller circuit of claim 1, further including:
- a processor circuit configurable to execute instructions stored in a processor memory and outputs configuration data, the processor memory being coupled to any selected from the group of: the first host I/F, the second host I/F, or at least one of the one or more function I/Fs; and
- wherein the data switching circuit is configurable according to the configuration data.
16. The controller circuit of claim 1, further including:
- a timing circuit for generating a timing signal for the controller circuit, the timing circuit comprising at least one crystal input operable for receiving a crystal; and
- an oscillator circuit for generating an oscillating signal according to a crystal at the at least one crystal input, the oscillator circuit configured to accommodate any of a plurality of crystals of different resonance frequencies.
17. A method comprising the steps of:
- in one integrated circuit,
- providing at least a first data communication path between a first host interface (I/F) and at least a first endpoint storage location;
- providing a second data communication path between the first host I/F and a second endpoint storage location;
- configuring the second communication data path between the second endpoint storage location and a controller; and
- configuring a third data communication path between at least the first endpoint storage location and a second host I/F and between at least the first endpoint storage location and a function I/F, wherein the second host I/F is programmable to accommodate different interface types, and wherein the function I/F is programmable to provide access to one or both of: different types of functions or different versions of an individual function, and wherein the second data communication path and the third data communication path can be utilized simultaneously.
18. The method of claim 17, further including:
- in a communication between the first host I/F and the second host I/F or a transfer between the first host I/F and the function I/F, storing data in at least one endpoint storage location configured for the direction of communication.
19. The method of claim 18, wherein:
- in a communication between the second host I/F and the function I/F, storing data in at least one endpoint storage location configured for in a first direction, and
- switching the direction of the endpoint storage location.
20. The method of claim 17, wherein:
- configuring the data communication path includes creating predetermined signal paths according to configuration information output from a processor that executes instructions in an instruction memory; and
- in a configuration operation, loading instruction data into the instruction memory from one or more of: the first host I/F, the second host I/F, or the at least one function I/F.
21. A controller circuit device, comprising:
- an integrated circuit substrate that includes
- a first host interface (I/F) operable to communicate with a first type host device, a second host I/F operable to communicate with a second type host device, and at least one function I/F operable to communicate with at least one predetermined function; and
- a control and memory circuit configurable to provide a plurality of communication paths, including at least a first host I/F to second host I/F path that includes a portion of an endpoint buffer memory but does not include the at least one function I/F, a first host I/F to function I/F path that includes a portion of the endpoint buffer memory but does not include the second host I/F, and a second host I/F to function I/F path that includes a portion of the endpoint buffer memory but does not include the first host I/F, and further comprising a multiplexer (MUX) and a de-multiplexer (DE-MUX) coupled to the endpoint buffer memory, the second host I/F and the at least one function I/F to selectively provide at least some of the plurality of communication paths.
22. The controller circuit device of claim 21, wherein:
- the first host I/F is a universal serial bus (USB) I/F.
4641261 | February 3, 1987 | Dwyer et al. |
4701913 | October 20, 1987 | Nelson |
4713757 | December 15, 1987 | Davidson et al. |
4862355 | August 29, 1989 | Newman et al. |
4866606 | September 12, 1989 | Kopetz |
4890222 | December 26, 1989 | Kirk |
5289580 | February 22, 1994 | Latif et al. |
5388249 | February 7, 1995 | Hotta et al. |
5392421 | February 21, 1995 | Lennartsson |
5402394 | March 28, 1995 | Turski |
5416909 | May 16, 1995 | Long et al. |
5428748 | June 27, 1995 | Davidson et al. |
5454080 | September 26, 1995 | Fasig et al. |
5461723 | October 1995 | Shah et al. |
5488657 | January 30, 1996 | Lynn et al. |
5497067 | March 5, 1996 | Shaw |
5574859 | November 12, 1996 | Yeh |
5577213 | November 19, 1996 | Avery et al. |
5586268 | December 17, 1996 | Chen et al. |
5598409 | January 28, 1997 | Madonna et al. |
5606672 | February 25, 1997 | Wade |
5615344 | March 25, 1997 | Corder |
5621902 | April 15, 1997 | Cases et al. |
5628001 | May 6, 1997 | Cepuran |
5630147 | May 13, 1997 | Datta et al. |
5634074 | May 27, 1997 | Devon et al. |
5642489 | June 24, 1997 | Bland et al. |
5655148 | August 5, 1997 | Richman et al. |
5671355 | September 23, 1997 | Collins |
5673031 | September 30, 1997 | Meier |
5675813 | October 7, 1997 | Holmdahl |
5687346 | November 11, 1997 | Shinohara |
5701429 | December 23, 1997 | Legvold et al. |
5748911 | May 5, 1998 | Maguire et al. |
5748923 | May 5, 1998 | Eitrich |
5754799 | May 19, 1998 | Hiles |
5758188 | May 26, 1998 | Appelbaum et al. |
5767844 | June 16, 1998 | Stoye |
5774744 | June 30, 1998 | Story et al. |
5778218 | July 7, 1998 | Gulick |
5781028 | July 14, 1998 | Decuir |
5793745 | August 11, 1998 | Manchester |
5794033 | August 11, 1998 | Aldebert et al. |
5802328 | September 1, 1998 | Yoshimura |
5802558 | September 1, 1998 | Pierce |
5805834 | September 8, 1998 | McKinley |
5828854 | October 27, 1998 | Wade |
5838907 | November 17, 1998 | Hansen |
5859988 | January 12, 1999 | Ajanovic et al. |
5862362 | January 19, 1999 | Somasegar et al. |
5898861 | April 27, 1999 | Emerson et al. |
5974486 | October 26, 1999 | Siddappa |
5982879 | November 9, 1999 | Lucey |
6009480 | December 28, 1999 | Pleso |
6012103 | January 4, 2000 | Sartore et al. |
6012115 | January 4, 2000 | Chambers et al. |
6038667 | March 14, 2000 | Helbig, Sr. |
6049870 | April 11, 2000 | Greaves |
6049885 | April 11, 2000 | Gibson et al. |
6067628 | May 23, 2000 | Krithivas et al. |
6085325 | July 4, 2000 | Jackson et al. |
6085328 | July 4, 2000 | Klein et al. |
6122676 | September 19, 2000 | Brief et al. |
6125420 | September 26, 2000 | Eidson |
6145045 | November 7, 2000 | Falik et al. |
6148354 | November 14, 2000 | Ban et al. |
6173355 | January 9, 2001 | Falik et al. |
6175883 | January 16, 2001 | Kvamme et al. |
6189060 | February 13, 2001 | Kodama |
6199122 | March 6, 2001 | Kobayashi |
6212165 | April 3, 2001 | Mann et al. |
6226291 | May 1, 2001 | Chauvel et al. |
6233640 | May 15, 2001 | Luke et al. |
6249825 | June 19, 2001 | Sartore et al. |
6272644 | August 7, 2001 | Urade et al. |
6275499 | August 14, 2001 | Wynn et al. |
6279060 | August 21, 2001 | Luke et al. |
6292863 | September 18, 2001 | Terasaki et al. |
6311294 | October 30, 2001 | Larky et al. |
6366980 | April 2, 2002 | Haines et al. |
6389495 | May 14, 2002 | Larky et al. |
6415343 | July 2, 2002 | Fensore et al. |
6493770 | December 10, 2002 | Sartore et al. |
6505267 | January 7, 2003 | Luke et al. |
6513128 | January 28, 2003 | Wang et al. |
6529988 | March 4, 2003 | Yoshikawa et al. |
6532525 | March 11, 2003 | Aleksic et al. |
6564349 | May 13, 2003 | Mitten et al. |
6601118 | July 29, 2003 | Rooney |
6615306 | September 2, 2003 | Ajanovic |
6618788 | September 9, 2003 | Jacobs |
6622195 | September 16, 2003 | Osakada et al. |
6622251 | September 16, 2003 | Lindskog et al. |
6625687 | September 23, 2003 | Halbert et al. |
6633537 | October 14, 2003 | Shimizu |
6633933 | October 14, 2003 | Smith et al. |
6633944 | October 14, 2003 | Holm et al. |
6678761 | January 13, 2004 | Garney et al. |
6684272 | January 27, 2004 | Leete et al. |
6697906 | February 24, 2004 | Ayukawa et al. |
6718412 | April 6, 2004 | Purcell et al. |
6760852 | July 6, 2004 | Gulick |
6816929 | November 9, 2004 | Ueda |
6816976 | November 9, 2004 | Wright et al. |
6934793 | August 23, 2005 | Ying et al. |
6970419 | November 29, 2005 | Kalkunte et al. |
7007112 | February 28, 2006 | Ishida et al. |
7010638 | March 7, 2006 | Deng et al. |
7054980 | May 30, 2006 | Wurzburg |
7062618 | June 13, 2006 | Tsunoda et al. |
7073008 | July 4, 2006 | Wu et al. |
7073010 | July 4, 2006 | Chen et al. |
7080189 | July 18, 2006 | Luttmann |
7110006 | September 19, 2006 | MacInnis et al. |
7127546 | October 24, 2006 | Ying et al. |
7143227 | November 28, 2006 | Maine |
7162565 | January 9, 2007 | Kolokowsky et al. |
7162566 | January 9, 2007 | Lin |
7187946 | March 6, 2007 | Palan |
7213096 | May 1, 2007 | Keys et al |
7231485 | June 12, 2007 | Harris et al. |
7231653 | June 12, 2007 | Jutz |
7394471 | July 1, 2008 | Chan et al. |
7478191 | January 13, 2009 | Wurzburg et al. |
7484031 | January 27, 2009 | Tjia |
7644147 | January 5, 2010 | Wohlgemuth et al. |
20020040444 | April 4, 2002 | Ohie et al. |
20020156949 | October 24, 2002 | Kubo et al. |
20030172223 | September 11, 2003 | Ying et al. |
20030185249 | October 2, 2003 | Davies et al. |
20030202510 | October 30, 2003 | Witkowski et al. |
20030212841 | November 13, 2003 | Lin |
20040030766 | February 12, 2004 | Witkowski |
20040181811 | September 16, 2004 | Rakib |
20050033880 | February 10, 2005 | Lin |
20050060490 | March 17, 2005 | Lu |
20050157711 | July 21, 2005 | O'Dell et al. |
20060036558 | February 16, 2006 | Matthews |
20060056401 | March 16, 2006 | Bohm et al. |
20060059289 | March 16, 2006 | Ng et al. |
20060059293 | March 16, 2006 | Wurzburg et al. |
20060253639 | November 9, 2006 | Lee et al. |
20070079045 | April 5, 2007 | Luke |
20070170268 | July 26, 2007 | Lee |
20070186016 | August 9, 2007 | Mennekens et al. |
20070245057 | October 18, 2007 | Bohm et al. |
20070245058 | October 18, 2007 | Wurzburg et al. |
20070245059 | October 18, 2007 | Tjia |
20080307145 | December 11, 2008 | Goren et al. |
20090013103 | January 8, 2009 | Chang et al. |
20090055569 | February 26, 2009 | Maheshwari et al. |
0890905 | January 1999 | EP |
0987876 | March 2000 | EP |
1111498 | June 2001 | EP |
2352540 | January 2001 | GB |
404200119 | July 1992 | JP |
410097303 | April 1998 | JP |
410097309 | April 1998 | JP |
- Axelson, Jan; “USB Complete”; Independent Publishers Group; Third Edition; 2005; various pages.
- Axelson, Jan; “USB Complete”; Independent Publishers Group; Third Edition; 2005; pp. i-xiv.
- Philips Semiconductors; “PDIUSBBD11 USB device with serial interface”; Philips Semiconductors; Jul. 22, 1999; all pages.
- Compaq Computer Corporation et al., Universal Serial Bus Specification—Rev 2.0, Apr. 27, 2000, pp. ii, 18-19, 33-34, 120, 145, 196-207, 227-228.
- Cypress Semiconductor Corporation, MoBL-USBTM FX2LP18 USB Microcontroller, 2007.
- “USB 2.0 mux interfaces USB, non-USB devices”, EE Times Asia, May 15, 2007, found on the Internet at http:/www.eetasia.com/ART—8800464295—590626—NP—870689ba.HTM?1000013030&8800464295&click—from=1000013030,8619953561,20 07-05-15.EEOL.EENEWS.
- Intersil Americas Inc., ISL54200 Data Sheet FN6408.0, Jan. 24, 2007.
- Cypress Semiconductor Corporation, “West Bridge: Antioch USB/Mass Storage Peripheral Controller,” Revised Mar. 2007, Revision C, CYWB0124AB, pp. 1-20; 20 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 11/240,908, dated Sep. 14, 2009; 4 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 11/240,908, dated Jun. 11, 2009; 4 pages.
- USPTO Final Rejection for U.S. Appl. No. 11/240,908, dated 11/14/2008; 11 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 11/240,908, dated Apr. 8, 2008; 11 pages.
- USPTO Final Rejection for U.S. Appl. No. 11/240,908, dated Nov. 14, 2007; 10 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 11/240,908, dated Mar. 28, 2007; 6 pages.
- International Search Report for International Application No. PCT/US06/33412 mailed Sep. 14, 2007; 1 page.
- Written Opinion of the International Searching Authority for International Application No. PCT/US06/33412 mailed Sep. 14, 2007; 4 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 10/160,442, dated Mar. 2, 2006; 7 pages.
- USPTO Final Rejection for U.S. Appl. No. 10/160,442, dated Dec. 23, 2005; 10 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 10/160,442, dated Oct. 17, 2005; 8 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 10/160,442, dated Jul. 22, 2005; 7 pages.
- USPTO Advisory Action for U.S. Appl. No. 10/160,442, dated Apr. 22, 2005; 3 pages.
- USPTO Final Rejection for U.S. Appl. No. 10/160,442, dated Feb. 9, 2005; 8 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 10/160,442, dated Aug. 25, 2004; 7 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 10/796,872, dated Sep. 6, 2006; 6 pages.
- “Universal Serial Bus Mass Storage Class Specification Overview Revision 1.2,” USB Implementers Forum, Jun. 23, 2003, pp. 1-7; 7 pages.
- “Universal Serial Bus Mass Storage Class Bulk-Only Transport Revision 1.0,” USB Implementers Forum, Sep. 31, 1999, pp. 1-22; 22 pages.
- “Universal Serial Bus Mass Storage Class Control/Bulk/Interrupt Revision 1.0,” USB Implementers Forum, Dec. 14, 1998, pp. 1-26; 26 pages.
- “CY4611—FX2 USB to ATA/CF Reference Design Notes,” Cypress Semiconductor Corporation, Nov. 2000-Jul. 2002, pp. 1-7; 7 pages.
- “EZ-USB FX2 USB Microcontroller High-Speed USB Peripheral Controller,” CY7C68013, Cypress Semiconductor Corporation, Jun. 21, 2002, pp. 1-50; 50 pages.
- PC Guide.com, “Advanced Technology Attachment ATA-2,” Jan. 2003, pp. 1-14; 14 pages.
- Webopedia.com, “ATA Short for Advanced Technology Attachment,” [Viewed Jan. 2003, Retrieved Mar. 25, 2010]; 1 page.
- Tom Pratt, “Serial ATA Interface on Client Systems,” Dell Computer Corporation, Jun. 2003, pp. 1-4; 4 pages.
- “CY7C68300A Revision *B,” Cypress Semiconductor Corporation, pp. 4 and 11; 2 pages.
- “EZ-USB FX2 Technical Reference Manual Version 2.1,” Cypress Semiconductor Corporation, Copyright 2000 and 2001, pp. 1-130; 130 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/990,739, dated Mar. 26, 2007; 2 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/990,739, dated Feb. 7, 2007; 4 pages.
- USPTO Final Rejection for U.S. Appl. No. 09/990,739, dated Dec. 6, 2006; 12 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 09/990,739, dated Jul. 24, 2006; 17 pages.
- USPTO Miscellaneous Action for U.S. Appl. No. 09/990,739, dated Jun. 7, 2005; 4 pages.
- USPTO Advisory Action for U.S. Appl. No. 09/990,739, dated Feb. 2, 2005; 3 pages.
- USPTO Final Rejection for U.S. Appl. No. 09/990,739, dated Oct. 28, 2004; 9 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 09/990,739, dated Apr. 7, 2004; 9 pages.
- NEC, “NEC USB2.0-ATA/ATAPI Bridge,” NEC Press Release, Oct. 5, 2000, Retrieved from <http://www.nec.co.jp/press/en/0010/0501.html> on Mar. 25, 2010; 2 pages.
- Inoue et al., “NAND Flash Applications Design Guide,” Revision 1.0, Toshiba America Electronic Components Inc., Apr. 2003, pp. 1-29; 15 pages.
- Whatis.com, Definition of “state machine,” [Updated May 18, 2004, Retrieved Mar. 25, 2010]; 1 page.
- Craig Peacock, “USB in a Nutshell,” <http://www.beyondlogic.org/usbnutshell/usb-in-a-nutshell.pdf>, Third Release, Nov. 2002, pp. 1-30; 30 pages.
- “Designing a Robust USB Serial Interface Engine (SIE),” <http://www.usb.org/developers/whitepapers/siewp.pdf>, [Oct. 2003, Retrieved from the Internet on Mar. 25, 2010], pp. 1-9; 9 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/176,047, dated Jun. 26, 2001; 4 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 09/176,047, dated Feb. 28, 2001; 7 pages.
- U.S. Appl. No. 12/228,787: “Bridge Device with Page-Access Based Processor Interface,” Maheshwari et al., filed on Aug. 14, 2008; 54 pages.
- International Written Opinion of International Searching Authority, dated Nov. 19, 2008 for International Application No. PCT/US08/09798; 5 pages.
- International Search Report of International Searching Authority, dated Nov. 19, 2008 for International Application No. PCT/US08/09798; 4 pages.
- Intel USB Mobile System Design Guidelines, Revision 1.0, Nov. 6, 1996, pp. 1-19; 22 pages.
- Intel USB Voltage Drop and Droop Measurement, Nov. 18, 1996, pp. 1-19; 19 pages.
- Universal Serial Bus Specification, Revision 1.0, Jan. 15, 1996, pp. 1-268; 268 pages.
- Kosar A. Jaff, “Universal Serial Bus and the Multimedia PC,” 1996, Intel Corporation, pp. 1-9; 9 pages.
- Micron Technology Inc., NAND Flash Memory Data Sheet MT29F4G08AAA, MT29F8G08BAA, MT29F8GO8DAA, MT29F16G08FAA, 2006, pp. 3-81; 40 pages.
- Cypress Semiconductor Corporation, West Bridge Astoria Data Sheet CYWB0224ABS/CYWB0224ABM (Advanced Information), Revision A, Dec. 7, 2007, pp. 1-6; 6 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 11/906,033, dated Oct. 29, 2009; 8 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 11/904,758, dated Mar. 17, 2010; 9 pages.
- USPTO Advisory Action for U.S. Appl. No. 11/904,758, dated Jan. 7, 2010; 3 pages.
- USPTO Final Rejection for U.S. Appl. No. 11/904,758, dated Oct. 29, 2009; 8 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 11/904,758, dated Apr. 1, 2009; 6 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/821,006, dated Aug. 19, 2004; 8 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 09/821,006, dated Mar. 10, 2004; 11 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/232,578, dated Aug. 24, 2001; 3 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 09/232,578, dated Mar. 13, 2001; 7 pages.
- Universal Serial Bus Specification, Revision 1.1, Sep. 23, 1998, pp. 1-311; 327 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 08/886,923, dated Aug. 30, 1999; 9 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 08/886,923, dated Feb. 16, 1999; 6 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/476,923, dated Feb. 5, 2001; 3 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 09/476,923, dated Aug. 29, 2000; 11 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/878,488, dated Jul. 26, 2002; 4 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 09/878,488, dated Feb. 8, 2002; 7 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/812,475, dated Aug. 13, 2002; 7 pages.
- USPTO Final Rejection for U.S. Appl. No. 09/812,475, dated May 8, 2002; 7 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 09/812,475 , dated Oct. 10, 2001; 4 pages.
- Lucent Technologies, “USS-720 INSTANT USB USB-to—IEEE 1284 Bridge,” Advanced Data Sheet, Rev. 5, Nov. 1997, pp. 1-27; 28 pages.
- “Lucent Technology Delivers INSTANT USB for Peripherals,” Press Release, Jan. 1997; 3 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/273,310, dated Dec. 18, 2000; 3 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 11/906,033, dated May 28, 2010; 8 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/671,554, dated Apr. 16, 2003; 7 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 09/205,558, dated Mar. 23, 2001; 3 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 09/205,558, dated Oct. 18, 2000; 6 pages.
- “Universal Serial Bus Mass Storage Class Specification Overview,” Revision 1.1, Jun. 28, 2000; pp. 1-7; 7 pages.
- Fairchild Semiconductor Corporation, Fairchild P/N “74AC00-Quad 2-Input NAND Gate,” Nov. 1999, pp. 1-2; 2 pages.
- Fairchild Semiconductor Corporation, Fairchild P/N “74AC04-Hex Inverter,” Nov. 1999, pp. 1-2; 2 pages.
- USPTO Non-Final Rejection for U.S. Appl. No. 12/228,787, dated Jul. 23, 2010; 31 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 11/904,758, dated Sep. 8, 2010; 4 pages.
- USPTO Final Rejection for U.S. Appl. No. 11/906,033, dated Dec. 22, 2010; 7 pages.
- USPTO Notice of Allowance for U.S. Appl. No. 12/228,787, dated Feb. 18, 2011; 5 pages.
- USPTO Advisory Action for U.S. Appl. No. 11/906,033, dated Mar. 7, 2011; 1 page.
- USPTO Notice of Allowance for U.S. Appl. No. 12/228,787, dated May 26, 2011; 8 pages.
Type: Grant
Filed: Sep 21, 2007
Date of Patent: Jan 3, 2012
Assignee: Cypress Semiconductor Corporation (San Jose, CA)
Inventors: Hamid Khodabandehlou (Milpitas, CA), Syed Babar Raza (San Jose, CA), Anup Nayak (Fremont, CA)
Primary Examiner: Ryan Stiglic
Application Number: 11/903,271
International Classification: G06F 13/20 (20060101); G06F 13/36 (20060101); G06F 13/38 (20060101);