Patent classifications
G06F9/526
SOFTWARE LOCK MANAGEMENT
A plurality of low-performance locks within a computing environment are monitored. It is identified that, during a time window, threads of one of the plurality of low-performance locks are in a lock queue for an average time that exceeds a time threshold. It is further identified that, during that same time window, the average queue depth of the one of the plurality of low-performance locks exceeds a depth threshold. The one of the plurality of low-performance locks is converted from a low-performance lock into a high-performance lock.
Reader bias based locking technique enabling high read concurrency for read-mostly workloads
A data object has a lock and a condition indicator associated with it. Based at least partly on detecting a first setting of the condition indicator, a reader stores an indication that the reader has obtained read access to the data object in an element of a readers structure and reads the data object without acquiring the lock. A writer detects the first setting and replaces it with a second setting, indicating that the lock is to be acquired by readers before reading the data object. Prior to performing a write on the data object, the writer verifies that one or more elements of the readers structure have been cleared.
Priority based arbitration
Methods of arbitrating between requestors and a shared resource are described. The method comprises generating a vector with one bit per requestor, each initially set to one. Based on a plurality of select signals (one per decision node in a first layer of a binary decision tree, where each select signal is configured to be used by the corresponding decision node to select one of two child nodes), bits in the vector corresponding to non-selected requestors are set to zero. The method is repeated for each subsequent layer in the binary decision tree, based on the select signals for the decision nodes in those layers. The resulting vector is a one-hot vector (in which only a single bit has a value of one). Access to the shared resource is granted, for a current processing cycle, to the requestor corresponding to the bit having a value of one.
CHAINED RESOURCE LOCKING
Devices and techniques for CHAINED RESOURCE LOCKING are described herein. Threads form a last-in-first-out (LIFO) queue on a resource lock to create a chained lock on the resource. A data store representing the lock for the resource holds the previous thread’s identifier, enabling a subsequent thread to wake the previous thread using the identifier when the subsequent thread releases the lock. Generally, the thread releasing the lock need not interact with the data store, reducing contention for the data store among many threads.
Computer program, method, and device for distributing resources of computing device
A computer program stored in a computer readable storage medium is provided. It includes encoded commands, in which when the computer program is executed by one or more processors of a computer system. The computer program allows the one or more processors to perform certain commands for distributing resources of a computing device.
Distributed system for distributed lock management and method for operating the same
Disclosed herein are a distributed system and a method for operating the distributed system. The method for operating a distributed system including a server and multiple clients includes acquiring, by a first client of the multiple clients, a lock on a shared resource using a first table of the server and a second table of the client, and releasing, by the first client, a lock on the shared resource using the first table and the second table, wherein the first table is a lock (DSLock) table for storing information about a distributed shared resource, and the second table is a data structure (DSLock_node) table for a lock request.
VEHICULAR ARBITRATION SYSTEM
A vehicular arbitration system includes: a main manager configured to receive one or more requests from a plurality of first application execution units and to determine a request for operating a predetermined on-vehicle device based on the received one or more requests and a predetermined rule; and a plurality of sub-managers respectively configured to arbitrate the request determined by the main manager and a request input from at least one second application execution unit that is different from the plurality of first application execution units and to control the on-vehicle device based on an arbitration result.
Processor with Hardware Pipeline
A processor includes a blocking circuit between an upstream section and a downstream section of a hardware pipeline, and control circuitry which triggers the upstream section to process an upstream phase of a first task, with the blocking circuit in an open state whereby first data from the processing of the upstream phase of the first task passes through from the upstream section to be processed in a downstream phase of the first task. In response to detecting that the upstream section has finished processing the upstream phase of the first task, the control circuitry triggers the upstream section to start processing a second task while the downstream section is still processing the downstream phase of the first task, and switches the blocking circuit to a closed state blocking second data from the processing of the upstream phase of the second task passing to the downstream section.
DEVICE AND METHOD FOR SHARED MEMORY PROCESSING AND NON-TRANSITORY COMPUTER STORAGE MEDIUM
A device for shared memory processing is provided in implementations of the disclosure. The device for shared memory processing includes a set of shared memory units, a set of processing units, and a set of global clock synchronizers. Each shared memory unit corresponds to one global clock synchronizer and is coupled with K processing units via the corresponding global clock synchronizer, and the coupled K processing units perform conflict-free memory access to the shared memory unit during one instruction cycle of the corresponding global clock synchronizer. One instruction cycle of each global clock synchronizer includes N clocks, K is less than or equal to N, and K and N are integers greater than zero. A method for shared memory processing and a non-transitory computer storage medium are also provided.
Distributed components in computing clusters
The subject disclosure is directed towards components in different server clusters, e.g., comprising software components such as components of a distributed computing system. Components are available for use by distributed computing system applications, yet managed by the distributed computing system runtime such that only a single instance can be activated and exist within communicating (non-partitioned) clusters. Also described is recovery from a situation in which no longer partitioned clusters each have created the same component.