U.S. patents available from 1976 to present.
U.S. patent applications available from 2005 to present.

Icon_funbox Did You Know...

...that Kleenex tissue was originally designed to be a gas mask filter? It was developed at the beginning of World War I to replace cotton, which was then in short supply as a surgical dressing.

Newsletter  PatentStorm News

Make the Most of PatentStorm

See this month's Top Inventors and Most Cited Patents.

Stay on top of the latest patents by subscribing to an RSS feed.

Got questions? Ask a Patent Expert!

Registered users: Manage your profile, comments and alerts.

 

US Patent 7373642 - Defining instruction extensions in a standard programming language

US Patent Issued on May 13, 2008
Estimated Patent Expiration Date: Icon_subject July 29, 2023Estimated Expiration Date is calculated based on simple USPTO term provisions. It does not account for terminal disclaimers, term adjustments, failure to pay maintenance fees, or other factors which might affect the term of a patent.
loading...


View Patent Images (PDF)
(Registered users only)

Abstract

A method is provided for modifying a program written in a standard programming language so that when the program is compiled both an executable file is produced and an instruction is programmed into a programmable logic device of a processor system. The method includes identifying a critical code segment of a program, rewriting the critical code segment as a function, revising the program, and compiling the program. Revising the program includes designating the function as code to be compiled by an extension compiler and replacing the critical code segment of the program with a statement that calls the function. Compiling the program includes compiling the code with an extension compiler to produce a header file and the instruction for the programmable logic device. Compiling the program also includes using a standard compiler to compile the remainder of the program together with the header file to generate the executable file.

Other References

  • Kai Hwang, “Advanced Computer Architecture: Parallelism, Scalability, Programmability,” 1st Edition, Chapter 2, pp. 75-97, copyright 1993, McGraw-Hill, Inc., USA.
  • U.S. Appl. No. 10/746,018, filed Dec. 23, 2003, Rupp et al.
  • Elliot Waingold et al., “Baring It All to Software: Raw Machines,” Computer, Sep. 1997, 1997 IEEE, pp. 86-93.
  • Michael Bedford Taylor et al., “The Raw Microprocessor: A Computational Fabric for Software Circuits and General-Purpose Programs,” Mar.-Apr. 2002, IEEE Micro, pp. 25-35.
  • Pedro Diniz, et al. “Automatic Synthesis of Data Storage and Control Structures for FPGA-based Computing Engines,” 2000 IEEE, pp. 91-100.
  • Razdan, Rahul and Michael D. Smith, “A High-Performance Michroarchitecture with Hardware-Programmable Functional Units,” Nov. 1994, Proc. of MICRO-27, pp. 1-9.
  • Borgatti, Michele et al., “A Reconfigurable System featuring Dynamically Extensible Embedded Microprocessor, FPGA and Customisable I/O,” 2002, IEEE Custom Integrated Circuits Conference, pp. 1-4.
  • MIPS Technologies Inc., “MIPS Extension for Digital Media with 3D,” 1996, pp. 1-26.
  • Ye, Z.A. et al., “Chimaera: a high-performance architecture with a tightly-coupled reconfigurable functional unit,” Jun. 10-14, 2000, Proc. of the 27th International Symposium on Computer Architecture, pp. 225-235.
  • Hwang, Kai, “Advanced Computer Architecture: Parallelism, Scalability, Programmability,” 1993, McGraw Hill, pp. 182-183.
  • Intel and Hewlett-Packard, “IA-64 Application Instruction Set Architecture Guide,” Revision 1.0, 1999, pp. C-1 through C.
  • Garlan, David and Mary Shaw, “An Introduction to Software Architecture,” Jan. 1994, CMU-CS-94-166, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA.
  • Dally, William J. and Charles L. Seitz, “Deadlock Free Message Routing In Multiprocessor Interconnection Networks,” May 10, 1985, Computer Science Department, California Institute of Technology.
  • Golestani, S. Jamaloddin, “A Sto-and-Go Queuing Framework for Congestion Management,” 1990,Proc. of the ACM Symposium on Communications Architectures & Protocols, ACM Press, New York, NY, pp. 8-18.
  • Scott, Steven L. and Gregory M. Thorson, “The Cray T3E Network: Adaptive Routing in a High Performance 3D Torus,” Aug. 15-16, 1996, HOT Interconnects IV, Stanford University.
  • Goldblatt, Kim, “The Low-Cost, Efficient Serial Configuration of Spartan FPGAs,” Nov. 13, 1998, XAPP098 (Version 1.0), XILINX.
  • Lee, K.C., “A Virtual Bus Architecture for Dynamic Parallel Processing,” Feb. 1993, IEEE Transaction on Parallel and Undistributed Systems, vol. 4, No. 2, pp. 121-130.
  • Hennessy, John L. and David A. Patterson, “Computer Organization and Design: The Hardware/Software Interface,” 1998, 2nd edition, Morgan Kaufmann Publishers, Inc., San Francisco, CA, p. 345.
  • Tanenbaum, Andrews S., “Modern Operating Systems,” 2001, 2nd edition, Prentice Hall, New Jersey, p. 31.
  • Dehon, Andre, “Transit Note #118 Notes on Coupling Processors with Reconfigurable Logic,” M.I.T. Transit Project, Last Updated March 21, 1995.
  • Barat, Francisco and Rudy Lauwereins, “Reconfigurable Instruction Set Processors: A Survey,” 2000, IEEE 0-7695-0668-2/00.
  • Borkar et al., “iWarp: An Integrated Solution to High-Speed Parallel Computing, ” 1988, IEEE CH2617-9/88/0000/03300.
  • U.S. Appl. No. 11/204,555, Jeffrey M. Arnold, Programmable Logic Configuration for Instruction Extensions, filed Aug. 15, 2005.
  • U.S. Appl. No. 11/099,280, Jeffrey M. Arnold, Video Processing System with Reconfigurable Instructions, filed Apr. 4, 2005.
  • U.S. Appl. No. 11/129,146, Ricardo Gonzalez, Long Instruction Word Processing with Instruction Extensions, filed May 12, 2005.
  • U.S. Appl. No. 11/021,247, Ricardo Gonzalez, Systems and Methods for Selecting Input/Output Configuration in an Integrated Circuit, filed Dec. 21, 2004.
  • U.S. Appl. No. 10/815,453, Ricardo Gonzalez, Configuring a Multi-Processor System, filed Mar. 31, 2004.
  • U.S. Appl. No. 10/750,714, Ricardo Gonzalez, Systems and Methods for Software Extensible Multi-Processing, filed Dec. 31, 2003.
  • U.S. Appl. No. 10/686,882, Kenneth Williams, Instruction Set for Efficient Bit Stream and Byte Stream I/O, filed Oct. 15, 2003.
  • U.S. Appl. No. 10/404,706, Scott D. Johnson, Extension Adapter, filed Mar. 31, 2003.
  • Bechade, R.A. et al., “Programmable Arithmetic/Logic Circuits,” IBM Technical Disclosure Bulletin, U.S. IBM Corp., New York, vol. 3, No. 11, Apr. 1981, pp. 4870-4873, XP-000713711.
  • Beeck et al., “Crisp: A Template for Reconfigurable Instruction Set Processors,” FPL 2001, LNCS 2147, pp. 296-305, Springer-Verlag Berlin Heidelberg, 2001.

Inventors

Assignee

Application

No. 10630542 filed on 07/29/2003

US Classes:

717/160, Including loop717/146, Including intermediate code717/150, Loop compiling717/159, Code restructuring717/131, Including analysis of program execution717/154, Including analysis of program710/200, ACCESS LOCKING717/151, Optimization714/38Of computer software

Field of Search

717/159Code restructuring

Examiners

Primary: Dam, Tuan Q.
Assistant: Tecklu, Isaac

Attorney, Agent or Firm

US Patent References

