Apparatuses and methods for multiple address registers for a solid state device
The present disclosure includes apparatuses, systems, and methods related to multiple address registers for a solid state device (SSD). An example apparatus includes a controller including a plurality of base address registers (BARs) each including same addresses for data storage in a same memory resource and an SSD that includes the same memory resource.
1. An apparatus, comprising:
a plurality of base address registers (BARs) each including same addresses for data storage in a same memory resource; wherein:
to enable performance of a write operation, the write operation is assigned to a first BAR that has a selected first cache attribute;
to enable performance of a read operation, the read operation is assigned to a second BAR that has a selected second cache attribute, and
the plurality of BARs is positioned on a same controller positioned in the same memory resource.
2. The apparatus of claim 1 , wherein the plurality of BARs is selectably coupled to the same memory resource.
3. The apparatus of claim 1 , wherein:
during performance of the write operation, data values of the write operation are assigned for storage to a particular buffer local to a processor before transfer to the same memory resource, wherein the particular buffer is controlled by the selected first cache attribute; and
during performance of the read operation, data values of the read operation are assigned for storage to a particular cache local to the processor after transfer from the same memory resource, wherein the particular cache is controlled by the selected second cache attribute.
4. The apparatus of claim 1 , wherein the apparatus is configured to assign an operation to one of the plurality of BARs as determined by which one of a plurality of types of operations is requested.
5. The apparatus of claim 1 , wherein:
the plurality of BARs each comprises a different cache attribute; and
the different cache attribute of each BAR corresponds to a type of operation that is requested.
6. The apparatus of claim 1 , wherein the same memory resource is selected from at least one of:
a NAND flash memory as a non-volatile memory resource;
a 3D XPoint memory as a non-volatile memory resource; and
a dynamic random access memory (DRAM) as a volatile memory resource.
7. The apparatus of claim 1 , further comprising:
a device driver selectably coupled to the same memory resource, wherein the device driver is configured to direct that:
a write operation type is assigned to a selected first BAR that has the selected first cache attribute that is enabled by the assignment to enable the performance of the write operation; and
a read operation type is assigned to a selected second BAR that has the selected second cache attribute that is enabled by the assignment to enable the performance of the read operation;
wherein the first cache attribute is different from the second cache attribute.
8. The apparatus of claim 6 , wherein the device driver is further configured to:
receive a request for performance of an operation;
determine whether the requested operation is the read operation type or the write operation type; and
select a BAR from the plurality of BARs as appropriate for use with the determined operation type.
9. A method, comprising:
mapping of addresses for data storage in a secondary memory resource, the mapping set to a first cache attribute for a read operation request;
enabling performance of the requested read operation by assignment to a first base address register (BAR) that includes the mapped addresses set to the first cache attribute;
mapping of the addresses for data storage in a same secondary memory resource, the mapping set to a second cache attribute for a write operation request; and
enabling performance of the requested write operation by assignment to a second BAR that includes the mapped addresses set to the second cache attribute;
wherein:
the enabled first or second cache attribute is different from a cache attribute assigned to a non-selected BAR; and
the first BAR and the second BAR are positioned in a same controller positioned in the same secondary memory resource.
10. The method of claim 9 , wherein the method further comprises:
assigning, by a device driver, the requested read operation to the first BAR that includes the mapped addresses set to Write Protected as the first cache attribute; and
assigning, by the device driver, the requested write operation to the second BAR that includes the mapped addresses set to Write Combining as the second cache attribute.
11. The method of claim 9 , wherein the method further comprises:
enabling, by a device driver, Write Protected as the first cache attribute assigned for the requested read operation for use with the first BAR that includes the mapped addresses; and
enabling, by the device driver, Write Combining as the second cache attribute assigned for the requested write operation for use with the second BAR that includes the mapped addresses.
12. A system, comprising:
a host computing device comprising a central processing unit (CPU) and a primary memory resource;
a device driver selectably coupled to the CPU; and
a same secondary memory resource configured to include a plurality of base address registers (BARs) each including same addresses for data storage in the same secondary memory resource, wherein:
the plurality of BARs is positioned on a same controller positioned in the same secondary memory resource;
the device driver is configured to direct that:
to enable performance of a read operation, the read operation is assigned to a first BAR that has a selected first cache attribute;
to enable performance of a write operation, the write operation is assigned to a second BAR that has a selected second cache attribute; and
the selected first cache attribute of the first BAR and the selected second cache attribute of the second BAR are different cache attribute types.
13. The system of claim 12 , wherein the apparatus further comprises a peripheral component interconnect express (PCIe) bus as a communication interface between the host computing device, the device driver, and a peripheral memory resource comprising the same secondary memory resource to form a PCIe circuit.
14. The system of claim 12 , wherein:
the device driver is disposed on the host computing device and is selectably coupled to the plurality of BARs; and
the plurality of BARs is selectably coupled to the same secondary memory resource.
15. The system of claim 12 , wherein:
a particular cache in the host computing device is assigned by the device driver for storage of data values transferred from the same secondary memory resource; and
the particular cache is controlled by an enabled first cache attribute.
16. The system of claim 15 , wherein the enabled first cache attribute is Write Protected for the read operation.
17. The system of claim 12 , wherein:
a particular cache in the host computing device is selected by the device driver for use by the CPU in performance of the read operation; and
the particular cache is an internal cache that is part of the CPU.
18. The system of claim 12 , wherein:
a particular cache in the host computing device is selected by the device driver for use by the CPU in performance of the read operation; and
the particular cache is a cache that is external to the CPU.
19. The system of claim 12 , wherein:
a particular buffer in the host computing device is assigned by the device driver for storage of data values to be transferred to the same secondary memory resource in performance of the write operation; and
the particular buffer is controlled by an enabled Write Combining as the second cache attribute.
20. The system of claim 12 , wherein:
a particular buffer in the host computing device is selected by the device driver for use by the CPU for transfer of data in performance of the write operation; and
a particular cache in the host computing device that is different from the particular buffer is selected by the device driver for use by the CPU in performance of the read operation.