Traditionally in modern computers, processors perform operations on data that resides in memory, often leading to costly data transfers between the processor and memory that compromise its performance, especially when working with large data sets. Processing in Memory represents one of the most innovative evolutions in the field of computer systems that allows the processing of data directly within the memory through the integration of processing units directly into the memory itself. The ultimate aim of this thesis is to provide a general overview of what Processing in Memory is, analyzing in detail, its structure and the principles on which it is based; moreover a comprehensive description of the functioning and structure of a PIM technology implemented in the real world is provided: UPMEM PIM. The first section provides a description of the architecture in use on the most common computing systems (Von Neumann), with the corresponding limits. Section 2 provides an introduction to the Processing in Memory architecture with a description of its structure and the various improvements it offers. Subsequently, two possible approaches to PIM are explored, each of them deepened, and the fundamental elements necessary for the adoption of PIM in real-world systems. In section 3 UPMEM PIM is dealt with starting from the architecture, passing through the Toolchain, the compiler, the debugger and the various tools/instruction sets made available for programming. In section 4 a PIM algorithmic model is addressed, consisting of two phases: Matrix-Vector Multiplication and the Searching phase, examining different programming strategies for each of them. Finally, it mentions real hardware products that support PIM, developed by well-known memory companies that have taken their first steps in the PIM world.

Tradizionalmente nei computer moderni i processori eseguono operazioni sui dati che risiedono in memoria, spesso portando a costosi trasferimenti di dati tra il processore e la memoria che ne compromettono le prestazioni, soprattutto quando si lavora con grandi set di dati. Il Processing in Memory rappresenta una delle più innovative evoluzioni nell’ambito dei sistemi informatici che permette l’elaborazione dei dati direttamente all’interno della memoria attraverso l’integrazione di unità di elaborazione direttamente nella memoria stessa. Il fine ultimo di questa tesi è fornire una panoramica generale su che cosa sia il Processing in Memory analizzandone, nei dettagli, la struttura e i principi su cui si basa; inoltre si vuole fornire una descrizione esaustiva del funzionamento e della struttura di una tecnologia PIM implementata nel mondo reale: UPMEM PIM. Nella prima sezione viene fornita una descrizione dell’ architettura in uso sui più comuni sistemi di elaborazione (Von Neumann), con i corrispettivi limiti. Nella Sezione 2 viene fatta un’introduzione all’architettura Processing in Memory con la descrizione della struttura e dei vari miglioramenti che offre. Successivamente si esplorano due possibili approcci al PIM, approfondendo ciascuno di essi, e si descrivono gli elementi fondamentali necessari all’adozione di PIM nei sistemi reali. Nella sezione 3 viene trattato UPMEM PIM partendo dall’ architettura, passando dalla Toolchain, dal compilatore, dal debugger e dai vari tool/set di istruzioni messi a disposizione per la programmazione. Nella sezione 4 viene affrontato un modello algoritmico PIM, composto da due fasi: Moltiplicazione Matrice-Vettore e la fase di Searching, esaminando per ciascuna di esse diverse strategie di programmazione. Infine vengono menzionati dei prodotti hardware reali che supportano il PIM, sviluppati da note aziende produttrici di memorie che hanno mosso i primi passi nel mondo PIM.

Introduzione all' Architettura Processing In Memory.

DEMO, ALESSIO
2023/2024

Abstract

Traditionally in modern computers, processors perform operations on data that resides in memory, often leading to costly data transfers between the processor and memory that compromise its performance, especially when working with large data sets. Processing in Memory represents one of the most innovative evolutions in the field of computer systems that allows the processing of data directly within the memory through the integration of processing units directly into the memory itself. The ultimate aim of this thesis is to provide a general overview of what Processing in Memory is, analyzing in detail, its structure and the principles on which it is based; moreover a comprehensive description of the functioning and structure of a PIM technology implemented in the real world is provided: UPMEM PIM. The first section provides a description of the architecture in use on the most common computing systems (Von Neumann), with the corresponding limits. Section 2 provides an introduction to the Processing in Memory architecture with a description of its structure and the various improvements it offers. Subsequently, two possible approaches to PIM are explored, each of them deepened, and the fundamental elements necessary for the adoption of PIM in real-world systems. In section 3 UPMEM PIM is dealt with starting from the architecture, passing through the Toolchain, the compiler, the debugger and the various tools/instruction sets made available for programming. In section 4 a PIM algorithmic model is addressed, consisting of two phases: Matrix-Vector Multiplication and the Searching phase, examining different programming strategies for each of them. Finally, it mentions real hardware products that support PIM, developed by well-known memory companies that have taken their first steps in the PIM world.
2023
Introduction to Processing In Memory Architecture.
Tradizionalmente nei computer moderni i processori eseguono operazioni sui dati che risiedono in memoria, spesso portando a costosi trasferimenti di dati tra il processore e la memoria che ne compromettono le prestazioni, soprattutto quando si lavora con grandi set di dati. Il Processing in Memory rappresenta una delle più innovative evoluzioni nell’ambito dei sistemi informatici che permette l’elaborazione dei dati direttamente all’interno della memoria attraverso l’integrazione di unità di elaborazione direttamente nella memoria stessa. Il fine ultimo di questa tesi è fornire una panoramica generale su che cosa sia il Processing in Memory analizzandone, nei dettagli, la struttura e i principi su cui si basa; inoltre si vuole fornire una descrizione esaustiva del funzionamento e della struttura di una tecnologia PIM implementata nel mondo reale: UPMEM PIM. Nella prima sezione viene fornita una descrizione dell’ architettura in uso sui più comuni sistemi di elaborazione (Von Neumann), con i corrispettivi limiti. Nella Sezione 2 viene fatta un’introduzione all’architettura Processing in Memory con la descrizione della struttura e dei vari miglioramenti che offre. Successivamente si esplorano due possibili approcci al PIM, approfondendo ciascuno di essi, e si descrivono gli elementi fondamentali necessari all’adozione di PIM nei sistemi reali. Nella sezione 3 viene trattato UPMEM PIM partendo dall’ architettura, passando dalla Toolchain, dal compilatore, dal debugger e dai vari tool/set di istruzioni messi a disposizione per la programmazione. Nella sezione 4 viene affrontato un modello algoritmico PIM, composto da due fasi: Moltiplicazione Matrice-Vettore e la fase di Searching, esaminando per ciascuna di esse diverse strategie di programmazione. Infine vengono menzionati dei prodotti hardware reali che supportano il PIM, sviluppati da note aziende produttrici di memorie che hanno mosso i primi passi nel mondo PIM.
Paradigma
PIM
Sistemi Informatici
Architettura
Memoria
File in questo prodotto:
File Dimensione Formato  
Demo_Alessio.pdf

accesso riservato

Dimensione 1.47 MB
Formato Adobe PDF
1.47 MB Adobe PDF

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/62792