From Casetext: Smarter Legal Research

Storage Computer Corp. v. Veritas Software Corp.

United States District Court, N.D. Texas, Dallas Division
Jan 27, 2003
Civil Action No. 3:01-CV-2078-N (N.D. Tex. Jan. 27, 2003)

Opinion

Civil Action No. 3:01-CV-2078-N

January 27, 2003


MEMORANDUM OPINION


Before the Court are the parties' briefs on claim construction, pursuant to Markman v. Westview Instruments, Inc., 52 F.3d 967 (Fed. Cir. 1995) (en banc), aff'd, 517 U.S. 360 (1996). The parties appear to be in agreement save for nine questions raised in Defendant Veritas Software Corporation's ("Veritas") brief. Accordingly, the Court will limit its discussion to those nine items.

I. BACKGROUND A. The `919 Patent

Plaintiff Storage Computer Corporation ("SCC") alleges Veritas infringes on two of its patents, United States Patents Nos. 5,893,919 (the "`919 Patent") and 6,098,128 (the "`128 Patent"). Both patents deal generally with data storage for computers and networks. The `919 Patent is entitled "Apparatus and Method for Storing Data with Selectable Data Protection Using Mirroring and Selectable Parity Inhibition." It deals with protecting data stored on disk drives against hardware failure and data loss. A common technology for protecting data is to store the data on multiple disks in a manner that protects against hardware failure. The best known approach to this is called RAID, originally standing for Redundant Array of Inexpensive Disks RAID level 1 is also known as disk mirroring. In disk mirroring, two disks (or groups of disks) are used together so that data written to one disk is also written, or "mirrored," to the second disk, thus failure of a single disk does not result in loss of data.

SCC's claims relating to United States Patent No. 5,257,367 have been dismissed.

See David Patterson, Garth Gibson Randy Katz, A Case for Redundant Array of Inexpensive Disks (RAID), Proceedings of the ACM SIGMOD International Conference on Management of Data (June 1988). The "I" now is typically used to stand for "Independent," perhaps driven by vendors whose RAID products were not so inexpensive.

RAID level 4 is also known as disk striping with parity. In RAID level 4, a group of disks, for example 5 disks, work together. Data is divided into chunks of, for example, 1024 bytes. For every four chunks of data that are written to each of the first four disks of the array, another "parity" chunk is written to the fifth drive. The parity chunk is determined from the other four chunks by a mathematical formula, such as exclusive-or. From the chunks of any four of the disks, it is possible to determine what the content of the fifth chunk was. Thus, failure of a single disk does not result in loss of data. See Veritas App. at 260-62. RAID Level 5 is similar to RAID level 4, except that there is no dedicated disk to store all the parity chunks. The parity chunks are interleaved with data and all the disks comprising the group are used to store data and parity chunks. See Veritas App. at 262.

A mass storage system, once configured, usually has a static configuration. So, for example, a disk array configured as RAID level 4 cannot be changed to level 1 on the fly while the computer system is operating; a change of that nature typically requires reconfiguring the disk array while the system is not operational, with the loss of all data on the array.

The `919 Patent combines aspects of RAID level 1 and a parity protection scheme, such as RAID level 4 or level 5, in a dynamic manner. "Normal" data is stored with parity, as in RAID level 4 or level 5. Groups of sensitive data can be designated while the system is in operation. Such groups are then mirrored, as well as parity protected. The result of this belt and suspenders approach appears to be that data protected in such a manner can be recovered after two disk drive failures.

B. The `128 Patent

The `128 Patent deals with storage systems on computer networks. Computers of different types do not always play well together. Thus, if a storage system is based on the UNIX operating system, a client computer with the Windows operating system might have difficulty communicating with it. To abuse a language metaphor, if the various client computers on a network spoke English, French, and German, the storage system might have difficulty conversing with all of them in their native tongue. The `128 Patent involves an interface with the clients that translates each request for services from the storage system into Latin. Then the storage system need speak only Latin. The parties disagree on whether the `128 Patent provides a second shortcut path to the storage system for clients that know Latin.

II. CONSTRUCTION OF THE `919 PATENT A. Mirroring

Veritas raises four questions regarding construction of the `919 patent. Its first question deals with the mirroring aspect of claim 1. The pertinent language in the claim follows:

the memory management mechanism being responsive to the identification of a logical unit for mirroring all data blocks written into the designated logical unit by
writing a first copy of a data block assigned to a first storage address in a designated logical unit into the assigned storage address in the designated logical unit and
writing a second copy of the data block assigned to a storage address in a designated logical unit into a second storage address in the disk drives wherein
the second storage address is skewed with respect to the first storage address so that the second storage address is located in a disk drive separate from the disk drive containing the first storage address, and
writing at least one parity block containing parity information relating to the data block into the disk drives.

Veritas App. at 19 (col. 21, 1.6-24).

Veritas' first question is: Do the asserted claims require the memory management mechanism to write a second copy of the data block and a parity block to the disk drives whenever it writes a first copy of the data block to the logical unit designated to be mirrored? The main point of disagreement between the parties is whether Veritas is improperly importing a temporal restriction into claim 1 by requiring the writing to occur simultaneously. The Court agrees that the language of claim 1 does not require a simultaneous writing. However, the claim does not suggest that the three writing events are separate and could be remote in time from each other. The Court believes that a fair reading of the claims would require that the writing events occur reasonably contemporaneously, in the context of operating speeds of disk drives. The Court obviously does not express any opinion on whether, for example, any specific caching disk controller would fall within that construction.

In the course of their briefing on this question, it appears that the parties may have two subsidiary points of disagreement. SCC suggests that the claim does not require the memory management mechanism to generate the write addresses for the first and second data blocks. The language of the claim does not directly speak to address generation. It does, however, require that the memory management mechanism actually perform the two write operations. That would appear to permit another entity to determine the addresses and provide them to the memory management mechanism for it to perform the write operations to the specified addresses. The second subsidiary point of disagreement or confusion is whether the claim requires writing a second copy of the parity information as well as a second copy of the data; the claim requires only a single copy of the parity information.

B. Role of "Disk Platform"

Veritas' next question deals with the role of the "disk platform." The preamble of claim 1 states:

In a mass storage mechanism for a system having mass storage devices . . . wherein the system includes a host processor including memory and disk management facilities and a disk platform connected from the host processor and controlling a plurality of disk drive units comprising the mass storage devices.
Id. at 18 (col. 20, 1.47-53). The claim later recites "a memory management mechanism for controlling operations of the disk platform for writing data blocks and parity blocks into the disk drive." Id. at 19 (col. 21, 1.3-5). Those are the only references to the disk platform in claim 1. The disk platform is mentioned elsewhere in the specification, for example:

To accomplish its unique improvements over the prior art, the disk platform 28 includes its own computing capability as represented by the computer block 40. As will be seen shortly, the computer 40 may, in fact, comprise multiple processing units; but, for the present it is sufficient to note that the disk platform 28 is not the "dumb" controller 14 of the prior art.
Id. at 12 (col. 7, 1.48-54).

Initially, SCC argues that the disk platform is not an element of the invention, but is rather a "workpiece," a part of the environment in which the invention operates, but not an actual element of the invention, citing ROBERT C. FABER, LANDIS ON MECHANICS OF PATENT CLAIM DRAFTING § 16A (4th ed. 1996). The Court agrees that stylistically, "disk platform" is recited more in the manner of context, rather than a claimed element. Drafting style, however, is not dispositive of the question.

The determination of whether preamble recitations are structural limitations or mere statements of purpose or use "can be resolved only on review of the entirety of the patent to gain an understanding of what the inventors actually invented and intended to encompass by the claim." The inquiry involves examination of the entire patent record to determine what invention the patentee intended to define and protect. See . . . Gerber Garment Tech., Inc. [v. Lectra Sys, Inc.] 916 F.2d 683, 689 (Fed. Cir. 1990) (noting that preamble recitations provided antecedent basis for terms used in body of claim); Corning Glass Works, 868 F.2d at 1257 (considering the specification's statement of the problems with the prior art). . .
Rowe v. Dror, 112 F.3d 473, 478 (Fed. Cir. 1997) (some internal citations omitted). See also Karsten Mfg. Corp. v. Cleveland Golf Co., 242 F.3d 1376, 1379-80 (Fed. Cir. 2001) (term "correlated set" in preamble of patent for golf clubs held a limitation of scope in view of description of invention in specification and inclusion of term in all claims); British Telecommunications PLC v. Prodigy Communications Corp., 217 F. Supp.2d 399, 413-14 (S.D.N.Y. 2002) (term "central computer" in preamble and claims was structural limitation when patentee distinguished prior art by reliance on that element).

In this instance, the disk platform is discussed in the specification as a part of the invention. It likewise is included not only in the preamble, but also in the claim language. Furthermore, as the language quoted above from the specification indicates, the disk platform was cited by the patentee as addressing problems with the prior art. Accordingly, the Court holds that the disk platform is a limitation of the claim.

This raises the subsidiary question of what constitutes a disk platform. The parties agree that "disk platform" is not a term commonly used in the art, or expressly defined in the patent. It is, however, implicitly defined in pertinent part by the language quoted above. Vitronics Corp. v. Conceptronic, Inc., 90 F.3d 1576, 1582 (Fed. Cir. 1996) (in construing claim courts should look to "intrinsic" evidence of the claims themselves, the patent specification, and the patent's prosecution history). Although not a complete definition of "disk platform," the Court holds that the specification requires that a disk platform includes its own computing capability and is not the "dumb" controller of the prior art.

C. Means Plus Function

Veritas next argues that because two structural terms are not sufficiently defined, they should be considered as "means plus function" elements, under 35 U.S.C. § 112, ¶ 6. The two terms are "disk allocation mechanism" and "memory management mechanism." The claim text does not use "means" language, and therefore triggers a rebuttable presumption that § 112, ¶ 6 does not apply. CCS Fitness, Inc. v. Brunswick Corp., 288 F.3d 1359, 1369 (Fed. Cir. 2002). Veritas "can rebut this presumption if it demonstrates that the claim term fails to `recite sufficiently definite structure' or else recites a `function without reciting sufficient structure for performing that function.' To help determine whether a claim term recites sufficient structure, we examine whether it has an understood meaning in the art." Id. (citations omitted). The record before the Court indicates that "disk allocation" and "memory management" are relatively well known terms in the art. Accordingly, the court will not construe those as implicitly means plus function elements.

D. Meaning of "Logical Unit"

Lastly, Veritas argues that the term "logical unit" refers to a disk partition, rather than a disk volume. To recap pertinent vocabulary, as the Court understands it, a disk drive is the physical mass storage device itself. The operating system or storage system presents physical mass storage to the file system as a logical (i.e., not physical) entity consisting of a series of blocks of data storage that can be read from and written to. This separation of the logical from the physical, or abstraction, is useful because it permits different logical organizations of the physical disks in ways that are advantageous. Individual physical disks may be formatted or subdivided into one or more logical partitions. One or more partitions, spanning one or more physical disk drives, are aggregated by the operating system (or storage system) and presented to the file system or application software as a single, addressable series of data storage blocks, i.e., a volume or virtual disk.

The Court finds that this thumbnail description is generally accepted as a common mode of mass storage, using terms generally understood as indicated. (Although this is certainly not the only method or vocabulary of mass storage.) The Court is also of the impression that both parties agree that the term "logical unit" is not a term of general usage in the mass storage world. Nor is it expressly defined in the patent. The most explanatory discussion in the specification follows:

Finally, and as generally indicated in FIG. 7A, the storage space available in Disk Drives 16D a through 16D c is organized into one or more logical partitions, referred to as Logical Units (LUNs) 100, wherein the mass storage system, as described herein above, operates such that each Logical Unit (LUN) 100 operates as a logical storage device regardless of the number or physical configuration of the actual physical devices, that is, Disk Drives 16, comprising each Logical Unit (LUN) 100.

Veritas App. at 15 (col. 14, 1.4-12). The Court holds that this description of Logical Unit is synonymous with the term "volume" or "virtual disk" as described above. Veritas' suggested construction of logical unit as synonymous with partition is excluded by the quoted language above indicating that a logical unit can consist of more than one disk drive.

Veritas also argues that a logical unit must be designated for mirroring before any data is written to it. The Court finds no support for that limitation in the claims and declines to impose it.

III. THE `128 PATENT

In this action, SCC alleges infringement of claims 9 and 10 of the `128 patent. Those claims are dependent upon claims 1, 2, and 3, so the Court must consider some of the language in those claims. Claim 1 states:

1. A device for providing an interface between at least one client computer and at least one storage device, the client computer having a first microprocessor for running a software application and a first operating system which produce I/O commands, the storage device containing at least one file, comprising:
a file management system operative to convert the I/O commands from the software application and said first operating system in the client computer to high level commands to a selected format, said file management system further operative to receive said high level commands and convert said high level commands to compatible I/O commands;
a second microprocessor operative to execute said high level commands received from said file management system and access the storage device to copy data in said intermediate common format from the client computer to at least one storage device wherein said second microprocessor employs a second operating system distinct from said first operating system; and
a file device driver interfacing said first operating system and the file management system by functioning to receive data and commands from the client computer and redirect the received data and commands to said file management system.

Veritas App. at 86-87 (col. 12, 1.64 to col. 13, 1.21).

A. Meaning of "High Level Commands"

Veritas argues that the term "high level commands" in claim 1 is neither commonly understood in the art nor expressly defined in the specification. SCC relies on language in the specification that it argues defines "high level commands" by example:

The file system supervisor 32 operates to determine the appropriate file-level applications for receipt of the files received from the client computer 10. The file system supervisor implements file specific routines on a common format file system. Calls made to the file systems supervisor are high level, such as Open, Close, Read, Write, Lock, and Copy.
Id. at 82 (col. 4, 1.22-28).

Veritas responds that other parts of the specification also use "high level" to refer to volume, array and block level commands. See id. 83-84 (col. 5-7). That is true. However, as SCC points out, those references are used in the context of other parts of the patent. What is high level in one context may very well be different in another. Those alternate uses of "high level" do not detract from the explanatory force of the quoted language. The Court holds that the specification sufficiently explains the term "high level commands" as used in claim 1 as being file-level commands such as open, close, read, write, lock, and copy.

B. Situs of the Second Microprocessor

The parties do not appear to have any serious dispute on this point. Veritas argues that the file history shows that the second microprocessor must be located in the storage device. SCC agrees that the second microprocessor must reside within the claimed device, but prophylactically argues that residing within the storage device does not mean residing within a disk drive, but rather within the entire invention, i.e., the universal storage device. The Court does not understand Veritas to be arguing that position. Accordingly, the Court holds that the second microprocessor must reside within the universal storage device.

C. Different Operating System

Veritas next argues that the operating systems on the first and second microprocessors must be of different types, i.e., they could not both be UNIX. The language of claim 1 requires that "said second microprocessor employs a second operating system distinct from said first operating system." SCC argues that this language requires only that both microprocessors do not share a single instance of the operating system, i.e., not be a multiprocessor operating system where both microprocessors are under the direction of a single instance of the operating system.

Veritas supports its view by citing to the repeated references in the specification and file wrapper indicating that the principal purpose of the invention was to permit computers of different, incompatible types to coexist on the same network and to use the same storage system. The implication is that the invention has no point if the client and storage server have the same variety of operating system.

SCC replies that the incompatibilities the invention was to accommodate were incompatibilities in the client operating systems. The invention enables a variety of clients with otherwise mutually incompatible operating systems to communicate with a single storage server; nothing in the invention precludes the idea that one or more of those clients might use the same species of operating system as the storage server. SCC notes the specification expressly acknowledges that possibility. E.g., id. at 82 (col. 4, 1.65-67) ("More particularly, if the client computer and storage management system both utilize the same operating system. . ."); id. at 84 (col. 8, 1.22-25) ("the storage management system may utilize the same file format and operating system utilized by the majority of client computers connected thereto. . .").

The Court holds that the specification supports SCC's construction and that "distinct" should be construed and meaning a different instance, and not a different type.

D. Meaning of "Said Intermediate Common Format"

Veritas argues that the term "said intermediate common format" in the second element of claim 1 has no antecedent and the claims in suit are therefore invalid. SCC says that "said intermediate common format" in the second element refers back to "selected format" in the first element. Veritas argues that cannot be correct because "selected format" in the first element refers to transmitted commands and "said intermediate common format" in the second element refers to transmitted data.

The implicit premise of Veritas' argument is that any given communications format can be used to communicate data, or commands, but not both. The Court declines to import that limitation into the claim. There is nothing about "selected format" that precludes it from including data, and nothing about "said intermediate common format" that precludes it from including commands. Accordingly, the Court holds that "said intermediate common format" in the second element of claim 1 refers to the "selected format" in the first element of claim 1.

E. Hardware Elements of Claim 9

Claim 9 is dependent upon claim 3, which depends upon claim 2, which depends upon claim 1. Claim 9 states: "The interface device of claim 3 further including a kernel operative to directly execute I/O commands from the software application in the client computer." The parties' actual dispute on this item appears to the Court not presently to raise an issue of claim construction. The Court's impression at oral argument was that the parties' actual dispute was over the existence or non-existence of a separate data pathway to the storage system bypassing the conversion bottleneck for clients using the same operating system as the storage device. The briefing and the claim language do not speak to that issue, however.

The parties' briefing appears to address the issue of what hardware components, if any, are involved in claim 9, without reference to data pathways in specific. SCC in its briefing argues that claim 9 does not add any hardware elements. Veritas argues that because claim 9 is dependent on claim 1, claim 9 includes all the hardware of claim 1. The Court holds that both positions are correct and that claim 9 includes all the software and hardware elements of claims 1-3, and adds to that only software.

SO ORDERED.


Summaries of

Storage Computer Corp. v. Veritas Software Corp.

United States District Court, N.D. Texas, Dallas Division
Jan 27, 2003
Civil Action No. 3:01-CV-2078-N (N.D. Tex. Jan. 27, 2003)
Case details for

Storage Computer Corp. v. Veritas Software Corp.

Case Details

Full title:STORAGE COMPUTER CORP., Plaintiff, v. VERITAS SOFTWARE CORP., et al.…

Court:United States District Court, N.D. Texas, Dallas Division

Date published: Jan 27, 2003

Citations

Civil Action No. 3:01-CV-2078-N (N.D. Tex. Jan. 27, 2003)