Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
2007-10-30
2007-10-30
Dam, Tuan (Department: 2192)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S130000, C717S159000, C712S240000, C714S045000
Reexamination Certificate
active
10757156
ABSTRACT:
A method, apparatus, and computer instructions for local program reorganization using branch count per instruction hardware. In a preferred embodiment, a hardware counter is used in the present invention to count the number of times a branch is taken when branch instructions are executed. Branch count statistics generated from the hardware counters are available to a program in order to analyze whether code reorganization is necessary. If reorganization is necessary, the program autonomically reorganizes instructions locally at run time to allow more instructions to be executed prior to taking a branch, so that the number of branches taken is minimized without modifying underlying program code.
REFERENCES:
patent: 4291371 (1981-09-01), Holtey
patent: 4316245 (1982-02-01), Luu et al.
patent: 5051944 (1991-09-01), Fetterolf et al.
patent: 5103394 (1992-04-01), Blasciak
patent: 5142634 (1992-08-01), Fite et al.
patent: 5212794 (1993-05-01), Pettis et al.
patent: 5394529 (1995-02-01), Brown, III et al.
patent: 5581778 (1996-12-01), Chin et al.
patent: 5659679 (1997-08-01), Alpert et al.
patent: 5689712 (1997-11-01), Heisch
patent: 5691920 (1997-11-01), Levine et al.
patent: 5752062 (1998-05-01), Gover et al.
patent: 5768500 (1998-06-01), Agrawal et al.
patent: 5774724 (1998-06-01), Heisch
patent: 5794028 (1998-08-01), Tran
patent: 5930508 (1999-07-01), Faraboschi et al.
patent: 5937437 (1999-08-01), Roth et al.
patent: 5938760 (1999-08-01), Levine et al.
patent: 5938778 (1999-08-01), John, Jr. et al.
patent: 5940618 (1999-08-01), Blandy et al.
patent: 5950003 (1999-09-01), Kaneshiro et al.
patent: 5950009 (1999-09-01), Bortnikov et al.
patent: 5966537 (1999-10-01), Ravichandran
patent: 5966538 (1999-10-01), Granston et al.
patent: 5970439 (1999-10-01), Levine et al.
patent: 5987250 (1999-11-01), Subrahmanyam
patent: 6006033 (1999-12-01), Heisch
patent: 6026235 (2000-02-01), Shaughnessy
patent: 6070009 (2000-05-01), Dean et al.
patent: 6101524 (2000-08-01), Choi et al.
patent: 6119075 (2000-09-01), Dean et al.
patent: 6134676 (2000-10-01), VanHuben et al.
patent: 6189141 (2001-02-01), Benitez et al.
patent: 6189142 (2001-02-01), Johnston et al.
patent: 6192513 (2001-02-01), Subrahmanyam
patent: 6206584 (2001-03-01), Hastings
patent: 6223338 (2001-04-01), Smolders
patent: 6233679 (2001-05-01), Holmberg
patent: 6237141 (2001-05-01), Holzle et al.
patent: 6243804 (2001-06-01), Cheng
patent: 6256775 (2001-07-01), Flynn
patent: 6286132 (2001-09-01), Tanaka et al.
patent: 6324689 (2001-11-01), Lowney et al.
patent: 6330662 (2001-12-01), Patel et al.
patent: 6351844 (2002-02-01), Bala
patent: 6374364 (2002-04-01), McElroy et al.
patent: 6430741 (2002-08-01), Mattson, Jr. et al.
patent: 6442585 (2002-08-01), Dean et al.
patent: 6446029 (2002-09-01), Davidson et al.
patent: 6480938 (2002-11-01), Vondran, Jr.
patent: 6505292 (2003-01-01), Witt
patent: 6542985 (2003-04-01), Johnson et al.
patent: 6594820 (2003-07-01), Ungar
patent: 6631514 (2003-10-01), Le
patent: 6961925 (2005-11-01), Callahan, II et al.
patent: 7181723 (2007-02-01), Luk et al.
patent: 2001/0032305 (2001-10-01), Barry
patent: 2002/0019976 (2002-02-01), Patel et al.
patent: 2002/0073406 (2002-06-01), Gove
patent: 2002/0124237 (2002-09-01), Sprunt et al.
patent: 2002/0129309 (2002-09-01), Floyd et al.
patent: 2002/0147965 (2002-10-01), Swaine et al.
patent: 2002/0157086 (2002-10-01), Lewis et al.
patent: 2002/0199179 (2002-12-01), Lavery et al.
patent: 2003/0014741 (2003-01-01), Megiddo et al.
patent: 2003/0040955 (2003-02-01), Anaya et al.
patent: 2003/0066055 (2003-04-01), Spivey
patent: 2003/0131343 (2003-07-01), French et al.
patent: 2004/0194076 (2004-09-01), Comp et al.
patent: 2004/0268316 (2004-12-01), Fisher et al.
patent: 2005/0071515 (2005-03-01), DeWitt, Jr. et al.
patent: 2005/0071516 (2005-03-01), Levine et al.
patent: 2005/0071608 (2005-03-01), Levine et al.
patent: 2005/0071609 (2005-03-01), Levine et al.
patent: 2005/0071610 (2005-03-01), DeWitt, Jr. et al.
patent: 2005/0071611 (2005-03-01), DeWitt, Jr. et al.
patent: 2005/0071612 (2005-03-01), DeWitt, Jr. et al.
patent: 2005/0071816 (2005-03-01), Levine et al.
patent: 2005/0071817 (2005-03-01), Dewitt, Jr. et al.
patent: 2005/0071821 (2005-03-01), Levine et al.
patent: 2005/0071822 (2005-03-01), DeWitt, Jr. et al.
patent: 2005/0154867 (2005-07-01), DeWitt, Jr. et al.
patent: 2005/0155030 (2005-07-01), DeWitt, Jr. et al.
patent: 2000029731 (1999-12-01), None
patent: 2000347863 (2000-12-01), None
A. Ramirez, J. L. Larriba-Pey, and M. Valero. The effect of code reordering on branch prediction. Proceedings of the Intl. Conference on Parallel Architectures and Compilation Techniques, pp. 189—198, Oct. 2000.
Yang, M., Uh, G., and Whalley, D. B. 1998. Improving performance by branch reordering. In Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation (Montreal, Quebec, Canada, Jun. 17-19, 1998). A. M. Berman, Ed. PLDI '98. ACM Press, New York, NY, 130-141.
Conte, T. M., Menezes, K. N., and Hirsch, M. A. 1996. Accurate and practical profile-driven compilation using the profile buffer. In Proceedings of the 29th Annual ACM/IEEE international Symposium on Microarchitecture (Paris, France, Dec. 2-4, 1996). International Symposium on Microarchitecture. IEEE Computer Society, Washington, DC, 36-45.
Conte, T. M., Patel, B. A., and Cox, J. S. 1994. Using branch handling hardware to support profile-driven optimization. In Proceedings of the 27th Annual international Symposium on Microarchitecture (San Jose, California, United States, Nov. 30-Dec. 2, 1994). MICRO 27. ACM Press, New York, NY, 12-21.
Fisher, J.A., “Trace Scheduling: A Technique for Global Microcode Compaction,” Computers, IEEE Transactions on, vol. C-30, No. 7pp. 478-490, Jul. 1981.
Chang, P. P., Mahlke, S. A., and Hwu, W. W. 1991. Using profile information to assist classic code optimizations, Softw. Pract. Exper. 21, 12 (Dec. 1991), 1301-1321.
Schmidt et al. “Profile-directed restructuring of operating system code”, 1998, IBM Systems Journal, vol. 37, No. 2, pp. 270-297.
Aho et al. “Compilers: Principles, Techniques, and Tools”, 1988, Addison-Wesley, pp. 488-497.
Cohen et al., “Hardware-Assisted Characterization of NAS Benchmarks”, Cluster Computing, V I. 4, No. 3, Jul. 2001, pp. 189-196.
Talla et al., “Evaluating Signal Processing and Multimedia Applications on SIMD, VLIW and Sup r Scalar Architectures”, International Conference on Computer Design, Austin, Sep. 17-20, 2000, pp. 163-172.
Iwasawa et al., “Parallelization Method of Fortran DO Loops by Parallelizing Assist System”, Transactions of Information Processings Society of Japan, vol. 36, No. 8, Aug. 1995, pp. 1995-2006.
Talla et al., “Execution Characteristics of Multimedia Applications on a Pentium II Processor”, IEEE International Performance, Computing, and Communications Conference, 19th, Phoenix, F b. 20-22, 2000, pp. 516-524.
IBM Research Disclosure Bulletin 444188, “Enable Debuggers as an Objective Performanc Measurement Tool for Software Development Cost Reduction”, Apr. 2001, pp. 686-688.
U.S. Appl. No. 09/435,069, Davidson et al., Method and Apparatus for Instruction Sampling for Performance Monitoring and Debug, filed Nov. 4, 1999.
U.S. Appl. No. 08/538,071, Gover et al., Method and System for Selecting and Distinguishing an Event Sequence using an Effective Address in a Pr cessing System, filed Oct. 2, 1995.
INTEL, “INTEL IA-64 Architecture Software Developer's Manual”, Revision 1.1, vol. 4, No. 245320.002, Jul. 2001.
DeWitt, Jr. Jimmie Earl
Levine Frank Eliot
Richardson Christopher Michael
Urquhart Robert John
Dam Tuan
Glanzman Gerald H.
Rodriguez Herman
Rutten Derek J.
Yee Duke W.
LandOfFree
Autonomic method and apparatus for local program code... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Autonomic method and apparatus for local program code..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Autonomic method and apparatus for local program code... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3824217