Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYMBOL MULTIPLEXING PHYSICAL MEDIUM ATTACHMENT (PMA)
Document Type and Number:
WIPO Patent Application WO/2024/059847
Kind Code:
A1
Abstract:
Symbol multiplexing Physical Medium Attachment (PMA) may be provided. A plurality of first lanes may be received and then Alignment Markers (AMs) from the plurality of first lanes may be used to determine symbol boundaries and identify the plurality of first lanes. Next, groups of the plurality of first lanes may be de-skewed and checkerboard patterns in the plurality of first lanes may be undone. Then the plurality of first lanes may be symbol-wise multiplexed to a plurality of second lanes. The plurality of second lanes may then be sent.

Inventors:
RAN ADEE OFIR (IL)
GUSTLIN MARK A (US)
KADOSH AVIRAN (IL)
Application Number:
PCT/US2023/074385
Publication Date:
March 21, 2024
Filing Date:
September 15, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
CISCO TECH INC (US)
International Classes:
H04L25/14; H04L1/00
Foreign References:
US20210399831A12021-12-23
US200362633760P
US202318156841A2023-01-19
Other References:
SAN DIEGO JULY MARK GUSTLIN-XILINX JEFF SLAVICK-BROADCOM: "RS Symbol Muxing Option for 802.3ck", vol. 802.3ck;802.3.100GEL, 2 July 2018 (2018-07-02), pages 1 - 15, XP068149203, Retrieved from the Internet [retrieved on 20180702]
KENT LUSTED ET AL: "IEEE P802.3df Electrical PMDs and AUIs Overview", vol. 802.3df, 15 January 2022 (2022-01-15), pages 1 - 21, XP068187725, Retrieved from the Internet [retrieved on 20220115]
Attorney, Agent or Firm:
EVANS, Daniel R. et al. (US)
Download PDF:
Claims:
CLAIMS

1. A method comprising: receiving a plurality of first lanes; de-skewing groups of the plurality of first lanes; undoing checkerboard patterns in the plurality of first lanes; symbol-wise multiplexing the plurality of first lanes to a plurality of second lanes; and sending the plurality of second lanes.

2. The method of claim 1, further comprising, prior to de-skewing the groups of the plurality of first lanes, using Alignment Markers (AMs) from the plurality of first lanes to determine symbol boundaries and identify the plurality of first lanes.

3. The method of claim 1 or 2, wherein the plurality of first lanes are greater than the plurality of second lanes.

4. The method of any of claims 1 to 3, wherein the plurality of first lanes comprise a plurality of Physical Coding Subsystem (PCS) lanes.

5. The method of any of claims 1 to 4, wherein the plurality of first lanes comprise 32 Physical Coding Subsystem (PCS) lanes.

6. The method of any of claims 1 to 5, wherein the plurality of first lanes comprise 32, 25 Gb/s Physical Coding Subsystem (PCS) lanes.

7. The method of any of claims 1 to 6, wherein the plurality of second lanes comprise a plurality of Attachment Unit Interface (AUI) lanes.

8. The method of any of claims 1 to 7, wherein the plurality of second lanes comprise 4 Attachment Unit Interface (AUI) lanes.

9. The method of any of claims 1 to 8, wherein the plurality of second lanes comprise 4, 200 Gb/s Attachment Unit Interface (AUI) lanes.

10. The method of any of claims 1 to 9, further comprising: receiving the plurality of second lanes; symbol-wise de-multiplexing the plurality of second lanes to a plurality of third lanes; and sending plurality of third lanes.

11. The method of claim 10, further comprising applying checkerboard patterns to the plurality of third lanes prior to sending the plurality of third lanes.

12. The method of claim 10 or 11, wherein the plurality of second lanes are less than the plurality of third lanes.

13. The method of any of claims 1 to 12, further comprising, prior to receiving the plurality of first lanes, bit-wise de-multiplexing a plurality of fourth lanes to create the plurality of first lanes.

14. A system comprising: a memory storage; and a processing unit coupled to the memory storage, wherein the processing unit is operative to: receive a plurality of first lanes; de-skew groups of the plurality of first lanes; undo checkerboard patterns in the plurality of first lanes; symbol-wise multiplex the plurality of first lanes to a plurality of second lanes; and send the plurality of second lanes.

