Ho a che fare con un sacco di programmazione multithread sul lavoro. Nello specifico, voglio sapere come il modello di memoria ARM differisce da IA64. Entrambi sono modelli molto deboli, ma ci sono delle differenze specifiche che dovrei sapere? Conosco ia64, non con il braccio.In che modo il modello di memoria del braccio è diverso da ia64?
risposta
Ho la stessa domanda, e mentre non ho trovato la risposta del tutto, questo documento potrebbe essere utile: Reasoning about the ARM weakly consistent memory model
Nella sezione Ulteriori lavoro, sembra implicare che nessuno (anche a ARM, dal momento che ha scritto il giornale) ha risposto alla domanda formale:
... ci sono diversi completezza domande che dobbiamo rispondere. In che modo il modello assiomatico si integra con il modello operativo ? ... E qual è l'incorporamento preciso del modello ARM in Alpha, Intel, JMM?
Aggiornamento: un'occhiata anche a Memory Barriers: a Hardware View for Software Hackers da Paul McKenney. Descrive i tipi di riordino dell'accesso alla memoria che i vari processori fanno e quali istruzioni sono disponibili per recintare gli accessi.
http://en.wikipedia.org/wiki/Memory_ordering potrebbe rispondere alla tua domanda. Dalla tabella mostra, sembra che ARMv7 abbia lo stesso IA64.
- 1. In che modo Object.prototype.toString.apply (valore) è diverso da value.toString()?
- 2. In che modo RFC 5545 è diverso da RFC 2445
- 3. In che modo ArrayListMultimap è diverso da LinkedListMultimap?
- 4. In che modo engine.io è diverso da socket.io?
- 5. In che modo la modalità di sistema ARM è diversa dalla modalità di supervisione braccio?
- 6. Dichiarazione di un modello di classe che eredita da un modello di classe diverso in C++
- 7. In che modo @ {push} è diverso da @ {u} o da un ramo di monitoraggio?
- 8. cos'è il percorso //, in che cosa è diverso da/
- 9. Che cos'è NaNi e in che modo è diverso da NaN?
- 10. In che modo il fuso orario EST è diverso da EST5EDT?
- 11. Come utilizzare il metodo Yii :: app() -> end() e in che modo è diverso da exit()?
- 12. Perché il thread si comporta in modo diverso con il corpo del metodo di esecuzione diverso?
- 13. Come rendere il modello diverso da application.hbs in EmberJS?
- 14. In che modo java implementa il modello del peso mosca per la stringa sotto il cofano?
- 15. Che cos'è un ciclo di eventi e in che modo è diverso dall'utilizzo di altri modelli?
- 16. In che modo la memoria virtuale del kernel è mappata alla memoria fisica
- 17. In che modo il caching influisce sul consumo di memoria?
- 18. In che modo un "account di prova" è diverso da un "account normale"?
- 19. L'utilizzo della memoria del client SQL Express è diverso dall'utilizzo della memoria del client SQL Enterprise
- 20. Ordinamento e visibilità del modello di memoria?
- 21. Smontaggio braccio
- 22. In che modo il DOS carica un programma in memoria?
- 23. Implementazione del modello di memoria Java?
- 24. Come è possibile che l'altezza UITableViewCellContentView è diverso da heightForRowAtIndexPath:
- 25. Croce compilazione per il braccio
- 26. SFINAE funziona in modo diverso in casi di tipo e il modello non-parametri di tipo
- 27. Java Generics - In che modo un tipo non elaborato è diverso da un tipo non generico
- 28. In che modo eval() tratta un oggetto stringa in modo diverso da un valore stringa primitivo?
- 29. Django admin seleziona l'ordinamento in modo diverso dal modello predefinito
- 30. In che modo il runtime .NET sposta la memoria?