WO2009096141A1 - メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法 - Google Patents

メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法 Download PDF

Info

Publication number
WO2009096141A1
WO2009096141A1 PCT/JP2009/000102 JP2009000102W WO2009096141A1 WO 2009096141 A1 WO2009096141 A1 WO 2009096141A1 JP 2009000102 W JP2009000102 W JP 2009000102W WO 2009096141 A1 WO2009096141 A1 WO 2009096141A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
access timing
timing adjustment
external
access
Prior art date
Application number
PCT/JP2009/000102
Other languages
English (en)
French (fr)
Inventor
Toshiyuki Kajimura
Original Assignee
Panasonic Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corporation filed Critical Panasonic Corporation
Priority to EP09705607A priority Critical patent/EP2251791A4/en
Priority to US12/864,691 priority patent/US20100312981A1/en
Priority to CN2009801033692A priority patent/CN101925885A/zh
Priority to JP2009551414A priority patent/JPWO2009096141A1/ja
Publication of WO2009096141A1 publication Critical patent/WO2009096141A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns

Definitions

  • the present invention relates to a memory access timing adjustment device and a memory access timing adjustment method for adjusting an access timing to a memory.
  • the access timing when the memory controller mounted on the LSI accesses the memory has no problem even if the same value, ie, a fixed value, is used for all sets because the operating frequency may be slow.
  • the access timing does not have to be a fixed value, but needs to be adjustable according to the set state.
  • an access timing adjustment register is provided in the LSI, and the value of the register can be changed to change the timing of the memory interface signal output from the LSI or the internal timing of the input signal. Circuits have been built in.
  • FIG. 12 is a functional block diagram of a conventional memory access timing adjustment system.
  • the memory access timing adjustment system in the figure includes a system LSI 900, external memories 910A, 910B, 910C and 910D, an external nonvolatile memory 920, and an external SRAM 930.
  • the system LSI 900 includes a processor 901, an external bus controller 902, and a memory controller 903.
  • the processor 901 is connected to the memory controller 903 and the external bus controller 902.
  • the memory controller 903 has a memory interface 904, and is connected to the external memories 910A, 910B, 910C, and 910D via a memory bus.
  • the external nonvolatile memory 920 and the external SRAM 930 are connected to the processor 901 via the external bus controller 902, respectively.
  • the processor 901 loads a boot code from the external nonvolatile memory 920 via the external bus controller 902 at the time of startup, and executes a code, that is, an instruction written therein.
  • an access timing adjustment program is written in the external nonvolatile memory 920.
  • the processor 901 executes the access timing adjustment program, the processor 901 writes data to an area in the memory, and the data from the same area. Read and compare the read data with the expected value to determine OK / NG.
  • the memory controller 903 is provided with an access timing adjustment register for adjusting the access timing.
  • the processor 901 performs memory write, memory read, and expected value comparison each time the set value in the register is changed, and OK / NG is set. judge.
  • the set value in the access timing adjustment register will be specifically described.
  • FIG. 13 is an operation timing chart when reading data from the external memory into the LSI.
  • DDR SDRAM Double Data Rate Synchronous DRAM
  • 8-bit data DQ in FIGS. 12 and 13 is used as DQ.
  • a data strobe signal (denoted as DQS in FIGS. 12 and 13) synchronized with the first clock signal is used to notify the transfer timing of the description.
  • the memory controller 903 In order to reliably receive this data, for example, the memory controller 903 generates a data strobe signal having a phase delayed by 90 degrees with respect to the data strobe signal synchronized with the first clock signal. Then, 8-bit data is read when the data strobe signal rises and falls. However, due to external factors such as power fluctuation and noise, waveform distortion occurs in the received data strobe signal, and a phase shift occurs when the edge of the data strobe signal is detected. To cope with this, the memory controller 903 needs to secure a window width that is a predetermined phase range with respect to 90 degrees that is a reference phase difference for data reading. As the window width, for example, 180 degrees divided by 128 is a phase difference that can be changed by 1 bit, and an optimum phase difference expressed by bits is a set value for the access timing adjustment register described above.
  • the window width for example, 180 degrees divided by 128 is a phase difference that can be changed by 1 bit, and an optimum phase difference expressed by bits is a
  • the processor 901 obtains a phase range in which the memory access can be normally performed, and determines an access timing adjustment register setting value that maximizes the operation margin in consideration of other conditions such as process variation and voltage variation.
  • Patent Document 1 to Patent Document 4 The methods shown in Patent Document 1 to Patent Document 4 are known for obtaining the optimum setting value of the access timing.
  • Patent Document 1 discloses the above-described conventional technique. As a method for obtaining the optimum setting value of access timing, predetermined data is written to a predetermined address as a check address, and the data is read and OK / NG is read out. A method for judging the above is described. That is, an upper limit value and a lower limit value at which memory access is successful are acquired, and the center value is used as a value that can secure a maximum margin.
  • Patent Document 2 does not simply compare the expected value with the read value in determining whether or not the memory access is successful, but adds parity to the data at the time of writing, and compares the read data with the read data. A scheme using parity comparison is disclosed.
  • Patent Document 3 discloses a system in which a period during which timing adjustment, that is, an access timing set value is changed and an attempt to access a memory is made is a blanking period in which screen display is not performed.
  • Patent Document 4 discloses a method of changing the clock skew based on the result of data write from the processor, data read from the memory, and expected value comparison.
  • the conventional method described above is not a method that considers the load state of the memory bus.
  • the access timing to the external memory varies depending on the bus transfer amount and the bit toggle rate between the memory controller and the external memory.
  • the power transfer drop and noise increase as the bus transfer amount between the memory controller and the external memory increases, and the crosstalk and noise between bits increase as the bit toggle rate increases, and the access timing to the external memory becomes severe.
  • the window width of the access timing changes depending on the data transfer amount and the bit toggle rate on the bus between the memory controller and the external memory.
  • the memory controller cannot individually access each external memory. Therefore, it is impossible to access other external memories independently while transmitting / receiving data to / from the external memory to be adjusted and adjusting the access timing. Therefore, the access timing adjustment that specifically reflects the data transfer amount and bit toggle rate in the bus between the memory controller and the external memory during actual operation cannot be performed.
  • the access timing is highly necessary to adjust the access timing by reproducing a high load state with a large bus transfer amount between the memory controller and the external memory and a high bit toggle rate.
  • the high load state is normally realized in a set real application operating state.
  • the application software is switched to a different memory capacity and address mapping from those used during normal operation. It is not easy to use.
  • the access timing can be adjusted using a period not displayed on the screen, that is, a blanking period. During this time, even if memory access becomes impossible, the timing adjustment can be continued without causing the system to fail by returning the access timing setting to the standard setting value before the screen display starts.
  • the built-in microcomputer and other built-in function blocks always use the memory. For this reason, when the external memory cannot be accessed due to the simultaneous execution of the access timing adjustment, the system fails and the operation stops. As a result, neither the actual application operation nor the timing adjustment can be continued. For this reason, conventionally, a work area including the stack of the CPU is taken in the external SRAM space so as not to stop the operation, and the DMA transfer that does not stop the operation even if the access to the external memory cannot be correctly performed and the data is garbled. The only way to do this is to adjust the access timing in a low-load state using the simple test pattern, and to use the external memory at the optimum value obtained.
  • the external memory access timing is optimized at the timing adjustment, that is, in the low load state of the memory access.
  • the optimum value may deviate greatly due to the unbalanced window widths on the upper and lower limits from the operating range in the low load state. is there.
  • the window width at the time of low-load timing adjustment is generally wider than the window width at the time of high load, and it is unlikely that the optimum value at the time of high load will not enter the window at the time of low load.
  • the present invention has been made in view of the above problems, and provides a memory access timing adjustment device and a memory access timing adjustment method capable of individually adjusting the access timing for each of a plurality of external memories. Objective. It is another object of the present invention to provide a memory access timing adjustment device and a memory access timing adjustment method that stabilize memory access even in a high load state where the amount of data transfer between an external memory and a memory controller is large.
  • a memory access timing adjustment device is a memory access timing adjustment device that adjusts the timing to access a plurality of external memories, and individually for each of the plurality of external memories.
  • a plurality of individual memory interfaces that are connected and transmit / receive data in memory access, and a plurality of data from the individual memory interface connected to the selected external memory among the plurality of external memories
  • a control unit that adjusts access timing by transmitting and receiving data once and again.
  • the plurality of external memories are clock synchronous memories that perform input / output operations in synchronization with a first clock signal, and each of the plurality of individual memory interfaces includes a first clock signal delayed from the first clock signal. 2 is used to perform data input / output operations, the access timing is a phase difference between the first clock signal and the second clock signal, and the control means includes the individual memory interface It is preferable to determine each time whether or not the access is successful while sequentially changing the access timing and adjust the optimum access timing within the range of the phase difference in which the access is successful.
  • the memory access timing adjustment device further includes a pattern generation circuit for generating specific pattern data, and the control means selects the selection from an individual memory interface connected to an external memory other than the selected external memory. It is preferable that a load is applied to the plurality of external memories by transmitting the specific pattern data to an external memory other than the external memory.
  • the load of the memory bus can be operated in a state close to the load at the time of actual application operation, and even when the load is higher than the optimum value of the memory access timing obtained at the low load with low memory access frequency A stable set value can be obtained.
  • the memory access timing adjustment device further corresponds to a memory selection register holding a bit indicating the selected external memory, and a bit indicating the selected external memory connected to the plurality of individual memory interfaces. And an address conversion circuit for outputting an address of the external memory.
  • the memory access timing adjustment device may further include a memory selection register holding a bit indicating the selected external memory and a bit indicating the selected external memory connected to the plurality of individual memory interfaces. And a selector circuit for selecting an individual memory interface connected to the selected external memory.
  • the timing adjustment program does not depend on the actual address arrangement of the memory even if the external memory configuration is changed or the connection around the memory interface is changed. Therefore, since it is not necessary to change the access timing adjustment program executed by the control means, the program development man-hour is reduced.
  • the memory access timing adjustment device further includes a non-volatile memory that stores the optimum access timing for each of the plurality of external memories obtained by adjusting the access timing, and includes a plurality of individual memory interfaces. Each includes an access timing individual setting register for storing the optimum access timing read from the nonvolatile memory at system startup, and each of the plurality of individual memory interfaces is stored in the timing individual setting register. The optimum access timing may be used for data access with the selected external memory.
  • the memory access timing adjustment device further includes a non-volatile memory that stores the optimum access timing for each of the plurality of external memories obtained by the adjustment of the access timing and the number of times of system startup.
  • Each of the plurality of individual memory interfaces includes a timing individual setting register that stores the optimum access timing read from the non-volatile memory at the time of system startup, and the control unit starts up a predetermined number of times, The access timing may be newly adjusted, and the optimum access timing obtained by adjusting the access timing may be written to the nonvolatile memory.
  • the memory access timing adjustment device may further include a timing setting that indicates whether or not the optimal access timing is valid for each of the plurality of external memories obtained by adjusting the access timing.
  • a nonvolatile memory for storing a value flag, and each of the plurality of individual memory interfaces includes a timing individual setting register for storing the optimum access timing read from the nonvolatile memory at the time of system startup, When the timing setting value flag is invalid at the time of system startup, the control means may newly adjust the access timing and write the optimum access timing obtained by the adjustment of the access timing to the nonvolatile memory.
  • the access timing adjustment is automatically updated at the next system start-up, so that the optimum access to the external memory corresponding to the change in system configuration and state can be executed. .
  • the memory access timing adjustment device further includes a memory information input terminal for inputting a signal indicating the configuration of the plurality of external memories, and the plurality of external memories according to the signal indicating the configuration of the plurality of external memories.
  • the address space allocated to the memory may be changed, added, or deleted.
  • control means may output a warning message when the optimum range of the access timing obtained by adjusting the access timing is not more than a predetermined value.
  • the present invention can be realized not only as a memory access timing adjustment device including such characteristic means, but also as a memory access timing adjustment system including the characteristic means included in the memory access timing adjustment device as a step. This can be realized as a memory access timing adjustment method.
  • the memory interface is provided for each of the plurality of external memories, so that each of the plurality of external memories is individually provided. Since the access timing can be adjusted, it is possible to adjust the access timing reflecting the data transfer amount in the memory bus during actual operation. In particular, since the access timing can be adjusted in a state close to a high load state where the data transfer amount of the memory bus is large, it is possible to realize a memory access timing adjustment that stabilizes the memory access under a high load.
  • FIG. 1 is a functional configuration diagram of a memory access timing adjustment system including a memory access timing adjustment device according to Embodiment 1 of the present invention.
  • FIG. 2 is a comparison diagram of a window width inspection result obtained by the memory access timing adjustment apparatus according to the first embodiment of the present invention and a window width inspection result obtained by the conventional technique.
  • FIG. 3 is a functional configuration diagram of the memory access timing adjustment system including the memory access timing adjustment device according to the first modification of the first embodiment of the present invention.
  • FIG. 4 is a functional configuration diagram of a memory access timing adjustment system including a memory access timing adjustment device according to a second modification of the first embodiment of the present invention.
  • FIG. 5 is a functional configuration diagram of the memory access timing adjustment system including the memory access timing adjustment device according to the second embodiment of the present invention.
  • FIG. 6 is an operation timing chart when the individual memory interface or the external memory reads the specific pattern data.
  • FIG. 7 is a functional configuration diagram of the memory access timing adjustment system including the memory access timing adjustment device according to the third embodiment of the present invention.
  • FIG. 8 is a functional configuration diagram of the memory access timing adjustment system including the memory access timing adjustment device according to the fourth embodiment of the present invention.
  • FIG. 9 is a functional configuration diagram of a memory access timing adjustment system including a memory access timing adjustment device according to a modification of the fourth embodiment of the present invention.
  • FIG. 10 is a functional configuration diagram of the memory access timing adjustment system including the memory access timing adjustment device according to the fifth embodiment of the present invention.
  • FIG. 11 is a flowchart showing the operation of the memory access timing adjustment device according to the sixth embodiment of the present invention.
  • FIG. 12 is a functional configuration diagram of a conventional memory access timing adjustment system.
  • FIG. 13 is an operation timing chart when reading data from the external memory into the LSI.
  • FIG. 14 is a comparison diagram of window widths during timing adjustment according to the prior art and during actual application operation.
  • the memory access timing adjustment device is connected to a plurality of individual memory interfaces individually connected to each of a plurality of external memories and to the selected external memory with respect to the selected external memory.
  • FIG. 1 is a functional configuration diagram of a memory access timing adjustment system including a memory access timing adjustment device according to Embodiment 1 of the present invention.
  • the memory access timing adjustment system in FIG. 1 includes a memory access timing adjustment device 1 and a plurality of external memories 2.
  • the memory access timing adjustment device 1 includes a system LSI 1A and a nonvolatile memory 3.
  • the plurality of external memories 2 include external memories 2A, 2B, 2C, and 2D.
  • the system LSI 1A includes a processor 10, an external bus controller 11, a built-in SRAM 12, and a memory controller 13.
  • the processor 10 has a function as a control means for adjusting the access timing with the external memory.
  • the nonvolatile memory 3 is connected to the processor 10 via the external bus controller 11.
  • the built-in SRAM 12 is connected to the processor 10 via the external bus controller 11 and has a function as a work area of the processor 10.
  • the memory controller 13 is connected between the processor 10 and each of the external memories 2A, 2B, 2C, and 2D, and includes an access selection circuit 131 and a memory interface 132.
  • the memory interface 132 includes individual memory interfaces 132A, 132B, 132C, and 132D, and the external memories 2A to 2D are connected to the access selection circuit 131 via the corresponding individual memory interfaces 132A to 132D, respectively.
  • the processor 10 reads the boot code from the nonvolatile memory 3 via the external bus controller 11 at the time of start-up, performs various settings of the system LSI 1A, and then reads the access timing adjustment program from the nonvolatile memory 3 as well.
  • the access timing adjustment program describes a memory address when accessing each of the plurality of external memories 2A to 2D.
  • the access selection circuit 131 selects the external memory (external memory 2B in FIG. 1) whose current timing is to be adjusted according to the memory address requested by the processor 10.
  • a DDR SDRAM Double Data Rate Synchronous DRAM
  • a data strobe signal synchronized with the first clock signal is used to notify the timing of data transfer from the memory controller 13 to the external memories 2A to 2D or from the external memories 2A to 2D.
  • the memory controller 13 is first input.
  • a data strobe signal having a timing delayed by 90 degrees with respect to the data strobe signal is generated. Data is read when the data strobe signal rises and falls.
  • the memory controller 13 needs to ensure a window width that is a predetermined phase range with respect to 90 degrees that is a reference phase difference for data reading.
  • This window width is expressed as a phase difference that can be adjusted by 1 bit, for example, 180 degrees divided by 128, and the access timing is changed according to the phase difference set in the access timing adjustment register.
  • the processor 10 checks the window width, which is the phase difference range in which the memory access is successful, while changing the access timing setting for the external memory 2B.
  • the inspection results are sequentially recorded in the built-in SRAM 12, and after the inspection is completed, an optimum access timing setting value is determined from the window width.
  • the processor 10 sequentially executes the process of determining the optimum access timing for all the external memories 2A to 2D connected to the system LSI 1A while switching the adjustment target.
  • FIG. 2 is a comparison diagram between the window width inspection result obtained by the memory access timing adjustment apparatus according to the first embodiment of the present invention and the window width inspection result obtained by the conventional technique.
  • the horizontal axis represents the window width as a phase difference.
  • the window width obtained by the prior art is very narrow because all of the external memories 2A to 2D are in a normal operation range, and the window width changes corresponding to the change in the transfer amount of the memory bus during actual operation. I cannot follow.
  • various window widths can be set on the basis of the window width for each of the external memories 2A to 2D shown in FIG. It becomes possible.
  • the adjustment operation described above is a description of the operation at the time of starting up the system LSI 1A. However, there may be a case where the application program execution state shifts to the access timing adjustment program execution by some process switching instruction. In this case, the above description is the same as after the start of access timing adjustment program execution.
  • the access selection circuit 131 which is a component of the memory access timing adjustment device 1 described in FIG. 1 may have a functional configuration as described in FIG. 3 or FIG. 4 below, for example.
  • FIG. 3 is a functional configuration diagram of a memory access timing adjustment system including a memory access timing adjustment device showing a first modification of the first embodiment of the present invention.
  • the memory access timing adjustment system in the figure includes a memory access timing adjustment device 4 and a plurality of external memories 2.
  • the memory access timing adjustment device 4 includes a system LSI 4A and a nonvolatile memory 3.
  • the plurality of external memories 2 include external memories 2A, 2B, 2C, and 2D.
  • the system LSI 4A includes a processor 40, an external bus controller 41, a built-in SRAM 42, and a memory controller 43.
  • the memory controller 43 is connected between the processor 40 and each of the external memories 2A, 2B, 2C, and 2D, and includes an access selection circuit 431 and a memory interface 432.
  • the memory interface 432 includes individual memory interfaces 432A, 432B, 432C and 432D, and the external memories 2A to 2D are connected to the access selection circuit 431 via the corresponding individual memory interfaces 432A to 432D, respectively.
  • the memory access timing adjustment system in the figure is different from the memory access timing adjustment system shown in FIG. 1 only in that the functional configuration of the access selection circuit 431 is embodied, and other components are functional. Are equivalent. Description of the same points is omitted, and only different points will be described below.
  • the access selection circuit 431 includes a memory selection register 431A and an address conversion circuit 431B.
  • the access selection circuit 431 reads the bit for selecting the external memory to be adjusted set by the processor 40 in the memory selection register 431A, and selects the external memory whose timing is to be adjusted. .
  • FIG. 4 is a functional configuration diagram of a memory access timing adjustment system including a memory access timing adjustment device showing a second modification of the first embodiment of the present invention.
  • the memory access timing adjustment system in the figure includes a memory access timing adjustment device 5 and a plurality of external memories 2.
  • the memory access timing adjustment device 5 includes a system LSI 5A and a nonvolatile memory 3.
  • the plurality of external memories 2 include external memories 2A, 2B, 2C, and 2D.
  • the system LSI 5A includes a processor 50, an external bus controller 51, a built-in SRAM 52, and a memory controller 53.
  • the memory controller 53 is connected between the processor 50 and each of the external memories 2A, 2B, 2C, and 2D, and includes an access selection circuit 531 and a memory interface 532.
  • the memory interface 532 includes individual memory interfaces 532A, 532B, 532C, and 532D, and the external memories 2A to 2D are connected to the access selection circuit 531 via the corresponding individual memory interfaces 532A to 532D, respectively.
  • the memory access timing adjustment system in the figure is different from the memory access timing adjustment system shown in FIG. 1 only in that the functional configuration of the access selection circuit 531 is embodied, and the other components are functional. Are equivalent. Description of the same points is omitted, and only different points will be described below.
  • the access selection circuit 531 includes a memory selection register 531A and a selector circuit 531B.
  • the access selection circuit 531 reads the value set in the memory selection register 531A, and the selector circuit 531B switches the signal connection according to the value, and the processor 50 adjusts the external memory to be adjusted. Can be accessed directly.
  • a memory selection register 431A or 531A is provided in the memory access timing adjustment system described in FIG. 3 or FIG. 4.
  • the access timing adjustment program executed by the processor 40 or 50 can be used without change even if the external memory configuration is changed or the connection inside the memory controller is changed.
  • the same access timing program can be used, so that the number of program development steps can be reduced.
  • the memory controller can independently access each external memory by the access selection circuit and the individual memory interface. Therefore, the optimum access timing can be obtained for each of the external memories, and each optimum value is useful even if there is a change in the external memory configuration or a connection change in the memory controller. Also, if the application program operates with an external memory capacity other than the external memory under investigation, the memory area used by the application program can be secured while adjusting the access timing of the external memory under investigation. Operation is realized.
  • the number of external memories and individual memory interfaces connected to the system LSIs 1A, 4A, and 5A is four, but the present invention has two or more. It only needs to have the same effect.
  • nonvolatile memory 3 may be inside each system LSI, and conversely, the built-in SRAM may be an SRAM external to each system LSI.
  • the access timing adjustment program and the application program need not be written in the non-volatile memory 3, and are downloaded from each processor into the RAM prepared separately from the non-volatile memory 3 from each processor. Also good.
  • the memory access timing adjustment device further includes a pattern generation circuit that generates specific pattern data, and an external memory selected from an individual memory interface connected to an external memory other than the selected external memory Control means for transmitting specific pattern data to the external memory.
  • FIG. 5 is a functional configuration diagram of the memory access timing adjustment system including the memory access timing adjustment device according to the second embodiment of the present invention.
  • the memory access timing adjustment system in the figure includes a memory access timing adjustment device 6 and a plurality of external memories 2.
  • the memory access timing adjustment device 6 includes a system LSI 6A and a nonvolatile memory 3.
  • the plurality of external memories 2 include external memories 2A, 2B, 2C, and 2D.
  • the system LSI 6A includes a processor 60, an external bus controller 61, a built-in SRAM 62, and a memory controller 63.
  • the processor 60 has a function as a control means for adjusting the access timing with the external memory.
  • the nonvolatile memory 3 is connected to the processor 60 via the external bus controller 61.
  • the built-in SRAM 62 is connected to the processor 60 via the external bus controller 61 and has a function as a work area of the processor 60.
  • the memory controller 63 is connected between the processor 60 and each of the external memories 2A, 2B, 2C, and 2D, and includes an access selection circuit 631, a memory interface 632, and a pattern generation circuit 633.
  • the memory interface 632 includes individual memory interfaces 632A, 632B, 632C, and 632D, and the external memories 2A to 2D are connected to the access selection circuit 631 via the corresponding individual memory interfaces 632A to 632D, respectively.
  • the pattern generation circuit 633 is connected to the access selection circuit 631.
  • the memory access timing adjustment system in FIG. 5 differs from the memory access timing adjustment system according to the first embodiment described in FIG. 1 in the configuration and function of the memory controller 63, and other components are functionally functional. It is equivalent. Description of the same points is omitted, and only different points will be described below.
  • the access selection circuit 631 first stores the specific pattern data generated from the pattern generation circuit 633 in the memory controller 63 as the external pattern.
  • the individual memory interfaces 632A, 632C, and 632D continue to execute external memory access according to a specific pattern until the access timing adjustment of the external memory 2B is completed for the external memories 2A, 2C, and 2D other than the memory 2B.
  • FIG. 6 is an operation timing chart when the individual memory interface or the external memory reads the specific pattern data.
  • the specific pattern data generated from the pattern generation circuit 633 is read after being read into the external memories 2A, 2C and 2D. Thereafter, the specific pattern data is read by the individual memory interfaces 632A, 632C and 632D connected to the respective external memories.
  • the registers described in the upper part sequentially hold 4-bit data when the received data strobe signal rises
  • the registers described in the lower part sequentially receive 4-bit data when the received data strobe signal falls. Hold.
  • the 4-bit data string is “A5A5A5...” Composed of “A” (1010) and “5” (0101) that are in an inverted relationship
  • the 4-bit data follows the change in the data strobe signal. Since the upper register and the lower register are alternately held, data is held in the upper register in the order of "AAA " and held in the lower register in the order of "555 ". Therefore, the 4-bit data string “A5A5A5...” Has no data change for the upper register and the lower register, that is, is pattern data having a low bit toggle rate, but for the external memory bus, every data strobe edge. A pattern with a high bit toggle rate in which data changes.
  • the 4-bit data string is “A55AA55A...”
  • the 4-bit data is alternately held in the upper register and the lower register according to the change in the data strobe signal, so that “A5A5.
  • Data is held in order, and the lower register holds “5A5A5. Therefore, the 4-bit data string “A55AA55A...” Is pattern data having a large data change for the upper register and the lower register, that is, a high bit toggle rate, but for the external memory bus, the data strobe edge is twice. A pattern that toggles the bit every time. By combining these patterns, access with a high bit toggle rate can be realized for both the internal bus and the external memory bus.
  • the access selection circuit 631 next performs the timing adjustment of another external memory. For example, when the adjustment target external memory becomes the external memory 2C according to an instruction from the processor 60, the access selection circuit 631 executes the access pattern generated by the pattern generation circuit 633 for the external memories 2A, 2B, and 2D. . When another external memory becomes the timing adjustment target memory, the same process is similarly executed for the external memories other than the adjustment target external memory.
  • the memory access timing adjustment device includes a non-volatile memory that stores the optimum access timing obtained by adjusting the access timing, and an access timing individual setting register included in each individual memory interface when the system is started The optimum access timing is read out and used for data access with the selected external memory. As a result, it is not necessary to adjust the access timing every time during normal activation, and the activation time can be shortened.
  • FIG. 7 is a functional configuration diagram of the memory access timing adjustment system including the memory access timing adjustment device according to the third embodiment of the present invention.
  • the memory access timing adjustment system in the figure includes a memory access timing adjustment device 7 a and a plurality of external memories 2.
  • the memory access timing adjustment device 7a includes a system LSI 7A and a nonvolatile memory 31.
  • the plurality of external memories 2 include external memories 2A, 2B, 2C, and 2D.
  • the system LSI 7A includes a processor 70, an external bus controller 71, a built-in SRAM 72, and a memory controller 73.
  • the processor 70 has a function as a control means for adjusting the access timing with the external memory.
  • Nonvolatile memory 31 is connected to processor 70 via external bus controller 71.
  • the built-in SRAM 72 is connected to the processor 70 via the external bus controller 71 and has a function as a work area of the processor 70.
  • the memory controller 73 is connected between the processor 70 and each of the external memories 2A, 2B, 2C, and 2D, and includes an access selection circuit 731 and a memory interface 732.
  • the memory interface 732 includes individual memory interfaces 732A, 732B, 732C and 732D, and the external memories 2A to 2D are connected to the access selection circuit 731 via the corresponding individual memory interfaces 732A to 732D, respectively.
  • the individual memory interfaces 732A, 732B, 732C, and 732D include timing individual setting registers 732A1, 732B1, 732C1, and 732D1, respectively.
  • the memory access timing adjustment system in FIG. 7 differs from the memory access timing adjustment system according to the first embodiment described in FIG. 1 in the configuration and function of the memory controller 73, and other components are functionally functional. It is equivalent. Description of the same points is omitted, and only different points will be described below.
  • the system LSI 7A reads the access timing adjustment program from the nonvolatile memory 31, and executes the access timing adjustment program.
  • the processor 70 sets timing optimum values, which are optimum access timings corresponding to the respective external memories, in the timing individual setting registers 732A1 to 732D1 in the individual memory interfaces 732A to 732D.
  • the optimum timing values are written in the nonvolatile memory 31.
  • the access timing adjustment program is replaced with the optimum timing setting program.
  • the processor 70 reads the timing optimum value setting program, and sets the timing optimum value written in the nonvolatile memory 31 in the timing individual setting registers 732A1 to 732D1 according to the program.
  • the optimum timing value obtained by adjusting the access timing is stored in the nonvolatile memory, so that it is not necessary to adjust the access timing every time it is normally started, and the startup time can be shortened.
  • the processor 70 writes the optimum timing value to the nonvolatile memory 31 after the first access timing adjustment is executed, and the access timing adjustment program is rewritten to the optimum timing value setting program. 70 need not be rewritten.
  • the nonvolatile memory in which the access timing adjustment program is written is connected to the system LSI 7A and the processor executes the program to obtain the optimum timing value
  • the nonvolatile memory in which the access timing adjustment program is written is written at the time of shipment from the factory. It may be replaced with a nonvolatile memory in which the timing optimum value and the timing optimum value setting program are written.
  • timing optimum value may be written in a non-volatile memory different from the non-volatile memory 31 including the boot code, and the contents of the non-volatile memory 31 including the boot code may be rewritten at the time of shipment.
  • the system does not need to be adjusted after the system is released to the user, it can be performed only at the time of shipment from the factory, and there is no need to readjust the access timing when the user starts up. Is planned.
  • the memory access timing adjustment device includes a non-volatile memory that stores an optimal access timing obtained by adjusting the access timing and a timing setting value flag indicating whether or not the optimal access timing is valid.
  • the control unit When the timing setting value flag is invalid at the time of starting the system, the control unit newly adjusts the access timing and writes the optimum access timing obtained by the adjustment of the access timing to the nonvolatile memory.
  • the timing set value flag is previously invalidated, the access timing adjustment is automatically updated at the next start-up, so that the optimum access to the external memory corresponding to the change in system configuration and state can be executed.
  • FIG. 8 is a functional configuration diagram of the memory access timing adjustment system including the memory access timing adjustment device according to the fourth embodiment of the present invention.
  • the memory access timing adjustment system in the figure includes a memory access timing adjustment device 7 b and a plurality of external memories 2.
  • the memory access timing adjustment device 7b includes a system LSI 7A and a nonvolatile memory 32.
  • the plurality of external memories 2 include external memories 2A, 2B, 2C, and 2D.
  • the memory access timing adjustment system in FIG. 8 differs from the memory access timing adjustment system according to the third embodiment described in FIG. 7 only in the function and configuration of the nonvolatile memory 32, and the other components are the same. It is. Description of the same points is omitted, and only different points will be described below.
  • the nonvolatile memory 32 is connected to the processor 70 via the external bus controller 71.
  • the optimum access timing values obtained for the external memories 2A, 2B, 2C and 2D are set in the individual timing setting registers 732A1 to 732D1 in the individual memory interfaces 732A to 732D by the processor 70. Is done.
  • the processor 70 writes the access timing optimum value obtained for each external memory in a specific area of the nonvolatile memory 32.
  • the processor 70 writes the optimum access timing value in the nonvolatile memory 32, or at the same time as the timing setting value flag 32A indicating whether or not the access timing setting value written in the nonvolatile memory 32 at another timing is valid. Is written in a specific area on the nonvolatile memory 32.
  • the processor 70 reads the boot code from the nonvolatile memory 32 and sets the timing set value flag 32A while the system is being started. If it is checked and indicates valid, the optimum access timing value written in the nonvolatile memory 32 is set in the individual timing setting registers 732A1 to 732D1 in the individual memory interfaces 732A to 732D.
  • the processor 70 activates the access timing adjustment program and performs the access timing adjustment again to obtain the access timing optimum values obtained by the timing individual setting registers 732A1 to 732D1. Set to.
  • the timing set value flag 32A does not necessarily need to be rewritten by the processor 70. Depending on the system, a fixed value is written at the time of shipment, and the access timing adjustment is executed every time the system is started up. It is also possible to use the written timing setting value as an optimum value.
  • FIG. 9 is a functional configuration diagram of a memory access timing adjustment system including a memory access timing adjustment device showing a modification of the fourth embodiment of the present invention.
  • the memory access timing adjustment system in the figure includes a memory access timing adjustment device 7 c and a plurality of external memories 2.
  • the memory access timing adjustment device 7c includes a system LSI 7A and a nonvolatile memory 33.
  • the plurality of external memories 2 include external memories 2A, 2B, 2C, and 2D.
  • the memory access timing adjustment system in FIG. 9 differs from the memory access timing adjustment system according to the fourth embodiment described in FIG. 8 only in the function and configuration of the nonvolatile memory 33, and other components are the same. It is. Description of the same points is omitted, and only different points will be described below.
  • the activation count value 33 ⁇ / b> A written in the nonvolatile memory 33 by the processor 70 every time the system is activated. Read, update the value and write back to the non-volatile memory 33. The processor 70 determines whether or not to perform access timing adjustment based on the activation count value 33A read at the system activation.
  • the optimum timing value written in the nonvolatile memory 33 is read, and the value is stored in the individual timing setting registers 732A1 to 732D1 in the individual memory interfaces 732A to 732D.
  • the processor 70 executes the access timing adjustment program and adjusts the access timing of the external memories 2A to 2D. Then, the obtained optimum timing value is set in the individual timing setting registers 732A1 to 732D1, and the optimum timing value is written in the nonvolatile memory 33, and the activation count value 33A is updated to a predetermined value.
  • the optimum timing value written in the nonvolatile memory 33 is set in the timing individual setting registers 732A1 to 732D1 when the system is activated.
  • the number of system activations is counted, and whether or not the access timing adjustment is executed is determined based on the counted number.
  • the total system usage time is counted.
  • the value may be written in the nonvolatile memory 33 and used as a criterion for determining whether or not to perform access timing adjustment.
  • the access timing optimum value stored in advance in the nonvolatile memory and the access timing optimum value newly obtained by the access timing readjustment are used. Since it can be selectively used depending on the condition setting such as time, the startup time can be shortened and a more stable memory access operation can be realized.
  • the memory access timing adjustment apparatus further includes a memory information input terminal for inputting a signal indicating the configuration of a plurality of external memories, and an address space allocated to the plurality of external memories according to the signal Change, add, or delete.
  • a memory information input terminal for inputting a signal indicating the configuration of a plurality of external memories, and an address space allocated to the plurality of external memories according to the signal Change, add, or delete.
  • FIG. 10 is a functional configuration diagram of the memory access timing adjustment system including the memory access timing adjustment device according to the fifth embodiment of the present invention.
  • the memory access timing adjustment system in the figure includes a memory access timing adjustment device 8 and a plurality of external memories 2.
  • the memory access timing adjustment device 8 includes a system LSI 8A and a nonvolatile memory 3.
  • the plurality of external memories 2 include external memories 2A, 2B, 2C, and 2D.
  • the system LSI 8A includes a processor 80, an external bus controller 81, a built-in SRAM 82, a memory controller 83, and a memory information input terminal 84.
  • the memory access timing adjustment system in FIG. 10 differs from the memory access timing adjustment system according to the first embodiment described in FIG. 1 only in that the system LSI 8A includes a memory information input terminal 84, and other components. Are functionally equivalent. The description of the same points as in FIG. 1 will be omitted, and only different points will be described below.
  • the system LSI 8A inputs memory information such as whether or not an external memory is connected to the individual memory interfaces 832A, 832B, 832C, and 832D, and each capacity of the connected external memories 2A to 2D.
  • the memory information input terminal 84 is provided.
  • the memory information input terminal 84 is connected to, for example, a DIP switch on the system board, and the ON / OFF state of the DIP switch may be used as connection information.
  • the memory information input terminal 84 is connected to the access selection circuit 831 in the memory controller 83.
  • the access selection circuit 831 changes, adds, or deletes the address space allocated to the external memory to be adjusted in response to the memory access timing adjustment execution instruction from the processor 80 in accordance with the input memory information.
  • the memory capacity of the external memory 2A when the memory capacity of the external memory 2A is changed from the standard X byte to the Y byte, it is determined from the input memory information and used for adjusting the access timing of the external memories 2A to 2D if necessary. Change the memory address. For example, when the external memory 2B is removed from the system, the external memory 2C is determined as the external memory to be adjusted next after the access timing adjustment of the external memory 2A is completed by judging that from the input memory information. The order is changed by selecting. Further, the access selection circuit 831 may notify the processor 80 that the timing adjustment of the external memory 2B has been canceled.
  • This configuration makes it possible to change the memory configuration with some degree of freedom without changing the access timing adjustment program. Also, access timing adjustment according to the state of the external memory is realized.
  • the memory information input terminal 84 is directly connected to the access selection circuit 831.
  • the memory information input terminal 84 is connected to an arbitrary register in the register space of the system LSI 8A, and the processor 80 is connected to the register.
  • the operation of the access selection circuit 831 may be set by reading this value.
  • the access selection circuit 831 itself may read the register value reflecting the state of the memory information input terminal 84 to change the operation state.
  • the memory access timing adjustment device further outputs a warning message when the window width of the access timing obtained by adjusting the access timing is equal to or smaller than a predetermined value. As a result, it is possible to notify the user of the abnormal state.
  • FIG. 11 is a flowchart showing the operation of the memory access timing adjustment device according to the sixth embodiment of the present invention.
  • the memory access timing adjustment apparatus according to the present embodiment may be any of the memory access timing adjustment apparatuses according to the first to fifth embodiments.
  • the memory access timing adjustment device will be described as the memory access timing adjustment device 7a in the third embodiment.
  • the processor 70 starts access timing adjustment (step S11).
  • the processor 70 measures the range of normal operation while changing the access timing, that is, the window width for each of the external memories 2A to 2D (step S12).
  • the processor 70 determines whether or not the obtained window width is equal to or larger than a certain width (step S13).
  • step S13 If it is determined in step S13 that the obtained window width is larger than the certain width (Yes in step S13), the processor 70 sets the access timing optimum value determined by the window width to the individual memory interface 732A in the memory controller 73. Are set in the individual timing setting registers 732A1 to 732D1 included in .about.732D (step S14).
  • step S13 if it is determined in step S13 that the obtained window width is equal to or smaller than the predetermined width (No in step S13), the system LSI 7A issues a performance degradation warning to the display screen via the image output circuit of the system LSI 7A. Or a warning message for warning by LED display or sound (step S15).
  • the window width is determined only once. However, when the window width is equal to or smaller than the certain width, the measurement of the window width and the determination thereof are repeated a plurality of times. Thus, an optimal value may be set in the timing individual adjustment register of the individual memory interface, or a warning may be sent to the user.
  • the memory access timing adjustment device and the memory access timing adjustment method according to the present invention are not limited to the above embodiments.
  • the specific interface data is generated and the memory interface is in a high load state.
  • specific pattern data may be generated from the pattern generation circuit during memory access adjustment, and the memory access timing may be adjusted after the memory interface is always in a high load state.
  • the pattern generation circuit may be directly connected to each of the individual memory interfaces.
  • the processor or the access selection circuit does not output specific pattern data from the individual memory interface connected to the external memory subject to access timing adjustment, and is specified from the individual memory interface connected to the other external memory. By giving an instruction to output pattern data, the high load state of the memory interface is reproduced.
  • the present invention is useful for a memory access timing adjustment device and a memory access timing adjustment system that adjust access timing to a memory, and in particular, expands an operation margin for memory access in a high load operation state of a system LSI for digital AV equipment. It is most suitable for use in a memory access timing adjustment device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

 本発明のメモリアクセスタイミング調整装置は、複数の外部メモリ(2)のそれぞれに対し個別に接続され、メモリアクセスにおけるデータの送受信を行う複数の個別メモリインターフェイス(632A~632D)と、特定のパターンデータを発生するパターン発生回路(633)と、選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させると同時に、選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから選択された外部メモリ以外の外部メモリへ特定のパターンデータを送受信させることにより複数の外部メモリ(2)に負荷をかけながらアクセスタイミングを調整するプロセッサ(60)とを備える。

Description

メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法
 本発明は、メモリへのアクセスタイミングを調整するメモリアクセスタイミング調整装置およびメモリアクセスタイミング調整方法に関する。
 従来、LSIに搭載されているメモリコントローラがメモリにアクセスする場合のアクセスタイミングは、動作周波数が遅いこともありセット全てに同じ値、すなわち固定値を使用していても問題とはならなかった。しかし、セットの機能の向上に伴い次第にメモリインターフェイスの動作周波数が高くなりアクセスタイミングが厳しくなるにつれ、アクセスタイミングを固定値とせず、セットの状態に合わせて調整可能とする必要が生じてきた。
 そこで、LSIは、その内部にアクセスタイミング調整用レジスタが設けられ、その値が変更されることにより、LSIの出力するメモリインターフェイス用信号のタイミング、あるいは入力した信号の内部タイミングを変えることが可能な回路を内蔵するようになってきている。
 以下、図12を用いて従来技術の構成及び動作を説明する。図12は従来のメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、システムLSI900と、外部メモリ910A、910B、910C及び910Dと、外部不揮発性メモリ920と、外部SRAM930とを備える。
 システムLSI900は、プロセッサ901と、外部バスコントローラ902と、メモリコントローラ903とを内蔵している。
 プロセッサ901はメモリコントローラ903及び外部バスコントローラ902に接続されている。
 さらに、メモリコントローラ903は、メモリインターフェイス904を有し、メモリバスを介して、外部メモリ910A、910B、910C、及び910Dと接続されている。
 また外部不揮発性メモリ920と外部SRAM930とは、それぞれ外部バスコントローラ902を介してプロセッサ901に接続されている。
 プロセッサ901は、起動時に、外部バスコントローラ902を介し外部不揮発性メモリ920からブートコードをロードし、その中に書かれたコードすなわち命令を実行する。
 また、外部不揮発性メモリ920にはアクセスタイミング調整プログラムも書かれており、プロセッサ901がアクセスタイミング調整プログラムを実行した場合には、プロセッサ901がメモリのある領域にデータを書込み、同じ領域からデータを読み出して、読み出したデータと期待値とを比較し、OK/NGの判定を行う。メモリコントローラ903にはアクセスタイミングを調整するためのアクセスタイミング調整用レジスタが設けられており、プロセッサ901はレジスタへの設定値を変える毎にメモリライト、メモリリード、期待値比較を行いOK/NGを判定する。以下、アクセスタイミング調整用レジスタへの設定値について、具体的に説明する。
 図13は、外部メモリからLSI内へデータを読み込む場合の動作タイミングチャートである。図12における外部メモリ910A~910Dとしては、クロック同期型メモリとして、例えば、DDR SDRAM(Double Data Rate Syncronous DRAM)が使用されており、メモリコントローラ903に8ビットデータ(図12及び図13ではDQとして記載)を転送するタイミングを知らせるために、第1クロック信号に同期したデータストローブ信号(図12及び図13ではDQSとして記載)が使用されている。外部メモリからデータを読み出す場合、外部メモリからはデータDQをデータストローブDQSと同位相で出力する。このデータを確実に受け取るために、例えば、メモリコントローラ903は、第1クロック信号に同期したデータストローブ信号に対して位相を90度遅らせたタイミングのデータストローブ信号を生成する。そして、当該データストローブ信号の立ち上がり時及び立ち下がり時に8ビットデータを読み込むことになっている。しかし、電源変動やノイズなどの外的要因により、受信したデータストローブ信号に波形歪みが生じ、データストローブ信号のエッジ検出時に位相のずれが生じる。これに対応するため、メモリコントローラ903は、データ読み込みのための基準位相差である90度に対し、所定の位相範囲であるウィンドウ幅を確保しておく必要がある。このウィンドウ幅を、例えば、180度を128分割したものを1ビットで変化させられる位相差として、最適な位相差をビットで表現したものが上述したアクセスタイミング調整用レジスタへの設定値となる。
 上記方法により、プロセッサ901は、メモリアクセスが正常に行える位相範囲を求め、プロセス変動、電圧変動等他の条件を加味して動作マージンが最大となるアクセスタイミング調整用レジスタ設定値を決定する。
 アクセスタイミングの最適設定値の求め方については、特許文献1から特許文献4に示すものが知られている。
 特許文献1は、上述した従来技術を開示したものであり、アクセスタイミングの最適設定値の求め方として、チェック用アドレスとして予め定められたアドレスに所定のデータを書き込み、それを読み出してOK/NGを判定する方式が記載されている。つまり、メモリアクセスが成功する上限値および下限値を取得し、そのセンター値を最大マージンが確保できる値として使用するものである。
 また、特許文献2は、メモリアクセスが成功したか否かの判定に、単純に期待値とリードした値との比較をするのではなく、ライト時にデータにパリティを付加し、リードしたデータとのパリティ比較を使用する方式が開示されている。
 また、特許文献3は、タイミング調整すなわちアクセスタイミング設定値を変更しメモリへのアクセスを試行する期間を、画面表示を行わないブランキング期間とする方式が開示されている。
 また、特許文献4は、プロセッサからのデータライト、メモリからのデータリード、期待値比較を行った結果によりクロックスキューを変更する方式が開示されている。
