receiving one of a read command and a write command; identifying mapping segment descriptors (MSDs) that contain a logical block address range and parameters, including the steps of: determining a MSD starting GLBA and a count; and determining a MSD ending GLBA; forwarding said MSDs to a hardware mapping engine, and said hardware mapping engine calculating for each MSD one of a read range and a wr