IOC to IOC distributed caching architecture
First Claim
1. An apparatus comprising:
- a network comprising;
a first input-output (IO) device comprising a first IO storage device, a second IO device comprising a second IO storage device, and a third IO device comprising a third IO storage device,a first host and a second host, anda plurality of bridges-switches comprising a first bridge-switch, a second bridge-switch, and a third bridge-switch, wherein the first bridge-switch comprises a first cache memory, a first processor, a first memory direct memory access (DMA) control, and a first IO DMA controller,wherein the first cache memory comprises a first solid state memory module and a first volatile memory module,wherein the second bridge-switch comprises a second cache memory, a second processor, a second memory DMA control, and a second IO DMA controller,wherein the second cache memory comprises a second solid state memory module and a second volatile memory module,wherein the third bridge-switch comprises a third cache memory, a third processor, a third memory DMA control, and a third IO DMA controller,wherein the third cache memory comprises a third solid state memory module and a third volatile memory module,wherein the first host and the first IO storage device are both directly connected to the first bridge-switch,wherein the second host and the second IO storage device are both directly connected to the second bridge-switch,wherein the third IO storage device is directly connected to the third bridge-switch,wherein the first bridge-switch is directly connected to the second bridge-switch and is directly connected to the third bridge-switch,wherein the second bridge-switch is directly connected to the first bridge-switch and is directly connected to the third bridge-switch,wherein the first host reads IO data from the third IO storage device via the third bridge-switch and the first bridge-switch, and/or wherein the first host writes IO data to the third IO storage device via the first bridge-switch and the third bridge-switch,wherein the IO data is cached in the first cache memory and the third cache memory after the IO data is read from the third IO storage device or before the IO data is written to the third IO storage device,wherein the second host reads the IO data, via the second bridge-switch, from the first cache memory or the third cache memory,wherein the IO data is cached in the second cache memory after the IO data is read from the first cache memory or third cache memory by the second host so that the first host and the second host can read the IO data from the second cache memory,wherein the network permits caching of the IO data that is distributed from the third IO storage device to at least three of the bridges-switches within the network so that the caching of the IO data in cache memories in the network results in high-performance and high-bandwidth cache operations that enhance data throughput, transfer rates, and cache hits.
2 Assignments
0 Petitions
Accused Products
Abstract
In an embodiment of the invention, a method which speeds up the transfer of data and increases the data throughput in an IO network comprised of Host Bus Adapters (HBAs)/IO bridges-switches, IO devices, and hosts is described. In the embodiment of the present invention, HBAs and IO bridges-switches utilize a multi-level cache composed of volatile memories (such as SRAM, SDRAM, etc.) and solid-state memories (such as flash, MRAM, etc.). These memories are used to cache the most recently accessed IO data by an active host or by another HBA/IO bridge-switch. Cache content can be from the local IO devices (the ones connected directly to the HBA/IO bridge-switch), from remote IO devices (the ones connected to different HBA/IO bridges/switches), or from both (a portion from local IO devices and another portion from remote IO devices). The combination of these caches from different HBAs/IO bridges-switches creates the cache for all IO devices in the entire network. Multiple copies of the same IO cache are possible depending on the transactions with the hosts.
286 Citations
20 Claims
-
1. An apparatus comprising:
-
a network comprising; a first input-output (IO) device comprising a first IO storage device, a second IO device comprising a second IO storage device, and a third IO device comprising a third IO storage device, a first host and a second host, and a plurality of bridges-switches comprising a first bridge-switch, a second bridge-switch, and a third bridge-switch, wherein the first bridge-switch comprises a first cache memory, a first processor, a first memory direct memory access (DMA) control, and a first IO DMA controller, wherein the first cache memory comprises a first solid state memory module and a first volatile memory module, wherein the second bridge-switch comprises a second cache memory, a second processor, a second memory DMA control, and a second IO DMA controller, wherein the second cache memory comprises a second solid state memory module and a second volatile memory module, wherein the third bridge-switch comprises a third cache memory, a third processor, a third memory DMA control, and a third IO DMA controller, wherein the third cache memory comprises a third solid state memory module and a third volatile memory module, wherein the first host and the first IO storage device are both directly connected to the first bridge-switch, wherein the second host and the second IO storage device are both directly connected to the second bridge-switch, wherein the third IO storage device is directly connected to the third bridge-switch, wherein the first bridge-switch is directly connected to the second bridge-switch and is directly connected to the third bridge-switch, wherein the second bridge-switch is directly connected to the first bridge-switch and is directly connected to the third bridge-switch, wherein the first host reads IO data from the third IO storage device via the third bridge-switch and the first bridge-switch, and/or wherein the first host writes IO data to the third IO storage device via the first bridge-switch and the third bridge-switch, wherein the IO data is cached in the first cache memory and the third cache memory after the IO data is read from the third IO storage device or before the IO data is written to the third IO storage device, wherein the second host reads the IO data, via the second bridge-switch, from the first cache memory or the third cache memory, wherein the IO data is cached in the second cache memory after the IO data is read from the first cache memory or third cache memory by the second host so that the first host and the second host can read the IO data from the second cache memory, wherein the network permits caching of the IO data that is distributed from the third IO storage device to at least three of the bridges-switches within the network so that the caching of the IO data in cache memories in the network results in high-performance and high-bandwidth cache operations that enhance data throughput, transfer rates, and cache hits. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
caching data that will be distributed within a network comprising;
a first input-output (IO) device comprising a first IO storage device, a second IO device comprising a second IO storage device, and a third IO device comprising a third IO storage device, a first host and a second host, and a plurality of bridges-switches comprising a first bridge-switch, a second bridge-switch, and a third bridge-switch, wherein the first bridge-switch comprises a first cache memory, a first processor, a first memory direct memory access (DMA) control, and a first IO DMA controller,wherein the first cache memory comprises a first solid state memory module and a first volatile memory module, wherein the second bridge-switch comprises a second cache memory, a second processor, a second memory DMA control, and a second IO DMA controller, wherein the second cache memory comprises a second solid state memory module and a second volatile memory module, wherein the third bridge-switch comprises a third cache memory, a third processor, a third memory DMA control, and a third IO DMA controller, wherein the third cache memory comprises a third solid state memory module and a third volatile memory module, wherein the first host and the first IO storage device are both directly connected to the first bridge-switch, wherein the second host and the second IO storage device are both directly connected to the second bridge-switch, wherein the third IO storage device is directly connected to the third bridge-switch, wherein the first bridge-switch is directly connected to the second bridge-switch and is directly connected to the third bridge-switch, wherein the second bridge-switch is directly connected to the first bridge-switch and is directly connected to the third bridge-switch, the method further comprising; reading, by the first host, IO data from the third IO storage device via the third bridge-switch and the first bridge-switch, and/or writing, by the first host, IO data to the third IO storage device via the first bridge-switch and the third bridge-switch, caching the IO data in the first cache memory and the third cache memory after the IO data is read from the third IO storage device or before the IO data is written to the third IO storage device, reading, by the second host, the IO data, via the second bridge-switch, from the first cache memory or the third cache memory, caching the IO data in the second cache memory after the IO data is read from the first cache memory or third cache memory by the second host so that the first host and the second host can read the IO data from the second cache memory, wherein the network permits caching of the IO data that is distributed from the third IO storage device to at least three of the bridges-switches within the network so that the caching of the IO data in cache memories in the network results in high-performance and high-bandwidth cache operations that enhance data throughput, transfer rates, and cache hits. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. An article of manufacture, comprising:
-
a non-transitory computer-readable medium having stored thereon instructions operable to permit an apparatus to; cache data that is distributed within a network comprising;
a first input-output (IO) device comprising a first IO storage device, a second IO device comprising a second IO storage device, and a third IO device comprising a third IO storage device, a first host and a second host, and a plurality of bridges-switches comprising a first bridge-switch, a second bridge-switch, and a third bridge-switch, wherein the first bridge-switch comprises a first cache memory, a first processor, a first memory direct memory access (DMA) control, and a first IO DMA controller,wherein the first cache memory comprises a first solid state memory module and a first volatile memory module, wherein the second bridge-switch comprises a second cache memory, a second processor, a second memory DMA control, and a second IO DMA controller, wherein the second cache memory comprises a second solid state memory module and a second volatile memory module, wherein the third bridge-switch comprises a third cache memory, a third processor, a third memory DMA control, and a third IO DMA controller, wherein the third cache memory comprises a third solid state memory module and a third volatile memory module, wherein the first host and the first IO storage device are both directly connected to the first bridge-switch, wherein the second host and the second IO storage device are both directly connected to the second bridge-switch, wherein the third IO storage device is directly connected to the third bridge-switch, wherein the first bridge-switch is directly connected to the second bridge-switch and is directly connected to the third bridge-switch, wherein the second bridge-switch is directly connected to the first bridge-switch and is directly connected to the third bridge-switch, read, by the first host, IO data from the third IO storage device via the third bridge-switch and the first bridge-switch, and/or writing, by the first host, IO data to the third IO storage device via the first bridge-switch and the third bridge-switch, cache the IO data in the first cache memory and the third cache memory after the IO data is read from the third IO storage device or before the IO data is written to the third IO storage device, read, by the second host, the IO data, via the second bridge-switch, from the first cache memory or the third cache memory, cache the IO data in the second cache memory after the IO data is read from the first cache memory or third cache memory by the second host so that the first host and the second host can read the IO data from the second cache memory, wherein the network permits caching of the IO data that is distributed from the third IO storage device to at least three of the bridges-switches within the network so that the caching of the IO data in cache memories in the network results in high-performance and high-bandwidth cache operations that enhance data throughput, transfer rates, and cache hits.
-
Specification