特開2001-350668号公報 特開2003-216479号公報 特開2005-141725号公報 特開平11-316619号公報
 しかしながら、上述した従来方式は、メモリバスの負荷状態を考慮した方式ではない。一般に、外部メモリへのアクセスタイミングは、メモリコントローラ-外部メモリ間のバスの転送量およびビットトグル率により変化する。特に、メモリコントローラ-外部メモリ間のバスの転送量が多いほど電源ドロップやノイズが、またビットトグル率が高くなるほどビット間のクロストークやノイズが増加し、外部メモリへのアクセスタイミングは厳しくなる。
 すなわち、メモリコントローラ-外部メモリ間のバスにおけるデータ転送量、ビットトグル率により、アクセスタイミングのウィンドウ幅は変化する。
 よって、実際には、メモリバスにおけるデータ転送量およびビットトグル率を変化させてウィンドウ幅を最適化することが重要である。しかし、従来の方式では、メモリコントローラは外部メモリ1つ1つに対して個別にアクセスすることができない。そのため、タイミング調整対象の外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに対し独立にアクセスするということができない。従って、実動作時のメモリコントローラ-外部メモリ間のバスにおけるデータ転送量、ビットトグル率を具体的に反映したアクセスタイミング調整ができない。
 特に、メモリコントローラ-外部メモリ間のバスの転送量が多くかつビットトグル率の高い高負荷状態を再現して、アクセスタイミングを調整する必要性は高い。例えば、高負荷状態は、通常はセットの実アプリ動作状態で実現される。しかしこの場合、その他の外部メモリに対しアプリケーションを動作させようにも、特定の外部メモリに対してタイミング調整している時に、アプリケーションソフトを通常動作時とは異なる使用メモリ容量、アドレスマッピングに切り替えて使用することは容易ではない。
 よって、高負荷状態でのアクセスタイミング最適化が出来ない上、システムLSI、外部メモリ、ボードの出来により、それぞれの特性の組み合わせによっては実アプリ動作時に動作不安定となる可能性がある。
 画像表示専用のLSIであれば、画面に表示しない期間、すなわちブランキング期間を使用してアクセスタイミング調整を行うことができる。この間に、メモリアクセスができなくなったとしても画面表示開始までに標準設定値にアクセスタイミング設定を戻すことにより、システムを破綻させずにタイミング調整を継続できる。
 しかしデジタルTVやDVDレコーダなどのデジタルAV機器のシステムLSIでは、内蔵マイコンや他の内蔵機能ブロックが常にメモリを使用している。このため、アクセスタイミング調整の同時実行により外部メモリにアクセスできなくなった時点でシステムが破綻し、動作が停止してしまう。これにより、実アプリ動作及びタイミング調整とも継続不可能となってしまう。そのため、従来は、動作停止しないようCPUのスタックを含むワーク領域を外部SRAM空間に取り、かつ、外部メモリへのアクセスが正しくできなくなりデータが化けても、動作が停止することのないDMA転送と言った簡易な検査パターンにより低負荷な状態でのアクセスタイミング調整を実施し、求めた最適値で外部メモリを使用するしか方法が無かった。
 しかし、例えば、図14に記載された、タイミング調整時と実アプリ動作時とのウィンドウ幅の比較図のように、タイミング調整時、すなわちメモリアクセスの低負荷状態で外部メモリアクセスタイミングを最適化しても、実アプリ動作時、すなわちシステムが高負荷の状態になると、低負荷状態での動作範囲から上限側、下限側のウィンドウ幅がアンバランスに削られることで大きく最適値がずれてしまうことがある。その場合、実アプリ動作時のウィンドウ幅にタイミング調整時の最適値が入らなくなり、メモリアクセスが正常動作しなくなるという問題が発生する可能性がある。逆に、低負荷なタイミング調整時のウィンドウ幅は高負荷時のウィンドウ幅よりも一般的に広く、高負荷時の最適値が低負荷時のウィンドウに入らないということはまず起こらない。
 本発明は、上記の課題に鑑みてなされたものであり、複数の外部メモリのそれぞれに対して個別にアクセスタイミング調整できるメモリアクセスタイミング調整装置およびメモリアクセスタイミング調整方法を提供することを第1の目的とする。さらに、外部メモリとメモリコントローラとの間のデータ転送量の多い高負荷状態においても、メモリアクセスが安定化するメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法を提供することを目的とする。
 上記目的を達成するために、本発明に係るメモリアクセスタイミング調整装置は、複数の外部メモリへアクセスするタイミングを調整するメモリアクセスタイミング調整装置であって、前記複数の外部メモリのそれぞれに対し個別に接続され、メモリアクセスにおけるデータの送受信を行う複数の個別メモリインターフェイスと、前記複数の外部メモリのうち選択された外部メモリに対して当該選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させることによりアクセスタイミングを調整する制御手段とを備えることを特徴とする。
 これにより、複数の外部メモリに対して個別に設けられた個別メモリインターフェイスが外部メモリ1つ1つに対して個別にアクセスすることができる。よって、タイミング調整対象の外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに独立にデータアクセスができ、メモリバスのデータ転送量を任意に変化させることができる。従って、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。
 また、前記複数の外部メモリは、第1のクロック信号に同期して入出力動作するクロック同期型メモリであり、前記複数の個別メモリインターフェイスのそれぞれは、前記第1のクロック信号を遅延させた第2のクロック信号を使用してデータの入出力動作をし、前記アクセスタイミングは、前記第1のクロック信号と前記第2のクロック信号との位相差であり、前記制御手段は、前記個別メモリインターフェイスにおけるアクセスタイミングを順次変更させながらアクセスが成功したか否かをその都度判定し、当該アクセスが成功した前記位相差の範囲内に最適なアクセスタイミングを調整することが好ましい。
 これにより、データアクセスが成功する位相差の最大範囲を把握できるので、適応性の高いアクセスタイミングの調整が実現される。
 また、前記メモリアクセスタイミング調整装置は、さらに、特定のパターンデータを発生するパターン発生回路を備え、前記制御手段は、前記選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから前記選択された外部メモリ以外の外部メモリへ前記特定のパターンデータを送信させることにより、前記複数の外部メモリに負荷をかけることが好ましい。
 これにより、調整対象外部メモリ以外の外部メモリに対しても負荷の高いパターンでアクセスを行うことが可能となる。よって、メモリバスの負荷が実アプリ動作時の負荷に近い状態で動作させることができ、メモリアクセス頻度の低い低負荷時で取得したメモリアクセスタイミングの最適値と比較して、より高負荷状態でも安定した設定値を得ることが可能となる。
 また、前記メモリアクセスタイミング調整装置は、さらに、前記選択された外部メモリを示すビットを保持するメモリ選択レジスタと、前記複数の個別メモリインターフェイスに接続され、前記選択された外部メモリを示すビットに対応する外部メモリのアドレスを出力するアドレス変換回路とを備えてもよい。
 もしくは、前記メモリアクセスタイミング調整装置は、さらに、前記選択された外部メモリを示すビットを保持するメモリ選択レジスタと、前記複数の個別メモリインターフェイスに接続され、前記選択された外部メモリを示すビットにより、前記選択された外部メモリに接続された個別メモリインターフェイスを選択するセレクタ回路とを備えてもよい。
 これにより、メモリ選択レジスタが設けられることで、外部メモリ構成の変化やメモリインターフェイス周辺の接続変更があっても、タイミング調整プログラムがメモリの実アドレス配置に左右されなくなる。よって、制御手段が実行するアクセスタイミング調整プログラムを変更しないでよくなるため、プログラム開発工数が削減される。
 また、前記メモリアクセスタイミング調整装置は、さらに、前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する前記最適なアクセスタイミングを記憶する不揮発性メモリを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するアクセスタイミング個別設定レジスタを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記タイミング個別設定レジスタに記憶された前記最適なアクセスタイミングを、前記選択された外部メモリとのデータアクセスに使用してもよい。
 これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなり、起動時間の短縮が図られる。
 また、前記メモリアクセスタイミング調整装置は、さらに、前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する前記最適なアクセスタイミングと、システム起動の回数とを記憶する不揮発性メモリを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するタイミング個別設定レジスタを備え、前記制御手段は、所定回数を起動するごとに、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込んでもよい。
 これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなるとともに、定期的にアクセスタイミング調整が更新されるので、起動時間の短縮が図られるとともに、システム構成や状態の変化に対応した外部メモリへのアクセスが実現できる。
 また、前記メモリアクセスタイミング調整装置は、さらに、前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する前記最適なアクセスタイミングと、当該最適なアクセスタイミングが有効か否かを示すタイミング設定値フラグとを記憶する不揮発性メモリを備え、前記複数の個別メモリインターフェイスのそれぞれは、前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するタイミング個別設定レジスタを備え、前記制御手段は、システム起動時に、前記タイミング設定値フラグが無効の場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込んでもよい。
 これにより、予めタイミング設定値フラグを無効にしておけば、次回システム起動時に自動的にアクセスタイミング調整が更新されるので、システム構成や状態の変化に対応した外部メモリへの最適なアクセスが実行できる。
 また、前記メモリアクセスタイミング調整装置は、さらに、前記複数の外部メモリの構成を示す信号を入力するためのメモリ情報入力端子を備え、前記複数の外部メモリの構成を示す信号に従い、前記複数の外部メモリに割り当てられたアドレス空間を変更、追加、又は削除してもよい。
 これにより、外部メモリのサイズ、接続状況が把握されるので、外部メモリの状態に合わせたアクセスタイミング調整が実行できる。
 また、前記制御手段は、前記アクセスタイミングの調整によって得られたアクセスタイミングの最適範囲が、所定値以下であった場合には警告メッセージを出力してもよい。
 これにより、アクセスタイミング調整結果から異常状態を検知した場合に警告メッセージを出力することで、ユーザに異常状態を通知することが可能となる。
 また、本発明は、このような特徴的な手段を備えるメモリアクセスタイミング調整装置として実現することができるだけでなく、メモリアクセスタイミング調整装置に含まれる特徴的な手段をステップとするメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法として実現することができる。
 本発明のメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法によれば、複数の外部メモリのそれぞれに対して個別にメモリインターフェイスが設けられていることにより、複数の外部メモリのそれぞれに対して個別にアクセスタイミング調整できるので、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。特に、メモリバスのデータ転送量が多い高負荷状態に近い状態でアクセスタイミング調整ができるので、高負荷時のメモリアクセスが安定化するメモリアクセスタイミング調整を実現できる。
図1は、本発明の実施の形態1におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。 図2は、本発明の実施の形態1にかかるメモリアクセスタイミング調整装置によるウィンドウ幅検査結果と従来技術によるウィンドウ幅検査結果との比較図である。 図3は、本発明の実施の形態1の第1の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。 図4は、本発明の実施の形態1の第2の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。 図5は、本発明の実施の形態2におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。 図6は、個別メモリインターフェイスまたは外部メモリが特定パターンデータを読み込む場合の動作タイミングチャートである。 図7は、本発明の実施の形態3におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。 図8は、本発明の実施の形態4におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。 図9は、本発明の実施の形態4の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。 図10は、本発明の実施の形態5におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。 図11は、本発明の実施の形態6におけるメモリアクセスタイミング調整装置の動作を表すフローチャートである。 図12は、従来のメモリアクセスタイミング調整システムの機能構成図である。 図13は、外部メモリからLSI内へデータを読み込む場合の動作タイミングチャートである。 図14は、従来技術によるタイミング調整時と実アプリ動作時とのウィンドウ幅の比較図である。
符号の説明
 1、4、5、6、7a、7b、7c、8  メモリアクセスタイミング調整装置
 1A、4A、5A、6A、7A、8A、900  システムLSI
 2  複数の外部メモリ
 2A、2B、2C、2D、910A、910B、910C、910D  外部メモリ
 3、31、32、33  不揮発性メモリ
 10、40、50、60、70、80、901  プロセッサ
 11、41、51、61、71、81、902  外部バスコントローラ
 12、42、52、62、72、82  内蔵SRAM
 13、43、53、63、73、83、903  メモリコントローラ
 32A  タイミング設定値フラグ
 33A  起動回数カウント値
 84  メモリ情報入力端子
 131、431、531、631、731、831  アクセス選択回路
 132、432、532、632、732、832、904  メモリインターフェイス
 132A、132B、132C、132D、432A、432B、432C、432D、532A、532B、532C、532D、632A、632B、632C、632D、732A、732B、732C、732D、832A、832B、832C、832D
  個別メモリインターフェイス
 431A、531A  メモリ選択レジスタ
 431B  アドレス変換回路
 531B  セレクタ回路
 633  パターン発生回路
 732A1、732B1、732C1、732D1  タイミング個別設定レジスタ
 920  外部不揮発性メモリ
 930  外部SRAM
 (実施の形態1)
 本実施の形態1におけるメモリアクセスタイミング調整装置は、複数の外部メモリのそれぞれに対し個別に接続された複数の個別メモリインターフェイスと、選択された外部メモリに対して当該選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させることによりアクセスタイミングを調整する制御手段とを備える。これにより、選択された外部メモリに対してデータを送受信しアクセスタイミングを調整している間に、その他の外部メモリに独立にデータアクセスができ、メモリバスのデータ転送量を任意に変化させることができる。従って、実動作時のメモリバスにおけるデータ転送量を反映したアクセスタイミング調整ができる。
 以下、本発明の実施の形態1におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
 図1は、本発明の実施の形態1におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置1と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置1は、システムLSI1Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
 システムLSI1Aは、プロセッサ10と、外部バスコントローラ11と、内蔵SRAM12と、メモリコントローラ13とを備える。
 プロセッサ10は、外部メモリとのアクセスタイミングを調整する制御手段としての機能を有する。
 不揮発性メモリ3は、外部バスコントローラ11を介しプロセッサ10と接続される。
 内蔵SRAM12は、外部バスコントローラ11を介しプロセッサ10に接続され、プロセッサ10の作業領域としての機能を有する。
 メモリコントローラ13は、プロセッサ10と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路131とメモリインターフェイス132とを備える。
 メモリインターフェイス132は、個別メモリインターフェイス132A、132B、132C及び132Dを内蔵し、外部メモリ2A~2Dはそれぞれ対応する個別メモリインターフェイス132A~132Dを介してアクセス選択回路131に接続される。
 以上のような構成を有する本実施の形態1のメモリアクセスタイミング調整システムの調整動作について、以下説明する。
 まず、プロセッサ10は、起動時に外部バスコントローラ11を介して不揮発性メモリ3からブートコードを読み出し、システムLSI1Aの各種設定を行った後、同じく不揮発性メモリ3からアクセスタイミング調整プログラムを読み出す。アクセスタイミング調整プログラムには、複数ある外部メモリ2A~2Dのそれぞれにアクセスする際のメモリアドレスが記載されている。
 次に、アクセス選択回路131は、プロセッサ10が要求するメモリアドレスに従って、現在タイミング調整すべき外部メモリ(図1では外部メモリ2B)を選択する。
 図1における外部メモリ2A~2Dとしては、例えば、DDR SDRAM(Double Data Rate Syncronous DRAM)が使用される。そして、メモリコントローラ13から外部メモリ2A~2Dへ、あるいは外部メモリ2A~2Dからメモリコントローラ13へデータを転送するタイミングを知らせるために、第1クロック信号に同期したデータストローブ信号が使用されている。外部メモリ2A~2Dからデータを読み出す場合、外部メモリ2A~2Dからはデータがデータストローブと同位相で出力されるため、データを確実に受け取るには、例えば、メモリコントローラ13は、まず、入力されたデータストローブ信号に対して位相を90度遅らせたタイミングのデータストローブ信号を生成する。そして、当該データストローブ信号の立ち上がり時及び立ち下がり時にデータを読み込むことになっている。しかし、電源変動やノイズなどの外的要因により、受信したデータストローブ信号に波形歪みが生じ、データストローブ信号のエッジ検出時に位相のずれが生じる。これに対応するため、メモリコントローラ13は、データ読み込みのための基準位相差である90度に対し、所定の位相範囲であるウィンドウ幅を確保する必要がある。このウィンドウ幅を、例えば、180度を128分割したものを1ビットで調整できる位相差として表現し、アクセスタイミング調整用レジスタに設定した位相差に従いアクセスタイミングを変化させる。
 上記方法により、プロセッサ10は、外部メモリ2Bに対しアクセスタイミング設定を変化させながら、メモリアクセスが成功する位相差範囲であるウィンドウ幅を検査する。検査結果は内蔵SRAM12に逐次記録していき、検査完了後、ウィンドウ幅から最適なアクセスタイミング設定値を決定する。
 そして、プロセッサ10は、システムLSI1Aに接続された外部メモリ2A~2D全てに対し、この最適なアクセスタイミングの決定プロセスを、調整対象を切り替えながら順に実行する。
 図2は、本発明の実施の形態1にかかるメモリアクセスタイミング調整装置によるウィンドウ幅検査結果と従来技術によるウィンドウ幅検査結果との比較図である。同図において、横軸はウィンドウ幅を位相差で表している。また上から順に、本発明の実施の形態1にかかるメモリアクセスタイミング調整装置によって検査された外部メモリ2A、2B、2C及び2Dについてのウィンドウ幅、及び、従来技術により検査された複数の外部メモリ2のウィンドウ幅である。
 本発明では、個別メモリインターフェイス132A~132Dが各外部メモリ2A~2Dに対し個別に設けられているので、各外部メモリについて独立したウィンドウ幅が検査される。
 一方、従来技術では、複数の外部メモリに対し、共通した1つのメモリインターフェイスのみが設けられている。このため、各外部メモリについて独立したウィンドウ幅は検査されず、全ての外部メモリに対して同一のアクセスタイミング設定値で同時にウィンドウ幅が検査される。従って、従来技術により得られたウィンドウ幅は外部メモリ2A~2Dの全てが正常動作する範囲となるため非常に狭くなり、実動作時のメモリバスの転送量の変化に対応したウィンドウ幅の変化に追従できない。
 これに対し、本発明では、図2に記載された外部メモリ2A~2Dのそれぞれに対するウィンドウ幅を基に、実動作時のメモリバスの転送量の変化を想定して多様なウィンドウ幅の設定が可能となる。
 なお、上述した調整動作は、システムLSI1Aの起動時の動作についての説明であるが、アプリプログラム実行状態から何らかの処理切り替え指示によりアクセスタイミング調整プログラム実行に移行する場合も考えられる。その場合はアクセスタイミング調整プログラム実行開始以降に関して上記説明と同様となる。
 また、図1に記載されたメモリアクセスタイミング調整装置1の構成要素であるアクセス選択回路131は、例えば、以下、図3または図4に記載されたような機能構成をとってもよい。
 図3は、本発明の実施の形態1の第1の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。
 同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置4と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置4は、システムLSI4Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
 システムLSI4Aは、プロセッサ40と、外部バスコントローラ41と、内蔵SRAM42と、メモリコントローラ43とを備える。
 メモリコントローラ43は、プロセッサ40と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路431とメモリインターフェイス432とを備える。
 メモリインターフェイス432は、個別メモリインターフェイス432A、432B、432C及び432Dを内蔵し、外部メモリ2A~2Dはそれぞれ対応する個別メモリインターフェイス432A~432Dを介してアクセス選択回路431に接続される。
 同図におけるメモリアクセスタイミング調整システムは、図1に記載されたメモリアクセスタイミング調整システムと比較し、アクセス選択回路431の機能構成が具体化されている点のみが異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
 アクセス選択回路431は、メモリ選択レジスタ431Aとアドレス変換回路431Bとを備える。
 図3に記載されたメモリアクセス調整システムでは、アクセス選択回路431は、プロセッサ40がメモリ選択レジスタ431Aに設定した調整対象とする外部メモリを選択するビットを読み、タイミング調整すべき外部メモリを選択する。
 また、図4は、本発明の実施の形態1の第2の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。
 同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置5と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置5は、システムLSI5Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
 システムLSI5Aは、プロセッサ50と、外部バスコントローラ51と、内蔵SRAM52と、メモリコントローラ53とを備える。
 メモリコントローラ53は、プロセッサ50と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路531とメモリインターフェイス532とを備える。
 メモリインターフェイス532は、個別メモリインターフェイス532A、532B、532C及び532Dを内蔵し、外部メモリ2A~2Dはそれぞれ対応する個別メモリインターフェイス532A~532Dを介してアクセス選択回路531に接続される。
 同図におけるメモリアクセスタイミング調整システムは、図1に記載されたメモリアクセスタイミング調整システムと比較し、アクセス選択回路531の機能構成が具体化されている点のみが異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
 アクセス選択回路531は、メモリ選択レジスタ531Aとセレクタ回路531Bとを備える。
 図4に記載されたメモリアクセス調整システムでは、アクセス選択回路531は、メモリ選択レジスタ531Aに設定された値を読み、その値によりセレクタ回路531Bが信号の接続を切り換え、プロセッサ50が調整対象外部メモリに直接アクセスできるようになっている。
 図3又は図4に記載されたメモリアクセスタイミング調整システムでは、メモリ選択レジスタ431A又は531Aが設けられている。これにより、プロセッサ40又は50が実行するアクセスタイミング調整プログラムは、外部メモリ構成の変化やメモリコントローラ内部の接続変更があっても変更無く使用されることが可能となる。さらには異なるシステムLSIであってもメモリ選択レジスタ仕様を統一していれば、全く同じアクセスタイミングプログラムが使用されることが可能であるので、プログラム開発工数が削減される。
 以上のように、本発明の実施の形態1にかかるメモリアクセスタイミング調整システムによれば、メモリコントローラはアクセス選択回路および個別メモリインターフェイスにより、外部メモリ1つ1つを独立にアクセスすることができる。よって、外部メモリの各々に対して、最適なアクセスタイミングが得られ、外部メモリ構成の変化やメモリコントローラ内部の接続変更があっても個々の最適値には有用性がある。また、アプリプログラムが調査対象の外部メモリ以外の外部メモリ容量で動作するのであれば、調査対象となる外部メモリをアクセスタイミング調整しながらアプリプログラムで使用するメモリ領域が確保できるため、安定なアプリケーションの動作が実現される。
 なお、図1、図3及び図4に記載されたシステムでは、システムLSI1A、4A及び5Aに接続された外部メモリおよび個別メモリインターフェイスの個数はそれぞれ4個であるが、本発明は2個以上であればよく、同様の効果を奏する。
 また、不揮発性メモリ3は各システムLSIの内部にあってもよく、逆に内蔵SRAMは各システムLSIの外部のSRAMであってもよい。
 また、アクセスタイミング調整プログラムおよびアプリプログラム等については、不揮発性メモリ3に書き込んでおく必要はなく、不揮発性メモリ3とは別に用意したRAMにネットワーク経由でダウンロードしたものを各プロセッサから読み込むようにしてもよい。
 (実施の形態2)
 本実施の形態2におけるメモリアクセスタイミング調整装置は、さらに、特定のパターンデータを発生するパターン発生回路と、選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから選択された外部メモリ以外の外部メモリへ特定のパターンデータを送信させる制御手段とを備える。これにより、複数の外部メモリに負荷をかけた実アプリ動作時に近い状態が再現されるので、メモリアクセス頻度の低い低負荷時で取得したメモリアクセスタイミングと比較して、より高負荷状態でも安定したアクセスタイミングの設定値を得ることが可能となる。
 以下、本発明の実施の形態2におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
 図5は、本発明の実施の形態2におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。
 同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置6と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置6は、システムLSI6Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
 システムLSI6Aは、プロセッサ60と、外部バスコントローラ61と、内蔵SRAM62と、メモリコントローラ63とを備える。
 プロセッサ60は、外部メモリとのアクセスタイミングを調整する制御手段としての機能を有する。
 不揮発性メモリ3は、外部バスコントローラ61を介しプロセッサ60と接続される。
 内蔵SRAM62は、外部バスコントローラ61を介しプロセッサ60に接続され、プロセッサ60の作業領域としての機能を有する。
 メモリコントローラ63は、プロセッサ60と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路631と、メモリインターフェイス632と、パターン発生回路633とを備える。
 メモリインターフェイス632は、個別メモリインターフェイス632A、632B、632C及び632Dを内蔵し、外部メモリ2A~2Dはそれぞれ対応する個別メモリインターフェイス632A~632Dを介してアクセス選択回路631に接続される。
 パターン発生回路633は、アクセス選択回路631に接続される。
 図5におけるメモリアクセスタイミング調整システムは、図1に記載された実施の形態1に係るメモリアクセスタイミング調整システムと比較し、メモリコントローラ63の構成及び機能が異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
 図5において、プロセッサ60から調整対象である外部メモリ2Bに対しアクセスタイミング調整を実施する場合、アクセス選択回路631は、まず、メモリコントローラ63内のパターン発生回路633から発生した特定パターンデータを、外部メモリ2B以外の外部メモリ2A、2C及び2Dに対し、外部メモリ2Bのアクセスタイミング調整が完了するまで個別メモリインターフェイス632A、632C、632Dは特定パターンによる外部メモリアクセスを実行し続ける。
 ここで、パターン発生回路633が発生する特定パターンデータについて図6を用いて説明する。図6は、個別メモリインターフェイスまたは外部メモリが特定パターンデータを読み込む場合の動作タイミングチャートである。
 調整対象である外部メモリ2Bに対しアクセスタイミング調整を実施している間、パターン発生回路633から発生した特定パターンデータが外部メモリ2A、2C及び2Dに読み込まれた後読み出される。その後、それぞれの外部メモリに接続された個別メモリインターフェイス632A、632C及び632Dで当該特定パターンデータが読み込まれる。同図において、上部に記載されたレジスタは受信したデータストローブ信号の立ち上がり時において4ビットデータを順次保持し、下部に記載されたレジスタは受信したデータストローブ信号の立ち下がり時において4ビットデータを順次保持する。
 例えば、4ビットデータ列が互いに反転関係にある“A”(1010)と“5”(0101)とで構成された“A5A5A5・・・”である場合、4ビットデータはデータストローブ信号の変化に従い、上部レジスタと下部レジスタに交互に保持されるので、上部レジスタには“AAA・・”の順でデータが保持され、下部レジスタには“555・・”の順で保持される。従って、4ビットデータ列“A5A5A5・・・”は、上部レジスタ及び下部レジスタにとって、データ変化のない、つまり、ビットトグル率の低いパターンデータであるが、外部メモリバスにとってはデータストローブのエッジ毎にデータが変化するビットトグル率の高いパターンとなる。
 一方、4ビットデータ列が“A55AA55A・・”である場合、4ビットデータはデータストローブ信号の変化に従い、上部レジスタと下部レジスタに交互に保持されるので、上部レジスタには“A5A5・・”の順でデータが保持され、下部レジスタには“5A5A5・・”の順で保持される。従って、4ビットデータ列“A55AA55A・・”は、上部レジスタ及び下部レジスタにとって、データ変化の大きい、つまり、ビットトグル率の高いパターンデータであるが、外部メモリバスにとっては、データストローブのエッジ2回毎にビットトグルするパターンとなる。これらのパターンを組み合わせることで内部バス、外部メモリバス共にビットトグル率の高いアクセスが実現できる。
 再び図5に戻ってアクセスタイミング調整の実施について説明する。調整対象である外部メモリ2Bのタイミング調整が完了すると、アクセス選択回路631は、次に、別の外部メモリのタイミング調整を実行する。例えば、プロセッサ60からの指示で調整対象外部メモリが外部メモリ2Cになった場合は、アクセス選択回路631は、パターン発生回路633で発生したアクセスパターンを外部メモリ2A、2B及び2Dに対して実行する。そして、他の外部メモリがタイミング調整対象メモリになった場合も、同様に調整対象外部メモリ以外の外部メモリに対して同様に実行する。
 これにより、実施の形態1での、調整対象である外部メモリ2Bへのアクセスしか発生していない状態から、外部メモリ2B以外の外部メモリ2A、2C及び2Dに対しても、上述したような全ビットをクロック毎にトグルさせた高負荷のパターンデータをアクセスさせることができる。よって、実アプリ動作時に近い、メモリインターフェイス全体が高負荷で動作する状態が実現される。すなわち、実アプリ動作時における最適なメモリアクセスタイミングに近い値がアクセスタイミング調整で得られるので、実アプリ動作時のメモリアクセス安定度が向上する。
 (実施の形態3)
 本実施の形態3におけるメモリアクセスタイミング調整装置は、アクセスタイミングの調整によって得られた最適なアクセスタイミングを記憶する不揮発性メモリを備え、システム起動時に、個別メモリインターフェイスのそれぞれが有するアクセスタイミング個別設定レジスタに最適なアクセスタイミングを読み出し、これを選択された外部メモリとのデータアクセスに使用する。これにより、通常起動時に毎回アクセスタイミング調整を実行する必要がなくなり、起動時間の短縮が図られる。
 以下、本発明の実施の形態3におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
 図7は、本発明の実施の形態3におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置7aと複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置7aは、システムLSI7Aと、不揮発性メモリ31とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
 システムLSI7Aは、プロセッサ70と、外部バスコントローラ71と、内蔵SRAM72と、メモリコントローラ73とを備える。
 プロセッサ70は、外部メモリとのアクセスタイミングを調整する制御手段としての機能を有する。
 不揮発性メモリ31は、外部バスコントローラ71を介しプロセッサ70と接続される。
 内蔵SRAM72は、外部バスコントローラ71を介しプロセッサ70に接続され、プロセッサ70の作業領域としての機能を有する。
 メモリコントローラ73は、プロセッサ70と外部メモリ2A、2B、2C及び2Dの各々との間に接続され、アクセス選択回路731と、メモリインターフェイス732とを備える。
 メモリインターフェイス732は、個別メモリインターフェイス732A、732B、732C及び732Dを内蔵し、外部メモリ2A~2Dはそれぞれ対応する個別メモリインターフェイス732A~732Dを介してアクセス選択回路731に接続される。
 また、個別メモリインターフェイス732A、732B、732C及び732Dは、それぞれ、タイミング個別設定レジスタ732A1、732B1、732C1及び732D1を備える。
 図7におけるメモリアクセスタイミング調整システムは、図1に記載された実施の形態1に係るメモリアクセスタイミング調整システムと比較し、メモリコントローラ73の構成及び機能が異なり、その他の構成要素については機能的に同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
 図7において、システムLSI7Aは、不揮発性メモリ31からアクセスタイミング調整プログラムを読み出し、アクセスタイミング調整プログラムを実行する。アクセスタイミング調整を実施した後、プロセッサ70は、個別メモリインターフェイス732A~732D内のタイミング個別設定レジスタ732A1~732D1に、それぞれの外部メモリに対応した最適なアクセスタイミングであるタイミング最適値を設定する。また同時に、不揮発性メモリ31に対し、それらのタイミング最適値を書き込む。
 また、同時に、アクセスタイミング調整プログラムをタイミング最適値設定プログラムに置き換える。
 次回システム起動時には、プロセッサ70はタイミング最適値設定プログラムを読み込み、当該プログラムに従って不揮発性メモリ31に書き込まれているタイミング最適値を、タイミング個別設定レジスタ732A1~732D1に設定する。
 これにより、アクセスタイミング調整によって得られたタイミング最適値が不揮発性メモリに格納されるので、通常起動時に毎回アクセスタイミング調整がなされる必要がなくなり、起動時間の短縮が図られる。
 なお、上述した動作説明では、プロセッサ70が、最初のアクセスタイミング調整実行後に不揮発性メモリ31にタイミング最適値を書き込み、かつアクセスタイミング調整プログラムをタイミング最適値設定プログラムに書き換えると説明したが、必ずしもプロセッサ70が書き換える必要はない。アクセスタイミング調整プログラムが書き込まれた不揮発性メモリがシステムLSI7Aに接続され、プロセッサが当該プログラムを実行しタイミング最適値を取得した後、工場出荷時に、アクセスタイミング調整プログラムが書き込まれた不揮発性メモリを、タイミング最適値およびタイミング最適値設定プログラムが書き込まれた不揮発性メモリに置換えてもよい。
 また、タイミング最適値のみがブートコードを含む不揮発性メモリ31とは異なる不揮発性メモリに書き込まれ、ブートコードを含む不揮発性メモリ31の内容が出荷時に書き換えられてもよい。
 これにより、アクセスタイミング調整は、ユーザへのシステムリリース後に行う必要のないシステムであれば、工場出荷時のみ実行されればよく、ユーザ起動時にアクセスタイミング再調整の必要がなくなるため、起動時間の短縮が図られる。
 (実施の形態4)
 本実施の形態4におけるメモリアクセスタイミング調整装置は、アクセスタイミングの調整によって得られた最適なアクセスタイミングと、最適なアクセスタイミングが有効か否かを示すタイミング設定値フラグとを記憶する不揮発性メモリと、システム起動時にタイミング設定値フラグが無効の場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを不揮発性メモリに書き込む制御手段とを備える。これにより、予めタイミング設定値フラグを無効にしておけば、次回起動時に自動的にアクセスタイミング調整が更新されるので、システム構成や状態の変化に対応した外部メモリへの最適なアクセスが実行できる。
 以下、本発明の実施の形態4におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
 図8は、本発明の実施の形態4におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置7bと複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置7bは、システムLSI7Aと、不揮発性メモリ32とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
 図8におけるメモリアクセスタイミング調整システムは、図7に記載された実施の形態3に係るメモリアクセスタイミング調整システムと比較し、不揮発性メモリ32の機能及び構成のみが異なり、その他の構成要素については同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
 不揮発性メモリ32は、外部バスコントローラ71を介しプロセッサ70と接続される。
 図8において、外部メモリ2A、2B、2C及び2Dのそれぞれについて求めた最適なアクセスタイミングであるアクセスタイミング最適値は、プロセッサ70により個別メモリインターフェイス732A~732D内のタイミング個別設定レジスタ732A1~732D1に設定される。
 同時に、プロセッサ70は、外部メモリ毎に求めたアクセスタイミング最適値を不揮発性メモリ32の特定の領域に書込みを行う。
 さらに、プロセッサ70は、アクセスタイミング最適値を不揮発性メモリ32に書き込むと同時に、あるいは別のタイミングで不揮発性メモリ32に書き込んだアクセスタイミング設定値が有効であるか否かを示すタイミング設定値フラグ32Aを不揮発性メモリ32上の特定領域に書き込む。
 その後、システムのリセット、あるいは電源再投入によりシステムLSI7Aの再起動が発生した場合、プロセッサ70は不揮発性メモリ32からブートコードを読み取りシステム起動している最中に、上記のタイミング設定値フラグ32Aをチェックし、有効を示していれば不揮発性メモリ32に書き込まれたアクセスタイミング最適値を個別メモリインターフェイス732A~732D内のタイミング個別設定レジスタ732A1~732D1に設定する。
 また、反対に、タイミング設定値フラグ32Aが無効を示していれば、プロセッサ70はアクセスタイミング調整プログラムを起動し、再度アクセスタイミング調整を行って求めたアクセスタイミング最適値をタイミング個別設定レジスタ732A1~732D1に設定する。
 これにより、システムリセットあるいは電源投入毎にアクセスタイミング調整が実行される必要がなくなり、アクセスタイミング調整が必要であると判断された場合のみアクセスタイミング調整が実行されるため、システム起動時間の短縮が図られる。
 ここで、タイミング設定値フラグ32Aは、プロセッサ70が必ずしも書き換える必要はなく、システムによっては出荷時に固定値が書込まれており、毎回起動時にアクセスタイミング調整が実行されたり、常に不揮発性メモリ32に書き込まれたタイミング設定値が最適値として使用されるようにすることも可能である。
 また、出荷時には無効フラグとしておき、ユーザ側でのシステム起動時の初回のアクセスタイミング調整が完了した後は、有効フラグに書き換えられることで、次回のシステム起動時からは不揮発性メモリ32のタイミング最適値が使用されるようにもできる。
 さらに、図9に記載された本発明の実施の形態4におけるメモリアクセスタイミング調整装置の別の実現例について以下説明する。
 図9は、本発明の実施の形態4の変形例を示すメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置7cと複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置7cは、システムLSI7Aと、不揮発性メモリ33とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
 図9におけるメモリアクセスタイミング調整システムは、図8に記載された実施の形態4に係るメモリアクセスタイミング調整システムと比較し、不揮発性メモリ33の機能及び構成のみが異なり、その他の構成要素については同等である。同じ点は説明を省略し、以下、異なる点のみ説明する。
 図9に記載されたメモリアクセスタイミング調整システムでは、図8に記載されたタイミング設定値フラグ32Aの代わりに、システム起動の度にプロセッサ70が不揮発性メモリ33に書き込まれた起動回数カウント値33Aを読み出し、その値を更新して不揮発性メモリ33に書き戻す。システム起動時に読み出したこの起動回数カウント値33Aにより、プロセッサ70はアクセスタイミング調整を実施するか否かを決定する。
 例えば、起動回数カウント値33Aが所定値よりも小さい場合は、不揮発性メモリ33に書き込まれているタイミング最適値を読み出し、個別メモリインターフェイス732A~732D内のタイミング個別設定レジスタ732A1~732D1にその値を設定する。
 一方、起動回数カウント値33Aが所定値に達した場合は、プロセッサ70はアクセスタイミング調整プログラムを実行し、外部メモリ2A~2Dのアクセスタイミング調整を行う。そして、得られたタイミング最適値をタイミング個別設定レジスタ732A1~732D1に設定すると共に、不揮発性メモリ33にタイミング最適値を書き込み、起動回数カウント値33Aを決められた値に更新する。
 その後、起動回数カウント値33Aが所定値に到達するまでは、システム起動時に不揮発性メモリ33に書かれたタイミング最適値をタイミング個別設定レジスタ732A1~732D1に設定する。
 なお、上記説明ではシステム起動回数をカウントし、その値をもってアクセスタイミング調整を実行するか否かの判定がなされたが、時間情報が管理できるシステムであれば、システム使用時間の合計を起動回数カウント値の代わりに不揮発性メモリ33に書き込み、アクセスタイミング調整を実行するか否かの判定基準としてもよい。
 これら実施の形態4およびその変形例に示された構成により、予め不揮発性メモリに格納されたアクセスタイミング最適値とアクセスタイミング再調整により新たに得られたアクセスタイミング最適値とが、使用回数や累積時間などの条件設定によって使い分けられるので、起動時間の短縮が図られるとともにより安定したメモリアクセス動作が実現される。
 (実施の形態5)
 本実施の形態5におけるメモリアクセスタイミング調整装置は、さらに、複数の外部メモリの構成を示す信号を入力するためのメモリ情報入力端子を備え、当該信号に従い、複数の外部メモリに割り当てられたアドレス空間を変更、追加、又は削除する。これにより、外部メモリのサイズ、接続状況が把握されるので、外部メモリの状態に合わせたアクセスタイミング調整が実行できる。
 以下、本発明の実施の形態5におけるメモリアクセスタイミング調整装置について、図面を参照しながら詳細に説明する。
 図10は、本発明の実施の形態5におけるメモリアクセスタイミング調整装置を含むメモリアクセスタイミング調整システムの機能構成図である。同図におけるメモリアクセスタイミング調整システムは、メモリアクセスタイミング調整装置8と複数の外部メモリ2とを備える。メモリアクセスタイミング調整装置8は、システムLSI8Aと、不揮発性メモリ3とを備える。複数の外部メモリ2は、外部メモリ2A、2B、2C及び2Dを備える。
 システムLSI8Aは、プロセッサ80と、外部バスコントローラ81と、内蔵SRAM82と、メモリコントローラ83と、メモリ情報入力端子84とを備える。
 図10におけるメモリアクセスタイミング調整システムは、図1に記載された実施の形態1に係るメモリアクセスタイミング調整システムと比較し、システムLSI8Aにメモリ情報入力端子84を備える点のみが異なり、その他の構成要素については機能的に同等である。図1と同じ点は説明を省略し、以下、異なる点のみ説明する。
 図10において、システムLSI8Aは、個別メモリインターフェイス832A、832B、832C及び832Dに外部メモリが接続されているか否か、及び接続されている外部メモリ2A~2Dの各容量等のメモリ情報を入力するためのメモリ情報入力端子84を具備している。
 メモリ情報入力端子84は、例えば、システム基板上のディップスイッチに接続されており、ディップスイッチのオン/オフ状態を接続情報としてもよい。
 また、メモリ情報入力端子84は、メモリコントローラ83内のアクセス選択回路831に接続されている。アクセス選択回路831は、入力されたメモリ情報に従い、プロセッサ80からのメモリアクセスタイミング調整実行命令に対して、調整対象の外部メモリに割り当てられたアドレス空間の変更、追加又は削除等を行う。
 例えば、外部メモリ2Aのメモリ容量が標準のXバイトからYバイトに変更になった場合、入力されたメモリ情報からそれを判定し、必要があれば外部メモリ2A~2Dのアクセスタイミング調整に使用するメモリアドレスを変更する。また、例えば外部メモリ2Bがシステムから取り外されていた場合には、入力されたメモリ情報からそれを判断し、外部メモリ2Aのアクセスタイミング調整完了後の次の調整対象となる外部メモリとして外部メモリ2Cを選択するという順序変更を行う。さらに、アクセス選択回路831からプロセッサ80には、外部メモリ2Bのタイミング調整をキャンセルした旨を通知するようにしてもよい。
 この構成により、アクセスタイミング調整プログラムを変更せずに、メモリ構成をある程度自由度を持たせて変更することができる。また、外部メモリの状態に応じたアクセスタイミング調整が実現される。
 なお、本実施の形態ではメモリ情報入力端子84をアクセス選択回路831に直接接続しているが、メモリ情報入力端子84をシステムLSI8Aのレジスタ空間にある任意のレジスタに接続し、プロセッサ80がそのレジスタの値を読み取ってアクセス選択回路831の動作を設定してもよい。もちろん、メモリ情報入力端子84の状態を反映するレジスタの値をアクセス選択回路831自身が読み取って動作状態を変更しても良い。
 (実施の形態6)
 本実施の形態におけるメモリアクセスタイミング調整装置は、さらに、アクセスタイミングの調整によって得られたアクセスタイミングのウィンドウ幅が、所定値以下であった場合には警告メッセージを出力する。これにより、ユーザに異常状態を通知することが可能となる。
 以下、本発明の実施の形態6におけるメモリアクセスタイミング装置のメモリアクセスタイミング調整方法について、図面を参照しながら詳細に説明する。
 図11は、本発明の実施の形態6におけるメモリアクセスタイミング調整装置の動作を表すフローチャートである。なお、本実施の形態におけるメモリアクセスタイミング調整装置は、実施の形態1から実施の形態5におけるメモリアクセスタイミング調整装置のいずれであってもよい。ここでは、メモリアクセスタイミング調整装置を実施の形態3におけるメモリアクセスタイミング調整装置7aとして説明する。
 まず、プロセッサ70は、アクセスタイミング調整を開始する(ステップS11)。
 次に、プロセッサ70は、アクセスタイミングを変更しながら正常動作する範囲、すなわち、ウィンドウ幅の測定を外部メモリ2A~2Dのそれぞれに対して行う(ステップS12)。
 次に、プロセッサ70は、得られたウィンドウ幅が一定幅以上であるか否かの判定を行う(ステップS13)。
 ステップS13において、得られたウィンドウ幅が一定幅より大きいと判定された場合(ステップS13でYes)、プロセッサ70は、ウィンドウ幅によって決定されたアクセスタイミング最適値をメモリコントローラ73内の個別メモリインターフェイス732A~732Dが有するタイミング個別設定レジスタ732A1~732D1に設定する(ステップS14)。
 一方、ステップS13において、得られたウィンドウ幅が一定幅以下であると判定された場合(ステップS13でNo)、システムLSI7AからシステムLSI7Aが有する画像出力回路を介して表示画面に性能低下警告のための表示を行ったり、LED表示や音で警告するための警告メッセージを出力する(ステップS15)。
 最後に、アクセスタイミング調整を終了する(ステップS16)。
 なお、上述した動作説明では、ウィンドウ幅が一定幅より大きいか否かの判定は一度しかなされていないが、ウィンドウ幅が一定幅以下の場合は、ウィンドウ幅の測定及びその判定を複数回繰り返すことにより、個別メモリインターフェイスのタイミング個別調整レジスタに最適値を設定したり、ユーザに警告を発信したりしてもよい。
 以上の動作により、アクセスタイミング調整結果から異常状態を検知した場合にシステムLSI外部に情報を出力できるので、ユーザに異常状態を通知することが可能となる。
 なお、本発明に係るメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法は、上記実施の形態に限定されるものではない。実施の形態1ないし6における任意の構成要素を組み合わせて実現される別の実施形態や、実施の形態1ないし6に対して本発明の主旨を逸脱しない範囲で当業者が思いつく各種変形を施して得られる変形例や、本発明に係るメモリアクセスタイミング調整装置を内蔵した各種機器も本発明に含まれる。
 例えば、実施の形態2では、メモリアクセスタイミング調整時に実アプリ動作状態を再現するため、特定パターンデータを発生させてメモリインターフェイスを高負荷状態としたが、実施の形態2以外の全ての実施の形態において、メモリアクセス調整時にパターン発生回路から特定パターンデータを発生させて、常にメモリインターフェイスを高負荷状態とした上でメモリアクセスタイミングの調整をしてもよい。
 なお、この場合、必ずしもアクセス選択回路に接続されている必要はない。例えば、パターン発生回路は、個別メモリインターフェイスのそれぞれに直接接続されていてもよい。この場合には、プロセッサ又はアクセス選択回路が、アクセスタイミング調整対象の外部メモリに接続された個別メモリインターフェイスからは特定パターンデータを出力させず、それ以外の外部メモリに接続された個別メモリインターフェイスから特定パターンデータを出力させる指示を与えることにより、メモリインターフェイスの高負荷状態が再現される。
 本発明は、メモリへのアクセスタイミングを調整するメモリアクセスタイミング調整装置及びメモリアクセスタイミング調整システムに有用であり、特にデジタルAV機器用システムLSIの高負荷動作状態でのメモリアクセスの動作マージンを拡大するメモリアクセスタイミング調整装置に用いるのに最適である。

