Maintaining real-time cache coherency during distributed computational functions
Gespeichert in:
| Titel: | Maintaining real-time cache coherency during distributed computational functions |
|---|---|
| Patent Number: | 11809,323 |
| Publikationsdatum: | November 07, 2023 |
| Appl. No: | 17/846388 |
| Application Filed: | June 22, 2022 |
| Abstract: | Apparatus and method for maintaining real-time coherency between a local cache of a target device and a client cache of a source device during execution of a distributed computational function. In some embodiments, a source device, such as a host computer, is coupled via a network interface to a target device, such as a data storage device. A storage compute function (SCF) command is transferred from the source device to the target device. A local cache of the target device accumulates output data during the execution of an associated SCF over an execution time interval. Real-time coherency is maintained between the contents of the local cache and a client cache of the source device, so that the client cache retains continuously updated copies of the contents of the local cache during execution of the SCF. The coherency can be carried out on a time-based granularity or an operational granularity. |
| Inventors: | Seagate Technology LLC (Fremont, CA, US) |
| Assignees: | Seagate Technology LLC (Fremont, CA, US) |
| Claim: | 1. A method comprising: transferring, from a source device to a target device, a storage compute function (SCF) command to initiate execution of an associated SCF; using a local cache of the target device to accumulate output data over an execution time interval responsive to the execution of the associated SCF, the execution time interval commencing with receipt of the SCF command and concluding with conclusion of the execution of the associated SCF; and maintaining real-time coherency between the local cache and a client cache of the source device so that the accumulated output data in the local cache are mirrored in real-time to the client cache during an entirety of the execution time interval. |
| Claim: | 2. The method of claim 1 , wherein the execution of the SCF comprises a transfer of data from a main memory store of the target device to the local cache during the execution time interval. |
| Claim: | 3. The method of claim 1 , wherein the execution of the SCF comprises a transfer of data from the client cache to the local cache during the execution time interval. |
| Claim: | 4. The method of claim 1 , wherein the execution of the SCF is carried out via execution of a set of programming instructions by a programmable processor over the execution time interval so that the execution time interval concludes upon execution of a last programming instruction in the set of programming instructions by the programmable processor. |
| Claim: | 5. The method of claim 1 , wherein the associated SCF is characterized as a set of programming instructions stored in a non-volatile memory (NVM) of the target device. |
| Claim: | 6. The method of claim 5 , wherein the source device transfers the set of programming instructions to the target device prior to the transfer of the SCF command from the source device to the target device. |
| Claim: | 7. The method of claim 1 , wherein the output data are accumulated in the local cache over a selected period of time associated with the execution of the SCF, and wherein snapshots of the output data are obtained and transferred to the source cache by the target device during the selected period of time. |
| Claim: | 8. The method of claim 7 , wherein each of the snapshots is subjected to a cryptographic function prior to transfer, via a data interface, from the target device to the source device. |
| Claim: | 9. The method of claim 7 , wherein the execution of the SCF comprises execution of a sequence of operations in a selected order, and wherein each of the snapshots is generated responsive to execution of a different one of the operations in the sequence of operations. |
| Claim: | 10. The method of claim 7 , wherein the selected period of time is subdivided into a sequence of subintervals that collectively make up the selected period of time, and wherein each of the snapshots is generated at a conclusion of each of the time intervals in the sequence of time intervals. |
| Claim: | 11. The method of claim 1 , wherein the source device is a client device having a client programmable processor and a local memory characterized as the client memory, wherein the target device is a data storage device having a data storage device programmable processor and a main data store memory characterized as a non-volatile memory, wherein the local memory is a local data cache of the data storage device, wherein the SCF command is transferred by the client programmable processor, and wherein the data storage device programmable processor executes the SCF. |
| Claim: | 12. An apparatus comprising: a client device having a client processor and a client cache; and a storage device coupled to the client device via a data interface and having a device processor and a device cache; wherein the device processor is configured to execute a storage command function (SCF) to accumulate output data in the device cache over an execution time interval responsive to an SCF command received from the client processor, and the client processor is configured to maintain real-time coherency between the output data in the device cache and a copy of the output data in the client cache during the execution time interval. |
| Claim: | 13. The apparatus of claim 12 , wherein snapshots of the output data are obtained and transferred to the client cache by the storage device during the execution time interval. |
| Claim: | 14. The apparatus of claim 13 , wherein the execution of the SCF comprises execution of a sequence of operations in a selected order, and wherein each of the snapshots is generated responsive to execution of a different one of the operations in the sequence of operations during the execution time interval. |
| Claim: | 15. The apparatus of claim 13 , wherein the execution time interval is subdivided into a sequence of subintervals that collectively make up the execution time interval, and wherein each of the snapshots is generated at a conclusion of each of the subintervals in the sequence of subintervals. |
| Claim: | 16. The apparatus of claim 13 , wherein each of the snapshots is subjected to a cryptographic function prior to transfer, via a data interface, from the storage device to the client device. |
| Claim: | 17. A data storage device comprising: a non-volatile memory (NVM) configured as a main memory store; a local cache; and a controller configured to, responsive to receipt of a storage compute function (SCF) command from a client device coupled to the data storage device via an interface, execute an associated SCF to accumulate output data in the local cache using data stored in the NVM and to provide real-time updates of snapshots of the accumulated output data in the local cache to a client cache of the client device during the execution of the SCF. |
| Claim: | 18. The data storage device of claim 17 , wherein the snapshots represent time slices of changes in contents of the local cache at each of a succession of time slices during the execution of the SCF command. |
| Claim: | 19. The data storage device of claim 17 , wherein the snapshots represent changes in contents of the local cache at each of a succession of operations carried out during the execution of the SCF command. |
| Claim: | 20. The data storage device of claim 17 , wherein the associated SCF comprises program instructions stored in the NVM and transferred to the local cache for execution by the controller. |
| Patent References Cited: | 10394746 August 2019 Kachare et al. 10929175 February 2021 Goyal et al. 10944660 March 2021 Hurson et al. 11017127 May 2021 Secatch et al. 20150032968 January 2015 Heidelberger 20190235777 August 2019 Wang et al. 20200028552 January 2020 Salem et al. 20230027648 January 2023 Chang 20230146611 May 2023 Li WO-2017209883 December 2017 |
| Other References: | Lee et al. “BSSync: Processing Near Memory for Machine Learning Workloads with Bounded Staleness Consistency Models.” 2015. IEEE. PACT 2015. pp. 241-252. cited by examiner |
| Primary Examiner: | Sadler, Nathan |
| Attorney, Agent or Firm: | Hall Estill Law Firm McCarthy, Randall K. |
| Dokumentencode: | edspgr.11809323 |
| Datenbank: | USPTO Patent Grants |
| Abstract: | Apparatus and method for maintaining real-time coherency between a local cache of a target device and a client cache of a source device during execution of a distributed computational function. In some embodiments, a source device, such as a host computer, is coupled via a network interface to a target device, such as a data storage device. A storage compute function (SCF) command is transferred from the source device to the target device. A local cache of the target device accumulates output data during the execution of an associated SCF over an execution time interval. Real-time coherency is maintained between the contents of the local cache and a client cache of the source device, so that the client cache retains continuously updated copies of the contents of the local cache during execution of the SCF. The coherency can be carried out on a time-based granularity or an operational granularity. |
|---|