SSD è èæå ñ íèì |
Àâòîð: Èãîðü Îñêîëêîâ
Èñòî÷íèê: TerraLab
13.06.2010
Î òâåðäîòåëüíûõ íàêîïèòåëÿõ èëè Solid-State Drives (SSD) ñåãîäíÿ ãîâîðèòü ìîäíî. Èì ïðî÷àò âåëèêîå áóäóùåå è ìíîãî ÷åãî åù¸. Íî òàê ëè õîðîø SSD, êàê åãî ìàëþþò? Ïîïðîáóåì ðàçîáðàòüñÿ. Íåñêîëüêî îáùèõ ñëîâÏîä àááðåâèàòóðîé SSD ñêðûâàåòñÿ âûðàæåíèå Solid-State Drive.Êàê ïðàâèëî, ïåðåâîä ýòîãî âûðàæåíèÿ çâó÷èò òàê: òâåðäîòåëüíûé íàêîïèòåëü. ×òî æå â í¸ì òàêîãî "òâ¸ðäîãî"?  îòëè÷èå îò ïðèâû÷íûõ âñåì æ¸ñòêèõ äèñêîâ, âíóòðè SSD íåò íèêàêèõ äâèæóùèõñÿ ÷àñòåé. Ýòî ïðèâîäèò ê óìåíüøåíèþ ýíåðãîïîòðåáëåíèÿ, íàãðåâà è äåëàåò íàêîïèòåëè íåâîñïðèèì÷èâûìè ê âñòðÿñêàì, óäàðàì è ò.ï. Ê òîìó æå îíè ñîâåðøåííî áåñøóìíû. Äëÿ õðàíåíèÿ èíôîðìàöèè èñïîëüçóþòñÿ ÿ÷åéêè ïàìÿòè, êîòîðûå ìîãóò áûòü ëèáî òèïà ôëýø, ëèáî òèïà RAM. Äà-äà, íå âåðüòå ðàñõîæåìó ìíåíèþ î òîì, ÷òî ëþáîé SSD – ýòî áîëüøàÿ è áûñòðàÿ ôëýøêà.  îñíîâå çà÷àñòóþ èñïîëüçóþòñÿ òå æå ôèçè÷åñêèå ýëåìåíòû, íî åñòü è ïðèíöèïèàëüíûå îòëè÷èÿ. Ïîêà ÷òî ìû ïîãîâîðèì î ïåðâîì òèïå SSD, à î âòîðîì ðàññêàæåì êàê-íèáóäü ïîòîì. Ñäàéòå âàøè äàííûå â ÿ÷åéêè 1F88-AE43Êðàåóãîëüíûì êàìíåì ëþáîé ôëýø-ïàìÿòè ÿâëÿåòñÿ ÿ÷åéêà (cell).ß÷åéêà ïî ñóòè ñâîåé ÿâëÿåòñÿ òðàíçèñòîðîì ñ ïëàâàþùèì çàòâîðîì. Ïîñëåäíèé îòëè÷àåòñÿ îò îáû÷íîãî òðàíçèñòîðà (åãî óñòðîéñòâî ïðîõîäÿò â øêîëüíîì êóðñå ôèçèêè) íàëè÷èåì îñîáîé îáëàñòè, â êîòîðîé ýëåêòðîíû ìîãóò "çàäåðæèâàòüñÿ" íà äëèòåëüíûé ñðîê – äî 10 ëåò. Çà ñ÷¸ò ýòîãî è ïðîèñõîäèò õðàíåíèå èíôîðìàöèè. Ðàçëè÷àþò äâà òèïà ôëýø-ïàìÿòè – NOR è NAND. Ïðèíöèïèàëüíî îíè îäèíàêîâû è ðàçëè÷àþòñÿ òîëüêî ðàñïîëîæåíèåì êîíòàêòîâ íà òðàíçèñòîðàõ. Ñàìûé ïîïóëÿðíûé òèï ïàìÿòè ýòî NAND. Åãî ïðîèçâîäñòâî îáõîäèòñÿ äåøåâëå, íî îí íå ïîçâîëÿåò íàïðÿìóþ îáðàùàòüñÿ ê êàæäîé ÿ÷åéêå ïàìÿòè. Êàê ìû óâèäèì äàëåå, ýòî è íåîáÿçàòåëüíî. ß÷åéêà ïàìÿòè Ñëåäóþùèì ïðèíöèïèàëüíûì îòëè÷èåì ÿâëÿåòñÿ òèï ÿ÷åéêè ïî êîëè÷åñòâó õðàíèìûõ äàííûõ. Áûâàþò Single Level Cell (SLC) è Multi Level Cell (MLC). Ïåðâûé òèï ïîçâîëÿåò õðàíèòü òîëüêî îäèí áèò äàííûõ è ðàáîòàòü ñ íèì, âòîðîé – äâà è áîëåå áèòà. Èñïîëüçîâàíèå SLC ïîçâîëÿåò äîñòè÷ü áîëåå âûñîêèõ ñêîðîñòåé ðàáîòû, íî ýòîò òèï ïàìÿòè äîðîæå. MLC, â ñâîþ î÷åðåäü, ìåäëåííåå è äåøåâëå. Ïðè÷¸ì ýòîò ïàðàìåòð ÿâëÿþòñÿ îïðåäåëÿþùèì äëÿ êîíå÷íîé ñêîðîñòè âñåãî íàêîïèòåëÿ: ñðåäíåå âðåìÿ äîñòóïà ê ÿ÷åéêàì MLC â 2 ðàçà âûøå, ÷åì ê SLC. Òèï ïàìÿòè âñåãäà óêàçûâàåòñÿ ïðîèçâîäèòåëåì, ïîýòîìó ìîæíî ëåãêî ñîðèåíòèðîâàòüñÿ. Îáðàòèòå âíèìàíèå íà òî, ÷òî çà÷àñòóþ íàêîïèòåëè íà áàçå MLC ìîãóò îêàçàòüñÿ äàæå ìåäëåííåå òðàäèöèîííûõ HDD è ñòîèòü ïðè ýòîì íàìíîãî äîðîæå. NOR-ïàìÿòü NAND-ïàìÿòü No speed limitÈòàê, îáû÷íûé ôëýø-íàêîïèòåëü è SSD ðàáîòàþò íà ñîâåðøåííî îäèíàêîâûõ ôèçè÷åñêèõ ýëåìåíòàõ – ÿ÷åéêàõ ïàìÿòè.Îòêóäà æå ïîëó÷àþòñÿ òàêèå âûñîêèå ñêîðîñòè ðàáîòû ó SSD – äî 230 Ìáàéò/ñ ó Intel X25-M â ðåæèìå ÷òåíèÿ. Äëÿ ñðàâíåíèÿ, ñêîðîñòü ÷òåíèÿ ó WD Velociraptor â 2(!) ðàçà ìåíüøå. Âåñü ñåêðåò çàêëþ÷àåòñÿ â òîì, ÷òî ñ ÿ÷åéêàìè ïàìÿòè ìîæíî ðàáîòàòü ïàðàëëåëüíî. Ïðåäñòàâèì ñåáå òàêóþ ñèòóàöèþ – íåîáõîäèìî ñ÷èòàòü ôàéë, êîòîðûé çàíèìàåò n óñëîâíûõ áëîêîâ. Äëÿ óäîáñòâà ïðèìåì, ÷òî ðàçìåð áëîêà îäèíàêîâ äëÿ SSD è HDD (÷àñòî òàê è áûâàåò). Âðåìÿ äîñòóïà ê áëîêó òîæå áóäåì ñ÷èòàòü îäèíàêîâûì. Êàê áóäåò ñ÷èòûâàòü äàííûå æ¸ñòêèé äèñê? Åãî ãîëîâêà áóäåò ïîñëåäîâàòåëüíî ïðîõîäèòü áëîêè è ÷èòàòü ñ íèõ èíôîðìàöèþ. À ÷òî æå SSD? Òâåðäîòåëüíûé íàêîïèòåëü ìîæåò ðàáîòàòü ñ íåñêîëüêèìè ïîòîêàìè èíôîðìàöèè ñðàçó! Ìîæíî ïðåäñòàâèòü óòîïè÷åñêóþ â îáùåì ñëó÷àå ñèòóàöèþ, êîãäà ó SSD èìååòñÿ n êàíàëîâ. Òîãäà âñÿ íåîáõîäèìàÿ èíôîðìàöèÿ áóäåò ñ÷èòàíà çà... âðåìÿ äîñòóïà ê îäíîìó áëîêó! Çà ýòî æå âðåìÿ HDD óñïååò ïðî÷åñòü òîëüêî îäèí áëîê. Îñîáåííî ñèëüíî ïðèðîñò çàìåòåí ïðè îäíîâðåìåííîì ñ÷èòûâàíèè íåñêîëüêèõ ôàéëîâ. Êàæäûé áëîê NAND-ïàìÿòè ìîæåò ðàáîòàòü íà ñêîðîñòÿõ 5-40 Ìáàéò/ñ. Êîëè÷åñòâî êàíàëîâ â ñîâðåìåííûõ óñòðîéñòâàõ ÷àùå âñåãî ëåæèò â ïðåäåëàõ îò 4 äî 10. Îòñþäà ìîæíî ïîñ÷èòàòü ìàêñèìàëüíóþ ïðîïóñêíóþ ñïîñîáíîñòü òàêèõ äåâàéñîâ – äî 400 Ìáàéò/ñ, ò.å. ðàçà â 3-4 âûøå òàêîâîé äëÿ îáû÷íûõ HDD. Íà ïðàêòèêå æå îíà íå ïåðåñåêàåò çàâåòíûé ïîðîã â 250 Ìáàéò/ñ (ñì. âûøå). To be or not to be? Ïðîáëåìû ñêîðîñòè çàïèñèÈòàê, ñ ÷òåíèåì ðàçîáðàëèñü è âñêîëüçü óïîìÿíóëè ïðî ïðîáëåìû çàïèñè.Òåïåðü ïîäðîáíåå ðàññìîòðèì ïîñëåäíèé ïóíêò.  ÷¸ì çàêëþ÷àåòñÿ ãëàâíàÿ ïðîáëåìà ôëýø-ïàìÿòè? ×òî ÿâëÿåòñÿ áè÷îì ñìåðòè äëÿ íå¸ è âñåõ óñòðîéñòâ íà å¸ îñíîâå? Ýòî âðåìÿ æèçíè ÿ÷åéêè! Äåëî â òîì, ÷òî êàæäàÿ NAND-ÿ÷åéêà èìååò î÷åíü îãðàíè÷åííûé ðåñóðñ öèêëîâ ïåðåçàïèñè. Êàê ãîâîðèòñÿ – íè÷òî íå âå÷íî â ýòîì ìèðå. Òèïè÷íîå êîëè÷åñòâî öèêëîâ äëÿ MLC-ïàìÿòè ðàâíÿåòñÿ 10000. Ïîñëå ïðåîäîëåíèÿ ýòîãî ïîðîãà ÿ÷åéêà "óìèðàåò" è ïåðåñòà¸ò ðàáîòàòü.  ëó÷øåì ñëó÷àå îíà óñïååò ñîõðàíèòü ïîñëåäíèå çàïèñàííûå â íå¸ äàííûå, â õóäøåì – íåò. Èìåííî ïîýòîìó ïðîöåññ âîññòàíîâëåíèÿ èíôîðìàöèè ñ "ïîãèáøèõ" ôëýøåê íàñòîëüêî òðóäî¸ìîê è íå âñåãäà âîçìîæåí. Èíæåíåðû, êîíå÷íî æå, ïîñòîÿííî áüþòñÿ çà óâåëè÷åíèå êîëè÷åñòâà öèêëîâ, íî ïîêà îøåëîìèòåëüíûõ óñïåõîâ íà ýòîì ôðîíòå íåò. Åù¸ áîëüøå óñóãóáëÿåò ñèòóàöèþ âûøåîïèñàííàÿ îñîáåííîñòü íåîáõîäèìîñòè ñòèðàíèÿ öåëîãî áëîêà ïåðåä çàïèñüþ äàæå 1 Êá äàííûõ. Åù¸ õóæå òî, ÷òî òàáëèöà ðàñïîëîæåíèÿ ôàéëîâ äîëæíà ðåãóëÿðíî è î÷åíü ÷àñòî îáíîâëÿòüñÿ. À ýòî òîëüêî óáûñòðÿåò ïðîöåññ ñòàðåíèÿ. Êàê áûòü â òàêîì ñëó÷àå? Îòâåò ïðîñò – ïî âîçìîæíîñòè çàïèñûâàòü äàííûå íå ïîâåðõ ñòàðûõ, à â åù¸ ñâîáîäíûå ñòðàíèöû è áëîêè.  ðåçóëüòàòå âñÿ (äà-äà, àáñîëþòíî âñÿ!) èíôîðìàöèÿ îêàçûâàåòñÿ ðàâíîìåðíî "ðàçìàçàíà" ïî âñåìó íàêîïèòåëþ. Òàêîé ïîäõîä ìîæåò íåñêîëüêî óâåëè÷èòü âðåìÿ äîñòóïà (íå êðèòè÷íî), íî áåç íåãî íèêàê íåëüçÿ.  ïðîòèâíîì ñëó÷àå íåêîòîðûå áëîêè áóäóò ñëèøêîì áûñòðî äåãðàäèðîâàòü è âñêîðå "óìðóò". Ïîêà ó âàñ çàïîëíåíî ìåíüøå 50-60% âñåé ¸ìêîñòè SSD, òî ïðîáëåì íå âîçíèêàåò. ×òî ïðîèñõîäèò ïðè ïðåâûøåíèè ýòîãî ïîðîãà? Äåëî â òîì, ÷òî ê ýòîìó ìîìåíòó ïðàêòè÷åñêè íàâåðíÿêà èñïîëüçîâàíû óæå âñå ÿ÷åéêè ïàìÿòè, êîòîðûå íåêîãäà áûëè ñâîáîäíûìè. ×òî æå, ïðèõîäèòñÿ ïðèáåãàòü ê âûíóæäåííîé ïðîöåäóðå ñòèðàíèÿ (à çàîäíî è ñòàðåíèÿ) áëîêîâ. ×åì áîëüøå çàíÿòîãî ïðîñòðàíñòâà, òåì áîëüøå ïðèõîäèòñÿ ñòèðàòü áëîêîâ. À ýòî ïðèâîäèò ê ðåçêîìó óõóäøåíèþ ñêîðîñòè çàïèñè è áûñòðîäåéñòâèþ íàêîïèòåëÿ â öåëîì. Èíîãäà ìîæíî íàáëþäàòü ñïàä ñêîðîñòè íà 40%, à òî è áîëüøå! Ýòî ìíîãî, î÷åíü ìíîãî. Êîíòðîëëåð – âñåìó ãîëîâà!×òî æå îòâå÷àåò çà ðàáîòó ñòîëü ñëîæíîé ñòðóêòóðû äàííûõ?Êîíòðîëëåð. Èìåííî îí îïðåäåëÿåò, ÷òî è êóäà íàäî ïèñàòü. Îí îñâåäîìë¸í î òîì, ñêîëüêî öèêëîâ ïåðåçàïèñè ïðîøëà êàæäàÿ ÿ÷åéêà. Âî ìíîãîì èìåííî îò êîíòðîëëåðà çàâèñèò ñóììàðíûé ñðîê æèçíè íàêîïèòåëÿ. Îò íåãî æå çàâèñÿò âñå ñêîðîñòíûå ïîêàçàòåëè SSD. Íà äàííûé ìîìåíò ñàìûå ëó÷øèå êîíòðîëëåðû ïðîèçâîäèò Intel. Íå ñëó÷àéíî ïåðâûå íåòáóêè, â êîòîðûõ èñïîëüçîâàëèñü ÿêîáû òâåðäîòåëüíûå íàêîïèòåëè, ïîêàçàëè êðàéíå íèçêóþ ïðîèçâîäèòåëüíîñòü. Ôîðìàëüíî-òî êîíå÷íî èõ ìîæíî áûëî íàçâàòü SSD, íî ïî ñóòè ýòî áûëè ïðîñòî ôëýøêè èëè èõ îáúåäèíåíèå ñ ïîìîùüþ óñòðîéñòâ, ïîäîáíûõ òîìó, ÷òî èçîáðàæåíî íà ðèñóíêå íèæå. Ó íèõ íå áûëî ãëàâíîãî – ãðàìîòíîãî êîíòðîëëåðà. NAND-ïàìÿòü Êîå-÷òî åù¸Îäíàêî ïðîáëåìà ïðîèçâîäèòåëüíîñòè ïðîèñõîäèëà åù¸ è îò ñàìîé ÎÑ è ôàéëîâîé ñèñòåìû.Âñÿ ëèíåéêà îïåðàöèîíîê äî Windows Vista âêëþ÷èòåëüíî áûëà îïòèìèçèðîâàíà èñêëþ÷èòåëüíî äëÿ ðàáîòû íà HDD. Íå ñåêðåò, ÷òî âñå ýòè ÎÑ äîâîëüíî àêòèâíî îáùàþòñÿ ñ äèñêîì äàæå âî âðåìÿ ïðîñòîÿ. Ïåðâûé ïðîáíûé øàã ïî ðàáîòå ñ SSD áûë ðåàëèçîâàí â âèäå ôóíêöèè ReadyBoost. Ñåäüìûå "îêîøêè" óæå ìîãóò èñïîëüçîâàòü òâåðäîòåëüíûå íàêîïèòåëè â êà÷åñòâå îñíîâíûõ, íî âåðíîñòü ýòîãî óòâåðæäåíèÿ ïîêà ïîä âîïðîñîì. Åù¸ áîëåå ãëóáîêèå ïðè÷èíû ñêðûòû â ôàéëîâûõ ñèñòåìàõ – NTFS è FAT íå "çàòî÷åíû" äëÿ ìèíèìèçàöèè ðåàëüíûõ îáðàùåíèé ê íàêîïèòåëþ. Åäèíñòâåííîå ñïàñåíèå ïîêà íàõîäèòñÿ â ìèðå UNIX-ñèñòåì. Íà äàííûé ìîìåíò óæå ðàçðàáîòàíû ñïåöèàëüíûå ÔÑ äëÿ ôëýø-äèñêîâ: JFFS2 è YAFFS. Îíè óæå èñïîëüçóþòñÿ â íåêîòîðûõ ïðîäóêòàõ, íàïðèìåð â OpenMoko NeoFreeRunner. Íåïëîõèå ïåðñïåêòèâû èìååò è ZFS îò êîìïàíèè Sun. Çàãâîçäêà æå â òîì, ÷òî ñàìàÿ ïîïóëÿðíàÿ ÎÑ â ìèðå íå ïîääåðæèâàåò ýòè ÔÑ, òîãäà êàê ïðåäñòàâèòåëè UNIX-ìèðà ïîëíîñòüþ ãîòîâû äëÿ ïåðåõîäà íà SSD. Åäèíñòâåííàÿ ôàéëîâàÿ ñèñòåìà, êîòîðàÿ ìîæåò ðàáîòàòü ñ Windows, ýòî exFAT. Íî ýòî íå áîëåå ÷åì êîñòûëü. Îáùèå èòîãèÈòàê, ñâåä¸ì âîåäèíî âñå ìèíóñû è ïëþñû òâåðäîòåëüíûõ íàêîïèòåëåé, êîòîðûå ñåãîäíÿ áûëè ðàññìîòðåíû.Ïîëîæèòåëüíûå êà÷åñòâà SSD òàêîâû: íàä¸æíîñòü áåñøóìíîñòü íèçêîå ýíåðãîïîòðåáëåíèå ìàëûé íàãðåâ âûñîêàÿ ñêîðîñòü ÷òåíèÿ äàííûõ (îñîáåííî ïðè îòêðûòèè ìíîæåñòâà ôàéëîâ îäíîâðåìåííî) íèçêîå âðåìÿ äîñòóïà À òåïåðü ïîñìîòðèì íà ìèíóñû: ìàëàÿ ¸ìêîñòü íàêîïèòåëåé âûñîêàÿ ñåáåñòîèìîñòü 1 Ãá îòíîñèòåëüíî ìàëîå âðåìÿ æèçíè íàêîïèòåëÿ ïðîáëåìû ñ ÷òåíèåì/çàïèñüþ ïðè çàïîëíåííîì äèñêå Êàê âèäèòå, òâåðäîòåëüíûå íàêîïèòåëè îáëàäàþò è äîñòîèíñòâàìè, è íåäîñòàòêàìè. Åñòü ëè ðåçîí áåæàòü â ìàãàçèí è â ñðî÷íîì ïîðÿäêå ìåíÿòü ñâîé âåðíûé æ¸ñòêèé äèñê íà SSD? Ïîêà ÷òî íåò. Òåõíîëîãèÿ ïîêà ÷òî íå äî êîíöà îòðàáîòàíà, äà è öåíà ñèëüíî ñìóùàåò. Íî â ëþáîì ñëó÷àå ðàíî èëè ïîçäíî SSD (èëè èõ ïîòîìêè) íàâåðíÿêà âûòåñíÿò êëàññè÷åñêèå âèí÷åñòåðû. Ïðîèçîéä¸ò ýòî íåñêîðî. Êîìïðîìèññíûì ðåøåíèåì ìîæåò áûòü ïîêóïêà ãèáðèäíîãî íàêîïèòåëÿ, êîòîðûé ñîäåðæèò â ñåáå è ïëàñòèíû, è êóñî÷åê SSD. Íàïîñëåäîê ïðèâåäó ñïèñîê ôèðì, êîòîðûå ïðîèçâîäÿò íàêîïèòåëè: A-Data, Adtron, Intel, Samsung, SanDisk, SimpleTech, SuperTalent è Transcend. Êðóïíûõ NAND-÷èïìåéêåðîâ ãîðàçäî ìåíüøå: Hynix, Intel, Micron, Numonyx, Samsung. |