Claims (20)

  1.  複数の外部メモリへアクセスするタイミングを調整するメモリアクセスタイミング調整装置であって、
     前記複数の外部メモリのそれぞれに対し個別に接続され、メモリアクセスにおけるデータの送受信を行う複数の個別メモリインターフェイスと、
     前記複数の外部メモリのうち選択された外部メモリに対して当該選択された外部メモリに接続された個別メモリインターフェイスからデータを複数回送受信させることによりアクセスタイミングを調整する制御手段とを備える
     ことを特徴とするメモリアクセスタイミング調整装置。
  2.  前記複数の外部メモリは、第1のクロック信号に同期して入出力動作するクロック同期型メモリであり、
     前記複数の個別メモリインターフェイスのそれぞれは、前記第1のクロック信号を遅延させた第2のクロック信号を使用してデータの入出力動作をし、
     前記アクセスタイミングは、前記第1のクロック信号と前記第2のクロック信号との位相差であり、
     前記制御手段は、前記個別メモリインターフェイスにおけるアクセスタイミングを順次変更させながらアクセスが成功したか否かをその都度判定し、当該アクセスが成功した前記位相差の範囲内に最適なアクセスタイミングを調整する
     ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。
  3.  前記メモリアクセスタイミング調整装置は、さらに、
     特定のパターンデータを発生するパターン発生回路を備え、
     前記制御手段は、前記選択された外部メモリ以外の外部メモリに接続された個別メモリインターフェイスから前記選択された外部メモリ以外の外部メモリへ前記特定のパターンデータを送信させることにより、前記複数の外部メモリに負荷をかける
     ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。
  4.  前記メモリアクセスタイミング調整装置は、さらに、
     前記選択された外部メモリを示すビットを保持するメモリ選択レジスタと、
     前記複数の個別メモリインターフェイスに接続され、前記選択された外部メモリを示すビットに対応する外部メモリのアドレスを出力するアドレス変換回路とを備える
     ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。
  5.  前記メモリアクセスタイミング調整装置は、さらに、
     前記選択された外部メモリを示すビットを保持するメモリ選択レジスタと、
     前記複数の個別メモリインターフェイスに接続され、前記選択された外部メモリを示すビットにより、前記選択された外部メモリに接続された個別メモリインターフェイスを選択するセレクタ回路とを備える
     ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。
  6.  前記メモリアクセスタイミング調整装置は、さらに、
     前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する最適なアクセスタイミングを記憶する不揮発性メモリを備え、
     前記複数の個別メモリインターフェイスのそれぞれは、
     前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するアクセスタイミング個別設定レジスタを備え、
     前記複数の個別メモリインターフェイスのそれぞれは、前記タイミング個別設定レジスタに記憶された前記最適なアクセスタイミングを、前記選択された外部メモリとのデータアクセスに使用する
     ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。
  7.  前記メモリアクセスタイミング調整装置は、さらに、
     前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する最適なアクセスタイミングと、システム起動の回数とを記憶する不揮発性メモリを備え、
     前記複数の個別メモリインターフェイスのそれぞれは、
     前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するタイミング個別設定レジスタを備え、
     前記制御手段は、所定回数を起動するごとに、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込む
     ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。
  8.  前記メモリアクセスタイミング調整装置は、さらに、
     前記アクセスタイミングの調整によって得られた前記複数の外部メモリのそれぞれに対する最適なアクセスタイミングと、当該最適なアクセスタイミングが有効か否かを示すタイミング設定値フラグとを記憶する不揮発性メモリを備え、
     前記複数の個別メモリインターフェイスのそれぞれは、
     前記不揮発性メモリから読み出された前記最適なアクセスタイミングをシステム起動時に記憶するタイミング個別設定レジスタを備え、
     前記制御手段は、システム起動時に、前記タイミング設定値フラグが無効の場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込む
     ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。
  9.  前記メモリアクセスタイミング調整装置は、さらに、
     前記複数の外部メモリの構成を示す信号を入力するためのメモリ情報入力端子を備え、
     前記複数の外部メモリの構成を示す信号に従い、前記複数の外部メモリに割り当てられたアドレス空間を変更、追加、又は削除する
     ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。
  10.  前記制御手段は、前記アクセスタイミングの調整によって得られたアクセスタイミングの最適範囲が、所定値以下であった場合には警告メッセージを出力する
     ことを特徴とする請求項1に記載のメモリアクセスタイミング調整装置。
  11.  複数の外部メモリと当該複数の外部メモリにアクセスする複数の個別メモリインターフェイスとを有するメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法であって、
     前記複数の外部メモリの中からアクセスタイミングを調整すべき外部メモリを選択する外部メモリ選択ステップと、
     前記外部メモリ選択ステップにて選択された外部メモリに対し個別に接続された個別メモリインターフェイスから、前記選択された外部メモリへデータを送受信することによりアクセスタイミングを調整するアクセスタイミング調整ステップとを含む
     ことを特徴とするメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
  12.  前記複数の外部メモリは、第1のクロック信号に同期して入出力動作するクロック同期型メモリであり、
     前記複数の個別メモリインターフェイスのそれぞれは、前記第1のクロック信号を遅延させた第2のクロック信号を使用してデータの入出力動作をし、
     前記アクセスタイミングは、前記第1のクロック信号と前記第2のクロック信号との位相差であり、
     前記アクセスタイミング調整ステップでは、
     前記選択された外部メモリに接続された個別メモリインターフェイスにおけるアクセスタイミングを順次変更させながらアクセスが成功したか否かをその都度判定するアクセス判定ステップと、
     前記アクセス判定ステップにてアクセスが成功したと判定されたときの前記位相差の範囲内に最適なアクセスタイミングを調整する位相差調整ステップとを含む
     ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
  13.  前記アクセスタイミング調整ステップと同時に、
     前記選択された外部メモリ以外の外部メモリへ、特定のパターンデータを発生するパターン発生回路から、前記選択された外部メモリ以外のメモリに接続された個別メモリインターフェイスを介して、特定のパターンデータを送信することにより、前記複数の外部メモリに負荷をかける外部メモリ負荷ステップを含む
     ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
  14.  前記外部メモリ選択ステップでは、
     前記選択された外部メモリを示すビット情報をメモリ選択レジスタに保持するビット保持ステップと、
     前記メモリ選択レジスタに保持されたビット情報を、前記複数の個別メモリインターフェイスに接続されたアドレス変換回路により前記選択された外部メモリのアドレスへ変換するアドレス変換ステップとを含む
     ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
  15.  前記外部メモリ選択ステップでは、
     前記選択された外部メモリを示すビット情報をメモリ選択レジスタに保持するビット保持ステップと、
     前記メモリ選択レジスタに保持されたビット情報をもとに、前記複数の個別メモリインターフェイスに接続されたセレクタ回路により、前記選択された外部メモリに接続された個別メモリインターフェイスを選択する個別メモリインターフェイス選択ステップとを含む
     ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
  16.  前記アクセスタイミング調整ステップの後、
     前記アクセスタイミング調整ステップで調整した前記複数の外部メモリのそれぞれに対応した最適なアクセスタイミングを不揮発性メモリに書き込む最適値書き込みステップと、
     前記最適値書き込みステップの後、システム起動時に、前記最適なアクセスタイミングを読み出す最適値読み出しステップと、
     前記最適値読み出しステップの後、前記複数の個別メモリインターフェイスのそれぞれが個別に有するタイミング個別設定レジスタに、前記複数の外部メモリのそれぞれに対応した最適なアクセスタイミングを保持させる最適値保持ステップと、
     前記最適値保持ステップの後、前記複数の外部メモリのそれぞれへのアクセスタイミングとして、前記タイミング個別設定レジスタに保持された前記最適なアクセスタイミングを使用するレジスタ最適値使用ステップとを含む
     ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
  17.  前記最適値書き込みステップの後、所定回数を起動するごとに、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込む最適値再書き込みステップを含む
     ことを特徴とする請求項16に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
  18.  前記最適値書き込みステップの後、既に前記不揮発性メモリに書き込まれている前記最適なアクセスタイミングが有効か否かを示す予め前記不揮発性メモリに書き込まれたタイミング設定値フラグが、システム起動時に無効を示す場合は、新たにアクセスタイミングを調整し、当該アクセスタイミングの調整によって得られた最適なアクセスタイミングを前記不揮発性メモリに書き込む最適値再書き込みステップを含む
     ことを特徴とする請求項16に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
  19.  前記外部メモリ選択ステップの前に、
     前記複数の外部メモリの構成の変更をメモリ構成入力端子から外部信号として受信するメモリ構成認識ステップと、
     前記メモリ構成認識ステップで受信したメモリ構成の変更情報に従って、前記複数の外部メモリに割り当てられたアドレス空間を変更、追加または削除するメモリアドレス変更ステップとを含む
     ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
  20.  前記アクセスタイミング調整ステップの後、
     前記アクセスタイミングの調整によって得られたアクセスタイミングの最適範囲と、所定値とを比較する最適範囲比較ステップと、
     前記最適範囲比較ステップにおいて、前記アクセスタイミングの最適範囲が前記所定値以下であった場合、警告メッセージを出力する警告出力ステップとを含む
     ことを特徴とする請求項11に記載のメモリアクセスタイミング調整システムのメモリアクセスタイミング調整方法。
