tecCHANNEL Benchmark Suite Pro

tecMEM-Funktionsweise

tecMem registriert beim Start seinen Treiber im Service Control Manager. Nach dem Test wird er deregistriert und damit vollständig aus dem System entfernt. Während der Messung verhindert der Benchmark alle Interrupts.

Der Treiber versetzt die virtuelle Adressierung in eine fest vorgegebene und für den Benchmark optimale Konfiguration. Er macht 16 MByte physikalisches RAM zwischen 48 und 64 MByte ab einer "festen" virtuellen Adresse zugänglich. Jeweils 8 MByte dieser 16 MByte dienen als Quell- und als Zielpuffer.

Im 32-Bit-Fall kommen für Load, Store und Move die darauf optimierten Maschinenbefehle LODSD, STOSD und MOVSD zum Einsatz. Für die 64-Bit-Loads und -Stores verwendet tecMem den MOVQ-Befehl aus dem MMX-Befehlssatz. Die 128-Bit-Tests erfolgen mit der SSE-Instruktion MOVDQA. Load-Befehle operieren auf dem Quellpuffer, Stores auf dem Zielpuffer. Moves bedienen sich beider Puffer, wenn sie Daten aus dem Quellpuffer lesen und in den Zielpuffer schreiben.

Falls die CPU es unterstützt, kommen 4-MByte-Pages zum Einsatz, um den Translation Look-Aside Buffer (TLB, eine Art Cache für die zur Adressumsetzung benötigten Tabellen) zu entlasten. Global Pages werden als weitere Entlastung ausgeschaltet. Darüber hinaus aktiviert der Treiber für die verwendeten Speicherbereiche Write-Back-Caching. (mec)