Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
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).
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Why was Multi-threading removed? - gir489 - 05-16-2018 03:13 PM

Forum Jump: