Вот решил спросить у знатоков процессоров. Вроди и себя не последним балбесом считал, ну да ладно В общем в этом топике http://forum.sources.ru/index.php?showtopic=166026&st=0 человек мне доказывает что два проца: 8086 133MHz и 386 133MHZ будут работать с разной скоростью. Т.е. например по даташитам clc занимает 2 такта как на 8086, так и на 386. Так вот он утверждает что это некие "системные" такты. И при одинаковой тактовой частоте 2 такта на 386 по времени будет меньше чем 2 такта на 8086 %) И я вот думаю - или я ваще ничего не понимаю, или он про какие-то не те такты мне толкует... В общем если кто может разъясните.
частота процессора - частота импульсов, поступающих на вход синхронизации процессора. машинный такт может совпадать с периодом тактовых импульсов, а может и нет. вроде как у 8086 такт был равен периоду, а затем за период стали выполнять два такта - один по положительному фронту, другой - по отрицательному, но когда это стали делать - с 386 или с 486 - не скажу. (могу и ошибаться, в принципе)
Так, уже вроди понятней. Я наверное в оригинальном посте непрально понял "системные такты" и "такты кварца"... Один вопрос: такт - это время выполнения микрооперации? Т.е. выходит что при одинаковой тактовой частоте длительность такта по факту у 386 будет в два раза меньше?
так нельзя сказать. такт - это такт. есть всякие диаграммы работы процессоров, на которых нарисовано, что выполняется за машинный такт, но я такие смотрел только для КР580ВМ80А (он довольно прост), поэтому сказать точно не могу. возможно, команда может состоять из микроопераций, но это совсем не значит, что они должны выполняться именно за один такт. такт - это один переход во внутреннем автомате процессора. также я сказал, что не помню, с какого процессора появилось такое "удвоение" - вполне возможно, что с 486 - нужно смотреть мануалы. по 386-м еще можно найти в сети, хотя уже с трудом - может, там и есть.
Помимо тактов есть еще такое понятие как машинный цикл, длительность которого различна у разных процев ... под временем выполнения команды обычно подразумевают именно кол-во машинных циклов. Т.е. вполне возможно что команда CLC выполняется за 2 цикла, но на 8086 машинный цикл может занимать больше тактов генератора чем на 80386. Кроме того для многих команд в процессе разработки процев изменялись внутренние реализации комманд и многие команды на 80386 потребуют меньше машинных циклов чем на 8086.