A Structural Object Programming Model, Architecture, Chip and Tools for Reconfigurable Computing

A new platform for reconfigurable computing has an object-based programming model, with architecture, silicon and tools designed to faithfully realize this model. The platform is aimed at application developers using software languages and methodologies. Its objectives are massive performance, long-term scalability, and easy development. In our structural object programming model, objects are strictly encapsulated software programs running concurrently on an asynchronous array of processors and memories. They exchange data and control through a structure of self-synchronizing asynchronous channels. Objects are combined hierarchically to create new objects, connected through the common channel interface. The first chip is a 130nm ASIC with 360 32-bit processors, 360 1KB RAM banks with access engines, and a configurable word-wide channel interconnect. Applications written in Java and block diagrams compile in one minute. Sub-millisecond runtime reconfiguration is inherent.

[1]  Mike Butts,et al.  Synchronization through Communication in a Massively Parallel Processor Array , 2007, IEEE Micro.

[2]  Michel Crozier The Crisis of Complexity , 2001 .

[3]  Michael Butts,et al.  Molecular electronics: devices, systems and tools for gigagate, gigabit chips , 2002, IEEE/ACM International Conference on Computer Aided Design, 2002. ICCAD 2002..

[4]  Mike Butts,et al.  TeraOPS hardware: A new massively-parallel MIMD computing fabric IC , 2006, 2006 IEEE Hot Chips 18 Symposium (HCS).

[5]  Carl Ebeling,et al.  PathFinder: A Negotiation-Based Performance-Driven Router for FPGAs , 1995, Third International ACM Symposium on Field-Programmable Gate Arrays.

[6]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[7]  Pierre Marchal,et al.  Field-programmable gate arrays , 1999, CACM.

[8]  D. Marpe,et al.  Video coding with H.264/AVC: tools, performance, and complexity , 2004, IEEE Circuits and Systems Magazine.

[9]  Paul S. Zuchowski,et al.  A hybrid ASIC and FPGA architecture , 2002, ICCAD 2002.

[10]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[11]  Jani Lainema,et al.  Adaptive deblocking filter , 2003, IEEE Trans. Circuits Syst. Video Technol..

[12]  Edward A. Lee The problem with threads , 2006, Computer.

[13]  John Wawrzynek,et al.  BEE2: a high-end reconfigurable computing system , 2005, IEEE Design & Test of Computers.

[14]  Vivek Sarkar,et al.  Baring It All to Software: Raw Machines , 1997, Computer.

[15]  Michael R. Butts,et al.  A Structural Object Programming Model, Architecture, Chip and Tools for Reconfigurable Computing , 2007 .

[16]  M. Gokhale,et al.  FPGA computing in a data parallel C , 1993, [1993] Proceedings IEEE Workshop on FPGAs for Custom Computing Machines.

[17]  John Wawrzynek,et al.  Stream Computations Organized for Reconfigurable Execution (SCORE) , 2000, FPL.

[18]  Paul Chow,et al.  A Scalable FPGA-based Multiprocessor , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[19]  Vaughn Betz,et al.  Architecture and CAD for Deep-Submicron FPGAS , 1999, The Springer International Series in Engineering and Computer Science.

[20]  Christoforos E. Kozyrakis,et al.  RAMP: Research Accelerator for Multiple Processors , 2007, IEEE Micro.