u03b8 c has an upper limit u03b8 cmax to eliminate a retard angle beyond the upper limit steps s12 and s13 an ultimate ignition timing u03b8 for the subsequent ignition is computed pursuant to u03b8 u03b8 b u03b8 c and set into an ignition timer step s14 an acceleration advance angle counter ac a delay counter dc and a normal advance angle counter a all operable in terms of a software are then cleared to zero step s15 thereafter it is examined by an acceleration advance angle flag whether the present advance angle rate is increasing step s16 the acceleration advance angle flag is raised on only while the advance angle rate is increasing when this flat is on with the advance angle rate increasing a knock counter kc is counted up by one step s17 this knock counter kc operable in terms of a software is adapted to indicate how many knocks are generated after the advance angle rate has increased when the value of the knock counter kc reaches a predetermined value kc o for example 1 or 2 step s18 it is judged that a limit ignition timing for a knock under normal running is reached and the advance angle rate is returned to an initial small value to this end the acceleration advance angle flag and a delay flag are rendered off and the knock counter is also reset to zero step s19 subsequently or when the acceleration advance angle flag is rendered off as previously the value of the cycle counter c is examined step s20 when the value of the cycle counter c is zero wherein the generation interval of relatively large knocks is small it.