Optimization of data locks for improved write lock performance and CPU cache usage in multi core architectures

US9569265B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9569265-B2
Application numberUS-201414507930-A
CountryUS
Kind codeB2
Filing dateOct 7, 2014
Priority dateOct 7, 2014
Publication dateFeb 14, 2017
Grant dateFeb 14, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Data access optimization features the innovative use of a writer-present flag when acquiring read-locks and write-locks. Setting a writer-present flag indicates that a writer desires to modify a particular data. This serves as an indicator to readers and writers waiting to acquire read-locks or write-locks not to acquire a lock, but rather to continue waiting (i.e., spinning) until the write-present flag is cleared. As opposed to conventional techniques in which readers and writers are not locked out until the writer acquires the write-lock, the writer-present flag locks out other readers and writers once a writer begins waiting for a write-lock (that is, sets a writer-present flag). This feature allows a write-lock method to acquire a write-lock without having to contend with waiting readers and writers trying to obtain read-locks and write-locks, such as when using conventional spinlock implementations.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for data access by a CPU, the method comprising the steps of: (a) a reader performing a first writer-present flag status check, and if said first writer-present, flag status check determines that said writer-present flag is: (i) set, repeating said step of checking; or (ii) cleared, initially acquiring said read-lock, (b) subsequent to said initially acquiring said read-lock, said reader performing, a second writer-present flag status check, and (c) if said second writer-present flag status check determines that said writer present flag is: (i) set, releasing said read-lock and repeating said first writer-present flag status check; or (ii) cleared, maintaining said read-lock. 2. (ii) The method of claim 1 wherein said repeating said step of checking includes implementing a spinlock. 3. The method of claim 1 wherein said read-lock is: (a) associated with a CPU group that includes a plurality of CPUs; and (b) for data accessed via said CPU group. 4. The method of claim 1 further comprising the step of: (c) releasing said read-lock. 5. The method of claim 4 wherein releasing said read-lock includes clearing said read-lock flag. 6. A method for data access by a CPU, the method comprising the steps of: (a) checking, by a writer, if a write-present flag is set or cleared; and (b) when said writer-present flag is cleared then acquiring by said writer a write-lock; wherein said step of checking includes performing a first writer-present flag status check, and if said first writer-present flag status check determines that said writer-present flag is: (i) set, repeating said step of checking; or (ii) cleared, setting said writer-present flag, and (c) subsequent to setting said writer-present flag, performing a second writer-present flag status check, and (d) if said second writer-present flag status check determines that said setting said writer-present flag is: (i) unsuccessful, repeating said first write-present flag status check; or (ii) successful, performing a read-lock check, if said read-lock check determines that said read-lock is: (A) set, repeating said performing a read-lock check; or (B) cleared, acquiring said write-lock. 7. The method of claim 6 wherein said repeating said step of checking includes implementing a spinlock. 8. The method of claim 6 wherein said repeating said step of performing a second writer-present flag status check includes implementing a spinlock. 9. The method of claim 6 wherein said write-lock is (a) associated with a CPU group that includes a plurality of CPUs; and (b) for data accessed via said CPU group. 10. The method of claim 6 further comprising the step of: (c) releasing said write-lock. 11. The method of claim 10 wherein releasing said write-lock includes clearing said writer-present flag. 12. A system comprising: (a) a processing system containing one or more processors, said processing system being configured to: (i) checking by a reader, via a first writer-present flag status check, and if said first writer-present flag status check determines that said writer-present flag is: (A) set, repeating said checking; or (B) cleared, initially acquiring said read-lock, (ii) subsequent to said initially acquiring said read-lock, said reader performing a second writer-present flag status check, and (iii) if said second writer-present flag status check determines that said writer-present flag is: (A) set, releasing said read-lock and repeating said first writer present flag status check: or (B) cleared, maintaining said read-lock. 13. A system comprising: (a) a processing system containing one or more processors, said processing system being configured to: (i) check, by a writer, if a writer-present flag is set or cleared; and (ii) when said writer-present flag is cleared then acquire by said writer a write-lock; wherein said processing system is further configured to perform said checking via a first writer-present flag status check, and if said first-writer present flag status check determines that said writer-present flag is: (A) set, repeating said step of checking; or (B) cleared, setting said writer-present flag, and (iii) subsequent to setting said writer-present flag, performing a second writer-present flag status check, and (iv) if said second writer-present flag status check determine that said setting said writer-present flag is: (A) unsuccessful, repeating said first writer-present flag status check or (B) successful, performing a read-lock check and if said read-lock check determines that said read-lock is: (I) set, repeating said performing a read-lock check; or (II) cleared, acquiring said write-lock. 14. A computer-readable storage medium having embedded thereon computer-readable code for data access by a CPU, the computer-readable code comprising program code for: (a) a reader performing a first writer-present flag status check, and if said first writer-present flag status cheek determines that said writer-present flag is: (i) set, repeating said step of checking; or (ii) cleared, initially acquiring said read-lock. (b) subsequent to said initially acquiring said read-lock, said reader performing a second writer-present flag status check, and (c) if said second writer-present flag status check determines that said writer present flag is: (i) set, releasing said read-lock and repeating said first writer-present flag status check; or (ii) cleared, maintaining said read-lock. 15. A computer-readable storage medium having embedded thereon computer-readable code for data access by a CPU, the computer-readable code comprising program code for: (a) checking, by a writer, if a write-present flag is set or cleared; and (b) when said writer-present flag is cleared then acquiring by said writer a write-lock; wherein said program code further performs said checking via a first writer-present flag status check, and if said first writer-present flag status check determines that said writer-present flag is: (i) set, repeating said step of checking; or (ii) cleared, setting said writer-present flag, and (c) subsequent to setting said writer-present flag, performing a second writer-present flag status check, and (d) if said second writer-present flag status check determines that said setting said writer-present flag is: (i) unsuccessful, repeating said first write-present flag status check; or (ii) successful, performing a read-lock check, if said read-lock check determines that said read-lock is: (A) set, repeating said performing a read-lock check; or (B) cleared, acquiring said write-lock.

Assignees

Inventors

Classifications

  • G06F9/526Primary

    Mutual exclusion algorithms · CPC title

  • Reliability improvement, data loss prevention, degraded operation etc · CPC title

  • G06F9/50Primary

    Allocation of resources, e.g. of the central processing unit [CPU] · CPC title

  • Correctness of operation, e.g. memory ordering · CPC title

  • Details of cache specific to multiprocessor cache arrangements · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9569265B2 cover?
Data access optimization features the innovative use of a writer-present flag when acquiring read-locks and write-locks. Setting a writer-present flag indicates that a writer desires to modify a particular data. This serves as an indicator to readers and writers waiting to acquire read-locks or write-locks not to acquire a lock, but rather to continue waiting (i.e., spinning) until the write-pr…
Who is the assignee on this patent?
Check Point Software Tech Ltd
What technology area does this patent fall under?
Primary CPC classification G06F9/526. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 14 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).