Politecnico di Milano
Realizzazione di un componente
per un sistema dedicato:
integrazione del componente
RC6 a 128 bit in EDK
Relatore: Prof. Fabrizio Ferrandi
Correlatore: Ing. Marco Domenico Santambrogio
Davide Murrai
Matricola n. 654356
A.A. 2003/2004
Sommario
• 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
2
Obiettivi
• 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
3
Introduzione –
strumenti 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).
Architettura
Componenti Xilinx
Componenti creati
dall’utente
• Dispositivo riprogrammabile FPGA (Field Programmable Gate Array).
Davide Murrai
4
Introduzione – 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
Dimensione registri della parola da crittare (fissata a 32 bit);
• r
Numero cicli di crittazione da eseguire;
• b
Dimensione chiave di crittazione.
Davide Murrai
5
Architettura
uartlite
ILMB
MB
DLMB
BRAM
BRAM
Controller
mdm
OPB
BRAM
Controller
gpio
rc6_encoder
Davide Murrai
6
Estensione al DMA
(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
7
Piattaforma HW:
struttura del componente
rc6_encoder_core
Operazioni
algoritmo RC6
rc6_encoder
PSelect
Interfaccia
con il BUS
BUS OPB
Davide Murrai
8
Piattaforma HW:
utilizzo dei registri
Chiave di crittazione
(dimensione variabile)
Key Schedule
Parola da crittare
(in 4 registri da 32 bit)
Crypt
Registri di comando
del componente
Davide Murrai
9
Piattaforma SW:
definizione del driver
Software
Applicazione utente:
system.c
rc6_encoder.c
DRIVER
rc6_encoder.h
Makefile
Hardware
Davide Murrai
Componente:
rc6_encoder
10
Piattaforma SW:
funzioni del driver
• write_regs
Scrive la parola da crittare
all’interno del componente
Invio valori al
componente
• userkey
Scrive la chiave di crittazione
all’interno del componente
• risultati
Ottiene i valori finali della
crittazione dal componente
Prelievo valori
dal componente
• start
Invia il comando di avvio
crittazione al componente
(al termine della quale è
sollevato un interrupt)
Controllo
• fine
Riporta basso il segnale di interrupt
per una nuova crittazione
Davide Murrai
11
Implementazione IP Core
Piattaforma SW
Invio parola
e chiave
Piattaforma HW
1
2
Avvio algoritmo
3
Interrupt
Risultati
Key Schedule
Avvio
crittazione
Crypt
4
Davide Murrai
12
Test 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
13
Test sul componente
Test all’interno
del codice C
uartlite
2F 19 4E 52
Utilizzo funzioni
del driver
52 4E 19 2F
Davide Murrai
14
Impiego della console di debug
Run XMD
Run Debugger
1
Comando:
mbconnect mdm
3
5
Target
Selection
4
GDB
2
6
Modulo di
debug HW
7. Avvio software
Strumenti di XPS
Davide Murrai
15
Conclusioni 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
16
Fine presentazione
Davide Murrai
17
Scarica

ThesisMurrai_2004_IT