diff options
Diffstat (limited to 'papers/LOCO-24')
-rw-r--r-- | papers/LOCO-24/contents.latex | 135 |
1 files changed, 67 insertions, 68 deletions
diff --git a/papers/LOCO-24/contents.latex b/papers/LOCO-24/contents.latex index 992ff26..3046d45 100644 --- a/papers/LOCO-24/contents.latex +++ b/papers/LOCO-24/contents.latex @@ -125,8 +125,10 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } rooted on the simplification of personal computers by embracing the programming language \textit{Scheme}, and describes how this strategy provides a high level of abstraction and opens the door to many research - topics that directly challenge common misconceptions and ideas that Unix's - influence imposed. + topics that directly challenge the current computing ecosystem, where + industry relies in the continuous delivery of heavily specialized hardware to + support the ever growing software demands, mainly coming from Unix's + heritage. \end{abstract} %% Document outline: @@ -171,13 +173,11 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } \section{Context} %% We need to understand context ... - All engineering decisions are taken in a context and those that are adopted - by any industry are oftentimes driven by previous decisions taken in the same - subject. Specifically, the computing industry, arguably due to its rapid - emergence, has been heavily influenced by previous technology and - \textit{backwards compatibility}. + The computing industry, arguably due to its rapid emergence, has been driven + by \textit{backwards compatibility}. This section summarizes the most + influential milestones in computing history and their impact in modern + computer hardware. -%% TODO: remove this and put some personal computing instead? \subsection{Von Neumann model} The von Neummann model introduced in 1945 proposes a general purpose device consisting of a \textit{Central Processing Unit} (CPU) and a \textit{Store}. @@ -275,13 +275,15 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } the computing systems, taking advantage of that, many research areas open. Most of them confront Unix's heritage and modern computing but could provide a powerful but simple set of constructs that allow to create simple computers - that can be maintained by an individual. + that can be maintained by an individual and reduce the economical and + environmental costs of infrastructure of the modern CPU fabrication. \subsection{Embracing the language: Scheme} - \textit{Scheme} is a simple language, with a minimal standard, but that - enables a huge level of abstraction thanks to its minimal but powerful core - concepts which are also present in mainstream programming languages today - (Python, JavaScript). + + \textit{Scheme} is a simple language, with a minimal standard, that enables a + huge level of abstraction thanks to its minimal but powerful core concepts + which are also present in mainstream programming languages today (Python, + JavaScript). The \textit{Lisp} family of languages have proven to be flexible and powerful for system design \cite{LispMachine:Greenblatt} and particularly @@ -290,11 +292,10 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } The nature of the Lisp family of languages also makes them suitable as file formats\cite{SXML:Kiselyov} for storage and configuration files, for - extending the language to the users' needs or writing DSLs - \cite{LanguageOriented:Culpepper}, eliminating the need to rely on - unstructured text. + extending the language or writing DSLs \cite{LanguageOriented:Culpepper}, + eliminating the need to rely on unstructured text. -\subsection{An Operating System that embraces the language} +\subsection{Operating System} An Operating System that embraces the language becomes a bare metal interpreter, eliminating the duplication of tasks present in Unix operating @@ -330,29 +331,30 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } -\subsection{Computer hardware that embraces the language} - Attempts have been done to run Scheme in a bare-metal environment using - commodity hardware\cite{MIMOSA:Yvon}\cite{Loko:Weinholt}, but they do not - take advantage of hardware optimized for \textit{Scheme}, which would provide - huge performance benefits and simplify the interpreter and potentially the - CPU. +\subsection{Computer hardware} + + Attempts have been done to run \textit{Scheme} in a bare-metal environment + using commodity hardware\cite{MIMOSA:Yvon}\cite{Loko:Weinholt}, but they do + not take advantage of hardware optimized for \textit{Scheme}, which would + provide huge performance benefits and simplify the interpreter and + potentially the CPU. \subsubsection{Optimization for tree structures} \textit{Scheme} is profoundly based on the \textit{cons cell}, similar to a \textit{linked-list} node, and the data structures that can be created from it (\textit{lists} and \textit{trees}). Optimizing the CPU for that case, with fast lookups and \code{car} and \code{cdr} operations would impact its - performance. This might require developing new caching and memory access - mechanism, but could simplify the ones present in mainstream CPUs and - reduce its security concerns. + performance. \subsubsection{CPU as a reducer} - \textit{Scheme} supports many paradigms but the basis of the language is the - expression reduction, in opposition to imperative language, where the basis + Like other functional programming languages, \textit{Scheme} is based on + expression reduction, in opposition to imperative languages, where the basis is the \textit{statement}, that matches current processor architectures - better. This opens a full research area, that was mainly abandoned after the - modern CPU architectures flooded the market, but has a long - history\cite{LiberateFromVonNeumann:Backus}. + better. This research area, was mainly abandoned after the modern CPU + architectures flooded the market, but has a long + history\cite{LiberateFromVonNeumann:Backus} and has been revived with the + introduction of Field Programmable Gate Arrays, + \textit{FPGA}\cite{Heron:Ramsay}. \subsubsection{Hardware garbage collection} When the whole system uses managed memory, the Garbage Collection, @@ -365,30 +367,31 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } \cite{HWAssistedGC:Maas} and Lisp Machines\cite{LispMachine:Greenblatt}. \subsubsection{Exploration via reconfigurable Hardware} - Computer processors specialized on functional programming have been designed - before\cite{FPhardware:Stoye}, trying to liberate them from the von Neumann - style\cite{LiberateFromVonNeumann:Backus}, but modern technologies like Field - Programmable Gate Arrays, \textit{FPGA}, became widely available after this - research area was displaced due to its cost and long wait times. - A design based on a FPGA would facilitate incremental testing and evaluation of the impact of the proposed optimizations. If a Hardware Description Language, \textit{HDL}, and support for Partial and Dynamic Reconfiguration\cite{FPGAReconf:Vipin} are provided within the system, it - could be updated with no distinction between hardware and software. A - \textit{rollback} system\cite{Guix:Courtes} could always recover the state of - both hardware and software as a whole. - - FPGAs are more power hungry and expose a lower performance than Application - Specific Integrated Circuits, \textit{ASIC}, but an aggressive reduction of - complexity has been proven to have acceptable performance even in simplified - processors running in a baseline FPGA\cite{Oberon:Wirth}. - - Designing with an FPGA in mind would carry other benefits that are widely - overlooked nowadays: it reduces the need for constant hardware upgrades, uses - commodity hardware instead of very specialized devices and reduces the chance - of a supply chain attack in many levels \cite{riscvSelfHostingComputer:Somlo}. - + could be updated with no distinction between hardware and software, while + making the system more resistant to trusting-trust and supply-chain + attacks\cite{riscvSelfHostingComputer:Somlo}. A \textit{rollback} + system\cite{Guix:Courtes} could always recover the state of both hardware and + software as a whole. + +\subsection{Environmental implications} + A computing system designed around its reconfigurability is less likely to + become obsolete in the short term and encourages its repurpose once it + happens. This attenuates the \textit{embodied} environmental impact of the + device, which nowadays accounts for the majority of computing systems' + \(CO_{2}\) emissions \cite{Carbon:Gupta}. + + While FPGAs are not as efficient as Application Specific Integrated Circuits, + \textit{ASIC}, which would increase the \textit{operational} impact of the + system, an aggressive simplification has been proven to have acceptable + performance and energy usage in minimalistic processors running in a baseline + FPGA\cite{Oberon:Wirth}, even without the optimization level proposed in this + document. Additionally, the low-power nature of personal + computing facilitates the decarbonization of its energy sources, reducing the + environmental impact of the device operation to negligible levels. \section{Conclusion} @@ -397,23 +400,19 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } programming language \textit{Scheme} and proposes several optimizations and research areas that its design would enable. - The cited literature demonstrates systems with a similar level of - simplification to the one proposed in this document can be implemented and - maintained by a single individual, meaning that the proposed computing system - would be possibly created and maintained by anyone, down to the hardware, - while keeping it secure, accessible and bootstrappable if carefully designed. - - %% TODO: mention FPGAs are commodity hardware today, and don't require - %% special manufacturing facilities: autonomy and sovereignty - - %% TODO: only if cite vernacular programmers properly? - Literature also supports that extending the reach of the language enriches - the relationship the user has with the computer. If the selected language is - powerful in terms of the level of abstraction it can provide, like the one - selected in this paper, it could become the only tool a user needs for every - single administration task, including hardware upgrade or optimization, - providing a solid foundation for more human-centered design where - the antiquities from the times of Unix can be displaced. + The cited literature demonstrates systems with a level of simplification + analogous to the one proposed in this document can be implemented and + maintained by a single individual, down to the hardware, while keeping it + secure, accessible and bootstrappable if carefully designed. + + The reconfigurability of the system directly challenges the current computer + processor supply chain that relies on very specialized \textit{ASIC} + manufacture. The proposed generalization of the hardware attenuates its + embodied environmental impact pushing the specialization to the software + side, the malleable part of the system, where a language with high level of + abstraction can provide a solid foundation for a more human-centered design + that finally obsoletes the antiquities from the times of Unix. + \clearpage |