How do they checksum 9GB of data and still boot promptly?
This allows you to only hash those parts of the tree you actually want to read.
In this case they're not selective, so the tree approach doesn't save the reads. (Just makes it easier to identify which part failed)
That's uncached, so it's not that quick at boot. 9GB would take ~19s then. Block would go faster, but not an order of magnitude faster.
It's a Merkle tree, apparently, so parallelizing the checksum should be trivial.