(no commit message)
[libreriscv.git] / nlnet_2021_3mdeb_cavatools.mdwn
1 # NLnet User-operated Grant Request for 3mdeb Power ISA Simulator
2
3 * 2021-08-071
4 * [[nlnet_2021_3mdeb_cavatools/discussion]]
5 * <https://bugs.libre-soc.org/show_bug.cgi?id=939>
6
7 ## Project name
8
9 Libre-SOC 3mdeb Cavatools: Power ISA Simulator
10
11 ## Website / wiki
12
13 <https://libre-soc.org/nlnet_2021_3mdeb_cavatools>
14
15 Please be short and to the point in your answers; focus primarily on
16 the what and how, not so much on the why. Add longer descriptions as
17 attachments (see below). If English isn't your first language, don't
18 worry - our reviewers don't care about spelling errors, only about
19 great ideas. We apologise for the inconvenience of having to submit in
20 English. On the up side, you can be as technical as you need to be (but
21 you don't have to). Do stay concrete. Use plain text in your reply only,
22 if you need any HTML to make your point please include this as attachment.
23
24 ## Abstract: Can you explain the whole project and its expected outcome(s).
25
26 Cavatools is currently a high performance user-operated simulator of
27 the RISC-V ISA. The primary objective of the project is to extend it to
28 implement the scalar Power ISA and the Libre-SOC Draft SVP64
29 Extensions. This will allow rapid prototyping of Extensions to the
30 Power ISA long before they reach silicon (which is very costly).
31 In turn this helps Libre-SOC to deliver on its commitment to provide
32 user-trustable processors for use in Internet routers, desktop,
33 smartphone and other user-operated devices where security and transparency
34 is expected.
35
36 # Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?
37
38 3mdeb is currently helping Libre-SOC with the (horribly slow,
39 easy-to-read, easy-to-use) Libre-SOC Power ISA Simulator which is 20,000 times
40 slower than cavatools. 3mdeb is also helping with ISA level unit tests in
41 Libre-SOC's code base that will be used to cross-validate a huge range of
42 Power ISA simulators and actual silicon implementations.
43
44 # Requested Amount
45
46 EUR $50,000.
47
48 # Explain what the requested budget will be used for?
49
50 * To create a compiler which takes Libre-SOC Machine-readable
51 Power ISA specification files and generate c code
52 * To extend cavatools to include support for the Scalar
53 parts of the Power ISA
54 * To then add support for Libre-SOC's Draft SVP64 Extensions
55 * To enhance it to include gdb "remote" machine interface
56 support
57 * To add Power ISA RADIX MMU emulation
58 * To extend cavatools to run a very basic linux
59 initramfs in-memory with basic serial console access
60 * To demonstrate running first a single core linux kernel
61 and later a SMP one, with busybox
62 * To use the exact same Specification c compiler to create
63 an "illegal instruction trap" emulator, integrated
64 into the linux kernel, for emulating Power ISA SIMD instructions
65 (extending the existing trap-and-emulate code already present
66 in ppc64 linux kernel source code)
67
68 # Does the project have other funding sources, both past and present?
69
70 Although there is NLnet funding for the Libre-SOC Simulator
71 (written in python) and associayed unit tests, cavatools, which is
72 written in c by Peter Hsu, does not have funding for the Power ISA
73 aditions. cavatools itself is a very new project.
74
75 # Compare your own project with existing or historical efforts.
76
77 Although there are quite a few Power ISA simulators, none of them
78 are up-to-date or are suited to high performance, like cavatools.
79 cavatools is multi-process and extremely fast, using relatively little
80 memory, where power-gem5, which has a different focus and has huge flexibility
81 and usefulness for research, uses vast amounts
82 of memory and is much slower. cavatools also has hardware-level cycle-accurate emulation which is extremely useful and important for analysing experimental
83 instructions, which is a feature that no other Power ISA Simulator has.
84 DolphinPC and pearpc are over 15 years old and were targetted at 32 bit
85 emulation of much older Power ISA processors. Libre-SOC's python-based
86 simulator only achieves aroubd 2,000 instructions per second on
87 high performance hardware whereas
88 cavatools achieves 200,000 instructions per second per processor
89 on modest hardware.
90 IBM's own Power ISA simulator is proprietary and, because it contains
91 confidential experimentation internal to IBM, may not be made public.
92
93 ## What are significant technical challenges you expect to solve during the project, if any?
94
95 This is at its heart a compiler project, which can be a challenging
96 area. However the language being implemented is quite small and limited,
97 so the project is relatively straightforward.
98
99 ## Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
100
101 The project will be developed entirely publicly and transparently,
102 using Libre-SOC Project Resources which are already set up for trustable
103 auditability and transparency. The mailing lists therefore are always
104 publicly available.
105
106 Online conferences and talks will be given as progress
107 is made, as well as working with Libre-SOC to send out development
108 reports and progress.
109
110 # Extra info to be submitted