NISC
NISC
NISC
Daniel D. Gajski
Mehrdad Reshadi
Center for Embedded Computer Systems
University of California, Irvine
Irvine, CA 92697-3425, USA
{gajski, reshadi}@cecs.uci.edu
1
NISC Application and Advantages
Daniel D. Gajski
Mehrdad Reshadi
Center for Embedded Computer Systems
University of California, Irvine
Irvine, CA 92697-3425, USA
{gajski, reshadi}@cecs.uci.edu
Introduction
With complexities of Systems-on-Chip rising almost daily, the design community has
been searching for new methodology that can handle given complexities with increased
productivity and decreased times-to-market. The obvious solution that comes to mind is
increasing levels of abstraction, or in other words, increasing the size of the basic building
blocks. However, it is not clear how many of these building blocks we need and what
these basic blocks should be. Obviously, the necessary building blocks are processors
and memories. One interesting question is: “Are they sufficient?”. The other interesting
question is: “How many types of processors and memories do we really need?”. In this
report we try to answer both of these questions and argue that the No-instruction-set
computer (NISC) is a single, necessary and sufficient processor component for design of
any digital system.
2
NISC Benefits
NISC Benefits
NISC technology is an enabler for the IP market. It provides a common microarchitecture, compiler and
simulator for all IPs. Each IP can be implemented as a NISC.
NISC is an ultimate reconfigurable component since its microarchitecture is defined by connectivity of RTL
components such as registers, register files, memories, ALUs, shifters, buses and others. Therefore, any
NISC can be reconfigured at any time.
NISC represents a new processor technology since it eliminates the instruction set, the last interpretation
step between the programming language and the hardware that executes it.
Since any component can be implemented as NISC, any platform can be built from standard processors,
memories and NISCs.
3
CISC vs. RISC vs. NISC
PC
PC
PC
PM
PM DM DM PM DM
mPC IR
4
NISC styles
PC
SR SR
PM DM
Logic Logic
Data Data
path path
NISC styles
5
NISC for IP Technology
6
NISC Customization for DCT
ld
clr C0 in
• Speedup: 16 511 7
ra
RF2
r
>= =
status
out
7
One Standard NISC Compiler / Simulator
Application
compiler/simulator
• One set of tools is enough for NISC
Processor
all NISCs Model
Compilation Simulation
Control
NISC Hardware
Words
8
NISC Reconfigurability
9
NISC Extensions
1 2
ASIC FPGA
Fixed Reconfigurable
Fast Slower
Copyright 2004 CECS 10
10
NISC for Processor Cores
• Better performance
• NISC style RISC runs two times faster than standard
RISC with a similar data path
• Same compiler / simulator for all NISCs
• 2X in Running legacy source code
• Re-compiled for NISC to control words
• Running legacy binary code
• Instructions decoded dynamically or statically
• Design simplicity
• Controller complexity goes into compiler
– E.g. Data/Structural/Control dependency check, renaming, …
algorithms are implemented in software rather than hardware
11
Performance improvements with NISC Style
• Example performance
• Instruction-set based RISC
DCT Sort (n element) Bdist (block 16*h)
8374 cycles 5n2 cycles 638h cycles Data path Register File
CWR
DCT Sort (n element) Bdist (block 16*h)
4737 cycles 4.5n2 cycles 590h cycles ALSU MUL
• Customized NISC AR DR P
(similar components as above, different connectivity)
DCT Sort (n element) Bdist (block 16*h) status
518 cycles 0.5n2 cycles 98h cycles
NISC processor with same components and similar connectivity can execute the same code faster since
instruction set does not limit parallelism available in the code.
For example, while DCT takes about 8000 cycles to run on RISC, it takes 4000 cycles to run on the same
data path controlled by NISC control words.
The performance improvement depends on the compatibility of the data path with the application behavior.
For example, on a NISC style RISC with the same components and connectivity as of an instruction-set
based RISC, a sort algorithm and the Bdist function (a core function in mpeg2 encoder) run only 1.1 times
faster. However, on customized data paths with similar components but different connectivity, DCT, sort
and Bdist run 16, 10 and 6.5 times faster than their RISC versions, respectively.
12
Running Legacy Source Code
Legacy
Source Code
NISC
Compiler
CW Control
Memory Word
If a legacy application is in the form of source code, it can be compiled into compact and optimized control
words by the NISC compiler. This control values will be loaded into the control memory of the NISC
controller in order to execute the application on the datapath.
13
Running Legacy Binary Code
Instruction
Memory
Legacy
• Simple table lookup Binary
Statically before run time
• Performed by software
• Some optimizations are possible Lookup
Table
• Control-word memory (in bits) is larger
than the original instruction memory
Dynamically at run time CW Control
Memory
• Performed by hardware Word
• No optimizations possible
Controller Data path
• Control-word memory is replaced by
lookup table (functions as decoder)
– Better memory usage
14
Conclusion
Conclusion
The NISC processor is the single, necessary and sufficient computational component for design of
systems-on-chip (memory is the other necessary and sufficient storage component). NISC is a set
of components with different datapaths or controllers and one compiler/simulator.
NISC unifies several concepts from processor architecture, compilers and register-transfer
synthesis into one unique concept. Therefore, it simplifies design, education, CAD, testing, IP
trade and other aspects of traditional design.
NISC can be reconfigured and reprogrammed statically and dynamically to satisfy power,
performance, cost, reliability and other constraints.
Such programmability allows a NISC to emulate other instruction sets.
Since the instruction set is eliminated the C code compiles directly into hardware. There is no
unnecessary interpretation between C code and hardware, which allows a NISC to execute any
code as fast as semiconductor technology will allow it. In other words, NISC offers the fastest
execution of any computer program.
15