YAFFS - YAFFS

YAFFS
ӘзірлеушілерЧарльз Мэннинг
Толық атыТағы бір флэш-файл жүйесі
Басқа
Қолдау көрсетіледі операциялық жүйелерAndroid, Firefox ОЖ, Linux, Windows CE, pSOS, RTEMS, eCos, ThreadX

Яфс (Тағы бір флэш-файл жүйесі) Чарльз Мэннинг Aleph One компаниясына арнап жазған және жазған.

Yaffs1 осы файлдық жүйенің алғашқы нұсқасы болды және 512-мен қазіргі кездегі NAND чиптеріне арналған байт парақтың өлшемі (+ 16 байтты қосалқы (OOB; аумақтан тыс) аймақ). Жұмыс 2002 жылы басталды, және ол алғаш рет сол жылы шығарылды. Бастапқы жұмыстарға Toby Churchill Ltd және Brightstar Engineering демеушілік жасады.

Бұл үлкендер чиптер сонымен қатар әр параққа 2 немесе 3 жазу циклына мүмкіндік береді.[1] YAFFS бұл мүмкіндікті пайдаланады: лас беттер белгілі бір бос орынға байтқа жазу арқылы белгіленеді. Жаңа NAND флэш чиптері үлкенірек беттерге ие, алдымен 2K беттер (+ 64 байт OOB), кейінірек 4K, жазу талаптары қатаң. Өшіру блогындағы әр парақ (128 килобайт) дәйектілікпен жазылуы керек және әр парақ тек бір рет жазылуы керек.[дәйексөз қажет ]

«Бір рет жазу ережесін» («бір рет жазыңыз») орындайтын сақтау жүйесін жобалаудың бірнеше артықшылығы бар.[2]

YAFFS2 осы жаңа чиптерді орналастыруға арналған. Ол YAFFS1 бастапқы кодына негізделді, оның басты айырмашылығы - ішкі құрылымдар 512 байт өлшеміне теңестірілмеген және блоктың реттік нөмірі әр жазылған параққа орналастырылған. Осылайша, ескі парақтарды «бір рет жазу» ережесін бұзбай қайта жазуға болады. Ол 2003 жылдың соңында шығарылды.

YAFFS - бұл сенімді журналдың құрылымдық файлдық жүйесі ұстайды деректердің тұтастығы жоғары басымдық ретінде. YAFFS-тің екінші мақсаты - жоғары өнімділік. YAFFS әдетте көптеген баламалардан асып түседі.[3] Ол сондай-ақ портативті етіп жасалған және қолданылған Linux, WinCE, pSOS, RTEMS, eCos, ThreadX, және әр түрлі арнайы ОЖ. 'YAFFS / Direct' нұсқасы ОЖ, ендірілген ОЖ немесе жүктеуші құралдары жоқ жағдайларда қолданылады: ол бірдей файлдық жүйеге ие, бірақ жоғары және төменгі деңгей кодымен де, NAND флэш-аппаратурасымен де қарапайым интерфейске ие.

YAFFS код базасы лицензияланған GPL және Aleph One компаниясынан алынған өнімге арналған лицензиялар бойынша.

YAFFS1

Арнайы рәсім жоқ баптандыру флэш-жадты өшіруге ғана емес, YAFFS файлдық жүйесі. Нашар блокқа тап болған кезде, YAFFS блоктың қосалқы аймағының бесінші байтын белгілеудің ақылды медиа схемасын ұстанады. Сол сияқты белгіленген блоктар бөлінбей қалады.[түсіндіру қажет ]

Файл деректерін жазу үшін YAFFS бастапқыда файлды сипаттайтын тұтас бетті (YAFFS терминологиясында) жазады метадеректер, сияқты уақыт белгілері, аты, жолы және т.с.с. жаңа файлға объектінің жеке идентификациялық нөмірі беріледі; файл ішіндегі барлық деректер зонасында осы бірегей нысан идентификаторы болады. YAFFS ағаш құрылымын қолдайды Жедел Жадтау Құрылғысы осы кесектердің физикалық орналасуы туралы. Бөлшек жарамсыз болған кезде (файл жойылады немесе оның бөліктері қайта жазылады), YAFFS бөліктің бос аймағында белгілі бір байтты «лас» деп белгілейді. Бүкіл блок (32 бет) лас деп белгіленгенде, YAFFS блокты өшіріп, орынды қайта қалпына келтіре алады. Файлдық жүйенің бос орны аз болған кезде, YAFFS жақсы беттер тобын жаңа блокқа біріктіреді. Содан кейін YAFFS бастапқы блоктардың әрқайсысында лас парақтар пайдаланған орынды қайтарады.

