Перейти к содержанию
    

производительность 8051 котроллеров

Ок, вносим ясность, память - не регистровая и не ассоциотивная, обычный SRAM или DRAM.

За что такая немилость? Это нечестно! Разве тот же 51-й или AVR используют DRAM? Я думаю, никто из нас толком не знает, какова встроенная память в любом проце, но уж наверняка не DRAM, и очень может быть что не SRAM в обычном понимании. Какова кэш-память в том же пентюхе?

 

Ну ладно, пусть будет SRAM. Скажем, для 50МГц проца возьмем SRAM или даже PSRAM с 10 нс циклом, чтобы иллюзий не было. Однако пристроим ее прямо на чип , протянем шины от каждой ячейки по надобности, и вообще добавим к каждой ячейке железа не скупясь. Не RISC же делаем :)

 

Интересно, только IMHO такой реализацией вы сделали очень крутой RISC процессор.

Ну никаким боком он не RISC. Потому что сумма целей моих при этом была прямо противоположна целям RISC-а. Я не стремился уменьшить кол-во железа и переложить исполнение сложных команд на компилятор ЯВУ. Наоборот, я стремился выполнить сложные команды в железе, не считаясь с расходом кремния. Типичный CISC подход.

 

Это была всего лишь иллюстрация утверждения, что сколь угодно сложную команду можно выполнить за 1 такт. Расточительно, неизящно, но роли это не играет, главное - можно

 

Поэтому ничто не мешает построить CISC, в котором все команды будут выполняться за 1 такт. Что и требовалось доказать.

 

Кроме того, Вы забываете про выборку команды, т.к. CISC это не спец процессор и его возможности не заканчиваются на одной команде. Этапы, которые проц. должен реализовать: "выборка команды", "декодирование", "загрузка операндов", "выполнение действия АЛУ", "запись результата".

Где скрижали, на которых написано, что CISC не имеет права делать эти действия (все или часть) за один такт? Чтобы он не имел права выполнять все команды за один такт? Чтобы было прямо сказано, что RISC-у это можно, а CISC-у - ни-ни, ни в коем случае, иначе это и не CISC, а невесть что, то ли (внеклассовый?) "спец-процессор", то ли "крутой RISC".

 

Почему это спец-процессор не может быть CISC-ом? A RISС-ом он может быть, или тоже "низзя-а-а-а" (с) ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну ладно, пусть будет SRAM. Скажем, для 50МГц проца возьмем SRAM или даже PSRAM с 10 нс циклом, чтобы иллюзий не было. Однако пристроим ее прямо на чип , протянем шины от каждой ячейки по надобности, и вообще добавим к каждой ячейке железа не скупясь. Не RISC же делаем :)

Это будет уже не SRAM, а регистровая память.

 

 

Ну никаким боком он не RISC. Потому что сумма целей моих при этом была прямо противоположна целям RISC-а. Я не стремился уменьшить кол-во железа и переложить исполнение сложных команд на компилятор ЯВУ. Наоборот, я стремился выполнить сложные команды в железе, не считаясь с расходом кремния. Типичный CISC подход.

ну как же не RISC, громадный регистровый файл, короткие однотипные команды, и аппаратная реализация команд :)

Волей-неволей у Вас получился именно RISC для решения монстрячей задачи ;>

 

 

Это была всего лишь иллюстрация утверждения, что сколь угодно сложную команду можно выполнить за 1 такт. Расточительно, неизящно, но роли это не играет, главное - можно

 

Поэтому ничто не мешает построить CISC, в котором все команды будут выполняться за 1 такт. Что и требовалось доказать.

Ваше утверждение сомнительно. Потому что решение, представленное Вами, - НЕПОЛНОЕ, и на его основе нельзя утверждать, что у Вас получилось реализовать эту команду за такт.

 

"выборка команды", "декодирование", "загрузка операндов", "выполнение действия АЛУ", "запись результата".

Где скрижали, на которых написано, что CISC не имеет права делать эти действия (все или часть) за один такт? Чтобы он не имел права выполнять все команды за один такт? Чтобы было прямо сказано, что RISC-у это можно, а CISC-у - ни-ни, ни в коем случае, иначе это и не CISC, а невесть что, то ли (внеклассовый?) "спец-процессор", то ли "крутой RISC".

Вероятно таких скрижалей нет, все в руках разработчиков.

Да пожалуйста, сделайте за один такт все этапы без конвеера. Почему-то пока этого никому не удавалось.. Только тогда возникает вопрос, Вы часом не в Intel'е работаете? А если в Intel'е, так почему же до сих пор не сделали такой проц? :)

 

Почему это спец-процессор не может быть CISC-ом? A RISС-ом он может быть, или тоже "низзя-а-а-а" (с) ?

хм.. ну спец вычислитель я бы не относил ни к тому, ни к другому, т.к. есть еще названный Вами MISC и неназванный VLIW.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

пристроим ее прямо на чип , протянем шины от каждой ячейки по надобности, и вообще добавим к каждой ячейке железа не скупясь. Не RISC же делаем :)

Это будет уже не SRAM, а регистровая память.

Что Вы подразумеваете под словами "регистровая память"?

 

Вот это:

http://www.whatis.ru/hard/mem11.shtml

"Регистровая память

Registered Memory это память с регистрами, которые служат буфером между контроллером памяти и чипами модуля. Регистры уменьшают нагрузку на систему синхронизации и позволяют набирать очень большое количество памяти (16 или 24 гигабайт) не перегружая цепи контроллера.

Но данная схема имеет недостаток - регистры вносят задержку в 1 такт на каждую операцию, а значит - регистровая память медленнее обычной при прочих равных условиях. То есть - оверклокеру неинтересна (да и стОит она очень дорого)"

 

или же вот это:

http://www.intuit.ru/department/hardware/archhard2/5/

"На нижнем уровне иерархии находится регистровая память - набор регистров, входящих непосредственно в состав микропроцессора (центрального процессора - CPU)."

 

Если последнее, то почему обычные процики (AVR, PIC, Z8, и т.д) могут использовать такую память (на кристалле, непосредственно в составе проца), а мне в моем "супер-пупер CISC-е" в этом отказано? Если Вы скажете, что тот же AVR не может делать никаких арифметических и т.п. операций с операндами в памяти, я возражу, что он RISC, поэтому и не может. Разработчики пожалели железа, потому и не сделали.

 

Мне железа не жалко, и я сделаю проц примерно такой же, как ранние ЭВМ 50-х и 60-х годов, которые называть RISC-ами смешно. Возьму за основу, например, трехадресную БЭСМ-4м, снятую с производства в 1963 г., в которой, как я помню, регистров не было вообще, а все операции выполнялись непосредственно на памяти. Главное что изменю - поставлю быструю память и сделаю все операции однотактными. Без конвеера, ессно, т.к. в оригинале конвеера не было. Не придумали еще.

 

Поскольку регистров в моем CISC-е нет, то при прерываниях сохранять ничего не надо. Померявшись скоростью реакции на прерывания (которых, впрочем, в БЭСМ-4 может и не было, не буду врать, не знаю, но к своему процу я их прикручу, уж будьте покойны) , RISC-и со своими регистрами и конвеерами нервно покурят в сторонке :)

 

Если Вы и такую реинкарнацию БЭСМ-4 вопреки здравому смыслу и очевидности назовете RISC-ом, то далее убеждать Вас в чем бы то ни было я отказываюсь. :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что Вы подразумеваете под словами "регистровая память"?

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

 

Первое Ваше определение совсем не относится к микропроцессорам.

 

Второе определение как раз то, что надо.

 

Если последнее, то почему обычные процики (AVR, PIC, Z8, и т.д) могут использовать такую память (на кристалле, непосредственно в составе проца), а мне в моем "супер-пупер CISC-е" в этом отказано?

Да ради бога используйте, на сегодняшний день во всех процессорах есть регистровая память. Правда если Вы всю память (всей вычислительной системы) засунете в процессор и сделаете ее регистровой, то получите RISC архитектуру.

 

Если Вы скажете, что тот же AVR не может делать никаких арифметических и т.п. операций с операндами в памяти, я возражу, что он RISC, поэтому и не может.

Здесь вы перегибаете палку, в Вашем варианте решения задачки, Вы как раз и предлагаете сделать все по образу и подобию AVR. А потом почему-то говорите, что у Вас получился не RISC.

 

Разработчики пожалели железа, потому и не сделали.

?

 

Мне железа не жалко, и я сделаю проц примерно такой же, как ранние ЭВМ 50-х и 60-х годов, которые называть RISC-ами смешно. Возьму за основу, например, трехадресную БЭСМ-4м, снятую с производства в 1963 г., в которой, как я помню, регистров не было вообще, а все операции выполнялись непосредственно на памяти.

БЭСМ-4 выполняет такую команду (как мы здесь обсуждаем) за 1 такт? Из Ваших слов следует, что нет.

 

Главное что изменю - поставлю быструю память и сделаю все операции однотактными. Без конвеера, ессно, т.к. в оригинале конвеера не было. Не придумали еще.

Вот этого я от вас и добиваюсь. Услышать или увидеть теоретически возможное решение, где учтены все пять, приведенных выше, этапов выполнения команды. И при этом оставаться в рамках CISC архитектуры (небольшое число рабочих регистров и еще меньшее число РОН).

 

Поскольку регистров в моем CISC-е нет, то при прерываниях сохранять ничего не надо. Померявшись скоростью реакции на прерывания (которых, впрочем, в БЭСМ-4 может и не было, не буду врать, не знаю, но к своему процу я их прикручу, уж будьте покойны) , RISC-и со своими регистрами и конвеерами нервно покурят в сторонке :)

Вы ошибаетесь, у вас получилось все как раз наоборот. Регистров не нет, как Вы говорите, а наоборот настолько много, что и сохранять ничего не нужно (типичнейший RISC).

 

Если Вы и такую реинкарнацию БЭСМ-4 вопреки здравому смыслу и очевидности назовете RISC-ом, то далее убеждать Вас в чем бы то ни было я отказываюсь. :(

Я, к своему стыду, не знаю архитектуры БЭСМ-4, поэтому ничего не могу сказать не только про ее реинкарнацию, но и про оригинал.

 

 

Напомню, для читателей этой ветки, что у нас обсуждение идет в контексте конкретного вопроса:

"Какая архитектура лучше приспособлена для задач, в которых требуется максимально быстрая реакция на прерывание?"

Я утверждаю, что RISC архитектура специально разрабатывалась для решения таких задач и это есть ее основной козырь и в то же время отличие от CISC. Уважаемый опонент, пока что (субъективно, насколько я могу судить) неубедительно, показывает, что и CISC архитектура может обеспечивать столь же быструю реакцию на прерывания, но к сожалению (опять же субъективно) он в своих решениях приходит к RISC архитектуре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читайте, думайте:

http://www.microprocessor.sscc.ru/great/

post-2483-1144628125_thumb.jpg

 

Еще посмотрите описание Нейрон чипа (LON) и задумайтесь, действительно ли в нем три процессора, или все-таки один стековый процессор, способный мгновенно переключать контекст, три раза за полный 6-тактный цикл. Отвечать не требуется, извините, мне Ваше мнение не интересно.

 

http://www.microprocessor.sscc.ru/great/app.html

"The technical term RISC has been swamped by the marketing term RISC to the point that it's lost almost all meaning as a technical term. Almost everything now is described as RISC, even when it isn't"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отвечать не требуется, извините, мне Ваше мнение не интересно.

Очень жаль, что все дошло до указаний..

Вам не интересно отличное от Вашего мнение, так что с того?

 

 

За ссылки спасибо, почитаю.

Табличка кривовато скопирована или нарисована, ось смещена в сторону CISC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если говорить о производительности 8051, то 8051 в версии Silabs на мой взгляд выглядит очень достойно для решения многих задач. По сравнению с классическим частота ядра выше в 8 раз, команды выполняются быстрее в 10 раз и плюс умножитель. Итого получается примерно в 100 раз выше чем производительность основного советского микроконтроллера 1816ВЕ31, на котором работало много неплохих устройств.

 

Используем Silabs уже 3года, запустили в производство целую серию устройств. Софт пишем как на ассемблере так и на Си. В целом довольны, те задачи которые в нашей области раньше решались на DSP, теперь успешно решаются на 8051. Запас производительности большой, загрузка процессора 20-40%. 8051 выбрали потому, что было много наработок для этой платформы.

 

Но в будущих разработках конечно планируем ARM. Ориентируемся на LPC. По скромным прикидкам у него все долно быть в 3-4 раз лучше чем Silabs.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос к спецам!

 

Возникла такая ситуация - приходится разбираться с конроллером от SiLabs C8051124, контролллер на 8051 ядре. В доку стоит максимально 50MIPS, 70% команд в 1 тактовый цикл. Тут как-то прищлось у одного спеца что-то по этому uM спросить- так он мне выдал, что это ядро устарело и что производительность контроллеров на этом ядре ужасно мала, в сравнении с другими архитектурами.

 

Объясните пожалуйста мне или киньте ссылочки на эту тему. Действительно ли это так?

 

Спасибо заранее!

Однозначно трудно что-либо конкретно сказать. Все зависит как от характера задач, так и от критериев сравнения. Года три назад я попросил (для сравнения контроллеров) выложить результаты трансляции простенькой функции на Си для МК типа X51 и PIC. Результаты Вы можете увидеть здесь:

Телесистемы

Конечно, они могут ни о чем не сказать, а могут сказать о многом. Далее, могут быть критерии никак не связанные с производительностью. Если взять тот же SiLabs, то его производительность на частоте 50 МГц может оказаться выше чем у AVR на частоте 16Мгц. А как тут будет с потребляемой мощностью? А как тут будет с ценами контроллеров? Короче говоря, вопросов что, как и почему будет множество. И сравнивать надо в каждом конкретном случае.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если взять тот же SiLabs, то его производительность на частоте 50 МГц может оказаться выше чем у AVR на частоте 16Мгц.

Ну верно, смотря какая задача. Если арифметика, то АВР на 16 его и на 50 может вдуть. А если логика, типа ножкой-флажком поболтать, портами пошевелить, то Силаб 16-МГЦ АВРа и на 16 уест. Не в разы, и не везде, ессно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, а не проще "заезд" устроить:

* 51 100 Мгц от SiLabs

* AVR 20 Мгц от Atmel

 

Ну и задачи разные

* FIR/IIR фильтры

* FFT (например, 256)

* вычисления в плавучке

* рисование текста в GUI (взять какой-нибудь гуй простенький, например 128х64 1bit per pixel, и работать с виртуальным frame buffer в памяти)

* ...

 

Хотя, вероятно, C код универсальным не получится - слишком уж разные архитектуры...

 

А то так можно долго спорить...Некие тесты обсуждались тут - но они достаточно спорные...

http://www.telesys.ru/wwwboards/mcontrol/1...es/104416.shtml

http://www.caxapa.ru/mcu/wwwboard.html?id=35158

http://electronix.ru/forum/index.php?showtopic=6279&hl=

Прошу прощения за повтор, но ...

PIC vs. X51 vs. AVR

Там приведены коды одной и той же простенькой функции. Легко можно посчитать время выполнения такой функции на разных контроллерах.

И еще здесь

Немного об арифметике.

Изменено пользователем _Bill

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...