n° 219
Novembre 2017
Dicembre 11, 2017, 08:59:46 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Register Windows, idea tanto malvagia?  (Letto 5620 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
flameman
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 76


Mostra profilo E-mail
« inserita:: Febbraio 24, 2016, 03:30:09 »

L'idea del Register Windows e' una delle eredita' Berkeley RISC, implementata nelle famiglie SPARC e 29K, mentre la Stanford University proponeva l'approccio MIPS che in qualche misura meglio regolamenta l'uso dei registri senza doverli replicare in finestre.

Chiaramente e' un compromesso, pero' la storia insegna che l'idea di Stanford e' piaciuta di piu', difatti anche il cugino ARM ha rigettato i Register Windows, sopratutto e' piacitua perche' costruire i chip in questo modo costa meno complexity, e anche meno silicio.

E' davvero una cosi' brutta idea quella di avere un set registri privati per ognuno dei task?
Registrato
+m+
Newbie
*

Karma: +1/-5
Scollegato Scollegato

Messaggi: 29


Mostra profilo
« Risposta #1 inserita:: Febbraio 24, 2016, 04:13:23 »

E dove li salvi i registri? Perchè "oggi" è normale avere qualche centinaio o migliaio di task (o processi, spesso non è detto siano task heavy). Ci vorrebbe, ragionevolmente, una memoria associativa, che poi altro non sarebbero che una serie di registri "occulti" che vengono mappati al processo in esecuzione (alla Berkeley).

Ma... "dove"?

Se son registri "veri" allora sono costosi, molto costosi (intendo come silicio). Se sono "finti" (cioè memorizzati in una sorta di cache o TLB dei poveri di registri) li vuoi mettere in memoria?

Come in (quasi) tutto ci sono pregi e difetti, ma più complesso spesso significa più lento (e costoso)
Registrato
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #2 inserita:: Febbraio 24, 2016, 04:24:42 »

Register Windows e serializers non sono affatto amati dai designer. I problemi nascosti di shadowing, inizializzazione e sincronizzazione introducono potenziali elementi di inaffidabilità del design, oltre a costi eccessivi anche con le attuali tecnologie di integrazione, se parliamo di ASIC e progettazione per poligoni di polisilicio (peggio ancora se si parla di blocchi in un HDL).

C'è poi la questione che, invece di rincorrere un'idea come la multiprogrammazione, si preferisce di gran lunga ricorrere ad hardware custom ed aumentare il numero di unità elaborative per ottenere efficienza, riduzione del codice, affidabilità failsafe, separazione fisica e logica... anche ai sensi dei principi di partizionamento della ARINC 653 (quasi sempre applicabile ai medesimi costi anche alle applicazioni con minori requisiti).


Quanto ai softcore, in tanti anni di professione non ne ho mai visto certificare uno, sia pure per applicazioni industriali con requisiti piuttosto blandi. Abbiamo logiche programmabili con quattro core fisici PPC, tricore Infineon e dozzine di design analoghi, i sondaggi CMP continuano a ribadire che nessun progettista è interessato ai softcore per applicazioni realmente critiche.
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
flameman
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 76


Mostra profilo E-mail
« Risposta #3 inserita:: Febbraio 24, 2016, 05:07:13 »

E dove li salvi i registri?

Nel 2004, in erasmus ad Oxford, dato che avevo qualche difficoltà a sostenere la parte "orale" dei vari esami, ho preferito integrare ArchitettureII con un progetto di laboratorio.

Riprendendo il trucco del Register Windows, proponevo di usare 32Kbyte di ram per realizzare 1024 task hw da 32 registri ciascuno.

Inutile dire che ai tempi non avevo ne attrezzatura (PC, Software, licenze, LA, fpga-board), ne know how, ne tecnologia, quantomeno le fpga economiche costavano tanto e non offrivano sufficiente celle e BRAM.

Oggi e' tutto un altro paio di maniche: ai tempi ci accontentammo di una bozza descrittiva di 43 pagine e di un simulatore software (modi SPIM), scritto pero' in modo modulare per poter cambiare a piacimento il numero di registri ed altre amenità, mentre qualche mese fa l'ho implementato in VHDL, avendo a disposizione 48Kbyte di BRAM, al costo di 108 euro per l'intera scheda, comprensiva di DRAM controller, DRAM da 8Mbyte e FeRAM da 2Mbyte

In breve la schedina offre abbondante spazio per caricare codice e dati (in DRAM), spazio per lo storage non volatile (ferromagnetica), la BRAM e' cmq presente nelle fpga, e' completamente inutilizzata ne sembra aver senso impiegarla (forse avrebbe senso per le tabelle TLB o per eventuale cache), tuttavia, facendo previsioni sulle future fpga, sembra proprio che quella BRAM raddoppi ad ogni nuovo chip, e siccome cresce molto + velocemente di quanto si riesca ad utilizzarla questo e' proprio il caso predetto nel 2004: gia' che ho risorse, e costano relativamente poco, perche' non sfruttarle?


Perchè "oggi" è normale avere qualche centinaio o migliaio di task

mah, ti diro'

a livello lavorativo non ho mai superato i 1024 tasks, ne con VxWorks RTOS (di Wind River), ne con Integrity RTOS (di Green Hills), mentre a livello hobbistico non ho mai superato i 128 tasks con ucOS/2

ovvero dal mio punto di vista, la quota qui sopra e' abbastanza ragionevole con la tecnologia in uso, ad un costo accettabile (per altri prototipi-giocattoli ho replicato la stessa schedina ad un 1/4 del suo costo commerciale)

ho aperto questo thread perche' parlando su IRC, molti mi hanno risposto che i Register Windows non sono affatto una buona idea, nemmeno nel mio caso, mi piacerebbe capire se ci sono buone argomentazioni pero'


Se son registri "veri" allora sono costosi, molto costosi (intendo come silicio). Se sono "finti"

Si chiamano "soft-registers", trovo delle implementazioni anche in stack-machine anni 80, e sono tipicamente mappati in ram, nel caso HC11 c'e' fisicamente solo 1 registro CPU, tutti gli altri sono tipicamente soft-registers mappati in ram asincrona esterna, mostruosamente lenta rispetto alla sincrona.

Nel mio caso sono mappati in BRAM, interna al softcore, per altro ad accesso sincrono, ovvero offrono gli stessi tempi di un register file.

Semmai il trucco che ho usato nell'elaborato consiste nell'aver creato un bridge tra register file e stadio I/O, ovvero in modalità superusermode tutti i registri di tutti i task sono accessibili dallo stadio load/store con zero cicli di attesa, mentre in usermode sono accessibili attraverso stadi register-file-RD/WR attraverso opcode appositi

p.e.
ld_const.size rt, const (carica in rt la costante const)
move.size rt, rs (carica in rt il contenuto del registro rs)

Questo trucco si paga in complexity, circa 250 linee a descrizione della feature hardware e circa 60 test benches per verificare che tutto funzioni (perche' impatta molto pesantemente sulla pipeline)
Registrato
flameman
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 76


Mostra profilo E-mail
« Risposta #4 inserita:: Febbraio 24, 2016, 05:13:38 »

Quanto ai softcore, in tanti anni di professione non ne ho mai visto certificare uno, sia pure per applicazioni industriali con requisiti piuttosto blandi.

forse "Leon", forse si, forse no, si muoveva qualcosa 2 anni fa, poi non ne ho + sentito parlare.
Di sicuro RISC5 ha piu' interesse ($$$ investiti) in india e cina, pero' non so se le implementazioni VHDL avranno mai interesse tale da giustificare costi (carissimi) di certificazione. Fare HDL pro ASIC e' un po' diverso dal pro VHDL/Verlig, e sopratutto aprire i sorgenti non e' affatto cosa furba a livello industriale.

Per cui, ai fatti, forse no, non ne esiste ancora uno che si possa citare  Ghigno

A livello lavorativo le soluzioni (Xilinx/Altera) che ho macinato sono quasi tutte SoC (tipicamente ARM) + AMBA/bus + FPGA, tutto infilato nello stesso chip.
Registrato
flameman
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 76


Mostra profilo E-mail
« Risposta #5 inserita:: Febbraio 24, 2016, 05:24:59 »

In avionca pero' non vogliono ancora usarla questa tecnologia, anche perche' non hanno ancora accettato ARM, le ultime centraline hanno PowerPC 440/460 seguito da diverse fpga, il tutto con garanzie di ricambi per 10 anni

In automotive invece ho visto qualche Zynq (Xilinx)
Registrato
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #6 inserita:: Febbraio 24, 2016, 05:32:43 »

I softcore sono una moda, comodi forse ai margini dell'embedded (vedi appliance di rete) e nel segmento più basso dell'automazione industriale, ma nulla più. Se anche si arrivasse ad averne uno o due certificati per qualche specifica applicazione, sarebbe comunque insignificante: sarebbe come il "controesempio" di EC++, anni di lavoro di un comitato di standardizzazione per eliminare tutto il marcio di C++ incompatibile con i sistemi critici in tempo reale, per poi finire ad essere supportato nominalmente a malapena da due o tre cross compiler (Green Hills in testa) e usato realmente da quattro gatti attorno al 3% delle sue possibilità in progetti di margine o acritici.

In avionca pero' non vogliono ancora usarla questa tecnologia, anche perche' non hanno ancora accettato ARM, le ultime centraline hanno PowerPC 440/460 seguito da diverse fpga, il tutto con garanzie di ricambi per 10 anni

In automotive invece ho visto qualche Zynq (Xilinx)

Il mondo dei sistemi critici certificati è fortemente conservatore, e lo è a ragion veduta. Nei sistemi energetici le garanzie per i ricambi arrivano anche a tre decadi, secondo la tecnologia usata... ARM probabilmente non sarà mai certificato per gli usi più estremi, per una congerie di ragioni analizzate a fondo un mese sì e l'altro anche su quasi tutte le riviste di elettronica integrata professionale e in una interminabile sfilza di articoli scientifici applicativi. A malapena il compilatore ufficiale ha da pochissimo ottenuto una certificazione TÜV, vale a dire l'anticamera del vestibolo dell'atrio del cortile esterno... quell'architettura, che pure raccoglie tutti i vantaggi di un'ampissima eredità, è nata e si è evoluta per tutt'altri scopi, ai margini ma soprattutto molto fuori dai margini del segmento embedded propriamente detto.


Tornando alla questione iniziale degli shadow registers e RW, anche ammettendo lo scenario fortemente ristretto di lavorare solo in VHDL/Verilog e solo su softcore usando una FPGA anabolizzata, hai già la risposta alla tua domanda semplicemente facendo bene i conti sulla complessità e sui wait states, ma anche sui costi a livello di pipeline.
Si tratta sempre e comunque di una pessima idea: se vuoi qualche riferimento recente in letteratura, basta chiedere.
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
flameman
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 76


Mostra profilo E-mail
« Risposta #7 inserita:: Febbraio 24, 2016, 05:52:09 »

Si tratta sempre e comunque di una pessima idea

mi sa che e' anche la "spiegazione scientifica" del 27/30 (pero' con stretta di mano, che personalmente vale mille mille punti) che presi presentando l'elaborato di quell'esame  Ghigno

se vuoi qualche riferimento recente in letteratura, basta chiedere.

se possibile  Ghigno
Registrato
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #8 inserita:: Febbraio 24, 2016, 05:54:59 »

Basta avere un po' di pazienza per i riferimenti, visto che sto battendo tutti i record di Phileas Fogg da quando hanno promulgato la DO333. Indeciso Bocca cucita Occhi al cielo

Follow-up in pvt.
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines