Optimizing a new processor architecture
Rob Landley
http://linux.conf.au/schedule/presentation/29/
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.
Видео Optimizing a new processor architecture канала linux conf au 2017 - Hobart, Australia
http://linux.conf.au/schedule/presentation/29/
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.
Видео Optimizing a new processor architecture канала linux conf au 2017 - Hobart, Australia
Показать
Комментарии отсутствуют
Информация о видео
19 января 2017 г. 18:44:39
00:48:06
Другие видео канала
A tour of the ARM architecture and its Linux supportThe Vulkan Graphics API - what it means for LinuxMy personal fight against the modern laptopHow the AMD “Zen” Core is MadeArm vs x86 - Key Differences ExplainedLinus Torvalds "Nothing better than C"Tutorial: Building the Simplest Possible Linux System - Rob Landley, se-instruments.comWhy the J-core open processor is coolWhy Linus Torvalds doesn't use Ubuntu or DebianUsing Linux At Work - Part 2 - Collaborating with people on other OSesLets LISP like it's 1959Tutorial: Introduction to Reverse Engineering - Mike Anderson, The PTR Group, Inc."I'm sorry Dave, I can't do that": Ethics in Software DevelopmentThe kernel reportClang Built LinuxIntegrating high speed fabrics into the Linux network stackSetting Up Linux On Intel's New NUC9VXQNX Xeon NUC KitClang only, Musl Linux system benchmarkedMaintaining the Unmaintainable: Picking up the Baton of a Secure Kernel PatchsetFutexes are cursed