CZ1695A3 - Microprocessor unit for generating address with segment addresses - Google Patents

Microprocessor unit for generating address with segment addresses Download PDF

Info

Publication number
CZ1695A3
CZ1695A3 CZ9516A CZ1695A CZ1695A3 CZ 1695 A3 CZ1695 A3 CZ 1695A3 CZ 9516 A CZ9516 A CZ 9516A CZ 1695 A CZ1695 A CZ 1695A CZ 1695 A3 CZ1695 A3 CZ 1695A3
Authority
CZ
Czechia
Prior art keywords
segment
field
bit
stored
address
Prior art date
Application number
CZ9516A
Other languages
English (en)
Inventor
Kamla P Huck
Scott D Rodgers
Andrew F Glew
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CZ1695A3 publication Critical patent/CZ1695A3/cs

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)

Description

Jednotka mikroprocesoru pro generování adresy se segmentovanými adresami
Oblast techniky
Tento vynález se týká oblasti mikroprocesorů. Přesněji, týká se jednotky generování adresy v procesoru.
Dosavadní stav techniky
Počítačový systém může být obecně rozdělen do tří základních bloků: výpočetní a kontrolní jednotka počítače (CPU - Central Processing Unit) , paměť., a jednotka vstupu/výstupu (1/0
Input/Output). Tyto bloky jsou vzájemně propojeny jednou nebo více sběrnicemi. Pro vstup dat a/nebo výpočetních programů do počítačového systému pomocí počítačového 1/0 zařízení se běžně používá vstupní zařízení, jako klávesnice, myš, elektromechanické zařízení, které čte, či zapisuje na disky, atd. Výpočetní program instruuje počítačový systém jak mají být data zpracována. Tyto instrukce a data jsou obvykle uschovány v paměti. Jednotka CPU načítá data uchovávaná v paměti a zpracovává je podle těchto instrukcí. Výsledky mohou být uschovány opět v paměti nebo vystupovat jednotkou mezifázového rozhraní, 1/0, na tiskárnu, monitor, reproduktor a pod. Uživatel může například zavádět znaky úhozy na klávesnici. Pomocí programu textového procesoru může být dokument formátován, podroben kontrole správnosti, upravován procedurami vystřihni, nalep a jinak upravován. Dokument je při těchto úpravách obvykle zobrazen na obrazovce počítače. Konečná
9531 úprava může být vytištěna nebo uschována v elektronické formě pro následné načteni (do počítače).
Pokud počítačový program mění hodnotu uloženou v paměti, provádí operaci uložení (store). Pokud počítač načitá instrukce nebo data z paměti, provádí operaci zavedení (load) z vnější paměti do vnitřní. Každá z těchto operací zavedení a uložení potřebuje adresu, která určuje umístění v paměti. Při operaci uložení určuje adresa místo paměti, které je použitelné pro uložení dat. Při operaci zavádění určuje adresa místo paměti, kde jsou uloženy potřebné instrukce nebo data.
Pro moderní počítačové systémy je příznačných několik různých variet adresování, které odrážejí různé stupně abstrakce. Například v architektuře Intel x86 jsou použity logické, lineární a fyzické adresy.
Logická adresa je určena jazykem asembleru nebo programem ve strojním kódu a tvoří ji selektor a ofset. Ofset se získá jako součet tří složek: báze, normalizovaného indexu a posunu. Logický adresový prostor je tedy segmentovaný.
Abychom získali lineární adresu jé logická adresa (obsahující segment ofset) transformována do ploché lineární adresy přičtením báze segmentu odpovídající segmentovému selektoru.
Jak logické tak i lineární adresové prostory mohou být větší, než je fyzická velikost paměti v systému. K adresování omezené velikosti fyzické paměti se používá technika nazývaná virtuální paměť, ve které se převádí lineární adresy do adres fyzických použitých k adresování omezeného množství fyzikální paměti. Omezené množství fyzické paměti se rozšiřuje sekundární vnější pamětí, jakou je pevný disk.
Jak bylo výše uvedeno, obsahuje logická adresa segment: ofsetový pár a tento ofset je často sám počítán pomocí formule j ako:
9531 registr báze + indexový registr * měřítko + bezprostřední (hodnota)
Odpovídajícím způsobem to implikuje, že lineární adresa je dána: báze segmentu + registr báze + indexový registr * měřítko + bezprostřední (hodnota)
Tyto formule a zakódování použité při popisu v instrukčním proudu se nazývají adresovací módy.
Adresovací módy se používají z různých důvodů. Zaprvé někdy umožňují, aby programy byly menší (například zmenšením velikosti adresy). Místo toho, aby se použil 32-bitová násobná bitová logická konstanta ofsetu, adresovací módy například někdy umožňují menší 1 bajtovou specifikaci registru (uvědomte si, že to není to vždycky pravda). Za druhé umožňují adresovací módy napsání programů a podprogramů, i když adresy dat nejsou předem známé. Adresa může být vypočtena ze vstupních dat a může být umístěna do registru. Za třetí adresovací módy umožňují, aby některé časté výpočty byly zakódovány uvnitř paměťové odkazové instrukce, místo toho, aby se vyžadovaly oddělené instrukce.
Registry báze se obvykle používají v překladačích, aby ukázaly na počátek místních proměnných nebo polí. Navíc se indexové registry používají pro přístup k. prvkům pole nebo řetězci znaků. Dále může být hodnota indexového registru násobena měřítkem (např. 1,2,4,8, atd.), což je užitečné při přístupu k polím nebo podobným strukturám. Nakonec je přičten posun pro výpočet konečné efektivní adresy.
Paměť může být rozdělena na jednu nebo více segmentů proměnné délky, které mohou být zaměňovány na disku nebo sdíleny mezi programy. Paměť může být také uspořádána do jedné nebo více stránek. Segmentace a stránkování se vzájemné doplňují.
9531
Segmentace je důležitá pro programátory aplikací k organizaci paměti do logických modulů, zatímco stránky jsou užitečné pro systémové programátory pro zvládnutí fyzické paměti systému. Typické je použití segmentovací jednotky k překladu prostoru logických adres do 32-bitového prostoru lineárních adres. K překladu tohoto lineárního adresového prostoru do prostoru fyzikální adresy se používá stránkovací jednotka. Je to tato fyzikální adresa, která se objevuje na adresových kolících mikroprocesorového čipu.
V mnohých CPU se k provedení adresových výpočtů používá AGU (jednotka generovaní adresy). Tato jednotka AGU je také zodpovědná za provádění všech segmentových operací1 a za řízení přístupů ke všem řídícím/kontrolním registrům. V minulosti bylo zvykem, že jednotky AGU zpracovávaly segmenty poměrně úzké šířky (např. 16 bitů). Později vedly pokroky mikroprocesorové technologie k širším a širším' segmentům. Nejprve v Intelu” architektury 8086 byl pro výstavbu deskriptoru použit segmentovaný sektor. Potom u architektury Intelu 286 s 16-ti bitovým chráněným módem selektor řídil přístup k paměti s 48-bitovým deskriptorem. A nakonec architektura Intelu 386, která měla 32-bitový chráněný mód, použila selektor přístup k paměti s 64 bitovým deskriptorem. Aby byla udržena zpětná kompatibilita s předchozími počítačovými programy, byly tyto dodatečné bity zapisovány operačním systémem do oddělených pozic. Tyto nesouvislé segmenty se však těžko zpracovávají fyzickými komponentami počítačového systému (hardware).
Dalším problémem spřažený s dřívějším návrhem AGU vyplývá ze skutečnosti, že s rostoucí šíří segmentu se musí odpovídajícím způsobem zvyšovat i Šířka sběrnice. Rozšiřování sběrnice je však drahé, protože spotřebovává velkou část křemíkové plochy (tj . velikosti matrice). Zvětšování velikosti matrice znamená, že
9531 z daného křemíkového plátku může být vyrobeno méně matric. A to se přímo odráží ve vyšších výrobních nákladech.
A dřívější jednotky AGU představují ještě jeden problém - jsou pomalé. Jedním faktorem zpomalujícím proces generace adresy lze přičítat použití dvou různých deskriptorových tabulek. Hodnota selektoru poskytuje ofset v jedné z těchto deskriptorových tabulek. Typická AGU tedy čte selektor a určuje, která ze dvou tabulek bude použita a pak skutečně přečte hodnotu deskriptoru z příslušné tabulky. Tento postup je dosti pomalý a těžkopádný.
Navíc další generace mikroprocesorů mají zabudované zpracování typu mimo pořadí. Jinými slovy instrukce nemusí být nezbytně zpracovávány v pořadí, které udává zdrojový program. Nadto zdrojový kód je také zpracováván spekulativně. Spekulace znamená techniku odhadování, jak bude program pokračovat a provádět sérii příkazů. To implikuje, že existuje metoda oprav chybných spekulací.
Tedy v dřívějších jednotkách AGU bylo nutné použít takový návrh, který by se přizpůsobil zpracováním mimo pořadí a spekulativnímu . Bylo výhodné, aby taková jednotka AGU byla také zpětně kompatibilní. Také by bylo výhodné, kdyby taková jednotka AGU měla omezenou šířku sběrnice, aniž by to znamenalo vzdát se výkonnosti, a také kdyby byla rychlá a pružná.
Podstata vynálezu
Předložený vynález se týká jednotky generování adresy (AGU) v mikroprocesoru počítačového systému. Jednou z funkcí jednotky AGU je generovat adresu odpovídající vstupu uloženému v paměti. Aby byla zachována zpětná kompatibilita s počítačovými programy napsanými pro předchozí mikroprocesorové architektury, jsou části segmentového deskriptoru, které obsahují registr báze, hranici a hodnoty segmentových práv použitých při výpočtu a kontrole adresy, uloženy v oddělených úsecích. Protože zpracování takového formátu
9531 je obtížné, jsou oddělené části vytvářející bázi a hranice nově uspořádány tak, aby vytvořili segment, který má sousedící bázi, hranici a přístupové hodnoty. Sousedící bity báze, hranice, práv, a selektoru jsou potom uschovány v souboru registru. Kopie báze a hranice jsou uloženy v kontrolním registru a vysílány do dalších jednotek. Navíc opětovně nastavitelný nulový bit je uložen v jiném registru a ukazuje, zda je segmentový selektor nulový. Dále obsahuje jednotka AGU prostředky pro výběr zvláštního pole souboru registru a provedení operace čtení/zápis na vybraném poli.
Jednotka AGU má také schopnost vyslat segmentové obsahy ze dvou různých deskriptorových tabulek (tj . lokální a globální) . Jednotka AGU pak určuje, který z těchto dvou segmentů neměl být vyslán a jeho obsah zruší. Navíc může jednotka AGU načíst data deskriptoru do dočasného registru. Tato data deskriptoru jsou pak kontrolována jednotkou AGU před jejich načtením do registru definovaného architekturou.
Přehled obrázků na výkresech
Předkládaný vynález je ilustrován příklady, které ho nijak neomezují, pomocí obrázků na přiložených výkresech, na kterých jsou použita podobná odkazová čísla pro odkaz na podobné prvky, a na kterých:
Obr. 1 ukazuje počítačový systém, kde je použita preferovaná realizace předloženého vynálezu.
Obr. 2 ukazuje blokové schéma příkladu procesoru, který začleňuje úvahy tohoto vynálezu.
Obr. 3 ukazuje dva 32-bitové kódové/datové segmentové deskriptory.
Obr. 4 ukazuje operaci čtecí segment hranice.
9531
Příklady provedení vynálezu
Je popsána jednotka generování adresy. V následujícím popisu jsou při vysvětlování použity pro důkladné pochopení předloženého vynálezu četné specifické detaily, jako jsou registry, módy, porušení, fyzický defekt, atd. Odborníkům je však zřejmé, že předložený vynález může být realizován bez těchto specifických detailů. Aby se zabránilo nepochopení předkládaného vynálezu, jsou v jiných případech ukázány dobře známé struktury a zařízení ve formě blokových schémat.
Podle Obr. 1 je počítačový systém, na kterém je ukázána preferovaná realizace tohoto vynálezu, označen jako 100. Počítačový systém 100 se skládá ze sběrnice nebo jiného sdělovacího prostředku
101 pro sdílení informace a z procesoru pro zpracování informace
102 spojeného se sběrnicí 101. Procesor 102 obsahuje, ale není tím nijak limitován, mikroprocesor, a další komponenty. Systém 100 obsahuje dále paměť s přímým přístupem (RAM) nebo jiné zařízení pro dynamický záznam 104. dále hlavní paměť, spojenou se sběrnicí 101 a sloužící pro uložení informace a instrukcí, které mají být provedeny procesorem 102. Hlavní paměť 104 může být také použita pro uložení dočasných proměnných nebo jiné přechodné informace při provádění instrukcí procesorem 102. Počítačový systém 100 se také skládá z paměti permanentní (ROM) a/nebo jiného zařízení statické paměti 106 spojeného se sběrnicí 101 sloužící k uchování neměnné informace a instrukcí pro procesor 102 a zařízení pro ukládání dat 107. jako je magnetický nebo optický disk a jemu příslušná disková jednotka. Zařízení pro ukládání dat 107 je spojeno se sběrnicí 101. aby mohlo ukládat informace a instrukce.
Počítačový systém 100 může být dále spojen se zobrazovací jednotkou 121, jako je obrazovka (CRT) nebo displej s kapalnými krystaly (LCD), pomocí sběrnice 101 sloužícím ke zobrazení informace pro uživatele. Alfanumerické vstupní zařízení 122 včetně
9531 alfanumerických nebo jiných kláves může být také spojeno se sběrnicí 101 pro sdílení informace a výběrů příkazů pro procesor 102. Dodatkovým vstupním zařízením je ovladač kurzoru 123, jako je myš, trackball, pero nebo kurzorové směrové klávesy, spojené se sběrnicí 101 pro sdílení směrové informace a výběry příkazů pro procesor 102 a pro řízení pohybu kurzoru po displeji 121. Jiným zařízením, které může být spojeno se sběrnicí 101. je zařízení pro tisk na permanentní medium 124, které může být použito pro tisk instrukcí, dat, nebo jiné informace na mediu jako je papír, film, nebo medium obdobného typu. Dále může být sběrnicí 101 sloužící jako rozhraní volitelně k počítačovému systému 100 připojeno zařízení pro záznam zvuku a playback, jako jsou reproduktor a mikrofon. Povšimněte si, že kterékoliv nebo všechny komponenty systému 100 a příslušný hardware mohou být použity v preferované realizaci, a že je výhodné, když jakýkoliv typ konfigurace systému může být použit pro různé účely podle požadavku uživatele.
Podle Obr. 2 ilustruje blokové schéma příklad procesoru 102 podle tohoto vynálezu. Tento příklad procesoru 102 obsahuje prováděcí jednotku 201. řídící jednotku sběrnice 202. řídící jednotku datové cache 203. datovou cache 204, ústupovou logiku 207, jednotku vyvolání a vydání instrukcí 205 s integrovanou cache 206. Prvky 201 až 206 jsou vzájemně propojeny tak, jak je ukázáno. Společně mohou pracovat při vyvolání, vydání, provedení, a uložení výsledků instrukcí metodou řetězení (pipelining).
Jednotka vyvolávání a vydávání instrukcí 205 vyvolává instrukce z vnější paměti řídící jednotkou sběrnice 202 pomocí vnější systémové sběrnice. Řídící jednotka sběrnice 202 obstarává přenosy dat mezi vnějšími komponentami a procesorem 102. Navíc se také stará o fázové přenosy cache. Jednofka vyvolávání a vydáváni instrukcí 205 potom vydává instrukce prováděcí jednotce 201 v řádném pořadí. V podstatě vykonává prováděcí jednotka takové
9531 úlohy jako je sčítání, odčítání, logické a celočíselné násobení. Některé z těchto instrukcí mohou být vyvolávány a vydávány spekulativně. Prováděcí jednotka 201 uchovává a vykonává příkazy v pevné a pohyblivé čárce pokud jsou vyřešeny závislosti operandů na výsledcích předchozích instrukcí. To zahrnuje i ty příkazy v celočíselné či pohyblivé čárce, které jsou spekulativně vyvolávány a vydávány. Podobným způsobem prováděcí jednotka 201 uchovává a předává výsledky provedení příkazu ústupové logice 207. Ústupová logika 207 předává stavy těchto instrukcí jakýmkoliv trvalým stavům architektury, které byly určený původním zdrojovým kódem. Řídící jednotka cache 203 ovládá přesuny dat ke/z datové cache 204. Datová cache 204 je rychlá, malá hardwarem ovládaná dočasná paměť, která je dosažitelná při načítání i uschovávání v menším počtu hodinových cyklů než je tomu u hlavní paměti. Řídící jednotka datové cache 203, a datová jednotka cache 204 odpovídájí bezprostředně načtením instrukcí, případně předáním dat. Naopak instrukce ukládáni jsou uloženy ve vyrovnávací paměti až do chvíle, kdy ústupová logika indikuje,že mohou být vykonány. Jinými slovy instrukce nejsou nezbytně prováděny/předávány v pořadí, ve kterém byly vydány. Mimoto jsou některé instrukce prováděny/předávány spekulativně. Ve všech případech jsou výsledky operací v celočíselné, pohyblivé čárce a načítací operace ukládány do vyrovnávací paměti a potom odloženy nebo připraveny k provedení v pořadí. Pro srovnání instrukce ve vyrovnávací paměti jsou odloženy nebo připraveny k provedení v pořadí a potom vykonány v pozadí podle toho, jak se to hodí systému paměti. Výsledky spekulativně provedených operací v pevné a pohyblivé čárce a místa ve vyrovnávací paměti urychleně provedené nesprávně předpovězenými větvemi jsou vyčištěna.
Jednotka vyvolávání a vydávání instrukcí 205 by měla představovat širokou kategorii prvků vyvolávání a vydávání instrukcí, kterou lze nalézt v mnoha počítačových systémech. Jejich
9531 konstrukce a funkce jsou dobře známy a nebudou dále popisovány.
V nyní preferované realizaci jednotka vyvolávání a vydávání instrukcí 205 obsahuje i instrukční cache 206 . Instrukční cache 206 je rychlá místní paměť, která obsahuje ty instrukce, které mají být provedeny. Pokud se program snaží o přístup k instrukci, která již nebo ještě není v této cache, musí procesor počkat do chvíle, kdy hardware vyvolá příslušnou instrukci z jiné cache nebo paměti dále po směru toku. Odpovědnost jednotky vyvolávání a vydávání instrukcí 205 je rozhodovat s cílem maximální výkonnosti programu, která instrukce vstupu cache by měla být zpracována jako následující.
V realizaci současně preferované jsou instrukční cache 206 a datová cache 204 součástí paměťové hierarchie. Tato hierarchie obsahuje malou, ale extrémně rychlou cache LI. Pokud paměťový přístup na cache LI selže, přístup je předán větší, ale pomalejší, cache L2. A pokud tato také selže, paměťový přístup přejde na cache L3 nebo na hlavní paměť, pokud procesor nemá cache L3. Řídící jednotka datové cache 203 obstarává úlohy spojené se špatným zacházením s paměťovými stránkami. Navíc neexistuje potřeba pro vyvolávání instrukcí z uspořádaných paměťových míst. Jinými slovy může být instrukce vyvolána z paměťových míst tak, že zabere dvě řádky cache. Je však výhodné, že tento vynález může být realizován s i bez instrukční cache nebo s kombinovanou cache pro instrukce/data. Pokud je použita instrukční cache bude neexistence stránky (paměti) zpracována dedikovaným zařízením pro správu neexistujících stránek paměti a instrukce mohou být vyvolány z uspořádaných paměťových míst.
V současně preferované realizaci je jednotka generování adresy, AGU, odpovědná za provádění výpočtů adres, zpracování všech segmentových operací a řízení přístupu ke všem řídícím a kontrolním registrům. Jednotka AGU obsahuje jeden nebo více bloků výpočtu adres pro výpočet lineárních a efektivních adres i pro kontrolu
9531 porušení hranic segmentů, chyb uspořádání (alignment) a pro provádění kontrol ochrany přístupových časů. Jednotka AGU také obsahuje segmentový blok, který uchovává soubor segmentového registru, ovládá všechny obsahy segmentových registrů a obsahuje hardware, které provádí kontroly ochrany obsahů segmentových registrů.
Pokud porušení hranice a ochrana přístupových časů jsou úspěšné, pak AGU vyšle adresu paměťovému subsystému, kde je přístup prováděn, a její funkce je dokončena. Pokud AGU zjistí při této operaci nějakou chybu, předá AGU informaci o chybovém stavu zpět do ústupové logiky 207 a zruší operaci v paměťovém podsystému. Pokud segment operace načtení (umísťující data z vnější do vnitřní paměti) detekuje chybu, předá AGU informaci o chybovém stavu zpět do ústupové logiky 207. Pokud operace vyžaduje další mikrokódovou podporu AGU, předá pro tuto podporu jeden vektor. Jinak končí operace úspěšně. Detailnější popis je uveden v patentovém spise US
............. s názvem Způsob a zařízeni pro načtení segmentového registru v mikroprocesoru schopného práce v několika módech, která byla podána dne.............a připsána zmocněnci tohoto vynálezu.
Při generování adres dostává AGU data ve tvaru adresy báze (Β), indexu (X), (který je normalizován podle měřítka před sečtením) , a posunu (D) , které jsou přičteny k segmentové bázi, aby se tak získala lineární adresa. Malá vyrovnávací paměť, známá jako rezervační stanice, se používá pro uchování mikrooperací, které nejsou ještě vykonány, a která tyto mikrooperace vydává podle závislosti na datech a dostupnosti počítačových prostředků. Tato rezervační stanice posílá řídící informaci a informaci operačního kódu jednotce AGU. V určitých prováděcích módech je adresování paměti řízeno prostřednictvím souboru segmentových registrů. Do těchto registrů je explicitně načtena informace o segmentových deskriptorech z paměti prostřednictvím mikrokódových instrukcí.
9531
Všechny přístupy do paměti, které používají určitý segmentový registr, jsou implicitně vztaženy k přidružené adrese báze segmentu. Pro každý segment paměti také existuje hranice. Práva pro čtení a zápis jsou kontrolována pro každý paměťový odkaz podle práv v segmentovém registru.
V současně preferované realizaci jsou segmentové deskriptory uloženy v paměti ve formátu, který byl dodržován po mnoho generací mikroprocesorové architektury. Ten se používá proto, aby se dosáhlo zpětné kompatibility s programy napsanými pro dřívější architektury. V důsledku toho je tento ukládaný formát v paměti pro ukládání deskriptorů v souboru segmentového registru jednotky AGU nešikovný.
Podle Obr. 3 se jednotlivý deskriptor skládá ze spodní 32bitové hodnoty 302 a horní 32-bitové hodnoty 301. Může být ukázáno, že tento deskriptor obsahuje promíchané pole. Například bity 0-7 hodnoty 301 obsahují bity báze 23 až 16 [23:16] . Bity 8-15 obsahují přístupová práva (AR). Bity 16-19 hodnoty 301 obsahují bity 19-16 hranice. Bity 20-23 obsahují zrnitost (G) a bity velikosti (D) dat. Bity 24-31 hodnoty 301 obsahují bity [31-24] báze. Hodnota 302 obsahuje bity [15:0] hranice a bity [15:0] báze.
V tomto vynálezu jsou tato pole dekódována, když je segmentový deskriptor načten tak, že tvoří na sebe navazující pole. Specificky bity 0-15 hodnoty 302 a bity 16-19 hodnoty 3 01 jsou dekódovány, aby se staly bity 0-19 nezakódovaného kódového/datového segmentového deskriptoru 303. Podobně bity 0-7 a 24-31 hodnoty 301. spolu s bity 16-31 hodnoty 302 jsou dekódovány, aby vytvořily bity 24 - 55 segmentu 303. Bity G a D jsou umístěny do polohy bitových posic 2023 segmentu 303 a AR bajt je umístěn v bitech 56-63 segmentu 303. Povšimněte si, že tak byly hranice i báze konsolidovány.
Jediný registr v registrovém souboru 303 nyní obsahuje segmentový deskriptor uložený v souvislé části (paměti) . Jednotlivá
9531 pole tohoto registru mohou být čtena a na ně zapisováno mikrokódem, požadujícím práva pro čtení a zápis v těchto sekcích.Tyto kódové/datové segmentové deskriptorové registry uchovávají informaci pro paměťový segment. Tuto segmentovou bázi používá sčítačka k výpočtu lineární adresy při přístupu k segmentu. Hranice se používá pro kontrolu efektivní adresy při jejím porušení. G bit se používá k rozšíření hranice na její správnou zrnitost. Přístupová práva (AR) ukazují jaký má segment typ přístupových a v případě segmentů zásobníku směr rozšíření hranice segmentu.
V současně preferované realizaci se k indexování v tabulce segmentových deskriptorů specifikované bitem TI, 305 používá indexová hodnota 304. Bit TI 305 ukazuje, zda má být použita místní, či globální deskriptorová tabulka. Navíc hodnota 305, úroveň privilegia zařízení žadatel (RPL), se použije ve spojení s úrovní privilegia deskriptoru (DPL) v bajtu přístupových práv, AR, a v současně platné úrovni privilegií v kontrole porušení privilegií segmentu při načítání informace z vnější do vnitřní paměti. Index 304, TI bit 305 a RPL 306 jsou kombinovány tak, aby vytvořily hodnotu selektoru 307. Selektor 307 se používá jako ofset v příslušné tabulce segmentových deskriptorů. Navíc detekce nuly 308 nastavuje úroveň 1 nulovému bitu 309. pokud jak index 304 tak TI bit 305 jsou nulové a pokud je procesor v chráněném módu. Jinak je nulový bit 309 smazán. Pokud je nulový bit 309 nastaven na úroveň 1, jakýkoliv pokus o použití tohoto segmentu vyvolá poruchu. Povšimněte si, že selektor 307 a nulový bit 309 jsou uloženy s deskriptorem 303 (tj. jsou součástí téhož registru).
Existují mikroinstrukce, které definují čtení/zápis pro každé pole deskriptoru. Ty zahrnují operace čtení a/nebo zápis selektoru, přístupových práv, úrovně privilegia deskriptoru (DPL) , G a D bitů, hranice a báze. Jsou také mikroinstrukce, které definují čtení/zápis pro přenos celého segmentu mezi vstupy registrového
9531 souboru. Bezprostřední vstup dat pro tyto operace čtení/zápis ukazují, které pole v souboru segmentového registru se má číst/zapsat.
Při přístupu k paměti je čtena segmentová báze z registrového souboru, a aby se získala lineární adresa, je na ní provedena funkce ADD. Toto čtení trvá právě jeden hodinový cyklus CPU (výpočetní a kontrolní jednotka počítače). Jsou zjištěny neplatné operace a pro tyto neplatné operace není soubor registru přečten. Tato vlastnost je implementována tím, že se používá implicitní adresa segmentového registru (tj . s touto adresou není spojen žádný vstup segmentového registru). Každý hodinový cyklus CPU, za který reservační stanice nevyšle skutečný přístup, jsou na adresu linek, které neodpovídají vstupu souboru segmentového registru (SRF), vyslány samé 0 .
V současně preferované realizaci je registrový soubor obsahující tyto segmenty a selektory široký 96 bitů. Avšak datová cesta AGU je široká pouze 32 bitů. To znamená, že na souboru registru mohou být provedeny pouze 32 bitové operace čtení/zápis. V důsledku toho jsou operace čtení/zápis vztahující se na pole definovány tak, aby mohly být selektivně čteny/přepisovány určité bity souboru registrů. Jeden ze vstupů AGU získaný při této operaci je indikátor určující, které pole se má číst/přepsat. Tyto operace s poli na souboru segmentových registrů zahrnují: čtení selektorového, zápis do selektorového pole, pole čtecích práv, pole práv pro zápis, pole hranic čtecího segmentu, pole hranic segmentu pro zápis, pole báze čtecího segmentu a pole báze zapisovacího segmentu.
Operace čtení selektorového pole čte načte data v selektorovém poli bitů segmentového registru v registrovém souboru. Tyto bity jsou vyslány z jednotky AGU na sběrnici zpětného zápisu a je nastaven bit kontroly platnosti zpětného zápisu. 16 bitů je zprava
9531 zarovnáno na bity [15:0] sběrnice zpětného zápisu a horních 16 bitů je nastaveno na nulu. Operace zápisu selektorového pole zapíše data do selektorového pole bitů segmentového registru v registrovém souboru. Data přichází do jednotky AGU ve spodních 16 bitech vstupu zdroje 2.
Segmentový registr do kterého má být proveden zápis je označen na vstupní adrese SRF. Zdroj 2 je datový vstup do jednotky AGU z rezervační stanice. Vstup adresy SRF je 4 bitové pole, které normálně ukazuje ten segmentový registr, který má být použit pro přístup do paměti.
Operace čtení pole práv načítá data v poli přístupových práv deskriptoru společně s daty v bitovém poli G/D. Uspořádání dat je změněno tak, že bity končí ve správném pořádku, jak je specifikuje příslušná architektura. Operace zápisu pole práv zapisuje AR bajt a G-D bitová pole segmentového deskriptoru specifikovaná určením adresy segmentového registru na vstupu adresy SFR. AR bajt přichází na bity [15:8] a bitová pole G-D na bitech [23:20] zdroje 2, ostatní bity deskriptoru jsou ponechány beze změn.
Obr. 4 ukazuje operaci čtení hranice segmentu. Operace čtení segmentové hranice pole načítá 20 bitovou hodnotu hranice 401 ze segmentového registru 402 a konvertuje ji do 32-bitové hodnoty založené na bitu zrnitosti 403. Pro jednobajtovou zrnitost je 20bitová hranice konvertována nulou přesahující horních 12 bitů. Pro 4-kilobajtovou zrnitost posune posouvač2 404 20 bitovou hranici doleva o 12 do horních 20 bitů zpětného zápisu, a spodních 12 bitů je zaplněno jedničkami. Zaplnění jedničkami je nutné, aby se zajistilo, že každý bajt poslední platné stránky segmentu je považován za platný. Kdyby byla hranice zaplněna nulami, potom by při pokusu o přístup na poslední stránku segmentu došlo k porušení hranice. Konvertovaná hranice je zavedena na 32-bitovou sběrnici zpětného zápisu 405. Operace zápisu hranice pole si bere vstup ze
9531 zdroje 2 a zapisuje jej do spodních 20 bitu segmentu registrového souboru. Zbytek registru je ponechán beze změny.
Mikrokód mění G-bit prostřednictvím operace zápisu pole AR bajtu, aby se tak změnila zrnitost hranice.
Mikrooperace čtení pole segmentové báze načítá 32-bitovou segmentovou bázi ze segmentového registru a zavádí ji na sběrnici zpětného zápisu. Mikrooperace zápisu pole segmentové báze zapisuje 32-bitovou hodnotu zdroje 2 do pole segmentové báze souboru segmentového registru.
V současně preferované realizaci se k realizaci postupu popsaného na Obr. 5 používá následující mikrokód tl «- ld_deskriptor_cond (*GDTR:(memory address) ) write_selector (selector_temp) t2 «- ld_deskriptor_cond ( *LDTR:memory address) write_selector (selector_temp) deskriptor*- select. GLOBAL (tl,t2), kde write_selector (selector_temp) je modifikátor mikroinstrukce, který naznačuje, že dočasný registr selektoru by měl být modifikován.
Ld_deskriptor_cond() je mikroinstrukce načítající 64 bitový deskriptor z paměti. Avšak načtení je provedeno pouze tehdy, když spodní bity adresy odpovídají selektoru segmentu GDTR nebo LDTR sdruženým s mikroinstrukcí, jinak je načtení zrušeno a zvláštní indikátor je zapsán na výstup tl nebo t2.
9531
Select.GLOBAL O je podmíněná operace výběru, která vybírá, který z jejích vstupů tl a t2 indikuje, že odpovídající ld_deskriptor_cond byl úspěšně dokončen3
Tím je tedy popsána jednotka pro generování adresy se segmentovanými adresami.

