Field-programmable object array

Last updated

A field-programmable object array (FPOA) is a class of programmable logic devices designed to be modified or programmed after manufacturing. They are designed to bridge the gap between ASIC and FPGA. They contain a grid of programmable silicon objects. Arrix range of FPOA contained three types of silicon objects: arithmetic logic units (ALUs), register files (RFs) and multiply-and-accumulate units (MACs). Both the objects and interconnects are programmable.

Contents

Motivation and history

The device was intended to bridge the gap between field-programmable gate arrays (FPGAs) and application-specific integrated circuits (ASICs). The design goal was to combine the programmability of FPGAs and the performance of ASICs. FPGAs, although programmable, lack performance; they may only be clocked to few hundreds of megahertz and most FPGAs operated below 100 MHz.[ when? ] FPGAs did not offer deterministic timing and the maximum operating frequency depends on the design. ASICs offered good performance, but they could not be modified and they were very costly. The FPOA had a programmable architecture, deterministic timing, and gigahertz performance. The FPOA was designed by Douglas Pihl who had this idea when working on a DARPA funded project. [1] He founded MathStar in 1997 to manufacture FPOAs and the idea was patented in 2004. The first FPOA prototypes were made in 2005 and first batch of FPOA chips were fabricated in 2006. [2]

Architecture

Simplified illustration of FPOA architecture. The area between the rectangles forms peripheral circuitry and the oval around the object interface it to the rest of FPOA. FPOA architecture illustration.png
Simplified illustration of FPOA architecture. The area between the rectangles forms peripheral circuitry and the oval around the object interface it to the rest of FPOA.

FPOAs have a core grid of silicon objects or core objects. These objects are connected through a synchronous interconnect. Each core object also has a supporting structures for clock synchronization, BIST and the like. The core is surrounded by peripheral circuitry that contains memory and I/O. An interface circuitry connects the objects to rest of FPOA. Exact number of each type of object and its arrangement are specific to a given family. There are two types of communication: nearest member and "party-line". Nearest member is used to connect a core to nearest core object and party line is used to connect remote objects. There are 8 nearest neighbor interconnects per object and offers transmission speed on one object hop per clock cycle. There are 10 party line interconnect per object that offers transmission speed of four object hops per clock cycle. [3]

Applications

FPOAs may be used almost anywhere an FPGA is used, broadly in all hardware acceleration tasks including digital signal processing, medical imaging, computer vision, speech recognition, cryptography, bioinformatics, computer hardware emulation, and aerospace. Since FPOAs are built around fast and optimized silicon objects, they offer higher performance in flat field error correction, fast Fourier transform computation, medical imaging, machine vision, image encoding and decoding, video encoding and decoding and artificial intelligence acceleration to name a few. [4]

Development on FPOA

In FPOA we work at silicon object level a higher level than the gate level used in FPGA. This eases the learning curve and also speeds up development. Programming is done in System C. The Arrix family released in 2006 was supported by FPOA design software, which enabled designers to create, verify, program and debug their algorithms on the devices. Summit Design's Visual Elite tool was used for behavioural simulation. MathStar's COAST (COnnection and ASsignment Tool) offered a graphical environment for floor-planning and placement it compiled to an intermediate code that maps to hardware resources. The Object compiler generated the file to be loaded into the FPGA. [5] In 2007 MathStar struck a partnership with mentor graphics and subsequent release use Visual Elite editor from Mentor Graphics for behavioural simulation and functional verification. [6] FPOAs also offered IP core library IP partners included professionals in the video market as well as machine vision market.

Present status

MathStar the producer of FPOAs never posted a profit and the company decided to shut down production in May 2008. [7] MathStar was merged into Sajan Inc. in 2010 and Sajan thus acquired MathStar's patent including that of FPOAs. In November 2011, Sajan sold several of MathStar's patent including some on FPOAs to OLK Grun GmbH. [8]

Related Research Articles

Processor design is a subfield of computer science and computer engineering (fabrication) that deals with creating a processor, a key component of computer hardware.

<span class="mw-page-title-main">Field-programmable gate array</span> Array of logic gates that are reprogrammable

A field-programmable gate array (FPGA) is a type of configurable integrated circuit that can be repeatedly programmed after manufacturing. FPGAs are a subset of logic devices referred to as programmable logic devices (PLDs). They consist of an array of programmable logic blocks with a connecting grid, that can be configured "in the field" to interconnect with other logic blocks to perform various digital functions. FPGAs are often used in limited (low) quantity production of custom-made products, and in research and development, where the higher cost of individual FPGAs is not as important, and where creating and manufacturing a custom circuit wouldn't be feasible. Other applications for FPGAs include the telecommunications, automotive, aerospace, and industrial sectors, which benefit from their flexibility, high signal processing speed, and parallel processing abilities.

<span class="mw-page-title-main">Programmable logic device</span> Reconfigurable digital circuit element

A programmable logic device (PLD) is an electronic component used to build reconfigurable digital circuits. Unlike digital logic constructed using discrete logic gates with fixed functions, the function of a PLD is undefined at the time of manufacture. Before the PLD can be used in a circuit it must be programmed to implement the desired function. Compared to fixed logic devices, programmable logic devices simplify the design of complex logic and may offer superior performance. Unlike for microprocessors, programming a PLD changes the connections made between the gates in the device.

<span class="mw-page-title-main">System on a chip</span> Micro-electronic component

A system on a chip or system-on-chip is an integrated circuit that integrates most or all components of a computer or electronic system. These components usually include an on-chip central processing unit (CPU), memory interfaces, input/output devices and interfaces, and secondary storage interfaces, often alongside other components such as radio modems and a graphics processing unit (GPU) – all on a single substrate or microchip. SoCs may contain digital and also analog, mixed-signal and often radio frequency signal processing functions.

<span class="mw-page-title-main">Parallel computing</span> Programming paradigm in which many processes are executed simultaneously

Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. There are several different forms of parallel computing: bit-level, instruction-level, data, and task parallelism. Parallelism has long been employed in high-performance computing, but has gained broader interest due to the physical constraints preventing frequency scaling. As power consumption by computers has become a concern in recent years, parallel computing has become the dominant paradigm in computer architecture, mainly in the form of multi-core processors.

<span class="mw-page-title-main">Application-specific integrated circuit</span> Integrated circuit customized for a specific task

An application-specific integrated circuit is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficiency video codec. Application-specific standard product chips are intermediate between ASICs and industry standard integrated circuits like the 7400 series or the 4000 series. ASIC chips are typically fabricated using metal–oxide–semiconductor (MOS) technology, as MOS integrated circuit chips.

Reconfigurable computing is a computer architecture combining some of the flexibility of software with the high performance of hardware by processing with flexible hardware platforms like field-programmable gate arrays (FPGAs). The principal difference when compared to using ordinary microprocessors is the ability to add custom computational blocks using FPGAs. On the other hand, the main difference from custom hardware, i.e. application-specific integrated circuits (ASICs) is the possibility to adapt the hardware during runtime by "loading" a new circuit on the reconfigurable fabric, thus providing new computational blocks without the need to manufacture and add new chips to the existing system.

Cray Inc., a subsidiary of Hewlett Packard Enterprise, is an American supercomputer manufacturer headquartered in Seattle, Washington. It also manufactures systems for data storage and analytics. Several Cray supercomputer systems are listed in the TOP500, which ranks the most powerful supercomputers in the world.

<span class="mw-page-title-main">Gate array</span> Type of integrated circuit

A gate array is an approach to the design and manufacture of application-specific integrated circuits (ASICs) using a prefabricated chip with components that are later interconnected into logic devices according to custom order by adding metal interconnect layers in the factory. It was popular during the upheaval in the semiconductor industry in the 1980s, and its usage declined by the end of the 1990s.

<span class="mw-page-title-main">Xilinx</span> American technology company

Xilinx, Inc. was an American technology and semiconductor company that primarily supplied programmable logic devices. The company is renowned for inventing the first commercially viable field-programmable gate array (FPGA). It also pioneered the first fabless manufacturing model.

The MicroBlaze is a soft microprocessor core designed for Xilinx field-programmable gate arrays (FPGA). As a soft-core processor, MicroBlaze is implemented entirely in the general-purpose memory and logic fabric of Xilinx FPGAs.

In electronic design, a semiconductor intellectual property core, IP core or IP block is a reusable unit of logic, cell, or integrated circuit layout design that is the intellectual property of one party. IP cores can be licensed to another party or owned and used by a single party. The term comes from the licensing of the patent or source code copyright that exists in the design. Designers of system on chip (SoC), application-specific integrated circuits (ASIC) and systems of field-programmable gate array (FPGA) logic can use IP cores as building blocks.

<span class="mw-page-title-main">Hardware acceleration</span> Specialized computer hardware

Hardware acceleration is the use of computer hardware designed to perform specific functions more efficiently when compared to software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calculated in software running on a generic CPU can also be calculated in custom-made hardware, or in some mix of both.

This is a glossary of terms used in the field of Reconfigurable computing and reconfigurable computing systems, as opposed to the traditional Von Neumann architecture.

Ambric, Inc. was a designer of computer processors that developed the Ambric architecture. Its Am2045 Massively Parallel Processor Array (MPPA) chips were primarily used in high-performance embedded systems such as medical imaging, video, and signal-processing.

A massively parallel processor array, also known as a multi purpose processor array (MPPA) is a type of integrated circuit which has a massively parallel array of hundreds or thousands of CPUs and RAM memories. These processors pass work to one another through a reconfigurable interconnect of channels. By harnessing a large number of processors working in parallel, an MPPA chip can accomplish more demanding tasks than conventional chips. MPPAs are based on a software parallel programming model for developing high-performance embedded system applications.

Field-programmable gate array prototyping, also referred to as FPGA-based prototyping, ASIC prototyping or system-on-chip (SoC) prototyping, is the method to prototype system-on-chip and application-specific integrated circuit designs on FPGAs for hardware verification and early software development.

Computing with Memory refers to computing platforms where function response is stored in memory array, either one or two-dimensional, in the form of lookup tables (LUTs) and functions are evaluated by retrieving the values from the LUTs. These computing platforms can follow either a purely spatial computing model, as in field-programmable gate array (FPGA), or a temporal computing model, where a function is evaluated across multiple clock cycles. The latter approach aims at reducing the overhead of programmable interconnect in FPGA by folding interconnect resources inside a computing element. It uses dense two-dimensional memory arrays to store large multiple-input multiple-output LUTs. Computing with Memory differs from Computing in Memory or processor-in-memory (PIM) concepts, widely investigated in the context of integrating a processor and memory on the same chip to reduce memory latency and increase bandwidth. These architectures seek to reduce the distance the data travels between the processor and the memory. The Berkeley IRAM project is one notable contribution in the area of PIM architectures.

Heterogeneous computing refers to systems that use more than one kind of processor or core. These systems gain performance or energy efficiency not just by adding the same type of processors, but by adding dissimilar coprocessors, usually incorporating specialized processing capabilities to handle particular tasks.

In computing, a logic block or configurable logic block (CLB) is a fundamental building block of field-programmable gate array (FPGA) technology. Logic blocks can be configured by the engineer to provide reconfigurable logic gates.

References

  1. "Computational vision: Testing MathStar’s field-programmable object arrays". EDN Networks, August 14, 2013.
  2. "Radiation Hardened FPOA for space processing" (PDF). MAFA 2007. Retrieved August 14, 2013.
  3. "Patent application 0070247189". US Patent and Trademark Office. Archived from the original on August 17, 2013. Retrieved August 14, 2013.
  4. "Computational vision: Testing MathStar's field-programmable object arrays". EDN Networks. Retrieved August 14, 2013.
  5. "Device Spotlight:MathStar Arrix FPOA". nuvation. Archived from the original on June 13, 2012. Retrieved August 14, 2013.
  6. "Mentor, MathStar partner on FPOA design tools". EE Times. Retrieved August 14, 2013.
  7. MathStar seems to have gone dark, StarTribute, archived from the original on August 15, 2013, retrieved August 14, 2013
  8. "Sajan announces sale of former MathStar intellectual-property". Sajan. Archived from the original on March 19, 2012. Retrieved August 14, 2013.