[an error occurred while processing this directive] [an error occurred while processing this directive]
Наши недостатки - продолжение наших достоинств (с)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено AK 22 марта 2002 г. 09:28
В ответ на: Нескольких очень важных команд которые есть в СЦенуксах для написания действительно красивого кода, у Вас нехватает, распределение ПД через задницу, продолжать... отправлено Sergey Smirnow 22 марта 2002 г. 08:21

Думаю, это не столько совместимостью вызвано, сколько архитектуройю
Изначально PIC был "периферийным интерфейсным контроллером", разработанным как "заплатка" для какого-то "нормального" процессора (забыл какого). Разработчики, очевидно, решили что для выполнения функции периферийного контроллера ему не надо много памяти и много команд(вполне логично решили, по-моему), зато хорошо было бы непосредственно иметь доступ к любой ячейке памяти, так же, как обычный проц имеет доступ к регистрам. То есть, по сути, у ПИКа памяти вообще нет, одни регистры, зато их довольно много. В результате в поле команды (и так довольно длинном) половину битов занимает адрес этого регистра.
Чтобы сделать линейную адресацию в многобанковом ПИКе им пришлось бы увеличить длину поля команд и соответственно раздуть декодирующее железо. Что они, впрочем, постепенно делают, очевидно, "по мере возможности":
-- у PIC16C5x в 12-битном поле команды - 5-битный адрес регистра
-- у PIC16C7x в 14-битном поле команды - 7-битный адрес регистра
-- у PIC17 в 16-битном поле команды - 8-битный адрес регистра
-- у PIC18 - пока не посмотрел еще :-)
Мне кажется, они просто как бы "не успевают", т.е. увеличить число регистров и навешать банков, очевидно, им проще и дешевле, чем "заранее" увеличить длину поля команды.

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

Ответы



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

E-mail: info@telesys.ru