Teoretiskt, köra modern CPU på 386?

Permalänk
Medlem

Teoretiskt, köra modern CPU på 386?

Hej! Jag har en julfundering utan praktisk relevans (obs). Skulle det, rent teoreriskt, gå att emulera en modern dator på en 386-dator? Helt utan hänsyn till hastighet då.

På ett lekmannamässigt sätt tänker jag mig att de huvudsakliga svårigheterna skulle vara två.

Ett - CPU-instruktioner
En 80386 har inte alla instruktioner en modern x86-CPU har. Men det borde väl vara lösbart med emulering? Ungefär som man annars kan översätta mellan olika CPU-arkitekturer i dag med ett mjukvarulager. Finns det något som inte ens i princip skulle gå att emulera på en 386?

Två - minnesmängd
En 386 kan bara adressera 4 GB minne även om man tänker bort den tidens begränsningar på moderkortssidan. Skulle det gå att segmentera minnesadressering på något sätt (ungefär som man gjorde på ännu äldre x86-processorer) så att vår plucky lilla 386 kunde komma åt mer än 4 GB?

Vad säger ni?

Visa signatur

Stationär dator: Ryzen 9 7950X3D | Asus ROG Strix B650E-F | 64 GB DDR5-6000
MSI RTX 4090 | 4+8 TB SSD | 8 TB WD Red
NZXT H7 Flow Vit | Arctic Liquid Freezer II 360
Phanteks AMP 1000 W v2 | Win11
Skärm: Dell U3011 2560x1600 | HP Reverb G2

Permalänk
Medlem

Teoretiskt absolut men det kräver ju lite optimering.
Går säkert att göra med en riktigt nedbantad version av Windows 10/11 också om man vet hur man ska emulera specifika instruktions-set som finns i nyare cpu's.

Permalänk
Medlem

Vanliga CPUer är normalt turingkompletta, d.v.s. givet tillräcklig med tid och minne så kan de beräkna alla beräkningsbara problem. Så att emulera modernare CPU-instruktioner bör inte vara något problem om man inte bryr sig om hur snabbt det går.

Och minne är egentligen inget problem heller, det är bara att använda t.ex. hårddiskar som extra minne och swappa in/ut datan efter behov. Det kan förstås bli väldigt långsamt beroende på vad man använder för typ av lagring, men bortser man från det så är det inget större problem att utöka med praktiskt taget oändligt med minne.

Permalänk
Medlem
Skrivet av tonii:

Teoretiskt absolut men det kräver ju lite optimering.
Går säkert att göra med en riktigt nedbantad version av Windows 10/11 också om man vet hur man ska emulera specifika instruktions-set som finns i nyare cpu's.

Fantastiskt projekt i länken! Och rätt likt min fråga också.

Visa signatur

Stationär dator: Ryzen 9 7950X3D | Asus ROG Strix B650E-F | 64 GB DDR5-6000
MSI RTX 4090 | 4+8 TB SSD | 8 TB WD Red
NZXT H7 Flow Vit | Arctic Liquid Freezer II 360
Phanteks AMP 1000 W v2 | Win11
Skärm: Dell U3011 2560x1600 | HP Reverb G2

Permalänk
Medlem
Skrivet av perost:

Vanliga CPUer är normalt turingkompletta, d.v.s. givet tillräcklig med tid och minne så kan de beräkna alla beräkningsbara problem. Så att emulera modernare CPU-instruktioner bör inte vara något problem om man inte bryr sig om hur snabbt det går.

Och minne är egentligen inget problem heller, det är bara att använda t.ex. hårddiskar som extra minne och swappa in/ut datan efter behov. Det kan förstås bli väldigt långsamt beroende på vad man använder för typ av lagring, men bortser man från det så är det inget större problem att utöka med praktiskt taget oändligt med minne.

Enkla processorer kan man nog simulera direkt i kod, dvs inte bara emulera, utan simulera. Ha en hel kodmodell där alla komponenter ner till minsta transistor är representerad. Sannolikt inte för en 386:a, men processorer från sent 70-tal och tidigt 80-tal borde inte vara nåt problem. En Motorola 6502 med ca 3500 transistorer borde gå finfint.

Visa signatur

Moderkort: Gigabyte X570 Aorus Master | CPU: AMD Ryzen R9 5900X | CPU-kylare: Noctua NH-D15 chromax.black | RAM: Corsair Vengeance LPX 64 GB (4x16) DDR4-3600 CL18 | GPU: Gigabyte RTX 4080 Eagle OC | SSD: 2 x Samsung 970 EVO Plus 1 TB NVMe + Kingston A400 480 GB + Samsung QVO860 1 TB | PSU: EVGA SuperNOVA G2 1000 W Gold | Chassi: Lian Li O11 Dynamic XL | Skärm: BenQ PD3200U @ 3840x2160 + ASUS ROG Strix XG32VQ @ 2560x1440 | Tangentbord: Corsair K68 RGB Cherry MX Red | Mus: Logitech MX Master 2S