Summary of PULPino – An open-source microcontroller system based on RISC-V
OPENPULP is an ultra-low power, 8-core RISC-V parallel system featuring a host core, DMA engine, event unit, and shared instruction cache for sensor data processing. Ariane is a new Linux-ready, 64-bit RISC-V core with I, M, and C extensions designed for Unix-like OS support. Both projects are open-source and available on GitHub.
Parts used in the OPENPULP project:
- Host core
- Eight-core compute cluster
- IO peripherals
- IO-DMA engine
- Low-latency memory interconnect
- Multi-banked scratchpad memory
- Advanced DMA-engine for 2D transfers
- Event unit
- Shared instruction cache
- Hardware Processing Engines (HWPEs)
Parts used in the Ariane project:
- Six-stage single issue in-order CPU
- RV64-IMC extension support
- Separate TLBs
- Hardware PTW
- Branch target buffer
- Branch history table
- Return address stack
Finally, PULP, goes multicore! We are happy to launch our flagship RISC-V-based parallel-ultra low power open source system. Simply put, OPENPULP, today’s new kid in town, is the most advanced open-source release we have done so far, and a quantum leap ahead in terms of performance, efficiency and completeness.
OPENPULP is an MCU on steroids: an ultra-low power “host” core coupled with a powerful compute engine based on a tightly-coupled cluster of eight cores. To spice things up, we also added an extensive set of IO peripherals and an ultra-efficient IO-DMA which can move data from peripherals to on-chip memory while the cores sleep, and trigger them in action when a data frame is ready. This heterogeneous architecture enables flexible and energy-efficient processing of data streams coming from multiple high-bandwidth sensors such as imagers, microphone arrays, and multi-electrode ExG biosignal arrays.
The brand new 8-core cluster is a true parallel-processing engine, featuring:
- A new low-latency memory interconnect enabling energy-efficient data sharing and atomic accesses on a multi-banked scratchpad memory
- An advanced DMA-engine, capable of 2D data transfers for multi-dimensional double-buffering
- A new event unit for hardware-optimized synchronization and implementation of primitives typical of parallel programming models such as OpenMP.
- A new energy-efficient shared instruction cache optimized for a tightly coupled cluster of processors.
- Support for shared-memory hardware accelerators. We provide examples of on how to add your own Hardware Processing Engines (HWPEs) into the cluster.
You can access OPENPULP directly from our GitHub page. We will be continuously updating OPENPULP with code and application examples. Don’t forget to follow us on Twitter (@pulp_platform).
… and there is even more to come… Stay tuned!!!
Your PULP team
3.. 2.. 1.. Lift-off: Presenting Ariane
This year ETH Zurich and University of Bologna are celebrating 5 years of collaboration on the PULP project, and we are proud to present the newest member of the PULP family. Ariane is a Linux-ready, application-class, 64-bit RISC-V core supporting (RV64-IMC) written completely in System Verilog, and is available to download from our GitHub page immediately.
Ariane is a 6-stage, single issue, in-order CPU which fully implements I, M and C extensions as specified in Volume I: User-Level ISA V 2.1 as well as the draft privilege extension 1.10. It implements three privilege levels M, S, U to fully support a Unix-like (Linux, BSD, etc.) operating system. It has configurable size, separate TLBs, a hardware PTW and branch-prediction (branch target buffer, branch history table and a return address stack). The primary design goal was on reducing critical path length to about 20 gate delays.
Following the feedback we will get from our users, we will continue the development of Ariane on the public repositories, and we have many features that we are working on for this core such as:
- IPC improvements
- Double precision floating point unit
- Full support for Atomics
and many more to come. You can access Ariane directly from our GitHub page and do not forget to follow us on Twitter (@pulp_platform).
Read more: PULPino – An open-source microcontroller system based on RISC-V
- What is OPENPULP?
It is an ultra-low power open-source system featuring a host core coupled with an eight-core compute engine. - How does the IO-DMA work in OPENPULP?
It moves data from peripherals to on-chip memory while cores sleep and triggers them when a data frame is ready. - Can OPENPULP process data from multiple sensors?
Yes, it enables energy-efficient processing of data streams from imagers, microphone arrays, and ExG biosignal arrays. - Does Ariane support operating systems like Linux?
Yes, Ariane fully supports Unix-like operating systems such as Linux and BSD through three privilege levels. - What extensions does Ariane implement?
Ariane implements I, M, and C extensions as specified in Volume I: User-Level ISA V 2.1. - How can users access these projects?
Users can access both OPENPULP and Ariane directly from the PULP platform GitHub page. - What future features are planned for Ariane?
Planned improvements include IPC enhancements, a double precision floating point unit, and full support for Atomics. - Is OPENPULP based on RISC-V architecture?
Yes, OPENPULP is a RISC-V-based parallel-ultra low power open source system.
