Claims
- 1. A memory controller circuit arrangement, comprising:
(a) a logic circuit configured to control data transfer with at least one memory storage device by performing first and second memory control operations; and (b) a tuning circuit coupled to the logic circuit and configured to dynamically controlling the delay between the first and second memory control operations.
- 2. The circuit arrangement of claim 1, wherein the memory storage device is of the type having a predetermined timing parameter that defines a minimum delay between the first and second memory control operations, and wherein the tuning circuit is configured to dynamically control the delay between the first and second memory control operations to meet the predetermined timing parameter for the memory storage device.
- 3. The circuit arrangement of claim 2, wherein the predetermined timing parameter is associated with a timing characteristic selected from the group consisting of bank cycle time, active command period time, data input to precharge time, precharge time, {overscore (CAS)} latency, and {overscore (RAS)} to {overscore (CAS)} delay time.
- 4. The circuit arrangement of claim 1, wherein the first memory control operation includes asserting a first control signal, and wherein the second memory control operation includes at least one of deasserting the first control signal, asserting a second control signal, and deasserting a second control signal.
- 5. The circuit arrangement of claim 1, wherein the tuning circuit is further configured to dynamically generate a delay count representing a number of clock cycles to delay performance of the second memory control operation relative to the first memory control operation, the circuit arrangement further comprising:
(a) a parameter register configured to store the delay count; and (b) a programmable delay counter configured to cycle the number of clock cycles represented by the delay count prior to performance of the second memory control operation by the logic circuit.
- 6. The circuit arrangement of claim 1, wherein the tuning circuit includes parameter manipulation control logic configured to select a test value among a plurality of values for the delay between the first and second memory control operations.
- 7. The circuit arrangement of claim 6, further comprising memory test control logic configured to perform at least one memory test on the memory storage device while the delay between the first and second memory control operations is set to the test value by the parameter manipulation control logic.
- 8. The circuit arrangement of claim 7, wherein the parameter manipulation control logic includes a binary search engine, the binary search engine including:
(a) first and second registers respectively configured to store first and second values; and (b) an averaging circuit coupled to receive the first and second values stored in the first and second registers, and to output as the test value an average of the first and second values, wherein the first register is configured to be updated with the test value responsive to a successful memory test performed by the memory test control logic using the test value, and wherein the second register is configured to be updated with the test value responsive to an unsuccessful memory test performed by the memory test control logic using the test value.
- 9. The circuit arrangement of claim 8, wherein the first and second registers are further configured to be respectively initialized to upper and lower limit values, wherein the binary search engine further includes a subtraction circuit configured to output a complete signal responsive to the value stored in the first register being one greater than the value stored in the second register; whereby upon outputting of the complete signal an optimum value for the delay between the first and second memory control operations is stored in the first register.
- 10. The circuit arrangement of claim 7, wherein the tuning circuit further includes a state machine, coupled to the parameter manipulation control logic and the memory test control logic, the state machine configured to control the parameter manipulation control logic to update the test value responsive to a test result returned by the memory test control logic.
- 11. The circuit arrangement of claim 6, wherein the parameter manipulation control logic is configured to output an index value to select among a plurality of array elements, each array element representative of one of the plurality of values for the delay between the first and second memory control operations.
- 12. The circuit arrangement of claim 11, wherein the parameter manipulation control logic is further configured to output the index value to select among a second plurality of array elements, each array element in the second plurality of array elements representative of one of a plurality of values for a delay between third and fourth memory control operations.
- 13. An integrated circuit device comprising the circuit arrangement of claim 1.
- 14. A data processing system comprising the circuit arrangement of claim 1.
- 15. A program product, comprising a hardware definition program that defines the circuit arrangement of claim 1; and a signal bearing media bearing the hardware definition program.
- 16. The program product of claim 15, wherein the signal bearing media includes at least one of a transmission type media and a recordable media.
- 17. A method of controlling data transfer with a memory storage device using a memory controller, the method comprising:
(a) dynamically selecting a selected value among a plurality of values to delay performance of a second memory control operation relative to a first memory control operation; and (b) controlling the delay between the first and second memory control operations using the selected value.
- 18. The method of claim 17, wherein the selected value is associated with a delay count representative of a number of clock cycles to delay performance of the second memory control operation relative to the first memory control operation, wherein controlling the delay between the first and second memory control operation includes cycling a programmable delay counter a selected number of clock cycles associated with the delay count to delay performance of the second memory control operation.
- 19. The method of claim 17, wherein dynamically selecting the selected value includes:
(a) performing a memory test on the memory storage device while the delay between the first and second memory control operations is controlled using the selected value; and (b) updating the selected value if the memory test is unsuccessful.
- 20. The method of claim 17, wherein dynamically selecting the selected value includes dynamically selecting an index into an array that includes the plurality of values.
- 21. The method of claim 17, further comprising:
(a) dynamically selecting a second selected value among a second plurality of values to delay performance of a fourth memory control operation relative to a third memory control operation; and (b) controlling the delay between the third and fourth memory control operations.
- 22. The method of claim 21, wherein dynamically selecting the second selected value is performed independently of dynamically selecting the first selected value.
- 23. The method of claim 21, wherein dynamically selecting the second selected value is performed jointly with dynamically selecting the first selected value.
- 24. A circuit arrangement for use in determining an optimum value from a monotonically-sorted list of values, the circuit arrangement comprising:
(a) first and second registers respectively configured to store first and second values from the list of values; (b) an averaging circuit coupled to receive the first and second values stored in the first and second registers, and to output as a test value an average of the first and second values; (c) a test circuit, coupled to the first and second registers, the test circuit configured to test the test value according to a predetermined comparison criteria, wherein, in response to the test value meeting the predetermined comparison criteria, the first register is configured to be updated with the test value, and, in response to the test value not meeting the predetermined comparison criteria, the second register is configured to be updated with the test value; and (d) a test closure circuit configured to determine when an optimum value is stored in the first register.
- 25. The circuit arrangement of claim 24, wherein the averaging circuit comprises:
(a) an adder circuit configured to output a sum of the first and second values from the first and second registers; and (b) a divide by two circuit configured to divide the sum of the first and second values by two.
- 26. The circuit arrangement of claim 25, wherein the divide by two circuit comprises a right shift circuit.
- 27. The circuit arrangement of claim 24, wherein the test closure circuit includes a subtractor circuit, the subtractor circuit configured to output a complete signal when the difference between the first and second values is one.
- 28. The circuit arrangement of claim 24, wherein the first and second registers are configured to be initialized respectively to upper and lower limits of the list of values.
- 29. The circuit arrangement of claim 24, wherein the list of values represents a list of delay values for use in controllably setting a delay between performing first and second memory control operations on a memory storage device, wherein the test circuit comprises a memory test control circuit configured to perform a memory test on the memory storage device, and wherein the test circuit is configured to test the test value according to the predetermined comparison criteria by determining whether the memory storage device passes the memory test.
- 30. An integrated circuit device comprising the circuit arrangement of claim 24.
- 31. A data processing system comprising the circuit arrangement of claim 24.
- 32. A program product, comprising a hardware definition program that defines the circuit arrangement of claim 24; and a signal bearing media bearing the hardware definition program.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 09/166,004, filed Oct. 2, 1998 by Gary Paul McClannahan, and entitled “MEMORY CONTROLLER WITH PROGRAMMABLE DELAY COUNTER FOR TUNING PERFORMANCE BASED ON TIMING PARAMETER OF CONTROLLED MEMORY STORAGE DEVICE,” which application is incorporated by reference herein.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09247501 |
Feb 1999 |
US |
Child |
09938161 |
Aug 2001 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09166004 |
Oct 1998 |
US |
Child |
09247501 |
Feb 1999 |
US |