Minor changes

This commit is contained in:
2024-02-13 16:07:33 +01:00
parent 8dd5b7dacf
commit c78b3c12cb

View File

@@ -2,28 +2,28 @@
\label{sec:vp} \label{sec:vp}
To evaluate the impact of \ac{pim} on the performance and power consumption of various applications, it is essential to perform simulations. To evaluate the impact of \ac{pim} on the performance and power consumption of various applications, it is essential to perform simulations.
Such an approach allows investigating critical factors such as the \ac{pim} microkernel setup overhead and the actual efficiency of the \ac{pim} kernel compared to traditional platforms. Such simulations allow investigating critical factors such as the \ac{pim} microkernel setup overhead and the actual performance improvement of the \ac{pim} kernel compared to traditional platforms.
It even may allow for the identification of potential improvements to the \ac{pim} architecture. It even may allow for the identification of potential improvements to the \ac{pim} architecture.
In addition, the suitability of different applications for \ac{pim} can be evaluated, as well as the influence of the specific memory layout requirements on the application software. In addition, the suitability of different applications for \ac{pim} can be evaluated, as well as the influence of the specific memory layout requirements on the application software.
To perform the such simulations, it is necessary to use a simulation model, commonly referred to as a \ac{vp}. To perform such simulations, it is necessary to use a simulation model, commonly referred to as a \ac{vp}.
\Acp{vp} act as executable software models of a physical hardware system, allowing the architecture of the system to be completely simulated in software. \Acp{vp} act as executable software models of a physical hardware system, allowing the architecture of the system to be completely simulated in software.
This in turn enables the software development and the identification of potential platform-specific software bugs without the need for the actual hardware implementation \cite{antonino2018}. This in turn enables the software development and the identification of potential platform-specific software bugs without the need for the actual hardware implementation \cite{antonino2018}.
\Acp{vp} provide full visibility and control over the entire simulated system, helping to identify bottlenecks and potential specification errors in the design. \Acp{vp} provide full visibility and control over the entire simulated system, helping to identify bottlenecks and potential specification errors in the design.
They also allow the exploration of the design space, for example, in the case of \ac{hbm}-\ac{pim}, this includes the variation of the ratio of \ac{pim} units to the number of memory banks and the effect on the performance of the \ac{pim} microkernel. They also allow the exploration of the design space, for example, in the case of \ac{hbm}-\ac{pim}, this includes the variation of the ratio of \ac{pim} units to the number of memory banks and the effect on the performance of the \ac{pim} microkernel.
However, using the appropriate level of abstraction in the software model is critical to make well-informed statements about the system without compromising the performance of the software model itself by delving into excessively low-level details, such as the \ac{rtl}. However, using the appropriate level of abstraction in the software model is critical to make well-informed statements about the system without compromising the performance of the software model itself by being at a too low level, such as the \ac{rtl}.
A viable compromise is the \ac{at} abstraction level within the \ac{tlm} technique, which is widely used in the SystemC \cite{systemc2023} virtual prototyping standard. A viable compromise is the \ac{at} abstraction level within the \ac{tlm} technique, which is widely used in the SystemC \cite{systemc2023} virtual prototyping standard.
The \ac{at} abstraction simplifies the modeling of communication between different system components by representing it only through synchronized function calls at different times. The \ac{at} coding style simplifies the modeling of communication between different system components by modeling it only through function calls that are synchronized at different points in time.
This approach eliminates the need to simulate complex bus protocols while maintaining the accuracy required for design space exploration and performance evaluation. This approach eliminates the need to simulate complex bus protocols while maintaining the accuracy required for design space exploration and performance evaluation.
Two different \ac{at} simulation frameworks used in the implementation of the \ac{hbm}-\ac{pim} software model, namely gem5 and DRAMSys, are introduced in the following sections. Two different \ac{vp} simulation frameworks used in the implementation of the \ac{hbm}-\ac{pim} software model, namely gem5 and DRAMSys, are introduced in the following sections.
\subsection{The gem5 Simulator} \subsection{The gem5 Simulator}
The gem5 simulator is an open-source computer architecture simulation platform used for system-level architecture research \cite{lowe-power2020}. The gem5 simulator is an open-source computer architecture simulation platform used for system-level architecture research \cite{lowe-power2020}.
This powerful platform allows the measurement of various statistics, including runtime, memory bandwidth, and internal processor metrics across different hardware configurations. This powerful platform allows the measurement of various statistics, including runtime, memory bandwidth, and internal processor metrics across different hardware configurations.
The gem5 simulator runs a user application and simulates it with it's sophisticated models with accurate timing. The gem5 simulator runs a user application and simulates it with it's sophisticated processor models with accurate timing.
It consists of a simulator core and parameterized models for many components, including out-of-order processors, bus systems, and \ac{dram}. It consists of a simulator core and parameterized models for many components, including out-of-order processors, bus systems, and \ac{dram}.
As a result, gem5 provides a comprehensive framework for simulating and analyzing complex computer systems. As a result, gem5 provides a comprehensive framework for simulating and analyzing complex computer systems.
@@ -33,7 +33,7 @@ In system call emulation mode, the simulated application uses the syscall interf
Consequently, the full system mode provides better accuracy, while the system call emulation mode takes less time to complete the simulation. Consequently, the full system mode provides better accuracy, while the system call emulation mode takes less time to complete the simulation.
In addition to the integrated components of the platform, gem5 provides a SystemC \ac{api} to enable the use of external SystemC models. In addition to the integrated components of the platform, gem5 provides a SystemC \ac{api} to enable the use of external SystemC models.
An example of such an external model is the \ac{dram} simulator DRAMSys, which is based on \ac{tlm} to provide cycle-accurate memory models without sacrificing simulation performance. An example of such an external model is the \ac{dram} simulator DRAMSys, which is based on \ac{tlm}-\ac{at} to provide cycle-accurate memory models without sacrificing simulation performance.
\subsection{DRAMSys} \subsection{DRAMSys}
@@ -58,5 +58,5 @@ In cases where such a processor model is used to execute a user application, DRA
DRAMSys provides support for the latest \ac{jedec} \ac{dram} standards, including \aca{hbm}. DRAMSys provides support for the latest \ac{jedec} \ac{dram} standards, including \aca{hbm}.
Thus, gem5 and DRAMSys together form a robust platform for implementing and researching the \ac{hbm}-\ac{pim} architecture introduced by Samsung, entirely through a software model. Thus, gem5 and DRAMSys together form a robust platform for implementing and researching the \ac{hbm}-\ac{pim} architecture introduced by Samsung, entirely through a software model.
To achieve this, the \aca{hbm} \ac{dram} model must be extended to include the \ac{pim} units integrated into each \ac{pch}. To achieve this, the \aca{hbm} \ac{dram} model must be extended to include the processing units integrated into each \ac{pch}.
The following section provides a detailed description of this implementation of \ac{hbm}-\ac{pim}, the \ac{pim} virtual machine. The following section provides a detailed description of this implementation of \ac{hbm}-\ac{pim}, the \ac{pim} virtual machine.