Články v rubrice Kompilery a procesory

Programování GPU na Raspberry Pi: použití Quad Processor Unit(s)

Raspberry Pi je znám poměrně nevýkonným procesorem. Ve skutečnosti čipy BCM2835(6,7) nabízí vysoký výkon teoreticky dosahující až 28,8 GFLOPS. Výpočet je ale nutné přenést z CPU (ARM) na tzv. QPU.

Pavel Tišnovský

22. 9. 2016 0:00

Mikroprocesory a mikrořadiče s jádrem SH-2A aneb vítězství superskalární architektury

Ve třetím článku o architektuře SuperH se budeme věnovat popisu instrukční sady SH-2A. Jedná se o rozšíření původní sady SH-2 o instrukce užitečné zejména v mikrořadičích a taktéž při zpracování signálů.

Pavel Tišnovský

20. 9. 2016 0:00
| 2

Instrukční sada mikroprocesorů SuperH 2 (SH-2)

Ve druhém článku o SuperH si popíšeme instrukční sadu SH-2, s níž se mohli setkat programátoři her pro Sega Saturn a dnes především vývojáři mikrořadičů pro průmyslové aplikace (včetně automotive).

Pavel Tišnovský

15. 9. 2016 0:00
| 5

Mikroprocesory a mikrořadiče s instrukční sadou SuperH (SH)

Je možné pozorovat rostoucí oblibu mikrořadičů s plně 32bitovými ALU. Kromě ARM (Cortex-M) či MIPS se zejména v průmyslu setkáme i s mikrořadiči s instrukčními sadami SuperH (SH-2, SH-2A, SH-4).

Pavel Tišnovský

8. 9. 2016 0:00
| 7

RISCová architektura PowerPC: AltiVec a operace s vektory

Prakticky u všech RISCových architektur nalezneme rozšíření instrukční sady určená pro operace s vektory dat. Podobná rozšíření najdeme i u PowerPC: AltiVec, Velocity Engine či Vector Multimedia Extension.

Pavel Tišnovský

6. 9. 2016 0:00

RISCová architektura PowerPC: matematický koprocesor

Třetí a současně i poslední část článku o mikroprocesorech s architekturou PowerPC je věnována popisu instrukcí používaných při práci s numerickými hodnotami s plovoucí řádovou čárkou (floating point).

Pavel Tišnovský

23. 8. 2016 0:00

RISCová architektura PowerPC (pokračování)

Ve druhé části článku o RISCové architektuře PowerPC nejprve dokončíme popis modulu určeného pro provádění podmíněných i nepodmíněných skoků a následně se zaměříme na celočíselné instrukce prováděné v aritmeticko-logické jednotce.

Pavel Tišnovský

16. 8. 2016 0:00
| 5

RISCová architektura PowerPC

Jednou z posledních rozšířených a stále používaných RISCových architektur, kterou jsme si (alespoň prozatím) nepopsali, je architektura PowerPC. Dnes se seznámíme s jejími základními vlastnostmi.

Pavel Tišnovský

4. 8. 2016 0:00

Architektura mikrořadičů s jádry ARM Cortex-M4

Pátý článek o mikrořadičích založených na RISCových jádrech s architekturou ARM je věnován popisu řady Cortex-M4(F). Čipy obsahující tato jádra se podobají již dříve popsaným jádrům Cortex-M3, ovšem ve skutečnosti mají mnoho společného i s minule popsanými nejvýkonnějšími mikrořadiči Cortex-M7.

Pavel Tišnovský

19. 1. 2016 0:00

RISCové mikroprocesory s komprimovanými instrukčními sadami (2)

V předchozí části článku o mikroprocesorech s RISCovou architekturou jsme si uvedli důvody, které vedly návrháře RISCových procesorů k zavedení takzvaných „komprimovaných“ instrukcí. Kromě minule popsané sady MIPS16e samozřejmě existují i sady další, především pak RVC (RISC-V „C“).

Pavel Tišnovský

22. 12. 2015 0:00

RISCové mikroprocesory s komprimovanými instrukčními sadami

Při popisu mikroprocesorů s RISCovou architekturou jsme se již zmínili o použití těchto čipů v mikrořadičích či SoC, což je oblast, pro kterou původní RISCy nebyly navrženy. A právě v této oblasti se ukazuje, jak může být výhodné používat instrukční sady s kratšími „komprimovanými“ instrukcemi.

Pavel Tišnovský

15. 12. 2015 0:00

Instrukční sady procesorových jader s otevřenou architekturou RISC-V (dokončení)

Dnes dokončíme popis instrukčních sad rozšiřujících základní 32bitovou instrukční sadu RV32I. Seznámíme se s rozšířením „D“ (operace s čísly double), „Q“ (čísla se čtyřnásobnou přesností), „A“ (atomické operace), 64bitovou instrukční sadou i s rozšířením „C“ (komprimované instrukce).

Pavel Tišnovský

26. 11. 2015 0:00
| 8

Rozšíření instrukční sady procesorových jader s otevřenou architekturou RISC-V

V dnešní části článku o otevřené architektuře RISCových jader RISC-V nejprve dokončíme popis základní instrukční sady nazvané RV32I a posléze se zaměříme na některá důležitá rozšíření této instrukční sady. Bude se jednat například o instrukce pro násobení a dělení a samozřejmě i o instrukce matematického koprocesoru.

Pavel Tišnovský

12. 11. 2015 0:00

Instrukční sada procesorových jader s otevřenou architekturou RISC-V

Navážeme na předchozí článek, v němž jsme se seznámili se základními vlastnosti otevřených RISCových procesorových jader OpenRISC a RISC-V. Popíšeme si instrukční sadu RV32I, která je určena pro 32bitové čipy s jádry RISC-V. Je navržena velmi elegantně a navíc její tvůrci dobře vysvětlují všechna svá rozhodnutí.

Pavel Tišnovský

5. 11. 2015 0:00

Otevřené RISCové architektury OpenRISC a RISC-V

Ve světě open-source hardware (OSH) se již poměrně dlouho rozvíjí dva velmi zajímavé projekty. Jedná se o otevřené RISCové architektury nazvané OpenRISC a RISC-V. Dnes se seznámíme jak s prvním zmíněným projektem používajícím licence GPL a LGPL, tak i s projektem RISC-V, který je mnohem promyšlenější.

Pavel Tišnovský

29. 10. 2015 0:00

Použití mikrořadičů s jádrem Cortex-M na reálných čipech

Na předchozí články, v nichž jsme si popsali základní vlastnosti jader Cortex-M, navážeme článkem dnešním, v němž se budeme věnovat stručnému popisu vlastností některých reálných čipů, které tato jádra obsahují. Začneme samozřejmě těmi čipy, v nichž je použito jádro Cortex-M0 či novější Cortex-M0+.

Pavel Tišnovský

23. 10. 2015 0:00
| 6

Nejvýkonnější MCU aneb architektura mikrořadičů s jádry ARM Cortex-M7

Třetí článek o mikrořadičích s architekturou ARM je věnován nejvýkonnějším jádrům, která jsou v současnosti v této oblasti nabízena. Jedná se o jádra s názvem Cortex-M7. Čipy s těmito jádry se v mnoha ohledech odlišují od již popsaných čipů založených na Cortex-M0, Cortex-M0+ a Cortex-M3.

Pavel Tišnovský

15. 10. 2015 9:30

Architektura mikrořadičů s jádry ARM Cortex-M3

Na článek z předchozího týdne, v němž jsme si popsali nejmenší jádra ARM s názvem Cortex-M0 a Cortex-M0+, navážeme článkem dnešním, který je věnován výkonnějším mikroprocesorovým a mikrořadičovým jádrům. Ta nesou označení Cortex-M3 a nalezneme je například v čipu, který pohání populární Arduino Due.

Pavel Tišnovský

6. 10. 2015 0:00

Architektura mikrořadičů s jádry ARM Cortex-M0 a ARM Cortex-M0+

Přibližně před pěti lety došlo na trhu s mikrořadiči k poměrně významné události: obrat z prodejů 32bitových mikrořadičů přesáhl obrat dosahovaný u mikrořadičů osmibitových (PIC, řada 51, Atmel AVR). Nezanedbatelný podíl zde mají jádra ARM Cortex-M0 a Cortex-M0+, jejichž architekturu si dnes popíšeme.

Pavel Tišnovský

1. 10. 2015 0:00

Interpretry, překladače, JIT překladače a transpřekladače programovacího jazyka Lua

Programovací jazyk Lua je standardně překládán do bajtkódu, který je následně interpretován, podobně jako je tomu u většiny dalších skriptovacích jazyků. Ve skutečnosti však mají vývojáři využívající tento programovací jazyk k dispozici i další možnosti: transpřekladače či JIT překladače.

Pavel Tišnovský

28. 7. 2015 0:00

LuaJIT – Just in Time překladač pro programovací jazyk Lua (12 – překlad operací s reálnými čísly)

V programovacím jazyku Lua jsou základním numerickým datovým typem čísla s plovoucí řádovou čárkou s dvojitou přesností (IEEE 754) známé v dalších jazycích pod názvem double. Pokud se s tímto datovým typem ve zdrojových kódech pracuje, musí LuaJIT při překladu vygenerovat příslušné strojové instrukce.

Pavel Tišnovský

15. 1. 2015 0:00
| 5

LuaJIT – Just in Time překladač pro programovací jazyk Lua (11 – JIT překlad do nativního kódu procesorů s architekturami x86 a ARM)

Třetím krokem JIT překladu prováděného LuaJITem je transformace pseudoinstrukcí do nativního kódu mikroprocesoru, na němž je LuaJIT spuštěn. LuaJIT podporuje překlad s využitím instrukčních sad mikroprocesorů Intel i AMD (32 bit, 64 bit), ARM (prozatím 32 bit), MIPS a PowerPC. Touto problematikou se budeme zabývat dnes.

Pavel Tišnovský

8. 1. 2015 0:00
| 2

LuaJIT – Just in Time překladač pro programovací jazyk Lua (10 – JIT překlad do nativního kódu)

V předchozích dvou článcích jsme se zabývali především způsobem detekce stop (traces) v bajtkódu aplikací naprogramovaných v jazyku Lua. Dnes se budeme zabývat druhým a částečně i třetím krokem, který musí trasovací JIT překladač provést. Jedná se o generování pseudoinstrukcí a následně i vytváření nativního kódu.

Pavel Tišnovský

16. 12. 2014 0:00
| 4

LuaJIT – Just in Time překladač pro programovací jazyk Lua (9 – další vlastnosti trasovacího JITu)

V další části seriálu o překladači LuaJIT budeme pokračovat v popisu funkce trasovacího překladače. Minule jsme si ukázali, jak trasovací překladač dokáže detekovat často používané programové smyčky, dnes se podíváme na způsob detekce větví ve smyčkách a detekci funkcí volaných s velkou frekvencí.

Pavel Tišnovský

11. 12. 2014 0:00
| 4

LuaJIT – Just in Time překladač pro programovací jazyk Lua (8 – základní vlastnosti trasovacího JITu)

V dalším článku o překladači LuaJIT si řekneme základní informace o činnosti trasovacího JITu používaného pro detekci těch částí kódu aplikace, které se budou v runtime překládat do nativního (strojového) kódu. Trasovací JIT tvoří zajímavou a dnes stále populárnější skupinu just-in-time překladačů.

Pavel Tišnovský

2. 12. 2014 0:00
| 3

LuaJIT – Just in Time překladač pro programovací jazyk Lua (7 – dokončení popisu mezijazyka LuaJITu)

