IP Library Granted Patent US 9,870,322
Granted Patent B2
US 9,870,322 · App. 14/939,063 · Granted Jan 16, 2018

Memory mapping for object-based storage devices

Inventors: Matthias Klein (Wappingers Falls, NY); Marco Kraemer (Sindelfingen, DE); Carsten Otte (Stuttgart, DE); Christoph Raisch (Gerlingen, DE)
Assignee: International Business Machines Corporation
G06F12/1027G06F9/5077G06F12/023G06F12/109G06F12/1009G06F2212/1044G06F2212/656G06F2212/68G06F2212/684
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,870,322
App. No.
14/939,063
Granted
Jan 16, 2018
Kind
B2
Abstract

In an approach for determining a physical address for object access in an object-based storage device (OSD) system, a processor divides a first data object into one or more partitions, including at least a first partition, and providing each partition for storage as individual stored objects in an OSD system. A processor adds a first entry in a page table, the first entry representing the first partition without an indication of a physical address. A memory management unit (MMU) of the OSD system receives a first request of the first partition. Responsive to receiving the first request of the first partition, a MMU identifies that the first entry of the page table represents the first partition. A MMU obtains a physical address of the first partition from one of a hardware component and a firmware component.

Claims (40)

1. A computer program product for determining a physical address for object access in an object-based storage device (OSD) system, the computer program product comprising:

one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising:

program instructions to divide a first data object into one or more partitions, including at least a first partition, and providing each partition for storage as individual stored objects in an OSD system;

program instructions to generate a first entry in a page table, based, at least in part, on:

program instructions to receive an input/output key allocated from at least one of a firmware component and a hardware component; and

program instructions to add the input/output key in the first entry in the page table, wherein:

the input/output key represents the first partition; and

the first entry in the page table does not include an indication of a physical address where the first partition is stored;

program instructions to receive, by a memory management unit (MMU) of the OSD system, a virtual address to access the first partition;

program instructions to, responsive to receiving the first request of the first partition, determine, by the MMU, that the input/output key included in the first entry of the page table represents the first partition; and

program instructions to retrieve, by at least one of the hardware component and the firmware component, the physical address of the first partition based, at least in part, on utilizing a memory map stored by at least one of the hardware component and the firmware component corresponding to the input/output key.

2. The computer program product of claim 1 , wherein program instructions to divide the first data object into one or more partitions comprise:

program instructions to divide the first data object into at least a first partition and a second partition, wherein the first data object includes metadata, and wherein the second data object includes data content.

3. The computer program product of claim 1 , further comprising:

program instructions, stored on the one or more computer readable storage media, to assign an object identification (ID) and a reference count to the first data object, wherein the reference count is a count of a number of references to the first data object by one or more other data objects.

4. The computer program product of claim 3 , further comprising:

program instructions, stored on the one or more computer readable storage media, to determine that the reference count is zero; and

program instructions, stored on the one or more computer readable storage media, to, responsive to determining that the reference count is zero, delete the first data object.

5. The computer program product of claim 1 , further comprising:

program instructions to instruct, by the MMU, the one of the hardware component and firmware component to:

load the first partition into a memory unit;

generate the physical address, wherein the physical address comprises an address for accessing the first data object in the memory unit; and

store the physical address in the memory unit.

6. The computer program product of claim 1 , wherein the physical address of the first partition is retrieved from the memory unit.

7. The computer program product of claim 1 , wherein the MMU includes a translation lookaside buffer (TLB), and wherein program instructions to receive the first request of the first partition further comprise:

program instructions to detect a TLB miss for the first request of the first partition.

8. The computer program product of claim 7 , further comprising:

program instructions to instruct, by the MMU, the one of the hardware component and the firmware component to provide the physical address of the first partition; and

program instructions to create, by one of the hardware component and the firmware component, a second entry in the TLB indicating the first partition and the physical address.

9. A computer system for determining a physical address for object access in an object-based storage device (OSD) system, the computer system comprising:

one or more computer processors, one or more computer readable storage media, and program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more processors, the program instructions comprising:

program instructions to divide a first data object into one or more partitions, including at least a first partition, and providing each partition for storage as individual stored objects in an OSD system;

program instructions to generate a first entry in a page table, based, at least in part, on:

program instructions to receive an input/output key allocated from at least one of a firmware component and a hardware component; and

program instructions to add the input/output key in the first entry in the page table, wherein:

the input/output key represents the first partition; and

the first entry in the page table does not include an indication of a physical address where the first partition is stored;

program instructions to receive, by a memory management unit (MMU) of the OSD system, a virtual address to access the first partition;

program instructions to, responsive to receiving the first request of the first partition, determine, by the MMU, that the input/output key included in the first entry of the page table represents the first partition; and

program instructions to retrieve, by at least one of the hardware component and the firmware component, the physical address of the first partition based, at least in part, on utilizing a memory map stored by at least one of the hardware component and the firmware component corresponding to the input/output key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: KLEIN, MATTHIAS; KRAEMER, MARCO; OTTE, CARSTEN; RAISCH, CHRISTOPH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037022/0351 →
Continuity (1)
Related Publication 20170139840A1 · May 18, 2017