Claims (32)

  1. PATENTOVÉ n<á5r
    1. Jednotka mikroprocesoru pro generování adresy se segmentovými adresami, vyznačující se tím, ž e obsahuje sběrnici (210), na kterou je pro provádění aritmetických funkcí napojena jednak prováděcí jednotka (201), jednak vyvolávací jednotka (205) pro určení, který vstup má být použit, a jednak výstupní jednotka (205) spojená se sběrnicí (210) pro přístup zmíněného vstupu z vnější do vnitřní paměti, rovněž obsahuje jednotku pro generování adresy spojenou se sběrnicí (210) pro generaci adresy odpovídající vybranému vstupu, přičemž jednotka pro generování adresy obsahuje soubor segmentového registru pro ukládání adresových segmentů.
  2. 2. Jednotka mikroprocesoru podle nároku 1,v yznačující se t í m, že jednotka pro generování adresy dále obsahuje obvod pro reorganizování bitových pozic prvního segmentu, aby se tak generoval druhý segment, který má souvisle sousedící všechny bity báze a všechny bity hranice.
  3. 3. Jednotka mikroprocesoru podle nároku 2, vyznačující se tím, že obvod pro reorganizování bitových pozic je vytvořen pro reorganizaci první segmentu po jeho načtení z paměti a uložení v souboru segmentového registru.
  4. 4. Jednotka mikroprocesoru podle nároku 1, vyznačující se t í m, ž e obsahuje soubor instrukcí, podle kterého vznikne porucha při použití nulového segmentu.
  5. 5. Jednotka mikroprocesoru podle nároku 4, vyznačující se tím, že opětovně nastavitelný nulový bit je uložen v souboru segmentového registru a opětovně nastavitelný nulový bit se používá pro provedení detekce nulového segmentu na zmíněném segmentu.
    -196. Jednotka mikroprocesoru podle nároku 1, vyznačující se tím, že jednotka generování adres je vytvořena pro provádění operace čtení a zápisu celého segmentového vstupu uloženého v souboru segmentového registru.
  6. 7. Jednotka mikroprocesoru podle nároku 1,vyznačující se tím, že jednotka generování adres je vytvořena pro provádění operaci čtení a zápisu určitého pole segmentu uloženého v souboru segmentového registru.
  7. 8. Jednotka mikroprocesoru podle nároku 7, vyznačuj Pcf se t í m, že pole segmentu je selektorové pole.
  8. 9. Jednotka mikroprocesoru podle nároku 7, vyznačující se t í m, že pole segmentu je pole báze.
  9. 10. Jednotka mikroprocesoru podle nároku 7, v y z n a č u j í c í se t í m, že pole segmentu je pole hranice
  10. 11. Jednotka mikroprocesoru podle nároku 10, vyznačující se tím, že čtená hranice pole způsobuje normalizování hodnoty podle bitu zrnitosti uloženého v segmentovém registru.
  11. 12. Jednotka mikroprocesoru podle nároku 7, vyznačující se tím, že pole segmentu je pole úrovní privilegií deskriptoru.
  12. 13. Jednotka mikroprocesoru podle nároku 7, vyznačující se t í m, že pole segmentu je pole přístupových práv.
  13. 14. Jednotka mikroprocesoru podle nároku 1, vyznačující se tím, že jednotka generování adresy je vytvořena pro provádění operace čtení a zápisu selektoru, bajtu přístupových práv, bitu zrnitosti a bitu velkosti dat segmentu uloženého ve zmíněném souboru segmentového registru.
    7
    -2015. Zařízení, vyznačující se tím, že obsahuje:
    sběrnicové prostředky pro přenos digitálních signálů;
    prostředky prováděcí spojené se zmíněnými sběrnicovými prostředky pro provádění aritmetických funkcí;
    prostředky pro načítání dat z paměti spojené se zmíněnými sběrnicovými prostředky pro určení, který vstup má být použit;
    výstupní prostředky spojené se zmíněnými sběrnicovými prostředky pro přístup zmíněného vstupu z vnější do vnitřní paměti;
    zařízení pro generování adresy spojené se zmíněnými sběrnicovými prostředky pro generaci adresy odpovídající zmíněnému vstupu, přičemž toto zařízení pro generovaní adresy obsahuje zařízení segmentového registru pro ukládání adresových segmentů.
  14. 16. Zařízení podle nároku 15, vyznačující se tím, ž e prostředky generování adresy dále obsahují prostředky pro uspořádání bitových pozic prvního segmentu, aby generovaly druhý segment mající všechny bity báze a všechny bity hranice souvisle sousedící.
  15. 17. Zařízení podle nároku 16, vyznačující se tím, ž e prostředky pro uspořádání reorganizují zmíněný první segment, když je tento segment načítán z vnější paměti a ukládán ve zmíněném souboru segmentového registru.
  16. 18. Zařízení podle nároku 15, vyznačující se tím, ž e dále obsahuje soubor instrukcí, podle kterého vzniká porucha při použití nulového segmentu.
    ~P> ť s/6 ~<?6
    -2119. Zařízení podle nároku 18, vyznačující se tím, ž e opětovně nastavitelný nulový bit je * uložen ve zmíněném souboru segmentového registru a opětovně nastavitelný nulový bit se používá pro provedení detekce nulového segmentu na zmíněném segmentu.
  17. 20. Zařízení podle nároku 15, vyznačující se tím, ž e prostředky generování adres provádějí operace čtení a zápisu celého segmentového vstupu uloženého v prostředcích segmentového registru.
  18. 21. Zařízení podle nároku 15, vyznačující se tím, ž e prostředky pro generování adres provádějí operace čtení a zápisu určitého pole segmentu uloženého v prostředcích segmentového registru.
  19. 22. Zařízení podle nároku 21, vyznačujíc ž e pole segmentu je selektorové pole.
  20. 23. Zařízení podle nároku 21, vyznačujíc ž e pole segmentu je pole báze.
  21. 24. Zařízení podle nároku 21, vyznač ž e pole segmentu je pole hranice se tím, se tím, se tím,
  22. 25. Zařízení podle nároku 21 vyznačující se tím, ž e pole segmentu je pole úrovní privilegií deskriptoru.
  23. 26. Zařízení podle nároku 15, vyznačující se tím, ž e prostředky generace adresy jsou vytvořeny pro provádění operace čtení a zápis selektoru, bajtu přístupových práv, bitu zrnitosti a bitu velkosti dat segmentu uloženého v prostředcích segmentového registru.
  24. 27. Počítačový systém, vyznačující se tím, že obsahuje: sběrnici; hlavní paměť spojenou se zmíněnou sběrnicí pro ukládání digitálních dat; mikroprocesor spojený se zmíněnou
    -22sběrnicí pro zpracování zmíněných digitálních dat, přičemž zmíněný mikroprocesor obsahuje prováděcí jednotku spojenou se zmíněnou sběrnicí pro provádění aritmetických funkcí, dále jednotku načítání dat z paměti spojenou se zmíněnou sběrnicí pro určení, který vstup má být použit, výstupní jednotku spojenou se zmíněnou sběrnicí pro přístup zmíněného vstupu z vnější do jednotku pro generování adresy spojenou se pro generaci adresy odpovídající zmíněnému vstupu, která obsahuje soubor segmentového registru pro ukládání adresových segmentů.
    vnitřní paměti a zmíněnou sběrnicí
  25. 28. Počítačový systém podle nároku 27, vyznačující se t í m, že jednotka pro generování adresy dále obsahuje obvod reorganizování bitových pozic prvního segmentu pro generování druhého segmentu, který má všechny bity báze a všechny bity hranice souvisle sousedící.
  26. 29. Počítačový systém podle nároku 28, vyznačující se t í m, ž e obvod reorganizování bitových pozic reorganizuje první segment po načtení prvního segmentu z paměti a uložení ve zmíněném souboru segmentového registru.
  27. 30. Počítačový systém podle nároku 27, vyznačující se t í m, že dále obsahuje soubor instrukcí, podle kterého vznikne porucha při použití nulového segmentu.
  28. 31. Počítačový systém podle nároku 30, vyznačující se tím, ž e opětovně nastavitelný nulový bit je uložen v souboru segmentového registru, přičemž opětovně nastavitelný nulový bit se používá pro provedení detekce nulového segmentu na zmíněném segmentu.
  29. 32. Počítačový systém podle nároku 27,v yznačující se t í m, ž e jednotka generování adres provádí operace čtení a zápisu celého segmentového vstupu uloženého v souboru segmentového registru.
    77 76 -93
    -2333. Počítačový systém podle nároku 27, vyznačující se tím, že jednotka generování adres provádí operace čtení a zápisu určitého pole segmentu uloženého v souboru segmentového registru.
  30. 34. Počítačový se t í m, že
  31. 35. Počítačový se t í m, že
  32. 36. Počítačový se t í m, že systém podle pole segmentu systém podle pole segmentu nároku 33, v je selektorové nároku 33, v je pole báze.
    systém podle nároku 33, v pole segmentu je pole hranice.
    y z n a č u j pole.
    y z n a č u j y z n a č u j ící ící
    37. Počítačový systém podle nároku 33, v y z n a čující se tím, že pole segmentu je pole úrovně privilegia deskriptoru. 38. Počítačový systém podle nároku 27, v y z n a čující
    se t í m, že jednotka generování adresy provádí operace čtení a zápisu selektoru, bajtu přístupových práv, bitu zrnitosti a bitu velkosti dat segmentu uloženého v souboru segmentového registru.
CZ9516A 1994-01-04 1995-01-03 Microprocessor unit for generating address with segment addresses CZ1695A3 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/176,066 US5590297A (en) 1994-01-04 1994-01-04 Address generation unit with segmented addresses in a mircroprocessor

Publications (1)

Publication Number Publication Date
CZ1695A3 true CZ1695A3 (en) 1996-02-14

Family

ID=22642842

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ9516A CZ1695A3 (en) 1994-01-04 1995-01-03 Microprocessor unit for generating address with segment addresses

Country Status (7)

Country Link
US (2) US5590297A (cs)
JP (1) JPH07210381A (cs)
CZ (1) CZ1695A3 (cs)
GB (1) GB2285323B (cs)
HU (1) HUH3807A (cs)
SG (1) SG52278A1 (cs)
SK (1) SK284085B6 (cs)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721857A (en) * 1993-12-30 1998-02-24 Intel Corporation Method and apparatus for saving the effective address of floating point memory operations in an out-of-order microprocessor
US5590297A (en) * 1994-01-04 1996-12-31 Intel Corporation Address generation unit with segmented addresses in a mircroprocessor
US6012135A (en) * 1994-12-01 2000-01-04 Cray Research, Inc. Computer having multiple address ports, each having logical address translation with base and limit memory management
US5655139A (en) * 1995-05-26 1997-08-05 National Semiconductor Corporation Execution unit architecture to support X86 instruction set and X86 segmented addressing
US5961580A (en) * 1996-02-20 1999-10-05 Advanced Micro Devices, Inc. Apparatus and method for efficiently calculating a linear address in a microprocessor
US5835968A (en) * 1996-04-17 1998-11-10 Advanced Micro Devices, Inc. Apparatus for providing memory and register operands concurrently to functional units
US6085302A (en) * 1996-04-17 2000-07-04 Advanced Micro Devices, Inc. Microprocessor having address generation units for efficient generation of memory operation addresses
US5860141A (en) * 1996-12-11 1999-01-12 Ncr Corporation Method and apparatus for enabling physical memory larger than corresponding virtual memory
US6260101B1 (en) * 1997-03-07 2001-07-10 Advanced Micro Devices, Inc. Microcontroller having dedicated hardware for memory address space expansion supporting both static and dynamic memory devices
US6643736B1 (en) * 2000-08-29 2003-11-04 Arm Limited Scratch pad memories
JP4534336B2 (ja) * 2000-10-13 2010-09-01 ソニー株式会社 メモリ装置におけるデータ管理方法
JP4786805B2 (ja) * 2001-02-16 2011-10-05 シャープ株式会社 半導体装置
US7937525B2 (en) * 2004-06-25 2011-05-03 Intel Corporation Method and apparatus for decoding a virtual machine control structure identification
US20070011432A1 (en) * 2005-07-06 2007-01-11 Advanced Micro Devices, Inc. Address generation unit with operand recycling
US8275976B2 (en) * 2005-08-29 2012-09-25 The Invention Science Fund I, Llc Hierarchical instruction scheduler facilitating instruction replay
US7644258B2 (en) 2005-08-29 2010-01-05 Searete, Llc Hybrid branch predictor using component predictors each having confidence and override signals
US20070083735A1 (en) * 2005-08-29 2007-04-12 Glew Andrew F Hierarchical processor
US8296550B2 (en) * 2005-08-29 2012-10-23 The Invention Science Fund I, Llc Hierarchical register file with operand capture ports
US9176741B2 (en) * 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
US9001898B2 (en) * 2011-06-10 2015-04-07 Thinklogical, Llc Method and system for serial digital interface (SDI) video data extension
US9489196B2 (en) 2011-12-23 2016-11-08 Intel Corporation Multi-element instruction with different read and write masks
CN104081341B (zh) 2011-12-23 2017-10-27 英特尔公司 用于多维数组中的元素偏移量计算的指令
US9996350B2 (en) 2014-12-27 2018-06-12 Intel Corporation Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4050094A (en) * 1976-04-30 1977-09-20 International Business Machines Corporation Translator lookahead controls
JPS6013501B2 (ja) * 1978-09-18 1985-04-08 富士通株式会社 仮想計算機システムにおけるチヤネルアドレス制御方式
US4597044A (en) * 1982-10-14 1986-06-24 Honeywell Information Systems, Inc. Apparatus and method for providing a composite descriptor in a data processing system
US4825358A (en) * 1985-04-10 1989-04-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US4779187A (en) * 1985-04-10 1988-10-18 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
US5173872A (en) * 1985-06-13 1992-12-22 Intel Corporation Content addressable memory for microprocessor system
GB2176918B (en) * 1985-06-13 1989-11-01 Intel Corp Memory management for microprocessor system
US5144551A (en) * 1989-05-19 1992-09-01 Compaq Computer Corporation Computer memory management method utilizing segmentation and protection techniques
US5255379A (en) * 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5303378A (en) * 1991-05-21 1994-04-12 Compaq Computer Corporation Reentrant protected mode kernel using virtual 8086 mode interrupt service routines
US5274834A (en) * 1991-08-30 1993-12-28 Intel Corporation Transparent system interrupts with integrated extended memory addressing
GB2260629B (en) * 1991-10-16 1995-07-26 Intel Corp A segment descriptor cache for a microprocessor
US5418956A (en) * 1992-02-26 1995-05-23 Microsoft Corporation Method and system for avoiding selector loads
US5590297A (en) * 1994-01-04 1996-12-31 Intel Corporation Address generation unit with segmented addresses in a mircroprocessor

Also Published As

Publication number Publication date
GB9425324D0 (en) 1995-02-15
GB2285323A (en) 1995-07-05
JPH07210381A (ja) 1995-08-11
GB2285323B (en) 1998-06-24
HU9403847D0 (en) 1995-02-28
US5749084A (en) 1998-05-05
SK995A3 (en) 1995-08-09
SG52278A1 (en) 1998-09-28
HUH3807A (en) 1997-05-28
SK284085B6 (sk) 2004-09-08
US5590297A (en) 1996-12-31

Similar Documents

Publication Publication Date Title
CZ1695A3 (en) Microprocessor unit for generating address with segment addresses
US6145049A (en) Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set
US8635415B2 (en) Managing and implementing metadata in central processing unit using register extensions
US6351789B1 (en) Built-in self-test circuit and method for validating an associative data array
JP5027669B2 (ja) マイクロプロセッサ、集積回路、システム及び方法
US5940858A (en) Cache circuit with programmable sizing and method of operation
US4679140A (en) Data processor with control of the significant bit lengths of general purpose registers
US5867724A (en) Integrated routing and shifting circuit and method of operation
US5675758A (en) Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations
TWI808869B (zh) 硬體處理器及處理器
US6351797B1 (en) Translation look-aside buffer for storing region configuration bits and method of operation
US4562538A (en) Microprocessor having decision pointer to process restore position
US6065091A (en) Translation look-aside buffer slice circuit and method of operation
US5946718A (en) Shadow translation look-aside buffer and method of operation
US5155828A (en) Computing system with a cache memory and an additional look-aside cache memory
US5761491A (en) Data processing system and method for storing and restoring a stack pointer
EP0533427B1 (en) Computer memory control system
US6199156B1 (en) System for explicitly referencing a register for its current content when performing processor context switch
US6363474B1 (en) Process switching register replication in a data processing system
US6393446B1 (en) 32-bit and 64-bit dual mode rotator
US6581150B1 (en) Apparatus and method for improved non-page fault loads and stores
EP1220100B1 (en) Circuit and method for hardware-assisted software flushing of data and instruction caches
US6301647B1 (en) Real mode translation look-aside buffer and method of operation
US5970509A (en) Hit determination circuit for selecting a data set based on miss determinations in other data sets and method of operation
EP1220088B1 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load instructions