| Application-Specific
Processor and IP Design Using No-Instruction-Set Computer (NISC) |
NISC is a new technology for designing custom processors and IPs.
NISC eliminates the instruction abstraction and gives the complete control of
hardware units to the compiler. The inputs of the NISC compiler are processor
datapath netlist and application C code. The output is control signal values of
hardware units at every cycle. My research on NISC include:
-
Designing a new XML-based Architecture Description Language (ADL) for
synthesis, simulation, and compilation of custom NISC processors. Once a new
NISC processor is capture in our ADL, the entire NISC toolset is retargeted for
that processor. The format is also extended for prototyping of multi-processor
systems on FPGA.
-
Developing a RTL generator software to produce synthesizable Verilog code for
custom processors described in our ADL. The RTL generator also facilitates fast
FPGA prototyping by producing FPGA cores for memory, dividers, and other
hardcore units.
-
Setting up case-studies using NISC: 2-D Discrete Cosine Transform (DCT), JPEG,
and MP3. The designs are implemented on a FPGA board.
-
Designing double-handshake master/slave bus interface for NISC. In multi-core
systems, each core must have proper hardware interface and software driver to
communicate with other cores. For NISC, we developed a double-handshake bus
interface.
NISC toolset is available online: http://www.cecs.uci.edu/~nisc
NISC prototypes for DCT are available here
.
|
| Software-level
Power Profiling |
Gate-level power estimators compute power of a circuit accurately,
but it takes days for them to run medium-size systems. Fast power profilers are
necessary for evaluation of design decisions in multi-core systems. Currently,
I’m working on fast power profiling of multi-core systems. My research in this
area include:
-
Developing power macro-models for RTL components and interconnects
-
Developing a fast power profiler for custom NISC processors
|
| System-Level
Power Management |
Dynamic power management and dynamic voltage scaling are essential
in reducing power consumption of systems. My research experience in this area
include:
-
Inter-task voltage selection for multi-processor real-time systems: In
DVS-enabled multi-processor systems, a voltage/frequency pair is selected for
each task, and tasks are scheduled on different processing elements to meet
timing constraints. Both scheduling and voltage selection affect the amount of
energy savings.
-
I developed two new stochastic algorithms for simultaneous scheduling and
voltage selection of dependent tasks on multi-processor systems. My algorithm
searches the discrete voltage space and generates up to 30% more energy saving
compared to the best continuous approach. Moreover, the run time of my
algorithm is two orders of magnitude faster than the fastest algorithm in
literature. I developed my algorithm in C++ and made it available online at:
http://www.ece.uci.edu/~bgorjiar/projects/DVS .
-
Dynamic power manager software for a multi-processor systems: Dynamic power
management is to turn off components that are idle (i.e. not used) and later
turned them back on when necessary.
-
I worked on development of dynamic power manager software for a
Software-Defined Radio (SDR) system with 24 processing elements. The goal of
our project was to use mission and system knowledge to prevent mispredictions
of traditional power managers. I modeled the system and application for dynamic
power management and developed a low-overhead simulation-based idle-time
predictor. According to the actual measurement on a SDR prototype designed by
Rockwell Collins Inc., up to 70% energy savings was achieved using our DPM for
a real-life application scenario.
-
I developed a simulation model of the SDR system using SystemC to evaluate
different power management algorithms on the system.
|
Publications
|
|