Ljudkortens processorbelastning

Permalänk
Hedersmedlem

Ljudkortens processorbelastning

Det här med hur mycket processorkraft olika ljudkort "stjäl" har jag lite svårt att förstå allt tjat om. Kan någon peka på exakt VAD det är processorn måste sköta åt ljudkortet, och vid vilka användningsområden?

Min gissning är att vid t.ex. vanlig uppspelning (wav, mp3, ac3 etc) så står processorn för eventuell upppackning och skickar sedan detta till ljudkortet rakt av. Ingen skillnad mellan olika kort där alltså, om dom inte har dedikerad MP3-decoder (som gamla Terratec-korten hade). Dock borde CPU-impacten vara absolut MINIMAL i detta fall.

Det som eventuellt kan kräva CPU-kraft är om man kör DirectSound-applikationer och CPU:n "härmar" DirectSound-features som inte finns i hårdvara; 3D-positionering, EAX och andra DSP-effekter. I dessa områden kan det nog vara en del skillnader...

Men, som sagt; är det nån som VET något om detta?

Permalänk
Medlem

Vad jag TROR jag VET ( ) i detta fallet är att en del moderkorts ljudkort använde processorn till det mesta, ungefär som såna där WinModem. Jag kan iofs ha helt fel, men det är mitt tips.
Det vill säga RealTek som ofta har gjort ljudkretsar till moderkort.
Soundblasterkort tror jag inte använder CPUn speciellt mycket.

Visa signatur

abit nf7-s rev 2, amd athlon xp 2800+ barton, 2x256 twinmos pc3200, connect3d radeon 9800 pro

Permalänk
Medlem

Jo det skiljer lite mellan olika ljudkretsar faktiskt.

http://www6.tomshardware.com/game/20030405/sound_for_games-03...

Permalänk
Medlem

Dammit, jag har det där C-MEDIA skiten =/

Visa signatur

Perl - Made by Idiots, Java - Made for Idiots, C++ - Envied by Idiots

Permalänk
Hedersmedlem

Frux: Jo, jag har sett dom där staplarna, därav denna tråd. Jag vill inte veta OM ljudkort belastar CPU:n, jag vill veta HUR och VARFÖR.

Det närmsta Tom's Hardware (som jag alltid läser med viss skepsis) kommer är att de gissar på att det beror på hur drivrutinerna är skrivna, och vilken hårdvara som finns på kortet. Big fscking surprise. I want specifics, gentlemen

Permalänk
Medlem

Det kommer ju alltid att bli lite prestandaförsämring för datorn för att hantera ljud överhuvudtaget, jämfört att ha ljudet helt avstängt. Positionsbestämning och 3D-hantering av ljud i spel är rätt komplicerade grejer och kräver en del kommunikation med CPUn, även om ljudkortet gör det mesta jobbet.

Att skillnaderna beror på hur mycket hårdvarustöd som finns, hur snabbt instruktionerna utförs och hur smart drivrutinerna är skrivna är ju inte en gissning, det är så det är.

Alltså jag förstår inte vad du tycker är konstigt egentligen? Ska någon förklara EXAKT varför man får 0.2 FPS mer med ett Audigy2 jämfört med ett Fortissimo 3 i Comanche 4?

Permalänk
Hedersmedlem

Tycker frågan är mycket intressant. Jag skulle oxå vilja veta mer i detalj vad det är som gör att ett ljudkort belastar processorn mer än ett annat, även i "enkla" tillämpningar som att spela upp en mp3:a och spela spel utan EAX eller liknande.

Googlade lite men hittade inte så mycket. Verkar dock som det finns ljudkort utan DSP, det skulle kunna vara en grej som kräver en del CPU-kraft att emulera.

Citat:

Ursprungligen inskrivet av Frux
Alltså jag förstår inte vad du tycker är konstigt egentligen? Ska någon förklara EXAKT varför man får 0.2 FPS mer med ett Audigy2 jämfört med ett Fortissimo 3 i Comanche 4?

Ja, helst. Vad är det öht som kräver CPU-kraft när det gäller "enkelt" ljud? Är det inte bara för ljudkortet att via en DAC översätta digitala signaler från processorn till analoga signaler som skickas ut till högtalare/förstärkare?

Visa signatur

| Venice 3500+ | A8N-SLI Premium | 2048MB PC3200 | 7900GT | Audigy2 ZS | WD Raptor 74GB |
| Antec P180 | Seasonic 400W | Dell 2405FPW | Kylning: Scythe Ninja, BQ Polar Freezer, två Adda 120mm |

Permalänk
Medlem

Intressant, följer tråden med spänning..
Man kanske skulle dra fram ett par ljudkort och köra lite tester.....

Visa signatur

|ASUS Z170-A||6700K@4.6Ghz||Corsair H50 Scythe GT 1450RPM PnP||16GB Crucial DDR4 2133Mhz@2800Mhz||MSI RTX 3070||Crucial P3 2TB||Corsair HX 1050W||Fractal Design - Define R2 Black Pearl|Citera för svar
Fotoblogg: PlanetStockholm

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av Frux
Alltså jag förstår inte vad du tycker är konstigt egentligen? Ska någon förklara EXAKT varför man får 0.2 FPS mer med ett Audigy2 jämfört med ett Fortissimo 3 i Comanche 4?

Helst

Nä, jag har naturligtvis mina idéer men det vore skönt med lite rejäl fakta, gärna från någon som är införstådd i exakt hur en ljudkortsdriver funkar. Och, precis som Vicotnik säger, att spela upp en mp3:a (eller ännu hellre en wav) är så simpelt att det övergår mitt arma förstånd hur det kan skilja sig överhuvudtaget.

Permalänk
Medlem

Att bara spela upp ett ljud är ju inte ett dugg krävande, det kan knappast vara någon märkbar skillnad mellan olika kort. Antagligen därför som de inte testar det på TH heller... Men lite arbete krävs ju ändå av burken. Hela ljudet ligger ju (oftast) inte cache:at på ljudkortet eller så, utan CPUn hämtar data från hårddisken/internminnet och skickar en kontinuerlig dataström till ljudkortet, som det sedan behandlar och skickar vidare till sina DACar.

När det blir många ljud samtidigt som dessutom ska 3D-behandlas på ljudkortet i ett spel så börjar det ju märkas.

När det gäller mp3 så är det ju CPUn som bearbetar och avkodar mp3-filen (inte helt bagatellartat arbete) och skickar en "rå" ljudström till ljudkortet. Så där beror det ju mest på CPUn.

Permalänk
Medlem

På gammla kort, t.ex. Sound Blaster så var det en enorm skillnad. Endel kort kunde mixa alla ljud/kanaler på hårdvaran, vilket t.ex. Sound Blaster 16 inte kunde. Då fick CPU:n göra det och sen skicka strömmen till ljudkortet. Men nu vet jag inte, ett kort kanske har begränsningar så CPUn läre göra jobbet?

Visa signatur

Perl - Made by Idiots, Java - Made for Idiots, C++ - Envied by Idiots

Permalänk

hmm

Men det är väl inget problem som mer ram och bättre cpu inte kan fixa... hehe

Visa signatur

ASUS A7N8X Deluxe, AMD 2400+, 1024 Mb PC2700, Matrox Pharelia 512 128MB, 80+60 GB.

Permalänk
Medlem

Det hela är inte så konstigt egentligen även om det kan vara svårt att förklara/förstå.

Det vi pratar om här är hur dataströmmen kommer från disk till D/A-omvandlarna och det finns ungefär lika många lösningar på detta som det finns konstruktörer. Jag skulle vilja peka på några aspekter som är väldigt avgörande ur prestandasynpunkt.

Interrupt - Hur bra hanterar ljudkretsarna interrupt? Måste man via mjukvara polla (dvs fråga) dem ofta för att ta reda på olika statusbitar eller kan kretsarna själva generera interrupt vid de tillfällen de behöver uppvaktning? Hanterar drivrutinerna eventuella interrupt med hög eller låg prioritet och är mjukvaran effektivt skriven?

DMA - Idan använder alla ljudkretsar i regel DMA (Direkt Memory Access) för att hämta det data som ska spelas upp. Det hela går ofta till på så sätt att mjukvaran (CPU:n) lägger en hel hög med data i internminne som ljudinterfacet sedan kan hämta själv och behöver således ingen uppvaktning förrän allt data är uppspelat och nytt måste läggas i minnet. Det här är en viktig del av systemet som måste fungera effektivt för att prestandan inte ska bli lidande.

Röster/Voices - Ljudinterface måste kunna spela upp, inte bara varsitt ljud per kanal, utan många olika ljud spelas ofta upp i samtidigt. Det kallar man röster och det är sällan (aldrig?) som ljudkorten är bestyckade med en D/A-omvandlare per röst utan de ljud som ska spelas upp måste först mixas samman digitalt innan de kan spelas upp. Frågan är hurvida ljudkretsarna kan göra denna bearbetning själva eller om det måste göras av mjukvara/drivrutinerna (CPU:n)? Ett väldigt simpelt stereoljudkort kan ha två FYSISKA röster (en D/A per kanal) men det kan stå kanske 64röster i databladet. Det innebär att de 64rösterna mixas samman av drivrutinerna i mjukvara innan de skickas till kortet och det är inte bra.

DSP-effekter - Idag är det vanligt med DSP-effekter (t.ex EAX) och om detta ska göras på riktigt sätt så ska det vara en äkta hårdvaru-DSP inblandad (DSP = Digital Signal Processor). En DSP kan lägga på ekon, filter och andra effekter utan att någon annan hårdvara eller mjukvara behöver göra några beräkningar. Man helt enkelt talar om för DSP:n vilken effekt man vill ha och den gör jobbet. Men det är enbart så som det ska vara. Så är ofta inte fallet, utan ljudkretsar som säger sig ha EAX-stöd kan sakna DSP och alla effekter måste således genereras i mjukvara vilket är oerhört ineffektivt.

Uppackning - Dagens avancerade spel och program innehåller en ohygglig mängd ljud och det skulle ta en oerhörd plats att ha allt data uppackatat, okomprimerat och färdigt för uppspelning. Därför är allt i regel ihopbakat för att underlätta filhanteringen och spara utrymme (Det är nästan enbart i studiosammanhang man använder sig av ljudkort som direkt kan accessa och packa upp data ut ljudbanker från disk). I detta fall är prestandan mest beroende av hur effektiv mjukvaran man kör är och mindre på drivrutiner och hårdvara.

Det blev myckt text det här. Jag tror jag nöjer mig så länge.

Visa signatur

Abit AB9 QuadGT | C2D E6320 | vatten | 2x1GB Kingston PC-9600 | XFX 8600GT XXX | OCZ PowerStream 520W

Permalänk
Medlem

Ljud effekter packas knappast upp i realtid, tänk dig 20 st ljud som ska spelas upp samtidigt. Skulle kräva för mycket cpukraft men det är klart dom kanske slösar med cpukraften? Iaf så är det nog vanligast att den packar upp samplingarna först o lägger dom uppackade i minnet för snabb åtkomst. Annars verkar det stämma bra det som Zarwox skrev.

Det finns ju mixers på flera olika nivåer, Windows sen DSound eller D3DSound och sen är det mjukvaran själv om dom vill ha egen kontroll över mixningen. Så där kommer det ju att gå åt cpukraft kan man tro.

Visa signatur

“Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we.” - President Bush - August 5, 2004

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av SamiRaj
Ljud effekter packas knappast upp i realtid, tänk dig 20 st ljud som ska spelas upp samtidigt. Skulle kräva för mycket cpukraft men det är klart dom kanske slösar med cpukraften? Iaf så är det nog vanligast att den packar upp samplingarna först o lägger dom uppackade i minnet för snabb åtkomst. Annars verkar det stämma bra det som Zarwox skrev.

Det finns ju mixers på flera olika nivåer, Windows sen DSound eller D3DSound och sen är det mjukvaran själv om dom vill ha egen kontroll över mixningen. Så där kommer det ju att gå åt cpukraft kan man tro.

Visst, jag uttryckte mig nog lite fel. Det är klart man vill packa upp så mycket som möjligt innan själva programkörningen men det måste fortfarande göras på ett så effektivt sätt som möjligt. Det uppackade materialet måste vara lättårkomligt och inte ligga på omaka ställen. Ljud som ofta spelas upp samtidigt ligger bäst direkt efter varandra i minnet osv.

Visa signatur

Abit AB9 QuadGT | C2D E6320 | vatten | 2x1GB Kingston PC-9600 | XFX 8600GT XXX | OCZ PowerStream 520W