Multitasking, Time Sharing Patents (Class 718/107)
  • Patent number: 7472393
    Abstract: Methods and computer-executable components for real-time scheduling of CPU resources are disclosed. A performance counter determines when to allocate CPU resources to a thread. When it is time to allocate the CPU resources, the performance counter issues a maskable or non-maskable interrupt to an advanced programmable interrupt controller (APIC). The APIC then issues a maskable non-maskable interrupt to the CPU. In response to receiving the non-maskable interrupt, the CPU allocates resources to the thread. In addition, the disclosed methods and computer-executable components also: (a) allow scheduling of CPU resources such that real-time threads are guaranteed respective portions of time slots, (b) enable real-time scheduling on a non-real-time operating system, and (c) provide scheduling of CPU resources on a uni-processor machine such that at least first and second real-time threads dependent on one another are synchronized.
    Type: Grant
    Filed: May 16, 2005
    Date of Patent: December 30, 2008
    Assignee: Microsoft Corporation
    Inventor: Joseph C. Ballantyne
  • Publication number: 20080320487
    Abstract: A mechanism is provided for scheduling tasks across multiple processor units of differing capacity. In a multiple processor unit system with processor units of disparate speeds, it is advantageous to have the most processing-intensive tasks run on the processor units with the highest capacity. All tasks are initially scheduled on the lowest capacity processor units. Because processor units with higher capacity are more likely to have idle time, these higher capacity processor units may pull one or more tasks onto themselves from the same or lower capacity processor units. A processor unit will attempt to pull tasks that utilize a larger percentage of the timeslice. When a higher capacity processor unit is overloaded or near capacity, the higher capacity processor unit may push tasks to processor units with the same or lower capacity. A processor unit will attempt to push tasks that utilize a smaller percentage of the timeslice.
    Type: Application
    Filed: June 25, 2007
    Publication date: December 25, 2008
    Inventors: Nathan D. Fontenot, Jacob L. Moilanen, Joel H. Schopp, Michael T. Strosaker
  • Patent number: 7467385
    Abstract: A multi-streaming processor has a plurality of streams for streaming one or more instruction threads, a set of functional resources for processing instructions from streams, and interrupt handler logic. The logic detects and maps interrupts and exceptions to one or more specific streams. In some embodiments one interrupt or exception may be mapped to two or more streams, and in others two or more interrupts or exceptions may be mapped to one stream. Mapping may be static and determined at processor design, programmable, with data stored and amendable, or conditional and dynamic, the interrupt logic executing an algorithm sensitive to variables to determine the mapping. Interrupts may be external interrupts generated by devices external to the processor software (internal) interrupts generated by active streams, or conditional, based on variables. After interrupts are acknowledged streams to which interrupts or exceptions are mapped are vectored to appropriate service routines.
    Type: Grant
    Filed: March 21, 2006
    Date of Patent: December 16, 2008
    Assignee: MIPS Technologies, Inc.
    Inventors: Adolfo M Nemirovsky, Mario D Nemirovsky, Narendra Sankar
  • Publication number: 20080307248
    Abstract: A program execution time determining portion determines an execution start time and a processing volume per unit time of a program in such a manner that a processing volume necessary to execute the program is made equal to the extent that registered request for the execution time and allowable range are met. It is thus possible to determine the execution time of the program in such a manner that a necessary processing volume is made as equal as possible within the allowable range of the request for the execution time of the program, which enables clock control that suppresses a variation of the operating frequency of the CPU. Power consumption of the CPU can be thus reduced.
    Type: Application
    Filed: April 20, 2005
    Publication date: December 11, 2008
    Inventors: Katsushige Amano, Masashige Mizuyama
  • Publication number: 20080301698
    Abstract: A solution for managing a service engagement is provided. A service delivery model for the service engagement is defined within an engagement framework. The engagement framework, and consequently the service delivery model, can include a hierarchy that comprises a service definition, a set of service elements for the service definition, and a set of element tasks for each service element. The set of element tasks can be selected from a set of base tasks, each of which defines a particular task along with its input(s), output(s), and related asset(s). As a result, service engagements can be managed in a consistent manner using a data structure that promotes reuse and is readily extensible.
    Type: Application
    Filed: May 30, 2007
    Publication date: December 4, 2008
    Inventors: Moonish Badaloo, Kavita Chavda, Matthew Denesuk, Leslie M. Ernest, Felicia A. Hochheiser, Joanne L. Martin
  • Publication number: 20080301700
    Abstract: In one embodiment, the present invention includes a method for receiving a signal in a filter register of a performance monitor from an execution unit to enable a field of the filter register associated with a first thread when a filter enable instruction is executed during execution of code of the first thread, receiving a thread identifier and event information in the performance monitor from the execution unit, and determining if the thread that corresponds to the received thread identifier is enabled in the filter register and if so, storing the event information in a first counter of the performance monitor. Other embodiments are described and claimed.
    Type: Application
    Filed: May 31, 2007
    Publication date: December 4, 2008
    Inventors: Stephen Junkins, Stephen H. Hunt
  • Publication number: 20080301699
    Abstract: A system for viewing and managing work flow. The system includes at least one processor and memory configured to track time requirements for each of a plurality of jobs, compile and display the time requirements relative to current time in a plurality of managerial-level views, and in each view, indicate status of the jobs relative to the time requirements.
    Type: Application
    Filed: June 1, 2007
    Publication date: December 4, 2008
    Inventor: Darren B. Macer
  • Patent number: 7461153
    Abstract: Systems and methods for switching from a first Internet context to a second Internet context without process shutdown are described. Internet context data, such as cookies, history and user-defined data, is stored in containers unique to each user on a system. Internet content is stored in a common location so redundant downloaded information is not stored. Content information is found or stored by hashing a URL and indexing the memory location according to the resulting hash value. If content data is specific to a particular user, a hash is performed on a combination of the URL and an ordinal associated with the user's unique identity to obtain a hash value unique to the user. The user-specific content is then stored and the memory location is indexed according to the unique hash value.
    Type: Grant
    Filed: October 29, 2004
    Date of Patent: December 2, 2008
    Assignee: Microsoft Corporation
    Inventors: Ahsan Syed Kabir, Erik Snapper, Darren Mitchell, Rajeev Dujari
  • Patent number: 7454756
    Abstract: A method, apparatus and system are described for seamlessly sharing I/O devices amongst multiple virtual machines (“VMs”) on a host computer. Specifically, according to one embodiment of the invention, the virtual machine manager (“VMM”) on the host cycles access to the I/O devices amongst the VMs according to a round robin or other such allocation scheme. In order to provide direct access to the devices, the VMM may save the device state pertaining to the currently active VM, store the state in a memory region allocated to the currently active VM, retrieve a device state for a new VM from its memory region and restore the device using the retrieved device state, thus providing the illusion that each VM has direct, full-speed, exclusive access to the I/O device.
    Type: Grant
    Filed: March 5, 2004
    Date of Patent: November 18, 2008
    Assignee: Intel Corporation
    Inventors: Philip R. Lantz, Michael A. Goldsmith, David J. Cowperthwaite, Kiran S. Panesar
  • Patent number: 7454579
    Abstract: Managing access to a shared resource includes receiving a request indicating that an operation requires access to the shared resource, associating the operation with a lock in a lock queue that is associated with the shared resource, and determining whether the shared resource is accessible to the operation.
    Type: Grant
    Filed: December 15, 2005
    Date of Patent: November 18, 2008
    Assignee: EMC Corporation
    Inventor: Daniel Ravan
  • Patent number: 7451190
    Abstract: Visibility profiles associated with a substantially real time messaging environment are disclosed. Additionally, techniques for managing visibility profiles are disclosed, which include associating a first visibility profile with a first situation, and associating a second visibility profile with a second situation, A visibility profile indicates a set of friends, of a particular user, that are allowed, or disallowed, to view the particular user as available when the particular user is in the associated situation. A situation refers to one or more of a particular time period that a user is logged in, a particular location of the user, a particular device that the user is currently using, or a particular log-in that the user is currently using. Visibility profiles are used to manage the appearance of a user to other users/friends for communication using applications such as instant messaging, electronic mail, web-based mail programs, or other types of data communication exchange applications.
    Type: Grant
    Filed: January 9, 2004
    Date of Patent: November 11, 2008
    Assignee: Yahoo! Inc.
    Inventor: Christopher Szeto
  • Patent number: 7451073
    Abstract: A system and method for increasing performance in a simulator environment operable to simulate a multiprocessor platform with program code running thereon. A set of processors are initialized upon instantiating the simulator environment on a host machine for executing the program code instructions. Code execution on a simulated processor is suspended by executing a simulator API routine which is called when the program code is to enter an idle state. The host resources that would otherwise have been spent on the processor running the idle loops are therefore conserved for use by the remaining processors.
    Type: Grant
    Filed: June 25, 2002
    Date of Patent: November 11, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Daniel Tormey, Joe Bolding
  • Patent number: 7448025
    Abstract: A method and apparatus for monitoring the performance characteristics of a multithreaded processor executing instructions from two or more threads simultaneously. Event detectors detect the occurrence of specific processor events during the execution of instructions from threads of a multithreaded processor. Specialized event select control registers are programmed to control the selection, masking and qualifying of events to be monitored. Events are qualified according to their thread ID and thread current privilege level (CPL). Each event that is qualified is counted by one of several programmable event counters that keep track of all processor events being monitored. The contents of the event counters can then be accessed and sampled via a program instruction.
    Type: Grant
    Filed: December 29, 2000
    Date of Patent: November 4, 2008
    Assignee: Intel Corporation
    Inventors: Stavros Kalafatis, Micheal D. Cranford, Scott D. “Dion” Rodgers, Brinkley Sprunt
  • Patent number: 7448046
    Abstract: Currently lacking are effective and accurate tools to help petroleum traders and logistics personnel to make better decisions, collaborate in real-time and negotiate deals in a private and secure environment. The present invention addresses this and other needs in the industry. In particular, the present invention provides automated workflow management for a series of workflow tasks by mapping the workflow tasks to a collaborative workflow process comprising: roles, users, business processes and computer executable activities. A workflow object is received that supplies information used to set particular attributes of the roles, the users, the business activities and the computer executable activities of the collaborative workflow process. Information and data objects are shared electronically among the users performing certain of the roles. At least one of the activities is automatically executed, such that the workflow is automatically managed.
    Type: Grant
    Filed: September 7, 2001
    Date of Patent: November 4, 2008
    Assignee: Aspen Technology, Inc.
    Inventors: Girish Navani, Michael P. Evans, Donald A. Dietrich, Michael D. Allen, Charles C. Moore, Linus Hakimattar, Stephen J. Doyle, Wayne C. Bartel, Kevin Maher, Vip Patel, Ken Rosen, Vladimir Mahalec
  • Publication number: 20080271041
    Abstract: According to one embodiment, a program processing method includes converting parallel execution control description into graph data structure generating information, extracting a program module based on preceding information included in the graph data structure generating information when input data is given, generating a node indicating an execution unit of the program module for the extracted program module, adding the generated node to a graph data structure configured based on preceding and subsequent information defined in the graph data structure generating information, executing a program module corresponding to a node included in a graph data structure existing at that time, by setting values for the parameter, based on performance information of the node when all nodes indicating a program module defined in the preceding information have been processed, and obtaining and saving performance information of the node when a program module corresponding to the node has been executed.
    Type: Application
    Filed: April 16, 2008
    Publication date: October 30, 2008
    Applicant: KABUSHIKI KAISHA TOSHIBA
    Inventor: Ryuji Sakai
  • Patent number: 7444641
    Abstract: A context controller for managing multitasking in a processor and a method of operating the same. In one embodiment, the context controller includes: (1) an event recorder that records occurrences of predetermined events and (2) an event acknowledger, associated with the event recorder, that acknowledges ones of the events based on an identity of a currently-active context.
    Type: Grant
    Filed: December 17, 1998
    Date of Patent: October 28, 2008
    Assignee: Agere Systems Inc.
    Inventors: Wilhelmus J. M. Diepstraten, Michael A. Fischer, Wesley D. Hardell
  • Patent number: 7441245
    Abstract: A method of and apparatus for associating units of data with threads of a multi-threaded processor for processing, and enabling each thread to perform processing for at least two of the data units during a thread execution period. The thread execution period is divided among phases, and each of the data units processed by a thread is processed by a different one of the phases.
    Type: Grant
    Filed: August 14, 2003
    Date of Patent: October 21, 2008
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Mark Rosenbluth, Debra Bernstein, Michael F. Fallon, Sanjeev Jain, Gilbert M. Wolrich
  • Publication number: 20080250422
    Abstract: Provided are a method, system, and program for executing multiple threads in a processor. Credits are set for a plurality of threads executed by the processor. The processor alternates among executing the threads having available credit. The processor decrements the credit for one of the threads in response to executing the thread and initiates an operation to reassign credits to the threads in response to depleting all the thread credits.
    Type: Application
    Filed: April 5, 2007
    Publication date: October 9, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Russell Lee Lewis
  • Patent number: 7434221
    Abstract: A method of processing network data in a network processor includes using three or more threads to process a beginning portion, a middle portion, and an end portion of data packet is presented. The first thread processes the beginning portion; one or more middle threads process the middle portion, and a last thread processes the end portion. First information is indirectly passed from the first thread to the last thread via a first buffer with the middle threads progressively updating the first information. Second information is directly passed from the first thread to the last thread via a second buffer.
    Type: Grant
    Filed: September 28, 2005
    Date of Patent: October 7, 2008
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Matthew J. Adiletta, Gilbert M. Wolrich
  • Patent number: 7434222
    Abstract: A task switch from a first data processing task to a second data processing task can be accomplished by the first task calling a function which saves the first task's context, restores the second task's context and then returns. Because the second task's context has been restored, the called function actually returns to the second task, thereby completing the task switch.
    Type: Grant
    Filed: December 20, 2001
    Date of Patent: October 7, 2008
    Assignee: Infineon Technologies AG
    Inventor: Robert Alan Reid
  • Patent number: 7434000
    Abstract: In one embodiment, a processor comprises a cache and a cache miss unit coupled to the cache. The cache miss unit is configured to initiate a cache fill of a cache line for the cache responsive to a first cache miss in the cache, wherein the first cache miss corresponds to a first thread of a plurality of threads in execution by the processor. Furthermore, the cache miss unit is configured to record an additional cache miss corresponding to a second thread of the plurality of threads, wherein the additional cache miss occurs in the cache prior to the cache fill completing for the cache line. The cache miss unit is configured to inhibit initiating an additional cache fill responsive to the additional cache miss.
    Type: Grant
    Filed: December 9, 2004
    Date of Patent: October 7, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Jama I. Barreh, Manish K. Shah
  • Publication number: 20080244592
    Abstract: There is provided with a multitask processing device for processing a plurality of tasks by multitask, the tasks being each split into at least two sections, including: a stable set storage configured to store a stable set including one or more section combinations; a program execution state calculator configured to calculate, for each of the tasks, a program execution state including a section where execution is to start when the task is next executed and current sections of other tasks different from the task among the tasks; a distance calculating unit configured to calculate a distance between each of the program execution states and the stable set; and a task execution unit configured to select and execute a next task to be executed next based on calculated distances.
    Type: Application
    Filed: March 26, 2008
    Publication date: October 2, 2008
    Applicant: KABUSHIKI KAISHA TOSHIBA
    Inventor: Naoshi Uchihira
  • Patent number: 7430627
    Abstract: A method and computer system for dynamically selecting an optimal synchronization mechanism for a data structure in a multiprocessor environment. The method determines a quantity of read-side and write-side acquisitions, and evaluates the data to determine an optimal mode for efficiently operating the computer system while maintaining reduced overhead. The method incorporates data received from the individual units within a central processing system, the quantity of write-side acquisitions in the system, and data which has been subject to secondary measures, such as formatives of digital filters. The data subject to secondary measures includes, but is not limited to, a quantity of read-side acquisitions, a quantity of write-side acquisitions, and a quantity of read-hold durations. Based upon the individual unit data and the system-wide data, including the secondary measures, the operating system may select the most efficient synchronization mechanism from among the mechanisms available.
    Type: Grant
    Filed: February 17, 2005
    Date of Patent: September 30, 2008
    Assignee: International Business Machines Corporation
    Inventor: Paul E. McKenney
  • Publication number: 20080235707
    Abstract: A data processing apparatus and method are provided for arbitrating between multiple access requests seeking to access a plurality of resources sharing a common access path. At least one logic element issues access requests requesting access to the resources, and each access request identifies which of the resources is to be accessed. Arbitration circuitry performs a multi-cycle arbitration operation to arbitrate between multiple access requests to be passed over the common access path, the arbitration circuitry having a plurality of pipeline stages to allow a corresponding plurality of multi-cycle arbitration operations to be in progress at any one time. Filter circuitry is provided which has a plurality of filter states, the number of filter states being dependent on the number of pipeline stages of the arbitration circuitry, and each resource being associated with one of the filter states.
    Type: Application
    Filed: March 18, 2008
    Publication date: September 25, 2008
    Applicant: ARM LIMITED
    Inventors: David John Gwilt, Graeme Leslie Ingram
  • Patent number: 7426154
    Abstract: A sensor adjusting circuit for adjusting a digital sensor, whose circuit scale is small and which can maintain high accuracy in a wide adjustment range is provided. A sensor adjusting circuit for adjusting an analog input signal inputted from a sensor and outputting it as another analog output signal in accordance with a physical quantity to be sensed, comprises: a first analog-to-digital converter having an analog integrator (2) for integrating the analog input signal, a comparator (3) for comparing an output of the analog integrator with a predetermined value, and a D/A converter (7) for outputting an output of the comparator as the input signal; and a second digital-to-analog converter (5) for converting the output of the comparator and outputting it as the analog output signal.
    Type: Grant
    Filed: May 10, 2006
    Date of Patent: September 16, 2008
    Assignees: Hitachi, Ltd., Hitachi Car Engineering Co., Ltd.
    Inventors: Masahiro Matsumoto, Satoshi Shimada, Seikou Suzuki, Akihiko Saito, Atsushi Miyazaki, Keiji Hanzawa
  • Publication number: 20080222649
    Abstract: A method and computer program are provided for managing man hours of multiple individuals working one or more tasks during a predefined time period that include selectively opening a plurality of tasks of differing task characteristic and task type, selectively associating one or more individuals to one of the open plurality of tasks, selectively unassociating at least one of the associated one or more individuals, maintaining at least one timer for each of the open plurality of tasks, selectively closing one or more of the open plurality of tasks, and selectively outputting an invoice for the closed plurality of tasks based on the bid price of each of the open plurality of tasks. One or more of the individuals are associated and unassociated prior to completion of the open one or more tasks. The at least one timer maintains a total time for all of the associated one or more individuals for each of the open plurality of tasks.
    Type: Application
    Filed: March 6, 2007
    Publication date: September 11, 2008
    Applicant: Williamson Industries, Inc.
    Inventors: Todd Williamson, Tim Norman, Chris Turner
  • Patent number: 7424589
    Abstract: One embodiment of the present invention provides a method and a system for tracking memory usage of tasks in a shared heap. The system performs a full garbage-collection operation on the shared heap, during which a base memory usage is determined for each task. The system then periodically samples task state during execution to generate an estimate of newly allocated memory for each task. The base memory usage and the estimate of newly allocated memory for each task are combined to produce an estimate of current memory usage for each task. This estimate of current memory usage is used to determine whether a task is likely to be violating a memory quota. If so, the system triggers a remedial action, which can include: a full garbage-collection operation; a generational garbage-collection operation; or generation of a signal which indicates that a memory quota violation has occurred.
    Type: Grant
    Filed: June 24, 2005
    Date of Patent: September 9, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Oleg A. Pliss, Bernd J. W. Mathiske
  • Patent number: 7421697
    Abstract: In a simplified user switching function for switching to another user without terminating an application of a current user, data of an application started up a user before switching is included and temporarily stored in a temporary storage file. Data generated by using an application started up a user A who is currently inactive as a result of user switching (user being in a logged-on state but the desktop changed to that of another user) is stored temporarily at the time of the user switching. Thus, even when a user B (currently active user) after the user switching performs a shutdown operation or the like, the data of the currently inactive user A can be protected securely. Also, when the writing time is set unchanged, transistor size of the TFTs provided in the pixel circuit can be reduced.
    Type: Grant
    Filed: September 16, 2002
    Date of Patent: September 2, 2008
    Assignee: Sony Corporation
    Inventors: Kazuaki Takahashi, Lisen Chen
  • Publication number: 20080209437
    Abstract: A uniprocessor that can run multiple threads (programs) simultaneously is achieved by use of a plurality of low-frequency minicore processors, each minicore for receiving a respective thread from a high-frequency cache and processing the thread. A superscalar processor may be used in conjunction with the uniprocessor to process threads requiring high throughput.
    Type: Application
    Filed: May 12, 2008
    Publication date: August 28, 2008
    Applicant: International Business Machines Corporation
    Inventor: Philip G. Emma
  • Patent number: 7418491
    Abstract: An example of a solution provided here comprises: providing a logical design, including at least one hub containing central management tools, and a plurality of lower tiers containing local management tools; placing components according to the design; and providing, from the hub, one or more management functions. The lower tiers include one or more elements chosen from RIM's, spokes, and POD's.
    Type: Grant
    Filed: February 19, 2004
    Date of Patent: August 26, 2008
    Assignee: International Business Machines Corporation
    Inventors: Rhonda L. Childress, Kenneth David Christiance, David Bruce Kumhyr, Michael Arthur Lamb, Gregg W. Machovec, Neil Raymond Pennell
  • Patent number: 7418576
    Abstract: A graphics processor buffers vertex thread and pixel threads. The different types of threads issue instructions corresponding to different sets of operations. A plurality of different types of execution units are provided, each type of execution unit servicing a different class of operations, such as an executing unit supporting texture operations, an execution unit supporting blending operations, and an execution unit supporting mathematical operations. Current instructions of the threads are buffered and prioritized in a common instruction buffer. A set of high priority instructions is issued per cycle to the plurality of different types of execution units.
    Type: Grant
    Filed: November 17, 2004
    Date of Patent: August 26, 2008
    Assignee: Nvidia Corporation
    Inventors: John E. Lindholm, Brett W. Coon
  • Publication number: 20080196037
    Abstract: This process for maintaining synchronization applies to processors of redundant parallel processing units of a computer running, in parallel and under the control of the same multi-tasking time-sharing operating system (30) and independent clocks of the same speed, with the same applications with the same parameterizations. It consists on the one hand of including in the operating system (30) a synchronization service (303) called by a synchronization interrupt request and applying a correction of synchronization based on comparing the contents of the processed-instruction counters belonging to the various processors (1, 2) and the utilisation of the lockstep operating mode and on the other hand of inserting a synchronization interrupt request when commencing the processing of timing interrupts generated by the scheduler (301) of the operating system in order to terminate a time slice allocated to processing an application.
    Type: Application
    Filed: February 13, 2008
    Publication date: August 14, 2008
    Applicant: Thales
    Inventor: Christophe PLE
  • Patent number: 7412354
    Abstract: The present invention relates to a method for measuring a quantity of usage of a CPU, in particular to a method for measuring a quantity of usage of a CPU which is capable of getting a credible quantity of usage of a CPU without amending an algorithm in order to adapt it to the an operating system, e.g., MS-Windows System, or requiring a complicated code. The method uses various algorithms provided by the operating system on the behalf of a registry storing a quantity of usage of a CPU inside a system. Accordingly the present invention can measure a quantity of usage of a CPU easily without lowering a performance of the operating system.
    Type: Grant
    Filed: April 26, 2006
    Date of Patent: August 12, 2008
    Assignee: Protimus Technologies LLC
    Inventors: Sang Ho Lee, Jang Keun Oh
  • Publication number: 20080189718
    Abstract: Exemplary embodiments may use remote processing resources to perform processing operations on behalf of a client. The embodiments may dynamically switch among available processing resources while processing is performed. Exemplary embodiments may be used, for example, to publish code, perform processing operations within a determined interval, perform scheduled processing operations, perform synchronized simultaneous execution of two or more programs, support coding competitions, support social networking and/or computing activities, and/or other types of processing activities.
    Type: Application
    Filed: January 29, 2008
    Publication date: August 7, 2008
    Applicant: THE MATHWORKS, INC.
    Inventors: Edward Whittington GULLEY, Joseph F. HICKLIN
  • Patent number: 7409689
    Abstract: The present invention provides providing predictable scheduling of programs using repeating precomputed schedules on discretely scheduled and/or multiprocessor operating systems. In one embodiment, a scheduler accesses an activity scheduling graph. The activity scheduling graph is comprised of nodes each representing a recurring execution interval, and has one root, one or more leaves, and at least one path from the root to each leaf. Each node is on at least one path from the root to a leaf, and the number of times the execution interval represented by each node occurs during the traversal of the graph is equal to the number of paths from the root to a leaf that the node is on. Each node has associated with it an execution interval length, and is adapted to being dedicated to executing the threads of a single activity. There may be one scheduling graph for each processor, or a scheduling graph may traverse multiple processors.
    Type: Grant
    Filed: October 31, 2005
    Date of Patent: August 5, 2008
    Assignee: Microsoft Corporation
    Inventors: Michael B. Jones, John Regehr
  • Patent number: 7409682
    Abstract: A porting layer takes software developed using a single threaded modeling tool to a multiple threaded environment. The single threaded modeling tool is used to model the software. The porting layer ports in variables into a multiple threaded operating environment by reference and not as variables so that each thread can access variables by reference.
    Type: Grant
    Filed: August 26, 2003
    Date of Patent: August 5, 2008
    Assignee: InterDigital Technology Corporation
    Inventors: Robert Gazda, Scott Hergenhan
  • Patent number: 7406688
    Abstract: A parallel process execution method that allocates CPU time to parallel processes at any desired ratios. The method sets a time allocation ratio to determine how much of a given cycle period should be allocated for execution of a parallel program. Process switching is then performed in accordance with the time allocation ratio set to the parallel program. More specifically, parallel processes produced from a parallel program are each assigned to a plurality of processors, and those parallel processes are started simultaneously on the processors. When the time elapsed since the start of the parallel processes has reached a point that corresponds to the time allocation ratio that has been set to the parallel program, the execution of the assigned parallel processes is stopped simultaneously on the plurality of processors.
    Type: Grant
    Filed: August 26, 2003
    Date of Patent: July 29, 2008
    Assignee: Fujitsu Limited
    Inventors: Satoki Shibayama, Yusuke Matsushima, Kaoru Kikushima
  • Patent number: 7403994
    Abstract: The present invention is a method of doing business over a network that: receives a request for transmitting digital information after a start time and before an end time, determines the time required to transmit the digital information based on the number of packets in the information and the network speed, schedules a transmit time for the digital information, and accepts the digital information for transmission only if the time required to transmit is less than or equal to the difference between the transmit time and the end time. Pricing of the transmission can be determined by the priority of transmission, whether the information is transmitted the first time or rescheduled, and whether the user receives an acknowledgment.
    Type: Grant
    Filed: August 29, 2000
    Date of Patent: July 22, 2008
    Assignee: International Business Machines Corporation
    Inventors: Norbert George Vogl, Geoffrey Hale Purdy, Robert Alan Flavin, Yuan Feng, Edward Payson Clarke, Jr.
  • Publication number: 20080168470
    Abstract: Systems, methods, devices enable the efficient synchronization of timing information from first time-based process to a second time-based process using periodic or event-driven synchronization messages.
    Type: Application
    Filed: June 28, 2007
    Publication date: July 10, 2008
    Applicant: Apple Inc.
    Inventors: John Samuel Bushell, Gregory R. Chapman, James D. Batson
  • Publication number: 20080163241
    Abstract: An approach that uses a handler to detect asynchronous lock line reservation lost events, and switching tasks based upon whether a condition is true or a mutex lock is acquired is presented. A synergistic processing unit (SPU) invokes a first thread and, during execution, the first thread requests external data that is shared with other threads or processors in the system. This shared data may be protected with a mutex lock or other shared memory synchronization constructs. When requested data is not available, the SPU switches to a second thread and monitors lock line reservation lost events in order to check when the data is available. When the data is available, the SPU switches back to the first thread and processes the first thread's request.
    Type: Application
    Filed: March 15, 2008
    Publication date: July 3, 2008
    Inventors: Maximino Aguilar, Michael Norman Day, Mark Richard Nutter
  • Publication number: 20080163240
    Abstract: An approach that optimizes system performance using performance monitors is presented. The system gathers thread performance data using performance monitors for threads running on either a first ISA processor or a second ISA processor. Multiple first processors and multiple second processors may be included in a single computer system. The first processors and second processors can each access data stored in a common shared memory. The gathered thread performance data is analyzed to determine whether the corresponding thread needs additional CPU time in order to optimize system performance. If additional CPU time is needed, the amount of CPU time that the thread receives is altered (increased) so that the thread receives the additional time when it is scheduled by the scheduler. In one embodiment, the increased CPU time is accomplished by altering a priority value that corresponds to the thread.
    Type: Application
    Filed: March 15, 2008
    Publication date: July 3, 2008
    Inventors: Maximino Aguilar, David John Erb, Sidney James Manning, James Michael Stafford
  • Publication number: 20080148274
    Abstract: Identifying compatible threads in a Simultaneous Multithreading (SMT) processor environment is provided by calculating a performance metric, such as cycles per instruction (CPI), that occurs when two threads are running on the SMT processor. The CPI that is achieved when both threads were executing on the SMT processor is determined. If the CPI that was achieved is better than the compatibility threshold, then information indicating the compatibility is recorded. When a thread is about to complete, the scheduler looks at the run queue from which the completing thread belongs to dispatch another thread. The scheduler identifies a thread that is (1) compatible with the thread that is still running on the SMT processor (i.e., the thread that is not about to complete), and (2) ready to execute. The CPI data is continually updated so that threads that are compatible with one another are continually identified.
    Type: Application
    Filed: February 25, 2008
    Publication date: June 19, 2008
    Inventors: Jos Manuel Accapadi, Andrew Dunshea, Dirk Michel, Mysore Sathyanarayana Srivivas
  • Publication number: 20080141269
    Abstract: The invention relates to an electronic device (1) and a method for carrying out several processes with said electronic device (1), by means of which rapid solution times may be achieved in a resource-saving manner, whereby, in operation, said electronic device (1) carries out first and second processes (P1, P2), of which the first process (P1) may be carried out in the form of an approximation (P1-N) and in the form of an executable calculation (P1-B). The electronic device comprises a processor (9), for carrying out processes (P1, P2) and an electronic unit (11) comprises a device which recognizes whether the processor (9) is active and serves to carry out the first process (P1) during a simultaneous processing of two processes by the processor (9), by itself determining the approximation (P1-N), used in place of an executable calculation (P1-B), carried out by the processor (9).
    Type: Application
    Filed: July 5, 2005
    Publication date: June 12, 2008
    Applicant: Endress + Hauser GmbH + Co. KG
    Inventors: Dietmar Spanke, Stefan Maier, Martin Link
  • Publication number: 20080141268
    Abstract: A method and mechanism for using threads in a computing system. A multithreaded computing system is configured to execute a first thread and a second thread. The first and second threads are configured to operate in a producer-consumer relationship. The second thread is configured to execute utility type functions in advance of the first thread reaching the functions in the program code. The second thread executes in parallel with the first thread and produces results from the execution which are made available for consumption by the first thread. Analysis of the program code is performed to identify such utility functions and modify the program code to support execution of the functions by the second thread.
    Type: Application
    Filed: December 12, 2006
    Publication date: June 12, 2008
    Inventors: Partha P. Tirumalai, Yonghong Song, Spiros Kalogeropulos
  • Publication number: 20080140390
    Abstract: A system for sharing computing resources including a multi-tasking environment within which a multiple of speech-enabled applications concurrently execute. The system can include a speech resource manager configured to receive speech based requests from the applications, to associate these requests with the requesting application, to use a set of speech resources to produce results for the requests, and to deliver the results to a requesting application. The speech resource manager permits each concurrently executing speech-enabled application to utilize the speech resources. In one embodiment, the system can be a mobile communication device that includes a wireless transceiver configured for real-time communications. When implementing the system in a mobile communication device, the multitasking environment can be a virtual machine environment. such a JAVA MICRO EDITION PLATFORM (J2ME) environment.
    Type: Application
    Filed: December 11, 2006
    Publication date: June 12, 2008
    Applicant: MOTOROLA, INC.
    Inventor: MING XIA
  • Patent number: 7386669
    Abstract: A system and method of improved task switching in a data processing system. First, a first-level cache memory casts out an invalidated page table entry and an associated first page directory base address to a second-level cache memory. Then, the second-level cache memory determines if a task switch has occurred. If a task switch has not occurred, first-level cache memory sends the invalidated page table entry to a current running task directory. If a task switch has occurred, first-level cache memory loads from the second-level cache directory a collection of page table entries related to a new task to enable improved task switching without requiring access to a page table stored in main memory to retrieve the collection of page table entries.
    Type: Grant
    Filed: March 31, 2005
    Date of Patent: June 10, 2008
    Assignee: International Business Machines Corporation
    Inventors: Chris Dombrowski, Marcus Lathan Kornegay, Douglas Michael Pase
  • Patent number: 7376955
    Abstract: A Sever Communication Channel (“SCC”) architecture is described. The SCC architecture provides an abstract base class that describes specific service interfaces called for each service and allows handling of specific protocols for servicing the clients. Worker threads that provide services through different protocols call the specific service interfaces. One application program thereby can implement different protocols for providing diverse types of services such as, for example, scanning services.
    Type: Grant
    Filed: June 20, 2003
    Date of Patent: May 20, 2008
    Assignee: Trend Micro, Inc.
    Inventor: Lane Scott Forman
  • Patent number: 7376442
    Abstract: In a mobile communication terminal for starting and simultaneously using a plurality of applications, one desired application starts fast to improve the operability when the number of started applications reaches a present limiting number of applications. An application start determining unit searches a list of started applications in response to the instruction of the start of application to obtain the number of started applications, and determines that the application cannot start when the number of started applications reaches a preset limiting number of applications. An ending-application selecting unit selects, as an ending application to be ended, the application with the low priority from the start applications based on the preset priority of application when the application start determining unit determines that the application cannot start.
    Type: Grant
    Filed: April 13, 2005
    Date of Patent: May 20, 2008
    Assignee: NEC Corporation
    Inventor: Kenji Yoshioka
  • Patent number: 7376954
    Abstract: A mechanism for assuring quality of service for a context in a digital processor has a first scheduling register dedicated to the context, the register having N out of M bits set, and a first scheduler that consults the register to assign issue slots to the context. The first scheduler grants issue slots for the context by referencing the N bits in the first register, and repeats a pattern of assignments of issue slots after referencing the M bits of the first register.
    Type: Grant
    Filed: October 10, 2003
    Date of Patent: May 20, 2008
    Assignee: MIPS Technologies, Inc.
    Inventor: Kevin D. Kissell
  • Patent number: 7373640
    Abstract: The present invention provides a technique for converting a multi-threaded application configured to execute on a uniprocessor (UP) system to one that executes on a multiprocessor (MP) system. Unlike previous approaches, a novel scheduling technique is employed so that different UP-coded user-level threads (“sthreads”) can execute concurrently in the MP system without having to rewrite their original code. To that end, the UP-coded sthreads are organized into different concurrency groups, each of which defines a set of one or more sthreads not permitted to execute concurrently. By grouping the UP-coded sthreads in this manner, different concurrency groups can be scheduled to execute their UP-coded sthreads at substantially the same time without incorporating traditional synchronization mechanisms into the sthreads' original UP code.
    Type: Grant
    Filed: July 31, 2003
    Date of Patent: May 13, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Robert M. English, Zdenko Kukavica, Konstantinos Roussos