ࡱ> RTQ'` RIbjbjLULU8R.?.?8, LLLLL$hgF!LL4LLL@ ?^[0 PLd  SSDvb/gyrp Page:g\QUSMO4KB vQ[(WQe_N/fte*NBlockۏLd\O Blockg\vdd zUSMO 256*Page=256*4KB=1MB Plane:2048*Block=2048MB=2G Die:2*Plane=2*2GB=4GB (g\vGrUSMO) SSDN O~xvvk ,{N/fl g:ghňn ,{N/f1uxN(9e:NN5uN(0(WSSDQ gN*NFTL(Flash Transalation Layer) [vS_Nxv-Nvc6RhV ;NR1\/f\O0W@W f\ \flash memoryvirt0W@W f\:NxvvLBA;0W@W v^cO~OS\Of0 SSDl g O~xvv[SeT^ߏe @bNSSDSNcO^8^ؚv:gSR ُ/f[vg'YOR SLC{|WvSSD8^SNcOǏ35000vIOPS O~15kvSASxv gY_NS0R160*NIOPS ُ[N O~xvegQNN1\/f*N)YepeW[0SSDޏ~vRvknfxvORv^ Nf>f V:Nޏ~[N O~xveg v^ N[Se 15kvSASxv ޏ~vTTRSN0R130MB SLC{|WvSSDSN0R170-200MB bN w0R(WTTϑeb SSD}6qk O~xvؚNN FOOR}6qv^ Nf>f0 SSDvQd\Okyrk SSDvg\QeQUSCQ:N4KB y:Nu(page) S_QeQzz}vMOneSN cgq4KBvUSMOQeQ FO/fYg9eQg*NUSCQe RN*NYvdderase R\O ddvUSMON,/f128*Npage512KB k*NddUSCQy:NWWblock 0YgTN*Nzz}vvpageQeQOo`e SNvcQeQ edd FO/fYg9eQg*NX[PUSCQpage vpenc _{HQ\te*NblockeQX[ 6qTO9epenc v^ddte*Nblockvpenc gT\te*NblockQeQ _>f6q SSD9eQpencvNN_ؚ SSDvُ*Nyr'` bNyKN:Nerase-before-write0 ~ǏKmՋ SLC SSDvsSQ'`SN0R3000*N]SvIOPS ޏ~QvTTϑSN0R170-200MB ُ*Npenc؏/fk O~xvؚQ N\0FO/f @wSSDv NeQeQ S_egYvpenc9eQe Qv'`1\Oek NM0~ǏbNvKmՋ SLC(Wُ*Nebf>f}YNMLC (WeQeQT MLC:gQIO NM_^8^S[ SLChsRk3z[0:NN㉳Qُ*N T*NSFU g_YV{eueg2bkQ'` NMv0 NORTNAND NORTNAND/fX[b/gvNy NOR/fIntellQS_Sv [ gp{|f6q MLCvX[P[ϑkSLC'Y FO/fSLCf{USS` SLCSTQeQv^kMLCf_ NSLCkMLCf(u MLCkUSCQSdd1w!k SLCSdd10w!k @bN ON~vX[NTN, (uSLC ُ_N/f:NNHNON~NTk[(uNT5_YvSV0 wear leveling_cGWa{l V:NSSDX[(W Qx_c v S_g*NUSCQeS YdQekYOracle redo NNO bQeQv'` NO'Y'Y)wSSDvO(u[}T @bN_{N*NGWa}v{legOSSDvk*NUSCQYGWavO(u ُ1\/fwear leveling y:N_cGWa{l0 Wear leveling_N/fSSDQ萄vFTL[sv [Ǐpencyeg0RGWa_cvvv0Wear levelingOVNSSD-NvNROYuzz W,gSt/f(WSSD-NnN$N*Nblock pool N*N/ffree block poolzz`l N*N/fpenc`ldata block pool S_9eQg*NpageeYgQeQS gMOn _{HQddte*Nblock 6qTMbQeQpenc v^ NQeQS gMOn NddvR\O /fNzz`l-NSQevblock \s gvpenc NO9e T9eQvpencTv^:Nevblock NwQeQevzz}vblock S gvblockhƋ:Ninvalidr`I{_ddV6e evblockRۏeQpenc`l0TSNRO[eNdata block-NSQeHepencvblock]hl:Ninvalid ddTV6e0Rzz`l-N0ُ7hZPv}YY(WN N/f NOS YdQ TN*Nblock N/fQeQv^Ok_(weuNddvR\O)0 Wear levelingR:N$NyR`_cGWaTY`_cGWa $NvStN :S+R(WNR`{lSOYtR`penc kYpenc9eQeMbOSpencyvR\O [Y`penc Nw\O(u Y`{lSNGWaY`penc S_TSNRSs_c_NOvY`pencWWe \vQy0RvQNpenc^WW N \ُNWW>eeQzz`l-NO(u0NGWavHegeg w Y`{l}YNR`{l V:NQNN@b gvblockSNGWavO(u SSDv[}TO'Y'Y^ FO/fY`{lv:p/fS_pencye SO[Q'` NM0 QeQ>e'Y V:NSSDverase-before-writevyr'` @bN1\QsNN*NQeQ>e'Yvi_ kY`O`9eQ4Kvpenc _{HQ\te*NddWW512KB -NvpencQ0RX[-N Q[vQ-Nv4K9eQT \te*NWWNwQeQ ُe`O[EQeQN512KBvpenc QeQ>e'Y|pe/f1280QeQ>e'Yg}Yv`Q/f1 1\/f NX[(W>e'Yv`Q0 Wear leveling{lSN gHe㉙QeQ>e'Yv FO/f NTtv{lO6qO[QeQ>e'Y kY(u7bQeQ4kpence Ssfree block pool-Nl gzz}vvblock ُe1\_{(Wdata block pool-N bN*NS+TeHepencvblock HQeQX[-N 9eQT \te*NWWNwQeQ Ǒ(uwear leveling{lO6qOX[(WQeQ>e'Yv0 Ǐ:NSSDYufYzz SN>fW㉙QeQ>e'Y[v'`09hncbNvKmՋ~g MLC SSD(Wev:gQeQT '` NM_f>f:gQIOPSuMNO0R300 0Yg:Nwear levelingYufYzz 1\SN>fW9eUMLC SSD(WeQd\OKNTv'` NM NOYuvzzY '`cGS1\f>f0vk SLC SSDv'`3z[_YIOPS(We:gQT :gQSN3z[(W3000 IOPS b`^/fSLC SSDv[ϑ8^k\32GT64G (uNwear levelingvzzSk'YvSV0 penc^IOyrpRg IO gVy{|Wޏ~ :g :gQTޏ~Q ޏ~QvIO size8^k'Y128KB-1MB ;NaϑTTϑ :gQvIO sizek\(\N8KB) ;NaϑIOPSTT^e0penc^-NvhQhkbc/fޏ~IO "}_R/fxQWv:gIO e_eN/fޏ~QIO penceNR/f:gQIO0 penc^|~WN O~xvyr'`eg g'Yyrp/fe_eNǑ(usequential logging penc^-Nve_eN Bl_{(WNRcNeQeQ0Rxv [T^evBl_ؚ @bN:Nz^QeQve_ SN gHeMNOxv[S9ve Q\^ߏe0e_eNvz^QeQ }6q/firtMOn/fޏ~v FO/fv^ N TN O~vޏ~Q{|W e_eNvIO size_\8^\N4K ,k*NIOKN/frzvx4Y_{bweg͑e[S v^I{_xvlR0Rv^vMOn N_w penc^Ǐlog bufferX[ Tgroup commitve_ybϑcN eg0RcؚIO sizev'Y\ v^Q\IOv!kpe N _0Rf\vT^^ߏ @bNe_eNvz^QeQSN:N/f ޏ~MOnv:gQeQ t؏/f(WIOPS N/fTTϑ0 penceNǑ(uin place updateve_ a`/fpenceNvO9e/f .<df * , . L N F X N R ` 02DF~Xr½½¡½†y½t½yf½hE h95B*o(ph h9o(hE h*5B*phhE h*5B*o(phh9h*B*o(phh9h*5B*o(phh65&h*5B*o(ph h*o(h* hc5o( hWD5o( h]N5o(h]Nh]N5o(h]Nh]N5#h@h*5B*CJaJo(ph(h, . L N P R 02DF~~X$a$gd9$a$gdE gd*gd]N$a$gd*IIln ##j/l/n////$a$gdE $a$gd9gd*rXt0rln ###.j/l/n/////0 0X0Z000 11t1v111>2@22233032333"4$4~4444446699:;hE h*5B*ph hE o(U hPwo(hE h*5B*o(phh9h*5o( h45o( h*o(hWDh*5o(h*HQeQ0RSegvMOn penceN N TNe_eN v^ NO(WNRcommiteQeQpenceN S gS_penc^Ssdirty bufferǏYbZPcheckpointR\Oe MbO7ReُNdirty buffer0Rv^vMOn ُ/fN*N_ekvǏ z 8^`Q N penceNv:gQeQ[IOvBlv^ N/fyr+Rؚ SncheckpointTdirty buffervBl1\SNN0 SSDvIOyrpRg 1.:gR^8^}Y ޏ~'`N, FOknfSASxv}Y0 2. NX[(Wxv[Sv^ߏe :gQTޏ~QvT^^ߏ]_ N'Y0 3.erase-before-writeyr'` bQeQ>e'Y q_TQeQv'`0 4.Qx_cyr'` Ǒ(uwear leveling{l^[}T FO TeOq_Tv'`0 5.TQvIOT^^ߏ N[I{'Y'Y}YNQ nfxvTQvIOT^^ߏ]__\0 6.ޏ~Qk:gQ'`}Y kY1Mz^Qk128*N8KvsSQ}Y_Y V:NsSQO&^eg'Yϑvdd0 WNSSDv Nyr'` Yg\penc^hQ>e(WSSD N SO gN Nv 1.e_eNsequential loggingOS YdQ TNMOn }6q g_cGWa{l FO/feQeQO6qO['` NM0 2.penceNin place updateONu'Yϑv:gQeQ erase-before-writeONuQeQ>e'Y0 3.penc^QmTW^(u X[(W'Yϑv:gQeQ TeOq_Tv'` Nu'YϑvIO^ߏ0 WNSSDvpenc^OSlR WNSSDvOS1\/f㉳Qerase-before-writeNuvQeQ>e'Yv N T{|WvIORy Q\Qd\O&^egv'`q_T0 1.\sequential loggingO9e:NIn-page logging MQ[v TMOnvS YdQ0 2.ǏX[QeQve_\'Yϑvin-place update:gQeQTv^:N\ϑz^QeQ0 3.)R(uSSD:gQRؚvyrp Q\QXR N 0RteSO'`vcGS0 In-page logging In-page logging/fWNSSD[penc^sequential loggingvNyOSel penc^-Nvsequential logging[ O~xv/f^8^ g)Rv SN'Y'YcؚT^e FO/f[NSSD1\/fiVh V:N[ TNMOnS YdQ wear leveling{l}6qSNs^a} FO/fO6qOq_T'` v^Nu'YϑvIO^ߏ0@bNIn-page logging\e_TpencTv^ \e_z^QeQ9e:N:gQeQ WNSSD[:gQTޏ~QIOT^^ߏ]_ N'Yvyr'` MQ[ TNMOnS YdQ cؚteSO'`0 In-page loggingW,gSt(Wdata buffer-N gN*Nin-memory log sectorv~g {|e(W TN*NblockddUSCQ k*NblockS+Tdata pageTlog page0 S_e_Oo`QeQvePlog bufferzz NbNRcN e_Oo`OQeQ0Rflash memory[^vblock-N _N1\/fe_Oo`/fR^(W_Y N Tvblock-Nv k*NblockQve_Oo`/fappend write @bN NddvR\O0S_g*Nblock-Nvlog sectorQnveP ُeOSuN*NR\O \te*Nblock-NvOo`Q 6qT^(ublock-Nvlog sector 1\SN_0Rgevpenc 6qTte*NblockQeQ ُe block-Nvlog sector/fzz}vv0 (Win-page loggingel-N data buffer-Nvdirty block/f NQeQ0Rflash memory-Nv 1\{dirty bufferNbcQS _N N\[NQeQflash memory-N0S_Sgevpenc S\block-NvpencTe_Oo`Tv^ 1\SN_0Rgevpenc0 In-page loggingel \e_Tpenc>e(W TN*NddUSCQQ Q\N[flashv TMOnvS YdQ N N\dirty blockQeQ0Rflash-N 'YϑQ\Nin-place updatev:gQeQTddvR\O0}6q(WSe ZPN*Nmergevd\O FO/fV:NpencTe_X[>e(WNw NSSDv:gSR_ؚ in-page loggingSNcؚteSOv'`0 SSD\O:NQcache append write SSDSN\O:NxvvQcache V:NSSDޏ~Qk:gQ'`}Y kY1Mz^Qk128*N8Kv:gQ}Y_Y bNSN\'Yϑ:gQTv^b:N\ϑz^Q XRIOv'Y\ Q\IO(dd)v!kpe cؚQeQ'`0ُ*NelN_YNoSQLNTvappend write{|ev :NN_h"}cache file-Nvpenc N,O(WQX[-N:Ncache file^zN*N"}_ SpenceOHQgُ*N"}_ Yg}T-Ngcache file Ygl g}T-N QSdata filenfxv @bN ُyel[E NNN/fQcache Te_Nw0RNcachev\O(u0 SSDv^ NT>epenc^ve_eN }6qe_eN_N/fappend write FO/fV:Ne_eNvIO sizek\ N_{ TekQeQ elZPTv^Yt [SSDeg 'YϑvddR\O0bN_Nf~\Ջbredo log>e(WSSD N Q0RSSDv:gQeQ_NSN0R3000 IOPS NT^^ekxvNO_Y FO/fُOVNSSD,gvwear leveling{l/f&TOy Ne_eN_{/frzX[>ev Yge_eNvQeQ/ft _N{/fNy㉳QeHh'T08^`Q N b؏/f^e_eN>e(Wnfxv N N/fSSD0 SSD\O:Ncache flashcache V:N'YRpenc^/fYQ\v{|W @bNSSD\O:Npenc^flashcache/fOSeHh-Ng{USvNy [SNEQR)R(uSSD'`vOR SMQNSSDQeQv'`0[svel g_Yy SN(WSpence \penc TeQeQSSD _NSN(Wpenc7RQbuffere QeQ0RSSD0Spence HQ(Wbuffer-Ng 6qT(Wflashcache-Ng gTSdatafile0 SSD\O:NflashcacheNmemcache\O:Npenc^Ycachevg'Y:S+R(WN SSDc5uTpenc/f N"N1Yv ُ_N_wNSYN*N` S_penc^SuEe͑/TT flashcache-Nvpenc/f gHe؏/feHeYg/f gHev HN1\_{e;ROflashcache-NpencvN'` Yg/feHev HNflashcache T7hb4NN*NpvُNmemcachec5uTvN7h 0vMR ncb@bw W,g N:N/feHev V:NOcflashcache-NpencvN'` ^8^V0 flashcache\O:NQX[TxvKNvN~cache dN'`vcGSNY Nb,gv҉^ w SSDvN2@22233032333"4$4~4444gd*444699:;4<6<===="?$?AA\C^C`EbEEEG GHHIgd*$a$gdE ;4<6<===="?$?AA\C^C^EbEEEG GHHIIIIIIIIIIIIIIhKh.Zjh.ZU hQQo(hE h*5B*o(phh* h*o("IIIIIIIIIIIIIIIIIIIIIIIIII &dPgd]Ngd*6182P:p*. A!"#7$7%S N@N cke $1$a$$CJKHPJ_HaJmH nHsH tH$A$ ؞k=W[SOBiB nfh?@BCDEFGHJKLMNOPSRoot Entry F&j[UData *1Table2WordDocument8RSummaryInformation(ADocumentSummaryInformation8ICompObjm  FMicrosoft Office Word ĵ MSWordDocWord.Document.89q