SYSTEM AND METHOD FOR REDUCING ECC OVERHEAD AND MEMORY ACCESS BANDWIDTH
20180011758 · 2018-01-11
Assignee
Inventors
Cpc classification
G06F11/085
PHYSICS
G06F11/1048
PHYSICS
International classification
Abstract
A system, and corresponding method, is described for updating or calculating ECC where the transaction volume is significantly reduced from a read-modify-write to a write, which is more efficient and reduces demand on the data access bandwidth. The invention can be implemented in any chip, system, method, or HDL code that perform protection schemes and require ECC calculation, of any kind. Embodiments of the invention enable IPs that use different protections schemes to reduce power consumption and reduce bandwidth access to more efficiently communicate or exchange information.
Claims
1. A system comprising a memory management module; memory in communication with the memory management module; a transaction table for tracking control information including at least a plurality of ways and an ECC total for the plurality of ways within a data stream, wherein each way has an ECC value; and an ECC calculation module for determine a new ECC total when at least one way of the plurality of ways in the data stream is replaced with a new way, the ECC calculation module calculates a new ECC value using an ECC mask for the at least one way that was changed and replaces the ECC value for the corresponding at least one way that was changed with the new ECC value to determine the new ECC total, thereby reducing memory access bandwidth needed to generate the new ECC.
2. The system of claim 2 further comprising: a first IP, which is in communication with the memory, using a first protection scheme; a second IP, which is in communication with the memory, using a second protection scheme; and an encoder in communication with the first IP and the second IP, the encoder receives redundant information according to the first protection scheme and encodes redundant information according to the second protection scheme, wherein the first protection scheme and the second protection scheme are different.
3. The system of claim 2 further comprising an interconnect in communication with the first IP and the second IP, the interconnect using a protection scheme that is different from at least one of the first protection scheme and the second protection scheme.
4. The system of claim 3 wherein the interconnect includes a unit that modifies packets.
5. The system of claim 4 wherein the unit that modifies packets is a serialization adapter.
6. The system of claim 5 wherein the output of the serialization adapter is narrower than the input to the serialization adapter.
7. The system of claim 2 further comprising a packet-based interconnect in communication with the first IP and the second IP, the packet-based interconnect includes at least one unit comprising: an input for receiving a plurality of first packets; and an output for sending a plurality of second packets, wherein the at least one unit: checks the input according to the first protection scheme; changes format of at least one packet selected from the plurality of first packets; and encodes the output according to the second protection scheme.
8. At least one non-transient computer readable medium storing hardware description language code for a module, the module includes: a receiving interface for receiving: data having a plurality of WAYs; and redundant information, which includes an ECC for the plurality of WAYs, according to a first protection scheme; a transaction table that stores the plurality of WAYs and the ECC for the plurality of WAYs; and a sending interface for sending: data having the plurality of WAYs; and redundant information, which includes the ECC for the plurality of WAYs, according to a second protection scheme, wherein when the module executes the hardware description language code, then the module: updates at least one WAY selected from the plurality of WAYs; calculates, using an ECC mask, a new ECC based on the updated WAY selected from the plurality of WAYs and the remaining plurality of WAYs; and writes the new ECC to the transaction table, thereby reducing memory access bandwidth needed to generate the new ECC by performing a write function.
9. The at least one non-transient computer readable medium of claim 8 wherein a designer writes hardware description language code.
10. The at least one non-transient computer readable medium of claim 8 further comprising hardware description language code to convert redundant information according with the first protection scheme to redundant information according with the second protection scheme.
11. The at least one non-transient computer readable medium of claim 8 further comprising hardware description language code to encapsulate redundant information according with the first protection scheme.
12. The at least one non-transient computer readable medium of claim 8 further comprising hardware description language code to check the data and redundant information for errors according with the first protection scheme.
13. The at least one non-transient computer readable medium of claim 12 further comprising hardware description language code to assert an output signal if an error is detected.
14. The at least one non-transient computer readable medium of claim 12 further comprising hardware description language code to count errors.
15. The at least one non-transient computer readable medium of claim 12 further comprising hardware description language code to count correctable errors and hardware description language code to count uncorrectable errors.
16. The at least one non-transient computer readable medium of claim 12 further comprising hardware description language code to generate redundant information according to the second protection scheme.
17. The at least one non-transient computer readable medium of claim 8 wherein one of the first protection scheme and the second protection scheme is SECDED ECC and the other of the first protection scheme and the second protection scheme is SEC ECC.
18. The at least one non-transient computer readable medium of claim 8 wherein one of the first protection scheme and the second protection scheme is a first type of ECC and the other of the first protection scheme and the second protection scheme is a second type of ECC.
19. The at least one non-transient computer readable medium of claim 8 wherein at least one of the first protection scheme and the second protection scheme is a SECDED ECC.
20. A method of reducing ECC overhead and memory access bandwidth, the method comprising: detecting a pending transaction; creating a transaction table that includes a plurality of WAYs and ECC for the plurality of WAYs; updating at least one WAY selected from the plurality of WAYs; calculating, using an ECC mask, a new ECC based on the updated WAY selected from the plurality of WAYs and the other plurality of WAYs; and writing the new ECC to the transaction table, thereby reducing memory access bandwidth needed to generate the new ECC by performing a write function.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
DETAILED DESCRIPTION
[0035] The invention is described in accordance with the aspects and embodiments in the following description with reference to the FIGs., in which like numbers represent the same or similar elements. Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described regarding the embodiment is included in at least one embodiment of the invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” “in certain embodiments,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment. It is noted that, as used in this description, the singular forms “a,” “an” and “the” include plural referents, unless the context clearly dictates otherwise.
[0036] The described features, structures, or characteristics of the invention may be combined in any suitable manner in accordance with the aspects and one or more embodiments of the invention. In the following description, numerous specific details are recited to provide an understanding of various embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring the aspects of the invention.
[0037] All publications and patents cited in this specification are herein incorporated by reference as if each individual publication or patent were specifically and individually indicated to be incorporated by reference and are incorporated herein by reference to disclose and describe the methods and/or system in connection with which the publications are cited. The citation of any publication is for its disclosure prior to the filing date and should not be construed as an admission that the invention is not entitled to antedate such publication by virtue of prior invention. Further, the dates of publication provided may be different from the actual publication dates, which may need to be independently confirmed.
[0038]
[0039] Referring now to
[0040] In accordance with some aspects of the invention, the common ECC can be determined with a write operation. Calculating the ECC is an operation that is associative and commutative. Referring to
[0041] In accordance with some aspects of the invention, when WAY2 is pending and needs to be updated with a new WAY, such as WAY2A, then the overall ECC can be calculated using the masks for the respective WAY, as follows:
{ECC.sub.WAYn.sub._.sub.OLD.sub._.sub.DATA} XOR {ECC.sub.OLD.sub._.sub.TOTAL} XOR {ECC.sub.WAYn.sub._.sub.NEW.sub._.sub.DATA}=ECC.sub.NEW.sub._.sub.TOTAL
[0042] using the data strings or masks shown in
ECC_WAY0 XOR ECC_WAY1 XOR ECC_WAY2 XOR . . .
ECC_WAY(n−1) XOR ECC_WAY2 XOR ECC_WAY2A
[0043] In the above equation, two of the terms are the same and due to the XOR property, will cancel out. Thus, the ECC can be calculated and becomes the new Value of the new ECC computation which includes the new data string WAY2A, and is equal to the following equation:
ECC_WAY0 XOR ECC_WAY1 XOR ECC_WAY2A XOR . . . ECC_WAY(n−1)
[0044] Thus, instead of doing a read-modify-write for updating an index and the ECC, the system will just update WAY2 data with the new WAY2A data and calculate the new ECC using just a write. In accordance with some embodiments of the present invention, and ECC.sub.TOTAL is calculated for A, B, C, and D.
[0045] Referring now to
ECC_WAY0 XOR ECC_WAY1 XOR ECC_WAY2A XOR . . . ECC_WAY(n−1)
which is derived from performing the following:
ECC_WAY0 XOR ECC_WAY1 XOR ECC_WAY2 XOR . . .
ECC_WAY(n−1) XOR ECC_WAY2A XOR ECC_WAY2
[0046] Many SoCs include IPs that require ECC overhead and the efficiency of performing write only operations to update the ECC significantly reduces ECC overhead and bandwidth required to read from memory. According to the aspects of the invention, it is possible to reduce index or transaction table or directory size from an ECC overhead from 20% of the area and bandwidth needed down to ECC overheads around 5%. This results in 15% reduction in overall coherent system area. Lower RAM (Static or Dynamic) area results in lower power consumption and heat. Also, lower memory area results in lower bandwidth demands and higher efficiency or the SoC and the IPs, the have interfaces for sending and receiving data.
[0047] As shown in
[0048] Each data signal has an inherent number of bits, also known as the width or the size of the signal. Bits of signals are conventionally indexed starting at zero. Therefore, a 32-bit signal has bits 0 to 31, which are notated, as in
[0049]
[0050]
[0051]
[0052]
[0053]
[0054] A vendor of third-party interconnect IP provides such a module to chip designers so that they are able to effectively customize the interconnect IP according to their desired error protection scheme. That way the interconnect IP provider need not learn the chip designer's requirements to customize the interconnect IP and the chip designers need not redesign the interconnect IP for their requirements.
[0055]
[0056]
[0057] Whereas NoC 600 performs encoding before packetizing and checking after depacketizing,
[0058]
[0059] In some embodiments, depacketizing unit 818 is a widening serialization adapter. It concatenates a multiplicity of incoming data words into a wider outgoing data word. For such, encoder unit 812 concatenates the bits of the incoming parity of multiple data words into a parity signal for the wider outgoing data word.
[0060] In some embodiments, depacketizing unit 818 is a narrowing serialization adapter. It splits incoming data words into a multiplicity of narrower outgoing data words. For such, encoder unit 812 checks a certain number of ECC bits for the wide incoming data words and encoder unit 812 encodes a smaller number of ECC bits for each narrower outgoing data word.
[0061] In some embodiments, depacketizing unit 818 is a firewall unit. Unit 818 checks software-defined security bits in packet headers, and in some cases unit 818 changes the state of a packet header bit. For such, encoder unit 812 encodes outgoing ECC bit values that may differ from the incoming ECC bit values, though using the same ECC protection scheme.
[0062]
[0063]
[0064]
[0065]
[0066] Some embodiments of physical machines described and claimed herein are programmable in numerous variables, combinations of which provide essentially an infinite variety of operating behaviors. Some embodiments of hardware description language representations described and claimed herein are configured by software tools that provide numerous parameters, combinations of which provide for essentially an infinite variety of physical machine embodiments of the invention described and claimed. Methods of using such software tools to configure hardware description language representations embody the invention described and claimed. Physical machines, such as semiconductor chips; hardware description language representations of the logical or functional behavior of machines according to the invention described and claimed; and one or more non-transitory computer readable media arranged to store such hardware description language representations all can embody machines described and claimed herein.
[0067] The behavior of either or a combination of humans and machines; instructions that, if executed by one or more computers, would cause the one or more computers to perform methods according to the invention described and claimed; and one or more non-transitory computer readable media arranged to store such instructions embody methods described and claimed herein. Each of more than one non-transitory computer readable medium needed to practice the invention described and claimed herein alone embodies the invention.
[0068] Additionally, it is intended that such equivalents include both currently known equivalents and equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure. The scope of the invention, therefore, is not intended to be limited to the exemplary embodiments shown and described herein.
[0069] In accordance with the teachings of the invention, a computer and a computing device are articles of manufacture. Other examples of an article of manufacture include: an electronic component residing on a mother board, a server, a mainframe computer, or other special purpose computer each having one or more processors (e.g., a Central Processing Unit, a Graphical Processing Unit, or a microprocessor) that is configured to execute a computer readable program code (e.g., an algorithm, hardware, firmware, and/or software) to receive data, transmit data, store data, or perform methods.
[0070] The article of manufacture (e.g., computer or computing device) includes a non-transitory computer readable medium or storage that may include a series of instructions, such as computer readable program steps or code encoded therein. In certain aspects of the invention, the non-transitory computer readable medium includes one or more data repositories. Thus, in certain embodiments that are in accordance with any aspect of the invention, computer readable program code (or code) is encoded in a non-transitory computer readable medium of the computing device. The processor or a module, in turn, executes the computer readable program code to create or amend an existing computer-aided design using a tool. The term “module” as used herein may refer to one or more circuits, components, registers, processors, software subroutines, or any combination thereof. In other aspects of the embodiments, the creation or amendment of the computer-aided design is implemented as a web-based software application in which portions of the data related to the computer-aided design or the tool or the computer readable program code are received or transmitted to a computing device of a host.
[0071] An article of manufacture or system, in accordance with various aspects of the invention, is implemented in a variety of ways: with one or more distinct processors or microprocessors, volatile and/or non-volatile memory and peripherals or peripheral controllers; with an integrated microcontroller, which has a processor, local volatile and non-volatile memory, peripherals and input/output pins; discrete logic which implements a fixed version of the article of manufacture or system; and programmable logic which implements a version of the article of manufacture or system which can be reprogrammed either through a local or remote interface. Such logic could implement a control system either in logic or via a set of commands executed by a processor.
[0072] Accordingly, the preceding merely illustrates the various aspects and principles as incorporated in various embodiments of the invention. It will be appreciated that those of ordinary skill in the art will be able to devise various arrangements, which, although not explicitly described or shown herein, embody the principles of the invention and are included within its spirit and scope. Furthermore, all examples and conditional language recited herein are principally intended to aid the reader in understanding the principles of the invention and the concepts contributed by the inventors to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents and equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
[0073] The scope of the invention, therefore, is not intended to be limited to the various aspects and embodiments discussed and described herein. Rather, the scope and spirit of invention is embodied by the appended claims.