Next Generation Emulation banner

What does SSx / SSSx actually do?

2.6K views 4 replies 3 participants last post by  echosierra  
#1 ·
I know it's a programming language and command center for Intel but what is it actually doing in terms of giving commands? I assume SS2 which had problems was changed with SSS3 but I don't know what the change was, and I don't know why SS4 / SS5 is that much better. Help?
 
#2 ·
Its not a programming language. They are instruction sets. Imagine you want to do a complex mathematical calculation with a CPU who only understands the most basic processes like +,-,/ and *. (Think calculator). The instruction sets as i understand them are an attempt to give the programmer access to preinstalled calculation proccesses for the most common problems. So instead of "explaining" every single step of the process to the CPU you just give him the numbers and he spits out the solution. Obviously that safes time.
And each SSE version adds more new instructions. Since programming develops and other, new instructions become more common than before.
 
#4 ·
No the instruction sets aren't software. They are hardwired (dunno better word) into the CPU. Now a sofisticated programm might check if the CPU has an instruction set, and if yes, uses it. If not, it falls back onto the traditional, slower way of solving the same problem. Many programs though dont have those failsafes. A programmer may decide that without the predefined instructions his program can't function at reasonable speed and therefor foregoes supporting the classic solving-way alltogether.

Also instruction sets are mostly inheritated. A CPU that supports SSE3 also supports SSE2 and SSE1. There are exceptions though. For example the Intel C2D series supports an improved version of SSE3 called SSSE3 wich so far, no AMD CPU offers.

Right now i think pcsx2 need at least SSE2 to function properly. GSDX can be compiled up to SSE4 version. I'm not sure about backwards compatibility with the default download though.
 
#5 ·
The SSEx sets add new capabilities to the processor. The original SSE1 set added new 128-bit registers to the architecture, allowing for vast improvements in fields requiring faster data manipulation. The later SSEx sets just keep adding.

It's all very technical (with computers, what isn't?) but it basically works like this: the SSEx instructions let you do operations to a bunch of data at the same time. You can load 4 pieces of data at once and operate on them in parallel, greatly reducing the time it takes to do certain operations since you can do 4 operations at once (thereby reducing the time it takes to complete).

You'd have to dive pretty deep into the pcsx2 source if you want to know specifically what instructions are used, but just know these instructions are used to greatly speed up data operations.