<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Bitová vrstva: procesor on Miroslav Thompson</title>
    <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/</link>
    <description>Recent content in Bitová vrstva: procesor on Miroslav Thompson</description>
    <generator>Hugo -- 0.147.3</generator>
    <language>cs-CZ</language>
    <atom:link href="https://mrthompson.cz/jak-se-stat-ajtakem/procesor/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Instrukce procesoru</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/instrukce/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/instrukce/</guid>
      <description>Co je to procesorová instrukce a co je to strojový kód</description>
    </item>
    <item>
      <title>Šířka instrukce</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/sirka-instrukce/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/sirka-instrukce/</guid>
      <description>O šířce instrukce v procesorech</description>
    </item>
    <item>
      <title>Sériové zpracování instrukce</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/seriove-zpracovani-instrukce/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/seriove-zpracovani-instrukce/</guid>
      <description>O tom, jak procesory zpracovávají instrukce jednu za druhou.</description>
    </item>
    <item>
      <title>Frekvence a cyklus procesoru</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/cyklus/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/cyklus/</guid>
      <description>O tom, kolik času reálně zabírají běžící instrukce v procesorech</description>
    </item>
    <item>
      <title>Program</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/program/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/program/</guid>
      <description>Program a instrukční tok</description>
    </item>
    <item>
      <title>Program a RAM paměť</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/program-ram/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/program-ram/</guid>
      <description>Role RAM paměti v instrukčním toku</description>
    </item>
    <item>
      <title>Jediný běžící program</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/jediny-program/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/jediny-program/</guid>
      <description>&lt;p&gt;V předchozí kapitolách &lt;a href=&#34;https://mrthompson.cz/jak-se-stat-ajtakem/procesor/program/&#34;&gt;Program&lt;/a&gt; jsem vysvětlil, jak se na počítačích spouští programy z RAM paměti.&lt;/p&gt;
&lt;div class=&#34;note-blue&#34;&gt;
&lt;p&gt;&lt;strong&gt;⚠️ Důležité pro zapamatování&lt;/strong&gt;: Tímto způsobem, stejně jako před 70 lety, je možné spustit nad procesorem &lt;strong&gt;pouze jeden jediný program&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Takto lze definovat běžný počítač.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Jeden počítač = jedna RAM paměť = jeden procesor = jeden program&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;Běžný uživatel a běžný ajťák v mém pojetí pracují až na úrovni &lt;strong&gt;operačního systému&lt;/strong&gt;. Operační systém je ten jediný program, který na běžných počítačích tímto způsobem běží.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Multijádrové procesory</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/multicore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/multicore/</guid>
      <description>Technologický vývoj a s ním spojené neustálé zmenšování obvodů a tranzistorů v procesoru umožnil, že procesory mají více jader.</description>
    </item>
    <item>
      <title>Jak spustit program?</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/jak-spustit-program/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/jak-spustit-program/</guid>
      <description>Jak spusit program v běžném moderním počítači</description>
    </item>
    <item>
      <title>Výstupní bity</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/vystupni-bity/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/vystupni-bity/</guid>
      <description>Jak procesor komunikuje výsledky svých instrukcí se zbytkem počítače a proč to není pro běžného ajťáka důležité</description>
    </item>
    <item>
      <title>Instrukční sada</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/instrukcni-sada/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/instrukcni-sada/</guid>
      <description>Instrukční sada je předepsaná norma instrukcí pro procesory.</description>
    </item>
    <item>
      <title>Program a instrukční sada</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/program-instrukcni-sada/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/program-instrukcni-sada/</guid>
      <description>&lt;div class=&#34;note-blue&#34;&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Důležité k zapamatování&lt;/strong&gt;: Na bitové vrstvě jsou všechny programy psané &lt;strong&gt;pro konkrétní instrukční sadu!&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Program psaný pro danou &lt;a href=&#34;https://mrthompson.cz/jak-se-stat-ajtakem/procesor/instrukcni-sada/&#34;&gt;instrukční sadu&lt;/a&gt; bude fungovat pouze na procesorech, které jsou pro danou instrukční sadu stavěné, nebo jsou s instrukční sadou kompatibilní.&lt;/p&gt;
&lt;figure class=&#34;align-center &#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;../program-instrukcni-sada.png#center&#34; width=&#34;500&#34;/&gt; &lt;figcaption&gt;
            Program a instrukční sada
        &lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Adresovatelnost</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/adresy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/adresy/</guid>
      <description>RAM paměť je adresovatelné zařízení.</description>
    </item>
    <item>
      <title>Jak vypadá instrukce</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/jak-vypada-instrukce/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/jak-vypada-instrukce/</guid>
      <description>Podrobný pohled na instrukce</description>
    </item>
    <item>
      <title>Typy instrukcí</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/typy-instrukci/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/typy-instrukci/</guid>
      <description>Jaké jsou typy procesorových instrukcí</description>
    </item>
    <item>
      <title>Přesunové instrukce</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/presunove-instrukce/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/presunove-instrukce/</guid>
      <description>Přesunové instrukce jsou jakékoliv instrukce pro posílání bitů z jednoho místa do jiného místa</description>
    </item>
    <item>
      <title>Aritmeticko-logické instrukce</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/aritmeticko-logicke-instrukce/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/aritmeticko-logicke-instrukce/</guid>
      <description>Aritmeticko-logické instrukce</description>
    </item>
    <item>
      <title>Řídící instrukce: JUMP</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/ridici-instrukce/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/ridici-instrukce/</guid>
      <description>Jak fungují v procesorech řídící instrukce</description>
    </item>
    <item>
      <title>Řídící instrukce: NOP</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/nop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/nop/</guid>
      <description>Co (ne)dělá instrukce NOP</description>
    </item>
    <item>
      <title>Funkce / podrutina</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/fce-podrutina/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/fce-podrutina/</guid>
      <description>Jak lze v instrukcích nadefinovat podrutiny díky JUMP instrukci</description>
    </item>
    <item>
      <title>Funkce / podrutina 2</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/fce-podrutina2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/fce-podrutina2/</guid>
      <description>&lt;div class=&#34;note-blue&#34;&gt;
&lt;p&gt;⚠️ Koncept funkcí je v IT extrémně důležitý a objevuje se úplně všude.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pro stisknutí tlačítka na klávesnici se spustila nějaká funkce&lt;/li&gt;
&lt;li&gt;Při načtení webové stránky v prohlížeči se spustila nějaká funkce&lt;/li&gt;
&lt;li&gt;Při ztučnění písma ve Wordu se spustila nějaká funkce&lt;/li&gt;
&lt;li&gt;atd.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;V následujících 2 kapitolách se věnuji funkcím víc dopodrobna.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;V minulém díle jsem pojmenoval, co je &lt;a href=&#34;https://mrthompson.cz/jak-se-stat-ajtakem/procesor/fce-podrutina/&#34;&gt;funkce / podrutina&lt;/a&gt; a ukázal jsem, jak taková podrutina může být vyrobena díky &lt;code&gt;JUMP&lt;/code&gt; instrukci.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Anatomie definice funkce/podrutiny</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/fce-podrutina-anatomie/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/fce-podrutina-anatomie/</guid>
      <description>&lt;p&gt;Pro vysvětlení anatomie &lt;strong&gt;definice&lt;/strong&gt; funkce/podrutiny použiju příklad &lt;code&gt;7 = SEČTI(3, 4)&lt;/code&gt; z minulé kapitoly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Definice funkce&lt;/strong&gt; je jenom takový lidský zápis díky kterému hned poznáte:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;název funkce&lt;/li&gt;
&lt;li&gt;kolik má vstupních parametrů. Jednotlivé parametry jsou oddělené čárkou&lt;/li&gt;
&lt;li&gt;co je výstupem funkce&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&#34;align-center &#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;../fxdef.png#center&#34; width=&#34;700&#34;/&gt; &lt;figcaption&gt;
            Definice funkce
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;vstupní-parametry&#34;&gt;Vstupní parametry&lt;/h2&gt;
&lt;p&gt;Vstupní parametry náleží k definici funkce. V příkladu SEČTI na obrázku výše to jsou &lt;strong&gt;sčítanec1&lt;/strong&gt; a &lt;strong&gt;sčítanec2&lt;/strong&gt;.&lt;/p&gt;
&lt;div class=&#34;note-blue&#34;&gt;
&lt;p&gt;⚠️ Funkce může mít libovolné množství vstupních parametrů &lt;strong&gt;ale také nemusí mít žádný vstupní parametr&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Anatomie volání funkce/podrutiny</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/fce-podrutina-volani/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/fce-podrutina-volani/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Volání funkce&lt;/strong&gt; je &lt;strong&gt;konkrétní použití funkce&lt;/strong&gt; s &lt;strong&gt;konkrétními dosazenými hodnotami&lt;/strong&gt; (pokud jsou nějaké).&lt;/p&gt;
&lt;p&gt;Pro vysvětlení anatomie &lt;strong&gt;volání&lt;/strong&gt; funkce/podrutiny použiju příklad &lt;code&gt;7 = SEČTI(3, 4)&lt;/code&gt; z minulé kapitoly.&lt;/p&gt;
&lt;figure class=&#34;align-center &#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;../fxcall.png#center&#34; width=&#34;500&#34;/&gt; &lt;figcaption&gt;
            Volání funkce
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;vstupní-hodnoty&#34;&gt;Vstupní hodnoty&lt;/h2&gt;
&lt;p&gt;V příkladu SEČTI to jsou hodnoty 3 a 4.&lt;/p&gt;
&lt;p&gt;Také lze říct, že:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;3 je hodnota parametru &amp;ldquo;sčítanec1&amp;rdquo;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;4 je hodnota parametru &amp;ldquo;sčítanec2&amp;rdquo;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;vrácená-hodnota&#34;&gt;Vrácená hodnota&lt;/h2&gt;
&lt;p&gt;V příkladu SEČTI to je hodnota 7. Také lze říct, že &lt;em&gt;funkce SEČTI vrátila 7&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Calling convention</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/calling-convention/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/calling-convention/</guid>
      <description>Jak je volání funkcí standardizováno napříč instrukčními sadami</description>
    </item>
    <item>
      <title>Řetězení funkcí/podrutin</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/retezeni-podrutin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/retezeni-podrutin/</guid>
      <description>Jak jedna funkce volá jinou funkci</description>
    </item>
    <item>
      <title>Hardwarové přerušení</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/preruseni/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/preruseni/</guid>
      <description>Jak procesor dostane signál z vnějšího světa?</description>
    </item>
    <item>
      <title>Softwarové přerušení</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/sw-preruseni/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/sw-preruseni/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Softwarové přerušení&lt;/strong&gt; je situace kdy nějaká instrukce, záměrně či nezáměrně, vyvolá přerušení obdobně, jako u &lt;a href=&#34;https://mrthompson.cz/jak-se-stat-ajtakem/procesor/preruseni/&#34;&gt;hardwarového přerušení&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Záměrné vyvolání přerušení&lt;/strong&gt; je mechanismus běžně používaný operačními systémy a ve vývoji softwaru. K tomu se ještě vrátíme později v kapitolách o operačních systémech a tvorbě softwaru.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Nezáměrné vyvolání přerušení&lt;/strong&gt; může způsobit chybné použití instrukce.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Typický příklad je dělení nulou u instrukce pro dělení čísel.&lt;/li&gt;
&lt;li&gt;Nebo se snažíte zapsat na adresu v paměti, která neexistuje&lt;/li&gt;
&lt;li&gt;A podobně.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;vyvolání-přerušení&#34;&gt;Vyvolání přerušení&lt;/h2&gt;
&lt;p&gt;Funguje to velmi podobně, jako hardwarové přerušení.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Čipset základní desky</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/sbernice/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/sbernice/</guid>
      <description>Jak procesor komunikuje s ostatními komponentami</description>
    </item>
    <item>
      <title>Synchronní I/O instrukce</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/synchronni-io/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/synchronni-io/</guid>
      <description>Přímá komunikace mezi procesorem a komponentou</description>
    </item>
    <item>
      <title>Asynchronní I/O instrukce</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/asynchronni-io/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/asynchronni-io/</guid>
      <description>Nepřímá komunikace mezi procesorem a komponentami</description>
    </item>
    <item>
      <title>BIOS a UEFI</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/bios-uefi/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/bios-uefi/</guid>
      <description>Počítač v počítači</description>
    </item>
    <item>
      <title>Schopnost změny instrukce</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/instrukce-v-ram/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/instrukce-v-ram/</guid>
      <description>Program, který se může měnit za běhu</description>
    </item>
    <item>
      <title>Složitosti kterým nemusíme rozumět</title>
      <link>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/hw-slozitosti/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://mrthompson.cz/jak-se-stat-ajtakem/procesor/hw-slozitosti/</guid>
      <description>Jak fungují moderní procesory doopravdy</description>
    </item>
  </channel>
</rss>
