Vinnaren i pepparkakshustävlingen!
2019-11-18, 22:08
  #1
Medlem
Eller var går gränsen och varför?

Sitter och kollar på denna videon där en kille testar olika emulatorer på nån Nvidia tv-box:
https://youtu.be/iqPx1TgL4Sk

Det visar sig att det är svårt för ett sånt här modernt system att emulera vissa gamla konsoller (Ps1, N64 och liknande) fullt ut och ibland kan droppa frames osv.

Jag tänker att ett modernt system med mycket mer datorkraft enkelt alltid borde kunna simulera ett med mycket mindre datorkraft.

Sen förstår jag att systemen har olika hårdvara med olika instruktioner och funktioner, men så länge det i slutändan inte resulterar i mer "flops" (uttryckt i den moderna CPUns termer) borde väl det moderna, starkare systemet alltid "hinna" med?
Citera
2019-11-18, 22:23
  #2
Moderator
Neksnors avatar
Kort svar: Ja, se https://sv.wikipedia.org/wiki/Turingkomplett
Citera
2019-11-18, 22:27
  #3
Medlem
morkfromorks avatar
Citat:
Ursprungligen postat av Neksnor
Kort svar: Ja, se https://sv.wikipedia.org/wiki/Turingkomplett

jag skulle nog säga nej.

Tillexempel hårdvaruinterrupt som alltid kan avbryta en process, blir otroligt svåra att emulera i mjukvara och få samma omedelbara respons.
Citera
2019-11-18, 22:34
  #4
Moderator
Neksnors avatar
Citat:
Ursprungligen postat av morkfromork
jag skulle nog säga nej.

Tillexempel hårdvaruinterrupt som alltid kan avbryta en process, blir otroligt svåra att emulera i mjukvara och få samma omedelbara respons.
Att det blir svårt är vi eniga om, men frågan var huruvida det är möjligt.
Citera
2019-11-19, 01:24
  #5
Medlem
Med risk för att framstå som petig: Som frågan är formulerad är svaret nej, eftersom ett system kan vara starkare utan att nödvändigtvis vara tillräckligt starkt för en perfekt emulering. Vad som är tillräckligt starkt finns inget enkelt svar på, då det beror så mycket på de olika tekniska detaljerna i målsystemet, emulatorn och det system som ska emuleras. I ett specifikt fall borde det dock gå att bevisa att en emulator som kör på viss hårdvara är tillräckligt kraftfull för perfekt emulering av ett annat system, helt enkelt genom att gå igenom varje tänkbar typ av operation och visa att prestandan för emuleringen är minst lika bra som originalet.
Citera
2019-11-19, 09:00
  #6
Medlem
Citat:
Ursprungligen postat av vgebler
Med risk för att framstå som petig: Som frågan är formulerad är svaret nej, eftersom ett system kan vara starkare utan att nödvändigtvis vara tillräckligt starkt för en perfekt emulering. Vad som är tillräckligt starkt finns inget enkelt svar på, då det beror så mycket på de olika tekniska detaljerna i målsystemet, emulatorn och det system som ska emuleras. I ett specifikt fall borde det dock gå att bevisa att en emulator som kör på viss hårdvara är tillräckligt kraftfull för perfekt emulering av ett annat system, helt enkelt genom att gå igenom varje tänkbar typ av operation och visa att prestandan för emuleringen är minst lika bra som originalet.

Ok. Så det är i själva hårdvaruemuleringen som den potentiella gränsen sitter. Ett starkare system borde alltid kunna måla samma eller fler antal pixlar till skärmen (måla samma frame) snabbare men att simulera hur ett annat systems hårdvara kommer fram till den framen tar ibland längre tid då man begränsar sig själv till att jobba i mjukvara som ett annat system jobbar i hårdvara.

Är det generellt så att vissa saker aldrig går att "komma ikapp" så även världens snabbaste framtida dator kommer droppa frames för att man låser in sig i att emulera hårdvaran på ett sånt sätt att det alltid tar längre tid på det nya systemet?
Citera
2019-11-20, 16:36
  #7
Medlem
Citat:
Ursprungligen postat av Men-vinkeljarn
Ok. Så det är i själva hårdvaruemuleringen som den potentiella gränsen sitter. Ett starkare system borde alltid kunna måla samma eller fler antal pixlar till skärmen (måla samma frame) snabbare men att simulera hur ett annat systems hårdvara kommer fram till den framen tar ibland längre tid då man begränsar sig själv till att jobba i mjukvara som ett annat system jobbar i hårdvara.

Precis. Systemet man emulerar och systemet man kör på har skillnader som behöver hanteras av mjukvara. Denna hantering tar alltid extra tid, men hur mycket extra tid det tar beror på hur stora skillnaderna är och hur effektiv/sofistikerad emulatorn är. Det är mycket enklare att skriva en emulator om man inte behöver bekymra sig om prestanda.

Citat:
Ursprungligen postat av Men-vinkeljarn
Är det generellt så att vissa saker aldrig går att "komma ikapp" så även världens snabbaste framtida dator kommer droppa frames för att man låser in sig i att emulera hårdvaran på ett sånt sätt att det alltid tar längre tid på det nya systemet?

Prestandaproblem kan alltid lösas av en snabbare dator i teorin, men om utvecklingen mot snabbare datorer stannar av tillräckligt skulle man väl kunna tänka sig en situation där framtidens snabbaste datorer är otillräckliga för att emulera framtidens lite långsammare datorer.

En annan aspekt förutom ren prestanda är att I/O-enheterna måste vara tillräckligt kapabla. En C64 med CRT-skärm kan direktstyra vad som visas just där elektronstrålen befinner sig med en precision och latency som kan mätas i mikrosekunder. Med modern grafikhårdvara har man oftast inte sådan precis kontroll i realtid, vilket omöjliggör perfekt emulering, åtminstone m.a.p. latency.
Citera
2019-11-20, 22:30
  #8
Medlem
Scaliburs avatar
En miniräknare kan väl emulera vad som helst egentligen ifall man kopplar in de krävande kompenenterna (ex grafikkort) till den - saken är ju att det kommer ta ofantligt många år att emulera någonting större. Men svaret är ju då att det går, men kanske inte inom människans existens.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback