To be specific, a program running on any single core would be able to use 256k of L2 cache and up to 12MB of L3. If you have only two programs running and they run on separate CPUs, then each would get their own 12MB of L3, so you could have all 24MB of L3 in use with as few as 2 programs running.