YAFFS жүйесі болған кезде тіреулер а NAND жарқылы құрылғыға сәйкес, оның бос аймағын сканерлеу арқылы дұрыс деректерді тексеру үшін әр блокқа кіру керек. Осы ақпаратпен ол жадқа арналған ағаш деректерінің құрылымын қалпына келтіреді.

YAFFS2

YAFFS2 тұжырымдамасы бойынша YAFFS1-ге ұқсас және сол кодтың көп бөлігін пайдаланады; YAFFS2 кодтық базасы YAFFS1 деректер пішімін кері үйлесімділік арқылы қолдайды. Негізгі айырмашылық - YAFFS2-ге заманауи NAND жарқылының «бір рет жазу» талабын қанағаттандыру үшін маңызды шеңберлерден өту қажет.[4]

YAFFS2 әрбір жаңа жазылған блокты реттік нөмірімен белгілейді монотонды түрде жоғарылайды. Бөлшектердің ретін блоктың реттік нөмірінен және блоктың ішіндегі ығысуды анықтауға болады. Осылайша, YAFFS2 жарқылды сканерлегенде және бірдей ObjectID идентификаторлары бар бірнеше кесектерді анықтаған кезде, қайсысының ең үлкен реттік нөмірін алу керектігін таңдай алады. Тиімділігі үшін YAFFS2 сонымен қатар кішірейту тақырыптары ұғымын ұсынады. Мысалы, файл өлшемі кішірек болғанда, YAFFS1 зардап шеккен бөліктердің барлығын лас деп белгілейді - «бір рет жазу» ережесіне байланысты YAFFS2 мұны істей алмайды. YAFFS2 орнына «кішірейту тақырыбын» жазады, ол осы нүктеге дейінгі беттердің белгілі бір санының жарамсыз екенін көрсетеді. Бұл YAFFS2-ге жүйені қайта жүктеген кезде файлдық жүйенің соңғы күйін қалпына келтіруге мүмкіндік береді.

YAFFS2 NAND жарқылының неғұрлым абстрактілі анықтамасын қолданады, оны әртүрлі геометриялы, жарамсыз блоктармен жұмыс істеу ережелерімен және басқа жарқыл бөліктерімен қолдануға мүмкіндік береді.

YAFFS2 кейінірек қолдау көрсетті бақылау пункті, бұл орнатудың қалыпты сканерлеуін айналып өтіп, тез орнату уақытына мүмкіндік береді. Өнімділік әр түрлі болады, бірақ 2 секундқа 3 секундты орнату уақыты ГБ туралы хабарланды.[дәйексөз қажет ]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ Жарқылды өшіру блогын өшіру оның барлық биттерін 1 с-қа қояды, ал жазу блогын жазу (өшіру блогынан кішірек, бірақ файлдық жүйе блогынан үлкенірек болуы мүмкін) таңдалған биттерді 0-ге тең етеді. Блокқа одан әрі бір-екі жазуды жалғастыруға болады, егер 0-ге жазылған биттер жазу блогында бұрын 1 болса. 0-ді битке жазу, ол 0-ді 0-ге айналдыру қаупі бар, яғни битті 1-ге қайтару үшін бірнеше рет өшіру қажет болуы мүмкін.[дәйексөз қажет ] Айтуға болмайды, бұл бірнеше рет жазу тәжірибесі флеш-сатушылармен тексерілмеген және кепілдендірілмеген, және де жұмыс істемейтіндерде мүлдем жұмыс істей алмайды.SLC флэш технологиялары.
  2. ^ Джек Б. Денис; Гуан Р.Гао; және Вивек Саркар.«Бірлескен зерттеулер: бағдарламалау модельдері және көп ядролы процессорлармен өнімділігі жоғары есептеу үшін сақтау жүйесі».p. 4
  3. ^ «Flash 3.1 файлдық жүйесі Linux 3.1».
  4. ^ «YAFFS 2 техникалық сипаттамасы және әзірлемесі».

Сыртқы сілтемелер