[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2001029655A2 - Method for implementing a multi-level system model for deterministically handling selected data - Google Patents

Method for implementing a multi-level system model for deterministically handling selected data Download PDF

Info

Publication number
WO2001029655A2
WO2001029655A2 PCT/US2000/029043 US0029043W WO0129655A2 WO 2001029655 A2 WO2001029655 A2 WO 2001029655A2 US 0029043 W US0029043 W US 0029043W WO 0129655 A2 WO0129655 A2 WO 0129655A2
Authority
WO
WIPO (PCT)
Prior art keywords
isochronous
plesiochronous
processes
picokemel
active
Prior art date
Application number
PCT/US2000/029043
Other languages
French (fr)
Other versions
WO2001029655A3 (en
Inventor
Scott D. Smyers
Bruce A. Fairman
Glen D. Stone
Harold A. Ludtke
Original Assignee
Sony Electronics Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Electronics Inc. filed Critical Sony Electronics Inc.
Priority to AU10979/01A priority Critical patent/AU1097901A/en
Publication of WO2001029655A2 publication Critical patent/WO2001029655A2/en
Publication of WO2001029655A3 publication Critical patent/WO2001029655A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Definitions

  • Patent Application Serial No. 60/ 161,219 entitled “Method For Implementing A Multi-Level System Model For Handling Multiple Data Streams", filed on October 21 , 1999
  • Patent Application Serial No. 60/ 161,206 entitled “Method For Implementing Scheduling Mechansims By Utilizing Resource Characterizations,” filed on October 21 , 1999.
  • the foregoing related applications are commonly assigned, and are hereby incorporated by reference.
  • This invention relates generally to techniques for performing data handling operations, and relates more particularly to a method for implementing a multi-level system model for deterministically handling selected data.
  • An electronic device in an electronic network may advantageously communicate with other electronic devices in the network to share data to thereby substantially increase the capabilities and versatility of individual devices in the electronic network.
  • an electronic network may be implemented in a home environment to enable flexible and beneficial sharing of data and device resources between various consumer electronic devices, such as personal computers, digital versatile disc (DND) devices, digital set-top boxes for digital broadcasting, enhanced television sets, and audio reproduction systems.
  • DND digital versatile disc
  • Effectively managing data handling operations in a network of electronic devices may create substantial challenges for designers of electronic networks. For example, enhanced demands for increased device functionality and performance during data transfer operations may require more system processing power and require additional hardware resources across the network. An increase in processing or hardware requirements may also result in a corresponding detrimental economic impact due to increased production costs and operational inefficiencies.
  • Network size is also a factor that affects data handling operations in an electronic network. Communications in an electronic network typically become more complex as the number of individual devices or nodes increases. Assume that a particular device on an electronic network is defined as a local device with local software elements, and other devices on the electronic network are defined as remote devices with remote software elements. Accordingly, a local software module on the local device may need to transfer data to various remote software elements on remote devices across the electronic network. However, successfully managing a substantial number of electronic devices across a network may provide significant benefits to a system user.
  • enhanced device capability to perform various advanced data handling operations may provide additional benefits to a system user, but may also place increased demands on the control and management of the various devices in the electronic network.
  • an enhanced electronic device that effectively accesses, processes, and displays digital television programming may benefit from efficient network communication techniques because of the large amount and complexity of the digital data involved.
  • a method for implementing a multi-level system model for deterministically handling selected data.
  • a picokemel in an electronic device preferably waits for a cycle start signal from an isochronous clock to trigger the start of an isochronous processing cycle.
  • the picokemel In response to the cycle start signal, the picokemel preferably determines whether any isochronous processes have been instantiated and are available for immediate scheduling and execution.
  • the picokemel may check for available isochronous processes using any appropriate technique. For example, in certain embodiments, the picokemel may analyze an isochronous process list to locate any active isochronous processes.
  • the picokemel may preferably invoke an isochronous process scheduler that responsively selects an active isochronous process for scheduling and execution using any effective method or technique.
  • the isochronous process scheduler then preferably schedules and executes the selected isochronous process on the electronic device.
  • the foregoing isochronous process also preferably determines whether to activate a corresponding plesiochronous process by signaling the plesiochronous process by setting a corresponding plesiochronous flag.
  • An isochronous process may utilize any appropriate criteria to determine whether to set a plesiochronous flag.
  • the isochronous scheduler next preferably determines whether any unexecuted active isochronous processes remain for scheduling and execution during the current isochronous cycle. If unexecuted active isochronous processes remain, then the isochronous scheduler returns to sequentially select, schedule, and execute the remaining isochronous processes.
  • the picokemel preferably determines whether any plesiochronous processes have been instantiated and have been flagged as being available for immediate scheduling and execution.
  • the picokemel may check for available plesiochronous processes using any appropriate technique. For example, in certain embodiments, the picokemel may analyze a plesiochronous process list to locate any flagged plesiochronous processes. If no flagged plesiochronous processes are available for scheduling and execution, then the picokemel returns to wait for a subsequent cycle start signal from the isochronous clock.
  • the picokemel may preferably invoke a plesiochronous scheduler.
  • the plesiochronous scheduler preferably selects a flagged plesiochronous process for scheduling and execution using any effective method or technique.
  • the picokemel also preferably monitors the electronic device for any interrupt events that may affect the plesiochronous processes. In certain embodiments, if an exochronous interrupt occurs, then the picokemel may preferably interrupt the currently executing plesiochronous process and mark the interrupted plesiochronous process for subsequent completion. The electronic device may then perform various required system tasks using exochronous processing.
  • the picokemel may preferably interrupt the plesiochronous processes and mark the interrupted plesiochronous processes for subsequent completion.
  • the picokemel may then preferably continue to select, schedule, and execute any active isochronous processes in a new isochronous cycle.
  • the plesiochronous scheduler preferably may determine whether any unexecuted flagged plesiochronous processes remain for scheduling and execution during the current isochronous cycle. If unexecuted plesiochronous processes remain, then the plesiochronous scheduler preferably returns to select, schedule, and execute the remaining plesiochronous processes. However, if no unexecuted plesiochronous processes remain, then the picokemel preferably returns to repeatedly perform the foregoing steps in response to subsequent cycle start signals from the isochronous clock.
  • the present invention therefore provides an improved method for implementing a multi-level system model for deterministically handling selected data.
  • FIG. 1 is a block diagram for one embodiment of an electronic network, in accordance with the present invention.
  • FIG. 2 is a block diagram for one embodiment of an exemplary device of FIG. 1 , in accordance with the present invention
  • FIG. 3 is a diagram for one embodiment of the memory of FIG. 2, in accordance with the present invention.
  • FIG. 4 is a block diagram for one embodiment of a cantaloupe from FIG. 3, in accordance with the present invention.
  • FIG. 5 is a block diagram for the picokemel of FIG. 3, in accordance with one embodiment of the present invention.
  • FIG. 6 is a timing diagram for one embodiment of exemplary isochronous data transfers, in accordance with the present invention.
  • FIG. 7 is a block diagram of one embodiment for implementing a multilevel system model, in accordance with the present invention.
  • FIG. 8 is an exemplary timing diagram illustrating the operation of a multi-level system model, in accordance with one embodiment of the present invention
  • FIG. 9 is a flowchart of method steps for implementing isochronous processes in a multi-level system model, in accordance with one embodiment of the present invention.
  • FIG. 10 is a flowchart of method steps for implementing plesiochronous processes in a multi-level system model, in accordance with one embodiment of the present invention.
  • the present invention relates to an improvement in electronic data handling techniques.
  • the following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements.
  • Various modifications to the preferred embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments.
  • the present invention is not intended to be limited to the embodiment shown, but is to be accorded the widest scope consistent with the principles and features described herein.
  • the present invention comprises a method for implementing a multilevel system model for deterministically handling selected data, and includes a picokemel module that may invoke an isochronous scheduler to select, schedule, and execute active isochronous processes on an electronic device in response to a cycle start signal from an isochronous clock.
  • the active isochronous processes may selectively set plesiochronous flags to thereby designate corresponding plesiochronous processes as active plesiochronous processes.
  • the picokemel may invoke a plesiochronous scheduler to select, schedule, and execute any active plesiochronous processes on the electronic device.
  • network 1 10 preferably comprises, but is not limited to, a number of electronic devices 1 12 (device A 1 12(a), device B 112(b), root device 1 14, device C 112(c), device D 1 12(d), and device E 112(e)).
  • electronic network 1 10 may readily be configured to include various other devices 1 12 or components that function in addition to, or instead of, those discussed in conjunction with the FIG. 1 embodiment.
  • network 1 10 may readily be connected and configured in any other appropriate and suitable manner.
  • devices 1 12 of network 1 10 may be implemented as any type of electronic device, including, but not limited to, personal computers, printers, digital video disc devices, television sets, audio systems, video cassette recorders, and set-top boxes for digital broadcasting.
  • devices 1 12 preferably communicate with one another using a network bus 132.
  • Network bus 132 preferably includes path 132(a), path 132(b), path 132(c), path 132(d), and path 132(e).
  • device B 1 12(b) is coupled to device A 112(a) via path 132(a), and to root device 1 14 via path 132(b).
  • root device 1 14 is coupled to device C 1 12(c) via path 132(c), and to device D 1 12(d) via path 132(d).
  • device D 1 12(d) is coupled to device E 1 12(e) via path 132(e).
  • network bus 132 is preferably implemented using a PI 394 Standard for a High Performance Serial Bus, IEEE, 1995, which is hereby incorporated by reference.
  • network 1 10 may readily communicate and function using various other network interconnectivity schemes, which are equally within the scope of the present invention.
  • each device in electronic network 1 10 may preferably communicate with any other device within network 1 10.
  • device E 1 12(e) may communicate with device B 1 12(b) by transmitting data via cable 132(e) to device D 1 12(d), which then may transmit the data via cable 132(d) to root device 1 14.
  • root device 1 14 then may transmit the data to device B 1 12(b) via cable 132(b).
  • root device 1 14 preferably provides a master cycle start signal to synchronize isochronous processes for devices 1 12 in network 1 10.
  • any one of the network devices 1 12 may be designated as the root device or cycle master.
  • Device 112 preferably includes, but is not limited to, a processor 212, an input/ output (I/O) interface 214, a memory 216, a device bus 226, and a bus interface 220.
  • processor 212, I/O interface 214, memory 216 and bus interface 220 preferably are each coupled to, and communicate via common device bus 226.
  • device 112 may readily be configured to include various other components or architectures in addition to, or instead of, those discussed in conjunction with the FIG. 2 embodiment.
  • processor 212 may preferably be implemented as any appropriate microprocessor device.
  • Memory 216 may preferably be implemented as one or more effective storage devices, including, but not limited to, read-only memory, random-access memory, and various types of non-volatile memory, such as floppy disc devices or hard disc devices.
  • I/O interface 214 preferably may provide an interface for bi- directional communications with various compatible sources, destinations, and other entities.
  • bus interface 220 preferably provides a bi-directional interface between device 112 and network 110.
  • bus interface 220 preferably communicates with other devices 1 12 on network 1 10 via network bus 132.
  • Bus interface 220 also preferably communicates with processor 212, I/O device 214, and memory 216 via a common device bus 226.
  • memory 216 preferably includes, but is not limited to, device software 312, picokemel 314, cantaloupe manager 316, cantaloupe(s) 318, endochronous application program interfaces (endochronous APIs) 320, isochronous process representation(s) 322, and plesiochronous process representation(s) 324.
  • memory 216 may readily include various other components in addition to, or instead of, the components that are discussed in conjunction with the FIG. 3 embodiment.
  • device software 312 preferably may include software instructions that may be executed by processor 212 for performing various functions and operations by device 112. The particular nature and functionality of device software 312 preferably varies depending upon factors such as the type and purpose of the corresponding host device 112.
  • picokemel 312 preferably controls and coordinates the scheduling and execution of isochronous and plesiochronous processes by utilizing optimized process representations 322 and 324 to reduce the cost or overhead of scheduling to a minimum. Picokemel 312 is further discussed below in conjunction with FIGS. 5 and 7- 10.
  • Cantaloupe manager 316 preferably may utilize information from cantaloupe(s) 318 to determine whether a particular isochronous or plesiochronous process may be instantiated on behalf of another entity such as device software 312.
  • Cantaloupe(s) 318 preferably include one or more characterizations of hardware and/ or software resources necessary to meet performance criteria for a particular isochronous process. Cantaloupe(s) 318 are further discussed below in conjunction with FIG. 4.
  • endochronous APIs 320 may preferably include one or more application program interfaces that allow the implementation of a programmable isochronous capability in a particular system.
  • endochronous APIs 320 may include interfaces for installing isochronous services, interfaces to create, control, and delete endochronous processes, and interfaces to communicate with the rest of a system through a signaling mechanism.
  • isochronous process representation(s) 322 preferably include one or more data structures that each correspond to an associated isochronous process that has been instantiated on device 112.
  • Each of the isochronous process representation(s) 322 preferably include any relevant information that is required to successfully and deterministically execute the corresponding isochronous process.
  • plesiochronous process representation(s) 324 preferably include one or more data structures that each correspond to an associated plesiochronous process that has been instantiated on device 112.
  • Each of the plesiochronous process representation(s) 324 preferably include any relevant information that is required to successfully and deterministically execute the corresponding plesiochronous process.
  • cantaloupe 318 preferably includes a listing for a resource 1 (412(a)) through a listing for a resource N (412(c)).
  • resources 412 may include any appropriate aspects of devices 112 or network 1 10 (FIG. 1).
  • resource 412 may correspond to the bandwidth for a particular bus, such as device bus 226 or network bus 132.
  • resource 412 may correspond to the processing capacity for a central processing device, such as processor 212 (FIG. 2).
  • cantaloupe 318 may readily be implemented to include various other configurations, and may also include various items and components that are different from those discussed in conjunction with the FIG. 4 embodiment.
  • cantaloupe 318 is preferably associated with a particular isochronous or plesiochronous process on network 110.
  • cantaloupe manager 316 may then advantageously reference cantaloupe 318 to determine the individual and total resources necessary for the associated process. Determining in advance whether sufficient system resources are available for successful operation of a given process ensures that the associated isochronous process is guaranteed sufficient resources for timely and deterministic performance. Providing resources becomes more significant as the cycle duration decreases and the cycle frequency increases.
  • the cycle period may preferably be in the proximity of 125 microseconds, with a rate of eight kilohertz.
  • cantaloupe 318 preferably also includes a listing for a resource 1 usage (414(a)) through a listing for a resource N usage (414(c)).
  • each of resource usages 414 preferably corresponds with a given resource 412 to characterize the amount of the given resource 412 required by the isochronous or plesiochronous process associated with cantaloupe 318. For example, if a given resource 412 is the bandwidth for a particular bus, then the corresponding resource usage 414 may be expressed in bandwidth units utilized by a process.
  • resource usage 414 may be expressed in CPU units, such as machine- instructions per second (MIPS).
  • MIPS machine- instructions per second
  • resource usages 414 may be implemented in any appropriate and compatible format for use by network 110.
  • cantaloupe 318 may be implemented using only resource usages 414, with the corresponding resources 412 indirectly implied and understood during instantiation of process on network 110.
  • cantaloupe 318 preferably includes an at least two- dimensional array of descriptive parameters.
  • the first parameter preferably may be the type of resource being characterized, and the second parameter is the amount of required resource usage.
  • a cantaloupe 318 may thus serve as a common descriptor to couple hardware and software scheduling mechanisms by describing resource requirements. For example, in one embodiment, resource usage may be characterized and described as a ratio of the amount of usage per a given time period (including process scheduling overhead) .
  • picokemel 314 preferably may include, but is not limited to, an isochronous scheduler 512, an isochronous process list 514, a plesiochronous scheduler 516, and a plesiochronous process list 518.
  • picokemel 314 may readily be configured to include various other components or types of information in addition to, or instead of, those discussed in conjunction with the FIG. 5 embodiment.
  • isochronous scheduler 512 may preferably include program instructions for scheduling and executing various isochronous processes on device 112.
  • Isochronous process list 514 preferably may include one or more isochronous process identifiers that each corresponds to an associated isochronous process that is currently instantiated and active on device 112. The functionality and utilization of isochronous scheduler 512 and isochronous process list 514 are further discussed below in conjunction with FIGS. 7 through 9.
  • plesiochronous scheduler 516 may preferably include program instructions for scheduling and executing various plesiochronous processes on device 112.
  • Plesiochronous process list 518 preferably may include one or more plesiochronous process identifiers that each corresponds to an associated plesiochronous process that is currently instantiated and active on device 112. The functionality and utilization of plesiochronous scheduler 516 and plesiochronous process list 518 are further discussed below in conjunction with FIGS. 7, 8, and 10.
  • FIG. 6 a timing diagram for one embodiment of exemplary isochronous data transfers is shown, in accordance with the present invention.
  • the FIG. 6 timing diagram includes a system clock 612, an isochronous clock signal 614, and an isochronous data transfer signal 616.
  • the FIG. 6 timing diagram is presented for purposes of illustration, and in alternate embodiments, isochronous data transfers may readily be configured to include various other elements and timing relationships in addition to, or instead of, those discussed in conjunction with the FIG. 6 embodiment.
  • certain of the principles discussed below in conjunction with isochronous data transfers may similarly apply to isochronous data processing operations, plesiochronous data transfers, or plesiochronous data processing operations.
  • Isochronous data typically includes time- sensitive data that is preferably assigned a high transfer and processing priority to guarantee that the isochronous data deterministically arrives at a designated destination at pre-determined timing intervals and is processed accordingly. Because of the time- sensitive nature of isochronous data, re-transmission of an isochronous data transfer may not be appropriate or possible. For example, if a frame of video data does not reach a display device on network 110 until after the appropriate moment for display of that frame, then re-transmitting the delayed frame is not productive. Sources of isochronous data therefore typically do not repeat unsuccessful isochronous data transmissions. Loss of the foregoing frame of video data may likely cause unwanted jitter or breakup of the corresponding video programming.
  • a first isochronous clock pulse 614 changes state in synchronization with system clock 612.
  • isochronous clock pulse 614 may also be called a cycle start signal because isochronous clock pulse 614 triggers and synchronizes the beginning of an isochronous timing cycle.
  • the isochronous clock pulse 614 changes state again, and isochronous data transfer 616(a) responsively occurs in a deterministic manner.
  • a second isochronous clock pulse 614 changes state in synchronization with system clock 612.
  • the second isochronous clock pulse 614 once more changes state, and isochronous data transfer 616(b) again occurs in a deterministic manner. Therefore, as illustrated in FIG. 6, isochronous data transfers 616(a) and 616(b) typically occur at a pre-determined frequency in device 112.
  • device 112 may require isochronous data transfers 616(a) and 616(b) to occur before any asynchronous data transfers because of the time-sensitive nature of the corresponding isochronous data. Referring now to FIG.
  • FIG. 7 a block diagram of one embodiment for implementing a multi-level system model is shown, in accordance with the present invention.
  • multi-level system models may readily be implemented to include various other components, architectures, or functionalities in addition to, or instead of, those discussed in conjunction with the FIG. 7 embodiment.
  • device software 312 may generate an isochronous request to endochronous APIs 320 via path 712 for instantiating an isochronous process (and possibly one or more corresponding plesiochronous processes) on device 1 12.
  • Device software 312 may generate the isochronous request for any appropriate reason. For example, device software 312 may generate the isochronous request because of information received from a system user or other device on network 1 10 that specifically requires transfer or processing of corresponding isochronous data.
  • Device software 312 may also generate the isochronous request in response to isochronous identifier information that may be detected in data packets that are transmitted to device 112.
  • endochronous APIs 320 in response to the isochronous request, endochronous APIs 320 preferably may perform an instantiation procedure to create isochronous process representation 322 (and possibly plesiochronous process representation 324) via path 714.
  • the foregoing instantiation procedure preferably may include performing a device resource allocation procedure using cantaloupe(s) 318, as discussed above in conjunction with FIG. 4.
  • isochronous process representation 322 may notify picokemel 314 via path 716 when isochronous process representation 322 has been instantiated and is currently active on device 112.
  • picokemel 314 may add a unique isochronous process identifier for the isochronous process representation 322 to isochronous process list 514 (FIG. 5).
  • isochronous process representation 322 may also generate a plesiochronous flag to plesiochronous process representation 324 via path 718 to indicate that the corresponding plesiochronous process is ready to be executed on device 112.
  • the plesiochronous process representation 324 may then notify picokemel 314 via path 720 that the plesiochronous process representation 322 has been instantiated and is currently ready to be executed on device 112.
  • picokemel 314 may add a unique plesiochronous process identifier for the plesiochronous process representation 324 to plesiochronous process list 518 (FIG. 5).
  • picokemel 314 may poll isochronous process representation 322 and plesiochronous process representation 324 to determine whether corresponding isochronous or plesiochronous processes are currently active on device 112.
  • picokemel 314 then preferably may receive a cycle start signal from isochronous clock 614, and responsively schedule and execute the isochronous process associated with isochronous process representation 322. Similarly, picokemel 314 may schedule and execute the plesiochronous process associated with plesiochronous process representation 324.
  • the exemplary FIG. 7 embodiment is discussed in the context of a single isochronous process and a single plesiochronous process, however the present invention may readily instantiate, schedule, and execute any desired number of isochronous processes and plesiochronous processes. The utilization of picokemel 314 to schedule and execute isochronous processes and plesiochronous processes is further discussed below in conjunction with FIGS. 8 through 10.
  • timing diagram 810 illustrating the operation of a multi-level system model is shown, in accordance with one embodiment of the present invention.
  • the FIG. 8 embodiment is presented for purposes of illustration, and various other process execution hierarchies and timing sequences are equally contemplated for effective operation in the environment of the present invention.
  • timing diagram 810 is arranged in a temporal hierarchy that ranges from higher priority isochronous processes that are located at the top of timing diagram 810, to lower priority plesiochronous processes that are located at the bottom of timing diagram 810.
  • the FIG. 8 embodiment includes exochronous processing 814 (system level execution) which is located in the shaded area at the bottom of timing diagram 810.
  • the FIG. 814 system level execution
  • endochronous processing 818 which is located from immediately above exochronous processing 814 to the top of the FIG. 8 timing diagram 810.
  • endochronous processing 818 preferably may include one or more isochronous processes 822.
  • isochronous processes 822 are shown on level 0 (830) of endochronous processing 818.
  • endochronous processing 818 preferably may also include one or more plesiochronous processes 826.
  • plesiochronous processes 826 are shown on level 1 (834) of endochronous processing 818.
  • the multi-level system model of the present invention may include any desired number of different levels.
  • timing diagram 810 includes a level 2 (838) for scheduling and executing additional plesiochronous processes.
  • the FIG. 8 timing diagram 810 displays real time that progresses from left to right on horizontal axis 842 to include a contiguous sequence of isochronous cycles that are demarcated by periodic cycle start signals.
  • the first "cycle n" is triggered by cycle start signal 854.
  • Each successive isochronous cycle is similarly triggered by respective cycle start signals 858, 862, 866, 870, and 874.
  • Timing diagram 810 also includes a reoccurring isochronous process A 846 that signals a corresponding plesiochronous process 886 every four cycles (see legend), and a reoccurring isochronous process B 850 that signals a corresponding plesiochronous process 878 every 2 cycles (see legend).
  • picokemel 314 preferably receives cycle start signal 854, and responsively selects, schedules, and executes isochronous process A 846 and isochronous process B 850.
  • the outline of the various isochronous and plesiochronous processes preferably represents the bounds of allocated system resources as determined by the resource allocation procedure discussed above in conjunction with FIG. 4.
  • device 112 when all isochronous processes 822 and all plesiochronous processes 826 have been executed, then device 112 preferably may switch to exochronous processing 814 to perform any required system level execution tasks.
  • picokemel 314 in response to cycle start signal 858, picokemel 314 preferably schedules and executes isochronous process B 850 (which preferably signals that plesiochronous process 878 is now ready to execute) and isochronous process A 846. Following the completion of isochronous process A 846, picokemel 314 preferably schedules and executes plesiochronous process 878(a). Then, at the beginning of the next isochronous cycle, picokemel 314 preferably receives cycle start signal 862, and responsively selects, schedules, and executes isochronous process A 846 and isochronous process B 850.
  • picokemel 314 in response to cycle start signal 866, picokemel 314 preferably selects, schedules, and executes isochronous process A 846 (which preferably signals that plesiochronous process 886 is now ready to execute). Picokemel 314 also preferably selects, schedules, and executes isochronous process B 850 (which preferably signals that plesiochronous process 878 is now ready to execute). Following the completion of isochronous process B 850, picokemel 314 preferably selects, schedules, and executes plesiochronous process 878(b) and a first portion (886(a)) of plesiochronous process 886 which is interrupted because of the occurrence of cycle start signal 870.
  • picokemel 314 In response to cycle start signal 870, picokemel 314 preferably selects, schedules, and executes isochronous process B 850 and isochronous process A 846. Following the completion of isochronous process A 846, picokemel 314 then preferably schedules and executes the remaining portion (886((b)) of plesiochronous process 886. At cycle start signal 874, picokemel 314 preferably selects, schedules, and executes isochronous process A 846 and isochronous process B 850 (which preferably signals that plesiochronous process 878 is now ready to execute).
  • picokemel 314 preferably schedules and executes plesiochronous process 878(c).
  • the FIG. 8 multi-level system model may thus continue to select, schedule, and execute multi-level isochronous processes and plesiochronous processes using endochronous processing 818, and also perform system level execution using exochronous processing 814.
  • the picokemel 314 (FIG. 3) is responsible for the scheduling of isochronous processes, and utilizes optimized process representations to reduce scheduling overhead to a minimum. Execution of an isochronous process is preferably not interruptable, and therefore the execution of isochronous processes simply runs from the start of the process until the end of the process. The uninterruptability of isochronous processes advantageously simplifies the scheduling model necessary for the operation of picokemel 314.
  • Scheduling of isochronous processes 822 and plesiochronous processes 826 typically requires a finite time period that is sometimes referred to as "overhead". As the cycle time period is reduced, the overhead becomes a more significant factor because of the reduced amount of time remaining to perform the actual isochronous transfer or processing.
  • the cycle time period may be in the proximity of 125 microseconds, with a cycle frequency of approximately eight kilohertz.
  • the maximum amount of time allotted to isochronous operation may be approximately 4/5 of the cycle time period (100 microseconds). This mechanism may be implemented by cantaloupe manager 316 to guarantee that isochronous processing does not exceed a specified portion of resource usage.
  • certain plesiochronous processes can generally tolerate more latency in their scheduling, as well as less determinism in their execution.
  • a particular plesiochronous process may have a lesser degree of importance, have a relatively long duration, or require resources that are not available at the isochronous level.
  • isochronous processes 822 may often be associated with relatively short transfers of a particular set of isochronous data, while corresponding plesiochronous processes 826 may be associated with relatively longer processing functions for the particular set of isochronous data.
  • a plesiochronous process 826 may preferably be interruptable by an isochronous process 822.
  • multiple levels of plesiochronous processes 826 may be available to perform data transfers, data processing, or other functions.
  • a plesiochronous process 826 preferably may be related to, or initiated by, a corresponding isochronous process 822 by using a simple signaling mechanism (shown in FIG. 8 as a solid line with an arrow).
  • a plesiochronous process 826 need not be related to a corresponding isochronous process 822.
  • isochronous processes 822 and plesiochronous processes 826 form endochronous processing 818 because both types of processes are related to the same time domain which includes the isochronous cycle sequence illustrated in the FIG. 8 embodiment.
  • Isochronous processes 822 preferably are treated as the highest- priority processes.
  • Plesiochronous processes 826 are treated as the second- highest priority processes, and are preferably scheduled after exiting from isochronous process scheduling and execution.
  • a plesiochronous scheduler 516 (FIG. 5) preferably includes a priority scheduler (not shown) since a lengthy or infrequent plesiochronous process may not block a frequent plesiochronous process. Scheduling of isochronous processes 822 is typically driven by the occurrence of an isochronous interrupt that may interrupt system level execution 814 or a plesiochronous process 826.
  • exochronous processing 814 scheduling operations that occur outside the cycle time domain of the isochronous and plesiochronous processes may be termed exochronous processing 814.
  • the execution of various system level processes is preferably included in the foregoing exochronous processing 814.
  • These system level processes preferably include tasks and processes from the host operating system's normal execution environment.
  • Communication between endochronous processing 818 and exochronous processing 814 may be analogous to communication between a system interrupt handler and interrupt processing routines. Therefore, the signaling of an interrupt-like event may utilize normal system services.
  • the present invention thus advantageously utilizes a multiple-level system model for deterministically handling multiple streams of continuous data, where each level represents a discrete level in the hierarchy of time.
  • Isochronous processes 822 preferably handle data movement according to an isochronous clock 614 that is synchronized to a time reference that functions as a point of global synchrony for network 110.
  • Plesiochronous processes 826 preferably handle streaming data according to a time base which is different from, but which may be synchronous with, the isochronous data movement clock domain.
  • the system level execution in exochronous processing 814 is preferably not controlled according the foregoing time base, and is not involved with the movement or processing of streaming data.
  • the multi-level system model thus efficiently and effectively facilitates various isochronous, plesiochronous, and system level processes across electronic network 1 10.
  • FIG. 9 a flowchart of method steps for implementing isochronous processes 822 in a multi-level system model is shown, in accordance with one embodiment of the present invention.
  • the FIG. 9 example is presented for purposes of illustration, and, in alternate embodiments, the present invention may readily implement multi-level system models using various steps and sequences other than those discussed in conjunction with the FIG. 9 embodiment.
  • picokemel 314 preferably waits for a cycle start signal from isochronous clock 614 to trigger the start of an isochronous cycle.
  • picokemel 314 preferably determines whether any isochronous processes have been instantiated and are available for immediate scheduling and execution.
  • Picokemel 314 may check for available isochronous processes using any appropriate technique. For example, in certain embodiments, picokemel 314 may analyze isochronous process list 514 to locate any active isochronous processes. If no active isochronous processes are available for scheduling and execution, then the FIG. 9 process advances to the following FIG. 10 plesiochronous flowchart.
  • picokemel 314 preferably may invoke isochronous scheduler 512.
  • isochronous scheduler 512 preferably may select an active isochronous process for scheduling and execution using any effective method or technique. For example, isochronous scheduler 512 may select an isochronous process based upon criteria such as the relative importance, length, function, or time- sensitivity of the various active isochronous processes. Isochronous scheduler 512 may alternately utilize a fixed pre-determined priority scheme, or may implement a rotating (round-robin) priority scheme.
  • isochronous scheduler 512 preferably schedules and executes the selected isochronous process on device 112.
  • the foregoing isochronous process determines whether to activate a corresponding plesiochronous process by signaling the plesiochronous process in order to set a corresponding plesiochronous flag.
  • An isochronous process may utilize any desired criteria to determine whether to set a plesiochronous flag. For example, a given isochronous process may be associated with isochronous data movement for a particular task on device 112.
  • a corresponding plesiochronous process may be required to processing data structures that are accumulated over multiple isochronous cycles as a result of the foregoing isochronous data movement process.
  • the isochronous process may thus set a plesiochronous flag to activate the corresponding plesiochronous process when sufficient isochronous data has been accumulated to begin the processing procedure.
  • isochronous scheduler 512 preferably determines whether any unexecuted active isochronous processes remain for scheduling and execution during the current isochronous cycle. If unexecuted active isochronous processes remain, then the FIG. 9 process returns to step 926 to sequentially select, schedule, and execute the remaining isochronous processes. However, if no unexecuted active isochronous processes remain, then the FIG. 9 process advances to the following FIG. 10 plesiochronous flowchart.
  • picokemel 314 preferably determines whether any plesiochronous processes have been instantiated and have been flagged as being available for immediate scheduling and execution. Picokemel 314 may check for available plesiochronous processes using any appropriate technique.
  • picokemel 314 may analyze plesiochronous process list 518 to locate any flagged plesiochronous processes. If no flagged plesiochronous processes are available for scheduling and execution, then the FIG. 10 process returns to the beginning of the preceding FIG. 9 isochronous flowchart to wait for a subsequent cycle start signal from isochronous clock 614.
  • picokemel 314 preferably may invoke plesiochronous scheduler 516.
  • plesiochronous scheduler 516 preferably may select a flagged plesiochronous process for scheduling and execution using any effective method or technique. For example, plesiochronous scheduler 516 may select a plesiochronous process based upon criteria such as the relative importance, length, function, or time- sensitivity of the various flagged plesiochronous processes. Plesiochronous scheduler 516 may alternately utilize a fixed pre-determined priority scheme, or may implement a rotating (round-robin) priority scheme.
  • plesiochronous scheduler 516 preferably schedules and executes the foregoing selected plesiochronous process on device 112.
  • picokemel 314 preferably monitors device 112 for any events that may affect the execution of the current plesiochronous process. In certain embodiments, if an exochronous interrupt occurs, then picokemel 314 may preferably interrupt the currently executing plesiochronous process and mark the interrupted plesiochronous process for subsequent completion. In step 1034, device 112 may then perform various required exochronous tasks using exochronous processing 814 (FIG. 8).
  • picokemel 314 may preferably interrupt the plesiochronous process and mark the interrupted plesiochronous process for subsequent completion.
  • the FIG. 10 process then preferably may return to step 918 of the preceding FIG. 9 isochronous flowchart to select, schedule, and execute any active isochronous processes.
  • plesiochronous scheduler 516 preferably determines whether any unexecuted flagged plesiochronous processes remain for scheduling and execution during the current isochronous cycle. If unexecuted plesiochronous processes remain, then the FIG.
  • FIG. 10 process returns to step 1022 to sequentially select, schedule, and execute the remaining plesiochronous processes. However, if no unexecuted plesiochronous processes remain, then the FIG. 10 process returns to the beginning of the preceding FIG. 9 isochronous flowchart to repeatedly perform the foregoing method steps in response to subsequent cycle start signals from isochronous clock 614.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Small-Scale Networks (AREA)
  • Hardware Redundancy (AREA)

Abstract

A method for implementing a multi-level system model for deterministically handling selected data comprises a picokernel module (314) that invokes an isochronous scheduler (512) to select, schedule, and execute active isochronous processes on an electronic devie (112) in response to a cycle start signal from an isochronous clock. The active isochronous processes may selectively set plesiochronous flags to thereby designate corresponding plesiochronous processes (826) as active plesiochronous processes. Once all active isochronous processes have been executed in a given isochronous cycle, then the picokernel (314) may invoke a plesiochronous scheduler (516) to select, schedule, and execute any active plesiochronous processes on the electronic device (112).

Description

METHOD FOR IMPLEMENTING A MULTI-LEVEL SYSTEM MODEL FOR DETERMINISTICALLY HANDLING SELECTED DATA
CROSS-REFERENCE TO RELATED APPLICATIONS This application relates to, and claims priority in, U.S. Provisional
Patent Application Serial No. 60/ 161,219, entitled "Method For Implementing A Multi-Level System Model For Handling Multiple Data Streams", filed on October 21 , 1999, and to U.S. Provisional Patent Application Serial No. 60/ 161,206, entitled "Method For Implementing Scheduling Mechansims By Utilizing Resource Characterizations," filed on October 21 , 1999. The foregoing related applications are commonly assigned, and are hereby incorporated by reference.
BACKGROUND SECTION
Field of the Invention
This invention relates generally to techniques for performing data handling operations, and relates more particularly to a method for implementing a multi-level system model for deterministically handling selected data.
2. Description of the Background Art
Implementing effective methods for handling data by electronic devices is a significant consideration for designers and manufacturers of contemporary electronic devices. An electronic device in an electronic network may advantageously communicate with other electronic devices in the network to share data to thereby substantially increase the capabilities and versatility of individual devices in the electronic network. For example, an electronic network may be implemented in a home environment to enable flexible and beneficial sharing of data and device resources between various consumer electronic devices, such as personal computers, digital versatile disc (DND) devices, digital set-top boxes for digital broadcasting, enhanced television sets, and audio reproduction systems.
Effectively managing data handling operations in a network of electronic devices may create substantial challenges for designers of electronic networks. For example, enhanced demands for increased device functionality and performance during data transfer operations may require more system processing power and require additional hardware resources across the network. An increase in processing or hardware requirements may also result in a corresponding detrimental economic impact due to increased production costs and operational inefficiencies.
Network size is also a factor that affects data handling operations in an electronic network. Communications in an electronic network typically become more complex as the number of individual devices or nodes increases. Assume that a particular device on an electronic network is defined as a local device with local software elements, and other devices on the electronic network are defined as remote devices with remote software elements. Accordingly, a local software module on the local device may need to transfer data to various remote software elements on remote devices across the electronic network. However, successfully managing a substantial number of electronic devices across a network may provide significant benefits to a system user.
Furthermore, enhanced device capability to perform various advanced data handling operations may provide additional benefits to a system user, but may also place increased demands on the control and management of the various devices in the electronic network. For example, an enhanced electronic device that effectively accesses, processes, and displays digital television programming may benefit from efficient network communication techniques because of the large amount and complexity of the digital data involved.
Due to growing demands on system resources and substantially increasing data magnitudes, it is apparent that developing new and effective techniques for handling data is a matter of importance for the related electronic technologies. Therefore, for all the foregoing reasons, implementing effective methods for handling data by electronic devices remains a significant consideration for designers, manufacturers, and users of contemporary electronic devices.
SUMMARY
In accordance with the present invention, a method is disclosed for implementing a multi-level system model for deterministically handling selected data. In one embodiment, initially, a picokemel in an electronic device preferably waits for a cycle start signal from an isochronous clock to trigger the start of an isochronous processing cycle.
In response to the cycle start signal, the picokemel preferably determines whether any isochronous processes have been instantiated and are available for immediate scheduling and execution. The picokemel may check for available isochronous processes using any appropriate technique. For example, in certain embodiments, the picokemel may analyze an isochronous process list to locate any active isochronous processes.
If one or more active isochronous processes are ready to be executed, then the picokemel may preferably invoke an isochronous process scheduler that responsively selects an active isochronous process for scheduling and execution using any effective method or technique. The isochronous process scheduler then preferably schedules and executes the selected isochronous process on the electronic device. The foregoing isochronous process also preferably determines whether to activate a corresponding plesiochronous process by signaling the plesiochronous process by setting a corresponding plesiochronous flag. An isochronous process may utilize any appropriate criteria to determine whether to set a plesiochronous flag. The isochronous scheduler next preferably determines whether any unexecuted active isochronous processes remain for scheduling and execution during the current isochronous cycle. If unexecuted active isochronous processes remain, then the isochronous scheduler returns to sequentially select, schedule, and execute the remaining isochronous processes.
However, if no unexecuted active isochronous processes remain, then the picokemel preferably determines whether any plesiochronous processes have been instantiated and have been flagged as being available for immediate scheduling and execution. The picokemel may check for available plesiochronous processes using any appropriate technique. For example, in certain embodiments, the picokemel may analyze a plesiochronous process list to locate any flagged plesiochronous processes. If no flagged plesiochronous processes are available for scheduling and execution, then the picokemel returns to wait for a subsequent cycle start signal from the isochronous clock.
However, if one or more flagged plesiochronous processes are available, then, the picokemel may preferably invoke a plesiochronous scheduler. In response, the plesiochronous scheduler preferably selects a flagged plesiochronous process for scheduling and execution using any effective method or technique.
The picokemel also preferably monitors the electronic device for any interrupt events that may affect the plesiochronous processes. In certain embodiments, if an exochronous interrupt occurs, then the picokemel may preferably interrupt the currently executing plesiochronous process and mark the interrupted plesiochronous process for subsequent completion. The electronic device may then perform various required system tasks using exochronous processing.
Alternately, in certain embodiments, if a new cycle start signal occurs before flagged plesiochronous processes complete execution, then the picokemel may preferably interrupt the plesiochronous processes and mark the interrupted plesiochronous processes for subsequent completion. The picokemel may then preferably continue to select, schedule, and execute any active isochronous processes in a new isochronous cycle.
If no interrupt events occur, then the plesiochronous scheduler preferably may determine whether any unexecuted flagged plesiochronous processes remain for scheduling and execution during the current isochronous cycle. If unexecuted plesiochronous processes remain, then the plesiochronous scheduler preferably returns to select, schedule, and execute the remaining plesiochronous processes. However, if no unexecuted plesiochronous processes remain, then the picokemel preferably returns to repeatedly perform the foregoing steps in response to subsequent cycle start signals from the isochronous clock. The present invention therefore provides an improved method for implementing a multi-level system model for deterministically handling selected data.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram for one embodiment of an electronic network, in accordance with the present invention;
FIG. 2 is a block diagram for one embodiment of an exemplary device of FIG. 1 , in accordance with the present invention;
FIG. 3 is a diagram for one embodiment of the memory of FIG. 2, in accordance with the present invention;
FIG. 4 is a block diagram for one embodiment of a cantaloupe from FIG. 3, in accordance with the present invention;
FIG. 5 is a block diagram for the picokemel of FIG. 3, in accordance with one embodiment of the present invention;
FIG. 6 is a timing diagram for one embodiment of exemplary isochronous data transfers, in accordance with the present invention;
FIG. 7 is a block diagram of one embodiment for implementing a multilevel system model, in accordance with the present invention;
FIG. 8 is an exemplary timing diagram illustrating the operation of a multi-level system model, in accordance with one embodiment of the present invention; FIG. 9 is a flowchart of method steps for implementing isochronous processes in a multi-level system model, in accordance with one embodiment of the present invention; and
FIG. 10 is a flowchart of method steps for implementing plesiochronous processes in a multi-level system model, in accordance with one embodiment of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
The present invention relates to an improvement in electronic data handling techniques. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiment shown, but is to be accorded the widest scope consistent with the principles and features described herein.
The present invention comprises a method for implementing a multilevel system model for deterministically handling selected data, and includes a picokemel module that may invoke an isochronous scheduler to select, schedule, and execute active isochronous processes on an electronic device in response to a cycle start signal from an isochronous clock. The active isochronous processes may selectively set plesiochronous flags to thereby designate corresponding plesiochronous processes as active plesiochronous processes. Once all active isochronous processes have been executed in a given isochronous cycle, then the picokemel may invoke a plesiochronous scheduler to select, schedule, and execute any active plesiochronous processes on the electronic device.
Referring now to FIG. 1 , a block diagram for one embodiment of an electronic network 110 is shown, according to the present invention. In the FIG. 1 embodiment, network 1 10 preferably comprises, but is not limited to, a number of electronic devices 1 12 (device A 1 12(a), device B 112(b), root device 1 14, device C 112(c), device D 1 12(d), and device E 112(e)). In alternate embodiments, electronic network 1 10 may readily be configured to include various other devices 1 12 or components that function in addition to, or instead of, those discussed in conjunction with the FIG. 1 embodiment. In alternate embodiments, network 1 10 may readily be connected and configured in any other appropriate and suitable manner.
In the FIG. 1 embodiment, devices 1 12 of network 1 10 may be implemented as any type of electronic device, including, but not limited to, personal computers, printers, digital video disc devices, television sets, audio systems, video cassette recorders, and set-top boxes for digital broadcasting. In the FIG. 1 embodiment, devices 1 12 preferably communicate with one another using a network bus 132. Network bus 132 preferably includes path 132(a), path 132(b), path 132(c), path 132(d), and path 132(e). For example, device B 1 12(b) is coupled to device A 112(a) via path 132(a), and to root device 1 14 via path 132(b). Similarly, root device 1 14 is coupled to device C 1 12(c) via path 132(c), and to device D 1 12(d) via path 132(d). In addition, device D 1 12(d) is coupled to device E 1 12(e) via path 132(e). In the FIG. 1 embodiment, network bus 132 is preferably implemented using a PI 394 Standard for a High Performance Serial Bus, IEEE, 1995, which is hereby incorporated by reference. However, in alternate embodiments, network 1 10 may readily communicate and function using various other network interconnectivity schemes, which are equally within the scope of the present invention. In the FIG. 1 embodiment, each device in electronic network 1 10 may preferably communicate with any other device within network 1 10. For example, device E 1 12(e) may communicate with device B 1 12(b) by transmitting data via cable 132(e) to device D 1 12(d), which then may transmit the data via cable 132(d) to root device 1 14. In response, root device 1 14 then may transmit the data to device B 1 12(b) via cable 132(b). In the FIG. 1 embodiment, root device 1 14 preferably provides a master cycle start signal to synchronize isochronous processes for devices 1 12 in network 1 10. In other embodiments of network 1 10, any one of the network devices 1 12 may be designated as the root device or cycle master.
Referring now to FIG. 2, a block diagram for one embodiment of an exemplary device 1 12 from network 1 10 is shown, in accordance with the present invention. Device 112 preferably includes, but is not limited to, a processor 212, an input/ output (I/O) interface 214, a memory 216, a device bus 226, and a bus interface 220. Processor 212, I/O interface 214, memory 216 and bus interface 220 preferably are each coupled to, and communicate via common device bus 226. In alternate embodiments, device 112 may readily be configured to include various other components or architectures in addition to, or instead of, those discussed in conjunction with the FIG. 2 embodiment.
In the FIG. 2 embodiment, processor 212 may preferably be implemented as any appropriate microprocessor device. Memory 216 may preferably be implemented as one or more effective storage devices, including, but not limited to, read-only memory, random-access memory, and various types of non-volatile memory, such as floppy disc devices or hard disc devices. I/O interface 214 preferably may provide an interface for bi- directional communications with various compatible sources, destinations, and other entities.
In accordance with the present invention, bus interface 220 preferably provides a bi-directional interface between device 112 and network 110. In the FIG. 2 embodiment, bus interface 220 preferably communicates with other devices 1 12 on network 1 10 via network bus 132. Bus interface 220 also preferably communicates with processor 212, I/O device 214, and memory 216 via a common device bus 226.
Referring now to FIG. 3, a diagram for one embodiment of the FIG. 2 memory 216 is shown, in accordance with the present invention. In the FIG. 3 embodiment, memory 216 preferably includes, but is not limited to, device software 312, picokemel 314, cantaloupe manager 316, cantaloupe(s) 318, endochronous application program interfaces (endochronous APIs) 320, isochronous process representation(s) 322, and plesiochronous process representation(s) 324. In alternate embodiments, memory 216 may readily include various other components in addition to, or instead of, the components that are discussed in conjunction with the FIG. 3 embodiment. In the FIG. 3 embodiment, device software 312 preferably may include software instructions that may be executed by processor 212 for performing various functions and operations by device 112. The particular nature and functionality of device software 312 preferably varies depending upon factors such as the type and purpose of the corresponding host device 112.
In the FIG. 3 embodiment, picokemel 312 preferably controls and coordinates the scheduling and execution of isochronous and plesiochronous processes by utilizing optimized process representations 322 and 324 to reduce the cost or overhead of scheduling to a minimum. Picokemel 312 is further discussed below in conjunction with FIGS. 5 and 7- 10.
Cantaloupe manager 316 preferably may utilize information from cantaloupe(s) 318 to determine whether a particular isochronous or plesiochronous process may be instantiated on behalf of another entity such as device software 312. Cantaloupe(s) 318 preferably include one or more characterizations of hardware and/ or software resources necessary to meet performance criteria for a particular isochronous process. Cantaloupe(s) 318 are further discussed below in conjunction with FIG. 4.
In the FIG. 3 embodiment, endochronous APIs 320 may preferably include one or more application program interfaces that allow the implementation of a programmable isochronous capability in a particular system. In certain embodiments, endochronous APIs 320 may include interfaces for installing isochronous services, interfaces to create, control, and delete endochronous processes, and interfaces to communicate with the rest of a system through a signaling mechanism. In the FIG. 3 embodiment, isochronous process representation(s) 322 preferably include one or more data structures that each correspond to an associated isochronous process that has been instantiated on device 112. Each of the isochronous process representation(s) 322 preferably include any relevant information that is required to successfully and deterministically execute the corresponding isochronous process. Similarly, plesiochronous process representation(s) 324 preferably include one or more data structures that each correspond to an associated plesiochronous process that has been instantiated on device 112. Each of the plesiochronous process representation(s) 324 preferably include any relevant information that is required to successfully and deterministically execute the corresponding plesiochronous process.
Referring now to FIG. 4, a diagram for one embodiment of a cantaloupe 318 is shown, in accordance with the present invention. In the FIG. 4 embodiment, cantaloupe 318 preferably includes a listing for a resource 1 (412(a)) through a listing for a resource N (412(c)). In the FIG. 4 embodiment, resources 412 may include any appropriate aspects of devices 112 or network 1 10 (FIG. 1). For example, resource 412 may correspond to the bandwidth for a particular bus, such as device bus 226 or network bus 132. Similarly, resource 412 may correspond to the processing capacity for a central processing device, such as processor 212 (FIG. 2). In alternate embodiments of the present invention, cantaloupe 318 may readily be implemented to include various other configurations, and may also include various items and components that are different from those discussed in conjunction with the FIG. 4 embodiment.
In accordance with the present invention, cantaloupe 318 is preferably associated with a particular isochronous or plesiochronous process on network 110. Prior to instantiating the foregoing process, cantaloupe manager 316 may then advantageously reference cantaloupe 318 to determine the individual and total resources necessary for the associated process. Determining in advance whether sufficient system resources are available for successful operation of a given process ensures that the associated isochronous process is guaranteed sufficient resources for timely and deterministic performance. Providing resources becomes more significant as the cycle duration decreases and the cycle frequency increases. In one embodiment of the present invention, the cycle period may preferably be in the proximity of 125 microseconds, with a rate of eight kilohertz.
In the FIG. 4 embodiment, cantaloupe 318 preferably also includes a listing for a resource 1 usage (414(a)) through a listing for a resource N usage (414(c)). In the FIG. 4 embodiment, each of resource usages 414 preferably corresponds with a given resource 412 to characterize the amount of the given resource 412 required by the isochronous or plesiochronous process associated with cantaloupe 318. For example, if a given resource 412 is the bandwidth for a particular bus, then the corresponding resource usage 414 may be expressed in bandwidth units utilized by a process. Similarly, if a given resource 412 is the processing capacity for a central processing device, then corresponding resource usage 414 may be expressed in CPU units, such as machine- instructions per second (MIPS). In various embodiments of the present invention, resource usages 414 may be implemented in any appropriate and compatible format for use by network 110. In one embodiment, cantaloupe 318 may be implemented using only resource usages 414, with the corresponding resources 412 indirectly implied and understood during instantiation of process on network 110.
Therefore, cantaloupe 318 preferably includes an at least two- dimensional array of descriptive parameters. The first parameter preferably may be the type of resource being characterized, and the second parameter is the amount of required resource usage. A cantaloupe 318 may thus serve as a common descriptor to couple hardware and software scheduling mechanisms by describing resource requirements. For example, in one embodiment, resource usage may be characterized and described as a ratio of the amount of usage per a given time period (including process scheduling overhead) .
Referring now to FIG. 5, a block diagram for the FIG. 3 picokemel 314 is shown, in accordance with one embodiment of the present invention. In the FIG. 5 embodiment, picokemel 314 preferably may include, but is not limited to, an isochronous scheduler 512, an isochronous process list 514, a plesiochronous scheduler 516, and a plesiochronous process list 518. In alternate embodiments, picokemel 314 may readily be configured to include various other components or types of information in addition to, or instead of, those discussed in conjunction with the FIG. 5 embodiment.
In the FIG. 5 embodiment, isochronous scheduler 512 may preferably include program instructions for scheduling and executing various isochronous processes on device 112. Isochronous process list 514 preferably may include one or more isochronous process identifiers that each corresponds to an associated isochronous process that is currently instantiated and active on device 112. The functionality and utilization of isochronous scheduler 512 and isochronous process list 514 are further discussed below in conjunction with FIGS. 7 through 9.
In the FIG. 5 embodiment, plesiochronous scheduler 516 may preferably include program instructions for scheduling and executing various plesiochronous processes on device 112. Plesiochronous process list 518 preferably may include one or more plesiochronous process identifiers that each corresponds to an associated plesiochronous process that is currently instantiated and active on device 112. The functionality and utilization of plesiochronous scheduler 516 and plesiochronous process list 518 are further discussed below in conjunction with FIGS. 7, 8, and 10.
Referring now to FIG. 6, a timing diagram for one embodiment of exemplary isochronous data transfers is shown, in accordance with the present invention. The FIG. 6 timing diagram includes a system clock 612, an isochronous clock signal 614, and an isochronous data transfer signal 616. The FIG. 6 timing diagram is presented for purposes of illustration, and in alternate embodiments, isochronous data transfers may readily be configured to include various other elements and timing relationships in addition to, or instead of, those discussed in conjunction with the FIG. 6 embodiment. For example, certain of the principles discussed below in conjunction with isochronous data transfers may similarly apply to isochronous data processing operations, plesiochronous data transfers, or plesiochronous data processing operations. Isochronous data typically includes time- sensitive data that is preferably assigned a high transfer and processing priority to guarantee that the isochronous data deterministically arrives at a designated destination at pre-determined timing intervals and is processed accordingly. Because of the time- sensitive nature of isochronous data, re-transmission of an isochronous data transfer may not be appropriate or possible. For example, if a frame of video data does not reach a display device on network 110 until after the appropriate moment for display of that frame, then re-transmitting the delayed frame is not productive. Sources of isochronous data therefore typically do not repeat unsuccessful isochronous data transmissions. Loss of the foregoing frame of video data may likely cause unwanted jitter or breakup of the corresponding video programming. Therefore, ensuring the timely and guaranteed delivery and processing of isochronous data becomes a matter of some importance when implementing network 110. In the FIG. 6 timing example, at time 618, a first isochronous clock pulse 614 changes state in synchronization with system clock 612. In certain situations, isochronous clock pulse 614 may also be called a cycle start signal because isochronous clock pulse 614 triggers and synchronizes the beginning of an isochronous timing cycle. At time 620, the isochronous clock pulse 614 changes state again, and isochronous data transfer 616(a) responsively occurs in a deterministic manner.
Similarly, at time 622, a second isochronous clock pulse 614 changes state in synchronization with system clock 612. At time 624, the second isochronous clock pulse 614 once more changes state, and isochronous data transfer 616(b) again occurs in a deterministic manner. Therefore, as illustrated in FIG. 6, isochronous data transfers 616(a) and 616(b) typically occur at a pre-determined frequency in device 112. Furthermore, device 112 may require isochronous data transfers 616(a) and 616(b) to occur before any asynchronous data transfers because of the time-sensitive nature of the corresponding isochronous data. Referring now to FIG. 7, a block diagram of one embodiment for implementing a multi-level system model is shown, in accordance with the present invention. In alternate embodiments, multi-level system models may readily be implemented to include various other components, architectures, or functionalities in addition to, or instead of, those discussed in conjunction with the FIG. 7 embodiment.
In the FIG. 7 embodiment, initially, device software 312 may generate an isochronous request to endochronous APIs 320 via path 712 for instantiating an isochronous process (and possibly one or more corresponding plesiochronous processes) on device 1 12. Device software 312 may generate the isochronous request for any appropriate reason. For example, device software 312 may generate the isochronous request because of information received from a system user or other device on network 1 10 that specifically requires transfer or processing of corresponding isochronous data. Device software 312 may also generate the isochronous request in response to isochronous identifier information that may be detected in data packets that are transmitted to device 112.
In the FIG. 7 embodiment, in response to the isochronous request, endochronous APIs 320 preferably may perform an instantiation procedure to create isochronous process representation 322 (and possibly plesiochronous process representation 324) via path 714. The foregoing instantiation procedure preferably may include performing a device resource allocation procedure using cantaloupe(s) 318, as discussed above in conjunction with FIG. 4. In certain embodiments, isochronous process representation 322 may notify picokemel 314 via path 716 when isochronous process representation 322 has been instantiated and is currently active on device 112. In response, picokemel 314 may add a unique isochronous process identifier for the isochronous process representation 322 to isochronous process list 514 (FIG. 5). When appropriate, isochronous process representation 322 may also generate a plesiochronous flag to plesiochronous process representation 324 via path 718 to indicate that the corresponding plesiochronous process is ready to be executed on device 112.
The plesiochronous process representation 324 may then notify picokemel 314 via path 720 that the plesiochronous process representation 322 has been instantiated and is currently ready to be executed on device 112. In response, picokemel 314 may add a unique plesiochronous process identifier for the plesiochronous process representation 324 to plesiochronous process list 518 (FIG. 5). In certain other embodiments, picokemel 314 may poll isochronous process representation 322 and plesiochronous process representation 324 to determine whether corresponding isochronous or plesiochronous processes are currently active on device 112.
In accordance with the present invention, picokemel 314 then preferably may receive a cycle start signal from isochronous clock 614, and responsively schedule and execute the isochronous process associated with isochronous process representation 322. Similarly, picokemel 314 may schedule and execute the plesiochronous process associated with plesiochronous process representation 324. The exemplary FIG. 7 embodiment is discussed in the context of a single isochronous process and a single plesiochronous process, however the present invention may readily instantiate, schedule, and execute any desired number of isochronous processes and plesiochronous processes. The utilization of picokemel 314 to schedule and execute isochronous processes and plesiochronous processes is further discussed below in conjunction with FIGS. 8 through 10.
Referring now to FIG. 8, an exemplary timing diagram 810 illustrating the operation of a multi-level system model is shown, in accordance with one embodiment of the present invention. The FIG. 8 embodiment is presented for purposes of illustration, and various other process execution hierarchies and timing sequences are equally contemplated for effective operation in the environment of the present invention. In the FIG. 8 embodiment, timing diagram 810 is arranged in a temporal hierarchy that ranges from higher priority isochronous processes that are located at the top of timing diagram 810, to lower priority plesiochronous processes that are located at the bottom of timing diagram 810. The FIG. 8 embodiment includes exochronous processing 814 (system level execution) which is located in the shaded area at the bottom of timing diagram 810. The FIG. 8 embodiment also includes endochronous processing 818 which is located from immediately above exochronous processing 814 to the top of the FIG. 8 timing diagram 810. In the FIG. 8 embodiment, endochronous processing 818 preferably may include one or more isochronous processes 822. In timing diagram 810, isochronous processes 822 are shown on level 0 (830) of endochronous processing 818. In the FIG. 8 embodiment, endochronous processing 818 preferably may also include one or more plesiochronous processes 826. In timing diagram 810, plesiochronous processes 826 are shown on level 1 (834) of endochronous processing 818. The multi-level system model of the present invention may include any desired number of different levels. For example, timing diagram 810 includes a level 2 (838) for scheduling and executing additional plesiochronous processes. The FIG. 8 timing diagram 810 displays real time that progresses from left to right on horizontal axis 842 to include a contiguous sequence of isochronous cycles that are demarcated by periodic cycle start signals. For example, in timing diagram 810, the first "cycle n" is triggered by cycle start signal 854. Each successive isochronous cycle is similarly triggered by respective cycle start signals 858, 862, 866, 870, and 874. Timing diagram 810 also includes a reoccurring isochronous process A 846 that signals a corresponding plesiochronous process 886 every four cycles (see legend), and a reoccurring isochronous process B 850 that signals a corresponding plesiochronous process 878 every 2 cycles (see legend). During operation of the FIG. 8 embodiment, picokemel 314 preferably receives cycle start signal 854, and responsively selects, schedules, and executes isochronous process A 846 and isochronous process B 850. In the FIG. 8 timing diagram, the outline of the various isochronous and plesiochronous processes preferably represents the bounds of allocated system resources as determined by the resource allocation procedure discussed above in conjunction with FIG. 4. In the FIG. 8 timing diagram 810, when all isochronous processes 822 and all plesiochronous processes 826 have been executed, then device 112 preferably may switch to exochronous processing 814 to perform any required system level execution tasks.
In the FIG. 8 embodiment, in response to cycle start signal 858, picokemel 314 preferably schedules and executes isochronous process B 850 (which preferably signals that plesiochronous process 878 is now ready to execute) and isochronous process A 846. Following the completion of isochronous process A 846, picokemel 314 preferably schedules and executes plesiochronous process 878(a). Then, at the beginning of the next isochronous cycle, picokemel 314 preferably receives cycle start signal 862, and responsively selects, schedules, and executes isochronous process A 846 and isochronous process B 850.
In the FIG. 8 embodiment, in response to cycle start signal 866, picokemel 314 preferably selects, schedules, and executes isochronous process A 846 (which preferably signals that plesiochronous process 886 is now ready to execute). Picokemel 314 also preferably selects, schedules, and executes isochronous process B 850 (which preferably signals that plesiochronous process 878 is now ready to execute). Following the completion of isochronous process B 850, picokemel 314 preferably selects, schedules, and executes plesiochronous process 878(b) and a first portion (886(a)) of plesiochronous process 886 which is interrupted because of the occurrence of cycle start signal 870.
In response to cycle start signal 870, picokemel 314 preferably selects, schedules, and executes isochronous process B 850 and isochronous process A 846. Following the completion of isochronous process A 846, picokemel 314 then preferably schedules and executes the remaining portion (886((b)) of plesiochronous process 886. At cycle start signal 874, picokemel 314 preferably selects, schedules, and executes isochronous process A 846 and isochronous process B 850 (which preferably signals that plesiochronous process 878 is now ready to execute).
Following the completion of isochronous process B 850, picokemel 314 preferably schedules and executes plesiochronous process 878(c). The FIG. 8 multi-level system model may thus continue to select, schedule, and execute multi-level isochronous processes and plesiochronous processes using endochronous processing 818, and also perform system level execution using exochronous processing 814. The picokemel 314 (FIG. 3) is responsible for the scheduling of isochronous processes, and utilizes optimized process representations to reduce scheduling overhead to a minimum. Execution of an isochronous process is preferably not interruptable, and therefore the execution of isochronous processes simply runs from the start of the process until the end of the process. The uninterruptability of isochronous processes advantageously simplifies the scheduling model necessary for the operation of picokemel 314.
Scheduling of isochronous processes 822 and plesiochronous processes 826 typically requires a finite time period that is sometimes referred to as "overhead". As the cycle time period is reduced, the overhead becomes a more significant factor because of the reduced amount of time remaining to perform the actual isochronous transfer or processing. In the FIG. 8 embodiment, the cycle time period may be in the proximity of 125 microseconds, with a cycle frequency of approximately eight kilohertz. In certain embodiments, the maximum amount of time allotted to isochronous operation may be approximately 4/5 of the cycle time period (100 microseconds). This mechanism may be implemented by cantaloupe manager 316 to guarantee that isochronous processing does not exceed a specified portion of resource usage. Therefore, an efficient and relatively rapid scheduling mechanism (picokemel 314) is required for successful isochronous processes. The utilization of cantaloupe 318 and cantaloupe manager 316 to characterize and pre-allocate the necessary resources for a particular isochronous process advantageously facilitates efficient scheduling of the isochronous processes.
In accordance with the present invention, certain plesiochronous processes can generally tolerate more latency in their scheduling, as well as less determinism in their execution. For example, a particular plesiochronous process may have a lesser degree of importance, have a relatively long duration, or require resources that are not available at the isochronous level. In certain embodiments, isochronous processes 822 may often be associated with relatively short transfers of a particular set of isochronous data, while corresponding plesiochronous processes 826 may be associated with relatively longer processing functions for the particular set of isochronous data.
In the FIG. 8 embodiment, a plesiochronous process 826 may preferably be interruptable by an isochronous process 822. In accordance with the present invention, multiple levels of plesiochronous processes 826 may be available to perform data transfers, data processing, or other functions. A plesiochronous process 826 preferably may be related to, or initiated by, a corresponding isochronous process 822 by using a simple signaling mechanism (shown in FIG. 8 as a solid line with an arrow). However, in certain embodiments, a plesiochronous process 826 need not be related to a corresponding isochronous process 822. Together, isochronous processes 822 and plesiochronous processes 826 form endochronous processing 818 because both types of processes are related to the same time domain which includes the isochronous cycle sequence illustrated in the FIG. 8 embodiment.
Isochronous processes 822 preferably are treated as the highest- priority processes. Plesiochronous processes 826 are treated as the second- highest priority processes, and are preferably scheduled after exiting from isochronous process scheduling and execution. A plesiochronous scheduler 516 (FIG. 5) preferably includes a priority scheduler (not shown) since a lengthy or infrequent plesiochronous process may not block a frequent plesiochronous process. Scheduling of isochronous processes 822 is typically driven by the occurrence of an isochronous interrupt that may interrupt system level execution 814 or a plesiochronous process 826.
As discussed above, in the FIG. 8 embodiment, scheduling operations that occur outside the cycle time domain of the isochronous and plesiochronous processes may be termed exochronous processing 814. In the FIG. 8 embodiment, the execution of various system level processes is preferably included in the foregoing exochronous processing 814. These system level processes preferably include tasks and processes from the host operating system's normal execution environment. Communication between endochronous processing 818 and exochronous processing 814 may be analogous to communication between a system interrupt handler and interrupt processing routines. Therefore, the signaling of an interrupt-like event may utilize normal system services.
The present invention thus advantageously utilizes a multiple-level system model for deterministically handling multiple streams of continuous data, where each level represents a discrete level in the hierarchy of time. Isochronous processes 822 preferably handle data movement according to an isochronous clock 614 that is synchronized to a time reference that functions as a point of global synchrony for network 110. Plesiochronous processes 826 preferably handle streaming data according to a time base which is different from, but which may be synchronous with, the isochronous data movement clock domain. The system level execution in exochronous processing 814 is preferably not controlled according the foregoing time base, and is not involved with the movement or processing of streaming data. In accordance with the present invention, the multi-level system model thus efficiently and effectively facilitates various isochronous, plesiochronous, and system level processes across electronic network 1 10.
Referring now to FIG. 9, a flowchart of method steps for implementing isochronous processes 822 in a multi-level system model is shown, in accordance with one embodiment of the present invention. The FIG. 9 example is presented for purposes of illustration, and, in alternate embodiments, the present invention may readily implement multi-level system models using various steps and sequences other than those discussed in conjunction with the FIG. 9 embodiment.
In the FIG. 9 embodiment, initially, in step 914, picokemel 314 preferably waits for a cycle start signal from isochronous clock 614 to trigger the start of an isochronous cycle. In step 918, picokemel 314 preferably determines whether any isochronous processes have been instantiated and are available for immediate scheduling and execution. Picokemel 314 may check for available isochronous processes using any appropriate technique. For example, in certain embodiments, picokemel 314 may analyze isochronous process list 514 to locate any active isochronous processes. If no active isochronous processes are available for scheduling and execution, then the FIG. 9 process advances to the following FIG. 10 plesiochronous flowchart. However, if one or more active isochronous processes are available, then, in step 922, picokemel 314 preferably may invoke isochronous scheduler 512. In response, in step 926, isochronous scheduler 512 preferably may select an active isochronous process for scheduling and execution using any effective method or technique. For example, isochronous scheduler 512 may select an isochronous process based upon criteria such as the relative importance, length, function, or time- sensitivity of the various active isochronous processes. Isochronous scheduler 512 may alternately utilize a fixed pre-determined priority scheme, or may implement a rotating (round-robin) priority scheme. In step 930, isochronous scheduler 512 preferably schedules and executes the selected isochronous process on device 112. In step 934, the foregoing isochronous process determines whether to activate a corresponding plesiochronous process by signaling the plesiochronous process in order to set a corresponding plesiochronous flag. An isochronous process may utilize any desired criteria to determine whether to set a plesiochronous flag. For example, a given isochronous process may be associated with isochronous data movement for a particular task on device 112. A corresponding plesiochronous process may be required to processing data structures that are accumulated over multiple isochronous cycles as a result of the foregoing isochronous data movement process. The isochronous process may thus set a plesiochronous flag to activate the corresponding plesiochronous process when sufficient isochronous data has been accumulated to begin the processing procedure.
In step 938, isochronous scheduler 512 preferably determines whether any unexecuted active isochronous processes remain for scheduling and execution during the current isochronous cycle. If unexecuted active isochronous processes remain, then the FIG. 9 process returns to step 926 to sequentially select, schedule, and execute the remaining isochronous processes. However, if no unexecuted active isochronous processes remain, then the FIG. 9 process advances to the following FIG. 10 plesiochronous flowchart.
Referring now to FIG. 10, a flowchart of method steps for implementing plesiochronous processes in a multi-level system model is shown, in accordance with one embodiment of the present invention. The FIG. 10 example is presented for purposes of illustration, and, in alternate embodiments, the present invention may readily implement a multi-level system model using various other steps and sequences than those discussed in conjunction with the FIG. 10 embodiment. In the FIG. 10 embodiment, initially, in step 1014, picokemel 314 preferably determines whether any plesiochronous processes have been instantiated and have been flagged as being available for immediate scheduling and execution. Picokemel 314 may check for available plesiochronous processes using any appropriate technique. For example, in certain embodiments, picokemel 314 may analyze plesiochronous process list 518 to locate any flagged plesiochronous processes. If no flagged plesiochronous processes are available for scheduling and execution, then the FIG. 10 process returns to the beginning of the preceding FIG. 9 isochronous flowchart to wait for a subsequent cycle start signal from isochronous clock 614.
However, if one or more flagged plesiochronous processes are available, then, in step 1018, picokemel 314 preferably may invoke plesiochronous scheduler 516. In response, in step 1022, plesiochronous scheduler 516 preferably may select a flagged plesiochronous process for scheduling and execution using any effective method or technique. For example, plesiochronous scheduler 516 may select a plesiochronous process based upon criteria such as the relative importance, length, function, or time- sensitivity of the various flagged plesiochronous processes. Plesiochronous scheduler 516 may alternately utilize a fixed pre-determined priority scheme, or may implement a rotating (round-robin) priority scheme. In step 1026, plesiochronous scheduler 516 preferably schedules and executes the foregoing selected plesiochronous process on device 112.
In step 1030, picokemel 314 preferably monitors device 112 for any events that may affect the execution of the current plesiochronous process. In certain embodiments, if an exochronous interrupt occurs, then picokemel 314 may preferably interrupt the currently executing plesiochronous process and mark the interrupted plesiochronous process for subsequent completion. In step 1034, device 112 may then perform various required exochronous tasks using exochronous processing 814 (FIG. 8).
Alternately, in certain embodiments, if a new cycle start signal occurs before a flagged plesiochronous process completes execution, then picokemel 314 may preferably interrupt the plesiochronous process and mark the interrupted plesiochronous process for subsequent completion. The FIG. 10 process then preferably may return to step 918 of the preceding FIG. 9 isochronous flowchart to select, schedule, and execute any active isochronous processes. In step 1038, plesiochronous scheduler 516 preferably determines whether any unexecuted flagged plesiochronous processes remain for scheduling and execution during the current isochronous cycle. If unexecuted plesiochronous processes remain, then the FIG. 10 process returns to step 1022 to sequentially select, schedule, and execute the remaining plesiochronous processes. However, if no unexecuted plesiochronous processes remain, then the FIG. 10 process returns to the beginning of the preceding FIG. 9 isochronous flowchart to repeatedly perform the foregoing method steps in response to subsequent cycle start signals from isochronous clock 614.
The invention has been explained above with reference to a preferred embodiment. Other embodiments will be apparent to those skilled in the art in light of this disclosure. For example, the present invention may readily be implemented using configurations and techniques other than those described in the preferred embodiment above. Additionally, the present invention may effectively be used in conjunction with systems other than the one described above as the preferred embodiment. Therefore, these and other variations upon the preferred embodiments are intended to be covered by the present invention, which is limited only by the appended claims.

Claims

WHAT IS CLAIMED IS:
1. An apparatus for implementing a multi-level system model, comprising: a picokemel (314) configured to schedule and execute one or more selected processes in an electronic device (112); and a processor (212) coupled to said electronic device (112) for controlling said picokemel (314).
2. The apparatus of claim 1, wherein said electronic device (1 12) is coupled to an electronic network (110) that is implemented according to an IEEE 1394 serial bus standard.
3. The apparatus of claim 1 wherein said electronic device (112) is one of a consumer-electronics device, an audio-visual device, and a computer device.
4. The apparatus of claim 1 wherein said one or more selected processes include at least one of transporting time- sensitive data and processing time- sensitive data
5. The apparatus of claim 1 wherein said one or more selected processes include at least one of an isochronous process (822) and a plesiochronous process (826).
6. The apparatus of claim 5 wherein said at least one of said isochronous process (822) and said plesiochronous process (826) are executed in a manner that is synchronized with isochronous cycles that are each synchronized to an isochronous clock (614).
7. The apparatus of claim 6 wherein said picokemel (314) is repeatedly triggered to schedule and execute said at least one of an isochronous process (822) and a plesiochronous process (826) by a cycle start signal in a manner that is synchronized with said isochronous cycles.
8. The apparatus of claim 1 wherein said picokemel (314) includes an isochronous scheduler (512) and a plesiochronous scheduler (516), said picokemel (314) responsively invoking said isochronous scheduler (512) in response to an isochronous cycle start signal to thereby select, schedule, and execute active isochronous processes on said electronic device (1 12), said active isochronous processes selectively generating flags to designate active plesiochronous processes, said plesiochronous scheduler (516) then selecting, scheduling, and executing said active plesiochronous processes when all of said active isochronous processes have been executed.
9. The apparatus of claim 1 wherein said picokemel (314) is stored in a memory device (216) that also includes at least one of device software (312), a cantaloupe manager (316), one or more cantaloupes (318), one or more endochronous application program interfaces (320), one or more isochronous process representations (322), and one or more plesiochronous process representations (324).
10. The apparatus of claim 9 wherein said picokemel (314) includes at least one of an isochronous scheduler (512), an isochronous process list (514), a plesiochronous scheduler (516), and a plesiochronous process list (518).
11. The apparatus of claim 9 wherein said one or more cantaloupes (318) each includes one or more device resource identifiers (412) that are each associated with a corresponding device resource usage value (414).
12. The apparatus of claim 9 wherein said one or more endochronous application program interfaces (320) include at least one of means for installing isochronous services, means for creating and controlling endochronous processes, and means for communicating through a signaling mechanism.
13. The apparatus of claim 9 wherein said one or more isochronous process representations (322) and said one or more plesiochronous process representations (324) each includes one or more data structures that correspond to a respective process that has been instantiated on said electronic device (1 12), said data structures including optimized information for deterministically executing said respective process.
14. The apparatus of claim 1 wherein device software (312) performs an initial identification procedure that includes receiving notification information for a transfer or a processing of isochronous data.
15. The apparatus of claim 1 wherein device software (312) generates a request to one or more endochronous application program interfaces (320) for instantiating an isochronous process (822).
16. The apparatus of claim 15 wherein a cantaloupe manager (316) analyzes one or more resource characterizations (318) to determine whether sufficient device resources are available for authorizing said one or more endochronous application program interfaces (320) to instantiate said isochronous process (822) on said electronic device (112).
17. The apparatus of claim 16 wherein said one or more endochronous application program interfaces (320) instantiate said isochronous process (822) on said electronic device (1 12) when said sufficient device resources are available on said electronic device (112).
18. The apparatus of claim 17 wherein said picokemel (314) adds an isochronous process identifier to an isochronous process list (514) when said isochronous process (822) has been instantiated and is active on said electronic device (112).
19. The apparatus of claim 1 wherein said picokemel (314) detects a cycle start signal from an isochronous clock (614) to signify the start of an isochronous cycle.
20. The apparatus of claim 19 wherein said picokemel (314) determines whether one or more active isochronous processes are ready to be executed on said electronic device (112) by referencing an isochronous process list (514).
21. The apparatus of claim 20 wherein said picokemel (314) invokes an isochronous scheduler (512) when said one or more active isochronous processes are ready to be executed, and wherein said picokemel (314) invokes a plesiochronous scheduler (516) when said one or more active isochronous processes are not ready to be executed.
22. The apparatus of claim 21 wherein said isochronous scheduler (512) performs a selection procedure on said one or more active isochronous processes to produce a selected isochronous process based upon selection factors that include one of a relative process importance, a process length, a process function, and a process time -sensitivity of said isochronous process (822)
23. The apparatus of claim 22 wherein said isochronous scheduler (512) schedules and executes said selected isochronous process on said electronic device (1 12).
24. The apparatus of claim 23 wherein said selected isochronous process sets a plesiochronous flag to thereby designate an active plesiochronous process for scheduling and execution on said electronic device (1 12), said active isochronous process notifying said picokemel (314) which responsively adds a corresponding plesiochronous process identifier to a plesiochronous process list (518).
25. The apparatus of claim 23 wherein said picokemel (314) sequentially selects, schedules, and executes a series of isochronous processes using said isochronous scheduler (512).
26. The apparatus of claim 1 wherein said picokemel (314) waits until all isochronous processes for a current isochronous cycle have been executed, said picokemel (314) then determining whether one or more active flagged plesiochronous processes are ready to be executed on said electronic device (112) by referencing a plesiochronous process list (518).
27. The apparatus of claim 26 wherein said picokemel (314) invokes a plesiochronous scheduler (516) when said one or more active flagged plesiochronous processes are ready to be executed, and wherein said picokemel (314) waits for a new cycle start signal when said one or more active flagged plesiochronous processes are not ready to be executed.
28. The apparatus of claim 27 wherein said plesiochronous scheduler (516) performs a selection procedure on said one or more active flagged plesiochronous processes to produce a selected plesiochronous process based upon selection factors that include one of a relative process importance, a process length, a process function, and a process time-sensitivity of said plesiochronous process (826), said plesiochronous scheduler (516) then scheduling and executing said selected plesiochronous process on said electronic device (112).
29. The apparatus of claim 28 wherein said picokemel (314) halts said plesiochronous process (826) and marks said plesiochronous process (826) for a subsequent completion in response to an interrupt event, said interrupt event including one of a cycle start signal and an exochronous interrupt, said picokemel (314) beginning a new isochronous cycle in response to said cycle start signal, said picokemel (314) switching to an exochronous processing for executing required system tasks in response to said exochronous interrupt.
30. The apparatus of claim 28 wherein said picokemel (314) sequentially selects, schedules, and executes a series of plesiochronous processes using said plesiochronous scheduler (516), said picokemel (314) returning to wait for said new cycle start signal when all of said series of plesiochronous processes have been executed.
31. A method for implementing a multi-level system model, comprising the steps of: scheduling one or more selected processes in an electronic device (112) by using a picokemel (314); executing said one or more selected processes by using said picokemel (314); and controlling said picokemel (314) by using a processor (212).
32. The method of claim 31 , wherein said electronic device (1 12) is coupled to an electronic network (1 10) that is implemented according to an IEEE 1394 serial bus standard.
33. The method of claim 31 wherein said electronic device (1 12) is one of a consumer-electronics device, an audio-visual device, and a computer device.
34. The method of claim 31 wherein said one or more selected processes include at least one of transporting time-sensitive data and processing time- sensitive data
35. The method of claim 31 wherein said one or more selected processes include at least one of an isochronous process (822) and a plesiochronous process (826).
36. The method of claim 35 wherein said at least one of said isochronous process (822) and said plesiochronous process (826) are executed in a manner that is synchronized with isochronous cycles that are each synchronized to an isochronous clock (614).
37. The method of claim 36 wherein said picokemel (314) is repeatedly triggered to schedule and execute said at least one of an isochronous process (822) and a plesiochronous process (826) by a cycle start signal in a manner that is synchronized to said isochronous cycles.
38. The method of claim 31 wherein said picokemel (314) includes an isochronous scheduler (512) and a plesiochronous scheduler (516), said picokemel (314) responsively invoking said isochronous scheduler (512) in response to an isochronous cycle start signal to thereby select, schedule, and execute active isochronous processes on said electronic device (112), said active isochronous processes selectively generating flags to designate active plesiochronous processes, said plesiochronous scheduler (516) then selecting, scheduling, and executing said active plesiochronous processes when all of said active isochronous processes have been executed.
39. The method of claim 31 wherein said picokemel (314) is stored in a memory device (216) that also includes at least one of device software (312), a cantaloupe manager (316), one or more cantaloupes (318), one or more endochronous application program interfaces (320), one or more isochronous process representations (322), and one or more plesiochronous process representations (324).
40. The method of claim 39 wherein said picokemel (314) includes at least one of an isochronous scheduler (512), an isochronous process list (514), a plesiochronous scheduler (516), and a plesiochronous process list (518).
41. The method of claim 39 wherein said one or more cantaloupes (318) each includes one or more device resource identifiers (412) that are each associated with a corresponding device resource usage value (414).
42. The method of claim 39 wherein said one or more endochronous application program interfaces (320) include at least one of means for installing isochronous services, means for creating and controlling endochronous processes, and means for communicating through a signaling mechanism.
43. The method of claim 39 wherein said one or more isochronous process representations (322) and said one or more plesiochronous process representations (324) each includes one or more data structures that correspond to a respective process that has been instantiated on said electronic device (112), said data structures including optimized information for deterministically executing said respective process.
44. The method of claim 31 wherein device software (312) performs an initial identification procedure that includes receiving notification information for a transfer or a processing of isochronous data.
45. The method of claim 31 wherein device software (312) generates a request to one or more endochronous application program interfaces (320) for instantiating an isochronous process (822).
46. The method of claim 45 wherein a cantaloupe manager (316) analyzes one or more resource characterizations (318) to determine whether sufficient device resources are available for authorizing said one or more endochronous application program interfaces (320) to instantiate said isochronous process (822) on said electronic device (112).
47. The method of claim 46 wherein said one or more endochronous application program interfaces (320) instantiate said isochronous process (822) on said electronic device (1 12) when said sufficient device resources are available on said electronic device (112).
48. The method of claim 47 wherein said picokemel (314) adds an isochronous process identifier to an isochronous process list (514) when said isochronous process (822) has been instantiated and is active on said electronic device ( 1 12).
49. The method of claim 31 wherein said picokemel (314) detects a cycle start signal from an isochronous clock (614) to signify the start of an isochronous cycle.
50. The method of claim 49 wherein said picokemel (314) determines whether one or more active isochronous processes are ready to be executed on said electronic device (112) by referencing an isochronous process list (514).
51. The method of claim 50 wherein said picokemel (314) invokes an isochronous scheduler (512) when said one or more active isochronous processes are ready to be executed, and wherein said picokemel (314) invokes a plesiochronous scheduler (516) when said one or more active isochronous processes are not ready to be executed.
52. The method of claim 51 wherein said isochronous scheduler (512) performs a selection procedure on said one or more active isochronous processes to produce a selected isochronous process based upon selection factors that include one of a relative process importance, a process length, a process function, and a process time- sensitivity of said isochronous process (822).
53. The method of claim 52 wherein said isochronous scheduler (512) schedules and executes said selected isochronous process on said electronic device (112).
54. The method of claim 53 wherein said selected isochronous process sets a plesiochronous flag to thereby designate an active plesiochronous process for scheduling and execution on said electronic device (1 12), said active isochronous process notifying said picokemel (314) which responsively adds a corresponding plesiochronous process identifier to a plesiochronous process list (518).
55. The method of claim 53 wherein said picokemel (314) sequentially selects, schedules, and executes a series of isochronous processes using said isochronous scheduler (512).
56. The method of claim 31 wherein said picokemel (314) waits until all isochronous processes for a current isochronous cycle have been executed, said picokemel (314) then determining whether one or more active flagged plesiochronous processes are ready to be executed on said electronic device (112) by referencing a plesiochronous process list (518).
57. The method of claim 56 wherein said picokemel (314) invokes a plesiochronous scheduler (516) when said one or more active flagged plesiochronous processes are ready to be executed, and wherein said picokemel (314) waits for a new cycle start signal when said one or more active flagged plesiochronous processes are not ready to be executed.
58. The method of claim 57 wherein said plesiochronous scheduler (516) performs a selection procedure on said one or more active flagged plesiochronous processes to produce a selected plesiochronous process based upon selection factors that include one of a relative process importance, a process length, a process function, and a process time- sensitivity of said plesiochronous process (826), said plesiochronous scheduler (516) then scheduling and executing said selected plesiochronous process on said electronic device (1 12).
59. The method of claim 58 wherein said picokemel (314) halts said plesiochronous process (826) and marks said plesiochronous process (826) for a subsequent completion in response to an interrupt event, said interrupt event including one of a cycle start signal and an exochronous interrupt, said picokemel (314) beginning a new isochronous cycle in response to said cycle start signal, said picokemel (314) switching to an exochronous processing for executing required system tasks in response to said exochronous interrupt.
60. The method of claim 58 wherein said picokemel (314) sequentially selects, schedules, and executes a series of plesiochronous processes using said plesiochronous scheduler (516), said picokemel (314) returning to wait for said new cycle start signal when all of said series of plesiochronous processes have been executed.
61. A computer- readable medium comprising program instructions for implementing a multi-level system model by performing the steps of: scheduling one or more selected processes in an electronic device (112) by using a picokemel (314); executing said one or more selected processes by using said picoke el
(314); and controlling said picokemel (314) by using a processor (212).
62. An apparatus for implementing a multi-level system model, comprising: means for scheduling one or more selected processes in an electronic device (1 12); means for executing said one or more selected processes; and means for controlling said means for scheduling and said means for executing.
PCT/US2000/029043 1999-10-21 2000-10-18 Method for implementing a multi-level system model for deterministically handling selected data WO2001029655A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU10979/01A AU1097901A (en) 1999-10-21 2000-10-18 Method for implementing a multi-level system model for deterministically handling selected data

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16120699P 1999-10-21 1999-10-21
US16121999P 1999-10-21 1999-10-21
US60/161,219 1999-10-21
US60/161,206 1999-10-21

Publications (2)

Publication Number Publication Date
WO2001029655A2 true WO2001029655A2 (en) 2001-04-26
WO2001029655A3 WO2001029655A3 (en) 2002-02-14

Family

ID=26857615

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/029043 WO2001029655A2 (en) 1999-10-21 2000-10-18 Method for implementing a multi-level system model for deterministically handling selected data

Country Status (3)

Country Link
AU (1) AU1097901A (en)
TW (1) TW480438B (en)
WO (1) WO2001029655A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002021776A2 (en) * 2000-09-08 2002-03-14 Sharewave, Inc. Method and apparatus for transferring isochronous data within a wireless computer network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0658841A2 (en) * 1993-12-16 1995-06-21 International Business Machines Corporation A data processing system having a dynamic priority task scheduler
US5758105A (en) * 1995-12-04 1998-05-26 International Business Machines Corporation Method and apparatus for bus arbitration between isochronous and non-isochronous devices
US5812844A (en) * 1995-12-07 1998-09-22 Microsoft Corporation Method and system for scheduling the execution of threads using optional time-specific scheduling constraints
WO1998054643A2 (en) * 1997-05-30 1998-12-03 Sony Electronics, Inc. Task and stack manager for digital video decoding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0658841A2 (en) * 1993-12-16 1995-06-21 International Business Machines Corporation A data processing system having a dynamic priority task scheduler
US5758105A (en) * 1995-12-04 1998-05-26 International Business Machines Corporation Method and apparatus for bus arbitration between isochronous and non-isochronous devices
US5812844A (en) * 1995-12-07 1998-09-22 Microsoft Corporation Method and system for scheduling the execution of threads using optional time-specific scheduling constraints
WO1998054643A2 (en) * 1997-05-30 1998-12-03 Sony Electronics, Inc. Task and stack manager for digital video decoding

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ASSENMACHER H., BREITBACH T., BUHLER P., H]BSCH V., PEINE H., SCHWARZ R.: "MEETING THE APPLICATION IN USER SPACE" PROCEEDINGS OF THE 6TH ACM SIGOPS EUROPEAN WORKSHOP, WADERN, GERMANY, [Online] 12 - 14 September 1994, pages 82-87, XP002170753 Retrieved from the Internet: <URL:ftp://ftp.uni-kl.de/pub/reports_uni-k l/computer_science/system_software/1994/pa pers/SIGOPS_workshop94.proceedings.ps.gz> [retrieved on 2001-07-26] *
ASSENMACHER H., BREITBACH T., BUHLER P., H]BSCH V., PEINE H., SCHWARZ R.: "PARALLEL PROGRAMMING IN PANDA" SUBMITTED FOR PUBLICATION, UNIVERSITY OF KEISERSLAUTERN, DEPARTMENT OF COMPUTER SCIENCE, KAISERSLAUTERN, GERMANY, [Online] pages 1-10, XP002170752 Retrieved from the Internet: <URL:ftp://ftp.uni-kl.de/pub/reports_uni-k l/computer_science/system_software/1994/pa pers/ParallelPanda.ps.gz> [retrieved on 2001-07-26] *
ASSENMACHER H., BREITBACH T., BUHLER P., H]BSCH V., SCHWARZ R.: "THE PANDA SYSTEM ARCHITECTURE - A PICO-KERNEL APPROACH" PROCEEDINGS OF THE FOURTH WORKSHOP ON FUTURE TRENDS OF DISTRIBUTED COMPUTING SYSTEMS (CAT. NO.93TH0574-4), LISBON, PORTUGAL, IEEE COMPUTER SOCIETY PRESS, LOS ALAMITOS, CA, USA, [Online] 22 - 24 September 1993, pages 470-476, XP002170751 ISBN: 0-8186-4430-3 Retrieved from the Internet: <URL:http://ieeexplore.ieee.org/iel2/928/8 019/00344220.pdf> [retrieved on 2001-06-28] *
KUNZMAN A. J., WETZEL A. T.: "1394 HIGH PERFORMANCE SERIAL BUS: THE DIGITAL INTERFACE FOR ATV" IEEE TRANSACTIONS ON CONSUMER ELECTRONICS, IEEE INC., NEW YORK, US, vol. 41, no. 3, 1 August 1995 (1995-08-01), pages 893-900, XP000539552 ISSN: 0098-3063 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002021776A2 (en) * 2000-09-08 2002-03-14 Sharewave, Inc. Method and apparatus for transferring isochronous data within a wireless computer network
WO2002021776A3 (en) * 2000-09-08 2002-11-28 Sharewave Inc Method and apparatus for transferring isochronous data within a wireless computer network
US6891822B1 (en) 2000-09-08 2005-05-10 Sharewave, Inc. Method and apparatus for transferring isocronous data within a wireless computer network

Also Published As

Publication number Publication date
WO2001029655A3 (en) 2002-02-14
AU1097901A (en) 2001-04-30
TW480438B (en) 2002-03-21

Similar Documents

Publication Publication Date Title
EP0798638B1 (en) Periodic process scheduling method
Wang et al. Implementing a general real-time scheduling framework in the RED-Linux real-time kernel
US7039012B2 (en) Process execution method and apparatus
US6928646B1 (en) System and method for efficiently performing scheduling operations in an electronic device
KR100628492B1 (en) Method and system for performing real-time operation
US6310886B1 (en) Method and apparatus implementing a multimedia digital network
US5528513A (en) Scheduling and admission control policy for a continuous media server
US7069558B1 (en) System and method for interactively utilizing a user interface to manage device resources
US7339948B2 (en) Industrial controller providing deterministic communication on ethernet
Coulson et al. Micro-kernel support for continuous media in distributed systems
Anderson Meta-scheduling for distributed continuous media
CN114424507A (en) Method for transmitting data packets and device for carrying out said method
US7116635B2 (en) Process execution method and apparatus
Pop et al. Schedulability analysis and optimization for the synthesis of multi-cluster distributed embedded systems
Gopalakrishnan et al. A framework for QoS guarantees for multimedia applications within an endsystem
WO2001029880A2 (en) Method for utilizing resource characterizations to optimize performance in an electronic device
Gopalakrishna et al. Efficient quality of service support in multimedia computer operating systems
US6952826B1 (en) Method for implementing a multi-level system model for deterministically handling selected data
JPH09319597A (en) Scheduling method for cyclic process
WO2001029655A2 (en) Method for implementing a multi-level system model for deterministically handling selected data
Robin et al. Implementing a QoS controlled ATM based communications system in Chorus
Poellabauer et al. Coordinated cpu and event scheduling for distributed multimedia applications
Shen et al. User Level Scheduling of Communicating Real-Time Tasks.
KR20080064578A (en) Transmission/reception method and apparatus for real-time system
US6438633B1 (en) System for providing deterministic performance from a non-deterministic device

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP