SlideShare a Scribd company logo
1 of 16
Download to read offline
A software platform to support dynamically
       reconfigurable Systems-on-Chip under the
              GNU/Linux operating system
                              26th July 2005


                              Alberto Donato
                          donato@elet.polimi.it

Relatore:                                                     Correlatore:
Prof. Fabrizio Ferrandi                 Ing. Marco Domenico Santambrogio
Index


 - Aim of the work

 - The reconfigurable platform:
     • Hardware architecture
     • Partial dynamic reconfiguration flows


 - Software architecture:
     • The ICAP kernel module
     • The IP-Core Manager


 - Tests and results

 - Future work


Alberto Donato                                                                                                                   2/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
Aim of the Work


        reconfiguration capabilities allow creation of Systems-on-Chip
  FPGAs
 whose hardware components can be modified, added and removed at
 runtime.

         Provide software support for dynamic partial reconfiguration
          on Systems-on-Chip running the LINUX operating system.

 Issues:
     • Partial reconfiguration process management from the OS
     • Addition and removal of hardware reconfigurable components
     • Automatic loading and unloading of specific drivers for the IP-Cores
         upon components configuration/deconfiguration
     • Easier programming interface for specific drivers


Alberto Donato                                                                                                                   3/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
Hardware Architecture


 Architecture derived from Caronte:
     • General purpose processor
                                                                                              BUS                    BUS
     • Memory (BRAM, DDR)
     • ICAP
                                                                                                                                 Reconfigurable
                                                                         General Purpose
                                                                                                                                    Module
     • Reconfigurable components                                            Processor




                                                                                                                                 Reconfigurable
                                                                                                         Bridge                     Module
                                                                            Memory




                                                                                                                                 Reconfigurable
                                                                                                                                    Module
                                                                                ICAP




Alberto Donato                                                                                                                           4/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
Hardware Architecture (2)

                                                                                                        PLB bus            OPB bus

 Components of the hardware architecture:
                                                                                             PPC405                                   Interrupt
     • PPC405 processor                                                                     Processor                                 Controler




     • SRAM and SDRAM memory
                                                                                             SRAM
                                                                                                                                        UART
                                                                                             Memory
     • Flash memory                                                                                                                   Interface




     • Xilinx ICAP IP-Core
                                                                                             SDRAM
                                                                                             Memory

                                                                                                                                      Ethernet
                                                                                                                                      Controller
                                                                                                                  Bridge



        peripherals:
  I/O                                                                                         Flash
                                                                                             Memory



     • Xilinx UARTLite interface                                                                                                        GPIO
                                                                                                                                        LEDs
                                                                                             BRAM
     • Ethernet controller                                                                   Memory




     • GPIO LEDs
                                                                                                                                     7−Segments
                                                                                                                                       Display
                                                                                              ICAP
     • 7-Segments display

Alberto Donato                                                                                                                                 5/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
Partial Dynamic Reconfiguration Flows


 Reconfiguration of areas of the                                      fabric without interfering with the
                                                         FPGA
 rest of the system.

 Two different approaches: small-bits and module-based reconfiguration.

 Small-bits manipulation:
     • change single reconfigurable elements, such as slices
     • useful to modify the configuration of hardware components of the
         system

 Module-based reconfiguration:
     • addition or removal of system components
     • changes in the resources available to the system


Alberto Donato                                                                                                                    6/16
                  A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
Software Side: Previous Work

                             Application Code
                                                                           Self-reconfigurable platform:
                                                                 Level 3



                                                                               • PowerPc/MicroBlaze processor
                                 XPART                           Level 2
   Hardware
  Indepentent
                                                                               • ICAP component
  Hardware
                                            Emulated
  Dependent                                                      Level 1
                  ICAP API
                                            ICAP API
                                                                               • Stand-alone                            application using
                                                                                    the
                Device Drivers
                                                                                             XPART API
                                                                 Level 0


        Embedded Microprocessor        External (Windows/Unix)
                                                                           Supports small-bits reconfiguration.
 Egret architecture:
      • Modular hardware/software                                                         RSoC Core Module

                                                                                              FPGA                                               Peripheral Module
            architecture                                                                                                    Peripheral
                                                                                                                                                         Peripheral
                                                                                                                            Interface
                                                                                                                                                          Device
      • Based on the LINUX OS                                                                                                 Core

                                                                                                         CPU
                                                                                                      Hard or Soft

      • Dynamic configuration of hard-                                                                    Core

                                                                                                                            Peripheral
                                                                                                                                                         Peripheral
                                                                                                                            Interface
            ware modules and loading of                                                                                                                   Device
                                                                                                                              Core

                                                                                                         Internal CPU bus
            drivers                                                                                                                              Peripheral Module




Alberto Donato                                                                                                                                               7/16
                                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
Software Architecture


 Composed of two main elements:
     • Driver to support partial reconfiguration
     • Manager for the IP-Cores devices


 The software architecture provides:
                                                                                                Applications
     • Access to ICAP component
         from userspace                                                                         Linux Kernel

     • Interface between IP-Cores
                                                                                                         IP−Core Manager
         low-level drivers and kernel                                      ICAP
                                                                           Driver
     • Access to reconfigurable                                                                      Low−level Device Drivers
         devices from userspace
                                                                                                     Reconfigurable Devices
         processes                                                          ICAP


Alberto Donato                                                                                                                   8/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
The ICAP Kernel Module


 Implements a device driver, adds kernel support for the Xilinx                                                       ICAP
 component.
     • Access from userspace via standard device node mechanism
         (i.e. /dev/icap)
     • Masks hardware details
     • Reconfiguration data provided in the form of partial bitstream files



                                                        Kernel


                                                                  Reconfig.
                                                                                                Reconfig.
                     Application                                  Controller
                                                                                                Controller
                                       Configuration                                  Data
                                                                   Driver
                                          Data                                         I/O




Alberto Donato                                                                                                                   9/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
The ICAP Kernel Module: Reconfiguration

                                                                                               WRITE                      configuration
                                                                                             system call                   IOCTL call
 Reconfiguration process using                                                                                /dev/icap

 the ICAP kernel module:
                                                                                                           Linux Kernel
    1. partial bitstream is copied into
       ICAP module buffer from a                                                          partial                  IOCTL call
                                                                                        bitstream
       userspace process
    2. reconfiguration ioctl                                                                                                 partial
       call is performed from userspace                                                                                   bitstream
                                                                                                                          memory
                                                                                                                            buffer

    3. the kernel module sends                                                                       ICAP
                                                                                                    module
       partial configuration data
       to the ICAP component                                                              Memory−Mapped I/O
                                                                                               Space




                                                                                                    ICAP
 The hardware ICAP component is accessed                                                                           copy content
                                                                                                                     of buffer

 through the memory mapping mechanism.

Alberto Donato                                                                                                                            10/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
The IP-Core Manager


 A LINUX kernel module which implements a unified infrastructure
 for the management of the IP-Cores.
     • IP-Cores Plug-and-Play
     • Runtime loading of specific
         IP-Cores drivers
                                                                                                  Load
                                                                                 Device                               IPCM
     • Management of operations                                                  Driver
         common to all drivers
     • Access to reconfigurable
                                                                                                                 Read
         components from userspace                                                                                               Interrupt
                                                                                                                 device
                                                                                                                  info
     • Standardize and simplify
         writing of specific drivers
                                                                               IP−Core                              HW IPCM
                                                                                             I/O mem region
                                                                                               Device type




Alberto Donato                                                                                                                        11/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
The IP-Core Manager: Hierarchy


 The IP-Core Manager acts as a layer between the operating system
 kernel and the low-level device drivers.

 The low-level drivers contain:
     • system calls implementation                                                                                        Kernel



     • devices initialization                                                                            register/unregister device
                                                                                                        request/free memory areas

         and shutdown functions                                     kernel                                                    IP−Core Manager (SW)
                                                                                  Kernel Module
                                                                   modules


                                                                                        register system calls



 The drivers also contain a stub:                                                                                Driver                     Driver         Driver
                                                                   IP−Core
                                                                    drivers
                                                                                             data I/O
     • provides standard kernel
         module interface                                        reconfigurable
                                                                                                         IP−Core        IP−Core       IP−Core    IP−Core   IP−Core
                                                                   hardware

     • provides module initialization
         and shutdown functions
Alberto Donato                                                                                                                                             12/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
The IP-Core Manager: Structure


 Registration process of a new IP-Core with the                                                                IPCM:

    1. interrupt is received from the                            HW-IPCM
    2. read device data (base address, device id, address range)
    3. load low-level driver if not already loaded
    4. the low-level driver                                              drv_id,
                                                         device data     baseaddr,
       initialization function                                           range
                                                                                                         IPCM
       registers driver data                             ipcm_core_register()
                                                                                                                                                              Driver
                                                                                                                         request_module()

       structures                                                              device data structure
                                                                                                                                                         ipcm_stub_init()


    5. data structures for the                                                    ipc_dev_t

       new device is initialized                          registered drivers                                                                                         drv_t *
                                                                                                                        ipcm_drv_register()
                                                                                                                         allocate new driver structure
                                                                                                       drv_t


                                                                                                   registered devices




                                                                                              driver data structure




Alberto Donato                                                                                                                                                       13/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
Tests and Results


 Comparison between original Caronte architecture and the one
 supporting LINUX
                              Resource                  Orignal Caronte    Caronte   LINUX     Total
                                                        Elem.    Perc.     Elem.     Perc.   available
                              Slice Flip Flops          1843     18%       2369      24%       9856
                              4-input LUTs              1727     17%       2173      22%       9856
                              Occupied Slices           1818     36%       2262      45%       4928
                              Bonded IOBs                107     27%        168      42%        396
                              Block RAM                   32     72%         32      72%         44
                                                           2     50%          2      50%          4
                              DCMs




 Resources usage in different hardware architectures supporting LINUX
                               Resource            Base Arch.   No Ethernet     No Flash       Total
                                                  Elem. Perc.   Elem. Perc.   Elem. Perc.    available
                               Slice Flip Flops   5079 51%      2369 24%      4668 47%         9856
                               4-input LUTs       5883 59%      2173 22%      5598 56%         9856
                               Occupied Slices    4926 99%      2262 45%      4711 95%         4928
                               Bonded IOBs         205   51%     168   42%     36     81%       396
                               Tbufs                64    2%      64    2%     64      2%      2464
                               Block RAM            36   81%      32   72%     36     81%        44
                                                     6   37%       4   25%      6     37%        16
                               GCLKs
                                                     2   50%       2   50%      2     50%         4
                               DCMs



Alberto Donato                                                                                                                   14/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
Tests and Results (2)


 Small-bits manipulation partial reconfiguration tests
                                   Label    Reconfig.   Bitstream     Configuration     Throughput
                                             frames    size (Byte)    time (msec)     (MByte/sec)
                                        0       33        24179          15.509         1.487
                                   RC
                                        1       46        40171          25.674         1.492
                                   RC
                                        2       50        44907          28.628         1.496
                                   RC
                                        3       60        51347          32.700         1.497
                                   RC
                                        4       68        53619          34.203         1.495
                                   RC
                                        5       88        67099          42.814         1.495
                                   RC
                                        6      104        60567          38.598         1.459
                                   RC
                                        7      132       100595          64.140         1.496
                                   RC
                                        8      148        94063          60.045         1.494
                                   RC
                                        9      182       119319          76.049         1.496
                                   RC




 Reconfiguration times have been measured on the Avnet Virtex-II Pro
 Development Board:
     • with 66 Mhz processor: throughput ~1.5 Mbyte/s
     • with 100 Mhz processor: throughput > 3.0 Mbyte/s

Alberto Donato                                                                                                                   15/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
Future Work


 Possible extensions of the described software architecture:

     • extension of the ICAP driver to allow creation of reconfiguration
         command from reconfiguration data (without pre-synthesized
         bitstreams)
     • runtime calculation of difference bitstreams
     • implementation of the HW-IPCM
     • extension of the ICAP component to support DMA transfers




Alberto Donato                                                                                                                   16/16
                 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system

More Related Content

What's hot

Melp codec optimization using DSP kit
Melp codec optimization using DSP kitMelp codec optimization using DSP kit
Melp codec optimization using DSP kitsohaibaslam207
 
Risc cisc Difference
Risc cisc DifferenceRisc cisc Difference
Risc cisc DifferenceSehrish Asif
 
Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)A B Shinde
 
PIC32MX Microcontroller Family
PIC32MX Microcontroller FamilyPIC32MX Microcontroller Family
PIC32MX Microcontroller FamilyPremier Farnell
 
16bit RISC Processor
16bit RISC Processor16bit RISC Processor
16bit RISC ProcessorShashi Suman
 
Cisc vs risc
Cisc vs riscCisc vs risc
Cisc vs riscKumar
 
Ling on PIC32 microcontroller
Ling on PIC32 microcontrollerLing on PIC32 microcontroller
Ling on PIC32 microcontrollerViktor Sovietov
 
Complex instruction set computer ppt
Complex instruction set computer pptComplex instruction set computer ppt
Complex instruction set computer pptVenkatesh Pensalwar
 
Fpga video capturing
Fpga video capturingFpga video capturing
Fpga video capturingshehryar88
 
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...IJERD Editor
 
Mp So C 18 Apr
Mp So C 18 AprMp So C 18 Apr
Mp So C 18 AprFNian
 
CISC vs RISC Processor Architecture
CISC vs RISC Processor ArchitectureCISC vs RISC Processor Architecture
CISC vs RISC Processor ArchitectureKaushik Patra
 

What's hot (20)

Melp codec optimization using DSP kit
Melp codec optimization using DSP kitMelp codec optimization using DSP kit
Melp codec optimization using DSP kit
 
Risc cisc Difference
Risc cisc DifferenceRisc cisc Difference
Risc cisc Difference
 
3DD 1e Laura
3DD 1e Laura3DD 1e Laura
3DD 1e Laura
 
Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)
 
PIC32MX Microcontroller Family
PIC32MX Microcontroller FamilyPIC32MX Microcontroller Family
PIC32MX Microcontroller Family
 
Risc & cisk
Risc & ciskRisc & cisk
Risc & cisk
 
16bit RISC Processor
16bit RISC Processor16bit RISC Processor
16bit RISC Processor
 
Risc processors
Risc processorsRisc processors
Risc processors
 
3D-DRESD CiTiES
3D-DRESD CiTiES3D-DRESD CiTiES
3D-DRESD CiTiES
 
Cisc vs risc
Cisc vs riscCisc vs risc
Cisc vs risc
 
Ling on PIC32 microcontroller
Ling on PIC32 microcontrollerLing on PIC32 microcontroller
Ling on PIC32 microcontroller
 
Complex instruction set computer ppt
Complex instruction set computer pptComplex instruction set computer ppt
Complex instruction set computer ppt
 
Fpga video capturing
Fpga video capturingFpga video capturing
Fpga video capturing
 
Processors selection
Processors selectionProcessors selection
Processors selection
 
3D-DRESD FT
3D-DRESD FT3D-DRESD FT
3D-DRESD FT
 
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
 
Risc and cisc
Risc and ciscRisc and cisc
Risc and cisc
 
Mp So C 18 Apr
Mp So C 18 AprMp So C 18 Apr
Mp So C 18 Apr
 
CISC vs RISC Processor Architecture
CISC vs RISC Processor ArchitectureCISC vs RISC Processor Architecture
CISC vs RISC Processor Architecture
 
RISC AND CISC PROCESSOR
RISC AND CISC PROCESSORRISC AND CISC PROCESSOR
RISC AND CISC PROCESSOR
 

Similar to Thesis Donato Slides EN

Sears Point Racetrack
Sears Point RacetrackSears Point Racetrack
Sears Point RacetrackDino, llc
 
Mpc5121 econfs
Mpc5121 econfsMpc5121 econfs
Mpc5121 econfsDino, llc
 
Adv. FPGA Motor Control--EBV & Univ. of Koln: Embedded World 2010
Adv. FPGA Motor Control--EBV & Univ. of Koln: Embedded World 2010Adv. FPGA Motor Control--EBV & Univ. of Koln: Embedded World 2010
Adv. FPGA Motor Control--EBV & Univ. of Koln: Embedded World 2010Altera Corporation
 
Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Harshit Srivastava
 
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...The Linux Foundation
 
EASA Part-66 Module 5.6 : Basic Computer Structure
EASA Part-66 Module  5.6 : Basic Computer StructureEASA Part-66 Module  5.6 : Basic Computer Structure
EASA Part-66 Module 5.6 : Basic Computer Structuresoulstalker
 
QsNetIII, An HPC Interconnect For Peta Scale Systems
QsNetIII, An HPC Interconnect For Peta Scale SystemsQsNetIII, An HPC Interconnect For Peta Scale Systems
QsNetIII, An HPC Interconnect For Peta Scale SystemsFederica Pisani
 
Rtos ameba
Rtos amebaRtos ameba
Rtos amebaJou Neo
 
LF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IOLF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IOLF_DPDK
 
LCE13: Android Graphics Upstreaming
LCE13: Android Graphics UpstreamingLCE13: Android Graphics Upstreaming
LCE13: Android Graphics UpstreamingLinaro
 
Raise your Uptime - How to monitor heterogeneous server environments with Linux
Raise your Uptime - How to monitor heterogeneous server environments with LinuxRaise your Uptime - How to monitor heterogeneous server environments with Linux
Raise your Uptime - How to monitor heterogeneous server environments with LinuxWerner Fischer
 
Benefits of Using FPGAs for Embedded Processing: Embedded World 2010
Benefits of Using FPGAs for Embedded Processing: Embedded World 2010Benefits of Using FPGAs for Embedded Processing: Embedded World 2010
Benefits of Using FPGAs for Embedded Processing: Embedded World 2010Altera Corporation
 
Nios II Embedded Processor: Embedded World 2010
Nios II Embedded Processor: Embedded World 2010Nios II Embedded Processor: Embedded World 2010
Nios II Embedded Processor: Embedded World 2010Altera Corporation
 
Reliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on LinuxReliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on LinuxSamsung Open Source Group
 

Similar to Thesis Donato Slides EN (20)

Sears Point Racetrack
Sears Point RacetrackSears Point Racetrack
Sears Point Racetrack
 
Mpc5121 econfs
Mpc5121 econfsMpc5121 econfs
Mpc5121 econfs
 
Adv. FPGA Motor Control--EBV & Univ. of Koln: Embedded World 2010
Adv. FPGA Motor Control--EBV & Univ. of Koln: Embedded World 2010Adv. FPGA Motor Control--EBV & Univ. of Koln: Embedded World 2010
Adv. FPGA Motor Control--EBV & Univ. of Koln: Embedded World 2010
 
Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Introduction to intel galileo board gen2
Introduction to intel galileo board gen2
 
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
 
XS Boston 2008 Network Topology
XS Boston 2008 Network TopologyXS Boston 2008 Network Topology
XS Boston 2008 Network Topology
 
EASA Part-66 Module 5.6 : Basic Computer Structure
EASA Part-66 Module  5.6 : Basic Computer StructureEASA Part-66 Module  5.6 : Basic Computer Structure
EASA Part-66 Module 5.6 : Basic Computer Structure
 
Introduction to Microcontroller
Introduction to MicrocontrollerIntroduction to Microcontroller
Introduction to Microcontroller
 
Introduction to Microcontroller
Introduction to MicrocontrollerIntroduction to Microcontroller
Introduction to Microcontroller
 
QsNetIII, An HPC Interconnect For Peta Scale Systems
QsNetIII, An HPC Interconnect For Peta Scale SystemsQsNetIII, An HPC Interconnect For Peta Scale Systems
QsNetIII, An HPC Interconnect For Peta Scale Systems
 
24
2424
24
 
Rtos ameba
Rtos amebaRtos ameba
Rtos ameba
 
LF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IOLF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IO
 
LCE13: Android Graphics Upstreaming
LCE13: Android Graphics UpstreamingLCE13: Android Graphics Upstreaming
LCE13: Android Graphics Upstreaming
 
Computer Fundamentals
Computer FundamentalsComputer Fundamentals
Computer Fundamentals
 
INCA
INCAINCA
INCA
 
Raise your Uptime - How to monitor heterogeneous server environments with Linux
Raise your Uptime - How to monitor heterogeneous server environments with LinuxRaise your Uptime - How to monitor heterogeneous server environments with Linux
Raise your Uptime - How to monitor heterogeneous server environments with Linux
 
Benefits of Using FPGAs for Embedded Processing: Embedded World 2010
Benefits of Using FPGAs for Embedded Processing: Embedded World 2010Benefits of Using FPGAs for Embedded Processing: Embedded World 2010
Benefits of Using FPGAs for Embedded Processing: Embedded World 2010
 
Nios II Embedded Processor: Embedded World 2010
Nios II Embedded Processor: Embedded World 2010Nios II Embedded Processor: Embedded World 2010
Nios II Embedded Processor: Embedded World 2010
 
Reliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on LinuxReliability, Availability and Serviceability on Linux
Reliability, Availability and Serviceability on Linux
 

More from Marco Santambrogio (20)

RCIM 2008 - - hArtes Atmel
RCIM 2008 - - hArtes AtmelRCIM 2008 - - hArtes Atmel
RCIM 2008 - - hArtes Atmel
 
RCIM 2008 - - UniCal
RCIM 2008 - - UniCalRCIM 2008 - - UniCal
RCIM 2008 - - UniCal
 
RCIM 2008 - - ALTERA
RCIM 2008 - - ALTERARCIM 2008 - - ALTERA
RCIM 2008 - - ALTERA
 
DHow2 - L6 VHDL
DHow2 - L6 VHDLDHow2 - L6 VHDL
DHow2 - L6 VHDL
 
DHow2 - L6 Ant
DHow2 - L6 AntDHow2 - L6 Ant
DHow2 - L6 Ant
 
DHow2 - L5
DHow2 - L5DHow2 - L5
DHow2 - L5
 
RCIM 2008 - - ALaRI
RCIM 2008 - - ALaRIRCIM 2008 - - ALaRI
RCIM 2008 - - ALaRI
 
RCIM 2008 - Modello Scheduling
RCIM 2008 - Modello SchedulingRCIM 2008 - Modello Scheduling
RCIM 2008 - Modello Scheduling
 
RCIM 2008 - HLR
RCIM 2008 - HLRRCIM 2008 - HLR
RCIM 2008 - HLR
 
RCIM 2008 -- EHW
RCIM 2008 -- EHWRCIM 2008 -- EHW
RCIM 2008 -- EHW
 
RCIM 2008 - Modello Generale
RCIM 2008 - Modello GeneraleRCIM 2008 - Modello Generale
RCIM 2008 - Modello Generale
 
RCIM 2008 - Allocation Relocation
RCIM 2008 - Allocation RelocationRCIM 2008 - Allocation Relocation
RCIM 2008 - Allocation Relocation
 
RCIM 2008 - - hArtes_Ferrara
RCIM 2008 - - hArtes_FerraraRCIM 2008 - - hArtes_Ferrara
RCIM 2008 - - hArtes_Ferrara
 
RCIM 2008 - Janus
RCIM 2008 - JanusRCIM 2008 - Janus
RCIM 2008 - Janus
 
RCIM 2008 - Intro
RCIM 2008 - IntroRCIM 2008 - Intro
RCIM 2008 - Intro
 
DHow2 - L2
DHow2 - L2DHow2 - L2
DHow2 - L2
 
DHow2 - L4
DHow2 - L4DHow2 - L4
DHow2 - L4
 
DHow2 - L1
DHow2 - L1DHow2 - L1
DHow2 - L1
 
RCW@DEI - Treasure hunt
RCW@DEI - Treasure huntRCW@DEI - Treasure hunt
RCW@DEI - Treasure hunt
 
RCW@DEI - ADL
RCW@DEI - ADLRCW@DEI - ADL
RCW@DEI - ADL
 

Recently uploaded

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 

Recently uploaded (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 

Thesis Donato Slides EN

  • 1. A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system 26th July 2005 Alberto Donato donato@elet.polimi.it Relatore: Correlatore: Prof. Fabrizio Ferrandi Ing. Marco Domenico Santambrogio
  • 2. Index - Aim of the work - The reconfigurable platform: • Hardware architecture • Partial dynamic reconfiguration flows - Software architecture: • The ICAP kernel module • The IP-Core Manager - Tests and results - Future work Alberto Donato 2/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 3. Aim of the Work reconfiguration capabilities allow creation of Systems-on-Chip FPGAs whose hardware components can be modified, added and removed at runtime. Provide software support for dynamic partial reconfiguration on Systems-on-Chip running the LINUX operating system. Issues: • Partial reconfiguration process management from the OS • Addition and removal of hardware reconfigurable components • Automatic loading and unloading of specific drivers for the IP-Cores upon components configuration/deconfiguration • Easier programming interface for specific drivers Alberto Donato 3/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 4. Hardware Architecture Architecture derived from Caronte: • General purpose processor BUS BUS • Memory (BRAM, DDR) • ICAP Reconfigurable General Purpose Module • Reconfigurable components Processor Reconfigurable Bridge Module Memory Reconfigurable Module ICAP Alberto Donato 4/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 5. Hardware Architecture (2) PLB bus OPB bus Components of the hardware architecture: PPC405 Interrupt • PPC405 processor Processor Controler • SRAM and SDRAM memory SRAM UART Memory • Flash memory Interface • Xilinx ICAP IP-Core SDRAM Memory Ethernet Controller Bridge peripherals: I/O Flash Memory • Xilinx UARTLite interface GPIO LEDs BRAM • Ethernet controller Memory • GPIO LEDs 7−Segments Display ICAP • 7-Segments display Alberto Donato 5/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 6. Partial Dynamic Reconfiguration Flows Reconfiguration of areas of the fabric without interfering with the FPGA rest of the system. Two different approaches: small-bits and module-based reconfiguration. Small-bits manipulation: • change single reconfigurable elements, such as slices • useful to modify the configuration of hardware components of the system Module-based reconfiguration: • addition or removal of system components • changes in the resources available to the system Alberto Donato 6/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 7. Software Side: Previous Work Application Code Self-reconfigurable platform: Level 3 • PowerPc/MicroBlaze processor XPART Level 2 Hardware Indepentent • ICAP component Hardware Emulated Dependent Level 1 ICAP API ICAP API • Stand-alone application using the Device Drivers XPART API Level 0 Embedded Microprocessor External (Windows/Unix) Supports small-bits reconfiguration. Egret architecture: • Modular hardware/software RSoC Core Module FPGA Peripheral Module architecture Peripheral Peripheral Interface Device • Based on the LINUX OS Core CPU Hard or Soft • Dynamic configuration of hard- Core Peripheral Peripheral Interface ware modules and loading of Device Core Internal CPU bus drivers Peripheral Module Alberto Donato 7/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 8. Software Architecture Composed of two main elements: • Driver to support partial reconfiguration • Manager for the IP-Cores devices The software architecture provides: Applications • Access to ICAP component from userspace Linux Kernel • Interface between IP-Cores IP−Core Manager low-level drivers and kernel ICAP Driver • Access to reconfigurable Low−level Device Drivers devices from userspace Reconfigurable Devices processes ICAP Alberto Donato 8/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 9. The ICAP Kernel Module Implements a device driver, adds kernel support for the Xilinx ICAP component. • Access from userspace via standard device node mechanism (i.e. /dev/icap) • Masks hardware details • Reconfiguration data provided in the form of partial bitstream files Kernel Reconfig. Reconfig. Application Controller Controller Configuration Data Driver Data I/O Alberto Donato 9/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 10. The ICAP Kernel Module: Reconfiguration WRITE configuration system call IOCTL call Reconfiguration process using /dev/icap the ICAP kernel module: Linux Kernel 1. partial bitstream is copied into ICAP module buffer from a partial IOCTL call bitstream userspace process 2. reconfiguration ioctl partial call is performed from userspace bitstream memory buffer 3. the kernel module sends ICAP module partial configuration data to the ICAP component Memory−Mapped I/O Space ICAP The hardware ICAP component is accessed copy content of buffer through the memory mapping mechanism. Alberto Donato 10/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 11. The IP-Core Manager A LINUX kernel module which implements a unified infrastructure for the management of the IP-Cores. • IP-Cores Plug-and-Play • Runtime loading of specific IP-Cores drivers Load Device IPCM • Management of operations Driver common to all drivers • Access to reconfigurable Read components from userspace Interrupt device info • Standardize and simplify writing of specific drivers IP−Core HW IPCM I/O mem region Device type Alberto Donato 11/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 12. The IP-Core Manager: Hierarchy The IP-Core Manager acts as a layer between the operating system kernel and the low-level device drivers. The low-level drivers contain: • system calls implementation Kernel • devices initialization register/unregister device request/free memory areas and shutdown functions kernel IP−Core Manager (SW) Kernel Module modules register system calls The drivers also contain a stub: Driver Driver Driver IP−Core drivers data I/O • provides standard kernel module interface reconfigurable IP−Core IP−Core IP−Core IP−Core IP−Core hardware • provides module initialization and shutdown functions Alberto Donato 12/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 13. The IP-Core Manager: Structure Registration process of a new IP-Core with the IPCM: 1. interrupt is received from the HW-IPCM 2. read device data (base address, device id, address range) 3. load low-level driver if not already loaded 4. the low-level driver drv_id, device data baseaddr, initialization function range IPCM registers driver data ipcm_core_register() Driver request_module() structures device data structure ipcm_stub_init() 5. data structures for the ipc_dev_t new device is initialized registered drivers drv_t * ipcm_drv_register() allocate new driver structure drv_t registered devices driver data structure Alberto Donato 13/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 14. Tests and Results Comparison between original Caronte architecture and the one supporting LINUX Resource Orignal Caronte Caronte LINUX Total Elem. Perc. Elem. Perc. available Slice Flip Flops 1843 18% 2369 24% 9856 4-input LUTs 1727 17% 2173 22% 9856 Occupied Slices 1818 36% 2262 45% 4928 Bonded IOBs 107 27% 168 42% 396 Block RAM 32 72% 32 72% 44 2 50% 2 50% 4 DCMs Resources usage in different hardware architectures supporting LINUX Resource Base Arch. No Ethernet No Flash Total Elem. Perc. Elem. Perc. Elem. Perc. available Slice Flip Flops 5079 51% 2369 24% 4668 47% 9856 4-input LUTs 5883 59% 2173 22% 5598 56% 9856 Occupied Slices 4926 99% 2262 45% 4711 95% 4928 Bonded IOBs 205 51% 168 42% 36 81% 396 Tbufs 64 2% 64 2% 64 2% 2464 Block RAM 36 81% 32 72% 36 81% 44 6 37% 4 25% 6 37% 16 GCLKs 2 50% 2 50% 2 50% 4 DCMs Alberto Donato 14/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 15. Tests and Results (2) Small-bits manipulation partial reconfiguration tests Label Reconfig. Bitstream Configuration Throughput frames size (Byte) time (msec) (MByte/sec) 0 33 24179 15.509 1.487 RC 1 46 40171 25.674 1.492 RC 2 50 44907 28.628 1.496 RC 3 60 51347 32.700 1.497 RC 4 68 53619 34.203 1.495 RC 5 88 67099 42.814 1.495 RC 6 104 60567 38.598 1.459 RC 7 132 100595 64.140 1.496 RC 8 148 94063 60.045 1.494 RC 9 182 119319 76.049 1.496 RC Reconfiguration times have been measured on the Avnet Virtex-II Pro Development Board: • with 66 Mhz processor: throughput ~1.5 Mbyte/s • with 100 Mhz processor: throughput > 3.0 Mbyte/s Alberto Donato 15/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system
  • 16. Future Work Possible extensions of the described software architecture: • extension of the ICAP driver to allow creation of reconfiguration command from reconfiguration data (without pre-synthesized bitstreams) • runtime calculation of difference bitstreams • implementation of the HW-IPCM • extension of the ICAP component to support DMA transfers Alberto Donato 16/16 A software platform to support dynamically reconfigurable Systems-on-Chip under the GNU/Linux operating system