HiFive Unmatched: Exploring A RISC-V Computing Experience

SiFive HiFive Unmatched: Full-Featured RISC-V PC For Developers

hifive unmatched top and bottom
Experimenting with SiFive's HiFive Unmatched RISC-V development board over the last few weeks has felt a bit like stepping back in time. The experience left me feeling a bit nostalgic. Picture this.

It's 1997. I'm a high school sophomore. I head over to my friend's house after class because a long-awaited CD with something called "Slackware Linux" on it has arrived. It's installed on a 486DX4 100 PC that lives in their poorly-lit, unfinished basement. The day's 30 minutes of free dial-up from the local ISP are used to download "tarballs" with "Kermit." Linux is strange and confusing, but I do like penguins.

Seem familiar to any of you? My recent experience installing and running Ubuntu on the HiFive Unmatched development platform from SiFive really did evoke memories of that first taste of Linux. Even down to the little details like sitting on the floor in a basement reading guides that I'd have been helpless without. The HiFive Unmatched’s claim to fame, its RISC-V CPU, compounded that feeling by pulling the rug of familiar CPU architectures out from under me and presenting a challenge when it came time to run the software I most commonly use on a daily basis. It was totally late-90s Linux déjà vu.

What is RISC-V?

Created by UC Berkeley in 2010, RISC-V is an open source Reduced Instruction Set Computer (RISC) instruction set architecture (ISA) that anyone is free to design a CPU around. It’s not licensed with an upfront costs and ongoing royalty payments in the way that, for example, Arm does things. However, designs based on the architecture do not have to be open source, and to produce physical CPUs you need a lot more money and resources than one typically thinks of when they hear the term “open source hardware.” Ordering up custom silicon isn’t quite as simple as getting a custom PCB made, at least not yet.

hifive port cluster

Who is SiFive? Makers Of The HiFive Unmatched

SiFive was founded in 2015 and is one of the largest and most prominent proponents of the RISC-V architecture. Since then, it has been amassing the resources necessary to make good on its vision for RISC-V processors.

Developer access to native hardware is a critical component in the roll out and adoption of a new microarchitecture. To date, SiFive has produced several development boards that feature its chips, the most recent being the HiFive Unmatched, which sports its current flagship SiFive FU740 SoC (the "F" stands for Freedom).

hifive unmatched specs

The CPU powering the SiFive FU740 is an implementation of RISC-V that includes some optional features. At the heart of the design is a 64-bit quad-core RV64GC processor running at 1.2GHz. The “RV64” part is self-explanatory, but the letters that follow are important to understand. “Reduced” is built into the RISC name and to make a general-purpose processor some extensions need to be added that are generally taken for granted in x86-land. In this case, the “GC” part of the name means that extensions for integer multiplication and division, atomic instructions (memory usage synchronization), as well as single- and double-precision floating-point operations are included.

Inspecting The HiFive Unmatched

Once removed from its packaging, the HiFive Unmatched is an unassuming Mini-ITX board, visually dominated by a pair of small heatsinks. The actively cooled heatsink sits atop the FU740 SoC itself while the passive heatsink covers a PCIe switch chip. Impressively, there’s 16GB of 1866MT/s DDR4 built into the system, which is a boon for emerging RISC-V developers. The HiFive Unmatched’s physical PCIe 3.0 x16 slot has eight lanes of connectivity. The larger PCIe x4 M.2 slot onboard is designed for an NVMe SSD, while the smaller x1 slot is intended to add Wi-Fi connectivity.

hifive unmatched top
The board has a pair of 3-pin PWM fan headers, should the need for additional cooling arise (but it probably won’t). Facing the outside world on the back of the board are a set of four USB 3.2 Gen 1 ports and a Gigabit Ethernet port. Also visible on the back of the board are a microSD card slot and a Micro-USB port, which we’ll talk about shortly.


RISC-V And The HiFive Unmatched: Where To Start?

