Προσομοιωτής SPIM

Ο SPIM είναι ένα λογισμικό προσομοίωσης που εκτελεί προγράμματα συμβολικής γλώσσας γραμμένα για επεξεργαστές που υλοποιούν την αρχιτεκτονική MIPS-32, και συγκεκριμένα την έκδοση (release) 1 αυτής της αρχιτεκτονικής με μία σταθερή απεικόνιση μνήμης, χωρίς κρυφές μνήμες, και μόνο τους συνεπεξεργαστές 0 και 1. Το όνομα του SPIM είναι απλώς το MIPS γραμμένο ανάποδα. Ο SPIM μπορεί να διαβάσει και να εκτελέσει αμέσως αρχεία συμβολικής γλώσσας. Ο SPIM είναι ένα αυτόνομο σύστημα για την εκτέλεση προγραμμάτων του MIPS. Περιέχει έναν αποσφαλματωτή και παρέχει μερικές υπηρεσίες παρόμοιες με αυτές ενός λειτουργικού συστήματος. Ο SPIM είναι πολύ πιο αργός από έναν πραγματικό υπολογιστή. Όμως το πραγματικό υλικό δεν μπορεί να συναγωνιστεί το χαμηλό του κόστος και την ευρεία διαθεσιμότητα του.

Μία προφανής ερώτηση είναι «Γιατί να χρησιμοποιήσουμε έναν προσομοιωτή όταν οι περισσότεροι χρήστες διαθέτουν PC με επεξεργαστές που λειτουργούν σημαντικά ταχύτερα από τον SPIM;» Ένας λόγος είναι ότι οι επεξεργαστές των PC είναι Intel 80x86, των οποίων η αρχιτεκτονική διαθέτει πολύ λιγότερη κανονικότητα και είναι πολύ πιο σύνθετη ώστε να γίνει κατανοητή και να προγραμματιστεί, από ότι αυτή των επεξεργαστών MIPS. Η αρχιτεκτονική του MIPS ίσως είναι η επιτομή μιας απλής καθαρής μηχανής RISC.

Εκτός από αυτό, οι προσομοιωτές ίσως παρέχουν ένα καλύτερο περιβάλλον για προγραμματισμό συμβολικής γλώσσας από μία πραγματική μηχανή, επειδή μπορούν να ανακαλύψουν περισσότερα σφάλματα και να παρέχουν καλύτερη διασύνδεση από έναν πραγματικό υπολογιστή.
Τέλος, οι προσομοιωτές είναι ένα χρήσιμο εργαλείο για την μελέτη υπολογιστών και προγραμμάτων που εκτελούνται σε αυτούς. Επειδή υλοποιούνται σε λογισμικό και όχι σε πυρίτιο, μπορούμε να τους εξετάσουμε και να τους τροποποιήσουμε εύκολα με σκοπό την προσθήκη νέων εντολών, την κατασκευή νέων συστημάτων όπως οι πολυεπεξεργαστές, ή απλώς τη συλλογή δεδομένων.

Βιβλιογραφία 
 ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΥΠΟΛΟΓΙΣΤΩΝ: Η ΔΙΑΣΥΝΔΕΣΗ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ, DAVID A. PATTERSON, JOHN L. HENNESSY.
 Οργάνωση και Αρχιτεκτονική Υπολογιστών, Stallings William.

Λογισμικό προσομοίωσης