PCT/JP2009/000102 2008-01-29 2009-01-14 メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法 WO2009096141A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP09705607A EP2251791A4 (en) 2008-01-29 2009-01-14 MEMORY ACCESS TIMEOUT ADJUSTMENT DEVICE AND MEMORY ACCESS TIMEOUT ADJUSTMENT METHOD
US12/864,691 US20100312981A1 (en) 2008-01-29 2009-01-14 Memory access timing adjustment device and memory access timing adjustment method
CN2009801033692A CN101925885A (zh) 2008-01-29 2009-01-14 存储器存取定时调整装置以及存储器存取定时调整方法
JP2009551414A JPWO2009096141A1 (ja) 2008-01-29 2009-01-14 メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-018341 2008-01-29
JP2008018341 2008-01-29

Publications (1)

Publication Number Publication Date
WO2009096141A1 true WO2009096141A1 (ja) 2009-08-06

Family

ID=40912498

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/000102 WO2009096141A1 (ja) 2008-01-29 2009-01-14 メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法

Country Status (5)

Country Link
US (1) US20100312981A1 (ja)
EP (1) EP2251791A4 (ja)
JP (1) JPWO2009096141A1 (ja)
CN (1) CN101925885A (ja)
WO (1) WO2009096141A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019134240A (ja) * 2018-01-29 2019-08-08 キヤノン株式会社 画像処理装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201036455A (en) * 2009-03-20 2010-10-01 Tatung Co System and method for fully automatically aligning quality of image
WO2011106055A1 (en) * 2010-02-23 2011-09-01 Rambus Inc. Coordinating memory operations using memory-device generated reference signals
US8438523B2 (en) * 2010-05-31 2013-05-07 Panasonic Corporation Integrated circuit manufacturing method and semiconductor integrated circuit
JP5703979B2 (ja) 2011-06-07 2015-04-22 日産自動車株式会社 車両のパーキングロック制御装置
JP2013075651A (ja) 2011-06-07 2013-04-25 Nissan Motor Co Ltd 車両のパーキングロック制御装置
JP5703978B2 (ja) * 2011-06-07 2015-04-22 日産自動車株式会社 車両のパーキングロック制御装置
JP2015056105A (ja) * 2013-09-13 2015-03-23 株式会社東芝 不揮発性半導体記憶装置
JP2018136866A (ja) * 2017-02-23 2018-08-30 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232818A (ja) * 1997-01-23 1998-09-02 Hewlett Packard Co <Hp> メモリ・コントローラ
WO1999046687A1 (fr) * 1998-03-12 1999-09-16 Hitachi, Ltd. Emetteur de donnees
JPH11316619A (ja) 1998-05-01 1999-11-16 Nec Corp クロックスキュー調整回路
JP2001350668A (ja) 2000-06-06 2001-12-21 Nec Shizuoka Ltd メモリ読み出しタイミング調整回路
JP2002082830A (ja) * 2000-02-14 2002-03-22 Mitsubishi Electric Corp インターフェイス回路
JP2002229846A (ja) * 2001-02-07 2002-08-16 Pfu Ltd メモリバスシステム
JP2003050738A (ja) * 2001-08-03 2003-02-21 Elpida Memory Inc キャリブレーション方法及びメモリシステム
JP2003216479A (ja) 2002-01-21 2003-07-31 Nec Access Technica Ltd メモリリードタイミング調整回路およびメモリリードタイミング調整方法
JP2005141725A (ja) 2003-10-16 2005-06-02 Pioneer Plasma Display Corp メモリアクセス回路、そのメモリアクセス回路の動作方法およびそのメモリアクセス回路を用いる表示装置
JP2006338130A (ja) * 2005-05-31 2006-12-14 Fujitsu Ltd メモリ制御方法およびこれを実施する情報処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03171347A (ja) * 1989-11-30 1991-07-24 Mita Ind Co Ltd メモリチェック装置
JP3490131B2 (ja) * 1994-01-21 2004-01-26 株式会社ルネサステクノロジ データ転送制御方法、データプロセッサ及びデータ処理システム
JP2970529B2 (ja) * 1996-05-08 1999-11-02 富士ゼロックス株式会社 画像処理装置
JP4153579B2 (ja) * 1998-01-22 2008-09-24 松下電器産業株式会社 メモリアクセス制御装置
JP2000339229A (ja) * 1999-05-31 2000-12-08 Mitsubishi Electric Corp メモリテスト回路
US6574154B2 (en) * 2000-09-12 2003-06-03 Hitachi, Ltd. Data transmitter
US20050135167A1 (en) * 2003-10-16 2005-06-23 Nec Plasma Display Corporation Memory access circuit for adjusting delay of internal clock signal used for memory control
US7330992B2 (en) * 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7305517B2 (en) * 2004-11-12 2007-12-04 International Business Machines Corporation Structure of sequencers that perform initial and periodic calibrations in a memory system
JP4955002B2 (ja) * 2006-08-04 2012-06-20 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
US7808807B2 (en) * 2008-02-26 2010-10-05 Ovonyx, Inc. Method and apparatus for accessing a multi-mode programmable resistance memory
US20100199060A1 (en) * 2009-02-04 2010-08-05 Panasonic Corporation Memory controller, nonvolatile memory module, access module, and nonvolatile memory system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232818A (ja) * 1997-01-23 1998-09-02 Hewlett Packard Co <Hp> メモリ・コントローラ
WO1999046687A1 (fr) * 1998-03-12 1999-09-16 Hitachi, Ltd. Emetteur de donnees
JPH11316619A (ja) 1998-05-01 1999-11-16 Nec Corp クロックスキュー調整回路
JP2002082830A (ja) * 2000-02-14 2002-03-22 Mitsubishi Electric Corp インターフェイス回路
JP2001350668A (ja) 2000-06-06 2001-12-21 Nec Shizuoka Ltd メモリ読み出しタイミング調整回路
JP2002229846A (ja) * 2001-02-07 2002-08-16 Pfu Ltd メモリバスシステム
JP2003050738A (ja) * 2001-08-03 2003-02-21 Elpida Memory Inc キャリブレーション方法及びメモリシステム
JP2003216479A (ja) 2002-01-21 2003-07-31 Nec Access Technica Ltd メモリリードタイミング調整回路およびメモリリードタイミング調整方法
JP2005141725A (ja) 2003-10-16 2005-06-02 Pioneer Plasma Display Corp メモリアクセス回路、そのメモリアクセス回路の動作方法およびそのメモリアクセス回路を用いる表示装置
JP2006338130A (ja) * 2005-05-31 2006-12-14 Fujitsu Ltd メモリ制御方法およびこれを実施する情報処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2251791A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019134240A (ja) * 2018-01-29 2019-08-08 キヤノン株式会社 画像処理装置
JP7130377B2 (ja) 2018-01-29 2022-09-05 キヤノン株式会社 画像処理装置

Also Published As

Publication number Publication date
CN101925885A (zh) 2010-12-22
EP2251791A4 (en) 2011-06-08
EP2251791A1 (en) 2010-11-17
US20100312981A1 (en) 2010-12-09
JPWO2009096141A1 (ja) 2011-05-26

Similar Documents

Publication Publication Date Title
WO2009096141A1 (ja) メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法
US10860258B2 (en) Control circuit, memory device including the same, and method
US10580476B2 (en) Simulating a single data rate (SDR) mode on a dual data rate (DDR) memory controller for calibrating DDR memory coarse alignment
CN109716435B (zh) 输入缓冲器中的偏移电压调整的设备
JP2016514329A (ja) 可変レイテンシーメモリ動作用装置および方法
JP7066556B2 (ja) メモリシステム
TW201835778A (zh) 提供用於動態隨機存取記憶體之註冊時脈驅動之命令及位址匯流排之單一資料速率模式或雙重資料速率模式
JP2011170516A (ja) メモリコントローラ、半導体記憶装置およびこれらを備えるメモリシステム
JP7576449B2 (ja) メモリシステム
KR100736675B1 (ko) 반도체 소자 테스트 장치
JP2006275616A (ja) 半導体装置及びスキュー調整方法
US20150146477A1 (en) Semiconductor device
US8291253B2 (en) Interface device, circuit module, circuit system, device for data communications and method for calculating a circuit module
US7733738B2 (en) Semiconductor memory device and a data write and read method thereof
US20090319744A1 (en) Digital Television, Memory Controller, and Method for Controlling Access of a Memory Device
JP2010160724A (ja) メモリ制御システム、メモリ制御方法、メモリ制御プログラム及び記録媒体
JP4711941B2 (ja) メモリーのスイッチモジュール制御装置及び関連方法
JPH11167530A (ja) 信号制御回路
JP6524618B2 (ja) 電子機器、制御方法およびプログラム
JP4914771B2 (ja) 半導体装置
JP2014016925A (ja) 情報処理システム、データ切替方法およびプログラム
JP2008152315A (ja) 信号処理回路
JP2012100058A (ja) 遅延回路、遅延制御装置、メモリ制御装置及び情報端末機器
US20110058432A1 (en) Semiconductor integrated circuit
JP2009015964A (ja) 半導体集積回路装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980103369.2

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09705607

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2009551414

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 12864691

Country of ref document: US

Ref document number: 2009705607

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE