0% found this document useful (0 votes)
346 views30 pages

Samsung UFS HPB Specification v2.0.0G Rev1

This document describes the Host Performance Booster (HPB) specification version 2.0.0G Rev1, which allows the host system memory to be used as a cache for Logical-to-Physical (L2P) mapping data in NAND flash storage devices. This improves read performance by reducing the need to retrieve L2P data from flash memory. The specification defines transaction protocols for managing L2P map data cached in the host. It is intended to improve performance of Universal Flash Storage devices used in applications such as smartphones, VR/AR devices, and cameras.

Uploaded by

杨光炜
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
346 views30 pages

Samsung UFS HPB Specification v2.0.0G Rev1

This document describes the Host Performance Booster (HPB) specification version 2.0.0G Rev1, which allows the host system memory to be used as a cache for Logical-to-Physical (L2P) mapping data in NAND flash storage devices. This improves read performance by reducing the need to retrieve L2P data from flash memory. The specification defines transaction protocols for managing L2P map data cached in the host. It is intended to improve performance of Universal Flash Storage devices used in applications such as smartphones, VR/AR devices, and cameras.

Uploaded by

杨光炜
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

UFS HPB SPECIFICATION V2.0.

0G Rev1 CONFIDENTIAL

SAMSUNG

UFS HOST
PERFORMANCE
BOOSTER (HPB)
SPECIFICATION

Version 2.0.0G Rev1

-i-
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Revision History
Version Date Amendment
2.0.0G 2018.12.24 - Initial Writing
(Reference JEDEC Proposal: JC641^20181122^135.29^Samsung^UFS
HPB ballot_draft_r11.9_clean.docx)
2.0.0G 2019.01.22 - Add Attribute dSupportedVendorFeatureOptions (IDN: FFh)
Rev1 - The description of Turbo Write operation using query request with
Selector=0 changed into Selector=1

-ii-
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Introduction

The UFS device (embedded/removable) is a universal data storage and communication media. It is
designed to cover a wide area of applications as smart phones, VR(virtual reality) device, AR(augmented
reality) device, Drone, 3D games, surveillance system, cameras, organizers, PDAs, digital recorders, MP3
players, internet tablets, electronic toys, etc.
This extension specification describes the Host Performance Booster(HPB) feature in UFS to improve
read performance by utilizing the host side memory.

-iii-
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

SCOPE

This document describes the extended feature, called Host Performance Booster(HPB), in UFS
specification. It also provides some details in how to utilize the HPB for realizing high performance in
UFS devices.

NORMATIVE REFERENCE

The following normative documents contain provisions that, through reference in this text, constitute
provisions of this standard. For dated references, subsequent amendments to, or revisions of, any of these
publications do not apply. However, parties to agreements based on this standard are encouraged to
investigate the possibility of applying the most recent editions of the normative documents listed. For
undated references, the latest edition of the normative document referred to applies.

TERMS, AND DEFINITIONS

For the purpose of this standard, the terms and definitions given in the documents included in section 0
“Normative Reference” and the following apply.

Acronyms
HCI Host Controller Interface
UFS Universal Flash Storage
MIPI Mobile Industry Processor Interface
RPMB Replay Protected Memory Block
SBC SCSI Block Commands
SPC SCSI Primary Commands
LUN Logical Unit Number
NA Not applicable
KB Kilobyte
eUFS Embedded Universal Flash Storage

Terms and definitions

Byte: An 8‐bit data value with most significant bit labeled as bit 7 and least significant bit as bit 0.
Device: An addressable device on the UFS bus usually a target that contains at least one LUN
Host: An addressable device on the UFS bus which is usually the main CPU that hosts the UFS bus

Keywords

Several keywords are used to differentiate levels of requirements and options, as follow:

Can: A keyword used for statements of possibility and capability, whether material, physical, or causal
(can equals is able to).
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Expected: A keyword used to describe the behavior of the hardware or software in the design models
assumed by this standard. Other hardware and software design models may also be implemented.
Ignored: A keyword that describes bits, bytes, quad lets, or fields whose values are not checked by the
recipient.
Mandatory: A keyword that indicates items required to be implemented as defined by this standard.
May: A keyword that indicates a course of action permissible within the limits of the standard (may
equals is permitted).
Must: The use of the word must is deprecated and shall not be used when stating mandatory
requirements; must is used only to describe unavoidable situations.
Optional: A keyword that describes features which are not required to be implemented by this standard.
However, if any optional feature defined by the standard is implemented, it shall be implemented as
defined by the standard.
Reserved: A keyword used to describe objects—bits, bytes, and fields—or the code values assigned to
these objects in cases where either the object or the code value is set aside for future standardization.
Usage and interpretation may be specified by future extensions to this or other standards. A reserved
object shall be zeroed or, upon development of a future standard, set to a value specified by such a
standard. The recipient of a reserved object shall not check its value. The recipient of a defined object
shall check its value and reject reserved code values.
Shall: A keyword that indicates a mandatory requirement strictly to be followed in order to conform to
the standard and from which no deviation is permitted (shall equals is required to). Designers are required
to implement all such mandatory requirements to assure interoperability with other products conforming
to this standard.
Should: A keyword used to indicate that among several possibilities one is recommended as
particularly suitable, without mentioning or excluding others; or that a certain course of action is preferred
but not necessarily required; or that (in the negative form) a certain course of action is deprecated but not
prohibited (should equals is recommended that).
Will: The use of the word will is deprecated and shall not be used when stating mandatory requirements;
will is only used in statements of fact.
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Abbreviations

etc. - And so forth (Latin: et cetera)


e.g. - For example (Latin: exempli gratia)
i.e. - That is (Latin: id est.)

Conventions

UFS specification follows some conventions used in SCSI documents since it adopts several SCSI
standards.

A binary number is represented in this standard by any sequence of digits consisting of only the Western-
Arabic numerals 0 and 1 immediately followed by a lower-case b (e.g., 0101b). Spaces may be included
in binary number representations to increase readability or delineate field boundaries (e.g., 0 0101 1010b).

A hexadecimal number is represented in this standard by any sequence of digits consisting of only the
Western-Arabic numerals 0 through 9 and/or the upper-case English letters A through F immediately
followed by a lower-case h (e.g., FA23h). Spaces may be included in hexadecimal number representations
to increase readability or delineate field boundaries (e.g., B FD8C FA23h).

A decimal number is represented in this standard by any sequence of digits consisting of only the
Western-Arabic numerals 0 through 9 not immediately followed by a lower-case b or lower-case h (e.g.,
25).

A range of numeric values is represented in this standard in the form "a to z", where a is the first value
included in the range, all values between a and z are included in the range, and z is the last value included
in the range (e.g., the representation "0h to 3h" includes the values 0h, 1h, 2h, and 3h).

When the value of the bit or field is not relevant, x or xx appears in place of a specific value.

The first letter of the name of a Flag is a lower-case f (e.g., fMyFlag).

The first letter of the name of a parameter included a Descriptor or the first letter of the name of an
Attribute is:

 a lower-case b if the parameter or the Attribute size is one byte (e.g., bMyParameter),
 a lower-case w if the parameter or the Attribute size is two bytes (e.g., wMyParameter),
 a lower-case d if the parameter or the Attribute size is four bytes (e.g., dMyParameter),
 a lower-case q if the parameter or the Attribute size is eight bytes (e.g., qMyParameter).
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

INTRODUCTION

Overview

The NAND flash-based storage devices, including UFS, include mechanisms to translate logical
addresses of IO requests to the corresponding physical addresses of the flash storage. Traditionally this
L2P map data is loaded to the internal SRAM in the storage controller. When the capacity of storage is
larger, a larger size of SRAM for the L2P map data is required. Since increased SRAM size affects the
manufacturing cost significantly, it is practically impossible to allocate all the amount of SRAM needed
to keep all the Logical-address-to-Physical-address (L2P) mapping data as the capacity of storage is
increased. Therefore, L2P mapping data, which is required to identify the physical address for the
requested IOs, can only be partially stored in SRAM from NAND flash. Due to this partial loading,
accessing the flash address area where the L2P information for that address is not loaded in the SRAM
can result in serious performance degradation.

This specification describes the Host Performance Booster (HPB) feature, which uses the host’s system
memory as a cache for L2P map data. Transactional protocols between the host device driver and storage
device to manage the host side L2P map cache data are described as well.

Legacy Read Operation vs. HPB Read Operation

Logical-to-Physical (L2P) map data is maintained usually in the NAND storage device. Flash storage
devices used for mobile systems include SRAM of limited size in the storage controller, where the device
caches the recently used L2P mapping entries. On receiving a read request, the NAND storage firmware
looks up the L2P map cached data to retrieve a corresponding mapping entry in the SRAM. In case of an
L2P map cache miss, which means that the L2P entry does not exist in loaded L2P map data in the SRAM,
FTL loads the map data from NAND storage. In this L2P map cache miss case, performance
degradation is significant because the L2P map table must be loaded from the NAND before processing
the IO request. For example, in order to process a single 4KB size read request, two read operations (one
for map data loading and one for data loading) are required in the case of an L2P cache miss.

The overall read request processing procedure is depicted in Figure 4.1. The device fetches a read request
and looks up its L2P cache in the device SRAM. (Case1) In the case of an L2P cache miss, the L2P map
stored in NAND flash memory must be loaded before processing the requested IO. Loading the L2P
map takes hundreds of microseconds, and this time is added to the total processing time of requested IO.
(Case2) In the case of an L2P cache hit, the L2P entry is retrieved from the cached L2P map data in the
SRAM, and the IO request is processed quickly.

Since the L2P map can be only partially loaded in SRAM, whenever the L2P map cache misses, severe
performance degradation may occur. The worst-case scenario occurs if the L2P information for every
read operation does not exist in the L2P cache. I.e. L2P map thrashing occurs which significantly
degrades the storage performance.

The key concept of HPB is to upload the L2P map data in the host side memory. Currently, the host
memory size is multiple GBs of capacity, therefore utilizing several tens of MB of memory allocation for
the L2P map that could be allowed in many host systems. If the entire L2P map is loaded in the host side,
the host may send the L2P map data along with a read command. In such a case, the device doesn’t need
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

to search or upload the L2P map for identifying the physical address to access, therefore the read
operation can be processed quickly.

(Case 3) in Figure 4.1 shows the case of HPB. The host device driver caches the L2P map data in the host
memory (DRAM) and sends the corresponding L2P mapping information as well as logical address
information for the read command. Since the L2P information is already provided by the host together
with the read IO request, the device does not have to load the L2P entry from flash memory.

Figure 오류! 지정한 스타일은 사용되지 않습니다..1 - Legacy operation for Read command

HPB Configuration

The OEM may configure the total number of HPB regions and Start Pinned region and size of Pinned
Region during device configuration (before bConfigDescrLock is set as ‘1’) using Query Request
command.
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

HOST PERFORMANCE BOOSTER(HPB) FUNCTIONAL DESCRIPTION

The basic concept of HPB is to place cached L2P mapping information in the host system memory. When
a read command is issued from the host, the physical address corresponding to the logical address to read
data is delivered to the storage device together.

Overall HPB behavior


The overall behavior of HPB is depicted in Figure 5.1. The host may check whether the UFS device is
supporting the HPB feature or not. If the HPB feature is supported, then the host may allocate memory for
L2P mapping information. The storage device may notify the recommendation of active region from
where host is recommended to get the L2P mapping information. The host is expected to issue an HPB
read buffer command to read the L2P mapping information based on the device’s recommendation. The
device will send the L2P mapping information as response to the HPB read buffer command. When the
host needs to issue a read command, if the corresponding L2P mapping information exists in the host side
memory, then the host may issue an HPB read command with the corresponding physical address
information as well as logical address for the data to be read. Depending on the host side decision, the
host may issue an HPB read buffer command for any HPB region, even without the device’s
recommendation through RESPONSE UPIU.

Figure 오류! 지정한 스타일은 사용되지 않습니다..2 – (Example) overall HPB behavior

Checking HPB Supportability


HPB supportability is indicated by the bUFSFeaturesSupport device descriptor in Device Descriptor. The
maximum number of HPB LU supported by the device is indicated by bHPBNumberLU parameter in
Geometry Descriptor. HPB is not supported for well-known logical unit. In this version of the
specification, a single HPB Read supports the size of blocks between 4KB and 32KB, and HPB Read
with HPB Write Buffer supports the size of blocks between 4KB and 5112KB

See the session 7.1 Device Descriptor for HPB.


UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Configuring Logical Unit with HPB feature

The HPB mode can be enabled at the logical unit level by configuring the bLUEnable parameter of the
Unit Descriptor. If bLUEnable in Unit Descriptor is configured as “02h”, the Logical Unit has the HPB
feature. RPMB well known LU and Boot well known LU cannot be configured for HPB.

See the session 7.3 Device Descriptor Configurable parameters for HPB.

Format of HPB Region and SubRegion


The LBA address space of the logical unit that is configured with HPB mode is divided into HPB Regions.
The HPB Region is the unit of activation and de-activation of the HPB feature in that logical unit. The
HPB Region size is defined by bHPBRegionSize parameter of Geometry Descriptor. HPB Regions are
equally sized except for the last HPB Region in that logical unit. The last HPB Region may be smaller
than HPB Region size since the logical unit size may not be a multiple of the HPB Region size.

If the HPB Region is too big to transfer the L2P mapping information at a one time, the HPB Region can
be divided into HPB Sub-Regions. Otherwise, the HPB Region Size can be equal to the HPB Sub-Region
Size. The HPB Sub-Region size is defined by the bHPBSubRegionSize parameter of Geometry
Descriptor. The HPB Sub-Regions are equally sized except for the last HPB Sub-Region in that logical
unit . The last HPB Sub-Region may be smaller than the HPB Sub-Region size since the HPB Region size
may not be the multiple of HPB Sub-Region size.

Figure 오류! 지정한 스타일은 사용되지 않습니다..3 - HPB Region and Sub-region

HPB Entry
An HPB Entry consists of physical address information corresponding to a specific LBA address and its
related metadata. The size of the HPB Entry is 8 Bytes. A group of HPB entries corresponding to an HPB
Sub-Region is transferred together using a single HPB Read Buffer command.
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Allocating memory for HPB


The host is recommended to allocate an appropriate size of memory for the L2P map information for HPB
support.

For example, if the HPB Region size indicated by bHPBRegionSize is 2GB, the logical block size is 4KB,
the HPB Entry Size per LBA is 8 Bytes, and the maximum number of active HPB Regions indicated by
wDeviceMaxActiveHPBRegions is 10, then the appropriate memory size allocated in host is 40MB (=
(2GB/4KB) *8B*10) for storing L2P mapping information.

If the HPB Region size is smaller, then HPB entries for more numbers of active HPB Regions can be
stored for the same amount of host memory for HPB.

If the HPB Region size is smaller, like 32MB, the logical block size is 4KB, the HPB Entry Size per LBA
is 8 Bytes, and the total number of active HPB Regions for all logical units is 640, then the appropriate
memory size is also 40MB (= (32MB/4KB) * 8B * 640) for storing L2P mapping information.

If the allocated host memory is not enough compared to the above calculations, then the full performance
advantage of HPB may be degraded.

Active Region & Inactive Region


A SubRegion is called an Active SubRegion while the host keeps L2P map data which is uploaded using
the HPB Read Buffer command. An Active Region is the Region which includes one or more HPB
SubRegions that the host uploaded L2P map data into using the HPB Read Buffer command.

After the host’s power up, all regions may be initialized as inactive Regions in the host. If many read
accesses for a specific SubRegions are monitored by the storage device, then those SubRegions’
information may be delivered as recommended Active SubRegions using the HPB Sense data field in
RESPONSE UPIU. If the host reads the L2P map data for the specific SubRegion from the device, the
host is expected to manage the SubRegion as Active SubRegion. If anyone SubRegion is active, then the
Region including the SubRegions is called the Active Region.

An Inactive SubRegion is an HPB SubRegion for which the host does not keep the L2P map data. Due
to the fundamental characteristics of NAND, sometimes data needs to be moved to another physical area
for internal maintenance operations. Garbage collection and Read Reclaim operations are examples of
such internal maintenance operations. In such cases, the specific HPB Region’s L2P map data could be
invalid. When there are many write operations for the Region, this also could make many of the Region’s
L2P map data invalid. In such cases, the device may send recommended inactive HPB Region
information to the host using HPB Sense data field in RESPONSE UPIU or may send recommended
active SubRegion information to host.

In order to avoid duplicating recommendation about active subregions and inactive regions,
recommended SubRegion information, for example bitmap of 1-bit for subregion or other advanced data
structure, indicating whether the L2P map data for each subregion is transferred or not may be used in the
device side. If a device stores the recommended SubRegion information before the device is powered off,
the device may restore that information when the device is powered up. Even if a device doesn’t store the
recommended SubRegion information before the device's power off, after a device’s power up, the device
monitors the access frequency for each SubRegion during a statistically meaningful number of IOs before
starting to recommend a SubRegion as activate SubRegion. During that period, the host will use the HPB
read command if there is a L2P map data for the read command. Based on receiving the HPB read
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

commands, the device can rebuild which SubRegion's L2P map data was transferred to the host before.

Notifying Active/Inactive Region information and Activation by loading L2P map data

When RESPONSE UPIU is issued from the storage device, the RESPONSE UPIU for a successfully
completed command may be used to notify the active region recommendation and inactive region
recommendation.

After receiving inactive regions recommendation, the host is recommended to remove the L2P map data
for the inactive HPB Regions since the L2P map in the host side is not valid anymore. After receiving
active SubRegions recommendation information, the host may send HPB Read Buffer command to load
the L2P map data for that SubRegion.

Figure 오류! 지정한 스타일은 사용되지 않습니다..4 – Activating HPB SubRegion and
Inactiving HPB Region

The Device may give inactive region recommendation if some monitored region is not accessed frequenty,
so another region is able to be recommended as a new active region recommendation.

If the host activated more HPB Regions that exceed the value of wLUMaxActiveHPBRegions by sending
HPB Read Buffer command, the host may decide an HPB Region to be inactivated by removing the HPB
entries for that HPB Region to take care of the newly activated HPB Region.

See Section 6 for the detailed CDB format for the HPB Read buffer command, HPB Read command and
Response UPIU.

Loading L2P map data

HPB Read Buffer Command is used for loading the L2P map data from storage device. The HPB Read
Buffer Command includes the parameters to indicate target HPB Sub-Region information to upload the
L2P map data from storage device. As shown in Figure 5.4, as a response to the HPB Read Buffer
Command, the storage device shall send the L2P map data using DATAIN UPIU. The L2P map data is
delivered using the data segment area of the DATA IN UPIU.
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Figure 오류! 지정한 스타일은 사용되지 않습니다..5 – HPB Read Buffer Command Behavior

Reading data using HPB Read command


The HPB Read Command is used to read data faster by sending L2P map data corresponding to logical
block address. Since the physical address information is incorporated in the L2P map data already, the
device can access the target physical NAND directly without searching and uploading L2P map data. This
will improve the read performance by removing the need to access the NAND for uploading L2P map
data into the internal SRAM in device.

Figure 오류! 지정한 스타일은 사용되지 않습니다..6 – HPB Read Command Behavior

Even though the host already has the L2P map data to access the LBA, i.e the activated SubRegion, the
host may send a normal read command without utilizing HPB read command. In such cases, there is no
performance improvement, since the command will be processed as a normal read command on the
device side.

See the section 6.2 for the detailed CDB format for the HPB Read command.

Informing Active SubRegion and Inactive Region

Any response that shows ‘GOOD’ status can be used to notify the event that the HPB information update
is needed. If the status is “GOOD”, the data segment length is 14h, and sense data area is used for
indicating which HPB Region is recommended to be active and which HPB Regions should be inactive.
After receiving HPB Active SubRegion recommendation information, the host may issue an HPB read
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

buffer command to request the L2P map for the SubRegion. If the host receives the HPB Inactive Region
recommendation information, the host may remove all the L2P map data included in that Region.
See the section 6.4 for the detailed CDB format of Response UPIU for HPB.

Pinned Region
The Pinned region is the region which is configured during the LU configuration by host which is
supposed to be activated by host. The host can configure HPB Regions to be pinned for the HPB entries
in those HPB Regions to be active always. The usage of Pinned Region is for rarely updated address
spaces, like the OS installed area. Therefore, upon host power up host may send HPB READ BUFFER to
read L2P map data for the pinned region.

The wHPBPinnedRegionStartIdx parameter indicates the starting index of Pinned Region, and the
wNumHPBPinnedRegions parameter indicates the number of pinned Regions.

Figure 5.6 shows how a pinned region can be configured. For example, LU0 and LU1 are used as boot
logical units, and LU3 is configured as an HPB logical unit. wHPBPinnedRegionStartIdx parameter and
wNumHPBPinnedRegions are used to indicate the pinned region.

Figure 오류! 지정한 스타일은 사용되지 않습니다..7 – (Example) Pinned Region

Due to the fundamental characteristics of NAND, data in the Pinned Region also needs be moved to the
other physical area for internal maintenance operations. Garbage collection and Read Reclaim operations
are examples of such internal maintenance operations. In such cases, the device will send active
SubRegion recommendation to the host. After receiving active regions recommendation for the Pinned
Region, the host is expected to issue an HPB read buffer command to update the L2P map data for that
Pinned Regions.

Prefetching HPB Entries

There are two ways to perform HPB read operation. One is that the host issues only a HPB Read. In this
case, the device will perform the HPB read operation using a single HPB entry. Another is that if the host
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

need to perform the HPB read operation using multiple HPB entries, the host shall issue the HPB Write
Buffer which is used to transfer HPB entries, before issuing the HPB Read command. The HPB Write
Buffer will be used to pre-fetch the HPB entries located the host side to the device. The HPB Write Buffer
has DATA OUT UPIUs to transfer multiple HPB entries from the host to the device.

The supported block count in HPB read operation is vendor specific. In this version of the specification, a
single HPB Read supports the size of blocks between 4KB and 32KB, and HPB Read with HPB Write
Buffer supports the size of blocks between 4KB and 512KB.

A relation between HPB Write Buffer and HPB Read


The HPB Read has only one HPB Write Buffer and there is a relation between the HPB Read and HPB
Write Buffer. The relation is indicated by a HPB Read ID which is set in GROUP NUMBER of each
commands. If the HPB Read IDs of each commands have same value, The HPB entries transferred by the
HPB Write Buffer will be used to perform the HPB read operation. The HPB Read ID shall be set a value
between 0 and 127 and it shall have a unique value while commands related a HPB operation are
processing. It is the host’s responsibility to generate a unique value for the HPB Read ID.

Figure 5.8 shows an example of HPB command sequence and relation.


Case 1: HPB Write Buffer (HPB Read ID=1) and HPB Read (HPB Read ID=1) issued continuously, and
HPB read operation will be performed using the received HPB entries.

Case 2: Another HPB command (HPB Read ID=3) issued between HPB Write Buffer (HPB Read ID=2)
and HPB Read (HPB Read ID=2), and HPB read operation will be performed using the received HPB
entries.

Case 3: HPB Read (HPB Read ID=3) issued before issuing HPB Write Buffer (HPB Read ID=3). In this
case, HPB Read will be performed as normal read operation and HPB Write Buffer will also be
performed but the received HPB entries may be ignored.

Figure 오류! 지정한 스타일은 사용되지 않습니다..8 – (Example) The relation of each HPB
commands

HPB read operation with HPB Write Buffer


Figure 5.9 show how the HPB Read with HPB Write Buffer can be processed. For example, the host will
continuously issue the HPB Write Buffer and HPB Read. In this sequence of commands, there are two
phases for operating HPB Read using multiple HPB entries. Phase 1 is a step to transfer multiple HPB
entries from the host to the device. In this step, the host issues the HPB Write Buffer and the device will
receive and keep the HPB entries. Phase 2 is a step to read blocks using the received HPB entries. In this
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

step, the device will check if received HPB entries which has same HPB Read ID with HPB Read existed,
and the device will perform the HPB read operation using the received HPB entries.

Figure 오류! 지정한 스타일은 사용되지 않습니다..9 – (Example) HPB Write Buffer and HPB
Read Flow
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

COMMAND AND RESPONSE FOR HPB

HPB Read Buffer command

Figure 6.1 shows detailed CDB format of HPB Read Buffer Command.
Bit
Byte
7 6 5 4 3 2 1 0
0 OPERATION CODE (F9h)
1 BUFFER ID
2
… BUFFER ID SPECIFIC FIELD (BSF)
8
9 CONTROL = 00h

Figure 오류! 지정한 스타일은 사용되지 않습니다..10 – CDB format of HPB Read Buffer
Command
BUFFER ID
• Following functions are defined in this specification specifically for UFS application as
indicated in Table 6.1.

Table 오류! 지정한 스타일은 사용되지 않습니다..1 — Functions for each Buffer ID
Functions
Buffer ID
HPB Read Buffer (F9h) HPB Write Buffer (FAh)
0 Reserved Reserved
Inform that a HPB Region is
inactivated in host
Read HPB Entries for HPB
1 (In this version of the
SubRegion
specification, it is not
supported)
Prefetch HPB Entries from the
2 Reserved
host to the device

BUFFER ID SPECIFIC FIELD (BSF)


• The BSF field is a Buffer ID Specific Field. The BSF fields will be defined for each
specific Buffer ID.

Figure 6.2 shows detailed BUFFER ID SPECIFIC FIELD format of Buffer ID = 1.

Bit
Byte
7 6 5 4 3 2 1 0
2 (MSB) HPB REGION
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

3 (LSB)
4 (MSB)
HPB SUB REGION
5 (LSB)
6 (MSB)
… ALLOCATION LENGTH
8 (LSB)

Figure 오류! 지정한 스타일은 사용되지 않습니다..11 – BSF format of Buffer ID = 1


HPB Region
• The index of the HPB Region from which the L2P map is uploaded.
𝐿𝑈 𝑠𝑖𝑧𝑒 𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑡𝑒𝑑 𝑏𝑦 𝑞𝐿𝑜𝑔𝑖𝑐𝑎𝑙𝐵𝑙𝑜𝑐𝑘𝐶𝑜𝑢𝑛𝑡
• Valid HPB Region is (0 ~ (Ceiling( ) - 1) )
𝑅𝑒𝑔𝑖𝑜𝑛 𝑠𝑖𝑧𝑒 𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑡𝑒𝑑 𝑏𝑦 𝑏𝐻𝑃𝐵𝑅𝑒𝑔𝑖𝑜𝑛𝑆𝑖𝑧𝑒

HPB SubRegion
• The index of the HPB SubRegion from which the L2P map is uploaded.
𝑏𝐻𝑃𝐵𝑅𝑒𝑔𝑖𝑜𝑛𝑆𝑖𝑧𝑒
• Valid HPB SubRegion is (0 ~ (𝑏𝐻𝑃𝐵𝑆𝑢𝑏𝑅𝑒𝑔𝑖𝑜𝑛𝑆𝑖𝑧𝑒 - 1) )

Allocation Length
• Valid Allocation length value is less or equal to the value of (HPB SubRegion size /
Logical Block Size (4 KBytes)) x HPBEntry size(=8 Bytes).

If the requested field of the HPB Region or HPB SubRegion is out of range, then the device shall
terminate the command by sending RESPONSE UPIU with CHECK CONDITION status, with the
SENSE KEY set to ILLEGAL REQUEST, and the additional sense code set to INVALID FIELD IN
CDB.

If L2P map data is in the process of updating due to its internal maintenance work, for example Garbage
collection, the device may terminate the HPB Read Buffer command by sending RESPONSE UPIU with
CHECK CONDITION status, with the SENSE KEY set to ILLEGAL REQUEST, and the additional
sense code set INVALID HPB ENTRIES SENT(0601h). In this case, the host may retry the HPB Read
Buffer command for at least N seconds (N: 5 seconds is recommended for the device to do internal
garbage correction) for the device to complete its internal work.

HPB Read Command


Figure 6.3 shows a detailed CDB format of HPB Read Command.
Bit
Byte
7 6 5 4 3 2 1 0
0 OPERATION CODE (88h)
1 RDPROTECT = 000b DPO FUA Reserved FUA_NV=0b Reserved
2 (MSB)
… LOGICAL BLOCK ADDRESS
5 (LSB)
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

6
… HPB ENTRY
13
EXTENDED
14 GN_EXT_EN GROUP NUMBER
GROUP NUMBER
15 TRANSFER LENGTH

Figure 오류! 지정한 스타일은 사용되지 않습니다..3 – CDB Format of HPB Read Command

LOGICAL BLOCK ADDRESS


• Address of the first logical block

HPB ENTRY
• HPB Entry of the first logical block. HPB Entry embodies Physical address information
and meta data for verifying its integrity. The detailed format of HPB Entry is vendor
specific.

GN_EXT_EN (Group Number Extension Enable)


• “0” = specific that the GROUP NUMBER shall not be extended with EXTENDED
GROUP NUMBER.
“1” = specific that the GROUP NUMBER shall be extended with EXTENDED GROUP
NUMBER.

EXTENDED GROUP NUMBER


• The EXTENDED GROUP NUMBER field can be used to extend the size of the GROUP
NUMBER. This field shall be valid if the value of the GN_EXT_EN (Group Number
Extension Enable) is one.

GROUP NUMBER
• Notifies the Target device that the data linked to a ContextID:
Group Number Extension
Group Number
Extended
Extension Group Number
Group Description
Enable Number of IDs
Number
(bit7) (bit4~bit0)
(bit6~bit5)
Default, no Context ID is associated with
0 (Disabled) 0 0 1
the read operation.
00001b ~ Context ID. (XXXX from 0001b to 1111b ‐
0 (Disabled) 0 15
01111b Context ID value)
0 (Disabled) 0 10000b 1 Reserved
Context ID is associated with the HPB
0 (Disabled) 0 10001b 1
Read only
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

10010b ~
0 (Disabled) 0 13 Reserved
11111b
Context ID is associated with the HPB
Read and HPB Write Buffer.
Group Number(bit4~bit0) shall be extended
with Extended Group Number (bit6~bit5) if
00000b ~
1 (Enabled) 00b ~ 11b 128 the value of Group Number Extension
11111b
Enable is equal to one (Enabled). Group
Number Extension has 128 IDs (0000000b:
HPB Read ID 0 ~ 1111111b: HPB Read ID
127).
Figure 오류! 지정한 스타일은 사용되지 않습니다..4 – Group Number Extension

In case the GROUP NUMBER is set to a reserved value, the operation shall fail and a
status response of CHECK CONDITION will be returned along with the sense key set to
ILLEGAL REQUEST.

TRANSFER LENGTH
• Number of contiguous logical blocks of data. In this version of the specification, a single
HPB Read supports the size of blocks between 4KB and 32KB, and HPB Read with HPB
Write Buffer supports the size of blocks between 4KB and 5112KB

HPB Write Buffer command

If the host wants to pre-fetch HPB entries from the host to the device, the host shall issue a HPB Write
Buffer with Buffer ID = 2.

Figure 6.5 shows detailed CDB format of HPB Write Buffer Command. For detailed information about
the BSF (Buffer ID Specific Field), refer to the description of the HPB Read Buffer.
Bit
Byte
7 6 5 4 3 2 1 0
0 OPERATION CODE (FAh)
1 BUFFER ID
2
… BUFFER ID SPECIFIC FIELD (BSF)
8
9 CONTROL = 00h
Figure 오류! 지정한 스타일은 사용되지 않습니다..5– CDB format of HPB Write Buffer
Command

BUFFER ID
• Refer to the description of the HPB Read Buffer.

Figure 6.6 shows detailed BUFFER ID SPECIFIC FIELD format of Buffer ID = 1. This BSF format is
valid in the HPB Write Buffer. In this version of the specification, if the Buffer ID of the HPB Write
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Buffer is set to 1 then the device shall terminate the command by sending RESPONSE UPIU with
CHECK CONDITION status, with the SENSE KEY set to ILLEGAL REQUEST, and the additional
sense code set to INVALID FIELD IN CDB.

Bit
Byte
7 6 5 4 3 2 1 0
2 (MSB)
HPB REGION
3 (LSB)
4
Reserved
5
6
… Reserved
8

Figure 오류! 지정한 스타일은 사용되지 않습니다..6 – BSF format of Buffer ID = 1


HPB Region
• The index of the HPB Region from which the L2P map is uploaded.
𝐿𝑈 𝑠𝑖𝑧𝑒 𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑡𝑒𝑑 𝑏𝑦 𝑞𝐿𝑜𝑔𝑖𝑐𝑎𝑙𝐵𝑙𝑜𝑐𝑘𝐶𝑜𝑢𝑛𝑡
• Valid HPB Region is (0 ~ (Ceiling( 𝑅𝑒𝑔𝑖𝑜𝑛 𝑠𝑖𝑧𝑒 𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑡𝑒𝑑 𝑏𝑦 𝑏𝐻𝑃𝐵𝑅𝑒𝑔𝑖𝑜𝑛𝑆𝑖𝑧𝑒 ) - 1) )

If the requested field of the HPB Region is out of range, then the device shall terminate the command by
sending RESPONSE UPIU with CHECK CONDITION status, with the SENSE KEY set to ILLEGAL
REQUEST, and the additional sense code set to INVALID FIELD IN CDB.

Figure 6.7 shows detailed BUFFER ID SPECIFIC FIELD format of Buffer ID = 2.

Bit
Byte
7 6 5 4 3 2 1 0
2 (MSB)
… LOGICAL BLOCK ADDRESS
5 (LSB)
EXTENDED
6 GN_EXT_EN GROUP NUMBER
GROUP NUMBER
7 (MSB)
PARAMETER LIST LENGTH
8 (LSB)

Figure 오류! 지정한 스타일은 사용되지 않습니다..7 – BSF format of Buffer ID = 2

LOGICAL BLOCK ADDRESS


• Address of the first logical block

GN_EXT_EN (Group Number Extension Enable)


For detailed information refer to the description of the GN_EXT_EN in the HPB Read.
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

EXTENDED GROUP NUMBER


For detailed information refer to the description of the EXTENDED GROUP NUMBER
in the HPB Read.

GROUP NUMBER
• The relation between HPB Write Buffer and HPB Read shall be indicated by the value of
the GROUP NUMBER. For detailed information refer to the description of the GROUP
NUMBER in the HPB Read.

PARAMETER LIST LENGTH


• Specifies length in bytes of the PARAMETER LIST that the Application Client will
transfer to the Device Server. A PARAMETER LIST of zero specifies that no data shall
be transferred, this shall not be considered an error and in this case the device shall not
send RTT UPIU.

Response UPIU for HPB

Figure 6.8 shows a detailed CDB format of Response UPIU for HPB.

If the Data Segment Length of the Response UPIU is 14h and the Status field is “00h: GOOD”, The HPB
Sense Data is located in the Data Segment of Response UPIU. It indicates that the host needs to request
HPB Information update. Detailed information will be updated refers to HPB Sense Data.

A maximum of two HPB SubRegions for the host to read using HPB Read Buffer and a maximum of two
HPB Regions for the host to remove from the HPB Memory may be indicated. Activation is managed in
the unit of SubRegion. However, in case of inactivation, management is done in the unit of HPB Region.
The number of valid active SubRegions is indicated by Active HPB SubRegion Count field (K+6 bytes).
The number of inactive Regions is indicated by Inactive HPB Region Count field (K+7 bytes).

Response UPIU
0 1 2 3
Xx10 0001b Flags LUN Task Tag
4 5 6 7
IID | CST Reserved Response Status (00h: GOOD)
8 9 10 (MSB) 11 (LSB)
EHS Length (00h) Device Info (00h) Data Segment Length (14h)
12 (MSB) 13 14 15 (LSB)
Residual Transfer Count
16 17 18 19
20 21 22 23
24 25 26 27
28 29 30 31
Header E2ECRC (omit if HD=0)
K (MSB) K+1 (LSB) K+2 K+3
Sense Data Length Descriptor Type Additional Length
(12h) (80h) (10h)
K+4 (MSB) K+5 (LSB) K+6 K+7
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Active HPB Region Inactive HPB Region


HPB Type Reserved
Count Count
K+8 (MSB) K+9 (LSB) K+10 (MSB) K+11 (LSB)
Active HPB Region 0 HPB SubRegion of [k+8 : K+9]
K+12 (MSB) K+13 (LSB) K+14 (MSB) K+15 (LSB)
Active HPB Region 1 HPB SubRegion of [k+12 : K+13]
K+16 (MSB) K+17 (LSB) K+18 (MSB) K+19 (LSB)
Inactive HPB Region 0 Inactive HPB Region 1
Data E2ECRC (omit if DD=0)

Figure 오류! 지정한 스타일은 사용되지 않습니다..8 - RESPONSE UPIU indicating HPB
Active/Inactive Region and SubRegion

The details of each field in HPB Sense Data are described in Table 6.2

Table 오류! 지정한 스타일은 사용되지 않습니다..2 — HPB Sense Data


Byte HPB Information
[K : K+1] Sense Data Length (12h)
Descriptor Type (80h – Vendor Specific Sense Data Descriptor Format in SPC)
[K+2]
This Sense Data is defined as HPB Sense Data in UFS Spec.
[K+3] Additional Length (10h)
HPB Operation
0h: None,
[K+4]
1h: Request for HPB Region Update
Others : Reserved for future extension
[K+5] Reserved
Active HPB Count. For example, 1h means only [K+8:K+11] is valid. 2h means that
[K+6]
[K+8:K+11] and [K+12:K+15] are valid.
Inactive HPB Count. For example, 1h means only [K+16:K+17] is valid. 2h means that
[K+7]
[K+16:K+17] and [K+18:K+19] are valid.
[K+8:K+11] 1st HPB Region and HPB SubRegion that Host is recommended to read L2P map data
[K+12:K+15] 2nd HPB Region and HPB SubRegion that Host is recommended to read L2P map data
1st HPB Region to be inactivated. This field is valid only when the Bit[6:0] of Inactive
[K+16:K+17]
HPB Count is ‘1h’ or ‘2h’.
2nd HPB Region to be inactivated. This field is valid only when the Bit[6:0] of Inactive
[K+18:K+19]
HPB Count is ‘2h’.
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

DESCRIPTOR FOR HPB

Device Descriptor for HPB

Query Request UPIU setting: DESCRIPTOR IDN=00h, INDEX=00h, and SELECTOR=01h

HPB support is specified by Bit7 of bUFSFeaturesSupport. HPB version is indicated by wHPBVersion.

Table 오류! 지정한 스타일은 사용되지 않습니다..1 — Device Descriptor for HPB
DEVICE DESCRIPTOR

User
Offset Size Name MDV (1) Description
Conf.

00h 1 bLength 57h No Size of this descriptor


Unit Descriptor 0 Base Offset
1Ah 1 bUD0BaseOffset 12h No Offset of the Unit Descriptor 0 configurable
parameters within the Configuration Descriptor.
Unit Descr. Config. Param. Length
1Bh 1 bUDConfigPLength 1Ah No Total size of the configurable Unit Descriptor
parameters.
UFS Features Support
This field indicates which features are
bUFSFeaturesSup Device supported by the device. A feature is supported
1Fh 1 No if the related bit is set to one.
port specific
bit[0]~bit[6] : see the UFS specification
bit[7]: Host Performance Booster(HPB)
HPB Specification Version
bit[15:8] = Major Version in BCD format
40h 2 wHPBVersion 0200h No bit[7:4] = Minor Version in BCD format
bit[3:0] = Version suffix in BCD format
Example: version 1.2.3 = 0123h
42h 13 Reserved Reserved
Extended UFS Features Support
This field indicates which features are
supported by the device. A feature
dExtendedUFSFeat Device is supported if the related bit is set to one.
4Fh 4 No
uresSupport specific bit[0]~bit[6] : see the UFS specification
bit[7]: Host Performance Booster(HPB)
bit[8]: Turbo Write
bit[9~31] : reserved
53h 4 Reserved Reserved for the Turbo Write
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

DEVICE DESCRIPTOR

User
Offset Size Name MDV (1) Description
Conf.

NOTE 1 The column “MDV” (Manufacturer Default Value) specifies parameter values after device manufacturing.
Some parameters may be configured by the user writing the Configuration Descriptor.
NOTE 2 “User Conf.” column specifies which fields can be configured by the user writing the Configuration Descriptor:
“Yes” means that the field can be configured, “No” means that the field is a capability of the device and cannot be
changed by the user. The desired value shall be set in the equivalent parameter of the Configuration Descriptor.

Unit Descriptor for HPB

Query Request UPIU setting: DESCRIPTOR IDN=02h, INDEX=00~07h, and SELECTOR=01h

Table 7.2 shows the Unit Descriptor for HPB.

Table 오류! 지정한 스타일은 사용되지 않습니다..2 — Unit Descriptor for HPB
UNIT DESCRIPTOR
Offs MDV User
Size Name (1) Description
et Conf. (2)
00h 1 bLength 2Dh No Size of this descriptor
Logical Unit Enable
00h: Logical Unit disabled
03h 1 bLUEnable 00h Yes 01h: Logical Unit enabled
02h: Logical Unit enabled with HPB function
Others: Reserved
Maximum Number of Active HPB Regions
Maximum number of HPB Active Regions that is
supported by the logical unit.
Since wLUMaxActiveHPBRegions number
includes the number of
wNumHPBPinnedRegions, the value of
wLUMaxActiveHPBRegions shall be greater or
equal to the value of wNumHPBPinnedRegions.
wLUMaxActiveH Otherwise, the query request shall fail and the
23h 2 00h Yes
PBRegions Query Response field shall be set to “Invalid
Value (FAh)”.
During the configuration time of this descriptor,
the sum of this maximum number of active HPB
Regions of all LUs shall not exceed the
wDeviceMaxActiveHPBRegions in HPB
Geometry Descriptor. If exceeded, the query
request shall fail and the Query Response field
shall be set to “Invalid Value (FAh)”.
wHPBPinnedRe
25h 2 0000h Yes HPB Pinned Region Start Offset
gionStartIdx
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

UNIT DESCRIPTOR
Offs MDV User
Size Name (1) Description
et Conf. (2)
Number of HPB Pinned Regions
Number of HPB pinned Regions assigned to the
HPB logical unit.
Value ‘0’ means that there is no pinned Region
for this LU.
wNumHPBPinn During the configuring time of this descriptor, the
27h 2 0000h Yes sum of the number of HPB Pinned Regions and
edRegions
the maximum number of active HPB Regions of
all LUs shall not exceed the
wDeviceMaxActiveHPBRegions in HPB
Geometry Descriptor. If exceeded, the query
request shall fail and the Query Response field
shall be set to “General failure”.
29h 4 Reserved Reserved for the Turbo Write

NOTE 1 The column “MDV” (Manufacturer Default Value) specifies parameter values after device manufacturing.
Some parameters may be configured by the user writing the Configuration Descriptor.
NOTE 2 “User Conf.” column specifies which fields can be configured by the user writing the Configuration Descriptor:
“Yes” means that the field can be configured, “No” means that the field is a capability of the device and cannot be
changed by the user. The desired value shall be set in the equivalent parameter of the Configuration Descriptor.

Table 오류! 지정한 스타일은 사용되지 않습니다..3 — Configuration Descr. Header and Device
Descr. Conf. parameters (INDEX = 00h)
Configuration Descriptor Header and Device Descriptor configurable parameters
Offset Size Name MDV Description
00h 1 bLength E2h Size of this descriptor
10h 2 Reserved Reserved for the Turbo Write

Table 오류! 지정한 스타일은 사용되지 않습니다..4 — Configuration Descr. Header with
INDEX = 01h/02h/03h
Configuration Descriptor Header and Device Descriptor configurable parameters
Offset Size Name MDV Description
00h 1 bLength E2h Size of this descriptor
10h 2 Reserved

Unit Descriptor Configurable Parameters for HPB

Query Request UPIU setting: DESCRIPTOR IDN=01h, INDEX=00~03h, and SELECTOR=01h

Table 7.3 shows the Unit Descriptor Configurable Parameters for HPB.
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Table 오류! 지정한 스타일은 사용되지 않습니다..5 — Unit Descriptor Configurable


Parameters for HPB

Unit Descriptor configurable parameters


Offset Size Name Description
Logical Unit Enable
00h: Logical Unit disabled
00h 1 bLUEnable 01h: Logical Unit enabled
02h: HPB Logical Unit enabled
Others: Reserved
wLUMaxActiveHPB Total number of HPB Regions assigned to the HPB logical
10h 2
Regions unit
wHPBPinnedRegio
12h 2 HPB Pinned Region Start Offset
nStartIdx
wNumHPBPinnedR Number of HPB pinned Regions assigned to the HPB logical
14h 2
egions unit.
16h 4 Reserved Reserved for the Turbo Write

Attributes
Table 7.7— Attributes
ATTRIBUTES
Type1
Access # Ind.2
IDN Name Size MDV4 Description Notes
Property # Sel.3

Supported Vendor Feature Options


Bit map which represents the
dSupport supported vendor feature options.
edVendor Read 4
FFh D 01h Bit0: The descriptors related HPB Note1
FeatureO only Bytes
ptions shall be accessed using Query
Request with Selector = 1.
Others: Reserved
Note1: Operations to access this field shall request with Selector = 00h or 01h in Query Request.
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

Geometry Descriptor for HPB

Query Request UPIU setting: DESCRIPTOR IDN=07h, INDEX=00h, and SELECTOR=01h


Table 7.4 shows the Geometry Descriptor for HPB.

Table 오류! 지정한 스타일은 사용되지 않습니다..6 — Geometry Descriptor for HPB
GEOMETRY DESCRIPTOR
Offset Size Name Value Description
00h 1 bLength 58h Size of this descriptor
HPB Region size, which can be calculated as in the
Device following (in bytes)
48h 1 bHPBRegionSize
specific
HPB Region size = 512B x 2bHPBRegionSize
Maximum number of HPB LU supported by the device
00h: HPB is not supported by the device.
Device
49h 1 bHPBNumberLU 01h ~ 20h: Maximum number of HPB LU supported by
specific
the device
Others : Reserved
HPB SubRegion size, which can be calculated as in the
following (in bytes) and shall be a multiple of Logical Block
bHPBSubRegion Device size
4Ah 1
Size specific HPB SubRegion size = 512B x 2bHPBSubRegionSize
bHPBSubRegionSize shall not exceed the
bHPBRegionSize.

Maximum number of Active HPB Regions that is supported


by the device.
The value shall not exceed maximum number of HPB
wDeviceMaxActiv Device Regions which is calculated by
4Bh 2 Maximum number of HPB Regions =
eHPBRegions specific
𝑁𝑒𝑡 𝐷𝑒𝑣𝑖𝑐𝑒𝐶𝑎𝑝𝑎𝑐𝑖𝑡𝑦
CEILING(2𝑏𝐻𝑃𝐵𝑅𝑒𝑔𝑖𝑜𝑛𝑆𝑖𝑧𝑒 𝑥 512) , where the
NetDeviceCapacity is size calculated by the value of
{ qTotalRawDevice Capacity – size of Boot LUs }.
4Dh 2 Reserved Reserved
4Fh 9 Reserved Reserved for the Turbo Write
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

ANNEX A (INFORMATIVE) HPB HOST GUIDELINE

Host Behavior of HPB Device reset

Normally, it is observed that more than 95% of device time is in the idle state, and the host could power
off the storage device for reducing power consumption. For example, there could be many power-on/off
cycles, like 100~1000 times, in a very short time to reduce the power consumption. Therefore, in the case
of device Power-on/off (including HW Reset, End Point Reset, LU Reset, Hibernation cases), the host is
recommended to keep the L2P map information, so the host doesn’t need to re-load L2P data.

When host needs to read data located in a LBA which is overwritten after reading L2P map data, normal
SCSI Read (not HPB Read) CMD is recommended to be used by host.

After the host receives Response UPIU with HPB Info for HPB SubRegions, the host doesn’t need to
send HPB Read CMD for that SubRegions until completing HPB Entry table update by Read Buffer
CMD.

If the device wants to inform the host to replace the L2P map data for the same SubRegion which was
previously transferred, then the device may transfer the same active SubRegion recommendation to the
host. Therefore, if the host receives the active request to the same sub-region which has been already
cached by transferring L2P map data previously, then the host is expected to issue HPB Read Buffer for
that sub-region to replace the L2P map data.
UFS HPB SPECIFICATION V2.0.0G R1 CONFIDENTIAL

SAMSUNG

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy