IP Library Granted Patent US 9,116,820
Granted Patent B2
US 9,116,820 · App. 13/596,480 · Granted Aug 25, 2015

Dynamic central cache memory

Inventor: Kimmo J. Mylly (Ylojarvi, FI)
Assignee: Memory Technologies LLC
G06F12/0873G06F12/0246G06F12/0871G06F2212/7207G06F2212/7208
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,116,820
App. No.
13/596,480
Granted
Aug 25, 2015
Kind
B2
Abstract

The specification and drawings present a new apparatus, method and software related product for using a cache/central cache module/device (instead of e.g., system DRAM) which can serve multiple memory modules/devices. Each memory/IO module/device connected to the same memory network (e.g., via hub, bus, etc.) may utilize memory resources of this cache module/device either in a fixed manner using pre-set allocation of resources per the memory module/device, or dynamically using run-time allocation of new resources to an existing module/device per its request or to a new module/device connecting to the memory network (e.g., comprised in a host device) and possibly requesting memory resources.

Claims (61)

1. A method, comprising:

reserving, by at least one cache module of a host device, one or more memory resource allocations of memory resources in the at least one cache module, the one or more memory resource allocations being reserved for one or more memory modules;

providing, by the at least one cache module, an identification of the at least one cache module to at least one memory module;

receiving, by the at least one cache module and from the at least one memory module, a request to use at least part of the memory resources in the at least one cache module; and

implementing, by the at least one cache module, the request using at least one memory resource of the memory resources in the at least one cache module,

wherein the at least one memory resource of the memory resources in the at least one cache module is:

previously reserved for the at least one memory module based at least in part on the one or more memory resource allocations, or

dynamically identified by the at least one cache module.

2. The method of claim 1 , wherein implementing the request comprises:

determining, by the at least one cache module, whether one or more memory resources of the memory resources were previously reserved for the at least one memory module.

3. The method of claim 2 , wherein implementing the request further comprises:

if the one or more memory resources were previously reserved for the at least one memory module, using the at least one memory resource of the one or more memory resources for implementing the request, and

if the one or more memory resources were not previously reserved for the at least one memory module, identifying, by the at least one cache module, the at least one memory resource of the one or more memory resources not previously reserved for the at least one memory module for implementing the request.

4. The method of claim 2 , wherein implementing the request further comprises:

if the one or more memory resources were previously reserved for the at least one memory module but the one or more memory resources were all used or not sufficient for implementing the request,

identifying, by the at least one cache module, the at least one memory resource of the memory resources other than the one or more memory resources previously reserved for the at least one memory module for implementing the request.

5. The method of claim 1 , wherein the host device comprises a mobile device for wireless communications.

6. The method of claim 1 , wherein the one or more memory modules comprise at least one of: a mass memory module, a removable memory module and an input/output memory module.

7. The method of claim 1 , wherein the request to use the at least part of the memory resources in the at least one cache module comprises at least one of: an identification of the at least one memory module, a class identification of the at least one memory module and a memory type of the at least one memory module.

8. The method of claim 1 , wherein the at least one cache module comprises:

volatile memory,

non-volatile memory, or

both volatile and non-volatile memory, wherein the request to use the at least part of the memory resources in the at least one cache module comprises an indication of a volatile or non-volatile memory type in the at least one cache module.

9. The method of claim 1 , wherein the request to use the at least part of the memory resources in the at least one cache module comprises a writing operation to be performed by the at least one cache module using the at least one memory resource of the memory resources in the at least one cache module, where the request comprises a location or an identity of the at least one memory resource in the at least one cache module to use for the writing operation.

10. The method of claim 1 , wherein the request to use the at least part of the memory resources in the at least one cache module comprises a reading operation, and an identity or a location of information to be read, so the at least one cache module is configured to identify the at least one memory resource of the memory resources where the information to be read is stored.

11. The method of claim 1 , further comprising:

at a powering of the host device, receiving, by the at least one cache module, one or more identity interrogation requests from the one or more memory modules;

responding, by the at least one cache module, to the identity interrogation requests by handshakes with the one or more memory modules including providing an identification of the at least one cache module and further providing an identity of the one or more memory resource allocations.

12. The method of claim 1 , wherein before receiving the request to use the at least part of the memory resources in the at least one cache module, the method further comprises:

receiving, by the at least one cache module, an identity interrogation request from an added memory module added to the host device, the added memory module being a removable module; and

responding, by the at least one cache module, to the identity interrogation request from the added memory module by a handshake with the added memory module, the handshake comprising provision of the identification of the at least one cache module to the added memory module.

13. The method of claim 12 , wherein the handshake further comprises:

reserving, by at least one cache module, at least one further memory resource of the memory resources for the added memory module; and

providing an identity of the at least one further memory resource to the added memory module.

14. The method of claim 12 , wherein the added memory module is the at least one memory module making the request to use the at least part of the memory resources in the at least one cache module.

15. The method of claim 12 , wherein the identity interrogation request comprises the request to use the at least part of the memory resources in the at least one cache module.

16. An apparatus comprising:

at least one controller and a memory storing computer instructions configured to cause the apparatus to:

reserve, in a host device, one or more memory resource allocations of memory resources in the apparatus, the one or more memory resource allocations being reserved for one or more memory modules;

provide an identification of the apparatus to at least one memory module;

receive, from the at least one memory module, a request to use at least part of the memory resources in the apparatus; and

implement the request using at least one memory resource of the memory resources in the apparatus by determining that the at least one memory resource of the memory resources in the apparatus has been previously reserved for the at least one memory module based at least in part on the one or more memory resource allocations.

17. The method of claim 1 , wherein the host device is associated with a plurality of memory modules and the plurality of memory modules comprises at least the one or more memory modules.

18. The apparatus of claim 16 , wherein the host device is associated with a plurality of memory modules and the plurality of memory modules comprises at least the one or more memory modules.

19. An apparatus comprising:

at least one controller and a memory storing computer instructions configured to cause the apparatus to:

reserve, in a host device, one or more memory resource allocations of memory resources in the apparatus, the one or more memory resource allocations being reserved for one or more memory modules;

provide an identification of the apparatus to at least one memory module;

receive, from the at least one memory module, a request to use at least part of the memory resources in the apparatus; and

implement the request using at least one memory resource of the memory resources in the apparatus by dynamically identifying the at least one memory resource of the memory resources in the apparatus.

20. The apparatus of claim 19 , wherein the host device is associated with a plurality of memory modules and the plurality of memory modules comprises at least the one or more memory modules.

21. An apparatus comprising:

at least one controller and a memory storing computer instructions configured to cause the apparatus to:

receive, from a host device, one or more memory resource allocations of memory resources in the apparatus, the one or more memory resource allocations being reserved for one or more memory modules;

provide an identification of the apparatus to at least one memory module;

receive, from the at least one memory module, a request to use at least part of the memory resources in the apparatus; and

implement the request using at least one memory resource of the memory resources in the apparatus,

wherein the at least one memory resource of the memory resources in the apparatus is:

previously reserved for the at least one memory module based at least in part on the one or more memory resource allocations, or

dynamically identified by the apparatus.

22. The apparatus of claim 21 , wherein the host device is associated with a plurality of memory modules and the plurality of memory modules comprises at least the one or more memory modules.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2013
From: NOKIA CORPORATION
To: NOKIA INC.
Reel/Frame 030502/0639 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2013
From: NOKIA INC.
To: MEMORY TECHNOLOGIES LLC
Reel/Frame 030502/0819 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2012
From: MYLLY, KIMMO
To: NOKIA CORPORATION
Reel/Frame 028860/0562 →
Continuity (1)
Related Publication 20140068140A1 · Mar 6, 2014