YAFFS
YAFFS | |
---|---|
Khai phát giả | Charles Manning |
Chính thức danh | Yet Another Flash File System |
Dẫn vào | () |
Cấu tạo | |
Hạn độ | |
Đặc trưng | |
Đối ứngOS | Linux,Windows CE,pSOS,eCos,ThreadX |
YAFFS(Yet Another Flash File System) はCharles Manningによりデザインされ, ghi lại された. Tương ứng はAleph Oneであり,ニュージーランドのWhitecliffsにある.
Yaffs1はこ のファイルシステムの lúc ban đầu の バージョンであり, 512バイトに16バイト(OOB;Out-Of-Band) の dư bị lĩnh vực を cầm たせた lúc ấy mới nhất duệ のNANDチップHướng け の lúc ban đầu の ファイルシステムであった. Tác nghiệp は2002 năm に bắt đầu され, そ の năm の phần sau に lúc ban đầu にリリースされた. Lúc ban đầu の tác nghiệp は, Toby Churchill LtdとBrightstar Engineeringが hậu viên した. これら の より cổ いチップは thông thường 1ページあたり2~3 thư trả lời き đổi えることができた. YAFFSにおいて,ダーティーページはマークされ, riêng の dư bị lĩnh vực に nhớ lục された.
より tân しいNANDフラッシュはより đại きなページを cầm っている. Lúc ban đầu は2048バイト+64バイト dư bị lĩnh vực であり, sau に4K の より đại きいページを cầm ち, người sau の phương がより thư き込み văn kiện quan trọng が nghiêm しくなります.
Đánh tan ブロック ( 128キロバイト ) nội の các 々 の ページはシーケンシャルに thư き込まなければならず, しかも một lần に thư き込まなければならない[Muốn xuất xứ].
“ライトワンスルール” ( “ライトワンスプロパティ” ) を áp dụng するストレージシステムを thiết kế することには, いくつか の lợi điểm がある[1].
YAFFS2はこれら の より tân しいチップに đối ứng するようデザインされた. YAFFS2はYAFFS1 の ソースコードに cơ づいていて, đại きな vi いとしては bên trong cấu tạo は512バイトサイズに cố định されておらず, ブロックシーケンス phiên hiệu は các 々 の thư き込まれたページに trí かれている. これにより cổ いページは “ライトワンス”ルールに trái với すること vô く nói lý lẽ に thượng thư きされる. 2003 năm sau nửa にリリースされた.
YAFFSは ngoan trượng なログ cấu tạo ファイルシステムであり,データ hoàn toàn tínhに cao い ưu tiên độ が giả thiết されている. YAFFS の 2 phiên mục の mục tiêu はハイパフォーマンスである. YAFFSはほとんど の thay thế よりも thông thường hiệu suất が lương いだろう. また, ポータブルなデザインとなっており,Linux,Microsoft Windows Embedded CE,pSOS,RTEMS,eCos,ThreadXを thủy めとして dạng 々な chuyên dùng mục đích の OSで sử dụng khả năng である. 変 loại である “YAFFS/Direct” はOSを cầm たない hoàn cảnh, tổ み込みOS, ブートローダで sử dụng され, trung tâm の ファイルシステムとしてだけでなくOSとNANDフラッシュと の シンプルなインターフェイスとして の dịch cắt も cầm つ.
こ の ファイルシステムはGPLおよびAleph Oneと の プロダクトライセンス の lạng phương でライセンスされている.
YAFFS1
[Biên tập]フラッシュメモリを単に đánh tan する bên ngoài に, YAFFSファイルシステムをLúc đầu hóaするため の đặc biệt な tay thuận はない. Bất lương ブロックが kiểm ra されると, YAFFSはブロック の スペア lĩnh vực の 5 phiên mục の バイトをマークするスマートメディアスキームに従う. そ の ようにマークされたブロックは, それ lấy hàng は chưa cắt り đương て の ままである[Muốn nói rõ].
ファイルデータを thư き込むために, YAFFSは lúc ban đầu にタイムスタンプ,Danh trước, パスなど の ファイルメタデータを thuyết minh するページ toàn thể ( YAFFS dùng từ ではチャンク ) を thư き込む. Tân しいファイルには, một ý の オブジェクトID phiên hiệu が cắt り đương てられ; ファイル nội の すべて の データチャンクには, スペア bên trong lĩnh vực にこ の một ý の オブジェクトIDが hàm まれる. YAFFSは, これら の チャンク の vật lý な nơi の ツリー cấu tạo をRAMに duy trì する. チャンクが vô hiệu になると ( ファイルが trừ bỏ されるか, ファイル の một bộ が thượng thư きされ ), YAFFSはチャンク の スペア lĩnh vực の riêng の バイトを “ダーティ” としてマークする. ブロック toàn thể ( 32ページ ) がダーティとしてマークされている trường hợp, YAFFSはブロックを đánh tan してスペースを lại lợi dụng できる. ファイルシステム の không き lĩnh vực が thiếu ない trường hợp, YAFFSは thích thiết なページ の グループを tân しいブロックに thống hợp する. Thứ に, YAFFSは, nguyên の các ブロック nội の ダーティページによって sử dụng されていたスペースを lại lợi dụng する.
YAFFSシステムがNANDフラッシュデバイスをマウントする trường hợp, các ブロックにアクセスして, スペア lĩnh vực をスキャンして có hiệu なデータを xác nhận する tất yếu がある. Thứ に, こ の tình báo を sử dụng して, メモリに thường trú するツリーデータ cấu tạo を lại cấu thành する.
YAFFS2
[Biên tập]YAFFS2は khái niệm がYAFFS1に tựa ており, ほとんど cùng じコードを cùng sở hữu している; YAFFS2コードベースは, hạ vị trao đổi tính を thông じてYAFFS1データ hình thức をサポートする. Chủ な vi いは, YAFFS2は, mới nhất の NANDフラッシュ の “ライトワンス”Văn kiện quan trọng を mãn たすために quan trọng なフープを phi び càng える tất yếu があることである[2].
YAFFS2は, tân しく thư き込まれたすべて の ブロックに,単 điều tăng thêmするシーケンス phiên hiệu をマークする. チャンク の シーケンスは, ブロックシーケンス phiên hiệu とブロック nội の チャンクオフセットから phỏng đoán できる. これにより, YAFFS2はフラッシュをスキャンし, cùng の オブジェクトIDとチャンク phiên hiệu を cầm つ số nhiều の チャンクを kiểm ra するときに, lớn nhất の シーケンス phiên hiệu を sử dụng してどちらを sử dụng するかを tuyển 択できる. Hiệu suất thượng の lý do から, YAFFS2ではシュリンクヘッダー の khái niệm も dẫn vào されている. たとえば, ファイル の サイズが tiểu さいサイズに変 càng されると, YAFFS1は ảnh hưởng を chịu けるすべて の チャンクをダーティとしてマークする. YAFFS2は “ライトワンス”ルール の ためにこれを hành うことができない. YAFFS2は, đại わりに “Thu nhỏ lại ヘッダー” を thư き込む. これは, そ の khi điểm より trước の riêng の ページ số が vô hiệu であることを kỳ す. これにより, YAFFS2は, システム の tái khởi động khi にファイルシステム の cuối cùng trạng thái を lại cấu trúc できる.
YAFFS2は, NANDフラッシュ の より trừu tượng な định nghĩa を sử dụng して, さまざまなジオメトリ, bất lương ブロック処 lý ルールなど の さまざまなフラッシュパーツで sử dụng できるようにする.
YAFFS2は sau でチェックポインティング の サポートを thêm vào した. これは thông thường の マウントスキャンをバイパスし, phi thường に cao tốc なマウント thời gian を khả năng にする. パフォーマンスは dạng 々だが, 2GBで3 giây の マウント thời gian が báo cáo されている[Muốn xuất xứ].
Chú thích
[Biên tập]- ^Jack B. Dennis; Guang R. Gao; and Vivek Sarkar."Collaborative Research: Programming Models and Storage System for High Performance Computation with Many-Core Processors".p. 4
- ^“YAFFS 2 Specification and Development Notes”.2022 năm 4 nguyệt 9 ngàyDuyệt lãm.