[an error occurred while processing this directive]
А я вот почему-то "верю сразу" (С) Жванецкий.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ReAl 29 октября 2005 г. 15:11
В ответ на: Интересно как Вы считали, и какой проц брали для прикидок отправлено <font color=gray>любитель форта</font> 29 октября 2005 г. 12:37

Не даром кто-то когда-то обозвал пики "это не процессоры, это микропрограммные автоматы".

IMHO у бегалки между периферийными блоками не очень наберётся работы "на целый словарь". Я имею ввиду, что почти нечего "шить" будет - и преимущество размера кода за счёт многократного сворачивания идёт лесом.
А в других местах преимущества какие?

Скажем, проверить бит регистра периферийного устройства - у пикообразия - одна команда. Да, бит в ней больше, чем у "фортообразия". Но она одна.
А у "фортообразия" что будет?
На каждый регистр и бит слов не напасёшся, а если напасёшся, то пик и выйдет :-), и того:
1) LIT адреса периферийного регистра
2) @
3) LIT маска
4) and
Причём преимущества по объёму кода (в битах) мелко (4..6) - разрядных комнад на этапах 1) и 3) тоже имеют шанс пойти лесом, так как перед литералом может понадобится подравнивать NOP-ами до ширины слова.

Да, устандартизовав положения "общеупотребительных" битов (начиная от бита ошибки) можно сделать некие
\ errmask как очень часто употребляемую - можно даже в базовый
\ состав ввести - команда короткая, кладёт на стек нужное число
\ is_error оставляет статусный регистр устройства на стеке
\ для дальнейшего анализа
: is_error ( addr -- status ) @ dup errmask and ;

и тогда уже проверка ошибки сокращается до

status_reg \ call или lit, возможно после предыдущего подровнян nop-ами
is_error \ call
IF

Но у пикообразия это делает ОДНА команда, занимающая столько же бит,
сколько is_error (call не него), и выполняющаяся в попугаях гораздо быстрее.

Аналогично с установкми битов на периферийных регистрах, подстчётом циклов и т.п.



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru