NONE
NONE
NONE
This application claims priority to a U.S. Provisional Patent Application 61/921,133 filed Dec. 27, 2013 titled “PROCESS FOR PROVIDING INCREASED POWER ON DEMAND IN A COMPUTER PROCESSING SYSTEM WITH SUBMODELING” with first named inventor Sid Andress, Phoenix, Ariz. (US), which is expressly incorporated herein as though set forth in full.
This invention relates to the art of computer systems and, more particularly, to a process for controlling level of submodel performance in a computer processing unit.
In the delivery of computer processing power to customers or end users, it is sometimes desirable to offer a processing unit with a controlled level of performance that is less than the highest level of performance that could be achieved. For example, in the mainframe computing industry, the price charged for a processing unit is often directly related to performance, and so reducing the maximum allowable performance of a delivered unit allows the manufacturer to deliver a product at a controlled level of performance and to charge the customer a lower price than would be offered for a unit that would deliver maximum performance. This practice is common and fully accepted in the computer industry.
In a complex computer system, achieving accurate degradation of performance in a precisely controlled manner to obtain a certifiable submodel rating is a not trivial task. The problem is made complex by many factors. Some examples of these factors are:
It is key to provide a procedure which is highly accurate in establishing a processor's submodel performance. It is also key to provide a procedure that is relatively simple and which itself constitutes a negligible load on system performance.
These objectives are achieved in the prior art by: sampling a real-time counter/clock (RTC) to obtain an initial time value T1; resetting an Icnt Counter; incrementing the Icnt Counter to reflect the processing of each instruction; comparing the count in the Icnt Counter to a predetermined count IcntMax and if the count in the Icnt Counter is at least IcntMax, then sampling the RTC to obtain a second time T2. T1 is then subtracted from T2 to obtain a time difference DT which is multiplied by ((1−1/DF)−1) to obtain a Degradation Delay DD period, DF being a degradation factor which is a constant having a value that is the ratio of the desired submodel performance with respect to full performance. The Degradation Delay is instituted by sampling the RTC from time to time to obtain a test third time T3. When test T3 minus T2 exceeds or equals DD, then T1 is set to the current value for T3, and the procedure is repeated for a next group of instructions. Further accuracy is achieved by remembering the difference between the quantity T3 minus T2, and DD which is saved as DDExtra. DDExtra is the amount of time larger than DD that has been delayed during a given pass through the process, and for further precision may be used during the next group of instructions to reduce the delay time; that is, the applied delay for this next group is DD minus DDExtra from the previous group of instructions.
It is noted that the incrementing of the Icnt Counter and the comparison against the number IcntMax is a mechanism intended to trigger the periodic reading of the RTC. The reading of the RTC in most processors takes time which would significantly slow the processing, or the emulation if it was done during the processing of every instruction, which would be unacceptable with respect to overall performance. The incrementing of the Icnt Counter is intended to be a function of trivial performance impact, and this is all that happens in the normal case. When Icnt reaches IcntMax, then the time for the reading of RTC is reached, but since this determination is only made occasionally, it constitutes low overhead with greatly reduced impact on performance (IcntMax is large, for example 100 to 10000, or more).
It is further noted that the method described above of using an Icnt Counter and comparison of Icnt to IcntMax is for exemplary purposes only, and any mechanism which causes or allows only substantially periodic sampling of the RTC could be used.
In the repertoire of instructions for many processing units, there are instructions which allow delay, or which themselves read or use the RTC in some way. Precise degradation of performance for submodel offerings may optionally, for further accuracy, be achieved by considering and treating “wait-type” and/or “RTC-access-type” instructions specially.
“Wait” instructions tell the processor to stop and simply wait for something to do such as wait for an input/output operation to complete. This internal (to the instruction) waiting is completed when some external event, such as an interrupt, occurs or when some specified amount of delay is achieved. For “wait-type” instructions, best precision of delay is achieved if the internal wait loop is not entered until the Degradation Delay procedure as described above is immediately processed, just as though IcntMax had been reached. If the external event occurs, the internal wait loop is exited, and the Degradation Delay is truncated.
A second refinement particularly applicable to an emulated or firmware controlled processor is that when the processor desires to read any RTC (“RTC-access-type” instruction) for other purposes than degradation, then the Degradation Delay procedure is applied before the RTC to which the processor is referring is sampled so that processing of two back-to-back “read RTC” instructions will not be completed in an unnaturally small amount of time; “unnatural” in this context meaning as though the instructions were running in a full performance version of the processor emulation.
Customers whose workload level has reached the point where a computer processing site needs additional CPU Power for a short period of time to complete desired processing have been given very few options. They can add an additional processors to their system to meet requirements during a short period of high workload levels, but this is costly and the extra processor and/or processing power is unused most of the time. Typically computer processing sites that are in this situation are smaller sites running sub-model system where adding significant numbers of additional processors is not an economical answer to their processing needs.
To address these needs one approach in the manner of the present invention is to increase the CPU Power of the processors by upping the emulated processor speed dynamically for a period of time that meets the customer needs for higher CPU Power. Implementaiton of this approach is not straightforward however because the performance of a submodel processing unit is typically tightly secured and also typically requires a reboot of the operating system with security reequirements such as entering a key to enable a higher level of processing power.
The need is for increased processing power available on specific request and it would be advantageous to provide the ability for a site to dynamically increase their processor speed whenever administrators of the site feel the need the extra power and also are willing to pay for the additional processor speed. Once the site has completed the high workload they either dynamically or automatically return to the original CPU Power speed of the sub-model system, or they make a request to decrease power, and resultant charges. Alternatively the initial power on request can specify a time of higher power, periods of higher power, or higher power for a specific job.
It is a further advantage to provide the ability to change the processing speed of the processors in the system without having to reboot the operating system, This speed value is typically contained in a model file used to set up the system and normally cannot be changed without causing signature file errors during a boot.
It is a further advantage to provide capability to track the speed changes of the processors in the system for monthly billing of the computer used at the higher than sub-model speed. This provides a site with the ability to control the system performance for periods of time when the workload is greater than the current sub-model speed of the system.
It is a further advantage to provide a dynamic means for customers to increase the speed of the emulated processors in their system to meet their work load and including in the process or method a mechanism for charging the customer for the time the system runs in the over system model power speed.
One approach in meeting requirements of the design in order to maintain steady and precise emulated performance is to update a reserved memory word (RMS) with the new processor speed value. This word is then routinely checked by the Processor Emulation code and will result in dynamically changing the emulated speed of the emulated processors in the system when the value changes.
In one manner of the present invention, the operating system provides new console commands to manage the emulated processor speed. The code validates that the site has this option when a console request is entered. Once the console request is determined valid, the emulated performance of the processor is increased so as to provide added processor speed. A record is also optionally written to the system accounting file to provide tracking of the CPU Power change.
It is also advantageous to provide a periodic automated call to the billing department of the computer system provider to allow for billing of the increased CPU power, for example at the start of each month.
In an alternative implementation the increase in power can be requested with control cards in the job control language provided by the computer system operating system, optionally with a password to limit requests to those with the authorization to incur the billing charges.
It is a further optional key advantage to provide for the processor change in performance (speed) in a manner that avoids need for a reboot of the operating system. This is possible in a manner different than the prior art by implementing the degradation parameters of the emulation system in a reserved memory word that is not available to users, that is, only available or accessible (changeable) by the operating system. A very efficient mechanism is required for access by the emulation firmware because this degradation parameter is accessed very frequently and this access must not lower overall emulation performance too dramatically. One alternative that accomplishes efficient access to the degradation parameter is to store a degradation parameter in memory that is commonly accessible and shared between the emulation firmware and the operating system. This can be an agreed upon location in reserved memory. Another alternative is to have the degradation parameter stored in memory or a register only accessible to the emulation firmware, and then for the emulation firmware to provide instructions or other interface to the operating system that would alter those degradation parameters.
The above is an overview of several embodiments implementing the method of the present invention and provides exemplary examples utilizing selected aspects described in connection with certain embodiments of the present invention.
A user may find need for a submodel level of performance during most normal periods of time, but with a need for higher processing performance at other times. The present invention provides a means for a user to request higher performance while the emulation software is continuously running (without stopping the emulated computer system). A requirement to stop an emulated computer system in order to change its performance would be a severe operational disadvantage in a large computer system installation. In
Other aspects of the present invention not explicitly described herein can be derived after presentation of the concepts of the present invention as here presented without departing from practice of this invention. Those derivations may be made by someone knowledgeable in the art of communications, computer programming, caching of data and other similar skills. Having described the preferred embodiments of the invention, it will now become apparent to one skilled in the arts that other embodiments or implementations incorporating the teachings of the present invention may be used. Accordingly, these embodiments should not be limited to the disclosed embodiments or implementations but rather should be limited only by the spirit and scope of the following claims.
REFERENCE TO US PATENT 2007/0157050 filed Mar. 6, 2007, publication date Jul. 5, 2007 INCORPORATION BY REFERENCE TO U.S. PROVISIONAL PATENT APPLICATION 61/921,133 filed Dec. 27, 2013