4635261, On chip test system for configurable gate arrays
Issued on: 01/06/1987
Inventor: Anderson ,   et al.
4766569, Programmable logic array
Issued on: 08/23/1988
Inventor: Turner ,   et al.
4893311, CMOS implementation of a built-in self test input generator (BISTIG)
Issued on: 01/09/1990
Inventor: Hunter, et al.
5055997, System with plurality of processing elememts each generates respective instruction based upon portions of individual word received from a crossbar switch
Issued on: 10/08/1991
Inventor: Sluijter, et al.
5247689, Parallel digital processor including lateral transfer buses with interrupt switches to form bus interconnection segments
Issued on: 09/21/1993
Inventor: Ewert
5258668, Programmable logic array integrated circuits with cascade connections between logic modules
Issued on: 11/02/1993
Inventor: Cliff, et al.
5260610, Programmable logic element interconnections for programmable logic array integrated circuits
Issued on: 11/09/1993
Inventor: Pedersen, et al.
5260611, Programmable logic array having local and long distance conductors
Issued on: 11/09/1993
Inventor: Cliff, et al.
5274581, Look up table implementation of fast carry for adders and counters
Issued on: 12/28/1993
Inventor: Cliff, et al.
5274782, Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks
Issued on: 12/28/1993
Inventor: Chalasani, et al.
5293489, Circuit arrangement capable of centralizing control of a switching network
Issued on: 03/08/1994
Inventor: Furui, et al.
5299317, Method and apparatus for simulating an interconnection network
Issued on: 03/29/1994
Inventor: Chen, et al.
5343406, Distributed memory architecture for a configurable logic array and method for using distributed memory
Issued on: 08/30/1994
Inventor: Freeman, et al.
5357152, Logic system of logic networks with programmable selected functions and programmable operational controls
Issued on: 10/18/1994
Inventor: Jennings, III, et al.
5361373, Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
Issued on: 11/01/1994
Inventor: Gilson
5414377, Logic block with look-up table for configuration and memory
Issued on: 05/09/1995
Inventor: Freidin
5426378, Programmable logic device which stores more than one configuration and means for switching configurations
Issued on: 06/20/1995
Inventor: Ong
5436574, Universal logic module with arithmetic capabilities
Issued on: 07/25/1995
Inventor: Veenstra
5471628, Multi-function permutation switch for rotating and manipulating an order of bits of an input data byte in either cyclic or non-cyclic mode
Issued on: 11/28/1995
Inventor: Phillips, et al.
5488612, Method and apparatus for field testing field programmable logic arrays
Issued on: 01/30/1996
Inventor: Heybruck
5517627, Read and write data aligner and method
Issued on: 05/14/1996
Inventor: Petersen
5535406, Virtual processor module including a reconfigurable programmable matrix
Issued on: 07/09/1996
Inventor: Kolchinsky
5619665, Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture
Issued on: 04/08/1997
Inventor: Emma
5636224, Method and apparatus for interleave/de-interleave addressing in data communication circuits
Issued on: 06/03/1997
Inventor: Voith, et al.
5652875, Implementation of a selected instruction set CPU in programmable hardware
Issued on: 07/29/1997
Inventor: Taylor
5682493, Scoreboard table for a counterflow pipeline processor with instruction packages and result packages
Issued on: 10/28/1997
Inventor: Yung, et al.
5684980, FPGA virtual computer for executing a sequence of program instructions by successively reconfiguring a group of FPGA in response to those instructions
Issued on: 11/04/1997
Inventor: Casselman
5696956, Dynamically programmable reduced instruction set computer with programmable processor loading on program number field and program number register contents
Issued on: 12/09/1997
Inventor: Razdan, et al.
5726584, Virtual high density programmable integrated circuit having addressable shared memory cells
Issued on: 03/10/1998
Inventor: Freidin
5742180, Dynamically programmable gate array with multiple contexts
Issued on: 04/21/1998
Inventor: DeHon, et al.
5784636, Reconfigurable computer architecture for use in signal processing applications
Issued on: 07/21/1998
Inventor: Rupp
5819064, Hardware extraction technique for programmable reduced instruction set computers
Issued on: 10/06/1998
Inventor: Razdan, et al.
5822588, System and method for checking the use of synchronization locks in a multi-threaded target program
Issued on: 10/13/1998
Inventor: Sterling, et al.
5847578, Programmable multiplexing input/output port
Issued on: 12/08/1998
Inventor: Noakes, et al.
5850564, Scalable multiple level tab oriented interconnect architecture
Issued on: 12/15/1998
Inventor: Ting, et al.
5920202, Configurable logic element with ability to evaluate five and six input functions
Issued on: 07/06/1999
Inventor: Young, et al.
5926036, Programmable logic array circuits comprising look up table implementation of fast carry adders and counters
Issued on: 07/20/1999
Inventor: Cliff, et al.
5956518, Intermediate-grain reconfigurable processing device
Issued on: 09/21/1999
Inventor: DeHon, et al.
5963050, Configurable logic element with fast feedback paths
Issued on: 10/05/1999
Inventor: Young, et al.
5977793, Programmable logic device with hierarchical interconnection resources
Issued on: 11/02/1999
Inventor: Reddy, et al.
5982195, Programmable logic device architectures
Issued on: 11/09/1999
Inventor: Cliff, et al.
5986465, Programmable logic integrated circuit architecture incorporating a global shareable expander
Issued on: 11/16/1999
Inventor: Mendel
5999734, Compiler-oriented apparatus for parallel compilation, simulation and execution of computer programs and hardware models
Issued on: 12/07/1999
Inventor: Willis, et al.
6092174, Dynamically reconfigurable distributed integrated circuit processor and method
Issued on: 07/18/2000
Inventor: Roussakov
6167502, Method and apparatus for manifold array processing
Issued on: 12/26/2000
Inventor: Pechanek, et al.
6219628, System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations
Issued on: 04/17/2001
Inventor: Kodosky, et al.
6237079, Coprocessor interface having pending instructions queue and clean-up queue and dynamically allocating memory
Issued on: 05/22/2001
Inventor: Stoney
6292388, Efficient and robust random access memory cell suitable for programmable logic configuration control
Issued on: 09/18/2001
Inventor: Camarota
6343337, Wide shifting in the vector permute unit
Issued on: 01/29/2002
Inventor: Dubey, et al.
6353841, Reconfigurable processor devices
Issued on: 03/05/2002
Inventor: Marshall, et al.
6374403, Programmatic method for reducing cost of control in parallel processes
Issued on: 04/16/2002
Inventor: Darte, et al.
6415424, Multiprocessor system with a high performance integrated distributed switch (IDS) controller
Issued on: 07/02/2002
Inventor: Arimilli, et al.
6418045, Efficient and robust random access memory cell suitable for programmable logic configuration control
Issued on: 07/09/2002
Inventor: Camarota
6426648, Carry lookahead for programmable logic array
Issued on: 07/30/2002
Inventor: Rupp
6557092, Programmable ALU
Issued on: 04/29/2003
Inventor: Callen
6622233, Hypercomputer
Issued on: 09/16/2003
Inventor: Gilson
6633181, Multi-scale programmable array
Issued on: 10/14/2003
Inventor: Rupp
6698015, Apparatus and method for improving performance of critical code execution
Issued on: 02/24/2004
Inventor: Moberg ,   et al.
6721884, System for executing computer program using a configurable functional unit, included in a processor, for executing configurable instructions having an effect that are redefined at run-time
Issued on: 04/13/2004
Inventor: De Oliveira Kastrup Pereira, et al.
6732354, Method, system and software for programming reconfigurable hardware
Issued on: 05/04/2004
Inventor: Ebeling, et al.
6744274, Programmable logic core adapter
Issued on: 06/01/2004
Inventor: Arnold, et al.
6795900, Method and system for storing data at input/output (I/O) interfaces for a multiprocessor system
Issued on: 09/21/2004
Inventor: Miller, et al.
6799236, Methods and apparatus for executing code while avoiding interference
Issued on: 09/28/2004
Inventor: Dice, et al.
6817013, Program optimization method, and compiler using the same
Issued on: 11/09/2004
Inventor: Tabata, et al.
6831690, Electrical sensing apparatus and method utilizing an array of transducer elements
Issued on: 12/14/2004
Inventor: John, et al.
6857110, Design methodology for merging programmable logic into a custom IC
Issued on: 02/15/2005
Inventor: Rupp, et al.
6874110, Apparatus and method for self testing programmable logic arrays
Issued on: 03/29/2005
Inventor: Camarota
6883084, Reconfigurable data path processor
Issued on: 04/19/2005
Inventor: Donohoe
6954845, Reconfigurable instruction set computing
Issued on: 10/11/2005
Inventor: Arnold, et al.
6968544, Method for transformation of interface definitions and intermediate format tables thereof
Issued on: 11/22/2005
Inventor: Schneider
6996709, Method for configuring a configurable hardware block by configuring configurable connections provided around a given type of subunit
Issued on: 02/07/2006
Inventor: Arnold, et al.
7000211, System and method for efficiently mapping heterogeneous objects onto an array of heterogeneous programmable logic resources
Issued on: 02/14/2006
Inventor: Arnold
7062520, Multi-scale programmable array
Issued on: 06/13/2006
Inventor: Rupp
7086047, Determining hardware generated by high level language compilation through loop optimizations
Issued on: 08/01/2006
Inventor: Edwards, et al.
7178062Methods and apparatus for executing code while avoiding interference
Issued on: 02/13/2007
Inventor: Dice

Foreign Patent References

  • 0 507 507 EP 07/01/1992
  • 0 668 659 EP 08/01/1995
  • 1 443 417 EP 08/01/2004
  • 478252 TW 03/01/2002
  • 480818 TW 03/01/2002
  • 509798 TW 11/01/2002

International Class

G06F 9/44

Comments

No comments for this page
 
 
Forgot password?
Register here