pushed draft changes for the
cambridge document
This commit is contained in:
BIN
docs/RISCV-FAT/Paper/ProposedArchitecture.drawio.png
Normal file
BIN
docs/RISCV-FAT/Paper/ProposedArchitecture.drawio.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 472 KiB |
4
docs/RISCV-FAT/Paper/ProposedArchitecture.drawio.svg
Normal file
4
docs/RISCV-FAT/Paper/ProposedArchitecture.drawio.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 1.2 MiB |
BIN
docs/RISCV-FAT/Paper/diagram/ProposedArchitecture.drawio.png
Normal file
BIN
docs/RISCV-FAT/Paper/diagram/ProposedArchitecture.drawio.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 472 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 1.2 MiB |
@@ -1,3 +1,5 @@
|
|||||||
|
#+LATEX_HEADER: \usepackage[inkscapelatex=false]{svg}
|
||||||
|
|
||||||
* FAT Allocator without the TLB
|
* FAT Allocator without the TLB
|
||||||
|
|
||||||
** Abstract
|
** Abstract
|
||||||
@@ -13,10 +15,10 @@ are the technique expected to be used and the evaluation criteria for the follow
|
|||||||
2. To what extent does eliminating TLB impact the reduction in CPU clock cycles and memory access latency ?
|
2. To what extent does eliminating TLB impact the reduction in CPU clock cycles and memory access latency ?
|
||||||
|
|
||||||
** Proposed approach
|
** Proposed approach
|
||||||
#+attr_latex: :width 300px
|
#+attr_latex: :options angle=270
|
||||||
#+CAPTION: FAT pointer implementation with RISCV CHERI Toooba to strip the requirement of requiring a TLB.
|
#+CAPTION: FAT pointer implementation with RISCV CHERI Toooba to strip the requirement of requiring a TLB.
|
||||||
#+NAME: fig:RFPBRA
|
#+NAME: fig:RFPBRA
|
||||||
[[./diagram/MainOverview.png]]
|
[[./diagram/ProposedArchitecture.drawio.png]]
|
||||||
|
|
||||||
FAT-Pointers based range addresses, combined with the capabilities of the CHERI architecture, introduce
|
FAT-Pointers based range addresses, combined with the capabilities of the CHERI architecture, introduce
|
||||||
bypassing the TLB hierarchy by incorporating additional metadata with memory pointers.
|
bypassing the TLB hierarchy by incorporating additional metadata with memory pointers.
|
||||||
@@ -29,9 +31,36 @@ over memory regions. The functionality of ranges encompasses several key aspects
|
|||||||
- Encoding Ranges as Bounds to the Pointer.
|
- Encoding Ranges as Bounds to the Pointer.
|
||||||
- Instrumenting Block-Based Allocators with the FAT Pointer.
|
- Instrumenting Block-Based Allocators with the FAT Pointer.
|
||||||
|
|
||||||
In figure [[fig:RFPBRA]], the green-highlighted section marks the unused space between the 48th and 64th bits
|
In Figure [[fig:RFPBRA]], proposes a hybrid system that operates alongside the MMU and enables the
|
||||||
within the FAT-pointer. This area of unused bits presents an opportunity to store additional metadata,
|
conversion of virtual addresses to physical addresses without requiring a TLB lookup or a Page Table Entry
|
||||||
potentially enhancing the capabilities of the memory management system.
|
(PTE) translation. To provide a basic overview, the red/orange line illustrates the standard translation
|
||||||
|
path from a virtual to a physical address, while the green line represents our proposed approach.
|
||||||
|
This method leverages CHERI capabilities to define memory ranges using bounds and to perform address
|
||||||
|
translation directly at the pointer level, rather than traversing multiple TLB caches and/or accesing the page table.
|
||||||
|
The diagram follows the SV39 addressing scheme.
|
||||||
|
|
||||||
|
*** The standard translation procedure
|
||||||
|
When a store, load or fetch instruction is issued, the virtual address, 39 bits in length, comprises several fields:
|
||||||
|
the Virtual Page Number (VPN) fields 2 to 0, each 8 bits wide and an 11-bit offset. The VPN is first checked within
|
||||||
|
the TLB hierarchy to determine whether a corresponding Physical Page Number (PPN) can be found. If it exists, the 11-bit offset
|
||||||
|
from the virtual address is reused to construct the physical address, which can then be used to access the desired memory location.
|
||||||
|
If the translation is not present in the TLB hierarchy, a page table walk is initiated by consulting the PTEs. A PTE
|
||||||
|
can either reference another PTE or serve as a base PTE, as determined by its permission bits. For a 4 KB translation
|
||||||
|
entry, this lookup may require up to three memory access cycles to complete the PTE translation, excluding any additional
|
||||||
|
cycles incurred due to a TLB miss.
|
||||||
|
|
||||||
|
*** Our approach
|
||||||
|
We take advantage of the CHERI Capability 128 bit format and extend it by 16 more bits to store our custom offset.
|
||||||
|
On translation we only use VPN2 and keep the other VPNs identical to the PPN. In the conversional scheme this would be
|
||||||
|
only the case if we are allocating a giga page. In our case we just need a single VPN and PPN since we have use the bounds to dynamically
|
||||||
|
control the size of a page and using the proposed 16 bit offset to add to the VPN to get the PPN. This means the entire translation can be
|
||||||
|
done in single clock cycle.
|
||||||
|
|
||||||
|
*** Allocation approach
|
||||||
|
For practical reasons when calling malloc from a C program which calls mmap under the hood for mapping memory we wouldn't change
|
||||||
|
much of calling kernel function calls such as pmap_store to create a PTE entry. But at hardware level we will extended 16 bits to
|
||||||
|
store the offset for getting PPN2 to construct the physical address. If the 16 bits is set of we will program the TLB flush instruction
|
||||||
|
(i.e Sfence.vma) to do nothing. This because we do not promote PTE entries to the TLB since they are not needed.
|
||||||
|
|
||||||
#+attr_latex: :width 500px
|
#+attr_latex: :width 500px
|
||||||
#+CAPTION: Toooba processor with pseudo code change to bypass DataTLB.
|
#+CAPTION: Toooba processor with pseudo code change to bypass DataTLB.
|
||||||
@@ -64,7 +93,6 @@ returned data written to the appropriate physical register. Generally, the memor
|
|||||||
the new access types, incorporate the Data TLB bypass mechanism, and include the necessary capability checks to ensure that accesses
|
the new access types, incorporate the Data TLB bypass mechanism, and include the necessary capability checks to ensure that accesses
|
||||||
are properly authorised.
|
are properly authorised.
|
||||||
|
|
||||||
** Proposed evaluation
|
|
||||||
The evaluation of the proposed FAT allocator implemented using CHERI-enhanced pointers on the RISC-V Toooba architecture
|
The evaluation of the proposed FAT allocator implemented using CHERI-enhanced pointers on the RISC-V Toooba architecture
|
||||||
aims to assess both its performance characteristics and architectural implications, particularly in the context of removing
|
aims to assess both its performance characteristics and architectural implications, particularly in the context of removing
|
||||||
the Translation Lookaside Buffer (TLB) from the memory access pathway. The evaluation methodology is designed to address
|
the Translation Lookaside Buffer (TLB) from the memory access pathway. The evaluation methodology is designed to address
|
||||||
|
|||||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
% Created 2025-06-18 Wed 19:47
|
% Created 2025-10-28 Tue 00:53
|
||||||
% Intended LaTeX compiler: pdflatex
|
% Intended LaTeX compiler: pdflatex
|
||||||
\documentclass[11pt]{article}
|
\documentclass[11pt]{article}
|
||||||
\usepackage[utf8]{inputenc}
|
\usepackage[utf8]{inputenc}
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
\usepackage{amssymb}
|
\usepackage{amssymb}
|
||||||
\usepackage{capt-of}
|
\usepackage{capt-of}
|
||||||
\usepackage{hyperref}
|
\usepackage{hyperref}
|
||||||
|
\usepackage[inkscapelatex=false]{svg}
|
||||||
\author{Akilan}
|
\author{Akilan}
|
||||||
\date{\today}
|
\date{\today}
|
||||||
\title{}
|
\title{}
|
||||||
@@ -27,10 +28,10 @@
|
|||||||
\tableofcontents
|
\tableofcontents
|
||||||
|
|
||||||
\section{FAT Allocator without the TLB}
|
\section{FAT Allocator without the TLB}
|
||||||
\label{sec:orga3b6b50}
|
\label{sec:org3c371b1}
|
||||||
|
|
||||||
\subsection{Abstract}
|
\subsection{Abstract}
|
||||||
\label{sec:org5961619}
|
\label{sec:org77e5c87}
|
||||||
This document explores an extension of the FAT allocator approach to memory management in RISC-V Toooba\cite{rugg_2022}.
|
This document explores an extension of the FAT allocator approach to memory management in RISC-V Toooba\cite{rugg_2022}.
|
||||||
CHERI introduces a fine-grained memory protection mechanism by embedding bounds and permissions directly
|
CHERI introduces a fine-grained memory protection mechanism by embedding bounds and permissions directly
|
||||||
within pointers. Leveraging this model, we propose a system in which offsets are stored within the pointer itself, enabling
|
within pointers. Leveraging this model, we propose a system in which offsets are stored within the pointer itself, enabling
|
||||||
@@ -38,17 +39,17 @@ direct memory access without reliance on traditional address translation mechani
|
|||||||
facilitates the design of a block-based memory allocator within physically contiguous memory. The sections expanded below
|
facilitates the design of a block-based memory allocator within physically contiguous memory. The sections expanded below
|
||||||
are the technique expected to be used and the evaluation criteria for the following experiment.
|
are the technique expected to be used and the evaluation criteria for the following experiment.
|
||||||
\subsection{Research questions}
|
\subsection{Research questions}
|
||||||
\label{sec:orge1b3555}
|
\label{sec:org86efcda}
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item How can embedding offsets within a FAT pointer (i.e CHERI pointer) improve memory accesses for a block-based allocator for the RISC-V CHERI modified Toooba architecture ?
|
\item How can embedding offsets within a FAT pointer (i.e CHERI pointer) improve memory accesses for a block-based allocator for the RISC-V CHERI modified Toooba architecture ?
|
||||||
\item To what extent does eliminating TLB impact the reduction in CPU clock cycles and memory access latency ?
|
\item To what extent does eliminating TLB impact the reduction in CPU clock cycles and memory access latency ?
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\subsection{Proposed approach}
|
\subsection{Proposed approach}
|
||||||
\label{sec:orga716280}
|
\label{sec:orga490a28}
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=300px]{./diagram/MainOverview.png}
|
\includegraphics[angle=270,width=.9\linewidth]{./diagram/ProposedArchitecture.drawio.png}
|
||||||
\caption{\label{fig:orgf01f491}FAT pointer implementation with RISCV CHERI Toooba to strip the requirement of requiring a TLB.}
|
\caption{\label{fig:org84f2a68}FAT pointer implementation with RISCV CHERI Toooba to strip the requirement of requiring a TLB.}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
FAT-Pointers based range addresses, combined with the capabilities of the CHERI architecture, introduce
|
FAT-Pointers based range addresses, combined with the capabilities of the CHERI architecture, introduce
|
||||||
@@ -64,18 +65,45 @@ over memory regions. The functionality of ranges encompasses several key aspects
|
|||||||
\item Instrumenting Block-Based Allocators with the FAT Pointer.
|
\item Instrumenting Block-Based Allocators with the FAT Pointer.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
In figure \ref{fig:orgf01f491}, the green-highlighted section marks the unused space between the 48th and 64th bits
|
In Figure \ref{fig:org84f2a68}, proposes a hybrid system that operates alongside the MMU and enables the
|
||||||
within the FAT-pointer. This area of unused bits presents an opportunity to store additional metadata,
|
conversion of virtual addresses to physical addresses without requiring a TLB lookup or a Page Table Entry
|
||||||
potentially enhancing the capabilities of the memory management system.
|
(PTE) translation. To provide a basic overview, the red/orange line illustrates the standard translation
|
||||||
|
path from a virtual to a physical address, while the green line represents our proposed approach.
|
||||||
|
This method leverages CHERI capabilities to define memory ranges using bounds and to perform address
|
||||||
|
translation directly at the pointer level, rather than traversing multiple TLB caches and/or accesing the page table.
|
||||||
|
The diagram follows the SV39 addressing scheme.
|
||||||
|
\subsubsection{The standard translation procedure}
|
||||||
|
\label{sec:orgb1a087e}
|
||||||
|
When a store, load or fetch instruction is issued, the virtual address, 39 bits in length, comprises several fields:
|
||||||
|
the Virtual Page Number (VPN) fields 2 to 0, each 8 bits wide and an 11-bit offset. The VPN is first checked within
|
||||||
|
the TLB hierarchy to determine whether a corresponding Physical Page Number (PPN) can be found. If it exists, the 11-bit offset
|
||||||
|
from the virtual address is reused to construct the physical address, which can then be used to access the desired memory location.
|
||||||
|
If the translation is not present in the TLB hierarchy, a page table walk is initiated by consulting the PTEs. A PTE
|
||||||
|
can either reference another PTE or serve as a base PTE, as determined by its permission bits. For a 4 KB translation
|
||||||
|
entry, this lookup may require up to three memory access cycles to complete the PTE translation, excluding any additional
|
||||||
|
cycles incurred due to a TLB miss.
|
||||||
|
\subsubsection{Our approach}
|
||||||
|
\label{sec:org8444c1b}
|
||||||
|
We take advantage of the CHERI Capability 128 bit format and extend it by 16 more bits to store our custom offset.
|
||||||
|
On translation we only use VPN2 and keep the other VPNs identical to the PPN. In the conversional scheme this would be
|
||||||
|
only the case if we are allocating a giga page. In our case we just need a single VPN and PPN since we have use the bounds to dynamically
|
||||||
|
control the size of a page and using the proposed 16 bit offset to add to the VPN to get the PPN. This means the entire translation can be
|
||||||
|
done in single clock cycle.
|
||||||
|
\subsubsection{Allocation approach}
|
||||||
|
\label{sec:org0b445b8}
|
||||||
|
For practical reasons when calling malloc from a C program which calls mmap under the hood for mapping memory we wouldn't change
|
||||||
|
much of calling kernel function calls such as pmap\textsubscript{store} to create a PTE entry. But at hardware level we will extended 16 bits to
|
||||||
|
store the offset for getting PPN2 to construct the physical address. If the 16 bits is set of we will program the TLB flush instruction
|
||||||
|
(i.e Sfence.vma) to do nothing. This because we do not promote PTE entries to the TLB since they are not needed.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=500px]{./diagram/Toooba-codesnippet.png}
|
\includegraphics[width=500px]{./diagram/Toooba-codesnippet.png}
|
||||||
\caption{\label{fig:org8363643}Toooba processor with pseudo code change to bypass DataTLB.}
|
\caption{\label{fig:orgf8a8c01}Toooba processor with pseudo code change to bypass DataTLB.}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\subsubsection{Implementation}
|
\subsubsection{Implementation}
|
||||||
\label{sec:org4e24323}
|
\label{sec:orgb1f02ff}
|
||||||
The figure \ref{fig:org8363643} above illustrates the Toooba processor, showcasing all available pipelines to provide a broad overview of the architecture.
|
The figure \ref{fig:orgf8a8c01} above illustrates the Toooba processor, showcasing all available pipelines to provide a broad overview of the architecture.
|
||||||
On the right-hand side, the pseudo-code of the BlueSpec\cite{bluespec} implementation highlights the modifications that we will need to do to the
|
On the right-hand side, the pseudo-code of the BlueSpec\cite{bluespec} implementation highlights the modifications that we will need to do to the
|
||||||
memory pipeline in order to bypass the use of the Data TLB and instead utilise the offset from the pointer. The primary focus will be
|
memory pipeline in order to bypass the use of the Data TLB and instead utilise the offset from the pointer. The primary focus will be
|
||||||
on the memory pipeline.\\
|
on the memory pipeline.\\
|
||||||
@@ -101,21 +129,20 @@ to support out-of-order execution. Memory responses will be processed asynchrono
|
|||||||
returned data written to the appropriate physical register. Generally, the memory pipeline will remain unchanged, except to support
|
returned data written to the appropriate physical register. Generally, the memory pipeline will remain unchanged, except to support
|
||||||
the new access types, incorporate the Data TLB bypass mechanism, and include the necessary capability checks to ensure that accesses
|
the new access types, incorporate the Data TLB bypass mechanism, and include the necessary capability checks to ensure that accesses
|
||||||
are properly authorised.
|
are properly authorised.
|
||||||
\subsection{Proposed evaluation}
|
|
||||||
\label{sec:orgc0caeea}
|
|
||||||
The evaluation of the proposed FAT allocator implemented using CHERI-enhanced pointers on the RISC-V Toooba architecture
|
The evaluation of the proposed FAT allocator implemented using CHERI-enhanced pointers on the RISC-V Toooba architecture
|
||||||
aims to assess both its performance characteristics and architectural implications, particularly in the context of removing
|
aims to assess both its performance characteristics and architectural implications, particularly in the context of removing
|
||||||
the Translation Lookaside Buffer (TLB) from the memory access pathway. The evaluation methodology is designed to address
|
the Translation Lookaside Buffer (TLB) from the memory access pathway. The evaluation methodology is designed to address
|
||||||
the research questions with a focus on improvements in memory access and reductions in
|
the research questions with a focus on improvements in memory access and reductions in
|
||||||
latency for address translation.
|
latency for address translation.
|
||||||
\subsubsection{BlueSpec simulator}
|
\subsubsection{BlueSpec simulator}
|
||||||
\label{sec:org2206786}
|
\label{sec:orgc16a3f1}
|
||||||
To evaluate the proposed FAT pointer based memory management architecture, we plan to conduct simulations using the
|
To evaluate the proposed FAT pointer based memory management architecture, we plan to conduct simulations using the
|
||||||
Bluespec SystemVerilog (BSV)\cite{bsv} framework. Bluespec provides a cycle-accurate hardware simulation environment that
|
Bluespec SystemVerilog (BSV)\cite{bsv} framework. Bluespec provides a cycle-accurate hardware simulation environment that
|
||||||
allows precise modelling of architectural behaviour, including custom memory pipelines, capability checking, and
|
allows precise modelling of architectural behaviour, including custom memory pipelines, capability checking, and
|
||||||
physical address translation bypass mechanisms.
|
physical address translation bypass mechanisms.
|
||||||
\subsubsection{Performance Metrics}
|
\subsubsection{Performance Metrics}
|
||||||
\label{sec:orgf6cbf89}
|
\label{sec:org17217ed}
|
||||||
|
|
||||||
To quantify the performance benefits of the proposed system, the following metrics will be investigated:
|
To quantify the performance benefits of the proposed system, the following metrics will be investigated:
|
||||||
|
|
||||||
@@ -135,7 +162,7 @@ An analysis of the number of instructions executed during allocation, deallocati
|
|||||||
determine whether the additional logic required for handling FAT pointers introduces meaningful overhead.
|
determine whether the additional logic required for handling FAT pointers introduces meaningful overhead.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\subsubsection{System Resource Utilisation}
|
\subsubsection{System Resource Utilisation}
|
||||||
\label{sec:org629ea18}
|
\label{sec:orgfdcde67}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Cache behaviour}
|
\item \textbf{Cache behaviour}
|
||||||
@@ -147,7 +174,7 @@ Although the system does not utilise a TLB, comparative analysis will be perform
|
|||||||
the performance cost typically incurred through TLB misses, thereby contextualising the advantage of their removal.
|
the performance cost typically incurred through TLB misses, thereby contextualising the advantage of their removal.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\subsubsection{Benchmarking Against Baseline Architectures}
|
\subsubsection{Benchmarking Against Baseline Architectures}
|
||||||
\label{sec:orgb71ca58}
|
\label{sec:org1e3184e}
|
||||||
|
|
||||||
A series of micro and macro benchmarks will be employed to compare the FAT allocator with traditional memory allocators that rely on virtual
|
A series of micro and macro benchmarks will be employed to compare the FAT allocator with traditional memory allocators that rely on virtual
|
||||||
memory and TLBs. Micro benchmarks will include fine-grained tests of memory operations, while macro benchmarks will involve application-level
|
memory and TLBs. Micro benchmarks will include fine-grained tests of memory operations, while macro benchmarks will involve application-level
|
||||||
|
|||||||
Reference in New Issue
Block a user