WO2010137330A1 - 遅延調整装置、遅延調整方法 - Google Patents

遅延調整装置、遅延調整方法 Download PDF

Info

Publication number
WO2010137330A1
WO2010137330A1 PCT/JP2010/003568 JP2010003568W WO2010137330A1 WO 2010137330 A1 WO2010137330 A1 WO 2010137330A1 JP 2010003568 W JP2010003568 W JP 2010003568W WO 2010137330 A1 WO2010137330 A1 WO 2010137330A1
Authority
WO
WIPO (PCT)
Prior art keywords
delay
data
unit
signal
delay adjustment
Prior art date
Application number
PCT/JP2010/003568
Other languages
English (en)
French (fr)
Inventor
石野公一
中山武司
石井雅博
Original Assignee
パナソニック株式会社
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 パナソニック株式会社 filed Critical パナソニック株式会社
Priority to EP10780290A priority Critical patent/EP2437175A1/en
Priority to JP2011515902A priority patent/JPWO2010137330A1/ja
Priority to CN2010800023484A priority patent/CN102124451A/zh
Priority to US13/056,020 priority patent/US8363492B2/en
Publication of WO2010137330A1 publication Critical patent/WO2010137330A1/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 delay adjustment of a strobe signal that determines when to read a data signal.
  • the side that reads data is a strobe that defines the timing of reading the data signal on the data line. Read at the timing when the signal is accepted. More specifically, the reading side detects the rising edge of the strobe signal to read the data signal on the data line.
  • the SoC 1500 and the memory 1501 are connected by a data line and a strobe line. If the timing at which the data line is on the data line deviates from the rising edge of the strobe signal, the receiving side can not read the data correctly, so that the rising edge of the strobe signal may be slightly earlier or later. It is necessary to adjust the delay so that the data signal is at the midpoint of the timing when it is on the data line. That is, in FIG. 15, it is necessary to delay the strobe signal so that the rising edge of the strobe signal rises at the timing indicated by the delay amount E at the timing when the data signal is on the data line.
  • the delay amount refers to the time from when the data signal starts to get on the data line to when the strobe signal rises.
  • the strobe signal when the SoC 1500 outputs data by itself, the strobe signal may be raised at the midpoint of the timing of loading the data. This may be configured such that the SoC 1500 itself outputs the data signal at the same timing as the strobe signal, passes the delay element holding only the strobe signal a specified number of stages, and then outputs it to the memory 1201.
  • the memory 1501 has only a function of matching the output start timing and output period for outputting the data signal with the rising edge and the falling edge of the strobe signal for output. Therefore, the SoC 1500 needs to delay the strobe signal received from the memory 1501 by itself, and detects rising of the strobe signal delayed by itself to read data. Determining how much to delay this strobe signal and delaying the strobe signal by the determined amount is called delay adjustment.
  • Patent Document 1 discloses an apparatus that executes this delay adjustment at the time of system startup or at the timing when a system reset is performed.
  • the timing of the data signal and the strobe signal may be shifted due to aging or the like.
  • the operating temperature of the SoC varies according to the load state, and the operating timing changes due to the temperature characteristic, and the timing of the data signal and that of the strobe signal may deviate.
  • the deviation between the data signal and the strobe signal causes the system to not operate properly in the data communication because normal data transfer is not performed.
  • a delay adjustment device includes a strobe signal having an external memory, a data line carrying the data signal, and a strobe signal defining the timing of reading the data signal carried on the data line.
  • a delay adjustment device mounted on a device connected by a line and performing delay adjustment of a strobe signal, monitoring a memory bandwidth indicating a data transfer amount in communication between the external memory and the device, and sequentially
  • a memory bandwidth monitoring unit for outputting memory band information indicating the memory bandwidth, and a delay adjusting means for performing delay adjustment between the data signal and the strobe signal according to the memory bandwidth indicated by the memory band information And providing.
  • the delay adjustment device monitors the memory bandwidth used between the device and the memory even while the system is operating, and data is used when the memory bandwidth used is small. There will be less data transfer between the device performing the transfer and the memory.
  • the delay adjustment actually performs data transfer while delaying the strobe signal between the device performing data transfer and the memory in several stages, and determines the delay amount of the strobe signal according to the success or failure of the data transfer. Is done. For this reason, if data transfer is actually performed and the memory bandwidth is used at a certain level or more, data transfer for this delay adjustment can not be executed, but if the amount of use of the memory bandwidth is below a certain level, Data transfer can be performed for delay adjustment. Therefore, since the delay adjustment can be performed even while the system is operating, the delay adjustment corresponding to the operating environment which changes according to the heat generation due to the operation of the system can be performed. The deviation of the strobe signal can be suppressed more than in the prior art.
  • FIG. 1 is a functional block diagram showing a functional configuration of a semiconductor device 1 according to a first embodiment.
  • FIG. 5 is a functional block diagram showing a functional configuration of a test access unit according to the first embodiment.
  • FIG. 5 is a functional block diagram showing a functional configuration of a delay amount holding unit according to the first embodiment.
  • FIG. 2 is a functional block diagram showing a functional configuration of a delay element unit according to the first embodiment.
  • FIG. 2 is a block diagram showing a circuit configuration of a delay element unit according to the first embodiment.
  • It is a data conceptual diagram showing an example of data composition of a judgment result table used at the time of test access.
  • 7 is a flowchart showing an operation of delay adjustment of the delay adjusting unit according to the first embodiment.
  • FIG. 16 is a functional block diagram showing a functional configuration of a semiconductor device according to a second embodiment.
  • FIG. 13 is a functional block diagram showing a functional configuration of a test access unit according to a second embodiment.
  • 10 is a flowchart showing an operation of delay adjustment of the delay adjusting unit according to the second embodiment.
  • It is a functional block diagram showing a modification of a semiconductor device.
  • It is a functional block diagram of the test access part concerning the modification of a semiconductor device.
  • FIG. 1 is a functional block diagram showing a functional configuration of the semiconductor device 1.
  • the semiconductor device 1 is, for example, a device used in a consumer device such as a digital broadcast receiver, a mobile phone, a BD (Blu-ray Disc) playback device, a BD recording device, or an industrial device.
  • the semiconductor device 1 is configured to include a semiconductor integrated circuit 10 and a memory circuit 190.
  • the semiconductor integrated circuit 10 is an electronic circuit such as a SoC, which is a semiconductor that realizes various functions such as video decoding and data transfer.
  • the semiconductor integrated circuit 10 has a function of performing transmission and reception of data with the memory circuit 190.
  • the semiconductor integrated circuit 10 includes a delay adjustment unit 100, a first transfer master unit 160, an arbitration unit 170, and a memory data transmission / reception unit 180.
  • the delay adjustment unit 100 has a function of performing delay adjustment between data signals and strobe signals in data transmission and reception performed between the semiconductor integrated circuit 10 and the memory circuit 190.
  • the delay adjustment unit 100 includes an access destination conversion unit 110, a data saving unit 120, a delay element unit 130, a delay amount holding unit 140, and a test access unit 150.
  • the delay adjustment unit 100 also has a function of performing delay adjustment of control signals and address signals as well as data signals and strobe signals.
  • the access destination conversion unit 110 determines an area to which test access data is to be written at the time of test access based on an instruction from the test access unit 150, and saves data from the test access unit 150.
  • the data saving unit 120 has a function of saving data in an area determined when a signal indicating “1” is received.
  • the access destination conversion unit 110 has a function of storing in the conversion table 111 the address at which the data saved at the time of executing the test access is stored, and saved at the data saving unit 120 at the end of the test access. It also has the function of acquiring data and restoring it to the address originally stored.
  • the access destination conversion unit 110 transfers the signal transferred from the memory data transmission / reception unit 180 to the delay element unit 130 as it is or at the timing when test access is not performed.
  • the received signal is transferred to the memory data transmission / reception unit 180 as it is.
  • Data save unit 120 is a memory used as a save destination of data in a memory that holds data in data communication in semiconductor integrated circuit 10 at the timing when delay adjustment unit 100 performs delay adjustment, and test access It has a function of holding the save data output from the access destination conversion unit 110 at the time of execution. It also has a function of outputting the stored save data in accordance with an instruction from the access destination conversion unit 110.
  • the delay element unit 130 has a function of transmitting the received data signal as it is and delaying and outputting a strobe signal defining the timing of reading the data signal by the delay amount designated by the delay amount holding unit 140. .
  • the delay element unit 130 When writing data to the memory circuit 190, the delay element unit 130 outputs the first data signal 133 on the data line and outputs the delayed first strobe signal 134 on the strobe line.
  • the delay element unit 130 delays the first strobe signal 134 on the strobe line output from the memory circuit and detects the rising edge of the delayed first strobe signal 134.
  • the first data signal 133 on the data line is read.
  • the delay element unit 130 also has a function of delaying other signals, that is, a control signal, an address signal, a data signal, etc., as necessary. Details of the delay element unit 130 will be described later.
  • the delay amount holding unit 140 has a function of holding a delay amount indicating how much the strobe signal is delayed, and notifying the delay element unit 130 of the delay amount.
  • the delay amount holding unit 140 also has a function of holding a delay amount indicating how much the signal other than the strobe signal is to be delayed, and notifying the delay element unit 130 of the delay amount.
  • Each delay amount is set from the test access unit 150. Details of the delay amount holding unit 140 will be described later.
  • the test access unit 150 has a function of adjusting the delay between the data signal and the strobe signal when the condition is satisfied.
  • the test access unit 150 determines the amount of delay, performs test access to the memory circuit 190, and executes delay adjustment depending on the success or failure of data transfer.
  • the test access unit 150 writes the data to the memory circuit 190 five times with the current delay amount and seven delay amounts in 10 ps units before and after it, reads the written data again, and reads the data before writing Determine if the data match. Then, the test access unit 150 calculates the average value of the delay amounts for which all five test accesses have succeeded, and sets the calculated delay amount in the delay amount holding unit 140 as the current delay amount. This test access is performed to calculate the delay amount, and setting the calculated delay amount as the delay amount to be used at present is called delay adjustment. Further details of the test access unit 150 will be described later.
  • the first transfer master unit 160 is a CPU (Central Processing Unit), a DMAC (Direct Memory Access Controller), or the like, and has a function of executing data transfer with the memory 190.
  • the first transfer master unit 160 executes memory access to the memory circuit 190 using the arbitration unit 170, the second control line signal 161, the second address signal 162, the second data signal 163, and the like.
  • the second control line signal 161 is a signal for specifying the type (read / write) of data access.
  • the second address signal 162 is a signal for specifying an access destination address of the memory circuit 190.
  • the second data signal 163 is a signal of data actually written or read.
  • control line signal specifies the type of memory access
  • address signal specifies the address of the memory circuit 190
  • data signal indicates a signal of data to be actually transferred. Suppose that there is.
  • the arbitration unit 170 has a function of selecting one memory access request according to a predetermined priority when there are a plurality of memory access requests. For example, when the transfer masters (not shown) other than the first transfer master unit 160 also execute data communication with the memory circuit 190, the transfer master (not shown) is previously connected between the first transfer master unit 160 and the other transfer masters. It has a function to set priority and pass higher priority access requests. In the present embodiment, the arbitration unit 170 receives an access from the first transfer master unit 160 and an access from the test access unit 150, and gives priority to the access from the test access unit 150.
  • the memory data transmission / reception unit 180 is a first control line signal used when the semiconductor integrated circuit 10 performs memory access to the memory circuit 190 based on the fourth control line signal 171, the fourth address signal 172, and the fourth data signal 173. 131, first address signal 132, first data signal 133, fifth control line signal 181 which is a signal before delay processing of first strobe signal 134, fifth address signal 182, fifth data signal 183, second strobe signal 184 is generated, and input / output is performed with the delay adjustment unit 100.
  • the memory circuit 190 holds data in response to an external request such as DDR3-SDRAM (Double-Data-Rate3 Synchronous Dynamic Random Access Memory), or outputs data held in response to an external request.
  • An electronic circuit made of a semiconductor having the following functions.
  • the memory circuit 190 is connected to the semiconductor integrated circuit 10 via the first control line signal 131, the first address signal 132, the first data signal 133, and the first strobe signal 134.
  • the memory circuit 190 has a function of holding data transferred from the semiconductor integrated circuit 10 in accordance with the first control line signal 131 output from the semiconductor integrated circuit 10.
  • the memory circuit 190 also has a function of outputting data designated to the semiconductor integrated circuit 10 to the first data signal 133 in accordance with the first control line signal 131 output from the semiconductor integrated circuit.
  • FIG. 2 is a functional block diagram showing a detailed configuration example of the test access unit 150. As shown in FIG.
  • the test access unit 150 includes a test access issue unit 201, a test state holding unit 202, a test area designation unit 203, a test flag holding unit 204, a save flag holding unit 205, and a test start determination.
  • the configuration includes a unit 210, a delay amount calculation unit 220, and an OK / NG determination unit 230.
  • the test access issuing unit 201 has a function of issuing a test access at a timing when the signal indicating the operation state from the test state holding unit 202 changes from “0” to “1”.
  • the test access issuing unit 201 designates reading / writing of data via the control line signal 151, designates an address of an access destination of the memory circuit 190 via the address signal 152, and determines writing via the data signal 153. Transfer of the original data and transfer of the data read from the memory circuit 190 are performed.
  • the test access issuance unit 201 issues an access request for writing data held by the judgment source data holding unit 231 of the OK / NG judgment unit 230.
  • test access issuance unit 201 When the access completion for the access request is received, the test access issuance unit 201 next issues an access request for reading the written data again, and the data transferred from the memory circuit 190 in response to the access request is OK. Transfer to the / NG determination unit 230.
  • the determination source data to be written is output via the data signal, and the data obtained by reading the determination source data written from the memory circuit 190 is received.
  • the test state holding unit 202 has a function of holding information indicating the test access state of the semiconductor integrated circuit 10. To that state, A state of reading out the determination source data stored in the determination source data holding unit 100010 used in the test state and the OK / NG unit 10001 ⁇ A state in which test access is performed with changing the test state and the delay amount, In the test state and in the state of writing to the memory circuit 11 for the test, there is a state in which the memory access from the present system such as the first transfer master unit 101 occurs.
  • the value of the test state holding unit 202 can be set directly by the system user, and can also be set by a test start request signal from the test start determination unit 210 or the like.
  • the test start determination unit 210 outputs a signal indicating the start of a test, it is assumed that the information indicating that it is in the test state is held, and if the information is held, the test access issuance unit 201 , Issue an access request for test access.
  • the test area designating unit 203 has a function of designating in which area of the memory held by the semiconductor integrated circuit 10 the judgment source data read from the memory circuit 190 for delay adjustment is to be recorded, and the address is tested It has a function of notifying the access issuing unit 201.
  • the test flag holding unit 204 has a function of holding a flag indicating whether test access is being performed, and has a function of notifying the test access issuing unit 201 of the flag.
  • the information held by the test flag holding unit 204 is 1-bit data, and indicates “0” in the normal operation state, and “1” indicates the test access state.
  • the save flag holding unit 205 has a function of holding a flag indicating whether data should be saved in the data save unit 120 and has a function of notifying the delay amount holding unit 140 of the flag.
  • the data held by the save flag holding unit 205 is “1” indicating that the data should be saved in the data save unit 120, In other cases, it is "0".
  • the test start determination unit 210 has a function of determining whether it is time to execute a test access, and when it is determined that it is time to execute a test access, the test state holding unit 202 is notified of that. Have a function to Specifically, the test start determination unit 210 includes a test condition setting unit 211, a memory width monitoring unit 212, and a determination unit 213.
  • the test condition setting unit 211 has a function of setting and holding a condition for determining a timing for executing a test access.
  • the setting can be performed, for example, by setting a numerical value from a PC connected to the semiconductor device 1 or by using a dip switch provided in the semiconductor device 1 or the like.
  • the test condition setting unit 211 holds a condition that the memory bandwidth being used is equal to or less than a predetermined threshold as a condition for starting test access, and has a function of notifying the determination unit 213 of the condition.
  • the memory width monitoring unit 212 has a function of monitoring the first data signal 133 to monitor the used memory bandwidth, and the judging unit 213 periodically (for example, every one minute) the used memory bandwidth. Have a function to notify).
  • the determination unit 213 has a function of determining whether the used memory bandwidth notified from the memory width monitoring unit 212 satisfies the condition notified from the test condition setting unit 211. If the determination is affirmative, that is, if it is determined that the condition is satisfied, the determination unit 213 has a function of notifying the test state holding unit 202 of transition to the test access state.
  • the delay amount calculation unit 220 has a function of calculating the latest delay amount from the result obtained by performing test access.
  • the delay amount calculation unit 220 includes a delay element designation unit 221, a delay tap amount holding unit 222, a tap number holding unit 223, a test delay amount calculation unit 224, a test completion determination unit 225, and an optimum value setting unit 226. It is comprised including.
  • the delay element designation unit 221 has a function of outputting a signal for designating which delay amount holding unit of the delay amount holding unit 140 is to be used.
  • the delay tap amount holding unit 222 has a function of holding a delay amount for one delay of the delay amount.
  • the delay tap amount holder 222 holds a delay amount of 10 ps. That is, the delay adjustment is performed in units of 10 ps.
  • the tap number holding unit 223 has a function of holding the number of times that specifies the number of times to shift the delay amount when performing test access. For example, when the number-of-taps holding unit 223 holds 3 times, the test access is performed with the current delay amount and the delay amount shifted by the delay amount held by the delay tap amount holding unit 222 before and after that. It means that test access is performed. In the present embodiment, it is assumed that the number-of-taps holding unit 223 holds the number of taps of seven.
  • the test access is thus "current delay amount -30 ps,” “current delay amount -20 ps,” “current delay amount -10 ps,” The test access will be executed with a total of seven delay amounts: current delay amount, current delay amount + 10 ps, current delay amount + 20 ps, and current delay amount + 30 ps.
  • the test delay amount calculation unit 224 has a function of determining how much the delay amount is to be changed from the current delay amount, and has a function of notifying the delay amount holding unit 140 of the delay amount used in test access. .
  • the delay amount is determined based on the delay amount held by the delay amount holding unit 222 and the number of taps held by the number-of-taps holding unit 223, and is determined as the delay amount of the unexecuted test access.
  • the test completion determination unit 225 determines whether or not the test access is completed depending on whether or not the test access has been performed a predetermined number of times (five times in the present embodiment) the number of times indicated by the tap number holding unit 223. If the test access is completed, the optimum value setting unit 226 is notified of the completion of the test access.
  • the optimum value setting unit 226 acquires the determination result table 234 held by the OK / NG determination unit 230. Then, the optimum value setting unit 226 has a function of calculating the optimum delay amount from the determination result table 234 and setting the delay amount in the delay amount holding unit 140.
  • the OK / NG determination unit 230 has a function of determining the success or failure of the test access performed by the test access unit 150, holds information indicating the determination result, and notifies the delay amount calculation unit 220 of the information. Have.
  • the OK / NG determination unit 230 includes a determination source data holding unit 231, a test read data holding unit 232, a data comparison unit 233, and a determination result table 234.
  • the determination source data holding unit 231 has a function of holding the determination source data to be written in the memory circuit 190 when the test access is performed.
  • the determination source data may be any data having a specific pattern which can be written to the memory circuit 190, for example, data such as 0x5a5a5a5a, 4 bits or 8 bits. It may be numerical data of
  • the determination source data holding unit 231 also has a function of notifying the data comparison unit 233 of the held determination source data.
  • the determination source data is set in advance.
  • the test read data holding unit 232 has a function of holding data obtained by reading out the judgment source data once written in the memory circuit 190 by test access, and holds the data transferred from the test access issuing unit 201. .
  • the test read data holding unit 232 holds data read at each test access (hereinafter also referred to as read determination source data), and the read judgment held every time the held data is updated It has a function of outputting the original data to the data comparison unit 233.
  • the data comparison unit 233 compares the determination source data output from the determination source data storage unit 231 with the reading determination source data output from the test read data storage unit 232, and determines whether they match. If they match, it means that the data communication has succeeded with the delay amount of the current strobe signal. If the two do not match, this means that the data communication has failed, and that the current delay amount of the strobe signal means that the data communication is disturbed.
  • the data comparison unit 233 registers, in the determination result table 234, information indicating that the data communication is successful in association with the delay amount of the test access at that time. If they do not match, information indicating that the data communication has failed is registered in the determination result table 234 in association with the delay amount of the test access at that time.
  • the determination result table 234 is information indicating success or failure of test access which is referred to when the optimum value setting unit 226 calculates the optimum delay amount.
  • FIG. 6 shows a data conceptual diagram as an example of the configuration of the determination result table 234.
  • the determination result table 234 is information indicating success or failure of the test access made according to each delay amount, and information in which the delay amount 601 of the strobe signal is associated with the OK / NG determination 602. It is.
  • the test access is performed five times for each delay amount, and the success or failure of each test access is registered.
  • the case where the data transfer is successful is indicated by “o”
  • the case where the data transfer is unsuccessful is indicated by “x”.
  • FIG. 6 In the case of “current delay amount ⁇ 10 ps”, that is, when the rise of the strobe signal is advanced by 10 ps more than the current case, FIG. In the case of the determination result table 234 shown in FIG. 6, the average value of "current”, “current + 10 ps”, “current + 20 ps”, that is, “current + 10 ps”, that is, current delay, all test accesses succeeded.
  • the delay amount holding unit 140 holds a new delay amount whose strobe rising is delayed by 10 ps more than the amount.
  • FIG. 3 is a functional block diagram showing a functional configuration of the delay amount holding unit 140. As shown in FIG.
  • the delay amount holding unit 140 holds the delay amount holding unit 301 for the current control line signal bit 0, the delay amount holding unit 302 for the current control line signal bit 1, and holds the delay amount for the current address bit 0.
  • Unit 303 delay amount holding unit 304 for current address bit 1, delay amount holding unit 305 for current data signal bit 0, delay amount holding unit 306 for current data signal bit 1, delay amount holding unit for current strobe signal 307, test control line signal bit 0 delay amount holding unit 311, test control line signal bit 1 delay amount holding unit 312, test address bit 0 delay amount holding unit 313, test address bit Delay amount holding unit 314, test data signal bit 0 delay amount holding unit 315, and test data signal bit 1 delay amount holding unit 316;
  • a test strobe signal delay amount holding unit 317 configured to include a selector 321 to 327.
  • the delay amount holding unit 301 for the current control line signal bit 0 has a function of holding a delay amount for delaying the signal on the bit 0 signal line of the control line signal currently used, and the delay amount is used as a selector It has a function to output to 321. Further, the delay amount held by the delay amount holding unit 301 for the current control line signal bit 0 is updated to the latest one by the test access unit 150 at the end of the test access.
  • the delay amount holding unit 311 for test control line signal bit 0 has a function of holding a delay amount for delaying the signal on the signal line of bit 0 of the control line signal used at the time of test access, and the delay amount Is output to the selector 321.
  • the delay amount held by the delay amount holding unit 311 for test control line signal bit 0 is updated by the test access unit 150 each time the delay amount is changed when test access is performed.
  • the selector 321 is in the test state in the case where the signal indicating which delay element is output from the delay element designation unit 221 according to the instruction from the test access unit 150 is a signal indicating that the control line signal bit 0 is The signal output from the delay amount holding unit 301 for the current control line signal bit 0 based on the signal 147 indicating whether or not it is in the test state output from the holding unit 202, and for the test control line signal bit 0 It has a function of selecting any one of the signals output from the delay amount holding unit 311 and outputting it to the delay element unit 130.
  • the delay amount holding unit 311 for test control line signal bit 0 holds In other cases, the delay amount holding unit 301 for the current control line signal bit 0 outputs the delay amount held.
  • the other current delay amount holding units (302 to 307), test delay amount holding units (312 to 317), and selectors (322 to 327) are different only in the line to be controlled and the delay amount, respectively. Since the delay amount of the signal indicated by the name of the functional unit is output, detailed description will be omitted.
  • FIG. 4 is a functional block diagram showing a functional configuration of the delay element unit 130. As shown in FIG.
  • the delay element unit 130 includes a delay element unit 401 for control line signal bit 0, a delay element unit 402 for control line signal bit 1, a delay element unit 403 for address signal bit 0, and an address signal.
  • the bit 1 delay element unit 404, the data signal bit 0 delay element unit 405, the data signal bit 1 delay element unit 406, and the strobe signal delay element unit 407 are configured.
  • the delay element unit 401 for control line signal bit 0 has a function to delay the 0th bit signal of the control signal.
  • the control line signal bit 1 delay element unit 402 has a function for delaying the first bit of the control signal.
  • the address signal bit 0 delay element unit 403 has a function to delay the 0th bit signal of the address signal.
  • the address signal bit 1 delay element unit 404 has a function for delaying the first bit signal of the address signal.
  • the data signal bit 0 delay element unit 405 has a function to delay the 0th bit signal of the data signal.
  • the delay element unit 406 for data signal bit 1 has a function to delay the signal of the first bit of the data signal.
  • the strobe signal delay element unit 407 has a function of delaying the strobe signal.
  • Each delay element unit delays the input signal by the delay amount (331 to 337) output from the corresponding delay amount holding unit in the delay amount holding unit 140 and outputs the delayed signal.
  • the delay adjustment is performed between the data signal and the strobe signal, and the configuration that becomes important in this case is the strobe signal delay element unit 407.
  • the delay element unit 401 for line signal bit 0 the delay element unit 402 for control line signal bit 1
  • the delay element unit 403 for address signal bit 0 the delay element unit 403 for address signal bit 1
  • the delay element unit 404 for address signal bit 1 the delay element unit 404 for address signal bit 1
  • FIG. 5 is a block diagram showing a detailed circuit configuration of the strobe signal delay element portion 407. As shown in FIG.
  • the strobe signal delay element portion 407 is configured to delay the strobe signal in the case of writing data in the memory circuit 190 from the semiconductor integrated circuit side and in the case of reading data from the memory circuit 190.
  • the strobe signal delay element unit 407 includes transmission delay element groups (501a to 501n), reception delay element groups (502a to 502n), a selector 503, and a selector 504. It consists of Note that the delay elements here may be any number of delay elements necessary to shift the delay amount, for example, the time during which the data signal is on the data line is divided by the delay element amount of the delay elements. There may be more than a few delay elements, where n is any number needed.
  • Each of the delay elements (501a to 501n, 502a to 502n) has a function of delaying the input signal by 10 ps, and is constituted by, for example, a latch circuit or the like.
  • the selector 503 has a function of selecting and outputting the output signal of the delay element designated by the delay element designation unit of the delay amount holding unit 140.
  • the selector 503 outputs a strobe signal from the semiconductor integrated circuit 10 side to the memory circuit 190 side.
  • the selector 504 has a function of selecting and outputting the output signal of the delay element designated by the delay element designation unit of the delay amount holding unit 140.
  • the selector 504 outputs a strobe signal from the memory circuit 190 side to the semiconductor integrated circuit 10 side.
  • FIG. 7 is a flowchart showing the delay adjustment operation of the delay adjustment unit 100.
  • the semiconductor device 10 is initialized upon power-on or system reset (step S701).
  • the delay adjustment unit 100 executes delay adjustment at system startup (step S702). This may be set as a predetermined initial value, or may be delay adjustment performed by executing test access processing described later.
  • the memory width monitoring unit 212 of the test access unit 150 detects a memory bandwidth that is always used, and notifies the determination unit 213 of it. Then, the determination unit 213 periodically (eg, every one minute) determines whether the memory bandwidth is less than a threshold value predetermined in the test condition setting unit 211 (step S703).
  • step S703 If the memory bandwidth being used is equal to or greater than the predetermined threshold (NO in step S703), the process returns to step S703 without doing anything.
  • the access destination conversion unit 110 uses the data save unit 120 for the information held by the save flag holding unit 205.
  • the data held in the area of the memory used for test access is saved in the data saving unit 120 (step S704).
  • the test state holding unit 202 holds information indicating that it is in the test state.
  • test access unit 150 of the delay adjustment unit 100 After saving data as necessary, the test access unit 150 of the delay adjustment unit 100 performs a test for delay adjustment when the test state holding unit 202 holds information indicating that it is in a test state. An access process is performed (step S705). The details of the test access process will be described later with reference to FIG.
  • the delay amount calculation unit 220 of the test access unit 150 sets the calculated delay amount as the current delay amount in the delay amount holding unit 140 using the result obtained by performing the test access process (step S706).
  • the access destination conversion unit 110 uses the conversion table 111 to store the data saved for the test access process in the data save unit 120 back to the address originally stored (step S707), returns to step S703.
  • the delay adjustment is performed when the used memory bandwidth is low, and the delay adjustment can be performed even while the system is operating, so that the system operates. It is possible to correct the deviation between the data signal and the strobe signal that may occur due to temperature change, aging, and the like based on this.
  • FIG. 8 is a flowchart showing a detailed operation of the test access unit 150 in the test access process in step S705 of the flowchart shown in FIG.
  • the test access issuance unit 201 acquires determination source data from the OK / NG determination unit 230 (step S801).
  • the delay amount calculation unit 210 determines how much the delay amount is to be shifted from the current delay amount, and sets the delay amount used for test access in the delay amount holding unit 140 (step S802). Specifically, the delay element designation unit 221 outputs information indicating a strobe signal, the test state holding unit 202 outputs information indicating a test state, and the delay amount calculation unit 220 calculates the delay amount at that time. By outputting, the delay amount output from the delay amount calculating unit 220 is set in the test strobe signal delay amount holding unit of the delay amount holding unit 140, the delay amount is selected by the selector 327, and the signal 337 is obtained. , And is output to the delay element unit 130. Thus, the strobe signal delay element 407 of the delay element unit 130 outputs a strobe signal obtained by delaying the signal input by the delay amount.
  • the test access issuance unit 201 issues, to the arbitration unit 170, an access request for writing the acquired judgment source data in the memory circuit 190.
  • the arbitration unit 170 receives an access request indicating test access, the arbitration unit 170 preferentially transmits the access request to the memory data transmission / reception unit 180. Then, an access for writing determination source data to memory circuit 190 is performed.
  • the test access issue unit 201 When receiving a signal indicating the write completion from the memory circuit 190, the test access issue unit 201 next issues an access request for reading out the determination source data that should have been written to the memory circuit 190. Then, the read determination source data output from the memory circuit 190 in response to the access request is written to the test reader holding unit 232 via the test access issuing unit 201 (step S803).
  • the data comparison unit 233 makes a test access based on whether the determination source data output from the determination source data storage unit 231 matches the read determination source data output from the test read data storage unit 232. Determine the success or failure of Then, the data comparison unit 233 registers the success or failure of the test access in the determination result table 234 (step S804).
  • the delay amount calculation unit 220 determines whether or not the test access has been performed a predetermined number of times (here, five times) as the current delay amount of the test access (step S805). The determination is performed by counting the number of times the test access has been performed by itself, holding the number, and determining whether the value is a predetermined number.
  • test completion determination unit 225 determines that the delay amount has been changed by the number of taps held by the number-of-taps holding unit 223, the test completion determination unit 225 determines in advance if it has been executed (YES in step S805). It is determined whether test access is performed with the total delay amount (step S806).
  • step S806 If not (NO at step S806), the process returns to step S802. If the test has been executed (YES in step S806), the test completion determination unit 225 notifies the optimum value setting unit 226 to that effect. In response to the notification, the optimum value setting unit 226 acquires the determination result table 234 from the OK / NG determination unit 230.
  • the optimum value setting unit 226 searches, for each delay amount, among the acquired determination result tables 234, a delay amount for which all the successes or failures of the test access are successful. Then, for delay amounts for which all successes or failures in test access are successful, the average value of the delay amounts is calculated as the optimum delay amount. Then, the calculated delay amount is set in the current strobe signal delay amount holding unit of the delay amount holding unit 140 (step S 807), and the test access processing is ended.
  • the delay adjustment unit 100 can correct the deviation between the data signal and the strobe signal by performing the delay adjustment even during the operation of the system except for the initialization timing and the reset timing.
  • Second Embodiment In the first embodiment, the method of performing the delay adjustment when the used memory bandwidth is below the predetermined threshold has been described. However, if data transfer is continued between semiconductor integrated circuit 10 and memory circuit 190 at a predetermined threshold value or more, delay adjustment may not be performed in semiconductor device 1 shown in the first embodiment. Do.
  • FIG. 9 is a functional block diagram showing a functional configuration of the semiconductor device 2 according to the second embodiment
  • FIG. 10 is a functional block diagram showing a functional configuration of a test access unit 950 according to the second embodiment.
  • the semiconductor device 20 according to the second embodiment includes a delay adjustment unit 900.
  • the difference between the delay adjustment unit 900 and the delay adjustment unit 100 described in the first embodiment is that the test access unit 950 is provided.
  • the difference between the test access unit 950 and the test access unit 150 is the test start determination A test start determination unit 1210 is provided instead of the unit 210.
  • the difference between the test access unit 950 is that, in the first embodiment, the delay adjustment is performed at the timing when the memory bandwidth being used is less than the predetermined threshold, while the semiconductor device 2 is activated. The delay adjustment is performed each time a predetermined time has elapsed from
  • the test start determination unit 1210 includes a test condition setting unit 1211, an elapsed time measurement unit 1212, and a test start determination unit 1213.
  • the test condition setting unit 1211 holds a condition for executing test access, and has a function of notifying the determination unit 213 of the condition.
  • the condition is that a predetermined time has elapsed since the delay adjustment was performed last time.
  • the elapsed time measurement unit 1212 is a timer that measures the elapsed time, and has a function of notifying the determination unit 213 of the counted time.
  • the elapsed time measurement unit 1212 resets the timer each time a test access is performed.
  • the test start determination unit 1213 has a function of determining whether the time notified from the test condition setting unit 1211 has elapsed based on the time notified from the elapsed time measurement unit 1212. When the time notified from the test condition setting unit 1211 has passed, the test start determination unit 1213 changes the operation state held by the test state holding unit 202 from the normal state to the test state.
  • FIG. 11 is a flowchart showing the operation of the semiconductor device 2 according to the second embodiment.
  • the same operations as those in the flowchart shown in FIG. 7 are denoted by the same step numbers, and the description thereof will be omitted.
  • the difference in the operation in the second embodiment is the operation in step S1103 of the flowchart shown in FIG. That is, the condition determination for test access start, that is, delay adjustment start is different.
  • the test start determination unit 1013 of the test start determination unit 1010 determines whether the time set in the test condition setting unit 1011 has elapsed based on the time notified from the elapsed time measurement unit 1012 (step S1103). . Then, if the predetermined time has elapsed (YES in step S1103), processing for delay adjustment, that is, test access processing is started (processing in step S704 and subsequent steps).
  • the delay adjustment unit 900 can forcibly execute the delay adjustment every time a predetermined time elapses from the activation of the semiconductor device 2, endless data can be transmitted between the semiconductor integrated circuit 20 and the memory circuit 190. Even if the transfer is being performed and the test access can not be performed, the deviation between the data signal and the strobe signal can be adjusted. Also, since the data stored in the memory area used for test access is temporarily saved in data saving unit 120, the data originally present there can be restored after test access, and there is no problem with system operation. It can be configured not to ⁇ Supplement> In the above embodiment, although the implementation method of the present invention has been described, it is a matter of course that the embodiment of the present invention is not limited to this.
  • the delay adjustment unit may be configured to perform delay adjustment in both cases. That is, the memory bandwidth may be monitored, and the delay adjustment may be performed at a timing at which the memory bandwidth falls below a predetermined threshold value, and the delay adjustment may be forcibly performed each time a predetermined time elapses.
  • the test access is always performed when the used memory bandwidth is less than the predetermined threshold value, but this is not always performed each time It is good also as composition.
  • the configuration may be such that the test access is not performed while the predetermined time has not elapsed since the delay adjustment was performed last time. Thereby, the processing load of the semiconductor integrated circuit 10 can be reduced.
  • the first transfer master unit 160 simultaneously outputs the data signal and the strobe signal, and the strobe signal delay element unit delays the strobe signal and outputs it to the memory circuit 190. The configuration for causing the memory circuit 190 to read data is shown.
  • the first transfer master unit 160 when the first transfer master unit 160 is on the data output side, the first transfer master unit outputs the data signal without arranging the delay element for output in the strobe signal delay element unit.
  • the strobe signal may be output while being delayed by a predetermined time.
  • test access for a total of seven delay amounts is performed in 10 ps units up to 30 ps before and after the current delay amount to determine success or failure of data transfer.
  • test access was performed five times for each delay amount to determine success or failure of data transfer, but the number of times is not limited to five, for example, once, four times, or seven times, etc. It may be If the number is small, the time for determining the delay amount can be shortened, and if the number is large, the reliability of the determined delay amount can be increased.
  • the delay amount is shifted in 10 ps units to determine the success or failure of data transfer, but it may be 5 ps or 20 ps units in accordance with the delay amount of the delay element.
  • each of the delay amounts was selected for all five successful data transfers, and the average was taken, among the five delay amounts for each test access, It may be configured to take an average value of each delay amount obtained by multiplying the ratio of how many times it succeeded.
  • a deviation between the data signal and the strobe signal can occur depending on the operating state of the system, in particular, the operating temperature. Therefore, a configuration for determining the delay amount according to the temperature is disclosed herein. In order to realize the configuration, an optimal delay amount according to the operating temperature of the system is measured in advance by simulation of the actual device. The delay adjustment unit stores the optimum value of the delay amount obtained by the simulation as delay information classified by temperature.
  • the configuration of the semiconductor device including the delay adjustment unit is shown in FIG.
  • the delay adjustment unit 1200 shown in FIG. 12 further includes a temperature sensor 1201 in addition to the components shown in the first embodiment.
  • the temperature sensor 1201 has a function of measuring the ambient temperature, and has a function of notifying the test access unit 150 periodically (for example, every 30 seconds) of the measured temperature.
  • the delay amount calculation unit 1220 of the test access unit 150 further holds delay information classified by temperature 1301 in addition to the components shown in the delay amount calculation unit 220 of the first embodiment.
  • FIG. 14 shows a configuration example of the delay information classified by temperature 1301.
  • FIG. 14 is a data conceptual diagram showing one configuration example of the delay information classified by temperature 1301. As shown in FIG.
  • the delay information classified by temperature is information indicating the temperature 1401 measured by the temperature sensor 1201 and the amount of delay corresponding to the total memory bandwidth 1402 used by the system at that time.
  • the values indicated by the delay amounts shown in FIG. 14 are merely examples, and it goes without saying that they differ depending on the system, and an optimum value according to the system to be mounted is defined. The said value is acquired by the operation simulation etc. of the semiconductor device 3 before shipment.
  • the temperature is divided into less than 40 degrees and the case of 40 degrees or more, and the bandwidth is divided into the cases of 1200 Mbps and 2400 Mbps.
  • the temperature and the bandwidth may be further subdivided, and the memory bandwidth is not a fixed value but a predetermined width, for example, 1000 Mbps to It may be defined in the form of 2000 Mbps or the like.
  • the test access unit 1250 determines the basic delay amount based on the temperature notified by the temperature sensor 1201 at the timing of executing the test access.
  • this basic delay amount is shifted by 10 ps units by the number indicated by the number of taps, and the success or failure of data transfer is measured five times each. Then, an average value of delay amounts for which data transfer has been successful five times is set as a new delay amount.
  • the configuration may be held by the delay adjustment unit 900 described in the second embodiment. Also, the delay amount indicated in the temperature-classified delay information 1301 may be used as the delay amount set at the time of system startup and at the time of reset.
  • the test access may be triggered when the temperature indicated by the temperature sensor 1201 exceeds a predetermined temperature (for example, when it exceeds 40 ° C.). Since a deviation between the data signal and the strobe signal may occur depending on the operating temperature of the semiconductor integrated circuit 10, the situation can be coped with.
  • a predetermined temperature for example, when it exceeds 40 ° C.
  • the usefulness of the temperature-based delay information is further enhanced.
  • the selectors 503 and 504 select and output the output signal from one delay element according to the delay amount instructed from the delay amount holding unit 140. did. This may be configured as follows.
  • the determination source data is written to different areas of the memory circuit 190 at timings indicated by the strobe signals output from the respective delay elements, and the data written to the different areas is read, and each read determination original data read
  • the determination source data may be compared to determine success or failure of data transfer.
  • the test access while changing the delay amount is not performed at the time of test access. For example, in the first embodiment, the test access for seven delay amounts is performed five times each, for a total of 35 test accesses.
  • the delay amount shown in the above embodiment is described in seconds, it may be any value that can define how much the signal is delayed, and may be any unit other than seconds, that is, phase (degree The delay amount may be defined by.
  • the delay adjustment unit described in the above embodiment is appropriate to put the phase adjustment unit, and the delay amount in the above embodiment defines how many times the phase of the strobe signal is delayed as the phase change amount. It will be done.
  • the test access is executed to the end to update the delay amount, but the memory bandwidth is equal to or more than the predetermined threshold during the test access. If it does, test access may be interrupted.
  • the test access data (which delay amount the test access was performed at, the success or failure of the data transfer by the test access) is left in the memory etc., and after interruption, the memory bandwidth becomes less than the predetermined threshold again. In this case, test access may be continued from the point of interruption. Also, after the test access is interrupted, the test access may be executed from the beginning again when the memory bandwidth becomes less than the predetermined threshold.
  • the memory bandwidth monitoring unit 212 is configured to monitor the memory bandwidth per minute, but this is not limited to every one minute, and the system bandwidth Depending on the operating environment, it may be changed, for example, every 20 seconds or every 2 minutes.
  • the functional units of the semiconductor devices 1, 2, 3 shown in FIGS. 1, 2, 3, 4, 9, 10, 12, 13 are integrated and realized by one or more LSIs (Large Scale Integration) It may be done. Also, multiple functional units may be realized by one LSI.
  • An LSI may be referred to as an integrated circuit (IC), a system LSI, a very large scale integration (VLSI), a super large scale integration (SLSI), an ultra large scale integration (ULSI), or the like depending on the degree of integration.
  • IC integrated circuit
  • system LSI system LSI
  • VLSI very large scale integration
  • SLSI super large scale integration
  • ULSI ultra large scale integration
  • the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
  • a programmable field programmable gate array FPGA
  • a reconfigurable processor that can reconfigure connection and setting of circuit cells in the LSI may be used.
  • Such recording media include an IC card, a hard disk, an optical disk, a flexible disk, a ROM, and the like.
  • the control program distributed and distributed is used by being stored in a memory or the like that can be read by a processor, and the processor executes the control program to realize various functions as described in the embodiment. Will be (11) An embodiment of the delay adjustment device according to the present invention and its effects will be described below.
  • the delay adjustment device is an apparatus connected by an external memory, a data line carrying a data signal, and a strobe line carrying a strobe signal for defining the timing of reading the data signal carried by the data line.
  • a delay adjustment device mounted on the circuit to adjust the delay of a strobe signal, monitoring a memory bandwidth indicating a data transfer amount in communication between the external memory and the device, and sequentially indicating the memory bandwidth
  • a memory bandwidth monitoring unit that outputs band information, and a delay adjusting unit that adjusts the delay between the data signal and the strobe signal according to a memory bandwidth indicated by the memory band information.
  • a delay adjustment method for adjusting the delay of a strobe signal comprising: monitoring a memory bandwidth indicating a data transfer amount in communication between the external memory and the device, and sequentially indicating the memory bandwidth The memory bandwidth monitoring step for outputting band information, and the delay adjustment step for adjusting the delay between the data signal and the strobe signal according to the memory bandwidth indicated by the memory band information.
  • the delay adjustment device can perform the delay adjustment according to the memory bandwidth used between the device that performs data transfer and the external memory connected to the device.
  • the delay adjustment device actually performs data transfer since the memory bandwidth used is large.
  • delay adjustment can be performed when data transfer is not performed or the amount of transfer is small.
  • the delay adjustment unit may execute the delay adjustment when the memory bandwidth falls below a predetermined threshold.
  • the delay adjustment device further includes storage means for storing delay adjustment condition information defining conditions for performing delay adjustment, and the delay adjustment means includes delay adjustment condition information stored in the storage means.
  • the above-mentioned delay adjustment may be performed also when the condition defined in the above is satisfied.
  • the predetermined condition may be every time a predetermined time has elapsed since the device was started.
  • a delay adjustment method for delay adjustment of a strobe signal wherein the delay adjustment device determines whether or not a predetermined time has elapsed from the delay adjustment performed last time, and the determination step makes an affirmative determination. And a delay adjustment step of adjusting the delay between the data signal and the strobe signal.
  • the delay adjustment can be periodically performed, and the deviation between the data signal and the strobe signal can be made difficult to occur.
  • the delay adjusting means delays the strobe signal output from the external memory by a predetermined amount, writes the determination source data used for determining the success or failure of the data transfer from the own device to the external memory, and writes the data
  • the above delay adjustment may be performed by reading the read data and comparing the read data with the determination source data to determine the success or failure of the data transfer, and determining the delay amount of the strobe signal suitable for the data transfer.
  • the delay adjustment device further includes memory data saving means for saving data stored in an area to which the temporary data is written in the internal memory before the delay adjusting means executes the delay adjustment. It may be provided.
  • the delay adjustment apparatus is useful in an apparatus that performs data communication in which it is defined that the data signal on the data line is read at the timing indicated by the strobe signal.
  • Reference Signs List 1 semiconductor device 10 semiconductor integrated circuit 100 delay adjustment unit 110 access destination conversion unit 111 conversion table 120 data save unit 130 delay element unit 140 delay amount holding unit 150 test access unit 160 first transfer master unit 170 arbitration unit 180 memory data transmission / reception unit 190 memory circuit 201 test area specification unit 202 test state holding unit 203 test area setting unit 204 test flag holding unit 205 evacuation flag holding unit 210 test start determination unit 211 test condition setting unit 212 memory width monitoring unit 213 test start determination unit 220 delay Amount calculation unit 221 Delay element specification unit 222 Delayed tap amount holding unit 223 Tap number holding unit 224 Test delay amount calculation unit 225 Test completion judgment unit 226 Optimal value setting unit 230 OK / NG judgment unit 231 Judgment source data holding unit 232 Test Lee Data holding unit 233 data comparing section 234 determination result table 301 current control line signal bit 0 delay amount holding unit 301 302 Delay amount holding unit 302 for current control line signal bit 1 303 Delay amount holding unit 303 for current address bit 0 304 Current address bit

Abstract

 外部メモリとの間でデータ通信を行うために、データ信号と、データラインにのるデータ信号を読み取るタイミングを規定するストローブ信号との遅延調整をする遅延調整装置を提供する。遅延調整部に含まれるテストアクセス部150は、メモリ回路との間のデータ転送に用いられるデータラインの使用メモリバンド幅を監視するメモリバンド幅監視部212を備え、使用しているメモリバンド幅が所定の閾値よりも低いときに遅延調整を実行する。遅延調整は、ストローブ信号をデータ信号から所定の遅延量だけ遅延させてそのときのデータ転送の成否を判定することを、遅延量を換えながら行って、最適な遅延量を算出し、以降算出した遅延量を用いてストローブ信号を遅延させる。

Description

遅延調整装置、遅延調整方法
 本発明は、データ信号を読み取るべきタイミングを定めるストローブ信号の遅延調整に関する。
 従来、データの送受信を実行するSoC(System on Chip)とメモリとの間でのデータ通信において、データを読み取る側は、データラインに乗っているデータ信号を、データ信号の読み取りタイミングを規定するストローブ信号を受け付けたタイミングで読み取る。より具体的には、読み取り側がストローブ信号の立ち上がりエッジを検出して、データラインに乗っているデータ信号を読み取る。
 図15に示すように、SoC1500と、メモリ1501とはデータラインとストローブラインとで接続される。データラインにデータがのっているタイミングとストローブ信号の立ち上がりとがずれると、受け取り側は正しくデータを読み取れないため、多少ストローブ信号の立ち上がりエッジが前後してもよいように、ストローブ信号の立ち上がりをデータ信号がデータラインにのっているタイミングの中間点になるように遅延調整を行う必要がある。即ち、図15において、データ信号がデータラインにのっているタイミングにおいて、ストローブ信号の立ち上がりエッジが遅延量Eで示されるタイミングで立ち上がるように、ストローブ信号を遅延させる必要がある。なお、ここでいう遅延量は、データ信号がデータラインに乗り始めたタイミングからストローブ信号が立ち上がるまでの時間をいう。
 当該遅延調整においては、SoC1500が自身でデータを出力する場合には、データを載せているタイミングの中点において、ストローブ信号を立ち上げればよい。これは、SoC1500自身はデータ信号をストローブ信号と同じタイミングで出力しつつ、ストローブ信号のみ保持している遅延素子を規定の段数だけ通過させてからメモリ1201に出力する構成をとってもよい。
 一方、メモリ1501は、データ信号を出力する出力開始タイミングと出力期間とを、ストローブ信号の立ち上がりエッジと立ち下りエッジとに一致させて出力する機能しかない。そのため、SoC1500は、メモリ1501から受け付けるストローブ信号を自ら遅延させる必要があり、その自ら遅延させたストローブ信号の立ち上がりを検出して、データを読み取る。このストローブ信号をどれだけ遅延させるかを決定し、決定した量だけストローブ信号を遅延させることを遅延調整という。
 特許文献1には、この遅延調整を、システムの起動時や、システムリセットが実行されたタイミングにおいて実行する装置が開示されている。
特開2007-202033号公報
 ところで、SoCが動作し続けることにより、経年劣化などにより、データ信号とストローブ信号のタイミングとがずれてくることがある。また、SoCは、負荷状態に応じて動作温度が異なり、その温度特性により動作タイミングが変化し、データ信号とストローブ信号とのタイミングがずれることもある。
 昨今SoCの動作クロックは高速化してきており、それに併せてデータラインにデータ信号が載っている期間も短くなってきている。これは、とりもなおさず、ストローブ信号の立ち上がりのタイミングもまた非常にシビアなものが要求されることを意味しており、現行のものではピコセカンドオーダーのものを要求される仕様もざらにある。
 当該仕様にあっては、データ信号とストローブ信号のずれは、データ通信において、正常なデータ転送がなされず、システムが正常に動作しなくなる要因となる。
 そこで、本発明においては、当該ずれをなるべく発生させず、かつ、システムの通常動作をなるべく妨げない遅延調整装置を提供することを目的とする。
 上記課題を解決するため、本発明に係る遅延調整装置は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器に搭載され、ストローブ信号の遅延調整を行う遅延調整装置であって、前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視部と、前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整手段とを備えることを特徴としている。
 上述のような構成によって遅延調整装置は、システムが動作中であっても、装置とメモリ間の使用しているメモリバンド幅を監視し、使用されているメモリバンド幅が少ない状態においては、データ転送を実行する装置とメモリ間のデータ転送がそれほど行われていないことになる。遅延調整は、データ転送を実行する装置とメモリ間においてストローブ信号を何段階かで遅延させつつ、実際にデータ転送を行って、そのデータ転送の成否に応じて、ストローブ信号の遅延量を決定することで行われる。このため、実際にデータ転送を行ってメモリバンド幅を一定以上使用していると、この遅延調整のためのデータ転送を実行できないが、メモリバンド幅の使用量が一定以下である場合には、遅延調整のためのデータ転送を実行できる。よって、システムが動作中であっても遅延調整を行えるので、システムが動作することによる発熱などに応じて変化する動作環境にも対応した遅延調整を行うことができ、従来よりも、データ信号とストローブ信号のずれを従来よりも抑制することができる。
実施の形態1に係る半導体装置1の機能構成を示す機能ブロック図である。 実施の形態1に係るテストアクセス部の機能構成を示す機能ブロック図である。 実施の形態1に係る遅延量保持部の機能構成を示す機能ブロック図である。 実施の形態1に係る遅延素子部の機能構成を示す機能ブロック図である。 実施の形態1に係る遅延素子部の回路構成を示すブロック図である。 テストアクセス時に用いる判定結果テーブルのデータ構成例を示すデータ概念図である。 実施の形態1に係る遅延調整部の遅延調整の動作を示すフローチャートである。 テストアクセス処理における遅延調整部の動作を示すフローチャートである。 実施の形態2に係る半導体装置の機能構成を示す機能ブロック図である。 実施の形態2に係るテストアクセス部の機能構成を示す機能ブロック図である。 実施の形態2に係る遅延調整部の遅延調整の動作を示すフローチャートである。 半導体装置の変形例を示す機能ブロック図である。 半導体装置の変形例に係るテストアクセス部の機能ブロック図である。 温度別遅延情報の構成例を示すデータ概念図である。 遅延調整の内容を示す概要図である。
<実施の形態1>
 本発明に係る遅延調整装置の一実施形態である半導体装置について、図面を参照しながら説明する。
<構成>
 図1は、半導体装置1の機能構成を示す機能ブロック図である。半導体装置1は、例えば、デジタル放送受信装置、携帯電話、BD(Blu-ray Disc)再生装置、BD録画装置などの民生機器や産業機器で利用される装置である。半導体装置1は、半導体集積回路10とメモリ回路190とを含んで構成される。
 半導体集積回路10は、SoCなどの、ビデオデコード処理やデータ転送処理等の様々な機能を実現する半導体で構成された電子回路である。半導体集積回路10は、メモリ回路190との間でデータの送受信を実行する機能を有する。図1に示すように半導体集積回路10は、遅延調整部100と、第1転送マスタ部160と、調停部170と、メモリデータ送受信部180とを含んで構成される。
 遅延調整部100は、半導体集積回路10とメモリ回路190との間で行われるデータ送受信におけるデータ信号とストローブ信号との遅延調整を実行する機能を有する。遅延調整部100は、アクセス先変換部110と、データ退避部120と、遅延素子部130と、遅延量保持部140と、テストアクセス部150とを含んで構成される。また、遅延調整部100は、データ信号やストローブ信号だけでなく、制御信号やアドレス信号の遅延調整を実行する機能も有する。
 アクセス先変換部110は、テストアクセスを実行する際に、テストアクセス部150からの指示のもと、テストアクセスの際にテストアクセス用のデータを書き込む領域を決定し、テストアクセス部150からデータ退避を示す信号を受け付けている場合に決定した領域にあるデータをデータ退避部120に退避させる機能を有する。また、アクセス先変換部110は、テストアクセスを実行する際に退避させたデータが格納されていたアドレスを変換テーブル111に記憶する機能を有し、テストアクセス終了時にデータ退避部120に退避させたデータを取得し、元々格納されていたアドレスに復元する機能も有する。なお、アクセス先変換部110は、テストアクセスを実行していないタイミングにおいては、メモリデータ送受信部180から転送されてきた信号をそのまま遅延素子部130に転送するか、遅延素子部130から転送されてきた信号をそのままメモリデータ送受信部180に転送する。
 データ退避部120は、遅延調整部100が遅延調整を実行するタイミングにおいて、半導体集積回路10内のデータ通信の際のデータを保持するメモリにあるデータの退避先として用いられるメモリであり、テストアクセス実行時にアクセス先変換部110から出力された退避データを保持する機能を有する。また、アクセス先変換部110からの指示に従い、保持していた退避データを出力する機能も有する。
 遅延素子部130は、受け取ったデータ信号をそのまま転送するとともに、そのデータ信号を読み取るタイミングを規定するストローブ信号を、遅延量保持部140から指定された遅延量だけ、遅延させて出力する機能を有する。遅延素子部130は、データをメモリ回路190に書き込む場合に、データラインに第1データ信号133を乗せて出力するとともにストローブラインにのる第1ストローブ信号134を遅延させて出力する。遅延素子部130は、データをメモリ回路190から読み出す場合に、メモリ回路から出力されたストローブラインに乗る第1ストローブ信号134を遅延させ、遅延させた第1ストローブ信号134の立ち上がりエッジを検出してデータラインに乗っている第1データ信号133を読み取る。また、遅延素子部130は、その他の信号、即ち、制御信号、アドレス信号、データ信号なども、必要に応じて、遅延させる機能も有する。遅延素子部130の詳細については後述する。
 遅延量保持部140は、ストローブ信号をどれだけ遅延させるのかを示す遅延量を保持し、遅延素子部130に通知する機能を有する。また、遅延量保持部140は、ストローブ信号以外の信号をどれだけ遅延させるのかを示す遅延量も保持し、遅延素子部130に通知する機能も有する。各遅延量は、テストアクセス部150から設定される。遅延量保持部140の詳細については後述する。
 テストアクセス部150は、条件を満たした場合に、データ信号とストローブ信号との遅延調整を行う機能を有する。テストアクセス部150は、遅延量を定めて、メモリ回路190へのテストアクセスを行って、データ転送の成否によって、遅延調整を実行する。テストアクセス部150は、現在の遅延量及びその前後10ps単位で合計7つの遅延量それぞれで、5回、メモリ回路190にデータを書き込み、書き込んだそのデータを再び読み出し、書き込む前のデータと読み取ったデータが一致するかどうかを判定する。そして、テストアクセス部150は、5回全てのテストアクセスが成功した遅延量の平均値を算出して、算出した遅延量を現在の遅延量として、遅延量保持部140に設定する。このテストアクセスを行って遅延量を算出して、算出した遅延量を現在使用する遅延量とすることを遅延調整という。テストアクセス部150の更なる詳細については、後述する。
 第1転送マスタ部160は、CPU(Central Processing Unit)や、DMAC(Direct Memory Access Controler)などのことであり、メモリ190との間でデータ転送を実行する機能を有する。第1転送マスタ部160は、調停部170と第二制御ライン信号161、第二アドレス信号162、第二データ信号163等を用いてメモリ回路190にメモリアクセスを実行する。第二制御ライン信号161は、データアクセスの種別(リード/ライト)を指定する信号である。第二アドレス信号162は、メモリ回路190のアクセス先のアドレスを指定する信号である。第二データ信号163は、実際に書き込む、あるいは、読み出したデータの信号である。以降、制御ライン信号、アドレス信号、データ信号は、その前に付した番号は異なるとしても、その意味は同じものとする。即ち、制御ライン信号は、メモリアクセスの種別を規定するものであり、アドレス信号は、メモリ回路190のアドレスを指定するものであり、データ信号は、実際に転送されるデータの信号を示すものであるとする。
 調停部170は、複数のメモリアクセス要求があった場合に、予め定められた優先度に従って一つのメモリアクセス要求を選択する機能を有する。例えば、第1転送マスタ部160以外の転送マスタ(図示せず)もメモリ回路190とのデータ通信を実行する場合に、第1転送マスタ部160と、それ以外の転送マスタとの間に、予め優先順位設定を行っておき、優先度の高いほうのアクセス要求を通す機能を有する。本実施形態においては、調停部170は、第1転送マスタ部160からのアクセスと、テストアクセス部150からのアクセスとを受け付け、テストアクセス部150からのアクセスを優先する。
 メモリデータ送受信部180は、第四制御ライン信号171、第四アドレス信号172、第四データ信号173を基に、半導体集積回路10がメモリ回路190へメモリアクセスする際に使用する第一制御ライン信号131、第一アドレス信号132、第一データ信号133、第一ストローブ信号134の遅延処理前の信号である第五制御ライン信号181、第五アドレス信号182、第五データ信号183、第二ストローブ信号184を生成し、遅延調整部100との間で入出力を実行する。
 メモリ回路190は、DDR3-SDRAM(Double-Data-Rate3 Synchronous Dynamic Randam Access Memory)などに代表される、外部からの要求によりデータを保持する、あるいは、外部からの要求により保持しているデータを出力する機能を有する半導体からなる電子回路である。メモリ回路190は、半導体集積回路10と、第1制御ライン信号131、第一アドレス信号132、第一データ信号133、第1ストローブ信号134を介して接続される。メモリ回路190は、半導体集積回路10から出力された第一制御ライン信号131に従い、半導体集積回路10から転送されてきたデータを保持する機能を有する。また、メモリ回路190は、半導体集積回路から出力された第一制御ライン信号131に従い、半導体集積回路10に指定されたデータを第一データ信号133に出力する機能も有する。
 図2は、テストアクセス部150の詳細の構成例を示す機能ブロック図である。
 図2に示すようにテストアクセス部150は、テストアクセス発行部201と、テスト状態保持部202と、テスト領域指定部203と、テストフラグ保持部204と、退避フラグ保持部205と、テスト開始判定部210と、遅延量算出部220と、OK/NG判定部230とを含んで構成される。
 テストアクセス発行部201は、テスト状態保持部202からの動作状態を示す信号が、「0」から「1」に変化したタイミングで、テストアクセスを発行する機能を有する。テストアクセス発行部201は、制御ライン信号151を介して、データのリード/ライトを指定し、アドレス信号152を介してメモリ回路190のアクセス先のアドレスを指定し、データ信号153を介して書き込む判定元データの転送と、メモリ回路190から読み取ったデータの転送が行われる。テストアクセス実行時に、テストアクセス発行部201は、OK/NG判定部230の判定元データ保持部231が保持するデータを書き込むためのアクセス要求を発行する。当該アクセス要求に対するアクセス完了を受け付けると、テストアクセス発行部201は次に、書き込んだデータを再度読み取るためのアクセス要求を発行し、当該アクセス要求に応じてメモリ回路190から転送されてきたデータをOK/NG判定部230に転送する。データ信号を介して書き込む判定元データを出力し、メモリ回路190から書き込んだ判定元データを読み取ったデータを受け取る。
 テスト状態保持部202は、半導体集積回路10のテストアクセスの状態を示す情報を保持する機能を有する。当該状態には、
・テスト状態かつOK/NG部10001が使用する判定元データ保持部100010に格納する判定元データを読み出す状態、
・テスト状態かつ遅延量を変更してのテストアクセスを行う状態、
・テスト状態かつテストの為のメモリ回路11に対する書き込みを行う状態
・テスト状態かつ第一転送マスタ部101のような本システムからのメモリアクセスが発生した状態
 などがある。
 なお、テスト状態保持部202の値は、本システム使用者が直接設定可能であり、テスト開始判定部210からのテスト開始要求信号などによっても設定可能である。ここでは、テスト開始判定部210が、テスト開始を示す信号を出力した場合に、テスト状態であることを示す情報を保持するものとし、当該情報を保持していると、テストアクセス発行部201は、テストアクセスのためのアクセス要求を発行する。
 テスト領域指定部203は、遅延調整のためのメモリ回路190から読み取った判定元データを、半導体集積回路10が保持するメモリのどの領域に記録するのかを指定する機能を有し、そのアドレスをテストアクセス発行部201に通知する機能を有する。
 テストフラグ保持部204は、テストアクセスを実行しているかどうかを示すフラグを保持する機能を有し、当該フラグをテストアクセス発行部201に通知する機能を有する。テストフラグ保持部204が保持する情報は、1ビットのデータであり、「0」であれば通常動作状態、「1」であればテストアクセス状態であることを示す。
 退避フラグ保持部205は、データをデータ退避部120に退避すべきかどうかを示すフラグを保持する機能を有し、当該フラグを遅延量保持部140に通知する機能を有する。テスト領域指定部203で指定される領域に既にデータが格納されていた場合に、退避フラグ保持部205が保持するデータは、データ退避部120にデータを退避すべきことを示す「1」となり、それ以外の場合では、「0」となる。
 テスト開始判定部210は、テストアクセスを実行するタイミングであるかどうかを判定する機能を有し、テストアクセスを実行すべきタイミングであると判定した場合に、その旨をテスト状態保持部202に通知する機能を有する。テスト開始判定部210は、具体的には、テスト条件設定部211とメモリ幅監視部212と、判定部213とを含んで構成される。
 テスト条件設定部211は、テストアクセスを実行するためのタイミングを決定するための条件を設定、保持する機能を有する。当該設定は、例えば半導体装置1に接続されたPCから数値の設定を行ったり、あるいは、半導体装置1に備え付けられたディップスイッチなどにより設定できる。テスト条件設定部211は、テストアクセスを開始するための条件として、使用しているメモリバンド幅が所定の閾値以下であるという条件を保持し、当該条件を判定部213に通知する機能を有する。
 メモリ幅監視部212は、第一データ信号133を監視して使用されているメモリバンド幅を監視する機能を有し、使用されているメモリバンド幅を判定部213に定期的(例えば1分毎)に通知する機能を有する。
 判定部213は、メモリ幅監視部212から通知された使用しているメモリバンド幅が、テスト条件設定部211から通知された条件を満たしているか否かを判定する機能を有する。当該判定において、肯定的、即ち、条件を満たしていると判定した場合には、判定部213は、テストアクセス状態に移行することをテスト状態保持部202に通知する機能を有する。
 遅延量算出部220は、テストアクセスを行って得られた結果から、最新の遅延量を算出する機能を有する。遅延量算出部220は、遅延素子指定部221と、遅延タップ量保持部222と、タップ回数保持部223と、テスト遅延量算出部224と、テスト完了判定部225と、最適値設定部226とを含んで構成される。
 遅延素子指定部221は、遅延量保持部140のどの遅延量保持部を用いるのかを指定する信号を出力する機能を有する。
 遅延タップ量保持部222は、遅延量の1回の遅延のための遅延量を保持する機能を有する。本実施例においては、遅延タップ量保持部222は、10psという遅延量を保持しているものとする。即ち、遅延調整は、10ps単位で実行されることとなる。
 タップ回数保持部223は、テストアクセスを行う際に、何回、遅延量をずらすかを規定する回数を保持する機能を有する。例えば、タップ回数保持部223が3という回数を保持する場合には、テストアクセスは、現在の遅延量と、その前後に遅延タップ量保持部222で保持される遅延量だけずらした遅延量でのテストアクセスが実行されることを意味する。本実施の形態においては、タップ回数保持部223は、7というタップ回数を保持するものとする。遅延タップ量保持部222が保持する遅延量は10psなので、これにより、テストアクセスは、「現行の遅延量-30ps」、「現行の遅延量-20ps」、「現行の遅延量-10ps」、「現行の遅延量」、「現行の遅延量+10ps」、「現行の遅延量+20ps」、「現行の遅延量+30ps」の計7つ分の遅延量でのテストアクセスが実行されることとなる。
 テスト遅延量算出部224は、現在の遅延量からどれだけ遅延量を変化させるのかを決定する機能を有し、テストアクセスの際に使用する遅延量を遅延量保持部140に通知する機能を有する。当該遅延量は、遅延量保持部222が保持する遅延量と、タップ回数保持部223で保持されるタップ回数とに基づいて決定され、未実行のテストアクセスの遅延量に決定される。
 テスト完了判定部225は、タップ回数保持部223で示される回数だけテストアクセスをそれぞれ所定の回数(本実施の形態では5回分)分だけ行ったかどうかによって、テストアクセスが完了したか否かを判定する機能を有し、テストアクセスが完了した場合には、最適値設定部226にテストアクセスが完了したことを通知する機能を有する。
 最適値設定部226は、テスト完了判定部225からテストアクセスの終了を通知されると、OK/NG判定部230が保持する判定結果テーブル234を取得する。そして、最適値設定部226は、判定結果テーブル234から最適となる遅延量を算出し、遅延量保持部140に設定する機能を有する。
 OK/NG判定部230は、テストアクセス部150が実行したテストアクセスの成否を判定する機能を有し、その判定結果を示す情報を保持し、当該情報を遅延量算出部220に通知する機能を有する。
 OK/NG判定部230は、判定元データ保持部231と、テストリードデータ保持部232と、データ比較部233と、判定結果テーブル234とを含んで構成される。
 判定元データ保持部231は、テストアクセスを実行する際に、メモリ回路190に書き込む判定元データを保持する機能を有する。当該判定元データは、メモリ回路190に書き込み可能な形式の特定のパターンのデータであればどのようなものであってもよく、例えば、0x5a5a5a5aといったデータであってもよいし、4ビットや8ビットの数値データなどであってもよい。また、判定元データ保持部231は、保持している判定元データをデータ比較部233に通知する機能も有する。当該判定元データは予め設定されている。
 テストリードデータ保持部232は、テストアクセスによって、一度メモリ回路190に書き込んだ判定元データを読み出して得たデータを保持する機能を有し、テストアクセス発行部201から転送されてきたデータを保持する。テストリードデータ保持部232は、一回のテストアクセス毎に読み取ったデータ(以降、読取判定元データとも呼称する)を保持し、保持しているデータが更新されるごとに保持している読取判定元データをデータ比較部233に出力する機能を有する。
 データ比較部233は、判定元データ保持部231から出力された判定元データと、テストリードデータ保持部232から出力された読取判定元データとを比較し、一致するかどうかを判定する。一致した場合には、現在のストローブ信号の遅延量でデータ通信に成功したことを意味する。また、一致しなかった場合には、データ通信に失敗したことを意味し、現在のストローブ信号の遅延量ではデータ通信に支障をきたすことを意味する。データ比較部233は、判定元データと読取判定元データとが一致した場合に、そのときのテストアクセスの遅延量に対応付けてデータ通信が成功したことを示す情報を判定結果テーブル234に登録し、一致しなかった場合に、そのときのテストアクセスの遅延量に対応付けてデータ通信が失敗したことを示す情報を判定結果テーブル234に登録する。
 判定結果テーブル234は、最適値設定部226が最適な遅延量を算出する際に参照するテストアクセスの成否を示す情報である。図6に、判定結果テーブル234の一構成例となるデータ概念図を示した。
 図6に示すように、判定結果テーブル234は、各遅延量に応じて、行ったテストアクセスの成否を示す情報であり、ストローブ信号の遅延量601とOK/NG判定602とを対応付けた情報である。本実施例では、テストアクセスは、各遅延量について5回行うものとし、各回のテストアクセスの成否が登録される。図6の判定結果テーブル234においては、データ転送が成功した場合を「○」で、失敗した場合を「×」で示している。
 例えば図6では、「現行の遅延量-10ps」の場合、即ち現行よりも10psだけストローブ信号の立ち上げを早めた場合では、第3回目だけテストアクセスに失敗した例を示している。図6に示した判定結果テーブル234の場合だと、全てのテストアクセスが成功した、「現行」、「現行+10ps」、「現行+20ps」の平均値、即ち、「現行+10ps」、つまり現行の遅延量よりも、10psだけストローブの立ち上がりを遅くした新たな遅延量が遅延量保持部140に保持されることになる。
 図3は、遅延量保持部140の機能構成を示す機能ブロック図である。
 図3に示すように、遅延量保持部140は、現行制御ライン信号ビット0用遅延量保持部301と、現行制御ライン信号ビット1用遅延量保持部302と、現行アドレスビット0用遅延量保持部303と、現行アドレスビット1用遅延量保持部304と、現行データ信号ビット0用遅延量保持部305と、現行データ信号ビット1用遅延量保持部306と、現行ストローブ信号用遅延量保持部307と、テスト用制御ライン信号ビット0用遅延量保持部311と、テスト用制御ライン信号ビット1用遅延量保持部312と、テスト用アドレスビット0用遅延量保持部313と、テスト用アドレスビット1用遅延量保持部314と、テスト用データ信号ビット0用遅延量保持部315と、テスト用データ信号ビット1用遅延量保持部316と、テスト用ストローブ信号用遅延量保持部317と、セレクタ321~327とを含んで構成される。
 現行制御ライン信号ビット0用遅延量保持部301は、現在使用されている制御ライン信号のビット0の信号線にのる信号を遅延させる遅延量を保持する機能を有し、当該遅延量をセレクタ321に出力する機能を有する。また、現行制御ライン信号ビット0用遅延量保持部301の保持する遅延量は、テストアクセス終了時に、テストアクセス部150により最新のものに更新される。
 テスト用制御ライン信号ビット0用遅延量保持部311は、テストアクセス時に使用される制御ライン信号のビット0の信号線にのる信号を遅延させる遅延量を保持する機能を有し、当該遅延量をセレクタ321に出力する機能を有する。テスト用制御ライン信号ビット0用遅延量保持部311の保持する遅延量は、テストアクセスを実行しているときに、遅延量を変更するごとにテストアクセス部150により更新される。
 セレクタ321は、テストアクセス部150からの指示に従って、遅延素子指定部221が出力するどの遅延素子部であるかを示す信号が制御ライン信号ビット0であることを示す信号である場合に、テスト状態保持部202から出力されるテスト状態であるか否かを示す信号147に基づいて、現行制御ライン信号ビット0用遅延量保持部301から出力されている信号と、テスト用制御ライン信号ビット0用遅延量保持部311から出力されている信号とのうちのいずれか一方を選択して、遅延素子部130に出力する機能を有する。具体的には、テスト状態保持部202から出力されている信号がテストアクセス実行中であることを示している場合に、テスト用制御ライン信号ビット0用遅延量保持部311が保持する遅延量を選択して出力し、それ以外の場合には、現行制御ライン信号ビット0用遅延量保持部301が保持する遅延量を出力する。
 その他の現行用遅延量保持部(302~307)、テスト用遅延量保持部(312~317)、セレクタ(322~327)については、制御対象となるラインと遅延量がそれぞれ異なるだけで、それぞれの機能部の名称で示される信号の遅延量を出力する構成となっているので、詳細な説明を割愛する。
 図4は、遅延素子部130の機能構成を示す機能ブロック図である。
 図4に示すように、遅延素子部130は、制御ライン信号ビット0用遅延素子部401と、制御ライン信号ビット1用遅延素子部402と、アドレス信号ビット0用遅延素子部403と、アドレス信号ビット1用遅延素子部404と、データ信号ビット0用遅延素子部405と、データ信号ビット1用遅延素子部406と、ストローブ信号用遅延素子部407とを含んで構成される。
 制御ライン信号ビット0用遅延素子部401は、制御信号の0ビット目の信号を遅延させるための機能を有する。
 制御ライン信号ビット1用遅延素子部402は、制御信号の1ビット目の信号を遅延させるための機能を有する。
 アドレス信号ビット0用遅延素子部403は、アドレス信号の0ビット目の信号を遅延させるための機能を有する。
 アドレス信号ビット1用遅延素子部404は、アドレス信号の1ビット目の信号を遅延させるための機能を有する。
 データ信号ビット0用遅延素子部405は、データ信号の0ビット目の信号を遅延させるための機能を有する。
 データ信号ビット1用遅延素子部406は、データ信号の1ビット目の信号を遅延させるための機能を有する。
 ストローブ信号用遅延素子部407は、ストローブ信号を遅延させるための機能を有する。
 各遅延素子部は、遅延量保持部140内の対応する遅延量保持部から出力された遅延量(331~337)の分だけ、入力された信号を遅延させて出力する。
 本実施の形態にあっては、基本的に遅延調整は、データ信号とストローブ信号との間で行うものであり、この場合重要になる構成は、ストローブ信号用遅延素子部407であるが、制御ライン信号ビット0用遅延素子部401と、制御ライン信号ビット1用遅延素子部402と、アドレス信号ビット0用遅延素子部403と、アドレス信号ビット1用遅延素子部404とを備えることにより、例えばアドレス信号0ビットと、アドレス信号1ビットとの間でずれが発生した場合などにそのずれを修正したりすることができる。アドレス信号間でのずれがあった場合には、正しいアドレスが伝達されないことになるため、そのような事態に対処できる。
 図5は、ストローブ信号用遅延素子部407の詳細な回路構成を示すブロック図である。
 ストローブ信号用遅延素子部407は、半導体集積回路側からメモリ回路190にデータを書き込む場合と、データをメモリ回路190から読み取る場合とでストローブ信号を遅延させる構成を備える。
 図4に示すようにストローブ信号用遅延素子部407は、送信用の遅延素子群(501a~501n)と、受信用の遅延素子群(502a~502n)と、セレクタ503と、セレクタ504とを含んで構成される。なお、ここでの遅延素子は、遅延量をずらすために必要な数だけの遅延素子があればよく、例えば、データ信号がデータラインにのっている時間を遅延素子の遅延素子量で割った数以上の遅延素子があればよく、ここでのnは必要とされる任意の数となる。
 各遅延素子(501a~501n、502a~502n)は、それぞれ、入力された信号を10psだけ遅延させる機能を有し、例えばラッチ回路などにより構成される。
 セレクタ503は、遅延量保持部140の遅延素子指定部から指定された遅延素子の出力信号を選択して出力する機能を有する。セレクタ503は、半導体集積回路10側から、メモリ回路190側へのストローブ信号を出力するものであ。
 セレクタ504は、遅延量保持部140の遅延素子指定部から指定された遅延素子の出力信号を選択して出力する機能を有する。セレクタ504は、メモリ回路190側から、半導体集積回路10側へのストローブ信号を出力するものである。
 なお、その他の遅延素子の回路構成は略同一であるので説明を割愛する。但し、ストローブ信号は、双方向に転送されるので、両方向の構成を備える必要があるが、制御ライン信号と、アドレス信号とについては、半導体集積回路10からメモリ回路190の方向にのみ送信されるので、半導体集積回路10側からメモリ回路190側への方向のみの遅延素子及びセレクタを備えればよい。
<動作>
 図7は、遅延調整部100の遅延調整の動作を示すフローチャートである。
 半導体装置10は、電源投入、あるいは、システムリセットにより初期化が発生する(ステップS701)。
 すると、遅延調整部100は、システム起動時の遅延調整を実行する(ステップS702)。これは予め定められた初期値を設定することとしてもよいし、後述するテストアクセス処理を実行しての遅延調整であってもよい。
 テストアクセス部150のメモリ幅監視部212は、常時使用されているメモリバンド幅を検出し、判定部213に通知する。そして、判定部213は、そのメモリバンド幅がテスト条件設定部211に予め定められている閾値未満であるかどうかを定期的(例えば1分毎)に判定する(ステップS703)。
 使用されているメモリバンド幅が所定閾値以上である場合には(ステップS703のNO)、何もせずにステップS703に戻る。
 使用されているメモリバンド幅が所定閾値未満であった場合であって(ステップS703のYES)、アクセス先変換部110は、退避フラグ保持部205が保持する情報がデータ退避部120を用いることを示すときには、テストアクセス用に用いられるメモリの領域に保持されているデータをデータ退避部120に退避させる(ステップS704)。このとき、テスト状態保持部202は、テスト状態であることを示す情報を保持する。
 必要に応じてデータを退避させた後、テスト状態保持部202がテスト状態であることを示す情報を保持したことを契機に、遅延調整部100のテストアクセス部150は、遅延調整のためのテストアクセス処理を実行する(ステップS705)。テストアクセス処理の詳細については、図8を用いて後述する。
 テストアクセス部150の遅延量算出部220は、テストアクセス処理を行って得られた結果を用いて、算出された遅延量を現在の遅延量として遅延量保持部140に設定する(ステップS706)。
 テストアクセス処理の終了後に、アクセス先変換部110は、変換テーブル111を用いて、データ退避部120にテストアクセス処理のために退避させていたデータを元々格納されていたアドレスに格納しなおし(ステップS707)、ステップS703に戻る。
 ステップS703~S707の処理を繰り返すことによって、使用されているメモリバンド幅が低いときに遅延調整が行われることになり、システム動作中であっても遅延調整を行えるので、システムが動作することに基づく温度変化や経年劣化などにより、発生し得るデータ信号とストローブ信号とのずれを修正することができる。
 図8は、図7に示したフローチャートのステップS705におけるテストアクセス処理におけるテストアクセス部150の詳細動作を示すフローチャートである。
 テストアクセス発行部201は、OK/NG判定部230から判定元データを取得する(ステップS801)。
 遅延量算出部210は、現行の遅延量から、どれだけ遅延量をずらすかを決定し、テストアクセスの際に用いる遅延量を遅延量保持部140に設定する(ステップS802)。具体的には、遅延素子指定部221がストローブ信号を示す情報を出力し、テスト状態保持部202がテスト状態であることを示す情報を出力し、遅延量算出部220がそのときの遅延量を出力することで、遅延量保持部140のテスト用ストローブ信号用遅延量保持部に、遅延量算出部220から出力された遅延量が設定され、その遅延量がセレクタ327により選択されて、信号337として、遅延素子部130に出力される。遅延素子部130のストローブ信号用遅延素子407は、これにより、当該遅延量だけ入力された信号を遅延させたストローブ信号を出力する。
 テストアクセス発行部201は、取得した判定元データをメモリ回路190に書き込むためのアクセス要求を調停部170に発行する。調停部170は、テストアクセスを示すアクセス要求を受け付けると、優先してメモリデータ送受信部180に当該アクセス要求を伝達する。そして、メモリ回路190に判定元データを書き込むためのアクセスが実行される。
 メモリ回路190からの書き込み完了を示す信号を受け付けると、テストアクセス発行部201は、次に、メモリ回路190に書き込まれたはずの判定元データを読み出すためのアクセス要求を発行する。そして、当該アクセス要求に応じてメモリ回路190から出力された読取判定元データはテストアクセス発行部201を介して、テストリーダ保持部232に書き込まれる(ステップS803)。
 すると、データ比較部233は、判定元データ保持部231から出力されている判定元データと、テストリードデータ保持部232から出力されている読取判定元データとが一致するかどうかに基づいてテストアクセスの成否を判定する。そして、データ比較部233は、当該テストアクセスの成否を判定結果テーブル234に登録する(ステップS804)。
 遅延量算出部220は、テストアクセスの現在の遅延量で予め定めた回数(ここでは5回)のテストアクセスを実行したかどうかを判定する(ステップS805)。当該判定は自身がテストアクセスを実行した回数をカウンティングして、その回数を保持しておき、その値が予め定めた回数になっているかどうかにより実行される。
 実行していない場合には(ステップS805のNO)、ステップS803に戻る。実行していた場合には(ステップS805のYES)、テスト完了判定部225は、タップ回数保持部223で保持されているタップ回数だけ、遅延量を変化させたかどうかに基づいて、予め定められている全遅延量でのテストアクセスを実行しているかどうかを判定する(ステップS806)。
 実行していない場合には(ステップS806のNO)、ステップS802に戻る。実行していた場合には(ステップS806のYES)、テスト完了判定部225は、その旨を最適値設定部226に通知する。当該通知を受けて最適値設定部226は、OK/NG判定部230から判定結果テーブル234を取得する。
 最適値設定部226は、取得した判定結果テーブル234のうち、各遅延量について、そのテストアクセスの成否が全て成功となっている遅延量を検索する。そして、テストアクセスの成否が全て成功となっている遅延量について、その遅延量の平均値を最適な遅延量として算出する。そして、算出した遅延量を遅延量保持部140の現行ストローブ信号用遅延量保持部に設定して(ステップS807)、テストアクセス処理を終了する。
 以上の動作により、遅延調整部100は、初期化タイミングやリセットタイミング以外のタイミング、即ち、システム動作中であっても遅延調整を行って、データ信号とストローブ信号のずれを修正することができる。
<実施の形態2>
 上記実施の形態1においては、使用しているメモリバンド幅が、所定閾値を下回っている場合に、遅延調整を実行する手法を説明した。しかし、半導体集積回路10とメモリ回路190との間で、所定の閾値以上でデータ転送を継続していると、上記実施の形態1に示した半導体装置1では、遅延調整を実行できない場合が発生する。
 そこで、本実施の形態2においては、そのような事態にも対処できる遅延調整部を備えた半導体装置2を開示する。
<構成>
 図9が実施の形態2に係る半導体装置2の機能構成を示す機能ブロック図であり、図10が実施の形態2に係るテストアクセス部950の機能構成を示す機能ブロック図である。実施の形態2に係る半導体装置20は、実施の形態1と異なり、遅延調整部900を備える。遅延調整部900と実施の形態1に示した遅延調整部100との相違点は、テストアクセス部950を備えることにあり、テストアクセス部950とテストアクセス部150との相違点は、テスト開始判定部210の変わりにテスト開始判定部1210を備えていることにある。
 テストアクセス部950の違いは、実施の形態1においては、使用しているメモリバンド幅が所定の閾値未満になっているタイミングで遅延調整を実行していたのに対し、半導体装置2の起動時から所定の時間が経過するごとに遅延調整を実行する点にある。
 図10に示すようにテスト開始判定部1210は、テスト条件設定部1211と、経過時間測定部1212と、テスト開始判定部1213を含んで構成される。
 テスト条件設定部1211は、テストアクセスを実行するための条件を保持し、当該条件を判定部213に通知する機能を有する。当該条件は、前回、遅延調整を行ってから、所定時間が経過することである。
 経過時間測定部1212は、経過した時間を計測するタイマであり、カウントしている時刻を判定部213に通知する機能を有する。経過時間測定部1212は、テストアクセスを実行するごとにタイマをリセットする。
 テスト開始判定部1213は、テスト条件設定部1211から通知された時間が経過したかどうかを、経過時間測定部1212から通知される時刻に基づいて判定する機能を有する。テスト開始判定部1213は、テスト条件設定部1211から通知された時間が経過していた場合、テスト状態保持部202が保持する動作状態を通常状態からテスト状態に変更する。
<動作>
 ここで、実施の形態2に係る半導体装置2の動作を説明する。ここでは、実施の形態1に示した動作と共通する点においては、説明を割愛するものとし、相違点についてのみ説明する。
 図11が実施の形態2に係る半導体装置2の動作を示すフローチャートである。図11に示すフローチャートにおいて、図7に示したフローチャートと同じステップ番号をふった動作については同様の動作をするものとしてその説明を割愛するものとする。
 実施の形態2における動作が異なる点は、図11に示すフローチャートのステップS1103の動作である。即ち、テストアクセス開始、つまり遅延調整開始のための条件判定が異なる。
 テスト開始判定部1010のテスト開始判定部1013は、テスト条件設定部1011に設定されている時間が経過したかどうかを、経過時間測定部1012から通知された時間に基づいて判定する(ステップS1103)。そして、所定時間が経過していた場合に(ステップS1103のYES)、遅延調整の処理、即ちテストアクセス処理を開始する(ステップS704以降の処理)。
 これにより、半導体装置2の起動から、所定時間が経過するごとに遅延調整部900は、強制的に遅延調整を実行することができるので、半導体集積回路20とメモリ回路190との間で延々データ転送が実行されていてテストアクセスを実行できない状態であったとしてもデータ信号とストローブ信号とのずれを調整することができる。また、テストアクセスのために用いるメモリ領域に格納されているデータは一旦データ退避部120に退避されることになるので、元々そこにあったデータは、テストアクセス後に復元でき、システム動作になんら支障をきたさない構成とすることができる。
<補足>
 上記実施の形態において、本発明の実施の手法について説明してきたが、本発明の実施形態がこれに限られないことは勿論である。以下、上記実施形態以外に本発明として含まれる各種の変形例について説明する。
(1)上記実施の形態1と上記実施の形態2において、使用しているメモリバンド幅が所定の閾値以下の場合と、予め定められた時間ごとという場合とで遅延調整を実行する例を示したが、両実施形態を組み合わせて、遅延調整部は、両方の場合で遅延調整を実行する構成としてもよい。即ち、メモリバンド幅を監視し、所定の閾値以下になったタイミングで遅延調整を実行するとともに、所定の時間が経過するごとにも遅延調整を強制的に実行する構成としてもよい。当該構成にすることにより、一方のみを実行する場合に比して、よりデータ信号とストローブ信号のずれが発生してデータ通信に失敗する確率を低減できる。
(2)上記実施の形態1においては、使用されているメモリバンド幅が所定の閾値未満であった場合には、必ずテストアクセスを実行する構成となっていたが、これは、毎回必ず実行しない構成としてもよい。例えば、前回遅延調整を行ってから、所定時間が経過していない間はテストアクセスを実行しない構成としてもよい。これにより、半導体集積回路10の処理負担を軽減することができる。
(3)上記実施の形態においては、第1転送マスタ部160はデータ信号とストローブ信号とを同時に出力し、ストローブ信号用遅延素子部でストローブ信号を遅延させてメモリ回路190に出力することで、メモリ回路190にデータを読み取らせる構成を示した。
 しかし、第1転送マスタ部160がデータの出力側となる場合には、ストローブ信号用遅延素子部に出力用の遅延素子を配さずに、第1転送マスタ部でデータ信号を出力するタイミングから定められた時間だけ遅延させてストローブ信号を出力する構成としてもよい。
(4)上記実施の形態においては、遅延量を決定する際に、現行の遅延量の前後30psまで、10ps単位で計7個の遅延量分のテストアクセスを実行してデータ転送の成否を判定したが、これは、遅延量を決定するに足るデータが取得できるのであれば、例えば前後20psまで、10ps単位で計5個の遅延量分だけの成否を判定するだけでもよい。測定した遅延量の個数が少なければ、遅延量を決定するための時間を短縮でき、個数が多ければ決定した遅延量の信頼度を増すことができる。
 また、各遅延量についても5回テストアクセスを実行して、データ転送の成否を判定したが、この回数も5回に限るものではなく、例えば、1回、あるいは、4回、あるいは7回などであってもよい。回数が少なければ、遅延量を決定するための時間を短縮でき、回数が多ければ決定した遅延量の信頼度を増すことができる。
 また、上記実施の形態においては、遅延量を10ps単位でずらしてデータ転送の成否を判定したが、遅延素子の遅延量に応じて、5psあるいは20ps単位であってもよい。
 また、上記実施の形態においては、遅延量それぞれについて5回全てデータ転送が成功したものを選択して、その平均をとることとしたが、テストアクセスを実行した各遅延量について、5回のうち何回成功したかの割合をかけて得られる各遅延量の平均値をとる構成にしてもよい。
(5)上記実施の形態において、システムの動作状態、とりわけ、動作温度によって、データ信号とストローブ信号とのずれが発生し得ることを記載した。そこで、その温度に応じて、遅延量を決定する構成をここに開示する。当該構成を実現するために、予めシステムをその動作温度に応じての最適な遅延量を予め実機のシミュレーションにより測定しておく。当該シミュレーションにより得られた遅延量の最適値は、温度別遅延情報として遅延調整部が記憶しておく。
 その遅延調整部を含む半導体装置の構成を図12に示す。図12に示した遅延調整部1200は、実施の形態1に示したものに加え、更に、温度センサ1201を備える。
 温度センサ1201は、周囲の温度を測定する機能を有し、測定した温度を定期的(例えば、30秒毎)にテストアクセス部150に通知する機能を有する。
 図13に示すように、テストアクセス部150の遅延量算出部1220は、実施の形態1の遅延量算出部220に示したものに加え、更に、温度別遅延情報1301を保持している。
 図14に温度別遅延情報1301の構成例を示す。図14は、温度別遅延情報1301の一構成例を示すデータ概念図である。
 図14に示すように温度別遅延情報は、温度センサ1201が測定した温度1401と、そのときの、システムが使用する全メモリバンド幅1402に応じた遅延量を示す情報である。なお、図14に示した遅延量で示される値は、一例であって、システムに応じて異なることは言うまでもなく、搭載されるシステムに応じた最適な値が規定されることとなる。当該値は、半導体装置3の出荷前の動作シミュレーション等により取得する。
 当該温度別遅延情報では、温度は、40度未満と、40度以上の場合とで、分けられており、バンド幅は、1200Mbps、2400Mbpsの場合とで分けられている。なお、ここに示したのは、一事例であって、温度及びバンド幅はより細かく細分化されていてもよいし、メモリバンド幅は、固定の値ではなく、所定の幅、例えば、1000Mbps~2000Mbpsなどという形で規定されていてもよい。
 テストアクセス部1250は、テストアクセスを実行するタイミングにおいて、温度センサ1201が通知してきた温度に基づいて、基本遅延量を決定する。
 そして、上記実施の形態1に示したように、タップ回数で示される分だけ、この基本遅延量を10ps単位で前後させて、それぞれ5回ずつデータ転送の成否を計測する。そして、データ転送が5回とも成功した遅延量の平均値を新たな、遅延量として設定する。
 この構成を備えることにより、システムの温度状況に合わせた適切な遅延量設定を行うことができる。
 なお、当該構成は実施の形態2に示した遅延調整部900が保持するものであってもよい。また、温度別遅延情報1301に示される遅延量は、システムの起動時、リセット時に設定される遅延量として用いられてもよい。
 また、温度センサ1201を備える場合に、当該温度センサ1201が示す温度が所定の温度を超えた場合(例えば40℃を超えた場合)をテストアクセス実行の契機とする構成にしてもよい。半導体集積回路10の動作温度に応じて、データ信号とストローブ信号とのずれが発生することがあるので、その事態に対応することができる。温度センサ1201の温度を遅延調整の条件とする場合には、温度別遅延情報の有用性は更に高まる。
(6)上記実施の形態において、遅延素子部では、遅延量保持部140から指示される遅延量に応じて、セレクタ503、504が1つの遅延素子からの出力信号を選択して出力する構成とした。これは、以下のような構成にしてもよい。
 即ち、図5に示すように遅延素子を直列に接続するのではなく、遅延量がそれぞれ異なる遅延素子(ストローブ信号を10ps遅延させる遅延素子、20ps遅延させる遅延素子、・・・100ps遅延させる遅延素子・・・)を並列に配する。そして、判定元データをそれぞれの遅延素子から出力されたストローブ信号で示されるタイミングでメモリ回路190のそれぞれ異なる領域に書き込み、それぞれ異なる領域に書き込んだデータを読み取って、読み取った各読取判定元データと判定元データとを比較してデータ転送の成否を判定する構成としてもよい。これにより、テストアクセス時に遅延量を変化させながらのテストアクセスを実行せずにすみ、例えば、上記実施の形態1では遅延量7つ分のテストアクセスをそれぞれ5回、計35回のテストアクセスを実行したのに対し、遅延素子を並列に配すると、5回のテストアクセスのみですみ、テストアクセスに要する時間を短縮することができる。
(7)上記実施の形態において示した遅延量は、秒単位で説明したが、これは、信号をどれだけ遅延させるかを規定できるものであればよく、秒以外の単位、即ち、位相(度)で遅延量を規定することとしてもよい。この場合、上記実施の形態に示す遅延調整部は、位相調整部と銘打つのが妥当であり、上記実施の形態における遅延量は、位相変化量として、ストローブ信号の位相を何度遅らせるのかを規定するものとなる。
(8)上記実施の形態においては、一度テストアクセスが開始されると最後までテストアクセスを実行して、遅延量を更新する構成としたが、メモリバンド幅がテストアクセス中に所定の閾値以上になった場合に、テストアクセスを中断する構成としてもよい。
 このとき、テストアクセスのデータ(どの遅延量でテストアクセスを実行したか、テストアクセスによるデータ転送の成否の情報)をメモリ等に残しておき、中断後再びメモリバンド幅が所定の閾値未満になった場合に、中断したところからテストアクセスを継続する構成としてもよい。また、テストアクセスを中断後、メモリバンド幅が所定閾値未満になった場合に、再度最初からテストアクセスを実行してもよい。
(9)上記実施の形態1においてメモリバンド幅監視部212は、1分ごとのメモリバンド幅を監視する構成となっているが、これは、1分ごとに限定されるものではなく、システムの動作環境に応じて、変更してもよく、例えば、20秒ごとであってもよいし、2分ごとであってもよい。
(10)図1、2、3、4、9、10、12、13に示した半導体装置1、2、3の各機能部は集積化されて1又は複数のLSI(Large Scale Integration)により実現されてもよい。また、複数の機能部が1のLSIにより実現されてもよい。
 LSIは集積度の違いにより、IC(Integrated Circuit)、システムLSI、VLSI(Very Large Scale Integration)、SLSI(Super Large Scale Integration)、ULSI(Ultra Large Scale Integration)などと呼称されることもある。
 また、集積回路化の手法はLSIに限られるものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 さらに、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
(10)上述の実施形態で示した遅延調整に係る動作、遅延量の設定処理等(図7、8等参照)を民生機器等のプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路(例えば、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク)等を介して流通させ頒布させることもできる。このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより、実施形態で示したような各種機能が実現されるようになる。
(11)以下に本発明に係る遅延調整装置の実施態様とその効果について説明する。
 本発明に係る遅延調整装置は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器に搭載され、ストローブ信号の遅延調整を行う遅延調整装置であって、前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視部と、前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整手段とを備える。
 また、本発明は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視ステップと、前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む。
 これにより、遅延調整装置は、データ転送を実行する機器と、当該装置に接続されている外部メモリ間で使用されているメモリバンド幅に応じて、遅延調整を実行することができる。これによって、遅延調整装置は、例えば、機器と外部メモリの間でのデータ転送を実行している場合には、使用しているメモリバンド幅が大きくなるので、実際にデータ転送を行って、その成否によって遅延量を決定する遅延調整を実行するのには適さないが、データ転送を実行していない、あるいは、その転送量が少ない場合には、遅延調整を実行することができる。
 また、前記遅延調整手段は、前記メモリバンド幅が所定の閾値を下回った場合に、前記遅延調整を実行することとしてもよい。
 これにより、メモリバンド幅が所定の閾値未満になったタイミングを契機として遅延調整を開始することができる。
 また、前記遅延調整装置は、更に、遅延調整を行うための条件を定めた遅延調整条件情報を記憶する記憶手段を備え、前記遅延調整手段は、前記記憶手段に記憶されている遅延調整条件情報で定められる条件が成立した場合にも前記遅延調整を実行することとしてもよい。
 また、前記所定の条件とは、自装置が起動してから、所定時間が経過するごとであることとしてもよい。
 また、本発明は、外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、前回行った遅延調整から所定時間が経過したか否かを判定する判定ステップと、前記判定ステップが肯定的な判定をした場合に、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む。
 これにより、メモリバンド幅が所定の閾値未満とならずとも、定期的に遅延調整を実行する構成とすることができ、データ信号とストローブ信号とのずれを発生しにくくすることができる。
 また、前記遅延調整手段は、前記外部メモリから出力されるストローブ信号を所定量だけ遅延させて、自装置から前記外部メモリにデータ転送の成否の判定に用いる判定元データを書き込み、当該書き込んだデータを読み取り、読みとったデータと判定元データとを比較してデータ転送の成否を判定して、データ転送に適したストローブ信号の遅延量を決定することで前記遅延調整を実行することとしてもよい。
 これにより、実際にデータ転送を行って、その成否を判定した実データに基づいて、遅延量を決定することにより、データ転送が確実に行える遅延量を決定することができる。
 また、前記遅延調整装置は、更に、前記遅延調整手段が前記遅延調整を実行する前に、前記内部メモリの前記仮データを書き込む領域に記憶されているデータを退避させるためのメモリデータ退避手段を備えることとしてもよい。
 これにより、遅延調整を行うにあたって、実際にデータ転送を実行して、データの書き込みを行う場合に、元々あったデータを退避させることにより、遅延調整を行ったあとでデータを復元することができる。
 本発明に係る遅延調整装置は、データラインに乗るデータ信号をストローブ信号で示されるタイミングで読み取ることが規定されているデータ通信を実行する装置において有用である。
1 半導体装置
10 半導体集積回路
100 遅延調整部
110 アクセス先変換部
111 変換テーブル
120 データ退避部
130 遅延素子部
140 遅延量保持部
150 テストアクセス部
160 第1転送マスタ部
170 調停部
180 メモリデータ送受信部
190 メモリ回路
201 テスト領域指定部
202 テスト状態保持部
203 テスト領域設定部
204 テストフラグ保持部
205 退避フラグ保持部
210 テスト開始判定部
211 テスト条件設定部
212 メモリ幅監視部
213 テスト開始判定部
220 遅延量算出部
221 遅延素子指定部
222 遅延タップ量保持部
223 タップ回数保持部
224 テスト遅延量算出部
225 テスト完了判定部
226 最適値設定部
230 OK/NG判定部
231 判定元データ保持部
232 テストリードデータ保持部
233 データ比較部
234 判定結果テーブル
301 現行制御ライン信号ビット0用遅延量保持部301
302 現行制御ライン信号ビット1用遅延量保持部302
303 現行アドレスビット0用遅延量保持部303
304 現行アドレスビット1用遅延量保持部
305 現行データ信号ビット0用遅延量保持部
306 現行データ信号ビット1用遅延量保持部
307 現行ストローブ信号用遅延量保持部
311 テスト用制御ライン信号ビット0用遅延量保持部
312 テスト用制御ライン信号ビット1用遅延量保持部
313 テスト用アドレスビット0用遅延量保持部
314 テスト用アドレスビット1用遅延量保持部
315 テスト用データ信号ビット0用遅延量保持部
316 テスト用データ信号ビット1用遅延量保持部
317 テスト用ストローブ信号用遅延量保持部
321~327 セレクタ
401 制御ライン信号ビット0用遅延素子部
402 制御ライン信号ビット1用遅延素子部
403 アドレス信号ビット0用遅延素子部
404 アドレス信号ビット1用遅延素子部
405 データ信号ビット0用遅延素子部
406 データ信号ビット1用遅延素子部
407 ストローブ信号遅延素子部
501a~501n、502a~502n 遅延素子
503、504 セレクタ

Claims (9)

  1.  外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器に搭載され、ストローブ信号の遅延調整を行う遅延調整装置であって、
     前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視部と、
     前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整手段とを備える
     ことを特徴とする遅延調整装置。
  2.  前記遅延調整手段は、前記メモリバンド幅が所定の閾値を下回った場合に、前記遅延調整を実行する
     ことを特徴とする請求項1記載の遅延調整装置。
  3.  前記遅延調整装置は、更に、
     遅延調整を行うための条件を定めた遅延調整条件情報を記憶する記憶手段を備え、
     前記遅延調整手段は、前記記憶手段に記憶されている遅延調整条件情報で定められる条件が成立した場合にも前記遅延調整を実行する
     ことを特徴とする請求項1記載の遅延調整装置。
  4.  前記所定の条件とは、自装置が起動してから、所定時間が経過するごとである
     ことを特徴とする請求項3記載の遅延調整装置。
  5.  前記遅延調整手段は、前記外部メモリから出力されるストローブ信号を所定量だけ遅延させて、自装置から前記外部メモリにデータ転送の成否の判定に用いる判定元データを書き込み、当該書き込んだデータを読み取り、読みとったデータと判定元データとを比較してデータ転送の成否を判定して、データ転送に適したストローブ信号の遅延量を決定することで前記遅延調整を実行する
     ことを特徴とする請求項2記載の遅延調整装置。
  6.  前記遅延調整手段は、前記外部メモリから出力されるストローブ信号を所定量だけ遅延させて、自装置から前記外部メモリにデータ転送の成否の判定に用いる判定元データを書き込み、当該書き込んだデータを読み取り、読みとったデータと判定元データとを比較してデータ転送の成否を判定して、データ転送に適したストローブ信号の遅延量を決定することで前記遅延調整を実行する
     ことを特徴とする請求項4記載の遅延調整装置。
  7.  前記遅延調整装置は、更に、
     前記遅延調整手段が前記遅延調整を実行する前に、前記内部メモリの前記仮データを書き込む領域に記憶されているデータを退避させるためのメモリデータ退避手段を備える
     ことを特徴とする請求項4記載の遅延調整装置。
  8.  外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、
     前記外部メモリと前記機器との間の通信におけるデータ転送量を示すメモリバンド幅を監視し、逐次当該メモリバンド幅を示すメモリバンド情報を出力するメモリバンド幅監視ステップと、
     前記メモリバンド情報で示されるメモリバンド幅に応じて、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む
     ことを特徴とする遅延調整方法。
  9.  外部メモリと、データ信号がのるデータラインと、データラインにのっているデータ信号を読み取るタイミングを規定するストローブ信号がのるストローブラインとで接続される機器間において、遅延調整装置がストローブ信号の遅延調整を行う遅延調整方法であって、
     前回行った遅延調整から所定時間が経過したか否かを判定する判定ステップと、
     前記判定ステップが肯定的な判定をした場合に、前記データ信号と、前記ストローブ信号との遅延調整を行う遅延調整ステップとを含む
     ことを特徴とする遅延調整方法。
PCT/JP2010/003568 2009-05-27 2010-05-27 遅延調整装置、遅延調整方法 WO2010137330A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP10780290A EP2437175A1 (en) 2009-05-27 2010-05-27 Delay adjustment device and delay adjustment method
JP2011515902A JPWO2010137330A1 (ja) 2009-05-27 2010-05-27 遅延調整装置、遅延調整方法
CN2010800023484A CN102124451A (zh) 2009-05-27 2010-05-27 延迟调整装置以及延迟调整方法
US13/056,020 US8363492B2 (en) 2009-05-27 2010-05-27 Delay adjustment device and delay adjustment method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009127341 2009-05-27
JP2009-127341 2009-05-27

Publications (1)

Publication Number Publication Date
WO2010137330A1 true WO2010137330A1 (ja) 2010-12-02

Family

ID=43222456

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/003568 WO2010137330A1 (ja) 2009-05-27 2010-05-27 遅延調整装置、遅延調整方法

Country Status (5)

Country Link
US (1) US8363492B2 (ja)
EP (1) EP2437175A1 (ja)
JP (1) JPWO2010137330A1 (ja)
CN (1) CN102124451A (ja)
WO (1) WO2010137330A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168665A (ja) * 2011-02-13 2012-09-06 Ricoh Co Ltd メモリ制御装置、画像処理装置、メモリ制御方法、メモリ制御プログラム及び記録媒体
JP2013058209A (ja) * 2011-09-08 2013-03-28 Apple Inc ダイナミックデータストローブ検出
JP2013183381A (ja) * 2012-03-02 2013-09-12 Nec Network Products Ltd 半導体装置、半導集積回路の制御方法およびそのプログラム
JP2015532488A (ja) * 2012-10-05 2015-11-09 クアルコム,インコーポレイテッド 外部メモリチューニングシーケンスの最適使用のためのアルゴリズム
JP2018173782A (ja) * 2017-03-31 2018-11-08 ルネサスエレクトロニクス株式会社 半導体装置およびタイミング較正方法
KR20190120440A (ko) * 2017-03-21 2019-10-23 마이크론 테크놀로지, 인크. 입력 수신기를 위한 타이밍 제어
JP2019536136A (ja) * 2016-10-21 2019-12-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated プラットフォームマージニング及びデバッグのためのソフトウェアモードレジスタアクセス
JP2020166874A (ja) * 2015-08-24 2020-10-08 エスアールシー ラボス、エルエルシー メモリモジュールまたはサブシステムと併置されたデータメンテナンスブロックを組み込んだdramメモリコントローラを用いて再構成可能なデバイスを再プログラミングする場合にdramデータを保持するシステムおよび方法
CN113781463A (zh) * 2021-09-17 2021-12-10 成都理工大学 一种定量评价碳酸盐岩烃源岩眼皮的方法、系统

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8675475B2 (en) * 2011-08-22 2014-03-18 International Business Machines Corporation Techniques for recovery of wireless services following power failures
JP2013065372A (ja) * 2011-09-16 2013-04-11 Elpida Memory Inc 半導体装置およびそれを利用した情報処理システム
US9911470B2 (en) 2011-12-15 2018-03-06 Nvidia Corporation Fast-bypass memory circuit
CN103632712A (zh) * 2012-08-27 2014-03-12 辉达公司 存储单元和存储器
US9685207B2 (en) 2012-12-04 2017-06-20 Nvidia Corporation Sequential access memory with master-slave latch pairs and method of operating
US9386062B2 (en) * 2012-12-28 2016-07-05 Qualcomm Incorporated Elastic response time to hypertext transfer protocol (HTTP) requests
US10141930B2 (en) 2013-06-04 2018-11-27 Nvidia Corporation Three state latch
US20150046646A1 (en) * 2013-08-07 2015-02-12 Ihab H. Elzind Virtual Network Disk Architectures and Related Systems
JP6417094B2 (ja) * 2013-12-18 2018-10-31 キヤノン株式会社 記録再生装置、記録再生装置の制御方法及びコンピュータプログラム
US20160248829A1 (en) * 2015-02-23 2016-08-25 Qualcomm Incorporated Availability Start Time Adjustment By Device For DASH Over Broadcast
JP6171066B1 (ja) * 2016-09-01 2017-07-26 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN108664424B (zh) * 2017-03-30 2020-06-23 炬芯(珠海)科技有限公司 一种确定最优延时的方法及设备
US10691372B1 (en) * 2018-12-07 2020-06-23 Western Digital Technologies, Inc. Transistor threshold voltage maintenance in 3D memory
CN113450867B (zh) * 2020-03-27 2022-04-12 长鑫存储技术有限公司 形成用于存储器测试的数据库的方法及存储器测试方法
CN112667551B (zh) * 2021-03-17 2021-07-06 武汉精立电子技术有限公司 一种基于相位自适应的qspi传输数据的方法及系统
CN115862707B (zh) * 2022-11-25 2024-03-12 湖南兴芯微电子科技有限公司 一种psram相位校准方法及控制器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154907A (ja) * 1999-11-29 2001-06-08 Nec Kofu Ltd 遅延調整回路及び情報処理装置
WO2002001363A1 (fr) * 2000-06-27 2002-01-03 Matsushita Electric Industrial, Co., Ltd. Dispositif et procede de commande de memoire
JP2003099321A (ja) * 2001-09-21 2003-04-04 Ricoh Co Ltd メモリ制御装置
US6593930B1 (en) * 1999-12-16 2003-07-15 Intel Corporation Method and apparatus to execute a memory maintenance operation during a screen blanking interval
JP2006134196A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd ディスクアレイ装置
JP2007202033A (ja) 2006-01-30 2007-08-09 Elpida Memory Inc タイミング調整回路及び半導体装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570944B2 (en) 2001-06-25 2003-05-27 Rambus Inc. Apparatus for data recovery in a synchronous chip-to-chip system
JP2923860B2 (ja) 1990-07-06 1999-07-26 石川島播磨重工業株式会社 熱可塑性樹脂frp
TW401539B (en) * 1997-08-04 2000-08-11 Matsushita Electric Ind Co Ltd Delay time adjuster and adjusting method between multiple transmission lines
US6918048B2 (en) * 2001-06-28 2005-07-12 Intel Corporation System and method for delaying a strobe signal based on a slave delay base and a master delay adjustment
US7543172B2 (en) * 2004-12-21 2009-06-02 Rambus Inc. Strobe masking in a signaling system having multiple clock domains
US7698589B2 (en) * 2006-03-21 2010-04-13 Mediatek Inc. Memory controller and device with data strobe calibration
US8122275B2 (en) * 2006-08-24 2012-02-21 Altera Corporation Write-leveling implementation in programmable logic devices
JP5119828B2 (ja) * 2007-09-25 2013-01-16 株式会社デンソー タイミング調整装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154907A (ja) * 1999-11-29 2001-06-08 Nec Kofu Ltd 遅延調整回路及び情報処理装置
US6593930B1 (en) * 1999-12-16 2003-07-15 Intel Corporation Method and apparatus to execute a memory maintenance operation during a screen blanking interval
WO2002001363A1 (fr) * 2000-06-27 2002-01-03 Matsushita Electric Industrial, Co., Ltd. Dispositif et procede de commande de memoire
JP2003099321A (ja) * 2001-09-21 2003-04-04 Ricoh Co Ltd メモリ制御装置
JP2006134196A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd ディスクアレイ装置
JP2007202033A (ja) 2006-01-30 2007-08-09 Elpida Memory Inc タイミング調整回路及び半導体装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168665A (ja) * 2011-02-13 2012-09-06 Ricoh Co Ltd メモリ制御装置、画像処理装置、メモリ制御方法、メモリ制御プログラム及び記録媒体
JP2013058209A (ja) * 2011-09-08 2013-03-28 Apple Inc ダイナミックデータストローブ検出
JP2013183381A (ja) * 2012-03-02 2013-09-12 Nec Network Products Ltd 半導体装置、半導集積回路の制御方法およびそのプログラム
JP2015532488A (ja) * 2012-10-05 2015-11-09 クアルコム,インコーポレイテッド 外部メモリチューニングシーケンスの最適使用のためのアルゴリズム
JP2020166874A (ja) * 2015-08-24 2020-10-08 エスアールシー ラボス、エルエルシー メモリモジュールまたはサブシステムと併置されたデータメンテナンスブロックを組み込んだdramメモリコントローラを用いて再構成可能なデバイスを再プログラミングする場合にdramデータを保持するシステムおよび方法
JP2019536136A (ja) * 2016-10-21 2019-12-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated プラットフォームマージニング及びデバッグのためのソフトウェアモードレジスタアクセス
JP7181863B2 (ja) 2016-10-21 2022-12-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド データ処理システム、データプロセッサ及び方法
KR20190120440A (ko) * 2017-03-21 2019-10-23 마이크론 테크놀로지, 인크. 입력 수신기를 위한 타이밍 제어
KR102287130B1 (ko) * 2017-03-21 2021-08-09 마이크론 테크놀로지, 인크. 입력 수신기를 위한 타이밍 제어
JP2018173782A (ja) * 2017-03-31 2018-11-08 ルネサスエレクトロニクス株式会社 半導体装置およびタイミング較正方法
CN113781463A (zh) * 2021-09-17 2021-12-10 成都理工大学 一种定量评价碳酸盐岩烃源岩眼皮的方法、系统

Also Published As

Publication number Publication date
JPWO2010137330A1 (ja) 2012-11-12
CN102124451A (zh) 2011-07-13
US20110128060A1 (en) 2011-06-02
EP2437175A1 (en) 2012-04-04
US8363492B2 (en) 2013-01-29

Similar Documents

Publication Publication Date Title
WO2010137330A1 (ja) 遅延調整装置、遅延調整方法
US6316980B1 (en) Calibrating data strobe signal using adjustable delays with feedback
US10990322B2 (en) Memory buffer chip, memory system and method of controlling the memory buffer chip
US20130326257A1 (en) Memory device, host device, and sampling clock adjusting method
US9740556B2 (en) Semiconductor memory apparatus and operating method thereof
US10162406B1 (en) Systems and methods for frequency mode detection and implementation
EP2808800B1 (en) Multiple data rate memory with read timing information
US8489912B2 (en) Command protocol for adjustment of write timing delay
JPWO2006030904A1 (ja) 半導体装置、及び通信制御方法
JP5331902B2 (ja) 信号復元回路、レイテンシ調整回路、メモリコントローラ、プロセッサ、コンピュータ、信号復元方法及びレイテンシ調整方法
KR20120062870A (ko) 에러 검출 기법들에 의거한 메모리 쓰기 타이밍의 조정
JP2012098996A (ja) メモリインターフェース回路及び半導体装置
US7949080B2 (en) Phase adjusting function evaluating method, transmission margin measuring method, information processing apparatus and computer readable information recording medium
JP5807952B2 (ja) メモリコントローラ及びメモリ制御方法
JP2011170516A (ja) メモリコントローラ、半導体記憶装置およびこれらを備えるメモリシステム
JP5454702B2 (ja) 集積回路、電圧値取得方法および送受信システム
JP5427564B2 (ja) メモリインターフェース回路、及びメモリデバイスのドライブ能力調整方法
US8842485B2 (en) Delay circuit, delay controller, memory controller, and information terminal
JP2007087467A (ja) データ転送動作終了検知回路及びこれを備える半導体記憶装置
JP2007094603A (ja) プログラマブルデバイス制御装置およびプログラマブルデバイス制御方法
US20100277993A1 (en) Method for Tuning Control Signal Associated with at Least One Memory Device
WO2023064729A1 (en) Dynamic setup and hold times adjustment for memories
WO2002001363A1 (fr) Dispositif et procede de commande de memoire
JP2004326690A (ja) 制御装置
JP2005094597A (ja) 遅延制御装置

Legal Events

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

Ref document number: 201080002348.4

Country of ref document: CN

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

Ref document number: 10780290

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2011515902

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2010780290

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 13056020

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE