A method for maintaining reliability of a data communication link in a computing device, comprising: collecting, by a control system, a two-dimensional array of data points representing a data eye on the data communication link; determining, by a convolutional neural network, a score of the two-dimensional array of data points; comparing, by the control system, the determined score with a threshold; and initiating, by the control system, an action based on a result of comparing the determined score with the threshold, characterized in that collecting the two-dimensional array of data points comprises: monitoring, by the control system, a data stream comprising a plurality of transmitted data values and a corresponding plurality of received data values on the data communication link; varying, by the control system, while monitoring the plurality of transmitted data values and corresponding plurality of received data values, a reference voltage and a clock-data time delay of the data communication link relative to one another to provide a plurality of combinations of different reference voltages and different clock-data time delays; counting, by the control system, a number of times a received data value does not match a corresponding transmitted data value under conditions of each combination of reference voltage and clock-data time delay; and forming, by the control system, the two-dimensional array of data points, each data point corresponding to the number of times a received data value does not match a corresponding transmitted data value, each data point positioned in the array at a unique combination of reference voltage and clock-data time delay. collecting, by a control system, a two-dimensional array of data points representing a data eye on the data communication link; determining, by a convolutional neural network, a score of the two-dimensional array of data points; comparing, by the control system, the determined score with a threshold; and initiating, by the control system, an action based on a result of comparing the determined score with the threshold, characterized in that collecting the two-dimensional array of data points comprises: monitoring, by the control system, a data stream comprising a plurality of transmitted data values and a corresponding plurality of received data values on the data communication link; varying, by the control system, while monitoring the plurality of transmitted data values and corresponding plurality of received data values, a reference voltage and a clock-data time delay of the data communication link relative to one another to provide a plurality of combinations of different reference voltages and different clock-data time delays; counting, by the control system, a number of times a received data value does not match a corresponding transmitted data value under conditions of each combination of reference voltage and clock-data time delay; and forming, by the control system, the two-dimensional array of data points, each data point corresponding to the number of times a received data value does not match a corresponding transmitted data value, each data point positioned in the array at a unique combination of reference voltage and clock-data time delay. monitoring, by the control system, a data stream comprising a plurality of transmitted data values and a corresponding plurality of received data values on the data communication link; varying, by the control system, while monitoring the plurality of transmitted data values and corresponding plurality of received data values, a reference voltage and a clock-data time delay of the data communication link relative to one another to provide a plurality of combinations of different reference voltages and different clock-data time delays; counting, by the control system, a number of times a received data value does not match a corresponding transmitted data value under conditions of each combination of reference voltage and clock-data time delay; and forming, by the control system, the two-dimensional array of data points, each data point corresponding to the number of times a received data value does not match a corresponding transmitted data value, each data point positioned in the array at a unique combination of reference voltage and clock-data time delay.