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

Coprocessor interface having pending instructions queue and clean-up queue and dynamically allocating memory

Assignee: Canon Inc
•
Filing: 1998-02-18
•
Granted: 2001-05-22
•
Expires: 2018-02-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention discloses a method of controlling the interaction of a host CPU ( 202 ) and at least one co-processor ( 224 ) in a computer system ( 201 ) to permit substantially simultaneous decoupled execution of CPU instructions and co-processor instructions. The co-processor instructions to be executed, and those which have been executed are allocated to respective queues ( 1040, 1041 ). From time to time the latter queue ( 1041 ) is cleaned up under control of the CPU ( 202 ) to release memory resources previously allocated to the co-processor by the CPU. This dynamic memory management arrangement preferably includes an instruction generator ( 1030 ), a memory manager ( 1031 ) and a queue manager ( 1032 ).

Inventors

  • 👤 Graham Stoney

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 06:41
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3877; G06F9/3879; G06F9/3885; G06F9/3893; G06F9/3895; G06F9/3897; G06T; G06T1/00; G06T1/20; G06T15/00

Claims Analysis

Total Claims: 17
Claim 1
Independent Claim 128 words
A method of controlling the interaction between a host CPU and at least one co-processor in a computer system to permit substantially simultaneous decoupled execution of CPU instructions and co-processor instructions, and dynamic allocation of commonly used memory space during the course of the execution of said instructions, said method comprising the steps of: (a) said host CPU allocating memory resources to be utilized by a set of instructions to be co-processor executed; (b) generating a queue of pending co-processor instructions to be executed and a clean up queue of co-processor instructions for which execution has been completed; (c) from time to time, under control of said host CPU, releasing for reallocation memory resources previously utilized by the instructions contained in said clean up queue of executed instructions.
Claim 2
Independent Claim 128 words
A method of controlling the interaction between a host CPU and at least one co-processor in a computer system to permit substantially simultaneous decoupled execution of CPU instructions and co-processor instructions, and dynamic allocation of commonly used memory space during the course of the execution of said instructions, said method comprising the steps of: (a) said host CPU allocating memory resources to be utilized by a set of instructions to be co-processor executed; (b) generating a queue of pending co-processor instructions to be executed and a clean up queue of co-processor instructions for which execution has been completed; (c) from time to time, under control of said host CPU, releasing for reallocation memory resources previously utilized by the instructions contained in said clean up queue of executed instructions.
Claim 3
Dependent Claim 22 words
A method as claimed in claim 1 wherein step (c) is carried out following execution by the co-processor of a predetermined instruction.
Claim 4
Dependent Claim 19 words
A method as claimed in claim 2 wherein said predetermined instruction is one which utilizes very substantial memory resources.
Claim 5
Dependent Claim 20 words
A method as claimed in claim 2 wherein said predetermined instruction is the last instruction in said pending instruction queue.
Claim 6
Dependent Claim 29 words
A method as claimed in claim 1 wherein step (c) is carried out when said host CPU detects that currently free memory resources are running low or are exhausted.
Claim 7
Dependent Claim 36 words
A method as claimed in claim 5 wherein further processing by said host CPU is interrupted and step (c) is carried out after a predetermined fraction of said queue of pending co-processor instructions have been executed.
Claim 8
Dependent Claim 25 words
A method as claimed in claim 6 wherein said predetermined fraction is selected from the group consisting of one third, one half and two thirds.
Claim 9
Dependent Claim 30 words
A method as claimed in claim 6 wherein step (c) is carried out after a predetermined number of the pending instructions in said queue of co-processor instructions have been executed.
Claim 10
Dependent Claim 16 words
A method as claimed in claim 1 wherein step (a) allocates instructions for a single co-processor.
Claim 11
Dependent Claim 161 words
Dynamic memory management means in a computer system having a memory of predetermined size, a host CPU and at least one co-processor, said memory management means comprising: (a) an instruction generator means connected with said host CPU and generating a sequence of instructions intended for co-processor execution, (b) a memory manager means connected to said memory and said instruction generator means to dynamically allocate space in said memory for co-processor use in executing said sequence of co-processor instructions, (c) a queue manager means connected to said instruction generator means, said memory manager means and said co-processor, said queue manager means being arranged to store said sequence of instructions in a queue of pending instructions to be co-processor executed and a clean up queue of instructions which have been co-processor executed, wherein from time to time said queue manager means removes executed instructions from said clean up queue to thereby release for reallocation memory space previously allocated to said removed executed instructions.
Claim 12
Dependent Claim 161 words
Dynamic memory management means in a computer system having a memory of predetermined size, a host CPU and at least one co-processor, said memory management means comprising: (a) an instruction generator means connected with said host CPU and generating a sequence of instructions intended for co-processor execution, (b) a memory manager means connected to said memory and said instruction generator means to dynamically allocate space in said memory for co-processor use in executing said sequence of co-processor instructions, (c) a queue manager means connected to said instruction generator means, said memory manager means and said co-processor, said queue manager means being arranged to store said sequence of instructions in a queue of pending instructions to be co-processor executed and a clean up queue of instructions which have been co-processor executed, wherein from time to time said queue manager means removes executed instructions from said clean up queue to thereby release for reallocation memory space previously allocated to said removed executed instructions.
Claim 13
Dependent Claim 41 words
The dynamic memory management means as claimed in claim 10 wherein if said memory manager means is unable to satisfy a request for memory space, said queue manager means is triggered to remove said executed instructions from said clean up queue.
Claim 14
Dependent Claim 59 words
The dynamic memory management means as claimed in claim 11 wherein if after removal of said executed instructions from said clean up queue said memory manager means is still unable to satisfy a request for memory space, further processing by said CPU is interrupted until a predetermined fraction of said queue of pending co-processor instructions has been co-processor executed.
Claim 15
Dependent Claim 28 words
The dynamic memory management means as claimed in claim 12 wherein said pre-determined fraction is selected from the group consisting of one third, one half, and two thirds.
Claim 16
Dependent Claim 36 words
The dynamic memory management means as claimed in claim 12 wherein further processing by said CPU is interrupted until a predetermined number of said instructions in said queue of pending co-processor instructions have been co-processor executed.
Claim 17
Dependent Claim 26 words
The dynamic memory management means as claimed in claim 14 wherein said predetermined number corresponds to the entire length of said queue of pending co-processor instructions.

References Cited (Backward Citations)

US3883847A Cited
US3971927A Cited
US4330833A Cited
US4385363A Cited
US4296476A Cited
US4460958A Cited
US4475174A Cited
US4550368A Cited
US4622545A Cited
EP0115179A2 Cited
US4680700A Cited
EP0150060B1 Cited
US4718091A Cited
US4587610A Cited
EP0154341B1 Cited
EP0154340B1 Cited
US4965722A Cited
US4535320A Cited
EP0184547A2 Cited
US4779223A Cited
US4700175A Cited
US4646061A Cited
US4754491A Cited
EP0205712A2 Cited
US4736440A Cited
EP0206892A1 Cited
US4907182A Cited
EP0218287A1 Cited
US4718024A Cited
US5485557A Cited
US4839826A Cited
US4797850A Cited
US4720871A Cited
EP0254824A3 Cited
US4920426A Cited
EP0272705A2 Cited
EP0274376A2 Cited
EP0275979B1 Cited
US4823286A Cited
US4920480A Cited
US4791598A Cited
EP0286183B1 Cited
US4853696A Cited
US5504912A Cited
US4780761A Cited
US5317717A Cited
US5283866A Cited
US4935821A Cited
EP0311034B1 Cited
US4813056A Cited
US4991112A Cited
US4983958A Cited
EP0335306B1 Cited
EP0335990B1 Cited
US5109333A Cited
US4956771A Cited
EP0343992A3 Cited
EP0348703A3 Cited
US4975976A Cited
EP0360155B1 Cited
US4982343A Cited
US4937774A Cited
US5051840A Cited
US5163103A Cited
US5029122A Cited
EP0380720B1 Cited
US5349651A Cited
EP0383678B1 Cited
US5060242A Cited
US5109336A Cited
US5025482A Cited
US5125042A Cited
US5185694A Cited
US5197021A Cited
US5379394A Cited
US5388216A Cited
US5125085A Cited
US5109496A Cited
US5053985A Cited
US5142380A Cited
US5450557A Cited
US5333297A Cited
US5212559A Cited
US5181183A Cited
US5270832A Cited
US5253078A Cited
US5196946A Cited
US5341318A Cited
US5185856A Cited
US5371860A Cited
US5216516A Cited
US5303349A Cited
US5237655A Cited
US5453786A Cited
US5268769A Cited
US5502804A Cited
US5509115A Cited
US5195050A Cited
EP0472961B1 Cited
US5337319A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-05-21 2004-11-20 2005-05-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-05-21 2008-11-20 2009-05-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-05-21 2012-11-20 2013-05-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag