Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: "Зверский" МК от Parallax...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Deka
Я тут сегодня наткнулся на описание нового микроконтроллера от Parallax. Впечатляет. Как цена, так и возможности... Вот ссылочка Parallax Propeller. Кратко могу сказать, что этот чип содержит восемь 32-битных ядер на одном кристале и стоит 25 баксов. У каждого ядра 512 32-битных слов RAM плюс доступ к общей для всей системы RAM и ROM. Реальная многозадачность (многопоточность)! В общем я бы такой камушек попробовал бы с удовольствием!

P.S. Даже задумался о переходе не на ARM а на него.
P.P.S.
Питание - 3.3В
Частота - до 80МГц
Внутренний RC - 12МГц или 20кГц
Системная частота - 80 МГц
Общая RAM/ROM - 32/32
RAM для каждого процессора - 2Кб (512 32-битных слов)
В/В - 32 пина
Ток ножки - 50 мА

... если конечно правильно перевёл... unsure.gif
makc
Решение, конечно, интересное. Но больно уж оно мне кажется специализированным... Особенно интересно вот это
Цитата
The Propeller chip is programmed in both a high-level language, called Spin™, and low-level (assembly) language.
Что за язык такой?
Deka
Цитата(makc @ Aug 15 2006, 17:34) *
Решение, конечно, интересное. Но больно уж оно мне кажется специализированным... Особенно интересно вот это
Цитата
The Propeller chip is programmed in both a high-level language, called Spin™, and low-level (assembly) language.
Что за язык такой?


Ну я его мельком посмотрел - похож на паскаль немного. Думаю, что это просто некая разновидность "специализированного" ассемблера. В документации есть ещё что-то про интепретатор Spin. Ещё в документации нет ничего про такие привычные модули как АЦП, таймеры и другую периферию. Наверное всё это принесено в жертву многоядерности. А возможно они просто подумали, что при наличии стольких ядер нетрудно реализовать периферию чисто программно.
Вот пример на Spin:
Код
'' Propeller "Hello, World!" demo
'' -- blink an LED on pin A16
''
'' A16>───────┐
''       330Ω     

CON
  _clkmode = xtal1 + pll16x                     ' use external crystal * 16
  _xinfreq = 5_000_000                          ' 5 MHz
        
  Led = 16

VAR
  long delayTime                                ' used for delay

PUB BlinkLED    

  dira[Led] := 1                                ' make the pin an output

  repeat
    outa[Led] := !outa[Led]                     ' toggle the pin state
    delayTime := cnt + 8_000_000                ' delay = 8 million cycles
    waitcnt(delayTime)                          ' wait


Интересно ещё то, что среда разработки позволяет рисовать небольшие схемы в псевдографике (4 и 5-я строчки примера. Там резистор и светодиод).

По поводу ассемблера - погорячился. Вот что сказано в документации:
Цитата
Boot Loader and Spin Interpreter
The last section in Main ROM contains the Propeller chip’s Boot Loader and Spin Interpreter
programs.
The Boot Loader is responsible for initializing the Propeller upon power-up/reset. When a
Boot Up procedure is started, the Boot Loader is loaded into Cog 0’s RAM and the cog
executes the code starting at location 0. The Boot Loader program first checks the host and
EEPROM communication pins for code/data to download/upload, processes that information
accordingly and finally it either launches the Spin Interpreter program into Cog 0’s RAM
(overwriting itself) to run the user’s Propeller Application, or it puts the Propeller into
shutdown mode. See the Boot Up Procedure section on page 18.
The Spin Interpreter program fetches and executes the Propeller Application from Main
RAM. This may lead to launching additional cogs to run more Spin code or Propeller
Assembly code, as is requested by the application. See Run-Time Procedure, page 18.


Этот интерпретатор напоминает мне интерпретатор языка бейсик для ZX Spectrum. Там все ключевые слова кодировались одним байтом и потому лексический анализатор был не нужен и скорость выполнения кода на бейсике была довольно высокая.
IgorKossak
Цитата(Deka @ Aug 15 2006, 16:59) *
Код
'' Propeller "Hello, World!" demo
'' -- blink an LED on pin A16
''
'' A16>───────┐
''       330Ω     


Интересно ещё то, что среда разработки позволяет рисовать небольшие схемы в псевдографике (4 и 5-я строчки примера. Там резистор и светодиод).

А не комментарий ли это?
Deka
Цитата(IgorKossak @ Aug 15 2006, 18:25) *
Цитата(Deka @ Aug 15 2006, 16:59) *

Код
'' Propeller "Hello, World!" demo
'' -- blink an LED on pin A16
''
'' A16>───────┐
''       330Ω     


Интересно ещё то, что среда разработки позволяет рисовать небольшие схемы в псевдографике (4 и 5-я строчки примера. Там резистор и светодиод).

А не комментарий ли это?


Комментарий. Просто интересное решение. Часть схемы перед глазами. Будет легко вспомнить по прошествии некоторого времени без изучения схемы. Впрочем в существующих редакторах наверное легко будет реализовать "сделав" соотвествующий шрифт. Причём моноширинный.
SasaVitebsk
Цитата(Deka @ Aug 15 2006, 16:59) *
Этот интерпретатор напоминает мне интерпретатор языка бейсик для ZX Spectrum. Там все ключевые слова кодировались одним байтом и потому лексический анализатор был не нужен и скорость выполнения кода на бейсике была довольно высокая.


Чистый интерпретатор всегда ключевое слово кодировал одним байтом. Не только на спектруме. Это практически стандарт. И не только в васеке. Я наблюдал такое и в других интерпретаторах. Похожий подход и в полу-компиляторах Pascal. Забыл как они назывались. Мю что ли. Там ядро и прога кодированная. А лексический анализатор всё-таки есть. Правда он упрощён. Но есть. И работает в процессе интерпретации.
Deka
Незнаю как Вам, а мне такой камушек очень хочется попробовать в деле. Правда для всех ядер ног не хватит biggrin.gif , но я думаю найдётся и для такого "змея Горыныча" задачка.
Kopa
Цитата(Deka @ Aug 17 2006, 08:20) *
Незнаю как Вам, а мне такой камушек очень хочется попробовать в деле. Правда для всех ядер ног не хватит biggrin.gif , но я думаю найдётся и для такого "змея Горыныча" задачка.


А вот как к такому зверю отнестисьsmile.gif
http://www.intellasys.net/

P.S. Если коротко:
Много 32 микроядер на кристале ( у каждого свои ROM/RAM, минимальный набор команд )
обьедененных шинами.
Deka
Язык программирования Forth. Хорошо, что соседние процессоры могут обмениваться данными без задержек. Ядра 18-битные и их 24 штуки. Расположены в узлах сетки 6 на 4. Пишут о том, что каждое ядро способно выполнять 1 биллион операций в секунду.


Features

• Twenty-four C18 core processors capable of combined sustained 24 Billion operations / second
• Completely asynchronous for faster processing and lower power
• Static/dynamic memory interface
• Eleven SPI I/O ports
• Two 18-bit A/D converter
• Two 9-bit D/A converter
• 32 Parallel I/O lines
• Real Time Clock signals at each core

C18 Processor Features

• 18-bit stack oriented engine
• Runs VentureForth™ programming language as native code
• Executes 1 VentureForth instruction / ns
• 512 words RAM / 512 words ROM
• Hardware 18x18 multiply/accumulate
• Automatic sleep mode at <1mW dissipation

Target Applications

• Consumer audio processing
• Wireless and USB devices
• Home automation
• Remote data collection and processing
• Security applications


Может быть как развитие. Мне столько ядер просто не надо... Во всяком случае пока

zorromen
Помойму C18 достать сложнее пропеллера ... Мне кажтся что достоинство пропеллера в том, что есть:
1) Возможность многократного (бесконечного) перепрограммирования ... т.к. программа загружается ОЗУ программ
2) из 1) можно иметь сменные программы ... это актуально для видео игр
3) Встроенный видео генератор
И ваще 160MIPS на дароге не валяются ... хотя стоить 25 баков ... Но это месные подняли ...

Сюда можно зайти и ознакомиться
http://itc.ua/article.phtml?ID=26315%3Cbr%20/%3E
fate
минусы:
- нет прерываний
- небольное не расширяемое озу
- непривычный язык (хоть и простой)
- непонятное будущее в плане развития и дальнейшего существавания
SasaVitebsk
Цитата(fate @ May 9 2007, 21:14) *
минусы:
- нет прерываний
- небольное не расширяемое озу
- непривычный язык (хоть и простой)
- непонятное будущее в плане развития и дальнейшего существавания


Нет ну прерывания там действительно не нужны. Сади один процессор на задачу которая у тебя выполняется в прерываниях.

А так в общем действительно очень узкоспециализированный МК. Развитие - ладно, но недостаток переферии и прочего. Изучать узкоспециализированный МК для, возможно однократного применения - не очень.

Да и DIP40 уже давно не плюс. Похоже несколько опоздали они со своим решением. Другое дело, что может быть кто-то подхватит и разовьёт.
fate
Цитата(SasaVitebsk @ May 9 2007, 22:48) *
Нет ну прерывания там действительно не нужны. Сади один процессор на задачу которая у тебя выполняется в прерываниях.

А так в общем действительно очень узкоспециализированный МК. Развитие - ладно, но недостаток переферии и прочего. Изучать узкоспециализированный МК для, возможно однократного применения - не очень.

Да и DIP40 уже давно не плюс. Похоже несколько опоздали они со своим решением. Другое дело, что может быть кто-то подхватит и разовьёт.


Ну почему-же я могу тут такого напридумывать smile.gif про невозможность обойтись без прерываний особенно в ограниченных ресурсах ...
а вот с корпусом как раз не проблема есть и QFP и QFN
pitman
Вообще мое ИМХО, что опаздали они с ним. Вот если бы 3 года назад, да чтобы компилятор и отладчик были под Windows/Linux/MacOS, тогда да.

А сейчас тулзы и компилятор только под Вынь, причем не меньше 2000 нафик оно надо. Я отладку AVR через JTAGICE mkII в Линухе запустил быстрее чем под Виндой.

Вообщем low-end для параллельных задач типа роботов-боботов.
Kuzmi4
Сам задал поожий вопрос в ветке другие процессоры - так и не получил ответа...
А тут вдруг наткнулся...

Не подскажите уважаемые как там со средствами программирования и отладки??
Потому как сам камень в киеве мона найти за 117 тугриков - для тестовой версии не так дорого.
SasaVitebsk
Цитата(Kuzmi4 @ May 11 2007, 13:32) *
Сам задал поожий вопрос в ветке другие процессоры - так и не получил ответа...
А тут вдруг наткнулся...

Не подскажите уважаемые как там со средствами программирования и отладки??
Потому как сам камень в киеве мона найти за 117 тугриков - для тестовой версии не так дорого.


Более 20$ недорого?!! 07.gif Это готовое изделие не каждое столько стоит. Вон avr32 ap7000 - 15$. Видео декодирует и lcd2048x2048. Короче наладонник в сборе. smile.gif Или три lpc2114 можно купить.

Вот они на это и рассчитывают. На человеческое любопытство. smile.gif Глядишь любопытные сотни 2 тысяч раскупят. По 19$ прибыли с каждого - разработку и окупили. smile.gif
Kuzmi4
Ну начнём с того что у себя на родине сие чЮдо стоит 12 баксов.
Не знаю ка для вас, но для меня заплатить 20 $ за такое чЮдо-Юдо и поиграться с ним - это не дорого...

Но всё же хотелось услышать ответы на вопросы.......
pitman
Цитата(Kuzmi4 @ May 11 2007, 21:37) *
Ну начнём с того что у себя на родине сие чЮдо стоит 12 баксов.
Не знаю ка для вас, но для меня заплатить 20 $ за такое чЮдо-Юдо и поиграться с ним - это не дорого...

Но всё же хотелось услышать ответы на вопросы.......


дык у них же все на сайте есть:

Propeller Tool Software v 1.05.5 (Supports Win2K and above)
Includes software, source code, USB driver and Propeller Manual v1.01.
Propeller Tools
Kuzmi4
2 pitman - спасибо конечно, но там я был и в результате прочтения понял что там программер у них привязан к ев.боарду...Если непральна понял исправте..

Так вот,хотелось бы узнать, а есть ли исп программеры не привязанные к боарду - ну например как СТК-200/300 для мег??
defunct
Цитата(SasaVitebsk @ May 11 2007, 13:12) *
Более 20$ недорого?!! 07.gif Это готовое изделие не каждое столько стоит. Вон avr32 ap7000 - 15$. Видео декодирует и lcd2048x2048. Короче наладонник в сборе. smile.gif Или три lpc2114 можно купить.

Вот они на это и рассчитывают. На человеческое любопытство. smile.gif Глядишь любопытные сотни 2 тысяч раскупят. По 19$ прибыли с каждого - разработку и окупили. smile.gif

AP7000 бесспорно круто ;> но 15$ превратятся в 1k$ на обвязку как только Вы начнете с ним работать, плюс, сколько еще времени уйдет на на разводку и изготовление платы под BGA256....

Здесь же предлагается 180MIPS в DIP корпусе. Расходов на обвязку - мизер, затрат времени - минимум - купил монтажку впаял панельку и уже имеешь DevKit с которым можно работать. любой на коленке может сделать. IMHO на это у них упор.
fate
180MIPS - это только при достаточном параллелизме выполняемой задачи
singlskv
Цитата(defunct @ May 12 2007, 16:34) *
AP7000 бесспорно круто ;> но 15$ превратятся в 1k$ на обвязку как только Вы начнете с ним работать, плюс, сколько еще времени уйдет на на разводку и изготовление платы под BGA256....

Здесь же предлагается 180MIPS в DIP корпусе. Расходов на обвязку - мизер, затрат времени - минимум - купил монтажку впаял панельку и уже имеешь DevKit с которым можно работать. любой на коленке может сделать. IMHO на это у них упор.

Ну DIP корпус для кита это конечно удобно, но если нужны MIPSы, и MFLOPSSы кстати тоже,
то тогда есть(ну или почти уже есть) такой вариант
http://riva.ixbt.com/news/hard/index.shtml?08/27/47

И это по цене 21-23$ ...
defunct
Цитата(singlskv @ May 13 2007, 01:13) *
Ну DIP корпус для кита это конечно удобно, но если нужны MIPSы, и MFLOPSSы кстати тоже,
то тогда есть(ну или почти уже есть) такой вариант
http://riva.ixbt.com/news/hard/index.shtml?08/27/47
И это по цене 21-23$ ...

Сейчас можно за 20$ найти МК и с ядром сравнимым по производительности с P3, только вот чтобы начать с ним работать надо потратиться на изготовление отладочной платы. И старт-ап так сказать, будет дорог и длителен.

Преимущество сабжевого "пропеллера" в том, что старт-ап обойдется в 2-3$ + 1 день времени (не считая цены проца), пиковая производительность сравнима с МК на ядре ARM9. Для ВУЗов этот камень - самородок, потому что студенты могут самостоятельно собрать параллельную систему себестоимостью в 30$.
pitman
Цитата(Kuzmi4 @ May 12 2007, 20:37) *
2 pitman - спасибо конечно, но там я был и в результате прочтения понял что там программер у них привязан к ев.боарду...Если непральна понял исправте..

Так вот,хотелось бы узнать, а есть ли исп программеры не привязанные к боарду - ну например как СТК-200/300 для мег??


Судя по описанию есть. Как оно работает сказать сложно это надо пробовать, а по даташиту выглядит неплохо:

1. подключение любого пропеллера для программирования по схеме на стр.4 PropellerDSv0.2
2. сам программатор USB<->RS232, схема и описание PropClipPlug-v1.3

Драйвера и пр. для ихнего программатора на стр. с описанием оного PropClipPlug

По идее можно сделать и свой вариант на MAX232 и своя прога для прошивки.
SasaVitebsk
Цитата(defunct @ May 12 2007, 15:34) *
AP7000 бесспорно круто ;> но 15$ превратятся в 1k$ на обвязку как только Вы начнете с ним работать, плюс, сколько еще времени уйдет на на разводку и изготовление платы под BGA256....

Здесь же предлагается 180MIPS в DIP корпусе. Расходов на обвязку - мизер, затрат времени - минимум - купил монтажку впаял панельку и уже имеешь DevKit с которым можно работать. любой на коленке может сделать. IMHO на это у них упор.


Да согласен. И с тем постом, что Вы ниже написали тоже согласен. Правда изучать параллельность процессов полностью не возможно, так как механизмы распараллеливания привязаны к камню, но всётаки лучше так чем никак. То есть в принципе я с Вами согласен. Но есть и принципиальные возражения.
всётаки в конечном счёте изучение. А это тоже не три дня. Это кусок времени. В случае даже с AVR32, а тем более с ARM - это время не будет потрачено зря.

Давайте честно ответим почему данный камень узко заточен. Да хотябы по причине малости флэш и озу в расчёте на камень. И невозможность перераспределить эти ресурсы. Таким образом то ядро, которое занимается задачами типа прерывания, будет недогружено, а некоторые перегружены. Вот и придётся ломать голову, как разделить свою задачу равномерно. А задача непростая. Появятся решения притянутые за уши. Это не теоретически а практически.

Я вот пробую приложить его к какой-нибудь задаче или проекту, которые я решал в своей жизни. И честно говоря не нахожу такой. Я представляю себе такую задачу, но мне её не приходилось делать. Короче я ни разу не пожалел, что вот нет такого камня. Хотя теоретически он интересен.
Былобы интересно услышать от кого-нибудь описание РЕАЛЬНОЙ задачи (а не теоретической) на которую он бы ложился. Я бы искренне порадовался.
pitman
Цитата(SasaVitebsk @ May 14 2007, 05:01) *
Былобы интересно услышать от кого-нибудь описание РЕАЛЬНОЙ задачи (а не теоретической) на которую он бы ложился. Я бы искренне порадовался.


Однин из продуктов этой фирмы, это мелкие роботы. Например такие:


Ставим на каждую ногу по пропеллеру, он рулит одной ногой, и держит связь с другими нОгами или с центром, который ему говорит идти.....за пивом. smile.gif
mse
Цитата(pitman @ May 14 2007, 02:11) *
Ставим на каждую ногу по пропеллеру, он рулит одной ногой, и держит связь с другими нОгами или с центром, который ему говорит идти.....за пивом. smile.gif

Плохой пример.
Ставим на каждую по ДСПИКу какому. Или м48 дохлую или АТ90ПВМх(правильнее всего). И имеем то же самое. За несравненно меньшие деньги, амперы и кв.см.
umup
defunct
а что, для пропеллера не нужно питание, конденсаторы на выводах ?
для пиков, авр, армов тоже практически ничего не нужно - только подать питание и возможно, подключить кварц, так что астрономическая цена отладочной системы это миф.
еще учтите делитель /4 на каждое ядро и тормоз /16 при доступе к общим ресурсам, очень маленькое локальное ОЗУ, так что реальная производительность получается не очень, наверно даже МП3 вряд ли потянет. Интегрированной периферии вообще нет - если сравнить с хучей таймеров, ПДП на большинстве периферии и т.д. в АРМах (и это без внешней обвязки), то сравнивать вообще глупо. Попробуйте организовать на пропеллере программный USB, Ethernet, I2C, SPI, UART и т.д. в параллель - может и получится, но при полной загрузке ядер и на на маленьких скоростях. Что-то похожее пробовали делать в контроллерах Scenix (программная периферия), ну и где он сейчас ?
Видео программно генерируют и на АВРах и ПИКах.
И вообще, зачем вся эта скорость и куча ядер при использовании интерпретатора ?
SasaVitebsk
smile.gif Интерпретатору как раз нужна высокая скорость.

Но всётаки ничего ведь не изменилось. В том смысле что создать аппаратную байду значит ничего не создать, до тех пор, пока она реально не будет поддержана программно. В этом смысле стоимость разработки на AVR, к примеру, будет ниже чем стоимость разработки на пропеллере. Так как время разработки увеличится в разы, за счёт отсутствия платформы.

На сколько я знаю, появление многочисленных многоядерных процессоров тормозится отнюдь не из за невозможности их изготовления или не проработанности механизмов и схем их взаимодействия. Тормозом на сегодняшний день является невозможность автоматической разбивки задачи по ядрам. Нет теории пока. Существующие языки для таких вещей требуют очень серьёзных знаний. И в результате оптимальное написание программы на таком языке - очень дорогостоящий процесс. А без этого производительность системы будет незначительно превышать производительность одноядерного изделия, а то и проигрывать ему. И в этом смысле этот процессор ничем не революционен. Использовать интерпретатор можно только для изучения теории. То есть для учебных и общеразвивающих задач.

На счёт медленности работы с общими ресурсами. Это не страшно. Обычно такие процессоры дают максимальный выигрыш там, где задачи практически не пересекаются. То есть обращение к общим ресурсам минимально и не требует скорости.
Одной из самых распространённых задач где успешно используются многопроцессорные системы - сетевые дела. Где построение запрос-ответ. Здесь распараллеливание упрощается - каждый запрос - своим процессором (если упрощённо подходить).
Kuzmi4
2 pitman - спасибо.. буду знать..
Хотелось так же сказать всем тут спорящим - ну зачем разводить тут опять войны и споры - он есть , ег оможно попробовать - не понравится - не используйте...

пЫ.сЫ.

А я наверено через месяцок возьму себе камушек поиграться(как сл. зп будет) - посмотреть что ж это за чЮдо такое..
Обязательно расскажу..
pitman
Цитата(SasaVitebsk @ May 14 2007, 18:28) *
Но всётаки ничего ведь не изменилось. В том смысле что создать аппаратную байду значит ничего не создать, до тех пор, пока она реально не будет поддержана программно. В этом смысле стоимость разработки на AVR, к примеру, будет ниже чем стоимость разработки на пропеллере. Так как время разработки увеличится в разы, за счёт отсутствия платформы.


+1
__Alexander
В общем, купил, поигрался, надо выкидывать. Не порадовал он меня своим главным преимуществом- выводом на ВГА.
Он [CENSORED] был заявлен что держит 1024х768, но со своими 24к озухи, это только разговоры. на самом деле эта площадь разбивается на знакоместа по 128х64, и для каждого такого места бэкграунд и фореграунд могут иметь только одни цвета.
Или можно создать маленькое окошко, в котором можно разложить уже на полноценные цвета. (tiles у них называеться такая область).
Короче [CENSORED], а мышь, клава и ТВ это можно и на обычном АВР. Одним словом, слабенький. А "денди" создавать уже поздно.
Ozelot
Почему-то никто, говоря о Parallax, не вспоминает о http://www.elevenengineering.com
А ведь у них аналогичный процессор, заточенный под задачи высокоскоростной передачи данных по радоканалу. Я думаю, там вы по полной оцените преимущества этого процессора.
=GM=
Цитата(Ozelot @ Jul 25 2007, 05:00) *
Почему-то никто, говоря о Parallax, не вспоминает о http://www.elevenengineering.com
А ведь у них аналогичный процессор, заточенный под задачи высокоскоростной передачи данных по радоканалу. Я думаю, там вы по полной оцените преимущества этого процессора.

Поддерживаю. Скажем, самое то для OFDM, которая сейчас широко начинает применяться, например, в ADSL-модемах. Но всё-ж-таки узкоспециализированный камешек...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.