G06F5/12

Lock-free sharing of live-recorded circular buffer resources

Novel techniques are described for lock-free sharing of a circular buffer. Embodiments can provide shared, lock-free, constant-bitrate access by multiple consumer systems to a live stream of audiovisual information being recorded to a circular buffer by a producer. For example, when a producer system writes a data stream to the circular buffer, the producer system records shared metadata. When a consumer system desires to begin reading from the shared buffer at a particular time, the shared metadata is used to compute a predicted write pointer location and corresponding dirty region around the write pointer at the desired read time. A read pointer of the consumer system can be set to avoid the dirty region, thereby permitting read access to a stable region of the circular buffer without relying on a buffer lock.

Lock-free sharing of live-recorded circular buffer resources

Novel techniques are described for lock-free sharing of a circular buffer. Embodiments can provide shared, lock-free, constant-bitrate access by multiple consumer systems to a live stream of audiovisual information being recorded to a circular buffer by a producer. For example, when a producer system writes a data stream to the circular buffer, the producer system records shared metadata. When a consumer system desires to begin reading from the shared buffer at a particular time, the shared metadata is used to compute a predicted write pointer location and corresponding dirty region around the write pointer at the desired read time. A read pointer of the consumer system can be set to avoid the dirty region, thereby permitting read access to a stable region of the circular buffer without relying on a buffer lock.

Imaging element, imaging apparatus, and control method for imaging element

An imaging apparatus including a frame buffer executes high-speed shooting consecutively in plural sessions. An imaging element includes a buffer, an image producing unit, a managing unit, and an output unit. The image producing unit produces an image in the case where an empty capacity of any of plural areas in the buffer exceeds a predetermined threshold value. The managing unit causes an area whose empty capacity exceeds the predetermined threshold value, of the plural areas to retain the image as a buffering image. The output unit extracts the buffering image from the buffer and outputting the buffering image, in order of the retention of the buffering image.

Imaging element, imaging apparatus, and control method for imaging element

An imaging apparatus including a frame buffer executes high-speed shooting consecutively in plural sessions. An imaging element includes a buffer, an image producing unit, a managing unit, and an output unit. The image producing unit produces an image in the case where an empty capacity of any of plural areas in the buffer exceeds a predetermined threshold value. The managing unit causes an area whose empty capacity exceeds the predetermined threshold value, of the plural areas to retain the image as a buffering image. The output unit extracts the buffering image from the buffer and outputting the buffering image, in order of the retention of the buffering image.

System and method for controlling flow of data through a buffer to increase time a bridge is in a low power state

A system including a bus, a buffer, a bridge and a module. The bus is connected to multiple devices. The buffer is connected to the bus. The buffer is configured to transfer data to or receive the data from one or more of the devices, forward the data during a forwarding mode, and receive the data during a gathering mode. The module is configured to determine whether a first condition and/or a second condition exist. Based on whether the first condition exists, the module is configures the bridge to transfer the data from the buffer to a host system or transitions the buffer from the gathering mode to the forwarding mode to forward the data from the buffer to the one or more of the devices. Based on whether the second condition exists, the module is configured to transition the buffer from the forwarding mode to the gathering mode.

System and method for controlling flow of data through a buffer to increase time a bridge is in a low power state

A system including a bus, a buffer, a bridge and a module. The bus is connected to multiple devices. The buffer is connected to the bus. The buffer is configured to transfer data to or receive the data from one or more of the devices, forward the data during a forwarding mode, and receive the data during a gathering mode. The module is configured to determine whether a first condition and/or a second condition exist. Based on whether the first condition exists, the module is configures the bridge to transfer the data from the buffer to a host system or transitions the buffer from the gathering mode to the forwarding mode to forward the data from the buffer to the one or more of the devices. Based on whether the second condition exists, the module is configured to transition the buffer from the forwarding mode to the gathering mode.

Packet processing system, method and device to optimize packet buffer space
09747226 · 2017-08-29 · ·

A buffer logic unit of a packet processing device that is configured to allocate single pages to two or more packets if the current packets stored on the page do not fully fill the single page and to store and maintain page slot specific page state data for each of the packet data stored on the pages.

Packet processing system, method and device to optimize packet buffer space
09747226 · 2017-08-29 · ·

A buffer logic unit of a packet processing device that is configured to allocate single pages to two or more packets if the current packets stored on the page do not fully fill the single page and to store and maintain page slot specific page state data for each of the packet data stored on the pages.

Allocating multiple operand data areas of a computer instruction within a program buffer

The disclosure herein provides systems, methods, and computer program products for managing a plurality of operands in a computer instruction. To manage the plurality of operands, a data buffer manager executed by a processor receives information from a caller. The information relates to the plurality of operands. The data buffer manager, also, compares a free data area size to a requested minimum data area of an operand size identified by the information; selects an address when the requested minimum data area is less than or equal to the free data area size; and inserts the operand at the address.

Allocating multiple operand data areas of a computer instruction within a program buffer

The disclosure herein provides systems, methods, and computer program products for managing a plurality of operands in a computer instruction. To manage the plurality of operands, a data buffer manager executed by a processor receives information from a caller. The information relates to the plurality of operands. The data buffer manager, also, compares a free data area size to a requested minimum data area of an operand size identified by the information; selects an address when the requested minimum data area is less than or equal to the free data area size; and inserts the operand at the address.