1
$\begingroup$

I'm working my way on a problem which requires me to store elements in fixed 4KB-sized pages on an SSD. Each page is requested once for some computation on its elements, and then the CPU requests for another different page from the SSD. I'm trying to ascertain whether any page contiguous-ness can be exploited here for smaller latency times. Any research papers or articles on this area would be very appreciated.

$\endgroup$

1 Answer 1

1
$\begingroup$

Short answer: no.

On an SSD, non-contiguous access (very slightly) increases the protocol and processing overhead - in theory, contiguous (or rather: longer) transfers could be slightly faster but you'd be hard pressed to actually measure that difference in real life, especially with NVMe.

That is caused in part by today's extremely fast processing capabilities but mostly due to the (almost) general overlap of I/O requests and data transfers using (deep) command queueing.

Note that I'm assuming a somewhat decent size of I/Os - most SSDs hit their peak (or even the interface's) with 4 KiB I/Os already.

$\endgroup$
1
  • $\begingroup$ Thanks for your answer. Don't you expect SSD readahead protocols to make a difference for sequential case? Keeping in mind, that the code doesn't push an I/O request until the current page has been "processed" (giving the following execution topology CPU--I/O--CPU--I/O---). $\endgroup$ Feb 4, 2022 at 18:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.