SlideShare a Scribd company logo
1 of 5
Download to read offline
RISC-V OFFERS SIMPLE, MODULAR ISA
New CPU Instruction Set Is Open and Extensible
By David Kanter (March 28, 2016)
...................................................................................................................
March 2016© Microprocessor Report
RISC-V is a new general-purpose instruction-set archi-
tecture (ISA) that’s BSD licensed, extensible, and royalty
free. It’s clean and modular with a 32-, 64-, or 128-bit inte-
ger base and various optional extensions (e.g., floating
point). RISC-V is easier to implement than some alterna-
tives—minimal RISC-V cores are roughly half the size of
equivalent ARM cores—and the ISA has already gathered
some support from the semiconductor industry.
The ambitious goal of RISC-V (pronounced “risk
five”) is to create a “universal” instruction set that is free
and open to all users while providing the broad software
support of successful commercial ISAs (e.g., x86 and ARM).
Consider a modern smartphone processor, which typically
comprises a dozen or more cores with different software
stacks (e.g., an ARM application CPU, a GPU, three to five
different DSPs, and a power-management core). In theory,
they could all use variants of a single ISA and in many cases
reuse both hardware and software. RISC-V aims to offer a
practical option that could unify many of these cores under
one roof.
Driving its generic nature is the desire to serve all
markets, including microcontrollers as well as image,
graphics, and server processors. Thus, the ISA must be
consistent across microarchitectures, from an in-order sca-
lar design to a heavily out-of-order design. Similarly, it’s
intended to be suitable for nearly any implementation,
from FPGAs to synthesized macros to fully custom layouts.
Owing to the emerging interest in accelerators (see MPR
3/7/16, “Accelerating Machine Learning”), extensibility is
an essential part of universality.
Broad software support and extensibility are a tricky
combination, as software developers want a consistent tar-
get. For example, vector instructions are optional in ARMv7
and unwanted for many low-end implementations. But
when Tegra 2 omitted the Neon vector extensions, it created
substantial consternation in the Android ecosystem.
To address this issue, RISC-V defines a guaranteed
base integer instruction set of 32, 64, or 128 bits, a family of
optional and predefined extensions, and a mechanism for
creating variable-length extensions. The base ISA is cleanly
architected to simplify implementation. For example, the
instruction encoding is highly regular, and the memory
model is straightforward and lacks complicated memory
instructions. The benefit is that minimal RISC-V cores are
much smaller than similar ARM or x86 cores, although the
difference is not noticeable for more powerful cores (e.g.,
superscalar, out-of-order). To enable extensions, portions of
the instruction encoding space have already been set aside
for future use.
Academic Heritage, Commercial Aspirations
Krste Asanovi , Andrew Waterman, and Yunsup Lee de-
veloped the RISC-V architecture at UC Berkeley, with
input from David Patterson, in response to limitations of
existing ISAs (see MPR 8/18/14, “The Case for Open
Instruction Sets”). Although x86 and ARM are widely
available and supported, they are complex, and the licens-
ing model is difficult for experimental and academic use.
For example, modifying the RTL of ARM-supplied cores is
impossible, and even obtaining an x86 core is exceptionally
unlikely. Moreover, the instruction sets are overly compli-
cated for research, which focuses on exploring new con-
cepts rather than on compatibility.
Created in 2015, the RISC-V Foundation manages
the standard, creates compliance tests, and organizes the
community. It comprises industry leaders such as Google,
Mellanox, and Oracle as well as academic partners such as
the Indian Institutes of Technology. Several open-source
2 RISC-V Offers Simple, Modular ISA
March 2016© Microprocessor Report
processor cores are freely available online, including the
scalar five-stage “Rocket,” taking advantage of the permis-
sive and royalty-free BSD-style license.
Modular ISA Offers Many Options
Generally, RISC-V is a three-operand load-store architec-
ture that heavily emphasizes cleanliness and simplicity. As
Table 1 shows, it effectively has three base instruction sets
and six extensions. The base ISA plus MADF extensions
form a general-purpose ISA (sometimes known as the G ex-
tensions) that can readily handle scalar integer or floating-
point code.
The user programming model for RV32I is sparse; it
comprises the program counter (PC) and 32 integer
registers (x1–x31 and x0, which is hard wired to 0). It lacks
explicit return address registers, but x1 holds the return
address by convention.
RV32I has 47 integer instructions for loads, stores,
control transfer, arithmetic, and other functions (e.g., system
calls, fences, and certain counters). In addition, it has 14
privileged instructions for changing privilege level, traps,
and interrupts, as well as for accessing control and status
registers (CSRs) from a 12-bit address space.
To simplify decoding, the instruction encoding is
highly regular. Basic instructions are 32 bits long, as Figure 1
illustrates, and are naturally aligned. Four different instruc-
tion formats accommodate various combinations of im-
mediates, operands, and other specifiers. The architects took
particular care to ensure consistency between formats. For
example, the opcode and operands are in fixed locations,
simplifying the decode process. As a result, immediates are
split into two fields. Although this approach adds com-
plexity, selecting operands is more likely to be on the critical
path in practice. Immediates are sign extended, and the last
bit always holds the sign.
Computational instructions operate on 32 bits and
are typically in two-operand I-type format for register-
immediate and the three-operand R-type format for
register-register. RISC-V lacks support for integer overflow
checks. The basic integer instructions are shifts, add,
subtract, comparisons, and Boolean operations. The load-
upper-immediate operation forms full 32-bit immediates,
and an instruction to add the upper immediate to the PC is
also available. The ISA specifically excludes multiplication
and division by moving them into an optional extension.
Control transfer includes a jump and conditional
branches. Although the base instructions are 4 bytes, RISC-V
supports variable-length instructions in 2-byte multiples.
Jumps employ the U-type format, where the immediate
specifies a 2-byte aligned offset that’s PC relative and has a
±1MB range. A two-instruction sequence accesses the full
32-bit address space. Branches use the S-type format to
compare two registers and can encode a ±4KB PC-relative
offset.
Simple Memory Model
The RISC-V address space is byte addressed and little-
endian. Even though most other ISAs such as x86 and
ARM have several potentially complex addressing modes,
RISC-V only uses base+offset addressing with a 12-bit
immediate to simplify load-store units. Load instructions
use the I-type format; stores use S type. Loads and stores
operate on byte, half-word (16 bit), and word (32 bit) data
and have options to zero- or sign-extend smaller values.
All loads and stores enable misaligned accesses, but
the handling is implementation dependent. Although high-
performance processors with SIMD will inevitably favor
fast misaligned accesses, cost-sensitive designs may simply
trap and emulate slowly.
Loads and stores in a single thread are observed
sequentially, but there is no explicit ordering between
threads. The base ISA includes a fence instruction to
enforce ordering between threads and I/O, and more-
advanced synchronization primitives are available through
Base ISA Instructions Description
RV32I 47
32-bit address space and integer
instructions
RV32E 47 Subset of RV32I, restricted to 16 registers
RV64I 59
64-bit address space and integer
instructions, along with several 32-bit
integer instructions
RV128I 71
128-bit address space and integer
instructions, along with several 64-
and 32-bit instructions
Extension Instructions Description
M 8 Integer multiply and divide
A 11
Atomic memory operations, load-
reserve/store conditional
F 26 Single-precision (32 bit) floating point
D 26
Double-precision (64 bit) floating point;
requires F extension
Q 26
Quad-precision (128 bit) floating point;
requires F and D extensions
C 46
Compressed integer instructions; reduces
size to 16 bits
Figure 1. Basic RISC-V instruction formats. The basic RISC-V
instructions are 4 bytes long and come in four different
formats. These formats were specifically chosen to simplify
decoding—for example, to keep register specifiers in the
same fields. (Source: RISC-V)
Table 1. RISC-V base instruction sets and extensions. Cur-
rently, RISC-V offers three base ISAs with several standard
extensions. (Source: RISC-V)
funct7 rs2 rs1 funct3 rd
25 24 20 19 15 14 12 11 7 6 0
R-type
31
opcode
imm[11:0] rs1 funct3
imm[4.0]
I-typeopcode
Imm[11:5] rs2 rs1 funct3
rd
S-typeopcode
imm[31:12] U-typeopcoderd
RISC-V Offers Simple, Modular ISA 3
March 2016© Microprocessor Report
the optional extensions. RISC-V omits native consistency
enforcement between instructions and data (e.g., for self-
modifying code). Instead, a variant of the fence instruction
guarantees that any subsequent instruction fetches will see
all previous data stores in the same thread.
The user-level system instructions primarily handle
calls, breakpoints, and counter accesses. The counters are
often 64 bits long; they are accessed as two separate
counters and then concatenated. The privileged instruc-
tions primarily access CSRs, trap to different execution
layers, and pause for interrupts. Last, a supervisor fence
instruction synchronizes page-table accesses following a
page-table modification.
Expanding the Base
All other base RISC-V ISAs are variants of RV32I. The
RV32E base ISA targets very low-end implementations
where the register file occupies a significant portion of the
die area. It reduces the user-visible state to the PC and
x0–x15. Otherwise, RV32E and RV32I are identical, and
instructions are still 32 bits long; the highest bit for the
register numbers is set to 0.
RV64I and RV128I are straightforward 64- and 128-
bit extensions that enlarge the address space and extend
the 32 integer registers to the appropriate length. Most
integer instructions simply operate on the appropriate data
size (e.g., 64 or 128 bits). These extensions introduce new
instructions that operate on the lower 32 or 64 bits while
sign extending into the upper bits so that other instruc-
tions are unchanged on smaller values.
The base integer instruction set is simple and stream-
lined, allowing efficient minimal implementations. To
complement this simplicity, RISC-V includes a number of
optional extensions, listed in Table 1.
The multiply-divide extension (known as M) adds
four instructions for multiplication, two for division, and
two more for handling remainders. The size of the multiply
and divide instructions is determined by the base integer
ISA. Note that division by zero does not cause an exception
or trap, keeping with the tradition of simplicity; a basic
highly predictable branch can detect whether the divisor
is zero.
The A extension comprises 11 synchronization instruc-
tions that enable release consistency and basic atomic op-
erations. All include 2 bits that specify acquire and release
semantics between threads; using both bits enforces
sequential consistency. The A instructions fall into two
groups. The first is a load reserved (LR) and store con-
ditional (SC) for atomic memory operations on a single
address. For example, LR/SC enables construction of a
compare-and-swap function. The second group performs
atomic integer read-modify-write operations such as ADD,
OR, XOR, SWAP, MAX, and MIN. They are designed to
efficiently support C11/C++11 and also facilitate sequen-
tially consistent loads and stores.
Floating Point in Three Sizes
RISC-V includes three floating-point extensions: single
precision (F), double precision (D), and quadruple pre-
cision (Q). The F extension is a prerequisite for D, which is
in turn a prerequisite for Q. It introduces 32 registers (f0–
f31) that are 32 bits wide, as well as a floating-point CSR
(FPCSR), which has 5 bits for flags that track exceptions
including invalid operations (NV), division by zero (DZ),
overflow (OF), underflow (UF), and inexact (NX). Excep-
tions do not generate traps, and must be checked using a
privileged branch. Three bits in the FPCSR specify a dy-
namic rounding mode. Instructions can either use a static
rounding mode in the instruction encoding or select the
dynamic mode indicated in the FPCSR.
FP load-and-store instructions use the same base+
offset addressing as integer instructions. RISC-V computa-
tional instructions include FP add, subtract, multiply,
divide, square root, and fused multiply-add (FMA). The
FMA family uses four operands and a special format,
shown in Figure 2, to encode the extra register operand.
These instructions can negate the output of the multiplier
or the input of the final adder.
The F extension also includes a family of instructions
for converting and moving between integer and FP reg-
isters. FP comparisons look at two FP registers and store a
result in an integer register (e.g., for branching). The FP
classify instruction analyzes the data in a single FP register
(e.g., infinite, negative, negative zero, positive zero, or
NaN) and writes the result to an integer register. Lastly,
instructions that manipulate the FPSCR are available for
checking flags, rounding, and so on.
The D and Q extensions are fairly simple and
increase the length of f0–f31 to 64 and 128 bits, respec-
tively. Nearly all higher-precision instructions are analo-
gous to the F equivalents. Conversion between FP formats
(e.g., single and double) is supported. Loads and stores are
defined so that if a register holding a single-precision value
is written to memory using a high-precision store (e.g.,
FSD) and then read using a high-precision load (e.g., FLD),
the original value is recreated.
The floating-point extensions are only defined for sca-
lar quantities. The RISC-V Foundation is defining a sep-
arate vector extension that uses Cray-style vectors as op-
posed to the SIMD techniques that ARM, Power, and x86
employ.
Figure 2. R32F fused-multiply-add (FMA) instruction for-
mat. The FMA family uses a unique format to encode four
register operands and control rounding and negation. The
format field describes whether the instruction is single, dou-
ble, or quadruple precision. (Source: RISC-V)
fmt rs2 rs1 rm rd
27 26 20 19 15 14 12 11 7 6 0
5 2 5 5 3 5 7
31
opcoders3
25 24
src3 S src2 src1 RM dest F[N]MADD/F[N]MSUB
4 RISC-V Offers Simple, Modular ISA
March 2016© Microprocessor Report
Compression Cuts Code Size and Cost
The last integer extension (C) adds no other functions but
instead encodes instructions to save storage and reduce
instruction footprint. This compression extension is avail-
able for the base integer ISA as well as floating-point loads
and stores. It creates 16-bit compressed instructions that
are transparent to programmers and compilers thanks to a
1:1 mapping between compressed and base instructions,
which can be freely intermingled. The C extension has
some restrictions to reduce instruction length. Compressed
instructions can use a two- or three-operand format on the
most common eight registers but only a two-operand for-
mat on all 32 integer registers.
The code-size reduction for RV32C is similar to that of
ARM’s Thumb-2 ISA, as Figure 3 illustrates. Unlike Thumb,
however, RV32C does not require separate decoders. The
RISC-V team estimates that a compressed decoder requires
only 700 gates. RV64C is a substantial improvement over
existing 64-bit ISAs, which lack compressed-instruction
support. The developers estimate that the Linux kernel text
occupies 1.3MB using standard RISC-V instructions,
0.84MB using compressed instructions, and 0.65MB when
compressed using bzip2. Because the last case precludes
simple decoding and only reduces the size by 23%, they
conclude that the C extension is very close to optimal
complexity.
Although the RISC-V base ISA and the prespecified
extensions are fixed length, some extensions are not (e.g.,
compressed instructions). The overall ISA envisions
variable-length encoding with formats already specified for 2
to 22 bytes.
The RISC-V Foundation controls the standard ex-
tensions to ensure consistency throughout the community.
Portions of the instruction-encoding space are guaranteed to
be unused by future standard extensions, essentially carving
out space for custom extensions. Such extensions can create
new registers, which the OS manages through a coprocessor
model (e.g., explicit save and restore on context switch).
Privilege Comes After Users
The RISC-V ISA actually comprises four privilege layers:
user (U), supervisor (S), hypervisor (H), and machine (M).
Although user mode has been complete since 2014, the
architecture’s more privileged layers remain unfinished.
Between each layer is a binary interface (e.g., the ABI lies
between the user application and the OS).
At the lowest level, the machine mode is mandatory,
and any software running at this level has complete access to
the hardware. Conceptually, it’s the equivalent of Alpha
PALcode or microcode, and it includes CSRs such as the
misa register (which is similar to the x86 CPUID). All other
modes are optional, and the smallest implementations (e.g.,
for low-cost embedded designs) may only support M mode
with software running directly on the hardware. The basic
architectural state for M mode is 128 bits along with another
256 bits for timers and performance counters.
The hypervisor mode is intended for virtualized
systems, but few specification details are available. In part,
a cleanly defined M mode obviates some use cases for a
hypervisor, but it also reflects the community’s initial focus
on embedded design.
Traditional Unix-style operating systems are at the
supervisor privilege level. The virtual-memory model for
RV32 is demand paged with a two-level page table and
support for 4KB and 4MB pages. The minimal 64-bit
virtual-memory system uses a three-level table with 4KB,
2MB, and 1GB pages (similar to x86), and it can map 39
bits of virtual address space; each additional level increases
the virtual addressing by 9 bits up to six levels for 64 bits.
Generally, TLBs are expected to handle address translation
in hardware, but a software page-table walker in machine
mode is possible. The RISC-V supervisor binary interface
(SBI) provides a platform-level abstraction (e.g., to query
devices and send interrupts) and is one of the main focus
areas. An SBI draft should arrive with the next privileged-
ISA revision.
Figure 3. Code size for different ISAs. The footprint of the
SPECint2006 suite for the compressed 32-bit RISC-V variants
is similar to that of Thumb-2, whereas the 64-bit compressed
RISC-V is denser than commercial options. (Source: RISC-V)
For More Information
The RISC-V Foundation web site provides a software-
tool overview at riscv.org/software-tools. Yunsup Lee
presented a 28nm RISC-V processor with integrated volt-
age regulators at Hot Chips 27 (www.hotchips.org/wp-
content/uploads/hc_archives/hc27/HC27.25-Tuesday-
Epub/HC27.25.70-Processors-Epub/HC27.25.731-RISC-
V-Lee-UCB-V4.with-backup.pdf). The most recent ver-
sion of the ISA specification can be found at riscv.org/
specifications/; a synthesizable and configurable out-of-
order core is also available (aspire.eecs.berkeley.edu/
publication/the-berkeley-out-of-order-machine-boom-
an-industry-competitive-synthesizable-parameterized-
risc-v-processor).
200%
160%
120%
80%
40%
0%
100%
140%
126%
101%
126%
100%
141%
129%
169%173%
136% 131%
MIPS16e
RV64C
RV64
MIPS64
RV32C
RV32
x86
Thumb-2
MIPS32
ARMv7-A
x86-64
ARMv8
32-Bit Address 64-Bit Address
RISC-V Offers Simple, Modular ISA 5
March 2016© Microprocessor Report
To reduce the cost of minimal imple-
mentations, only the M privilege level is re-
quired. But just four privilege-level combin-
ations are supported, as Figure 4 shows. A
basic embedded system might use M mode to
secure several different applications written
in C and running in U mode. Similarly, a hy-
pervisor could operate in M mode by parti-
tioning the physical address space. Systems
with M, S, and U modes can run Linux and
correspond to a fairly normal nonvirtualized environment,
whereas adding the H mode would be suitable for data-
center servers.
An Open ISA With RISCs and Advantages
The RISC-V ISA is incomplete, but the user-mode specifi-
cation indicates that it’s quite promising. The clean archi-
tecture is easier to implement than ARM, specifically owing
to simpler decoding. ARMv8 currently requires decoding of
three different ISAs: ARMv8, ARMv7, and Thumb. In
addition, RISC-V offers simpler addressing modes than
ARM and omits complex instructions such as load/store
multiple. This distinction is certainly noticeable; the Rocket
core is roughly half the size of a similar ARM core.
But the choice of ISA has a minimal effect on a larger
core (e.g., three-issue out-of-order CPU), especially once
caches are considered. For example, Intel’s x86 CPUs, which
require complex decoders, are similar in overall size to RISC
cores of comparable performance. Even for scalar micro-
architectures, the die-area benefits of RISC-V are less sig-
nificant when compared to a simpler RISC ISA such as ARC
or MIPS.
RISC-V’s greatest technical promise is the flexibility of
custom extensions combined with a general-purpose archi-
tecture. Potential RISC-V extensions include Cray-style vec-
tor extensions, transactional memory, and bit manipulation.
Both ARC (now Synopsys) and Tensilica (now Cadence)
have offered similar extension capability for years. Cus-
tom extensions can deliver huge performance gains, but
they require custom tool chains, and they limit software
portability.
The RISC-V software ecosystem is in the early stages.
A Linux 4.1 branch has been ported, and a full embedded
Linux distribution known as Yocto is also available. The
RISC-V tool chain includes the GCC compiler, LLVM and
Clang, GDB, a verification suite, and several simulators.
But the most important milestone is completing the super-
visor interface (SBI), which will standardize the environ-
ment for Linux and BSD operating systems and thereby
deliver the general-purpose aspect. Mainstream-OS sup-
port will broaden the appeal of RISC-V and enable many
more applications.
On the basis of early developments, the RISC-V ISA
appears promising. It offers all the basic RISC features with
a few twists that simplify the implementation, thereby re-
ducing die area and potentially power consumption. Com-
pared with today’s two most popular ISAs, RISC-V offers
considerable area savings, particularly for low-end designs,
and the ability to add custom extensions. Compared with
ISAs such as ARC and Tensilica, RISC-V offers fewer tech-
nical advantages, but its open-source business model will
continue to drive interest in the new ISA.
Figure 4. Supported privilege combinations. M mode is mandatory; all other
privilege levels are optional. (Source: RISC-V)
To subscribe to Microprocessor Report, access www.linleygroup.com/mpr or phone us at 408-270-3772.
Application
ABI
AEE
Application
ABI
OS
Application
ABI
SBI
SEE
Application
ABI
OS
Application
ABI
SBI
Hypervisor
Application
ABI
OS
Application
ABI
SBI
HBI
HEE

More Related Content

What's hot

Introduction to armv8 aarch64
Introduction to armv8 aarch64Introduction to armv8 aarch64
Introduction to armv8 aarch64Yi-Hsiu Hsu
 
Shakti Processor Roadmap
Shakti Processor RoadmapShakti Processor Roadmap
Shakti Processor Roadmapsmadhu2048
 
Mobicents Summit 2012 - Dmitri Soloviev - Telscale SS7 Card
Mobicents Summit 2012 - Dmitri Soloviev - Telscale SS7 CardMobicents Summit 2012 - Dmitri Soloviev - Telscale SS7 Card
Mobicents Summit 2012 - Dmitri Soloviev - Telscale SS7 Cardtelestax
 
Syllabus for interview
Syllabus for  interviewSyllabus for  interview
Syllabus for interviewSwapnil Kapate
 
Creating Your Own PCI Express System Using FPGAs: Embedded World 2010
Creating Your Own PCI Express System Using FPGAs: Embedded World 2010Creating Your Own PCI Express System Using FPGAs: Embedded World 2010
Creating Your Own PCI Express System Using FPGAs: Embedded World 2010Altera Corporation
 
P C I L O C A L B U S
P C I  L O C A L  B U S P C I  L O C A L  B U S
P C I L O C A L B U S jainfu2
 
