Storage controller and method for managing a solid-state memory
First Claim
1. A storage controller for managing a solid-state memory, the solid-state memory including a plurality of physical addresses, the storage controller comprising:
- a mapping table for mapping a plurality of logical addresses to the plurality of physical addresses, the mapping table including mapping values, each mapping value defining the mapping of one logical address to one physical address;
a processing unit for performing linearizable operations on the mapping values, the processing unit configured to concurrently execute at least some of the linearizable operations; and
a synchronization unit for mediating the concurrently executed linearizable operations, the synchronization unit configured to examine a mapping value of the mapping table, to compare the examined mapping value with a known mapping value, the known mapping value being the last known value for the examined mapping value, and, when the examined mapping value and the known mapping value are identical, to update the examined mapping value with a new mapping value;
wherein, when the processing unit performs an unaligned write request to a logical address, the synchronization unit is configured to determine a mapping value corresponding to the logical address of the write request as a known mapping value, to determine the current physical address from the known mapping value and wherein the processing unit is configured to read the data from the current physical address and to store the read data in a buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage controller for managing a solid-state memory is suggested. The solid-state memory includes a plurality of physical addresses. The storage controller comprises a mapping table for mapping a plurality of logical addresses to the plurality of physical addresses, the mapping table including mapping values, each mapping value defining the mapping of one logical address to one physical address, a processing unit for performing linearizable operations on the mapping values, the processing unit configured to concurrently execute some of the linearizable operations, a synchronization unit for mediating the concurrently executed linearizable operations, the synchronization unit configured to examine a mapping value of the mapping table, compare the examined mapping value with a known mapping value, the known mapping value being the last known value for the examined mapping value, and, if the examined mapping value and the known mapping value are identical, update the examined mapping value with a new mapping value.
-
Citations
19 Claims
-
1. A storage controller for managing a solid-state memory, the solid-state memory including a plurality of physical addresses, the storage controller comprising:
-
a mapping table for mapping a plurality of logical addresses to the plurality of physical addresses, the mapping table including mapping values, each mapping value defining the mapping of one logical address to one physical address; a processing unit for performing linearizable operations on the mapping values, the processing unit configured to concurrently execute at least some of the linearizable operations; and a synchronization unit for mediating the concurrently executed linearizable operations, the synchronization unit configured to examine a mapping value of the mapping table, to compare the examined mapping value with a known mapping value, the known mapping value being the last known value for the examined mapping value, and, when the examined mapping value and the known mapping value are identical, to update the examined mapping value with a new mapping value; wherein, when the processing unit performs an unaligned write request to a logical address, the synchronization unit is configured to determine a mapping value corresponding to the logical address of the write request as a known mapping value, to determine the current physical address from the known mapping value and wherein the processing unit is configured to read the data from the current physical address and to store the read data in a buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A storage controller for managing a solid-state memory, the solid-state memory including a plurality of physical addresses, the storage controller comprising:
-
a mapping table for mapping a plurality of logical addresses to the plurality of physical addresses, the mapping table including mapping values, each mapping value defining the mapping of one logical address to one physical address; a processing unit for performing linearizable operations on the mapping values, the processing unit configured to concurrently execute at least some of the linearizable operations; and a synchronization unit for mediating the concurrently executed linearizable operations, the synchronization unit configured to examine a mapping value of the mapping table, to compare the examined mapping value with a known mapping value, the known mapping value being the last known value for the examined mapping value, and, when the examined mapping value and the known mapping value are identical, to update the examined mapping value with a new mapping value; wherein the processing unit is configured to acquire an available physical address and to write the read data to the acquired physical address, and wherein the synchronization unit is configured to update the mapping value with the acquired physical address; and wherein the synchronization unit is configured to determine whether the update was successful by examining a mapping value corresponding to the logical address, to compare the examined mapping value and the known mapping value and to decide that the update was successful when the examined mapping value and the known mapping value are identical. - View Dependent Claims (18)
-
-
19. A method for managing a solid-state memory, the solid-state memory including a plurality of physical addresses, the method comprising:
-
mapping logical addresses to the plurality of physical addresses and storing the mapping in a mapping table, the mapping table including mapping values, each mapping value defining the mapping of one logical address to one physical address; concurrently executing at least some linearizable operations on the mapping values, the linearizable operations including at least read and write operations; mediating the concurrently executed linearizable operations by examining a mapping value of the mapping table, comparing the examined mapping value to a given mapping value, the given mapping value being the last known value for the examined mapping value, and, when the examined mapping value and the given mapping value are identical, updating the examined mapping value with a new mapping value; and when performing an unaligned write request to a logical address, determining a mapping value corresponding to the logical address of the write request as a known mapping value, determining the current physical address from the known mapping value, and reading the data from the current physical address and storing the read data in a buffer.
-
Specification