не путайте с многоядерностью процессоров, за один такт вы выполните только одну инструкцию а будет это бит или 2-х байтное слово уже не важно
не путайте с многоядерностью процессоров, за один такт вы выполните только одну инструкцию а будет это бит или 2-х байтное слово уже не важно
плк-110.
от byte до dword - по барабану. Около 0.5 мкс на операцию mem-mem-mem
Для real - ок. 4мкс
Только на фига dword, если нужен байт ?
Повторю свое объяснение на другом форуме:
Нет желания оптимизировать по скорости.
А есть желание уменьшить число типов данных в программе. А именно: все целочисленные переменные размером 1, 2 или 4 байта - сделать 4-байтными. Зачем? А вот зачем.
У меня много т.н. "параметров", т.е. переменных, с которыми может работать пользователь. И эти параметры, а точнее - переменные, хранящие их значения, имеют различные типы - от практически булевых до двойных целых и вещественных. Многие процедуры работы с этими переменными получают на входе указатель на нее и тип данных - а дальше приходится делать нечто подобное Си-шному SWITCH по типу. Чем меньше типов, тем меньше веток в переключателе. Это раз.
Кроме того, часто-густо в операторах присвоения приходится иметь дело с разными переменными - и, если типы не совпадают, то приходится использовать явное преобразование (там язык такой, строгий к типам). А оно еще и громоздкое в записи. Значительно проще было бы не преобразовывать - а! значит лучше иметь одинаковые типы. Это два.
И вообще, если оказывается. что тип BYTE абсолютно ничем не лучше типа WORD, а тот, в свою очередь, не лучше DWORD - то какое право на жизнь имеют эти "огрызки" нормального 32-разрядного слова? Это уже два с половиной
Таким образом, никакой оптимизации во взрослом понимании этого слова. Только красивше тексты программ.
прога с одим типом может и перебор, зато модбас от этого сильно выигрывает, не задумываешься о выравнивании, если еще к тому же и самописный, нужно будет реализовать только две функции, чтение и запись
имел ввиду регистры либо флаги, а насколько разношерстна по типам программа, все зависит от творца
Это совпадает со мнением спецов по микроконтроллерам: выигрыша в использовании целочисленной переменной BYTE по сравнению с WORD и DWORD - нет. Они там завелись спорить, каков НАОБОРОТ будет выигрыш от использования только 32-разрядных данных, но слегка разделились во мнениях.
Итак, интересная получается рекомендация от drvlas-а: если нет специальной причины определения данных как BYTE или WORD - объявляйте их DWORD. Займет больше памяти (решать вам), но никак не ухудшит скорость работы ПЛК.
ПРОШУ ПОПРАВИТЬ ЭТОТ ПОСЫЛ, если он таки да неверен
К видимым мне исключениям относятся: работа со строками (там байты удобны, может быть), работа с портами определенного размера (например, двухбайтными регистрами), создание файлов... КАРОЧИ, это можно обсудить.