Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MEMORY DEVICE DEGRADATION MONITORING
Document Type and Number:
WIPO Patent Application WO/2021/111444
Kind Code:
A1
Abstract:
A memory circuit which includes: A synchronous memory cell array, configured to receive a clock signal and having address lines and bit lines. A margin agent, determining a status of the synchronous memory cell array based on a time duration between a transition of the clock signal and a change on a signal derived from a bit line due to a signaling on at least one of the address lines. In another aspect, a memory cell, having a bit line configured to provide data input/output to the memory cell may be provided with a comparator, comparing a voltage on the bit line with a reference voltage and indicating of a status of the memory cell thereby. Firmware may receive the indication of the status of a memory cell array, and transmit the indication, issue an alert, and/or reconfigure the memory circuit responsive to the status.

Inventors:
FAYNEH EYAL (IL)
REDLER GUY (IL)
LANDMAN EVELYN (IL)
Application Number:
PCT/IL2020/051246
Publication Date:
June 10, 2021
Filing Date:
December 03, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PROTEANTECS LTD (IL)
International Classes:
G11C29/50; G06F11/00; G11C7/10; G11C29/04
Foreign References:
US6182253B12001-01-30
US20090244998A12009-10-01
US20090273550A12009-11-05
Other References:
See also references of EP 4070315A4
Attorney, Agent or Firm:
GASSNER, Dvir et al. (IL)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A memory circuit, comprising: a synchronous memory cell array, configured to receive a clock signal and having address lines and bit lines; and a margin agent, configured to receive a signal derived from at least one of the bit lines and to determine a status indication of the synchronous memory cell array based on a time duration between a transition of the clock signal and a change on the received signal from at least one of the bit lines due to a signaling on at least one of the address lines.

2. The memory circuit of claim 1, wherein the margin agent is configured to determine a time duration from the change on the received signal to a subsequent transition of the clock signal.

3. The memory circuit of claim 1 or claim 2, further comprising: an output stage, coupled to the bit lines of the synchronous memory cell array, the margin agent being configured to receive the signal derived from at least one of the bit lines from the output stage.

4. The memory circuit of claim 3, wherein the output stage comprises a sensing amplifier, configured to amplify a signal received from the bit lines of the synchronous memory cell array and further configured to receive a strobe signal that controls activation of the sensing amplifier at a predetermined time interval after selection of a read operation for the synchronous memory cell array, the margin agent being configured to receive the signal derived from at least one of the bit lines from the sensing amplifier at a time that is after selection of the read operation by less than the predetermined time interval.

5. The memory circuit of any one of claims 1 to 4, further comprising: a comparator, configured to compare a voltage on one of the bit lines with a reference voltage and provide a comparator output, the margin agent being configured to receive the comparator output as the signal derived from at least one of the bit lines.

6. A memory circuit, comprising: a memory cell, having a bit line configured to provide data input/output to the memory cell; and a comparator, configured to compare a voltage on the bit line with a reference voltage and provide a comparator output that is indicative of a status of the memory cell.

7. The memory circuit of claim 6, wherein the reference voltage is adjustable.

8. The memory circuit of claim 7, further comprising: a controller, configured to adjust the reference voltage and identify a status of the memory cell based on the comparator output on adjustment of the reference voltage.

9. The memory circuit of claim 8, wherein the controller is configured to determine the status value of the memory cell corresponding with the reference voltage associated with a change in the comparator output or with a higher value.

10. The memory circuit of claim 9, wherein the controller is configured to store a plurality of status values of the memory cell, each stored status value of the memory cell being measured at a respective time.

11. The memory circuit of any one of claims 6 to 10, wherein the memory cell has a standard bit line and an inverse bit line, a signal on the inverse bit line being the logical inverse of a signal on the standard bit line, the memory circuit further comprising: a multiplexer, configured to selectively provide the signal on the standard bit line and the signal on the inverse bit line to the comparator, based on the signal on the standard bit line and/or the signal on the inverse bit line.

12. The memory circuit of any one of claims 6 to 11, wherein the memory circuit is a synchronous circuit having a clock signal and further comprises: a margin agent, configured to receive the comparator output and to determine a status indication of the memory cell based on a time duration between a transition of the clock signal and a change on the comparator output.

13. The memory circuit of any one of claims 6 to 12, wherein the memory circuit comprises a memory cell array formed of a plurality of memory cells, each memory cell having a respective bit line configured to provide data input/output to the respective memory cell and wherein the comparator is configured to compare a voltage on one or more of the bit lines with a reference voltage and provide a comparator output that is indicative of a status of one or more of the plurality of memory cells.

14. The memory circuit of claim 13, wherein the memory circuit comprises a plurality of comparators, each comparator being configured to compare a voltage on a respective one or more of the bit lines with a respective reference voltage and provide a respective comparator output that is indicative of a status of a respective one or more of the plurality of memory cells.

15. The memory circuit of claim 13 or claim 14, wherein the comparator or each of the comparators is positioned outside the memory cell array.

16. The memory circuit of claim 15, further comprising: a precharge circuit coupled to the bit lines of the plurality of memory cells, the comparator or each of the comparators being positioned at or adjacent the precharge circuit.

17. The memory circuit of any one of claims 1 to 5 or 13 to 16, further comprising: addressing circuitry configured to select a memory cell for a read or write operation.

18. The memory circuit of any one of claims 6 to 17, wherein the comparator or each of the comparators comprises an inverter-based amplifier.

19. The memory circuit of claim 18, wherein the inverter-based amplifier comprises: an inverting amplifier, having an input and an output; a capacitor coupled at a first end to the input of the inverting amplifier; a first signal input port coupled to a second end of the capacitor via a first switch; a second signal input port coupled to the second end of the capacitor via a second switch; a feedback connection, coupling the output of the inverting amplifier to the input of the inverting amplifier via a third switch; and a controller, configured to activate the first and third switches at the same time and to activate the second switch when the first and third switches are deactivated.

20. The memory circuit of claim 19, wherein the inverting amplifier is a first inverting amplifier having a threshold voltage, the memory circuit further comprising: a second inverting amplifier, configured to receive the output of the first inverting amplifier as an input, a threshold voltage of the second inverting amplifier being equal to the threshold voltage of the first inverting amplifier.

21. The memory circuit of any one of claims 1 to 20, wherein the memory cell is Random Access Memory (RAM) cell and/or wherein the memory cell array is a Random Access Memory (RAM) cell.

22. The memory circuit of claim 21, wherein the memory cell is a Static Random Access Memory (SRAM) cell and/or wherein the memory cell array is a Static Random Access Memory (SRAM) cell.

23. An Integrated Circuit (IC), comprising the memory circuit of any one of claims 1 to 22.

24. An Integrated Circuit (IC), comprising: a memory circuit comprising a memory cell array and a memory monitoring agent, the memory monitoring agent being configured to indicate a status of the memory cell array; and firmware, configured to receive the indication of the status of the memory cell array from the memory monitoring agent and compare the received indication against a reference level.

25. The IC of claim 24, wherein the memory circuit is in accordance with any one of claims 1 to 22.

26. The IC of claim 24 or claim 25, wherein the firmware is further configured to store the received indication.

27. The IC of any one of claims 24 to 26, further comprising: a write assist circuit, configured to apply a signal to the memory circuit during a write operation; and wherein the firmware is further configured to control the write assist circuit on the basis of the received indication of the status of the memory cell array.

28. The IC of any one of claims 24 to 27, wherein the memory cell array comprises a plurality of bit lines, each bit line being coupled to one or more memory cells of the memory cell array and wherein the memory monitoring agent is configured to indicate a status of the memory cell for each of the plurality of bit lines.

29. The IC of any one of claims 24 to 28, wherein the firmware is configured to control the memory monitoring agent to determine a plurality of statuses of the memory cell array and to indicate the best and/or worst of the determined plurality of statuses to the firmware.

30. The IC of any one of claims 24 to 29, further comprising: a communication interface, configured to provide communication between the firmware and a platform external the IC for communicating the received indication to the platform.

31. A method for operating a memory circuit, comprising: determining a status of the synchronous memory cell array of the memory circuit, based on a time duration between a transition of a clock signal and a change on a signal derived from at least one of a plurality of bit lines of the synchronous memory cell array due to a signaling on at least one of a plurality of address lines of the synchronous memory cell array.

32. The method of claim 31, further comprising determining a time duration from the change on the signal from at least one of the plurality of bit lines to a subsequent transition of the clock signal.

33. The method of claim 31 or claim 32, further comprising: comparing a voltage on one of the bit lines with a reference voltage to provide a comparator output, the signal derived from at least one of the bit lines being the comparator output.

34. A method for operating a memory circuit, comprising: comparing a voltage on a bit line of a memory cell of the memory circuit with a reference voltage to provide a comparator output that is indicative of a status of the memory cell.

35. The method of claim 34, wherein the reference voltage is adjustable.

36. The method of claim 35, further comprising: adjusting the reference voltage and identifying a status of the memory cell based on the comparator output on adjustment of the reference voltage.

37. The method of claim 36, further comprising: determining a status value of the memory cell corresponding with the reference voltage associated with a change in the comparator output or with a higher value.

38. The method of claim 37, further comprising: storing a plurality of status values of the memory cell, each stored status value of the memory cell being measured at a respective time.

39. The method of any one of claims 34 to 38, wherein the memory circuit is a synchronous circuit having a clock signal and the method further comprises: determining a status indication of the memory cell based on a time duration between a transition of the clock signal and a change on the comparator output.

40. The method of any one of claims 34 to 39, wherein the memory circuit comprises a memory cell array formed of a plurality of memory cells, each memory cell having a respective bit line configured to provide data input/output to the respective memory cell and wherein the method further comprises comparing a voltage on one or more of the bit lines with a reference voltage to provide a comparator output that is indicative of a status of one or more of the plurality of memory cells.

41. A method of operating an Integrated Circuit (IC), the method comprising: indicating a status of a memory cell array in the IC; and comparing the indication of the status of the memory cell array against a reference level at firmware in the IC.

42. The method of claim 41, wherein the step of indicating a status of a memory cell array in the IC comprises the method of any one of claims 31 to 40.

43. The method of claim 41 or claim 42, further comprising: storing the indication of the status of the memory cell array at the firmware.

44. The method of any one of claims 41 to 43, wherein the memory cell array comprises a plurality of bit lines, each bit line being coupled to one or more memory cells of the memory cell array and wherein the step of indicating a status of a memory cell array in the IC comprises indicating a status of the memory cell for each of the plurality of bit lines.

45. The method of any one of claims 41 to 44, further comprising: determining a plurality of statuses of the memory cell array, the step of indicating a status of a memory cell array in the IC comprising indicating the best and/or worst of the determined plurality of statuses.

46. The method of any one of claims 41 to 45, further comprising: communicating the indication of the status of the memory cell array from the firmware to a platform external the IC.

47. The method of any one of claim 41 to 46, further comprising: reconfiguring the memory cell array based on the step of comparing.

48. The method of claim 47, wherein the reconfiguring comprises limiting usage of at least one memory cell of the memory cell array.

49. A method comprising: receiving, from each of a plurality of integrated circuits (ICs) of any one of claims 23-30, the indication of the status of the memory cell array of the respective IC; and analyzing the received indications in a platform external to the ICs, to: detect outlier memory cell array behavior of one or more of the ICs, and/or classify the ICs into different classes according to different memory cell array behaviors of the ICs, and/or reconfigure one or more of the ICs to limit usage of at least one memory cell of the memory cell array of the one or more ICs.

50. A system comprising:

(a) at least one hardware processor; and

(b) a non-transitory computer-readable storage medium having program code embodied therewith, the program code executable by said at least one hardware processor to perform the method of claim 49.

51. A computer program product comprising a non-transitory computer-readable storage medium having program code embodied therewith, the program code executable by at least one hardware processor to perform the method of claim 49.

Description:
MEMORY DEVICE DEGRADATION MONITORING

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of priority of U.S. Provisional Patent Application No. 62/943,322, filed December 4, 2019, and entitled “Memory Device Monitoring”, the contents of which are incorporated herein by reference.

FIELD OF THE INVENTION

[0002] The invention relates to the field of integrated circuits and specifically memory devices, including Random Access Memory (RAM), Static RAM (SRAM), Dynamic RAM (DRAM), and Read Only Memory (ROM).

BACKGROUND

[0003] Integrated circuits (ICs) include analog and digital electronic circuits on a flat semiconductor substrate, such as a silicon wafer. Microscopic transistors are printed onto the substrate using photolithography techniques to produce complex circuits of billions of transistors in a very small area, making modem electronic circuit design using ICs both low cost and high performance. ICs are produced in assembly lines of factories, termed “foundries,” which have commoditized the production of ICs, such as complementary metal-oxide-semiconductor (CMOS) ICs.

[0004] Digital ICs contain billions of transistors, such as metal-oxide-semiconductor field-effect transistor (MOSFETs), arranged in functional and/or logical units on the wafer, with datapaths interconnecting the functional units that transfer data values between the functional units. Each unit has a power source and an associated ‘on’ power, ‘off power, ‘standby’ power, and the like.

[0005] ICs sometimes include Random Access Memory (RAM), for example Static RAM (SRAM). RAM circuits may degrade over time, leading to failure of write and/or read operations. Monitoring such degradation is still considered a challenge.

[0006] The foregoing examples of the related art and limitations related therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent to those of skill in the art upon a reading of the specification and a study of the figures. SUMMARY

[0007] The following embodiments and aspects thereof are described and illustrated in conjunction with systems, tools and methods which are meant to be exemplary and illustrative, not limiting in scope.

[0008] In one aspect, there may be provided a memory circuit, comprising: a synchronous memory cell array, configured to receive a clock signal and having address lines and bit lines; and a margin agent, configured to receive a signal derived from at least one of the bit lines and to determine a status indication of the synchronous memory cell array based on a time duration between a transition of the clock signal and a change on the received signal from at least one of the bit lines due to a signaling on at least one of the address lines.

[0009] In embodiments, the margin agent is configured to determine a time duration from the change on the received signal to a subsequent transition of the clock signal.

[0010] In embodiments, the memory circuit further comprises an output stage, coupled to the bit lines of the synchronous memory cell array, the margin agent being configured to receive the signal derived from at least one of the bit lines from the output stage. Optionally, the output stage comprises a sensing amplifier, configured to amplify a signal received from the bit lines of the synchronous memory cell array and further configured to receive a strobe signal that controls activation of the sensing amplifier at a predetermined time interval after selection of a read operation for the synchronous memory cell array. The margin agent may be configured to receive the signal derived from at least one of the bit lines from the sensing amplifier at a time that is after selection of the read operation by less than the predetermined time interval.

[0011] In embodiments, the memory circuit may further comprise: a comparator, configured to compare a voltage on one of the bit lines with a reference voltage and provide a comparator output, the margin agent being configured to receive the comparator output as the signal derived from at least one of the bit lines.

[0012] In another aspect, there may be considered a memory circuit, comprising: a memory cell, having a bit line configured to provide data input/output to the memory cell; and a comparator, configured to compare a voltage on the bit line with a reference voltage and provide a comparator output that is indicative of a status of the memory cell.

[0013] In embodiments, the reference voltage is adjustable. [0014] In embodiments, the memory circuit further comprises: a controller, configured to adjust the reference voltage and identify a status of the memory cell based on the comparator output on adjustment of the reference voltage.

