[PLUTO-help] prestazioni hardware necessarie per un software

Gian Uberto Lauri GianUberto.Lauri a eng.it
Mar 7 Nov 2006 09:25:29 CET


>>>>> "CA" == Carlo Agrusti <carlo-ag a libero.it> writes:

>> 3- Il comando "top" mostra l'attività dei vari task del
>> sistema. Potrei far girare la mia applicazione nella macchina host
>> e utilizzare quel comando per vedere quante risorse impiega... ma è
>> corretto pensare che se l'applicazione occupa tipo il 25% della
>> CPU, significa che in un'analoga macchina x86, con la stessa
>> memoria RAM e frequenza di clock 1/4, l'applicazione girerà lo
>> stesso, occupando però tutta la CPU?
>> 
>> E a partire da una valutazione di questo tipo posso fare delle
>> considerazioni di prestazioni minime per l'architettura ARM?

CA> Tutto e' possibile, ma non credo che sia una via praticabile;

Io invece ho qualche dubbio. Anzi qualche forte dubbio.

Un  ARM  se non  ricordo  male è  una  architettura  RISC, ovvero  una
macchina  Load/Store con  pochi tipi  di indirizzamento  ma  una certa
quantità  di  registri (se  segue  la  struttura  classica, circa  una
trentina (trentadue, di cui uno che vale fisso 0).

Un iA32  (x86 con  x > 2)  ha invece  un numero di  indirizzamenti più
ricco,  ma meno  registri. Quindi  vuole dire  che la  stessa  riga di
codice  C  può  venir  tradotta  non  solo in  un  diverso  numero  di
istruzioni,  ma anche  in istruzioni  che fanno  un diverso  numero di
accessi alla memoria.

Poi  ci si mettono  di mezzo  le differenti  velocità di  accesso alla
memoria con i vari livelli di cache L1 e L2.

CA> tieni presente che il tuo sistema di sviluppo puo' contare su un
CA> coprocessore matematico, mentre se vai su ARM92x dovrai
CA> accontentarti della emulazione (o del soft-float, ma questa e' una
CA> brutta bestia), e immagino che le applicazioni voip vadano molto
CA> in virgola mobile.

Qui non sarei d'accordo. VOIP  (applicazione che funziona se hai tanta
banda -  andarsi a  leggere quello che  scriveva Vadim  Antonov(*) sul
veicolare dati  real time su IP)  deve elaborare dati  prelevati da un
campionatore,  comprimerli,   impacchettarli,  spedirli,  ricevere  il
flusso opposto, spacchettarlo, decomprimerlo e convertirlo in analogi-
co.

Se non ricordo male tutte cose che si fanno con gli interi, sopratutto
il solo audio: un CD se non  ricordo male usa un capionamento a 44 kHz
con campioni da 16 bit, per la telefonia ci si accontenta(va) di 8 bit
a 8 kHz.  Vero anche che sono passa  10 anni che non mi  occupo più di
queste cose.

CA> Probabilmente, il modo migliore di procedere e' quello di emulare
CA> la cpu ARM - puoi usare direttamente qemu da dentro scratchbox - e
CA> provare a fare qualche valutazione in questo senso, magari tenendo
CA> presente che un 920T a 200MHz tira fuori una cinquantina di
CA> bogomips (per quello che valgono).

Concordo,  la via  dell'emulazione software  è la  migliore  in questo
scenario.

-- 
 /\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
  //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software



More information about the pluto-help mailing list