ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
94706 Топик полностью
Evgeny_CD (20.07.2007 23:12, просмотров: 1) ответил Evgeny_CD на Время ColdFire стремительно приближается!
Более того, если призадуматься, то CF в некотором смысле - предельное семейство. Рассмотрим для примера MCF548х. * Up to 200MHz peak internal core frequency (308 MIPS (Dhrystone 2.1) @ 200 MHz) * -40, BGA 1 мм 4 ряда (MCF547х до 266 Мгц, но они 0...70 град) * три отдельных шины: - DDR - PCI - шина периферии * MCF5484CVR200 digikey.com партия 25 штук 31.62$ вариант с максимумом фич и без криптографии * 32-Kbyte instruction cache * 32-Kbyte data cache * 32-Kbyte system SRAM - очень полезно для ISR, чтобы не "засирать" кеш при обработке частых прерываний * плавучка double: - FMUL - 4 такта - FSQRT - 56 тактов - FDIV - 23 такта * 32-bit double data rate (DDR) synchronous DRAM (SDRAM) controller — 100 MHz operation * Version 2.2 peripheral component interconnect (PCI) bus — 32-bit target and initiator operation — Support for up to five (5) external PCI masters — 50 MHz operation with PCI bus to XLB divider ratios of 1:1, 1:2, and 1:4 * Flexible multi-function external bus (FlexBus) — Supports operation with: – non-multiplexed 32-bit address and 32-bit data (32-bit address muxed over PCI bus) – multiplexed 32-bit address and 32-bit data – multiplexed 32-bit address and 16-bit data – non-multiplexed 24-bit address and 8-bit data – non-multiplexed 16-bit address and 16-bit data — Provides a glueless interface to boot Flash/ROM, SRAM, and peripheral devices — Up to six (6) chip selects — 50 MHz operation * Communications I/O subsystem — Intelligent 16 channel DMA controller linked list — Dedicated DMA channels for receive and transmit on all subsystem peripheral interfaces * Up to two (2) 10/100 Mbps fast Ethernet controllers (FECs) each with separate 2-Kbyte receive and transmit FIFOs * Universal serial bus (USB) version 2.0 device controller High Speed со встроенным PHY! – Support for one (1) control and six (6) programmable endpoints - interrupt, bulk or isochronous – 4 Kbytes of shared endpoint FIFO RAM and 1 Kbyte of endpoint descriptor RAM – integrated physical layer interface * Up to four (4) programmable serial controllers (PSCs) each with separate 512-byte receive and transmit FIFOs for UART, USART, modem, codec, and IrDA 1.1 interfaces * I2C peripheral interface * Two (2) FlexCAN controller area network 2.0B controllers each with 16 message buffers * DMA Serial Peripheral Interface (DSPI) * Optional Cryptography accelerator module — Execution units for: – DES/3DES block cipher – AES block cipher – RC4 stream cipher – MD5/SHA-1/SHA-256/HMAC hashing – Random Number Generator compliant with FIPS 140-1 standards for randomness and non-determinism — Dual-channel architecture permits single-pass encryption and authentication 32 бита, 50 Мгц шина и периферии и PCI - это 200Мбайт/сек пиковая скорость передачи. DDR память в чипе имеет пиковую скорость 800Мбайт/сек, что правильно. Для embedded систем важна на только скорость в попугаях, но и количество транзакций в секунду по шине. Если не поднимая тактовую шины, задирать только тактовую ядра, то реальная скорость будет расти слабо. P IV тому подтверждение. 32 бита, 50 Мгц шина - это практический предел шины с умеренным гемороем про разводке. Далее начинается шаманство. Более высокие скорости целесообразо делать по технологии PCIe и прочим диф. технологиям. С другой стороны, а нужна ли нам большая скорость? Что с нею делать? DSP - так нефиг процом общего назначения MPEG кодировать. FPGA на шину (хоть на PCI, хоть на локалку) - и вперед! А вот управлять FPGA этим процом - самое то. Более того, уже если так надо DSP, а HDLить не хочется - так DSP PCI (TriMedia от Philips самое то - у него PCI контроллер есть, и как DSP он зажигает - MPEG4 AVC SP D1 25 fps на одном камне программно делается!) BF PCI есть, толко он не сильно быстрый и довольно дорогой. Главное - не пропускать лишние потоки данных через процессор. По возможности замыкать их внутри периферии. GUI - в баню! Либо это простое GUI, с которым этот проц справится, либо ставим отдельную Wintel платку и наслаждаемся красотами интерефейса (ну а все логика проекта живет в плате на MCF, "рисовалка" к ней по Ethernet). Дожидаемся выхода быстрого и маложрущего x86 (появление которого я предсказал более года назад :) ), и наслаждаемся красотой. Все равно там будет красивее - так что если идет оптимизация на красоту, то нужно ставить Wintel, а не пытаться по глупости конкурировать с ним :) 2 Ethernet - грамотно! Скорости с учетом DMA как раз хватит, чтобы загрузить оба интерфейса на длинных пакетах (на коротких, понятно, не загрузить - но это и не надо). USB device High Speed - вот это тоже грамотно! Получается универсальня периферийная платка для современных ОСей. Только дровишки написать:) USB host нет - хреновато, но PCI есть - значит, если сильно приспичит - туда воткнем стандартный контроллер! Если сравнивать с MPC5200B, который мне тоже сильно нравится, то можно заметить, что не так все просто: * MPC5200B - это 700+DMIPS, UDMA33 IDE * зато у него PCI, IDE и шина периферии совмещенные - уже не выжмешь всего из деайса * MPC5200B имеет по 16 к кеша и всего 16к RAM - возможности по обработке частых прерываний гораздо меньше, чем у MCF547х * на PCI MCF547х мы можем повесть хоть IDE, хоть SATA, хоть RAID (главное - дровишки написать). Т.е. по "дурной" мощи MPC5200B сильнее (хотя MPEG4 на нам все равно не пожмешь процом "по ворослому"), а вот на реальных контроллерных задачах с частым обменом короткими пакетами с периферией они сопоставимы. MPC5200CVR400B в партии 25 шутк digikey.com стоит 25.13$, что характерно :). Но у PPC есть большой минус - нет "начальных" контроллеров типа MPC5208, MPC5312, т.е. в простые проекты не засунешь (либо сильно по цене пролетишь, я лично не готов терять 5$ на устройстве только по идеологическим причинам, а вот 1$ готов потерять :) ). На MCF547х есть порт Линуха от FreeScale, но нафиг нам линух - вопрос открытый. Готового порта RTEMS нет, но, полагаю, можно перехачить из портов на другие камни семейства. MIPS, который мне тоже очень нравится, опять же не канает в категории "контроллеров до 20$". Т.е. там есть, конечно, ADM5120, но его нет industrial, кроме того, он все-таки жестко на сетевые применения ориентирован. ARM9E, ARM11 - они гаджетные, как не крути. Мелкопоганистые BGA, Ethernet далеко не везде, быстрая смена поколений - ну их в баню... Кстати, что характерно, CF 10 летней давности успешно выпускаются. Они, конечно, дороги и некузявы, но зато дизайн можно не переделывать... Вот и получается, что CF - это основа для семейства контроллеров на многие, многие годы. А по динамическому диапазону против CF не катит ни одно современное смейство. Вопросы есть? :)))))))))