throbber
Claims of 6,425,035
`
`1. A storage router for providing
`virtual local storage on remote
`storage devices to devices, comprising:
`
`U'l
`
`U.S. Patent No. 6,073,209 entitled
`"Data storage controller providing
`multiple hosts with access to multiple
`storage subsystems"
`The Data storage controller (controller)
`is a storage router that networks with
`storage arrays:
`"A computer network comprises a number
`of storage controllers, each coupled to one
`of a plurality of storage arrays, each storage
`array including at least one mass storage
`device." [Abstract]
`
`The controller provides remote access:
`"Multiple copies of data are maintained in
`storage arrays that are geographically
`remote to each other, such that any copy can
`be accessed by any host." [Abstract]
`
`"Hence, there is a need for the capability to
`store multiple back-up copies of data in
`geographically separate locations, while still
`permitting quick and easy access by a host
`computer to anyback-up copy." [1:34-37]
`
`"With respect to a given (local) storage
`controller, any or all of the other (remote)
`storage controllers, host computer systems,
`and storage arrays may therefore be located
`at distant locations to the local storage
`controller." [ 4:3-6]
`
`The controller provides virtual local
`storage:
`"Each storage controllers includes an
`interface with a host that emulates a mass
`storage device and an interface with a local
`storage array that emulates a host. The
`interfaces to the host and local storage
`arrays are independent of the type ofhost or
`devices in the local storage array. Two or
`more hosts may be dissimilar to each other,
`and two or more storage arrays may include
`dissimilar mass storage devices. Hosts
`
`(cid:20)(cid:3)(cid:82)(cid:73)(cid:3)(cid:28)
`
` CROSSROADS EXHIBIT 2015
`Oracle Corp. et al v Crossroads Systems, Inc.
` IPR2014-01209
`
`

`

`a frrst controller operable to connect to
`and interface with a frrst transport
`medium;
`
`a second controller operable to
`connect to and interface with a second
`transport medium; and
`
`The controller includes a first (Fibre
`Channel) controller operable to connect
`to and interface with a first (Fibre
`Channel) transport medium:
`''Note that in other embodiments, however,
`the data communication paths 7 and 8 may
`conform to other protocols and standards,
`such as serial SCSI, Fiber Channel, or
`ESCON." [ 4:25-38]
`
`"Again, in other embodiments, the data
`communication paths 7 and 8 may conform
`to other protocols and standards, such as
`serial SCSI, Fiber Channel, or ESCON."
`[6:6-9]
`
`"The controller device interface 16
`connects communication path 9 to the bus
`1 7 in order to connect a remote storage
`controller to storage controller 3. Controller
`device interface 16 may be an Ethernet,
`ATM, T1, T3, or FDDI adapter, or any
`other suitable device, depending upon the
`nature of the communication link 9." [6:56-
`61]
`The controller includes a second (SCSI)
`controller operable to connect to and
`interface with a second (SCSI) transport
`medium:
`"In one embodiment, each storage
`controller communicates with its local host
`computer system and its local storage array
`using standard SCSI (Small Computer
`Systems Interface) protocols." [4:18-21]
`
`"Again, in other embodiments, the data
`communication paths 7 and 8 may conform
`to other protocols and standards, such as
`serial SCSI, Fiber Channel, or ESCON."
`[6:6-9]
`
`"In one embodiment, host device interface
`14 and storage device interface 15 each
`comprise a SCSI adapter, such that
`communication between storage controller 3
`and the local host computer and storage
`
`3
`
`(cid:21)(cid:3)(cid:82)(cid:73)(cid:3)(cid:28)
`
`

`

`a buffer providing memory work space
`for the storage router;
`
`access stored data using virtual addressing."
`[Abstract]
`
`"The storage controller emulates a local
`storage array for the host computer system
`which it services and emulates a host
`computer system for the local storage array
`which it accesses. Host computer systems
`access stored data using virtual device
`addresses, which are mapped to real device
`addresses by the storage controller." [3: 14-
`19]
`
`The controller provides storage to
`multiple hosts (Fibre Channel devices):
`"It is further desirable that such a storage
`controller allow multiple host computers at
`different locations to access any copy of
`stored data." [39-42]
`
`"In another embodiment, a storage
`controller may have a direct interface with
`more than one host or may have redundant
`interfaces with the same host." [ 5: 16-18]
`The controller includes a buffer
`providing memory work space for the
`storage router:
`"The storage controller 3 includes a central
`processing unit (CPU) 10, random-access
`mem01y (RAM) 11, a non-volatile storage
`facility (NVSF) 12, an MSD 13, each of
`which is coupled to a bus 17." [6:24-'27]
`
`"In one embodiment, the storage controller
`3 includes an operating system (OS) 20
`coupled to emulation drivers 21, physical
`drivers 22, communication drivers 23, and
`local memory 24. Memory 24 may include
`any combination of RAM 11, NVSF 12, or
`MSD 13 (see FIG. 3)." [7:23-28]
`
`"The OS 20 controls the overall operation
`of the storage controller, including
`emulation, data flow, caching of data in the
`local memory 24, control of data mirroring,
`and error recovery." [7:29-32]
`
`2
`
`(cid:22)(cid:3)(cid:82)(cid:73)(cid:3)(cid:28)
`
`

`

`a supervisor unit coupled to the first
`controller, the second controller and the
`buffer,
`
`the supervisor unit operable to map
`between devices connected to the first
`transport medium and the storage
`devices,
`
`array is performed using SCSI protocols."
`[6:45-50]
`The controller includes a supervisor unit
`coupled to the first controller, the
`second controller and the buffer:
`"The storage controller 3 includes a central
`processing unit (CPU) 1 0, random-access
`memory (RAM) 11, a non-volatile storage
`facility (NVSF) 12, an MSD 13, each of
`which is coupled to a bus 17." [6:24-27]
`
`"In one embodiment, the present invention
`is carried out in the storage controller by the
`CPU 10 executing sequences of instructions
`that are contained in a memory." [7:5-7]
`The controller maps from virtual
`addresses to physical locations:
`"During a data access, the storage controller
`connected to the accessing host maps a
`virtual address provided by the host to a real
`physical location in any of the storage
`arrays, such that the actual location of the
`data is transparent to the host." [Abstract]
`
`"The storage controller emulates a local
`storage array for the host computer system
`which it services and emulates a host
`computer system for the local storage array
`which it accesses. Host computer systems
`access stored data using virtual device
`addresses, which are mapped to real device
`addresses by the storage controller." [3:14-
`19]
`
`"As will be explained below, data is
`accessed using virtual addressing, such that
`a host computer system has no knowledge
`of which physical storage device is being
`accessed." [ 4:46-49]
`
`"Each of the storage controllers also
`provides virtualized data access and
`emulation, as mentioned above. A local
`storage controller will emulate its local
`storage array from the viewpoint of its local
`host computer system; similarly, the local
`
`4
`
`(cid:23)(cid:3)(cid:82)(cid:73)(cid:3)(cid:28)
`
`

`

`storage controller will emulate its local host
`computer system from the viewpoint of its
`local storage array." [5:65-6:4]
`
`"A local host computer accesses data by
`transmitting a (virtual) host address to its
`local storage controller. The host address is
`then mapped to a real address representing
`a location on one or more physical MSDs,
`as will be described below in detail. The
`mapping is completely transparent to all of
`the host computers." [6:10-15]
`
`"The host device interface 14 connects
`communication path 7 to the bus 17 in order
`to connect a local host computer to the
`storage controller 3. The storage device
`interface 15 connects communication path 8
`to the bus 1 7 in order to connect a local
`storage array to storage controller 3."
`[6:40-44]
`
`"As mentioned above, a storage controller
`according to the present invention uses
`virtual-to-real device mapping to provide
`transparency of 110 operations to the host
`computers, as will now be described. A
`single host (virtual) address may map to a
`single physical address, or, to improve
`performance, the storage controller may
`map a single host address to multiple
`physical addresses, which may be
`distributed among multiple MSDs located in
`different storage arrays. The storage
`controller 3 maps a host address to one or
`more physical addresses using a two-part
`process that is transparent to all hosts.
`Specifically, a host address received from a
`host is first mapped to a logical address,
`and the logical address is then mapped to a
`physical (real) address in one or more
`MSDs." [8:62-9:8]
`
`"FIG. 7 illustrates the process of mapping a
`virtual address to a logical address." [9:8-9]
`
`5
`
`(cid:24)(cid:3)(cid:82)(cid:73)(cid:3)(cid:28)
`
`

`

`to implement access controls for
`storage space on the storage devices
`and
`
`See: further description of mapping in
`Figures 7 through 10,12, 14 ,and 15 and
`corresponding text.
`
`"A storage controller of the present
`invention further allows data blocks to be
`write protected, so that a block cannot be
`modified from any host computer. Write
`protection may be desirable for purposes
`such as virus protection or implementation
`of security firewalls. Write protection can
`be achieved by configuring the storage
`controller appropriately at set-up time or by
`inputting a write protect command to the
`storage controller from a host computer."
`[15:39-47]
`The controller implements access
`controls for storage space on the SCSI
`storage devices:
`"A storage controller of the present
`invention further allows data blocks to be
`write protected, so that a block cannot be
`modified from any host computer. Write
`protection may be desirable for purposes
`such as virus protection or implementation
`of security firewalls. Write protection can
`be achieved by configuring the storage
`controller appropriately at set-up time or by
`inputting a write protect command to the
`storage controller from a host computer."
`[15:39-47]
`
`"Each storage controller may be coupled to
`at least one host processing system and to at
`least one other storage controller to control
`access of the host processing systems to the
`mass storage devices." [Abstract J
`
`"The control circuitry is configured to
`enable the host processing system to access
`each ofthe storage arrays." [1:62-64]
`
`"Each of the storage controllers also
`provides virtualized data access and
`emulation, as mentioned above. A local
`
`6
`
`(cid:25)(cid:3)(cid:82)(cid:73)(cid:3)(cid:28)
`
`

`

`storage controller will emulate its local
`storage array from the viewpoint of its local
`host computer system; similarly, the local
`storage controller will emulate its local host
`computer system from the viewpoint of its
`local storage array." [5:65-6:4]
`
`"If the device is not busy, then in step 606 it
`is determined whether the device or
`particular blocks to be accessed are
`reserved. If so, the routine exits in step 615
`with a "reservation conflict" error being
`provided to the host." [8:47-51]
`
`"As mentioned above, a storage controller
`according to the present invention uses
`virtual-to-real device mapping to provide
`transparency of 110 operations to the host
`computers, as will now be described. A
`single host (virtual) address may map to a
`single physical address, or, to improve
`performance, the storage controller may
`map a single host address to multiple
`physical addresses, which may be
`distributed among multiple MSDs located in
`different storage arrays." [8:62-9:3]
`The controller processes data in the
`buffer to interface between the
`controllers:
`"In particular, the emulation drivers 21
`receive read and write requests from the
`host computer 2 and convert the read and
`write requests into a format recognized by
`the OS 20. The emulation drivers 21 further
`function to transfer any data received from
`the local storage array or a remote storage
`array to the local host computer." [7:35-40]
`The controller uses native low level,
`block protocols because it handles read
`and write requests from host computers:
`"In particular, the emulation drivers 21
`receive read and write requests from the
`host computer 2 and convert the read and
`write requests into a format recognized by
`the OS 20. The emulation drivers 21 further
`function to transfer any data received from
`
`7
`
`(cid:26)(cid:3)(cid:82)(cid:73)(cid:3)(cid:28)
`
`to process data in the buffer to
`interface between the first controller
`and the second controller to allow
`access from devices connected to the
`first transport medium to the storage
`devices
`
`using native low level, block
`protocols.
`
`

`

`2. The storage router of claim 1,
`wherein the supervisor unit maintains
`an allocation of subsets of storage space
`to associated devices connected to the
`first transport medium, wherein each
`subset is only accessible by the
`associated device connected to the first
`transport medium.
`
`the local storage array or a remote storage
`array to the local host computer." [7:35-40]
`
`"In response to each I/0 request (read or
`write) from a host, the storage controller
`performs a series of standard checks before
`carrying out the operation." [8:24-26]
`The controller provides access control
`so that each subset is only accessible by
`the associated host (Fibre Channel)
`device:
`"As mentioned above, a storage controller
`according to the present invention uses
`virtual-to-real device mapping to provide
`transparency of I/0 operations to the host
`computers, as will now be described. A
`single host (virtual) address may map to a
`single physical address, or, to improve
`performance, the storage controller may
`map a single host address to multiple
`physical addresses, which may be
`distributed among multiple MSDs located in
`different storage arrays." [8:62-9:3]
`
`The controller maintains a configuration
`for mapping:
`"The control circuitry is configured to
`enable the host processing system to access
`each ofthe storage arrays." [1:62-64]
`
`"For example, these parameters can be
`programmed into a storage controller by
`connecting a keyboard and a display to
`ports on the storage controller.
`Alternatively, the storage controller can be
`configured by using one of the host
`computers to transmit configuration
`commands and data to the storage
`controller. Further, a remote storage
`controller can be configured via a local
`storage controller." [ 5 :38-45]
`
`The storage controller maintains and uses a
`tree structure such as that illustrated in FIG.
`8 to map the host interface ID and block
`number to a logical device. r9:21-23]
`
`8
`(cid:27)(cid:3)(cid:82)(cid:73)(cid:3)(cid:28)
`
`

`

`The controller could use host computers
`(workstations):
`"It is further desirable that such a storage
`controller allow multiple host computers at
`different locations to access any copy of
`stored data." [39-42]
`The controller could use hard disk
`drives:
`"It is common to store large volumes of
`data on non-volatile mass storage devices,
`such as magnetic or optical disks." [1:23-
`25]
`
`"The controller device interface 16
`connects communication path 9 to the bus
`1 7 in order to connect a remote storage
`controller to storage controller 3. Controller
`device interface 16 may be an Ethernet,
`ATM, Tl, T3, or FDDI adapter, or any
`other suitable device, depending upon the
`nature of the communication link 9." [6:56-
`61]
`
`"In one embodiment, host device interface
`14 and storage device interface 15 each
`comprise a SCSI adapter, such that
`communication between storage controller 3
`and the local host computer and storage
`array is performed using SCSI protocols."
`[6:45-50]
`
`3. The storage router of claim 2,
`wherein the devices connected to the
`first transport medium comprise
`workstations.
`
`4. The storage router of claim 2,
`wherein the storage devices comprise
`hard disk drives.
`
`5. The storage router of claim 1,
`wherein the first controller comprises:
`a first protocol unit operable to
`connect to the first transport medium;
`
`a frrst-in-frrst-out queue coupled to
`the first protocol unit; and
`a direct memory access (DMA}
`interface coupled to the first-in-first-
`out queue and to the buffer.
`6. The storage router of claim 1,
`wherein the second controller
`comprises:
`a second protocol unit operable to
`connect to the second transport
`medium;
`
`an internal buffer coupled to the
`second protocol unit; and
`a direct memory access (DMA)
`interface coupled to the internal buffer
`and to the buffer of the storage router.
`
`9
`
`(cid:28)(cid:3)(cid:82)(cid:73)(cid:3)(cid:28)
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket