Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых)

 eXeL@B —› Программирование —› Кол-во микроопераций
Посл.ответ Сообщение

Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 21 июня 2006 03:06
· Личное сообщение · #1

Как определить какое кол-во микроопераций требуется для выполнения
какой-либо макрокоманды и возможно ли это вообще?



Ранг: 23.8 (новичок)
Активность: 0.020
Статус: Участник

Создано: 21 июня 2006 03:27
· Личное сообщение · #2

"макрокоманды" это чё такое просвети



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 21 июня 2006 03:30
· Личное сообщение · #3

mov, test, popad и т.д и т.п



Ранг: 23.8 (новичок)
Активность: 0.020
Статус: Участник

Создано: 21 июня 2006 03:32
· Личное сообщение · #4

А чё это они "макро". Скока я на асме кодил и не знал
Всмысле несколько тактов они весят?



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 21 июня 2006 03:34
· Личное сообщение · #5

нет. Просто по научному так называются (это я так. Вы*бнуться решил)



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 21 июня 2006 03:35
· Личное сообщение · #6

Luminescent пишет:
Всмысле несколько тактов они весят?

нет



Ранг: 23.8 (новичок)
Активность: 0.020
Статус: Участник

Создано: 21 июня 2006 03:36
· Личное сообщение · #7

Ну дык че они макро?!



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 21 июня 2006 03:38
· Личное сообщение · #8

Я же объяснил. Для народа они просто команды, а по научному макрокоманды.



Ранг: 23.8 (новичок)
Активность: 0.020
Статус: Участник

Создано: 21 июня 2006 03:44
· Личное сообщение · #9

Ухты йопт... выйобище какоето...
Помоему есть справочники интеловские, по опкодам...



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 21 июня 2006 03:47
· Личное сообщение · #10

Luminescent пишет:
Помоему есть справочники интеловские, по опкодам

Я знаю. А как из опкода узнать сколько процессору нужно декодировать микрокоманд?



Ранг: 23.8 (новичок)
Активность: 0.020
Статус: Участник

Создано: 21 июня 2006 03:50
· Личное сообщение · #11

Есть таблы где усе расписано.
По размеру интрукцыи, если я не ошибаюсь, низзя определить



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 21 июня 2006 03:51
· Личное сообщение · #12

Таблица-то у меня есть. Я думал может можно как-то самому определить.



Ранг: 23.8 (новичок)
Активность: 0.020
Статус: Участник

Создано: 21 июня 2006 03:58
· Личное сообщение · #13

А те зачем ваще? Оптимизируеш штоль тогда кидай сюда кусок, посмотрим




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 21 июня 2006 13:28
· Личное сообщение · #14

В поставку MASM в хелпе что ли лежит где-то файлик, где написано, сколько какая команда на каком проце хавает тактов.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 21 июня 2006 15:00 · Поправил: Bitfry
· Личное сообщение · #15

Мне кажется, что эта тема сложная, во всяком случае, я туда пока не лезу. =)
ИМХО, если что-то подобное можно получить из команд, то оно должно быть описано здесь:
"IA-32 Intel® Architecture
Software Developer’s
Manual
Volume 3:
System Programming Guide".
Глава:
"PERFORMANCE-MONITORING EVENTS".

А пояснения к событиям из таблиц можно найти здесь:
www.sesp.cse.clrc.ac.uk/

ЗЫ Если разберёшься, отпиши пожалуйста здесь.

-----
Всем привет, я вернулся




Ранг: 29.0 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 21 июня 2006 17:25
· Личное сообщение · #16

юзай команды с eax(AL), они короче и быстрее выполняются



Ранг: 6.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 июня 2006 21:15 · Поправил: newbb
· Личное сообщение · #17

[norwed] пишет:
Как определить какое кол-во микроопераций требуется для выполнения
какой-либо макрокоманды и возможно ли это вообще?

Так и не сказал, почему тебе это надо.
Нашел любопитную главу, описывающую P6 (т. е. Pentium Pro):
[url=http://www.cs.swan.ac.uk/~csneal/HPM/p6.html
]http://www.cs.swan.ac.uk/~csneal/HPM/p6.html
[/url]
Там есть такой пассаж:
Instructions are then taken, three at a time, by the instruction decoder. This consists of three separate decoders - two simple, one complex. The simple decoders are able to handle those instructions that can be represented by a single uop, and the complex instructions that are representable by upto four uops are handled by the third decoder. All this can be done in a single clock cycle: most instructions can be represented by a single uop, and most of the rest by four or less. The few remaining possibilities are handled by a microprogrammed decoder, which may take some number of cycles. The IA32 instruction set is complex, and instructions can have various modifiers. The worst case is several hundred uops - however, such cases will be very rare. The actual uops themselves are very similar to typical RISC instructions - three operands: two source, one destination.
В общем, согласно тексту, большинство инструкции транслируется до не более чем 4 uop, однако есть очень редкие случаи, когда могут понадобиться сотни uop. Насколько я понимаю, у Pentium 4 несколько разная архитектура, чем у Pentium III (последний из ряда P6), так что может быть, там трансляция, соотв. количество uop различается.



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 22 июня 2006 18:30
· Личное сообщение · #18

newbb пишет:
Так и не сказал, почему тебе это надо.

Пишу статью по глубокой оптимизации программ на ассемблере путём декодирования команд в микрооперации. Я не хотел ничего пропустить, поэтому спросил.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 июня 2006 19:08
· Личное сообщение · #19

[norwed] пишет:
Пишу статью по глубокой оптимизации программ на ассемблере путём декодирования команд в микрооперации.

Название технически неверное. Декодирует команды процессор и повлиять на это нельзя. Можно только подобрать порядок команд, чтобы конвеер микрокоманд(который в П4 есть) работал оптимально. Можно учесть НТ(hyper threading), можно про кеш вспомнить. Иначе засмеют




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 22 июня 2006 22:09
· Личное сообщение · #20

tundra37
Конвеерный тип обработки далеко не только в П4

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 11.2 (новичок)
Активность: 0.010
Статус: Участник

Создано: 22 июня 2006 22:30
· Личное сообщение · #21

Rascal
Да он вообще появился во времена первых х86 =)




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 22 июня 2006 23:02
· Личное сообщение · #22

mrX
Во-во
tundra37
Так что не выпендриваемся, а учим мат часть, Иначе засмеют ;)

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 23 июня 2006 09:40
· Личное сообщение · #23

tundra37:
Наверное я знаю про что пишу. Не надо меня учить.
tundra37 пишет:
Можно учесть НТ(hyper threading), можно про кеш вспомнить

Причём тут это?



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 23 июня 2006 09:46
· Личное сообщение · #24

tundra37 пишет:
Название технически неверное. Декодирует команды процессор и повлиять на это нельзя.

Если уж ты такой умный, то декодирует команды не процессор, а устройство декодирования, состоящее из трёх параллельно работающих декодеров.



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 23 июня 2006 10:35
· Личное сообщение · #25

[norwed] пишет:
то декодирует команды не процессор, а устройство декодирования, состоящее из трёх параллельно работающих декодеров.

Согласен, только декодеров не всегда три, а только в относительно новых процессорах ))) с P3 и Athlon и выше

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 23 июня 2006 11:42
· Личное сообщение · #26

[norwed] пишет:
а устройство декодирования,

А устройство декодирования разве отдельно от процессора стоит
Поменяй формулировку : глубокой оптимизации программ на ассемблере путём учета процесса декодирования команд в микрооперации и все.
Rascal пишет:
Конвеерный тип обработки далеко не только в П4

Но только в П4 в конвеере находятся микрооперации.


 eXeL@B —› Программирование —› Кол-во микроопераций
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати