nlnet_proposals: mention ppc_svp64_autogen
[libreriscv.git] / nlnet_2024_ppc_svp64_autogen.mdwn
1 # Binutils with Simple-V ISA Expansion Project
2
3 Code: ?
4
5 Submitted: ?
6
7 Toplevel bugreport: <https://bugs.libre-soc.org/show_bug.cgi?id=1259>
8
9 This project is applying for funding through the NGI Zero Core Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme under grant agreement No 101092990.
10
11 ## Project name
12
13 PPC and SVP64 assembly/disassembly code generation
14
15 ## Website / wiki
16
17 <https://libre-soc.org/nlnet_2024_ppc_svp64_autogen>
18
19 Please be short and to the point in your answers; focus primarily on the what and how, not so much on the why. Add longer descriptions as attachments (see below). If English isn't your first language, don't worry - our reviewers don't care about spelling errors, only about great ideas. We apologise for the inconvenience of having to submit in English. On the up side, you can be as technical as you need to be (but you don't have to). Do stay concrete. Use plain text in your reply only, if you need any HTML to make your point please include this as attachment.
20
21 ## Abstract: Can you explain the whole project and its expected outcome(s).
22
23 This project intends to extend and improve the PPC assembly/disassembly so that the the assembly and diassembly are generated automatically based on the human-readable specification. The overall idea is that the human-readable specification for PPC and SVP64 assembly and disassembly is converted into C code. The code must be generated in a framework-independent way so that it can be reused by Libre-SOC and other projects, most importantly binutils. We intend to complete the goal set by Libre-SOC project and fill the gaps currently missing.
24
25 # 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?
26
27 A sequence of projects enabled early development (four years ago, 2019-03-012)
28 of vectorisation techniques in the RISC-V domain, and later higher performance
29 demonstration with OpenPOWER ISA (2022-08-051). A full project list is maintained at: https://libre-soc.org/nlnet_proposals/ they include recently:
30
31 * https://libre-soc.org/nlnet_2022_opf_isa_wg/ - improving SVP64 and submitting it to the OpenPOWER ISA Technical Working Group.
32 * https://libre-soc.org/nlnet_2021_crypto_router/ - proving, improving, and demonstrating that SVP64 is capable of handling cryptographic primitives in an extreme power-efficient compact way as the basis for higher security products
33 * https://libre-soc.org/nlnet_2021_3mdeb_cavatools/ - providing basis for an automatic code generation (only a limited vanilla Power ISA subset)
34
35 # Requested Amount
36
37 EUR 50,000.
38
39 # Explain what the requested budget will be used for?
40
41 Key phases of this project are:
42
43 * Completion of libopid (an instruction database parser)
44 * Completion of SVP64/Power extensions in libopid
45 * Extending human-readable specification with new formats (PPC aliases and SVP64 fields)
46 * Introduction of libopid support in binutils
47 * Test vectors for libopid and binutils
48 * Documentation, demonstrations and conference papers
49
50 # Does the project have other funding sources, both past and present?
51
52 NGI Search, NGI POINTER, and NLnet Grants have been the sole source of funding for this development programme over the past five years, and for the project in this application. Four grants are at stages of completion at the time of writing (two nearing end).
53
54 #Compare your own project with existing or historical efforts.
55
56 There are a few machine-readable instruction databases around: they tend not to
57 be used massively extensively to for example auto-generate c code for use in
58 binutils. Most assembler/disasembler instruction parsing oddly is done by hand-editing
59 each and every instruction (10,000 in the case of Power ISA). This project is pretty unique
60 and includes auto-code-generation so as to avoid transliteration errors between ISA Spec
61 and source code.
62
63 ##What are significant technical challenges you expect to solve during the project, if any?
64
65 The key technical challenge in this project is the creation of the binutils tool set that enables developers to take advantage of the Simple-V/SVP64 extensions and capabilities for PPC, and to successfully develop and debug complex code. binutils will be comprehensively tested and verified with the Power ISA in order to lead the way for its use in the widespread developer community.
66
67 ##Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
68
69 Since the project is going to rely on Libre-SOC code base which has a full set of resources for Libre Project Management and development: mailing list, bugtracker, git repository, wiki and also will be doing linkedin posts in other outreach - all listed here: <https://libre-soc.org/>
70
71 #Extra info to be submitted
72
73 #Questions Received date:
74
75 TODO