IP Library Granted Patent US 7,376,768
Granted Patent B1
US 7,376,768 · App. 10/741,093 · Granted May 20, 2008

Dynamic memory allocation for multiple targets

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,376,768
App. No.
10/741,093
Granted
May 20, 2008
Kind
B1
Abstract

A method for writing to multiple recording devices where at least two of the multiple recording devices are configured to respond dissimilarly to a command associated with the writing is provided. The method initiates with establishing a plurality of independent write threads configured to read data from a circular buffer composed of an initial amount of buffer elements. Then, each one of the plurality of independent write threads are associated with one of the multiple recording devices. Next, detection of when a write thread associated with a fastest one of the multiple recording devices is reading a last available buffer element occurs. In response to this detection the method includes adding at least one additional buffer element to the circular buffer. A computer readable medium and a system configured to write to multiple recording devices simultaneously are also provided.

Claims (33)

1. A method for writing to multiple recording devices where at least two of the multiple recording devices are configured to respond dissimilarly to a command associated with the writing, comprising:

reading data from a data source through a single read thread;

filling a circular buffer through the single read thread to a threshold level with data from the data source;

generating a plurality of independent write threads from the single read thread, the plurality of independent write threads configured to read from the circular buffer;

associating each one of the plurality of independent write threads with one of the multiple recording devices;

pausing each of the plurality of independent write threads through a synchronization signal at different buffer elements until an erase operation completes;

releasing each of the plurality of independent write threads at different points to initiate a writing session upon completion of the erase operation;

detecting when a write thread associated with a fastest one of the multiple recording devices is reading a last available buffer element; and

adding at least one additional buffer element to the circular buffer by adjusting an amount of buffer elements in response to the detecting.

2. The method of claim 1 , wherein the method operation of adding at least one additional buffer element to the circular buffer includes,

filling the at least one additional buffer element with data through the single read thread; and

designating the at least one additional buffer element as available.

3. The method of claim 1 , further comprising:

adding additional data to a buffer element after a slowest one of the multiple recording devices has read from the buffer element.

4. The method of claim 3 , wherein the additional data replaces previous data.

5. The method of claim 1 further comprising:

reducing the current amount of available buffer elements in the circular buffer when the current amount of available buffer elements is greater than a predefined amount; and

increasing the current amount of available buffer elements in the circular buffer when the current amount of available buffer elements is less than a predefined amount.

6. A computer readable storage medium having program instructions, stored thereon, for writing to multiple recording devices where at least two of the multiple recording devices are configured to respond dissimilarly to a command associated with the writing, comprising:

program instructions for reading data from a data source through a single read thread;

program instructions for filling a circular buffer through the single read thread to a threshold level with data from the data source;

program instructions for generating a plurality of independent write threads from the single read thread the plurality of independent write threads configured to read from the circular buffer;

program instructions for associating each one of the plurality of independent write threads with one of the multiple recording devices;

program instructions for pausing each of the plurality of independent write threads at different buffer elements through a synchronization signal until an erase operation completes;

program instructions for releasing each of the plurality of independent write threads at different points to initiate a writing session upon completion of the erase operation;

program instructions for detecting when a write thread associated with a fastest one of the multiple recording devices is reading a last available buffer element; and

program instructions for adding at least one additional buffer element to the circular buffer by adjusting an amount of buffer elements in response to the detecting.

7. The computer readable medium of claim 6 , wherein the program instructions for adding at least one additional buffer element to the circular buffer includes,

program instructions for filling the at least one additional buffer element with data through the single read thread; and

program instructions for designating the at least one additional buffer element as available.

8. The computer readable medium of claim 6 , further comprising:

program instructions for adding additional data to a buffer element after a slowest one of the multiple recording devices has read from the buffer element.

9. The computer readable medium of claim 8 , wherein the additional data replaces previous data.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2019
From: COREL SOFTWARE LLC
To: COREL CORPORATION
Reel/Frame 048067/0586 →
CHANGE OF NAME Recorded Nov 29, 2018
From: 8324450 CANADA INC.
To: COREL SOFTWARE LLC
Reel/Frame 047675/0950 →
ENTITY DOMICILE CHANGE Recorded Dec 17, 2014
From: 8324450 CANADA INC.
To: 8324450 DELAWARE LLC
Reel/Frame 034651/0817 →
PATENT RELEASE Recorded Jul 22, 2014
From: JPMORGAN CHASE BANK N.A., AS COLLATERAL AGENT
To: ALL MEDIA GUIDE, LLC; DIVX, LLC; SONIC SOLUTIONS LLC
Reel/Frame 033378/0685 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE, AND REPLACE THE ASSIGNMENT PREVIOUSLY RECORDED ON REEL 030427 FRAME 0331. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT TO 8324450 CANADA INC. Recorded Aug 1, 2013
From: COREL CORPORATION
To: 8324450 CANADA INC.
Reel/Frame 030986/0268 →
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2013
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ALL MEDIA GUDE, LLC; DIVX, LLC; SONIC SOLUTIONS LLC
Reel/Frame 030591/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2013
From: VECTOR CC HOLDINGS, SRL; VECTOR CC HOLDINGS III, SRL; VECTOR CC HOLDINGS IV, SRL
To: 8324450 CANADA INC.
Reel/Frame 030427/0403 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2013
From: COREL CORPORATION
To: VECTOR CC HOLDINGS, SRL; VECTOR CC HOLDINGS III, SRL; VECTOR CC HOLDINGS IV, SRL
Reel/Frame 030427/0331 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2012
From: SONIC SOLUTIONS LLC
To: COREL CORPORATION
Reel/Frame 027904/0924 →
MERGER Recorded Jun 30, 2011
From: SPARTA ACQUISITION SUB, INC
To: SONIC SOLUTIONS LLC
Reel/Frame 026533/0400 →
SECURITY AGREEMENT Recorded Mar 25, 2011
From: ALL MEDIA GUIDE, LLC; DIVX, LLC; SONIC SOLUTIONS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 026026/0111 →