Which variant of the D16 do you have? If its the distributor one, the timing may be set to too advanced. Have the timing adjusted with a strobe gun. In case of the dli version, have the knock sensor checked. It may not be registering the knock, thus not informing the ecu to retard the timing when the engine knocks.