They share not only CACHE (shared CACHE is a common thing in CPUs). They have 2 modules 2 cores each (In 4 unit CPU's, which are marketed as cores). But in total only 2 FPU units. Instead of 4 as in regular CPU's. So are they 4 core CPU's? Yes integer-wise and no floating point-wise. Of course Windows and any other system will show you 4 threads. As in i3 for example, which is hyperthreaded dual core.
A real problem with those CPUs is that the OS doesn't recognize its modular structure. So the OS thinks it has regular 4 cores. Which is not true (in normal scenario 1 core = 1 FPU and 1 integer, in FX 1 module = 2 cores for which there's 2 integer and only 1 FPU). This is why some power is being wasted on CACHE storing the data for floating point operation (system thinks there are 4 FPUs). It's actually some kind of multithreading that the OS is not aware of. Also it tends to perform slower in Windows than in Linux (according to benchmarks, however I didn't test the last one myself).
Vishera uses
exactly the same module structure as Bulldozer, and looks like this:
See:
1 module = 2 integer units, 1 floating point (FPU) - and those share 2048 kb CACHE.