Glow introduction
Glow introductionGlow introduction
Glow introductionYi-Hsiu Hsu
 
13. peripheral component interconnect (pci)
13. peripheral component interconnect (pci)13. peripheral component interconnect (pci)
13. peripheral component interconnect (pci)Rumah Belajar
 
Slideshare - PCIe
Slideshare - PCIeSlideshare - PCIe
Slideshare - PCIeJin Wu
 
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_FinalGopi Krishnamurthy
 
Design and implementation of multi channel frame synchronization in fpga
Design and implementation of multi channel frame synchronization in fpgaDesign and implementation of multi channel frame synchronization in fpga
Design and implementation of multi channel frame synchronization in fpgaIAEME Publication
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON
 

What's hot (20)

Introduction to armv8 aarch64
Introduction to armv8 aarch64Introduction to armv8 aarch64
Introduction to armv8 aarch64
 
Shakti Processor Roadmap
Shakti Processor RoadmapShakti Processor Roadmap
Shakti Processor Roadmap
 
Mobicents Summit 2012 - Dmitri Soloviev - Telscale SS7 Card
Mobicents Summit 2012 - Dmitri Soloviev - Telscale SS7 CardMobicents Summit 2012 - Dmitri Soloviev - Telscale SS7 Card
Mobicents Summit 2012 - Dmitri Soloviev - Telscale SS7 Card
 
Syllabus for interview
Syllabus for  interviewSyllabus for  interview
Syllabus for interview
 
Creating Your Own PCI Express System Using FPGAs: Embedded World 2010
Creating Your Own PCI Express System Using FPGAs: Embedded World 2010Creating Your Own PCI Express System Using FPGAs: Embedded World 2010
Creating Your Own PCI Express System Using FPGAs: Embedded World 2010
 
Eisa
EisaEisa
Eisa
 
Aes
AesAes
Aes
 
Thaker q3 2008
Thaker q3 2008Thaker q3 2008
Thaker q3 2008
 
P C I L O C A L B U S
P C I  L O C A L  B U S P C I  L O C A L  B U S
P C I L O C A L B U S
 
Pci express modi
Pci express modiPci express modi
Pci express modi
 
Ch2 csda
Ch2 csdaCh2 csda
Ch2 csda
 
No sql presentation
No sql presentationNo sql presentation
No sql presentation
 
Glow introduction
Glow introductionGlow introduction
Glow introduction
 
13. peripheral component interconnect (pci)
13. peripheral component interconnect (pci)13. peripheral component interconnect (pci)
13. peripheral component interconnect (pci)
 
Pci express technology 3.0
Pci express technology 3.0Pci express technology 3.0
Pci express technology 3.0
 
Slideshare - PCIe
Slideshare - PCIeSlideshare - PCIe
Slideshare - PCIe
 
Multi-Core on Chip Architecture *doc - IK
Multi-Core on Chip Architecture *doc - IKMulti-Core on Chip Architecture *doc - IK
Multi-Core on Chip Architecture *doc - IK
 
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
 
Design and implementation of multi channel frame synchronization in fpga
Design and implementation of multi channel frame synchronization in fpgaDesign and implementation of multi channel frame synchronization in fpga
Design and implementation of multi channel frame synchronization in fpga
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
 

Similar to RISC-V offers simple, modular ISA : Notes

22cs201 COMPUTER ORGANIZATION AND ARCHITECTURE
22cs201 COMPUTER ORGANIZATION AND ARCHITECTURE22cs201 COMPUTER ORGANIZATION AND ARCHITECTURE
22cs201 COMPUTER ORGANIZATION AND ARCHITECTUREKathirvel Ayyaswamy
 
RISC-V Introduction
RISC-V IntroductionRISC-V Introduction
RISC-V IntroductionYi-Hsiu Hsu
 
DESIGN AND IMPLEMENTATION OF I2C AND UART BLOCK IMPLEMENTATION FOR RISC-V SOC
DESIGN AND IMPLEMENTATION OF I2C AND UART BLOCK IMPLEMENTATION FOR RISC-V SOCDESIGN AND IMPLEMENTATION OF I2C AND UART BLOCK IMPLEMENTATION FOR RISC-V SOC
DESIGN AND IMPLEMENTATION OF I2C AND UART BLOCK IMPLEMENTATION FOR RISC-V SOCIRJET Journal
 
Riscv 20160507-patterson
Riscv 20160507-pattersonRiscv 20160507-patterson
Riscv 20160507-pattersonKrste Asanovic
 
Instruction set.pptx
Instruction set.pptxInstruction set.pptx
Instruction set.pptxssuser000e54
 
The sunsparc architecture
The sunsparc architectureThe sunsparc architecture
The sunsparc architectureTaha Malampatti
 
Pragmatic optimization in modern programming - modern computer architecture c...
Pragmatic optimization in modern programming - modern computer architecture c...Pragmatic optimization in modern programming - modern computer architecture c...
Pragmatic optimization in modern programming - modern computer architecture c...Marina Kolpakova
 
Explain briefly about the major enhancements in ARM processor archite.pdf
Explain briefly about the major enhancements in ARM processor archite.pdfExplain briefly about the major enhancements in ARM processor archite.pdf
Explain briefly about the major enhancements in ARM processor archite.pdfarjunenterprises1978
 
Advanced Processor Power Point Presentation
Advanced Processor  Power Point  PresentationAdvanced Processor  Power Point  Presentation
Advanced Processor Power Point PresentationPrashantYadav931011
 
AMD64 (EM64T) architecture
AMD64 (EM64T) architectureAMD64 (EM64T) architecture
AMD64 (EM64T) architecturePVS-Studio
 
A 64-Bit RISC Processor Design and Implementation Using VHDL
A 64-Bit RISC Processor Design and Implementation Using VHDL A 64-Bit RISC Processor Design and Implementation Using VHDL
A 64-Bit RISC Processor Design and Implementation Using VHDL Andrew Yoila
 
Improving Code Compression Efficiency of MIPS32 Processor using Modified ISA
Improving Code Compression Efficiency of MIPS32 Processor using Modified ISAImproving Code Compression Efficiency of MIPS32 Processor using Modified ISA
Improving Code Compression Efficiency of MIPS32 Processor using Modified ISAIJMTST Journal
 
Vlsi_ppt_34_36_64.pptx
Vlsi_ppt_34_36_64.pptxVlsi_ppt_34_36_64.pptx
Vlsi_ppt_34_36_64.pptxSahilMaske1
 
Review paper on 32-BIT RISC processor with floating point arithmetic
Review paper on 32-BIT RISC processor with floating point arithmeticReview paper on 32-BIT RISC processor with floating point arithmetic
Review paper on 32-BIT RISC processor with floating point arithmeticIRJET Journal
 
Benchmark Processors- VAX 8600,MC68040,SPARC and Superscalar RISC
Benchmark Processors- VAX 8600,MC68040,SPARC and Superscalar RISCBenchmark Processors- VAX 8600,MC68040,SPARC and Superscalar RISC
Benchmark Processors- VAX 8600,MC68040,SPARC and Superscalar RISCPriyodarshini Dhar
 

Similar to RISC-V offers simple, modular ISA : Notes (20)

22cs201 COMPUTER ORGANIZATION AND ARCHITECTURE
22cs201 COMPUTER ORGANIZATION AND ARCHITECTURE22cs201 COMPUTER ORGANIZATION AND ARCHITECTURE
22cs201 COMPUTER ORGANIZATION AND ARCHITECTURE
 
Qasim anwar ch
Qasim anwar chQasim anwar ch
Qasim anwar ch
 
RISC-V Introduction
RISC-V IntroductionRISC-V Introduction
RISC-V Introduction
 
DESIGN AND IMPLEMENTATION OF I2C AND UART BLOCK IMPLEMENTATION FOR RISC-V SOC
DESIGN AND IMPLEMENTATION OF I2C AND UART BLOCK IMPLEMENTATION FOR RISC-V SOCDESIGN AND IMPLEMENTATION OF I2C AND UART BLOCK IMPLEMENTATION FOR RISC-V SOC
DESIGN AND IMPLEMENTATION OF I2C AND UART BLOCK IMPLEMENTATION FOR RISC-V SOC
 
Riscv 20160507-patterson
Riscv 20160507-pattersonRiscv 20160507-patterson
Riscv 20160507-patterson
 
Instruction set.pptx
Instruction set.pptxInstruction set.pptx
Instruction set.pptx
 
The sunsparc architecture
The sunsparc architectureThe sunsparc architecture
The sunsparc architecture
 
Highridge ISA
Highridge ISAHighridge ISA
Highridge ISA
 
Cao 2012
Cao 2012Cao 2012
Cao 2012
 
Pragmatic optimization in modern programming - modern computer architecture c...
Pragmatic optimization in modern programming - modern computer architecture c...Pragmatic optimization in modern programming - modern computer architecture c...
Pragmatic optimization in modern programming - modern computer architecture c...
 
Explain briefly about the major enhancements in ARM processor archite.pdf
Explain briefly about the major enhancements in ARM processor archite.pdfExplain briefly about the major enhancements in ARM processor archite.pdf
Explain briefly about the major enhancements in ARM processor archite.pdf
 
Advanced Processor Power Point Presentation
Advanced Processor  Power Point  PresentationAdvanced Processor  Power Point  Presentation
Advanced Processor Power Point Presentation
 
Risc processors
Risc processorsRisc processors
Risc processors
 
AMD64 (EM64T) architecture
AMD64 (EM64T) architectureAMD64 (EM64T) architecture
AMD64 (EM64T) architecture
 
arm-cortex-a8
arm-cortex-a8arm-cortex-a8
arm-cortex-a8
 
A 64-Bit RISC Processor Design and Implementation Using VHDL
A 64-Bit RISC Processor Design and Implementation Using VHDL A 64-Bit RISC Processor Design and Implementation Using VHDL
A 64-Bit RISC Processor Design and Implementation Using VHDL
 
Improving Code Compression Efficiency of MIPS32 Processor using Modified ISA
Improving Code Compression Efficiency of MIPS32 Processor using Modified ISAImproving Code Compression Efficiency of MIPS32 Processor using Modified ISA
Improving Code Compression Efficiency of MIPS32 Processor using Modified ISA
 
Vlsi_ppt_34_36_64.pptx
Vlsi_ppt_34_36_64.pptxVlsi_ppt_34_36_64.pptx
Vlsi_ppt_34_36_64.pptx
 
Review paper on 32-BIT RISC processor with floating point arithmetic
Review paper on 32-BIT RISC processor with floating point arithmeticReview paper on 32-BIT RISC processor with floating point arithmetic
Review paper on 32-BIT RISC processor with floating point arithmetic
 
