Il simulatore può essere suddiviso in varie sezioni logiche, indicate nella seguente immagine:
Il simulatore può funzionare sia in modalità automatica che in modalità step by step.
La prima modalità torna utile quando si vuole avere una visione generica dell'attività di simulazione o semplicemente generare velocemente il log delle azioni effettuate. E' sempre possibile fermare l'esecuzione automatica tramite il pulsante Stop per passare nuovamente alla modalità manuale.
La modalità step by step, invece, torna utile quando si vuole ispezionare con cura gli effetti provocati dalla singola azione sui vari componenti. In tal caso l'utilizzo della DataView risulta essenziale per analizzare i singoli campi dei dati in circolazione.
La griglia di simulazione è un insieme di oggetti (widgets') interattivi grandezza e posizione variabile allineata con le celle della griglia stessa. I widget possono essere evidenziati effettuando un click sull'oggetto desiderato. Questo provoca, se l'oggetto supporta la selezione, l'apparizione di un riquadro giallo attorno all'oggetto e l'attivazione del suo comportamento che comporta, normalmente, la visualizzazione di informazioni nel riquadro DataView.
Oggetti particolari di cui è composta la griglia sono le linee dato, utilizzate per la rappresentazione di porte e bus. Attraverso le linee dato transitano i dati da un componente all'altro. Il colore di una linea ne indica lo stato attuale:
Il soggetto di un'azione è il componente che, durante l'azione, svolge attivamente le funzioni descritte. Questo viene identificato dal riquadro giallo attorno ad esso. Attualmente, solo la CPU ed il NorthBridge possono essere soggetti di azioni.
Tip: è possibile agire sulle maniglie in basso al riquadro per dimensionare la griglia di simulazione a piacimento, a discapito delle sezioni sottostanti. Allo stesso modo è possibile dimensionare la DataView a discapito della ListaAzioni.
Questa schermata permetta la configurazione dei parametri di simulazione di ogni dispositivo PCI. Per accedere ad essa è necessario fare click sull'icona di ingranaggio presente sul dispositivo.
La schermata presenta il valore e l'interpretazione dei registri interni del dispositivo. In particolare alcuni campi presentano un menù a tendina che permette di visualizzare e, in alcuni casi, selezionare alcuni o tutti i possibili valori prefissati per quel campo. Alcuni campi come ad esempio Header Type non sono modificabili perchè le funzionalità che descrivono non sono ancora supportate dal simulatore.
Tip: passando il mouse sopra il valore di un campo non modificabile visualizza, prima della descrizione, la dicitura '(ro)'
I campi Vendor ID e Device ID sono collegati tra loro
poichè è possibile che costruttori diversi creino dispositivi con lo
stesso Device ID ma con Vendor ID differente.
La lista di tutti i possibili valori settabili per questi campi è
molto grande ed in continuo aggiornamente, i valori che il simulatore
permette di impostare servono solo a dare un'idea di come funzioni il
tutto. I valori attualmente in uso sono stati prelevati da
pcidatabase.com
Tip: usa i pulsanti accanto al nome del dispositivo per passare velocemente al disposito precedente o successivo.
La funzionalità più interessante fornita dalla finestra di
configurazione è la possibilità di impostare la dimensione in
bytes di ogni BAR di cui è
composto il dispositivo. La grandezza di default è 16 bytes.
I valori di memoria disponibili nel menù a tendina dipendono dalla
quantità di memoria (virtuale nel simulatore) disponibile.
La grandezza della memoria virtuale è impostata a 4 GB.
N.B. l'ammontare di memoria virtuale disponibile al momento è visualizzata in nella parte in basso a destra della finestra di configurazione.
I valori di configurazione possono essere cambiati anche a simulazione avviata, fatta eccezzione per quei campi che sono stati modificati durante le azioni di configurazione del dispositivo. I registri BAR, ad esempio, non appena vengono sovrascritti con'indirizzo base assegnatogli durante dal simulatore, non possono essere modificati fino alla pressione del pulsante reset nel pannello di controllo del simulatore.
Il processo di simulazione consiste nella ripetizione di due fasi:
Dopo aver configurato a piacere i vari dispositivi, è quindi necessario agire sui pulsanti del pannello di controllo per iniziare e proseguire la simulazione.
Ogni passo di simulazione è caratterizzato dallo svolgimento di una singola azione da parte del soggetto attuale. I dati che vengono influenzati dall'azione corrente vengono visualizzati nel pannello DataView. A volte un campo è evidenziato in giallo per indicare che l'azione lo ha coinvolto nello specifico.
I passi di simulazione che richiedono l'allocazione di memoria per i dispositivi sono visualizzati in modo dettagliato nel pannello di log. Un messaggio di allocazione è nella forma:
Alcune volte è possibile che venga visualizzato il messaggio
Questo accade quando lo spazio di memoria virtuale disponibile risulta insufficiente ed è pertanto necessaria una riorganizzazione più intelligente della memoria. Il messaggio indica quindi che l'area di memoria assegnata ad un dispositivo che prima si trovava all'indirizzo old_address ora si trova all'indirizzo new_address. Una volta completata la scansione di tutto il bus, la simulazione si arresta.