METHOD FOR QUANTIFYING AVAILABLE SYSTEM RESOURCES IN AN ELECTRONIC DEVICE

Abstract: A method for quantifying resources in an electronic device (112) comprises a resource characterization (318) that includes resource requirements for a requested process which are encoded in a native format that is directly compatible with certain components in the electronic device (112). An allocation manager (316) may then create a resource allocation request based on the resource requirements, and then provide the resource allocation request to a resource allocator (630) that responsively may compare the resource requirements for the requested process to the currently-available device resources to generate an allocation result. The allocation manager (316) may then authorize or deny the requested process depending upon whether the currently-available resources are sufficient to adequately service the resource requirements of the requested process.

Description: METHOD FOR QUANTIFYING AVAILABLE SYSTEM RESOURCES IN AN ELECTRONIC DEVICE CROSS-REFERENCE TO RELATED APPLICATIONS This application is related to, and claims priority in, co-pending U.S. Provisional Patent Application Serial No. 60/ 161 ,206, entitled "Method For Implementing Scheduling Mechanisms By Utilizing Resource Characterizations," filed on October 21 , 1999, and to co-pending U.S. Provisional Patent Application Serial No. 06/ 160,991, entitled "Method For Quantifying Available System Resources Associated With A Hardware Component," filed on October 21 , 1999. All of these related applications are commonly assigned, and are hereby incorporated by reference. BACKGROUND SECTION Field of the Invention This invention relates generally to techniques for implementing electronic devices, and relates more particularly to a method for quantifying available system resources in an electronic device. 2. Description of the Background Art Implementing effective methods for utilizing device resources is a significant consideration for designers and manufacturers of contemporary electronic devices. However, effectively utilizing device resources may create substantial challenges for designers of electronic devices. For example, enhanced demands for increased device functionality and performance may require more system processing power, bus bandwidth, and require additional hardware resources. An increase in processing or hardware requirements may also result in a corresponding detrimental economic impact due to increased production costs and operational inefficiencies. An electronic device in an electronic network may advantageously communicate with other electronic devices in the network to share resources 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 video disc (DVD) devices, digital set-top boxes for digital broadcasting, enhanced television sets, and audio reproduction systems. Network size is also a factor that affects the management of resources in an electronic network. Communications in an electronic network typically become more complex as the number of individual devices or nodes increases. A local software module on A local device may need to communicate with various remote software elements on remote devices across the electronic network. However, successfully managing resources of 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 processes may provide additional benefits to a system user, but may also place increased demands on the control and management of an electronic device. For example, an enhanced electronic device that effectively accesses, processes, and displays digital television programming may benefit from efficient use of resources 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 methods for managing resources is a matter of importance for the related electronic technologies. Therefore, for all the foregoing reasons, implementing effective methods for utilizing resources 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 quantifying available system resources in an electronic device. In one embodiment of the present invention, initially, device software preferably generates an isochronous process request to a cantaloupe manager that functions as a resource allocation manager for the electronic device. In response, the cantaloupe manager preferably accesses resource usages or resource requirements that are listed in one or more resource characterizations known herein as "cantaloupes". The resource usages in an accessed cantaloupe preferably correspond to the foregoing isochronous process that was initially requested by the device software. In accordance with the present invention, the resource usages are preferably encoded in a native format that may be directly utilized by certain components of the electronic device without translation or conversion. The cantaloupe manager then may provide the hardware resource usage values from the cantaloupe to a request register as part of a resource allocation request. The resource allocator may then process each individual hardware resource usage value from the cantaloupe by comparing the each resource usage value with one or more corresponding currently-available resource values for the associated resource(s). The resource allocator may then preferably provide a corresponding allocation result to the cantaloupe manager via a status register. If sufficient available resources are currently present for optimal performance of the requested isochronous process, then the cantaloupe manager preferably authorizes the device software to instantiate the requested process through a picokernel module. However, if sufficient currently-available resources are not present for optimal execution of the requested isochronous process, then the cantaloupe manager preferably generates a request-fail signal to the device software to thereby deny the request to instantiate the isochronous process. In this manner, the present invention advantageously pre-allocates sufficient guaranteed resources for a given isochronous process, prior to instantiation, to thereby guarantee successful and deterministic performance of the requested isochronous process. The present invention therefore provides an effective method for quantifying available system resources in an electronic device. 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, in accordance with the present invention; FIG. 5 is a block diagram for one embodiment of a resource allocation request, in accordance with the present invention; FIG. 6 is a block diagram that illustrates the quantifying of available system resources, in accordance with one embodiment of the present invention; FIG. 7 is a flowchart of method steps for performing a resource allocation procedure, in accordance with one embodiment of the present invention; and FIG. 8 is a flowchart of method steps for quantifying available system resources, in accordance with one embodiment of the present invention. DETAILED DESCRIPTION The present invention relates to an improvement in electronic devices. 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 quantifying resources in an electronic device, and includes a resource characterization with resource requirements for a requested process which are encoded in a native format that is directly compatible with certain components in the electronic device. An allocation manager may then create a resource allocation request based on the resource requirements, and then provide the resource allocation request to a resource allocator that responsively may compare the resource requirements for the requested process to the currently-available device resources to generate an allocation result. The allocation manager may then authorize or deny the requested process depending upon whether the currently-available resources are sufficient to adequately service the resource requirements of the requested process. Referring now to FIG. 1, a block diagram for one embodiment of an electronic network 110 is shown, in accordance with the present invention. In the FIG. 1 embodiment, network 110 preferably comprises, but is not limited to, a number of electronic devices 112 (device A 1 12(a), device B 1 12(b), root device 114, device C 1 12(c), device D 1 12(d), and device E 1 12(e)). In alternate embodiments, electronic network 1 10 may readily be configured to include various other devices 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, in one embodiment, device B 1 12(b) is coupled to device A 1 12(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 112(d) is coupled to device E 112(e) via path 132(e). In the FIG. 1 embodiment, network bus 132 is preferably implemented using an IEEE Std 1394 Standard for a High Performance Serial Bus, which is hereby incorporated by reference. However, in alternate embodiments, network 1 10 may readily communicate and function using various other network interconnectivity methodologies which are equally within the scope of the present invention. In the FIG. 1 embodiment, each device in electronic network 110 may preferably communicate with any other device within network 110. For example, device E 1 12(e) may communicate with device B 112(b) by transmitting transfer data via cable 132(e) to device D 112(d), which then may transmit the transfer data via cable 132(d) to root device 114. In response, root device 114 then may transmit the transfer data to device B 112(b) via cable 132(b). In the FIG. 1 embodiment, root device 114 preferably provides a master cycle start signal to synchronize isochronous processes for devices 112 in network 110. In other embodiments of network 110, any one of the network devices 112 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 1 12 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 the FIG. 2 embodiment, processor 212 may be implemented as any appropriate multipurpose microprocessor device. Memory 216 may be implemented as one or more appropriate 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 communications with various compatible sources and/ or destinations. In accordance with the present invention, bus interface 220 preferably provides an interface between device 112 and network 1 10. In the FIG. 2 embodiment, bus interface 220 preferably communicates with other devices 1 12 on network 110 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. In the FIG. 2 embodiment, device 1 12 preferably includes the capability to perform various tasks that involve isochronous data and isochronous processes. Isochronous data typically includes information that is time- sensitive, and therefore requires deterministic operations to guarantee delivery and processing of the isochronous data in a timely manner. For example, video data that is intended for immediate display must arrive at the appropriate destination in a timely manner in order to prevent jitter or breakup of the corresponding image during display. To achieve this goal, device 1 12 preferably performs isochronous and other types of processing in segments of time called "cycles". Scheduling of isochronous processes 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. In the FIG. 2 embodiment, the cycle time period may be in the proximity of 125 microseconds, with a cycle frequency of approximately eight kilohertz. 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, picokernel 314, cantaloupe manager 316, cantaloupe(s) 318, and resource values 320. 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 includes software instructions that are preferably 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, picokernel 312 preferably controls and coordinates the scheduling of isochronous processes by utilizing an optimized process representation to reduce the cost or overhead of scheduling to a minimum. Cantaloupe manager 316 preferably includes an allocation manager that may utilize information from cantaloupe(s) 318 to determine whether a particular isochronous process may be instantiated on behalf of another entity, such as device software 312. Cantaloupe(s) 318 preferably comprise a resource characterization that includes 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 FIGS. 4, 6, and 7. Resource values 320 preferably include any relevant information regarding current resource availability and allocations in device 112. For example, in the FIG. 3 embodiment, resource values 320 may include one or more currently-available resource value(s), one or more currently-allocated resource value(s), and one or more total device resource value(s) for device 1 12. In the FIG. 3 embodiment, prior to allocation of any resources, the available resource value(s) may initially be set to a value that is less than 100% of total device resource values (such as 75%) to thereby reserve resources necessary for non-isochronous processes or system tasks. 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 1 12 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), or to the capacity of a memory device, such as memory 216. 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 time- sensitive isochronous or plesiochronous process on network 1 10. 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 sufficient resources becomes more significant as the cycle duration decreases and the cycle frequency increases. 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 1 10, including a percentage value, or a native format that is directly compatible with certain other components. 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 1 10. In certain embodiments, cantaloupe 318 may also be utilized to characterize other resources, such as the total system resources, or the current available resources of device 112. Therefore, in the FIG. 4 embodiment, 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, 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 diagram for one embodiment of a resource allocation request 510 is shown, in accordance with the present invention. In the FIG. 5 embodiment, resource allocation request 510 preferably includes a command identifier (command ID) 512, and one or more resource usage value(s) 414. In alternate embodiments, resource allocation request 510 may include various elements or fields in addition to, or instead of, those discussed in conjunction with the FIG. 5 embodiment. In one embodiment of the present invention, cantaloupe manager 316 preferably transmits a series of resource allocation requests 510 to a resource 412, including certain hardware components, as further discussed below in conjunction with FIG. 6. In the FIG. 5 embodiment, command ID 512 preferably includes information regarding the functionality of resource request 510. For example, command ID 512 may include a "test" command to request resource 412 to provide a test result in response to the resource allocation request 510. Alternately, command ID 512 may include a "do" command to request resource 412 to actually allocate the corresponding resource 412 in response to the resource allocation request 510. In addition, command ID 512 may include an "undo" command to request resource 412 to deallocate the corresponding resource 412 in response to the resource allocation request 510. In the FIG. 5 embodiment, cantaloupe manager 316 preferably obtains the resource usage value 414 for resource allocation request 510 directly from a cantaloupe 318 (FIG. 4) corresponding to a requested isochronous process. In accordance with one embodiment of the present invention, resource usages 414 for resources are advantageously encoded in cantaloupe 318 in a format that is native to the corresponding resource 412. For example, a resource usage value 414 for a resource 412 may simply be a number, such as the percentage of the total resource 412 that is required for an associated isochronous process. Cantaloupe manager 316 may thus transmit a resource usage value 414 to a corresponding resource 412 without the need to process or translate the resource usage value 414 into a format that is compatible with the resource 412. Referring now to FIG. 6, a block diagram that illustrates the quantifying of available system resources is shown, in accordance with one embodiment of the present invention. In alternate embodiments, system resources may readily be quantified in other manners by using various different hardware configurations, in accordance with the present invention. In the FIG. 6 embodiment, device software 312 initially generates an isochronous process request to cantaloupe manager 316 via path 618. The isochronous process request preferably requires the utilization of one or more hardware resources 412 or other types of resources 412. In response, cantaloupe manager 316 preferably accesses corresponding resource usage values 414 in cantaloupe 318 via path 614. In the FIG. 6 embodiment, cantaloupe 318 preferably corresponds to the isochronous process that was initially requested by device software 312. In addition, in the FIG. 6 embodiment, the foregoing cantaloupe 318 preferably includes resource usage values 414 that are encoded in a format that is native to the corresponding hardware or other resources 412, as discussed above in conjunction with FIG. 5. Cantaloupe manager 316 then may sequentially or concurrently provide the resource usage values 414 from cantaloupe 318 to a request register 628 via path 620 as part of the resource allocation request 510 (FIG. 5). In the FIG. 6 embodiment, resource allocator 630 may then sequentially or concurrently compare each individual resource usage value 414 from cantaloupe 318 to one or more corresponding currently- available resources of the associated resource(s) 412. In certain embodiments, the one or more currently- available resources may preferably be determined by subtracting currently- allocated resource values from one or more total device resource values. In one embodiment, resource allocator 630 is preferably implemented using a hardware configuration. For example, resource allocator 630 may include an input device that provides a received resource usage value 414 to an accumulator device. The accumulator device may responsively add the received resource usage value 414 to a currently-allocated resource value for a particular resource 412. The accumulator thus generates a proposed allocated resource value for the associated resource value 412. A comparator device may then compare the proposed allocated resource value from the accumulator with a total device resource value for the particular resource 412 to determine whether a sufficient amount of the particular resource is available for the requested process. In practice, cantaloupe manager 316 preferably may utilize resource allocator 630 to evaluate each resource usage value 414 from cantaloupe 318. Resource allocator 630 then preferably provides an allocation result via path 624 to status register 632 to indicate whether sufficient additional resources are available for the requested isochronous process. In alternate embodiments in which resource usages 414 are not in a format that is native to the corresponding hardware resource 412, then resource allocator 630 may be implemented as a re-configurable allocation software module that is compatible with the semantics of cantaloupe 318. The allocation software module preferably may perform appropriate resource arithmetic to translate the non-native resource usages 414 for compatible use by the corresponding resource 414. Cantaloupe manager 316 may then access status register 632 via path 626 to determine whether the requested isochronous process may be instantiated. If sufficient resources 412 are currently available for the requested isochronous process, then cantaloupe manager 316 preferably authorizes device software 312 to schedule and instantiate the requested process through picokernel 314. However, if sufficient current resources 412 are not available for the requested isochronous process, then cantaloupe manager 316 preferably generates a request fail signal to device software 312 to deny authorization for instantiating the requested isochronous process. In this manner, the present invention advantageously pre-allocates sufficient resources for a given isochronous process, prior to instantiation, to thereby guarantee successful and deterministic performance of the isochronous process. Referring now to FIG. 7, a flowchart of method steps for performing a resource allocation procedure is shown, in accordance with one embodiment of the present invention. In alternate embodiments, the FIG. 7 resource allocation procedure may readily be performed in various other manners and sequences, in accordance with the present invention. In the FIG. 7 embodiment, initially, in step 712, an entity (such as device software 312) preferably generates a request for instantiation of an isochronous process. In response, in step 716, cantaloupe manager 316 preferably examines one or more cantaloupes 318 that correspond to the requested isochronous process. In step 720, cantaloupe manager 316 preferably determines whether sufficient resources are currently available for performing the requested isochronous process. In accordance with the present invention, cantaloupe manager 316 may utilize any appropriate technique to determine whether sufficient resources are available for performing the requested process. One such technique is further discussed below in conjunction with the FIG. 8 embodiment, in accordance with the present invention. In the FIG. 7 embodiment, cantaloupe manager 316 preferably maintains one or more currently- available resource values 320 in memory 216 (FIG. 3) to quantitatively represent any currently unallocated resources. For example, currently-available resource values may be expressed as percentages of total system resources, or as a finite resource amount. The present invention may then be utilized to compare the resources required for the requested process (obtained from cantaloupe(s) 318) and the currently- available resource value(s) to determine whether sufficient unallocated resources are available for utilization by the requested process. In step 720, if cantaloupe manager 316 determines that sufficient resources are not available for performing the requested process, then, in step 724, cantaloupe manager 316 preferably denies the request for instantiation of the process, and the FIG. 7 method terminates. However, if cantaloupe manager 316 determines that sufficient resources are available for performing the requested process, then, in step 728, cantaloupe manager 316 preferably allocates the required resources, and grants the request for instantiation of the isochronous process. In step 732, cantaloupe manager 316 preferably updates the currently- available resource value(s) in memory 216 to include those resources that were allocated in foregoing step 728 to service the requested isochronous process. For example, if the requested process requires twenty-five percent of system resources, then, cantaloupe manager 316 preferably may decrease the currently-available resources in memory 216 by twenty-five percent. Finally, in step 736, picokernel 314 of device 1 12 preferably may instantiate and execute the requested isochronous process. The resources that are allocated for the isochronous process are therefore guaranteed to be available, and the isochronous process is thus assured of successful execution without degraded or non-optimal performance. In accordance with the present invention, the FIG. 7 process may readily be utilized to evaluate a series of requested isochronous processes. Referring now to FIG. 8, a flowchart of method steps for quantifying available system resources is shown, in accordance with one embodiment of the present invention. In particular, the FIG. 8 method illustrates a technique for determining whether sufficient resources are available for a requested process (step 720 of FIG. 7). In other embodiments of the present invention, system resources may readily be quantified using sequences and procedures other than those discussed below in conjunction with the FIG. 8 embodiment. In the FIG. 8 embodiment, initially, cantaloupe manager 316 preferably creates a resource allocation request 510 by referencing cantaloupe 318 to access resource usage values 414 that are encoded in a native format that is directly compatible with the corresponding resources 412 and resource allocator 630, as discussed above in conjunction with FIGS. 5 and 6. In step 816, cantaloupe manager 316 may then provide the resource usage values 414 from cantaloupe 318 to a request register 628 as part of the resource allocation request 510. In step 820, resource allocator 630 may then sequentially or concurrently process each individual resource usage value 414 from cantaloupe 318 by comparing each resource usage value 414 with one or more corresponding currently- available resource values for the associated hardware resource(s) 412. In the FIG. 8 embodiment, resource allocator 630 may preferably be implemented using a hardware configuration. For example, resource allocator 630 may include an input device that provides a received resource usage value 414 to an accumulator device. The accumulator device may responsively add the received resource usage value 414 to a currently- allocated resource value for a particular resource 412. The accumulator thus generates a proposed allocated resource value for the associated resource value 412. A comparator device may then compare the proposed allocated resource value from the accumulator to a total device resource value for the particular resource 412 to determine whether sufficient resources are available for the requested process. In step 824, resource allocator 630 then preferably may provide an allocation result to status register 632 to advantageously indicate whether sufficient resources are available for the requested isochronous process. 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. A system for quantifying resources in an electronic device ( 1 12), comprising: an allocation manager (316) configured to handle a requested process by referencing a resource characterization (318) and responsively generating a resource allocation request; a resource allocator (630) coupled to said electronic device (112) for processing said resource allocation request to generate an allocation result to said allocation manager (316); and a processor (212) coupled to said electronic device ( 1 12) for controlling said allocation manager (316). 2. The system of claim 1, wherein said electronic device (1 12) is coupled to an electronic network (1 10) that is implemented according to an IEEE Std 1394 serial bus interconnectivity standard. 3. The system of claim 1 wherein said electronic device (112) is one of a consumer-electronics device, an audio-visual device, a set-top box, and a personal computer device. 4. The system of claim 1 wherein said requested process includes one or more time-sensitive isochronous processes for manipulating time-critical isochronous data. 5. The system of claim 1 wherein said resource characterization (318) includes resource requirements for executing said requested process, said resource requirements being encoded in a native format that is directly usable by said allocation manager (316) to provide said resource allocation request to said resource allocator (630), said resource allocator (630) responsively processing said resource allocation request to obtain said allocation result for said allocation manager (316) to utilize in handling said requested process. 6. The system of claim 1 wherein a software module (312) generates a process request to instantiate said requested process on said electronic device (1 12). 7. The system of claim 6 wherein said allocation manager (316) evaluates said resource characterization (318) in response to said process request from said software module (312). 8. The system of claim 7 wherein said resource characterization (318) includes one or more resource listings (412) and one or more corresponding resource usage values (414) that are encoded in a native format that is directly usable by said allocation manager (316) and said resource allocator (630). 9. The system of claim 7 wherein said allocation manager (316) creates said resource allocation request based upon said resource usage values (414) in said resource characterization (318). 10. The system of claim 9 wherein said resource allocation request includes a command identifier (512) corresponding to one of said resources, and an associated one or more of said resource usage values (414) that are encoded in a native format, said command identifier (512) including one of a test command, a do command, and an undo command. 1 1. The system of claim 10 wherein said native format of said resource allocation request permits said resource allocator (630) to process said resource allocation request without translating said resource allocation request. 12. The system of claim 9 wherein said allocation manager (316) transmits said resource allocation request to a request register (628) in said electronic device (112), said resource allocator (630) accessing said resource allocation request from said request register (628). 13. The system of claim 9 wherein said resource allocator (630) processes said resource allocation request by comparing one or more resource usage values (414) from said resource allocation request to one or more respective currently-available resources. 14. The system of claim 9 wherein said resource allocator (630) includes an input device that provides a resource usage value from said resource allocation request to an accumulator device that adds said resource usage value to a currently-allocated resource value to generate a proposed allocated resource value, said resource allocator (630) further including a comparator that compares said proposed allocated resource value to a total device resource value. 15. The system of claim 13 wherein said resource allocator (630) provides said allocation result to a status register (632) in said electronic device (112). 16. The system of claim 13 wherein said resource allocator (630) is implemented as re-configurable software instructions that are executed by said processor (212) to analyze said resource allocation request and thereby generate said allocation result. 17. The system of claim 15 wherein said allocation manager (316) authorizes said requested process whenever an affirmative response is included in said authorization result. 18. The system of claim 15 wherein said allocation manager (316) denies said requested process whenever a negative response is included in said authorization result. 19. The system of claim 17 wherein said allocation manager (316) updates available resource values whenever said requested process is authorized by said allocation manager (316). 20. The system of claim 17 wherein a picokernel (314) in said electronic device (1 12) instantiates and executes said requested process after said allocation manager (316) authorizes said requested process. 21. A method for quantifying resources in an electronic device (112), comprising the steps of: referencing a resource characterization (318) with an allocation manager (316) to generate a resource allocation request corresponding to a requested process; processing said resource allocation request with a resource allocator (630) to provide an allocation result to said allocation manager (316); and controlling said allocation manager (316) with a processor (212) coupled to said electronic device (1 12). 22. The method of claim 21, wherein said electronic device (1 12) is coupled to an electronic network (110) that is implemented according to an IEEE Std 1394 serial bus interconnectivity standard. 23. The method of claim 21 wherein said electronic device ( 1 12) is one of a consumer-electronics device, an audio-visual device, a set-top box, and a personal computer device. 24. The method of claim 21 wherein said requested process includes one or more time- sensitive isochronous processes for manipulating time-critical isochronous data. 25. The method of claim 21 wherein said resource characterization (318) includes resource requirements for executing said requested process, said resource requirements being encoded in a native format that is directly usable by said allocation manager (316) to provide said resource allocation request to said resource allocator (630), said resource allocator (630) responsively processing said resource allocation request to obtain said allocation result for said allocation manager (316) to utilize in handling said requested process. 26. The method of claim 21 wherein a software module (312) generates a process request to instantiate said requested process on said electronic device (1 12). 27. The method of claim 26 wherein said allocation manager (316) evaluates said resource characterization (318) in response to said process request from said software module (312). 28. The method of claim 27 wherein said resource characterization (318) includes one or more resource listings (412) and one or more corresponding resource usage values (414) that are encoded in a native format that is directly usable by said allocation manager (316) and said resource allocator (630). 29. The method of claim 27 wherein said allocation manager (316) creates said resource allocation request based upon said resource usage values (414) in said resource characterization (318). 30. The method of claim 29 wherein said resource allocation request includes a command identifier (512) corresponding to one of said resources, and an associated one or more of said resource usage values (414) that are encoded in a native format, said command identifier (512) including one of a test command, a do command, and an undo command. 31. The method of claim 30 wherein said native format of said resource allocation request permits said resource allocator (630) to process said resource allocation request without translating said resource allocation request. 32. The method of claim 29 wherein said allocation manager (316) transmits said resource allocation request to a request register (628) in said electronic device (112), said resource allocator (630) accessing said resource allocation request from said request register (628). 33. The method of claim 29 wherein said resource allocator (630) processes said resource allocation request by comparing one or more resource usage values (414) from said resource allocation request to one or more respective currently-available resources. 34. The method of claim 29 wherein said resource allocator (630) includes an input device that provides a resource usage value from said resource allocation request to an accumulator device that adds said resource usage value to a current allocated resource value to generate a proposed allocated resource value, said resource allocator (630) further including a comparator that compares said proposed allocated resource value to a total device resource value. 35. The method of claim 33 wherein said resource allocator (630) provides said allocation result to a status register (632) in said electronic device ( 1 12). 36. The method of claim 33 wherein said resource allocator (630) is implemented as re-configurable software instructions that are executed by said processor (212) to analyze said resource allocation request and thereby generate said allocation result. 37. The method of claim 35 wherein said allocation manager (316) authorizes said requested process whenever an affirmative response is included in said authorization result. 38. The method of claim 35 wherein said allocation manager (316) denies said requested process whenever a negative response is included in said authorization result. 39. The method of claim 37 wherein said allocation manager (316) updates available resource values whenever said requested process is authorized by said allocation manager (316). 40. The method of claim 37 wherein a picokernel (314) in said electronic device (1 12) instantiates and executes said requested process after said allocation manager (316) authorizes said requested process. 41. A computer- readable medium comprising program instructions for quantifying resources by performing the steps of: referencing a resource characterization (318) with an allocation manager (316) to generate a resource allocation request corresponding to a requested process; processing said resource allocation request with a resource allocator (630) to provide an allocation result to said allocation manager (316); and controlling said allocation manager (316) with a processor (212) coupled to said electronic device (1 12). 42. A system for quantifying resources in an electronic device ( 1 12), comprising: means for referencing a resource characterization (318) to generate a resource allocation request corresponding to a requested process; means for processing said resource allocation request to provide an allocation result to said means for referencing; and means for controlling said means for referencing.

Inventors: FAIRMAN BRUCE A, SMYERS SCOTT D, STONE GLEN D, FAIRMAN, BRUCE, A., SMYERS, SCOTT, D., STONE, GLEN, D.
Applicants: SONY ELECTRONICS INC, SONY ELECTRONICS INC.
Application year: 2000
Main classification: G06F15
IPC codes: G06F9, G06F13, G06F15, H04L12