[g=108]Hall[/g]öle allerseits,
da hier alle etwas zum Besten geben müssen, die meisten davon aber scheinbar
relativ wenig Ahnung von den eigentlichen technischen Details haben, dachte ich
mir, dass ich auch mal kurz meinen Senf dazu abgeben kann:
Wie ja schon einige korrigiert haben, geht es nicht darum, dass die RME-Karten
bei gleicher Blockgrösse geringere [g=5]Latenz[/g] haben - das geht halt einfach schon
mathematisch nicht.
Der elementare Unterschied liegt darin, wie [g=12]ASIO[/g] & Windows die Sounddaten
verarbeiten. Bei Windows werden Audio-Daten auf dem Weg zur Soundkarte
"interleaved" in dem Speicherblock abgelegt, der zur Soundkarte übermittelt
wird. Für eine 4-Kanal-Soundkarte heisst das: Sample Kanal 1,Sample Kanal 2,
Sample Kanal 3, Sample Kanal4, Sample Kanal1, Sample Kanal2, Sample Kanal3,
Sample Kanal4 (usw).
Bei [g=12]ASIO[/g] sieht es aber so aus: Sample Kanal1, Sample Kanal1, Sample Kanals 1 usw.
und man hat dann einfach 4 getrennte Speicher-blöcke (einen für jeden Kanal).
Diese Formatierung hat den grossen Vorteil, dass ein [g=77]VST[/g]-Host in einem Rutsch
die Daten eines Kanals bearbeiten kann und er nicht erst die interleavten Daten
auseinder bzw. zusammenwuppen muss.
Wenn man nun [g=12]ASIO[/g] über eine "normale" Soundkarte legt, so muss der Treiber
dieser Karte nachdem er die 4 Blöcke mit den Einzelkanälen vom Host erhalten
hat, nun diese einzelnen Daten wieder "interleaven" um sie in die Hardware
der Soundkarte zu schreiben. Wenn man mit vielen Kanälen und hohen
Sampleraten arbeitet, so ergibt sich daraus schon ein erheblicher Mehraufwand
für die CPU.
Unterstützt nun die Soundkarte wie bei RME der Fall, dass man diskrete Blöcke
für jeden getrennten Kanal übermitteln kann, so fällt diese CPU-Last weg,
und man kann direkt aus dem [g=12]ASIO[/g]-Aufruf heraus den Busmaster-DMA
anstossen und die Daten werden einfach direkt von der Hardware ohne weiteres
zutun der CPU aus dem Speicher in die Karte geladen. (Anders herum funktioniert
dies für das Recording genaus).
Dadurch dass man nun diesen zusätzlichen Aufwand für das Interleaving nicht
mehr hat, erzeugt also der RME-Treiber weniger Systemlast, diese gewonnenen
CPU-Zyklen kann man dann entweder dafür nutzen, mehr Effekt & Instrumente
gleichzeitig zu nutzen, oder aber man kann die Blockgrösse weiter reduzieren
und bei gleicher Last dann geringere [g=5]Latenz[/g] als die Soundkarte eines anderen
Herstellers erreichen.
mfg Tobias