Instrukční cyklus

Z MediaWiki SPŠ a VOŠ Písek
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
 
(Není zobrazeno 6 mezilehlých verzí od 3 uživatelů.)
Řádka 1: Řádka 1:
'''Úvod'''
+
{{#widget:YouTube|id=bMLnqQEQGNE|height=270|width=360|Fetch-Decode-Execute Cycle|right}}
----
+
 
 +
== '''Úvod''' ==
 +
 
 
Instrukční cyklus je posloupnost kroků, jejichž postupným provedením se vykonává operace definovaná instrukcí programu.  
 
Instrukční cyklus je posloupnost kroků, jejichž postupným provedením se vykonává operace definovaná instrukcí programu.  
  
'''Dělení cyklusu'''
+
== '''Dělení cyklusu''' ==
----
+
 
 
Instrukční cyklus se skládá ze dvou fází:
 
Instrukční cyklus se skládá ze dvou fází:
1.)Výběrová - v průběhu této fáze se vybere instrukce z hlavní paměti, dekóduje kód operace a určí adresy operandů.
+
 
2.)Vykonávací - v průběhu této fáze se vyberou operandy, realizuje se operace a výsledek se zapíše na určené paměťové místo ([[registr]] nebo [[hlavní paměť]])
+
# Výběrová - v průběhu této fáze se vybere instrukce z hlavní paměti, dekóduje kód operace a určí adresy operandů.
 +
# Vykonávací - v průběhu této fáze se vyberou operandy, realizuje se operace a výsledek se zapíše na určené paměťové místo ([[registr]] nebo [[hlavní paměť]])
 
    
 
    
 
Instrukční cyklus se dále dělí na strojové cykly, přičemž jeden [[strojový cyklus]] znamená jeden přístup do paměti. Strojový cyklus se pak dále dělí na [[strojové takty]].
 
Instrukční cyklus se dále dělí na strojové cykly, přičemž jeden [[strojový cyklus]] znamená jeden přístup do paměti. Strojový cyklus se pak dále dělí na [[strojové takty]].
[[Soubor:http://wiki.sps-pi.com/wiki/Soubor:Tabulka_pro_instruk%C4%8Dn%C3%AD_cyklus.jpg]]
+
[[Soubor:Tabulka pro instrukční cyklus.jpg]]
  
'''Zřetězení'''
+
== '''Zřetězení''' ==
----
+
  
 
Je to všeobecný princip zpracování informací, založený na rozdělení operací, procesů nebo úloh na jednotlivé kroky, které jsou vykonávány samostatnými moduly.  
 
Je to všeobecný princip zpracování informací, založený na rozdělení operací, procesů nebo úloh na jednotlivé kroky, které jsou vykonávány samostatnými moduly.  
  
'''Zřetězené zpracování instrukcí ([[pipelining]])'''
+
 
----
+
=== '''Zřetězené zpracování instrukcí ([[pipelining]])''' ===
 +
 
 
Vychází z toho, že zpracování každé instrukce procesorem lze rozdělit do pěti základních fází:
 
Vychází z toho, že zpracování každé instrukce procesorem lze rozdělit do pěti základních fází:
1.)PF - výběr instrukce (další zpracovávaná instrukce se bere buď z [[RAM]] nebo z [[Cache]].
+
# PF - výběr instrukce (další zpracovávaná instrukce se bere buď z [[RAM]] nebo z [[Cache]].
2.)DI - dekódování instrukce (určí se délka a typ instrukce)
+
# DI - dekódování instrukce (určí se délka a typ instrukce)
3.)DA - výpočet adresy (určí se adresa operandů, se kterými instrukce pracuje)
+
# DA - výpočet adresy (určí se adresa operandů, se kterými instrukce pracuje)
4.)EX - provedení instrukce  
+
# EX - provedení instrukce  
5.)WB - zápis výsledků
+
# WB - zápis výsledků
[[Soubor:http://wiki.sps-pi.com/wiki/Soubor:Instruk%C4%8Dn%C3%AD_cyklus.JPG]]
+
 
 +
[[Soubor:Instruk%C4%8Dn%C3%AD_cyklus.JPG]]
  
 
Při klasickém zpracování se v každých pěti taktech zpracuje kompletně celá jedna první instrukce, v dalších pěti taktech zase druhá, což prodlužuje dobu zpracování všech instrukcí. Např. po deseti taktech jsou zpracovány pouze dvě instrukce.
 
Při klasickém zpracování se v každých pěti taktech zpracuje kompletně celá jedna první instrukce, v dalších pěti taktech zase druhá, což prodlužuje dobu zpracování všech instrukcí. Např. po deseti taktech jsou zpracovány pouze dvě instrukce.
Řádka 32: Řádka 36:
  
 
Může ale nastat problém, když některá z instrukcí způsobí skok. V tom případě se musí vyprázdnit fronta, nezpracované instrukce nebudou vůbec provedeny a program bude pokračovat tam, kde byl uskutečněn skok.  
 
Může ale nastat problém, když některá z instrukcí způsobí skok. V tom případě se musí vyprázdnit fronta, nezpracované instrukce nebudou vůbec provedeny a program bude pokračovat tam, kde byl uskutečněn skok.  
-[[procesor]], který má jednu frontu pro toto zřetězené zpracování se nazývá [[skalární procesor]].
+
 
-ten, co má více než jednu frontu se nazývá [[superskalární procesor]].
+
* [[procesor]], který má jednu frontu pro toto zřetězené zpracování se nazývá [[skalární procesor]].
 +
* ten, co má více než jednu frontu se nazývá [[superskalární procesor]].
 +
 
 +
== '''Instruktion Execution''' ==
 +
 
 +
[[Soubor:execution-fetch.jpg|right]]
 +
 
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/execution-index.htm Introduction]
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/execution-instructions.htm Instruction Sets]
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/execution-cycle.htm Execution Cycle]
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/execution-fetch.htm Fetch Cycle]
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/execution-decode.htm Decode/Execute Cycles]
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/execution-immediate.htm Execute (Immediate)]
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/execution-direct.htm Execute (Direct)]
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/execution-indirect.htm Execute (Indirect)]
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/execution-program.htm Sample Program]
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/execution-quiz.htm Quiz]
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
[[Otázky k opakování z referátů mikroprocesorové techniky TVY]]
  
 
Zdroje:
 
Zdroje:
http://vos.panacek.com/download/ap-tema/04-absolventske-tema.doc.
+
 
 +
 
 +
* [http://www.eastaughs.fsnet.co.uk/cpu/index.htm MICROPROCESSOR TUTORIAL]
 +
 
 +
* [[Soubor:Icon-pdf.gif]] [[:media:Sbernice_instrukcni_cyklus.pdf|Martin Kučera: Sběrnice & instrukční cyklus]]
 +
* [[Soubor:Icon-html.gif]] [http://home.zcu.cz/~makucera/pot/pot8.pdf Martin Kučera: Sběrnice & instrukční cyklus]
 +
 
 +
http://vos.panacek.com/download/ap-tema/04-absolventske-tema.doc
 +
 
  
 
--[[Uživatel:Jhejnova|Jhejnova]] 3. 5. 2010, 18:09 (UTC)
 
--[[Uživatel:Jhejnova|Jhejnova]] 3. 5. 2010, 18:09 (UTC)
 +
--[[Uživatel:Arni|Arni]] 27. 5. 2010, 13:42 (UTC)

Aktuální verze z 22. 10. 2018, 10:08

Obsah

Úvod

Instrukční cyklus je posloupnost kroků, jejichž postupným provedením se vykonává operace definovaná instrukcí programu.

Dělení cyklusu

Instrukční cyklus se skládá ze dvou fází:

  1. Výběrová - v průběhu této fáze se vybere instrukce z hlavní paměti, dekóduje kód operace a určí adresy operandů.
  2. Vykonávací - v průběhu této fáze se vyberou operandy, realizuje se operace a výsledek se zapíše na určené paměťové místo (registr nebo hlavní paměť)

Instrukční cyklus se dále dělí na strojové cykly, přičemž jeden strojový cyklus znamená jeden přístup do paměti. Strojový cyklus se pak dále dělí na strojové takty. Tabulka pro instrukční cyklus.jpg

Zřetězení

Je to všeobecný princip zpracování informací, založený na rozdělení operací, procesů nebo úloh na jednotlivé kroky, které jsou vykonávány samostatnými moduly.


Zřetězené zpracování instrukcí (pipelining)

Vychází z toho, že zpracování každé instrukce procesorem lze rozdělit do pěti základních fází:

  1. PF - výběr instrukce (další zpracovávaná instrukce se bere buď z RAM nebo z Cache.
  2. DI - dekódování instrukce (určí se délka a typ instrukce)
  3. DA - výpočet adresy (určí se adresa operandů, se kterými instrukce pracuje)
  4. EX - provedení instrukce
  5. WB - zápis výsledků

Instrukční cyklus.JPG

Při klasickém zpracování se v každých pěti taktech zpracuje kompletně celá jedna první instrukce, v dalších pěti taktech zase druhá, což prodlužuje dobu zpracování všech instrukcí. Např. po deseti taktech jsou zpracovány pouze dvě instrukce.

Při zřetězeném zpracování je sice v prvních pěti taktech zase zpracována jenom jedna celá první instrukce, ale další instrukce jsou už rozpracovány, takže v každém dalším taktu je pak zpracována jedna další instrukce. Např. po deseti taktech je zpracováno šest instrukcí. Což je samozřejmě rychlejší než u klasického zpracování.

Může ale nastat problém, když některá z instrukcí způsobí skok. V tom případě se musí vyprázdnit fronta, nezpracované instrukce nebudou vůbec provedeny a program bude pokračovat tam, kde byl uskutečněn skok.

Instruktion Execution

Execution-fetch.jpg






Otázky k opakování z referátů mikroprocesorové techniky TVY

Zdroje:


http://vos.panacek.com/download/ap-tema/04-absolventske-tema.doc


--Jhejnova 3. 5. 2010, 18:09 (UTC) --Arni 27. 5. 2010, 13:42 (UTC)

Osobní nástroje
Jmenné prostory
Varianty
Akce
Rychlá navigace
NEJ aktivity
Nejlepší předměty
Nejlepší MCU
SW-HW
Ostatní
Utility
Nástroje
Tisk/export