summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--papers/LOCO-24/contents.latex135
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