The exemplary embodiment(s) of the present invention relates to the field of semiconductor and integrated circuits. More specifically, the exemplary embodiment(s) of the present invention relates to non-volatile memory (“NVM”) solid state drive (“SSD”) auxiliary plug or SFP auxiliary plug (“SAP”) able to provide bridge and storage function.
With increasing popularity of electronic devices, such as computers, smart phones, mobile devices, server farms, mainframe computers, and the like, the demand for more and faster data is constantly growing. To handle and facilitate voluminous data between various devices, NVM devices which can store data persistently are typically required. A conventional type of NVM device, for example, is a flash based storage device such as, for example, an SSD.
A flash based SSD, for example, is an electronic NVM storage device capable of maintaining, erasing, and/or reprogramming data. The flash memory can be fabricated with several different types of integrated circuit (“IC”) technologies such as NOR or NAND logic gates with, for example, floating-gate transistors. Depending on the applications, the organization of a flash based SSD can be in blocks, pages, words, and/or bytes.
A problem associated with a traditional SSD device is that it typically requires connection cables, connectors, and/or sockets.
An SFP auxiliary plug (“SAP”), NVM SSD auxiliary (“NSA”) plug, or SFP NVM SSD (“SNS”) plug capable of providing bridge and/or storage functions, is structured in a small form-factor pluggable (“SFP”) or quad small form-factor pluggable (“QSFP”) configuration. In one aspect, the SAP includes an Ethernet connector, NVM storage, bridge component, and memory controller. The Ethernet connector is pluggable to an Ethernet socket situated at a network system for data transmission. The NVM storage can store information persistently. The bridge component facilitates protocol conversion capable of converting data formatted between Ethernet protocol and serial bus protocol for network communication. Alternatively, the bridge component is able to convert between Ethernet data format and optical data format. The memory controller is able to facilitate and/or route data traffic between an output port of SAP or NSA plug for network communication and the NVM storage for data storage.
Additional features and benefits of the exemplary embodiment(s) of the present invention will become apparent from the detailed description, figures and claims set forth below.
The exemplary embodiment(s) of the present invention will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention, which, however, should not be taken to limit the invention to the specific embodiments, but are for explanation and understanding only.
Embodiments of the present invention are described herein with context of a method and/or apparatus for providing a small auxiliary pluggable device capable of performing functions of network communication and data storage.
The purpose of the following detailed description is to provide an understanding of one or more embodiments of the present invention. Those of ordinary skills in the art will realize that the following detailed description is illustrative only and is not intended to be in any way limiting. Other embodiments will readily suggest themselves to such skilled persons having the benefit of this disclosure and/or description.
In the interest of clarity, not all of the routine features of the implementations described herein are shown and described. It will, of course, be understood that in the development of any such actual implementation, numerous implementation-specific decisions may be made in order to achieve the developer's specific goals, such as compliance with application- and business-related constraints, and that these specific goals will vary from one implementation to another and from one developer to another. Moreover, it will be understood that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skills in the art having the benefit of embodiment(s) of this disclosure.
Various embodiments of the present invention illustrated in the drawings may not be drawn to scale. Rather, the dimensions of the various features may be expanded or reduced for clarity. In addition, some of the drawings may be simplified for clarity. Thus, the drawings may not depict all of the components of a given apparatus (e.g., device) or method. The same reference indicators will be used throughout the drawings and the following detailed description to refer to the same or like parts.
In accordance with the embodiment(s) of present invention, the components, process steps, and/or data structures described herein may be implemented using various types of operating systems, computing platforms, computer programs, and/or general purpose machines. In addition, those of ordinary skills in the art will recognize that devices of a less general purpose nature, such as hardware devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or the like, may also be used without departing from the scope and spirit of the inventive concepts disclosed herein. Where a method comprising a series of process steps is implemented by a computer or a machine and those process steps can be stored as a series of instructions readable by the machine, they may be stored on a tangible medium such as a computer memory device (e.g., ROM (Read Only Memory), PROM (Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read Only Memory), FLASH Memory, Jump Drive, and the like), magnetic storage medium (e.g., tape, magnetic disk drive, and the like), optical storage medium (e.g., CD-ROM, DVD-ROM, paper card and paper tape, and the like) and other known types of program memory.
The term “system” or “device” is used generically herein to describe any number of components, elements, sub-systems, devices, packet switch elements, packet switches, access switches, routers, networks, computer and/or communication devices or mechanisms, or combinations of components thereof. The term “computer” includes a processor, memory, and buses capable of executing instruction wherein the computer refers to one or a cluster of computers, personal computers, workstations, mainframes, or combinations of computers thereof.
One exemplary embodiment of the present invention discloses an NSA, SAP, SNS plug capable of facilitating network communication as well as data storage. In one example, the auxiliary plug is structured in an SFP or quad SFP (“QSFP”) configuration. The SAP or NSA plug includes an Ethernet connector, NVM storage, bridge component, and memory controller. The Ethernet connector, in one embodiment, is pluggable into an Ethernet socket which may be situated at a network system for data transmission. The memory controller is configured to optionally store the data received from the network system at a local or embedded memory. Alternatively, the memory controller can pass the data to the bridge component without storing the data first. The bridge component is able to convert the data from the data formatted in Ethernet protocol to the data formatted in Universal Serial Bus (USB) protocol. Alternatively, the bridge component is able to convert between Ethernet data format and optical data format. The memory controller is able to facilitate and/or route data traffic between an output port of NSA plug for network communication and the NVM storage for data storage.
It should be noted that the terms “SAP,” “NSA,” and “SNS” refer to similar or the same small auxiliary plug in compliance with SFF standards, such as SFP, QSFP, SFP+, SFP28, compact SFP, SFP/SFP+, or the like. To simplify the forgoing discussion, SAP is primarily used in place of NSA and SNS.
Digital processing system 122, in one example, can be a network router which includes multiple ports 128 used for network communications. A network router, for example, includes a group of ports physically configured in small form factor sockets such as SFP or QSFP sockets. Each SFP socket, for instance, includes a connector 130 which is used to electrically couple to connector of a plug. A function of SFP socket, in one example, is to facilitate storing data and/or transmitting data.
SFP format is generally relating to small size pluggable transceiver used for data communications. It should be noted that the form factor and electrical interface are standard defined by a multi-source agreement (“MSA”) under the SFF (small form factor) committee. An application of such SFP is to facilitate network communication between optical data and electrical data. For instance, SFP transceivers support various communication methods, such as, but not limited to, SONET, gigabit Ethernet, Fibre Channel, and other communications standards.
SAP 126, in one embodiment, has a front side 120 and back side 124 wherein front side 120 and back side 124 are connected by a printed circuit board (“PCB”) 102. PCB 102, in one aspect, includes a connector 104, memory controller 156, bridge 107, NVM 158, and auxiliary interface or auxiliary connector 110. While connector 104 can be used to connect a socket connector or socket contact 130, memory controller 156, also known as controller, includes a host interface module, CPU, buffer, and NVM interface. NVM 158, in one example, includes one or more NVM dies having a storage range from 64 GB to 512 TB. Auxiliary interface 110, in one aspect, is used to provide extended storage capacity. Alternatively, auxiliary interface 110 can also be used to couple to a second SFP plug, secondary power supply, or optical SFP transceiver.
Bridge or bridge component 107 is used to facilitate performing a function of transmitting network traffic between connector 104 and auxiliary interface 110. In one aspect, component 107 is configured to convert data formats for preparing and facilitating network transmission. For example, bridge component 107 is able to convert data format between USB protocol and Ethernet protocol.
In operation, SAP 126 can be inserted into any one of SFP sockets 128 at a digital processing system 122 wherein front side 120 of SFP plug 126 enters an SFP socket 128 to reach connector 130. After handshaking initialization between SAP 126 and digital processing system 122, digital processing system 122 can access NVM 108 via SAP 126. In one example, digital processing system 122 views SAP 126 as a high-speed external storage memory for storing data.
SAP 150, in one embodiment, is structured or fabricated into a small or compact configuration that is capable of directly coupling to the back panel of a system. For example, SAP 150 can be structured in a USB based SFF (small form factor) configured to couple to a USB socket located at the back panel of the system or another adapter. The system (not shown in
The Ethernet connector, in one example, includes a female Ethernet connector capable of receiving a male Ethernet plug or connector. The Ethernet connector can be, but not limited to, RJ45 connector, HDMI (high definition multimedia interface), DVI (Digital Visual Interface), Thunderbolt™, USB, and the like.
Memory controller 156, in one embodiment, is coupled to memory 158 and bridge component 150, and contains firmware such as flash translation layer (“FTL”) table to manage memory 158 for storing and retrieving stored data at memory 158. In one aspect, memory 158 can be volatile, nonvolatile, or a combination of volatile and/or nonvolatile memory. For example, volatile memory includes DRAM and/or SRAM which is a type of computer memory that requires power to maintain stored data. The nonvolatile memory includes ROM (read-only memory) flash memory, F-RAM (ferroelectrical RAM), optical discs, hard disk drive (HDD) and the like that do not require power to sustain stored data.
Bridge component 160, in one embodiment, is a converter capable of translating data between Ethernet protocol and USB protocol whereby the data can be transmitted between Ethernet port(s) and USB port(s). In one aspect, bridge component 160 is coupled to memory controller 156 which manages the timing of data transmission between Ethernet port and USB port. For example, memory controller 156 is capable of deciding whether the incoming data from the Ethernet port should be stored in memory 158 or should be passed onto bridge component 160 for transmission.
During an operation, upon receipt of incoming information from an Ethernet port, memory controller 156 is able to store the incoming information at memory 158 if the incoming information is labeled or addressed for storage. Alternatively, memory controller 156 can pass the incoming information directly to bridge component 160 for conversion as well as transmission if the incoming information is labeled or addressed for transmission. Also, memory controller 156 can temporarily store incoming data at memory 158, and subsequently forward the stored incoming data to bridge component 160 for transmission. In addition, memory controller 156 can also transmit and store data simultaneously.
In one aspect, SAP 150 which is capable of facilitating data transmission as well as data storage includes an Ethernet connector, NVM storage 158, bridge component 160, memory controller 156, and USB connector. The Ethernet connector is configured to be pluggable to an Ethernet socket which can be situated at the back panel of a network system for data transmission. Bridge 160, in one example, is able to facilitate protocol conversion capable of converting data formatted between Ethernet protocol and a serial bus protocol. The USB connector, in one example, is a USB socket coupled to bridge 160 and configured to transmit data formatted in USB protocol between the USB socket and the Ethernet socket.
Memory controller 156 is configured to route data traffic between an output port of SAP 150 and NVM storage 158. In one example, memory controller 156 is able to detect a second network device which is coupled to the USB socket via a USB connector. Memory controller 156 is further configured to draw power from an attached system such as the network system via an Ethernet connector. Alternatively, memory controller 156 can draw power from a USB socket which is connected to a USB device. Furthermore, memory controller 156 can manage drawing power from an external power source or a portable power source.
NVM storage 158 can store information persistently wherein the storage can be flash based NVM. Alternatively, NVM storage 158 can be phase change memory (“PCM”). In one example, NVM storage 158 can also include volatile memory capable of buffering data transmission between Ethernet connector and bridge component 160.
Ethernet connector is a registered jack 45 (“RJ45”) plug. Alternatively, Ethernet connector can be an SFP plug. It should be noted that SAP 150 can be physically structured in SFP or QSFP. SAP 150 is a SFP NVM SSD storage device capable of storing data. In one aspect, SAP 150 includes an SFP housing which houses NVM storage 158, bridge component 160, and memory controller 156 configured to be fabricated with thermal conductive material capable of dissipating heat for SAP.
An advantage of employing the extension auxiliary plug or SAP is that it provides additional storage capacity without requiring additional port(s). Another advantage of using the extension auxiliary plug is that it is able to dissipate heat generated by the embedded electronics such as memory 158 and controller 156.
Diagram 202 is similar to diagram 200 except that diagram 202 contains a bridge component 160. In one aspect, the Ethernet connector is an RJ45 connector while the other connector is a USB connector which could also be USB 2.0 or USB 3.0 connector. In one example, bridge component 160 is able to convert signals or data between Ethernet protocols and USB protocols (including USB 2.0 or USB 3.0 standards). The SAP, adapter, or auxiliary plug as illustrated in diagrams 200-202 can be directly inserted or plugged into a system or another auxiliary plug. A function of auxiliary plug is to provide in-band pass through Ethernet based storage adapter. Note that the auxiliary plug can be structured in any suitable configurations, such as small form factor, small dongle, SFP, QSFP, and the like.
It should be noted that auxiliary plug as illustrated in diagram 300 is configured to facilitate in-band storage that can be accessed by Ethernet or USB. In-band storage, in one example, is a storage process capable of transporting data or data traffic to output port 318 upon receiving a traffic stream from Ethernet port 316. Alternative, memory controller 156 is able to store data in memory 158 while the data is traveling from input port 316 to output port 318 via memory controller 156. Depending on the applications, protocol conversion for data may or may not be required.
In operation, upon receiving a data stream or data traffic from Ethernet port 308, memory controller 156 identifies whether the data stream is for storage, Ethernet transmission, and/or USB transmission. If the data is for storage, the data stream is stored in memory 158. If the data is for Ethernet transmission with no conversion required, the data stream is passed to Ethernet output port 306 via a RJ45 connector. If the data is for USB transmission and conversion is required, the data steam is forwarded to USB output port 310 after protocol conversion. If the data is for storage, USB transmission, and Ethernet transmission, the data stream is first stored in memory 158 and after protocol conversion, the data stream is forwarded to both Ethernet output ports 306 and USB output port 310.
Diagram 302 is similar to diagram 300 except that bridge component 160 is removed and port 318 is configured in compliance with QSFP or SFP. It should be noted that auxiliary plug as illustrated in diagram 302 is configured to facilitate in-band storage that can be accessed by Ethernet. In-band storage, in one example, is a storage process capable of transporting data or data traffic to output port 318 upon receiving a traffic stream from Ethernet port 316. Alternative, memory controller 156 is able to store data in memory 158 while the data is traveling from input port 316 to output port 318 via memory controller 156. In an alternative embodiment, memory 158 can be extended to external memory storage using a cable.
In one aspect, auxiliary plug 516 is pluggable to port 518 of system 502 via RJ 45 coupling standard, and auxiliary plug 512 is pluggable to port 522 of system 502 via HDMI coupling standard. System 502, which can be a router, switch, modem, server, hub, et cetera, includes multiple ports 508 which can be SFP sockets or QSFP sockets capable of hosting SFP devices 506. It should be noted that SFP or QSFP device 506 can also be referred to as QSPF, SFP, SFP+ modules, devices, and/or plugs. SFP or QSFP device 506, in one embodiment, is an SFP auxiliary plug capable of supplying power to neighboring SFP devices via a second connector 504. The first connector 520 of SFP device 506 is used to couple to a connector 510 in a port such as, for example, female SFP connector located at system 502.
In addition to data transmission, SAPs 602-608 contain memory storage capable of storing data. SAPs 602-608 can store data, transmit data, or store and transmit data concurrently. It should be noted that if the auxiliary plug can be used for network traffic, data storage, and/or information buffering, large memory capacity of NVM or VM (volatile memory) may be required.
NVM memory device such as a flash memory package 702 contains one or more flash memory dies or LUNs wherein each LUN or die 704 is further organized into more NVM or flash memory planes 706. For example, die 704 may have a dual planes or quad planes. Each NVM or flash memory plane 706 can include multiple memory blocks or blocks. In one example, plane 706 can have a range of 1000 to 8000 blocks 708. Each block such as block 708 can have a range of 64 to 1024 pages. For instance, a flash memory block can have 256 or 1024 pages as indicated by numeral 710.
A flash memory page, for example, can store data from 8 Kbytes (kilobytes) to 64 Kbytes of data plus extra redundant area for ECC parity data to be stored. One flash memory block is the minimum unit of erase. One flash memory page is the minimum unit of program. To avoid marking an entire flash memory block bad or defective which will lose anywhere from 256 to 1024 flash memory pages, a page removal or decommission can be advantageous. It should be noted that 4 Megabytes (“MB”) to 16 MB of storage space can be saved to move from block decommissioning to page decommissioning.
Note that based on flash memory characteristics, a relatively small number of flash memory pages can usually be defective or become bad or unusable when the flash memory page PE (program erase) cycles, for example, are getting higher. For example, the bad page during program or read operation of that flash memory page can be discovered. A bad page can also be discovered if that page has much higher read errors during the normal read work load. A bad page can be further discovered when that page is bad and other pages in the same block are good.
SAP is configured in compliance with SFF coupling standards which offer high-speed, physical compactness, and versatility of utilizing existing networking sockets for storage. For example, such SFF connectors are used by switches and routers for transmitting electrical as well as optical information. An advantage of using SAP is hot-swappable.
SFP module 728, which could be part of FTL 784, is configured to implement and/or facilitate SSD functions in SAP. For example, SFP module 708 is responsible to communicate with host(s) using small form factor connection. Also, SFP module 728 facilitates the handshaking process between SAP and host upon initial connection.
Storage device 783, in one example, includes a flash memory based NVM used in SSD. The flash memory cells are organized in multiple arrays for storing information persistently. The flash memory, which generally has a read latency less than 100 microseconds (“μs”), can be organized in logic units (“LUN”), planes, blocks, and pages. A minimum access unit such as read or write operations, for example, can be set to a page or NAND flash page which can be four (4) Kbyte, eight (8) Kbyte, or sixteen (16) Kbyte memory capacity depending on the flash memory technology employed. A minimum unit of erasing used NAND flash memory is generally set to be a block or NVM block at a time. An NVM block, in one example, can contain from 512 to 2048 pages.
Referring back to
FTL 784, which may be implemented in DRAM, includes a FTL database or table that stores mapping information. For example, the size of FTL database is generally a positive proportion to the total storage capacity. For instance, one way to implement the FTL in SSD is that it uses a DRAM size that approximately equals to 1/1000 of SSD capacity. Since each page has a 4-Kbyte capacity and each entry of FTL database has a 4-byte capacity of entry, the size of FTL database can be calculated as SSD capacity /4KByte*4Byte (SSD capacity/1000) which is approximately 1 over 1000 (or 1/1000).
In operation, upon receipt of data input or data packets 702, FTL 784 maps LBA to physical page address (“PPA”) in storage device 783. After identifying PPA, write circuit 787 writes the data from data packets 782 to a page or pages within a block pointed by PPA. In one aspect, SFP 728 allocates or divides storage space into basic storage units wherein the storage capacities for the basic storage units are essentially the same or similar.
It should be noted that storage device 783 can also include NAND flash memory, NOR flash memory, phase change memory (“PCM”), nano random access memory (“NRAM”), magneto-resistive RAM (“MRAM”), resistive random-access memory (“RRAM”), programmable metallization cell (“PMC”), magnetic storage media (e.g., hard disk, tape), optical storage media, or the like. To simplify the forgoing discussion, the flash memory or flash memory based SSD is herein used as an exemplary NVM or NV storage device.
In one embodiment, PCB 102 illustrates exemplary mechanical layout for SFP or QSFP storage device. The SFP or QSFP, in one example, is a closely packaged device having a pluggable connector which is used for hot-pluggable component. For instance, network transceivers used for both telecommunication and data communications applications are configured in SFP and/or QSFP. The small compact shape (or small form factor) and electrical/optical interface are specified by a multi-source agreement (“MSA”). For example, SFP transceivers may be for SONET, gigabit Ethernet, Fibre Channel, and other communications standards. The QSFP is also used for Ethernet, Fibre Channel, InfiniBand and SONET/SDH standards. Also, QSFP+ports are usually used for serial attached SCSI, Ethernet, QDR and FDR Infiniband, and the like.
In one embodiment, QSFP SAP capable of storing data and transmitting data traffic includes an Ethernet connector, NVM storage, wireless USB manager, and memory controller. The Ethernet connector is configured to be pluggable to an Ethernet socket situated at a network system such as a router for data transmission. The NVM storage coupled to the Ethernet connector is configured to store information persistently. The wireless USB manager is able to receive and transmit data formatted in wireless protocol and facilitate data traffic to and from the Ethernet connector. The memory controller is configured to forward the data traffic from the Ethernet connector to the NVM storage or the USB manager in response to control signals in the header portion of data traffic.
Diagram 1010 illustrates an SFP SAP capable of handling data storage as well as data transmission. Diagram 1020 illustrates an SFP assemble including SFP cage 1012, SFP SAP 1014, transceiver adapter 1016, and optical cover 1018. In one example, SFP cage 1012 is located at a host system which is capable of receiving SFP SAP 1014. Adapter 1016, in one example, is able to receive two optical fibers. It should be noted that the underlying concept of the exemplary embodiment(s) of the present invention would not change if one or more blocks (or devices) were added to or removed from diagram 1020.
In one embodiment, SFP SAP 1010 capable of storing data as well as transmitting data traffic includes an Ethernet connector, NVM storage, optical convertor, and memory controller. The Ethernet connector is configured to be pluggable to an Ethernet socket situated at a network system such as a switch for data transmission. The NVM storage can store information persistently. The optical convertor is configured to convert data between optical signals and electrical signals. The memory controller is able to forward data traffic from the Ethernet connector to the NVM storage or the optical convertor in response to control signals in the header of data traffic.
Server 1104 is coupled to wide-area network 1102 and is, in one aspect, used to route data to clients 1110-1112 through a local-area network (“LAN”) 1106. Server 1104 is coupled to SFP/QSFP SDD storage device 1105 wherein the storage controller is able to decommission or logically remove defective page(s) from a block to enhance overall memory efficiency. In one aspect, an SFP auxiliary plug is used to provide additional power supply to SSD storage device 1105.
The LAN connection allows client systems 1110-1112 to communicate with each other through LAN 1106. Using conventional network protocols, USB portable system 1130 may communicate through wide-area network 1102 to client computer systems 1110-1112, supplier system 1120 and storage device 1122. For example, client system 1110 is connected directly to wide-area network 1102 through direct or dial-up telephone or other network transmission lines. Alternatively, clients 1110-1112 may be connected through wide-area network 1102 using a modem pool.
Having briefly described one embodiment of the computer network in which the embodiment(s) of the present invention operates,
Bus 1211 is used to transmit information between various components and processor 1202 for data processing. Processor 1202 may be any of a wide variety of general-purpose processors, embedded processors, or microprocessors such as ARM® embedded processors, Intel® Core™ Duo, Core™ Quad, Xeon®, Pentium™ microprocessor, Motorola™ 68040, AMD® family processors, or Power PC™ microprocessor.
Main memory 1204, which may include multiple levels of cache memories, stores frequently used data and instructions. Main memory 1204 may be RAM (random access memory), MRAM (magnetic RAM), or flash memory. Static memory 1206 may be a ROM (read-only memory), which is coupled to bus 1211, for storing static information and/or instructions. Bus control unit 1205 is coupled to buses 1211-1212 and controls which component, such as main memory 1204 or processor 1202, can use the bus. Bus control unit 1205 manages the communications between bus 1211 and bus 1212. Mass storage memory or SSD 106, which may be a magnetic disk, an optical disk, hard disk drive, floppy disk, CD-ROM, and/or flash memories are used for storing large amounts of data.
I/O unit 1220, in one embodiment, includes a display 1221, keyboard 1222, cursor control device 1223, and communication device 1225. Display device 1221 may be a liquid crystal device, cathode ray tube (“CRT”), touch-screen display, or other suitable display device. Display 1221 projects or displays images of a graphical planning board. Keyboard 1222 may be a conventional alphanumeric input device for communicating information between computer system 1200 and computer operator(s). Another type of user input device is cursor control device 1223, such as a conventional mouse, touch mouse, trackball, or other type of cursor for communicating information between system 1200 and user(s).
Communication device 1225 is coupled to bus 1211 for accessing information from remote computers or servers, such as server 104 or other computers, through wide-area network 102. Communication device 1225 may include a modem or a network interface device, or other similar devices that facilitate communication between computer 1200 and the network. Computer system 1200 may be coupled to a number of servers via a network infrastructure such as the infrastructure illustrated in
The exemplary embodiment of the present invention includes various processing steps, which will be described below. The steps of the embodiment may be embodied in machine or computer executable instructions. The instructions can be used to cause a general purpose or special purpose system, which is programmed with the instructions, to perform the steps of the exemplary embodiment of the present invention. Alternatively, the steps of the exemplary embodiment of the present invention may be performed by specific hardware components that contain hard-wired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
While particular embodiments of the present invention have been shown and described, it will be obvious to those of ordinary skills in the art that based upon the teachings herein, changes and modifications may be made without departing from this exemplary embodiment(s) of the present invention and its broader aspects. Therefore, the appended claims are intended to encompass within their scope all such changes and modifications as are within the true spirit and scope of this exemplary embodiment(s) of the present invention.
This application claims the benefit of priority based upon U.S. Provisional Patent Application having an application Ser. No. 62/370,194, filed on Aug. 2, 2016, and having a title of “Method and Apparatus for Providing Data Storage Embedded in Auxiliary Plugs,” which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62370194 | Aug 2016 | US |