Patent US5694604A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5694604A Expired / Lapsed US ⏱️ 0.0 years remaining

Preemptive multithreading computer system with clock activated interrupt

Assignee: REIFFIN FAMILY TRUST
•
Filing: 1994-03-25
•
Granted: 1997-12-02
•
Expires: 2014-03-25
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A multithreading computer system provides concurrent asynchronous preemptive time-sliced execution of a plurality of threads of instructions located within the same software program. A clock or timer periodically activates the interrupt operation of the central processor. Each interrupt preempts an executing thread after the thread has executed for a brief timeslice during which the thread may have performed only a portion of its task. Control of the processor is thereby taken away from the preempted thread, and control then passes to an interrupt service routine which then passes control to another thread to invoke the latter for execution during the next timeslice. Control is thereafter returned to the preempted thread to enable the latter to resume execution at the point where it was previously interrupted. Control of the processor is thus transferred repeatedly back and forth between the threads so rapidly that the threads are run substantially simultaneously. The threads may thus execute incrementally and piecewise with their successive task portions executed alternately in a mutually interleaved relation and with each thread executed during its respective series of spaced timeslices interleaved with the timeslices of at least one other thread.

Inventors

  • 👤 Martin G. Reiffin

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 20:27
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4812; G06F9/4825; G06F8/00; G06F8/40; G06F8/41; G06F8/48; G06F9/4843

Claims Analysis

Total Claims: 45
Claim 1
Independent Claim 345 words
A method of preemptive multithreaded operation of a computer including a clock and a central processing unit having an interrupt operation so as to provide for the execution of a program having a task comprising a plurality of subtasks each performed concurrently by a respective one of a plurality of instruction threads of said program, said method comprising periodically actuating said interrupt operation in response to said clock at predetermined time intervals to provide a plurality of series of spaced timeslices with a respective series of said plurality of series allocated for the execution of each thread and with the timeslices of each series of timeslices of said plurality of series interleaved with the timeslices of at least one other series of said plurality of series, preempting an executing thread of said program in response to each actuation of said interrupt operation so as to terminate the timeslice of execution of said executing thread and to take control of the central processing unit away from said executing thread after the latter has executed only a portion of its respective subtask, passing said control of the central processing unit to another thread of said same program and thereby invoking said another thread to perform a next successive portion of the respective subtask of said another thread during the next successive timeslice of the respective series of timeslices of said another thread, thereafter returning control of the central processing unit to a previously preempted thread of said same program to enable said previously preempted thread to perform the next successive portion of its respective subtask during the next timeslice of its respective series of spaced timeslices, and repeating the above-recited cycle of said clock responsive actuation of the interrupt operation, said thread preemption and said thread invocation, until the respective subtasks of the threads of said program are completed, whereby each subtask portion is executed during a respective timeslice with the subtask portions of one thread interleaved with the subtask portions of at least one other thread to provide concurrent and effectively simultaneous execution of the threads.
Claim 2
Independent Claim 345 words
A method of preemptive multithreaded operation of a computer including a clock and a central processing unit having an interrupt operation so as to provide for the execution of a program having a task comprising a plurality of subtasks each performed concurrently by a respective one of a plurality of instruction threads of said program, said method comprising periodically actuating said interrupt operation in response to said clock at predetermined time intervals to provide a plurality of series of spaced timeslices with a respective series of said plurality of series allocated for the execution of each thread and with the timeslices of each series of timeslices of said plurality of series interleaved with the timeslices of at least one other series of said plurality of series, preempting an executing thread of said program in response to each actuation of said interrupt operation so as to terminate the timeslice of execution of said executing thread and to take control of the central processing unit away from said executing thread after the latter has executed only a portion of its respective subtask, passing said control of the central processing unit to another thread of said same program and thereby invoking said another thread to perform a next successive portion of the respective subtask of said another thread during the next successive timeslice of the respective series of timeslices of said another thread, thereafter returning control of the central processing unit to a previously preempted thread of said same program to enable said previously preempted thread to perform the next successive portion of its respective subtask during the next timeslice of its respective series of spaced timeslices, and repeating the above-recited cycle of said clock responsive actuation of the interrupt operation, said thread preemption and said thread invocation, until the respective subtasks of the threads of said program are completed, whereby each subtask portion is executed during a respective timeslice with the subtask portions of one thread interleaved with the subtask portions of at least one other thread to provide concurrent and effectively simultaneous execution of the threads.
Claim 3
Dependent Claim 96 words
A method as recited in claim 1 and comprising manually interactively controlling the execution of one of said program threads while said thread executes in the foreground, displaying to an operator the effects of said manual control, whereby said one thread executes interactively in the foreground while another thread of the same program executes in the background concurrently with the execution of the foreground thread, and switching control of the central processing unit repeatedly between the foreground and background threads so rapidly that an interactive operator perceives the foreground and background threads to be executing simultaneously.
Claim 4
Dependent Claim 54 words
A method as set forth in claim 1 and comprising the step of passing control of the central processing unit from an executing thread to another thread before the end of the timeslice of the executing thread whenever the executing thread has completed said portion of its subtask before said end of said timeslice.
Claim 5
Independent Claim 246 words
A method for operator-interactive preemptive concurrent multithreading execution of a plurality of instruction threads located within the same software program in a personal microcomputer system including a microprocessor having an interrupt input and clock driven means for periodically activating said interrupt input at brief predetermined intervals, said method comprising interrupting the execution of an executing instruction thread and preemptively taking control of the microprocessor away from said executing instruction thread in response to each said activation of said interrupt input, passing control of the microprocessor to another of said threads of said software program for execution of said another thread, thereafter returning control of the microprocessor to said interrupted thread to enable the latter to resume execution, at the point where said thread had been interrupted, until the next activation of said interrupt input by said clock driven means, actuating operator responsive means and thereby interactively controlling the execution of at least one of said program threads during the execution of said one thread, interactively displaying to an operator in real time the effects of said operator actuated control, whereby a thread of a program may execute interactively with the operator in the foreground while another thread of the same program executes in the background concurrently with the interactive execution of the foreground thread, and switching control of the microprocessor repeatedly back and forth between the foreground and background threads so rapidly that an interactive operator perceives the foreground and background threads to be executing simultaneously.
Claim 6
Independent Claim 246 words
A method for operator-interactive preemptive concurrent multithreading execution of a plurality of instruction threads located within the same software program in a personal microcomputer system including a microprocessor having an interrupt input and clock driven means for periodically activating said interrupt input at brief predetermined intervals, said method comprising interrupting the execution of an executing instruction thread and preemptively taking control of the microprocessor away from said executing instruction thread in response to each said activation of said interrupt input, passing control of the microprocessor to another of said threads of said software program for execution of said another thread, thereafter returning control of the microprocessor to said interrupted thread to enable the latter to resume execution, at the point where said thread had been interrupted, until the next activation of said interrupt input by said clock driven means, actuating operator responsive means and thereby interactively controlling the execution of at least one of said program threads during the execution of said one thread, interactively displaying to an operator in real time the effects of said operator actuated control, whereby a thread of a program may execute interactively with the operator in the foreground while another thread of the same program executes in the background concurrently with the interactive execution of the foreground thread, and switching control of the microprocessor repeatedly back and forth between the foreground and background threads so rapidly that an interactive operator perceives the foreground and background threads to be executing simultaneously.
Claim 7
Dependent Claim 156 words
A method as recited in claim 4 wherein each of said threads has a respective task to execute, the further steps comprising providing in response to said clock driven means activating said interrupt input a respective series of spaced timeslices of execution for each thread with the timeslices of each series interleaved with the timeslices of at least one other series, preemptively taking control of the microprocessor from an executing thread at the end of its timeslice after the executing thread has executed only a portion of its task, passing control of the microprocessor to another thread to execute the next successive portion of the task of said another thread during the next successive timeslice of the respective series of timeslices of said another thread, and thereby executing the task of each thread piecewise with the successive executed task portions of each thread interleaved with the successive executed task portions of at least one other thread.
Claim 8
Independent Claim 139 words
A method for preemptive multithreaded execution of a plurality of instruction threads located within the same multithreaded software program in a general-purpose computer system including a central processor having an interrupt operation and a clock timer for periodically activating said interrupt operation at brief predetermined time-sliced intervals, said method comprising interrupting the execution of an executing thread and taking therefrom control of the central processor upon each said activation of said interrupt operation, passing control of the central processor to another of said threads of said multithreaded software program for execution of said another thread, thereafter returning control of the central processor to said interrupted thread, and repeating the above-recited cycle of steps to switch control of the central processor from one thread to another thread and back again iteratively and rapidly so that the threads effectively execute simultaneously.
Claim 9
Independent Claim 139 words
A method for preemptive multithreaded execution of a plurality of instruction threads located within the same multithreaded software program in a general-purpose computer system including a central processor having an interrupt operation and a clock timer for periodically activating said interrupt operation at brief predetermined time-sliced intervals, said method comprising interrupting the execution of an executing thread and taking therefrom control of the central processor upon each said activation of said interrupt operation, passing control of the central processor to another of said threads of said multithreaded software program for execution of said another thread, thereafter returning control of the central processor to said interrupted thread, and repeating the above-recited cycle of steps to switch control of the central processor from one thread to another thread and back again iteratively and rapidly so that the threads effectively execute simultaneously.
Claim 10
Dependent Claim 102 words
In a multithreading computer system as recited in claim 6 wherein said program has a task comprising a plurality of subtasks each executable by a respective one of said threads, the further steps comprising providing for the execution of each thread a respective series of said spaced time-sliced intervals with the time-sliced intervals of each series interleaved with the time-sliced intervals of at least one other series, and repeatedly preemptively taking control of the central processor from at least one executing thread at the end of its time-sliced interval after the executing thread has performed only a portion of its respective subtask.
Claim 11
Dependent Claim 179 words
In a method as recited in claim 6 wherein said program has a task to be performed, said task comprising a plurality of subtasks each executable by a respective one of said threads, the further steps comprising providing in response to said clock timer activating said interrupt operation a respective series of spaced time-sliced intervals for the execution of each thread with the intervals of each series interleaved with the intervals of at least one other series, preemptively taking control of the central processor from an executing thread at the end of its then current time-sliced interval at which time the executing thread has performed only a portion of its subtask, passing control of the central processor to another thread to perform a next successive portion of the subtask of said another thread during a next successive time-sliced interval of the respective series of time-sliced intervals of said another thread, and thereby performing the subtask of each thread piecewise with the successive portions of each thread subtask interleaved with the successive portions of at least one other thread subtask.
Claim 12
Dependent Claim 95 words
A method as recited in claim 6 and comprising manually interactively controlling the execution of one of said program threads, and displaying to an operator the effects of said manual control, whereby a thread of a program may execute interactively with the operator in the foreground while another thread of the same program executes in the background concurrently with the execution of the foreground thread, and switching control of the central processor repeatedly between the foreground and background threads so rapidly that an interactive operator perceives the foreground and background threads to be executing simultaneously.
Claim 13
Dependent Claim 242 words
A multithreading software-programmable general-purpose computer system for concurrent processing of the same body of data code by at least two concurrently executing instruction threads constituting a single program, said computer system comprising: a central processing unit having an interrupt input, a memory, means for entry into said memory of a body of data code to be processed, means for operator selection and entry into said memory of a program comprising at least two concurrently executable instruction threads for processing said body of data code, means to cause the central processing unit to execute a first of said entered threads under control of said first thread to process the previously entered body of data code in accordance with a first mode of processing, clock means to repeatedly activate said interrupt input so as to interrupt execution of said first thread and preemptively switch control of the central processing unit to another of said entered threads for execution of said another thread so as to process the same previously entered body of data code in accordance with a second mode of processing, and means activated after each said interrupt input activation and its respective second mode of processing by said another thread to return control of the central processing unit to said first thread to enable said first thread to resume said first mode of processing said body of data code at the point in the code where the first thread had been interrupted.
Claim 14
Dependent Claim 242 words
A multithreading software-programmable general-purpose computer system for concurrent processing of the same body of data code by at least two concurrently executing instruction threads constituting a single program, said computer system comprising: a central processing unit having an interrupt input, a memory, means for entry into said memory of a body of data code to be processed, means for operator selection and entry into said memory of a program comprising at least two concurrently executable instruction threads for processing said body of data code, means to cause the central processing unit to execute a first of said entered threads under control of said first thread to process the previously entered body of data code in accordance with a first mode of processing, clock means to repeatedly activate said interrupt input so as to interrupt execution of said first thread and preemptively switch control of the central processing unit to another of said entered threads for execution of said another thread so as to process the same previously entered body of data code in accordance with a second mode of processing, and means activated after each said interrupt input activation and its respective second mode of processing by said another thread to return control of the central processing unit to said first thread to enable said first thread to resume said first mode of processing said body of data code at the point in the code where the first thread had been interrupted.
Claim 15
Dependent Claim 55 words
A multithreading computer system as recited in claim 10 and comprising operator actuated means for interacting with the execution of one of said program threads, and display means for interactively showing to an operator in the foreground the effects of said operator actuated interaction while concurrently therewith another of said threads executes in the background.
Claim 16
Dependent Claim 58 words
A multithreading computer system as set forth in claim 11 wherein said operator actuated means comprises manually operable means for transmitting to said central processing unit a set of signals occurring at spaced time instants in a sequence having time intervals between pairs of successive signals, said central processing unit executing said background thread during said time intervals.
Claim 17
Dependent Claim 58 words
A multithreading computer system as set forth in claim 11 wherein said user actuated means comprises manually operable means for transmitting to said central processing unit a set of signals occurring at spaced time instants in a sequence having time intervals between pairs of successive signals, said central processing unit executing said background thread during said time intervals.
Claim 18
Dependent Claim 112 words
A multithreading software-programmable general-purpose computer system for concurrently executing at least two instruction threads constituting a single program, said computer system comprising: a central processing unit having an interrupt input, a memory, means for operator selection and entry into said memory of a program comprising at least two concurrently executable instruction threads, means to cause the central processing unit to execute a first of said entered threads under control of said first thread, and clock means to repeatedly activate said interrupt input so as to interrupt execution of said first thread and preemptively switch control of the central processing unit to another of said entered threads for execution of said another thread.
Claim 19
Dependent Claim 112 words
A multithreading software-programmable general-purpose computer system for concurrently executing at least two instruction threads constituting a single program, said computer system comprising: a central processing unit having an interrupt input, a memory, means for operator selection and entry into said memory of a program comprising at least two concurrently executable instruction threads, means to cause the central processing unit to execute a first of said entered threads under control of said first thread, and clock means to repeatedly activate said interrupt input so as to interrupt execution of said first thread and preemptively switch control of the central processing unit to another of said entered threads for execution of said another thread.
Claim 20
Dependent Claim 48 words
A multithreading computer system as set forth in claim 14 wherein said clock means comprises means to periodically activate said interrupt input at predetermined time intervals so that said threads obtain control of the central processing unit during alternate time slices of the running time of the latter.
Claim 21
Dependent Claim 61 words
A multithreading computer system as recited in claim 14 wherein said program is a user application program, user actuated means for interacting with the execution of one of said program threads in the foreground, and display means for interactively showing to a user the effects of said user actuated interaction while another of said threads executes concurrently therewith in the background.
Claim 22
Dependent Claim 288 words
A multithreading software-programmable general-purpose computer system for concurrent processing and modification of the same body of data code by at least two concurrently executing instruction threads constituting a single program, said computer system comprising: a central processing unit having an interrupt input, a memory, means for entry into said memory of a body of data code to be processed, means for operator selection and entry into said memory of a program comprising at least two concurrently executable instruction threads for processing said body of data code, a first of said threads including means for processing the previously entered body of data code, and a second of said threads including means for modifying the same previously entered body of data code, means to cause the central processing unit to execute said first thread to process said body of data code, means to repeatedly activate said interrupt input to interrupt the execution of said first thread and preemptively switch control of the central processing unit to said second thread for execution of the latter thread so as to modify said body of data code, and means activated after each said interrupt input activation and its respective modification of the body of data code by said second thread to return control of the central processing unit to said first thread to enable the latter to resume said processing of said body of data code at the point in the code where the first thread had been interrupted, said means to repeatedly activate said interrupt operation comprising clock timer means to periodically activate said interrupt operation at predetermined time intervals so that said threads obtain control of the central processing unit during alternate time slices of the running time of the latter.
Claim 23
Dependent Claim 288 words
A multithreading software-programmable general-purpose computer system for concurrent processing and modification of the same body of data code by at least two concurrently executing instruction threads constituting a single program, said computer system comprising: a central processing unit having an interrupt input, a memory, means for entry into said memory of a body of data code to be processed, means for operator selection and entry into said memory of a program comprising at least two concurrently executable instruction threads for processing said body of data code, a first of said threads including means for processing the previously entered body of data code, and a second of said threads including means for modifying the same previously entered body of data code, means to cause the central processing unit to execute said first thread to process said body of data code, means to repeatedly activate said interrupt input to interrupt the execution of said first thread and preemptively switch control of the central processing unit to said second thread for execution of the latter thread so as to modify said body of data code, and means activated after each said interrupt input activation and its respective modification of the body of data code by said second thread to return control of the central processing unit to said first thread to enable the latter to resume said processing of said body of data code at the point in the code where the first thread had been interrupted, said means to repeatedly activate said interrupt operation comprising clock timer means to periodically activate said interrupt operation at predetermined time intervals so that said threads obtain control of the central processing unit during alternate time slices of the running time of the latter.
Claim 24
Dependent Claim 280 words
A preemptive multithreading computer system for the concurrent execution of a plurality of instruction threads of the same program with each thread executing successive incremental portions of its task during successive timeslices of a respective series of spaced timeslices and with the timeslices of execution of each thread alternately interleaved with the timeslices of execution of at least one other thread, said system comprising a memory for storing a program comprising a plurality of sets of instructions with each set executable to provide a respective thread of execution and with each thread having a respective task to perform, central processing means having an interrupt operation, a clock for periodically actuating said interrupt operation at predetermined time intervals, and an interrupt service routine responsive to each said clock actuation of the interrupt operation to preempt an executing thread so as to terminate its timeslice of execution and take control of the central processing means away from said executing thread after the latter has executed only a portion of its task, said interrupt service routine passing said control of the central processing means to another thread thereby to invoke said another thread to perform the next successive portion of its task during the next successive timeslice of the respective series of timeslices of said another thread, whereby the above-recited cycle of clock actuated interrupt, thread preemption and thread invocation, is iterated repeatedly until the respective tasks are completed, and whereby a multithreading mode of operation is provided with said plurality of threads executing concurrently during their respective spaced interleaved timeslices with the successive executed task portions of each thread interleaved with the successive executed task portions of at least one other thread.
Claim 25
Dependent Claim 280 words
A preemptive multithreading computer system for the concurrent execution of a plurality of instruction threads of the same program with each thread executing successive incremental portions of its task during successive timeslices of a respective series of spaced timeslices and with the timeslices of execution of each thread alternately interleaved with the timeslices of execution of at least one other thread, said system comprising a memory for storing a program comprising a plurality of sets of instructions with each set executable to provide a respective thread of execution and with each thread having a respective task to perform, central processing means having an interrupt operation, a clock for periodically actuating said interrupt operation at predetermined time intervals, and an interrupt service routine responsive to each said clock actuation of the interrupt operation to preempt an executing thread so as to terminate its timeslice of execution and take control of the central processing means away from said executing thread after the latter has executed only a portion of its task, said interrupt service routine passing said control of the central processing means to another thread thereby to invoke said another thread to perform the next successive portion of its task during the next successive timeslice of the respective series of timeslices of said another thread, whereby the above-recited cycle of clock actuated interrupt, thread preemption and thread invocation, is iterated repeatedly until the respective tasks are completed, and whereby a multithreading mode of operation is provided with said plurality of threads executing concurrently during their respective spaced interleaved timeslices with the successive executed task portions of each thread interleaved with the successive executed task portions of at least one other thread.
Claim 26
Dependent Claim 144 words
A multithreading computer system as recited in claim 18 wherein said program is an operator-selectable application program, operator actuated means for selecting said application program and for loading said application program into said memory, operator actuated means for interactively controlling the execution of one of said program threads while said thread executes in the foreground, and display means for interactively showing to an operator the effects of said operator actuated control, whereby a thread of the program may execute interactively with the operator in the foreground while another thread of the same program executes in the background concurrently with the execution of the foreground thread, and said clock and interrupt service routine coacting to switch control of the central processor means repeatedly between the foreground and background threads so rapidly that an interactive operator perceives the foreground and background threads to be executing simultaneously.
Claim 27
Dependent Claim 66 words
A multithreading computer system as set forth in claim 18 wherein said memory comprises a plurality of addressable locations, and means for allocating at least a subset of said addressable memory locations and for designating said allocated subset to be the address space accessible by said program, whereby a plurality of threads of said program may each have direct unrestricted access to said program address space.
Claim 28
Dependent Claim 120 words
A multithreading computer system as set forth in claim 18 wherein said memory comprises a plurality of addressable locations, and means for allocating at least a subset of said addressable memory locations and for designating said allocated subset to be the address space accessible by said program, whereby a plurality of threads of said program may each have direct access to said program address space, said central processing means comprising a set of registers having values stored therein, means responsive to activation of said interrupt operation to save the values stored in said registers, and means responsive to subsequent return of control of the central processing means to said preempted thread for restoring said saved values back into said registers.
Claim 29
Dependent Claim 105 words
A multithreading computer system as recited in claim 18 and comprising said memory including an address space directly accesible by the threads of said program, means for storing code in said address space for concurrent processing of said code by at least two of said program threads, operator actuated means for interacting with the execution of one of said program threads as said one thread processes said stored code in the foreground while another of said threads executes concurrently therewith in the background also to process said stored code, and display means for interactively showing to an operator the effects of said operator actuated interaction.
Claim 30
Dependent Claim 125 words
A multithreading computer system as set forth in claim 22 wherein said operator actuated means comprises a keyboard, and said display means comprises a video monitor having a viewing screen, whereby the effects of actuation of the keyboard upon execution of said one thread in the foreground are displayed on said screen in real time concurrently with said background execution of another thread, said keyboard having keys which may be struck by the operator at spaced time instants to provide a sequence of keystrokes with respective time intervals between each pair of successive keystrokes, said central processing means executing said foreground thread in response to said keystrokes, and said central processing means executing said background thread during said time intervals between pairs of successive keystrokes.
Claim 31
Dependent Claim 238 words
An operator-interactive preemptive multithreading software-programmable general-purpose personal microcomputer system for concurrent execution of a plurality of instruction threads located within the same software program and comprising a microprocessor having an interrupt input, means to cause the microprocessor to execute one of said threads under control of said one thread, clock driven means for periodically activating said interrupt input at brief predetermined time intervals so as to interrupt the execution of an executing thread upon each activation of said interrupt input, an interrupt service routine for preemptively taking control of the microprocessor in response to each said activation of said interrupt input and including means for passing control of the microprocessor to another of said threads of said software program for execution of said another thread, operator actuated means for interactively controlling the execution of at least one of said program threads during the execution of said one thread, and display means for interactively showing to the operator the effects of said operator actuated control, whereby a thread of a program may execute interactively with the operator in the foreground while another thread of the same program executes in the background concurrently with the interactive execution of the foreground thread, and said clock driven means and interrupt service routine coacting to switch control of the microprocessor repeatedly between the foreground and background threads so rapidly that an interactive operator perceives the foreground and background threads to be executing simultaneously.
Claim 32
Dependent Claim 238 words
An operator-interactive preemptive multithreading software-programmable general-purpose personal microcomputer system for concurrent execution of a plurality of instruction threads located within the same software program and comprising a microprocessor having an interrupt input, means to cause the microprocessor to execute one of said threads under control of said one thread, clock driven means for periodically activating said interrupt input at brief predetermined time intervals so as to interrupt the execution of an executing thread upon each activation of said interrupt input, an interrupt service routine for preemptively taking control of the microprocessor in response to each said activation of said interrupt input and including means for passing control of the microprocessor to another of said threads of said software program for execution of said another thread, operator actuated means for interactively controlling the execution of at least one of said program threads during the execution of said one thread, and display means for interactively showing to the operator the effects of said operator actuated control, whereby a thread of a program may execute interactively with the operator in the foreground while another thread of the same program executes in the background concurrently with the interactive execution of the foreground thread, and said clock driven means and interrupt service routine coacting to switch control of the microprocessor repeatedly between the foreground and background threads so rapidly that an interactive operator perceives the foreground and background threads to be executing simultaneously.
Claim 33
Dependent Claim 110 words
A multithreading microcomputer system as recited in claim 24 wherein each of said threads has a respective task to execute, each thread having a respective series of spaced timeslices of execution with the timeslices of each series interleaved with the timeslices of at least one other series, said interrupt service routine preemptively taking control of the microprocessor from an executing thread at the end of its timeslice after the executing thread has executed only a portion of its task, whereby the task of each thread is executed piecewise with the successive executed task portions of each thread interleaved with the successive executed task portions of at least one other thread.
Claim 34
Dependent Claim 160 words
A preemptive multithreading software-programmable general-purpose computer system for concurrent execution of a multithreaded software program having a plurality of concurrently executable instruction threads, said computer system comprising a central processor having an interrupt operation and means for executing a thread under control of the latter, a memory, a clock timer for periodically activating said interrupt operation at brief predetermined time-sliced intervals so as to interrupt the execution of an executing thread and to take therefrom control of the central processor upon each said activation of said interrupt operation, and an interrupt service routine responsive to each said clock timer activation of said interrupt operation for passing control of the central processor to another of said threads of said multithreaded software program for execution of said another thread, said clock timer, interrupt operation and interrupt service routine coacting to switch control of the central processor from one thread to another thread repeatedly and rapidly so that the threads effectively execute simultaneously.
Claim 35
Dependent Claim 160 words
A preemptive multithreading software-programmable general-purpose computer system for concurrent execution of a multithreaded software program having a plurality of concurrently executable instruction threads, said computer system comprising a central processor having an interrupt operation and means for executing a thread under control of the latter, a memory, a clock timer for periodically activating said interrupt operation at brief predetermined time-sliced intervals so as to interrupt the execution of an executing thread and to take therefrom control of the central processor upon each said activation of said interrupt operation, and an interrupt service routine responsive to each said clock timer activation of said interrupt operation for passing control of the central processor to another of said threads of said multithreaded software program for execution of said another thread, said clock timer, interrupt operation and interrupt service routine coacting to switch control of the central processor from one thread to another thread repeatedly and rapidly so that the threads effectively execute simultaneously.
Claim 36
Dependent Claim 101 words
A multithreading computer system as recited in claim 26 wherein each of said threads has a respective task to perform, said periodic activation of said interrupt operation by said clock timer providing for the execution of each thread a respective series of said spaced time-sliced intervals with the time-sliced intervals of each series interleaved with the time-sliced intervals of at least one other series, said interrupt service routine repeatedly preemptively taking control of the central processor from at least one executing thread at the end of its time-sliced interval after the executing thread has performed only a portion of its task.
Claim 37
Dependent Claim 46 words
A multithreading computer system as recited in claim 27 and comprising means for passing control of the central processor from an executing thread to another thread before the end of the time-sliced interval of the executing thread whenever the executing thread has voluntarily relinquished said control.
Claim 38
Dependent Claim 83 words
A multithreading computer system as recited in claim 26 wherein said program is an operator-selectable user application program, operator actuated means for selecting said user application program for execution and for loading said user application program into said memory, operator actuated means for interactively controlling the execution of one of said program threads in the foreground, and display means for interactively showing to an operator the effects of said operator actuated control while another of said threads executes concurrently therewith in the background.
Claim 39
Dependent Claim 48 words
A multithreading computer system as set forth in claim 26 and comprising a memory comprising a plurality of addressable locations, and means for allocating at least a subset of said addressable memory locations and for providing said allocated subset to be the address space accessible by said software.
Claim 40
Dependent Claim 260 words
A multithreading computer system as recited in claim 26 wherein said memory comprises a plurality of addressable locations, means for allocating at least a subset of said addressable memory locations and for providing said allocated subset to be the address space accessible by said software, each of said threads having a respective task to perform, each thread having a respective series of spaced time-sliced intervals of execution with the time-sliced intervals of each series interleaved with the time-sliced intervals of at least one other series, said interrupt service routine preemptively taking control of the central processor from an executing thread at the end of its time-sliced interval after the executing thread has performed only a portion of its task, said interrupt service routine comprising a thread scheduler to pass control of the central processor to another thread to perform the next successive portion of the task of said another thread during the next successive time-sliced interval of the respective series of time-sliced intervals of said another thread, whereby the task of each thread is performed piecewise with the successive task portions of each thread interleaved with the successive task portions of at least one other thread, operator actuated means for interactively controlling the execution of one of said program threads, and display means for interactively showing to an operator the effects of said operator actuated control, said clock timer, interrupt service routine and control return means coacting to switch control of the central processor repeatedly between the threads so rapidly that an operator perceives the threads to be executing simultaneously.
Claim 41
Dependent Claim 67 words
A multithreading computer system as set forth in claim 26 and comprising a system resource, synchronizing means responsive to execution of one thread for indicating whether said system resource is ready for access by another thread, said another thread including means for waiting for access to said system resource until the latter is indicated by said synchronizing means to be ready for access by said another thread.
Claim 42
Dependent Claim 158 words
A multithreading computer system as recited in claim 26 wherein each of said threads has a respective task to perform, each thread having a respective series of spaced time-sliced intervals with the intervals of each series interleaved with the intervals of at least one other series, said interrupt service routine preemptively taking control of the central processor from an executing thread at the end of its then current time-sliced interval at which time the executing thread has performed only a portion of its task, said interrupt service routine comprising means to pass control of the microprocessor to another thread to perform a next successive portion of the task of said another thread during a next successive time-sliced interval of the respective series of time-sliced intervals of said another thread, whereby the task of each thread is performed piecewise with the successive task portions of each thread interleaved with the successive task portions of at least one other thread.
Claim 43
Dependent Claim 139 words
A multithreading computer system as recited in claim 26 wherein said program is an operator-selectable application program, operator actuated means for selecting said application program and for loading said application program into said memory, operator actuated means for interactively controlling the execution of one of said program threads, and display means for interactively showing to an operator the effects of said operator actuated control, whereby a thread of a program may execute interactively with the operator in the foreground while another thread of the same program executes in the background concurrently with the execution of the foreground thread, and said clock timer, interrupt operation and interrupt service routine coacting to switch control of the central processor repeatedly between the foreground and background threads so rapidly that an interactive operator perceives the foreground and background threads to be executing simultaneously.
Claim 44
Dependent Claim 64 words
A multithreading computer system as set forth in claim 34 wherein said operator actuated means comprises a keyboard, and said display means comprises a video terminal having a viewing screen, whereby the effects of actuation of the keyboard upon the execution of said one thread in the foreground are displayed on said screen in real time concurrently with said background execution of another thread.
Claim 45
Dependent Claim 71 words
A multithreading computer system as set forth in claim 35 wherein said keyboard has keys which may be struck by the operator at spaced time instants to provide a sequence of keystrokes with respective time intervals between each pair of successive keystrokes, said central processor executing said foreground thread in response to said keystrokes, and said central processor executing said background thread during said time intervals between pairs of successive keystrokes.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-12-01 2001-06-02 2001-12-02 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-12-01 2005-06-02 2005-12-02 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-12-01 2009-06-02 2009-12-02 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag