CZ280269B6 - Číslicový počítačový systém - Google Patents

Číslicový počítačový systém Download PDF

Info

Publication number
CZ280269B6
CZ280269B6 CS91934A CS93491A CZ280269B6 CZ 280269 B6 CZ280269 B6 CZ 280269B6 CS 91934 A CS91934 A CS 91934A CS 93491 A CS93491 A CS 93491A CZ 280269 B6 CZ280269 B6 CZ 280269B6
Authority
CZ
Czechia
Prior art keywords
instruction
instructions
input
output
flag
Prior art date
Application number
CS91934A
Other languages
English (en)
Inventor
Bartholomew Blaner
Stamatis Vassiliadis
Richard James Eichemeyer
Original Assignee
International Business Machines Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corporation filed Critical International Business Machines Corporation
Publication of CZ93491A3 publication Critical patent/CZ93491A3/cs
Publication of CZ280269B6 publication Critical patent/CZ280269B6/cs

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

Systém obsahuje hlavní paměť (10), připojenou přes adaptér (8) k instrukce skládacímu mechanismu (11). Instrukce skládací mechanismus (11) spojený s adresovou přikazovací sběrnicí (9a) a s textovou sběrnicí (9b) je přes rychlou vyrovnávací paměť (112) připojen k jednotce (116) vyvolání a vydání, jakož i k intrukční sběrnici (17), ke které jsou připojeny dvě nebo více instrukčních základních jednotek (13, 14, 15). ŕ

Description

Číslicový počítačový systém
Oblast techniky
Vynález se týká číslicového počítačového systému pro zpracování nejméně dvou paralelních instrukcí.
Dosavadní stav techniky
Tradiční počítače, které přijmou sled instrukcí a zpracují jednu instrukci jsou známy. Instrukce provedené těmito počítači pracují s jednoznačnými objekty nazývanými skaláry.
Operační rychlost tradičních skalárních počítačů dosáhla svého vyvrcholení vlivem pokroku v technologii obvodů, v počítačových mechanismech a architektuře počítače. Nicméně, pro každou novou generaci příslušných strojů musí být objeven pro tradiční skalární stroje nový akceleračni mechanismus.
Mechanismus pro zvýšení počítačové rychlosti sekvenčních procesorů byl nedávno nalezen v redukované architektuře instrukčních sad, která využívá omezenou sadu velmi jednoduchých instrukcí. Jiný urychlovací mechanismus spočívá v architektuře komplexní instrukční sady, která je založena na minimálním souboru instrukcí s komplexními vícenásobnými operandami.
Použití každého z uvedených přístupů pro skalární stávající počítač by vyžadovalo základní změnu instrukční sady a architektury stroje. Taková dalekosáhlá transformace je nákladná, způsobuje prostoje a počáteční snížení spolehlivosti a strojové dostupnosti.
Ve snaze použít pro skalární stroje některé z úspěchů dosažených redukcí instrukční sady, byl uskutečněn vývoj tak zvaných superskalárních počítačů. Tyto stroje jsou v podstatě skalárními stroji, jejichž výkonnost je zvýšena jejich přizpůsobením k provedení více než jedné instrukce najednou z instrukčního toku včetně posloupnosti jednotlivých skalárních instrukcí. Tyto stroje typicky rozhodují v dobé provádění instrukce zda mají být zpracovány paralelné dvě nebo více instrukcí v posloupnosti skalárních instrukcí. Rozhodnutí je založeno na operačních kódech instrukcí a závislostech dat, které mohou mezi instrukcemi existovat. Operační kód označuje technické prostředky požadované pro jednu instrukci. Obvykle není možno současné provádět dvě nebo více instrukcí, které používají stejných technických prostředků nebo stejných operand. Tyto závislosti na technickém vybavení počítače a datech zabraňují paralelnímu zpracování některých instrukčních kombinací. V uvedených případech jsou tyto instrukce zpracovány sériově. Tím je ovšem snížena výkonnost superskalárníiho stroje.
Superskalární počítače mají četné nevýhody, které je třeba minimalizovat. Konkrétní část doby při zpracování je spotřebována k rozhodnutí, které instrukce lze provést paralelné. Tuto dobu nelze běžně zamaskovat překrytím jinými strojovými operacemi.
Uvedený nedostatek se stává ještě výraznější, je-li zvyšována složitost architektury instrukční sady. Rozhodnutí o paralelním
-1CZ 280269 B6 zpracováni se musí tedy opakovat pokaždé, když jsou prováděny stej né instrukce.
Při prodlužování užitečné doby životnosti stávajících skalárních počítačů je podstatný každý prostředek urychlující zpracování. Nicméně, urychlování pomocí architektury redukované instrukční sady nebo superskalární techniky je potenciálně příliš nákladné nebo příliš nevýhodné než, aby bylo použito pro stávající skalární počítače. Rychlost zpracování takovým počítačem měla by se raději zvyšovat paralelním nebp souběžným zpracováním ve stávající instrukční sadě aniž by byla’požadována změna instrukční sady, změna architektury počítače nebo prodloužení doby potřebné k zpracování instrukce.
Shora uvedené nevýhody jsou odstraněny číslicovým počítačovým systémem podle vynálezu.
Podstata vynálezu
Předmětem vynálezu je číslicový počítačový systém pro zpracování nejméně dvou paralelních instrukcí, jehož podstata spočívá v tom, že výstup-vstup rozhraní je přes adaptér připojen k instrukci skládacímu mechanismu, jehož výstup je spojen s textovou sběrnicí, zatím co jeho vstup-výstup je spojen s adresovou přikazovací sběrnicí, která je připojena jednak na vstup-výstup adaptéru, jednak k hlavní paměti, která je vstupem-výstupem spojena s textovou sběrnicí připojenou vstupem-výstupem k rychlé vyrovnávací paměti pro složené instrukce s výstupem připojených přes jednotku pro vyvolání a vydání instrukce k funkční sběrnici, na kterou je připojen větší počet funkčních jednotek.
Další podstatou je, že vstup-výstup hlavní paměti je spojen s adaptérem přes instrukce skládací mechanismus a dvě paralelní vyrovnávací paměti složených stránek, *jejichž společný výstup je připojen k hlavní paměti.
Jinou podstatou je, že instrukce .skládací mechanismus obsahuje instrukce skládací jednotku s větším počtem instrukčních registrů, které jsou spojeny s větším počtem skládacích analyzátorů připojených k příznakovému generátoru a příznakovému instrukčnímu registru.
Podstata je také v tom, že první skládací analyzátor obsahuje první instrukční slučitelnou logiku připojenou k prvnímu vstupu prvního součinového obvodu, jehož druhý vstup je připojen k prvnímu registru závislé logiky, zatím co druhá instrukční slučitelná logika a druhý registr závislé logiky jsou připojeny k prvnímu a druhému vstupu druhého součinového obvodu.
Další podstatou je, že první slučitelná logika obsahuje první dekodér, jehož první výstup je spojen s prvním vstupem prvního součinového obvodu, jehož druhý vstup je připojen k druhému dekodéru, zatím co druhý výstup prvního dekodéru je spojen s prvním vstupem druhého součinnového obvodu, jehož druhý vstup je připojen k druhému dekodéru, přičemž výstupy obou součinových obvodů jsou připojeny k obvodu logického součtu, jehož výstup je připojen k obvodu invertoru v příznakovém generátoru
-2CZ 280269 B6 a současné k prvnímu vstupu prvního obvodu logického součtu, jehož druhý vstup je přes druhý obvod logického součtu připojen k obvodu logického součtu v druhé instrukční slučitelné logice, k jehož prvnímu vstupu je připojen výstup pátého součinového obvodu, jehož druhý vstup je připojen k šestému součinového obvodu, přičemž vstupy obou součinových obvodů jsou připojeny k druhému dekodéru a třetímu dekodéru.
Podstatou posléze je, že instrukce skládací jednotka je přes hlavní paměť a rychlou vyrovnávací paměť připojena k řídící jednotce vyvolání-vydání, která je spojena s první funkční jednotkou, druhou funkční jednotkou, třetí funkční jednotkou a čtvrtou funkční jednotkou, které jsou připojeny k universálnímu registru a rychlé vyrovnávací paměti.
Za účelem lepšího porozumění číslicovému počítačovému systému podle vynálezu včetně jeho výhod a charakteristik je v následujícím popise brán zřetel k výkresům jek následuje.
Přehled obrázků na výkresech
Vynález je vysvětlen na připojených výkresech, kde na obr.l je charakteristické zapojení části číslicového počítačového systému podle vynálezu, na obr.2 2A-2D znázorňuje alternativní realizaci pro ukládání složené příznakové informace do hlavní paměti, na obr.3 je podrobnější struktura toku dat mezi vstupním a výstupním adaptérem a hlavní pamětí počítačového systému, na obr.4 je časový diagram pro převod instrukce do struktury toku dat, na obr.5a je délka instrukčního toku s příznaky složení nebo příznaková pole přidružená k instrukcí, na obr.5b je délka instrukčního toku, na obr.6 je podrobné vnitřní charakteristické zapojení části instrukce skládací jednotky, kterou lze použit v číslicovém počítačovém systému podle vynálezu, na obr.7 je charakteristická vnitřní konstrukce každého ze skládacích analyzátorů, na obr.8 je zapojení logických obvodů, které lze použít pro realizaci skládacího analyzátoru a části příznakového generátoru pro vytvoření složených příznaků pro první tři instrukce instrukčního toku, na obr.9 je tabulka vysvětlující pracovní postup podle obr.8, na obr.10 je charakteristické zapojení části číslicového počítačového systému a jeho použití k vysvětlení jak lze složené instrukce paralelné zpracovat vícenásobnými funkčními instrukcemi skládacích jednotek, na obr.11 je příklad speciální posloupnosti instrukcí, které lze zpracovat číslicovým počítačovým systémem podle obr.10 a na
-3CZ 280269 B6 obr.12 je tabulka pro vysvětlení postupu zpracování instrukční posloupnosti v obr.11 číslicovým počítačovým systémem podle vynálezu.
Příklad provedení vynálezu
Na obr.l je charakteristické zapojení části číslicového počítačového systému podle vynálezu s hierarchicky uspořádanou paměťovou strukturou. Hlavní paměť 10 je připojena k paměťové sběrnici 9 sestávající z adresové přikazovací sběrnice 9a a z textové sběrnice 9b. Adaptér 8 je připojen prvním vstupem-výstupem k rozhraní 7, zatímco druhý vstup-výstup je spojen s adresovou přikazovací sběrnicí 9a. Výstup adaptéru 8 je přes instrukce skládací mechanismus 11 spojen s textovou sběrnicí 9b připojenou vstupem-výstupem k rychlé vyrovnávací paměti 112 pro složení instrukce, jejíž výstup je přes jednotku pro vyvolání a vydání instrukce 116 připojen k funkční sběrnici 17. Na funkční sběrnici je připojen větší počet funkčních jednotek 13., 14,
15.. ..
Hlavní paměť 10 je vstupem-výstupem spojena s adaptérem 8 přes instrukce skládací mechanismus 11. Výstup tohoto mechanismu je připojen ke dvěma paralelním vyrovnávacím pamětím 19a. 19b složených stránek, které jsou společným výstupem spojeny s hlavní pamětí 10.
Instrukce skládací mechanismus 11 obsahuje instrukce skládací jednotku 20., jejíž zapojení je v obr.6. Tato jednotka je opatřena větším počtem instrukčních registrů 21, které jsou spojeny s větším počtem skládacích analyzátorů 22., 23, 24.· · · · spojených s příznakovým generátorem 26 a příznakovým registrem 27.
obdržené paměťové vyměňuj e také poskytováním hlavní paměti 10 instrukce a informace z pomocných paméťí programovaná data na paměťové instrukcí a dat přes paměťovou data mezi rozhraní 7 mít různé rychlosti a formát, testování a zjišťováni chyb
Hlavní paměť 10 převádí instrukce a data pomocí paměťové sběrnice 9 na druhý vstup-výstup adaptéru 8, který je spojen svým prvním vstupem-výstupem k rozhraní 7. S tímto rozhraním může být spojena jedna nebo více pomocných p&métí, které nejsou vyobrazeny. Adaptér 8 převádí data přes rozhraní 2 podle ukládací paměťové informace a a zpět. Adaptér 8 sběrnici 9 s hlavní a přijímáním instrukcí sběrnici 9. Adaptér a vyrovnávací paměť Adaptér 2 funkcí.
pamětí a dat z ukládá
9, které mohou provádí také posléze s poměrné paměť se střední rychlostí, velkou kapacitou má paměťový který je připojen přes paměťoHlavní mechanismus vou sběrnici 9 k nizkokapacitní rychlé vyrovnávací paměťi.
Číslicový počítačový systém v obr.l obsahuje také instrukce skládací mechanismus 11 pro příjem instrukcí z adaptéru 8 a přiřazování těmto instrukcím složenou příznakovou informaci ve tvaru příznakových polí indikujících, která z těchto instrukcí má být paralelné zpracována. Instrukce skládací mechanismus 11 analyzuje přicházející instrukce a určuje, která z nich má být paralelné zpracována. Kromě toho instrukce skládací mechanismus 11 vytváří pro tyto analyzované instrukce složenou příznakovou informaci ve
-4CZ 280269 B6 tvaru příznakových polí, která indikují, které instrukce lze paralelně zpracovat.
V obr.l jsou instrukce předávány do počítačového systému z pomocných pamětí přes adaptér 8, instrukce skládací mechanismus 11 a hlavni paměť 10. Hlavní paměť 10 přijímá a ukládá analyzované instrukce a jejich přidružená příznaková pole. Potom postupuje tyto údaje do rychlé vyrovnávací paměti 12 složených instrukcí. Rychlá vyrovnávací paměť 12 má menší kapacitu a vyšší rychlost než hlavní paměť 10 a je to běžně používaný druh pro zvýšení výkonnosti počítačového systému snížením četnosti přístupu do hlavní paměti 10.
Číslicový počítačový systém v obr.l obsahuje také pluralitu funkčních jednotek 13.» 14, 15.... Tyto jednotky pracuji paralelně jedna s druhou souběžným způsobem a každá sama o sobě je způsobilá zpracovat jeden nebo více typů instrukcí strojové úrovně. Příklady funkčních jednotek, které lze použít obsahují universální aritmetickou a logickou jednotku, typ této jednotky pro sdružená závislá data, základní jednotku pro větvené instrukce, jednotku s posuvem dat, základní jednotku s pohyblivou čárkou atd. V daném případě takový počítačový systém může obsahovat dva i více některých typů funkčních jednotek. Speciální konfigurace funkčních jednotek bude záviset zejména na soustavě uvažovaného počítače.
Číslicový počítačový systém v obr.l obsahuje také jednotku 16 pro vyvolání a vydání instrukce připojenou k vyrovnávací rychlé paměti 12 pro přivádění sousedních instrukci zde uložených k různým dalším funkčním jednotkám 13 až 15, jestliže instrukční příznaková pole indikují, že je lze zpracovat paralelně. Jednotka 16 vyvolá instrukce z rychlé vyrovnávací paměti 12 přezkouší jejich příznaková pole a pole operačních kódů, a na základě těchto zkoušek vyšle instrukce k některým z příslušných funkčních jednotek 13 až 15. Je-li žádaná konstrukce residentni v rychlé vyrovnávací paměti 12., je do ní vyslána adresa, aby z ní vyvolala uvedenou instrukci. Jestliže žádaná instrukce není residentni v paměti 12, musí být vyvolána z hlavni paměti 10 a přivedena do rychlé vyrovnávací paměti 12. Následkem toho hlavní paměť 10 začne předvádět nebo číst z řádky instrukcí, která obsahuje žádanou instrukci, společně s příznakovými poli instrukcí v řádce.
Výpadek vyrovnávací paměti způsobí, že je do hlavni paměti na výpadek poukázáno, aby bylo zjištěno zda je žádaná instrukce v paměti 10 obsažena. Se zřetelem na to jsou instrukce uloženy do hlavní paměti v blocích nazývaných stránky a zařízení ovládající paměť počítačového systému je schopné rozhodnout podle žádané instrukce zda stránka, na které je obsažena, je v hlavní paměti. Je-li stránka v hlavní, je řádka osahující instrukci převedena nebo odečtena z hlavní paměti 10 do vyrovnávací paměti 12.. Jestliže stránka obsahující žádanou instrukci není v hlavní paměti 10, dojde k výpadku stránky a je třeba chybějící stránku vyvolat z pomocné paměti a přemístit ji do hlavní paměti 10. Když je stránka vyvolána je identifikace chybějící stránky vyslána do adaptéru 8, který ji vyhledá a potom postoupí přes paměťovou sběrnici 9 k uložení do hlavní paměti 10. Podle vynálezu stránky vyvolané k uloženi do hlavní paměti 10 přesouvány na vstup instrukce skládací mechanismus 11, který tyto přecházející
-5CZ 280269 B6 instrukce postupně analyzuje a pro každou instrukci generuje příslušné příznakové pole. Příznaky a instrukce jsou potom předány do hlavní paměti 10 a v ní uloženy pro případnou potřebu dodatečného přemístění do vyrovnávací paměti 12 pro složené instrukce.
Ačkoliv instrukce skládací mechanismus 11 je zobrazen v obr.l jako zapojení mezi adaptér 8 a hlavní paměť 10, je považován za samostatný vývod ze sběrnice 9. nebo připojení na vstup hlavní paměti 10.
Ukládáni složených instrukcí do hlavní paměti 10 může být realizováno větším počtem cest, z nichž některé jsou zobrazeny v obr. 2A až 2D. Příklady v obr. 2A až 2D předpokládají 8 bytů širokou textovou sběrnici 9b plus extra řádky pro příznakovou informaci. Všeobecně se předpokládá, že základní paměťový přesun mezi hlavní paměti 10 a vyrovnávací pamětí 12 složených instrukcí obsahuje 64-bytové řádky vyrovnávací paměti s jedním příznakovým bitem pro každé dva byty instrukčního textu. Jedna řádka vyrovnávací paměti je znázorněna v každém z příkladů na obr.2A až 2D. Obecně počet příznakových bitů je určován maximálním počtem instrukcí ke složeni a informací vhodnou pro instrukce skládacího mechanismu 11.
Nejjednodušší realizace uložení příznaku z hlediska řízení je zobrazena v obr.2A. Předpokládá se, že složení je omezeno na dvě instrukce, přičemž je požadován nejméně jednobitový příznak pro každé dvě slabiky instrukčního textu. Tak pro řádku uloženou v paměti na obr.2A je pro každých 64 bitů, to je každých osm slabik, zapotřebí čtyř slabik příznakové informace na složení. Jak je zobrazeno na obr.2A uložení této informace obsahuje zvětšení velikosti slov z 64 na 68 bitů. Další nepovinné příznakové bity by zvětšily rozsah prodloužených slov.
Druhý přistup, mnohem slučitelnější s dosažitelnou paměťovou technologií je zobrazen v obr.2B. V obr. 2B je poskytnuta k uložení instrukcí a sdružené příznakové informace ke složení samostatná textová a příznaková paměť. V obr.2B příznaková paměť pracuje paralelné s textovou pamětí. Z paměťové struktury obr.2B vyplývá požadavek na zvláštní sadu příznakových řádek tvořících příznakovou sběrnici 9 pro zajištění paralelního zpracováni textových a příznakových pamětí. Z toho plyne několik výhod proti pojetí prodloužených slov podle obr. 2A. Provozní systém používá zaprvé určité části paměti jen pro datové stránky místo instrukčních stránek, přičemž pro tyto části není nutné zapotřebí příznaků. Odlišení datových od instrukčních stránek může být rozhodnuto technickým vybavením nebo programovým vybavením a implementovanými příkazy příznakové paměti, které indikují, že určité stránky obsahuj i pouze data a proto nevyžaduj ί, aby adresy paměťových stránek byly promítnuty do příznakových paměťových adres pro tyto stránky. Druhou výhodou je, že příznakovou paměť lze odstranit ve snaze po snížení nákladů systému. Tím se rozšíří možný rozsah výkonnosti soustavy počítačů. Je-li třeba více příznaků než jak bylo požadováno pro více než dvoucestné složení je nahrazena příznaková paměť v obr.2B novou příznakovou pamětí beze změny návrhu hlavní paměti. Každá paměť kromě toho může být opatřena svou vlastní korekcí chyb.
-6CZ 280269 B6
Se zřetelem na obr.2A-2D je třeba konstatovat, že jednou generované složené příznaky skládací jednotkou provázejí instrukční tok v paměti bud vetkáním do toku, přidáním do jeho sekcí, nebo paralelním udržením s ním.
Ostatní přístupy k realizaci ukládání příznaků jsou zobrazeny v obr.2C a 2D. V obr. 2C první sekce hlavní paměti obsahuje příznakové tabulky a druhá ukládáni instrukčních textových stránek. V tomto příkladu je požadována podpora pracovního systému, aby byla zachována příznaková tabulka části paměti a párové paměťové stránky s příznakovými stránkami. V obr.2D jsou části každé stránky reservovány pro příznaky. Vyžaduje to způsobilost kompilátoru ke konstruování stránek. Například pro řádky vyrovnávací paměti o 64 slabikách by kompilátor použil 60 slabik pro instrukce a 4 slabiky pro příznaky. V obr.2D jsou příznaky přidány mezi instrukční slabiky do instrukční vyrovnávací paměti, je-li to vyžádáno centrální základní jednotkou.
V implikaci počítačového systému na obr.l může instrukce skládací jednotka 11 tvořit část sbérnicového adaptéru 8. V případě, že je převedena jakákoliv stránka jako zůstatek ze vstupu-výstupu systému, je podrobena skládacímu procesu zahrnutém v jednotce 11 a předána paměťovou sběrnicí 9 do hlavní paměti 10. Odtud je stránková struktura prováděna podle obr. 2A za předpokladu, že textová sběrnice 9b je 68 bytů široká a hlavní paměť je uspořádána a řízena k ukládání stránek tak, jak je znázorněno v obr.2A. Vyrovnávací paměť 12 pro složení instrukce je samozřejmě uspořádána a řízena tak, aby přijímala řádky obsahující prodloužená slova jak je znázorněno v obr.2A.
V případě chyby na stránce je tato uložena do vyrovnávací paměti stránek v adaptéru 8. a předána k dispozici instrukce skládací jednotce 11 jak je dále popsáno. V obr.3 dvě stránkové paměti 18a a 18b vysílají posloupnosti stránek do instrukce skládací jednotky 11, která provede složení přidáním příznakové informace ke složení do stránkových instrukcí. Stránky zpracované skládací jednotkou 11 jsou podávány do hlavní paměti 10 přes vyrovnávací paměti 19a a 19b složených stránek. Jak je znázorněno v obr.4 skládací jednotka přidá čas k časovému údaji potřebnému k vyvolání časového úseku z pomocné paměti a vsune jej do hlavní paměti 10. Přidaný čas je však relativné malý proti celkovému a je asynochronni pro centrální základní jednotku.
V obr. 4 je každý segment i. převeden z pomocného ukládacího zařízení jako disková jednotka do jedné ze stránkových vyrovnávacích pamětí 18a nebo 18b. Každý z časových segmentů b^ indikuje čas potřebný k převodu textového segmentu i ze stránkové vyrovnávací paměti do hlavní paměti 10. Textový segment i je tak převeden v čase a^ do jedné ze stránkových vyrovnávacích pamětí 18a nebo 18b podle toho, který textový segment i+1 je převeden do ostatních vyrovnávacích pamětí. Bez složení je textový segment
i. převeden v čase b^ do stránkové vyrovnávací paměti, kterou je běžně uložen do hlavní paměti. Jak je ukázáno v obr.4 je tento čas podstatné kratší než čas požadovaný k vyvolání stránky z jedné vyrovnávacích pamětí 18a nebo 18b. V praxi podle vynálezu čas potřebný k operaci skládací jednotky 11, aby vykonala text seg-7CZ 280269 B6 mentu na jedné stránce vyrovnávacích pamětí plus čas spotřebovaný složenou vyrovnávací pamětí 19a nebo 19b je representován složeným časem c^. V obr.4 je nyní čas b^ ten, který je potřeba k převodu textového segmentu i ze stránkové vyrovnávací paměti do skládací jednotky 11. Dále je vydán skládací čas ciz zatímco textový segment je podroben zpracování skládací jednotkou 11. Jak patrno z obr.4 je součet času b^ a c^ menší než čas aa. Připomeňme, že superskalární počítač musí v době vykonávání instrukce rozhodnout zda instrukce mohou být provedeny paralelně. Toto rozhodnutí je diskrétním krokem v provádění instrukce tím, že se v podstatě přidává k prováděcí době v superskalárním počítači. Naproti tomu, jak patrno z obr.4, složení v počítačovém systému na obr.l neprodlužuje významně dobu žádanou k provedení operací počítače. Instrukce skládací jednotka 11 tak poskytuje větší výkonost než počítač umístěný v instrukční prováděcí jednotce.
Obr.3 a 4 zobrazují dvě zásadní výhody složení v hlavní paměti. Zaprvé složení může být částí asynchronního procesu výpadku stránky bez prodlouženi doby k úplnému dokončení procesu. Za druhé, složení velkých bloků instrukčního textu, tak jako stránek, poskytuje větší příležitost uvažovat o významu složení, které může ovlivnit mnohem více optimální složení. Následkem toho je, že vstupní paměť instrukce skládající jednotky, tak jak znázorněno v obr.l, poskytuje provozní výhody, protože centrální základní jednotka bude vždy provádět instrukce, které byly složeny a složeni lze lépe optimalizovat než, když by se vykonalo synchronně v menším úseku instrukčního textu.
Operace instrukce skládající jednotky bude nyní vysvětlena z počátku podle obr. 5a. Obr.5a ukazuje část toku složených nebo příznakových instrukcí jak se mají objevit na výstupu instrukce skládací jednotky 11 v obr.l. Jak patrno každá instrukce je opatřena k ní přidaným příznakovým polem P pomocí instrukce skládací jednotky 11. Označené instrukce, jako ty patrné z obr. 5a jsou uloženy do hlavní paměti v stránkovém bloku na stránku obsahující instrukce. Příznakové instrukce v hlavní paměti 10 v případě potřeby jsou převedeny do vyrovnávací paměti 12, když dojde k výpadku. Příznakové instrukce ve vyrovnávací paměti 12 jsou potom vyvolány instrukce vyvolávající a vydávající jednotkou 16. Jakmile jsou označené instrukce přijaty vyvolávací a vydávaci jednotkou 16, jsou jejich označená pole přezkoušena za účelem rozhodnutí zda mají být zpracovány paralelně a jejich pole operačního kódu jsou přezkoušena s ohledem na určení, které dosažitelné funkční jednotky jsou nejvhodnější k jejich zpracování. Jestliže příznaková pole indikují, že dvě nebo více instrukci je vhodné paralelně zpracovat, potom jsou vyslány k př^plušným funkčním jednotkám v souladu s kódováním jejich operačně kódovaných polí. Takové instrukce jsou potom zpracovány souběžně jedna s druhou jejich odpovídajícími funkčními jednotkami.
Když se vyskytne instrukce, že není vhodná k paralelnímu zpracování, potom je vyslána do příslušné funkční jednotky jak určí její operační kód a na to je zpracována sama o sobě vybranou funkční jednotkou.
-8CZ 280269 B6
V nejdokonalejším případě, kde větší počet instrukcí je vždy paralelně zpracován, je rychlost provedení instrukce počítačového systému N krát větší než v případě, kde instrukce jsou prováděny jedna po druhé, přičemž N je počet instrukcí ve skupinách, které jsou zpracovány paralelně.
Tok označených instrukcí v obr.5a je snažší předběžné zpracovat instrukce skládající jednotkou, existují-li známé referenční body pro indikaci kde instrukce začínají. Takový referenční bod poskytne přesné označení kde jsou hranice instrukce. V mnohých počítačových systémech jsou instrukční meze výslovně známy jen pomocí kompilátoru v kompilační době a pouze prostřednictvím centrální základní jednotky, když jsou instrukce vyvolávány. Mezní referenční bod není znám mezi kompilační dobu a vyvoláváním instrukce pokud není přijato speciální mezní referenční schéma. Takové schéma je zobrazeno v obr. 5b s instrukčními mezními bity B. Jak patrno z obr.5b, mezní bity mohou být umístěny do instrukčního toku kompilátorem v době kompilace k poskytnutí reference zarovnání instrukce právě před jejím složením. Obecně patentované přihlášky pojednávají o složení textových toků, ve kterých instrukční meze jsou neurčité. Kde instrukční meze ovšem jsou určitelné z textového toku jakož i kde tok obsahuje pouze instrukce a všechny instrukce jsou téže délky není třeba definice mezí.
Obr.6 znázorňuje mnohem podrobněji vnitřní konstrukci representačního spojení v jeden celek instrukce skládající jednotky podle předloženého vynálezu. Tato instrukce skládající jednotka 20 je vhodná k použiti jako instrukce skládací mechanismus 11 v obr.l. Instrukce skládací jednotka 20 v obr.6 je navržena pro případ kde mohou být paralelné zpracovány maximálně dvě instrukce najednou. Tím však není míněno omezení vynálezu jen na složení párů. V příkladu je použito 1-bitové pole příznaku. Hodnota příznakového bitu 1 (jedna) znamená, že instrukce je první instrukcí. Hodnota příznakového bitu 0 (nula) znamená, že instrukce je druhou instrukcí a může být provedena paralelně a předchozí první instrukcí. Instrukce s hodnotou příznakového bitu 1 může být provedena buď sama, nebo v témže čase a paralelně s další instrukcí v závislosti na hodnotě příznakového bitu takové další instrukce.
Každé párování instrukce s hodnotou příznakového bitu jedna s následující instrukcí o hodnotě příznakového bitu nula tvoří složenou instrukci k paralelnímu provedení, to je, že instrukce v takovém páru mohou být jedna s druhou zpracovány paralelné. Když každý z příznakových bitů pro dvě po sobě následující instrukce má hodnotu jedna, je provedena první z těchto instrukcí samostatné, neparalelnim způsobem. V nejhorším možném případě všechny instrukce v posloupnosti by mohly mít hodnou příznakového bitu jedna. V takovém případě by všechny instrukce byly provedeny jedna po druhé neparalelnim způsobem.
Na vstupu instrukce skládací jednotky 20 přijme instrukce zarovnávající jednotka ze vstupu-výstupu adaptéru instrukční tok, který je třeba složit. Instrukční tok může obsahovat mezní bity
B jak znázorněno na obr.5b. V tomto případě zarovnání instrukce je jednoduchý postup detekce mezních bitů a dekódovaní instrukčních operačních kódů. Jak známo, v instrukční sadě operační kódy
-9CZ 280269 B6 obsahují bity, které udávají délku instrukce ve slabikách nebo půlslovech. Jakmile byla proto instrukce identifikována mezním bitem B, může být další instrukce jednoznačné indentifikována výpočtem množství slabik nebo půlslov od mezního bitu. Zarovnání instrukce není znakem tohoto vynálezu, přičemž se rozumí, že instrukční meze jsou identifikovány jakoukoliv známou metodou včetně použití mezních bitů.
Instrukce skládací jednotka 20 v obr. 6 obsahuje instrukční registr 21 s pluralitou instrukcí pro příjem plurality po sobě následujících instrukcí ze stránkových pamětí 18a a 18b adaptérů. Instrukce skládací jednotka 20 také obsahuje pluralitu mechanismů k analyzování instrukcí podle pravidel. Každý takový instrukce paralyzující mechanismus analyzuje různé páry sousedících instrukcí v instrukčním registru 21 a vytváří signál k možnému složení, který indikuje zda mohou být paralelné zpracovány dvě instrukce toho páru nebo nemohou. V obr. 6 je zobrazena pluralita jednotek 22 až 25 analyzátoru složení. Každý z těchto skládacích analyzátorů 22 až 25 obsahuje dva instrukční analyzačni mechanismy, které produkují dva signály složitelnosti. Například první složeninu analyzující jednotka 22 produkuje první signál M01 možného složení, který indukuje zda instrukce 0 a 1 mají být paralelné zpracovány nebo ne. Složeninu analyzující jednotky 22 produkují také druhý signál Ml2 možného složení, který indikuje zda instrukce 1 a 2 mají být zpracovány paralelně nebo ne.
Podobným způsobem druhá složeninu analyzující jednotka 13 produkuje první signál M23 možného složení, který indikuje zda instrukce 2 a 3. mají být paralelné zpracovány nebo nemají, a druhý signál M34 možného složení, který indukuje zda instrukce 3.
a 4 mohou produkuj e instrukce být paralelně zpracovány. Třetí analyzátor 24 složení první signál M45 složitelnosti, který indikuje zda 4 a 5 mohou nebo nemohou být paralelně zpracovány
a druhý signál složitelnosti M56, který indukuje zda mohou nebo nemohou být zpracovány paralelné instrukce 5 a 6. Čtvrtý analyzátor složení 25 produkuje první signál složitelnosti M67, který indukuje zda mohou být nebo nemohou paralelné zpracovány instrukce 6 a 7 a druhý signál složitelnosti M78 indikují zda mohou být paralelně zpracovány instrukce 7 a 8,.
Instrukce skládací jednotka 20 dále obsahuje mechanismus generování příznaků 26 odpovídajícím signálům složitelnosti, které se objeví na výstupech analyzačních jednotek 22 až 25 pro generování jednotlivých příznakových polí pro různé instrukce instrukčního registru 21. Tato příznaková pole TO, TI, T2 atd. jsou zasílána do instrukce označujícího registru 27 právě tak jako jsou zasílány vlastní instrukce, které jsou získány ze vstupu instrukčního registru 21. Tímto způsobem je v jednotce složení výstupního registru 27 k dispozici příznakové pole TO pro instrukci 0, příznakové pole TI pro instrukci 1 atd.
V předloženém spojení v jeden celek každé příznakové pole
TO. TI. T2, atd. je obsaženo v jediném binárním bitu. Hodnota příznakového bitu jedna indikuje, že okamžité následující instrukce, ke které je připojen je první instrukcí. Hodnota příznakového bitu nula indikuje, že ihned následující instrukce je druhou instrukcí. Instrukce s hodnotou příznakového bitu jedna následovaná instrukcí s hodnotou příznakového bitu nula
-10CZ 280269 B6 indikuje, že tyto dvě instrukce mohou být provedeny paralelně jedna s druhou. Označené instrukce ve skládací jednotce výstupního registru 27 jsou postoupeny na výstup hlavní pamětí 10 v obr. 1 přes jednu nebo ostatní vyrovnávací paměti 19a nebo 19b v obr.
3. Složené instrukce jsou uloženy do hlavni paměti 10.
V obr. 7 je zapojení prvního skládacího analyzátoru 22, ve kterém první slučitelná logika 30 je spojena s prvním vstupem prvního součinového obvodu 34, jehož druhý vstup je spojen s prvním registrem závislé logiky 32. Druhá instrukční slučitelná logika 31 a druhý registr závislé logiky 33 jsou připojeny k prvnímu a druhému vstupu součinového obvodu 35.
První instrukční slučitelná logika 30 v obr. 8 obsahuje první dekodér 40, jehož první výstup A je spojen s prvním vstupem prvního součinového obvodu 42, jehož druhý vstup je připojen k druhému dekodéru 41. Druhý výstup prvního dekodéru 40 je spojen s prvním vstupem druhého součinového obvodu 43, jehož druhý vstup je připojen k druhému dekodéru 41. Výstupy obou součinových obvodů 42, 43 jsou připojeny k obvodu logického součtu £4. Výstup tohoto obvodu je připojen k prvnímu invertoru 52 v příznakovém generátoru 26 a současné k prvnímu vstupu prvního logického součtu 54. Jeho druhý vstup je připojen přes druhý invertor 55 k obvodu logického součtu 48 v druhé instrukční slučitelné logice
31. K prvnímu vstupu obvodu 48 logického součtu je připojen výstup pátého součinového obvodu £6, jehož druhý vstup je připojen k šestému součinovému obvodu 47. První vstupy obou součinových obvodů 46, 47 jsou připojeny k druhému dekodéru 41 a třetímu dekodéru 45.
V obr. 7 je nyní podrobněji znázorněna vnitřní konstrukce prvního skládacího analyzátoru 22 z obr. 6. Zbývající čtyři analyzátory 23 až 25 jsou podobné konstrukce. Jak patrno z obr. 7 první skládací analyzátor 22 obsahuje první instrukční slučitelnou logiku 30 pro zkoušení operačního kódu instrukce nula a operačního kódu instrukce lak určení zda tyto dva kódy jsou slučitelné pro účely paralelního provedení. První instrukční slučitelná logika 30 je navržena podle předem stanovených pravidel k vybíráni párů operačních kódů, které jsou slučitelné pro paralelní provedení. První instrukční slučitelná logika 30 zejména obsahuje kromě toho logické obvody pro realizaci pravidel, jež definují jaké typy instrukcí jsou slučitelné pro paralelní provedení ve speciálním uspořádání technických prostředků počítačového systému. Jsou-li operační kódy pro instrukci 0 a 1 slučitelné, potom první slučitelná logika 30 vytvoří na svém výstupu dvojkový signál úrovně jedna. Nejsou-li slučitelné, vytvoří první instrukční slučitelná logika 30 na svém výstupním řádku dvojkovou hodnotu nula.
První skládací analyzátor 22 složení dále obsahuje druhou instrukční slučitelnou logiku 31 slučitelnosti instrukcí pro přezkoušení operačních kódů instrukcí 1 a 2 a pro rozhodnutí zda jsou slučitelné pro paralelní provedení. Druhá instrukční slučitelná logika 31 je navržena stejným způsobem jako první instrukční slučitelná logika 30 podle téchže předem stanovených pravidel použitých pro první instrukční slučitelnou logiku 30 k vybírání párů operačních kódů, které jsou slučitelné pro paralelní provedení v případě instrukci 1 a 2. Druhá instrukční slučitelná logi
-11CZ 280269 B6 ka 31 tak obsahuje logické obvody k realizaci pravidel, jež definují jaké typy instrukcí jsou slučitelné pro paralelní provedení, přičemž je použito stejných pravidel jako pro první instrukční slučitelnou logiku 30. Jsou-li operační kódy pro instrukce 1 a 2 slučitelné, potom druhá inátrukční slučitelná logika 31 vytvoří dvojkový výstup úrovně jedna.
První skládací analyzátor 22 dále obsahuje první registr závislé logiky 32 pro detekci konfliktů při použití univerzálních registrů navržených pro pole RI a R2 instrukcí 0 a 1. Tyto univerzální registry budou dále probrány mnohem podrobněji. První registr závislé logiky 32 je možno kromě jiného navrhnout pro detekci výskytu závislých dat za podmínky, že druhá instrukce -instrukce 1- potřebuje využít výsledků z provozní charakteristiky předchozí instrukce -instrukce 0-. V tom případě může být druhá instrukce bud provedena závisle přidruženými prostředky tak, že je provedena paralelné s první instrukcí, nebo provedení druhé instrukce musí počkat až je dokončeno provedení předchozí instrukce a tedy nemůže být provedeno paralelné s předchozí instrukcí. Je třeba poznamenat, že technika obcházení některých datových závislostí takového typu bude probrána dále. Neexistují-li registrové závislosti, jež brání paralelnímu provedení instrukcí 0 a 1, potom výstupní řádek prvního registru logiky 32 udává dvojkovou hodnotu jedna. Jestliže závislost existuje, potom je udána dvojková hodnota nula.
První skládací analyzátor 22 dále obsahuje druhý registr závislé logiky 33 pro detekci konfliktů za použití univerzálních registrů navržených pro pole RI a R2 instrukcí 1 a 2. Druhý registr závislé logiky 33 je téže konstrukce jako před tím popsaný první registr závislé logiky 32 a tvoří výstup dvojkové úrovně jedna, neexistují-li žádné registrové závislosti nebo registrové závislosti lze provést technickými prostředky se závislými sdruženými daty, a jinak výstupem dvojkové úrovně nula.
Výstupní řádky první instrukční slučitelné logiky 30 prvního registru závislé logiky 32 jsou připojeny na vstupy prvního součinového obvodu 34. Výstupní řádek prvního součinového obvodu 3.4 má dvojkovou hodnotu jedna, jsou-li dva uvažované operační kódy slučitelné, což znamená, že jsou způsobilé pro paralelní provedení. Má-li na druhé straně výstupní řádek prvního součinového obvodu 34 dvojkovou hodnotu nula, potom tyto dvě instrukce nejsou složitelné. Tím je vytvořen ve výstupním řádku prvního součinového obvodu 34 první signál M01 složitelnosti, který indikuje zda instrukce 0 a 1 mají nebo nemají být paralelné zpracovány. Tento signál M01 je předán do příznakového generátoru 26.
Výstupní řádky druhé instrukční slučitelné logiky 31 a druhé závislé logiky 33 jsou připojeny ke dvěma výstupům druhého součinového obvodu £5. Druhý součinový obvod 35 vytvoří ve svém výstupním řádku druhý signál Ml2 slučitelnosti, který má dvojkovou hodnotu jedna, jsou-li dva uvažované operační kódy (vnějšího textu programu instrukcí 1 a 2) slučitelné a jestliže neexistují žádné registrové závislosti instrukcí 1 a 2 nebo registrové závislosti, jež je možno provést technickými prostředky se sdruženou závislostí dat. Výstupní řádek druhého součinového obvodu 35 má jinak dvojkovou hodnotu nula. Výstupní řádek druhého souči
-12CZ 280269 B6 nového obvodu 35 je zpracován na druhém vstupu příznakového generátoru 26.
Ostatní čtyři skládací analyzátory 23 až 25 znázorněné v obr. 6 jsou téže vnitřní konstrukce jako v obr. 7 první skládací analyzátor.
Obr. 8 znázorňuje nyní příklady logických obvodů, jež lze použít k realizaci prvního skládacího analyzátoru 22 a příznakového generátoru 26., jenž je použit pro generování prvních tří označení, příznaku 0, příznaku 1 a příznaku 2. Například v obr. 5 se předpokládá, že existují dvě kategorie instrukcí, jež jsou označeny jako kategorie A a kategorie B. Pravidla pro skládání těchto kategorií instrukcí jsou předpokládána jak následuje:
(1) A lze vždy složit s A (2) A nelze nikdy složit s B (3) B nelze nikdy složit s B (4) B lze vždy složit s A (5) Pravidlo (4) má přednost před pravidlem (1).
Je nutno poznamenat, že tato pravidla jsou velmi citlivá na pořadí výskytu instrukci.
Dále se předpokládá, že uvedená pravidla jsou taková, že neexistují žádné problémy s registrovými závislostmi, protože pravidla implicitně naznačují, že v případě jakéhokoliv blokování je blokování vždy proveditelné technickými prostředky závislosti dat. V příkladu na obr. 8 se jinak předpokládá, že není třeba registrové závislosti logiky 32 a 33 v obr. 7. V takovém případě první a druhý součinový obvod 34 a 35 také nejsou třeba a na výstupu první instrukční slučitelné logiky 30 je signál M01 a na výstupu druhé instrukční slučitelné logiky 31 je signál Ml2.
Za těchto předpokladů jsou v obr. 8 znázorněny vnitřní logické obvody, jež lze použít pro instrukční slučitelné logiky 30 a 31. Podle obr. 8 instrukční slučitelná logika 30 obsahuje dekodéry 40 a 41, součinové obvody 42 a 43 a obvod logického součtu
44. Druhá instrukční slučitelná logika 31 obsahuje dekodéry 41 a 45., součinové obvody 46 a 47 a obvod logického součtu 48,. První dekodér 41 používají společné obé instrukční slučitelné logiky 30 a 3£.
První instrukční slučitelná logika 30 zkouší operační kódy OPO a OPI pro instrukce 0 a 1 za účelem určení jejich velikosti za účelem paralelního provedení. Je to prováděno podle shora určených pravidel (1) až (4). První dekodér 40 zjistí operační kód první instrukce a v případě, že je to kód kategorie A je nastaveno výstupní vedení A dekodéru 40 na úroveň jedna. Je-li to operační kód kategorie B potom je nastaveno výstupní vedení B prvního dekodéru 40 na úroveň jedna. Jestliže OPO nenáleží do kategorie A ani do kategorie B, potom jsou oba výstupy prvního dekodéru 40 na úrovni binární nuly. Druhý dekodér 41 provede podobný způsob dekódování pro druhý operační kód OPI.
-13CZ 280269 B6
Třetí součinový obvod 42 realizuje shora uvedené pravidlo (1). Je-li operační kód OPO kategorie A a operační kód OPI je také kategorie A, potom třetí součinový obvod 42 vytvoří výstup jedna. Jinak je výstup třetího součinového obvodu 42 na úrovni binární nuly. Čtvrtý součinový obvod 43 realizuje shora uvedené pravidlo (4). Je-li první operační kód kategorie B a druhý operační kód kategorie A, potom čtvrtý součinový obvod 43 vytvoří na výstupu úroveň jedna. Jinak se vytvoří na výstupu úroveň nula. Jestliže buď třetí součinový obvod 42, nebo čtvrtý součinový obvod £3 vytvoří na výstupu úroveň jedna, vybudí se na výstupu obvodu logického součtu 44 úroveň jedna, přičemž v tomto případě má první signál M01 složitelnosti hodnotu jedna. Hodnota jedna indikuje, že první a druhá instrukce (instrukce 0 a 1) jsou slučitelné pro paralelní provedení.
Je-li prvním a druhým dekodérem 40 a 41 detekována jakákoliv jiná kombinace kategorií operačních kódů, potom výstupy třetího a čtvrtého součinového obvodu 42 a 43 zůstávají na úrovni nula a první signál M01 složitelnosti má hodnotu nula indukující nesložitelnost. Vznik kombinací podle uvedených pravidel (2) a (3) proto nesplňují třetí a čtvrtý součinový obvod 42 a 43 a první signál M01 zůstává na úrovni nula. Neexistují-li další kategorie operačních kódů kromě kategorií A a B, neaktivizuje jejich vznik v instrukčním toku výstupy prvního a třetího dekodéru 40 a 42. Proto je v prvním signálu M01 hodnota složitelnosti nula.
Druhá instrukční slučitelná logika 31 vykonává podobný typ analýzy operačního kódu pro druhou a třetí instrukci (instrukce 1 a 2). Je-li druhý operační kód OPI kategorií A operačního kódu a třetí operační kód OP2 je kategorií A operačního kódu, potom podle pravidla (1) součinový obvod 46 vytvoří na výstupu úroveň jedna a druhý signál Ml2 složitelnosti je vybuzen na úroveň binární jednotky indukující složitelnost. Jestliže na druhé straně, druhý operační kód OPI je kategorií B operačního kódu a druhý operační kód OP2 je kategorií A operačního kódu, potom podle pravidla (4) šestý součinový obvod 47 je aktivován k vytvoření binární úrovně jedna pro druhý signál M12 složitelnosti. Pro jakoukoliv jinou kombinaci operačních kódů než je určeno v pravidlech (1) a (4), má druhý signál Ml2 hodnotu nula.
Signály M01 a Ml2 složitelnosti jsou předány do příznakového generátoru 26. V obr. 8 jsou znázorněny logické obvody, které lze použit v příznakovém generátoru 26, aby reagoval na signály M01 a Ml2 tak, že je vytvořeno žádané označení hodnot bitů pro příznaky 0, 1 a 2. Hodnota příznaku bitu jedna indukuje, že sdružená instrukce je první instrukce pro paralelní provedení. Hodnota nula příznaku bitu indikuje, že sdružená instrukce je druhá instrukce pro paralelní provedení. Pouze jedna instrukce v páru má hodnotu nula příznakového bitu. Každá instrukce označená hodnotou jedna příznakového bitu, za kterou následuje jiná instrukce s označením hodnoty jedna příznaku bitu je provedena sama o sobě jednotlivým způsobem a ne paralelně s následující instrukcí.
V případě prvního řádku na obr. 9 všechny tři příznakové bity mají hodnotu jedna. To znamená, že každá z instrukcí 0 a 1 bude provedena jednotlivým ne paralelním způsobem. V případě
-14CZ 280269 B6 druhého řádku na obr. 2 instrukce 0 a 1 budou provedeny paralelně, protože příznak 0 má požadovanou hodnotu jedna a příznak 1 má požadovanou hodnotu nula. V případě třetího řádku na obr. 9 instrukce 0 bude provedena jednotlivé, zatímco instrukce 1 a 2 budou provedeny jedna s druhou paralelně. Ve čtvrté řádce budou instrukce 0 a 1 provedeny paralelné jedna s druhou.
V těch případech, kde příznak 2 má binární hodnotu 1, stav jeho sdružené instrukce 2 je závislý na binární hodnotě příznaku
3. Má-li příznak 3 binární hodnotu nula, potom mohou instrukce a 3 být provedeny paralelně. Jestliže, na druhé straně, příznak má binární hodnotu jedna, potom instrukce 2 bude provedena jednotlivým neparalelním způsobem. Je třeba poznamenat, že logika realizovaná pro příznakový generátor 26 nedovoluje vznik dvou následovných příznakových bitů o binárních hodnotách nula.
Z ověřeni obr. 9 vyplývá logika potřebná k oživení části příznakového generátoru 26 na obr. 8. Jak ukázáno v obr. 9, příznak 0 bude mít vždy binární hodnotu jedna. Je toho dosaženo vytvořením konstantní binární hodnoty jedna na výstupním vedení příznakového generátoru, která obsahuje příznak 0 výstupního vedení. Z obr. 9 dále vyplývá, že bitová hodnota příznaku 1 je vždy opačná bitová hodnota prvního signálu M01 složitelnosti. Tohoto výsledku je dosaženo připojením prvního výstupního vedení pro příznak 1 k výstupu prvního invertoru 52, na jehož vstup je připojeno první signální vedení M01.
Binární úroveň příznaku 2 ve druhém výstupním vedení 53 je určena prvním obvodem 54 logického součtu a druhým invertorem 55. Jeden vstup prvního obvodu 54 logického součtu je připojen k prvnímu signálnímu vedení M01. Má-li M01 hodnotu jedna, potom příznak 2 má hodnotu jedna. To se týká hodnot příznaku 2 ve druhém a čtvrtém řádku na obr. 9. Další vstup prvního obvodu 54 logického součtu je připojen přes druhý invertor 55 k druhému signálnímu vedení M12. Má-li Ml2 binární hodnotu nula, je tato hodnota invertována druhým invertorem 55 na binární hodnotu jedna pro druhý vstup prvního obvodu 54 logického součtu. Následkem toho způsobí příznak 2, že druhé výstupní vedeni 53 má binární hodnotu jedna. To se vztahuje na hodnotu příznaku 2 v řádce jedna na obr. 9. Je třeba poznamenat, že v případě řádku 3 příznak 2 musí mít hodnotu nula. Je to z toho důvodu, aby v případě, že bude-li M01 mít hodnotu 0 a M12 mít hodnotu jedna, která je invertována druhým invertorem 55. byla vytvořena nula na druhém vstupu prvního obvodu 54 logického součtu.
Z logiky na obr. 9 vyplývá pravidlo přednostní priority pro řádek čtyři, kde v tomto případě každé vedení M01 a Ml2 má binární hodnotu jedna. Případ čtvrtého řádku může být vytvořen instrukční kategorií posloupností BAA. Může to být realizováno příznakovou posloupností 1, 0, 1, na obr. 9, nebo alternativně příznakovou posloupnosti 1, 1, 0. V presentovaném seskupení platí pravidlo (5) a je vybrána posloupnost 1, 0, 1 patrná z obr. 9. Jinými slovy, párování BA je dána přednost před párováním AA.
Tvar 1,1 pro M01 a M12 může být také vytvořen posloupnosti operačních kódů AAA. V tomto případě sled příznaků 1,0,1 podle obr. 9 je znovu vybrán. Je to lepší proto, že je k dispozici hodnota jedna pro příznak 2, čímž je potenciálně umožněno složení
-15CZ 280269 B6 instrukce 2 s instrukcí 3, jestliže instrukce 2 je slučitelná s instrukcí 3.
Na obr. 10 je příklad možné konstrukce počítače za použití příznaku ke složení podle vynálezu, aby se dosáhlo paralelní zpracování ve strojovém jazyku počítače. Instrukce skládací jednotka 20 je přes hlavní paměť 10 připojena k řídicí jednotce 60 vyvoláni-vydání. Instrukce skládací jednotka 20 je použita za předpokladu, že je typem popsaným v obr. 6 a jako taková přidá každé instrukci pole jednobitového příznaku. Tato příznaková pole jsou použita k identifikaci párů instrukcí, jež mají být paralelně zpracovány. Stránky obsahující takto označené instrukce jsou postoupeny a uloženy v hlavní paměti 10,. Je-li takto označených instrukcí zapotřebí, jsou čteny nebo převedeny do rychlé vyrovnávací paměti 12,. Řídicí jednotka 60 vyvolání/vydání vyvolá označené instrukce z rychlé vyrovnávací paměti 12, je-li potřeba, a uspořádá je k zpracování příslušnou jednou nebo jinými z většího počtu funkčních instrukčních základních jednotek 61, 62, 63. a 64. Řídicí jednotka 60 vyvolání/vydání zkoumá příznaková pole a pole operačních kódů vyvolaných instrukcí. Jestliže příznaková pole indikují, že dvé postupné instrukce mají být zpracovány paralelně, potom se řídicí jednotka 60 přiřadí k odpovídajícím základním jednotkám 61 až 64 podle toho jak je určeno jejich operačními kódy a jsou zpracovány paralelně vybranými základními jednotkami. Indikují-li příznaková pole, že zvláštní instrukce má být zpracována jednotlivé, neparalelním způsobem, potom řídicí jednotka 60 ji přiřadí ke zvláštní základní jednotce jak určuje její operační kód a je zpracována samostatně.
První funkční jednotka 61 je určena k zpracování větvených instrukcí. Druhá funkční jednotka 62 je aritmetickou a logickou jednotkou pro generování adres se třemi vstupy, jež je určena k výpočtu paměťových adres instrukcí, které převádějí operandy do nebo z paměti. Třetí funkční jednotka 63 je universální aritmetická a logická jednotka určená pro matematické a logické operace. Čtvrtá funkční jednotka 64 je jednotkou se sdruženou závislostí dat o třech vstupech, způsobilá k provedení dvou aritmeticko-logických operací v jediném strojovém cyklu.
Počítačový systém v obr. 10 obsahuje také sadu universálních registrů 65 pro zpracování několika instrukcí ve strojovém jazyku. Universálních registrů se používá k typicky dočasnému uložení datových a adresových operand nebo jako čítačů nebo ke zpracování ostatních dat. Typický systém je opatřen šestnácti universálními registry. Předpokládá se, že registry jsou jedním z vícekanálových typů, přičemž lze dosáhnout současné dva nebo více registrů.
Počítačový systém v obr. 10 obsahuje dále rychlou vyrovnávací paméť 66 pro ukládání datových operand získaných z hlavní pamětí 10 vyšší úrovně. Data lze také přesouvat zpět z rychlé vyrovnávací paměti 66 do hlavní paměti 10. Rychlá vyrovnávací paméť 66 může být známého typu a její režim relativné přizpůsoben hlavní paměti 10 podle známého způsobu.
Obr. 11 znázorňuje příklad složené nebo označené instrukční posloupnosti, kterou lze zpracovat počítačovým systémem na obr.
10. Příklad v obr. 11 je složen z instrukcí jak následuje: naplnění, doplnění, porovnání, podmíněné větvení a uložení. Tyto
-16CZ 280269 B6 instrukce jsou identifikovány jako instrukce 11 až 15. Příznakové bity pro tyto instrukce jsou 1, 1, 0, 1 a 0. Vzhledem k organizaci stroje znázorněné v obr. 10 je instrukce naplnění vykonána jediným samostatným způsobem. Instrukce doplnění a porovnání jsou považovány za složenou instrukci a zpracovány paralelné jedna s druhou. Instrukce větvení a uložení jsou považovány také za složenou instrukci a jsou také zpracovány paralelně jedna s druhou.
Tabulka z obr. 12 udává další informace o každé z instrukcí na obr. 11. Sloupec R/M v obr. 12 indikuje obsah prvního pole každé instrukce, která je typicky použita k identifikaci zejména jednoho z univerzálních registrů 65, který obsahuje první operandu. Jako výjimka je případ instrukce podmíněného větvení, při němž pole R/M obsahuje masku podmíněného kódu. Sloupec R/x v obr. 12 indikuje obsah druhého pole v každé instrukci, přičemž je pole typicky použito k identifikaci jednoho druhého pole z univerzálních registrů 65. Takový registr může obsahovat druhou operandu nebo může obsahovat hodnotu adresového indexu (X). Sloupec B v obr. 12 indikuje obsah třetího možného pole v každé instrukci, přičemž tímto polem lze identifikovat zejména jeden z niverzálních registrů 65, jenž obsahuje hodnotu základní adresy. Nula v sloupci B indikuje nepřítomnost pole B nebo nepřítomnost odpovídající adresové složky v poli B. Pole D v obr. 12 indikuje obsah dalšího pole v každé instrukci, která je-li použita k účelům generace adresy, obsahuje hodnotu posuvu adresy. Nula ve sloupci D může indikovat také nepřítomnost příslušného pole právě považovaného za zvláštní instrukci nebo alternativně za hodnotu nuly pro posuv adresy.
Nyní bude sledováno zpracování instrukcí naplnění v obr. 11, kde řídicí jednotka 60 vyvolání/vydání určuje podle příznakových bitů instrukce naplnění a následující instrukce doplnění tak, že instrukce naplnění je třeba zpracovat jediným způsobem samostatně. K provedeni funkce instrukce naplnění je třeba vyvolat z paměti operandu, v daném případě z rychlé vyrovnávací paměti 66 a umístit tuto operandu do universálního registru R2. Paměťová adresa, podle které je třeba operandu vyvolat je určena přidáním hodnoty indexu v registru X, základní hodnoty v registru B a hodnoty posuvu D. Řídicí jednotka 60 vyvolání/vydání přiřadí tuto adresu generační operace druhé funkční jednotce 62 pro generování adres. V daném případě druhá funkční jednotka 62 připojí k tomu hodnotu adresového indexu v registru X (v daném případě hodnotu nula), hodnotu základní adresy obsaženou v universálním registru R7 a hodnotu posuvu adresy (hodnotu nula v daném příkladu) obsaženou v samotné instrukci. Výsledná vypočtená paměťová adresa, jež se objeví na výstupu druhé funkční jednotky 62 je předána na adresový vstup rychlé vyrovnávací paměti 66 pro přístup k žádané operandě. Zpřístupněná operanda je dodána do universálního registru R2 v registrované sadě 65.
Sledujeme-li nyní zpracováni instrukcí doplnění a porovnání, jsou tyto instrukce vyvolány jednotkou 60 vyvolání/vydání. Řídicí jednotka 60 přezkouší příznaky pro složení těchto instrukcí a znamená, že je lze zpracovat paralelně. Jak patrno z obr. 12 instrukce porovnání má zřejmou závislost dat na instrukci doplnění, protože doplnění musí být dokončeno před R3 dříve než lze vykonat porovnání. Nicméně tuto závislost může zpracovat čtvrtá
-17CZ 280269 B6 funkční jednotka 64 se sdruženými závislými daty. Následkem toho je možno tyto dvě instrukce zpracovat paralelně podle konfigurace v obr. 10. Řídicí jednotka 60 zejména přiřadí zpracování instrukce doplnění třetí funkční jednotce 63 a přiřadí zpracování porovnávací instrukce čtvrté funkční jednotce 64 se sdruženou závislostí .
Třetí funkční jednotka 63 připojí obsahy R2 universálního registru k obsahu R3 universálního registru a umístí výsledek doplnění zpět do R3 universálního registru. Současně třetí funkční jednotka 63 se sdruženou závislostí vykoná následující matematickou operaci: R3 + R2 - R4. Podmiňovací kód pro výsledek této operace je zaslán do registru podmiňovacího kódu umístěného ve větvené první funkční jednotce 61. Datová závislost je sdružená, protože čtvrtá funkční jednotka 64 vypočítá totiž součet R3 + R2 a součet potom porovná s R4 pro určení podmiňovacího kódu. Následkem toho nemusí čtvrtá funkční jednotka 64 čekat na výsledky z třetí funkční jednotky 63, která vykoná instrukci doplnění. V tomto speciálním případě číselné výsledky vypočtené čtvrtou funkční jednotkou 64 se objeví na jejím výstupu a nemusí se předávat zpět do universálních registrů 65. V tomto případě čtvrtá funkční jednotka 64 stanoví jen podmiňovací kód.
sledujeme-li nyní zpracováni větvené instrukce a uložené instrukce znázorněné v obr. 11, jsou tyto instrukce vyvolány z rychlé vyrovnávací paměti 12 pro složené instrukce řídicí jednotkou 60 vyvolání-vydání. Řídicí jednotka 60 rozhodne podle příznakových bitů těchto instrukcí, že mohou být jedna s druhou zpracovány paralelně. Dále může rozhodnout podle operačních kódů těch dvou instrukci, že větvená instrukce má být zpracována druhou funkční jednotkou 62 pro generování adres. V souladu s tímto rozhodnutím je předáno maskovací pole M a posuvné pole D větvené instrukce do větvené první funkční jednotky 61. Podobné, hodnota indexu adresy v registru X a hodnota základu adresy v registru B pro tuto větvenou instrukci jsou získány z univerzálních registrů 65 a jsou předány do větvené první funkční jednotky 61. V daném příkladu hodnota X je nula a hodnota základu je získána z R7 univerzálního registru. Hodnota posuvu D má hexadecimální hodnotu dvacet, zatímco maskovací pole M má hodnotu polohy masky osm.
Větvená jednotka 61 začne počítat potenciální větvenou adresu (O + R7 + 20) a současné porovná podmiňovací kód získaný z předchozí porovnávací instrukce s maskou M podmiňovacího kódu. Je-li hodnota podmiňovacího kódu stejná jako hodnota kódu masky, je splněna podmínka potřebného větvení a vypočtená adresa větve první funkční jednotkou 61 větvení je na to zaslána do počítače instrukci v řídicí jednotce 60. Počítač instrukcí zkontroluje vyvolání instrukcí z rychlé vyrovnávací paměti 12 složených instrukcí. Na druhé straně, není-li podmínka splněna (to znamená, že podmiňovací kód stanovený předchozí instrukcí nemá hodnotu osm), potom nenastane žádné větvení a žádná větvená adresa není zaslána do počítače instrukcí v řídicí jednotce 60.
V téže době, kdy větvená první funkční jednotka 61 je obsazena provedením svých základních akcí pro instrukci větvení, je obsazena druhá funkční jednotka 62 generování adres tím, že provádí výpočet adresy (0 + R7 + 0) pro paměťovou instrukci. Adresa
-18CZ 280269 B6 vypočtená druhou funkční jednotkou 62 je zaslána do datové rychlé vyrovnávací paměti 66. Není-li větvenou jednotkou provedeno žádné větvení, potom paměťová instrukce zpracuje operand R3 universálního registru pro uložení do datové rychlé vyrovnávací paměti 66 na adresu vypočtenou druhou funkční jednotkou 62. Na druhé straně, je-li splněna podmínka větvení a je uskutečněno větvení, potom obsahy R3 universálního registru nejsou uloženy do datové rychlé vyrovnávací paměti 66.
V předchozím obr. 11 je uvedena posloupnost instrukcí jen jako příklad. Provedení počítačového systému v obr. 10 je také způsobilé k zpracování různých a rozmanitých ostatních instrukčních posloupností. Příklad v obr. 11 nicméně dokazuje jasné užitečnost příznaků složených instrukcí při určování, které páry instrukcí mají být navzájem zpracovány s jinými.
Každé párování instrukce mající hodnotu příznakového bitu jedna s následující instrukcí mající hodnotu příznakového bitu nula vytváří složenou instrukci k účelům paralelního zpracování, to znamená instrukce, ve kterých má pár být zpracován vzájemné paralelné. Když příznakové bity u každé z následujících dvou instrukcí mají hodnotu jedna, první z těchto instrukcí je provedena samostatné neparalelním způsobem. V nejhorším možném případě všechny instrukce v posloupnosti by mohly mít hodnotu příznakového bitu jedna. V tomto nejhorším případě všechny instrukce posloupnosti by mohly být zpracovány najednou naperalelním způsobem.
Příklad technických prostředků zmíněný shora ve spojení s preferovaným provedením podle vynálezu se vztahuje pouze na malou oblast. Se zřetelem k tomu je každý pár sousední instrukce analyzován, aby se zjistilo zda je možno ji zpracovat paralelné. Paměťové skládání totiž nabízí možnost zkoušeni mnoha složenin o více než dvou instrukcích a vybráni nej lepšího seskupení, jež je k dispozici.
Shora uvedené příklady také využívají techniky složení, jež předpokládá, že je známo kde instrukce začínají. Obecně je možno instrukční vazby identifikovat pomocí kompilátoru, jak bylo již dříve uvedeno nebo dekódováním instrukce před zpracováním.
V závěru je třeba se zmínit, že instrukce skládací jednotka byla znázorněna speciálně v poloze mezi vstupem/výstupem adaptéru a paměťovou sběrnicí. Tímto příkladem není vyloučeno jakékoliv jiné možné umístění v paměti, kde instrukce skládací jednotka může pracovat. Může být obsažena ve vstupu/výstupu adaptéru, může pracovat jako samostatná jednotka do paměťové sběrnice 9 nebo může obsahovat jednotku připojenou pouze k hlavní paměti soukromým paměťovým kanálem nepřístupným přes paměťovou sběrnici 9. Číslicový počítačový systém podle vynálezu je možno přizpůsobit a adaptovat podle potřeby specialisty v oboru. Z toho důvodu je požadována ochrana předloženého vynálezu jen v omezení a souladu s patentovými nároky.

Claims (6)

1. Číslicový počítačový systém pro zpracování nejméně dvou paralelních instrukcí , vyznačující se tím, že výstup-vstup rozhraní (7) je přes adaptér (8) připojen k instrukce skládacímu mechanismu (11), jehož výstup je spojen s textovou sběrnicí (9b), zatímco jeho vstup-výstup je spojen s adresovou přikazovací sběrnicí (9a), která je připojena jednak na vstup-výstup adaptéru (8) jednak k hlavní paměti (10), která je vstupem-výstupem spojena s textovou sběrnici (9b), připojenou vstupem-výstupem k rychlé vyrovnávací paměti (112) pro složení instrukce s výstupem připojeným přes jednotku pro vyvoláni a vydání instrukce (116) k funkční sběrnici (17), na kterou jsou připojeny dvé nebo více základních jednotek (13, 14, 15) pro instrukce.
2. Číslicový počítačový systém podle nároku 1, vyznačující se tím, že vstup-výstup hlavní paměti (10) je spojen s adaptérem (8) přes instrukce skládací mechanismus (11) a dvé paralelní vyrovnávací paměti (19a, 19b) složených stránek, jejichž společný výstup je připojen k hlavní paměti (10).
3. Číslicový počítačový systém podle nároku 1, vyznaču- jící se tím, že instrukce skládací mechanismus (11) obsahuje instrukce skládací jednotku (20) s nejméně jedním instrukčním registrem (21), které jsou spojeny se dvěma nebo více instrukčními základními jednotkami (22, 23, 24), připojenými k příznakovému generátoru (26) a příznakovému instrukčnímu registru (27).
4. Číslicový počítačový systém podle nároku 3, vyznačující se tím, že instrukční základní jednotka (22) obsahuje první instrukční slučitelnou logiku (30), připojenou k prvnímu vstupu prvního součinového obvodu (34), jehož druhý vstup je připojen k prvním registru závislé logiky (32), zatím co druhá instrukční slučitelná logika (31) a druhý registr závislé logiky (33) jsou připojeny k prvnímu a druhému vstupu druhého součinového obvodu (35).
5. Číslicový počítačový systém podle nároku 3a4, vyznačující se tím, že první instrukční slučitelná logika (30) obsahuje první dekodér (40), jehož první výstup (A) je spojen s prvním vstupem prvního součinového obvodu (42), jehož druhý vstup je připojen k druhému dekodéru (41), zatím co druhý výstup prvního dekodéru (40) je spojen s prvním vstupem druhého součinového obvodu (43), jehož druhý vstup je připojen k druhému dekodéru (41), přičemž výstupy obou součinových obvodů (42, 43), jsou připojeny k obvodu logického součtu (44), jehož výstup je připojen k prvnímu invertoru (52) v příznakovém generátoru (26) a současně k prvnímu vstupu prvního obvodu logického součtu (54), jehož druhý vstup je přes druhý invertor (55) připojen k obvodu logického součtu (48) v druhé instrukční slučitelné logice (31), k jehož prvnímu vstupu je připojen výstup pátého součinového obvodu (46),
-20CZ 280269 B6 jehož druhý vstup je připojen k šestému součinovému obvodu (47), přičemž první vstupy obou součinových obvodů (46, 47) jsou připojeny k druhému dekodéru (41) a třetímu dekodéru (45).
6. Číslicový počítačový systém podle nároku 3, vyznačující se tím, že instrukce skládací jednotka (20) je přes hlavní paměť. (10) a rychlou vyrovnávací paměť (12) připojena k řídicí jednotce (60) vyvolání-vydání, která je spojena s první funkční jednotkou (61), druhou funkční jednotkou (62), třetí funkční jednotkou (63) a čtvrtou funkční jednotkou (64), které jsou připojeny k universálnímu registru (65) a rychlé vyrovnávací paměti (66).
CS91934A 1990-06-26 1991-04-04 Číslicový počítačový systém CZ280269B6 (cs)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US54346490A 1990-06-26 1990-06-26

Publications (2)

Publication Number Publication Date
CZ93491A3 CZ93491A3 (en) 1995-07-12
CZ280269B6 true CZ280269B6 (cs) 1995-12-13

Family

ID=24168174

Family Applications (1)

Application Number Title Priority Date Filing Date
CS91934A CZ280269B6 (cs) 1990-06-26 1991-04-04 Číslicový počítačový systém

Country Status (10)

Country Link
US (2) US5355460A (cs)
EP (1) EP0463296A2 (cs)
JP (1) JPH0778738B2 (cs)
BR (1) BR9102128A (cs)
CA (1) CA2038264C (cs)
CZ (1) CZ280269B6 (cs)
HU (1) HUT57920A (cs)
PL (1) PL165585B1 (cs)
RU (1) RU2109333C1 (cs)
SK (1) SK93491A3 (cs)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0474297B1 (en) * 1990-09-05 1998-06-10 Koninklijke Philips Electronics N.V. Very long instruction word machine for efficient execution of programs with conditional branches
JP2642529B2 (ja) * 1991-04-30 1997-08-20 株式会社東芝 並列プロセッサーの命令分配処理装置
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
EP0650612B1 (en) * 1992-03-25 1999-08-18 Zilog Incorporated Fast instruction decoding in a pipeline processor
WO1993020505A2 (en) 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling
US5438668A (en) 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
DE69308548T2 (de) 1992-05-01 1997-06-12 Seiko Epson Corp Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
US5416913A (en) * 1992-07-27 1995-05-16 Intel Corporation Method and apparatus for dependency checking in a multi-pipelined microprocessor
US5590348A (en) * 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
US5671431A (en) * 1992-09-22 1997-09-23 Siemens Aktiengesellschaft Method for processing user program on a parallel computer system by inserting a tag during compiling
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
JP3644959B2 (ja) * 1992-09-29 2005-05-11 セイコーエプソン株式会社 マイクロプロセッサシステム
JP3531166B2 (ja) 1992-12-31 2004-05-24 セイコーエプソン株式会社 レジスタ・リネーミングのシステム及び方法
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
JP3182591B2 (ja) * 1993-01-20 2001-07-03 株式会社日立製作所 マイクロプロセッサ
US6154828A (en) * 1993-06-03 2000-11-28 Compaq Computer Corporation Method and apparatus for employing a cycle bit parallel executing instructions
US5504914A (en) * 1993-06-23 1996-04-02 National Science Council Multi-level instruction boosting method using plurality of ordinary registers forming plurality of conjugate register pairs that are shadow registers to each other with different only in MSB
EP0974894B1 (en) 1993-11-05 2002-02-27 Intergraph Corporation Instruction cache associative cross-bar switch
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline
US5819059A (en) * 1995-04-12 1998-10-06 Advanced Micro Devices, Inc. Predecode unit adapted for variable byte-length instruction set processors and method of operating the same
US5991869A (en) * 1995-04-12 1999-11-23 Advanced Micro Devices, Inc. Superscalar microprocessor including a high speed instruction alignment unit
US5931941A (en) * 1995-04-28 1999-08-03 Lsi Logic Corporation Interface for a modularized computational unit to a CPU
US5848288A (en) * 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
US5872947A (en) * 1995-10-24 1999-02-16 Advanced Micro Devices, Inc. Instruction classification circuit configured to classify instructions into a plurality of instruction types prior to decoding said instructions
US5826089A (en) * 1996-01-04 1998-10-20 Advanced Micro Devices, Inc. Instruction translation unit configured to translate from a first instruction set to a second instruction set
US5958042A (en) 1996-06-11 1999-09-28 Sun Microsystems, Inc. Grouping logic circuit in a pipelined superscalar processor
US5924128A (en) * 1996-06-20 1999-07-13 International Business Machines Corporation Pseudo zero cycle address generator and fast memory access
US5845099A (en) * 1996-06-28 1998-12-01 Intel Corporation Length detecting unit for parallel processing of variable sequential instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
US5724422A (en) * 1996-08-05 1998-03-03 Industrial Technology Research Institute Encrypting and decrypting instruction boundaries of instructions in a superscalar data processing system
US5941980A (en) * 1996-08-05 1999-08-24 Industrial Technology Research Institute Apparatus and method for parallel decoding of variable-length instructions in a superscalar pipelined data processing system
US5852727A (en) * 1997-03-10 1998-12-22 Advanced Micro Devices, Inc. Instruction scanning unit for locating instructions via parallel scanning of start and end byte information
US5875336A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
US5805849A (en) * 1997-03-31 1998-09-08 International Business Machines Corporation Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions
US5898885A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native stack-based instruction within a computer system
US5870582A (en) * 1997-03-31 1999-02-09 International Business Machines Corporation Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched
US5913048A (en) * 1997-03-31 1999-06-15 International Business Machines Corporation Dispatching instructions in a processor supporting out-of-order execution
US5887161A (en) * 1997-03-31 1999-03-23 International Business Machines Corporation Issuing instructions in a processor supporting out-of-order execution
US5898850A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native mode-sensitive instruction within a computer system
US6098167A (en) * 1997-03-31 2000-08-01 International Business Machines Corporation Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution
US5940602A (en) * 1997-06-11 1999-08-17 Advanced Micro Devices, Inc. Method and apparatus for predecoding variable byte length instructions for scanning of a number of RISC operations
US5922065A (en) * 1997-10-13 1999-07-13 Institute For The Development Of Emerging Architectures, L.L.C. Processor utilizing a template field for encoding instruction sequences in a wide-word format
US6134649A (en) * 1997-11-17 2000-10-17 Advanced Micro Devices, Inc. Control transfer indication in predecode which identifies control transfer instruction and an alternate feature of an instruction
US6167506A (en) * 1997-11-17 2000-12-26 Advanced Micro Devices, Inc. Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location
US6118940A (en) * 1997-11-25 2000-09-12 International Business Machines Corp. Method and apparatus for benchmarking byte code sequences
US6314493B1 (en) 1998-02-03 2001-11-06 International Business Machines Corporation Branch history cache
US6061786A (en) * 1998-04-23 2000-05-09 Advanced Micro Devices, Inc. Processor configured to select a next fetch address by partially decoding a byte of a control transfer instruction
US6141745A (en) * 1998-04-30 2000-10-31 Advanced Micro Devices, Inc. Functional bit identifying a prefix byte via a particular state regardless of type of instruction
US6175908B1 (en) 1998-04-30 2001-01-16 Advanced Micro Devices, Inc. Variable byte-length instructions using state of function bit of second byte of plurality of instructions bytes as indicative of whether first byte is a prefix byte
RU2146389C1 (ru) * 1998-07-07 2000-03-10 Научно-исследовательский институт системных исследований РАН Перепрограммируемый вычислитель для систем обработки информации
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
US6658552B1 (en) * 1998-10-23 2003-12-02 Micron Technology, Inc. Processing system with separate general purpose execution unit and data string manipulation unit
US6826749B2 (en) 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
JP2000284970A (ja) * 1999-03-29 2000-10-13 Matsushita Electric Ind Co Ltd プログラム変換装置及びプロセッサ
GB2352066B (en) * 1999-07-14 2003-11-05 Element 14 Ltd An instruction set for a computer
US6711670B1 (en) * 1999-10-14 2004-03-23 Hewlett-Packard Development Company, L.P. System and method for detecting data hazards within an instruction group of a compiled computer program
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
US7039790B1 (en) 1999-11-15 2006-05-02 Texas Instruments Incorporated Very long instruction word microprocessor with execution packet spanning two or more fetch packets with pre-dispatch instruction selection from two latches according to instruction bit
EP1102165A1 (en) * 1999-11-15 2001-05-23 Texas Instruments Incorporated Microprocessor with execution packet spanning two or more fetch packets
US6618801B1 (en) * 2000-02-02 2003-09-09 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing two architectures in a chip using bundles that contain microinstructions and template information
DE10043003A1 (de) * 2000-09-01 2002-03-14 Infineon Technologies Ag Programmgesteuerte Einheit
KR20020028814A (ko) 2000-10-10 2002-04-17 나조미 커뮤니케이션즈, 인코포레이티드 마이크로코드 엔진을 이용한 자바 하드웨어 가속기
US7149878B1 (en) 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
US6826681B2 (en) * 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
JP3564445B2 (ja) * 2001-09-20 2004-09-08 松下電器産業株式会社 プロセッサ、コンパイル装置及びコンパイル方法
US7395408B2 (en) * 2002-10-16 2008-07-01 Matsushita Electric Industrial Co., Ltd. Parallel execution processor and instruction assigning making use of group number in processing elements
US7917734B2 (en) * 2003-06-30 2011-03-29 Intel Corporation Determining length of instruction with multiple byte escape code based on information from other than opcode byte
US7269715B2 (en) * 2005-02-03 2007-09-11 International Business Machines Corporation Instruction grouping history on fetch-side dispatch group formation
US7475223B2 (en) * 2005-02-03 2009-01-06 International Business Machines Corporation Fetch-side instruction dispatch group formation
US7376815B2 (en) * 2005-02-25 2008-05-20 Qualcomm Incorporated Methods and apparatus to insure correct predecode
US7664765B2 (en) * 2005-07-12 2010-02-16 Cipherflux, Llc Method for accelerating the computational speed of a computer algorithm
US7562206B2 (en) * 2005-12-30 2009-07-14 Intel Corporation Multilevel scheme for dynamically and statically predicting instruction resource utilization to generate execution cluster partitions
JP2007272353A (ja) * 2006-03-30 2007-10-18 Nec Electronics Corp プロセッサ装置及び複合条件処理方法
GR1006531B (el) * 2008-08-04 2009-09-10 Διαμορφωση εντυπου πολλαπλων επιλογων αναγνωσιμου με ηλεκτρονικο μεσο και συστημα και μεθοδος για την ερμηνεια κατ' ελαχιστον μιας επιλογης του χρηστη
US9354888B2 (en) * 2012-03-28 2016-05-31 International Business Machines Corporation Performing predecode-time optimized instructions in conjunction with predecode time optimized instruction sequence caching
US9348596B2 (en) * 2013-06-28 2016-05-24 International Business Machines Corporation Forming instruction groups based on decode time instruction optimization
RU2620731C1 (ru) * 2016-07-20 2017-05-29 федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Способ совместного арифметического и помехоустойчивого кодирования и декодирования

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
JPS53108254A (en) * 1977-03-02 1978-09-20 Nec Corp Information processor
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
US4591972A (en) * 1982-11-15 1986-05-27 Data General Corp. Data processing system with unique microcode control
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
SU1295410A1 (ru) * 1985-07-08 1987-03-07 Институт кибернетики им.В.М.Глушкова Процессор дл мультипроцессорной системы
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
SU1517035A1 (ru) * 1987-10-30 1989-10-23 Институт кибернетики им.В.М.Глушкова Процессор дл мультипроцессорной системы
JPH0769824B2 (ja) * 1988-11-11 1995-07-31 株式会社日立製作所 複数命令同時処理方式

Also Published As

Publication number Publication date
EP0463296A3 (cs) 1994-03-23
BR9102128A (pt) 1991-12-24
PL165585B1 (pl) 1995-01-31
US5459844A (en) 1995-10-17
PL289724A1 (en) 1992-04-21
SK93491A3 (en) 1995-09-13
JPH04232532A (ja) 1992-08-20
CZ93491A3 (en) 1995-07-12
HU911101D0 (en) 1991-10-28
HUT57920A (en) 1991-12-30
CA2038264C (en) 1995-06-27
EP0463296A2 (en) 1992-01-02
JPH0778738B2 (ja) 1995-08-23
RU2109333C1 (ru) 1998-04-20
US5355460A (en) 1994-10-11

Similar Documents

Publication Publication Date Title
CZ280269B6 (cs) Číslicový počítačový systém
US8239660B2 (en) Processor with automatic scheduling of operations
US7725687B2 (en) Register file bypass with optional results storage and separate predication register file in a VLIW processor
KR100242617B1 (ko) 파이프 라인 컴퓨터 시스템
US7844803B2 (en) Configurable data processing device with bit reordering on inputs and outputs of configurable logic function blocks
EP0405489B1 (en) Resource conflict detection method and apparatus included in a pipelined processing unit
US3978452A (en) System and method for concurrent and pipeline processing employing a data driven network
EP0407911B1 (en) Parallel processing apparatus and parallel processing method
US7650486B2 (en) Dynamic recalculation of resource vector at issue queue for steering of dependent instructions
US4868735A (en) Interruptible structured microprogrammed sixteen-bit address sequence controller
US4587632A (en) Lookahead stack oriented computer
CZ279899B6 (cs) Zapojení pro paralelní zpracovávání dvou nebo více instrukcí paralelně v číslicovém počítači
JPH0773036A (ja) 命令シーケンスを識別してタグを付加する方法
US6021511A (en) Processor
KR20000075837A (ko) 보호형의 매우 긴 명령어 아키텍처를 위한 향상된 명령 디스패치 메카니즘
US20150032995A1 (en) Processors operable to allow flexible instruction alignment
US5890009A (en) VLIW architecture and method for expanding a parcel
EP0164995B1 (en) Parallel register transfer mechanism for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
FI91107B (fi) Tietojenkäsittely-yksikkö
EP0448127B1 (en) Microprogram sequence controller
US6934941B2 (en) Compiler for generating risc object code whereby operations on bit variables written in source code are executed by processing based on bit judgement operations to thereby reduce the amount of object code
EP0164997A2 (en) Condition concentrator and control store for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US7581088B1 (en) Conditional execution using an efficient processor flag
US7010631B2 (en) Controller based hardware device and method for setting the same
US5894581A (en) Method for reducing control store space in a VLSI central processor

Legal Events

Date Code Title Description
IF00 In force as of 2000-06-30 in czech republic
MM4A Patent lapsed due to non-payment of fee

Effective date: 20010404