Testing apparatus for data storage devices

11698408 · 2023-07-11

Assignee

Inventors

Cpc classification

International classification

Abstract

A testing apparatus for Data Storage Devices (DSDs) includes a chassis and at least one interface module configured to be removably inserted into the chassis and house a plurality of interface boards. Each interface board includes a DSD connector for connecting a DSD to the interface board and a backplane connector for connecting to a backplane for communicating with a respective computing unit. In one aspect, the at least one interface module includes a housing and a plurality of openings in a side of the housing with each opening configured to receive a respective interface board. A plurality of guide member pairs is positioned to guide respective interface boards when inserted into respective openings such that the backplane connector is located at a respective predetermined location for connecting to the backplane. In another aspect, the interface boards are removable from the interface module.

Claims

1. A testing apparatus for testing Data Storage Devices (DSDs), the testing apparatus comprising: a chassis; and at least one interface module configured to be removably inserted into the chassis and to house a plurality of interface boards, wherein each interface board of the plurality of interface boards includes a DSD connector for connecting a DSD to the interface board and a backplane connector for directly connecting to a backplane for communicating with a respective computing unit.

2. The testing apparatus of claim 1, wherein the at least one interface module includes a plurality of openings for receiving the plurality of interface boards, and wherein the plurality of interface boards is removable from the at least one interface module such that each interface board of the plurality of interface boards is configured to be inserted into any one of the plurality of openings of the at least one interface module.

3. The testing apparatus of claim 1, wherein the at least one interface module includes a plurality of openings for receiving the plurality of interface boards and respective DSDs, and wherein the plurality of openings includes openings of different sizes for receiving DSDs having different form factors.

4. The testing apparatus of claim 1, wherein the backplane connectors of the plurality of interface boards are of the same type and at least two of the DSD connectors of the plurality of interface boards are of different types from each other.

5. The testing apparatus of claim 1, further comprising a computing module configured to be removably inserted into the chassis and to house a plurality of computing units, wherein each computing unit of the plurality of computing units is configured to connect to the backplane.

6. The testing apparatus of claim 1, wherein the at least one interface module includes a plurality of first openings in a first side, each opening of the plurality of openings configured to receive a respective interface board, and wherein the plurality of openings is arranged in at least one horizontal row with respect to a surface upon which the testing apparatus rests.

7. The testing apparatus of claim 1, wherein the at least one interface module includes: a plurality of first openings in a first side, each opening of the plurality of openings configured to receive a respective interface board; and a plurality of guide member pairs positioned to guide respective interface boards when received in respective first openings of the plurality of first openings such that a backplane connector of the interface board is located at a predetermined location with respect to the chassis for connecting to a backplane.

8. The testing apparatus of claim 1, further comprising a thermal isolation wall separating a first space within the chassis from the backplane, the first space configured to receive the at least one interface module.

9. An interface module of a testing apparatus for testing Data Storage Devices (DSDs), the interface module comprising: a housing; a plurality of openings in a first side of the housing, each opening of the plurality of openings configured to receive a respective interface board; and a plurality of guide member pairs positioned to guide respective interface boards when inserted into respective openings of the plurality of openings such that a backplane connector of each respective interface board is located at a respective predetermined location with respect to the housing for directly connecting to a backplane of the testing apparatus.

10. The interface module of claim 9, wherein the respective interface boards are removable from the plurality of openings such that each of the respective interface boards is configured to be inserted into any one of the plurality of openings.

11. The interface module of claim 9, wherein the plurality of openings are further configured to receive respective DSDs, and wherein the plurality of openings includes openings of different sizes for receiving DSDs having different form factors.

12. The interface module of claim 9, wherein the respective interface boards further include a DSD connector for communicating with a DSD, and wherein the backplane connectors of the respective interface boards are of the same type and at least two of the DSD connectors of the respective interface boards are of different types from each other.

13. The interface module of claim 9, wherein the plurality of openings is arranged in at least one horizontal row with respect to a surface upon which the testing apparatus rests.

14. The interface module of claim 9, wherein the at least one interface module is configured to be removably inserted into a chassis of the testing apparatus.

15. The interface module of claim 9, wherein the testing apparatus includes a thermal isolation wall separating the interface module from the backplane.

16. A testing apparatus for testing Data Storage Devices (DSDs), the testing apparatus comprising: a chassis; means for housing a plurality of removable interface boards in the chassis, wherein each removable interface board of the plurality of removable interface boards is configured to be removably inserted into the means for housing the plurality of removable interface boards, wherein each removable interface board of the plurality of removable interface boards includes a DSD connector for connecting to a DSD and a backplane connector for connecting to a backplane for communicating with a respective computing unit; and a thermal isolation wall separating a first space within the chassis from the backplane, the first space configured to receive the means for housing the plurality of removable interface boards.

17. The testing apparatus of claim 16, wherein the means for housing the plurality of removable interface boards is configured to be removably inserted into the chassis.

18. The testing apparatus of claim 16, wherein the means for housing the plurality of removable interface boards is configured to guide respective removable interface boards such that when the removable interface board is inserted into the means for housing the plurality of removable interface boards, the backplane connector of each respective removable interface board is located at a respective predetermined location with respect to the chassis for connecting to the backplane.

19. The testing apparatus of claim 16, further comprising means for removably inserting a plurality of computing units into the chassis, housing a plurality of computing units, wherein each computing unit of the plurality of computing units is configured to connect to the backplane.

20. The testing apparatus of claim 16, wherein the backplane connector of each removable interface board of the plurality of removable interface boards is configured to directly connect to the backplane.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) The features and advantages of the embodiments of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings. The drawings and the associated descriptions are provided to illustrate embodiments of the disclosure and not to limit the scope of what is claimed.

(2) FIG. 1 is a front perspective view of an exterior of a testing apparatus according to one or more embodiments.

(3) FIG. 2 is a front view of the testing apparatus of FIG. 1 with certain interior components exposed according to one or more embodiments.

(4) FIG. 3 is a front perspective view of an interface module according to one or more embodiments.

(5) FIG. 4 is a front perspective view of an interface module housing Data Storage Devices (DSDs) and interface boards according to one or more embodiments.

(6) FIG. 5 depicts interface boards connected to DSDs having different form factors according to one or more embodiments.

(7) FIG. 6 depicts front views of interface modules used for DSDs having different form factors according to one or more embodiments.

(8) FIG. 7 is a front perspective view of the interface modules of FIG. 6 when housing DSDs and interface boards according to one or more embodiments.

(9) FIG. 8 is a rear perspective of a testing apparatus depicting a removable computing module before complete insertion into or complete removal from the testing apparatus according to one or more embodiments.

(10) FIG. 9 is a rear perspective of a removable computing module according to one or more embodiments.

DETAILED DESCRIPTION

(11) In the following detailed description, numerous specific details are set forth to provide a full understanding of the present disclosure. It will be apparent, however, to one of ordinary skill in the art that the various embodiments disclosed may be practiced without some of these specific details. In other instances, well-known structures and techniques have not been shown in detail to avoid unnecessarily obscuring the various embodiments.

(12) FIG. 1 is a front perspective view of an exterior of testing apparatus 100 according to one or more embodiments. Testing apparatus 100 is used to test Data Storage Devices (DSDs), which may also be referred to herein as Devices Under Test (DUTs). In some implementations, testing apparatus 100 can be used, for example, to test DSDs, such as Solid State Drives (SSDs). The testing can be performed by, for example, a manufacturer as part of a quality control process or to test performance capabilities of the DSDs at different temperatures, such as data retention or to determine safe temperature operating limits. Such temperature controlled testing is described in further detail in application Ser. No. 17/412,889, which is incorporated by reference above.

(13) As shown in FIG. 1, testing apparatus 100 rests on surface 10, which may be a floor or other substantially horizontal surface (e.g., within 5 degrees of a ground plane) for supporting testing apparatus 100. As used herein, horizontal or substantially horizontal can refer to a plane that is parallel or substantially parallel (e.g., within 5 degrees) to a surface upon which testing apparatus 100 rests (i.e., surface 10). Testing apparatus 100 includes door 104 that provides access to an interior chamber or space (e.g., chamber 140 in FIG. 2) within chassis 106 that can receive the DSDs to be tested. Door 104 includes intake vents 108.sub.A and 108.sub.B for drawing in a fluid, such as air, from an exterior of testing apparatus 100 to cool the DSDs inside testing apparatus 100.

(14) In the example of FIG. 1, testing apparatus 100 includes exhaust hood 102 for exhausting fluid from testing apparatus 100. In some implementations, the amount of fluid exhausted from testing apparatus 100 is controlled to adjust the relative amounts of fluid drawn into the chamber and recirculated or recycled within the chamber to reach or maintain a target temperature in the chamber. In other implementations, exhaust hood 102 may be omitted, such as by exhausting the fluid from testing apparatus 100 to an ambient exterior of testing apparatus 100, as opposed to directing the exhausted fluid to a vent.

(15) As will be appreciated by those of ordinary skill in the art with reference to the present disclosure, other implementations of testing apparatus 100 can include a different arrangement or number of components than shown in the example of FIG. 1. For example, other implementations may include a different number of intake vents 108 or a different footprint of testing apparatus 100, such that testing apparatus 100 may be a bench-mounted testing apparatus.

(16) FIG. 2 is a front view of the testing apparatus of FIG. 1 with door 104 removed to show certain interior components according to one or more embodiments. As shown in FIG. 2, interface modules 110.sub.1, 110.sub.2, 110.sub.3, 110.sub.4, 110.sub.5, 110.sub.6, 110.sub.7, and 110.sub.8 are located inside chamber 140 within chassis 106 of testing apparatus 100. Each interface module 110 in the example of FIG. 2 houses sixteen DSDs, which may be removed and inserted into openings in the front of the interface module 110. The DSDs are arranged in horizontal or substantially horizontal rows with respect to surface 10. Each horizontal row in an interface module 110 includes two DSDs. In addition, each interface module 110 houses interface boards (e.g., interface boards 122 in FIGS. 4, 5, and 7) that are in line with the openings that receive the DSDs. The interface modules 110 themselves, with or without the DSDs and interface boards, may be removed and inserted into chamber 140 into any one of the eight different locations shown in chamber 140.

(17) Those of ordinary skill in the art will appreciate that other implementations may include a different arrangement for the interior of testing apparatus 100. For example, other implementations may include a different number of interface modules or a different number of DSDs per interface module than shown in FIG. 2.

(18) FIG. 3 is a front perspective view of an empty interface module without any DSDs or interface boards according to one or more embodiments. As shown in FIG. 3, interface module 110.sub.1 includes sixteen openings, such as openings 112.sub.1 and 112.sub.2, in a front side of interface module 110.sub.1. The openings 112.sub.1 and 112.sub.2 are arranged in a top horizontal or substantially horizontal row. Each opening in the front side of interface module 110.sub.1 can receive an interface board and a DSD. Notches 116.sub.1A and 116.sub.1B provide a support for holding or securing a DSD in place in opening 112.sub.1. Notches 116.sub.2A and 116.sub.2B provide a support for holding or securing a DSD in place in opening 112.sub.2. The notches 116 may work in conjunction with locking tabs or another locking mechanism that may form part of an interface board, such as locking tabs 124 shown in FIG. 5. Other implementations may use different locking mechanisms, such as a locking clip or rotating lock, for example.

(19) Each opening also corresponds to a pair of guide members, such as guide members 118.sub.2A and 118.sub.2B, positioned to guide an interface board inserted through the opening so that a backplane connector (e.g., backplane connectors 123 in FIG. 5) of the interface board is located at a predetermined location with respect to chassis 106 of testing apparatus 100 and with respect to housing 126.sub.1 of interface module 110.sub.1 for connecting to a backplane (e.g., backplane 136 in FIGS. 8A and 8B). In the example of FIG. 3, the backplane connectors are configured to protrude from a rear opening, such as rear opening 120.sub.2, for connection to the backplane.

(20) Handles 114.sub.1 and 114.sub.2 can facilitate insertion and removal of interface module 110.sub.1 into and from the testing apparatus. In this regard, the first space or chamber of the testing apparatus can include shelves or slats for receiving interface module 110.sub.1 and holding it in place inside chamber 140. The interface modules 110 may also be interchangeable among different testing apparatuses, such as testing apparatus 100. In the implementation of FIG. 3, handles 114 are removable, but other implementations may include non-removable handles or a different number of handles.

(21) Those of ordinary skill in the art will appreciate that other implementations of interface module 110.sub.1 may differ. For example, interface module 110.sub.1 may include a mix of different sized openings for receiving DSDs with different form factors, differently sized openings on the rear of interface module 110.sub.1, or no openings on the sides of interface module 110.sub.1.

(22) FIG. 4 is a front perspective view of interface module 110.sub.2 housing DSDs and interface boards inside of housing 126.sub.2 according to one or more embodiments. As shown in FIG. 2, interface module 110.sub.2 includes eight horizontal or substantially horizontal rows of DSDs, such as DSD 201 and 202, which have been inserted into openings 112.sub.3 and 112.sub.4, respectively, to be partially housed in a respective bay of interface module 110.sub.2. Each DSD connects to an interface board via a DSD connector of the interface board (not shown). In the example of DSD 202, interface board 122.sub.2 removably connects to DSD 202, and backplane connector 123.sub.2 of interface board 122.sub.2 is accessible via opening 120.sub.4 in a rear side of interface module 110.sub.2 opposite front openings 112.

(23) As with interface module 110.sub.1 discussed above, the interface boards and DSDs shown in FIG. 4 are removable from interface module 110.sub.2. In this regard, the interface boards are supported and guided into a predetermined position using pairs of guide members on opposite sides of each opening. Guide member 118.sub.4 is shown in FIG. 4 and is used to support and guide interface board 122.sub.2.

(24) In the example of FIG. 4, interface module 110.sub.2 and the interface boards are configured so that each interface board can be inserted into any one of the front openings. Similarly, each DSD in the example of FIG. 4 can be partially inserted into any one of the front openings to connect with any one of the interface boards previously inserted into interface module 110.sub.2. This interchangeability of DSDs can reduce the testing time for a large number of DSDs in the testing apparatus since the DSDs can be conveniently inserted into the front openings of the testing apparatus and removed when testing is finished, before replacing the DSD with a new DSD to be tested. In some cases, the entire interface module 110.sub.2 may be swapped out with a different interface module that may already include interface boards and/or DSDs to be tested. In this regard, handles 114.sub.3 and 114.sub.4 may be used to remove or insert interface module 110.sub.2 from or into the testing apparatus chamber.

(25) As discussed in more detail below, interface module 110.sub.2 may also be capable of accommodating a variety of different form factors with the replacement of the interface boards in housing 126.sub.2. In some implementations, the front openings may be different sizes to accommodate different form factors or may all be the same size as shown in FIG. 4, which may also be able to accommodate different form factors. Those of ordinary skill in the art will appreciate that interface module 110.sub.2, the DSDs and interface boards may have a different arrangement or configuration than shown in FIG. 4. For example, other implementations may not include openings on the side of interface module 110.sub.2 or may include a different number of front openings.

(26) FIG. 5 depicts interface boards connected to DSDs having different form factors according to one or more embodiments. Each DSD in FIG. 5 has a different form factor and a different corresponding interface board. DSD 20.sub.3 has a U.2 15 mm form factor, DSD 20.sub.4 has an E3 form factor, DSD 20.sub.5 has an M.2 form factor, DSD 20.sub.6 has an EDSFF form factor, and DSD 20.sub.7 has a U.2 7 mm form factor. As will be appreciated by those of ordinary skill with reference to the present disclosure, other form factors and corresponding interface boards may be used than those shown in FIG. 5.

(27) In addition to having different physical dimensions, each DSD in FIG. 5 uses a different type of connection to its respective interface board. In this regard, interface board 122.sub.1 for DSD 20.sub.3 uses DSD connector 125.sub.1, interface board 122.sub.2 for DSD 20.sub.4 uses DSD connector 125.sub.2, interface board 122.sub.3 for DSD 20.sub.5 uses DSD connector 125.sub.3, interface board 122.sub.4 for DSD 20.sub.6 uses DSD connector 125.sub.4, and interface board 122.sub.5 for DSD 20.sub.7 uses DSD connector 125.sub.5.

(28) Backplane connectors 123.sub.1, 123.sub.2, 123.sub.3, 123.sub.4, and 123.sub.5 of interface boards 122.sub.1, 122.sub.2, 122.sub.3, 122.sub.4, and 122.sub.5, respectively, utilize the same Peripheral Component Interconnect express (PCIe) connectors for a uniform backplane connection. This standardization on one backplane connector type, such as PCIe, can facilitate the interchangeability of the different types of interface boards into different slots or bays of the interface modules. In addition to having different DSD connector types, the interface boards 122 in FIG. 5 also have different physical shapes to accommodate the differently sized types of DSDs.

(29) Each interface board 122 in FIG. 5 also includes a DSD support with a locking mechanism to stabilize or hold the DSD in an opening of an interface module. In the example of FIG. 5, DSD supports 127.sub.1, 127.sub.2, 127.sub.3, 127.sub.4, and 127.sub.5 hold DSDs 20.sub.3, 20.sub.4, 20.sub.5, 20.sub.6, and 20.sub.7 in place in openings, such as openings 112.sub.1 and 112.sub.2 in FIG. 3 and openings 112.sub.3 and 112.sub.4 in FIG. 4. In addition, locking tabs 124.sub.1, 124.sub.2, 124.sub.3, 124.sub.4, and 124.sub.5 can lock or secure DSDs 20.sub.3, 20.sub.4, 20.sub.5, 20.sub.6, and 20.sub.7 into their respective openings. The pairs of locking tabs 124 for each DSD can lock into notches, such as notches 116 of interface module 110.sub.1 in FIG. 3, to secure the DSDs into the openings.

(30) Those of ordinary skill in the art will appreciate that other locking mechanisms or interface boards may be used in other implementations. For example, other interface boards may have a different shape or DSD support to accommodate a different form factor.

(31) FIG. 6 depicts front views of interface modules used for DSDs having different form factors according to one or more embodiments. As shown in FIG. 6, interface modules 110.sub.3 and 110.sub.1 include front openings in housings 126.sub.3 and 126.sub.1, respectively. Openings 112.sub.5 and 112.sub.6 in interface module 110.sub.3 and openings 112.sub.1 and 112.sub.2 in interface module 110.sub.1 have slightly different sizes to accommodate different form factors or types of DSDs. In addition, the relative locations of the notches with respect to the front openings in interface module 110.sub.3, such as notches 116.sub.3A, 116.sub.3B, 116.sub.4A, and 116.sub.4B, differs from the relative locations of the notches with respect to the front openings in interface module 110.sub.1, such as notches 116.sub.1A, 116.sub.1B, 116.sub.2A, and 116.sub.2B. The locations of guide members within interface modules 110.sub.3 and 110.sub.1 (e.g., guide member 118.sub.2B) may also differ to accommodate DSDs having different form factors, such as by being located more towards a halfway height of the front openings, as opposed to being located below a halfway height, as with the case of the notches in interface module 110.sub.1. As with handles 114.sub.1 and 114.sub.2 of interface module 110.sub.1, handles 114.sub.5 and 114.sub.6 facilitate insertion and removal of interface module 110.sub.3 into and from a testing apparatus.

(32) FIG. 7 is a front perspective view of the interface modules of FIG. 6 when housing DSDs and interface boards according to one or more embodiments. As shown in FIG. 7, interface module 110.sub.3 houses three different types of DSDs having different form factors and interface module 110.sub.1 houses four different types of DSDs having different form factors. In this regard, interface module 110.sub.3 can house both DSD 20.sub.6 and DSD 20.sub.5 due in part to the different interface boards, such as interface board 122.sub.3. In the example of FIG. 7, DSD 20.sub.6 is held in place in interface module 110.sub.3 with the use of DSD support 127.sub.4 and locking tabs 124.sub.4 of interface board 122.sub.4 shown in FIG. 5. Similarly, DSD 20.sub.5 is held in place in interface module 110.sub.3 with the use of DSD support 127.sub.3 and locking tabs 124.sub.3 of interface board 122.sub.3.

(33) With respect to interface module 110.sub.1, DSD 20.sub.3 is secured into interface module 110.sub.1 with DSD support 127.sub.1 and locking tabs 124.sub.1. DSD 20.sub.4 is secured into interface module 110.sub.1 with DSD support 127.sub.1 and locking tabs 124.sub.1, and DSD 20.sub.4 is secured into interface module 110.sub.1 with DSD support 127.sub.2 and locking tabs 124.sub.2. As shown in FIG. 7, interface boards 122.sub.5 and 122.sub.2 are used to connect communications with DSDs 20.sub.7 and 20.sub.4, respectively. The interchangeability of DSDs having different form factors and corresponding interface boards that can be used with an interface module can allow for the simultaneous testing of DSDs having different form factors. The only changes needed to switch from one form factor to another for a given opening in the interface module is to change the interface board. This arrangement allows for more flexibility in the equipment used for testing DSDs.

(34) FIG. 8 is a rear perspective of testing apparatus 100 depicting removable computing module 128.sub.1 before complete insertion into or complete removal from testing apparatus 100 according to one or more embodiments. As shown in FIG. 8, removable computing module 128.sub.1 is part of a rear portion or rear space of testing apparatus 100 that is located behind the testing chamber or front space that houses interface modules. For its part, removable computing module 128.sub.1 houses one or more computing units, which may include, for example, processing circuitry, such as one or more Central Processing Units (CPUs), Field-Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), or Graphics Processing Units (GPUs), that have been programmed to run tests on DSDs in a testing chamber of the testing apparatus.

(35) In the example of FIG. 8, removable computing unit 128.sub.1 corresponds to an interface module in chamber 140 accessed via door 104 from the front of testing apparatus 100. Removable computing unit 128.sub.1 may abut a corresponding interface module or be on an opposite side of a wall between the corresponding interface module and the removable computing unit 128.sub.1 to allow for a direct connection between interface boards inside the corresponding interface module and a backplane of removable computing module 128.sub.1 (i.e., backplane 136 shown in FIG. 9).

(36) In this regard, each of removable computing modules 128.sub.1, 128.sub.2, 128.sub.5 and 128.sub.6 shown in FIG. 8 can correspond to a respective interface module in chamber 140 accessed via door 104 from the front of testing apparatus 100. The removable computing modules 128 can be removed from and inserted into any one of the different locations using, for example, guide rails in testing apparatus 100. The removable computing modules 128 may be further secured to testing apparatus 100 in some implementations using screws or other locking mechanisms. The interchangeability of computing modules 128 in testing apparatus 100 can facilitate changes to be made to the computing unit or computing units in the removable computing module 128 before reinserting the computing module 128 into its previous location or before swapping the computing module with a different removable computing module 128.

(37) FIG. 9 is a rear perspective of removable computing module 128.sub.1 according to one or more embodiments. As shown in FIG. 9, removable computing module 128.sub.1 includes backplane 136 and thermal isolation wall 134. The computing unit of removable computing module 128.sub.1 directly connects to backplane 136, which in turn, directly connects to interface boards inside the corresponding interface module in chamber 140.

(38) In the example of FIG. 9, a computing unit, which may be part of a motherboard, is separated from the testing chamber and its corresponding interface module by thermal isolation wall 134, which provides a thermal barrier between the testing chamber and test engine compartment 128. As discussed in application Ser. No. 17/412,889 incorporated by reference above, the testing chamber may be temperature controlled to run different tests at different temperatures or to ensure operation of the DSDs at a target temperature or at an approximate target temperature.

(39) Backplane 136 allows for a wireless connection to the interface boards in the testing chamber without compromising the thermal isolation provided by thermal isolation wall 134. In contrast, conventional temperature testing apparatuses for DSDs typically use wires with grommets surrounding the wires for communication with DSDs in a temperature-controlled testing chamber. However, bus standards such as PCIe may encounter noise-induced errors due to such wire runs. The arrangement of backplane 136 on thermal isolation wall 134 can provide for direct connections with interface boards, which are in turn directly connected to the DSDs to avoid wire runs while still providing thermal isolation of the testing chamber.

(40) As discussed above, the foregoing arrangements of removable interface modules and removable interface boards can facilitate the testing of DSDs having different form factors using the same testing apparatus. This interchangeability can avoid complicated teardowns of testing equipment to accommodate different form factors. In addition, the interface boards can allow for a wire-free connection to the backplane and computing units, while still thermally isolating the DSDs from the computing units and backplane in a different compartment of the testing apparatus for better temperature control.

Other Embodiments

(41) Those of ordinary skill in the art will appreciate that the various illustrative logical blocks, modules, and processes described in connection with the examples disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. Furthermore, the foregoing processes can be embodied on a computer readable medium which causes processor or controller circuitry to perform or execute certain functions.

(42) To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, and modules have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Those of ordinary skill in the art may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

(43) The various illustrative logical blocks, units, modules, processor circuitry, and controller circuitry described in connection with the examples disclosed herein may be implemented or performed with a general purpose processor, a GPU, a Digital Signal Processor (DSP), an ASIC, an FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. Processor or controller circuitry may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, an SoC, one or more microprocessors in conjunction with a DSP core, or any other such configuration.

(44) The activities of a method or process described in connection with the examples disclosed herein may be embodied directly in hardware, in a software module executed by processor or controller circuitry, or in a combination of the two. The steps of the method or algorithm may also be performed in an alternate order from those provided in the examples. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable media, an optical media, or any other form of storage medium known in the art. An exemplary storage medium is coupled to processor or controller circuitry such that the processor or controller circuitry can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to processor or controller circuitry. The processor or controller circuitry and the storage medium may reside in an ASIC or an SoC.

(45) The foregoing description of the disclosed example embodiments is provided to enable any person of ordinary skill in the art to make or use the embodiments in the present disclosure. Various modifications to these examples will be readily apparent to those of ordinary skill in the art, and the principles disclosed herein may be applied to other examples without departing from the spirit or scope of the present disclosure. The described embodiments are to be considered in all respects only as illustrative and not restrictive. In addition, the use of language in the form of “at least one of A and B” in the following claims should be understood to mean “only A, only B, or both A and B.”