Úvod:
První jádro s ozačení ColdFire se objevilo v roce 1994 a technologicky vycházelo z legendární rodiny procesorů 68K. Hned od počátku se tyto procesory vyznačovaly proměnnou délkou jak instrukcí tak i dat.
Již od začátku vývoje kladla Motorola (dnes již Freescale) velký důraz na koncové zákazníky a ve snaze vyjít jím vstříc s touto novou architekturou, vyhodnotil zdrojové kódy z mnoha 68K systémů a na základě výsledků této studie, navrhl redukovanou instrukční sadu (která vychází z originální instrukční sady procesorů 68000, jež mělyf instrukční sadu kompletní) a dále jádro jako vhodné prostředí pro tyto výkonné instrukce. Stejně jako jiné procesory RISC, je většina instrukcí ColdFire provedena v jednom instrukčním cyklu.
RISC architektura jádra ColdFire s proměnnou délkou istrukcí a dat dává uživatelům větší flexibilitu a to při menších nárocích na pamět a systémové prostředky. Protože instrukce mohou být 16, 32 nebo 48 bitů dlouhé, program může být efektivněji uložen v paměti což má za následek lepší hustotu kódu než mají klasické 32 nebo 64bitové RISC procesory. Efektivnější použití paměti na čipu redukuje šíři sběrnice a nároky na externí paměť, což opět vede ke zmenšení nákladů na systém řízený pomocí těchto procesorů.
Malé, levné a vysoce vybavené:
Jádro ColdFire výrazným způsobem redukuje náklady na celkový embedded systém kde je použit. Je to zejména díky tomu, že je kompletně upravitelné (z výrobního hlediska) a jednoduše se do něho dají integrovat systémové moduly, (MAC, FPU atd.) paměti a periférie (porty, rozhraní atd.). Díky jednotce pro správu paměti lze na těchto procesorech provozovat i operační systémy jako je např. Linux či WindowsCE.
Kvůli vzájemné provázanosti obou architektur (68K a ColdFire), mají současní uživatelé 68K procesorů možnost jak zmodernizovat své návrhy bez výraznějších časových ztrát spojených s přechodem na novou platformu. Jelikož je instrukční sada ColdFire subsadou rodiny procesorů 68K, přechod na novou architekturu není tak náročný.
Díky širokému mixu výkonu, dobré ceny, vysoké integrace obvodů, vyspělé schopnosti debuggingu (nebo jak na našem diskuzním fóru vtipně poznamenal pan Jan Waclawek tzv. "odvšivovač") a více jak 20leté historii procesorů 68K, si ColdFire vydobil velmi slušnou pozici v 32bitovém segmentu trhu. Úžasný je také rozsah nabízených komunikačních rozhraní:
- UART
- USART
- I2C
- FEC
- QSPI
- USB 1.0, 1.1, 2.0
- Ethernet 10/100
- SSI
- CAN
Strategie vývoje:
Strategie vývoje architektury ColdFire je rozdělena do dvou částí - zákaznicky specifikované produkty pro velké firmy a standardní produkty pro všeobecné vestavěné systémy. Protože jsou všechna ColdFire jádra 100% slučitelná, je vcelku jednoduché integrovat novou technologii do zákaznického systému. Tyto procesory jsou ve velkém měřítku používány v např. v inkoustových a laserových tiskárnách, audio elektronice, síťových zařízeních, set-top boxech atd.
Architektura:
Do přílišných informačních hloubek dnes zabíhat nebudu poněvadž každá verze jádra má několik konkrétních typů lišících se počtem pinů, čítačů, časovačů, taktem jádra, velikostí pamětí atd. Uvedu jen základní dělení na jednotlivé verze jádra. Konkrétní typy si pak představíme v některém z následujících článků.
- V1 - ač je číslován jako první jedná se o jádro které je zjednodušením jádra V2, jedná se o typ který byl vyvinut jako přechod mezi 8bitovými a 32bitovými systémy. Dokáže zpracovávat 32bitové data a instrukce, které pak převádí na 8bitovou sběrnici a periférie. Proto se skvěle uplatní při modernizaci již existujících aplikací bez výraznějších zásahů do obvodů. Přinaší tak výkon 32bitového systému při zachování 8bitové jednoduchosti. Tyto procesory jsou pinově kompatibilní s rodinou mikrokontrolérů S08 (což jsou právě 8bitové MCU).
- V2 - toto jádro poskytuje rychlost až 166 MHz je vyrobeno 0.13 ?m technologií a používá 32bitovou sběrnici jak pro data tak pro instrukce. Dále pak obsahuje integrovanou jednotku pro odlaďování aplikace (debugging) dvou-stupňovou fetch pipeline pro instrukce a dvou-stupňovou execution pipeline pro operandy matematických a logických operací.
- V3 - jádro verze 3 přináší novinky zdokonalená instrukční prefetch pipeline, stochastické schopnosti větvení programu (funkce předpovědi následující instrukce) a vyšší frekvenci prováděných instrukcí. Tato zlepšení umožňují jádru poskytnout až o 300% výce výkonu než jádro V2 a to i při navýšení frekvence jádra o méně jak 50%. Dále pak nabízí vylepšení dosavadních funkcí jako je vysoko-rychlostní multiply-accumulate unit (MAC unit), vyhrazená hardwarová dělička a rozšířené ladící schopnosti.
- V4 - tato generace mikroarchitektury poskytuje 2.8x větší výkon v porovnání s předcházející verzí V3. I zde se opět modernizovaly funkční bloky jako je MAC jednotka, debuggovací jednotka. Zvětšila se velikost jádra na 4.5mm2 při výrobní technologii 0.25 ?m. Původní 2fázové pipelines se zvětšili na 4fázovou Instruction Fetch Pipeline a 5fázovou Operand Execution Pipeline. Výhodou tohto jádra je i to, že naprostá většina instrukcí jsou 1cyklová. Instruction fetch pipeline dále obsahuje 2stupňový akcelerační mechanismus, který nadále zmenšuje dobu potřebnou na provádění změn.
- V4e - jádro s tímto označením bylo navrženo pro poskytnutí hardwarové podpory pro multi-procesorové aplikace které vyžadují vysoký výpočetní výkon který nemůže jednočipové řešení nabídnout. Jako výrobní technologie byla použita 0.18 ?m a jádro s těmito parametry může běžet až na 225 MHz jsou i varianty vyráběné 0.13 ?m technologií kde rychlost jádra dosahuje hodnoty 333 MHz.
- V5 - technologicky minimalně rozdílné od jádra V4e, poskytuje však 1.3x - 1.4x větší výkon při stejné výrobní technologii. Frekvence jádra 300 - 366 MHz.
Road map produktů ColdFire:
Stručný přehled jednotlivých typů procesorů ColdFire:
Závěr:
Úkolem dnešního článku nebylo zevrubně popisovat každý procesor z rodiny ColdFire, ale spíše nastínit jejich možnosti a vlastnosti spíše obecně. Každý jednotlivý typ se pak liší ve více či méně parametrech. V některém z příštích článků si popíšeme softwarovou a hardwerovou podporu pro tyto procesory a praktické možnosti použití. Stejně tak si uvedeme srovnání s některými konkurenčními platformami jako je např.: ARM, PowerPC aj. Je nutností podotknout, že procesory s jádry ColdFire jsou nasazovány prakticky do všech odvětví elektroniky počínaje přístroji pro zdravotnictví, potravinářství, automatizaci, domácí spotřebiče, spotřební elektroniku, mediální přehrávače, televize, rádia, set-top boxy, digitální videokamery, mobilní telefony, a spousty a spousty jiných. Na závěr bych se rád zmínil že, cenová strategie společnosti Freescale podporuje svobodný vývoj aplikací s těmito procesory, díky jejich dobrému poměru cena/výkon. Důkazem toho je i to, že většinu z komponent lze objednat jako vzorky přímo z domovské stránky výrobce a co je důležitější zdarma i s dopravou.
Odkaz a Download:
- Domácí stránky výrobce: http:/www.freescale.com
- Road map rodiny ColdFire
- Přehled produktů ColdFire
Komentáře
ColdFire vs. ARM
- Opravdu se tesim na srovnani ColdFire vs. ARM, protoze me ceka volba vhodne platformy pro nove zarizeni - alespon budu mit k dispozici vice informaci.- HW server by mel zamestnat jazykoveho korektora nebo alespon zapnout v textovem editoru kontrolu pravopisu:... hradlovými poly ...... se tyto procesory vyznačovali ...... na základě výsledků této studije ...... procesorů rodiny 68K které měli instrukční ...... jedná se o typ který byl vyvynut ...... I zde se opět modernizovali funkční bloky ...Nechci pusobit jako purista jazyka ceskeho, ale to se neda cist...
Omlouvám se čtenářům za
Omlouvám se čtenářům za gramatické chyby. Doufám jen, že pro většinu z vás jsou důležitá fakta a technické informace. Děkuji za opravu. Pokud budete chtít můžete mi do diskuzního fóra napsat o jaký projekt jde. Řešení výběru platformy u konkrétní aplikace je vždy lepší než teoretický návrh. S pozdravem
Tomáš Coufal
Vyvojove prostredi
Dovolim si trosku z praxe. Mam dve demo DPS s ColdFire (M52233DEMO), ktere jsem dostal na skoleni u Freescale. Prvni problem je vyvojove prostredi , Freescale k tomu dodava "lite verzi" CodeWariorra, ale ten potrebuje ke svemu behu nejakou licenci, ktera mi uz davno vyprsela a najit novou na jejich webu je temer nemozne. Nastesti existuji GNU vyvojove prostredi, ktere jsem kupodivu dostal i na CD s vyvojovou deskou (bohuzel se samply pro jiny procesor). Jenze to je temer ciste linuxove (textove, zadne GUI), akorat jen prelozene pro win. S driverama pro jejich BDM (integrovano na DPS) je to tak ze existuji rozumne ovladace jen pro win (linux je podporovan, jen se mi neporadilo zjistit, ktera verze, ma rozhodne ne). Takze cloveku nakonec nezbyde nic jineho nez pouzit GNU nastroje a win ovladace. Pokud se clovek zajima o blizsi veci ohledne mikroprocesoru tak z ceskeho freescale nedostane ani odpoved na email (a to tam piseme s hlavickou CVUT). Pokud by mel nekdo zajem o navod rozchozeni M52233DEMO ve win tak mohu zpristupnit www stranku s navodem jak toho dosahnout s GNU nastroji (win + linux).
Vyvojove prostredi k M52233DEMO
Byl bych velmi vdecen za navod na rozchozeni kitu M52233DEMO. Utratil jsem za neho hodne penez (aspon pro mne) a zatim se mi nepodaril rozchodit (myslim naprogramovat aplikaci a kod dostat do kitu). Navic ke kitu jsem dostal CD, ktere se tyka M5282LITE, ale o M52233DEMO tam nic neni. Snazil jsem se najit co nejvic informaci na netu, ale moc toho neni. S lite verzi CodeWariorra mam podobne zkusenosti, jak jiz bylo uvedeno. Snazim se o prechod z 8051 na motorolu a jde to dost ztuha. Informace na Freescalu jsou aspon pro mne nedostacujici. Uvital bych i blizsi informace o GNU nastrojich, ktere jsem na CD ke kitu nenasel.
GNU prostredky
Pokud jde o predstaveni pouzitelnych vyvojovych prostredi a utilit chystame o tom par clanku, ale nejsou lidi, takze to bude jeste chvili trvat. Kazdopadne s rozchozenim M52233DEMO zadny problem nebyl, alespon pokud je mi znamo. Udelat nejaky navod "krok za krokem" by nemel byt velky problem.
Priznam se, ze vice mne trochu desite s informacema o podpore z Roznova. Nam zatim na vse reagovali vzdy. Zkusim se s nekym od nich domluvit, co se s tim da delat.
GCC Toolchain pre M68K/Coldfire
Pokial niekto ma zaujem tak GCC binarky pre ColdFire a dalsie si moze stiahnut na http://www.gnupit.org zadarmo. Kompilovat GCC je umorna robota. Samozrejme ked nieco je zadarmo tak bohvie aku podporu k tomu sa neda ocakavat ale stale lepsie ako nic.
Licence pro CodeWarrior ColdFire
Rad bych zareagoval na pripominku ohledne licenci pro CodeWarrior. V zasade je mozne bezplatne pouzit dva typy licenci:
1.) Special Edition licence - obvykle je jiz soucasti instalace a po nainstalovani je mozne ihned zacit pouzivat CodeWarrior bez nutnosti jakekoliv registrace na strankach Freescale. Tato licence mimo jine omezuje C kompilator na 128KB zkompilovaneho kodu. Jedna se vsak o licenci permanentni, ktera funguje bez casovych omezeni.
2.) Evaluation licence - docasna 30-denni license na plnou (Professional) verzi CodeWarrioru. Z pochopitelnych duvodu neni mozne takovou licenci volne stahnout z webu. Nicmene o docasnou licenci lze pozadat prostrednictvim webovych stranek (http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=01272624442099) nebo zaslanim emailu na licensing@freescale.com. Freescale je pri pridelovani evaluation licenci vstricny.
Pro demonstraci moznosti soucastky a vyvojoveho prostredi byla na Freescale skoleni byla pouzita docasna (Evaluation) licence, ktera po triceti dnech vyexpirovala. Kdykoliv je vsak mozne se vratit ke Special Edition licenci.
Pri jakychkoliv problemech s licenci doporucuji zaslat email na license@freescale.com.
Pro porovnani rozdilu mezi jednotlivymi edicemi CodeWarrioru pro ColdFire doporucuji nasledujici stranku:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CWS-MCF-S...
Na zaver prikladam Special Edition licenci. Pro pouziti staci jednoduse zkopirovat nasledujici radky a ulozit je do souboru s nazvem "license.dat". Tento soubor se pak ulozi do domovskeho adresare CodeWarrioru (typicky C:\ProgramFiles\Freescale\CodeWarrior_xxx).
FEATURE Win32_CWIDE_Limited metrowks 5.5 permanent uncounted 2589EF7E8174 HOSTID=ANY
#######################################################
# ( 728): Coldfire V6.0 Special Edition
#######################################################
INCREMENT Win32_CWIDE_Unlimited metrowks 5.5 permanent uncounted B80DDD0A75A5 VENDOR_STRING="CodeWarrior IDE 4.2 or later, Windows" HOSTID=ANY ck=151
INCREMENT Win32_ColdFire_Compiler metrowks 6.0 permanent uncounted CA8F37747B64 VENDOR_STRING="ColdFire Compiler" HOSTID=ANY ck=114
INCREMENT Win32_ColdFire_Debugger metrowks 6.0 permanent uncounted D4DEDCF068C4 VENDOR_STRING="131072 bytes, ColdFire Download Size, ColdFire Debugger" HOSTID=ANY ck=178
INCREMENT Win32_ColdFire_Flash metrowks 6.0 permanent uncounted 94A49F4F34F4 VENDOR_STRING="131072 bytes of code, ColdFire Flash Programming" HOSTID=ANY ck=121
INCREMENT Win32_ColdFire_Special_128 metrowks 6.0 permanent uncounted FC14532E2F77 HOSTID=ANY ck=110
INCREMENT Win32_Plugins_ColdFire_PnE metrowks 6.0 permanent uncounted 63DF35E0134A HOSTID=ANY ck=151
Lze tuto licensi použít i
Lze tuto licensi použít i pro Codewarrior v6.3 a v6.4?
Technicka podpora - Freescale
Rad bych zareagoval na pripominku ohledne dostupnosti technicke podpory. Zadavani technickych dotazu pracovnikum Freescale Semiconductor je potreba realizovat standardnimi zpusoby, tedy prostrednictvim www stranky spolecnosti www.freescale.com, popr. zaslanim konkretniho dotazu na adresu support@freescale.com. Ukazkovy postup zadani technickeho dotazu pomoci webu spolecnosti je uveden zde: http://hw.cz/files/HowToEnterTechRequest.pdf.
Coldfire a debugování
S Freescale (Motorola) procesory dělám již od r.1997. Stále jsem nadšen implementovanými periferiemi a snahou o symetrický přístup k ovládání chipu (konfigurační registry jsou paměťově mapovány). V aplikaci není většinou zapotřebí žádný další dekodér, stačí programovatelné chip selecty. To, co se jinde musí programovat, se tady jen nakonfiguruje v registrech a příslušná periferie to již sama udělá. Např. ethernet řešení (FEC), kdy z pohledu SW nastane přerušení až tehdy, když je celý paket přes DMA v RAM, je super. Debugování s BDM a CodeWarriorem (CW) je super již těch 10 let.
Nelíbí se mi však uzavřenost CW, ve chvíli, kdy ostatní přecházejí na Eclipse + pluginy. Naše snaha dodělat si do CW úpravu z barebone memory modelu na OS + thready narazila na nedostupnost API slibovaného v oficiální dokumentaci. Též např. integrace SVN zdaleka nedosahuje "přítulnosti" Subclipse pluginu pro Eclipse. Tahle obchodní strategie se mi nelíbí. Procesory jinak super, podporu jsem dostal až přímo do továrny, když jsem potřeboval.
Podpora gcc + Eclipse pro uCLinux je např. na www.steroidmicros.com (komerční SDK).