[0015] In embodiments, the controller is configured to determine a status value of the memory cell corresponding with the reference voltage associated with a change in the comparator output or with a higher value. Optionally, the controller is configured to store a plurality of status values of the memory cell, each stored status value of the reference voltage being measured at a respective time.

[0016] In embodiments, the memory cell has a standard bit line and an inverse bit line, a signal on the inverse bit line being the logical inverse of a signal on the standard bit line. Then, the memory circuit may further comprise a multiplexer, configured to selectively provide the signal on the standard bit line and the signal on the inverse bit line to the comparator, based on the signal on the standard bit line and/or the signal on the inverse bit line.

[0017] In embodiments, the memory circuit is a synchronous circuit having a clock signal. The memory circuit may further comprise a margin agent, configured to receive the comparator output and to determine a status indication of the memory cell based on a time duration between a transition of the clock signal and a change on the comparator output.

[0018] In embodiments, the memory circuit comprises a memory cell array formed of a plurality of memory cells, each memory cell having a respective bit line configured to provide data input/output to the respective memory cell and wherein the comparator is configured to compare a voltage on one or more of the bit lines with a reference voltage and provide a comparator output that is indicative of a status of one or more of the plurality of memory cells. Optionally, the memory circuit comprises a plurality of comparators, each comparator being configured to compare a voltage on a respective one or more of the bit lines with a respective reference voltage and provide a respective comparator output that is indicative of a status of a respective one or more of the plurality of memory cells. Optionally, the comparator or each of the comparators is positioned outside the memory cell array. Optionally, the memory circuit, further comprises: a precharge circuit coupled to the bit lines of the plurality of memory cells, the comparator or each of the comparators being positioned at or adjacent the precharge circuit. [0019] In embodiments, the memory circuit further comprises: addressing circuitry configured to select a memory cell for a read or write operation.

[0020] In embodiments, the comparator or each of the comparators comprises an inverter- based amplifier. Optionally, the inverter-based amplifier comprises: an inverting amplifier, having an input and an output; a capacitor coupled at a first end to the input of the inverting amplifier; a first signal input port coupled to a second end of the capacitor via a first switch; a second signal input port coupled to the second end of the capacitor via a second switch; a feedback connection, coupling the output of the inverting amplifier to the input of the inverting amplifier via a third switch; and a controller, configured to activate the first and third switches at the same time and to activate the second switch when the first and third switches are deactivated. Optionally, the inverting amplifier is a first inverting amplifier having a threshold voltage. The memory circuit may further comprise a second inverting amplifier, configured to receive the output of the first inverting amplifier as an input. A threshold voltage of the second inverting amplifier may be equal to the threshold voltage of the first inverting amplifier.

[0021] In embodiments, the memory cell is Random Access Memory (RAM) cell and/or wherein the memory cell array is a Random Access Memory (RAM) cell. Optionally, the memory cell is a Static Random Access Memory (SRAM) cell and/or wherein the memory cell array is a Static Random Access Memory (SRAM) cell.

[0022] An aspect of the disclosure may be found in an Integrated Circuit (IC), comprising the memory circuit as herein disclosed.

[0023] A further aspect may be found in an Integrated Circuit (IC), comprising: a memory circuit comprising a memory cell array and a memory monitoring agent, the memory monitoring agent being configured to indicate a status of the memory cell array; and firmware, configured to receive the indication of the status of the memory cell array from the memory monitoring agent and compare the received indication against a reference level. In embodiments, the memory circuit is in accordance with any such memory circuit as herein disclosed.

[0024] In embodiments, the firmware is further configured to store the received indication.

[0025] In embodiments, the IC further comprise: a write assist circuit, configured to apply a signal to the memory circuit during a write operation. The firmware is optionally further configured to control the write assist circuit on the basis of the received indication of the status of the memory cell array.

[0026] In embodiments, the memory cell array comprises a plurality of bit lines, each bit line being coupled to one or more memory cells of the memory cell array and wherein the memory monitoring agent is configured to indicate a status of the memory cell for each of the plurality of bit lines.

[0027] In embodiments, the firmware is configured to control the memory monitoring agent to determine a plurality of statuses of the memory cell array and to indicate the best and/or worst of the determined plurality of statuses to the firmware.

[0028] In embodiments, the IC further comprises: a communication interface, configured to provide communication between the firmware and a platform external the IC for communicating the received indication to the platform.

[0029] A yet further aspect may be found in a method for operating a memory circuit, comprising: determining a status of the synchronous memory cell array based on a time duration between a transition of a clock signal and a change on a signal derived from at least one of a plurality of bit lines of the synchronous memory cell array due to a signaling on at least one of a plurality of address lines of the synchronous memory cell array.

[0030] In embodiments, the method further comprises determining a time duration from the change on the signal from at least one of the plurality of bit lines to a subsequent transition of the clock signal.

[0031] In embodiments, the method further comprises: comparing a voltage on one of the bit lines with a reference voltage to provide a comparator output, the signal derived from at least one of the bit lines being the comparator output.

[0032] In another further aspect, there may be considered a method for operating a memory circuit, comprising: comparing a voltage on a bit line of a memory cell with a reference voltage to provide a comparator output that is indicative of a status of the memory cell.

[0033] In embodiments, the reference voltage is adjustable.

[0034] In embodiments, the method further comprises: adjusting the reference voltage and identifying a status of the memory cell based on the comparator output on adjustment of the reference voltage. [0035] In embodiments, the method further comprises: determining a status value of the memory cell corresponding with the reference voltage associated with a change in the comparator output or with a higher value.

[0036] In embodiments, the method further comprises: storing a plurality of status values of the memory cell, each stored status value of the memory cell being measured at a respective time.

[0037] In embodiments, the memory circuit is a synchronous circuit having a clock signal. Then, the method may further comprise: determining a status indication of the memory cell based on a time duration between a transition of the clock signal and a change on the comparator output.

[0038] In embodiments, the memory circuit comprises a memory cell array formed of a plurality of memory cells, each memory cell having a respective bit line configured to provide data input/output to the respective memory cell. Then, the method may further comprise comparing a voltage on one or more of the bit lines with a reference voltage to provide a comparator output that is indicative of a status of one or more of the plurality of memory cells.

[0039] In yet another further aspect, there is a method of operating an Integrated Circuit (IC), the method comprising: indicating a status of a memory cell array in the IC; and comparing the indication of the status of the memory cell array against a reference level at firmware in the IC.

[0040] In embodiments, the step of indicating a status of a memory cell array in the IC comprises any such method as herein disclosed.

[0041] In embodiments, the method further comprises: storing the indication of the status of the memory cell array at the firmware.

[0042] In embodiments, the memory cell array comprises a plurality of bit lines, each bit line being coupled to one or more memory cells of the memory cell array. Then, the step of indicating a status of a memory cell array in the IC may comprise indicating a status of the memory cell for each of the plurality of bit lines.

[0043] In embodiments, the method further comprises: determining a plurality of statuses of the memory cell array. The step of indicating a status of a memory cell array in the IC may comprise indicating the best and/or worst of the determined plurality of statuses. [0044] In embodiments, the method further comprises: communicating the indication of the status of the memory cell array from the firmware to a platform external the IC.

[0045] In embodiments, the method further comprises: reconfiguring the memory cell array based on the step of comparing.

[0046] In embodiments, the reconfiguring comprises limiting usage of at least one memory cell of the memory cell array.

[0047] In yet another further aspect, there is a method comprising: receiving, from each of a plurality of integrated circuits (ICs) discussed above, the indication of the status of the memory cell array of the respective IC; and analyzing the received indications in a platform external to the ICs, to: detect outlier memory cell array behavior of one or more of the ICs, and/or classify the ICs into different classes according to different memory cell array behaviors of the ICs, and/or reconfigure one or more of the ICs to limit usage of at least one memory cell of the memory cell array of the one or more ICs.

[0048] In a related aspect, there is a system comprising (a) at least one hardware processor; and (b) a non-transitory computer-readable storage medium having program code embodied therewith, the program code executable by said at least one hardware processor to perform the latter method.

[0049] In a further related aspect, there is a computer program product comprising a non- transitory computer-readable storage medium having program code embodied therewith, the program code executable by at least one hardware processor to perform the latter method.

[0050] In addition to the exemplary aspects and embodiments described above, further aspects and embodiments will become apparent by reference to the figures and by study of the following detailed description. Moreover, the various features and embodiments of the invention described above are specifically contemplated to be used alone as well as in various combinations.

BRIEF DESCRIPTION OF THE FIGURES

[0051] Exemplary embodiments are illustrated in referenced figures. Dimensions of components and features shown in the figures are generally chosen for convenience and clarity of presentation and are not necessarily shown to scale. The figures are listed below. [0052] FIG. 1 shows a schematic block diagram of an existing Static Random Access Memory (SRAM) circuit;

[0053] FIG. 2 shows a schematic block diagram of an SRAM circuit in line with a first embodiment in accordance with the disclosure;

[0054] FIG. 3 shows a schematic block diagram of an SRAM circuit in line with a second embodiment in accordance with the disclosure;

[0055] FIG. 4 shows a schematic circuit diagram of an existing SRAM array unit;

[0056] FIG. 5 shows a schematic block diagram of a write assist logic agent in accordance with the disclosure;

[0057] FIG. 6A shows a schematic circuit diagram of an SRAM array unit with a first write detection indicator in line with an embodiment in accordance with the disclosure;

[0058] FIG. 6B shows a schematic circuit diagram of an SRAM array unit with a second write detection indicator in line with an embodiment in accordance with the disclosure;

[0059] FIG. 7A shows a schematic circuit diagram of an SRAM array unit with a first write performance indicator in line with an embodiment in accordance with the disclosure;

[0060] FIG. 7B shows a schematic circuit diagram of an SRAM array unit with a second write performance indicator in line with an embodiment in accordance with the disclosure;

[0061] FIG. 7C shows a schematic circuit diagram of an SRAM array unit with a third write performance indicator in line with an embodiment in accordance with the disclosure;

[0062] FIG. 8A shows a schematic circuit diagram of a comparator circuit for use in embodiments in accordance with the disclosure; and

[0063] FIG. 8B shows a waveform timing diagram for signals shown in the schematic circuit diagram of FIG. 8 A.

DETAILED DESCRIPTION

[0064] The present disclosure provides circuits, methods, and systems for measuring and/or detecting degradation of memory cells in a memory circuit, that may evolve into failure of write and/or read operations. This may allow such degradation to be detected early enough to allow protection of the memory circuit and optionally to take mitigating action during the design, manufacture, and/or normal (field) usage of the memory circuit.

[0065] Embodiments according to the disclosure will discussed with specific reference to Static Random Access Memory (SRAM). However, embodiments in accordance with the disclosure may also be applied to other types of electronic (digital) memories, as will be further discussed below.

[0066] With reference to FIG. 1, there is shown a schematic block diagram of an existing SRAM circuit 1. The SRAM circuit 1 comprises: a memory array 10; a column multiplexor 20; a row decoder 30; a precharge circuit 50; a sensing amplifier 60; and a controller 70. The memory array 10 comprises an array of SRAM cells, each SRAM cell storing one bit of data. The SRAM cells of the memory array 10 are arranged in two dimensions that are addressed by identification of a respective row and column. An addressing signal 25 is provided to the column multiplexor 20 and the row decoder 30, which activate one or more SRAM cells in the memory array 10. The precharge circuit 50 is controlled by controller 70 depending on whether a read or write operation is being selected. If a read operation is selected, the data bit stored in the addressed SRAM cell is indicated on a bit line (not shown) and this data is passed to sensing amplifier 60, which provides the data bit as an output 65. The SRAM circuit 1 is a synchronous circuit and the read and write processes are governed by a clock signal 40.

[0067] It has been recognized that degradation or defects in SRAM circuits, such as the illustrative SRAM circuit 1, may lead to failure of read and/or write operations. Typically, this is only discovered when the operation actually fails. At this stage, it is too late to prevent damage to the SRAM circuit 1 and/or the data stored in the SRAM circuit 1. The present disclosure provides circuits that are configured to detect degradation of an SRAM cell that may evolve into failure of write and/or read operations. This may allow such degradation to be detected early enough to allow protection of the SRAM circuit and optionally to take mitigating action during the design, manufacture, and/or normal (field) usage of the SRAM circuit. The circuit may have a number of parts (or, in another sense, be configured as multiple circuits), for example for detecting degradation in respect of read and write operations separately. The circuit may monitor degradation over time, for example allow benchmarking at an early stage in the SRAM lifetime, for comparison purposes during aging. The circuit (or circuits) are designed and configured not to interfere with the operation of the memory array of the SRAM circuit.

[0068] Reference is made to FIG. 2, which shows a schematic block diagram of an SRAM circuit 2, in line with a first embodiment in accordance with the disclosure. Where the same features are depicted as shown in FIG. 1, the same reference numerals are used. The SRAM circuit 2 is configured for monitoring of degradation of the SRAM memory array 10 and associated circuitry, particularly in respect of read operations.

[0069] In particular, a timing delay between a readout signal appearing on the output line 65 and a transition (particularly a rising edge transition) on clock signal 40 may provide a measure of the degradation. This timing delay may be termed a ‘timing delay margin.’ A margin agent 80 is therefore provided to determine this timing delay, specifically at the output of the SRAM circuit 2. This may be a first type of degradation monitoring circuit in accordance with that discussed above. The margin agent 80 may determine the timing delay by applying a delay circuit to one of the received signal paths and comparing the delayed signal path with the other signal path. By setting the delay circuit appropriately, the margin can be measured. Further details on margin measurements and margin agents may be found in co-pending, co-assigned PCT International Publication No. WO 2019/097516, the contents of which are incorporated herein by reference in their entirety. Measuring the margin (using the margin agent 80) over time, in particular showing a reduction in margin, may show degradation of the SRAM circuit 2.

[0070] In general terms, there may be considered a memory circuit, comprising: a synchronous memory cell array, configured to receive a clock signal and having address lines and bit lines; and a margin agent, configured to receive a signal derived from at least one of the bit lines and to determine a status (or performance) indication of the synchronous memory cell array based on a time duration between a transition of the clock signal and a change on the received signal from at least one of the bit lines due to a signaling on at least one of the address lines. The signal derived from at least one of the bit lines may be representative of a read operation and/or a write operation. This may be applied to SRAM or other types of RAM or ROM and/or other memory devices, as will be discussed below.

[0071] In embodiments, the margin agent is configured to determine a time duration from the change on the received signal to a subsequent transition of the clock signal (optionally, a rising edge). In some embodiments, the memory circuit further comprises: an output stage (such as a buffer or amplification stage), coupled to the bit lines of the synchronous memory cell array, the margin agent being configured to receive the signal derived from at least one of the bit lines from the output stage. For evaluating a read operation, the signal derived from at least one of the bit lines may be an output signal from the bit line during a read operation. The output stage may comprise a sensing amplifier, in particular configured to amplify a differential signal received from the bit lines of the synchronous memory cell array.

[0072] A method corresponding with this aspect may also be considered, for example a method for operating or manufacturing a memory circuit. A method for operating a memory circuit comprises: determining a status (or performance) of the synchronous memory cell array based on a time duration between a transition of a clock signal and a change on a signal derived from at least one of a plurality of bit lines of the synchronous memory cell array due to a signaling on at least one of a plurality of address lines of the synchronous memory cell array. Optionally, the method further comprises determining a time duration from the change on the signal from at least one of the plurality of bit lines to a subsequent transition of the clock signal. As noted above, such methods may be applied to SRAM or other types of RAM or ROM, as will be discuss below.

[0073] Reference is made to FIG. 3, which shows a schematic block diagram of an SRAM circuit 3 in line with a second embodiment in accordance with the disclosure. Where the same features are depicted as shown in FIG. 1, the same reference numerals are used. The SRAM circuit 3 is configured for monitoring of degradation of the SRAM memory array 10 and associated circuitry, particularly in respect of write operations. The SRAM circuit 3 additionally includes a write data agent 90. This may be a second type of degradation monitoring circuit in accordance with that discussed above. The write data agent 90 is provided at, adjacent or near the precharge circuit 50 (at the same pitch as the precharge device). As this is outside the memory array 10, it may be more efficient in terms of space and power and may improve performance of the write data agent 90. It should be noted that the combination of the embodiments shown in FIG. 2 and FIG. 3 is possible, such that both margin agent 80 and write data agent 90 (both types of degradation monitoring circuit) may be provided within an SRAM circuit.

[0074] The purpose of the write data agent 90 is to (continuously) monitor the write-data operation of the SRAM memory array 10. The write data agent 90 is intended to provide an alert on write-data degradation before write-data error occurs. The memory array 10 may be especially sensitive to defects and/or degradation. This may provide significant value to the user in allowing alert before failure and/or providing a write-assist margin characterization (as will be discussed further below). The write data agent 90 may therefore indicate a status of the write data operation of the memory array 10 and by monitoring this status over time, degradation and/or defects may be detected. Advantageous designs for the write data agent 90 will be discussed below.

[0075] Reference is now made to FIG. 4, which shows a schematic circuit diagram of an existing SRAM array unit 100. The SRAM array unit 100 comprises: an SRAM memory cell 101; a bit line 110; an inverse bit line 115; a sensing amplifier 60; a write data input 120; a first write inverting amplifier 130; an inverted write data input 125; a second write inverting amplifier 135; a first word line enable switch 140; a second word line enable switch 145; a first pass gate switch 150; and a second pass gate switch 155. The configuration of the SRAM memory cell 101 with the first word line enable switch 140 and the second word line enable switch 145 provides a standard 6-transistor configuration for an SRAM memory cell in a memory array.

[0076] The write data input 120 comprises the combination (AND) of a write enable signal and a write data signal. The inverted write data input 125 is the inverse of the write data input 120. The first word line enable switch 140 and the second word line enable switch 145 are controlled by the same word line signal. The first pass gate switch 150 and the second pass gate switch 155 are controlled by the same pass gate signal. When the first word line enable switch 140 and the second word line enable switch 145 are enabled and the write data input 120 (and the inverted write data input 125) are at a logical low level, a read operation is performed and the bit line 110 and inverse bit line 115 indicate the data bit stored in the SRAM memory cell 101. The bit line 110 and the inverse bit line 115 are provided to the sensing amplifier 60, which provides a data bit output for the SRAM array unit 100. Reference is made to FIG. 5, which shows a schematic block diagram of a write assist logic in accordance with the disclosure. A write-assist logic 160 is used to control a write buffer switch 170 on the bit line 110. This may be used to control a pulsed negative voltage on the bit line 110. The write data agent 90 can be used to optimize the write assist logic 160, by setting or increasing the write-assist pulse width (that is, the width of the pulsed negative voltage on the bit line 110) based on degradation detection. For example, the system can initialize with no write-assist pulse and activate the write-assist pulse based on degradation identified by the write data agent 90. [0077] Further discussion and embodiments of the write data logic 90, as discussed with reference to FIG. 3 above will now be presented. In this respect, reference is made to FIG. 6A, which shows a schematic circuit diagram of an SRAM array unit with a write detection indicator, as at least part of a write data agent 90. The SRAM array unit shown in FIG. 6 A includes all of the features of the SRAM array unit 100 shown in FIG. 4 and the same features are labelled with identical reference numerals. The additional components making up the write detection indicator comprise: a comparator 200 providing an output 220; and a margin reference level 210, which is provided as one of the inputs to the comparator 200. The other input to the comparator 200 is provided by the bit line 110 (where it is coupled to the first word line enable switch 140 and the first pass gate switch 150). The comparator 200 is optionally an inverter-based comparator with offset cancellation and a possible embodiment of this will be discussed further below. The comparator output 220 will remain low if the voltage on the bit line 110 is higher than the voltage of the margin reference level 210.

[0078] As write operations are performed on the SRAM memory cell 101, the comparator 200 is affected by the same voltage felt by the bit line 110 that is driven to zero voltage (or even to less than zero). The comparator 200 then compares the voltage of the bit line 110 with the margin reference level 210, which acts as a reference voltage (typically higher than zero, for example 0.2V). By reading the comparator output 220, it can be determined if the write operation has succeeded (because the bit line voltage 110 is discharged to lower than the reference voltage) or failed (bit line voltage was higher than reference voltage).

[0079] Performing occasional small changes to the margin reference level 210, can allow pinpointing of the exact voltage at which write operations fail. In other words, the determination of such a threshold for the margin reference level 210 may indicate a performance of the write operation. This threshold of the margin reference level 210 may change (typically worsen, such that the margin gets lower) over time. By tracking it, predictions as to when the SRAM memory cell 101 will completely fail can be made. Additionally or alternatively, the margin reference level 210 may be set for an individual IC (in which the SRAM is provided) or in accordance with a certain profile of the IC or in accordance with the IC functionality.

[0080] Reference is made to FIG. 6B, which shows a schematic circuit diagram of an SRAM array unit with a second write detection indicator, as at least part of a write data agent 90, especially for write-degradation monitoring of the inverse bit line 115. The SRAM array unit shown in FIG. 6B includes all of the features shown in FIG. 6A and the same features are labelled with identical reference numerals. Also provided is a multiplexer 205, having a first input connected to the bit line 110 and a second input connected to the inverse bit line 115. A bit line selection signal 206 is used to select whether the output of the multiplexer 205 (which is provided as an input to the comparator 200) is the bit line 110 or the inverse bit line 115. The bit line selection signal 206 is advantageously based on the data polarity: if the data is a logical high level, then the cell is writing a logical low level to the inverse bit line 115 and the multiplexer 205 should select the inverse bit line 115. Conversely, if the data is a logical low level, then the cell is writing a logical low level to the bit line 110 and the multiplexer 205 should select the bit line 110.

[0081] This approach can be taken further, as in a synchronous SRAM circuit, the timing of the comparator output 220 (indicative of a write operation success) may also be used as a performance indication. Reference is made to FIG. 7A, which shows a schematic circuit diagram of an SRAM array unit with a write performance indicator. This comprises the features shown in FIG. 6A and these are labelled with the same reference numerals. In this approach, the comparator output 220 is provided as an input to a margin agent 230. A second input to the margin agent 230 is provided by the clock signal 240.

[0082] The margin agent 230 may therefore determine a timing delay between a write operation success signal (from the comparator output 220) and a transition (particularly a rising edge transition) on clock signal 240. This may provide a measure of degradation in the write operation. This timing delay may be termed a timing delay margin. The margin agent 230 may determine the timing delay by applying a delay circuit to one of the received signal paths and comparing the delayed signal path with the other signal path or other approach, for example as discussed above. The margin may vary over the lifetime of the SRAM memory cell 101 (typically by reduction) and this may be captured using the approach described herein.

[0083] Reference is made to FIG. 7B, which shows a schematic circuit diagram of an SRAM array unit with a second write performance indicator. This comprises the features shown in FIG. 6B and these are labelled with the same reference numerals. The additional features of FIG. 7A, providing the comparator output 220 as an input to a margin agent 230 and a second input to the margin agent 230 provided by the clock signal 240, are also indicated.

[0084] Reference is also made to FIG. 7C, which shows a schematic circuit diagram of an SRAM array unit with a read/write performance indicator. This comprises the features shown in FIG. 7B and these are labelled with the same reference numerals. In addition, there is shown a Sensing Amplifier Strobe Signal 62. This is a signal that causes activation or deactivation of the Sensing Amplifier 60. During a read operation, the Sensing Amplifier Strobe Signal 62 is configured to cause the Sensing Amplifier 60 to activate at a predetermined time interval from the read operation being selected. The predetermined time interval allows a voltage gap to develop between the bit line 110 and the inverse bit line 115.

[0085] To measure or monitor read degradation, the output 65 of the Sensing amplifier 60 is measured after the read operation is selected but before the activation of the Sensing Amplifier 60 by the Sensing Amplifier Strobe Signal 62.

[0086] In terms of the general sense discussed above, for example, it may be considered that the memory circuit (for example, SRAM circuit) further comprises: a comparator, configured to compare a voltage on one of the bit lines with a reference voltage and provide a comparator output, the margin agent being configured to receive the comparator output as the signal derived from at least one of the bit lines. This may allow the read and/or write margin to be determined based on the comparator output. The margin agent can thereby track the timing of the comparator output during a read operation (comparing the discharged signal on the bit line or inverse bit line to a read-margin-level) and/or during a write operation (comparing the successful write indicated by the bit line or inverse bit line against a write-margin-level).

[0087] In another general sense, there may be considered a memory circuit, comprising: a memory cell, having a bit line configured to provide data input/output to the memory cell; and a comparator, configured to compare a voltage on the bit line with a reference voltage and provide a comparator output that is indicative of a status of the memory cell. Optionally, memory cell is a RAM cell and further optionally, the RAM cell is an SRAM cell.

[0088] In embodiments, the reference voltage is adjustable. For example, the memory circuit may further comprise: a controller, configured to adjust the reference voltage and identify a status of the memory cell based on the comparator output on adjustment of the reference voltage. Optionally, the controller is configured to determine a status value of the memory cell corresponding with the reference voltage associated with a change in the comparator output or with a higher value (for instance, a threshold value). In embodiments, the controller is configured to store a plurality of status values of the memory cell, each stored status value is respective of the reference voltage being measured at a respective time.

[0089] In embodiments, the memory cell has a standard bit line and an inverse bit line. In such cases, a signal on the inverse bit line is typically the logical inverse of a signal on the standard bit line. Then, the memory circuit may further comprise a multiplexer, configured to selectively provide the signal on the standard bit line and the signal on the inverse bit line to the comparator (as the voltage on the bit line). In particular, the selection may be based on the signal on the standard bit line and/or the signal on the inverse bit line. For example, if the signal on the standard bit line is a logical low level, the multiplexer may be configured to provide the signal on the standard bit line to the comparator and if the signal on the inverse bit line is a logical low level, the multiplexer may be configured to provide the signal on the inverse bit line to the comparator.

[0090] In certain embodiments, the memory circuit is a synchronous circuit having a clock signal. Then, the memory circuit may further comprise: a margin agent, configured to receive the comparator output and to determine a status (or performance) indication of the memory cell based on a time duration between a transition of the clock signal and a change on the comparator output.

[0091] In embodiments, an output stage of the memory circuit comprises a sensing amplifier, configured to amplify a signal received from the bit lines of the synchronous memory cell array. For example, the signal received from the bit lines of the synchronous memory cell array may comprise a bit line signal and an inverse bit line signal (the bit line signal and the inverse bit line signal being configured as the logical inverse of one another) and in this case, the sensing amplifier may be configured to amplify a differential signal. The sensing amplifier may be further configured to receive a strobe signal that controls activation of the sensing amplifier at a predetermined time interval after selection of a read operation for the synchronous memory cell array. Then, a margin agent in accordance with the disclosure may be configured to receive the signal derived from at least one of the bit lines from the sensing amplifier at a time that is after selection of the read operation by less than the predetermined time interval. [0092] In embodiments according to any aspect or general sense discussed herein, the memory (optionally RAM) circuit comprises a memory cell array formed of a plurality of memory cells. Each memory cell has a respective bit line configured to provide data input/output to the respective memory cell. Then, the comparator may be configured to compare a voltage on one or more of the bit lines with a reference voltage and provide a comparator output that is indicative of a status (for example, a write operation success status) of one or more of the plurality of memory cells. In some embodiments, the memory circuit comprises a plurality of comparators. Each comparator may be configured to compare a voltage on a respective one or more of the bit lines with a respective reference voltage and provide a respective comparator output that is indicative of a status of a respective one or more of the plurality of memory cells. The comparator or each of the comparators is advantageously positioned outside the memory cell array. For example, the memory circuit may comprise a precharge circuit coupled to the bit lines of the plurality of memory cells. Then, the comparator or each of the comparators (and/or the margin agent or each of the margin agents) may be positioned at or adjacent the precharge circuit.

[0093] In certain embodiments, the memory circuit further comprises: addressing circuitry configured to select a memory cell for a read or (in the case of RAM) a write operation.

[0094] According to any aspect or embodiment as herein disclosed, there may be provided an Integrated Circuit (IC), comprising the memory circuit.

[0095] According to method aspects disclosed herein, a further step of comparing a voltage on one of the bit lines with a reference voltage to provide a comparator output may be considered. Here, the signal derived from at least one of the bit lines is the comparator output.

[0096] In line with another method aspect (which may be combined with any other aspect disclosed herein), there may be considered a method for operating a memory circuit comprising: comparing a voltage on a bit line of a memory cell with a reference voltage to provide a comparator output that is indicative of a status of the memory cell. Here, the reference voltage is optionally adjustable. In embodiments, the method may further comprise: adjusting the reference voltage and identifying a status of the memory cell based on the comparator output on adjustment of the reference voltage. Then, the method may further comprise: determining a status value of the memory cell corresponding with the reference voltage associated with a change in the comparator output or with a higher value. In embodiments, the method further comprise: storing a plurality of status values of the reference voltage, each stored status value of the reference voltage being measured at a respective time.

[0097] In accordance with any aspect, the memory circuit may be a synchronous circuit having a clock signal. In such embodiments, the methods may further comprise: determining a status (or performance) indication of the memory cell based on a time duration between a transition of the clock signal and a change on the comparator output.

[0098] In some embodiments, the memory (optionally, RAM) circuit comprises a memory cell array formed of a plurality of memory cells, each memory cell having a respective bit line configured to provide data input/output to the respective memory cell. Then, the method may further comprise comparing a voltage on one or more of the bit lines with a reference voltage to provide a comparator output that is indicative of a status of one or more of the plurality of SRAM cells.

[0099] An advantageous inverter-based comparator with offset cancellation for use in the embodiments of FIGs. 6A-6B and FIGs. 7A-7C is now described. In this regard, reference is made to FIG. 8A, which shows a schematic circuit diagram of a comparator circuit 300. The comparator circuit 300 comprises: a first input 310 (also labelled VREF); a first switch 315 gating the first input 310; a second input 320 (also labelled Vin); a second switch 325 gating the second input 320; an inverting amplifier 330; a third switch 335 provided in a feedback path between an input of the inverting amplifier 330 and an output of the inverting amplifier 330; a capacitor 340; and an output matched-inverter 350 providing an output 360. The capacitor 340 is coupled between the first node (receiving the gated first input from the first switch 315 and the gated second input from the second switch 325) and a second node at the input to the inverting amplifier 330. The voltage across the capacitor 340 is labelled Vc. In the context of the embodiments of FIGs. 6A-6B and FIGs. 7A-7C, the margin reference level 210 of those figures may be provided to the first input 310 (VREF) of FIG. 8 A, and the bit line 110 of those figures may be provided to the second input 320 (Vin) of FIG. 8A. The output matched-inverter 350 has a threshold voltage that is equal the threshold voltage of the inverting amplifier 330.

[0100] The first switch 315 is controlled by a first control signal F1. The third switch 335 is also controlled by the first control signal F1. The second switch 325 is controlled by a second control signal 325. Reference is then made to FIG. 8B, which shows a waveform timing diagram for signals shown in the schematic circuit diagram of FIG. 8A.

[0101] The comparator circuit 300 operate in two phases. The first phase is a calibration phase (offset cancellation), in which the inverting amplifier 330 input and output are shorted and the capacitor 340 is charged. In the second (evaluation) phase, the inverting amplifier 330 acts like an amplifier or a comparator (as the input and output are disconnected).

[0102] In particular, it can be seen that, in the first phase, the first control signal F1 is configured to activate the first switch 315 and the third switch 335 such that (V ou t = Vin = Vtnp). Then, the voltage Vc across the capacitor 340 is charged to Vtrip - VREF. The voltage Vtnp represents an inverter trip-point, that is the output voltage (or the input voltage) when the output of the inverting amplifier 330 and the input of the inverting amplifier 330 are shorted.

[0103] In the second phase, the first control signal F1 is configured to deactivate the first switch 315 and the third switch 335. The second control signal F2 is configured to active the second switch 325. This causes the voltage Vc across the capacitor 340 to increase to V tnp - (VREF - Vi n ) and for the output of the inverting amplifier 330 (V out ) to switch to V ss . As a result, if Vin is greater than V REF , the output will go low, and if Vi n is less than V REF , the output will go high. By using the offset cancellation technique, the comparator circuit 300 may be reliable and effectively cancel noise and/or VDD-based effects.

[0104] In general senses as discussed above, the memory (typically RAM) circuit may comprise one or more comparators, wherein each comparator comprises an inverter-based amplifier.

[0105] According to these aspects or independently from other aspects discussed herein, an inverter-based amplifier may comprise: an inverting amplifier (or a small-size comparator), having an input and an output; a capacitor coupled at a first end to the input of the inverting amplifier; a first signal input port coupled to a second end of the capacitor via a first switch; a second signal input port coupled to the second end of the capacitor via a second switch; a feedback connection, coupling the output of the inverting amplifier to the input of the inverting amplifier via a third switch; and a controller, configured to activate the first and third switches at the same time and to activate the second switch when the first and third switches are deactivated. This may allow the capacitor to be charged to a signal based on a threshold voltage reduced by a voltage at the first signal input port and then the output may be provided indicative of the difference between a voltage at the second signal input port and the voltage at the first signal input port (and the threshold voltage). This control operation may be repeated, such that the first and third switches are activated with the second switch deactivated and then the first and third switches are deactivated with the second switch activated in alternating fashion.

[0106] In embodiments, the inverting amplifier is a first inverting amplifier having a threshold voltage. The memory circuit may then further comprise a second inverting amplifier, configured to receive the output of the first inverting amplifier as an input. A threshold voltage of the second inverting amplifier is advantageously equal (or approximately or substantially equal) to the threshold voltage of the first inverting amplifier.

[0107] As indicated above, the memory circuit, for example SRAM, may be implemented on an IC. Firmware on the IC (for example as part of the controller 70), or any other suitably-configured circuit and/or software on the IC (all referred to herein as “firmware” for reasons of simplicity) may be used to determine measurements from one or more of the read operation margin agent, write data indicator and write operation margin agent. The firmware may control processing of received measurements. The firmware may store outputs. The firmware may receive, process and/or issue the status (or performance) indication(s). The firmware may provide any one of the measurements (in raw or processed form), outputs, and indications (collectively, “data”) to an analytical platform external the IC, using a communications interface of the IC. Data analysis from a large number of such ICs may be advantageously performed at the platform.

[0108] The analytical platform may be a computerized system including one or more hardware processor(s) (e.g., CPUs), a random-access memory (RAM), one or more non- transitory computer-readable storage device(s), and a network interface controller (NIC). The storage device(s) may have stored thereon program instructions and/or components configured to operate the hardware processor(s). The program instructions may include one or more software modules, such as a module that analyzes the data received from sources such as ICs operating in the field, pre-silicon design and simulation software, and/or post-silicon testing devices. [0109] The software components may include an operating system having various software components and/or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, network communication, etc.), and facilitating communication between various hardware and software components.

[0110] The analytical platform may operate by loading instructions of the data analysis module into the RAM as they are being executed by the processor(s). The instructions of the data analysis module may cause the analytical platform to receive, such as through its network interface controller (e.g., through the Internet) data gathered from one or more of the above-mentioned sources, process it, and output statistical analysis of the data. The statistical analysis may be indicative, for example, of a status and/or performance distribution of the ICs, and may include detection of outliers with respect to memory cell array behavior (status and/or performance-wise) of the ICs. The ICs may be classified into different classes according to different such behaviors. Based on the analysis performed at the platform, one or more of the ICs may be reconfigured to limit usage of one or more of their memory cells, as discussed further below; in this respect, the platform may transmit a message to each IC to be reconfigured, through the NIC of the platform and the communication interfaces of these ICs. The message may include an instruction on how to reconfigure the pertinent memory cell(s), and the firmware of each respective IC may be configured to execute the instruction and perform or otherwise effect the configuration. The instruction may be individual to each IC, respective of specific status/performance of that IC. Alternatively, a same instruction may be transmitted to multiple ICs whose statistical analysis classified as closely related.

[0111] The analytical platform as described herein is only an exemplary embodiment of the present invention, and in practice may be implemented in hardware only, software only, or a combination of both hardware and software. The analytical platform may have more or fewer components and modules than shown, may combine two or more of the components, or may have a different configuration or arrangement of the components. The analytical platform may include any additional component enabling it to function as an operable computer system, such as a motherboard, data busses, power supply, a display, an input device (e.g., keyboard, pointing device, touch-sensitive display), etc. Moreover, components of the analytical platform may be co-located or distributed, or the analytical platform could run as one or more cloud computing “instances,” “containers,” and/or “virtual machines,” as known in the art.

[0112] Referring back to the firmware of the IC, the firmware may control the read performance agent and/or write performance agent to effect timing of measurements and/or location of measurements in the SRAM memory array. For example, measurements may be made for each memory cell, for each group of memory cells (such as a row) or for each bit line. Multiple measurements may be taken from the same or different memory cells and averaged. In some cases, only the best and/or worst measurement taken within a time period may be used.

[0113] The firmware may effect measurements and/or reporting dynamically (for example based on a regular or scheduled timeframe) and/or on instruction from the platform. The results may be used to understand the SRAM circuit better, to improve design and/or manufacture of the SRAM circuit, and/or to mitigate the effects of degradation. For example, the firmware may reconfigure the SRAM circuit to limit use of one or more degraded memory cells, such as by using them less frequently or for less important data relative to other, less degraded memory cells of the same IC, based on the results provided. Namely, memory cells that have degraded more than others on the same IC, or whose degradation rate is faster than that of others on the same IC, may be used less frequently than the other memory cells, or not used at all once the degradation measure and/or degradation rate exceed a predefined threshold. An alerts may be issued, either locally in the computer system in which the IC is installed, and/or to the platform, when such threshold is exceeded.

[0114] In a further general aspect (which may be combined with any other aspect disclosed herein), there may be considered an Integrated Circuit (IC), comprising: a memory circuit comprising a memory cell array and a memory monitoring agent, the memory monitoring agent being configured to indicate a status of the memory cell array; and firmware, configured to receive the indication of the status of the memory cell array from the memory monitoring agent and advantageously compare the received indication against a reference level. In particular, the memory circuit is optionally in accordance with any such aspect or embodiment disclosed herein. Based on the comparison, further actions may be taken, for example any of the steps or features discussed below.

[0115] In embodiments, the firmware is further configured to store the received indication. [0116] Optionally, the IC (for example in the memory circuit) further comprises a write assist circuit, configured to apply a signal to the memory circuit during a write operation. Then, the firmware may be further configured to control the write assist circuit on the basis of the received indication of the status of the memory cell array. For example, if the status of the memory cell array indicates degradation or degradation above a threshold, the write assist circuit may be activated, or a pulse signal generated by the write assist circuit may be lengthened.

[0117] A number of further features may be considered in respect of any IC aspect disclosed herein. Beneficially, the memory cell array comprises a plurality of bit lines. Each bit line is coupled to one or more memory cells of the memory cell array. Then, the memory monitoring agent may be configured to indicate a status of the memory cell for each of the plurality of bit lines. Additionally or alternatively, the firmware may be configured to control the memory monitoring agent to determine a plurality of statuses of the memory cell array. It may be configured then to indicate the best and/or worst of the determined plurality of statuses to the firmware.

[0118] Optionally, the IC further comprises: a communication interface, configured to provide communication between the firmware and a platform external the IC for communicating the received indication to the platform. In embodiments, the method may additionally comprise adjusting or reconfiguring the memory cell array based on the step of comparing.

[0119] A further method aspect may be considered as a method of operating an IC. For example, the method comprises: indicating a status of a memory cell array in the IC; and advantageously comparing the indication of the status of the memory cell array against a reference level at firmware in the IC. Optionally, the step of indicating a status of a memory cell array in the IC comprises any method as herein disclosed. Optionally, memory cell is a RAM cell and further optionally, the RAM cell is an SRAM cell.

[0120] Such methods may further comprise storing the indication of the status of the SRAM cell array at the firmware. Advantageously, the memory cell array comprises a plurality of bit lines. Each bit line is coupled to one or more memory cells of the memory cell array. Then, the step of indicating a status of a memory cell array in the IC may comprise indicating a status of the memory cell for each of the plurality of bit lines.

[0121] Optionally, a write assist circuit applies a signal to the memory circuit during a write operation. Then, the write assist circuit may be controlled on the basis of the status of the memory cell array (as discussed above).

[0122] In some embodiments, the method further comprises: determining a plurality of statuses of the memory cell array. Then, the step of indicating a status of a memory cell array in the IC may comprise indicating the best and/or worst of the determined plurality of statuses.

[0123] These methods may further comprise: communicating the indication of the status of the memory cell array from the firmware to a platform external the IC.

[0124] Throughout this disclosure, various embodiments of this invention may be presented in a range format. It should be understood that the description in range format is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the invention. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as from 1 to 6 should be considered to have specifically disclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within that range, for example, 1, 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.

[0125] Whenever a numerical range is indicated herein, it is meant to include any cited numeral (fractional or integral) within the indicated range. The phrases “ranging/ranges between” a first indicate number and a second indicate number and “ranging/ranges from” a first indicate number “to” a second indicate number are used herein interchangeably and are meant to include the first and second indicated numbers and all the fractional and integral numerals therebetween.

[0126] In the description and claims of the application, each of the words “comprise” “include” and “have”, and forms thereof, are not necessarily limited to members in a list with which the words may be associated. In addition, where there are inconsistencies between this application and any document incorporated by reference, it is hereby intended that the present application controls.

[0127] To clarify the references in this disclosure, it is noted that the use of nouns as common nouns, proper nouns, named nouns, and the/or like is not intended to imply that embodiments of the invention are limited to a single embodiment, and many configurations of the disclosed components can be used to describe some embodiments of the invention, while other configurations may be derived from these embodiments in different configurations.

[0128] In the interest of clarity, not all of the routine features of the implementations described herein are shown and described. It should, of course, be appreciated that in the development of any such actual implementation, numerous implementation-specific decisions must 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 appreciated that such a development effort might be complex and time-consuming but would nevertheless be a routine undertaking of engineering for those of ordinary skill in the art having the benefit of this disclosure.

[0129] Based upon the teachings of this disclosure, it is expected that one of ordinary skill in the art will be readily able to practice the present invention. The descriptions of the various embodiments provided herein are believed to provide ample insight and details of the present invention to enable one of ordinary skill to practice the invention. Moreover, the various features and embodiments of the invention described above are specifically contemplated to be used alone as well as in various combinations.

[0130] Conventional and/or contemporary circuit design and layout tools may be used to implement the invention. The specific embodiments described herein and, in particular the various thicknesses and compositions of various layers, are illustrative of exemplary embodiments, and should not be viewed as limiting the invention to such specific implementation choices. Accordingly, plural instances may be provided for components described herein as a single instance.

[0131] While circuits and physical structures are generally presumed, it is well recognized that in modern semiconductor design and fabrication, physical structures and circuits may be embodied in computer readable descriptive form suitable for use in subsequent design, test or fabrication stages as well as in resultant fabricated semiconductor integrated circuits. Accordingly, claims directed to traditional circuits or structures may, consistent with particular language thereof, read upon computer readable encodings and representations of same, whether embodied in media or combined with suitable reader facilities to allow fabrication, test, or design refinement of the corresponding circuits and/or structures. Structures and functionality presented as discrete components in the exemplary configurations may be implemented as a combined structure or component. The invention is contemplated to include circuits, systems of circuits, related methods, and computer-readable medium encodings of such circuits, systems, and methods, all as described herein, and as defined in the appended claims. As used herein, a computer readable medium includes at least disk, tape, or other magnetic, optical, semiconductor (e.g., flash memory cards, ROM), or electronic medium and a network, wireline, wireless or other communications medium.

[0132] The foregoing detailed description has described only a few of the many possible implementations of the present invention. For this reason, this detailed description is intended by way of illustration, and not by way of limitations. Variations and modifications of the embodiments disclosed herein may be made based on the description set forth herein, without departing from the scope and spirit of the invention. It is only the following claims, including all equivalents, which are intended to define the scope of this invention. In particular, even though some embodiments are described in the context of a specific SRAM architecture, the teachings of the present invention are believed advantageous for use with other types of RAM or RAM circuitry or architectures, for example Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Flash memory or Non-Volatile RAM (NVRAM), and/or, in certain cases (for monitoring read operations, for example) in Read-Only Memory (ROM) or ROM circuitry or architectures.

[0133] Moreover, the techniques described herein may also be applied to other types of memory circuit applications. A different type of comparator may be considered, for example a triangle-wave linear comparator. Accordingly, other variations, modifications, additions, and improvements may fall within the scope of the invention as defined in the claims that follow.

[0134] Embodiments of the present invention may be used to fabricate, produce, and/or assemble integrated circuits and/or products based on integrated circuits.

[0135] Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

[0136] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. 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 involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

[0137] The descriptions of the various embodiments of the present invention have been presented for purposes of illustration but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application, or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

[0138] Some embodiments of the present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

[0139] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non- exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire. Rather, the computer readable storage medium is a non-transient (i.e., not-volatile) medium.

[0140] Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

[0141] Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

[0142] Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

[0143] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

[0144] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

[0145] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. 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 involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

[0146] The descriptions of the various embodiments of the present invention have been presented for purposes of illustration but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. The skilled person will appreciate that combinations and sub-combinations of specific features disclosed herein may also be provided, even if not explicitly described.