GB2249414A - Predicting the performance of a computer system - Google Patents

Predicting the performance of a computer system Download PDF

Info

Publication number
GB2249414A
GB2249414A GB9116324A GB9116324A GB2249414A GB 2249414 A GB2249414 A GB 2249414A GB 9116324 A GB9116324 A GB 9116324A GB 9116324 A GB9116324 A GB 9116324A GB 2249414 A GB2249414 A GB 2249414A
Authority
GB
United Kingdom
Prior art keywords
instruction
target computer
performance
sequence
instructions
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
GB9116324A
Other versions
GB9116324D0 (en
GB2249414B (en
Inventor
George Allt
John Richard Eaton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services Ltd
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 Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Publication of GB9116324D0 publication Critical patent/GB9116324D0/en
Publication of GB2249414A publication Critical patent/GB2249414A/en
Application granted granted Critical
Publication of GB2249414B publication Critical patent/GB2249414B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Abstract

A benchmark program is run on an existing host computer, and is monitored to determine the actual sequence of instructions in the instruction set of the host. This sequence is then converted into the corresponding sequence in the instruction set of a target computer. The performance of the target system in executing these instructions is then estimated. There is also disclosed a method of performing a range definition test on a simulated target model. <IMAGE>

Description

224P414 Predicting the performance of a computer system
Background of the invenion
This invention relates to a method and apparatus for predicting the performance of a computer system.
One known way of predicting the performance of a computer system is to construct a software model, which allows the behaviour and performance of the system to be studied and analysed without having to construct the actual hardware of the system., Typically, the simulation model is used to simulate the operation of the target system when running a test program in the instruction set of the target system. The model decodes the current instruction in the test program, determines the effect of the instruction on the target system (e. g. what registers are updated and what store accesses are made) and determines the next instruction of the test program to be executed. This can be a very slow and complex process, and requires a detailed model of the target systemr which clearly cannot be done until the design of the target computer has reached this level of detail.
The object of the present invention is to provide a novel method of predicting the performance of - 2 a computer system, in which this problem is alleviated.
Summary of the invention
According to the invention there is provided a method of predicting the performance of a target computer system, the method comprising:
(a) monitoring the running of a program on a host computer to determine the sequence of instruction execution, converting the sequence of instructions executed on the host computer into a corresponding sequence of instructions for the target computer, and determining the performance of the target computer in response to the instructions.
(b) (c) It can be seen that the invention provides a novel approach to the problem of performance prediction, which avoids the need for simulating the detailed behaviour of the target system.
Brief description of the drawing
The drawing is a schematic block design of apparatus for performing a prediction method in accordance with the invention.
Description of an embodiment of the invention
One performance prediction method and apparatus in accordance with the invention will now be described by way of example with reference to the accompanying drawing.
1 It is assumed in this example that the target computer (i.e. the computer whose performance is to be predicted) is a pipelined computer comprising a plurality of pipeline stages such as: instruction fetch, decode, operand address generation, operand fetch, and execute. It is also assumed that the target computer includes a slave or cache store for holding instructions and operands.
Referring to the drawingst a host computer 10 is arranged to run a benchmark or test program 11, compiled in the instruction set of the host computer. For example, the host may be an ICL series 39 level 80 mainframe computer, the benchmark program being compiled into the ICL 2900 instruction set.
The operation of the host is monitored by monitoring means 12, to generate a monitor data file 13, which is then dumped on to magnetic tape. The monitoring means 12 may be a separate hardware unit, but preferably it consists of microcode routines which run on the host computer.
The monitored information includes, for each instruction executed in the host:
(a) (b) (c) (d) the identity of the instruction the register usage of the instruction the store activity associated with the instruction. instance-specific information, such as operand values.
The monitor data file 13 is then processed by a performance model 14, to generate a performance results file 15, which can be displayed on a display unit 16. The performance model 14 may be a separate hardware unit, but in this embodiment consists of software running on a computer, which may conveniently be the host computer 10.
The performance model comprises a number of software routines 20, 22, 24.
Routine 20 inspects the data in the monitor data file 13, and generates a corresponding sequence of target code instructions 21 in the instruction set of the target computer system.
It is assumed in this example that the instruction set of the target computer system is related to, but not identical with. that of the host computer. For example, the instruction set of the target may be a reduced set of the host instruction set. Thus, the operation of the module 20 involves translating each instruction executed by the host computer into a corresponding instruction, or sequence of instructions, in the instruction set of the target.
Routine 22 reads the data in the monitor file 13, and determines the slave store usage for each instruction. From this, the routine 22 produces miss rate statistics 23 for the slave.
Routine 24 takes each of the target code instructions in turn, and assigns to that instruction one of a set of templates 25, which indicate the hardware usage of that instruction in successive stages of the pipeline. In particular, each template indicates the register reads and writes to be performed by the instruction at each pipeline stage.
The routine 24 then uses these templates, i conjunction with the miss rate statistics 23, to #1 k determine the earliest possible execution time for each instruction. For example. the instruction templates of two successive instructions may indicate that the first instruction updates a register at a certain pipeline stage. and a second instruction reads the same register at an earlier pipeline stage. In that case, a pipeline hold-up may be necessary to delay the execution of the second instruction so as to ensure that the operand is updated by the first instruction before it is read by the second instruction. Also, if a slave miss occurs, the execution of an instruction must be delayed.
The output of the routine 24 is the set of performance data 15 indicating, for example, the expected time to execute the benchmark program.
In a modified form of the arrangement described above, instead of simply extracting statistical data about the slave miss rate, the actual outcome of the slave access (hit or miss) may be determined for each instruction, and this information used by the routine 24.
It may also be required to perform a range definition test, to check whether the target computer meets the range definition standards of an existing range of computers.
If a simulation model of the target computer is available, the range definition test may be performed on the simulation model. However, such a range definition test normally requires a very large test program, comprising a sequence of test instructions along with a large number of checking instructions to check that the test instructions have been correctly executed. Such a large test program would take a very long time to execute on a simulation model.
This problem can be overcome as follows:- First, a test program, consisting of a sequence of test instructions, is run on a host computer which is known to meet the range definition standards. The states of the host computer after each instruction of this test program are monitored (e.g. by the monitoring means 12 described above) and the results are dumped on magnetic tape.
The same test program is now run on the simulation model. The state of the simulated target computer is compared, at the end of each instruction, with the monitored state of the host computer at the end of the corresponding instruction. Any discrepancy indicates that the target computer does not conform to the range definition standards.
The test program used with this method can be much shorter than that required for conventional range definition tests, since it consists solely of test instructions, and does not require any checking instructions. It has been found that this can reduce the size of the test program by a factor of 10000, with a corresponding reduction in the length of time required to run the test program on the simulation model.

Claims (1)

  1. CLAIMS is A method of predicting the performance of a target computer
    system. the method comprising:
    a) monitoring the running of a program on a host computer to determine the sequence of instruction execution, b) converting the sequence of instructions executed on the host computer into a corresponding sequence of instructions for target computer, and determining the performance of the target computer in response to the instructions.
    c) A method according to Claim 1 wherein said monitoring step determines the sequence of store accesses by the sequence of instructions, the method including the further step of determing the operation of a slave store forming part of the target computer system under said sequence of store accesses, to generate miss rate information relating to the slave store, and using this miss rate information in determining the performance of the target computer.
    3. A method according to either preceding claim wherein the step of determing the performance of the target computer comprises assigning one of a set of templates to each instruction, each template indicating the hardware usage associated with the instruction in the target computer, and utilising the templates to determine the earliest possible time for execution of each instruction, taking into account dependencies between successive instructions.
    4. A method of predicting the performance of a target computer system substantially as hereinbefore described with reference to the accompanying drawing.
    Apparatus for predicting the performance of a target computer system substantially as hereinbefore described with reference to the accompanying drawing.
    6. A method of checking whether a target computer system conforms to a range definition standard, comprising the steps:
    a) running a test program on a host computer known to conform to the range definition standard, b) monitoring the running of test program, and storing the state of the host computer after each instruction of the text program. and c) running the test program on a simulation model of the target computer, and comparing the state of the simulated target computer after each instruction with the monitored state of the host computer after the same instruction.
GB9116324A 1990-10-31 1991-07-29 Predicting the performance of a computer system Expired - Fee Related GB2249414B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB909023633A GB9023633D0 (en) 1990-10-31 1990-10-31 Predicting the performance of a computer system

Publications (3)

Publication Number Publication Date
GB9116324D0 GB9116324D0 (en) 1991-09-11
GB2249414A true GB2249414A (en) 1992-05-06
GB2249414B GB2249414B (en) 1994-04-06

Family

ID=10684614

Family Applications (2)

Application Number Title Priority Date Filing Date
GB909023633A Pending GB9023633D0 (en) 1990-10-31 1990-10-31 Predicting the performance of a computer system
GB9116324A Expired - Fee Related GB2249414B (en) 1990-10-31 1991-07-29 Predicting the performance of a computer system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GB909023633A Pending GB9023633D0 (en) 1990-10-31 1990-10-31 Predicting the performance of a computer system

Country Status (2)

Country Link
US (1) US5347647A (en)
GB (2) GB9023633D0 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1686456A2 (en) * 2005-02-01 2006-08-02 Seiko Epson Corporation System, method and program for resource management, software authentication and resource conversion table generation
US7444364B2 (en) 2005-02-14 2008-10-28 Seiko Epson Corporation File operation limiting system, file operation limiting program, file operation limiting method, electronics and printing apparatus
US7954105B2 (en) 2004-12-27 2011-05-31 Seiko Epson Corporation System for limiting resource usage by function modules based on limiting conditions and measured usage

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517629A (en) * 1992-08-26 1996-05-14 Boland; R. Nick K. Methods for analyzing computer program performance
JPH06168163A (en) * 1992-09-30 1994-06-14 Nec Home Electron Ltd Method and device for monitoring cpu
US5604895A (en) * 1994-02-22 1997-02-18 Motorola Inc. Method and apparatus for inserting computer code into a high level language (HLL) software model of an electrical circuit to monitor test coverage of the software model when exposed to test inputs
JP3366475B2 (en) * 1994-04-12 2003-01-14 三菱電機株式会社 How to evaluate data processing speed
US5764956A (en) * 1994-11-07 1998-06-09 Seiko Epson Conporation Computer peripheral function emulator
US5872909A (en) * 1995-01-24 1999-02-16 Wind River Systems, Inc. Logic analyzer for software
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5664173A (en) * 1995-11-27 1997-09-02 Microsoft Corporation Method and apparatus for generating database queries from a meta-query pattern
US5717850A (en) * 1996-03-12 1998-02-10 International Business Machines Corporation Efficient system for predicting and processing storage subsystem failure
US5778194A (en) * 1996-04-08 1998-07-07 Symbios, Inc. Method and apparatus for measuring performance of a computer bus
US6035306A (en) * 1997-11-24 2000-03-07 Terascape Software Inc. Method for improving performance of large databases
US6118940A (en) * 1997-11-25 2000-09-12 International Business Machines Corp. Method and apparatus for benchmarking byte code sequences
US6415378B1 (en) * 1999-06-30 2002-07-02 International Business Machines Corporation Method and system for tracking the progress of an instruction in an out-of-order processor
US6604159B1 (en) 1999-08-12 2003-08-05 Mips Technologies, Inc. Data release to reduce latency in on-chip system bus
US6401056B1 (en) * 1999-12-27 2002-06-04 General Electric Company Methods and apparatus for evaluating tool performance
US7093108B2 (en) * 2001-02-01 2006-08-15 Arm Limited Apparatus and method for efficiently incorporating instruction set information with instruction addresses
US7093236B2 (en) 2001-02-01 2006-08-15 Arm Limited Tracing out-of-order data
EP1709537B1 (en) * 2003-08-06 2012-09-26 Moshe Halevy Method and apparatus for unified performance modeling with monitoring and analysis of complex systems
US7913237B2 (en) * 2003-08-26 2011-03-22 Ensequence, Inc. Compile-time code validation based on configurable virtual machine
US7818746B2 (en) * 2005-03-30 2010-10-19 Hewlett-Packard Development Company, L.P. System and method for benchmarking using a multi-threaded load generator
US7675866B1 (en) 2005-09-24 2010-03-09 Rockwell Collins, Inc. Method and system for analyzing resource needs for a configurable computing system
WO2010064260A1 (en) * 2008-12-01 2010-06-10 Kpit Cummins Infosystems Ltd. Method and system for parallelization of sequencial computer program codes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899306A (en) * 1985-08-26 1990-02-06 American Telephone And Telegraph Company, At&T Bell Laboratories Test interface circuit which generates different interface control signals for different target computers responding to control signals from host computer
JPS62182939A (en) * 1986-02-07 1987-08-11 Hitachi Ltd Logic simulation method for information processor
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US5045994A (en) * 1986-09-23 1991-09-03 Bell Communications Research, Inc. Emulation process having several displayed input formats and output formats and windows for creating and testing computer systems
US4872121A (en) * 1987-08-07 1989-10-03 Harris Corporation Method and apparatus for monitoring electronic apparatus activity
GB8801628D0 (en) * 1988-01-26 1988-02-24 British Telecomm Evaluation system
JPH02199548A (en) * 1988-11-09 1990-08-07 Asea Brown Boveri Ag Observing method for development with the lapse of time of object program made by electronic computer system and observation instrument practicing said method
US5153886A (en) * 1990-01-31 1992-10-06 Hewlett Packard Company Visual display signal processing system and method
US5202975A (en) * 1990-06-11 1993-04-13 Supercomputer Systems Limited Partnership Method for optimizing instruction scheduling for a processor having multiple functional resources

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7954105B2 (en) 2004-12-27 2011-05-31 Seiko Epson Corporation System for limiting resource usage by function modules based on limiting conditions and measured usage
EP1686456A2 (en) * 2005-02-01 2006-08-02 Seiko Epson Corporation System, method and program for resource management, software authentication and resource conversion table generation
EP1686456A3 (en) * 2005-02-01 2008-04-16 Seiko Epson Corporation System, method and program for resource management, software authentication and resource conversion table generation
US7444364B2 (en) 2005-02-14 2008-10-28 Seiko Epson Corporation File operation limiting system, file operation limiting program, file operation limiting method, electronics and printing apparatus

Also Published As

Publication number Publication date
US5347647A (en) 1994-09-13
GB9116324D0 (en) 1991-09-11
GB9023633D0 (en) 1990-12-12
GB2249414B (en) 1994-04-06

Similar Documents

Publication Publication Date Title
US5347647A (en) Method of predicting the performance of an emulated computer system
US5615357A (en) System and method for verifying processor performance
US6021261A (en) Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers
TWI410864B (en) Controlling instruction execution in a processing environment
CN102792265B (en) Instruction based on machine state cracks
US10360322B2 (en) Simulation of virtual processors
CN103154890A (en) Simulation device, method, and program
JP2003029977A (en) Computer system, exception processing program and conversion program for the same and compiling method
KR102090998B1 (en) Real-time adjustment of application-specific calculation parameters for backward compatibility
EP3391224B1 (en) Method and apparatus for data mining from core traces
JP2015516601A (en) Hardware-based runtime instrumentation for managed runtimes
JPH1196130A (en) Method and device for evaluating performance of multiprocessing system, and storage medium storing performance evaluating program thereof
CN110709823A (en) Emulation of target system using JIT compiler and bypassing translation of selected target code blocks
CN116149917A (en) Method and apparatus for evaluating processor performance, computing device, and readable storage medium
US7885806B2 (en) Simulation method and simulation system of instruction scheduling
US7100027B1 (en) System and method for reproducing system executions using a replay handler
US9111034B2 (en) Testing of run-time instrumentation
CN111324948B (en) Simulation method and simulation system
CN114237705A (en) Verification method, verification device, electronic equipment and computer-readable storage medium
US20050050524A1 (en) Generating software test information
JP2828590B2 (en) Microprogram verification method
CN108228239B (en) Branch instruction grabbing method and device based on quick simulator QEMU
Kanev et al. Portable trace compression through instruction interpretation
JP3295803B2 (en) Processor method Performance measurement method
US20210216317A1 (en) Vector instruction dependencies

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20060729