일반 UFS(Universal Flash Storage)는 어느 논리 블록이든 덮어쓸 수 있는 인터페이스를 제공합니다. 컨트롤러가 4KB 논리 페이지를 NAND 위치로 변환하지만 1TB 장치의 전체 매핑 테이블은 모바일 SRAM에 넣기 어렵습니다. 계층형 매핑은 항목을 플래시와 캐시 사이에서 옮깁니다. 무작위 주소 범위가 넓어지면 매핑 누락이 NAND 읽기와 예측하기 어려운 지연을 추가합니다.

Zoned UFS는 페이지 매핑 대부분을 큰 존마다 하나인 쓰기 포인터로 바꿉니다. 호스트는 순서대로 쓰고 존을 다시 쓰기 전에 초기화합니다. 작은 존 매핑은 SRAM에 상주시킬 수 있고, 존을 삭제 단위와 맞추면 장치 GC를 줄일 수 있습니다. 그러나 단순해진 컨트롤러의 책임은 위로 이동합니다. F2FS, 블록 스케줄러, SCSI/UFS 드라이버, Android 전력 관리, 펌웨어가 모두 쓰기 순서를 지켜야 합니다.

논문은 데이터센터 ZNS를 그대로 옮기지 않고 상용 플래그십 스마트폰에 맞춘 경로를 보고합니다. 모바일 UFS에는 작은 SRAM, 반이중 링크, 공격적인 전력 상태, Android 파일별 암호화, 기존 F2FS 배치가 있습니다. 인터페이스만으로 효과가 생긴다고 가정하지 않고 각 계층을 수정한 설계입니다.

수 MB SRAM을 놓고 경쟁하는 여러 열린 존

F2FS는 데이터 온도와 메타데이터를 여러 동시 쓰기 스트림으로 나눕니다. 따라서 존 장치는 여러 존을 열어야 합니다. 단순한 컨트롤러는 모든 다이에 걸쳐 NAND를 프로그램할 수 있도록 각 존에 전체 슈퍼페이지 버퍼를 배정합니다. 평가 구조에서는 768KB 버퍼 일곱 개만으로도 모바일 컨트롤러가 제공할 수 있는 SRAM을 넘습니다.

제안한 존 인식 버퍼 관리는 프로토타입에서 다이 하나의 프로그램 단위인 192KB 슬롯을 할당합니다. 쓰기가 많이 들어오는 존으로 슬롯을 동적으로 이동합니다. 존은 한 다이의 단위가 차는 즉시 플러시하고 슬롯을 반환할 수 있으므로 768KB 슈퍼페이지가 모두 찰 때까지 기다리지 않고 호스트 수신과 NAND 프로그램을 겹칩니다.

기존 ZMS 동작을 재현한 비교에서 192KB 플러시는 처리량을 26% 높였습니다. 새 방식을 768KB로 제한해도 192KB와 처리량이 거의 같았으므로 입도뿐 아니라 동적 할당도 기여합니다. ZMS 소스가 공개되지 않아 문서화된 버퍼 동작을 모사한 비교이며, 동일 구현을 직접 실행한 대결은 아닙니다.

Zoned UFS 데이터 경로는 하나의 순서 계약입니다. F2FS가 온도별 여러 존에 순차 쓰기를 보냅니다. 블록 및 SCSI/UFS 계층은 존마다 순서가 정해진 쓰기 하나만 전송하고 전력 상태 전환 중에도 재정렬하지 않아야 합니다. 펌웨어는 192KB 다이 단위 SRAM 슬롯을 동적으로 배정하고 NAND를 프로그램한 뒤 존 포인터를 전진시키고 슬롯을 풀로 반환합니다. 이 글을 위해 새로 만든 도판입니다.

전력 관리를 통과해야 하는 쓰기 순서

존 장치는 현재 쓰기 포인터 위치만 받습니다. Linux의 존 쓰기 잠금은 존별 쓰기를 직렬화하지만 블록 스케줄러 아래에서도 실제 발행 순서가 바뀔 수 있습니다. SCSI 명령 처리, 오류 재시도, 큐 재삽입, 클록 게이팅, UFS 전력 전환은 앞선 요청이 끝나기 전에 뒤 요청을 내보낼 수 있습니다.

구현은 게이팅과 복귀 과정이 존 순서를 깨뜨리지 않도록 SCSI 및 UFS 드라이버를 바꿨습니다. 여러 수정은 Android 및 Linux 커널에 업스트림됐습니다. 이는 튜닝 세부가 아니라 정확성 조건입니다. 한 번의 재정렬도 명령 실패를 일으키거나, 파일시스템이 예상한 로그 위치와 장치 쓰기 포인터를 다르게 만들어 복구를 깨뜨릴 수 있습니다.

파일별 암호화도 암호화 단위와 메타데이터가 같은 순서 경로를 따라야 한다는 제약을 더합니다. 장치 리셋과 전원 손실 뒤에는 호스트가 존 상태를 조회하고 쓰기 포인터를 복원하며, 새 쓰기를 받기 전에 F2FS 체크포인트와 일치시켜야 합니다. 정상 상태 처리량만 시험하면 가장 어려운 배포 장애를 놓칩니다.

파일시스템에 드러나는 큰 존의 회수 비용

F2FS는 일반적으로 fsync를 포함한 일부 조건에서 선택적 제자리 갱신으로 쓰기 증폭을 줄입니다. 존 매체는 덮어쓰기를 금지하므로 존 논리 장치는 순수 로그 구조로 동작해야 합니다. 초기화 단위가 큰 존이어서 살아 있는 세그먼트 몇 개가 훨씬 큰 영역을 붙잡을 수도 있습니다.

설계는 존 사이로 유효 데이터를 이동하고 여유 섹션이 고갈되기 전에 백그라운드 회수를 수행합니다. 정책은 여유 및 더티 세그먼트에 따라 GC 없음, 일반 GC, 강화 GC 단계로 나뉩니다. 사용자 읽기가 회수보다 우선하므로 백그라운드 복사가 체감 반응성을 무너뜨리지 않습니다.

이 정책은 전경 회수를 피하려고 백그라운드 대역폭을 의도적으로 사용합니다. 휴지 또는 저경합 구간이 있는 스마트폰에서는 효과가 있지만 에너지와 발열 비용도 남습니다. 운영 시험은 이동 바이트, 장치 활성 시간, 회수 GB당 에너지, 여유 존 비축량, 사용자 활동과 겹친 GC 비율을 기록해야 합니다.

매핑 캐시와 노후화 효과를 드러낸 실제 스마트폰

시험은 LPDDR5X 12GB와 Zoned UFS 512GB를 탑재한 Google Pixel 10 Pro, Android 16, Linux 6.6, F2FS를 사용했습니다. 일반 기준은 같은 하드웨어의 일반 논리 단위를 전체 볼륨에 배정해 저장 모드와 필요한 소프트웨어 경로만 다르게 했습니다. ZUFS의 F2FS는 순수 로그 구조 모드로 마운트했습니다.

무작위 읽기 범위가 4GB일 때는 일반과 존 모드가 비슷했습니다. 일반 매핑 작업 집합이 컨트롤러 SRAM에 들어왔기 때문입니다. 범위를 256GB까지 넓히면 일반 모드는 매핑 누락이 늘어 처리량이 떨어졌고, 존 매핑 테이블은 상주해 처리량을 유지했습니다. 이점은 요청 크기 128KB 아래에서 가장 컸으며 큰 요청에서는 한 번의 매핑 조회가 더 많은 데이터에 분산돼 차이가 줄었습니다.

노후화 시험은 128KB 파일 32,768개를 만들고 두 번째 파일마다 지운 뒤 1GB 시험 파일을 쓰고 읽는 과정을 여유 공간 1GB 미만까지 반복했습니다. 약 90번째 반복에서 일반 UFS는 F2FS 여유 세그먼트를 소진했습니다. 전경 GC가 시작되며 순차 쓰기는 약 100MB/s로 떨어지고 읽기는 약 35% 감소했습니다.

Zoned UFS는 더 일찍 일반 및 강화 백그라운드 회수로 전환했습니다. 정책 전환 부근에서 쓰기 처리량이 내려갔지만 200MB/s 이상을 유지해 일반 모드 하한의 두 배를 넘었고, 읽기는 안정적이었습니다. 결과는 존 매핑, 순차 배치, 선제 F2FS 정책의 결합 효과이며 하드웨어 하나에만 귀속할 수 없습니다.

사용자 시간으로 바뀌는 장기 데이터 배치

게임 시험은 노후화한 장치에 약 40GB인 Genshin Impact 리소스를 설치했습니다. 실행 전 검증이 순차 및 조각난 읽기를 발생시켰습니다. Zoned UFS는 검증과 로딩을 30초에 마쳐 일반 UFS의 35초보다 14% 짧았습니다.

요청 분포가 차이를 설명합니다. 일반 F2FS의 선택적 세그먼트 재사용은 익스텐트를 흩어 읽기의 66.3%를 4KB에서 8KB 구간에 놓았습니다. 존의 순차 배치는 대부분의 요청을 512KB보다 크게 만들어 장치가 원시 순차 대역폭에 접근하도록 했습니다. 따라서 새 빈 스마트폰을 5초 빠르게 만든 결과가 아니라 장기간 배치가 만든 개선입니다.

평가 대상은 게임 하나와 노후화 방법 하나입니다. 다른 앱은 실행 중 CPU 병목이거나 압축 리소스 아카이브를 사용하거나 캐시에서 읽을 수 있습니다. 사용자 평가는 설치, 갱신, 삭제, 카메라 버스트, 메시지 데이터베이스, 낮은 여유 공간, 수개월의 유휴 유지보수를 함께 다뤄야 합니다.

규격·펌웨어·파일시스템 정책을 잇는 제품 판단

Zoned UFS는 매핑 SRAM을 줄이고 F2FS와 맞는 순차성을 노출하지만, 소프트웨어가 특정 NAND 세대에 고정되지 않으면서 효율적으로 버퍼링할 수 있는 구조 정보도 인터페이스가 제공해야 합니다. 펌웨어는 존별 상태, trim 및 초기화 지연, 프로그램 단위 힌트, 오류 복구 의미를 보여 줘야 합니다. 규격은 이식성을 지키면서 컨트롤러가 진화할 여지를 남겨야 합니다.

호스트에는 순서가 보장된 큐, 버전별 커널 수정, 암호화 정확성, 전력·발열 상태와 연동한 백그라운드 GC 임계값이 필요합니다. 장치 인증은 같은 실리콘의 두 모드를 노후화하고, 모든 전력 전환 중 쓰기를 중단하며, F2FS 복구를 확인해야 합니다. 용량 비축과 열린 존 한계는 숨은 펌웨어 상수가 아니라 제품 자원으로 관리해야 합니다.

논문의 14% 애플리케이션 개선과 조각화 쓰기 하한 두 배 이상은 이러한 조정의 가치를 보여 줍니다. 동시에 이점이 나타나는 분모도 제시합니다. 매핑 작업 집합이 SRAM을 넘고 일반 F2FS가 조각날 때 차이가 커졌으며, 사용량이 낮고 활성 데이터가 작은 장치에서는 두 모드가 비슷했습니다.

따라서 Zoned UFS는 단순히 더 작은 매핑 테이블이 아닙니다. 데이터 배치와 회수를 Android에 드러내는 저장 계약입니다. 상용 구현이 효과를 낸 이유는 F2FS부터 NAND까지 그 계약을 전달하고 전력, 버퍼, 복구 전환을 모두 계약에 맞췄기 때문입니다.

출처와 저작권 안내

이 글은 Silicon & Systems의 편집 분석입니다. 구현, 측정값, 한계를 자체 문장으로 재구성했습니다. 원문의 문장, 표, 도판을 복제하지 않았으며 본문 도판은 이 글을 위해 새로 만들었습니다. 논문은 USENIX FAST 2026 발표 페이지에서 확인할 수 있습니다. 저작권은 저자에게 있으며 연도는 2026년입니다.