Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai
description
Transcript of Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai
Politecnico di MilanoPolitecnico di Milano
Realizzazione di un componente Realizzazione di un componente per un sistema dedicato: per un sistema dedicato:
integrazione del componente integrazione del componente RC6 a 128 bit in EDKRC6 a 128 bit in EDK
Relatore: Prof. Fabrizio FerrandiCorrelatore: Ing. Marco Domenico Santambrogio
Davide Murrai Matricola n. 654356
A.A. 2003/2004
Davide Murrai 2
SommarioSommario• Obiettivi;• Introduzione: strumenti, dispositivi, algoritmo;• Architettura:
• Struttura del sistema;• Estensione al DMA.
• Integrazione del componente rc6_encoder:• Piattaforma hardware: implementazione del
componente;• Piattaforma software: l’uso del driver.
• Test Effettuati;• Conclusioni.
Davide Murrai 3
ObiettiviObiettivi
• Creazione di un IP Core che implementi l’algoritmo di crittazione RC6;• Partizionamento della specifica iniziale in HW e SW;• Interfacciamento tra HW e SW all’interno dell’IP Core;• Integrazione del componente in un sistema dedicato;• Test HW e SW.
Davide Murrai 4
Introduzione – Introduzione – strumenti e dispositivistrumenti e dispositivi
• EDK (Embedded Development Kit) permette la realizzazione di architetture per sistemi dedicati a partire da una descrizione HW dei vari componenti.
• Utilizza XPS (Xilinx Platform Studio).
• Dispositivo riprogrammabile FPGA (Field Programmable Gate Array).
Architettura
Componenti Xilinx Componenti creati dall’utente
Davide Murrai 5
Introduzione – algoritmo RC6Introduzione – algoritmo RC6
• Blocchi da 128 bit, suddivisi in 4 registri da 32 bit;• Chiave di crittazione variabile (in genere 128 bit);• Composto da due sottoalgoritmi: • Key Schedule;• Crypt.
• Parametrico rispetto a:• w • r• b Dimensione chiave di crittazione.
Numero cicli di crittazione da eseguire;
Dimensione registri della parola da crittare (fissata a 32 bit);
Davide Murrai 6
ArchitetturaArchitettura
MB
OP
B
DLM
BIL
MB
BRAM Controller
BRAM Controller
uartlite
rc6_encoder
mdm
gpioBRAM
Davide Murrai 7
Estensione al DMA Estensione al DMA (Direct Memory Access)(Direct Memory Access)
• Scopo: crittazione di grandi moli di dati in sequenza senza coinvolgere il processore.• Attuazione: utilizzo del componente opb_central_dma.
• Problemi riscontrati:• mancato trasferimento dei dati tra la memoria e
l’rc6_encoder;• anche in caso di corretto funzionamento
dell’opb_centarl_dma non si otterrebbe comunque un incremento delle prestazioni;
• possibile miglioramento delle prestazioni tramite l’uso delle net di interrupt dell’opb_central_dma, che però sono ancora completamente in fase di sviluppo.
Davide Murrai 8
rc6_encoder_core
PSelect
rc6_encoder
BUS OPB
Operazioni algoritmo RC6
Interfaccia con il BUS
Piattaforma HW: Piattaforma HW: struttura del componentestruttura del componente
Davide Murrai 9
Piattaforma HW: Piattaforma HW: utilizzo dei registriutilizzo dei registri
Key Schedule
Crypt
Chiave di crittazione (dimensione variabile)
Parola da crittare (in 4 registri da 32 bit)
Registri di comando del componente
Davide Murrai 10
Piattaforma SW: Piattaforma SW: definizione del driverdefinizione del driver
DRIVER
Hardware
SoftwareApplicazione utente: system.c
Componente: rc6_encoder
Makefile
rc6_encoder.h
rc6_encoder.c
Davide Murrai 11
Piattaforma SW: Piattaforma SW: funzioni del driverfunzioni del driver
• write_regs
• userkey
• risultati
• start
• fine Riporta basso il segnale di interrupt per una nuova crittazione
Ottiene i valori finali della crittazione dal componente
Scrive la parola da crittare all’interno del componente
Scrive la chiave di crittazione all’interno del componente
Invia il comando di avvio crittazione al componente
(al termine della quale è sollevato un interrupt)
Invio valori al componente
Prelievo valori dal componente
Controllo
Davide Murrai 12
Implementazione IP CoreImplementazione IP Core
Key Schedule
CryptRisultati
Avvio algoritmo
Interrupt
Invio parola e chiave
Avvio crittazione
Piattaforma SW
1
2
3
4
Piattaforma HW
Davide Murrai 13
Test effettuatiTest effettuati
•Test sul componente: • controllo funzionamento dell’rc6_encoder;• controllo funzioni del driver.
• Impiego della console di debug:• particolare caso di test;• visualizzazione degli effetti dopo l’esecuzione di
ogni singola istruzione.
Davide Murrai 14
Test sul componenteTest sul componente
Test all’interno del codice C
Utilizzo funzioni del driver
uartlite
2F 19 4E 52
52 4E 19 2F
Davide Murrai 15
Impiego della Impiego della console di console di debugdebug
Run XMD Run Debugger
Comando: mbconnect mdm
1
Modulo di debug HW
2
GDB
3
Target Selection
45
6
7. Avvio software
Strumenti di XPS
Davide Murrai 16
Conclusioni e sviluppi futuriConclusioni e sviluppi futuri
•Conclusioni:• corretto funzionamento del componente;• corretta integrazione all’interno dell’architettura;• temporizzazioni:
• minimo periodo: 20.7 ns (massima frequenza: 48 MHz);• tempo impiegato per una crittazione con chiave da 128 bit
circa 23 microsecondi.• Occupazione del componente: 58% della FPGA.
• Sviluppo futuro:• miglioramento delle prestazioni tramite l’uso del
DMA.
Davide Murrai 17
Fine presentazioneFine presentazione