← Back to Patent Explorer
US5848295A Expired / Lapsed US ⏱️ 0.0 years remaining

System for allocating common memory in cache such that data is maintained when exiting first programming structure and entering second programming structure

Assignee: Apple Inc
•
Filing: 1995-06-07
•
Granted: 1998-12-08
•
Expires: 2015-06-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and means for allocating memory for a multiple program structure is described. The present invention includes a method and means for specifying a connection between the programming structures. The present invention also includes a method and means for connecting the programming structures by pointing the input data location of one of the programming structures to the output data location of the preceding programming structure, such that the buffer location used for storing data output from one programming structure becomes the buffer location used to input data into the next programming structure. The present invention also includes a method and means for creating an inter-task buffer. The inter-task buffer is created by first adding a first task which opens the inter-task buffer. The inter-task buffer is completed by adding another task directly after the first task. This second task closes the inter-task buffer. Adding a task between the first and second task takes the output buffer list as its input task list and takes the input buffer list as its output task list.

Inventors

  • 👤 Eric C. Anderson
  • 👤 A. Phillip Sohn

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 21:22
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5005; G06F9/5011; G06F9/5016; G06F9/54; G06F9/544

Claims Analysis

Total Claims: 43
Claim 1
Independent Claim 208 words
A method of automatically allocating memory for a plurality of executable programming structures for being utilized by a processor having a cache memory, each of said executable programming structures having executable program code to perform a predetermined function upon execution and having at least one input/output (I/O) section containing at least one reference designating an I/O buffer for transferring a data stream, each of said executable programming structures for being coupled to another of said executable programming structures to perform a specific function upon use by said processor, said method comprising the steps of: specifying at least one connection between a first and second of said executable programming structures; and directing a first I/O buffer reference specified in said first executable programming structure and a second I/O buffer specified in said second executable programming structure to a common memory location during caching prior to execution of said first and second executable programming structures, such that the common memory is allocated in the cache memory for use by said first and second executable programming structures upon execution of said first and second executable programming structures, such that data is maintained in the common memory location when exiting said first executable programming structure and entering said second executable programming structure.
Claim 2
Independent Claim 208 words
A method of automatically allocating memory for a plurality of executable programming structures for being utilized by a processor having a cache memory, each of said executable programming structures having executable program code to perform a predetermined function upon execution and having at least one input/output (I/O) section containing at least one reference designating an I/O buffer for transferring a data stream, each of said executable programming structures for being coupled to another of said executable programming structures to perform a specific function upon use by said processor, said method comprising the steps of: specifying at least one connection between a first and second of said executable programming structures; and directing a first I/O buffer reference specified in said first executable programming structure and a second I/O buffer specified in said second executable programming structure to a common memory location during caching prior to execution of said first and second executable programming structures, such that the common memory is allocated in the cache memory for use by said first and second executable programming structures upon execution of said first and second executable programming structures, such that data is maintained in the common memory location when exiting said first executable programming structure and entering said second executable programming structure.
Claim 3
Dependent Claim 77 words
The method as defined in claim 1 wherein said common memory location is a frame synchronous buffer, wherein the data stream from said first executable programming structure is coupled to said second executable programming structure, such that data is transferred into said buffer by said first executable programming structure during a first frame then said buffer is used by said second executable programming structure as input data in a second frame immediately subsequent to the first frame.
Claim 4
Dependent Claim 39 words
The method as defined in claim 2 wherein said frame synchronous buffer is an All-In/All-Out (AIAO) buffer that transfers a frame of data between the first executable programming structure and the second executable programming structure during a given frame.
Claim 5
Dependent Claim 30 words
The method as defined in claim 1 wherein said step of specifying includes specifying whether said reference designates said I/O buffer as an input buffer, an output buffer or both.
Claim 6
Dependent Claim 42 words
The method as defined in claim 1 wherein the operation of said I/O section is controlled by a plurality of flags, and further wherein said step of specifying includes setting said flags, such that said reference designates the characteristics of said buffer.
Claim 7
Dependent Claim 17 words
The method as defined in claim 1 wherein each of said executable programming structures comprises a module.
Claim 8
Dependent Claim 22 words
The method as defined in claim 1 wherein a set of one or more of said executable programming structures comprises a task.
Claim 9
Independent Claim 131 words
A method for creating an inter-task buffer comprising the steps of: adding a first task that specifies a first buffer by a first pointer, wherein said buffer is added to an inter-task buffer out list, such that said first new task opens said buffer; and allocating a location in memory for the first buffer; adding a second task directly after said first task that specifies a second buffer by a second pointer, wherein the step of adding a second task comprises the step of directing the second pointer to the first buffer allocated in memory, such that said second new task closes said inter-task buffer; and, adding zero or more additional tasks between the open and close task that utilize the first buffer, such that multiple tasks use the first buffer.
Claim 10
Independent Claim 131 words
A method for creating an inter-task buffer comprising the steps of: adding a first task that specifies a first buffer by a first pointer, wherein said buffer is added to an inter-task buffer out list, such that said first new task opens said buffer; and allocating a location in memory for the first buffer; adding a second task directly after said first task that specifies a second buffer by a second pointer, wherein the step of adding a second task comprises the step of directing the second pointer to the first buffer allocated in memory, such that said second new task closes said inter-task buffer; and, adding zero or more additional tasks between the open and close task that utilize the first buffer, such that multiple tasks use the first buffer.
Claim 11
Dependent Claim 33 words
The method as defined in claim 8 wherein if said new task closes said one inter-task buffer and said one inter-task buffer is the only one, then the output is coupled to nil.
Claim 12
Dependent Claim 69 words
The method as defined in claim 8 wherein said first buffer is an All-In/All-Out (AIAO) frame synchronous buffer, wherein the data stream from said first task is coupled to said second task, such that data is transferred into said buffer by said first task during a first frame then said buffer is used by said second task as input data in a second frame subsequent to the first frame.
Claim 13
Independent Claim 192 words
A method for creating a task list having a plurality of tasks, wherein each of said tasks has at least one input and at least one output, said method comprising the steps of: inserting a new task into said task list; and connecting said new task into said task list, wherein if a first task immediately preceding said new task in said task list has its output directed to at least one inter-task buffer then an input of said new task is directed to said at least one inter-task buffer of said first task by directing an input reference pointer to said at least one inter-task buffer, and further wherein if a second task immediately proceeding said new task in said task list is directed to said one inter-task buffer then said output of said new task is directed to one inter-task buffer of said proceeding task by directing an output reference pointer to said at least one inter-task buffer, such that the memory is allocated automatically, and further wherein the steps of inserting the new task and connecting said new task occur prior to execution of tasks in the task list.
Claim 14
Independent Claim 192 words
A method for creating a task list having a plurality of tasks, wherein each of said tasks has at least one input and at least one output, said method comprising the steps of: inserting a new task into said task list; and connecting said new task into said task list, wherein if a first task immediately preceding said new task in said task list has its output directed to at least one inter-task buffer then an input of said new task is directed to said at least one inter-task buffer of said first task by directing an input reference pointer to said at least one inter-task buffer, and further wherein if a second task immediately proceeding said new task in said task list is directed to said one inter-task buffer then said output of said new task is directed to one inter-task buffer of said proceeding task by directing an output reference pointer to said at least one inter-task buffer, such that the memory is allocated automatically, and further wherein the steps of inserting the new task and connecting said new task occur prior to execution of tasks in the task list.
Claim 15
Dependent Claim 27 words
The method as defined in claim 11 wherein if said new task opens a first inter-task buffer then the inter-task input of said new task is nil.
Claim 16
Dependent Claim 69 words
The method as defined in claim 11 wherein said inter-task buffer is an All-In/All-Out (AIAO) frame synchronous buffer, wherein the data stream from said first task is coupled to said second task, such that data is transferred into said buffer by said first task during a first frame then said buffer is used by said second task as input data in a second frame subsequent to the first frame.
Claim 17
Independent Claim 57 words
A method of allowing a First-In/First-Out (FIFO) to connect to an AIAO input or output buffer, said method comprising the steps of: converting an AIAO secondary container function to a FIFO access; attaching a FIFO status to a AIAO section; setting at least one flag associated with said AIAO section; specifying a direction of the data flow.
Claim 18
Independent Claim 57 words
A method of allowing a First-In/First-Out (FIFO) to connect to an AIAO input or output buffer, said method comprising the steps of: converting an AIAO secondary container function to a FIFO access; attaching a FIFO status to a AIAO section; setting at least one flag associated with said AIAO section; specifying a direction of the data flow.
Claim 19
Dependent Claim 40 words
The method as defined in claim 14 wherein if the AIAO is an input buffer then a FIFO load flag and a AIAO section load flag are set, such that the data flow is from the FIFO to the AIAO.
Claim 20
Dependent Claim 36 words
The method as defined in claim 14 wherein if the AIAO is an output buffer then a AIAO section save flag and a FIFO save flag are set, such that data is saved to the FIFO.
Claim 21
Independent Claim 72 words
A method of allocating a Half-In/Half-Out (HIHO) of a predetermined size to connect to an AIAO input or output buffer, said method comprising the steps of: converting a AIAO secondary container function to a HIHO access; setting flags for a header of a module such that two section tables are allocated; and setting the flags associated with a HIHO section of the HIHO to allow access to the two section tables individually.
Claim 22
Independent Claim 72 words
A method of allocating a Half-In/Half-Out (HIHO) of a predetermined size to connect to an AIAO input or output buffer, said method comprising the steps of: converting a AIAO secondary container function to a HIHO access; setting flags for a header of a module such that two section tables are allocated; and setting the flags associated with a HIHO section of the HIHO to allow access to the two section tables individually.
Claim 23
Dependent Claim 20 words
The method as defined in claim 17 further comprising the step of setting each section for access every other frame.
Claim 24
Dependent Claim 41 words
The method as defined in claim 18 wherein the step of setting each section comprises the step of setting a base address in one of said sections and the base address plus one half the HIHO size in the other section.
Claim 25
Independent Claim 149 words
A method for allocating memory in a processing system comprising the steps of: providing at least one executable programming data structure having executable program code to perform a predetermined function upon execution and having at least one input buffer designator and at least one output buffer designator; specifying a direction of data flow; connecting an input buffer for use by said at least one executable programming data structure during execution as designated by said at least one input buffer designation to a first buffer by allocating a first common memory location and an output buffer as designated by said at least one output buffer designation to a second buffer by allocating a second common memory location, such that a connection is made which enables the transfer and processing of data from the first buffer to the second buffer during execution of said at least one executable programming data structure.
Claim 26
Independent Claim 149 words
A method for allocating memory in a processing system comprising the steps of: providing at least one executable programming data structure having executable program code to perform a predetermined function upon execution and having at least one input buffer designator and at least one output buffer designator; specifying a direction of data flow; connecting an input buffer for use by said at least one executable programming data structure during execution as designated by said at least one input buffer designation to a first buffer by allocating a first common memory location and an output buffer as designated by said at least one output buffer designation to a second buffer by allocating a second common memory location, such that a connection is made which enables the transfer and processing of data from the first buffer to the second buffer during execution of said at least one executable programming data structure.
Claim 27
Dependent Claim 39 words
The method as defined in claim 20 wherein said step of connecting comprises connecting the input buffer to said structure to a FIFO and the output buffer is coupled to a FIFO to create a FIFO to FIFO connection.
Claim 28
Dependent Claim 51 words
The method as defined in claim 20 wherein said step of connecting comprises connecting the output buffer from a previous structure into the input buffer of said structure and connecting the input buffer of a third structure from the output buffer of said structure to create an AIAO to AIAO connection.
Claim 29
Dependent Claim 41 words
The method as defined in claim 20 wherein said step of connecting comprises connecting the input buffer of said structure to a FIFO and the output buffer of said structure to an AIAO buffer to create a FIFO to AIAO connection.
Claim 30
Dependent Claim 40 words
The method as defined in claim 20 wherein said step of connecting comprises connecting the input buffer of said structure to an AIAO and the output buffer of said structure to an FIFO to create an AIAO to FIFO connection.
Claim 31
Dependent Claim 40 words
The method as defined in claim 20 wherein said step of connecting comprises connecting the input buffer of said structure to an AIAO and the output buffer of said structure to an HIHO to create an AIAO to HIHO connection.
Claim 32
Dependent Claim 40 words
The method as defined in claim 20 wherein said step of connecting comprises connecting the input buffer of said structure to an FIFO and the output buffer of said structure to an HIHO to create an FIFO to HIHO connection.
Claim 33
Dependent Claim 40 words
The method as defined in claim 20 wherein said step of connecting comprises connecting the input buffer of said structure to an HIHO and the output buffer of said structure to an AIAO to create an HIHO to AIAO connection.
Claim 34
Dependent Claim 40 words
The method as defined in claim 20 wherein said step of connecting comprises connecting the input buffer of said structure to an HIHO and the output buffer of said structure to an FIFO to create an HIHO to FIFO connection.
Claim 35
Dependent Claim 40 words
The method as defined in claim 20 wherein said step of connecting comprises connecting the input buffer of said structure to an HIHO and the output buffer of said structure to an HIHO to create an HIHO to HIHO connection.
Claim 36
Independent Claim 189 words
A method of making connections between a plurality of executable programming data structures that are executed in a processing system having a caching mechanism, wherein said data structures comprise executable program code to perform a predetermined function upon execution and at least one section and wherein said at least one section is associated with a primary container and capable of being associated with a secondary container, wherein the caching mechanism moves data between the secondary and primary containers prior to and after execution of the structure, wherein said at least one section is associated with a plurality of flags and type data, said plurality of flags including at least a save flag, a load flag and a clear flag, said method comprising the steps of: specifying said at least one section as a buffer; specifying a direction of the data flow to indicate the function of the buffer; and setting the flags, such that when said caching mechanism caches said plurality of executable programming data structures and the plurality of executable data structures are executed the data flow moves between the secondary and primary containers according to the direction.
Claim 37
Independent Claim 189 words
A method of making connections between a plurality of executable programming data structures that are executed in a processing system having a caching mechanism, wherein said data structures comprise executable program code to perform a predetermined function upon execution and at least one section and wherein said at least one section is associated with a primary container and capable of being associated with a secondary container, wherein the caching mechanism moves data between the secondary and primary containers prior to and after execution of the structure, wherein said at least one section is associated with a plurality of flags and type data, said plurality of flags including at least a save flag, a load flag and a clear flag, said method comprising the steps of: specifying said at least one section as a buffer; specifying a direction of the data flow to indicate the function of the buffer; and setting the flags, such that when said caching mechanism caches said plurality of executable programming data structures and the plurality of executable data structures are executed the data flow moves between the secondary and primary containers according to the direction.
Claim 38
Dependent Claim 13 words
The method as defined in claim 30 wherein the modules are cached automatically.
Claim 39
Dependent Claim 36 words
The method as defined in claim 31 wherein if the section is a static section and the save flags is set then the contents of the primary container are saved to the secondary container on exit.
Claim 40
Dependent Claim 43 words
The method as defined in claim 31 wherein if the section is a static section and the save and clear flags are set then the primary container is cleared on entry and the primary container is saved to the secondary container on exit.
Claim 41
Dependent Claim 33 words
The method as defined in claim 31 wherein if the section is a static section and the load flag is set then the primary container is loaded from the secondary container on entry.
Claim 42
Dependent Claim 47 words
The method as defined in claim 31 wherein if the section is a static section and the load and save flags are set then the primary container is loaded from the secondary container on entry and the primary container is saved to the secondary container on exit.
Claim 43
Dependent Claim 93 words
The method as defined in claim 30 wherein said buffer is an All-In/All-Out (AIAO) frame synchronous buffer, wherein the data stream from a first of said plurality of executable programming structures is coupled to a second of said plurality of executable programming structures, such that data is transferred into said buffer by said first of said plurality of executable programming structures during a first frame then said buffer is used by said second of said plurality of executable programming structures as input data in a second frame immediately subsequent to the first frame.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-12-07 2002-06-08 2002-12-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-12-07 2006-06-08 2006-12-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-12-07 2010-06-08 2010-12-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag