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

Computer memory product with preemptive multithreading software

Assignee: REIFFIN MARTIN G
•
Filing: 1990-03-20
•
Granted: 1997-12-02
•
Expires: 2010-03-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A multithreading computer system for the preemptive asynchronous concurrent execution of a plurality of instruction threads of a multithreaded application program. As an illustrative example of one of the many uses of the invention, the disclosed application program comprises a compiler thread and an editor thread. The compiler processes the source code while the programmer edits the source code at the keyboard. An interrupt sevice routine repeatedly activates the editor thread to provide a preemptive asynchronous editing process for either entry of new source code or modification of the previously entered code, while the compiler thread concurrently processes the source code during the time intervals between keystrokes. The interrupt service routine may be activated either by a keyboard interrupt or periodically by a clock at predetermined time intervals.

Inventors

  • 👤 Martin G. Reiffin

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 09:39
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: 55
Claim 1
Independent Claim 427 words
A computer-readable disk memory having a surface formed with a plurality of binary patterns constituting a multithreaded application program executable by a desktop computer having a central microprocessor, a memory, means for loading said application program into a defined address space of said memory, and a clock-driven periodically-activated interrupt operation providing a plurality of series of spaced timeslices with the timeslices of each series interleaved with the timeslices of at least one other series, said multithreaded program comprising a plurality of sets of instructions with each set executable by said microprocessor to provide a respective thread of execution and with each thread having a respective task to perform, a first of said sets of instructions executable to provide a first thread of execution having control of the central microprocessor during each successive timeslice of a first series of timeslices with successive portions of the task of said first thread performed during respective successive timeslices of said first series, said first thread of execution being periodically preempted in response to activations of said interrupt operation at predetermined fixed time intervals at a fixed frequency in the range of about every ten to thirty milliseconds so as to provide a preemption at each termination of a timeslice of said first series by said clock activation of said interrupt operation, and a second of said sets of instructions executable to provide a second thread of execution and responsive to said periodic preemptions to acquire control of the central microprocessor during successive timeslices of a second series of timeslices with successive portions of the task of said second thread performed during respective successive timeslices of said second series, whereby a preemptive multithreading mode of operation is provided 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 successive executed task portions of each thread interleaved with the successive executed task portions of at least one other thread so as to provide concurrent execution of a plurality of threads of the same program, each of said threads having direct access to said program memory address space so as to provide fast efficient preemption of one thread by another thread and switching of control of the central microprocessor back and forth among the threads at a rate so rapid that the threads execute effectively simultaneously, thereby enabling a single microprocessor to simulate the parallel processing of a large complex mainframe computer having multiple central processing units.
Claim 2
Dependent Claim 427 words
A computer-readable disk memory having a surface formed with a plurality of binary patterns constituting a multithreaded application program executable by a desktop computer having a central microprocessor, a memory, means for loading said application program into a defined address space of said memory, and a clock-driven periodically-activated interrupt operation providing a plurality of series of spaced timeslices with the timeslices of each series interleaved with the timeslices of at least one other series, said multithreaded program comprising a plurality of sets of instructions with each set executable by said microprocessor to provide a respective thread of execution and with each thread having a respective task to perform, a first of said sets of instructions executable to provide a first thread of execution having control of the central microprocessor during each successive timeslice of a first series of timeslices with successive portions of the task of said first thread performed during respective successive timeslices of said first series, said first thread of execution being periodically preempted in response to activations of said interrupt operation at predetermined fixed time intervals at a fixed frequency in the range of about every ten to thirty milliseconds so as to provide a preemption at each termination of a timeslice of said first series by said clock activation of said interrupt operation, and a second of said sets of instructions executable to provide a second thread of execution and responsive to said periodic preemptions to acquire control of the central microprocessor during successive timeslices of a second series of timeslices with successive portions of the task of said second thread performed during respective successive timeslices of said second series, whereby a preemptive multithreading mode of operation is provided 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 successive executed task portions of each thread interleaved with the successive executed task portions of at least one other thread so as to provide concurrent execution of a plurality of threads of the same program, each of said threads having direct access to said program memory address space so as to provide fast efficient preemption of one thread by another thread and switching of control of the central microprocessor back and forth among the threads at a rate so rapid that the threads execute effectively simultaneously, thereby enabling a single microprocessor to simulate the parallel processing of a large complex mainframe computer having multiple central processing units.
Claim 3
Dependent Claim 186 words
A disk memory as set forth in claim 1 to provide interactive multithreading with a desktop computer having a user operable input device and a video display monitor, and wherein one of said threads comprises instructions executable immediately in response to said user operable input device for interactively controlling the execution of said one thread, said one thread further comprising instructions for activating said display monitor to display the effects of said interactive control by said user operable input device, whereby said one thread executes interactively with the user in the foreground while another thread of the same program executes in the background concurrently with said one thread with control of the central microprocessor repeatedly switching back and forth between the threads, and wherein said fast efficient preemption provided by said direct access by the threads to said memory address space enables control of the central microprocessor to be switched between the threads so rapidly that an interactive user perceives the foreground and background threads to be executing simultaneously and without any perceptible interference by the background thread with the user's interaction with the foreground thread.
Claim 4
Dependent Claim 170 words
A disk memory as set forth in claim 1 to provide interactive multithreading with a desktop computer having an interactive user-operable input device for transmitting information from an interactive user and a monitor screen for displaying information to the user, wherein said second set of instructions comprises instructions executable immediately in response to said user-operable input device for entering said transmitted information and for interactively displaying on said screen the effects of said entered information, said first set of instructions comprises instructions executable to process said entered information concurrently in real time as the information is being transmitted by said user-operable input device, and whereby said second thread executes in the foreground interactively with and visibly to the user while concurrently therewith said first thread executes in the background, said control of the central microprocessor switching among the threads so rapidly that the user perceives that both threads appear to be executing simultaneously and without any perceptible interference by the background thread with the user's interaction with the foreground thread.
Claim 5
Dependent Claim 106 words
A disk memory as set forth in claim 3 for use in a desktop computer wherein said user-operable device is a keyboard having keys which may be struck repeatedly with a time interval between each pair of successive keystrokes and with the timeslices of said first series occurring during said time intervals between keystrokes, and wherein said first thread of instructions is executed during said time intervals between succesive keystrokes on the keyboard, whereby a user may enter information at the keyboard while concurrently therewith the entered information is being processed in real time by said first thread of instructions during the timeslices between successive keystrokes.
Claim 6
Dependent Claim 43 words
A disk memory as set forth in claim 1 wherein said second set of instructions comprises editor means for entering language code, and said first set of instructions comprises means for analyzing said language code for conformity with the rules of a language.
Claim 7
Dependent Claim 48 words
A disk memory as set forth in claim 5 wherein said means for analyzing said language code comprises a scanner for lexical analysis of the language code for determining if said code consist of a sequence of properly spelled words in accordance with lexical rules of the language.
Claim 8
Dependent Claim 40 words
A disk memory as set forth in claim 5 wherein said means for analyzing said language code comprises a parser for syntactic analysis of the language code for determining if said code conforms to the grammatical rules of the language.
Claim 9
Dependent Claim 234 words
A computer-readable memory having stored therein a multithreaded program including a plurality of sets of instruction codes with each set executable to provide a respective thread of execution of a desktop computer having a single central microprocessor, an interrupt operation, and clock means for periodically activating said interrupt operation at predetermined time intervals to provide a plurality of series of spaced timeslices of thread execution with the timeslices of each series interleaved with the timeslices of at least one other series, said plurality of sets of program instruction codes comprising a first set of instruction codes executable by said central microprocessor under control of the latter to provide a first thread of execution during each timeslice of a first series of said timslices, said first thread of execution being periodically preempted in response to activations of said interrupt operation at a frequency in the range of about every ten to thirty milliseconds, a second set of instruction codes responsive to said periodic activations of said interrupt operation to acquire control of said central microprocessor and said second set of instruction codes being executable by the central microprocessor to provide a second thread of execution during the timeslices of a second series of said timeslices interleaved with said first series of timeslices, control of the microprocessor thereby switching back and forth among the threads at a rate so rapid that the threads execute effectively simultaneously.
Claim 10
Dependent Claim 234 words
A computer-readable memory having stored therein a multithreaded program including a plurality of sets of instruction codes with each set executable to provide a respective thread of execution of a desktop computer having a single central microprocessor, an interrupt operation, and clock means for periodically activating said interrupt operation at predetermined time intervals to provide a plurality of series of spaced timeslices of thread execution with the timeslices of each series interleaved with the timeslices of at least one other series, said plurality of sets of program instruction codes comprising a first set of instruction codes executable by said central microprocessor under control of the latter to provide a first thread of execution during each timeslice of a first series of said timslices, said first thread of execution being periodically preempted in response to activations of said interrupt operation at a frequency in the range of about every ten to thirty milliseconds, a second set of instruction codes responsive to said periodic activations of said interrupt operation to acquire control of said central microprocessor and said second set of instruction codes being executable by the central microprocessor to provide a second thread of execution during the timeslices of a second series of said timeslices interleaved with said first series of timeslices, control of the microprocessor thereby switching back and forth among the threads at a rate so rapid that the threads execute effectively simultaneously.
Claim 11
Dependent Claim 106 words
A memory as set forth in claim 8 for use with a desktop computer having an interactive user operable device, and wherein one of said threads comprises instructions executable interactively with a user in response to said user operable device for interactively controlling the execution of said one thread, whereby said one thread executes interactively with the user in the foreground while another thread of the same program executes in the background concurrently with said one thread with control of the central microprocessor repeatedly switching back and forth between the threads so rapidly that an interactive user perceives the foreground and backgrounds to be executing simultaneously.
Claim 12
Dependent Claim 128 words
A memory as set forth in claim 8 for use with a desktop computer having a user-operable device for transmitting information from an interactive user, and wherein said second set of instructions comprises means interactive with a user and responsive to said user-operable device for entering said transmitted information, and said first set of instructions comprises means to process said entered information concurrently in real time as the information is being transmitted by said user-operable device, whereby said second thread executes in the foreground while concurrently therewith said first thread executes in the background so that the user perceives that both threads appear to be executing simultaneously while control of the central microprocessor is rapidly switching back and forth among the plurality of threads of the same program.
Claim 13
Dependent Claim 100 words
A disk means as set forth in claim 10 for use in a desktop computer wherein said user-operable device is a keyboard having keys which may be struck repeatedly with a time interval between each pair of successive keystrokes and with the timeslices of said first series occurring during said time intervals between keystrokes, and wherein said first thread of instructions is executed during said time intervals between succesive keystrokes on the keyboard, whereby a user may enter information at the keyboard while concurrently therewith the entered information is being processed in real time by said first thread of instructions.
Claim 14
Dependent Claim 173 words
A computer-readable disk means encoded with a plurality of concurrently executable threads of instructions constituting a multithreaded computer application program to control the execution of a desktop microcomputer having an interrupt operation, a clock timer for periodically activating said interrupt operation, and memory means for storing a body of data, said encoded executable instructions comprising a first thread of instructions executable by the microcomputer and including means to process said stored body of data, at least a second thread of instructions for preemptively taking control of the microcomputer in response to said periodic activations of said interrupt operation by said clock timer and including means to process said stored body of data for a brief time interval after each said preemption, and said first thread of instructions repeatedly regaining control of the computer after each said time interval so that said first thread of instructions resumes processing said body of data at the point where it had been previously preempted, whereby said threads of instructions execute concurrently in a multithreaded mode of operation.
Claim 15
Dependent Claim 173 words
A computer-readable disk means encoded with a plurality of concurrently executable threads of instructions constituting a multithreaded computer application program to control the execution of a desktop microcomputer having an interrupt operation, a clock timer for periodically activating said interrupt operation, and memory means for storing a body of data, said encoded executable instructions comprising a first thread of instructions executable by the microcomputer and including means to process said stored body of data, at least a second thread of instructions for preemptively taking control of the microcomputer in response to said periodic activations of said interrupt operation by said clock timer and including means to process said stored body of data for a brief time interval after each said preemption, and said first thread of instructions repeatedly regaining control of the computer after each said time interval so that said first thread of instructions resumes processing said body of data at the point where it had been previously preempted, whereby said threads of instructions execute concurrently in a multithreaded mode of operation.
Claim 16
Dependent Claim 34 words
A disk means as set forth in claim 12 wherein said second thread of instructions comprises means for changing said body of data while said body of data remains stored in said memory means.
Claim 17
Dependent Claim 69 words
A disk means as set forth in claim 13 wherein said means for changing said stored body of data comprises editor instructions executable by said computer for editing said body of data while said body of data remains stored in said memory means, said body of data comprising words of a language, said first thread comprising means for checking the spelling of said words stored within said memory means.
Claim 18
Dependent Claim 114 words
A disk means as set forth in claim 12 for use with a computer having a display and wherein said program comprises operator responsive means for interactively controlling the execution of at least one of said program threads during the execution of said one thread, and means for controlling said display for interactively showing to the operator the effects of said operator responsive 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 so that an interactive operator perceives the foreground and background threads to be executing simultaneously.
Claim 19
Dependent Claim 247 words
A computer software memory element encoded with a plurality of binary patterns constituting a multithreaded program having a plurality of threads of instructions executable by a computer having a single central processor, a clock-driven periodically-activated interrupt operation providing a plurality of series of spaced timeslices with the timeslices of each series interleaved with the timeslices of at least one other series, and an interrupt service routine including a thread scheduler invoked in response to each activation of said interrupt operation to determine whether a currently non-executing thread of instructions should preempt another thread of instructions then currently having control of the central processor, said multithreaded program comprising a first thread of instructions executable by said central processor in successive increments during each of a first series of said timeslices, and at least a second thread of instructions to take control of the central processor in response to determinations by said thread scheduler at each of those activations of said interrupt operation when said scheduler has determined that said second thread should preempt said first thread, so that said second thread is executed by and controls said central processor in successive increments during those second series timeslices selected by the scheduler in accordance with the respective determination at each interrupt operation, whereby said program controls the single central processor to execute at least two threads of instructions concurrently with the successive execution increments of a thread interleaved with the successive execution increments of at least one other thread.
Claim 20
Dependent Claim 247 words
A computer software memory element encoded with a plurality of binary patterns constituting a multithreaded program having a plurality of threads of instructions executable by a computer having a single central processor, a clock-driven periodically-activated interrupt operation providing a plurality of series of spaced timeslices with the timeslices of each series interleaved with the timeslices of at least one other series, and an interrupt service routine including a thread scheduler invoked in response to each activation of said interrupt operation to determine whether a currently non-executing thread of instructions should preempt another thread of instructions then currently having control of the central processor, said multithreaded program comprising a first thread of instructions executable by said central processor in successive increments during each of a first series of said timeslices, and at least a second thread of instructions to take control of the central processor in response to determinations by said thread scheduler at each of those activations of said interrupt operation when said scheduler has determined that said second thread should preempt said first thread, so that said second thread is executed by and controls said central processor in successive increments during those second series timeslices selected by the scheduler in accordance with the respective determination at each interrupt operation, whereby said program controls the single central processor to execute at least two threads of instructions concurrently with the successive execution increments of a thread interleaved with the successive execution increments of at least one other thread.
Claim 21
Dependent Claim 176 words
A computer memory element as set forth in claim 16 for use with a computer having an interactive user operable device and a video display monitor, and wherein said second thread is responsive to said thread scheduler to preempt said first thread in response to each respective activation of said interrupt operation occurring immediately after each instance when the user has operated said user operable device, said second thread comprises instructions executable interactively with a user in response to operation of said user operable device for interactively controlling the execution of said second thread, said second thread further comprising instructions for activating said monitor to display the effects of said interactive operation of said user operable device, whereby said second thread executes interactively with the user in the foreground while said first thread of the same program executes in the background concurrently with said second thread with control of the single central processor repeatedly switching back and forth between the threads so rapidly that an interactive user perceives the foreground and backgrounds to be executing simultaneously.
Claim 22
Dependent Claim 266 words
A computer-readable storage means encoded with computer-executable instructions constituting a multithreaded program to control a desktop computer system having a microprocessor with an interrupt input, a memory, and clock means to periodically activate said interrupt input and thereby periodically preempt an executing thread, said program instructions comprising a first thread of instructions of said program executable by said microprocessor and including means to perform a first subtask, a second thread of instructions of the same program executable by the same microprocessor and including means to perform a second subtask, and means for imparting control of the microprocessor central processing unit to said first thread of instructions and thereby initiating execution of said first thread of instructions by said microprocessor, said second thread of instructions preempting said first thread of instructions and acquiring control of the microprocessor in response to said periodic preemptive activations of said interrupt operation by said clock means, thereby to provide periodic execution of said second thread of instructions by said microprocessor after each said execution of said second thread of instructions said first thread of instructions regains control of the microprocessor and resumes execution at the point where it had been previously preempted, said program having an address space consisting of a range of memory address locations, said threads having direct access to said program address space so as to provide switching of control of the microprocessor among the threads at a rate so rapid that the threads execute effectively simultaneously thereby enabling a single microprocessor to simulate the parallel processing of a large complex mainframe computer having multiple central processing units.
Claim 23
Dependent Claim 266 words
A computer-readable storage means encoded with computer-executable instructions constituting a multithreaded program to control a desktop computer system having a microprocessor with an interrupt input, a memory, and clock means to periodically activate said interrupt input and thereby periodically preempt an executing thread, said program instructions comprising a first thread of instructions of said program executable by said microprocessor and including means to perform a first subtask, a second thread of instructions of the same program executable by the same microprocessor and including means to perform a second subtask, and means for imparting control of the microprocessor central processing unit to said first thread of instructions and thereby initiating execution of said first thread of instructions by said microprocessor, said second thread of instructions preempting said first thread of instructions and acquiring control of the microprocessor in response to said periodic preemptive activations of said interrupt operation by said clock means, thereby to provide periodic execution of said second thread of instructions by said microprocessor after each said execution of said second thread of instructions said first thread of instructions regains control of the microprocessor and resumes execution at the point where it had been previously preempted, said program having an address space consisting of a range of memory address locations, said threads having direct access to said program address space so as to provide switching of control of the microprocessor among the threads at a rate so rapid that the threads execute effectively simultaneously thereby enabling a single microprocessor to simulate the parallel processing of a large complex mainframe computer having multiple central processing units.
Claim 24
Dependent Claim 145 words
A storage means as set forth in claim 18 for use with a computer having a user operable device and a video display monitor, and wherein one of said threads comprises instructions executable interactively with the user in the foreground in response to said user operable device for interactively controlling the execution of said one thread, said one thread further comprising instructions for activating said monitor to display the effects of said interactive control by said user operable device, another of said threads executing non-interactively in the background, whereby said one thread executes interactively with the user in the foreground while said another thread of the same program executes in the background concurrently with said one thread with control of the microprocessor repeatedly switching back and forth between the threads so rapidly that an interactive user perceives the foreground and backgrounds to be executing simultaneously.
Claim 25
Dependent Claim 57 words
A storage means as set forth in claim 18 for use with a computer having a monitor screen, and wherein said second set of instructions comprises instructions for interactively displaying information on said screen, and said first set of instructions comprises instructions executable to process said information concurrently in real time as the information is being displayed.
Claim 26
Dependent Claim 80 words
A storage means as set forth in claim 20 for use in a computer having a keyboard with keys which may be struck repeatedly with a time interval between each pair of successive keystrokes, and wherein said first thread of instructions is executed during said time intervals between succesive keystrokes on the keyboard, whereby a user may enter information at the keyboard while concurrently therewith the entered information is being processed in real time by said first thread of instructions.
Claim 27
Dependent Claim 219 words
A computer-readable disk store encoded with a plurality of concurrently executable sequences of program instructions constituting a multithreaded computer application program to control the execution of a computer having a central processing unit including an interrupt operation, a clock timer for periodically activating said interrupt operation, and a memory for storing a body of data code, said encoded executable program instructions comprising at least two sequences of instructions within the same program with each sequence executed by the central processing unit to provide a respective thread of execution for processing said body of data code, one of said threads including means for controlling the central processing unit to process the body of data code during a first series of spaced time intervals, and another of said threads including means to acquire control of the central processing unit periodically in response to said periodic activations of said interrupt operation so as to provide for execution of said another thread during a second series of spaced time intervals interleaved with said first series of spaced time intervals so as to process the same body of data cede concurrently with said processing by said one thread, whereby said threads execute concurrently in a multithreaded mode of operation and obtain control of the same central processing unit during respective interleaved alternate time intervals.
Claim 28
Dependent Claim 219 words
A computer-readable disk store encoded with a plurality of concurrently executable sequences of program instructions constituting a multithreaded computer application program to control the execution of a computer having a central processing unit including an interrupt operation, a clock timer for periodically activating said interrupt operation, and a memory for storing a body of data code, said encoded executable program instructions comprising at least two sequences of instructions within the same program with each sequence executed by the central processing unit to provide a respective thread of execution for processing said body of data code, one of said threads including means for controlling the central processing unit to process the body of data code during a first series of spaced time intervals, and another of said threads including means to acquire control of the central processing unit periodically in response to said periodic activations of said interrupt operation so as to provide for execution of said another thread during a second series of spaced time intervals interleaved with said first series of spaced time intervals so as to process the same body of data cede concurrently with said processing by said one thread, whereby said threads execute concurrently in a multithreaded mode of operation and obtain control of the same central processing unit during respective interleaved alternate time intervals.
Claim 29
Dependent Claim 105 words
A disk store as set forth in claim 22 for use with a computer having an interactive user operable device and a video display monitor, and wherein said another thread comprises an editor including instructions executable interactively with a user in response to said user operable device for interactively editing said body of data, said another thread further comprising instructions for activating said monitor to display the effects of said interactive editing by said user operable device, whereby said editor of said another thread executes interactively with the user and executes concurrently with said one thread while the latter processes said body of data code.
Claim 30
Dependent Claim 152 words
A disk store as set forth in claim 22 for use with a computer having a user-operable device for transmitting information from a user and a monitor screen for displaying information to the user, wherein said another thread comprises executable instructions including means responsive to said user-operable device for entering said transmitted information and for interactively displaying on said screen the effects of said entered information, and said one thread comprises executable instructions including means to process said entered information concurrently in real time as the information is being transmitted by said user-operable device, whereby said another thread executes in the foreground interactively with and visibly to the user while concurrently therewith said one thread executes in the background so that the user perceives that both threads appear to be executing simultaneously whereas in reality the control of the central processor is alternately switching back and forth among the plurality of threads.
Claim 31
Dependent Claim 84 words
A disk store as set forth in claim 24 for use in a computer wherein said user-operable device is a keyboard having keys which may be struck repeatedly with a time interval between each pair of successive keystrokes, and wherein said one thread of instructions is executed during said time intervals between succesive keystrokes on the keyboard, whereby a user may enter information at the keyboard while concurrently therewith the entered information is being processed in real time by said another thread of instructions.
Claim 32
Dependent Claim 188 words
A computer-readable storage means encoded with executable instructions constituting computer operating software for preemptive multithreaded execution of a program having a plurality of instruction threads by a desktop computer having a microprocessor with an interrupt operation and a clock for periodically activating said interrupt operation, said software comprising: thread scheduling means responsive to each activation of said interrupt operation to take control of the microprocessor from one of said threads and thereby preempt the execution of said one thread and to pass control of the microprocessor to another of said threads of said program for execution of said another thread, and means operable after each execution of said another thread to return control of the microprocessor from said another thread to said one thread for resumption of the execution of said one thread at the point where it was preempted, whereby at least two threads of the same program are concurrently active with said thread scheduling means periodically switching control of the same microprocessor preemptively from said one thread to said another thread so that the user perceives that both threads of instructions appear to be executing simultaneously.
Claim 33
Dependent Claim 188 words
A computer-readable storage means encoded with executable instructions constituting computer operating software for preemptive multithreaded execution of a program having a plurality of instruction threads by a desktop computer having a microprocessor with an interrupt operation and a clock for periodically activating said interrupt operation, said software comprising: thread scheduling means responsive to each activation of said interrupt operation to take control of the microprocessor from one of said threads and thereby preempt the execution of said one thread and to pass control of the microprocessor to another of said threads of said program for execution of said another thread, and means operable after each execution of said another thread to return control of the microprocessor from said another thread to said one thread for resumption of the execution of said one thread at the point where it was preempted, whereby at least two threads of the same program are concurrently active with said thread scheduling means periodically switching control of the same microprocessor preemptively from said one thread to said another thread so that the user perceives that both threads of instructions appear to be executing simultaneously.
Claim 34
Dependent Claim 242 words
A computer-readable storage disk encoded with executable instructions constituting operating software for preemptive multithreaded execution of a program having a plurality of concurrently executable instruction threads for processing the same body of data by a computer including a microprocessor having an interrupt operation, memory means for storing a body of data, input means for initiating execution of one of said instruction threads to process said stored body of data, and clock means for periodically activating said interrupt operation, said operating software comprising: first software means responsive to periodic activation of said interrupt operation to cause the microprocessor to preemptively interrupt execution of said one thread and to execute another of said threads of said program whereby said another thread processes said body of data while the body of data is stored in said memory means, and second software means to cause the microprocessor to discontinue execution of said another thread and to resume execution of said one thread so as to resume processing said stored body of data at the point in the body of data where said one thread was previously interrupted, whereby said threads of the same program execute concurrently on the same microprocessor with said clock means periodically activating said interrupt operation to cause said microprocessor to preemptively switch execution from said one thread to said another thread periodically so that the user perceives that both threads appear to be executing simultaneously to process the same body of data.
Claim 35
Dependent Claim 242 words
A computer-readable storage disk encoded with executable instructions constituting operating software for preemptive multithreaded execution of a program having a plurality of concurrently executable instruction threads for processing the same body of data by a computer including a microprocessor having an interrupt operation, memory means for storing a body of data, input means for initiating execution of one of said instruction threads to process said stored body of data, and clock means for periodically activating said interrupt operation, said operating software comprising: first software means responsive to periodic activation of said interrupt operation to cause the microprocessor to preemptively interrupt execution of said one thread and to execute another of said threads of said program whereby said another thread processes said body of data while the body of data is stored in said memory means, and second software means to cause the microprocessor to discontinue execution of said another thread and to resume execution of said one thread so as to resume processing said stored body of data at the point in the body of data where said one thread was previously interrupted, whereby said threads of the same program execute concurrently on the same microprocessor with said clock means periodically activating said interrupt operation to cause said microprocessor to preemptively switch execution from said one thread to said another thread periodically so that the user perceives that both threads appear to be executing simultaneously to process the same body of data.
Claim 36
Dependent Claim 150 words
A disk as set forth in claim 27 for use with a computer having a user-operable device for transmitting information from a user and a monitor screen for displaying information to the user, wherein said another thread comprises instructions executable in response to said user-operable device for entering said transmitted information and for interactively displaying on said screen the effects of said entered information, and said one thread comprises instructions executable to process said entered information concurrently in real time as the information is being transmitted by said user-operable device, whereby said another thread executes in the foreground interactively with and visibly to the user while concurrently therewith said one thread executes in the background so that the user perceives that both threads appear to be executing simultaneously notwithstanding that control of the central processor is alternately switching back and forth among the plurality of threads of the same program.
Claim 37
Dependent Claim 83 words
A disk as set forth in claim 28 for use in a computer wherein said user-operable device is a keyboard having keys which may be struck repeatedly with a time interval between each pair of successive keystrokes, and wherein said one thread of instructions is executed during said time intervals between succesive keystrokes on the keyboard, whereby a user may enter information at the keyboard while concurrently therewith the entered information is being processed in real time by said one thread of instructions.
Claim 38
Dependent Claim 314 words
A computer-readable disk memory having a surface formed with a plurality of binary patterns constituting a multithreaded word processing program executable by a computer having a keyboard, a buffer for storing words of a language, a central processor and a clock-driven periodically-activated interrupt operation providing a plurality of series of spaced timeslices with the timeslices of each series interleaved with the timeslices of at least one other series, said multithreaded word processing 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, a first of said sets of instructions executable to provide a first thread of execution having control of the central processor during each successive timeslice of a first series of timeslices with successive portions of the task of said first thread performed during respective successive timeslices of said first series, said first set of instructions comprising lexical means for checking the spelling of words stored in said buffer, said first thread of execution being periodically preempted at each termination of a timeslice of said first series by said clock activation of said interrupt operation, and a second of said sets of instructions executable to provide a second thread of execution and responsive to said periodic preemptions to acquire control of the central processor during successive timeslices of a second series of timeslices with successive portions of the task of said second thread performed during respective succesive timeslices of said second series, said second set of instructions comprising editor means responsive to said keyboard for entering words into said buffer, whereby a preemptive multithreading mode of operation is provided for the concurrent execution of said instruction threads with said lexical means checking the spelling of said entered words in real time while concurrently therewith said editor means is entering additional words into said buffer.
Claim 39
Dependent Claim 314 words
A computer-readable disk memory having a surface formed with a plurality of binary patterns constituting a multithreaded word processing program executable by a computer having a keyboard, a buffer for storing words of a language, a central processor and a clock-driven periodically-activated interrupt operation providing a plurality of series of spaced timeslices with the timeslices of each series interleaved with the timeslices of at least one other series, said multithreaded word processing 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, a first of said sets of instructions executable to provide a first thread of execution having control of the central processor during each successive timeslice of a first series of timeslices with successive portions of the task of said first thread performed during respective successive timeslices of said first series, said first set of instructions comprising lexical means for checking the spelling of words stored in said buffer, said first thread of execution being periodically preempted at each termination of a timeslice of said first series by said clock activation of said interrupt operation, and a second of said sets of instructions executable to provide a second thread of execution and responsive to said periodic preemptions to acquire control of the central processor during successive timeslices of a second series of timeslices with successive portions of the task of said second thread performed during respective succesive timeslices of said second series, said second set of instructions comprising editor means responsive to said keyboard for entering words into said buffer, whereby a preemptive multithreading mode of operation is provided for the concurrent execution of said instruction threads with said lexical means checking the spelling of said entered words in real time while concurrently therewith said editor means is entering additional words into said buffer.
Claim 40
Dependent Claim 120 words
A disk memory as set forth in claim 30 for use in a computer also having a video display, and wherein said editor means is responsive to a sequence of keyboard keystrokes at spaced time intervals, said lexical means executing during time intervals between keystrokes, each keystroke of a subset of said keykeystrokes corresponding to a respective alphanumeric character, and means responsive to each of said alphanumeric keystrokes for immediately displaying on said video display the respective alphanumeric character corresponding to said keystroke, whereby said first thread of execution checks the spelling of said words stored in said buffer in real time between keystrokes concurrently with the entry and display of said additional words by said second thread of execution.
Claim 41
Dependent Claim 109 words
A computer-readable element encoded with executable instructions constituting a word processing program to control the execution of a computer having a keyboard, an interrupt operation, a clock timer for periodically activating said interrupt operation, and memory means for storing words of a language, said encoded executable instructions comprising a first thread of instructions executable by the computer and including means to check the spelling of said stored words, and a second thread of instructions for preemptively taking control of the computer in response to said periodic activations of said interrupt operation by said clock timer and including means responsive to said keyboard to enter words into said memory means.
Claim 42
Dependent Claim 109 words
A computer-readable element encoded with executable instructions constituting a word processing program to control the execution of a computer having a keyboard, an interrupt operation, a clock timer for periodically activating said interrupt operation, and memory means for storing words of a language, said encoded executable instructions comprising a first thread of instructions executable by the computer and including means to check the spelling of said stored words, and a second thread of instructions for preemptively taking control of the computer in response to said periodic activations of said interrupt operation by said clock timer and including means responsive to said keyboard to enter words into said memory means.
Claim 43
Dependent Claim 126 words
A computer-readable element as set forth in claim 32 for use with a computer also having a video display, and wherein said second thread includes instructions responsive to a sequence of keyboard keystrokes at spaced time intervals, said first thread executing during time intervals between keystrokes, each keystroke of a subset of said keykeystrokes corresponding to a respective alphanumeric character, and said second thread includes instructions responsive to each of said alphanumeric keystrokes for immediately displaying on said video display the respective alphanumeric character corresponding to said keystroke, whereby said first thread of execution checks the spelling of said words stored in said memory means in real time between keystrokes concurrently with the entry and display of said additional words by said second thread of execution.
Claim 44
Dependent Claim 307 words
A computer-readable disk memory having a surface formed with a plurality of binary patterns constituting a multithreaded application program executable by a computer having a keyboard, a buffer for storing data words, a central processor and a clock-driven periodically-activated interrupt operation providing a plurality of series of spaced timeslices with the timeslices of each series interleaved with the timeslices of at least one other series, said multithreaded application 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, a first of said sets of instructions executable to provide a first thread of execution having control of the central processor during each successive timeslice of a first series of timeslices with successive portions of the task of said first thread performed during respective successive timeslices of said first series, said first set of instructions comprising means for processing said data words stored in said buffer, said first thread of execution being periodically preempted at each termination of a timeslice of said first series by said clock activation of said interrupt operation, and a second of said sets of instructions executable to provide a second thread of execution and responsive to said periodic preemptions to acquire control of the central processor during successive timeslices of a second series of timeslices with successive portions of the task of said second thread performed during respective successive timeslices of said second series, said second set of instructions comprising means responsive to said keyboard for entering data words into said buffer, whereby a preemptive multithreading mode of operation is provided for the concurrent execution of said instruction threads with said first thread processing said entered data words in real time while concurrently therewith said second thread is entering additional data words into said buffer.
Claim 45
Dependent Claim 307 words
A computer-readable disk memory having a surface formed with a plurality of binary patterns constituting a multithreaded application program executable by a computer having a keyboard, a buffer for storing data words, a central processor and a clock-driven periodically-activated interrupt operation providing a plurality of series of spaced timeslices with the timeslices of each series interleaved with the timeslices of at least one other series, said multithreaded application 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, a first of said sets of instructions executable to provide a first thread of execution having control of the central processor during each successive timeslice of a first series of timeslices with successive portions of the task of said first thread performed during respective successive timeslices of said first series, said first set of instructions comprising means for processing said data words stored in said buffer, said first thread of execution being periodically preempted at each termination of a timeslice of said first series by said clock activation of said interrupt operation, and a second of said sets of instructions executable to provide a second thread of execution and responsive to said periodic preemptions to acquire control of the central processor during successive timeslices of a second series of timeslices with successive portions of the task of said second thread performed during respective successive timeslices of said second series, said second set of instructions comprising means responsive to said keyboard for entering data words into said buffer, whereby a preemptive multithreading mode of operation is provided for the concurrent execution of said instruction threads with said first thread processing said entered data words in real time while concurrently therewith said second thread is entering additional data words into said buffer.
Claim 46
Dependent Claim 21 words
A disk memory as set forth in claim 34 wherein said first thread of execution comprises instructions constituting a spreadsheet subprogram.
Claim 47
Dependent Claim 21 words
A disk memory as set forth in claim 34 wherein said first thread of execution comprises instructions constituting a database subprogram.
Claim 48
Dependent Claim 102 words
A computer-readable element encoded with executable instructions constituting an application program to control the execution of a computer having a keyboard, an interrupt operation, a clock timer for periodically activating said interrupt operation, and memory means for storing data, said encoded executable instructions comprising a first thread of instructions executable by the computer and including means to process said stored data, and a second thread of instructions for preemptively taking control of the computer in response to said periodic activations of said interrupt operation by said clock timer and including means responsive to said keyboard to enter data into said memory means.
Claim 49
Dependent Claim 102 words
A computer-readable element encoded with executable instructions constituting an application program to control the execution of a computer having a keyboard, an interrupt operation, a clock timer for periodically activating said interrupt operation, and memory means for storing data, said encoded executable instructions comprising a first thread of instructions executable by the computer and including means to process said stored data, and a second thread of instructions for preemptively taking control of the computer in response to said periodic activations of said interrupt operation by said clock timer and including means responsive to said keyboard to enter data into said memory means.
Claim 50
Dependent Claim 21 words
A computer-readable element as set forth in claim 37 wherein said first thread of execution comprises instructions constituting a spreadsheet subprogram.
Claim 51
Dependent Claim 21 words
A disk memory as set forth in claim 37 wherein said first thread of execution comprises instructions constituting a database subprogram.
Claim 52
Dependent Claim 287 words
A computer-readable storage element containing an interactively multithreading application program having a plurality of threads of instructions executable to control the operation of a desktop computer including a microprocessor, a memory, a keyboard, an interrupt, a clock periodically activating the interrupt, an interrupt service routine responsive to each activation of the interrupt to preempt a currently executing thread and to take control of the microprocessor and to determine whether the keyboard has been struck, and a video monitor, said application program comprising: a first set of instructions executable by said microprocessor to provide a first thread of execution, at least a second set of instructions executable by said microprocessor to provide at least a second thread of execution, the execution of said first thread being periodically preempted at predetermined equally spaced time instants by said interrupt service routine in response to repeated activations of said interrupt by said clock, said second thread being responsive to invocations by said interrupt service routine to take control of the microprocessor at each of those activations of said interrupt operation when said interrupt service routine has determined that the keyboard has been struck, said second thread including means for entering a code into the memory in response to each keystroke of a sequence of successive keystrokes on said keyboard with a time interval between the keystrokes of each pair of successive keystrokes, said second thread also including means for displaying the entered code on said video monitor immediately in response to each keystroke on said keyboard, said first thread including means for processing said entered code, whereby said threads execute concurrently in an interleaved relation with said first thread repeatedly processing said entered code during said time intervals between successive keystrokes.
Claim 53
Dependent Claim 287 words
A computer-readable storage element containing an interactively multithreading application program having a plurality of threads of instructions executable to control the operation of a desktop computer including a microprocessor, a memory, a keyboard, an interrupt, a clock periodically activating the interrupt, an interrupt service routine responsive to each activation of the interrupt to preempt a currently executing thread and to take control of the microprocessor and to determine whether the keyboard has been struck, and a video monitor, said application program comprising: a first set of instructions executable by said microprocessor to provide a first thread of execution, at least a second set of instructions executable by said microprocessor to provide at least a second thread of execution, the execution of said first thread being periodically preempted at predetermined equally spaced time instants by said interrupt service routine in response to repeated activations of said interrupt by said clock, said second thread being responsive to invocations by said interrupt service routine to take control of the microprocessor at each of those activations of said interrupt operation when said interrupt service routine has determined that the keyboard has been struck, said second thread including means for entering a code into the memory in response to each keystroke of a sequence of successive keystrokes on said keyboard with a time interval between the keystrokes of each pair of successive keystrokes, said second thread also including means for displaying the entered code on said video monitor immediately in response to each keystroke on said keyboard, said first thread including means for processing said entered code, whereby said threads execute concurrently in an interleaved relation with said first thread repeatedly processing said entered code during said time intervals between successive keystrokes.
Claim 54
Dependent Claim 244 words
A computer-readable storage element containing a multithreading application program having a plurality of threads of instructions executable to control the operation of a desktop computer including a microprocessor, a memory, a user-interactive input/output device, an interrupt, a clock periodically activating the interrupt, and an interrupt service routine responsive to each activation of the interrupt to take control of the microprocessor and to determine if a user has operated said input/output device, said application program comprising: a first set of instructions executable by said microprocessor to provide a first thread of execution, at least a second set of instructions executable by said microprocessor to provide at least a second thread of execution, the execution of said first thread being periodically preempted at predetermined equally spaced time instants by said interrupt service routine in response to repeated activations of said interrupt by said clock, said second thread being responsive to invocations by said interrupt service routine to take control of the microprocessor at each of those activations of the interrupt when the interrupt service routine has determined that the input/output device has been operated, said second thread including means interactive with a user for controlling said input/output device for transmitting input/output data code in relation to said computer, said first thread including instructions executable to perform a subtask, whereby said threads execute concurrently in an interleaved relation with said first thread repeatedly performing said subtask during the time intervals between successive invocations of said second thread.
Claim 55
Dependent Claim 244 words
A computer-readable storage element containing a multithreading application program having a plurality of threads of instructions executable to control the operation of a desktop computer including a microprocessor, a memory, a user-interactive input/output device, an interrupt, a clock periodically activating the interrupt, and an interrupt service routine responsive to each activation of the interrupt to take control of the microprocessor and to determine if a user has operated said input/output device, said application program comprising: a first set of instructions executable by said microprocessor to provide a first thread of execution, at least a second set of instructions executable by said microprocessor to provide at least a second thread of execution, the execution of said first thread being periodically preempted at predetermined equally spaced time instants by said interrupt service routine in response to repeated activations of said interrupt by said clock, said second thread being responsive to invocations by said interrupt service routine to take control of the microprocessor at each of those activations of the interrupt when the interrupt service routine has determined that the input/output device has been operated, said second thread including means interactive with a user for controlling said input/output device for transmitting input/output data code in relation to said computer, said first thread including instructions executable to perform a subtask, whereby said threads execute concurrently in an interleaved relation with said first thread repeatedly performing said subtask during the time intervals between successive invocations of said second thread.

References Cited (Backward Citations)

US3614745A Cited
US4084228A Cited
US4513391A Cited
US4383307A Cited
US4671684A Cited
US4724285A Cited
US4773009A Cited
US4887212A Cited

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