I memristori possono cambiare i paradigmi di programmazione? In quale modo?

3

Pensa allo storage persistente in grado di conservare i puntatori: tra le altre cose non è necessario serializzare / deserializzare i dati. Ad esempio, di solito si costruisce una struttura ad albero e quindi si serializza in XML in modo che possa essere memorizzata permanentemente su disco. Ora non ce n'è bisogno: la struttura in memoria può essere lasciata così com'è, possibilmente con un nome, in modo che possa essere usata da altri programmi.

Quindi i concetti di caricamento / salvataggio possono essere trasformati in qualcos'altro, se non eliminati del tutto. I file system possono diventare qualcosa di completamente diverso: ad es. solo memoria con etichette simboliche.

La serializzazione sarà comunque utilizzata nella comunicazione di rete, ovviamente. Inoltre, considerando l'isolamento del processo, la protezione della memoria, ecc., Lo scenario sopra può essere un po 'più complicato di così. Una cosa è chiara: una grande memoria persistente indirizzabile può almeno risparmiare un sacco di tempo e al massimo causare cambiamenti di paradigma nella programmazione. Sarebbe interessante sentire le tue opinioni su questo.

    
posta mojuba 22.04.2011 - 08:43
fonte

4 risposte

2

No, questo non cambia alcun paradigma. Quello che stai descrivendo è un modello di memoria condivisa grande / apparentemente illimitato che abbiamo avuto per un periodo piuttosto lungo. Naturalmente, non appena pensiamo di avere molta memoria, sembra che lo spazio del problema si espanda rapidamente per riempirlo.

Quindi, questo potrebbe avere un effetto sul software per un po 'di tempo, proprio come ogni altra modifica hardware ha avuto durante la storia dell'informatica.

    
risposta data 22.04.2011 - 13:10
fonte
2

Penso che influenzi i progettisti di hardware e di sistema più dei programmatori.

Da una lettura informale di alcuni articoli popolari su Internet sui memristor, gli aspetti che potrebbero portare a un cambio di paradigma sono: (passando dal più facile a un futuro lontano)

  • Capacità e affidabilità migliorate dei chip di memoria persistenti
    • Migliori esperienze utente dai dispositivi mobili
    • Tempo di avvio del computer più rapido, sleep-awake immediato
  • Sposta la gerarchia di memoria in equilibrio verso una memoria più veloce portando la memoria cache ad alta densità più vicina alla CPU.
    • Influisce sul design della CPU, ma non influisce sul modello di programmazione.
    • Non influisce sulla progettazione del software perché la cronologia ci dice che ciò che prima era realizzabile con una memoria da 640 KB ora richiede diversi GB.
  • Capacità di combinare elementi logici con elementi di memoria a livello molto basso (bit e byte)
    • Calcolo basato sulla memoria (bit twiddle su larga scala)
    • Memoria indirizzabile al contenuto (ad es. tabella hash gigante)
    • Logica riconfigurabile (ad es. FPGA)
    • Miglioramento di altri tipi di VLSI come sensori di immagine, ecc.
  • Capacità di progettare nuovi tipi di transistor o elementi logici basati solo sul memristor
    • Questo non succederà presto perché i transistor di CPU odierni funzionano già a 10 secondi di picosecondi, e il memristor sembra funzionare a diversi nanosecondi in laboratorio .

I programmatori avranno meno preoccupazioni nell'elaborare enormi volumi di dati e potranno concentrarsi maggiormente sulla logica di business. Questo fa ben sperare per i generalisti e non così bene per gli specialisti.

Modificato: Se c'è davvero un cambio di paradigma nel modello di programmazione della CPU, il settore Compiler come-lo-conosciamo-oggi sarà devastato, aprendo la strada per un nuovo settore chiamato Mapper logico riconfigurabile ( mapper in breve). (Ho sbagliato quando ho detto che c'è poco effetto.) A causa del loro sacrificio, tutti gli altri programmatori saranno in grado di vivere la loro vita come al solito, facendo finta che un Logic Mapper sia lo stesso di un compilatore.

Dichiarazione di non responsabilità: non sono uno scienziato e non ho formazione per la fabbricazione di semiconduttori.

    
risposta data 22.04.2011 - 16:00
fonte
1

Non penso che eventuali modifiche dell'hardware influenzeranno i paradigmi di programmazione, per il semplice motivo che i paradigmi di programmazione non hanno nulla a che fare con l'hardware. I paradigmi di programmazione sono modi per organizzare i nostri pensieri e idee.

I cambiamenti nell'hardware possono rendere alcuni paradigmi più pratici per implementare , comunque. Ad esempio, le attuali CPU mainstream e i sistemi operativi tradizionali sono estremamente ostili all'orientamento agli oggetti. Sono anche estremamente ostili alla raccolta dei rifiuti. Confrontalo con la CPU Azul Vega 3 e con l'architettura del sistema implementata nella serie Azul JCA 7300, che esegue Java a velocità che noi utenti Intel possiamo solo sognare.

    
risposta data 22.04.2011 - 13:03
fonte
1

Penso che la gente che dice "nessuno" sia praticamente morta. Per esempio, considera i dispositivi portatili che utilizzano cose come Windows CE. Usano RAM a batteria invece di memristori (o concorrenti come FE-RAM), ma l'idea di base è la stessa: la tua memoria primaria è (efficacemente) non volatile. Nonostante ciò, quasi tutti questi dispositivi dividono la memoria in due sezioni, una usata come memoria principale e l'altra per l'archiviazione del file system.

In teoria non ce n'è bisogno. Potrebbero, ad esempio, fare come MULTICS e mapparlo tutto come memoria virtuale, con la possibilità di dare nomi alle regioni di memoria in modo da poterle trattare (un po ') come i file. Del resto, dato lo spazio di indirizzamento di una CPU corrente, potresti andare ancora oltre: puoi mappare l'intera Internet come un gigantesco spazio di indirizzamento, quindi il recupero di una pagina dal sito X verrebbe considerato semplicemente come cercapersone in qualche memoria virtuale. / p>

Posso pensare ad almeno due motivi che non sono accaduti, e non ci si dovrebbe neanche aspettare che succedano presto. Innanzitutto, non si adatta bene al modo in cui funziona la maggior parte dei software esistenti. Dovresti buttare via quasi tutto il software esistente (i sistemi operativi e ) e ricominciare dall'inizio per approfittare davvero di questo.

In secondo luogo, non sembra adattarsi bene con la stessa maggioranza delle persone pensa e lavora. potrei pensare a tutti i dati su tutti i server del mondo come "memoria virtuale" per il mio computer, ma la maggior parte delle persone no. Da un punto di vista elettrico, non c'è nemmeno una grande differenza tra una connessione SATA e (diciamo) una connessione Ethernet. Mentre cose come le reti di storage e iSCSI hanno contribuito a erodere le percezioni di molte persone piccole , molte persone pensano ancora a "memoria", "file", "locale", "remoto", ecc. abbastanza distinti l'uno dall'altro.

Questi non rimuovono (o riducono sostanzialmente) la necessità di cose come la serializzazione. Sì, mentre sto lavorando su un file sulla mia macchina, non dovrebbe essere serializzato - ma nel momento in cui decido di inviare il file a qualcun altro sulla loro macchina, ho bisogno di un modo per serializzare ("marshall" , se preferisci) i dati in modo che possano usarli sulla loro macchina. La funzionalità potrebbe non essere utilizzata abbastanza spesso, ma dovrebbe comunque essere presente.

Allo stesso modo, avresti bisogno di un modo per eseguire il backup, ripristinare e (con una strong preferenza) la versione dei tuoi dati. Questo (di nuovo) richiede generalmente una sorta di serializzazione, quindi posso prendere una "istantanea" dei dati ad un certo punto nel tempo e renderla coerente in modo da poterla usare più tardi. Potrebbe non essere esattamente la stessa cosa della serializzazione come la maggior parte della gente pensa in questo momento, ma a prima vista sembra che sia ragionevolmente simile.

In conclusione: in teoria potrebbe essere in grado di cambiare molto in fretta, ma in realtà l'effetto netto è probabilmente quello di rendere più facile (per esempio) produrre dispositivi portatili che funzionano quasi esattamente come fanno ora, ma aumenta la durata della batteria perché la RAM attinge energia solo per la lettura / scrittura, non solo per mantenere il suo contenuto corrente.

    
risposta data 22.04.2011 - 17:17
fonte

Leggi altre domande sui tag