WO2003042811A1 - Efficient fifo communication using semaphores - Google Patents
Efficient fifo communication using semaphores Download PDFInfo
- Publication number
- WO2003042811A1 WO2003042811A1 PCT/IB2002/004510 IB0204510W WO03042811A1 WO 2003042811 A1 WO2003042811 A1 WO 2003042811A1 IB 0204510 W IB0204510 W IB 0204510W WO 03042811 A1 WO03042811 A1 WO 03042811A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- fifo buffer
- data elements
- count
- available
- counter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/10—Indexing scheme relating to groups G06F5/10 - G06F5/14
- G06F2205/108—Reading or writing the data blockwise, e.g. using an extra end-of-block pointer
Definitions
- the invention relates to a method and a device for writing data elements into a shared FIFO buffer, a method and a device for reading data elements from a shared FIFO buffer, a computer system, and a corresponding computer program product.
- the problem of mutual exclusion is an important issue in concurrent processing. Multiple processes are often executed concurrently on one or more processors.
- the processors often share resources such as storage devices, input/output devices and memory.
- resources such as storage devices, input/output devices and memory.
- a semaphore is used as synchronisation mechanism that mediates access to share resources.
- the semaphore has an associated value, which is generally set to the number of resources regulated by the semaphore.
- Each time the semaphore is acquired by the process the value of the semaphore is decremented by 1. After the value of the semaphore reaches zero, new attempts to acquire the semaphore are blocked until the semaphore is released by one of the processors and the value of the semaphore is incremented by 1.
- the semaphore is a non-negative integer variable on which only P- and N- operations are allowed. A N-operation is used by a producer process to indicate that it has produced information for the use by the consumer process.
- a P-operation is used by a consumer process when it requests information produced by a producer process.
- the P- operation is used to enter mutual exclusion while the N-operation is used to exit mutual exclusion.
- producer-consumer problem arises in concurrent processing.
- the basis of the producer-consumer problem is that the producer of data must have means to store said data until the consumer is ready and the consumer must not try to consume data that is not there. It appears to be impractical for the producer to produce data only when the consumer is ready to consume. If either of these processes arrive early, it is required to wait.
- the data rates of the consumer or the producer vary during the execution of the programme or, alternatively, if the data rates of the producer or the consumer are not the same, buffering the data becomes necessary.
- the buffer is a segment of memory, to which both the producer and the consumer have access.
- both producer and consumer maintain a steady high average rate of data transfer without fearing a malfunction because of occasional peaks.
- concurrent processes are linked in producer-consumer pairs and share a finite buffer where every portion is accessible to each process, the slow consumer may considerably delay the entire system.
- the messages generated by the associate producer will invade the whole buffer and will therefore block the system.
- Figs. 3 A and 3B show a standard method to write into and to read from a bounded FIFO buffer which is implemented in a shared memory cached between two processors, wherein semaphores are used for synchronisation.
- the operation of said method to read from and to write to a bounded FIFO buffer is based on two semaphores: the semaphore 'data' is used to prevent reading.from an empty FIFO buffer and the semaphore 'room' is used to prevent writing to a full FIFO buffer.
- the value of the semaphore 'data' corresponds to the number of valid data entries in the FIFO buffer while the value of the semaphore 'room' corresponds to the number of free positions in the FIFO buffer.
- Fig. 3 A shows a method to write data into said bounded FIFO buffer based on the semaphore 'room'.
- a P-operation on the space in the FIFO buffer (P(room)) is performed, i.e. a request for space or room for a data element in the FIFO buffer is carried out. If there is no space or room available in the FIFO buffer the writer process has to wait. But, if there is room in the FIFO buffer, a data element is input into a queue and a N- operation (N(data), i.e. signalling that new data elements are available in the FIFO buffer, is performed.
- N(data) i.e. signalling that new data elements are available in the FIFO buffer
- Fig. 3B shows a method to read data from said bounded FIFO buffer based on a semaphore 'data'.
- a P-operation on data elements in the FIFO buffer (P(data)), i.e. a request, if data elements are available in the FIFO buffer, is carried out. If there are no data elements available in the FIFO buffer, the reading process has to wait. But, if there are data elements in the FIFO buffer, data elements are output from a queue and a N-operation (N(data)), i.e. signalling that new space is available in the FIFO buffer, is performed.
- the two semaphores 'room' and 'data' are repeatedly communicated between the two process caches, resulting in an increased cache coherence traffic.
- This object is solved by a method for writing data into the shared FIFO buffer according to claim 1, a method for reading data from the shared FIFO buffer according to claim 4, a device for writing data into the shared FIFO buffer according to claim 9, and a device for reading data from the shared FIFO buffer according to claim 10.
- the invention is based on the idea to perform the signalling that a data element or a storage space for a data element is available in said FIFO buffer, i.e.
- the shared FIFO buffer when data elements are to be written into the shared FIFO buffer, first of all, it is determined whether storage space is available in said FIFO for storing data elements therein.
- the input of said FIFO buffer is blocked when there is no storage space available in said FIFO buffer, while data elements are input into said FIFO buffer when there are storage space available in said FIFO buffer.
- the count of a write counter is incremented when the data elements are input into said FIFO buffer, wherein said count represents the number of data elements, which have been input into said FIFO buffer. After the count has reached the value of L, i.e. when L data elements have been input into said FIFO buffer, a first signalling operation is performed.
- Reading data elements from a shared FIFO buffer is performed symmetrically to the writing of data elements into said shared FIFO buffer: First of all, it is determined whether a data element is available in said FIFO buffer to be read from the said FIFO buffer. The output of said FIFO buffer is blocked when there are no data elements available in said FIFO buffer, while data elements are output from said FIFO buffer when there are data elements available in said FIFO buffer. The count of a read counter is incremented when the data elements are output from said FIFO buffer, wherein said count represents the number of data elements, which have been output from said FIFO buffer. After the count has reached the value of L, i.e. when L data elements have been output from said FIFO buffer, a second signalling operation is performed.
- the invention is based on the recognition that problems arise in a situation where the reader and writer process are running on different processors and the FIFO buffer is implemented in shared memory, which is cached by both processors and kept coherent by cache coherence protocol.
- the faster process has to be unblocked (semaphore counter > 0) by a N-operation being an increment of the semaphore counter, i.e.
- the pixels are directly read or written from/to the FIFO but, because L N-operations are collected, the other process (the reader in case of writing and the writer in case of reading) receives or 'sees' the pixels in bursts of L pixels.
- the signalling rate of the other process is L times lower. This enables a decoupling of the synchronization, i.e. informing the other process that data elements or storage space for data elements is available, and communication, i.e. reading or writing from/to the FIFO buffer, between a producer and the consumer process.
- a further advantage of the present invention is that cache coherence traffic is reduced, since one signalling operation, indicating that L data elements are available, is used in contrast to L-times one signalling operation, indicating that one data element is available.
- a still further advantage of invention is that the reader and writer are synchronised at a courser granularity than the communication. This leads to fewer semaphore operations with less machine instructions, less data traffic to keep caches consistent, and fewer blocking and unblocking of processes by the thread scheduler / operating system.
- said first signalling operation when writing data elements into a shared FIFO buffer, indicates that L data elements, which have been input into said FIFO buffer, are now available to be output from said FIFO buffer.
- said second signalling operation indicates that L storage spaces for L data elements are now available, such that L data elements can be input into said FIFO buffer.
- said write counter and/or said read counter is incremented from a predefined starting count onwards. It is determined whether the count of said write counter and/or the count of said read counter has reached the predefined first limit L, upon reaching the predefined first limit L the first signalling operation - when writing data elements into said FIFO buffer - or the second signalling operation - when reading data elements from said FIFO buffer - is performed. When said count of said write counter and/or said count of said read counter has reached said predefined first limit L said write counter and/or said read counter is reset to said predefined starting point.
- the predefined starting count is 0 and the predefined first limit L is an integer which is larger than 1.
- the object of the invention is furthermore solved by a device for writing data elements into a shared FIFO buffer corresponding to said method for writing data elements into a shared FIFO buffer as well as a device for reading data elements from a shared FIFO buffer corresponding to said method for reading data elements into a shared FIFO buffer.
- a computer system according to claim 11 is also provided.
- Fig 1 shows a block diagram of a device for writing data elements into a shared FIFO buffer according to a first embodiment
- Fig 2 shows a block diagram of a device for reading data elements from a shared FIFO buffer according to a second embodiment
- Fig 3 A shows the flow chart of a method for writing data elements into a shared FIFO buffer according to the prior art
- Fig. 3B shows the flow chart of a method for writing data elements into a shared FIFO buffer according to her prior art.
- FIFO buffer 100 is implemented in the shared memory in a computer system cached by at least two processors in said computer system and kept coherent by cache coherence protocol. Reader process and the writer processes are running on different processors but have access to said shared FIFO buffer 100.
- Fig. 1 shows a block diagram of a device for writing data elements into the shared FIFO buffer 100 according to the first embodiment. Said device comprises an input blocking means 10, an input means 11, a first determining means 14, a write counter 12, a first signalling means 13, a second determining means 17 and a first resetting means 18. The input blocking means 10.
- the input blocking means 10 is furthermore connected to the first determining means 14, which receives the status of the shared FIFO buffer 100 as input signal.
- the input means 11, which is connected to the input blocking means 10 and the input of the shared FIFO buffer 100, is also connected to the write counter 12.
- the write counter 12 is furthermore connected to the first resetting means 18 and the second determining means 17.
- the second determining means 17 is also connected to the first signalling means 13.
- the first determining means 14 determines if storage space (room) is available in said FIFO buffer 100, into which data elements can be written, and outputs the determimng result to the first blocking means 10.
- the input blocking means 10 blocks an input to said FIFO buffer 100 when the first determining means has determined that no storage space (room) is available in said FIFO buffer 100. However, if the first determining means 14 has determined that storage space (room) is available in said FIFO buffer 100, the input means inputs a data element into said FIFO buffer 100. Thereafter, the input means 11 informs the write counter 12 that one data element has been input into said FIFO buffer 100.
- the write counter 12 increments the count thereof if it has been informed by the input means 11 that one data element has been input into said FIFO buffer 100. Hence, the count of the write counter 12 indicates the number of the data elements input into said FIFO buffer 100.
- the second determimng means 17 determines whether the count of the write counter 12 has reached a first limit L. When the count of the write counter 12 has reached the first limit L, the second determining means 17 informs the first signalling means 13 and the first resetting means 18 that the count of the write counter 12 has reached the first limit L.
- the first signalling means 13 performs a first signalling operation when it has been notified by the second determining means 17 that the count of the write counter 12 has reached the first limit L.
- the first signalling operation indicates that L data elements are now available to be output from said FIFO buffer 100, i.e. the first signalling operation represents one N- operation regarding the available L data elements.
- the first resetting means 18 When the first resetting means 18 is notified by the second determining means 17 that the count of the write counter 12 has reached the first limit L - and preferably after the first signalling operation is carried out - the first resetting means 18 resets the count of the write counter 12 to zero. Accordingly, the buffering of the first signalling operation is initiated again after the count of the write counter 12 has reached the first limit L.
- Fig. 2 shows a block diagram of a device for reading data elements from said shared FIFO buffer 100 according to the second embodiment.
- Said device comprises an output blocking means 26, an output means 25, a third determining means 24, a read counter 22, a second signalling means 23, a fourth determining means 27 and a second resetting means 28.
- the output blocking means 26 receives an output request or a read request for the FIFO buffer as input signal, and is connected to the output means 25, which is again connected to the output of the shared FIFO buffer 100.
- the output blocking means 26 is furthermore connected to the third determining means 24, which receives the status of the shared FIFO buffer 100 as input signal.
- the output means 25, which is connected to the output blocking means 26 and the output of the shared FIFO buffer 100, is also connected to the read counter 22.
- the read counter 22 is furthermore connected to the second resetting means 28 and the fourth determining means 27.
- the fourth determimng means 27 is also connected to the second signalling means 13.
- the third determining means 24 determines if data elements are available in said FIFO buffer 100 to be read from said FIFO buffer 100, and outputs of the determining result to the output blocking means 126.
- the output blocking means 26 blocks the output from said FIFO buffer 100 when the third determining means 24 has determined that no data elements are available in said FIFO buffer 100. However, if the third determining means 24 has determined that data elements are available in said FIFO buffer 100, the output means 25 outputs or extracts a data element from said FIFO buffer 100.
- the output means 25 informs the read counter 22 that one data element has been output from said FIFO buffer 100.
- the read counter 22 increments the count thereof, if it has been informed by the output means 25 that one data element has been output from said FIFO buffer 100.
- the count of the read counter 12 indicates the number of the data elements output from said FIFO buffer 100 and therefore also the number of available storage spaces for data elements in said FIFO buffer 100.
- the fourth determining means 27 determines whether the count of the read counter 22 has reached a first limit L.
- the fourth determimng means 27 informs the second signalling means 23 and the second resetting means 28 that the count of the read counter 22 has reached the first limit L.
- the second signalling means 23 performs a second signalling operation when it has been notified by the fourth determining means 27 that the count of the read counter 22 has reached the first limit L.
- the second signalling operation indicates that L data elements have been output from the FIFO buffer 100 by the output means 25 and that there are now L storage spaces available to in said FIFO buffer 100 to be filled with another L data elements, i.e. the second signalling operation represents one N-operation on the available L storage spaces.
- the second resetting means 28 When the second resetting means 28 is notified by the fourth determining means 17 that the count of the read counter 22 has reached the first limit L - and preferably after the second signalling operation is carried out - the second resetting means 28 resets the count of the read counter 22 to zero. Accordingly, the buffering of the second signalling operation is initiated again after the count of the read counter 22 has reached the first limit L.
- the device for reading and the device for writing data elements from/into said shared FIFO buffer 100 may be implemented in a computer system based on in concurrent processing or in a computer system based on multi task processing. Care must be taken, when N-operations on available data elements in said
- FIFO buffer 100 are buffered as suggested in the first embodiment of the present invention, since deadlock may occur. For example, if a process A sends a token to another process B and then starts waiting for a reply from the process B, deadlock may occur if the process B does not get notified of the token send by the process A because the N-operation on available data elements are buffered until L data elements are available to be output from said FIFO buffer 100.
- This can be avoided by implementing a block handler for each process.
- the block handler is executed by the overall process scheduler right before a process is blocked, for example, because a semaphore counter is zero.
- the block handler is implemented by performing said first signalling operations, i.e. notifying that data elements are available in the FIFO buffer to be read by a reader process, for all FIFO buffers it is writing to.
- the two processors are running processes that communicate with each other by means of FIFO's that are stored in shared memory.
- the interconnection is typically a bus.
- the processors include caches which have to be kept coherent by means of a cache coherence protocol that is implemented by the processors and the interconnection.
- Software communication implies also synchronisation: the reader should not read before data is available and the writer should not write before free space is available.
- the goal of the invention is to synchronise the reader and writer at a courser granularity than the communication. This leads to fewer semaphore operations, less data traffic to keep caches consistent, and fewer blocking and unblocking of processes by the thread scheduler / operating system.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
Claims
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/495,403 US20040260888A1 (en) | 2001-11-13 | 2002-10-25 | Efficient fifo communication using semaphores |
| JP2003544578A JP2005509943A (en) | 2001-11-13 | 2002-10-25 | Efficient FIFO communication using semaphores |
| EP02779804A EP1449061A1 (en) | 2001-11-13 | 2002-10-25 | Efficient fifo communication using semaphores |
| CN02822479.5A CN1585924B (en) | 2001-11-13 | 2002-10-25 | Method and device for FIFO communication using semaphore and computer system |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP01204332.9 | 2001-11-13 | ||
| EP01204332 | 2001-11-13 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2003042811A1 true WO2003042811A1 (en) | 2003-05-22 |
Family
ID=8181226
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2002/004510 Ceased WO2003042811A1 (en) | 2001-11-13 | 2002-10-25 | Efficient fifo communication using semaphores |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20040260888A1 (en) |
| EP (1) | EP1449061A1 (en) |
| JP (1) | JP2005509943A (en) |
| CN (1) | CN1585924B (en) |
| WO (1) | WO2003042811A1 (en) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050097558A1 (en) * | 2003-10-31 | 2005-05-05 | De Bonet Jeremy S. | System and method for a symmetric architecture for multimedia players |
| US8429661B1 (en) * | 2005-12-14 | 2013-04-23 | Nvidia Corporation | Managing multi-threaded FIFO memory by determining whether issued credit count for dedicated class of threads is less than limit |
| US7913048B2 (en) * | 2006-07-26 | 2011-03-22 | International Business Machines Corporation | Data subscribe-and-publish mechanisms and methods for producer-consumer pre-fetch communications |
| JP5381919B2 (en) * | 2010-07-09 | 2014-01-08 | 株式会社デンソー | FIFO data reading device |
| CN102799415A (en) * | 2012-06-13 | 2012-11-28 | 天津大学 | File reading and writing parallel processing method combining with semaphore |
| CN107135200A (en) * | 2017-03-29 | 2017-09-05 | 中国航空无线电电子研究所 | High-speed serial bus data transmission method for uplink based on FPGA |
| CN113380280B (en) * | 2018-12-29 | 2022-11-22 | 百度在线网络技术(北京)有限公司 | Data processing method, device and storage medium |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4623997A (en) * | 1984-12-13 | 1986-11-18 | United Technologies Corporation | Coherent interface with wraparound receive and transmit memories |
| GB2291230A (en) * | 1992-10-15 | 1996-01-17 | Fujitsu Ltd | FIFO memory device for variable length data items |
| EP0768600A1 (en) * | 1995-10-13 | 1997-04-16 | Compaq Computer Corporation | Locked exchange Fifo |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US592673A (en) * | 1897-10-26 | tonee | ||
| US4486854A (en) * | 1981-10-15 | 1984-12-04 | Codex Corporation | First-in, first-out memory system |
| US4725946A (en) * | 1985-06-27 | 1988-02-16 | Honeywell Information Systems Inc. | P and V instructions for semaphore architecture in a multiprogramming/multiprocessing environment |
| JPS62172840A (en) * | 1986-01-27 | 1987-07-29 | Hitachi Ltd | Transferring system for data |
| DE3689151D1 (en) * | 1986-12-30 | 1993-11-11 | Ibm | Non-locking queue mechanism. |
| CA1286421C (en) * | 1987-10-14 | 1991-07-16 | Martin Claude Lefebvre | Message fifo buffer controller |
| JPH02300939A (en) * | 1989-05-16 | 1990-12-13 | Toshiba Corp | Semaphore operation system |
| JPH07191944A (en) * | 1991-09-11 | 1995-07-28 | Internatl Business Mach Corp <Ibm> | System and method for prevention of deadlock in instruction to many resources by multiporcessor |
| US5450546A (en) * | 1992-01-31 | 1995-09-12 | Adaptec, Inc. | Intelligent hardware for automatically controlling buffer memory storage space in a disk drive |
| JPH064314A (en) * | 1992-06-18 | 1994-01-14 | Nec Home Electron Ltd | Inter-task synchronizing communication equipment |
| US5365485A (en) * | 1993-11-22 | 1994-11-15 | Texas Instruments Incorporated | Fifo with fast retransmit mode |
| US5664223A (en) * | 1994-04-05 | 1997-09-02 | International Business Machines Corporation | System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively |
| KR970029070A (en) * | 1995-11-04 | 1997-06-26 | 김광호 | First-in, first-out memory device with different size of input / output data and method |
| US5872980A (en) * | 1996-01-25 | 1999-02-16 | International Business Machines Corporation | Semaphore access control buffer and method for accelerated semaphore operations |
| JPH1049381A (en) * | 1996-07-04 | 1998-02-20 | Internatl Business Mach Corp <Ibm> | Method and system for processing plural data process requests, and method and system for executing program |
| JP3733695B2 (en) * | 1997-02-05 | 2006-01-11 | 富士ゼロックス株式会社 | Database management system |
| JP3545906B2 (en) * | 1997-05-29 | 2004-07-21 | 富士通株式会社 | File system control method, parallel file system and program storage medium |
| JPH1131080A (en) * | 1997-07-11 | 1999-02-02 | Nec Corp | Deadlock detection method for dynamic lock and system therefor |
| JP2000293387A (en) * | 1999-04-05 | 2000-10-20 | Nec Corp | Event notification system |
| US6401149B1 (en) * | 1999-05-05 | 2002-06-04 | Qlogic Corporation | Methods for context switching within a disk controller |
| DE60022186T2 (en) * | 2000-08-17 | 2006-06-08 | Texas Instruments Inc., Dallas | Maintaining a remote queue using two counters in the Move Control with hubs and ports |
| JP4477210B2 (en) * | 2000-09-27 | 2010-06-09 | インテレクチュアル ベンチャーズ ホールディング 56 エルエルシー | Information providing system and recording medium |
| US20020146023A1 (en) * | 2001-01-09 | 2002-10-10 | Regan Myers | Transport stream multiplexer utilizing smart FIFO-meters |
| US6877049B1 (en) * | 2002-05-30 | 2005-04-05 | Finisar Corporation | Integrated FIFO memory management control system using a credit value |
-
2002
- 2002-10-25 EP EP02779804A patent/EP1449061A1/en not_active Ceased
- 2002-10-25 US US10/495,403 patent/US20040260888A1/en not_active Abandoned
- 2002-10-25 CN CN02822479.5A patent/CN1585924B/en not_active Expired - Fee Related
- 2002-10-25 JP JP2003544578A patent/JP2005509943A/en not_active Ceased
- 2002-10-25 WO PCT/IB2002/004510 patent/WO2003042811A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4623997A (en) * | 1984-12-13 | 1986-11-18 | United Technologies Corporation | Coherent interface with wraparound receive and transmit memories |
| GB2291230A (en) * | 1992-10-15 | 1996-01-17 | Fujitsu Ltd | FIFO memory device for variable length data items |
| EP0768600A1 (en) * | 1995-10-13 | 1997-04-16 | Compaq Computer Corporation | Locked exchange Fifo |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1449061A1 (en) | 2004-08-25 |
| CN1585924A (en) | 2005-02-23 |
| CN1585924B (en) | 2010-05-26 |
| US20040260888A1 (en) | 2004-12-23 |
| JP2005509943A (en) | 2005-04-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100501289B1 (en) | How to Improve Input / Output Performance Through Asynchronous Interface with Input / Output Sub-Processors | |
| CA2706737C (en) | A multi-reader, multi-writer lock-free ring buffer | |
| US6493773B1 (en) | Data validity measure for efficient implementation of first-in-first-out memories for multi-processor systems | |
| US6601120B1 (en) | System, method and computer program product for implementing scalable multi-reader/single-writer locks | |
| US6725457B1 (en) | Semaphore enhancement to improve system performance | |
| US6782440B2 (en) | Resource locking and thread synchronization in a multiprocessor environment | |
| TWI359358B (en) | Methods, system and machine-readable storage mediu | |
| US6026451A (en) | System for controlling a dispatch of requested data packets by generating size signals for buffer space availability and preventing a dispatch prior to a data request granted signal asserted | |
| KR20210133257A (en) | Handling of Ring Buffer Updates | |
| US7793023B2 (en) | Exclusion control | |
| US20040260888A1 (en) | Efficient fifo communication using semaphores | |
| JP2006503361A (en) | Data processing apparatus and method for synchronizing at least two processing means in data processing apparatus | |
| US11481250B2 (en) | Cooperative workgroup scheduling and context prefetching based on predicted modification of signal values | |
| US20040260890A1 (en) | P-and v-semaphore operation | |
| CN108958903B (en) | Embedded multi-core central processor task scheduling method and device | |
| US20210311773A1 (en) | Efficient Condition Variables via Delegated Condition Evaluation | |
| CN1258362A (en) | Communication DMA Device | |
| US6823467B1 (en) | Method and apparatus for arbitrary resolution interval timeouts | |
| CN108958904B (en) | Driver framework of lightweight operating system of embedded multi-core central processing unit | |
| CN108958905B (en) | Lightweight operating system of embedded multi-core central processing unit | |
| WO2025030825A1 (en) | Information synchronization method and apparatus | |
| US7047245B2 (en) | Processing system | |
| US20080034169A1 (en) | Pseudo-FIFO memory configuration using dual FIFO memory stacks operated by atomic instructions | |
| US7073031B1 (en) | Multi-processor system having data coherency | |
| KR20260013285A (en) | Systems and methods for moving data between system components |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| WWE | Wipo information: entry into national phase |
Ref document number: 2002779804 Country of ref document: EP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 20028224795 Country of ref document: CN Ref document number: 10495403 Country of ref document: US |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2003544578 Country of ref document: JP |
|
| WWP | Wipo information: published in national office |
Ref document number: 2002779804 Country of ref document: EP |
|
| WWR | Wipo information: refused in national office |
Ref document number: 2002779804 Country of ref document: EP |
|
| WWW | Wipo information: withdrawn in national office |
Ref document number: 2002779804 Country of ref document: EP |