Why was Multi-threading removed?
|
05-16-2018, 03:13 PM
(This post was last modified: 05-16-2018 03:14 PM by gir489.)
Post: #18
|
|||
|
|||
RE: Why was Multi-threading removed?
MIPS is generally very time specific. I remember there was a piece of software to overclock the PSP's CPU from 333 Mhrtz to 444 Mhrtz. This would have wildly varying results, resulting usually a crash. The biggest problem with multithreading back in the era of PSP (2005) was an issue of lockstepping threads. This has been solved now by usually a hypervisor or some kind of moderator piece in front of the OS to enforce lockstepping, but the PSP didn't have this. Back then, it was all about speed, and a lot of games especially the PSP are time sensitive. They expect X cycles takes about Y seconds, and write their code heavily on this. For MIPS (the CPU type the PSP has) is generally the following table. 5/4/4/3/3. But you can know for sure that a single instruction would never take more than 5 cycles. If you reduce that by allowing certian threads to return sooner by hyperthreading or multithreading, you could risk a certian piece of code trying to dereference something like a pointer or struct in memory with something that may or may not be there and end up with a race condition.
TL;DR It was probably removed to enforce consistency with MIPS HLE (High Level Emulation). |
|||
« Next Oldest | Next Newest »
|