Non-volatile storage devices, such as solid-state drives (SSD) and the like, may use integrated circuit assemblies to store data persistently, typically using one or more memory devices. The storage device may use an open-drain link to achieve bi-directional communications with external devices including, for example, a host or a power management integrated circuit. Multiple devices may be simultaneously connected to the open-drain link. However, only one device may transact on the open-drain link at a time. The device transacting on the open-drain link may pull down or drive a 0 on the open-drain link (referred to herein the fall time). The configurations and number of devices connected to the open-drain link (referred to herein as the link load requirements) may vary.
With fabrication technology scaling rapidly, overall transistor delay has reduced significantly, making it difficult to control the input/output (I/O) pad fall time (also referred to herein as pad fall time) for standard communication protocols including, for example, Inter Integrated Circuit (I2C and I3C) open-drain protocols. The problem with controlling the fall time for open-drain links increases with variations in link load requirements among products. With changing load conditions, large pad load capacitance variations of, for example, 10 picofarads (pF) to 100 pF may occur. In a transistor architecture, the number of design elements required to maintain the pad fall time with large load variations may increase significantly, which may lead to higher die areas and require higher switching power.
Typical delay-based approaches in a transistor architecture for controlling the fall time may face additional challenges as open-drain links may support dual supply voltages for devices running on, for example, 3.3 volts (V) or 1.8 V. The design complexity of the transistor architecture may be further increased as technology nodes below 45 nm do not support 3.3 V I/O devices. Hence keeping the same delay in a transistor while protecting the circuits from over voltage stress may add additional cost to the transistor design. As technology scales, the transistor delay may also reduce, thereby increasing the number of delay elements that may be needed to control the pad fall time. Switching power and leakage may increase with the lower nodes since the delay elements required may increase at the fast corners. Furthermore, increasing the switching elements may increase noise which may impact the performance of other devices/integrated circuits shared with the same supply domain.
In some implementations, a transmitter controls a fall time on an open-drain link including multiple components. The transmitter includes an input driver to receive data and transmit the data on the open-drain link, thereby activating the open-drain link. The transmitter also includes a feedback mechanism to keep track of a pad when the open-drain link is activated and to determine when the pad reaches a predetermined amount of a supply voltage. When the pad reaches the predetermined amount of a supply voltage, the feedback mechanism triggers an appropriate main pull-down driver to control the fall time.
In some implementations, a method is provided for controlling a fall time on an open-drain link including multiple components. The method includes transmitting data on the open-drain link through an input driver on a transmitter. The method also includes activating the open-drain link and tracking voltage of a pad on the activated open-drain line. The method further includes triggering an appropriate main pull-down driver to control the fall time when the pad reaches a predetermined amount of a supply voltage.
In some implementations, in addition to the input driver and the feedback mechanism, the transmitter includes a pre-driver to receive a trigger from the feedback mechanism and a main pull-down driver to receive the trigger from the pre-driver to trigger an appropriate leg of the main pull-down driver and control the fall time.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of implementations of the present disclosure.
The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing those specific details that are pertinent to understanding the implementations of the present disclosure so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art.
The following detailed description of example implementations refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
This transmitter architecture does not automatically correct for changes in product configurations and/or load conditions. The transmitter architecture is also highly process, voltage, and temperature (PVT) dependent, hence the minimum number of delay elements (i.e., variable delay line 202) is guided by the fastest corners. As the technology improves, the same architecture that worked in, for example, 16 nanometers (nm) may not work in 7 nm or 5 nm, i.e., faster technologies, and may have to be revised to increase the number of delay elements to get the same delay and control the fall time. As such, the transmitter architecture may need to be reworked to accommodate technological improvements. Increasing resources such as the delay elements may lead to increases in the area, power, and/or cost of the transmitter. For instance, the design area and power are highly dependent on the minimum pad load, wherein the lower the pad load, the higher the area and power. Increasing the delay elements may also inject switching noise. Higher switching noise induced by the design may add additional penalties to several high-speed input/output components shared in the supply domain. For example, higher switching noise induced by the design may add additional penalties to I/O debug components requiring immunity from noise and shared in the supply domain.
Consider an example comparing the number of delay elements required where the minimum fall time in a conventional specification, such as the I2C protocol, is 6 nanoseconds (ns) (measured from 70%-30% of the supply voltage (VDDO) of, for example 1.8V or 3.3V) and the minimum load is 10 pF. If the device delay (fast corner) is around 50 peco-seconds (ps), the minimum number of delay elements required to generate the delay of 6 ns will be approximately 120, i.e., 6 ns/50 ps. As the technology improves to, for example, 7 nano meters, the minimum number of delay elements required to generate the delay will increase accordingly. Thus, there is a need for a transmitter architecture that is more immune to manufacturing process, voltage, temperature, and pad load variations, that consumes less switching power and area, and that is supply independent. For example, a transmitter architecture that may be capable of supporting both 1.8V and 3.3V supply without much impact on power. As indicated above
Transmitter 400 is load independent wherein input driver 302 injects a current on the line and receiver 304 turns on the required current, as defined by conventional standards such as I2C, to control the fall time. Since most of the initial drive impedance is due to 1.5 KΩ poly resistor 302 (with PVT variation ˜±17%), the fall time between 0.7 VDDO-0.3 VDDO which is approximated 0.7*RC may be highly controlled, where the VDDO may be 1.8V or 3.3V and the I2C fall time specification is 6 ns-120 ns defined between 0.7*VDDO to 0.3*VDDO. The typical fall time using the design as shown in
The architecture of transmitter 400 may work in both 1.8V and 3.3V modes, targeting stress free operations without additional area penalties. The area required for the long delay chain may be saved and the architecture of transmitter 400 may use the existing main driver and pre driver as defined in conventional delay specifications. The architecture of transmitter 400 also removes the switching noise injected into the supply domain by the delay chain. The architecture is technology independent and can be scaled to other technologies without much reworking of the design. As indicated above
Devices of Environment 700 may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections. For example, the network of
The number and arrangement of devices and networks shown in
Controller 804 may execute background operations to manage resources on memory device 810. Controller 804 may also execute foreground operations to process instructions transmitted from a host (not shown). For example, controller 804 may read data from and/or write data to memory device 810 based on instructions received from the host. Storage device 102 may interface with the host through front-end link interface 806 according to one or more protocols. Storage device 802 may use front-end module 808 to receive and process instructions and data from the host and to send responses to the host. Storage device 102 may interface with memory 810 using back-end module 812. Back-end module 812 may include a flash translation layer and may maintain mapping tables for mapping physical addresses on memory device 810 to logical addresses provided by the host for data written to and/or read from memory device 810.
Storage device 102 may perform these processes based on a processor, for example, controller 804 executing software instructions stored by a non-transitory computer-readable medium, such as storage component 810. As used herein, the term “computer-readable medium” refers to a non-transitory memory device. Software instructions may be read into storage component 810 from another computer-readable medium or from another device. When executed, software instructions stored in storage component 810 may cause controller 804 to perform one or more processes described herein. Additionally, or alternatively, hardware circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software. System 800 may include additional components (not shown in this figure for the sake of simplicity).
The number and arrangement of components shown in
The foregoing disclosure provides illustrative and descriptive implementations but is not intended to be exhaustive or to limit the implementations to the precise form disclosed herein. One of ordinary skill in the art will appreciate that various modifications and changes can be made without departing from the scope of the present disclosure as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present teachings.
As used herein, the term “component” is intended to be broadly construed as hardware, firmware, and/or a combination of hardware and software. It will be apparent that systems and/or methods described herein may be implemented in different forms of hardware, firmware, and/or a combination of hardware and software.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of various implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of various implementations includes each dependent claim in combination with every other claim in the claim set.
No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items and may be used interchangeably with “one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, a combination of related items, unrelated items, and/or the like), and may be used interchangeably with “one or more.” The term “only one” or similar language is used where only one item is intended. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Moreover, in this document, relational terms such as first and second, top and bottom, and the like, may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” “has”, “having,” “includes”, “including,” “contains”, “containing” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “comprises . . . a”, “has . . . a”, “includes . . . a”, or “contains . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, contains the element. The terms “substantially”, “essentially”, “approximately”, “about” or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art, and in one non-limiting implementation, the term is defined to be within 10%, in another implementation within 5%, in another implementation within 1% and in another implementation within 0.5%. The term “coupled” as used herein is defined as connected, although not necessarily directly and not necessarily mechanically. A device or structure that is “configured” in a certain way is configured in at least that way but may also be configured in ways that are not listed.