Optimizing a new processor architecture

Presented by Rob Landley
Thursday 1:20 p.m.–2:05 p.m.
Target audience: Developer

Abstract

When the last patents on the SuperH architecture started expiring in 2014, the http://j-core.org project released a new BSD-licensed clean room VHDL implementation of an SOC compatible with the sh2 instruction set already capable of booting Linux to a shell prompt on a $50 FPGA board. Linux Weekly news covered this at https://lwn.net/Articles/647636/

Now we'd like to talk about the things we've done to speed up linux, gcc, musl-libc, and the VHDL itself since we first got Linux booted on the thing ~3 years ago. We've doubled the MHZ, added SMP support, implemented futexes, ported everything to device tree, tracked down kernel and toolchain bugs of the "how did this ever work" variety (spoiler: it didn't), and even have a native compiler working on the board. We'll explain why we selected this architecture instead of i386/sparc/m68k (whose patents have had just as long to expire), scaling the processor design up to 64 bit and down to Arduino country at the same time, when the best way to go isn't clear because of tradeoffs (with a "prefetch vs cache" example), decisions about compatibility (sh2 vs sh3 system call numbers, should 64 bit mode have branch delay slots), issues with interrupts and clocks and futexes we hit modernizing an older architecture, and so on.

Presented by

Rob Landley

15 years ago Rob set out to replace all the gnu packages in Linux From Scratch with alternatives like BusyBox, and spent so much time upgrading BusyBox he was appointed maintainer of that project. Ten years ago he left busybox and started over with toybox, and last year toybox was merged into the Android M base operating system. He's currently working to turn Android into a development environment capable of building itself under itself. Along the way he got involved in j-core.org (a BSD-licensed open source clean room clone of the SuperH processor architecture made possible by expiring patents), spent a couple years maintaining the kernel's Documentation directory and kernel.org/doc. Video of him throwing liquid nitrogen into a swimming pool (at a combination linux expo and science fiction convention he'd co-foundeded) has been viewed on Youtube 11 million times.

©2016 Linux Australia and linux.conf.au 2017. Linux is a registered trademark of Linus Torvalds. Site design by Takeflight. Image credits can be found on our Colophon.