# US 8,788,747 B2 · Independently controlled virtual memory devices in memory modules

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,747 B2
- Document ID: US8788747B2
- Status: Granted
- Kind: B2
- Application number: 13/058,188
- Filed: 2008-08-08
- Published: 2011-06-16
- Granted: 2014-07-22
- Earliest claimed: 2008-08-08
- Assignees: Hewlett-Packard Development Company, L.P.
- Applicants: Jung Ho Ahn; Norman P. Jouppi; Jacob B. Leverich
- Inventors: Jung Ho Ahn; Norman P. Jouppi; Jacob B. Leverich
- Web page: https://patentgrep.com/patent/US8788747B2

## CPC

- G06F 12/06: Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication (G06F12/08 takes precedence)
- G06F 13/1668: {Details of memory controller}
- G11C 5/04: Supports for storage elements {, e.g. memory modules}; Mounting or fixing of storage elements on such supports
- G11C 8/12: Group selection circuits, e.g. for memory block selection, chip selection, array selection
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Various embodiments of the present invention are directed a multi-core memory modules. In one embodiment, a memory module (500) includes at least one virtual memory device and a demultiplexer register (502) disposed between the at least one virtual memory device and a memory controller. The demultiplexer register receives a command identifying one of the at least one virtual memory devices from the memory controller and sends the command to the identified virtual memory device. In addition, the at least one virtual memory devices include at least one memory chip.

## Claims

### Claim 1

A memory module comprising:
at least one virtual memory device including at least one memory chip; and
a demultiplexer register electronically connected to the at least one virtual memory device and a memory controller, wherein the demultiplexer register comprises:
a register configured to receive a command identifying one of the at least one virtual memory device from the memory controller and determine a virtual memory device address of the virtual memory device identified in the command;
a demultiplexer configured to receive the command and the address from the register and select a set of signals over which to send the command to the virtual memory device identified in the command; and
a counter that translates a command into multiple commands so that a cache line can be partitioned into cache-line segments by the demultiplexer register, wherein each command is associated with one of the cache-line segments.

### Claim 2 (depends on 1)

The memory module of claim 1 wherein the memory chip further comprises a dynamic random access memory chip.

### Claim 3 (depends on 1)

The memory module of claim 1 wherein the commands are sent from the memory controller to the demultiplexer register in a time-division multiplexed manner so that each command arrives at the demultiplexer register and is sent to the virtual memory device identified in the command within a fixed duration time interval.

### Claim 4 (depends on 1)

The memory module of claim 1 wherein the demultiplexer register further comprises:
at least one command selector, each command selector electronically connected to one of the at least one virtual memory devices; and
a broadcast bus configured to broadcast the command to the at least one command selector, wherein each command selector is configured to extract a virtual memory device address embedded in the command and forward the command to the one of the at least one connected virtual memory devices when the address matches the address of the one of the at least one connected virtual memory devices, otherwise the command selector discards the command.

### Claim 5 (depends on 4)

The memory module of claim 4 wherein the command selector further comprises:
an AND gate configured to extract the virtual memory device address from the command and generate a select signal when the address matches the address of the one of the at least one connected virtual memory devices;
a register/counter configured to receive and transmit the command to the connected virtual memory devices when the AND gate provides the select signal, otherwise the register/counter discards the command; and
a RAM timing control that controls partitioning of the cache line and the command into smaller cache-line segments.

### Claim 6 (depends on 1)

The memory module of claim 1 demultiplexer register electronically connected to the at least one virtual memory device further comprises a command bus disposed between the demultiplexer register and the at least one virtual memory device, wherein the command bus comprises a separate set of signal lines connecting each of the at least one virtual memory devices to the demultiplexer register.

### Claim 7 (depends on 1)

The memory module of claim 1 further comprising a command path connecting the memory controller to the demultiplexer register.

### Claim 8 (depends on 1)

The memory module of claim 1 wherein the at least one virtual memory device further comprises a memory chip configured to store error correcting code information.

### Claim 9

A method for controlling a memory module comprising at least one virtual memory device, the method comprising:
preparing a command at a memory controller to include an address corresponding to one of the at least one virtual memory devices;
sending the command from the memory controller to a demultiplexer register of the memory module;
determining which of the at least one virtual memory devices is identified by the address using a register of the demultiplexer register;
translating the command into multiple commands using a counter of the demultiplexer register so that a cache line can be partitioned into cache-line segments by the demultiplexer register, wherein each of the multiple commands is associated with one of the cache-line segments; and
sending the multiple commands and associated cache-line segments to the virtual memory device identified by the address using a demultiplexer of the demultiplexer register.

### Claim 10 (depends on 9)

The method of claim 9 wherein sending the command from the memory controller to the demultiplexer register further comprises time-division multiplexing the command to arrive at the demultiplexer register and sending the multiple commands and associated cache-line segments to the virtual memory device identified in the command within a fixed duration time interval.

### Claim 11 (depends on 9)

The method of claim 9 wherein determining which of the at least one virtual memory devices identified by the address further comprises reading the virtual memory device address embedded in the command.

### Claim 12 (depends on 9)

The method of claim 9 wherein the virtual memory device further comprises at least one memory chip.

### Claim 13 (depends on 9)

The method of claim 9 wherein the method includes
assigning the multiple commands to cache-line segments.