Benchmark Processors- VAX 8600,MC68040,SPARC and Superscalar RISC
Benchmark Processors- VAX 8600,MC68040,SPARC and Superscalar RISCBenchmark Processors- VAX 8600,MC68040,SPARC and Superscalar RISC
Benchmark Processors- VAX 8600,MC68040,SPARC and Superscalar RISC
 

More from Subhajit Sahu

DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTESDyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTESSubhajit Sahu
 
Shared memory Parallelism (NOTES)
Shared memory Parallelism (NOTES)Shared memory Parallelism (NOTES)
Shared memory Parallelism (NOTES)Subhajit Sahu
 
A Dynamic Algorithm for Local Community Detection in Graphs : NOTES
A Dynamic Algorithm for Local Community Detection in Graphs : NOTESA Dynamic Algorithm for Local Community Detection in Graphs : NOTES
A Dynamic Algorithm for Local Community Detection in Graphs : NOTESSubhajit Sahu
 
Scalable Static and Dynamic Community Detection Using Grappolo : NOTES
Scalable Static and Dynamic Community Detection Using Grappolo : NOTESScalable Static and Dynamic Community Detection Using Grappolo : NOTES
Scalable Static and Dynamic Community Detection Using Grappolo : NOTESSubhajit Sahu
 
Application Areas of Community Detection: A Review : NOTES
Application Areas of Community Detection: A Review : NOTESApplication Areas of Community Detection: A Review : NOTES
Application Areas of Community Detection: A Review : NOTESSubhajit Sahu
 
Community Detection on the GPU : NOTES
Community Detection on the GPU : NOTESCommunity Detection on the GPU : NOTES
Community Detection on the GPU : NOTESSubhajit Sahu
 
Survey for extra-child-process package : NOTES
Survey for extra-child-process package : NOTESSurvey for extra-child-process package : NOTES
Survey for extra-child-process package : NOTESSubhajit Sahu
 
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTER
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTERDynamic Batch Parallel Algorithms for Updating PageRank : POSTER
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTERSubhajit Sahu
 
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...Subhajit Sahu
 
Fast Incremental Community Detection on Dynamic Graphs : NOTES
Fast Incremental Community Detection on Dynamic Graphs : NOTESFast Incremental Community Detection on Dynamic Graphs : NOTES
Fast Incremental Community Detection on Dynamic Graphs : NOTESSubhajit Sahu
 
Can you fix farming by going back 8000 years : NOTES
Can you fix farming by going back 8000 years : NOTESCan you fix farming by going back 8000 years : NOTES
Can you fix farming by going back 8000 years : NOTESSubhajit Sahu
 
HITS algorithm : NOTES
HITS algorithm : NOTESHITS algorithm : NOTES
HITS algorithm : NOTESSubhajit Sahu
 
Basic Computer Architecture and the Case for GPUs : NOTES
Basic Computer Architecture and the Case for GPUs : NOTESBasic Computer Architecture and the Case for GPUs : NOTES
Basic Computer Architecture and the Case for GPUs : NOTESSubhajit Sahu
 
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDESDynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDESSubhajit Sahu
 
Are Satellites Covered in Gold Foil : NOTES
Are Satellites Covered in Gold Foil : NOTESAre Satellites Covered in Gold Foil : NOTES
Are Satellites Covered in Gold Foil : NOTESSubhajit Sahu
 
Taxation for Traders < Markets and Taxation : NOTES
Taxation for Traders < Markets and Taxation : NOTESTaxation for Traders < Markets and Taxation : NOTES
Taxation for Traders < Markets and Taxation : NOTESSubhajit Sahu
 
A Generalization of the PageRank Algorithm : NOTES
A Generalization of the PageRank Algorithm : NOTESA Generalization of the PageRank Algorithm : NOTES
A Generalization of the PageRank Algorithm : NOTESSubhajit Sahu
 
ApproxBioWear: Approximating Additions for Efficient Biomedical Wearable Comp...
ApproxBioWear: Approximating Additions for Efficient Biomedical Wearable Comp...ApproxBioWear: Approximating Additions for Efficient Biomedical Wearable Comp...
ApproxBioWear: Approximating Additions for Efficient Biomedical Wearable Comp...Subhajit Sahu
 
Income Tax Calender 2021 (ITD) : NOTES
Income Tax Calender 2021 (ITD) : NOTESIncome Tax Calender 2021 (ITD) : NOTES
Income Tax Calender 2021 (ITD) : NOTESSubhajit Sahu
 
Youngistaan Foundation: Annual Report 2020-21 : NOTES
Youngistaan Foundation: Annual Report 2020-21 : NOTESYoungistaan Foundation: Annual Report 2020-21 : NOTES
Youngistaan Foundation: Annual Report 2020-21 : NOTESSubhajit Sahu
 

More from Subhajit Sahu (20)

DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTESDyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
 
Shared memory Parallelism (NOTES)
Shared memory Parallelism (NOTES)Shared memory Parallelism (NOTES)
Shared memory Parallelism (NOTES)
 
A Dynamic Algorithm for Local Community Detection in Graphs : NOTES
A Dynamic Algorithm for Local Community Detection in Graphs : NOTESA Dynamic Algorithm for Local Community Detection in Graphs : NOTES
A Dynamic Algorithm for Local Community Detection in Graphs : NOTES
 
Scalable Static and Dynamic Community Detection Using Grappolo : NOTES
Scalable Static and Dynamic Community Detection Using Grappolo : NOTESScalable Static and Dynamic Community Detection Using Grappolo : NOTES
Scalable Static and Dynamic Community Detection Using Grappolo : NOTES
 
Application Areas of Community Detection: A Review : NOTES
Application Areas of Community Detection: A Review : NOTESApplication Areas of Community Detection: A Review : NOTES
Application Areas of Community Detection: A Review : NOTES
 
Community Detection on the GPU : NOTES
Community Detection on the GPU : NOTESCommunity Detection on the GPU : NOTES
Community Detection on the GPU : NOTES
 
Survey for extra-child-process package : NOTES
Survey for extra-child-process package : NOTESSurvey for extra-child-process package : NOTES
Survey for extra-child-process package : NOTES
 
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTER
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTERDynamic Batch Parallel Algorithms for Updating PageRank : POSTER
Dynamic Batch Parallel Algorithms for Updating PageRank : POSTER
 
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
Abstract for IPDPS 2022 PhD Forum on Dynamic Batch Parallel Algorithms for Up...
 
Fast Incremental Community Detection on Dynamic Graphs : NOTES
Fast Incremental Community Detection on Dynamic Graphs : NOTESFast Incremental Community Detection on Dynamic Graphs : NOTES
Fast Incremental Community Detection on Dynamic Graphs : NOTES
 
Can you fix farming by going back 8000 years : NOTES
Can you fix farming by going back 8000 years : NOTESCan you fix farming by going back 8000 years : NOTES
Can you fix farming by going back 8000 years : NOTES
 
HITS algorithm : NOTES
HITS algorithm : NOTESHITS algorithm : NOTES
HITS algorithm : NOTES
 
Basic Computer Architecture and the Case for GPUs : NOTES
Basic Computer Architecture and the Case for GPUs : NOTESBasic Computer Architecture and the Case for GPUs : NOTES
Basic Computer Architecture and the Case for GPUs : NOTES
 
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDESDynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
Dynamic Batch Parallel Algorithms for Updating Pagerank : SLIDES
 
Are Satellites Covered in Gold Foil : NOTES
Are Satellites Covered in Gold Foil : NOTESAre Satellites Covered in Gold Foil : NOTES
Are Satellites Covered in Gold Foil : NOTES
 
Taxation for Traders < Markets and Taxation : NOTES
Taxation for Traders < Markets and Taxation : NOTESTaxation for Traders < Markets and Taxation : NOTES
Taxation for Traders < Markets and Taxation : NOTES
 
A Generalization of the PageRank Algorithm : NOTES
A Generalization of the PageRank Algorithm : NOTESA Generalization of the PageRank Algorithm : NOTES
A Generalization of the PageRank Algorithm : NOTES
 
ApproxBioWear: Approximating Additions for Efficient Biomedical Wearable Comp...
ApproxBioWear: Approximating Additions for Efficient Biomedical Wearable Comp...ApproxBioWear: Approximating Additions for Efficient Biomedical Wearable Comp...
ApproxBioWear: Approximating Additions for Efficient Biomedical Wearable Comp...
 
Income Tax Calender 2021 (ITD) : NOTES
Income Tax Calender 2021 (ITD) : NOTESIncome Tax Calender 2021 (ITD) : NOTES
Income Tax Calender 2021 (ITD) : NOTES
 
Youngistaan Foundation: Annual Report 2020-21 : NOTES
Youngistaan Foundation: Annual Report 2020-21 : NOTESYoungistaan Foundation: Annual Report 2020-21 : NOTES
Youngistaan Foundation: Annual Report 2020-21 : NOTES
 

Recently uploaded

Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up Number
Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up NumberCall Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up Number
Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up NumberMs Riya
 
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一ss ss
 
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝soniya singh
 
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /WhatsappsBeautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsappssapnasaifi408
 
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一zul5vf0pq
 
萨斯喀彻温大学毕业证学位证成绩单-购买流程
萨斯喀彻温大学毕业证学位证成绩单-购买流程萨斯喀彻温大学毕业证学位证成绩单-购买流程
萨斯喀彻温大学毕业证学位证成绩单-购买流程1k98h0e1
 
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service SaharanpurVIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service SaharanpurSuhani Kapoor
 
Thane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsThane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsPooja Nehwal
 
Alambagh Call Girl 9548273370 , Call Girls Service Lucknow
Alambagh Call Girl 9548273370 , Call Girls Service LucknowAlambagh Call Girl 9548273370 , Call Girls Service Lucknow
Alambagh Call Girl 9548273370 , Call Girls Service Lucknowmakika9823
 
Papular No 1 Online Istikhara Amil Baba Pakistan Amil Baba In Karachi Amil B...
Papular No 1 Online Istikhara Amil Baba Pakistan  Amil Baba In Karachi Amil B...Papular No 1 Online Istikhara Amil Baba Pakistan  Amil Baba In Karachi Amil B...
Papular No 1 Online Istikhara Amil Baba Pakistan Amil Baba In Karachi Amil B...Authentic No 1 Amil Baba In Pakistan
 
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一定制(UI学位证)爱达荷大学毕业证成绩单原版一比一
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一ss ss
 
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Pooja Nehwal
 
(MEGHA) Hinjewadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune E...
(MEGHA) Hinjewadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune E...(MEGHA) Hinjewadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune E...
(MEGHA) Hinjewadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune E...ranjana rawat
 
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...srsj9000
 
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...nagunakhan
 
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 

Recently uploaded (20)

Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up Number
Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up NumberCall Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up Number
Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up Number
 
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一
 
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
 
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /WhatsappsBeautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
 
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一
 
萨斯喀彻温大学毕业证学位证成绩单-购买流程
萨斯喀彻温大学毕业证学位证成绩单-购买流程萨斯喀彻温大学毕业证学位证成绩单-购买流程
萨斯喀彻温大学毕业证学位证成绩单-购买流程
 
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service SaharanpurVIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
 
Thane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsThane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call Girls
 
9953330565 Low Rate Call Girls In Jahangirpuri Delhi NCR
9953330565 Low Rate Call Girls In Jahangirpuri  Delhi NCR9953330565 Low Rate Call Girls In Jahangirpuri  Delhi NCR
9953330565 Low Rate Call Girls In Jahangirpuri Delhi NCR
 
Alambagh Call Girl 9548273370 , Call Girls Service Lucknow
Alambagh Call Girl 9548273370 , Call Girls Service LucknowAlambagh Call Girl 9548273370 , Call Girls Service Lucknow
Alambagh Call Girl 9548273370 , Call Girls Service Lucknow
 
Papular No 1 Online Istikhara Amil Baba Pakistan Amil Baba In Karachi Amil B...
Papular No 1 Online Istikhara Amil Baba Pakistan  Amil Baba In Karachi Amil B...Papular No 1 Online Istikhara Amil Baba Pakistan  Amil Baba In Karachi Amil B...
Papular No 1 Online Istikhara Amil Baba Pakistan Amil Baba In Karachi Amil B...
 
Low rate Call girls in Delhi Justdial | 9953330565
Low rate Call girls in Delhi Justdial | 9953330565Low rate Call girls in Delhi Justdial | 9953330565
Low rate Call girls in Delhi Justdial | 9953330565
 
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一定制(UI学位证)爱达荷大学毕业证成绩单原版一比一
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一
 
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
 
(MEGHA) Hinjewadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune E...
(MEGHA) Hinjewadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune E...(MEGHA) Hinjewadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune E...
(MEGHA) Hinjewadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune E...
 
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...
 
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
 
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service
 

RISC-V offers simple, modular ISA : Notes

  • 1. RISC-V OFFERS SIMPLE, MODULAR ISA New CPU Instruction Set Is Open and Extensible By David Kanter (March 28, 2016) ................................................................................................................... March 2016© Microprocessor Report RISC-V is a new general-purpose instruction-set archi- tecture (ISA) that’s BSD licensed, extensible, and royalty free. It’s clean and modular with a 32-, 64-, or 128-bit inte- ger base and various optional extensions (e.g., floating point). RISC-V is easier to implement than some alterna- tives—minimal RISC-V cores are roughly half the size of equivalent ARM cores—and the ISA has already gathered some support from the semiconductor industry. The ambitious goal of RISC-V (pronounced “risk five”) is to create a “universal” instruction set that is free and open to all users while providing the broad software support of successful commercial ISAs (e.g., x86 and ARM). Consider a modern smartphone processor, which typically comprises a dozen or more cores with different software stacks (e.g., an ARM application CPU, a GPU, three to five different DSPs, and a power-management core). In theory, they could all use variants of a single ISA and in many cases reuse both hardware and software. RISC-V aims to offer a practical option that could unify many of these cores under one roof. Driving its generic nature is the desire to serve all markets, including microcontrollers as well as image, graphics, and server processors. Thus, the ISA must be consistent across microarchitectures, from an in-order sca- lar design to a heavily out-of-order design. Similarly, it’s intended to be suitable for nearly any implementation, from FPGAs to synthesized macros to fully custom layouts. Owing to the emerging interest in accelerators (see MPR 3/7/16, “Accelerating Machine Learning”), extensibility is an essential part of universality. Broad software support and extensibility are a tricky combination, as software developers want a consistent tar- get. For example, vector instructions are optional in ARMv7 and unwanted for many low-end implementations. But when Tegra 2 omitted the Neon vector extensions, it created substantial consternation in the Android ecosystem. To address this issue, RISC-V defines a guaranteed base integer instruction set of 32, 64, or 128 bits, a family of optional and predefined extensions, and a mechanism for creating variable-length extensions. The base ISA is cleanly architected to simplify implementation. For example, the instruction encoding is highly regular, and the memory model is straightforward and lacks complicated memory instructions. The benefit is that minimal RISC-V cores are much smaller than similar ARM or x86 cores, although the difference is not noticeable for more powerful cores (e.g., superscalar, out-of-order). To enable extensions, portions of the instruction encoding space have already been set aside for future use. Academic Heritage, Commercial Aspirations Krste Asanovi , Andrew Waterman, and Yunsup Lee de- veloped the RISC-V architecture at UC Berkeley, with input from David Patterson, in response to limitations of existing ISAs (see MPR 8/18/14, “The Case for Open Instruction Sets”). Although x86 and ARM are widely available and supported, they are complex, and the licens- ing model is difficult for experimental and academic use. For example, modifying the RTL of ARM-supplied cores is impossible, and even obtaining an x86 core is exceptionally unlikely. Moreover, the instruction sets are overly compli- cated for research, which focuses on exploring new con- cepts rather than on compatibility. Created in 2015, the RISC-V Foundation manages the standard, creates compliance tests, and organizes the community. It comprises industry leaders such as Google, Mellanox, and Oracle as well as academic partners such as the Indian Institutes of Technology. Several open-source
  • 2. 2 RISC-V Offers Simple, Modular ISA March 2016© Microprocessor Report processor cores are freely available online, including the scalar five-stage “Rocket,” taking advantage of the permis- sive and royalty-free BSD-style license. Modular ISA Offers Many Options Generally, RISC-V is a three-operand load-store architec- ture that heavily emphasizes cleanliness and simplicity. As Table 1 shows, it effectively has three base instruction sets and six extensions. The base ISA plus MADF extensions form a general-purpose ISA (sometimes known as the G ex- tensions) that can readily handle scalar integer or floating- point code. The user programming model for RV32I is sparse; it comprises the program counter (PC) and 32 integer registers (x1–x31 and x0, which is hard wired to 0). It lacks explicit return address registers, but x1 holds the return address by convention. RV32I has 47 integer instructions for loads, stores, control transfer, arithmetic, and other functions (e.g., system calls, fences, and certain counters). In addition, it has 14 privileged instructions for changing privilege level, traps, and interrupts, as well as for accessing control and status registers (CSRs) from a 12-bit address space. To simplify decoding, the instruction encoding is highly regular. Basic instructions are 32 bits long, as Figure 1 illustrates, and are naturally aligned. Four different instruc- tion formats accommodate various combinations of im- mediates, operands, and other specifiers. The architects took particular care to ensure consistency between formats. For example, the opcode and operands are in fixed locations, simplifying the decode process. As a result, immediates are split into two fields. Although this approach adds com- plexity, selecting operands is more likely to be on the critical path in practice. Immediates are sign extended, and the last bit always holds the sign. Computational instructions operate on 32 bits and are typically in two-operand I-type format for register- immediate and the three-operand R-type format for register-register. RISC-V lacks support for integer overflow checks. The basic integer instructions are shifts, add, subtract, comparisons, and Boolean operations. The load- upper-immediate operation forms full 32-bit immediates, and an instruction to add the upper immediate to the PC is also available. The ISA specifically excludes multiplication and division by moving them into an optional extension. Control transfer includes a jump and conditional branches. Although the base instructions are 4 bytes, RISC-V supports variable-length instructions in 2-byte multiples. Jumps employ the U-type format, where the immediate specifies a 2-byte aligned offset that’s PC relative and has a ±1MB range. A two-instruction sequence accesses the full 32-bit address space. Branches use the S-type format to compare two registers and can encode a ±4KB PC-relative offset. Simple Memory Model The RISC-V address space is byte addressed and little- endian. Even though most other ISAs such as x86 and ARM have several potentially complex addressing modes, RISC-V only uses base+offset addressing with a 12-bit immediate to simplify load-store units. Load instructions use the I-type format; stores use S type. Loads and stores operate on byte, half-word (16 bit), and word (32 bit) data and have options to zero- or sign-extend smaller values. All loads and stores enable misaligned accesses, but the handling is implementation dependent. Although high- performance processors with SIMD will inevitably favor fast misaligned accesses, cost-sensitive designs may simply trap and emulate slowly. Loads and stores in a single thread are observed sequentially, but there is no explicit ordering between threads. The base ISA includes a fence instruction to enforce ordering between threads and I/O, and more- advanced synchronization primitives are available through Base ISA Instructions Description RV32I 47 32-bit address space and integer instructions RV32E 47 Subset of RV32I, restricted to 16 registers RV64I 59 64-bit address space and integer instructions, along with several 32-bit integer instructions RV128I 71 128-bit address space and integer instructions, along with several 64- and 32-bit instructions Extension Instructions Description M 8 Integer multiply and divide A 11 Atomic memory operations, load- reserve/store conditional F 26 Single-precision (32 bit) floating point D 26 Double-precision (64 bit) floating point; requires F extension Q 26 Quad-precision (128 bit) floating point; requires F and D extensions C 46 Compressed integer instructions; reduces size to 16 bits Figure 1. Basic RISC-V instruction formats. The basic RISC-V instructions are 4 bytes long and come in four different formats. These formats were specifically chosen to simplify decoding—for example, to keep register specifiers in the same fields. (Source: RISC-V) Table 1. RISC-V base instruction sets and extensions. Cur- rently, RISC-V offers three base ISAs with several standard extensions. (Source: RISC-V) funct7 rs2 rs1 funct3 rd 25 24 20 19 15 14 12 11 7 6 0 R-type 31 opcode imm[11:0] rs1 funct3 imm[4.0] I-typeopcode Imm[11:5] rs2 rs1 funct3 rd S-typeopcode imm[31:12] U-typeopcoderd
  • 3. RISC-V Offers Simple, Modular ISA 3 March 2016© Microprocessor Report the optional extensions. RISC-V omits native consistency enforcement between instructions and data (e.g., for self- modifying code). Instead, a variant of the fence instruction guarantees that any subsequent instruction fetches will see all previous data stores in the same thread. The user-level system instructions primarily handle calls, breakpoints, and counter accesses. The counters are often 64 bits long; they are accessed as two separate counters and then concatenated. The privileged instruc- tions primarily access CSRs, trap to different execution layers, and pause for interrupts. Last, a supervisor fence instruction synchronizes page-table accesses following a page-table modification. Expanding the Base All other base RISC-V ISAs are variants of RV32I. The RV32E base ISA targets very low-end implementations where the register file occupies a significant portion of the die area. It reduces the user-visible state to the PC and x0–x15. Otherwise, RV32E and RV32I are identical, and instructions are still 32 bits long; the highest bit for the register numbers is set to 0. RV64I and RV128I are straightforward 64- and 128- bit extensions that enlarge the address space and extend the 32 integer registers to the appropriate length. Most integer instructions simply operate on the appropriate data size (e.g., 64 or 128 bits). These extensions introduce new instructions that operate on the lower 32 or 64 bits while sign extending into the upper bits so that other instruc- tions are unchanged on smaller values. The base integer instruction set is simple and stream- lined, allowing efficient minimal implementations. To complement this simplicity, RISC-V includes a number of optional extensions, listed in Table 1. The multiply-divide extension (known as M) adds four instructions for multiplication, two for division, and two more for handling remainders. The size of the multiply and divide instructions is determined by the base integer ISA. Note that division by zero does not cause an exception or trap, keeping with the tradition of simplicity; a basic highly predictable branch can detect whether the divisor is zero. The A extension comprises 11 synchronization instruc- tions that enable release consistency and basic atomic op- erations. All include 2 bits that specify acquire and release semantics between threads; using both bits enforces sequential consistency. The A instructions fall into two groups. The first is a load reserved (LR) and store con- ditional (SC) for atomic memory operations on a single address. For example, LR/SC enables construction of a compare-and-swap function. The second group performs atomic integer read-modify-write operations such as ADD, OR, XOR, SWAP, MAX, and MIN. They are designed to efficiently support C11/C++11 and also facilitate sequen- tially consistent loads and stores. Floating Point in Three Sizes RISC-V includes three floating-point extensions: single precision (F), double precision (D), and quadruple pre- cision (Q). The F extension is a prerequisite for D, which is in turn a prerequisite for Q. It introduces 32 registers (f0– f31) that are 32 bits wide, as well as a floating-point CSR (FPCSR), which has 5 bits for flags that track exceptions including invalid operations (NV), division by zero (DZ), overflow (OF), underflow (UF), and inexact (NX). Excep- tions do not generate traps, and must be checked using a privileged branch. Three bits in the FPCSR specify a dy- namic rounding mode. Instructions can either use a static rounding mode in the instruction encoding or select the dynamic mode indicated in the FPCSR. FP load-and-store instructions use the same base+ offset addressing as integer instructions. RISC-V computa- tional instructions include FP add, subtract, multiply, divide, square root, and fused multiply-add (FMA). The FMA family uses four operands and a special format, shown in Figure 2, to encode the extra register operand. These instructions can negate the output of the multiplier or the input of the final adder. The F extension also includes a family of instructions for converting and moving between integer and FP reg- isters. FP comparisons look at two FP registers and store a result in an integer register (e.g., for branching). The FP classify instruction analyzes the data in a single FP register (e.g., infinite, negative, negative zero, positive zero, or NaN) and writes the result to an integer register. Lastly, instructions that manipulate the FPSCR are available for checking flags, rounding, and so on. The D and Q extensions are fairly simple and increase the length of f0–f31 to 64 and 128 bits, respec- tively. Nearly all higher-precision instructions are analo- gous to the F equivalents. Conversion between FP formats (e.g., single and double) is supported. Loads and stores are defined so that if a register holding a single-precision value is written to memory using a high-precision store (e.g., FSD) and then read using a high-precision load (e.g., FLD), the original value is recreated. The floating-point extensions are only defined for sca- lar quantities. The RISC-V Foundation is defining a sep- arate vector extension that uses Cray-style vectors as op- posed to the SIMD techniques that ARM, Power, and x86 employ. Figure 2. R32F fused-multiply-add (FMA) instruction for- mat. The FMA family uses a unique format to encode four register operands and control rounding and negation. The format field describes whether the instruction is single, dou- ble, or quadruple precision. (Source: RISC-V) fmt rs2 rs1 rm rd 27 26 20 19 15 14 12 11 7 6 0 5 2 5 5 3 5 7 31 opcoders3 25 24 src3 S src2 src1 RM dest F[N]MADD/F[N]MSUB
  • 4. 4 RISC-V Offers Simple, Modular ISA March 2016© Microprocessor Report Compression Cuts Code Size and Cost The last integer extension (C) adds no other functions but instead encodes instructions to save storage and reduce instruction footprint. This compression extension is avail- able for the base integer ISA as well as floating-point loads and stores. It creates 16-bit compressed instructions that are transparent to programmers and compilers thanks to a 1:1 mapping between compressed and base instructions, which can be freely intermingled. The C extension has some restrictions to reduce instruction length. Compressed instructions can use a two- or three-operand format on the most common eight registers but only a two-operand for- mat on all 32 integer registers. The code-size reduction for RV32C is similar to that of ARM’s Thumb-2 ISA, as Figure 3 illustrates. Unlike Thumb, however, RV32C does not require separate decoders. The RISC-V team estimates that a compressed decoder requires only 700 gates. RV64C is a substantial improvement over existing 64-bit ISAs, which lack compressed-instruction support. The developers estimate that the Linux kernel text occupies 1.3MB using standard RISC-V instructions, 0.84MB using compressed instructions, and 0.65MB when compressed using bzip2. Because the last case precludes simple decoding and only reduces the size by 23%, they conclude that the C extension is very close to optimal complexity. Although the RISC-V base ISA and the prespecified extensions are fixed length, some extensions are not (e.g., compressed instructions). The overall ISA envisions variable-length encoding with formats already specified for 2 to 22 bytes. The RISC-V Foundation controls the standard ex- tensions to ensure consistency throughout the community. Portions of the instruction-encoding space are guaranteed to be unused by future standard extensions, essentially carving out space for custom extensions. Such extensions can create new registers, which the OS manages through a coprocessor model (e.g., explicit save and restore on context switch). Privilege Comes After Users The RISC-V ISA actually comprises four privilege layers: user (U), supervisor (S), hypervisor (H), and machine (M). Although user mode has been complete since 2014, the architecture’s more privileged layers remain unfinished. Between each layer is a binary interface (e.g., the ABI lies between the user application and the OS). At the lowest level, the machine mode is mandatory, and any software running at this level has complete access to the hardware. Conceptually, it’s the equivalent of Alpha PALcode or microcode, and it includes CSRs such as the misa register (which is similar to the x86 CPUID). All other modes are optional, and the smallest implementations (e.g., for low-cost embedded designs) may only support M mode with software running directly on the hardware. The basic architectural state for M mode is 128 bits along with another 256 bits for timers and performance counters. The hypervisor mode is intended for virtualized systems, but few specification details are available. In part, a cleanly defined M mode obviates some use cases for a hypervisor, but it also reflects the community’s initial focus on embedded design. Traditional Unix-style operating systems are at the supervisor privilege level. The virtual-memory model for RV32 is demand paged with a two-level page table and support for 4KB and 4MB pages. The minimal 64-bit virtual-memory system uses a three-level table with 4KB, 2MB, and 1GB pages (similar to x86), and it can map 39 bits of virtual address space; each additional level increases the virtual addressing by 9 bits up to six levels for 64 bits. Generally, TLBs are expected to handle address translation in hardware, but a software page-table walker in machine mode is possible. The RISC-V supervisor binary interface (SBI) provides a platform-level abstraction (e.g., to query devices and send interrupts) and is one of the main focus areas. An SBI draft should arrive with the next privileged- ISA revision. Figure 3. Code size for different ISAs. The footprint of the SPECint2006 suite for the compressed 32-bit RISC-V variants is similar to that of Thumb-2, whereas the 64-bit compressed RISC-V is denser than commercial options. (Source: RISC-V) For More Information The RISC-V Foundation web site provides a software- tool overview at riscv.org/software-tools. Yunsup Lee presented a 28nm RISC-V processor with integrated volt- age regulators at Hot Chips 27 (www.hotchips.org/wp- content/uploads/hc_archives/hc27/HC27.25-Tuesday- Epub/HC27.25.70-Processors-Epub/HC27.25.731-RISC- V-Lee-UCB-V4.with-backup.pdf). The most recent ver- sion of the ISA specification can be found at riscv.org/ specifications/; a synthesizable and configurable out-of- order core is also available (aspire.eecs.berkeley.edu/ publication/the-berkeley-out-of-order-machine-boom- an-industry-competitive-synthesizable-parameterized- risc-v-processor). 200% 160% 120% 80% 40% 0% 100% 140% 126% 101% 126% 100% 141% 129% 169%173% 136% 131% MIPS16e RV64C RV64 MIPS64 RV32C RV32 x86 Thumb-2 MIPS32 ARMv7-A x86-64 ARMv8 32-Bit Address 64-Bit Address
  • 5. RISC-V Offers Simple, Modular ISA 5 March 2016© Microprocessor Report To reduce the cost of minimal imple- mentations, only the M privilege level is re- quired. But just four privilege-level combin- ations are supported, as Figure 4 shows. A basic embedded system might use M mode to secure several different applications written in C and running in U mode. Similarly, a hy- pervisor could operate in M mode by parti- tioning the physical address space. Systems with M, S, and U modes can run Linux and correspond to a fairly normal nonvirtualized environment, whereas adding the H mode would be suitable for data- center servers. An Open ISA With RISCs and Advantages The RISC-V ISA is incomplete, but the user-mode specifi- cation indicates that it’s quite promising. The clean archi- tecture is easier to implement than ARM, specifically owing to simpler decoding. ARMv8 currently requires decoding of three different ISAs: ARMv8, ARMv7, and Thumb. In addition, RISC-V offers simpler addressing modes than ARM and omits complex instructions such as load/store multiple. This distinction is certainly noticeable; the Rocket core is roughly half the size of a similar ARM core. But the choice of ISA has a minimal effect on a larger core (e.g., three-issue out-of-order CPU), especially once caches are considered. For example, Intel’s x86 CPUs, which require complex decoders, are similar in overall size to RISC cores of comparable performance. Even for scalar micro- architectures, the die-area benefits of RISC-V are less sig- nificant when compared to a simpler RISC ISA such as ARC or MIPS. RISC-V’s greatest technical promise is the flexibility of custom extensions combined with a general-purpose archi- tecture. Potential RISC-V extensions include Cray-style vec- tor extensions, transactional memory, and bit manipulation. Both ARC (now Synopsys) and Tensilica (now Cadence) have offered similar extension capability for years. Cus- tom extensions can deliver huge performance gains, but they require custom tool chains, and they limit software portability. The RISC-V software ecosystem is in the early stages. A Linux 4.1 branch has been ported, and a full embedded Linux distribution known as Yocto is also available. The RISC-V tool chain includes the GCC compiler, LLVM and Clang, GDB, a verification suite, and several simulators. But the most important milestone is completing the super- visor interface (SBI), which will standardize the environ- ment for Linux and BSD operating systems and thereby deliver the general-purpose aspect. Mainstream-OS sup- port will broaden the appeal of RISC-V and enable many more applications. On the basis of early developments, the RISC-V ISA appears promising. It offers all the basic RISC features with a few twists that simplify the implementation, thereby re- ducing die area and potentially power consumption. Com- pared with today’s two most popular ISAs, RISC-V offers considerable area savings, particularly for low-end designs, and the ability to add custom extensions. Compared with ISAs such as ARC and Tensilica, RISC-V offers fewer tech- nical advantages, but its open-source business model will continue to drive interest in the new ISA. Figure 4. Supported privilege combinations. M mode is mandatory; all other privilege levels are optional. (Source: RISC-V) To subscribe to Microprocessor Report, access www.linleygroup.com/mpr or phone us at 408-270-3772. Application ABI AEE Application ABI OS Application ABI SBI SEE Application ABI OS Application ABI SBI Hypervisor Application ABI OS Application ABI SBI HBI HEE