Unlike my friend described briefly in the intro, I didn’t become a Linux guru and talented programmer. I’ve dabbled with Linux for various personal and professional needs throughout the years. However, I have generally remained a casual Linux users that’s just in it for the penguins (all my TF2 class loadouts include a Tux on their belt, for example).
hifive unmatched box tux 2
That said, I was still eager to take the HiFive Unmatched for a spin. Even if I wasn't a Linux expert, at least I could pop into the BIOS, set the boot device to a flash drive, and get ready to install it, right? Wrong. I installed a spare Radeon R7 240 that was recently retired from an older PC into the slot, hit the built-in power switch, and starred at a blank screen for a few minutes until I decided I needed to RTFM.

Thankfully, SiFive's quick start guide is quite good. I quickly learned that there was an FTDI serial port emulator chip onboard that could be used to SSH into the HiFive Unmatched from a separate PC, using the included USB cable. I also learned that I needed to pop the included microSD card into the slot on the Unmatched, so it had storage to boot from before it would come to life.

With those adjustments in place, I powered on the board again and watched my PuTTy terminal as it kept me in the loop on the boot process. By the way, the USB interface is powered by the host computer, so you can connect to the session whether the Unmatched is powered on or not. After a few minutes of only seeing data via PuTTy, the boot process detected the graphics card I’d installed and initialized it, waking up the screen and presenting me with a clone of what I could see in the terminal window. This was a bit of a relief because HiFive suggests RX 500 series cards for the Unmatched. Finally, I logged in with the credentials from the guide and before too long, I landed in the default Xfce desktop environment.

Learning The Basics

Now that I could boot to a functional Linux desktop, the next logical step was to blow it all away and install a fresh copy of Ubuntu onto an NVMe drive and see about getting the system to boot from it. That turned out to be a more difficult process than I had initially imagined, and proved to be an excellent learning experience, due to some missteps I made along the way.

In what I now consider a big win for my Linux knowledge, I spent a considerable amount of time reimaging the drive, prowling forum threads, bugging friends on Slack, and Googling error messages to no avail. No amount of prodding GParted, tweaking U-Boot, or any other esoteric command line shenanigans could convince the HiFive Unmatched to boot from anything but the SD card it came with.

linux desktop

Long story short, I would have saved myself a lot of time if I hadn’t assumed I could image the SSD with Ubuntu while booting from the microSD card that came with the board. Instead, I should have followed the guide here to the letter when it said to start with the fresh image of Ubuntu it linked to. After loading the recommended image onto a new card, the steps in the guide worked perfectly.

My new microSD card of choice was a 64GB Samsung EVO Select and the NVMe drive was a 1TB Western Digital Blue SN550. SiFive recommends a Samsung 970 EVO series SSD, but the WD Blue worked without issue. I didn’t have the foresight to pull out a stopwatch beforehand, but running apt update/upgrade once the system was finally booting from the SSD was considerably faster than doing the same on the microSD card. Even though I/O is only part of the performance equation, anyone using this system will likely want to optimize performance as much as possible. So, booting from an NVMe is effectively mandatory.

A Performance Quick-Take

I had a rough time collecting performance data for the HiFive Unmatched. Due to the current software constraints of the platform, web-based benchmarks are the order of the day for a reasonably fair comparison. That left the Epiphany browser as the only game in town. However, after multiple attempts to let the HiFive Unmatched finish running JetStream 2, I had to settle for Speedometer 2.0 instead, because the system never made it past the 5th test in JetStream (Epiphany was able to complete it without issue on other systems, though). Someday I can try again in Chromium or Firefox once they are ported over.

risc v browser running

After collecting that valuable data, I installed Linux and Epiphany on additional systems to get some perspective. I also recruited some friends to install Epiphany on a few of their mainstream Penguin-powered rigs to fill in some comparative gaps. When the dust settled, the Unmatched ended up trailing all of the other platforms we tested. However, that wasn’t unexpected and isn’t necessarily a problem given its role as development platform.

hifive unmatched performance benchmark

As you can see, the Unmatched isn’t exactly ready to be a daily driver. With the acknowledgment that this is only one performance metric, the 5w Broadwell M-5Y10 in my 6-year-old Asus UX305 (my personal minimum threshold for “good enough” browsing performance), is significantly faster than the FU740. Even the nearly-tolerable 2w Atom x5-Z8350, which powers my Rock Pi X aquarium, outpaces the FU740 by over 5x.

That said, being within striking distance of the ubiquitous Raspberry Pi 3 is promising at this stage. In a couple more generations, performance increases (and price drops) could make a relatively high-performance hobbyist RISC-V single board computer viable, and that would be a big deal.

A Case Only A Motherboard Could Love

Since the Unmatched’s performance doesn’t make it look good figuratively, I decided that I at least needed to make it look good physically. The bare board is appealing enough on its own, but I wanted to give it a home in a proper case. Problematically, none of the Mini-ITX cases I had laying around could handle a graphics card. Fortunately, I have a 3D printer. After some searching, I settled on this model by NiceDepth. It was designed to accommodate a low-profile card and a Pico PSU, both of which I was already using with the Unmatched.

hifive unmatched printed case

Due to the combination of 0.6mm nozzle and less than perfectly dry filament, the print turned out a little fuzzier than intended, but I’m ok with that. I did have to print it in two halves and glue it together because my Prusa Mini is just a touch too small to print Mini-ITX cases in one piece. I also printed a custom mounting bracket for the graphics card based on this design because I had lost the original and it wouldn’t have fit perfectly anyway.

hifive unmatched case lights
Eat your heart out, tempered glass.

All pieced together, with the I/O shield in place, and jack for the Pico PSU mounted onto the back, the whole assembly looks pretty darn swanky, especially in the dark. There are no RGB LEDs here, the HiFive Unmatched's simple diagnostic lighting just really shines in this Voronoi-style housing. Overall, I’d say this system looks like the perfect companion for that blank-cap Das Keyboard you bought when you were 24 and let people believe you still code on with Dvorak (yeah, you know who you are).

Notably missing from this case are any power or reset buttons. The ones built onto the board are easy to reach with the small, blunt, and non-conductive poking implement of your choice thanks to all the holes in the design. That’s a good thing too because one major oddity of this board is that it can’t be reset in software, you must hit the button (yes, really). The Unmatched does have a traditional set of front panel connectors, though.

This section wouldn’t be complete without admitting to the blatant sacrifice of quality I made in the name of aesthetics. Unlike the other components I plugged into the Unmatched, the Wi-Fi module (an AX200NGW) and antenna set I used were both on the recommended list. I was pretty amused by the antenna’s disclaimer that, “This item is supplied to professionals, You are expected to know what you are doing.” However, I felt much less smug after I had hot-glued the fiddly connectors to the Wi-Fi card and crammed the antennas between the back of the board and the case itself because I didn’t want to see them. Ultimately, it probably didn’t matter because, whether using wired Ethernet or Wi-Fi, the HiFive Unmatched couldn’t juggle internet traffic any faster than about 40Mbps. So, I don’t feel too bad about it.

hifive unmatched angle

HiFive Unmatched: RISC-V Development Ready

At $665, the HiFive Unmatched from SiFive isn’t a mainstream single board PC or hobbyist curiosity. This board has a serious job to do as an ambassador and trailblazer for future RISC-V hardware and software development. It also represents a significant and meaningful commitment to open-source hardware that is commendable.

As a product offering, you probably already know if the HiFive Unmatched is something you can properly utilize or not. I believe I’ve sufficiently communicated that I'm not quite at that level, but I am left entertained and enlightened by spending time with it. If you can use it properly, the HiFive Unmatched from SiFive is a robust and capable platform that really is unmatched in today’s market. I'm looking forward to seeing what comes next.

Related content

Comments