High-speed gear switch during high-speed link startup
By having the host controller manage high-speed gear switching during link startup in UFS systems, the process is expedited, reducing boot-up times and eliminating delays associated with interrupt processing and system scheduling.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-30
- Publication Date
- 2026-03-05
AI Technical Summary
The process of switching high-speed gears in data storage devices like UFS systems is time-consuming due to the need for multiple device management entity commands and interrupt service routines, which delays boot-up times, especially during heavy CPU loading.
The host controller initiates the power mode change to switch the link to a new high-speed gear during the high-speed link startup, utilizing capabilities exchanged during initialization, thereby bypassing the need for additional capability exchanges and reducing system scheduling delays.
This approach significantly reduces boot-up time by eliminating interrupt processing and system scheduling, potentially cutting boot-up time by 30-40 ms in full boot-up chains.
Smart Images

Figure CN2024115710_05032026_PF_FP_ABST
Abstract
Description
HIGH-SPEED GEAR SWITCH DURING HIGH-SPEED LINK STARTUPTECHNICAL FIELD
[0001] The technology discussed below relates generally to data storage devices, and more particularly, to high-speed link startup of data storage devices.
[0002] INTRODUCTION
[0003] Data storage devices (DSDs) -such as solid state devices (SSDs) with non-volatile memories (NVMs) -are utilized in a wide variety of devices in stationary and mobile computing environments. Examples of such devices include desktop computers, portable notebook computers, tablets, portable hard disk drives, mobile devices, cellular phones, portable media players, wearable devices, etc. One example of SSDs is the Universal Flash Storage (UFS) device. A UFS device is commonly used as data storage in mobile devices (e.g., mobile phones, smartphones, tablets, vehicles, drones, portable computers, etc. ) because the UFS device can provide high performance and low power storage memory. Specifications for UFS and its associated UFS Host Controller Interface (UFSHCI) are included in the Joint Electron Device Engineering Council (JEDEC) standards. The UFS Host Controller is responsible for managing communication between a host and UFS devices, for example, data transfer between the host and the UFS device, ensuring efficient and reliable storage operations.
[0004] BRIEF SUMMARY OF SOME EXAMPLES
[0005] The following presents a summary of one or more aspects of the present disclosure, in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated features of the disclosure, and is intended neither to identify key or critical elements of all aspects of the disclosure nor to delineate the scope of any or all aspects of the disclosure. Its sole purpose is to present some concepts of one or more aspects of the disclosure in a form as a prelude to the more detailed description that is presented later.
[0006] In one example, an apparatus at a host is provided. The apparatus includes an interconnect circuit configured to perform a high-speed link startup to initialize a link between the host and a device to an initial high-speed gear and a host controller configured to manage the high-speed link startup and to initiate a power mode change to switch the link to a new high-speed gear based on capabilities exchanged between the host and the device during the high-speed link startup, wherein the new high-speed gear is greater than the initial high-speed gear.
[0007] Another example provides a method operable at a host. The method includes performing a high-speed link startup to initialize a link between the host and a device to an initial high-speed gear, and initiating, by a host controller of the host, a power mode change to switch the link to a new high-speed gear based on capabilities exchanged between the host and the device during the high-speed link startup, wherein the new high-speed gear is greater than the initial high-speed gear.
[0008] Another example provides an apparatus at a host including means for performing a high-speed link startup to initialize a link between the host and a device to an initial high-speed gear, and means for initiating a power mode change to switch the link to a new high-speed gear based on capabilities exchanged between the host and the device during the high-speed link startup, wherein the new high-speed gear is greater than the initial high-speed gear.
[0009] These and other aspects will become more fully understood upon a review of the detailed description, which follows. Other aspects, features, and examples will become apparent to those of ordinary skill in the art upon reviewing the following description of specific exemplary aspects in conjunction with the accompanying figures. While features may be discussed relative to certain examples and figures below, all examples can include one or more of the features discussed herein. In other words, while one or more examples may be discussed as having certain features, one or more of such features may also be used in accordance with the various examples discussed herein. Similarly, while examples may be discussed below as device, system, or method examples, it should be understood that such examples can be implemented in various devices, systems, and methods.BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a diagram depicting an apparatus employing a system-on-chip (SoC) according to some aspects.
[0011] FIG. 2 is a diagram illustrating an apparatus including a Universal Flash Storage (UFS) system in accordance with some aspects of the disclosure.
[0012] FIG. 3 is a diagram illustrating an example of a protocol stack architecture for the UFS interconnect interface according to some aspects.
[0013] FIG. 4 is a diagram illustrating an example of a link between a UFS host and a UFS device according to some aspects.
[0014] FIG. 5 is a diagram illustrating an example of a host controller configured to initiate a high-speed gear switch according to some aspects.
[0015] FIG. 6 is a diagram illustrating an example of an interconnect circuit configured to perform a high-speed gear switch according to some aspects.
[0016] FIG. 7 is a flow chart illustrating an exemplary process for hardware-driven high-speed gear switching according to some aspects.
[0017] FIG. 8 is a flow chart illustrating another exemplary process hardware-driven high-speed gear switching according to some aspects.DETAILED DESCRIPTION
[0018] The detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
[0019] Several aspects of the invention will now be presented with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various blocks, modules, components, circuits, steps, processes, algorithms, etc. (collectively referred to as “elements” ) . These elements may be implemented using electronic hardware, computer software, firmware, or any combination thereof. Whether such elements are implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.
[0020] While aspects and examples are described in this application by illustration to some examples, those skilled in the art will understand that additional implementations and use cases may come about in many different arrangements and scenarios. Innovations described herein may be implemented across many differing platform types, devices, systems, shapes, sizes, and packaging arrangements. For example, aspects and / or uses may come about via integrated chip examples and other non-module-component-based devices (e.g., end-user devices, vehicles, communication devices, computing devices, industrial equipment, retail / purchasing devices, medical devices, artificial intelligence (AI) -enabled devices, etc. ) . While some examples may or may not be specifically directed to use cases or applications, a wide assortment of applicability of described innovations may occur. Implementations may range in spectrum from chip-level or modular components to non-modular, non-chip-level implementations and further to aggregate, distributed, or original equipment manufacturer (OEM) devices or systems incorporating one or more aspects of the described innovations. In some practical settings, devices incorporating described aspects and features may also necessarily include additional components and features for the implementation and practice of described examples. It is intended that innovations described herein may be practiced in a wide variety of devices, chip-level components, systems, distributed arrangements, end-user devices, etc., of varying sizes, shapes, and constitution.
[0021] An apparatus, such as a mobile device, may include a UFS system including a UFS host and a UFS device connected via a UFS interface (e.g., a data link) . The UFS device may include, for example, a data storage device (DSD) , such as a non-volatile memory (NVM) or solid state device (SSD) . The UFS host includes a UFS host controller (e.g., hardware, such as a processing unit) managed by a UFS driver via a UFS host controller interface (UFSHCI) (e.g., a set of registers) . The UFS driver includes software executed by, for example, a central processing unit (CPU) of the apparatus. The UFS host controller includes a UFS interconnect layer (UIC) , which handles the connection (e.g., the link) between the UFS host and the UFS device. The UIC includes a physical (PHY) adapter layer configured to manage link startup of the link between the UFS host and the UFS device and to change the power mode and high-speed gear of the link.
[0022] In some examples, the link may be initialized using a high-speed link startup feature, which enables the link to start in High-Speed Gear 1 (HS-G1) as opposed to a slower mode. The high-speed link startup feature aims to speed up the UFS initialization and UFS device boot up time. However, HS-G1 is the lowest gear of all supported high-speed gears. Therefore, to switch the UFS gear to a higher high-speed gear (e.g., HS-G2, HS-G3, HS-G4, or HS-G5) after link startup, the UFS driver can set attributes for a power mode change command to be sent from the PHY adapter layer at the UFS host to the PHY adapter layer at the UFS device. One of the attributes may include, for example, the new high-speed gear.
[0023] However, generating the power mode change command after link startup may be time consuming due to the number of device management entity (DME) commands issued by the UFS driver to learn all of the attributes for the power mode change command. Examples of attributes may include, but are not limited to, the maximum supported high-speed gear, the number of connected data lanes of the link, and the power modes supported by each of the UFS host and the UFS device. The UFS driver software not only sends the DME commands, but also waits for their completion. Processing the completion of each DME command may result in a number of interrupts (e.g., Interrupt Service Routines (IRQs) ) , which can delay the gear switch, especially during boot up time and during heavy loading at the CPU.
[0024] In various aspects of the disclosure, to speed up the gear switching process and reduce the boot up time, the host controller (e.g., UFS host controller hardware) can initiate the power mode change to switch the link to a new high-speed gear (e.g. HS-G2 or higher) during the high-speed link start-up (e.g., at the end of the high-speed link startup) . For example, the host controller and PHY adapter layer may be configured to program (e.g., set attributes) , generate, and transmit the power mode change command including the new high-speed gear. The attributes for the power mode change command are obtained by the PHY adapter layer during the high-speed link startup. Therefore, these attributes are available to the host controller and PHY adapter layer to program (set) the parameters (e.g., attributes) of the power mode change command without requiring additional capabilities exchange with the UFS device.
[0025] In some examples, the host controller and PHY adapter layer are configured to set the link to an initial high-speed gear (e.g., HS-G1) during link startup and to switch the link from the initial high-speed gear to the new high-speed gear (e.g., HS-G2 or greater) with the power mode change command.
[0026] In some examples, the host controller and PHY adapter layer are configured to exchange capabilities with the device during the high-speed link startup and to set one or more attributes of the power mode change command based on the capabilities. For example, the capabilities can include a maximum supported high-speed gear of the device. In this example, the host controller is configured to receive a link startup command (e.g., from the UFS driver) to initiate the high-speed link startup. The link startup command may further include a desired high-speed gear. The host controller may further be configured to set the new high-speed gear to a minimum of the desired high-speed gear and the maximum supported high-speed gear. In some examples, the new high-speed gear may include a new transmit high-speed gear and a new receive high-speed gear.
[0027] In some examples, the host controller is further configured to set a number of active data lanes equal to a number of connected data lanes identified during the high-speed link startup in the power mode change command. As another example, the host controller can set an adapt type in the power mode change command based on the new high-speed gear (e.g., for UFS gear higher than HS-G3) .
[0028] FIG. 1 is a diagram depicting an apparatus employing a data storage device according to some aspects. In one example, the apparatus 100 may include a radio communication device that communicates through a radio frequency (RF) communications transceiver 116 and antenna 118 with a radio access network (RAN) , a core access network, the Internet and / or another network. The apparatus 100 may further include a central processing unit (CPU) 102, one or more neural signal processors (NSPs) 104, and one or more graphics processing units (GPUs) 106, which may be implemented, for example, on a system-on-chip (SoC) . In an example, the CPU 102 may include a processor 110 and memory 114 (e.g., L1 and / or L2 caches or registers or RAM) , and may be controlled by an operating system 112 that is loaded from internal or external storage as data and instructions that are executable by the processor 110. The apparatus 100 may further include or access a data storage device (DSD) 108, such as a Universal Flash Storage (UFS) device or other non-volatile memory (NVM) device. The DSD 108 can be used to maintain data, operational parameters, and other information used to configure and operate the apparatus 100. The CPU 102 may also be operably coupled to internal and / or external devices such as a display / user interface 124, operator controls, such as buttons 126, 128, and other components.
[0029] A data communication interface (e.g., bus) 120 may be provided to support communication between the CPU 102, NSP 104, GPU 106, and / or one or more peripherals (not shown) . The data communication interface 120 may be operated in accordance with standard protocols defined for interconnecting certain components of mobile devices. For example, there may be multiple types of interfaces defined for communications between CPU 102, a user interface, and camera components of a mobile device. In addition, a link 122 may be provided to support communication between the CPU 102, the DSD 108, and various other components, such as the NSP 104 and the GPU 106. For example, the link 122 may correspond to a UFS interface.
[0030] FIG. 2 is a diagram depicting an apparatus including a Universal Flash Storage (UFS) system in accordance with some aspects of the disclosure. In this example, the apparatus 200 can be a computer system or a part thereof. The apparatus 200 includes one or more processors (e.g., one exemplary processor 202 shown in FIG. 2) that can be configured to perform various functions of the apparatus, including, for example, functions typically performed by portable devices such as mobile devices, tablets, portable computers, wearable devices (e.g., earbuds, headphones, etc. ) , smartwatches, and other such devices. These functions can include wireless communications with other devices (e.g., smartphones, computers, etc. ) and application specific functions. The apparatus 200 can include a data storage system for storing various data at the apparatus. In one aspect, the data storage system can be a UFS system that includes a UFS host 204 and one or more UFS devices (e.g., one exemplary UFS device 206 shown in FIG. 2) . In some examples, the UFS host 204 can be included in or implemented by the processor 202.
[0031] The processor 202 can perform various functions (e.g., using software / application 208) and can communicate with the UFS host 204 using a UFS driver 220. Using the UFS driver 220, the processor 202 can communicate, control, and exchange data with the UFS host 204, for example, via a UFS host controller 212 that provides a UFS host controller interface (UFSHCI) to the processor 202. The UFS host controller is responsible for managing the interface and data transfer between host software (e.g., application 208) and the UFS device. This can include interface management, power management, and control functions. The host controller 212 (e.g., the UFSHCI) provides a set of registers that can be accessed by the processor 202 using the UFS driver 220. The UFS host 204 and UFS device 206 are connected through a UFS interface 214. For example, each of the UFS host 204 and UFS device 206 has a UFS interconnect interface 216 that transfers data and control signals between the UFS host and UFS device. The UFS interconnect interface 216 includes a UFS interconnect layer (UIC) that handles connections between the UFS host and the UFS device. The UIC can include, for example, a Mobile Industry Processor Interface Alliance layer configured in accordance with the Unified Protocol (UniPro) high-speed interface protocol standard and MIPI Alliance layer configured in accordance with the M-PHY physical layer protocol standard.
[0032] The UFS driver 220 can use a combination of registers and transfer request descriptors in system memory 210 (e.g., one or more memories (e.g., random access memory) ) to communicate with host controller hardware. In some examples, the UFS device 206 can be a memory card, an embedded bootable mass storage device, an input-output (IO) device, etc. In some aspects, the UFS device 206 includes a data storage 218 that can include a non-volatile memory (NVM) for storing data. In one example, the NVM may be NAND Flash memory or the like. However, the UFS device 206 is not limited to using only NAND Flash and can use other types of NVM.
[0033] In some aspects, some or all of the functions described herein can be performed by the apparatus 200 using the processor 202, UFS host 204, and / or UFS device 206. In some examples, the processor 202, UFS host 204, and UFS device 206 may each include a microprocessor, a microcontroller, an embedded controller, a logic circuit, software, firmware, ASIC, or any kind of processing device, for performing one or more of the functions described herein as being performed by the apparatus 200.
[0034] FIG. 3 is a diagram illustrating an example of a protocol stack architecture for the UFS interconnect interface according to some aspects. The protocol stack 300 includes a plurality of layers 306, 308, 310, 312, 314, and 316 that roughly follows the Open System Interconnect (OSI) reference model. Each layer 306-316 is configured to communicate with a peer layer at the other end of a link (e.g., a UFS interface) . For example, each layer 306-316 may be implemented on a UFS host 302 and a UFS device 304 to enable communication between the UFS host and the UFS device. In the example shown in FIG. 3, the protocol stack includes an application protocol layer 306 above the UFS UIC layer that is configured to exchange messages between the UFS host 302 and the UFS device 304. The application protocol layer 306 may support devices, such as camera or display modules, high-speed modems, or other processing devices and may be implemented in hardware, software running on a general-purpose processor, or a combination of hardware and software.
[0035] The protocol stack further include the following UniPro and M-PHY layers of the UFS UIC layer: a transport layer 308 (Layer 4 (L4) ) configured to exchange segments (e.g., transport protocol data units (T_PDUs) ) between the UFS host 302 and the UFS device 304, a network layer 310 (L3) configured to exchange packets (e.g., network PDUs (N_PDUs) ) between the UFS host 302 and the UFS device 304, a data link layer 312 (L2) configured to exchange frames (e.g., data link PDUs (DL_PDUs) ) between the UFS host 302 and the UFS device 304, a physical (PHY) adapter layer 314 (L1.5) configured to exchange symbols (e.g., physical adapter PDUs (PA_PDUs) ) between the UFS host 302 and the UFS device 304, and a physical (PHY) layer 316 (L1) configured to exchange PHY-encoded symbols between the UFS host 302 and the UFS device 304. The transport layer 308, network layer 310, data link layer 312, and PHY adapter layer 314 are defined by the UniPro specification, whereas the PHY layer 316 is defined by the M-PHY specification.
[0036] Upper layers use the services of lower layers by communicating through a conceptual interface referred to herein as a service access point (SAP) . SAPs include service primitives that enable data to be exchanged between layers. For example, in order for an application at the host 302 to send data to the device 304, the data passes from the application layer 306 at the UFS host 302 to the transport layer via the transport SAP (e.g., T_SAP) , which then passes the data through the network SAP (e.g., N_SAP) to the network layer, and so on, until the data is passed via the PHY interface to the device 304. The data is then passed up the corresponding stack layers in the reverse order to the application layer 306 at the UFS device 304.
[0037] A device management entity (DME) layer 318 includes control primitives that allow control of the other UniPro layers 308-314. For example, the control primitives can provide for direct control of each of the layers and enable receipt of layer status information. Multiple DME commands may be generated concurrently. In some examples, the DME layer 318 (DME control entity) is responsible for power-on, power-off, and reset for the entire UniPro stack. It also manages the link startup sequence, power mode changes, endpoint resets, and hibernate entry and exit sequences for the lower UniPro stack layers. In addition, the DME layer 318 routes Get and Set requests to the appropriate UniPro layer and uses attributes to access configurable parameters in various layers.
[0038] The PHY adapter layer 314 exposes a PHY-independent interface to L2 that allows higher layers to control the link. For example, the PHY adapter layer 314 maps the power states provided by the PHY layer 316 (M-PHY power states) to UniPro-defined power modes via UniPro power states. Each UniPro power state corresponds to an M-PHY power state. For example, the PHY adapter power modes may include the Fast_Mode, Slow_Mode, Hibernate_Mode, and Off_Mode, which correspond respectively to the FAST_STATE, SLOW_STATE, HIBERNATE_STATE, and OFF_STATE of the PHY adapter layer. The PHY adapter layer may further include two additional power modes, referred to as the FastAuto_Mode and SlowAuto_Mode. The FastAuto_Mode puts the link in the FAST_STATE when there is data to send, but also enables the PHY adapter layer to put the link into the SLEEP_STATE when there is no data to send. SlowAuto_Mode is equivalent for the SLOW_STATE. Higher layer protocols can impact the M-PHY power state by setting the PHY adapter power mode.
[0039] The M-PHY power states may be controlled by the PHY adapter layer 314 using the PHY adapter control protocol (PACP) . For example, the PHY adapter layer 314 at the UFS host 302 may request permission from the data link layer 312 to send a PACP_PWR_req frame to the PHY adapter layer 314 at the UFS device 304 to request a power mode change. The attributes (parameters) of the PACP_PWR_req may be set by higher layers (e.g., the application layer / UFS driver) . In response, the PHY adapter layer 314 at the UFS device 304 may return a PACP_PWR_cnf frame indicating whether or not the power mode change request was accepted and executed. If the request is accepted, the PHY adapter layer 314 of the UFS host 302 and the UFS device 304 can configure the PHY layer 316 with the parameters of the request.
[0040] The PHY adapter layer 314 further provides bandwidth scalability by supporting up to four PHY data lanes per direction (transmit and receive) . However, the number of data lanes per direction may be less than four in one or both directions. When multiple data lanes are available, they are assumed to have identical capabilities. During link startup (e.g., when an M-PHY based link is initialized) , a series of data exchanges may be executed at the PHY adapter layer 314 between the UFS host 302 and the UFS device 304 to determine the number of attached lanes in each direction and the number of connected lanes (e.g., active lanes) in each direction. The PHY adapter layer 314 can further determine how the physical lanes are attached between the UFS host 302 and the UFS device 304 and assign logical data lane numbering to the attached physical lanes.
[0041] FIG. 4 is a diagram illustrating an example of a link between a UFS host and a UFS device according to some aspects. The link 406 between the UFS host 402 and the UFS device 404 includes a plurality of lanes 408a-408h in each direction. In the example shown in FIG. 4, up to four PHY data lanes are supported in each direction (transmit and receive) . For example, a transmitter 410 at the UFS host 402 is shown connected to a receiver 412 at the UFS device 404 via up to four data lanes 408a, 408b, 408c, and 408d. Similarly, a receiver 414 at the UFS host 402 is shown connected to a transmitter 416 a the UFS device 404 via up to four data lanes 408e, 408f, 408g, and 408h.
[0042] To initialize the link 406, the DME may initiate a link startup sequence at the PHY adapter layer. The link startup sequence is a multi-phase handshake, which exchanges UniPro trigger events to establish initial link communication in both directions. For example, in the initialization phase of link startup, the transceivers (transmitters and receivers) of both devices are initialized to the default configuration, and then in subsequent phases, the connected M-PHY data lanes are identified to produce a mapping between physical lanes and logical lanes for data communication. For example, during the initialization phase, all available lanes are requested to exit from the M-PHY HIBERN8 state. The link startup sequence then starts with discovery of the connected M-PHY data lanes. In the example shown in FIG. 4, both the UFS host 402 and the UFS device 404 have four transmit (Tx) data lanes and four receive (Rx) data lanes. However, not all of the available data lanes are connected. For example, only transmit data lanes PL#3 and PL#2 408a and 408b on the UFS host and transmit data lane PL#2 408f on the UFS device are connected. Upon discovering the connected physical data lanes (PL#) , the receivers 412 and 414 assign a respective logical data lane number (LL#) to each connected physical data lane (PL#) and then pass back the assigned logical lane numbers to the transmitters 410 and 416. For example, physical data lane 408a may be assigned LL#1, physical data lane 408b may be assigned LL#0, and physical data lane 408f may be assigned LL#0. In the final phase of the link startup, each device (UFS host 402 and UFS device 404) may update their PA_ConnectedTxDataLanes and PA_ConnectedRxDataLanes attributes to reflect how many connected data lanes were discovered.
[0043] In addition, in the last phase of link startup, the PHY adapter (PA) layers exchange capabilities of the UFS host 402 and UFS device 404 via the connected data lanes. For example, the PA layers may exchange information regarding the supported high-speed gears at each device. The UniPro specification allows link startup in high-speed mode to provide for high data transfer rates. For example, UniPro supports at least five high-speed gears (HS-G1, HS-G2, HS-G3, HS-G4, and HS-G5) . Additional high-speed gears (e.g., high-speed gears lower than HS-G1, higher than HS-G5 or in between HS-G1 and HS-G5) may further be supported. HS-G1 enables data rates of 1, 250 Mbps, whereas HS-G5 enables data rates near 20,000 Mbps. At the end of link startup, the link may enter HS-G1, which is the lowest gear of the supported high-speed gears.
[0044] To increase the high-speed gear of the link after link startup, the UFS host, for example, may send a power mode change command (PACP_PWR_req) indicating the new high-speed gear to the UFS device on the active transmit data lanes. The PACP_PWR_req may include a number of attributes associated with the power mode change. For example, the PACP_PWR_req may include an Adapt field (PA_TxHsAdaptType) indicating the presence of ADAPT and the type of ADAPT range selected for the current power mode change. ADAPT may be employed for high-speed gears above HS-G3 (e.g., HS-G4 or HS-G5) to further configure the connected Tx and Rx data lanes. The ADAPT type may correspond to REFRESH or INITIAL, with each type configuring a respective training data pattern exchanged between the UFS host and the UFS device to stabilize the link. The PACP_PWR_req may further include a TxMode (PA_PWRMode) , indicating the PA power mode (e.g., Fast_Mode, Slow_Mode, FastAuto_Mode, SlowAuto_Mode, etc. ) , a TxGear (PA_TxGear) , indicating the high-speed gear for the transmit direction, an RxGear (PA_RxGear) , indicating the high-speed gear for the receive direction, a TxLane (e.g., PA_ActiveTxDataLanes) , indicting the active lane count for the transmit direction, and an RxLane (e.g., PA_ActiveRxDataLanes) , indicating the active lane count for the receive direction. Additional fields may also be included in the PACP_PWR_req.
[0045] In typical UFS systems, the UFS driver (e.g., software application executed by the CPU) initiates the power mode change by issuing a number of DME commands to obtain the attributes for the PACP_PWR_req. For example, the UFS driver can send a plurality of DME commands to the PHY adapter layer to learn the capabilities of each of the UFS host and the UFS device. In some examples, the UFS driver may send DME commands to obtain the maximum supported high-speed gear, the number of connected lanes (transmit and receive) , and the power mode (s) supported by the UFS host and the UFS device. For each DME command, the UFS driver (e.g., software) sends the DME command and waits for completion of that DME command. Processing the completion of each DME command may involve handling Interrupt Service Routines (IRQs) , accessing registers, and system scheduling of the interrupts. Such system scheduling (e.g., IRQ routing, IRQ handling, etc. ) involves a complex algorithm that may result in IRQ starvation during boot up time when all of the subsystems are initializing their own hardware and there is heavy loading on the CPU.
[0046] Therefore, various aspects are directed to moving the high-speed gear switching process (e.g., setting the attributes and sending the power mode change command) at link startup to the UFS host controller hardware. The information for each of the attributes necessary for the PACP_PWR_req is already obtained by the PHY adapter layer during high-speed link startup, and as such, the UFS host controller and PHY adapter layer have access to this previously obtained information to initiate the power mode change during (e.g., at or near the end of) high-speed link startup. For example, the UFS host controller can set (program) each of the attributes for the PACP_PWR_req based on the identified connected data lanes and other capabilities exchanged during the high-speed link startup and send the PACP_PWR_req to the UFS device via the PHY Adapter layer. By having the UFS host controller initiate the high-speed gear switch, the boot up time can be reduced by eliminating the IRQ and system scheduling involved in processing DME commands related to gear-switching. In some UFS systems, the boot up time may be reduced by 30-40 ms in a full boot up chain.
[0047] FIG. 5 is a diagram illustrating an example of a host controller configured to initiate a high-speed gear switch according to some aspects. In the example shown in FIG. 5, a UFS host 500 includes a host controller 504 (e.g., a UFS host controller) and a PHY adapter layer of an interconnect circuit (e.g., a UIC) 506. The UFS host controller 504 is coupled to a UFS driver 502 configured to manage the UFS host controller 504.
[0048] The UFS driver 502 includes desired high-speed gear logic 508 configured to set a desired high-speed gear of a link between the UFS host and a UFS device. The desired high-speed gear corresponds to the high-speed gear desired after link startup (e.g., the high-speed gear to switch to after link start-up) . The desired high-speed gear may correspond to any of the available high-speed gears (e.g., HS-G1 through HS-G5) . The UFS driver 502 is further configured to generate and send a high-speed (HS) link startup command 510 to the UFS host controller 504. In some examples, the UFS driver 502 can include the desired high-speed gear within the HS link startup command. In other examples, software may program the desired high-speed gear within the PHY adapter layer 506 separate from the HS link startup command. For example, software may program the PHY layer attribute PA_DesiredGear within a PA_DesiredGear attribute register (e.g., one of registers 530) of the PHY adapter layer 506. It is assumed herein that the desired high-speed gear is supported by the UFS host. In some examples, the desired high-speed gear may be a default high-speed gear (e.g., HS-G1) . In addition, the HS link startup command may further include a power mode (e.g., Fast_Mode, FastAuto_Mode, etc. ) for the link. In other examples, the power mode may be set by software or to a default value.
[0049] The UFS host controller 504 includes a link startup initiation circuit 512 configured to initiate the high-speed link startup sequence to initialize the link and discover device capabilities of the UFS device. For example, the UFS host controller 504 may be configured to manage the high-speed link startup by sending the high-speed link startup command to the interconnect circuit PHY adapter layer 506 via one or more DME commands to the PHY adapter layer 506. The PHY adapter layer 506 includes a link startup performance circuit 514 configured to perform and manage the high-speed link startup (PA_LinkStartup) . In examples in which the high-speed link startup command includes the desired high-speed gear, the link startup command sent to the PHY adapter layer 506 may further include the desired high-speed gear.
[0050] During performance of the high-speed link startup, as shown in FIG. 4, the link startup performance circuit 514 of the PHY adapter layer 506 determines link characteristics, such as the number of connected transmit / receive data lanes, and further exchanges capabilities with the UFS device, such as the maximum supported high-speed gear. The maximum supported high-speed gear of the UFS device may include both a maximum supported transmit (Tx) high-speed gear and a maximum supported receive (Rx) high-speed gear. The PHY Adapter layer 506 further updates its PA_ConnectedTxDataLanes and PA_ConnectedRxDataLanes attributes to reflect how many connected data lanes were discovered during link startup. For example, the PHY adapter layer 506 may be configured to access one or more PA attribute registers 530 to update the PA_ConnectedTxDataLanes and PA_ConnectedRxDataLanes attributes. As part of the high-speed link startup sequence performed by the PHY adapter layer 506, the link between the UFS host 500 and the UFS device is set to operate at an initial high-speed gear (e.g., HS-G1) .
[0051] The UFS host controller 504 further includes a power mode change trigger circuit 516 configured to determine whether the desired high-speed gear is greater than HS-G1 (e.g., PA_DesiredGear>1) . If PA_DesiredGear>1, the UFS host controller 504 triggers a power mode change to switch the link to a new high-speed gear. The UFS host controller 504 may trigger the power mode change during the high-speed link startup after the link is set to the initial high-speed gear or may move the link directly into the desired gear without first setting the link to the initial high-speed gear. The UFS host controller 504 further accesses a PA attribute program circuit 518 configured to program various PA attributes of a power change command (e.g., PACP_PWR_req) . The PA attribute program circuit 518 operates in coordination with a power mode change attribute circuit 520 in the PHY adapter layer 506 to set each of the attributes for the power mode change command. For example, the power mode change attribute circuit 520 may access one or more registers (not shown) containing link characteristics and / or capabilities of the UFS device obtained during high-speed link startup and set the PA attributes for the power mode change command based on the link characteristics, the capabilities, and the new high-speed gear.
[0052] In an example, the link characteristics may include the PA_ConnectedTxDataLanes and the PA_ConnectedRxDataLanes. The power mode change attribute circuit 520 may set the power mode change command PA attributes of PA_ActiveTxDataLanes equal to the PA_ConnectedTxDataLanes and the PA_ActiveRxDataLanes equal to the PA_ConnectedRxDataLanes. As another example, the power mode change attribute circuit 520 may set the power mode change command PA attribute of PA_PWRMode equal to the power mode received in the high-speed link startup command (e.g., Fast_Mode, FastAuto_Mode, etc. ) or may apply the power mode set by software or set to a default value at link startup. As yet another example, the power mode change attribute circuit 520 may set the power mode change command PA attribute of the ADAPT type (e.g., PA_TxHSAdapType) based on the new high-speed gear, as determined below.
[0053] In addition, the power mode change attribute circuit 520 is configured to compare the desired high-speed gear (e.g., PA_DesiredGear included in the PA_Link Startup or set by software) to the maximum supported high-speed gear of the UFS device. The power mode change attribute circuit 520 is further configured to set the new high-speed to gear to the minimum of the desired high-speed gear and the maximum supported high-speed gear. In some examples, the power mode change attribute circuit 520 is configured to compare the desired high-speed gear (e.g., PA_DesiredGear included in the PA_Link Startup or set by software) to each of the maximum supported transmit high-speed gear of the UFS device and the maximum supported receive high-speed gear of the UFS device and set the respective new transmit high-speed gear and new receive high-speed gear as the minimum of the desired high-speed gear and the respective maximum supported transmit / receive high-speed gears. For example, the power mode change attribute circuit 520 can set: PA_TxGear=min (PA_DesiredGear, PA_MaxTxHSGear) and PA_RxGear=min (PA_DesiredGear, PA_MaxRxHsGear) .
[0054] In an example, the power mode change attribute circuit 520 can program the PA attribute program circuit 518 to include the following PA attributes for the power mode change command:
[0055] PA_TxGear=min (PA_DesiredGear, PA_MaxTxHSGear)
[0056] PA_TxHSAdapType=INITIAL (TxGear>3) or No ADAPT (TxGear<3)
[0057] PA_ActiveTxDataLanes=PA_ConnectedTxDataLanes
[0058] PA_RxGear=min (PA_DesiredGear, PA_MaxRxHsGear)
[0059] PA_ActiveRxDataLanes=PA_ConnectedRxDataLanes
[0060] PA_PWRMode=Fast_Mode
[0061] The UFS host controller 504 further includes a power mode change initiation circuit 522, configured to initiate a power mode change with the programmed PA attributes maintained by the PA attribute program circuit 518. The power mode change initiation circuit 522 operates in coordination with a power mode change circuit 524 in the PHY adapter layer 506 to generate and send the PACP_PWR_req to the UFS device via the connected data lanes to switch the link to the new high-speed gear. The PACP_PWR_req includes the PA attributes set by the power mode change attribute circuit 520. For example, the power mode change circuit 524 may include a power mode change sequencer configured to exchange a sequence of DME commands with the UFS device to switch the link to the new high-speed gear. The power mode change circuit 524 may control the link to switch to the new high-speed gear (e.g., both the PA_TxGear and PA_RxGear) via control interfaces (M-Rx Ctrl i / f 526 and M-Tx Ctrl i / f 528) to the M-PHY layer. In examples in which the desired high-speed gear is HS-G1 or other lower / initial high-speed gear (e.g., PA_DesiredGear<=1) , as set by software (e.g., prior to link startup) or as a default initial high-speed gear value, the power mode change circuit 524 may be configured to perform other power mode changes for the link (e.g., placing one or more data lanes in Hibernation, Re-Initializing the link, etc. ) .
[0062] After completion of the high-speed gear switch, the UFS driver 502 includes read HS gear logic 530 configured to read the receive high-speed gear (PA_RxGear) on the receive data lanes to determine if the UFS is running at the expected new high-speed gear. In examples in which the desired high-speed gear is HS-G1 (e.g., PA_DesiredGear<=1) , no power mode change is triggered by the power mode change trigger circuit 516 and the read HS gear logic 530 is configured to determine whether the UFS is running at HS-G1.
[0063] FIG. 6 is a diagram illustrating an example of an interconnect circuit configured to perform a high-speed gear switch according to some aspects. The interconnect circuit 600 may include, for example, a UniPro PHY adapter layer. The interconnect circuit 600 may further include, for example, the power mode change attribute circuit 520 shown in FIG. 5.
[0064] The interconnect circuit 600 is configured to receive a maximum supported high-speed gear 602 (e.g., PA_MaxRxHSGear) of the UFS device and a desired high-speed gear 604 (e.g., PA_DesiredGear) of the host. For example, the interconnect circuit 600 may be configured to access a register containing the PA_MaxRxHSGear 602 exchanged with the UFS device during the link startup. In addition, the interconnect circuit 600 may be configured to receive the PA_DesiredGear 604 in a PA_LinkStartup command from the UFS host controller or by accessing a register containing the PA_DesiredGear 604 set by software or as a default value.
[0065] The interconnect circuit 600 further includes a comparator 606 configured to compare the PA_MaxRxHSGear 602 with the PA_DesiredGear 604 and a multiplexer 608 configured to select one of the PA_MaxRxHSGear 602 or the PA_DesiredGear 604 as a new (selected) high-speed gear 610 (e.g., PA_TxGear and PA_RxGear) . In the example shown in FIG. 6, the maximum supported receive high-speed gear (PA_MaxRxHSGear) is used to select both the new transmit high-speed gear (PA_TxGear) and the new receive high-speed gear (PA_RxGear) . In other examples, each of the transmit and receive high-speed gears may be separately selected based on respective maximum supported high-speed gears (e.g., PA_MaxRxHSGear and PA_MaxTxHSGear) .
[0066] If the PA_MaxRxHSGear 602 is greater than the PA_DesiredGear 604, the comparator 606 selects the PA_DesiredGear 604 as the new high-speed gear 610 from the output of the multiplexer 608. However, if the PA_MaxRxHSGear 602 is less than the PA_DesiredGear 604, the comparator 606 selects the PA_MaxRxHSGear 602 as the new high-speed gear 610 from the output of the multiplexer 608. Thus, the comparator 606 and multiplexer 608 operate to select the minimum of the PA_MaxRxHSGear 602 and the PA_DesiredGear.
[0067] The new (selected) high-speed gear 610 (e.g., PA_TxGear and PA_RxGear) can then be input to a power mode change sequencer 612 configured to generate and transmit a power mode change command 614 (e.g., PACP_PWR_req) to the UFS device to switch the high-speed gear of the link to the new high-speed gear 610. The power mode change sequencer 612 may correspond, for example, to the power mode change circuit 524 shown in FIG. 5. The interconnect circuit 600 (e.g., the power mode change attribute circuit 520) may further be configured to set additional attributes of the power mode change command 614. For example, the interconnect circuit 600 may be configured to set a power mode attribute 616 (e.g., PA_PWRMode) based on the power mode received in the PA_LinkStartup command or as set by software (or as a default value) in the PA_PWRMode register, an adapt type attribute 618 (e.g., PA_TxHSAdapType) based on the new high-speed gear 610, a number of active transmit data lanes attribute 620 (e.g., PA_ActiveTxDataLanes) , and a number of active receive data lanes attribute 622 (e.g., PA_ActiveRxDataLanes) .
[0068] The number of active transmit data lanes 620 may be set equal to the number of connected transmit data lanes (e.g., PA_ConnectedTxDataLanes) identified during the high-speed link startup, whereas the number of active receive data lanes 622 may be set equal to the number of connected receive data lanes (e.g., PA_ConnectedRxDataLanes) identified during the high-speed link startup. For example, the interconnect circuit 600 may be configured to access one or more registers containing the PA_ConnectedTxDataLanes and PA_ConnectedRxDataLanes to set the PA_ActiveTxDataLanes and the PA_ActiveRxDataLanes.
[0069] FIG. 7 is a diagram illustrating an exemplary process for hardware-driven high-speed gear switching according to some aspects. As described below, some or all illustrated features may be omitted in a particular implementation within the scope of the present disclosure, and some illustrated features may not be required for implementation of all embodiments. In some examples, the process 700 may be carried out by the host controller 504 and interconnect circuit 506 / 600 illustrated in FIGs. 5 and 6. In some examples, the process 700 may be carried out by any suitable apparatus or means for carrying out the functions or algorithm described below.
[0070] At block 702, the process begins with performing a high-speed link startup to initialize a link between the host and a device to an initial high-speed gear. As part of the high-speed link startup, the host and the device can learn link characteristics of the link (e.g., the number of connected data lanes in the transmit and receive directions) . In addition, the host and the device can exchange capabilities during the high-speed link startup. The capabilities may include the maximum supported high-speed gear of the device, which may include, for example, the maximum supported transmit high-speed gear and the maximum supported receive high-speed gear.
[0071] At block 704, the process continues with a host controller of the host initiating a power mode change to switch the link to a new high-speed gear based on the capabilities exchanged between the host and the device during the high-speed link startup. The switch may occur, for example, when the new high-speed gear is greater than the initial high-speed gear. In some examples, the process further includes setting one or more attributes of a power mode change command based at least on the capabilities and transmitting the power mode change command to the device to initiate the power mode change.
[0072] In some examples, the process may further include receiving a link startup command at the host controller to initiate the high-speed link startup. The link startup command can include a desired high-speed gear or the desired high-speed gear may be set by software or as a default value. In this example, the process may further include setting the new high-speed gear to a minimum of the desired high-speed gear and the maximum supported high-speed gear. In addition, the process may further include setting a number of active data lanes equal to a number of connected data lanes identified during the high-speed link startup in the power mode change command. The process may also further include setting an adapt type in the power mode change command based on the new high-speed gear.
[0073] FIG. 8 is a flow chart illustrating another exemplary process for hardware-driven high-speed gear switching according to some aspects. As described below, some or all illustrated features may be omitted in a particular implementation within the scope of the present disclosure, and some illustrated features may not be required for implementation of all embodiments. In some examples, the process 800 may be carried out by the host controller 504 and interconnect circuit 506 / 600 illustrated in FIGs. 5 and 6. In some examples, the process 800 may be carried out by any suitable apparatus or means for carrying out the functions or algorithm described below.
[0074] At block 802, the process begins with performing a high-speed link startup to initialize a link between the host and a device to an initial high-speed gear. As part of the high-speed link startup, the host and the device can learn link characteristics of the link (e.g., the number of connected data lanes in the transmit and receive directions) . In addition, the host and the device can exchange capabilities during the high-speed link startup. The capabilities may include the maximum supported high-speed gear of the device, which may include, for example, the maximum supported transmit high-speed gear and the maximum supported receive high-speed gear.
[0075] At block 804, the process continues with identifying a desired high-speed gear of the host. In some examples, the process may include receiving a link startup command at a host controller of a host to initiate the high-speed link startup. The link startup command can include the desired high-speed gear of the host.
[0076] At block 806, the process continues with identifying a maximum supported high-speed gear of the device exchanged with the host during the high-speed link startup. In some examples, the maximum supported high-speed gear may include the maximum supported transmit high-speed gear and the maximum supported receive high-speed gear.
[0077] At block 808, the process continues with setting a new high-speed gear to a minimum of the desired high-speed gear and the maximum supported high-speed gear. In examples in which the maximum supported high-speed gear includes a maximum supported transmit high-speed gear and a maximum supported receive high-speed gear, the process may continue with setting a new transmit high-speed gear to a first minimum of the desired high-speed gear and the maximum supported transmit high-speed gear and setting a new receive high-speed gear to a second minimum of the desired high-speed gear and the maximum supported receive high-speed gear.
[0078] In one configuration, an apparatus includes means for performing a high-speed link startup to initialize a link between a host and a device to an initial high-speed gear and means for initiating a power mode change to switch the link to a new high-speed gear based on capabilities exchanged between the host and the device during the high-speed link startup, wherein the new high-speed gear is greater than the initial high-speed gear. In one aspect, the aforementioned means may be the host controller 504 and interconnect circuit (PHY adapter) 506 shown in FIG. 5 and / or the interconnect circuit 600 shown in FIG. 6 configured to perform the functions recited by the aforementioned means. In another aspect, the aforementioned means may be a circuit or any apparatus configured to perform the functions recited by the aforementioned means.
[0079] Of course, in the above examples, the host controller is merely provided as an example, and other means for carrying out the described functions may be included within various aspects of the present disclosure, including any other suitable apparatus or means described in any one of the FIGs. 1-6, and utilizing, for example, the processes and / or algorithms described herein in relation to FIGs. 7–8.
[0080] The following provides an overview of aspects of the present disclosure:
[0081] Aspect 1: An apparatus at a host, comprising: an interconnect circuit configured to perform a high-speed link startup to initialize a link between the host and a device to an initial high-speed gear; and a host controller configured to manage the high-speed link startup and to initiate a power mode change to switch the link to a new high-speed gear based on capabilities exchanged between the host and the device during the high-speed link startup, wherein the new high-speed gear is greater than the initial high-speed gear.
[0082] Aspect 2: The apparatus of aspect 1, wherein the host controller and the interconnect circuit are further configured to: set one or more attributes of a power mode change command based at least on the capabilities; and transmit the power mode change command to the device via the interconnect circuit to initiate the power mode change.
[0083] Aspect 3: The apparatus of aspect 2, wherein the capabilities comprise a maximum supported high-speed gear of the device and wherein the host controller is further configured to: identify a desired high-speed gear of the host.
[0084] Aspect 4: The apparatus of aspect 3, wherein the host controller is further configured to: receive a link startup command at the host controller to initiate the high-speed link startup, wherein the link startup command comprises the desired high-speed gear.
[0085] Aspect 5: The apparatus of aspect 3 or 4, wherein the host controller and the interconnect circuit are further configured to: set the new high-speed gear to a minimum of the desired high-speed gear and the maximum supported high-speed gear.
[0086] Aspect 6: The apparatus of aspect 5, wherein the maximum supported high-speed gear comprises a maximum supported transmit high-speed gear and a maximum supported receive high-speed gear.
[0087] Aspect 7: The apparatus of aspect 6, wherein the host controller and the interconnect circuit are further configured to: set a new transmit high-speed gear to a first minimum of the desired high-speed gear and the maximum supported transmit high-speed gear; and set a new receive high-speed gear to a second minimum of the desired high-speed gear and the maximum supported receive high-speed gear.
[0088] Aspect 8: The apparatus of any of aspects 2 through 7, wherein the host controller and the interconnect circuit are further configured to: set a number of active data lanes equal to a number of connected data lanes identified during the high-speed link startup in the power mode change command.
[0089] Aspect 9: The apparatus of aspect 8, wherein the host controller and the interconnect circuit are further configured to: set an adapt type in the power mode change command based on the new high-speed gear.
[0090] Aspect 10: The apparatus of any of aspects 1 through 9, wherein the device comprises a universal flash storage (UFS) device.
[0091] Aspect 11: A method operable at a host, the method comprising: performing a high-speed link startup to initialize a link between the host and a device to an initial high-speed gear; and initiating, by a host controller of the host, a power mode change to switch the link to a new high-speed gear based on capabilities exchanged between the host and the device during the high-speed link startup, wherein the new high-speed gear is greater than the initial high-speed gear.
[0092] Aspect 12: The method of aspect 11, further comprising: setting one or more attributes of a power mode change command based at least on the capabilities; and transmitting the power mode change command to the device to initiate the power mode change.
[0093] Aspect 13: The method of aspect 12, wherein the capabilities comprise a maximum supported high-speed gear of the device and further comprising: identifying a desired high-speed gear of the host.
[0094] Aspect 14: The method of aspect 13, wherein the setting the one or more attributes of the power mode change command further comprises: setting the new high-speed gear to a minimum of the desired high-speed gear and the maximum supported high-speed gear.
[0095] Aspect 15: The method of aspect 14, wherein the maximum supported high-speed gear comprises a maximum supported transmit high-speed gear and a maximum supported receive high-speed gear, and wherein the setting the new high-speed gear further comprises: setting a new transmit high-speed gear to a first minimum of the desired high-speed gear and the maximum supported transmit high-speed gear; and setting a new receive high-speed gear to a second minimum of the desired high-speed gear and the maximum supported receive high-speed gear.
[0096] Aspect 16: The method of any of aspects 12 through 15, wherein the setting the one or more attributes of the power mode change command further comprises: setting a number of active data lanes equal to a number of connected data lanes identified during the high-speed link startup in the power mode change command.
[0097] Aspect 17: The method of aspect 16, wherein the setting the one or more attributes of the power mode change command further comprises: setting an adapt type in the power mode change command based on the new high-speed gear.
[0098] Aspect 18: The method of any of aspects 11 through 17, wherein the device comprises a universal flash storage (UFS) device.
[0099] Aspect 19: An apparatus at a host, comprising means for performing the method of any of aspects 11 through 18.
[0100] Within the present disclosure, the word “exemplary” is used to mean “serving as an example, instance, or illustration. ” Any implementation or aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects of the disclosure. Likewise, the term “aspects” does not require that all aspects of the disclosure include the discussed feature, advantage or mode of operation. The term “coupled” is used herein to refer to the direct or indirect coupling between two objects. For example, if object A physically touches object B, and object B touches object C, then objects A and C may still be considered coupled to one another-even if they do not directly physically touch each other. For instance, a first object may be coupled to a second object even though the first object is never directly physically in contact with the second object. The terms “circuit” and “circuitry” are used broadly, and intended to include both hardware implementations of electrical devices and conductors that, when connected and configured, enable the performance of the functions described in the present disclosure, without limitation as to the type of electronic circuits, as well as software implementations of information and instructions that, when executed by a processor, enable the performance of the functions described in the present disclosure.
[0101] One or more of the components, steps, features and / or functions illustrated in FIGs. 1–8 may be rearranged and / or combined into a single component, step, feature or function or embodied in several components, steps, or functions. Additional elements, components, steps, and / or functions may also be added without departing from novel features disclosed herein. The apparatus, devices, and / or components illustrated in FIGs. 1-6 may be configured to perform one or more of the methods, features, or steps described herein. The novel algorithms described herein may also be efficiently implemented in software and / or embedded in hardware.
[0102] Any reference to an element herein using a designation e.g., “first, ” “second, ” and so forth does not generally limit the quantity or order of those elements. Rather, these designations are used herein as a convenient way of distinguishing between two or more elements or instances of an element. Thus, a reference to first and second elements does not mean that only two elements can be employed, or that the first element must precede the second element.
[0103] It is to be understood that the specific order or hierarchy of steps in the methods disclosed is an illustration of exemplary processes. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the methods may be rearranged. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented unless specifically recited therein.
[0104] The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but are to be accorded the full scope consistent with the language of the claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more. ” Unless specifically stated otherwise, the term “some” refers to one or more. A phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover: a; b; c; a and b; a and c; b and c; and a, b and c. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. §112 (f) unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for. ”
Claims
1.An apparatus at a host, comprising:an interconnect circuit configured to perform a high-speed link startup to initialize a link between the host and a device to an initial high-speed gear; anda host controller configured to manage the high-speed link startup and to initiate a power mode change to switch the link to a new high-speed gear based on capabilities exchanged between the host and the device during the high-speed link startup, wherein the new high-speed gear is greater than the initial high-speed gear.2.The apparatus of claim 1, wherein the host controller and the interconnect circuit are further configured to:set one or more attributes of a power mode change command based at least on the capabilities; andtransmit the power mode change command to the device via the interconnect circuit to initiate the power mode change.3.The apparatus of claim 2, wherein the capabilities comprise a maximum supported high-speed gear of the device and wherein the host controller is further configured to:identify a desired high-speed gear of the host.4.The apparatus of claim 3, wherein the host controller is further configured to:receive a link startup command at the host controller to initiate the high-speed link startup, wherein the link startup command comprises the desired high-speed gear.5.The apparatus of claim 3, wherein the host controller and the interconnect circuit are further configured to:set the new high-speed gear to a minimum of the desired high-speed gear and the maximum supported high-speed gear.6.The apparatus of claim 5, wherein the maximum supported high-speed gear comprises a maximum supported transmit high-speed gear and a maximum supported receive high-speed gear.7.The apparatus of claim 6, wherein the host controller and the interconnect circuit are further configured to:set a new transmit high-speed gear to a first minimum of the desired high-speed gear and the maximum supported transmit high-speed gear; andset a new receive high-speed gear to a second minimum of the desired high-speed gear and the maximum supported receive high-speed gear.8.The apparatus of claim 2, wherein the host controller and the interconnect circuit are further configured to:set a number of active data lanes equal to a number of connected data lanes identified during the high-speed link startup in the power mode change command.9.The apparatus of claim 8, wherein the host controller and the interconnect circuit are further configured to:set an adapt type in the power mode change command based on the new high-speed gear.10.The apparatus of claim 1, wherein the device comprises a universal flash storage (UFS) device.11.A method operable at a host, the method comprising:performing a high-speed link startup to initialize a link between the host and a device to an initial high-speed gear; andinitiating, by a host controller of the host, a power mode change to switch the link to a new high-speed gear based on capabilities exchanged between the host and the device during the high-speed link startup, wherein the new high-speed gear is greater than the initial high-speed gear.12.The method of claim 11, further comprising:setting one or more attributes of a power mode change command based at least on the capabilities; andtransmitting the power mode change command to the device to initiate the power mode change.13.The method of claim 12, wherein the capabilities comprise a maximum supported high-speed gear of the device and further comprising:identifying a desired high-speed gear of the host.14.The method of claim 13, wherein the setting the one or more attributes of the power mode change command further comprises:setting the new high-speed gear to a minimum of the desired high-speed gear and the maximum supported high-speed gear.15.The method of claim 14, wherein the maximum supported high-speed gear comprises a maximum supported transmit high-speed gear and a maximum supported receive high-speed gear, and wherein the setting the new high-speed gear further comprises:setting a new transmit high-speed gear to a first minimum of the desired high-speed gear and the maximum supported transmit high-speed gear; andsetting a new receive high-speed gear to a second minimum of the desired high-speed gear and the maximum supported receive high-speed gear.16.The method of claim 12, wherein the setting the one or more attributes of the power mode change command further comprises:setting a number of active data lanes equal to a number of connected data lanes identified during the high-speed link startup in the power mode change command.17.The method of claim 16, wherein the setting the one or more attributes of the power mode change command further comprises:setting an adapt type in the power mode change command based on the new high-speed gear.18.The method of claim 11, wherein the device comprises a universal flash storage (UFS) device.19.An apparatus at a host, comprising:means for performing a high-speed link startup to initialize a link between the host and a device to an initial high-speed gear; andmeans for initiating a power mode change to switch the link to a new high-speed gear based on capabilities exchanged between the host and the device during the high-speed link startup, wherein the new high-speed gear is greater than the initial high-speed gear.20.The host of claim 19, further comprising:means for setting one or more attributes of a power mode change command based at least on the capabilities; andmeans for transmitting the power mode change command to the device to initiate the power mode change.
Citation Information
Patent Citations
Transmission speed control method and device
CN112640505A
Storage device and storage system including the same
CN113284528A
Sideband signaling in peripheral component interconnect (PCI) fast (PCIE) link
CN116368479A
Effective gear-shifting by queue based implementation
US20190303313A1
Transitioning universal flash storage (UFS) gears during a clock gate / hibernation delay
US20200241625A1