Visual Memory LLC v. Nvidia Corporation

867 F.3d 1253, 123 U.S.P.Q. 2d (BNA) 1712, 2017 WL 3481288, 2017 U.S. App. LEXIS 15187
CourtCourt of Appeals for the Federal Circuit
DecidedAugust 15, 2017
Docket2016-2254
StatusPublished
Cited by110 cases

This text of 867 F.3d 1253 (Visual Memory LLC v. Nvidia Corporation) is published on Counsel Stack Legal Research, covering Court of Appeals for the Federal Circuit primary law. Counsel Stack provides free access to over 12 million legal documents including statutes, case law, regulations, and constitutions.

Bluebook
Visual Memory LLC v. Nvidia Corporation, 867 F.3d 1253, 123 U.S.P.Q. 2d (BNA) 1712, 2017 WL 3481288, 2017 U.S. App. LEXIS 15187 (Fed. Cir. 2017).

Opinions

Dissenting opinion filed by Circuit Judge HUGHES.

[1255]*1255STOLL, Circuit Judge.

Visual Memory, LLC appeals the district court’s dismissal of its patent infringement complaint against NVIDIA Corporation. The district court held that Visual Memory’s U.S. Patent No. 5,953,740 is drawn to patent-ineligible subject matter, and therefore its complaint failed to state a claim under Federal Rule of Civil Procedure 12(b)(6). We conclude instead that the ’740 patent claims an improvement to computer memory systems and is not directed to an abstract idea. Accordingly, we reverse the district court and remand for further proceedings.

I.

The ’740 patent teaches that computer systems frequently use a three-tiered memory hierarchy to enhance performance. The three tiers include: 1) a low-cost, low-speed memory, such as a magnetic disk, for bulk storage of data; 2) a medium-speed memory that serves as the main memory; and 3) an expensive, high-speed memory that acts as a processor cache memory. ’740 patent col. 1 ll. 54-64. Because the cache memory is the most- expensive, it is typically smaller than the main memory and cannot always store all the data required by the processor. The memory hierarchy alleviates the limitations imposed by the cache’s size because it allows code and non-code data1 to be transferred from the main memory to the cache during operation to ensure that the currently executing program has quick access to. the required data. Replacement algorithms determine which data should be transferred from the main memory to the cache and which data in the cache should be replaced. As a result, the code and non-code, data to be executed by the processor are continually grouped into the cache, thereby facilitating rapid access for the currently executing program.

These prior, art memory systems lacked versatility because they were designed and optimized based on the specific type of processor selected for use in that system. Designing a different memory system for every processor type is. expensive, and substituting any other type of processor into the system would decrease its efficiency, Memory systems could be designed to operate .with multiple types of processors, but the design tradeoffs often diminished the performance of one . or all of the computers. • > -

The ’740 patent purports to overcome these deficiencies, by creating a memory system with programmable operational characteristics that can be tailored for use with multiple different processors without the accompanying reduction in performance. It discloses a main memory 12 and three separate caches: internal cache 16, pre-fetch cache 18, and write buffer cache 20. Id. at col. 3 ll. 34-53. A schematic of the ’740 patent’s memory system is shown below in Figure 1:

[1256]*1256[[Image here]]

The three caches possess programmable operational characteristics that are programmable based on the type of processor connected to the memory system. When the system is turned on, information about the type of processor is used to self-configure the programmable operational characteristics. For example, depending on the type of processor, internal cache 16 can store both code and non-code data, or it can store only code data. Id. at col. 4 ll. 30-35. Similarly, write buffer cache 20 can be programmed to buffer data “solely from a bus master other than the system processor,” or to buffer “data writes by any bus master including the system processor.” Id. at col. 4 ll. 35-43. By separating the functionality for the caches and defining those functions based on the type of processor, the patented system can “achieve or exceed the performance of a system utilizing a cache many times larger than the cumulative size of the subject caches.” Id. at col. 4 ll. 24-26.

Using a programmable operational characteristic based on the processor type can also improve the main memory. Fast page mode is a well-known technique for speeding up access to main memory. In fast page mode, a row in a memory page is accessed without having to continually respecify the row address, thereby reducing access time. A register associated with the main memory holds the page address of the most recently accessed page. The ’740 patent’s main memory constitutes an advance over the prior art fast page mode memory because it is divided into pages containing either code or non-code data, and “the system provides a bias towards code pages or non-code pages depending upon the type of processor connected to the system.” Id. at col. 4 ll. 55-58. For one processor type, the register will hold the address of the most recently accessed code page; for another processor type, the register will hold the address of the most recently accessed non-code page. The specification discloses that combining the selective open page bias with the fast page mode offers faster access to main memory and increases system performance. Id. at col. 5 ll. 6-8.

Taken together, the “multiple mode operation” of the ’740 patent confers a substantial advantage by “allow[ing] different types of processors to be installed with the [same] subject memory system without [1257]*1257significantly compromising their individual performance.” Id. at col. 5 ll. 25-29. The ’740 patent’s claims reflect these technological improvements. For example, claim 1 recites:

1. A computer memory system connectable to a processor and having one or more programmable operational characteristics, said characteristics being defined through configuration by said computer based on the type of said processor, wherein said system is connectable to said processor by a bus, said system comprising:
a main memory connected to said bus; and
a cache connected to said bus;
wherein a programmable operational characteristic of said system determines a type of data stored by said cache.

Id. at col. 6 ll. 28-38. The dependent claims further define the programmable operational characteristic, i.e., determining whether the cache stores both code and non-code data (claim 2) and whether the cache buffers data from both the bus master and the processor (claim 3). Independent claim 6 recites the fast page mode embodiment.

Visual Memory sued NVIDIA for infringement of the ’740 patent. Believing the claims to be directed to patent-ineligible subject matter, NVIDIA filed a motion to dismiss for failure to state a claim pursuant to Federal Rule of Civil Procedure 12(b)(6).

The district court granted NVIDIA’s motion. Under step one of the Alice test, the court concluded that the claims were directed to the “abstract idea of categorical data storage,” which humans have practiced for many years. Visual Memory LLC v. NVIDIA Corp., No. 15-789, 2016 WL 3041847, at *4 (D. Del. May 27, 2016). The court’s step-two analysis found no inventive concept because the claimed computer components—a main memory, cache, bus, and processor—were generic and conventional.

Free access — add to your briefcase to read the full text and ask questions with AI

Related

Cite This Page — Counsel Stack

Bluebook (online)
867 F.3d 1253, 123 U.S.P.Q. 2d (BNA) 1712, 2017 WL 3481288, 2017 U.S. App. LEXIS 15187, Counsel Stack Legal Research, https://law.counselstack.com/opinion/visual-memory-llc-v-nvidia-corporation-cafc-2017.