Domanda

Mentre, per quanto mi ricordo, IEEE 754 non dice nulla su una modalità a filo-zero a gestire numeri denormalizzati più veloce, alcune architetture offrono questa modalità (ad esempio http: // docs.sun.com/source/806-3568/ncg_lib.html ).

Nel caso particolare di questa documentazione tecnica, movimentazione standard dei numeri denormalizzati è difetto, e filo a zero deve essere attivata in modo esplicito. Nella modalità predefinita, i numeri denormalizzati sono trattati anche nel software, che è più lento.

Io lavoro su un analizzatore statico per embedded C che cerca di prevedere corretta (se a volte impreciso) intervalli per i valori che possono accadere a run-time. Vuole essere corretto perché è destinato ad essere utilizzabile per escludere la possibilità che qualcosa vada storto in fase di esecuzione (ad esempio per codice incorporato critica). Questo richiede dopo aver catturato tutti i possibili comportamenti durante l'analisi, e quindi tutti i valori possibili prodotta durante calcoli in virgola mobile.

In questo contesto, la mia domanda è duplice:

  1. Tra le architetture embedded, sono lì architetture che offrono solo filo a zero ? Non avrebbero forse dovuto diritto di pubblicizzare se stessi come "IEEE 754", ma potrebbe offrire primo numero sufficiente di operazioni in virgola mobile 754 in stile IEEE.

  2. Per le architetture che offrono sia, in un contesto incorporato, non è a filo zero probabilità di essere attivato dal sistema , al fine di rendere il tempo di reazione più prevedibile (un vincolo comune per questi sistemi embedded)?

Movimentazione filo-to-zero nel aritmetica intervallo che uso per i valori in virgola mobile è abbastanza semplice se so che devo farlo, la mia domanda è più se devo farlo.

È stato utile?

Soluzione

Sì ad entrambe le domande. Ci sono piattaforme che supportano filo a zero solo, e ci sono molte piattaforme dove a filo a zero è l'impostazione predefinita.

Si dovrebbe anche essere consapevoli del fatto che molti incorporati e piattaforme DSP utilizzano una modalità "Denormals sono pari a zero", che è un altro ruga semantica in virgola mobile.


Modifica ulteriori spiegazioni della FTZ vs. DAZ:

In FTZ, quando un'operazione produrrebbe un risultato denormal sotto il solito aritmetica, viene restituito invece uno zero. Si noti che alcune implementazioni sempre filo a zero positivo, mentre altri possono lavare per essere zero positivo o negativo. E 'probabilmente meglio non dipendere da entrambi i comportamenti.

In DAZ, quando un ingresso per un'operazione è una denormal, uno zero viene sostituito al suo posto. Anche in questo caso, non c'è alcuna garanzia generale su cui sarà sostituito zero.

Alcune implementazioni che supportano queste modalità permettono loro di essere impostate indipendentemente (e alcuni supportano solo uno dei due), quindi potrebbe essere necessario per poter essere in grado modello sia in modalità indipendente così come insieme.

Si noti inoltre che alcune implementazioni combinare queste due modalità in "Flush a zero". Il VFP ARM modalità "filo zero" è sia FTZ e DAZ, per esempio.

Altri suggerimenti

core ARM Cortex hanno un colore di opzione zero, è difficile vedere come si può ignorarlo. Poi di nuovo, non prendere consulenza aziendale da un forum. Parlate con i vostri clienti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top