Not that I condone replying to this thread, you should have made a new one, but I'll reply.
FakeRAID tends to do everything hardware RAID does however RAID controllers will have dedicated cache and CPU to doing RAID commands and calculating parity. In fakeraid, these RAID commands are offloaded to the CPU, which is fine in most cases, however you run into a few limitations depending on the OS you're using and what kind of fakeraid you're using.
Generally speaking, Software, fake, and hardware raid all support your normal RAID tasks, such as keeping a RAID in sync, rebuilding after a drive fails, checking drive health, etc.
The real differences come down to reliability and performance and what is handling the RAID commands.
Software RAID handles RAID commands at the kernel level.
Fake RAID handles RAID commands at the driver level by utilizing AHCI commands from the chipset RAID controller.
Hardware RAID handles RAID commands on the expansion card and has dedicated hardware for such commands as well as extra memory for caching and some support battery backup units to prevent data loss if power goes out before the buffer has been flushed to the disk.
The fastest is hardware RAID.
Chipset and hardware raid tend to be more resiliant than software RAID and allows an OS to boot from it.
Software RAID can't be booted from (Linux can use it at root (/), but not as /boot.) but is easily ported between machines with different hardware.
...but all in all, when it comes to the disks, all 3 handles RAID 0, 1, and 5 the same way. RAID is always RAID no matter what way you look at it. It's just a difference on what method you use to achieve a RAID configuration.
Final note: Make a new thread next time, please.