b"\n_START_ARTICLE_\nAT&T Hobbit\n_START_SECTION_\nCaratteristiche\n_START_PARAGRAPH_\nIn un progetto RISC tradizionale l'accesso alla memoria \xc3\xa8 di tipo load/store, cio\xc3\xa8 il processore per modificare un dato in memoria carica sempre esplicitamente il dato (load) in un registro, lo modifica e poi lo salva nuovamente in memoria (store). Spesso l'architettura RISC per questo motivo viene chiamata anche load/store. Questa tipologia di accesso alla memoria specifica chiaramente gli accessi alla memoria permettendo di realizzare pipeline in modo relativamente semplice e permette di realizzare processori superscalari con poca logica aggiuntiva. Tuttavia i linguaggi di programmazione non seguono questa filosofia di accesso alla memoria. Normalmente utilizzano una struttura a pila (stack) dove salvano le variabili locali e altre informazioni per la gestione delle sottoprocedure. Il compilatore quando compila il codice traduce la struttura a stack in una serie di load/store per il processore._NEWLINE_Il progetto CRISP e l'Hobbit invece gestiscono direttamente il metodo di accesso basato su stack utilizzato dai linguaggi di programmazione. Il processore includeva delle istruzioni che gestivano direttamente lo stack e gli array. Sebbene questa gestione della memoria fosse comune nei primi processori CISC, il progetto CRISP gestiva lo stack tramite 64 registri a 32 bit. I registri non erano accessibili direttamente (come dell'INMOS Transputer o in altri progetti basati su stack). L'utilizzo dello stack per accedere ai dati riduceva notevolmente la dimensione del codice che non doveva pi\xc3\xb9 indicare esplicitamente la posizione dei dati per ogni operazione; i dati erano nello stack e bastava scorrere lo stack per ottenere i dati da processare. Questo riduceva la dimensione del codice e diminuiva gli accessi alla memoria migliorando le prestazioni del processore._NEWLINE_Un effetto secondario del progetto Hobbit fu l'ispirazione dei progettisti della macchina virtuale Dis (un progetto secondario del Plan 9) di utilizzare un sistema basato su registri strettamente abbinato con l'esterno del processore. I progettisti dei sistemi RISC avevano progettato un sistema basato su load/store per ottenere alte velocit\xc3\xa0 e una macchina virtuale non basata su questa filosofia sarebbe stata necessariamente lenta per via della conversione da modalit\xc3\xa0 a stack a modalit\xc3\xa0 load/store. I progettisti di Dis si resero conto che tutti i processori futuri si sarebbero basati su questa filosofia e quindi progettarono Inferno con questo paradigma per migliorarne le prestazioni. Questa filosofia di sviluppo era l'opposta di quella utilizzata da .NET e da java che basano la loro macchina virtuale sullo stack e che quindi ottengono prestazioni modeste quando sono eseguiti. Convertire un linguaggio basato su stack in un'assembly basato su load/store \xc3\xa8 un processo molto dispendioso e inefficiente. La macchina virtuale Java \xc3\xa8 molto pi\xc3\xb9 grande e pi\xc3\xb9 lenta della macchina virtuale di Limbo"