Minor changes
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user