Presentazione scientifica - Benchmark tra Playstation 1 e Playstation 2
Transcript
Presentazione scientifica - Benchmark tra Playstation 1 e Playstation 2
Benchmark Playstation 1 /Playstation 2 Progetto di Architettura degli Elaboratori – Prof. Leonardo Pasini Corso di Laurea in Informatica – Scuola di Scienze e Tecnologie – Università di Camerino Anno Accademico: 2011/2012 Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Definizione di benchmark Che cos'è un benchmark? “ Con il termine benchmark si intende un insieme di test software volti a fornire una misura delle prestazioni di un computer per quanto riguarda diverse operazioni.” (Citazione Wikipedia). ✔ ✔ ✔ Vi sono due tipi di benchmark : Sintetico : Programmi che misurano le prestazioni di specif iche operazioni di un determinato sistema.(Esempio caricamento istruzioni in una CPU ec..) Applicativo : Programmi che misurano le prestazioni di un test in un certo sistema , il quale test riproduce una reale situazione (vedi rendering 3D, compilazione di un programma ec..) Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Vantaggi e Svantaggi Sintetico Applicativo Ordine di grandezza del tempo: Non accettabile. Accettabile Utilità : Programmatore Utente I test che ho costruito sulla playstation 1 / playstation 2 sono applicativi anche se alcuni hanno una valenza sintetica. La mia scelta è ricaduta sui test applicativi in quanto sono misurabili e sono soprattutto più vicini all' utilizzo che l' utente fa della piattaforma. Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Scelta del tipo di test di benchmark Test La scelta tra i due tipi di benchmark è stata influenzata anche dal tipo di pubblico e dalle SDK che il programma utilizza. Essendo il pubblico in questione , un popolo di gamer la scelta più raccomandata è quella relativa al Benchmark applicativo. A dare il colpo di grazia al benchmark sintetico , è stata l' impossibilità di cronometrare benchmark sintetici attraverso l' uso del contatore che vedremo tra qualche slide. Nonostante questo abbiamo deciso di inserire un test sintetico che svolge esclusivamente operazioni a livello di cpu . Un ulteriore precisazione.... Il benchmark che andremo ad effettuare è tra le piattaforme : Playstation 1 e Playstation 2 . Il software che abbiamo sviluppato funziona con la Playstation 1 e ne sfrutta tutta le caratteristiche hardware , ma con la Playstation 2 il discorso è diverso. L' applicativo nella Playstation 2 non sfrutta tutte le capacità hardware in quanto lavora in modalità retrocompatibile. In questa modalità possiamo utilizzare un lettore CD-ROM che permette velocità maggiori di lettura , una GPU e una SPU, ma al contempo si utilizza per questioni di retrocompatibilità la cpu della Playstation 1 e la sua relativa memoria da 2MB. Creazione del programma di benchmarking Per poter programmare abbiamo usato un compilatore GNU C per la Playstation 1 con tanto di psxsdk(un set di librerie per la Playstation 1 ). Per ottenere il file bin/cue che verrà poi masterizzato si effettuano le seguenti fasi: 1. Compilazione e linkaggio con conseguente output di un file elf. 2. Conversione del file elf in un file exe. 3. Spostamento del file exe nella cartella del cd. 4. Creazione del file systemcnf . 5. Creazione del file iso con filesystem ISO9660 . 6. Conversione del file iso in un file bin. 7. Creazione del file cue. La playstation 1 deve essere modificata per leggere il programma . Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Dalla compilazione alla masterizzazione Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Legalità E' doveroso citare i seguenti articoli della legge sul diritto d’autore (l. 633/41): 1) art. 171, comma 1: "È punito, se il fatto è commesso per uso non personale, con la reclusione da sei mesi a tre anni e con la multa da euro 2.582 a euro 15.493, chiunque a fini di lucro: […] f-bis) […] vende […] pubblicizza per la vendita o il noleggio, o detiene per scopi commerciali, attrezzature, prodotti o componenti ovvero presta servizi che abbiano la prevalente finalità o l'uso commerciale di eludere efficaci misure tecnologiche di cui all'art. 102-quater ovvero siano principalmente progettati, prodotti, adattati o realizzati con la finalità di rendere possibile o facilitare l'elusione di predette misure […]"; 2) art. 102-quater: "1. I titolari di diritti d'autore e di diritti connessi nonché del diritto di cui all'art. 102-bis, comma 3, possono apporre sulle opere o sui materiali protetti misure tecnologiche di protezione efficaci che comprendono tutte le tecnologie, i dispositivi o i componenti che, nel normale corso del loro funzionamento, sono destinati a impedire o limitare atti non autorizzati dai titolari dei diritti […]" Fonte : http://www.tomshw.it/cont/articolo/modificare-le-console-e-legale/27709/1.html Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Calcolo del tempo computazionale dell' algoritmo Per poter calcolare il tempo di esecuzione di un algoritmo abbiamo preso simulato il funzionamento di un “cronometro” . Per cronometrare abbiamo sfruttato una funzione data dalle librerie psxsdk che ci permette ogni 50/60 volte al secondo (0,02 secondi in pal mode e 0,017 secondi in Ntsc mode) di chiamare un altra nostra funzione che incrementerà un contatore. Quando il programma cronometrerà l' algoritmo resetta il contatore , dopodichè eseguira l' algoritmo e appena finito l' algoritmo il programma prenderà il contatore e lo dividerà per 50 o 60 . Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Test 1 :Crittografia & Decrittografia Come algoritmo di criptazione /decriptazione abbiamo usato un algoritmo TEA (Tiny Encryption Algorithm). Pregi: 1. Nessun brevetto su questo algoritmo . 2. Facilità di implementazione . 3. Utilizzo con macchine che non hanno molte risorse. 4. rete di Feistel ( invertibilità). 5. utilizzo di operazioni basi (benchmark sintentico). Difetti: L' algoritmo è facilmente attaccabile da un attacco correlato alla chiave . Crittografia Decrittografia PS1 PS2 PS1 PS2 5,4649995 4,9866665 5,5199995 5,0416665 Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Test 2 : Lettura dati dal cd. Sappiamo che il cd della playstation 1 ha un file system CDfs (Compact Disc file system) , di conseguenza sappiamo che in un settore vi è una parte di un file . Grazie a questa considerazione possiamo sapere quanti settori occupa un file e automaticamente calcolarci il tempo di lettura della parte dati di un settore . Lettura di 997336 byte Lettura di un settore PS1 PS2 PS1 PS2 4,190833034 3,70499987 0,00852982 0,00760757 Kilobyte letti al secondo. PS1 PS2 232,4677 264,7636067 Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Test 3 : Caricamento di un immagine Grazie a questo test possiamo valutare il tempo di decodifica di un immagine e il tempo di caricamento sulla Gpu . Le fasi di caricamento di un immagine sono : Caricamento di un immagine PS1 PS2 0,087499145 0,073333165 Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Test 4 : Caricamento di un file audio sul buffer della Spu e sua riproduzione. Questo tipo di test serve a conoscere il tempo che ci mette a caricare un file audio dalla Ram al buffer della Spu. In molti giochi viene sfruttata questa capacità in maniera massiccia (basti pensare alla serie di crash che è stata creata per la playstation 1). Caricamento di un file audio Riproduzione di un file audio. PS1 PS2 PS1 PS2 2,31833297 2,025000665 0,00000128 0,000000665 Byte al secondo letti. PS1 PS2 154946 178725 Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Test 5: Scrittura e lettura sulla memoria RAM. Questo tipo di test serve a vedere il tempo di lettura e il tempo di scrittura della Ram. Ricordo che la Ram è un memoria di 2Mb in questo caso. Quest'ultimo è molto importante a livello software in quanto tutti i software usano la memoria per motivi vari. Scrittura di 1 Megabyte Lettura di un 1Megabyte. PS1 PS2 PS1 PS2 1,336666917 1,228333665 0,81833321 0,751666665 Byte scritti in un secondo. Byte letti in un secondo. PS1 PS2 PS1 PS2 784476 860771 1281361 1406626 Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Risultati Playstation 1 /Playstation 2 e conclusioni. Totale: 12,6 Test 5-Lettura-2 9,78 Test 5-Lettura-1 8,87 Test 5-Scrittura-2 9,73 Test 5-Scrittura-1 8,82 Test 4-3 15,35 Test 4-2 19,25 Test 4-1 14,49 Test 3-1(Immagine) 19,32 Test 2-3(Cd-rom) 13,89 Test 2-2(Cd-rom) 12,12 Test 2-1(Cd-rom) 13,11 Test 1-2(decript.) 9,49 Test 1-1(cript.) 9,59 0 2 4 6 8 10 12 14 Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo 16 18 20 Rapporto Ps1/Ps2 Calcolo dell' indice di confronto tra le due console Per calcolare l' indice del test abbiamo usato la seguente formula: IndiceTest (Vmax , Vmin)=( Vmax −1)∗100 ; Vmin La media di questi indici ci permette di dare un indice di confronto delle prestazione delle due console . n ∑ IndiceTest (Vmax i , Vmini ) Media= i=1 n =12,60 Questo indice ci permette di dire che la Playstation 2 (con la cpu R3000A) è più perfomante rispetto alla Playstation 1 del 12,60%. Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo Ringraziamenti Sviluppatori di Bps: 1- Fabio Pagnotta 2- Stefano Traini 3- Alessandro Di Carlo Ulteriori ringraziamenti: -Giuseppe Gatta (1° informatica all'università di Fisciano (Salerno) , creatore delle Psxsdk http://code.google.com/p/psxsdk/ ) - Jacopo De Berardinis (creatore del suono per il test audio). -Nicola Paoletti : coordinatore del progetto Link del materiale :http://www.benchps.altervista.org/ Fabio Pagnotta, Stefano Traini , Alessandro Di Carlo