I feel a need to ask for details. Is software really better, or just more convenient?
Let's look at hardware for a second.
In the later 1970s the IEEE defined the BIOS standard of hardware and machine code housed on an 8 pin EPROM. It stored information for the CPU and OS for addressing the system hardware.
As technology advanced, BIOS standard limitations were hit, so in the late 1980s and early 1990s the BIOS standard was revised for a 16 pin EPROM. It could store more data, but was functally the same. The OS would make a hardware call to the CPU and the BIOS (operating like a dumb switch) would pass data to a specific hardware address, all controlled by the CPU, taking up processing cycles and RAM. In later versions of Windows, the BIOS addressing was mirrored in system memory to increase performance speed.
Then in the 2000s, BIOS hit a hard wall. The new UEFI standard was developed, which was only a machine code standard, free of the BIOS hardware constraints.
One of the new features was to offload I/O call from the CPU to the UEFI controller (processor). Instead of the O/S making hardware calls to the CPU. It can call directly to the UEFI.
The UEFI works more like a router. It addresses all of the system hardware, and instead of the CPU and O/S directing how the I/O happens, the UEFI takes the call and routes calls to the appropriate hardware.
So, with UEFI the hardware can talk to hardware without the O/S interpreting.
Effectively, with a LAN enabled MOBO, you can run a dumb terminal in UEFI without a CPU, minimal RAM, and no mass storage.
Getting back to Raid. An inboard Rais controller has its own processor to handle I/O. It is handled by the UEFI controller directly. So when there is an I/O call to mass storage, the CPU offloads to the UEFI.
In software Raid, the CPU handles the I/O. In a 2 drive array, the O/S and CPU sends 2 I/O calls and has to do parity checks and 2 CRC calls to verify data integrity. The drive mapping is stored in RAM and there are processor cycles used to maintain the drive array structure.
In hardware control, the stand alone processor maintains the drive array structure and does not need the CPU or system memory to control I/O.
So in hardware control, we cut out CPU processing cycles, RAM usage, and push I/O and data processing to special function processors and controllers.
So how is using software, using up CPU processing and system memory, but still having to use the special function processors and controllers better?
Is it "really" better? Or is it convince? Using more resources for the same result versus more time and effort setting up a more efficient system