15. The system of claim 14, wherein the processing unit is further operative to, prior to de-skewing the groups of the plurality of first lanes, use Alignment Markers (AMs) from the plurality of first lanes to determine symbol boundaries and identify the plurality of first lanes.

16. The system of claim 14 or 15, wherein the processing unit is further operative to, prior to receiving the plurality of first lanes, bit-wise de-multiplex a plurality of fourth lanes to create the plurality of first lanes.

17. The system of any of claims 14 to 16, wherein the plurality of first lanes comprise 32, 25 Gb/s Physical Coding Subsystem (PCS) lanes and the plurality of second lanes comprise 4, 200 Gb/s Attachment Unit Interface (AUI) lanes.

18. A computer-readable medium that stores a set of instructions which when executed perform a method executed by the set of instructions comprising: receiving a plurality of first lanes; de-skewing groups of the plurality of first lanes; undoing checkerboard patterns in the plurality of first lanes; symbol-wise multiplexing the plurality of first lanes to a plurality of second lanes; and sending the plurality of second lanes.

19. The computer-readable medium of claim 18, further comprising, prior to de-skewing the groups of the plurality of first lanes, using Alignment Markers (AMs) from the plurality of first lanes to determine symbol boundaries and identify the plurality of first lanes.

20. The computer-readable medium of claim 18 or 19, wherein the plurality of first lanes comprise 32, 25 Gb/s Physical Coding Subsystem (PCS) lanes and the plurality of second lanes comprise 4, 200 Gb/s Attachment Unit Interface (AUI) lanes.

21. Apparatus comprising: means for receiving a plurality of first lanes; means for de-skewing groups of the plurality of first lanes; means for undoing checkerboard patterns in the plurality of first lanes; means for symbol-wise multiplexing the plurality of first lanes to a plurality of second lanes; and means for sending the plurality of second lanes.

22. The apparatus according to claim 21 further comprising means for implementing the method according to any of claims 2 to 13.

23. A computer program, computer program product or computer readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the steps of the method of any of claims 1 to 13.

Description:
SYMBOL MULTIPLEXING PHYSICAL MEDIUM ATTACHMENT (PMA)

[001] This application is being filed on September 15, 2023, as a PCT International Application and claims the benefit of and priority to U.S. Provisional Application No. 63/376,003, filed September 16, 2022, and U.S. Non-Provisional Application No. 18/156,841, filed January 19, 2023, both of which are incorporated herein by reference.

TECHNICAL FIELD

[002] The present disclosure relates generally to symbol multiplexing Physical Medium Attachment (PMA).

BACKGROUND

[003] Ethernet is a family of wired computer networking technologies commonly used in Local Area Networks (LAN), Metropolitan Area Networks (MAN) and Wide Area Networks (WAN). It was commercially introduced in 1980 and first standardized in 1983 as Institute of Electrical and Electronic Engineers (IEEE) 802.3. Ethernet has since been refined to support higher bit rates, a greater number of nodes, and longer link distances, but retains much backward compatibility. Over time, Ethernet has largely replaced competing wired LAN technologies such as Token Ring.

[004] The original 10BASE5 Ethernet uses coaxial cable as a shared medium, while the newer Ethernet variants use twisted pair and fiber optic links in conjunction with switches. Systems communicating over Ethernet divide a stream of data into shorter pieces called frames. Each frame contains source and destination addresses, and error-checking data so that damaged frames can be detected and discarded. Higher-layer protocols trigger retransmission of lost frames. Per the Open Systems Interconnection (OSI) model, Ethernet provides services up to and including the data link layer.

BRIEF DESCRIPTION OF THE FIGURES

[005] The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various embodiments of the present disclosure. In the drawings: [006] FIG. 1 A is a block diagram of an operating environment for providing symbol multiplexing Physical Medium Attachment (PMA);

[007] FIG. IB is a block diagram of an operating environment for providing symbol multiplexing PMA;

[008] FIG. 2 is a flow chart of a method for providing symbol multiplexing PMA;

[009] FIG. 3 illustrates a plurality of first lanes;

[010] FIG. 4 illustrates a plurality of second lanes; and

[011] FIG. 5 is a block diagram of a computing device.

DETAILED DESCRIPTION

OVERVIEW

[012] Aspects of the invention are set out in the independent claims and preferred features are set out in the dependent claims. Features of one aspect may be applied to each aspect alone or in combination with other features.

[013] Symbol multiplexing Physical Medium Attachment (PMA) may be provided. A plurality of first lanes may be received and then Alignment Markers (AMs) from the plurality of first lanes may be used to determine symbol boundaries and identify the plurality of first lanes. Next, groups of the plurality of first lanes may be de-skewed and checkerboard patterns in the plurality of first lanes may be undone. Then the plurality of first lanes may be symbol-wise multiplexed to a plurality of second lanes. The plurality of second lanes may then be sent.

[014] Both the foregoing overview and the following example embodiments are examples and explanatory only and should not be considered to restrict the disclosure’s scope, as described, and claimed. Furthermore, features and/or variations may be provided in addition to those described. For example, embodiments of the disclosure may be directed to various feature combinations and sub-combinations described in the example embodiments.

EXAMPLE EMBODIMENTS

[015] The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar elements. While embodiments of the disclosure may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods. Accordingly, the following detailed description does not limit the disclosure. Instead, the proper scope of the disclosure is defined by the appended claims.

[016] High speed Ethernet Physical Layer (PHY) transceivers such as 200GBASE-R and 400GB ASE-R may include a Multi-lane Physical Coding Subsystem (PCS). The PCS may distribute, for example, its data across PCS lanes at 25 Gb/s per lane (e.g., PCS 16 lanes for 400GBASE-R). The PCS may also include a Forward Error Correction (FEC) functionality that aids in error free communication.

[017] The existing PHY specifications may also include a bit-multiplexing Multiplexing Physical Medium Attachment (PMA) that may combine data from the PCS lanes to create symbols for communicating over a smaller number of physical lanes. For example, 400G may be transmitted over only 4 physical lanes, where every physical lane contains bits from 4 PCS lanes, taken one bit at a time. In the receive direction, the bits from the physical lanes may be de-multiplexed to create the original number of PCS lanes.

[018] The IEEE 802.3df task force may define a 800GB ASE-R Ethernet that may use a similar PCS (e.g., with 32 PCS lane) and a similar bit-multiplexing PMA for communicating over 8 physical lanes (e.g., 100 Gb/s per lane). A next step may be 200 Gb/s per lane, which may require multiplexing 8 PCS lanes on each physical lane.

[019] One problem may be that high ratio bit multiplexing may reduce the capability of the FEC handle error bursts that may occur frequently in some links. This degradation may be expressed as a Signal-to-Noise Ratio (SNR) penalty or as a reduction of the maximum tolerated pre-FEC Bit Error Rate (BER) for satisfactory operation. With 8: 1 bit multiplexing, the SNR penalty, for example, may be as high as 2 dB, and the maximum tolerated BER may be reduced by a factor of 6 for example.

[020] Using FEC symbol multiplexing instead of bit multiplexing may eliminate the degradation due to error burst and enable lower SNR requirements and higher tolerated BER. However, symbol multiplexing may be incompatible with existing implementations that use bit multiplexing (i.e., optical modules that have bit- multiplexed data on the 8xl00G host-side interface).

[021] Embodiments of the disclosure may use a PMA that may convert between bit multiplexing and symbol multiplexing. The PMA may have two bi- directional interfaces. On each interface it may perform either bit multiplexing (e.g., in both directions) or symbol multiplexing (e.g., in both directions). This PMA may be used, for example, in gearboxes or optical modules that may have 100 Gb/s per lane electrical (host side) interfaces and 200 Gb/s optical (line side) interfaces. These gearboxes and optical modules may exist at least for a transition period between the current 100 Gb/s per lane and the future 200 Gb/s per lane technologies.

[022] The conversion from incoming bit multiplexing to outgoing symbol multiplexing may use de-multiplexing to recover the original data streams (e.g., PCS lanes) from incoming data, which may be done using alignment markers inserted by the transmitting (i.e., remote) PCS. Once the original data is available as PCS lanes, it may then be symbol multiplexed for outgoing transmission. Conversion from symbol multiplexing to bit multiplexing may be done similarly.

[023] Consistent with embodiments of the disclosure, the PMA may identify alignment markers with bit multiplexing in one direction and with symbol multiplexing in the other direction that may enable alignment of symbols and correct de-multiplexing or re-multiplexing. The rest of the PCS functionality (e.g., de-skew, reorder, FEC encoding, and decoding, etc.) may not be required.

[024] Embodiments of the disclosure may define the choice of bit or symbol multiplexing as a function of bit rate on each physical lane. For example, 200 Gb/s per lane may use symbol multiplexing and 100 Gb/s per lane may use bit multiplexing. This is an example and it is possible to use symbol multiplexing at any rate. If there is a bit rate for which both multiplexing methods may be defined, it is possible to automatically identify the multiplexing of the incoming data on one interface, and ensure that the outgoing data on the same interface has the same multiplexing. This way, transparent interoperability with existing devices that only use bit multiplexing may be achieved.

[025] FIG. 1 A shows an operating environment 100 for providing symbol multiplexing Physical Medium Attachment (PMA). As shown in FIG. 1 A, operating environment 100 may comprise a first Physical Coding Subsystem (PCS) 105, a first PMA 110, a second PMA 115, and a second PCS 120. First PCS 105 may provide a plurality of first lanes 125 to first PMA 110. First PMA 110 may symbol-wise multiplex plurality of first lanes 125 on plurality of second lanes 130 and send to second PMA 115. Second PMA 115 may symbol -wise de-multiplex plurality of second lanes 130 to create plurality of third lanes 135. Plurality of third lanes 135 may comprise a recreated version of plurality of first lanes 125. The plurality of first lanes may be greater than plurality of second lanes 130. Plurality of second lanes 130 may be less than plurality of third lanes 135. Data may be communicated in both directions across operating environment 100.

[026] Plurality of first lanes 125 may comprise a plurality of PCS lanes. Plurality of first lanes 125 may comprise, but are not limited to, 32 PCS lanes. Plurality of first lanes 125 may comprise, but are not limited to, 25 Gb/s Physical Coding Subsystem (PCS) lanes.

[027] Plurality of second lanes 130 may comprise a plurality of Attachment Unit Interface (AUI) lanes. Plurality of second lanes 130 may comprise, but are not limited to, 4 AUI lanes. Plurality of second lanes 130 comprise, but are not limited to, 200 Gb/s AUI lanes.

[028] FIG. IB shows an operating environment 150 for providing symbol multiplexing Physical Medium Attachment (PMA). As shown in FIG. IB, operating environment 100 may comprise first PCS 105, a third PMA 155, and a fourth PMA 160. First PCS 105 may provide plurality of first lanes 125 to third PMA 155. Third PMA 155 may bit-wise multiplex plurality of first lanes 125 on plurality of fourth lanes 165 and send to fourth PMA 160. Fourth PMA 160 may bit-wise de-multiplex plurality of fourth lanes 165 to recreate plurality of first lanes 125. Now with the recreate plurality of first lanes 125, fourth PMA 160 may symbol-wise multiplex plurality of first lanes 125 on plurality of second lanes 130 and send to a receiver. The receiver may comprise another PMA, for example, second PMA 115. In other embodiments, the receiver may comprise an PMA similar to fourth PMA 160 that may symbol -wise de-multiplex plurality of second lanes 130 and then bit-wise multiplex to send the received data to another PMA similar to third PMA 155.

[029] Plurality of fourth lanes 165 may comprise a plurality of AUI lanes. Plurality of fourth lanes 165 may comprise, but are not limited to, 8 AUI lanes. Plurality of fourth lanes 165 may comprise, but are not limited to, 100 Gb/s AUI lanes.

[030] The elements described above of operating environment 100 (e.g., first PCS 105, first PMA 110, second PMA 115, second PCS 120, third PMA 155, and fourth PMA 160) may be practiced in hardware and/or in software (including firmware, resident software, micro-code, etc.) or in any other circuits or systems. The elements of operating environment 100 may be practiced in electrical circuits comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. Furthermore, the elements of operating environment 100 may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to, mechanical, optical, fluidic, and quantum technologies. As described in greater detail below with respect to FIG. 5, the elements of operating environment 100 may be practiced in a computing device 500.

[031] FIG. 2 is a flow chart setting forth the general stages involved in a method 200 consistent with embodiments of the disclosure for providing symbol multiplexing PMA. While method 200 may be implemented using first PMA 110 or second PMA 115 as described in more detail above with respect to FIG. 1 A, method 200 is described using first PMA 110. Ways to implement the stages of method 200 will be described in greater detail below.

[032] Method 200 may begin at starting block 205 and proceed to stage 210 where first PMA 110 may receive plurality of first lanes 125. For example, FIG. 3 illustrates how data bits may be a lined on plurality of first lanes 125. In this example, there are 32 lanes in plurality of first lanes 125. Horizontally along the top are lane numbers identifying the lanes and vertically along the side are bit numbers. FIG. 3 is an example and other pattemers and numbers of lanes may be used.

[033] From stage 210, where first PMA 110 receives plurality of first lanes 125, method 200 may advance to stage 220 where first PMA 110 may use Alignment Markers (AMs) from plurality of first lanes 125 to determine symbol boundaries and identify plurality of first lanes 125. For example, AMs may comprise a fixed block of data that may appear periodically on each lane that may have a lane number in it identifying its corresponding lane.

[034] Once first PMA 110 uses AMs from plurality of first lanes 125 to determine symbol boundaries and identify plurality of first lanes 125 in stage 220, method 200 may continue to stage 230 where first PMA 110 may de-skew groups of plurality of first lanes 125. For example, there may be a different physical timing delay on each lane. Accordingly, embodiments of the disclosure may identify the symbol boundaries on each lane and then use a buffer to a line the timing of groups of lanes. A group of plurality of first lanes 125 may be symbol -wise multiplexed on to one of plurality of second lanes 130. For example, as shown in FIG. 3, lanes 0, 1, 8, 9, 16, 17, 24, and 25 of plurality of first lanes 125 may be symbol-wise multiplexed onto lane 0 of plurality of second lanes 130. According the symbol boundaries of lanes 0, 1, 8, 9, 16, 17, 24, and 25 may be used to a line the timing of these lanes before they are symbol-wise multiplexed. Other groups of plurality of first lanes 125 may have their timing lined before they are symbol-wise multiplexed on to other lanes of plurality of second lanes 130 in a similar way. For example: i) lanes 2, 3, 10, 11, 18, 19, 26, and 27 of plurality of first lanes 125 may be de-skew before symbol-wise multiplexed onto lane 1 of plurality of second lanes 130; ii) lanes 4, 5, 12, 13, 20, 21, 28, and 29 of plurality of first lanes 125 may be de-skew before symbol-wise multiplexed onto lane 2 of plurality of second lanes 130; and iii) lanes 6, 7, 14, 15, 22, 23, 30, and 31 of plurality of first lanes 125 may be de-skew before symbol-wise multiplexed onto lane 3 of plurality of second lanes 130.

[035] After first PMA 110 de-skews groups of plurality of first lanes 125 in stage 230, method 200 may proceed to stage 240 where first PMA 110 may undo checkerboard patterns in plurality of first lanes 125. For example, as shown in FIG. 3, lane 0 has bits from code word A in bit numbers 0 through 9, but then has bits from code word B in bit numbers 10 through 19. Lane 1 has bits from code word B in bit numbers 0 through 9, but then has bits from code word A in bit numbers 10 through 19. This creates a checkerboard pattern in lanes 0 and 1. A similar checkerboard pattern may be seen in plurality of first lanes 125 illustrated by FIG. 3. In order to undo this, for example, bits numbers 10 through 19 in lane 0 may be interchanged with bits numbers 10 through 19 in lane 1. This may be repeated in plurality of first lanes 125 illustrated by FIG. 3 to undo the checkerboard pattern.

[036] From stage 240, where first PMA 110 undoes checkerboard patterns in plurality of first lanes 125, method 200 may advance to stage 250 where first PMA 110 may symbol-wise multiplex plurality of first lanes 125 to plurality of second lanes 130. For example, instead of transmitting one bit at a time from each PCS lane, symbolwise multiplex may transmit one FEC symbol at a time. The bits of plurality of first lanes 125 (e.g., 32 lanes shown in FIG. 3) may be allocated to plurality of second lanes 130 as illustrated by FIG. 4 (e.g., 4 lanes). Most error bursts would affect up to 1 symbol per codeword. Spreading to other codewords is also less likely. In this example, affecting two symbols in the same codeword may requires at least a 17 Unit Interval (UI) burst. Spreading to other codewords is also less likely.

[037] Once first PMA 110 symbol-wise multiplexes plurality of first lanes 125 to plurality of second lanes 130 in stage 250, method 200 may continue to stage 260 where first PMA 110 may send plurality of second lanes 130. For example, a receiver (e.g., second PMA 115) may receive plurality of second lanes 130 and perform the aforementioned process in reverse to reproduce plurality of first lanes 125.

Communication may be performed in both directions across operating environment 100 of FIG. 1 A. Once first PMA 110 sends plurality of second lanes 130 in stage 260, method 200 may then end at stage 270.

[038] If a PMA that performs bit-wise multiplexing is used (e.g., third PMA 155 of FIG. IB), the plurality of first lanes 125 may be recreated by bit-wise demultiplexing plurality of fourth lanes 165 by fourth PMA 160. Then fourth PMA 160 may perform the aforementioned process of method 200 on the recreated plurality of first lanes 125 in order to create plurality of second lanes 130. For example, a receiver may receive plurality of second lanes 130 and perform the process in reverse to reproduce plurality of first lanes 125. Communication may be performed in both directions across operating environment 150 of FIG. IB.

[039] FIG. 5 shows computing device 500. As shown in FIG. 5, computing device 500 may include a processing unit 510 and a memory unit 515. Memory unit 515 may include a software module 520 and a database 525. While executing on processing unit 510, software module 520 may perform, for example, processes for providing symbol multiplexing PMA as described above with respect to FIG. 2. Computing device 500, for example, may provide an operating environment for first PCS 105, first PMA 110, second PMA 115, second PCS 120, third PMA 155, and fourth PMA 160. First PCS 105, first PMA 110, second PMA 115, second PCS 120, third PMA 155, and fourth PMA 160 may operate in other environments and are not limited to computing device 500.

[040] Computing device 500 may be implemented using a Wi-Fi access point, a tablet device, a mobile device, a smart phone, a telephone, a remote control device, a set-top box, a digital video recorder, a cable modem, a personal computer, a network computer, a mainframe, a router, a switch, a server cluster, a smart TV-like device, a network storage device, a network relay device, or other similar microcomputer-based device. Computing device 500 may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. Computing device 500 may also be practiced in distributed computing environments where tasks are performed by remote processing devices. The aforementioned systems and devices are examples, and computing device 500 may comprise other systems or devices.

[041] Embodiments of the disclosure, for example, may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process. Accordingly, the present disclosure may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.). In other words, embodiments of the present disclosure may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer- usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. A computer-usable or computer- readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

[042] The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific computer-readable medium examples (a non-exhaustive list), the computer-readable medium may include the following: an electrical connection having one or more wires, a portable computer diskette, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, and a portable compact disc read-only memory (CD-ROM). Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.

[043] While certain embodiments of the disclosure have been described, other embodiments may exist. Furthermore, although embodiments of the present disclosure have been described as being associated with data stored in memory and other storage mediums, data can also be stored on, or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or a CD-ROM, a carrier wave from the Internet, or other forms of RAM or ROM. Further, the disclosed methods’ stages may be modified in any manner, including by reordering stages and/or inserting or deleting stages, without departing from the disclosure.

[044] Furthermore, embodiments of the disclosure may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. Embodiments of the disclosure may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to, mechanical, optical, fluidic, and quantum technologies. In addition, embodiments of the disclosure may be practiced within a general purpose computer or in any other circuits or systems.

[045] Embodiments of the disclosure may be practiced via a system-on-a-chip (SOC) where each or many of the element illustrated in FIG. 1 may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communications units, system virtualization units and various application functionality all of which may be integrated (or “burned”) onto the chip substrate as a single integrated circuit. When operating via an SOC, the functionality described herein with respect to embodiments of the disclosure, may be performed via application-specific logic integrated with other components of computing device 500 on the single integrated circuit (chip).

[046] Embodiments of the present disclosure, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of the disclosure. The functions/acts noted in the blocks may occur out of the order as shown in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.

[047] While the specification includes examples, the disclosure’s scope is indicated by the following claims. Furthermore, while the specification has been described in language specific to structural features and/or methodological acts, the claims are not limited to the features or acts described above. Rather, the specific features and acts described above are disclosed as example for embodiments of the disclosure.