Research Summary
Processor based embedded
systems are the popular form of implementation for many signal processing applications. In
such systems, the processor is the main component. For such systems, processors need to
have certain charateristics (constraints). These characteristics aid in the efficient
design of such processors. Based on such charteristics, many state of the art processors
exist in the current technology.
But, with the development of FPGAs, new breed of processors are being investigated
called Reconfigurable Processors , some
for general purpose applications and some for specific application domain. Currently I am
investigating one such processor among that breed, called Reconfigurable Instruction Set
Processor for MPEG-4 like application domain.
What are Reconfigurable Processors?
If a processor (RISC/CISC) is coupled with a FPGA kind of logic(also called
Reconfigurable Logic), then its called a reconfigurable processor. Depending on
the place of coupling, the logic has certain behaviour. Like for eg,
- Co processor (reconfigurable logic placed on external bus)
- Accelerator (reconfigurable logic placed on memory bus)
- Functional unit (reconfigurable logic placed on datapath)
What are Reconfigurable Instruction Set Processors(RISP)?
A processor is usually designed based on an Instruction Set. An instruction Set
says, what are all the basic operations the processor is capable of doing. In all non
reconfigurable processors, this set is fixed when the processor is designed. But in the
RISP, at design time, the processor has
- certain fixed number of instructions and
- some undefined instructions
The undefined instructions are later defined at compile time, and these definitions could
vary from one application to another. The functionalites of these instructions are usually
made to run on the reconfigurable logic which is present in the processor as a functional
unit. Reconfigurable instruction set processors are a sub-class of
Reconfigurable Architectures.
What are Reconfigurable Architectures?
Traditionally, an architecture is defined as
- A description of the behaviour of
the processor that is independent of its implementation, known to an
assembly programmer to produce code.
But, due to the recent developments
in the processors (eg: VLIW) and the compilers, it is difficult
(almost impossible) to write a
program manually. So, without loosing the essence of the original definition,
the new definition of an architecture is as follows.
- A description of the
behaviour of the processor that is independent of its implementation, known to a
compiler to generate code.
With this definition of the architecture in mind, a Reconfigurable
Architecture is definied as
- An architecture, which explicitly indicates that, there are
different modes in which the processor can operate. And the processor
can be switched from one mode to another at runtime.
Examples
- A reconfigurable instruction set architecture. The architecture
clearly indicates that, the processor has multiple instruction sets(IS). The
processor can operate using any of those IS, and the processor can also be
switched from one IS to another IS.
- An architecture which explicitly indicates, that the processor
can operate in 32-bit mode or 16-bit mode, and the processor can be switched
from one mode to another at runtime.
Presentations
A comprehensive link, covering different research groups around the world
working on computer architectures.
Some Links to interesting groups, who are working on the Reconfigurable
Architectures
Some links to the Industry which is related to my work