Method and apparatus for self-regulating power usage and power consumption in ethernet SSD storage systems
Embodiments of the present invention include a solid state storage device for reporting actual power consumption including an internal power metering unit, a memory including flash memory, one or more components comprising at least a controller and the memory, wherein the memory has stored thereon instructions that are configured to be executed by the controller, and one or more voltage rails connecting the power metering unit to the one or more components so that the power metering unit is capable of measuring power consumed by the one or more components of the storage device.
Latest Samsung Electronics Patents:
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 62/638,035, filed Mar. 2, 2018, the content of which is hereby incorporated by reference in its entirety.
BACKGROUNDMany companies provide cloud-based storage to end users so that end users will have the ability to remotely access their stored data. Such companies generally take advantage of Ethernet-attached solid state drives (eSSDs) for their storage requirements. In particular, Ethernet-attached non-volatile memory express NVMe SSDs (e.g., NVMe Over Fabrics [NVMe-oF] storage devices) are considered an emerging and disruptive technology in this area.
Cloud-based storage providers typically charge users for storing their data on a monthly or annual basis based on the total storage space allocated to the user and either the average cost of energy consumed by all users or the maximum power consumption capable of being consumed by the user based on the system. For example, for two users who have purchased the same amount of cloud storage space, a user who stores only a small amount of data relative to the total purchased storage space and only stores data on an infrequent basis will be charged the same as a user who is regularly removing and added new data and using the majority of his/her purchased storage space. Ideally, users should be charged for storage based on the energy resources actually consumed. However, there is no accurate method for calculating the power consumption of individual users, or calculating power consumption in real time.
A storage device and method are needed that enables the storage device to report to the host the actual power consumption by the storage device.
The above information disclosed in this Background section is only for enhancement of understanding of the background of the disclosure and therefore it may contain information that does not constitute prior art.
SUMMARYEmbodiments of the present invention include a solid state storage device for reporting actual power consumption, including an internal power metering unit, a memory including flash memory, one or more components comprising at least a controller and the memory, wherein the memory has stored thereon instructions that are configured to be executed by the controller, and one or more voltage rails connecting the power metering unit to the one or more components so that the power metering unit is capable of measuring power consumed by the one or more components of the storage device.
Embodiments also include a method of reporting power consumption of a solid state storage device, the storage device including an internal power metering unit, a memory including flash memory, one or more components comprising at least a controller and the memory, wherein the memory has stored thereon instructions that are configured to be executed by the controller, and one or more voltage rails connecting the power metering unit to the one or more components so that the power metering unit is capable of measuring power consumed by the one or more components of the storage device, the method including measuring at the power metering unit the power consumed by the one or more components of the storage device.
Embodiments also include a storage system comprising a local service processor, and one or more solid state storage devices connected to the local service processor, each solid state storage device of the one or more solid state storage devices including an internal power metering unit, a memory including flash memory, one or more components comprising at least a controller and the memory, wherein the memory has stored thereon instructions that are configured to be executed by the controller; and one or more voltage rails connecting the power metering unit to the one or more components so that the power metering unit is capable of measuring power consumed by the one or more components.
Further features and aspects will become apparent and will be best understood by reference to the following detailed description reviewed in conjunction with the drawings. In the drawings:
Hereinafter, example embodiments will be described in more detail with reference to the accompanying drawings, in which like reference numbers refer to like elements throughout. The present invention, however, may be embodied in various different forms, and should not be construed as being limited to only the illustrated embodiments herein. Rather, these embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey the aspects and features of the present invention to those skilled in the art. Accordingly, processes, elements, and techniques that are not necessary to those having ordinary skill in the art for a complete understanding of the aspects and features of the present invention may not be described. Unless otherwise noted, like reference numerals denote like elements throughout the attached drawings and the written description, and thus, descriptions thereof will not be repeated. In the drawings, the relative sizes of elements, layers, and regions may be exaggerated for clarity.
It will be understood that when an element or layer is referred to as being “on,” “connected to,” or “coupled to” another element or layer, it can be directly on, connected to, or coupled to the other element or layer, or one or more intervening elements or layers may be present. In addition, it will also be understood that when an element or layer is referred to as being “between” two elements or layers, it can be the only element or layer between the two elements or layers, or one or more intervening elements or layers may also be present.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the present invention. As used herein, the singular forms “a” and “an” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and “including,” when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. Expressions such as “at least one of,” when preceding a list of elements, modify the entire list of elements and do not modify the individual elements of the list.
As used herein, the term “substantially,” “about,” and similar terms are used as terms of approximation and not as terms of degree, and are intended to account for the inherent deviations in measured or calculated values that would be recognized by those of ordinary skill in the art. Further, the use of “may” when describing embodiments of the present invention refers to “one or more embodiments of the present invention.” As used herein, the terms “use,” “using,” and “used” may be considered synonymous with the terms “utilize,” “utilizing,” and “utilized,” respectively. Also, the term “exemplary” is intended to refer to an example or illustration.
The electronic or electric devices and/or any other relevant devices or components according to embodiments of the present invention described herein may be implemented utilizing any suitable hardware, firmware (e.g. an application-specific integrated circuit), software, or a combination of software, firmware, and hardware. For example, the various components of these devices may be formed on one integrated circuit (IC) chip or on separate IC chips. Further, the various components of these devices may be implemented on a flexible printed circuit film, a tape carrier package (TCP), a printed circuit board (PCB), or formed on one substrate. Further, the various components of these devices may be a process or thread, running on one or more processors, in one or more computing devices, executing computer program instructions and interacting with other system components for performing the various functionalities described herein. The computer program instructions are stored in a memory which may be implemented in a computing device using a standard memory device, such as, for example, a random access memory (RAM). The computer program instructions may also be stored in other non-transitory computer readable media such as, for example, a CD-ROM, flash drive, or the like. Also, a person of skill in the art should recognize that the functionality of various computing devices may be combined or integrated into a single computing device, or the functionality of a particular computing device may be distributed across one or more other computing devices without departing from the spirit and scope of the exemplary embodiments of the present invention.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present specification, and should not be interpreted in an idealized or overly formal sense, unless expressly so defined herein.
Embodiments of the present invention include a storage device, such as an SSD, that be capable of reporting its actual power consumption to the local service processor, for example, a baseboard management controller (BMC). This enables the local service processor to provide power profiles and consumption of the storage device. In some embodiments, the storage device can report to the local service processor or BMC via a system management bus (SMBus) or a Peripheral Component Interconnect Express (PCIe), and can report by one of various protocols, such as by a Management Component Transport Protocol (MCTP) or by a NVMe Management Interface protocol for NVMe SSDs storage devices. In some embodiments, the storage system may be an NVMe-oF based system. Further embodiments include a storage system including several storage devices in which each storage device is capable of reporting its actual power consumption to the local service processor. In such a system, the local service processor can provide power profiles and analytics of the storage system and individual storage devices in the system.
The storage device 10 includes internal components, including a controller 11, a memory 12, flash dies 13, a power metering unit (PMU) 14 and a connector 15. The controller 11, as known as the processor, implements firmware to retrieve and store data in the memory 12 and flash dies 13 and to communicate with a host computer. In some embodiments, the controller 11 may be an SSD controller, an ASIC SSD controller, or an NVMe-oF/EdgeSSD controller. The memory 12 can be a random access memory such as DRAM or MRAM and the flash dies 13 may be NAND flash memory devices, though the invention is not limited thereto. The controller 11 can be connected to the memory 12 via memory channel 22 and can be connected to the flash dies 13 via flash channels 23. The controller 11 can communicate with a host computer via a host interface 20 that connects the controller 11 to the host computer through the connector 15. In some embodiments, the host interface 20 may be a PCIe connection, an Ethernet connection or other suitable connection. The connector 15 may be U.2/M.2 connectors or other suitable connector(s). The PMU 14 allows the storage device 10 to support power management capabilities by measuring power consumption of the storage device 10.
The storage device 10 is supplied power through the connector 15 via power rail 30. Power rail 30 supplies power to the various components of the storage device 10. For example, the power rail 30 may supply power to the various components of the storage device 10 via the PMU 14 and various intermediary voltage rails. An embodiment of this is shown in
In addition to supplying power to the storage device 10, power supply rails are provided by the PMU 14 inside the storage device 10 to generate power consumption measurements (“power measurements”) of the various voltages rails used by the components of the storage device 10, for example, used by components such as the controller 11, the flash dies 13, the memory 12 and other various components that may be included in the storage device 10. In some embodiments, the PMU 14 can be programmed to support get/set Power State by Power Info.
The PMU 14 can measure the amount of current drawn on various voltage rails it is driving, for example, voltage rails 32, 33, 34, 35, 36 and 37. The PMU can output power measurements including the average, minimum and maximum voltage usage by the voltage rails 32, 33, 34, 35, 36 and 37 of the storage device 10. In some embodiments, the PMU 14 can meter each voltage rail 32, 33, 34, 35, 36 and 37 individually, with the summation of all voltage rails 32, 33, 34, 35, 36 and 37 used by the storage device 10 being the total power consumed by the storage device 10. The power measurements metered at the PMU 14 can be read by the controller 11 using a PMU/controller interface 41. In some embodiments, the PMU/controller interface 41 may be an I2C/SMBus. The controller 11 can then provide these power measurements to a local service processor 50 (see
For every time unit, the controller 11 prepares (S1) to receive power measurements from the PMU 14 for the various voltage rails 30, 33, 34, 35, 36, 37. The controller 11 queries (S2) the PMU 14 to determine if power measurements from all rails have been completed. If no, then a read request (S3) is sent to a DC-DC regulator at the PMU 14 corresponding to a voltage rail for which power measurements have not been received (the PMU 14 may include a number of DC-DC regulators each corresponding to unique voltage rail). This read request may be send via an I2C protocol via the PMU/controller interface 41. When the power measurement is received from the PMU 14, the power measurement is then annotated with a timestamp (S4) and a Host ID (S5). The received power measurement is then saved (S6) to a power log. The power log may include internal register(s) or may be included as part of the PMU's embedded non-volatile memory.
Once the received power measurement is saved, the PMU 14 is again queried (S7) until all power measurements are received from the various voltage rails 30, 33, 34, 35, 36, 37. Once all power measurements are complete and the annotated power measurements are saved in the power log, these power measurements persist (S8) in the power log through resets and power cycles.
In addition to the above annotations, the power log pages can also include any or all of the following: Namespace ID, NMV Set, read I/Os, write I/Os, SQ ID, Stream ID, and other suitable parameters. The controller 11 also implements actual power (AP) registers which are accessible by the local service processor 50. This allows a variety of parameters associated with the storage device and the power measurements to be mapped with fine granularity.
In some embodiments, the power log can be special proprietary or vendor defined log pages. The power log can be read by the local service processor 50 using existing protocols through either the host interface 20 or the separate controller/host interface 42, whichever is used. For example, the power log can be read by a BMC using the NVMe-MI protocol via the controller/host interface 42, which may be a SMBus or PCIe.
The above method provides dynamic, real-time output of actual power consumption measurements without affecting the I/O of the storage device. With the power measurement information, the local service processor can implement power budgets and allocate power to the storage device based on its actual power usage. For example, the local service processor can implement power budgets similar to existing industry standards for allocated power budget registers. Also, the storage device can report real time power consumption to system management software, such as Samsung's DCP or Redfish.
In the embodiments of
In embodiments in which the power measurements are transferred to the local service processor 50 using NVMe protocols, NVMe specifications can define power measurements and their process mechanism. Based on this mechanism, the storage devices 10 (e.g., an NVMe SSD) can support power management either queried by the local service processor 50 (
By enabling this SetFeature function, the local service processor 50 can control and throttle the power consumption of a particular storage device 10 to meet an allocated power budget of the local service processor 50. The controller 11 can enforce the power budget allocations programmed by the local service processor 50. If the actual power consumption exceeds the set threshold, the controller 11 can throttle the I/O performance for that parameter in order to minimize power consumption and to stay within the allocated power budget. The controller 11 can, for example, self-adjust by lowering the internal power state automatically when exceeding the allocated power budget. The controller 11 can then report back to the local service processor 50 so that the local service processor 50 can reallocate the available power to some other devices which may need additional power. The controller 11 may also collect statistics about such performance throttling on a fine granularity.
In further embodiments, the local service processor 50 can also monitor and detect thermal load increases (temperature rises) or operate the resource during peak utility rate such as hot day times or during brown-out periods to ensure that each storage device 10 is behaving as intended performance-wise.
The above feature makes the storage device capable of autonomous optimizing power vs. performance vs. assigned power budget/state.
The firmware of the controller 11 can fetch power measurement information from the PMU 14 and store it in the control memory buffer of the memory 12. The control memory buffer can be updated at any designated time unit. The local service processor 50 can then query the power measurement information by reading the power measurements directly from the controller memory buffer of the memory 12. The power measurements can be read from the control memory buffer via the controller/host interface 42. If the controller/host interface 42 is PCIe, the power measurement information can go through the PCIe to directly process memRd/memWr based on the BAR configuration in order to read from the control memory buffer. In other embodiments, the power measurement information can go through side band such as SmBus or I2C to directly access the control memory buffer.
Alternative to
The power log 70 can include in its table entries the various PowerStates 71 and each PowerState's respective MP 72, AP 73 and additional information for identifying the power measurements and a relationship among Max Power/Power State, Actual Power, and QoS. QoS information can include, for example, current Entry Latency (ENTLAT), current Exit Latency (EXTLAT), RRT (Relative Read Throughput), RWT (Relative Write Throughput) and other suitable variables.
The current PowerState 71 is retrieved by the local service processor 50 through the GetFeature (FeatureID=0x2), as discussed with respect to
As discussed above, once the local service processor 50 has access and can read the power measurements, the local service processor 50 can then use that information to create graphs or histograms to trend projections and to run diagnostics.
Embodiments of the present invention also enable the local service processor to provide individual actual power profiles of each storage devices in the system to software developers, cloud service providers, users and others by allowing them to know the actual power consumption of their workloads consumed on each storage device. This provides the ability for software developers/users to optimize performance based on the actual cost of energy and also allows cloud service providers to provide more accurate billing of storage system users based on actual power consumption. Embodiments of the present invention can also provide better policing and tracking of storage devices violating an allocated power budget.
Embodiments of the present invention may be used in a variety of areas. For example, the embodiments of the present invention provide building blocks of crucial information that may be used for analysis purposes for artificial intelligence software, such as Samsung's DCP. The embodiments also provide information that may be useful to an ADRC (Active Disturbance Rejection) High Efficient Thermal control based system.
Although exemplary embodiments of the present invention have been described, it is understood that the present invention should not be limited to these exemplary embodiments but various changes and modifications can be made by one ordinary skilled in the art within the spirit and scope of the present invention as hereinafter claimed by appended claims and equivalents thereof.
Claims
1. A solid state storage device for reporting actual power consumption to a host processor comprising:
- an internal power metering unit;
- a memory including flash memory;
- two or more components comprising at least a controller and the memory, wherein the memory has stored thereon instructions that are configured to be executed by the controller, wherein the controller is capable of receiving information from the power metering unit via an interface and sending the information to the host processor; and
- one or more voltage rails connecting the power metering unit to the controller and the memory so that the power metering unit is capable of individually measuring a power consumed by the controller and a power consumed by the memory;
- wherein the information comprises power measurement information and the power measurement information comprises the measurements taken by the power metering unit measuring the power consumed by the controller and the power consumed by the memory; and
- wherein the memory has stored thereon instructions that, when executed by the controller, cause the controller to provide a power profile of the storage device based on the power measurement information measuring the power consumed by the controller and the power consumed by the memory to the host processor for sending to a cloud service provider.
2. The storage device of claim 1, wherein the memory has stored thereon instructions that, when executed by the controller, cause the controller to fetch the power measurement information from the power metering unit.
3. The storage device of claim 2, wherein the memory has stored thereon instructions that, when executed by the controller, cause the controller to send the power measurement information to a local service processor external to the storage device.
4. The storage device of claim 2, wherein the memory has stored thereon instructions that, when executed by the controller, cause the controller to save the power measurement information in a power log.
5. The storage device of claim 4, wherein the power log comprises proprietary log pages.
6. The storage device of claim 2, wherein the power measurement information is timestamped and annotated with a host ID.
7. The storage device of claim 1, wherein the memory has stored thereon instructions that, when executed by the controller, cause the controller to send a request to a local service processor requesting the power measurement budget limiting power consumption of the storage device.
8. The storage device of claim 7, wherein the memory has stored thereon instructions that, when executed by the controller, cause the controller to set the power measurement budget of the power metering unit.
9. The storage device of claim 1, wherein the memory has stored thereon instructions that, when executed by the controller, cause the controller to throttle the power consumed by the one or more components of the storage device in order to stay within the power measurement budget.
10. A method of reporting power consumption of a solid state storage device, the storage device comprising an internal power metering unit, a memory including flash memory, two or more components comprising at least a controller and the memory, wherein the memory has stored thereon instructions that are configured to be executed by the controller, and one or more voltage rails connecting the power metering unit to the controller and the memory of the one or more components, the method comprising:
- receiving information at the controller from the power metering unit via an interface;
- sending the information to a host processor from the controller;
- individually measuring at the power metering unit a power consumed by the controller and a power consumed by the memory, wherein said individual measurements comprise power measurement information;
- providing a power profile of the storage device based on the power measurement information measuring the power consumed by the controller and the power consumed by the memory to the host processor; and
- sending the power profile from the host processor to a cloud service provider.
11. The method of claim 10, further comprising fetching the power measurement information from the power metering unit by the controller.
12. The method of claim 10, further comprising sending power measurement information to a local service processor external to the storage device.
13. The method of claim 11, further comprising saving the power measurement information in a power log.
14. The method of claim 11, wherein the power measurement information is timestamped and annotated with a host ID.
15. The method of claim 10, further comprising requesting a power measurement budget limiting a maximum power consumption of the storage device from a local service processor.
16. The method of claim 15, further comprising setting the power measurement budget of the power metering unit.
17. The method of claim 10, further comprising throttling the power consumed by the two or more components of the storage device in order to stay within the power measurement budget.
18. A storage system comprising:
- a local service processor, and
- one or more solid state storage devices connected to the local service processor, each solid state storage device of the one or more solid state storage devices comprising: an internal power metering unit; a memory including flash memory; two or more components comprising at least a controller and the memory, wherein the memory has stored thereon instructions that are configured to be executed by the controller, wherein the controller is capable of receiving information from the power metering unit via an interface and sending the information to the local service processor; and one or more voltage rails connecting the power metering unit to the controller and the memory so that the power metering unit is capable of individually measuring a power consumed by the controller and a power consumed by the memory; wherein the information comprises power measurement information and the power measurement information comprises the measurements taken by the power metering unit measuring the power consumed by the controller and the power consumed by the memory; and wherein the memory has stored thereon instructions that, when executed by the controller, cause the controller to provide a power profile of the one or more storage devices based on the power measurement information measuring the power consumed by the controller and the power consumed by the memory to the local service processor wherein the local service processor comprises a memory and a controller, and the memory of the local service processor has stored thereon instructions that are configured to be executed by the controller of the local service processor, wherein the controller of the local service processor is capable of sending the power profile to a cloud service provider.
19. The storage device of claim 1, wherein the power metering unit is configured to supply power to the controller and the memory via the one or more voltage rails.
6574740 | June 3, 2003 | Odaohhara et al. |
6785827 | August 31, 2004 | Layton et al. |
7064994 | June 20, 2006 | Wu |
7269751 | September 11, 2007 | Janakiraman et al. |
7539881 | May 26, 2009 | Shaw et al. |
8051316 | November 1, 2011 | Roberts et al. |
9477295 | October 25, 2016 | Jreji et al. |
10268262 | April 23, 2019 | Khatri et al. |
10324642 | June 18, 2019 | Sweere et al. |
10424938 | September 24, 2019 | Guo et al. |
11093135 | August 17, 2021 | Ali |
20030088798 | May 8, 2003 | Ono |
20040215912 | October 28, 2004 | Vergis et al. |
20050102544 | May 12, 2005 | Brewer et al. |
20060288241 | December 21, 2006 | Felter et al. |
20070028130 | February 1, 2007 | Schumacher |
20070067657 | March 22, 2007 | Ranganathan et al. |
20080043556 | February 21, 2008 | Nale |
20090287947 | November 19, 2009 | DuBose |
20100019576 | January 28, 2010 | Buterbaugh et al. |
20100164292 | July 1, 2010 | Freeman et al. |
20100264741 | October 21, 2010 | Togare |
20110029788 | February 3, 2011 | Domingo et al. |
20110144818 | June 16, 2011 | Li et al. |
20110178652 | July 21, 2011 | Carter et al. |
20120030489 | February 2, 2012 | Patil et al. |
20120137172 | May 31, 2012 | Gardelegen et al. |
20120210149 | August 16, 2012 | Carter et al. |
20120303993 | November 29, 2012 | Nishtala et al. |
20130085623 | April 4, 2013 | Izumisawa et al. |
20130185583 | July 18, 2013 | Stewart |
20140003180 | January 2, 2014 | Matsuda |
20140101475 | April 10, 2014 | Berke et al. |
20140149760 | May 29, 2014 | Drake et al. |
20140281606 | September 18, 2014 | Evans et al. |
20150120874 | April 30, 2015 | Kim et al. |
20150121113 | April 30, 2015 | Ramamurthy et al. |
20150177814 | June 25, 2015 | Bailey et al. |
20150200566 | July 16, 2015 | Huang et al. |
20150249363 | September 3, 2015 | Humphrey, Jr. et al. |
20150309752 | October 29, 2015 | Ellis |
20150331473 | November 19, 2015 | Jreji et al. |
20150338910 | November 26, 2015 | Allen-Ware et al. |
20150362985 | December 17, 2015 | Thompson |
20160014045 | January 14, 2016 | Terai |
20160085288 | March 24, 2016 | Khatib et al. |
20160179117 | June 23, 2016 | Eastep |
20160282892 | September 29, 2016 | Saavedra et al. |
20160370843 | December 22, 2016 | Gatson et al. |
20170011150 | January 12, 2017 | Sons et al. |
20170031409 | February 2, 2017 | Lester et al. |
20170031431 | February 2, 2017 | Khatri et al. |
20170031857 | February 2, 2017 | Qiu |
20170160781 | June 8, 2017 | Piga et al. |
20170177262 | June 22, 2017 | Sharma et al. |
20170235519 | August 17, 2017 | Qiu et al. |
20170315599 | November 2, 2017 | Marripudi et al. |
20170322613 | November 9, 2017 | Lin et al. |
20180107258 | April 19, 2018 | Remis et al. |
20180232303 | August 16, 2018 | Roeder |
20190018474 | January 17, 2019 | Bacchus |
20190018611 | January 17, 2019 | Kim |
20190065089 | February 28, 2019 | Myers |
20190065243 | February 28, 2019 | Eckert |
20190196742 | June 27, 2019 | Yudanov |
20190272021 | September 5, 2019 | Olarig |
20200125159 | April 23, 2020 | Messick et al. |
20210026428 | January 28, 2021 | Olarig et al. |
20210089102 | March 25, 2021 | Kachare et al. |
20210232198 | July 29, 2021 | Kachare et al. |
104951384 | September 2015 | CN |
10-2006-0009264 | January 2006 | KR |
- U.S. Office Action dated Jul. 8, 2020, issued in U.S. Appl. No. 16/167,306 (27 pages).
- MPS, The Future of Analog IC Technology, “PMU for SSD Evaluation Board”, EV5505A-L-00A, Rev. 1.1, Mar. 24, 2015, 6 pages, www.MonolithicPower.com.
- U.S. Final Office Action dated Sep. 14, 2020, issued in U.S. Appl. No. 16/167,306 (13 pages).
- U.S. Notice of Allowance dated Mar. 10, 2021, issued in U.S. Appl. No. 16/167,306 (10 pages).
- U.S. Office Action dated Aug. 31, 2021, issued in U.S. Appl. No. 17/112,933 (38 pages).
- U.S Final Office Action dated Dec. 22, 2021, issued in U.S. Appl. No. 17/112,933 (31 pages).
- Notice of Allowance for U.S. Appl. No. 16/167,306 dated Feb. 9, 2022, 8 pages.
- Notice of Allowance for U.S. Appl. No. 16/167,306 dated Jun. 4, 2021, 9 pages.
- Notice of Allowance for U.S. Appl. No. 16/167,306 dated May 3, 2022, 9 pages.
- Notice of Allowance for U.S. Appl. No. 16/167,306 dated Nov. 23, 2020, 9 pages.
- Notice of Allowance for U.S. Appl. No. 16/167,306 dated Sep. 1, 2021, 9 pages.
- Office Action for U.S. Appl. No. 17/112,933 dated Mar. 14, 2022, 38 pages.
- Office Action for U.S. Appl. No. 17/233,303 dated Apr. 27, 2022, 28 pages.
- Restriction Requirement for U.S. Appl. No. 16/167,306 dated Apr. 20, 2020, 12 pages.
- Restriction Requirement for U.S. Appl. No. 17/233,303 dated Jan. 19, 2022, 9 pages.
- U.S. Final Office Action dated Jul. 19, 2022, issued in U.S. Appl. No. 17/112,933 (47 pages).
- U.S. Notice of Allowance dated Aug. 18, 2022, issued in U.S. Appl. No. 16/167,306 (8 pages).
Type: Grant
Filed: May 9, 2018
Date of Patent: Oct 25, 2022
Patent Publication Number: 20190272021
Assignee: Samsung Electronics Co., Ltd. (Suwon-si)
Inventors: Sompong Paul Olarig (Pleasanton, CA), Wentao Wu (Milpitas, CA), Ramdas P. Kachare (Cupertino, CA)
Primary Examiner: Chad G Erdman
Application Number: 15/975,463
International Classification: G06F 1/3234 (20190101); G06F 1/26 (20060101); H04L 67/1097 (20220101); G11C 5/14 (20060101); G06F 1/3206 (20190101);