{"id":4792,"date":"2021-04-20T14:27:10","date_gmt":"2021-04-20T21:27:10","guid":{"rendered":"https:\/\/phisonblog.com\/?p=4792"},"modified":"2023-08-07T18:45:38","modified_gmt":"2023-08-08T01:45:38","slug":"limitations-of-solid-state-drives-2","status":"publish","type":"post","link":"https:\/\/phisonblog.com\/de\/limitations-of-solid-state-drives-2\/","title":{"rendered":"Einschr\u00e4nkungen von Solid-State-Laufwerken"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||||false|false&#8221; custom_padding=&#8221;0px||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; width=&#8221;100%&#8221; max_width=&#8221;100%&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;0px||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p><\/p>\n<p>SSDs (solid state drives) offer benefits such as speed, low power consumption, durability, and low weight. SSDs have become as widely used as HDDs (hard disk drives). The difference between HDDs and SSDs is how they manage data. This task is more complicated on SSDs than HDDs. With proper management, SSDs are fast and have a long endurance over the life of the drive.<\/p>\n<p>&nbsp;<\/p>\n<h3>NAND (NOT-AND Gate) basic operation<\/h3>\n<p>It is not possible to read or write single NAND-flash cells individually. Data needs to be grouped and accessed with very specific properties. The following are the read, write, and erase properties of SSDs:<\/p>\n<p style=\"padding-left: 40px;\">1.\u00a0 Reads aligned on page 1 can only request 1 byte from the operating system, but a full page will be retrieved in the SSD, forcing a lot more data to be read than necessary.<\/p>\n<p style=\"padding-left: 40px;\">2.\u00a0 Writes align on pages. When writing data to SSD, writes happen by increments of the page size. Even if a write operation affects only one byte, an entire page needs to write to the flash.<\/p>\n<h4>\u00a0<\/h4>\n<h4 style=\"padding-left: 80px;\"><strong>How to write data to a page:<\/strong><\/h4>\n<p>&nbsp;<\/p>\n<p style=\"padding-left: 80px;\">a. The data in blue shows data writes.<\/p>\n<p style=\"padding-left: 80px;\"><a href=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_01_081221.jpg\"><img decoding=\"async\" class=\"alignnone wp-image-33733 size-full\" src=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_01_081221.jpg\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_01_081221.jpg 1920w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_01_081221-1280x720.jpg 1280w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_01_081221-980x551.jpg 980w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_01_081221-480x270.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1920px, 100vw\" \/><\/a><\/p>\n<p style=\"padding-left: 80px;\">b. New data in yellow adds to the block. The blue data must also update. Because it can\u2019t be overwritten, it must be written again, and the original data is marked as invalid.<\/p>\n<p style=\"padding-left: 80px;\"><a href=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_02_081221.jpg\"><img decoding=\"async\" class=\"alignnone wp-image-33734 size-full\" src=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_02_081221.jpg\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_02_081221.jpg 1920w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_02_081221-1280x720.jpg 1280w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_02_081221-980x551.jpg 980w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_02_081221-480x270.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1920px, 100vw\" \/><\/a><\/p>\n<p style=\"padding-left: 80px;\">c. This process repeats every time the blue data receives an update.<\/p>\n<p style=\"padding-left: 80px;\"><a href=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_03_081221.jpg\"><img decoding=\"async\" class=\"alignnone wp-image-33735 size-full\" src=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_03_081221.jpg\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_03_081221.jpg 1920w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_03_081221-1280x720.jpg 1280w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_03_081221-980x551.jpg 980w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_03_081221-480x270.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1920px, 100vw\" \/><\/a><\/p>\n<p style=\"padding-left: 40px;\">3. Erases align on block sizes. The page operates read\/write, but it is not possible to erase individual pages.It is only possible to erase the entire block at once.<\/p>\n<p style=\"padding-left: 40px;\">Reads and writes can happen at the page level, but erase (delete) can only happen at the block level. Users can read or write any number of pages from a block or to a block, but if a user wants to erase any part of that block, the drive must erase the block.<\/p>\n<h4>\u00a0<\/h4>\n<h3>Properties of erase operations on SSDs<\/h3>\n<p>&nbsp;<\/p>\n<p style=\"padding-left: 80px;\">a. All pages are empty<\/p>\n<p style=\"padding-left: 80px;\"><a href=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_04_081221.jpg\"><img decoding=\"async\" class=\"alignnone wp-image-33736 size-full\" src=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_04_081221.jpg\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_04_081221.jpg 1920w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_04_081221-1280x720.jpg 1280w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_04_081221-980x551.jpg 980w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_04_081221-480x270.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1920px, 100vw\" \/><\/a><\/p>\n<p style=\"padding-left: 80px;\">b. Data is written<\/p>\n<p style=\"padding-left: 80px;\"><a href=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_05_081221.jpg\"><img decoding=\"async\" class=\"alignnone wp-image-33737 size-full\" src=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_05_081221.jpg\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_05_081221.jpg 1920w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_05_081221-1280x720.jpg 1280w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_05_081221-980x551.jpg 980w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_05_081221-480x270.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1920px, 100vw\" \/><\/a><\/p>\n<p style=\"padding-left: 80px;\">c. The block is full<\/p>\n<p style=\"padding-left: 80px;\"><a href=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_06_081221.jpg\"><img decoding=\"async\" class=\"alignnone wp-image-33738 size-full\" src=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_06_081221.jpg\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_06_081221.jpg 1920w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_06_081221-1280x720.jpg 1280w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_06_081221-980x551.jpg 980w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_06_081221-480x270.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1920px, 100vw\" \/><\/a><\/p>\n<p style=\"padding-left: 80px;\">d. Data is marked as invalid.\u00a0 Valid data not marked for deletion gets combined with new data. The new combined group \u201cmoves.\u201d Here, \u201cgood data\u201d not marked as invalid is rewritten from the blue block and the green block to an empty block with available pages<\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_07_081221.jpg\"><img decoding=\"async\" class=\"alignnone wp-image-33739 size-full\" src=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_07_081221.jpg\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_07_081221.jpg 1920w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_07_081221-1280x720.jpg 1280w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_07_081221-980x551.jpg 980w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_07_081221-480x270.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1920px, 100vw\" \/><\/a><\/p>\n<p style=\"padding-left: 80px;\">e. The valid data writes to another block. All the data in the block can be marked as invalid<\/p>\n<p style=\"padding-left: 80px;\">f. All the data in a block has been cleared, it can be reused<\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_08_081221.jpg\"><img decoding=\"async\" class=\"alignnone wp-image-33740 size-full\" src=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_08_081221.jpg\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_08_081221.jpg 1920w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_08_081221-1280x720.jpg 1280w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_08_081221-980x551.jpg 980w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_08_081221-480x270.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1920px, 100vw\" \/><\/a><\/p>\n<p><a href=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_09_081221.jpg\"><img decoding=\"async\" class=\"wp-image-33741 alignnone size-full\" src=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_09_081221.jpg\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_09_081221.jpg 1920w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_09_081221-1280x720.jpg 1280w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_09_081221-980x551.jpg 980w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/04\/1013922_PhisonBlockPageOperation_09_081221-480x270.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1920px, 100vw\" \/><\/a><\/p>\n<h3>Flash Translation Layer (FTL)<\/h3>\n<p>SSDs use the same host interfaces as a SATA (Serial ATA) interface. An additional component is required to hide the inner characteristics of NAND flash memory and expose only an array of LBAs (logical block addresses) to the host. This component is the FTL , and resides in the SSD controller. The FTL is critical and has two main purposes: logical block mapping and garbage collection.<\/p>\n<p>&nbsp;<\/p>\n<h3>Logical mapping<\/h3>\n<p>The logical block mapping translates LBAs from the host space into PBAs (physical block addresses) in the physical NAND-flash memory space. This mapping takes the form of a table, which gives the corresponding PBA for any LBA. This mapping table is stored in the cache of the SSD for faster access. It is saved in flash memory in case of power failure.<\/p>\n<p>&nbsp;<\/p>\n<h3>Garbage collection<\/h3>\n<p>The garbage collection process in the SSD controller ensures that \u201cinvalid\u201d pages are erased and restored into a \u201cfree\u201d state. This makes room for incoming write commands since pages cannot be partially written. If the data in a page has to be updated, the new data is written to a free page, and the page containing the previous data is marked as invalid. When blocks contain invalid pages, they need to be erased before they can be rewritten.<\/p>\n<p>&nbsp;<\/p>\n<h3>Summary<\/h3>\n<p>SSD operations are limited by features of NAND Flash:<\/p>\n<p style=\"padding-left: 40px;\">1. Write operations must be in the unit of a page, and cannot overwrite the original content of the page.<\/p>\n<p style=\"padding-left: 40px;\">2. Erasing data must be at the block level due to physical limitation.<\/p>\n<p>&nbsp;<\/p>\n<div class=\"banner_wrapper\" style=\"height: 83px;\"><div class=\"banner  banner-33239 bottom vert custom-banners-theme-default_style\" style=\"\"><img decoding=\"async\" width=\"1080\" height=\"150\" src=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/08\/Secure-Erase-of-Data-Stored-on-SSD.jpg\" class=\"attachment-full size-full\" alt=\"\" style=\"height: 83px;\" srcset=\"https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/08\/Secure-Erase-of-Data-Stored-on-SSD.jpg 1080w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/08\/Secure-Erase-of-Data-Stored-on-SSD-980x136.jpg 980w, https:\/\/phisonblog.com\/wp-content\/uploads\/2021\/08\/Secure-Erase-of-Data-Stored-on-SSD-480x67.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1080px, 100vw\" \/><a class=\"custom_banners_big_link\"  href=\"https:\/\/phisonblog.com\/secure-erase-of-data-stored-on-ssd-using-secure-erase-feature-with-phison-ssds-2\/\"><\/a><div class=\"banner_caption\" style=\"\"><div class=\"banner_caption_inner\"><div class=\"banner_caption_text\" style=\"\">Read: Secure Erase of Data Stored on SSD<\/div><\/div><\/div><\/div><\/div>\n<div class=\"SnapLinksContainer\" style=\"margin-left: 0px; margin-top: 0px; display: none;\">\n<div class=\"SL_SelectionRect\">\n<div class=\"SL_SelectionLabel\">\u00a0<\/div>\n<\/div>\n<p><!-- Used for easily cloning the properly namespaced rect --><\/p>\n<\/div>\n<div class=\"SnapLinksContainer\" style=\"margin-left: 0px; margin-top: 0px; display: none;\">\n<div class=\"SL_SelectionRect\">\n<div class=\"SL_SelectionLabel\">\u00a0<\/div>\n<\/div>\n<p><!-- Used for easily cloning the properly namespaced rect --><\/p>\n<\/div>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SSDs (solid state drives) offer benefits such as speed, low power consumption, durability, and low weight. SSDs have become as widely used as HDDs (hard disk drives). The difference between HDDs and SSDs is how they manage data. This task is more complicated on SSDs than HDDs. With proper management, SSDs are fast and have [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":4837,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[23,8],"tags":[22],"class_list":["post-4792","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all-posts","category-technology","tag-long-content"],"acf":[],"_links":{"self":[{"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/posts\/4792","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/comments?post=4792"}],"version-history":[{"count":2,"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/posts\/4792\/revisions"}],"predecessor-version":[{"id":59106,"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/posts\/4792\/revisions\/59106"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/media\/4837"}],"wp:attachment":[{"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/media?parent=4792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/categories?post=4792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phisonblog.com\/de\/wp-json\/wp\/v2\/tags?post=4792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}