ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
4 декабря
103055 Топик полностью
Evgeny_CD, Архитектор (20.10.2007 19:03, просмотров: 240) ответил AlexandrY на Мысль здравая...
Мне обалденно нравится Ваша SMP-lite мультиядерная концепция для embedded систем. Идея очевидна, просто нужно было сказать именно Ваши слова - "качать друг другу циклически в одни и те же участки памяти". Насчет организации процесса конфигурирования - однозначно, его надо автоматизировать, как именно - не готов предложить. Думать надо. Что меня смущает. Первое - как бы расширить концепцию на несколько процов. >2. Можно конечно, взять процы с 2-мя SPI и гонять данные по кругу ("все украдено до нас"! K145ИК*** - там внутри все было сделано именно на последовательных шинах и на прогоне данных по кругу :) ), но это как-то дуболомно. Городить аппаратный PCI-E-lite коммутатор, который будет интеллектуально маршрутизировать наши SPI пакетики - он чуток посложнее самих процов будет :) Второе - это скорость. SPI более 10 мбит - экзотика, т.е. скорость обмена получим что-то типа 1 мбайт/сек. В общем, если не выносить в SPI "сопроцессор SD", хватит. Но хотелось бы поболее. Точнее, возможность в перспективе получить более без смены концепции. Третье - CRC. Когда два проца pit-to-pin, то тут можно быть спокойным. А когда их несколько - ну хрен его знает, вдруг там какой битик глюкнет. Хотя на вероятность этого при разводке на одной плате можно забить - SPI синхронная штука, достаточно триггер Шмидта на вход CLK поставить, и все будет путем. Можно сделать так. Для 2-х процов все оставить как есть. Для сети сотворить следующее. XC3S100E-4VQG100C ($7.9) или XC3S250E-4VQG100C ($10.9) или XC3S500E-4CPG132C ($17.3 - для особотяжелых случаев, мощная FPGA в мелкопоганистом корпусе) + PIC24F с мултиплексированным параллельным интерфейсом (можно и на picoBlaze, или даже на MicroBlaze в варианте с XC3S500E - там софта не так много будет) для коммутатора. Процы в идеале SPI slave. В пакет вводим дексриптор в начале, CRC не делаем. В коммутатор загружаем список подписки - на какие порты какие пакеты транслировать. Пакеты передаются/принимаются аппаратно. Проц рядом с ПЛИСкой командует пакетами. Все пакеты делаем одного размера - это сильно упростит задачу. Пакет из одних нулей или из одних единиц !пакет. Или даже не так - пакет, в которого первый бит - определенный, не пакет. Т.е. все пакеты имеют определенный заголовок. Вот поступил пакет в буфер. Мелкий процык смотрит по таблице - куда его надо разослать. Коммутирует мультиплексор, и дает команду простенькому автомату - выбрать пакет из буферной памяти и "засериалить" его. Одновременно принимаем пакет от периферийного процессора. If первый бит не такой, как надо, ничего не принимаем, память не засираем. Далее обрабатываем пакет как описано выше. Ценой $13 (плиска + PIC24F, в партиях 100 шт) получается внутриплатная сеть с неограниченными возможностями расширения. Вот это уже серьезно!