Cost metrics
First Claim
1. A system for sharing data processing responsibilies between a host computer and a printer, the system comprising:
- a test instruction set containing at least one draw primitive to be executed by the printer;
a timer to measure a predetermined elapsed period of time;
an evaluator module to measure the number of times that said draw primitive is executed during said elapsed period and determine an execution time for said draw primitive;
a printer model to receive said execution time and create a model of the printer to determine cost information for rendering said draw primitive;
a log file to receive and store said cost information for said draw primitive; and
a resource assembler to receive said draw primitive and calculate a rendering cost for rendering said draw primitive in the printer by using said cost information from said log file, said resource assembler rendering said draw primitive if the printer cannot render said draw primitive in real-time, whereby the host computer and the printer share data processing responsibilities for rendering said draw primitive.
2 Assignments
0 Petitions
Accused Products
Abstract
A resource oriented host computer-printer system is disclosed in which the host computer and printer share information and data processing duties. A system and method for analyzing the execution times for draw primitives allows the host computer to determine whether the printer will be able to render draw primitives in real-time. The inventive system sends a series of test instructions to the printer at the time the printers is installed on the host computer. A timer is used to time a predetermined period of time during which the draw primitives are sent to the printer for execution. Based on the number of draw primitives executed and the type of draw primitives executed, the system constructs a printer model. A log file is used to store the acquired cost metric data. In one embodiment of the invention, a clumping procedure is used to classify cost metric data. A series of cost tables stores the classified cost metric data. A map table provides a map to the cost table to speed up the process of cost metric data retrieval. At run time, a resource assembler calculates the cost of executing each draw primitive within a band to determine if the printer can render the draw primitive in real-time. If the band is too complex for the printer to render in real-time, the host computer will render the band and transmit the bit-map of that band to the printer. If too many bands on one page are complex, the host computer may render the entire page and transmit the bit-map for all bands on the page.
374 Citations
75 Claims
-
1. A system for sharing data processing responsibilies between a host computer and a printer, the system comprising:
-
a test instruction set containing at least one draw primitive to be executed by the printer; a timer to measure a predetermined elapsed period of time; an evaluator module to measure the number of times that said draw primitive is executed during said elapsed period and determine an execution time for said draw primitive; a printer model to receive said execution time and create a model of the printer to determine cost information for rendering said draw primitive; a log file to receive and store said cost information for said draw primitive; and a resource assembler to receive said draw primitive and calculate a rendering cost for rendering said draw primitive in the printer by using said cost information from said log file, said resource assembler rendering said draw primitive if the printer cannot render said draw primitive in real-time, whereby the host computer and the printer share data processing responsibilities for rendering said draw primitive. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for sharing data processing responsibilities between a host computer and a printer, the printer using a set of user draw primitives to draw a plurality of objects on the printed page, the system comprising:
-
a test instruction set containing a set of predetermined test draw primitives to be executed by the printer, said test draw primitives selected from the set of user draw primitives; a timer to measure a predetermined elapsed period of time; an evaluator module to measure the number of times that each of said test draw primitives is executed during said elapsed period and determine an execution time for each of said test draw primitives; a printer model to receive said execution times and create a model of the printer to determine cost information for rendering any one of the set of user draw primitives; a log file to receive and store said cost information for the set of user draw primitives; and a resource assembler to receive a plurality of application draw primitives selected from the set of user draw primitives and calculate a rendering cost for rendering each said application draw primitives in the printer by using said cost information from said log file, said resource assembler rendering said application draw primitives if the printer cannot render said application draw primitives in real-time, whereby the host computer and the printer share data processing responsibilities for rendering said application draw primitives. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system for determining instruction cost information in a printer connected to any host computer, the system comprising:
-
a test instruction set containing at least one draw primitive to be executed by the printer; a timer to measure a predetermined elapsed period of time; an evaluator module to measure the number of times that said draw primitive is executed during said elapsed period and determine cost information for executing said draw primitive; and a log file to receive and store said cost information for said draw primitive, whereby said cost information may be used to determine the cost of executing said draw primitive. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A system for determining draw primitive cost information in a host computer and a printer, the printer using a set of user draw primitives to draw a plurality of objects on the printed page, the system comprising:
-
a test instruction set containing a set of predetermined test draw primitives to be executed by the printer, said test draw primitives selected from the set of user draw primitives; a timer to measure a predetermined elapsed period of time; an evaluator module to measure the number of times that each of said test draw primitives is executed during said elapsed period and determine cost information for each of said test draw primitives; and a log file to receive and store said cost information for the set of user draw primitives. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A system using a host computer for determining instruction cost information, the system comprising:
-
a test instruction set containing a set of predetermined test instructions to be executed by the host computer; a timer to measure a predetermined elapsed period of time; an evaluator module to measure the number of each of said test instructions executed during said elapsed period and determine an execution time for each of said test instructions; and a modeling module to select a plurality of values for a set of data inputs for each of said test instructions, said evaluator module measuring said execution time for each of said test instructions for each of said plurality of values of said set of data inputs, said modeling module using said execution time for each of said test instructions for each of said plurality of values of said set of data inputs to determine a general execution cost model for each of said test instructions for any value of said set of data inputs. - View Dependent Claims (22, 23)
-
-
24. A system for sharing data processing responsibilities between a printer and a host computer, the host computer having previously calculated cost information for the printer by using a set of draw primitives executed by the printer, a timer to measure a predetermined elapsed period of time, an evaluator module to measure the number of times each of the draw primitives is executed during said elapsed period and determine an execution time for each of the draw primitives, and a printer model to receive the execution times and create a model of the printer to determine cost information for rendering any one of the set of draw primitives, the system comprising:
-
a log file containing the cost information for the set of draw primitives in a table; and a resource assembler to receive a plurality of application draw primitives selected from the set of draw primitives and determine a rendering cost for rendering each said application draw primitives in the printer using said log file, said resource assembler rendering said application draw primitives if the printer cannot render said application draw primitives in real-time, whereby the host computer and the printer share data processing responsibilities for rendering said application draw primitives. - View Dependent Claims (25, 26)
-
-
27. A system for sharing data processing responsibilities between a printer and a host computer, the host computer having previously calculated cost information for at least one draw primitive executed by the printer, a timer to measure a predetermined elapsed period of time, an evaluator module to measure the number of times the draw primitive is executed during said elapsed period and determine an execution time for the draw primitive, and a printer model to receive the execution time and create a model of the printer to determine cost information for rendering the draw primitive, the system comprising:
-
a log file containing the cost information for the draw primitive in a table; and a resource assembler to receive at least one application draw primitive selected from the set of draw primitives and determine a rendering cost for rendering each said application draw primitives in the printer using said log file, said resource assembler rendering said application draw primitives if the printer cannot render said application draw primitives in real-time, whereby the host computer and the printer share data processing responsibilities for rendering said application draw primitives.
-
-
28. A timer for measuring the execution time of a set of computer software instructions on a computer, comprising:
-
an oscillator generating timing pulses; a programmable interval timer receiving said timing pulses and periodically toggling an interrupt line to the computer, said timer containing a register to hold a current counter value; a clock storage area storing the number of interrupts generated by said timer; a first access means for accessing said clock storage area to determine said number of interrupts generated by said timer; a second access means for accessing said register to determine said current counter value; a check means for determining if an interrupt is generated when said timer periodically toggles said interrupt line; a predetermined resolution time to indicate the desired resolution of execution time measurement by executing the same set of computer instructions repeatedly until said resolution time expires; and a divider dividing the number of the sets of computer instructions executed during said resolution time by an elapsed time as measured by said first and second access means to determine the execution time for one set of computer instructions. - View Dependent Claims (29)
-
-
30. A method of determining the cost of executing instructions in a printer coupled to a host computer, the method comprising the steps of:
-
(a) executing a test instruction set on the printer, said test instruction set containing at least one draw primitive; (b) repeatedly executing each of said draw primitives for at least a predetermined period of time; (c) measuring an elapsed period at least as great as said predetermined period using a timer, said elapsed period including the time required to complete execution of a draw primitive that may be executing at the end of said predetermined period; (d) determining an execution time for each of said draw primitives by dividing said elapsed period by the number of times that each of said draw primitives was executed during said elapsed period; (e) creating a model of the printer using said execution times, said model containing cost information for rendering any one of said draw primitives; (f) storing said cost information for each of said draw primitives in a log file; (g) receiving a plurality of application draw primitives; and (h) calculating a rendering cost for rendering each said application draw primitives in the printer by using said cost information from said log file. - View Dependent Claims (31, 32, 33, 34, 35)
-
-
36. A method of determining the cost of executing instructions in a printer coupled to a host computer, the printer using a set of user draw primitives to draw a plurality of objects on the printed page, the method comprising the steps of:
-
(a) executing a test instruction set on the printer, said test instruction set containing test draw primitives selected from the set of user draw primitives; (b) repeatedly executing each of said test draw primitives for at least a predetermined period of time; (c) measuring an elapsed period at least as great as said predetermined period using a timer, said elapsed period including the time required to complete execution of one of said test draw primitives that may be executing at the end of said predetermined period; (d) determining an execution time for each of said test draw primitives by dividing said elapsed period by the number of times that each of said test draw primitives was executed during said elapsed period; (e) creating a model of the printer using said execution times, said model containing cost information for rendering any one of the set of user draw primitives; (f) storing said cost information in a log file; (g) receiving a plurality of application draw primitives selected from the set of user draw primitives; and (h) calculating a rendering cost for rendering each said application draw primitives in the printer by using said cost information from said log file. - View Dependent Claims (37, 38, 39, 40, 41)
-
-
42. A method of determining the cost of executing instructions in a printer coupled to a host computer, the method comprising the steps of:
-
(a) executing a test instruction set on the printer, said test instruction set containing at least one draw primitive; (b) repeatedly executing each of said draw primitives for at least a predetermined period of time; (c) measuring an elapsed period at least as great as said predetermined period using a timer, said elapsed period including the time required to complete execution of a draw primitive that may be executing at the end of said predetermined period; (d) determining an execution time for each of said draw primitives by dividing said elapsed period by the number of times that each of said draw primitives was executed during said elapsed period; (e) creating a model of the printer using said execution times, said model containing cost information for rendering any one of said draw primitives; and (f) storing said cost information for each of said draw primitives in a log file. - View Dependent Claims (43, 44, 45, 46)
-
-
47. A method of analyzing the cost of executing instructions in a printer coupled to a host computer, the printer using a set of user draw primitives to draw a plurality of objects on the printed page, the method comprising the steps of:
-
(a) executing a test instruction set on the printer, said test instruction set containing test draw primitives selected from the set of user draw primitives; (b) repeatedly executing each of said test draw primitives for at least a predetermined period of time; (c) measuring an elapsed period at least as great as said predetermined period using a timer, said elapsed period including the time required to complete execution of one of said test draw primitives that may be executing at the end of said predetermined period; (d) determining an execution time for each of said test draw primitives by dividing said elapsed period by the number of times that each of said test draw primitives was executed during said elapsed period; (e) creating a model of the printer using said execution times, said model containing cost information for rendering any one of the set of user draw primitives; and (f) storing said cost information in a log file. - View Dependent Claims (48, 49, 50, 51)
-
-
52. A method for using a host computer to analyze the cost of executing computer instructions, the method comprising the steps of:
-
(a) repeatedly executing each of a set of predetermined test instructions for at least a predetermined period of time; (b) measuring an elapsed period at least as great as said predetermined period using a timer, said elapsed period including the time required to complete execution of one of said set of predetermined test instructions that may be executing at the end of said predetermined period; and (c) determining an execution time for each of said set of predetermined test instructions by dividing said elapsed period by the number of times that each of said of test instructions was executed during said elapsed period. - View Dependent Claims (53, 54, 55, 56)
-
-
57. A method of analyzing the data processing cost in a printer coupled to a host computer, the host computer having previously calculated cost information for the printer by using at least one of a set of draw primitives executed by the printer, a timer to measure a predetermined elapsed period of time, an evaluator module to measure the number of each of the draw primitives executed during the elapsed period and determine an execution time for each of the draw primitives, and a printer model to receive the execution times and create a model of the printer to determine cost information for rendering any one the set of draw primitives, and storing the cost information in a log file, the method comprising the steps of:
-
(a) receiving a plurality of application draw primitives selected from the set of draw primitives; and (b) determining a rendering cost for rendering said application draw primitives in the printer by using the log file containing the cost information for the set of draw primitives. - View Dependent Claims (58, 59, 60)
-
-
61. A method of using an internal timer on a computer for measuring the execution time of a computer instruction on the computer, the method comprising the steps of:
-
(a) generating timing pulses with an oscillator in the computer; (b) periodically toggling an interrupt line to the computer when a programmable interval timer, containing a counter value register to hold a current counter value and receiving said timing pulses, has a value of zero for said counter value register; (c) storing the number of interrupts generated during a selected time period; (d) accessing said clock storage area to determine said number of interrupts generated by said timer during said selected period; (e) accessing said counter value register to determine said current counter value; (f) determining if an interrupt is generated when said timer periodically toggles said interrupt line; (g) determining a resolution time to indicate the desired accuracy of execution time measurement by executing the same computer instruction repeatedly until said resolution time expires; (h) counting a number of times the computer instruction is executed by the computer during said resolution time; and (i) dividing said number by an elapsed time as measured by said clock storage area and said current counter value to determine the execution time of the computer instruction. - View Dependent Claims (62)
-
-
63. A method of determining the amount of time required to execute a computer instruction, the method comprising the steps of:
-
(a) reading a current counter value in a programmable interval counter which is designed to periodically toggle an interrupt to a central processor unit; (b) reading a clock storage area when said counter toggles said interrupt line to determine if an interrupt was generated, said clock storage area being incremented at each of said interrupts; (c) executing a plurality of the same computer instruction starting at the time said interrupt was generated and continuing to execute said plurality of the same computer instruction for at least a predetermined period of time as measured by said counter and the value in said clock storage area; (d) counting a number of said plurality of of the same computer instruction executed during said elapsed time, said number including an extra one of said plurality of the same computer instruction which may be currently executing at the time said predetermined time expires; (e) reading said current counter value and said clock storage area when said predetermined time expires or when said extra one of said plurality of the same computer instruction completes execution, to determine an elapsed time for executing said number of said plurality of the same computer instruction executed; and (f) determining an execution time for one of said computer instructions by dividing said elapsed time by said number. - View Dependent Claims (64)
-
-
65. A system for determining an instruction execution time in a printer coupled to a host computer, the system comprising:
-
a test instruction set containing at least one draw primitive to be executed by the printer; a timer to measure a predetermined elapsed period of time; an evaluator module to measure the number of times that said draw primitive is executed during said elapsed period and determine an execution time for said draw primitive; and a log file to receive and store said execution time for said draw primitive. - View Dependent Claims (66, 67, 68)
-
-
69. A system for sharing data processing responsibilities by a host computer and a printer, the system comprising:
-
a test instruction set containing at least one draw primitive to be executed by the printer; a timer to measure a predetermined elapsed period of time; an evaluator module to measure the number of times that said draw primitive is executed during said elapsed period and determine an execution time for said draw primitive; a printer model to receive said execution time and create a model of the printer to determine cost information for rendering said draw primitive; a log file to receive and store said cost information for said draw primitive; and a resource assembler to receive said draw primitive and calculate a rendering cost for rendering said draw primitive in the printer by using said cost information from said log file, said resource assembler determining if the printer can render said draw primitive in real-time and rendering said draw primitive if the printer cannot render said draw primitive in real-time, whereby the host computer and the printer share data processing responsibilities for rendering said draw primitive.
-
-
70. A timer for measuring the execution time of a computer software instruction executed on a computer, comprising:
-
an oscillator generating timing pulses; a programmable interval timer receiving said timing pulses and periodically toggling an interrupt line to the computer, said timer containing a register to hold a current counter value; a clock storage area storing the number of interrupts generated by said timer; a first access means for accessing said clock storage area to determine said number of interrupts generated by said timer; a second access means for accessing said register to determine said current counter value; a check means for determining if an interrupt is generated when said timer periodically toggles said interrupt line; a predetermined resolution time to indicate the desired resolution of execution time measurement by executing the same computer instruction repeatedly until said resolution time expires; and a divider dividing the number of times that the computer instruction executed during said resolution time by an elapsed time as measured by said first and second access means to determine the execution time of the computer instruction. - View Dependent Claims (71)
-
-
72. A method of determining the cost of executing instructions in a printer coupled to a host computer, the method comprising the steps of:
-
(a) executing a test instruction set on the printer, said test instruction set containing at least one draw primitive; (b) repeatedly executing each of said draw primitives for at least a predetermined period of time; (c) measuring an elapsed period at least as great as said predetermined period using a timer, said elapsed period including the time required to complete execution of a draw primitive that may be executing at the end of said predetermined period; and (d) determining an execution time for each of said draw primitives by dividing said elapsed period by the number of times that each of said draw primitives was executed during said elapsed period. - View Dependent Claims (73)
-
-
74. A method of determining the amount of time required to execute a computer instruction, the method comprising the steps of:
-
(a) reading a current counter value in a programmable interval counter which is designed to periodically toggle an interrupt to a central processor unit; (b) reading a clock storage area when said counter toggles said interrupt line to determine if an interrupt was generated, said clock storage area being incremented at each of said interrupts; (c) executing a plurality of the same computer instruction starting at the time said interrupt was generated and continuing to execute said plurality of the same computer instruction for at least a predetermined period of time as measured by said counter and the value in said clock storage area; (d) counting a number of said plurality of the same computer instruction executed during said elapsed time; (e) reading said current counter value and said clock storage area when said predetermined time expires to determine an elapsed time for executing said number of said plurality of the same computer instruction executed; and (f) determining an execution time for one of the computer instructions by dividing said elapsed time by said number. - View Dependent Claims (75)
-
Specification