
Co je instrukční sada?
Prošel jsem hodně stránek, ale stejnak jsem moc nepochopil v principu co to je instrukční sada u procesoru. Můžete napsat nějakou svojí definici nebo trochu podrobnější popis prosím, nejlépe s trochu více hledisek, nebo konkrétní příklad nějaký...?
příklad část definice co jsem našel
"Procesor musí obsahovat instrukce pro přesuny dat mezi pamětí a registry..."
Tzn, že procesor tyto instrukce má uloženy fyzicky v nějakém registru třeba, a to je jakoby ta IS? ...Takže to pak spolu musí nějak spolupracovat řadič nebo ALU a ta IS uložená v registru??
Nebo to nechápu prostě...
Instrukcna sada je sada (zoznam) instrukcii ktore procesor pozna.
Programy pozostavaju z instrukcii. (ak by si nechapal co to je instrukcia)
A instrukcna sada neni nikde ulozena, ale vyplyva z toho jak je ten konkretny model CPU navrhnuty.
aha takže stručně řečeno, tak jak je procesor navrhnuty a sestaveny, tak podle toho dokáže provádět instrukce.
Takže čistě teoreticky kdybych si vytvořil "procesor" nebo třeba jen nějaký logický obvod kterej by uměl třeba jen funkci OR. Tak teoreticky pak můžu říct že seznam instrukční který procesor pozná je jedna a to OR/+ = instrukční sada.
?
dík
Teoreticky.
Ano tak.
Pár definicí, které by ti mohly pomoct se zorientovat.
Procesor je obvodová realizace algoritmu, který dokáže vykonávat libovolné programy (algoritmy) sestavené z předem definovaných elementárních operací (instrukcí).
Procesor vykonává program, který je uložen od zadané adresy v paměti.
Hlavní komponenty:
Programový čítač (PC) - určuje adresu, kde se nachází následující instrukce. Po resetu je mj. definován i obsah PC.
Instrukční registr (IR) - uchovává právě zpracovávanou instrukci.
Řadič - řídí činnost procesoru, je to konečný automat, nastavuje řídící signály pro komponenty procesoru (např. je připojuje nebo odpojuje od sběrnice)
ALU - aritmeticko-logická jednotka, slouží k provádění matematických operací.
Sada registrů - registry slouží k dočasnému uložení dat, např. mezivýsledku nějaké operace.
Nejdřív se tě zeptám: K čemu to potřebuješ vědět? Pokud se používají vyšší programovací jazyky, uživatel se s instrukční sadou procesoru nemusí setkat.
Instrukční sada je cosi, co je vlastností daného typu procesoru. Já jsem se s ní setkal, když jsem programoval 8080 ve strojním kódu a pak v assembleru (pamatuji si z té doby, že třeba kód 0C3H + adresa je instrukce JMP adr, tj. skok programu na adresu adr, kde program pokračuje a 0CDH + adresa je instrukce CALL adr, tj. volání podprogramu co začíná na adrese adr - tahle instrukce mimo jiné sama uloží adresu, kam se má program vrátit, když podprogram skončí některou z návratových instrukcí.)
Dovedu si představit procesor, který by takové instrukce neobsahoval a přesunoval by data jen mezi paměťovými buňkami.
potřeboval jsem to vědět kvůli maturitě, abych pochopil princip... už to ale chápu :)
Ještě dodám: Ta čísla (0C3H, 0CDH v šestnáctkové soustavě) je tzv. strojní kód to JMP nebo CALL je jak se to píše v asembleru.
Jak moc ho hloubky to potřebuješ k maturitě? Ono to až tak jednoduché být nemusí, třeba může padnout dotaz co je to CISC a RISC.
to stim assemblerem a strojovym kodem uz taky chapu.
CISC a RISC se právě ted učím (což je cca ta "hloubka" asi), a akorát nechápu jednu věc moc.
Citace z rootu cz
"Dnes se setkáme hlavně s hybridní architektury – dnes nejpopulárnější mikroprocesory jsou sice interně vytvořeny jako RISCové, ale jejich instrukční sada je CISCová." -to mi nejni moc jasný, když to bylo HW vyrobeno jakoby jednoduše - tak mi z toho logicky vyplívá že ta instrukční sada nemůže být moc obsáhlá ne? Ale píšou že jejich instrukční sada je CISCová = hodně obsáhlá a složitá imo..., jak tam mužu použít tudle když jsem to vyrobil interně RISCově?
Teraz neviem co chcu ti teoretici v skole aby si im o tom rozpraval, ale v praxi sa to tusim robi tak ze v CPU su mechanizmy ktore zlozitu CISC instrukciu interne rozdelia na viac jednoduchych RISC instrukcii a tie sa vykonaju.
P.S. aj google to nasiel, sice tazko ale predsa :) Pisu ze su tak robene aj vsetky dnesne x86 CPU, myslim ze ano ale nebol som si isty zhlavy (nevedel som ci len P4 nebol ulet a potom ci sa na to nevybodli)
http://www.hardwaresecrets.com/article/Inside-Pent ium-4-Architecture/235/4
Proč to nedělá rovnou překladač? Kvůli paměťové náročnosti, jakože by pak byl program delší? Ale zase rychleji by se zpracovával ne?
CPU musi ostat kompatibilny s aplikaciami ktore existuju, inac by to nikto nekupoval :) Resp. dnes to ludia aj kupuju, v mobiloch apod su tusim ciste riscy. Ale Windows7 na to nenainstalujes :)
A ano program by bol asi dlhsi, ale nespracovaval by sa rychlejsie. Z hladiska casu je to asi fuk, pripadne mozno ten hybrid moze byt aj rychlejsi ptz si to vie interne lepsie zoradit apod. Asi. Neviem uplne do detailov jak to maju implementovane v x86
Protože tahle přeložený program by na jednom procesoru mohl fungovat, na jiném už ne.
Doporučil bych volit lépe zkratky. IS (Islámský stát) nespolupracuje s nikým/ničím
...