<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>lowRISC</title>
    <link>http://www.lowrisc.org/</link>
    <description>Recent content on lowRISC</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 30 Jun 2015 17:00:45 +0100</lastBuildDate>
    <atom:link href="http://www.lowrisc.org/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Second RISC-V Workshop: Day Two</title>
      <link>http://www.lowrisc.org/blog/2015/06/second-risc-v-workshop-day-two</link>
      <pubDate>Tue, 30 Jun 2015 17:00:45 +0100</pubDate>
      
      <guid>http://www.lowrisc.org/blog/2015/06/second-risc-v-workshop-day-two</guid>
      <description>

&lt;p&gt;It&amp;rsquo;s the second day of the &lt;a href=&#34;http://riscv.org/workshop-jun2015.html&#34;&gt;second RISC-V
workshop&lt;/a&gt; today in Berkeley,
California.  I&amp;rsquo;ll be keeping a semi-live blog of talks and announcements
throughout the day.&lt;/p&gt;

&lt;h2 id=&#34;z-scale-tiny-32-bit-risc-v-systems-yunsup-lee:1ef1186fa93d1e56b496df4f0f6ee20f&#34;&gt;Z-scale. Tiny 32-bit RISC-V Systems: Yunsup Lee&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Z-Scale is a family of tiny cores, similar in spirit to the ARM Cortex-M
family. It integrates with the AHB-Lite interconnect.&lt;/li&gt;
&lt;li&gt;Contrast to Rocket (in-order cores, 64-bit, 32-bit, dual-issue options), and
BOOM (a family of out-of-order cores).&lt;/li&gt;
&lt;li&gt;Z-Scale is a 32-bit 3-stage single-issue in-order pipeline executing the
RV32IM ISA.&lt;/li&gt;
&lt;li&gt;The instruction bus and data base are 32-bit AHB-Lite buses&lt;/li&gt;
&lt;li&gt;There is a plan to publish a microarchitecture specification to make it easy
for others to implement an equivalent design in the language of their choice.&lt;/li&gt;
&lt;li&gt;The Zscale is slightly larger than the Cortex-M0 due to having 32 vs 16
registers, 64-bit performance counters, and a fast multiply and divide. The
plan is to add an option to generate a Zscale implementing RV32E (i.e. only
having 16 registers).&lt;/li&gt;
&lt;li&gt;Zscale is only 604 loc in Chisel. 274 lines for control, 267 for the
datapath, and 63 for the top-level. Combine with 983loc borrowed from Rocket.&lt;/li&gt;
&lt;li&gt;A Verilog implementation of Z-scale is being implemented. It&amp;rsquo;s currently
1215 lines of code.&lt;/li&gt;
&lt;li&gt;The repo is &lt;a href=&#34;https://github.com/ucb-bar/zscale&#34;&gt;here&lt;/a&gt;, but Yunsup needs to
do a little more work to make it easily buildable. There will be a blog post
on the RISC-V site soon.&lt;/li&gt;
&lt;li&gt;All future Rocket development will move to the public
&lt;a href=&#34;https://github.com/ucb-bar/rocket-chip&#34;&gt;rocket-chip&lt;/a&gt; repo!&lt;/li&gt;
&lt;li&gt;Memory interfaces:

&lt;ul&gt;
&lt;li&gt;TileLink is the Berkeley cache-coherent interconnect&lt;/li&gt;
&lt;li&gt;NASTI (Berkeley implementation of AXI4)&lt;/li&gt;
&lt;li&gt;HASTI (implementation of AHB-lite)&lt;/li&gt;
&lt;li&gt;POCI (implementation of APB)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The plan is to dump HTIF in Rocket, and add a standard JTAG debug interface.&lt;/li&gt;
&lt;li&gt;Future work for Z-Scale includes a microarchitecture document, improving
performance, implementing the C extensions, adding an MMU option, and adding
more devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;boom-berkeley-out-of-order-machine-chris-celio:1ef1186fa93d1e56b496df4f0f6ee20f&#34;&gt;BOOM. Berkeley Out-of-order-Machine: Chris Celio&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;BOOM is a (work in progress) superscalar, out-of-order RISC-V processor
written in Chisel.&lt;/li&gt;
&lt;li&gt;Chris argues there&amp;rsquo;s been a general lack of effort in academia to build and
evaluate out-of-order designs. As he points out, much research relies on
software simulators with no area or power numbers.&lt;/li&gt;
&lt;li&gt;Some of the difficult questions for BOOM are which benchmarks to use, and
how many cycles you need to run. He points out that mapping to FPGA running at
50MHz, it would take around a day for the SPEC benchmarks for a cluster of
FPGAs.&lt;/li&gt;
&lt;li&gt;The fact that rs1, rs2, rs3 and rd are always in the same space in the
RISC-V ISA allows decode and rename to proceed in parallel.&lt;/li&gt;
&lt;li&gt;BOOM supports the full RV64G standard. It benefits from reusing Rocket as a
library of components.&lt;/li&gt;
&lt;li&gt;BOOM uses explicit renaming, with a unified register file holding both
x-regs and f-regs (floating point). A unified issue window holds all
instructions.&lt;/li&gt;
&lt;li&gt;BOOM is synthesisable and hits 2GHz (30 FO4) in TSMC 45nm.&lt;/li&gt;
&lt;li&gt;BOOM is 9kloc of its own code, and pulls in 11.5kloc from other libraries
(rocket, uncore, floating poing)&lt;/li&gt;
&lt;li&gt;BOOM compares well to an ARM Cortex-A9 and A15 in terms of CoreMark/MHz. A
4-wide BOOM gives a similar CoreMark/MHz to the A15.&lt;/li&gt;
&lt;li&gt;Future work will look at new applications, a ROCC interface, new
microarchitecture designs. The plan is to open source by this winter.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;fabscalar-risc-v-rangeen-basu-roy-chowdhury:1ef1186fa93d1e56b496df4f0f6ee20f&#34;&gt;Fabscalar RISC-V: Rangeen Basu Roy Chowdhury&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A FabScalar RISC-V version should be released in the next few days&lt;/li&gt;
&lt;li&gt;FabScalar generates synthesisable RTL for arbitrary superscalar cores with a
canonical superscalar template.&lt;/li&gt;
&lt;li&gt;FabScalar uses a library of pipeline stages, providing many different
designs for each canonical pipeline stage.&lt;/li&gt;
&lt;li&gt;Two chips have been built with FabScalar so far (using PISA).&lt;/li&gt;
&lt;li&gt;The RISC-V port was built on the previous PIA &amp;lsquo;Superset Core&amp;rsquo;. This had
64-bit instructions and 32-bit address and data.&lt;/li&gt;
&lt;li&gt;For RISC-V FabScalar they have a unified physical register file and unified
issue queue for floating point (so the FP ALU is treated like just another
functional unit).&lt;/li&gt;
&lt;li&gt;FabScalar RISC-V will be released as an open source tool complete with
uncore components and verification infrastructure. It will be available on
GitHub in the fall.&lt;/li&gt;
&lt;li&gt;The license isn&amp;rsquo;t yet decided, but there&amp;rsquo;s a good chance it will be BSD.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;aristotle-a-logically-determined-clockless-risc-v-rv32i-matthew-kim:1ef1186fa93d1e56b496df4f0f6ee20f&#34;&gt;Aristotle. A Logically Determined (Clockless) RISC-V RV32I: Matthew Kim&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Two logical values are defined. Data and null (not data). Then define
threshold operators to produce &amp;lsquo;null convention logic&amp;rsquo;.&lt;/li&gt;
&lt;li&gt;See &lt;a href=&#34;https://users.soe.ucsc.edu/~scott/papers/NCL2.pdf&#34;&gt;here&lt;/a&gt; for more on
Null Convention Logic&lt;/li&gt;
&lt;li&gt;This results in a system built entirely of combinational logic. I couldn&amp;rsquo;t
hope to accurately summarise the work here. I&amp;rsquo;m afraid you might be best off
waiting for the recording.&lt;/li&gt;
&lt;li&gt;Current executing compiled quicksort at approximately 400mips (without
serious optimisation).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;risc-v-erification-prashanth-mundkur:1ef1186fa93d1e56b496df4f0f6ee20f&#34;&gt;RISC-V(erification): Prashanth Mundkur&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Current architectures e.g. those from Intel and ARM have large errata sheets
published semi-regularly. Can we do better for RISC-V?&lt;/li&gt;
&lt;li&gt;Need an unambiguous formal ISA specification which should be coupled to a
processor implementation amenable to the two, with a formal link between the
two.&lt;/li&gt;
&lt;li&gt;Currently specifying RISC-V in the &lt;a href=&#34;http://www.cl.cam.ac.uk/~acjf3/l3/&#34;&gt;L3
DSL&lt;/a&gt;. The interpreter is used as a
reference oracle for processor implementations.&lt;/li&gt;
&lt;li&gt;The current state of the spec is &lt;a href=&#34;https://github.com/pmundkur/l3riscv&#34;&gt;available on
Github&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The work has already helped to highlight some areas where clarification is
needed in the written specification&lt;/li&gt;
&lt;li&gt;Next steps would involve support for the compressed instruction set and
floating point, booting Linux, and using for tandem-verification (e.g. with
Flue from Bluespec).&lt;/li&gt;
&lt;li&gt;Hope to export usable HOL4 formal definitions, and use that to prove
information properties (e.g. non-interference and information flow in
low-level privileged code).&lt;/li&gt;
&lt;li&gt;The talk is now moving to the second half, where Prashanth is presenting
Nirav Dave&amp;rsquo;s work&lt;/li&gt;
&lt;li&gt;This work is looking at rapidly verifying architectural and
micro-architectural variants of RISC-V. Rely on translating between
microarchitectural-states and ISA-level states.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;towards-general-purpose-tagged-memory-wei-song:1ef1186fa93d1e56b496df4f0f6ee20f&#34;&gt;Towards General-Purpose Tagged Memory: Wei Song&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Wei Song is presenting his &lt;a href=&#34;http://www.lowrisc.org/blog/2015/04/lowrisc-tagged-memory-preview-release/&#34;&gt;work on tagged memory support in
lowRISC&lt;/a&gt;.&lt;br /&gt;
I&amp;rsquo;ll post the slides shortly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;raven3-a-28nm-risc-v-vector-processor-with-on-chip-dc-dc-convertors-brian-zimmer:1ef1186fa93d1e56b496df4f0f6ee20f&#34;&gt;Raven3, a 28nm RISC-V Vector Processor with On-Chip DC/DC Convertors: Brian Zimmer&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Support dynamic voltage and frequency scaling on-chip with no off-chip
components.&lt;/li&gt;
&lt;li&gt;Want to switch all converters simultaneously to avoid charge sharing. The
clock frequency adapts to track the voltage ripple.&lt;/li&gt;
&lt;li&gt;Raven has a RISC-V scalar core, vector accelerator. 16KB scalar instruction
cache, 32KB shared data cache, and 8KB instruction cache. This has a 1.19mm^2
area.&lt;/li&gt;
&lt;li&gt;The converter area is 0.19mm^2&lt;/li&gt;
&lt;li&gt;The chip was wire-bonded on to a daughter-board, which was then connected to
a larger motherboard connected to a Zedboard&lt;/li&gt;
&lt;li&gt;Converter transitions are less than 20ns, which allows extremely
fine-grained DVFS.&lt;/li&gt;
&lt;li&gt;Raven3 showed 80% efficiency across a wide voltage range and achieved
26GFLOPS/W using the on-chip conversion.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;evaluating-risc-v-cores-for-pulp-an-open-parallel-ultra-low-power-platform-sven-stucki:1ef1186fa93d1e56b496df4f0f6ee20f&#34;&gt;Evaluating RISC-V Cores for PULP. An Open Parallel Ultra-Low-Power Platform : Sven Stucki&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Approximately 40 people working on PULP in some way&lt;/li&gt;
&lt;li&gt;Ultimate (ambitious) goal is one 1GOPS/mW (or 1pJ/op). Also hope to achieve
energy proportionality.&lt;/li&gt;
&lt;li&gt;Plan is to be open source on GitHub&lt;/li&gt;
&lt;li&gt;PULP has been silicon-proven in 28nm, 65nm, 130nm and 180nm. The team have
tape-outs planned through to 2016.&lt;/li&gt;
&lt;li&gt;Sven has replaced the OpenRISC frontend with a RISC-V decoder, hoping to
take advantage of the more active community and compressed instruction set
support.&lt;/li&gt;
&lt;li&gt;PULP is a simple 4-stage design supporting RV32IC as well as the mul
instruction from the M extension.&lt;/li&gt;
&lt;li&gt;Synthesising for UMC65, they see 22kilo-gate equivalent per core&lt;/li&gt;
&lt;li&gt;The OR10N core was a new OpenRISC implementation with support for hardware
loops, pre/postincrement memory access and vector instructions.&lt;/li&gt;
&lt;li&gt;Heading for a GlobalFoundries 28nm tapeout in Q4 2015&lt;/li&gt;
&lt;li&gt;See more on PULP &lt;a href=&#34;http://iis-projects.ee.ethz.ch/index.php/PULP&#34;&gt;at the
website&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Alex Bradbury&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Second RISC-V Workshop: Day One</title>
      <link>http://www.lowrisc.org/blog/2015/06/second-risc-v-workshop-day-one</link>
      <pubDate>Mon, 29 Jun 2015 17:02:57 +0100</pubDate>
      
      <guid>http://www.lowrisc.org/blog/2015/06/second-risc-v-workshop-day-one</guid>
      <description>

&lt;p&gt;The &lt;a href=&#34;http://riscv.org/workshop-jun2015.html&#34;&gt;second RISC-V workshop&lt;/a&gt; is going
on today and tomorrow in Berkeley, California. I&amp;rsquo;ll be keeping a semi-live
blog of talks and announcements throughout the day.&lt;/p&gt;

&lt;h2 id=&#34;introductions-and-welcome-krste-asanović:1198e896ab6f8fa7b8bfab04cfcd8c73&#34;&gt;Introductions and welcome: Krste Asanović&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The beginning of Krste&amp;rsquo;s talk will be familiar for anyone who&amp;rsquo;s seen an
introduction to RISC-V before. Pleasingly, there are a lot of new faces here
at the workshop so the introduction of course makes a lot of sense.&lt;/li&gt;
&lt;li&gt;Although the core RISC-V effort is focused on the ISA specification, there
is interest in looking to expand this to look at how to standardise access to
I/O etc.&lt;/li&gt;
&lt;li&gt;RV32E is a &amp;ldquo;pre-emptive strike&amp;rdquo; at those who might be tempted to fragment
the ISA space for very small cores. It is a 16-register subset of RV32I.&lt;/li&gt;
&lt;li&gt;The compressed instruction set has been released since the last workshop,
there will be talk later today about it. It gives 25-30% code size reduction,
and surprisingly there&amp;rsquo;s still lots of 16-bit encode space for additional
extensions.&lt;/li&gt;
&lt;li&gt;Krste makes the point that AArch64 has 8 addressing modes vs just 1 for
RISC-V. The comparison of the size of the GCC/LLVM backends is perhaps less
interesting given that the ARM backend actually has rather a lot more
optimisations.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Simplicity breeds contempt&amp;rdquo;. &amp;ldquo;So far, no evidence more complex ISA is
justified for general code&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Will be talking about a Cray-style vector ISA extension later today (i.e.&lt;br /&gt;
not packed-SIMD ISA or GPU-style).&lt;/li&gt;
&lt;li&gt;Rocket core is only about ~12kloc of Chisel in total. ~5kloc for the
processor, ~2kloc for floating-point units, ~4.6kloc for &amp;lsquo;uncore&amp;rsquo; (coherence
hubs, L2, caches etc).&lt;/li&gt;
&lt;li&gt;State of the RISC-V Nation: many companies &amp;lsquo;kicking the tires&amp;rsquo;. If you were
thinking of designing your own RISC ISA for project, then use RISC-V. If you
need a complete working support core &lt;em&gt;today&lt;/em&gt; then pay $M for an industry core.&lt;br /&gt;
If you need it in 6 months, then consider spending that $M on RISC-V
development.&lt;/li&gt;
&lt;li&gt;RISC-V Foundation is being formed, a 501&amp;copy;(6), with Rick O&amp;rsquo;Conner as
Executive Director. The mission statement is &amp;ldquo;to standardize, protect, and
promote the free and open RISC-V instruction set architecture and its hardware
and software ecosystem for use in all computing devices&amp;rdquo;. Plan is to publicly
announce before HotChips later this year and is actively recruiting companies
who want to be &amp;lsquo;founding&amp;rsquo; members. You will need to be a member of the
foundation in good standing to use the RISC-V trademark (unless you are a
non-profit).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;an-update-on-lowrisc-alex-bradbury:1198e896ab6f8fa7b8bfab04cfcd8c73&#34;&gt;An update on lowRISC: Alex Bradbury&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Many thanks to the audience for all the questions. My slides are &lt;a href=&#34;https://speakerdeck.com/asb/an-update-on-lowrisc&#34;&gt;available
here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Unfortunately the SHAKTI project team from India have been caught up in the
malfunctioning US State Department computer systems and so haven&amp;rsquo;t been able
to get visas to give their talk&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;compressed-extension-proposal-david-patterson:1198e896ab6f8fa7b8bfab04cfcd8c73&#34;&gt;Compressed Extension Proposal: David Patterson&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Looked at existing compressed instruction sets, and tried to simplify things
and throw away ideas that add complexity but provide little benefit.&lt;/li&gt;
&lt;li&gt;Ended up with a specification that is pleasingly minimal, with each
instruction decoding to a single RV32 instruction.&lt;/li&gt;
&lt;li&gt;Keen on community feedback on additional RVC instructions. Identified a set
of 24 that have little impact on current compiler-generated code, but could be
useful for some use cases.&lt;/li&gt;
&lt;li&gt;You can read the RVC spec
&lt;a href=&#34;http://riscv.org/spec/riscv-compressed-spec-v1.7.pdf&#34;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Points out that Thumb2 is only a 32-bit address ISA. Although it is slightly
smaller than RV32C, the RISC-V compressed spec has the benefit of supporting
64-bit addressing.&lt;/li&gt;
&lt;li&gt;Rather than adding the complexity of load multiple and store multiple,
experimented with adding calls to a function that does the same thing. This
hurts performance, but gives a large benefit for code size.&lt;/li&gt;
&lt;li&gt;One question was on the power consumption impact. Don&amp;rsquo;t have numbers on that&lt;br /&gt;
yet.&lt;/li&gt;
&lt;li&gt;Should we require the compressed instruction set? Don&amp;rsquo;t want to add it to
the minimal &amp;lsquo;I&amp;rsquo; instruction set, but could add it to the standard expected by
Linux.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;goblincore64-a-risc-v-extension-for-data-intensive-computing-john-leidel:1198e896ab6f8fa7b8bfab04cfcd8c73&#34;&gt;GoblinCore64. A RISC-V Extension for Data Intensive Computing: John Leidel&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Building a processor design aimed at data intensive algorithms and
applications. Applications tend to be very cache unfriendly.&lt;/li&gt;
&lt;li&gt;GC64 (Goblin Core) has a thread control unit. A very small micro-coded unit
(e.g. implement RV64C) is microcoded to perform the contest switching task.&lt;/li&gt;
&lt;li&gt;Have added user-visible registers for thread id, thread context, task
exception register etc etc.&lt;/li&gt;
&lt;li&gt;The GKEY supervisor register contains a 64-bit key loaded by the kernel. It
determines whether a task may spawn and execute work on neighboring task
processors, providing a very rudimentary protection mechanism.&lt;/li&gt;
&lt;li&gt;Making use of RV128I - it&amp;rsquo;s not just there for fun!&lt;/li&gt;
&lt;li&gt;Support various instruction extensions, e.g. IWAIT, SWPAWN, JOIN, GETTASK,
SETTASK. Basic operations needed to write a thread management system (such as
pthreads) implemented as microcoded instructions in the RISC-V ISA.&lt;/li&gt;
&lt;li&gt;Also attempting to define the data structures which contain task queue data.&lt;/li&gt;
&lt;li&gt;Currently looking at lowRISC-style minion cores to implement microcoded
memory coalescing units.&lt;/li&gt;
&lt;li&gt;Read the GC64 specification doc
&lt;a href=&#34;http://discl.cs.ttu.edu/gitlab/gc64/gc64-doc/tree/master&#34;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;vector-extension-proposal-krste-asanović:1198e896ab6f8fa7b8bfab04cfcd8c73&#34;&gt;Vector Extension Proposal: Krste Asanović&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Goals: efficient and scalable to all reasonable design points. Be a good
compiler target, and to support implicit auto-vectorisation through OpenMP and
explicit SPMD (OpenCL) programming models. Want to work with virtualisation
layers, and fit into the standard 32-bit encoding space.&lt;/li&gt;
&lt;li&gt;Krste is critical of GPUs for general compute. I can summarise his arguments
here, but the slides will be well worth a read. Krste has spent decades
working on vector machines.&lt;/li&gt;
&lt;li&gt;With packed SIMD you tend to need completely new instructions for wider
SIMD. Traditional vector machines allow you to set the vector length register
to provide a more uniform programming model. This makes loop strip-mining more
straight-forward.&lt;/li&gt;
&lt;li&gt;Add up to 32 vector data registers (v0-v31) in addition to the basic scalar
x and f registers. Each vector register is at least 3 elements each, with
variable bits per element. Also add 8 vector predicate registers, with 1-bit
per element. Finally, add vector configuration and vector length CSR
registers.&lt;/li&gt;
&lt;li&gt;Other features

&lt;ul&gt;
&lt;li&gt;Reconfigurable vector registers allow you to exchange unused architectural
registers for longer vectors. e.g. if you only need 4 architectural vector
registers you&amp;rsquo;ll have a larger vector length.&lt;/li&gt;
&lt;li&gt;Mixed-precision support&lt;/li&gt;
&lt;li&gt;Intenger, fixed-point, floating-point arithmetic&lt;/li&gt;
&lt;li&gt;Unit-stride, strided, indexed load/stores&lt;/li&gt;
&lt;li&gt;Predication&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Mixed-precision support allows you to subdivide a physical register into
multiple narrower architectural registers as requested.&lt;/li&gt;
&lt;li&gt;Sam binary code works regardless of number of physical register bits and the
number of physical lanes.&lt;/li&gt;
&lt;li&gt;Use a polymorphic instruction encoding. e.g. a single signed integer ADD
opcode that works on different size inputs and outputs.&lt;/li&gt;
&lt;li&gt;Have separate integer and floating-point loads and stores, where the size is
inherent in the destination register number.&lt;/li&gt;
&lt;li&gt;All instructions are implicitly predicated under the first predicate
register by default.&lt;/li&gt;
&lt;li&gt;What is the difference between V and Hwacha? Hwacha is a non-standard
Berkeley vector extensions design to push the state-of-the-art for
in-order/decoupled vector machines. There are similarities in the lane
microarchitecture. Current focus is bringing up OpenCL for Hwacha, with the V
extension to follow.&lt;/li&gt;
&lt;li&gt;Restartable page faults are supported. Similar to the DEC Vector VAX.&lt;/li&gt;
&lt;li&gt;Krste pleads people not to implement a packed SIMD extension, pointing out
that a minimal V implementation would be very space efficient.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;privileged-architecture-proposal-andrew-waterman:1198e896ab6f8fa7b8bfab04cfcd8c73&#34;&gt;Privileged Architecture Proposal: Andrew Waterman&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Aims to provide a clean split between layers of the stack.&lt;/li&gt;
&lt;li&gt;You can read the privileged spec
&lt;a href=&#34;http://riscv.org/spec/riscv-privileged-spec-v1.7.pdf&#34;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Supports four privilege modes. User, Supervisor, Hypervisor and Machine
mode.&lt;/li&gt;
&lt;li&gt;For a simple embedded system that only needs M-mode there is a low
implementation cost. Only 2^7 bits of architectural state in addition to the
user ISA, plus 2^7 more bits for timers and another 2^7 for basic performance
counters.&lt;/li&gt;
&lt;li&gt;Defined the basic virtual memory architectures to support current Unix-style
operating systems. The design is fairly conventional, using 4KiB pages.&lt;/li&gt;
&lt;li&gt;Why go with 4KiB pages rather than 8KiB as was the initial plan? Concerned
with porting software hard-coded to expect 4KiB pages. Also concerns about
internal fragmentation.&lt;/li&gt;
&lt;li&gt;Physical memory attributes such as cacheability are not encoded in the page
table in RISC-V. Two major reasons that Andrew disagrees with this are that
the granularity may not be tied to the page size, plus it is problematic for
virtualisation. Potentially coherent DMA will become more common meaning you
needn&amp;rsquo;t worry about these attributes.&lt;/li&gt;
&lt;li&gt;Want to support device interactions via a virtio-style interface.&lt;/li&gt;
&lt;li&gt;The draft Supervisor Binary Interface will be released with the next
privileged ISA draft. It includes common functionality for TLB shootdowns,
reboot/shutdown, sending inter-processor interrupts etc etc. This is a similar
idea to the PALCode on the Alpha.&lt;/li&gt;
&lt;li&gt;Hardware-accelerated virtualization (H-mode) is planned, but not yet
specified.&lt;/li&gt;
&lt;li&gt;A draft version of v1.8 of the spec is expected this summer, with a frozen
v2.0 targeted for the fall.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;rapidio-the-unified-fabric-for-performance-critical-computing-rick-o-connor:1198e896ab6f8fa7b8bfab04cfcd8c73&#34;&gt;RapidIO. The Unified Fabric for Performance-Critical Computing: Rick O&amp;rsquo;Connor&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;There are more 10Gbps RapidIO ports on the planet than there are 10Gbps
Ethernet ports. This is primarily due to the 100% market penetration in 4G/LTE
and 60% global 3G.&lt;/li&gt;
&lt;li&gt;The IIT Madras team are using RapidIO extensively for their RISC-V work&lt;/li&gt;
&lt;li&gt;Has been doing work in the data center and HPC space. Looking to use the AXI
ACE and connect that to RapidIO.&lt;/li&gt;
&lt;li&gt;There is interesting work on an open source RapidIO stack.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;cava-cluster-in-a-rack-peter-hsu:1198e896ab6f8fa7b8bfab04cfcd8c73&#34;&gt;CAVA. Cluster in a rack: Peter Hsu&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Problem: designing a new computer is expensive. But 80% is the same every
time.&lt;/li&gt;
&lt;li&gt;CAVA is not the same as the Oracle RAPID project.&lt;/li&gt;
&lt;li&gt;Would like to build a 1024-node cluster in a rack. DDR4 3200 = 25.6GB/s per
64-bit channel. Each 1U card would be about 600W with 32 nodes.&lt;/li&gt;
&lt;li&gt;Looking at a 96-core 10nm chip (scaled from a previous 350nm project).&lt;br /&gt;
Suppose you have a 3-issue out of order core (600K gates) and 32KiB I+d cache,
that would be around 0.24mm^2 in 10nm.&lt;/li&gt;
&lt;li&gt;Estimate a vector unit might be around the same area.&lt;/li&gt;
&lt;li&gt;Peter has detailed estimates for per-chip power, but it&amp;rsquo;s probably best to
refer to the slides for these.&lt;/li&gt;
&lt;li&gt;Research plan for the cluster involves a unified simulation environment,
running on generic clusters of x86 using open-source software. Everyone uses
the same simulator to perform &amp;ldquo;apples to apples&amp;rdquo; comparison. This allows easy
replication of published work.&lt;/li&gt;
&lt;li&gt;Simulation infrastructure will involve a pipeline siumlator, SoC simulator
(uncore logic), and a network simulator.&lt;/li&gt;
&lt;li&gt;Interested in applying Cray-style vectors to database workloads&lt;/li&gt;
&lt;li&gt;Could also have the ability to make associativity ways and possible
individual cache lines lockable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Alex Bradbury&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Summer of Code students for lowRISC</title>
      <link>http://www.lowrisc.org/blog/2015/05/summer-of-code-students-for-lowrisc</link>
      <pubDate>Wed, 13 May 2015 20:45:07 +0100</pubDate>
      
      <guid>http://www.lowrisc.org/blog/2015/05/summer-of-code-students-for-lowrisc</guid>
      <description>&lt;p&gt;lowRISC was fortunate enough to be chosen as a mentoring organisation in this
year&amp;rsquo;s &lt;a href=&#34;https://developers.google.com/open-source/soc/&#34;&gt;Google Summer of
Code&lt;/a&gt;. The Google Summer of
Code program funds students to work on open source projects over the summer.
We had 52 applications across the &lt;a href=&#34;http://www.lowrisc.org/docs/gsoc-2015-ideas/&#34;&gt;range of project
ideas&lt;/a&gt; we&amp;rsquo;ve been advertising.
As you can see from the range of project ideas, lowRISC is taking part as an
umbrella organisation, working with a number of our friends in the wider open
source software and hardware community.
We were allocated three slots from Google, and given the volume of high
quality applications making the selection was tremendously difficult. We have
actually been able to fund an additional three applicants from other sources,
but even then there were many promising projects we couldn&amp;rsquo;t support. We are
extremely grateful to all the students who put so much time and effort in to
their proposals, and to everyone who volunteered to mentor. The six &amp;lsquo;summer of
code&amp;rsquo; projects for lowRISC are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&#34;http://www.google-melange.com/gsoc/project/details/google/gsoc2015/asy/5757334940811264&#34;&gt;An online Verilog IDE based on
YosysJS&lt;/a&gt;.
Baptiste Duprat mentored by Clifford Wolf&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Baptiste will be working with an Emscripten-compiled version of
the &lt;a href=&#34;http://www.clifford.at/yosys/&#34;&gt;Yosys&lt;/a&gt; logic synthesis tool, building an
online Verilog IDE on top
of it which would be particularly suitable for training and teaching
materials. A big chunk of the proposed work is related to visualisation of the
generated logic. Improving the accessibility of hardware design is essential for
growing the potential contributor base to open source hardware
projects like lowRISC, and this is just the start of our efforts in that
space.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;a href=&#34;http://www.google-melange.com/gsoc/project/details/google/gsoc2015/hesham/5868011953061888&#34;&gt;Porting seL4 to
RISC-V&lt;/a&gt;.
Hesham ALMatary mentored by Stefan Wallentowitz&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://sel4.systems/&#34;&gt;seL4&lt;/a&gt; is a formally verified microkernel, which
currently has ports
for x86 and ARM. Hesham will be performing a complete port to
RISC-V/lowRISC. Security and microkernels are of great interest to
many in the community. It&amp;rsquo;s also a good opportunity to expand RISC-V platform
support and to put the recently released &lt;a href=&#34;https://blog.riscv.org/2015/05/risc-v-draft-privileged-architecture-version-1-7-released/&#34;&gt;RISC-V Privileged Architecture
Specification&lt;/a&gt;
through its paces. Hesham previously performed a port of RTEMS to
OpenRISC.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;a href=&#34;http://www.google-melange.com/gsoc/project/details/google/gsoc2015/prannoy1994/5651442522128384&#34;&gt;Porting jor1k to
RISC-V&lt;/a&gt;.
Prannoy Pilligundla mentored by Sebastian Macke&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://s-macke.github.io/jor1k/&#34;&gt;jor1k&lt;/a&gt; is by far the
&lt;a href=&#34;https://github.com/s-macke/jor1k/wiki/Benchmark-with-other-emulators&#34;&gt;fastest&lt;/a&gt;
Javascript-based full system
simulator. It also features a network device, filesystem support, and
a framebuffer. Prannoy will be adding support for RISC-V and look at
supporting some of the features we offer on lowRISC such as &lt;a href=&#34;http://www.lowrisc.org/docs/memo-2014-001-tagged-memory-and-minion-cores/&#34;&gt;minion
cores or tagged
memory&lt;/a&gt;.
This will be great not only as a demo, but
also have practical uses in tutorial or educational material.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;TCP offload to minion cores using rump kernels. Sebastian Wicki
mentored by Justin Cormack&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The intention here is to get a &lt;a href=&#34;http://rumpkernel.org/&#34;&gt;rump kernel&lt;/a&gt;
(essentially a libified
NetBSD) running bare-metal on a simple RISC-V system and evaluate
exposing the TCP/IP stack for use by other cores. e.g. a TCP/IP
offload engine running on a minion core. TCP offload is a good
starting point, but of course the same concept could be applied
elsewhere. For example, running a USB mass storage driver (and filesystem
implementation) on a minion core and providing a simple high-level
interface to the application cores.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Extend Tavor to support directed generation of assembly test cases.
Yoann Blein mentored by Markus Zimmermann&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/zimmski/tavor&#34;&gt;Tavor&lt;/a&gt; is a sophisticated fuzzing tool
implemented in Go. Yoann
will be extending it to more readily support specifying instruction
set features and generating a fuzzing suite targeting an ISA such as
RISC-V. Yoann has some really interesting ideas on how to go about
this, so I&amp;rsquo;m really interested in seeing where this on ends up.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Implement a Wishbone to TileLink bridge and extend TileLink
documentation. Thomas Repetti mentored by Wei Song&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://en.wikipedia.org/wiki/Wishbone_%28computer_bus%29&#34;&gt;Wishbone&lt;/a&gt; is the
interconnect of choice for most existing open
source IP cores, including most devices on
&lt;a href=&#34;http://opencores.org/&#34;&gt;opencores.org&lt;/a&gt;. The Berkeley
&lt;a href=&#34;https://github.com/ucb-bar/rocket-chip&#34;&gt;Rocket&lt;/a&gt; RISC-V implementation uses
their own &amp;lsquo;TileLink&amp;rsquo; protocol (we provide a &lt;a href=&#34;http://www.lowrisc.org/docs/tutorial/rocket-chip/&#34;&gt;brief
overview&lt;/a&gt;. By providing a
reusable bridge, this project will allow the easy reuse of opencores devices
and leverage the many man-years of effort that has already gone in to them.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first 3 of the above projects are part of Google Summer of Code
and the bottom 3 directly funded, operating over roughly the same timeline.
We&amp;rsquo;re also going to be having two local
students interning with us here at the University of Cambridge
Computer Lab starting towards the end of June, so it&amp;rsquo;s going to be a
busy and productive summer. It bears repeating just how much we appreciate the
support of everyone involved so far - Google through their Summer of Code
initiative, the students, and those who&amp;rsquo;ve offered to act as mentors. We&amp;rsquo;re
very excited about these projects, so please join us in welcoming the students
involved to our community. If you have any questions, suggestions, or guidance
please do leave them in the comments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Alex Bradbury&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>lowRISC tagged memory preview release</title>
      <link>http://www.lowrisc.org/blog/2015/04/lowrisc-tagged-memory-preview-release</link>
      <pubDate>Mon, 13 Apr 2015 22:28:10 +0000</pubDate>
      
      <guid>http://www.lowrisc.org/blog/2015/04/lowrisc-tagged-memory-preview-release</guid>
      <description>&lt;p&gt;We&amp;rsquo;re pleased to announce the &lt;a href=&#34;http://www.lowrisc.org/docs/tutorial/&#34;&gt;first lowRISC preview release&lt;/a&gt;, demonstrating support for tagged memory as
described in &lt;a href=&#34;http://www.lowrisc.org/docs/memo-2014-001-tagged-memory-and-minion-cores/&#34;&gt;our memo&lt;/a&gt;. Our ambition with lowRISC is to provide an open-source System-on-Chip
platform for others to build on, along with low-cost development boards
featuring a reference implementation. Although there&amp;rsquo;s more work to be done on
the tagged memory implementation, now seemed a good time to document what
we&amp;rsquo;ve done in order for the wider community to take a look. Please see our
&lt;a href=&#34;http://www.lowrisc.org/docs/tutorial/&#34;&gt;full tutorial&lt;/a&gt; which describes in some
detail the changes we&amp;rsquo;ve made to the Berkeley &lt;a href=&#34;https://github.com/ucb-bar/rocket&#34;&gt;Rocket
core&lt;/a&gt;, as well as how you can build and try
it out for yourself (either in simulation, or on an FPGA). We&amp;rsquo;ve gone to some
effort to produce this documentation, both to document our work, and to share
our experiences building upon the Berkeley RISC-V code releases in the hopes
they&amp;rsquo;ll be useful to other groups.&lt;/p&gt;

&lt;p&gt;The initial motivation for tagged memory was to prevent control-flow hijacking
attacks, though there are a range of other potential uses including
fine-grained memory synchronisation, garbage collection, and debug tools.&lt;br /&gt;
Please note that the instructions used to manipulate tagged memory in this
release (&lt;code&gt;ltag&lt;/code&gt; and &lt;code&gt;stag&lt;/code&gt;) are only temporary and chosen simply because they
require minimal changes to the core pipeline. Future work will include
exploring better ISA support, collecting performance numbers across a range of
tagged memory uses and tuning the tag cache. We are also working on developing
an &amp;lsquo;untethered&amp;rsquo; version of the SoC with the necessary peripherals integrated
for standalone operation.&lt;/p&gt;

&lt;p&gt;If you&amp;rsquo;ve visited lowrisc.org before, you&amp;rsquo;ll have noticed we&amp;rsquo;ve changed a few
things around. Keep an eye on this blog (and its &lt;a href=&#34;http://www.lowrisc.org/index.xml&#34;&gt;RSS
feed&lt;/a&gt;) to keep an eye on developments - we
expect to be updating at least every couple of weeks. We&amp;rsquo;re very grateful to
the RISC-V team at Berkeley for all their support and guidance. A large
portion of the credit for this initial code release goes to &lt;a href=&#34;http://wsong83.github.io/&#34;&gt;Wei
Song&lt;/a&gt;, who&amp;rsquo;s been working tirelessly on the HDL
implementation.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>