V sedmé části článku o Just in Time překladači LuaJIT dokončíme popis mezijazyka, který v LuaJITu plní funkci bajtkódu. Minule jsme se zmínili o způsobu překladu programových smyček, dnes na toto téma navážeme a popíšeme si způsob překladu smyčky for-each a následně pak práci s uzávěry (closures).

Pavel Tišnovský

25. 11. 2014 0:00

LuaJIT – Just in Time překladač pro programovací jazyk Lua (6 – překlad programových smyček do mezijazyka LuaJITu)

V šesté části článku o Just in Time překladači nazvaném LuaJIT si vysvětlíme, jakým způsobem se překládají programové smyčky typu while, repeat-until i smyčky typu for-each používané jak při procházení běžných polí (s prvky adresovanými s využitím indexů), tak i při procházení všemi prvky asociativních polí.

Pavel Tišnovský

18. 11. 2014 0:00

LuaJIT – Just in Time překladač pro programovací jazyk Lua (5 – tabulky a pole)

V páté části článku o Just in Time překladači nazvaném LuaJIT se budeme zabývat způsobem překladu programů pracujících s tabulkami. Ukážeme si způsob tvorby jednorozměrných i dvourozměrných tabulek a taktéž přístup k prvkům tabulek, a to jak s využitím celočíselných indexů, tak i s použitím klíčů.

Pavel Tišnovský

11. 11. 2014 0:00

LuaJIT – Just in Time překladač pro programovací jazyk Lua (4)

Čtvrtá část článku o Just in Time překladači nazvaném LuaJIT bude věnována problematice volání funkcí, předávání parametrů do funkcí a taktéž způsobu vracení hodnoty či většího množství hodnot z volaných funkcí. Seznámíme se i s dalšími instrukcemi mezijazyka využívaného LuaJITem.

Pavel Tišnovský

4. 11. 2014 0:00

LuaJIT – Just in Time překladač pro programovací jazyk Lua (3)

Ve třetím článku o Just in Time překladači LuaJIT si popíšeme všechny instrukce mezijazyka (IR) implementující podmínky a relační operátory. Jedná se o rozšíření tématu, kterému jsme se věnovali minule, dnes se však budeme zabývat mj. i porovnáním obsahu proměnných s řetězci či se speciálními hodnotami true, false a nil.

Pavel Tišnovský

28. 10. 2014 0:00
| 4
DigiZone.cz: Jaká je Swisscom TV Air Free

Jaká je Swisscom TV Air Free

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Vitalia.cz: 5 důvodů, proč jet na výlov rybníka

5 důvodů, proč jet na výlov rybníka

DigiZone.cz: Digi Slovakia zařazuje stanice SPI

Digi Slovakia zařazuje stanice SPI

Lupa.cz: Co všechno je Facebook schopný cenzurovat?

Co všechno je Facebook schopný cenzurovat?

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Vitalia.cz: Jak Ondra o astma přišel

Jak Ondra o astma přišel

DigiZone.cz: Wimbledon na Nova Sport až do 2019

Wimbledon na Nova Sport až do 2019

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

DigiZone.cz: Budoucnost TV vysílání ve Visegrádu

Budoucnost TV vysílání ve Visegrádu

Vitalia.cz: Vodárny varují: Ve vodě z kohoutku jsou bakterie

Vodárny varují: Ve vodě z kohoutku jsou bakterie

Vitalia.cz: Tesco nabízí desítky tun jídla zdarma

Tesco nabízí desítky tun jídla zdarma

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Root.cz: Podívejte se na shořelé Samsung Note 7

Podívejte se na shořelé Samsung Note 7

Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip

Měšec.cz: „Ukradli“ jsme peníze z bezkontaktních karet

„Ukradli“ jsme peníze z bezkontaktních karet

Lupa.cz: Odkazy na pirátský obsah mohou být nelegální

Odkazy na pirátský obsah mohou být nelegální

DigiZone.cz: Regionální tele­vize CZ vysílá "Mapu úspěchu"

Regionální tele­vize CZ vysílá "Mapu úspěchu"