-
Notifications
You must be signed in to change notification settings - Fork 199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some questions about the zftl #154
Comments
Thank you for your question!
|
I got it. Thank you so much! |
@DingcuiYu
Hello, DingcuiYu:
I read the code about zftl and here are a few questions confusing me. It would be very helpful if you could kindly explain them.
Page-level mapping table requires large DRAM. Does it violate the design principle of ZNS? One of the most significant advantages of ZNS is the coarse-grain mapping and low dram usage.
When mapping LPN to PPN, physical pages from blocks with the same offset in all planes within the same channel and the same chip are continuously mapped, like below:
Zone 0 layout
|----------LPN0-------------|----------LPN1-------------|----------LPN2------------|....
| PPN0 from Pln0 FC0 Ch0 | PPN0 from Pln1 FC0 Ch0 | PPN0 from Pln2 FC0 Ch0 | ....
It seems that it does not leverage the channel level and chip level parallelism, which makes one write slow.
The program unit is
ZNS_PAGE_SIZE * flash_type * 2
. I think ZNS_PAGE_SIZE * flash_type means we have to write multiple pages if flash_type is not SLC, but why do we have to multiply it by 2?What is the difference between
LOGICAL_PAGE_SIZE
andZNS_PAGE_SIZE
? Do we have to define their size according to the flash type? For example, QLC meansZNS_PAGE_SIZE
should be 4x ofLOGICAL_PAGE_SIZE
?Thank you very much!
The text was updated successfully, but these errors were encountered: