PL177404B1 - Sposób przetwarzania informacji w systemie komputerowym - Google Patents
Sposób przetwarzania informacji w systemie komputerowymInfo
- Publication number
- PL177404B1 PL177404B1 PL94316532A PL31653294A PL177404B1 PL 177404 B1 PL177404 B1 PL 177404B1 PL 94316532 A PL94316532 A PL 94316532A PL 31653294 A PL31653294 A PL 31653294A PL 177404 B1 PL177404 B1 PL 177404B1
- Authority
- PL
- Poland
- Prior art keywords
- instruction
- execution
- instructions
- processor
- response
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
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)
- Hardware Redundancy (AREA)
- Communication Control (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
Abstract
1. Sposób przetwarzania informacji w systemie komputerowym, w którym wysyla sie instrukcje do ukladów wykonawczych dla ich wykonania i okresla sie dla kazdej instru- kcji, przed jej wykonaniem, czy moze po- wstac warunek wyjatkowy w wyniku wykonania danej instrukcji przez uklady wy- konawcze, znamienny tym, ze wysyla sie sygnal wskazujacy kompletnosc instrukcji w odpowiedzi na stwierdzenie, ze warunek wyjatkowy nie jest mozliwy w wyniku wyko- nania tej instrukcji przez uklady wykonaw- cze, przy czym sygnal wskazujacy wysyla sie niezaleznie od tego czy uklady wykonawcze skonczyly wykonywanie tej instrukcji. FIG. 1 PL PL
Description
Przedmiotem wynalazku jest sposób przetwarzania informacji w systemie komputerowym.
Znany superskalarny system przetwarzania informacji zawiera wielokrotne jednostki wykonawcze do równoczesnego wykonywania wielokrotnych instrukcji. W pewnych systemach przetwarzania instrukcje są wykonywane nie po kolei względem ich zaprogramowanych sekwencji w strumieniu instrukcji. Jednak jedna lub więcej wybranych instrukcji mogłoby być poddanych ustawieniu seryjnemu, gdzie wykonywanie szeregowych instrukcji jest dokonywane jedynie w kolejności ich zaprogramowanej sekwencji. Również niektóre z tych systemów przetwarzania są przeznaczone do zapisu wyników instrukcji w celu zapamiętania komórek pamięci, na przykład rejestrów architektonicznych, w kolejności sekwencji zaprogramowanych instrukcji. W rozwiązaniach znanych ze stanu techniki, taki porządek zapisu oddziałuje na czas instrukcji, w jakim jająbyć wykonane przez komputerowy system przetwarzania instrukcji. Ponadto taki zapis kolejności oddziałuje na czas wykonywania instrukcji szeregowych wykonywanych przez znany system przetwarzania.
177 404
Istotą sposobu przetwarzania informacji w systemie komputerowym, według wynalazku, w którym wysyła się instrukcje do układów wykonawczych dla ich wykonania i określa się dla każdej instrukcji, przed jej wykonaniem, czy może powstać warunek wyjątkowy w wyniku wykonania danej instrukcji przez układy wykonawcze, jest to, że wysyła się sygnał wskazujący kompletność instrukcji w odpowiedzi na stwierdzenie, że warunek wyjątkowy nie jest możliwy w wyniku wykonania tej instrukcji przez układy wykonawcze, przy czym sygnał wskazujący wysyła się niezależnie od tego czy układy wykonawcze skończyły wykonywanie tej instrukcji.
Korzystnie jako instrukcję stosuje się instrukcję szczególną, przy czym instrukcję szczególną, poprzedza się ciągu instrukcji przez wykonawczą instrukcję szeregową.
Korzystnie wykonawczą instrukcję szeregową wykonuje się przez układy wykonawcze w odpowiedzi na wysłanie sygnału wskazującego zanim układy wykonawcze zakończą wykonywanie instrukcji szczególnej.
Korzystnie wykonawczą instrukcję szeregową poprzedza się w ciągu instrukcji przez inną instrukcję, a wykonanie wykonawczej instrukcji szeregowej uzależnia się od informacji o wyniku wykonania tej innej instrukcji.
Korzystnie wykonawczą instrukcję szeregowąwykonuje się w odpowiedzi na wysłanie sygnału wskazującego, jeśli układy wykonawcze zakończą wykonywanie tej innej instrukcji.
Korzystnie pierwszy etap wykonawczej instrukcji szeregowej wykonuje się przed wysłaniem sygnału.
Korzystnie drugi etap wykonawczej instrukcji szeregowej wykonuje się w odpowiedzi na wysłanie sygnału wskazującego zanim układy wykonawcze zakończą wykonywanie tej instrukcji szczególnej.
Korzystnie jako wykonawczą instrukcję szeregową stosuje się instrukcje pamięci.
Korzystnie zapisuje się sygnał wskazujący w buforze przemianowania w odpowiedzi na określanie, że warunek wyjątkowy nie może wynikać z wykonywania instrukcji przez układy wykonawcze.
Korzystnie zapisuje się sygnał wskazujący w buforze przemianowania, jeśli instrukcja należy do typu instrukcji wykonywanych w sposób domyślny.
Korzystnie usuwa się sygnał wskazujący z bufora przemianowania w odpowiedzi na wysłanie tego sygnału.
Korzystnie zapisuje się sygnał wskazujący do bufora przemianowania, jeśli instrukcja jest instrukcją zmiennoprzecinkową, przeznaczoną do wykonania w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym, nawet jeśli warunek wyjątkowy może powstać w wyniku wykonania instrukcji zmiennoprzecinkowej.
Korzystnie jako instrukcję stosuje się instrukcje szczególną, przy czym w trakcie wysyłania sygnału wskazującego wysyła się ten sygnał w odpowiedzi na stwierdzenie, że warunek wyjątkowy niejest możliwy w wyniku wykonania instrukcji przez układy wykonawczejeśli co najmniej jeden z warunków, to jest warunek wyjątkowy nie jest możliwy w wyniku wykonania poprzedniej instrukcji przez układy wykonawcze i warunek wyjątkowy nie wynika z wykonywania realizowanej instrukcji przez układy wykonawcze, jest prawdziwy dla każdej poprzedniej instrukcji poprzedzającej tę instrukcję szczegół nąw ciągu instrukcji wysyłanych do układów wykonawczych.
Korzystnie określa się, czy instrukcja jest instrukcją zmiennoprzecinkową, przeznaczoną do wykonania przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym trybie zmiennoprzecinkowym, przy czym w trakcie wysyłania sygnału wskazującego wysyła się sygnał w odpowiedzi na stwierdzenie, że instrukcja jest instrukcją zmiennoprzecinkową, przeznaczoną do wykonywania przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym, przy czym wysyłanie sygnału wskazującego jest niezależne od tego czy układy wykonawcze skończyły wykonywanie tej instrukcji.
Korzystnie jako instrukcję stosuje się instrukcję zmiennoprzecinkową.
Korzystnie instrukcję zmiennoprzecinkową wykonuje się przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym.
177 404
Korzystnie zapisuje się sygnał wskazujący w buforze przemianowania w odpowiedzi na określenie, że instrukcja jest instrukcją zmiennoprzecinkową, przeznaczoną do wykonania przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym.
Korzystnie usuwa się sygnał wskazujący z bufora przemianowania w odpowiedzi na wysłanie tego sygnału.
Korzystnie w trakcie wysyłania sygnału wskazującego wysyła się ten sygnał w odpowiedzi na stwierdzenie, że instrukcja jest instrukcją zmiennoprzecinkową, przeznaczoną do wykonania przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym, jeśli co najmniej jeden z warunków, to jest warunek, że poprzednia instrukcja jest instrukcją zmiennoprzecinkową, przeznaczoną do wykonania przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym, warunek, że stan wyjątkowy nie jest możliwy w wyniku wykonania poprzedniej instrukcji przez układy wykonawcze i warunek wyjątkowy nie wynika z wykonywania poprzedniej instrukcji przez układy wykonawcze, jest prawdziwy dla każdej poprzedniej instrukcji, poprzedzającej tę instrukcję zmiennoprzecinkową w ciągu instrukcji wysyłanych do układów wykonawczych.
Korzystnie jako instrukcję stosuje się instrukcję szczególną, przy czym instrukcję szczególną poprzedza się w ciągu instrukcji przez szeregową instrukcję wykonawczą.
Korzystnie szeregową instrukcję wykonawczą wykonuje się przez układy wykonawcze w odpowiedzi na wysłanie sygnału wskazującego zanim układy wykonawcze zakończyły wykonywania instrukcji szczególnej.
Zaletą rozwiązania według wynalazku jest to, że zapis w kolejności mniej niekorzystnie oddziałuj e na czas wykonywania instrukcj i wykonawczych przez komputerowy system przetwarzania informacji i instrukcji szeregowych wykonywanych przez ten system.
Sposób przetwarzania informacji według wynalazku objaśniono w oparciu o przykład wykonania przedstawiony na rysunku, na którym fig. 1 przedstawia schemat bloku procesora do przetwarzania informacji, fig. 2 schemat blokowy jednostki wykonawczej ustalonej pozycji procesora z fig. 1, fig. 3 - schemat blokowy jednostki sekwencyjnej procesora z fig. 1, fig. 4 - organizację bufora przyporządkowania jednostki sekwencyjnej z fig. 3, fig. 5a-b - różne stopnie instrukcji przetwarzanych przez procesor z fig. 1, fig. 6 - organizację bufora przyporządkowania procesora z fig. 1, fig. 7 - różne stopnie czterech instrukcji z fig. 6, fig. 8a-d - organizację buforów zmiany nazwy procesora z fig. 1, fig. 9 - różne stopnie czterech instrukcji w sytuacji bez znaczącej cechy zalecanego wykonania, fig. 10a-d - organizację buforów zmiany nazwy procesora z fig. 9, fig. 11 - schemat blokowy odmiennego wykonania buforów zmiany nazwy procesorazfig. 1, fig. 12a-c -organizację bufora przyporządkowania procesora z fig. 1, fig. 13 -różne stopnie pięciu instrukcji z fig. 12a-c, fig. 14a-f - organizację buforów zmiany nazwy procesora z fig. 1, fig. 15 - różne stopnie pięciu instrukcji z fig. 12a-c w sytuacji bez znaczącej cechy, i fig. 16a-h - organizację buforów zmiany nazwy procesora z fig. 1 przy różnych cyklach przetwarzania instrukcji zilustrowanych na fig. 15.
Figura 1 przedstawia schemat blokowy procesora 10 do przetwarzania informacji. Procesor 10 jest pojedynczym, scalonym mikroprocesorem superskalarnym. Zgodnie z tym, jak zostanie omówione poniżej, procesor 10 zawiera różne jednostki, rejestry, bufory, pamięci i inne sekcje, z których wszystkie są wykonane w układzie scalonym. W zalecanym przykładzie wykonania procesor 10 działa zgodnie z technikami komputera o zredukowanej liście rozkazowej („RISC“). Jak pokazano na fig. 1, szyna systemowa 11 jest dołączona do jednostki interfejsu szyny (BIU) 12 procesora 10. Jednostka BIU 12 steruje przenoszeniem informacji pomiędzy procesorem 10 i szyną systemową 11.
Jednostka BlU 12 jest dołączona do pamięci poręcznej 14 instrukcji i do pamięci podręcznej 16 danych procesora 10. Pamięć podręczna 14 instrukcji daje na wyjściu instrukcje dlajednostki sekwencyjnej 18. W odpowiedzi na takie instrukcje z pamięci podręcznej 14 instrukcji, jednostka sekwencyjna 18 daje na wyjściu selekcyjnie instrukcje dla danych obwodów wykonawczych procesora 10.
177 404
W uzupełnieniu do jednostki sekwencyjnej 18, obwód wykonawczy procesora 10 zawiera wielokrotne jednostki wykonawcze, mianowicie jednostkę rozgałęzienia 20, jednostkę A ustalonej pozycji (FXUA) 22, jednostkę B ustalonej pozycji (FXUB) 24, jednostkę złożonej ustalonej pozycji (CFXU) 26, jednostkę obciążenia/pamiętania (LSU) 28 i jednostkę pływającej pozycji (FPU) 30. Jednostka FXUA 22, jednostka FXUB 24, jednostka CFXU 26 i jednostka LSU 28 odbierająna wejściu ich informacją źródłową z rejestrów architektonicznych ogólnego zastosowania (GPR) 32 i buforów zmiany nazwy 34 ustalonej pozycji. Ponadto jednostka FXUA 22 i jednostka FXUB 24 odbierają na wejściu „bit“ przenoszenia z rejestru (CA) 42 bitu przenoszenia. Jednostka FXUA 22, jednostka FXUB 24, jednostka CFXU 26 i jednostka LSU 28 dają na wyjściu wyniki (informację argumentów operacji przeznaczenia) dla ich operacji w celu pamiętania na wybranych wejściach w buforach zmiany nazwy 34 ustalonej pozycji. Równieżjednostka CFXU 26 ma na wejściach i wyjściach informacje argumentu operacji źródłowej i informację argumentu operacji przeznaczenia, skierowane do i z rejestrów specjalnego przeznaczenia (SPR) 40.
Jednostka FPU 30 ma na wejściu informację argumentu operacji źródłowej z rejestrów architektonicznych pozycji pływającej (FPR) 36 i buforów zmiany nazwy 3 8 pozycji pływającej. Jednostka FPU 30 daje na wyjściach wyniki (informację argumentu operacji przeznaczenia) jej operacji dla pamiętania na wybranych wej ściach w buforach zmiany nazwy 3 8 pozycji pływaj ącej.
W odpowiedzi na instrukcję obciążenia jednostka LSU 28 ma na wejściach informację z pamięci podręcznej 16 danych i kopiuje taką informację do wybranych buforów zmiany nazwy 34 i 38. Jeżeli taka informacja nie jest zapamiętana w pamięci podręcznej 16 danych, wówczas pamięć podręczna 16 danych ma na wejściach (poprzez jednostkę BIU 12 i szynę systemową 11) taką informację z pamięci systemowej 39 dołączonej do szyny systemowej 11. Ponadto pamięć 16 danych jest zdolna dawać na wyjściu (poprzez jednostkę BIU 12 i szynę systemową 11) informację z pamięci podręcznej 16 danych dla pamięci systemowej 39 dołączonej do szyny systemowej 11. W odpowiedzi na instrukcję pamiętania, jednostka LSU 28 ma na wejściu informację z wybranej j ednostki GPR 32 i FPR 36 i kopiuje taką .informację do pamięci podręcznej 16 danych.
Jednostka sekwencyjna 18 mana wejściach i wyjściach informację do i zjednostek GPR 32 i FPR 36. Z jednostki sekwencyjnej 18 jednostka rozgałęzienia 20 daje instrukcje i sygnały wskazujące obecny stan procesora 10. W odpowiedzi na takie instrukcje i sygnały jednostka rozgałęzienia 20 daje na wyjściu (dla jednostki sekwencyjnej 18) sygnały wskazujące, że właściwa pamięć adresuje pamiętanie sekwencji instrukcji w celu wykonania przez procesor 10. W odpowiedzi na takie sygnały z jednostki rozgałęzienia 20, jednostka sekwencyjna 18 daje wskazany ciąg instrukcji, to jest wskazaną sekwencję instrukcji, z pamięci podręcznej 14 instrukcji. Jeżeli jedna lub więcej sekwencji instrukcji nie jest zapamiętanych w pamięci podręcznej instrukcji 14, wówczas pamięć podręczna 14 instrukcji daje (poprzezjednostkę BIU 12 i szynę systemową 11) takie, instrukcje z pamięci systemowej 39 dołączonej do szyny systemowej 11.
W odpowiedzi na wejście instrukcji z pamięci podręcznej 14 instrukcji, jednostka sekwencyjna 18 wysyła selekcyjnie instrukcje do wybranych jednostek wykonawczych 20, 22, 24, 26, 28 i 30. Każdajednostka wykonawcza wykonuje jedną lub więcej instrukcji ze szczególnej klasy instrukcji. Dla przykładu, jednostka FXUA 22 i FXUB 24 wykonuje pierwszą klasę operacji matematycznych ustalonej pozycji na argumentach operacji źródłowych, takich jak dodawanie, odejmowanie, logiczne I, logiczne LUB i logiczne ALBO. Jednostka CFXU 26 wykonuje drugą klasę operacji ustalonej na argumentach źródłowych, takie jak mnożenie i dzielenie ustalonej pozycji. Jednostka FPU 30 wykonuje operacje pozycji zmiennoprzecinkowej na argumentach operacji źródłowych, takich jak mnożenie i dzielenie zmiennoprzecinkowe.
Wówczas gdy informacja jest zapamiętana w wybranym buforze zmiany nazwy 34, taka informacja jest związana z lokacją pamięciową (np. zjednostek GPR 32 lub rejestrem CA 42) jako wyszczególnionąprzez instrukcję, której jest przyporządkowany wybrany bufor zmiany nazwy. Informacja zapamiętana w wybranym buforze zmiany nazwy 34 jest kopiowana do odpowiedniej jednostki GPR 32 (lub rejestru CA 42) w odpowiedzi na sygnały z jednostki sekwencyjnej 18. Jak zostanie omówione dalej w połączeniu z fig. 6-10, jednostka sekwencyjna 18 kieruje takie kopiowanie informacji zapamiętanej w wybranych buforach zmiany nazwy 34 w
177 404 odpowiedzi na „zakończenie instrukcji po wytworzeniu informacji. Takie kopiowanie jest nazywane „zapisem zwrotnym.
Gdy informacja jest zapamiętana w wybranym z buforów zmiany nazwy 38, taka informacjajest związana z jednąjednostkąFPR 36. Informacja zapamiętana w wybranym buforze zmiany nazwy 38 jest kopiowana do odpowiedniej jednostki FPR 36 w odpowiedzi na sygnały z jednostki sekwencyjnej 18. Jednostka sekwencyjna 18 kieruje takie kopiowanie informacji zapamiętanej w wybranych buforach zmiany nazwy 38 w odpowiedzi na „zakończenie instrukcji po wytworzeniu informacji.
Procesor 10 osiąga dobre wyniki poprzez przetwarzanie wielokrotnych instrukcji równocześnie w różnych jednostkach wykonawczych 20,22,24,26, 28 i 30. Zgodnie z tym każda instrukcja jest przetwarzana jako sekwencja stopni, każdy wykonywany równolegle w stopniach innych instrukcji. Taka technika jest nazywana „trybem potokowym. Instrukcja jest zwykle przetwarzana w sześciu stopniach, mianowicie ładowanie, wysyłanie, wykonywanie, kończenie i zapis zwrotny.
W stopniu ładowania jednostka sekwencyjna 18 daje selektywnie na wejściach (z pamięci podręcznej 14 instrukcji) jedną lub więcej instrukcji z jednego lub więcej adresów pamięci pamiętających sekwencję instrukcji omawianych dalej w połączeniu z jednostką rozgałęzienia 20 i jednostek sekwencyjną 18.
W stopniu dekodowania jednostka sekwencyjna 18 dekoduje do czterech ładowanych instrukcji.
W stopniu wysyłania jednostka sekwencyjna 18 wysyła selekcyjnie do czterech dekodowanych instrukcji do wybranych (w odpowiedzi na dekodowanie w stopniu dekodowania) jednostek wykonawczych 20,22, 24,26,28 i 30 po zachowaniu wejścia bufora zmiany nazwy dla każdego wyniku wysyłanej instrukcji (informacji argumentu operacji przeznaczenia). W stopniu wysyłania informacja argumentu operacji jest dostarczana do wybranej jednostki wykonawczej dla wysłania instrukcji. Procesor 10 wysyła instrukcje w kolejności zaprogramowanej sekwencj i.
W stopniu wykonywania jednostki wykonawcze wykonują wysłane instrukcje i dają na wyjściu wyniki (informację argumentu operacji przeznaczenia) ich operacji dla pamiętania wybranych wejść w buforach zmiany nazwy 34 i buforach zmiany nazwy 38, co zostanie omówione dalej. W ten sposób procesor 10 jest zdolny wykonywać instrukcje nie po kolei względem zaprogramowanej sekwencji.
W stopniu kończenia jednostka sekwencyjna 18 wskazuje, że instrukcja jest „zakończona, co omówiono dalej wpołączeniu z fig. 3-4. Procesor 10 „kończy instrukcje wkolejności zaprogramowanej sekwencji.
W stopniu zapisu zwrotnego jednostka sekwencyjna 18 kieruje kopiowanie informacji z buforów zmiany nazwy 34 i 38 do jednostek GPR 32 i FPR 36. Jednostka sekwencyjna 18 kieruje takie kopiowanie informacji zapamiętanej w wybranym buforze zmiany nazwy, jak zostanie omówione dalej w połączeniu z fig. 6-10. Podobnie w stopniu zapisu zwrotnego poszczególnej instrukcji procesor 10 aktualizuje dane w stanach architektonicznych w odpowiedzi na poszczególną instrukcję. Procesor 10 przetwarza poszczególne stopnie „zapisu zwrotnego instrukcji w kolejności zaprogramowanej sekwencji. Jak zostanie to omówione dalej w połączeniu z fig. 6-10, procesor 10 dobiera stopień kończenia instrukcji i stopień zapisu zwrotnego w szczególnych sytuacjach.
Każda instrukcja wymaga jednego cyklu urządzenia, aby zakończyć każdy ze stopni przetwarzania instrukcji. Pomimo tego niektóre instrukcje (np. instrukcje złożonej ustalonej pozycji, wykonywane prze jednostkę CFXU 26) mogą wymagać więcej niżjednego cyklu. Zgodnie z tym może wystąpić zmienne opóźnienie pomiędzy poszczególnym wykonaniem instrukcji i stopniami kończenia w odpowiedzi na zmianę czasu wymaganego do zakończenia poprzednich instrukcji.
Figura 2 przedstawia schemat blokowy jednostki FXUA 22 procesora 10. Jednostka FXUA 22 zawiera stanowiska rezerwacji oznaczone ogólnie przez 50a i 50b. Podobnie każda jednostka rozgałęzienia 20, jednostka FXUB 24, jednostka CFXu 26, jednostka LSU 28 i jednostka FPU 30 ma poszczególne stanowiska rezerwacji. Dla jasności operacja jest omawiana poni8
177 404 żej jedynie dlajednostki FXUA 22 i jej stanowiska rezerwacji, jak tworzenie przykładu operacji innych jednostek wykonawczych i ich poszczególnych stanowisk rezerwacji.
Każde ze stanowisk rezerwacji 50a-b jest zdolne do pamiętania informacji dla poszczególnych instrukcji wysyłanych z jednostki sekwencyjnej 18 dla wykonania przez jednostkę FXUA
22. Każde stanowisko rezerwacji zawiera poszczególne pole rejestracji przeznaczenia, pole A argumentu operacji, pole B argumentu operacji i pole kodu operacyjnego. Ponadto w znaczącym aspekcie zalecanego wykonania, każde stanowisko operacji rezerwacji zawiera ponadto poszczególne pole dopuszczenia wykonania (EOK).
W polu rejestracji przeznaczenia stanowisko rezerwacji identyfikuje co najmniej jeden rejestr przeznaczenia (jak wyszczególniony przez jednostkę sekwencyjną. 18) dla rezerwacji poszczególnej instrukcj i stanowiska. Podobnie w poszczególnym argumencie A operacj i i polach B argumentów operacji, stanowisko rezerwacji pamięta informację argumentu operacji źródłowej (zjednostki PGR 32 buforów zmiany nazwy 34, jednostki FXUB 24, jednostki CFXU 26 lub jednostki LSU 28) dla rezerwacji poszczególnej instrukcji stanowiska. W polu kodu operacyjnego stanowisko rezerwacji pamięta kod operacyjny (jak wyszczególniony przez jednostkę sekwencyjną 18) wskazujący operację wykony waiąprzezjednostkę FXUA 22 na informacji argumentu operacji źródłowej w odpowiedzi na poszczególną instrukcję stanowiska rezerwacji.
W odpowiedzi na sygnały z logicznego układu sterującego 56, logiczny układ wykonawczy 54 daje na wej ściach informacj ę argumentu operacj i źródłowej z argumentu A operacj i stanowiska rezerwacji i pól B argumentu operacji oraz wykonuje operację, wskazywaną przez kod operacyjny zapamiętany przez stanowisko rezerwacji. Informacja uzyskana z takiej operacji jest podawana na wyjściu z logicznego układu wykonawczego 54 do buforów zmiany nazwy 34, jednostki FXUB 24, jednostki CFXU 26 i jednostki LXU 28. Taka informacja jest pamiętana w wybranym z buforów zmiany nazwy 34. W odpowiedzi na rejestr przeznaczenia identyfikowany przez wyjście multipleksera 58, zapamiętana informacja jest związana ( w wybranym buforze zmiany nazwy) z jednąjednostką GPR 32.
Stanowisko rezerwacji pamięta następnie informację EOK wyszczególnioną przez jednostkę sekwcncyj ną 18 wjego polu EOK. Taka informacja EOK przystosowuje się do pewnych sytuacji, w których procesor 10 opóźnia wykonanie wykonawczych instrukcji szeregowych. Wykonanie ustawienia w szeregu jest technika opóźniania wykonywania instrukcji w wielokrotnym trybie potokowym dla procesorów wykonawczych nie po kolei, takich jak procesor 10. W pierwszej sytuacji, w której procesor 10 opóźnia wykonanie wykonawczych instrukcji szeregowych, instrukcja nie ma być wykonywana spekulatywnie. W drugiej sytuacji, w której procesor 10 opóźnia wykonanie wykonawczej instrukcji szeregowej, instrukcjajest opóźniana aż cała informacja argumentu operacji źródłowej stanie się dostępna i ważna.
Odnośnie pierwszej sytuacji, w której instrukcja nie ma być wykonywana spekulatywnie, procesor 10 zwykle wykonuje instrukcje spekulatywnie tak. że instrukcje są wykonywane nie po kolei względem zaprogramowanej sekwencji w strumieniu instrukcji. Zgodnie z tym wyniki instrukcji (informacja argumentu operacji przeznaczenia) nie sąkoniecznie dostępne w kolejności zaprogramowanej sekwencji. Jednak procesor 10 zapisuje wyniki instrukcji z powrotem do rejestrów architektonicznych (np. jednostki GPR 32 i jednostki FPR 36) w kolejności zaprogramowanej sekwencji instrukcji. Z tego powodu procesor 10 zawiera bufory zmiany nazwy 34 i 38 dla pośredniego pamiętania wyników instrukcj i aż do właściwego momentu (tj. zakończenia wykonywania wszystkich poprzednich instrukcj i bez warunków wyjątkowych) dla zapisu zapamiętanych pośrednio wyników z powrotem w rejestrach architektonicznych.
Pomimo tego pewne instrukcje dzialająnajednostki SPR 40 (fig. 1) gdzie wyniki instrukcji są wpisywane bezpośrednio do jednostek SPR 40 bez pośredniego pamiętania w buforach zmiany nazwy. Przekładem takiej instrukcji jest instrukcja Move To, w której jednostka CFXU 26 przesuwa informację do jednej zjednostek SPR 40 zjednej zjednostek GPR 32. Jak pokazano na fig. 1, j ednostka CFXU 26 j est dołączona do j ednostek SPR 40. Instrukcj a Move To natychmiast aktualizuje jednąz jednostek SPR 40. W innym przykładzie wynik instrukcji Store jest zapisany
177 404 bezpośrednio w lokacji pamięci podręcznej 16 danych bez pośredniego pamiętania w buforach zmiany nazwy.
Procesor 10 nie wykonuje spekulatywnie takich instrukcji (gdzie wyniki instrukcji są zapisane bezpośrednio do rejestru architektonicznego lub lokacji pamięci bez pamiętania pośredniego w buforach zmiany nazwy), tak że procesor 10 jest zdolny do uzyskania dokładnych przerwań i dokładnych wyjątków. Ponadto, jeżeli wyniki instrukcji są wpisane bezpośrednio do rejestru architektonicznego lub lokacji pamięci bez pośredniego pamiętani w buforach zmiany nazwy, takie instrukcje sąprzetwarzane bez stopnia zapisu zwrotnego. Zgodnie z tym, w celu zapewniania zakończenia w kolejności i zapisu zwrotnego, procesor 10 opóźnia wykonanie takich instrukcji aż do zakończenia wszystkich poprzednich instrukcji. Odnośnie drugiej sytuacji (gdzie instrukcja jest opóźniana podczas wykonywania, aż cała jeje informacja argumentu operacji źródłowej stanie się dostępna i ważna), fig. 3, stanowisko rezerwacji zapamiętuje czasowo informację dla poszczególnej instrukcji, której informacja argumentu operacji źródłowej nie jest dostępna w czasie wysyłania instrukcji z jednostki sekwencyjnej 18. W odpowiedzi na informację argumentu operacji źródłowej stającej się dostępną/jednostki wykonawczej, stanowisko rezerwacji daje na wejściu i pamięta taką informację argumentu operacji źródłowej. We właściwym momencie stanowisko rezerwacji zgłasza z wyprzedzeniem taką informację argumentu operacji źródłowej dla logicznego układu wykonawczego 54.
Większość instrukcji określa jedną lub więcej jednostek GPR 32 i FPR 36 jako argument operacji źródłowej. Zgodnie z tym stanowiska rezerwacji zawierają układ do zgłaszania z wyprzedzeniem informacji z jednostek wykonawczych.
Pomimo tego stanowiska rezerwacji nie zawierają układu do zgłaszania z wyprzedzeniem informacji z innego rodzaju argumentu operacji źródłowej, takiego jak rejestr CA 42 lub jednostka SPR 40. To jest z powodu tego, że wymiar i koszt takiego układu nie jest dostosowany przez częstotliwość instrukcji, które określają takie zgłaszane z wyprzedzeniem argumenty operacji źródłowej. Zamiast tego, procesor 10 opóźnia wykonanie instrukcj i określonych takimi zgłaszanymi z wyprzedzeniem argumentami operacji źródłowej przynajmniej do zakończenia wszystkich poprzednich instrukcji. W odpowiedzi na zakończenie wszystkich poprzednich instrukcji, nie zgłaszane z wyprzedzeniem argumenty operacji źródłowej sąodczytywane z określonego rejestru architektonicznego (np. jednostki SPR 40). Przykładami takich instrukcji są( 1) rozszerzona instrukcja arytmetyczna, która odczytuje rejestr CA 42 i (2) i instrukcja Move From, która przesuwa informację z jednej jednostki SPR 40 do jednej jednostki GPR 32.
Podsumowując, procesor 10 opóźnia wykonanie wykonawczej instrukcji szeregowej przynajmniej do zakończenia wszystkich poprzednich instrukcji w dwóch sytuacjach. W pierwszej sytuacji instrukcja nie ma być wykonana spekulatywnie. W drugiej sytuacji instrukcja określa co najmniej jeden argument operacji źródłowej dla której procesor 10 nie zawiera układu zgłaszania z wyprzedzeniem. Korzystnie takie sytuacje są przystosowane przez jednostkę sekwencyjną 18, określającą informację EOK pamiętaną w stanowisku rezerwacji.
Jeżeli instrukcja jest poddawana wykonaniu z ustawieniem w szeregu, wówczas jednostka sekwencyjna 18 zeruje bit EOK (w informacji EOK zapamiętanej w polu EOK stanowiska rezerwacji) do logicznego, 0, gdyż instrukcjajest wysyłana do jednostki FXUA 22. Przez zerowanie bitu EOK do logicznego 0, jednostka sekwencyjna zapobiega wykonaniu przez jednostkę FXUA 22 instrukcji, nawet jeżeli instrukcja jest inaczej gotowa do wykonania. Zgodnie z tym jednostka FXUA 22 wykonuje taką wykonawczą instrukcję szeregową, tylko w odpowiedzi na jednostkę sekwencyjną 18 wysyłającą sygnał przez linię 60 co omówiono poniżej.
W wyniku porównania, jeżeli instrukcja nie jest poddawana wykonaniu z ustawieniem w szeregu, wówczas jednostka sekwencyjna 18 ustawia bit EOK na logicznej 1 gdy instrukcjajest wysyłana do jednostki FXUA 22. W wyniku ustawienia bitu EOK na logicznej 1, jednostka sekwencyjna 18 umożliwia jednostce FXUA 22 wykonanie instrukcji, gdy tylko informacja argumentu operacji źródłowej instrukcji jest dostępna i ważna.
Figura 3 przedstawia schemat blokowy jednostki sekwencyjnej 18. Jak zostanie omówione poniżej, w stopniu ładowaniajednostka sekwencyjna 18 daje na wejściu selektywnie do czterech
177 404 instrukcji z pamięci podręcznej 14 instrukcji i pamięta takie instrukcje w buforze instrukcji 70. W stopniu dekodowania logiczny układ dekodowania 72 daje na wejściach i dekoduje do czterech ładowanych instrukcji z bufora instrukcji 70. W stopniu wysyłania logiczny układ wysyłania 74 selektywnie wysyła do czterech dekodowanych instrukcji do wybranych (w odpowiedzi na dekodowanie w stopniu dekodowania) spośród jednostek wykonawczych 20, 22, 24, 26, 28 i 30.
Figura 4 przedstawia organizację bufora 76 ponownego uporządkowania dlajednostki sekwencyjnej 18. Jak pokazano na fig. 4, bufor 76 ponownego uporządkowania ma szesnaście wejść oznaczonych jako numery buforowe 0-15. Każde wejście ma pięć pól pierwotnych, mianowicie pole „typu instrukcji“, pole „liczby przeznaczeń GPR“, pole „liczby przeznaczeńFPR', pole „zakończenia“ i pole „warunku wyjątkowego'. Ponadto pole typu instrukcji ma podpole j jednostki wykonawczej' i podpole EOK.
Wracając do fig. 3, gdy logiczny układ wysyłania 74 wysyła instrukcję do jednostki wykonawczej jednostka sekwencyjna 18 przyporządkowuje wysłaną instrukcje do odpowiedniego wejścia bufora 76 ponownego uporządkowania. Jednostka sekwencyjna 18 przyporządkowuje wejścia bufora 76 ponownego uporządkowania do wysyłanych instrukcji na podstawie „pierwszy zgłoszony - pierwszy obsłużony' i w sposób rotacyjny, tak, że jednostka sekwencyjna 18 przyporządkowuje wejście 0, po którym następują sekwencyjne wejścia 1-15, a następnie ponownie wejście 0. Wówczas gdy wysyłana instrukcjajest przyporządkowana odpowiedniemu wejściu bufora 76 ponownego uporządkowania logiczny układ wysyłania 74 daje na wyjściach informację dotyczącą wysyłanej instrukcji w celu pamiętania w różnych polach i podpolach odpowiedniego wejścia w buforze 76 ponownego uporządkowania.
Dla przykładu, na wejściu 0 z fig. 4 bufor 76 ponownego uporządkowania wskazuje, że instrukcjajest wysyłana do jednostki FXUA 22. Ponadto wejście 0 wskazuje, że wysyłana instrukcja jest wykonana szeregowo, tak że EOK=0 i procesor 10 ma opóźniać wykonanie wysyłanej instrukcji przynajmniej do czasu zakończenia wszystkich poprzednich instrukcji. Również na wejściu 1 bufor 76 ponownego uporządkowania wskazuje, że kolejna instrukcja jest wykonywana szeregowo, tak że EOK=0
W wejście 0 wskazuje dalej, że wysłana instrukcja ma jeden rejestr przeznaczenia GPR (tak, że „liczba GPR przeznaczeń' = 1), ma zero rejestrów przeznaczenia FPR (tak, że „liczba FPR przeznaczeń' = 0, nie jestjeszcze zakończona (tak, że „zakończona' = 0) i nie spowodowała jeszcze warunku wyjątkowego (tak, że „warunek wyjątkowy' = 0).
Wówczas gdy jednostka wykonawcza wykonuje wysyłaną instrukcję, jednostka modyfikuje wejście związane z instrukcją w buforze 76 ponownego uporządkowania. Bardziej szczegółowo, w odpowiedzi na zakończenie wykonania wysyłanej instrukcji, jednostka wykonawcza wykonawcza modyfikuje „zakończone' pole wejścia (tak, że „zakończone' = 1). Jeżeli jednostka wykonawcza napotyka warunek wyj ątkowy podczas wykonywania wysłanej instrukcj i, j ednostka wykonawcza modyfikuje pole „warunku wyjątkowego' wejścia (tak, że „warunek wyjątkowy' = 1). Wracając ponownie do fig 3 wejścia bufora 76 ponownego uporządkowania są odczytywane przez logiczny układ zakończenia 80 i logiczny układ 82 warunku wyjątkowego jednostki sekwencyjnej 18. Ponadto wejścia bufora 76 ponownego uporządkowania są odczytywane przez wykonawczy układ logiczny 84 ustawiania w szeregu dlajednostki sekwencyjnej 18. W odpowiedzi na pole „warunku wyjątkowego' bufora 76 ponownego uporządkowania, logiczny układ 82 warunku wyjątkowego obsługuje warunki wyjątkowe napotykane podczas wykonywania wysyłanych instrukcji.W odpowiedzi na „zakończone' pola i pola „warunku wyjątkowego' bufora 76 ponownego uporządkowania, logiczny układ zakończenia 80 daje na wyjściach sygnały dla logicznego układu wysyłania 74, dla logicznego układu wykonawczego 84 ustawiania w szeregu i dla bufora 76 ponownego uporządkowania. Poprzez te sygnały logiczny układ zakończenia 80 wskazuje „zakończenie' instrukcji w kolejności zaprogramowanej sekwencji. Logiczny układ zakończenia 80 wskazuje „zakończenie' instrukcji, jeżeli spełnia ona następujące warunki: warunek 1 - Jednostka wykonawcza (do której jest wysyłana instrukcja) kończy wykonanie instrukcji (tak, że „zakończony' = 1 na odpowiednim wejściu instrukcji w buforze 76 ponownego uporządkowania).
ΠΊ 404
Warunek 2 - Nie zostały napotkane żadne warunki wyjątkowe w związku z żadnym stopniem przetwarzania instrukcj i (tak, że „warunek wyj ątkowy“=0 na odpowiednim wej ściu instrukcji w buforze 76 ponownego uporządkowania) i Warunek 3 - Dowolna poprzednio wysłana instrukcja spełnia warunek 1 i warunek 2.
W odpowiedzi na informacje w buforze 76 ponownego uporządkowania, logiczny układ wysłania 74 określa właściwą liczbę dodatkowych instrukcji, które mają być wysłane.
W odpowiedzi na sygnały z logicznego układu zakończenia 80, logiczny układ wykonawczy 84 daje na wyjściach sygnał do jednostki FXUA 22 przez linię 60. Jeżeli wysłana instrukcja dla jednostki FXUA 22 m a odpowiedni bit EOK ( w polu „typu instrukcji“ odpowiedniego wejścia instrukcji w buforze 76 ponownego uporządkowania), zerowany do logicznego 0, wówczas logiczny układ wykonawczy 84 ustawiania w szeregu daje na wyjściach sygnał poprzez linię 60 w odpowiedzi na „zakończenie“ wszystkich instrukcji poprzedzających wysłaną instrukcję. Jednostka FXUA 22 wykonuje takąwysłaną instrukcję tylko w odpowiedzi na logiczny układ wykonawczy 84 ustawiania w szeregu, wysyłający sygnał linia 60, gdy logiczny układ wykonawczy 84 ustawiania w szeregu daje na wyjściu sygnał przez linię 60, tak, ze wysłana instrukcja (mająca odpowiedni bit EOK wyzerowany do logicznego 0) będzie najstarszą instrukcją w stanowiskach rezerwacji 50a-b jednostki FXUA 22 ponieważ instrukcje są „kończone“ w kolejności zaprogramowanej sekwencji.
Podobnie logiczny układ wykonawczy 84 ustawiania w szeregu selektywnie daje na wyjściu sygnały dlajednostek wykonawczych 20,24,26,28 i 30 poprzez linie 86,88,90,92 i 94, które są do nich odpowiednio dołączone.
Figura 5a-b przedstawia różne stopnie instrukcji. Omawiając fig. 5a, wykonanie (cykl 6) szeregowej instrukcji wykonawczej INST n+1 (np. instrukcji Move To lub instrukcji Move From) jest opóźnione aż do zakończenia wszystkich poprzednich instrukcji (np. po cyklu 5 poprzedniej instrukcji INST n). Pomimo tego procesor 10 korzystnie nie opóźnia wysyłania (cykl 3) lub wykonywania (cykl 4) instrukcji INST n+2, która jest poprzedzona przez szeregową instrukcję wykonawczą INST n+1. W ten sposób procesor 10 osiąga wysyłanie instrukcji (takich, jak INST n+2), które sąpoprzedzone przez szeregową instrukcję wykonawczą (taką, jak INST n+1). Równieżjednostka wykonawcza procesora 10 jest zdolna wydawać instrukcje nie po kolei ze stanowisk rezerwacji jednostek wykonawczych do logicznego układu wykonawczego (np. logicznego układu wykonawczego 54 z fig. 2) nawet jeżeli najstarsza bieżąca instrukcja w stanowisku rezerwacji jednostki wykonawczej jest poddawana ustawianiu w szeregu.
Procesor 10 z przykładu wykonania wynalazku uzyskuje lepsze parametry niż znane rozwiązanie. Jak pokazano na fig. 5b zgodnie z jedną taką alternatywną techniką wysyłania (cykl 8) instrukcji INST i + 2 jest opóźniony w odpowiedzi na dekodowanie (cykl 2) instrukcja INST i+1 podlega wykonaniu serializacji. W takiej alternatywnej technice instrukcja wysłania (cykl 8) instrukcji INST i+2 jest wykonana tylko po „zakończeniu“ wszystkich wcześniej wysłanych instrukcji (np. po cyklu 7 poprzedniego wykonania serializacji instrukcji INST i+1). Wadą takiego znanego rozwiązania jest to, że wykonanie jest opóźnione dla instrukcji (takiej jak INST i+2), która jest poprzedzona wykonaniem serializowanej instrukcji (takiej jak INST i+1).
Jak przedstawiono poprzednio procesor 10 osiąga ciągłe wysyłanie instrukcji, które sąpoprzedzone wykonaniem instrukcji szeregowych. Instrukcja Idź Z jest wykonaniem instrukcji szeregowej i dlatego korzysta z techniki szeregowej. Procesor 10 zawiera ponadto układy dla wysyłania wyników (argument informację punktu przeznaczenia) instrukcji IdźZ dla zapamiętania w wybranym buforze przemianowania przed powtórnym zapisem argumentu informacj i punktu przeznaczenia do jednej z jednostek GPR 32.
Procesor 10 zabezpiecza takie przemianowanie niezależnie od tego, czy rejestr przeznaczenia instrukcji Idź Z jest jedną z jednostek GPR 32. W ten sposób procesor 10 wykorzystuje swoje istniejące układy przesuwu w przód swoich stacji rezerwowanych łącznie z układami wyszukującymi bufory przemianowania dla dokładnego dopasowania argumentu informacji o punkcie przeznaczenia (instrukcji Idź Z) z rejestrem źródła instrukcji wysłanej po instrukcji Idź Z, zgodnie z tym inne instrukcje poprzedzone inst^i^d^iej^Jdź Z mogą być wysyłane po pewnym cza12
177 404 sie po wysłaniu instrukcji Idź Z bez użycia takich układów dla instrukcj i Idź Z inne instrukcj e poprzedzone przez instrukcję Idź Z nie mogłyby być wysłane aż do „zakończenia instrukcji Idź Z ponieważ inne instrukcje mogłyby wymagać (jak ich źródło informacji argumentowej) punktu przeznaczenia argumentu instrukcji o punkcie przeznaczenia instrukcji Idź Z.
W innym przykładzie wykonania procesor 10 umieszcza w potoku instrukcję wysyłania odpowiadając na instrukcję ładowania i dekodowania odnośnych wyjątków (IFDRE) w korzystny sposób. Procesor 10 wykrywa instrukcję ładowania lub dekoduje odnośne wyjątki na etapie ładowania lub etapie dekodowania jeżeli warunek wyjątkowości jest całkowicie wykrywalny z instrukcji i stanu procesora 10. Przykładami takich instrukcji ładowania lub dekodowania odnośnych wyjątków są instrukcje dostępu błędnego odwołania się do strony instrukcji dostępu naruszenia ochrony pamięci, uprzywilejowana instrukcja naruszenia i instrukcje nielegalne.
W odpowiedzi na wykrycie takiej instrukcji ładowania lub dekodowania określonego wyjątku, jednostka sekwencyjna 18 wysyła instrukcję IFDRE do stacji rezerwacji jednostki wykonawczej,, ale z bitem EOK wyzerowanym do logicznego 0, jak omówiono dodatkowo powyżej w powiązaniu z figurami 2-4. Ponadto jednostka sekwencyjna 18 zapamiętuje wskazanie warunków IFDRE przez ustalenie „wyjątek = 1 (jednocześnie utrzymując „skończone= 0) w instrukcji wywołanej IFDRE związanej z wejściem do bufora zmieniającego uporządkowanie 76. Taka wskazówka identyfikuje instrukcje jako instrukcje wywołaną IFDRE.
Jak omówiono dodatkowo powyżej w powiązaniu z figurami 2-4 zerując bit do logicznego 0 jednostka sekwencyjna 18 uniemożliwiająca jednostce wykonawczej wykonanie instrukcji wysyłania nawetjeżeli w innym przypadku instrukcj a byłaby gotowa do wysłania. Zgodnie z tym jednostka wykonawcza wykonuje takie instrukcje tylko w odpowiedzi na wyjście sygnału z jednostki sekwencyjnej 18 przez odpowiednio dołączonąjednąz linii 60, 86, 88,90, 92, lub 94, jak omówiono dodatkowo powyżej w powiązaniu z figurami 2-4.
W odpowiedzi na zakończenie wszystkich instrukcji poprzedzających instrukcję wywołaną IFDRE jednostka sekwencyjna 18 wykonuje raczej ładowanie lub dekodowanie odpowiednich wyjątków niż wysyłanie sygnału do jednostki wykonawczej przez odpowiednio dołączonąjednąz linii 60, 86, 88, 90, 92, lub 94. Wiec instrukcja wywołana IFDRE nigdy nie jest wykonywana przez jednostkę wykonawczą.Jednostka adresująca sekwencyjnie 18 rozpoznaje instrukcje jako instrukcje wywołaną IFDRE w odpowiedzi na „wyjątek = 1 i „skończenie = 0 w wywołana IFDRE związanym instrukcj ą wejściem bufora zmieniającego uporządkowanie 76.
W ten sposób procesor 10 porządkuje i przyspiesza instrukcje wysyłania prze logikę wysyłającą74 (fig 3) z prędko ściąkrytycznąobwodów w procesorze superskalarnym. Zgodnie z tym procesor 10 osiąga lepsze parametry niż w rozwiązaniach znanych. Zgodnie z jedną z takich znanych technik procesor nigdy nie wysyła instrukcj i wywołanych IFDRE. Taka technika powoduje komplikację i spowolnienie wysyłania, ponieważ dla każdej instrukcji procesor musi wykryć instrukcj ę ładowania i dekodowania związaną z warunkiem wyj ątku przed określeniem, czy wysłać instrukcję. Na przykład w takiej technice procesor określa, czy wysłać n-ta instrukcję w odpowiedzi na ustalenie czy n-ta instrukcja łub jedna z wcześniejszych n-1 instrukcji ma warunek ładowania lub dekodowania odpowiedniego wyjątku.
Dla porównania w korzystnym przykładzie wykonania wynalazku logika wysyłająca 74 (fig. 3) działa niezależnie od warunków ładowania lub dekodowania odpowiedniego wyjątku. Nawet po wyznaczeniu do końcowego wysłania instrukcji do wykonaniajednostka sekwencyjna 18 określa czy warunek IFDRE istnieje dla instrukcji. Jeżeli jednostka sekwencyjna 18 określa istnienie warunku IFDRE dla instrukcji, to jednostka adresująca sekwencyjnie 18 wysyła wskazówkę warunku IFDRE dla zakresu wykonania instrukcji przezjednostkę wykonawczą. Dokładniej, w odpowiedzi na wykrycie przez jednostkę sekwencyjnie 18 istnienia warunku IFDRE dla instrukcji, jednostka sekwencyjna 18 wysyła taką wskazówkę podczas bieżącego wysyłania przez (1) ustawienie „wyjątek = 1 (jednocześnie utrzymując „skończone = 0) w instrukcji wywołanej IFDRE związanej z wejściem do zmienionego bufora 76 i (2) zerując bit EOK w instrukcji wywołanej IFDRE stacji rezerwacji do logicznego 0
ΠΊ 404
Jest to korzystne ponieważ, po zdecydowaniu o wysłaniu instrukcji jest niepraktyczne odwracać skutek takiej decyzji i w końcu nie wysyłać instrukcji. Ponadto w czasie cyklu wysyłania są wykonywane dodatkowe operacje po decyzji o wysłaniu instrukcji. Zgodnie z tym, procesor 10 nie potrzebuje wykrywać warunku wyjątku przed określeniem, czy wysłać każdą instrukcję, jest to szczególnie korzystne dlajednostki adresującej sekwencyjnie 18 wysyłającej wiele instrukcji podczas jednego cyklu procesora 10.
Figura 6 przedstawia organizację zmiany bufora 76, w którym są cztery instrukcje jako końcowe wykonanie („skończony = 1) podczas tego samego cyklu procesora 10. Figura 7 przedstawia różne etapy czterech instrukcji z fig. 6. Figury 8 a-d przedstawiają organizację buforów przemianowania 34 procesora 10.
Odnosząc się do figur 6-8, opóźniony zapis jest niezależny od instrukcji zakończenia tak, że etap „opóźniony zapis“ instrukcji wykonanej przez procesor 10 jest oddzielony od instrukcji etapu zakończenia. Korzystnie, przez oddzielenie opóźnionego zapisu od zakończenia w ten sposób procesor 10 uzyskuje sprawne działanie wykorzystując mniej portów opóźnionego zapisu pomiędzy buforami przemianowania rejestrami strukturalnymi. Na przykład, jak pokazano na fig. 1, procesor 10 zawiera dwa porty opóźnionego zapisu pomiędzy buforami przemianowania 3 8 i jednostkę GPR 32, i dwa porty opóźnionego zapisu pomiędzy buforami przemianowania 3 8 i jednostkę FPR 36. Przy mniejszej liczbie portów fizyczne wymiary buforów przemianowania 34 i 38 i reeestrów strukturalnych 32 i 3(5 są zmniejszone. Ponadto log:i^^ zakończenia 80 (fig. 3) jest bardziej uporządkowana, tak że procesor 10 szybciej określa czy określona instrukcja może być „zakończona“ podczas bieżącego cyklu.
Procesor 10 może „zakończyć“ do czterech instrukcji w cyklu. Także każda instrukcja może mieć do dwóch argumentów punktów przeznaczenia. Zgodnie z tym, jeśli procesor 10 nie zabezpiecza rozdziału opóźnionego zapisu od zakończenia, procesor 10 potrzebowałby osiem portów opóźnionego zapisu (np. pomiędzy buforami przemianowania 34 i jednostka GPR 32) dla wykonania czterech instrukcj i w określonym cyklujeśli każda z czterech instrukcji ma dwa argumenty punktu przeznaczenia. Jest tak ponieważ „zakończenie“ instrukcji wymagałoby aby port opóźnionego zapisu był dostępny dla każdego jej argumentu punktu przeznaczenia dla skopiowania z bufora przemianowania do związanego rejestru strukturalnego.
Przy mniejszej liczbie portów opóźnionego zapisu, weryfikacja dostępności portów opóźnionego zapisu staje się bardziej złożona, gdy więcej instrukcji jest przewidzianych do wpisania podczas tego samego cyklu. Wynika to z tego, że dostępność portów opóźnionego zapisu dla poszczególnych instrukcji w czasie określonych cykli zależy od liczby portów opóźnionego zapisu wykorzystywanych przez poprzednie instrukcje podczas tego samego cyklu lub poprzednich cykli.
Korzystnie, przez oddzielenie opóźnionego zapisu od zakończenia logika zakończenia 80 fig. 3) procesora 10 jest bardziej uporządkowana. Jest tak ponieważzakończenie instrukcji zależy od poniższych warunków:
Warunek 1 - Jednostka wykonawcza (do której instrukcja jest wysyłana) kończy wykonanie instrukcji;
Warunek 2 - Nie było żadnych wyjątków w połączeniu z żadnym etapem przetwarzania instrukcji; i
Warunek 3 - Każda poprzednio wysłana instrukcja spełnia warunek 1 i warunek 2.
Przez rozdzielenie zakończenia od opóźnionego zapisu procesor 10 kopiuj e argument informacji punktu przeznaczenia zakończonej instrukcji z bufora przemianowania dla zapamiętania w rejestrach strukturalnych podczas określonego cyklujeżeli port opóźnionego zapisujest dostępny podczas cyklu. Jeżeli port opóźnionego zapisujest niedostępny podczas cyklu to procesor 10 kopiuje argument informacji punktu przeznaczenia zakończonej instrukcji z bufora przemianowania do rejestru strukturalnego podczas późniejszego cyklu gdy port opóźnionego zapisujest dostępny.
Odnosząc się do fig 6 bufor zmieniający uporządkowanie 76 pamięta informacje dla czterech instrukcji kończących wykonanie podczas tego samego cyklu procesora 10. Fig 7 pokazuje różne etapy czterech instrukcji INST x, INST x+1, INST x+2, INST x+3, które są odpowiednio
177 404 związane z numerami bufora zmieniającego uporządkowanie 7, 8, 9 i 10 z fig. 6. Zgodnie z tym INST xmajeden argument punktu przeznaczenia (liczba punktów przeznaczenia GPR = 1)także INST x+1 ma jeden argument punktu przeznaczenia (liczba punktów przeznaczenia GPR =1). Dla porównania INST x+2 ma dwa argumenty punktu przeznaczenia (liczba punktów przeznaczenia GPR = 2). Podobnie INST x+3 ma dwa argumenty punktu przeznaczenia (liczba punktów przeznaczenia GpR = 2). Jak pokazano na fig. 7 każda z instrukcji INST x, INST x+1, INST x+2, INST x+3, kończy wykonanie na końcu cyklu 4.
Figury 8a-d przedstawiają, organizację buforów zmiany nazwy 34 procesora 10. Dla jasności działanie jest poniżej omawiane tylko w ustalonych punktach buforów zmiany nazwy 34, które ilustrujądziałanie punktów zmiennopozycyjnych buforów zmiany nazwy 38. Jak pokazano na fig. 8a-d bufory zmiany nazwy 34 zawierająodpowiednio dwanaście buforów przemianowania odpowiednio oznaczonych jako bufory 0-11. Jednostka sekwencyjna 18 przydziela bufor zmiany nazwy 0 -11 dla wysyłanych instrukcj i na -zasadzie pierwsza wchodzi - pierwsza wychodzi i w sposób rotacyjny, tak że jednostka sekwencyjna 18 przydziela bufor zmiany nazwy 0, następnie kolejno bufory zmiany nazwy 1 -11, a następnie znowu bufor zmiany nazwy 0.
Odnosząc się do fig. 8a-d bufor zmiany nazwy 2 jest przydzielony do zapamiętania argumentu instrukcji punktu przeznaczenia dla instrukcji INST x bufor zmiany nazwy 3 jest przydzielony do zapamiętania argumentu informacji punktu przeznaczenia dla instrukcji INST x+l. Ponieważ instrukcja INST x+2 ma dwa argumenty punktu przeznaczenia nie dwa bufory zmiany nazwy 4 i 5 sąprzydzielone do zapamiętania argumentu instrukcji dla instrukcji INST x+2. Podobnie, obydwa bufory zmiany nazwy 6 i 7 przydzielone są do przechowywania instrukcji o argumentach operacji przeznaczenia dla instrukcji INST X+3.
Na fig. 8a pokazano status wskaźnika przyporządkowania 80, wskaźnika zapisu wstecznego 82 i wskaźnika kompletacji 84 na początku cykli 4 i 5 z fig. 7.
Procesor 10 zachowuje takie wskaźniki do sterowania odczytem z i zapisem do buforów zmiany nazwy. Procesor 10 zachowuje wskaźnik przyporządkowania 80 w celu wskazania czy bufor zmiany nazwy jest przyporządkowany do konkretnej instrukcji. Jak widać na fig. 8a, wskaźnik przyporządkowania 80 wskazuje bufor zmiany nazwy 8, wskazując tym samym, że bufor zmiany nazwy 8 jest następnym buforem zmiany nazwy odstępnym do przyporządkowania instrukcji.
Ważne jest to, że procesor 10 nadal zachowuje wskaźnik zapisu wstecznego 82 w celu wskazania czy bufor zmiany nazwy (poprzednio przyporządkowany konkretnej instrukcji) jest dostępny do ponownego przyporządkowania innej instrukcji. Jak widać na fig. 8a, wskaźnik zapisu wstecznego 82 wskazuje bufor zmiany nazwy 2,. wskazując tym samym, że bufor zmiany nazwy 2 jest następnym buforem zmiany nazwy, z j akiego procesor 10 skopiuje informacje na temat operanda przeznaczenia (zapamiętane w polu „informacji bufora zmiany nazwy na fig. 8a) do jednej zjednostek GPR 32 (zgodnie z polem „numer rej estru bufora zmiany nazwy z fig. 8a).
W związku z tym, procesor 10 zmienia wskaźnik zapisu wstecznego 82 (po buforze zmiany nazwy przyporządkowanym do konkretnej instrukcji) w reakcji na kopiowanie przez procesor 10 wyniku (informacja o operandzie przeznaczenia) konkretnej instrukcji z bufora zmiany nazwy do pamięci w rejestrze architektury. W ten sposób procesor 10 rezerwuje przyporządkowany bufor zmiany nazwy dla zapamiętania wyniku (informacja o operandzie przeznaczenia) konkretnej instrukcji do czasu skopiowania przez procesor 10 wyniku do rejestru architektury. Procesor 10 przechowuje również wskaźnik kompletacji 84 w celu wskazania (buforowi zmiany nazwy przydzielonemu poprzednio do konkretnej · instrukcji) czy konkretna instrukcji spełnia następujące warunki:
Warunek 1 - jednostka wykonawcza (do której jest wysyłana instrukcja) kończy realizację instrukcji;
Warunek 2 - nie napotkano warunków wyjątkowych związanych z którymś z etapów przetwarzania instrukcji;
oraz
Warunek 3 - dowolna wysyłana instrukcja spełnia Warunek 1 i Warunek 2.
177 404
Jak widać na fig. 8a, wskaźnik kompletacji 84 wskazuje bufor zmiany nazwy 2, wskazując tym samym, że bufor zmiany nazwy 2 jest następnym buforem zdolnym do spełnienia Warunków 1,2 i 3. Ważne jest to, że procesor 1- przechowuje wskaźnik kompletacji 84 niezależnie od tego czy wynik instrukcji jest kopiowany z bufora zmiany nazwy do pamięci w rej estrze architektury.
W związku z tym, „pozycje zmiany nazwy“ można zdefiniować jako bufor zmiany nazwy wskazany przez wskaźnik kompletacji 84 i jego następne bufory zmiany nazwy, które poprzedzają bufor zmiany nazwy wskazany przez wskaźnik przyporządkowania 80. „Pozycje zapisu wstecznego“ można zdefiniować jako bufor zmiany nazwy wskazany przez wskaźnik zapisu wstecznego 82 i jego następne bufory zmiany nazwy poprzedzające bufor zmiany nazwy wskazany przez wskaźnik kompletacji 84. W pozycjach zapisu wstecznego przechowywane są wyniki instrukcji, które są „zakończone“, ale których wyniki nie zostały skopiowane z buforów zmiany nazwy do rejestrów architektury, jak, na przykład, ze względu na niedostępność portów zapisu dla rejestrów architektury.
Koncepcyjnie pozycje zapisu wstecznego znajdują się pomiędzy pozycjami zmiany nazwy a rejestrami architektury. Korzystnie, wynik może ominąć pozycje zapisu wstecznego i i zostać zapisany bezpośrednio do rejestrów architektury o ile port zapisu wstecznego jest dostępny na etapie kompletacji. Ponadto, podobnie jak pozycje zmiany nazwy, procesor 10 przetwarza pozycje zapisu wstecznego na informacje wyjściowe do jednostki wykonawczej w tych sytuacjach, w których jednostka wykonawcza realizuje instrukcję określoną w rejestrze architektury związanym z taką informacją.
Przykładowo, na fig. 8b pokazano status wskaźnika przyporządkowania 80, wskaźnika zapisu wstecznego 82 i wskaźnika kompletacji 84 na początku cyklu 6 z fig. 7. Jak widać na fig. 8b, wskaźnik przyporządkowania 80 nie uległ zmianie ponieważ mikroprocesor 10 nie wysłał dodatkowych instrukcji. Dla porównania, wskaźnik kompletacji 84 zmienił się z rejestru zmiany nazwy numer 2 na rejestr zmiany nazwy numer 8, wskazując tym samym zakończenie podczas cyklu 5 czterech instrukcji INST x, INST x+1, INST x+2, i INST x+3 mających w sumie sześć operandów przeznaczenia
Ponadto, na fig. 8b, wskaźnik zapisu wstecznego 82 zmienił się z rejestru zmiany nazwy numer 2 na rejestr zmiany nazwy numer 4, wskazując tym samym zapis wsteczny podczas cyklu 5 informacji operacji przeznaczenia dla instrukcji INST x i INST x+l. Na fig. 7 przedstawiono tę sytuację pokazując kompletację i zapis wsteczny (COMP/WBACK) występujące równocześnie podczas cyklu 5 dla instrukcj i INST x i INST x+1. W ten sposób wyniki (w rej estrze zmiany nazwy numer 2 i rejestrze zmiany nazwy numer 3) instrukcji INST x i INST x+l omijć^^jiąpoz^^cje zapisu wstecznego i są zapisywane bezpośrednio do jednostek GPR 32, ponieważ na początku cyklu 5 były dostępne dwa porty zapisu wstecznego. Na fig. 8b wskaźnik zapisu wstecznego 82 nie wykracza poza rejestr zmiany nazwy numer 4, ponieważ oba porty zapisu wstecznego są wykorzystywane podczas cyklu 5 do wstecznego zapisu wyników instrukcji INST x i INST x+l.
Na fig. 8c pokazano status wskaźnika przyporządkowania 80, wskaźnika zapisu wstecznego 82 i wskaźnika kompletacji 84 na początku cyklu 7 z fig. 7. Jak widać na fig. 7 i 8c, oba porty zapisu wstecznego są używane podczas cyklu 6 do wstecznego zapisu obu wyników instrukcji INST x+2. W związku z tym, wskaźnik zapisu wstecznego 82 zmieniał się z rejestru zmiany nazwy numer 4 na rejestr zmiany nazwy numer 6. Wskaźnik przyporządkowania 80 nie legł zmianie, ponieważ procesor 10 nie wysłał dodatkowych instrukcji. Również wskaźnik kompletacji 80 nie zmienił się, ponieważ procesor 10 nie skompletował dodatkowych instrukcji.
Na fig. 8d pokazano status wskaźnika przyporządkowania 80, wskaźnika zapisu wstecznego 82 i wskaźnika kompletacji 84 na początku cyklu 8 z fig. 7. Jak widać na fig. 7 i 8c, oba porty zapisu wstecznego sąużywane podczas cyklu 7 do wstecznego zapisu dwóch wyników instrukcji INST x+3. W związku z tym, wskaźnik zapisu wstecznego 82 zmienił się z rejestru zmiany nazwy numer 6 do rejestru zmiany nazwy numer 8. Wskaźnik przyporządkowania pozostał bez zmiany, ponieważ procesor 10 nie wysłał dodatkowych instrukcji. Nie zmienił się również wskaźnik kompletacji 84, ponieważ procesor 10 nie skompletował dodatkowych instrukcji.
177 404
Na fig. 9 przedstawiono różne etapy realizacji czterech instrukcji w sytuacjach bez ważnej cechy zalecanego przykładu wykonania, w której procesor 10 oddziela kompletację od zapisu wstecznego. W celu zilustrowania takiej sytuacji, na fig. 9 pokazano różne etapy realizacji czterech instrukcji INST y, INST y+1, INST y+2 i INST y+3, które są odpowiednio związane z buforami zmiany nazwy o numerach 7, 8, 9 i 10 z fig. 6.
Na fig. 10a-d przedstawiono koncepcyjną ilustrację buforów zmiany nazwy procesora według fig. 9. Bardziej szczegółowo, na fig. 10a przedstawiono status wskaźnika przyporządkowania 90 i wskaźnika kompletacji 94 na początku cykli 4 i 5 z fig. 9. Na fig. 10b przedstawiono status wskaźnika przyporządkowania 90 i wskaźnika kompletacji 94 na początku cyklu 6 z fig. 9. Na fig. 10c przedstawiono status wskaźnika przyporządkowania 90 i wskaźnika kompletacji 94 na początku cyklu 7 z fig. 9.Nafig. 10d przedstawiono status wskaźnika przyporządkowania 90 i wskaźnika kompletacji 94 na początku cyklu 8 z fig. 9.
Jak widać na fig. 10a-d, bez ważnej cechy zalecanego przykładu wykonania, według której procesor 10 oddziela kompletacje od zapisu wstecznego, konkretna instrukcja (mająca przydzielony bufor zmiany nazwy) zostałaby skompletowana tylko po rzeczywistym skopiowaniu wyniku instrukcji z przydzielonego bufora zmiany nazwy do zapamiętania w rejestrze architektury. Dla porównania, z ważną cechą zalecanego przykładu wykonania, według której procesor 10 oddziela kompletacj ę od zapisu wstecznego, procesor 10 przechowuj e nadal wskaźnik zapisu wstecznego 82 wskazujący czy można zmienić przyporządkowanie bufora zmiany nazwy (przydzielony poprzednio konkretnej instrukcji) do innej instrukcji. Ponadto procesor 10 „kompletuje konkretną instrukcję bez względu na to czy wynik konkretnej instrukcji jest aktualnie kopiowany z przydzielonego bufora zmiany nazwy do pamięci w rej estrze architektury. W związku z tym, procesor 10 jest w stanie „skompletować do czterech instrukcji w konkretnym cyklu, nawet każda z tych czterech instrukcji ma dwa operandy przeznaczenia, oraz nawet jeżeli nie wszystkie operandy przeznaczenia są kopiowane do jednostek GPR 32 podczas konkretnego cyklu.
Na fig. 11 przedstawiono schemat blokowy alternatywnego przykładu wykonania buforów zmiany nazwy 34, w którym „pozycje zapisu wstecznego są przechowywane w buforze 110 oddzielnie od „pozycji zmiany nazwy. „Pozycje zmiany nazwy są przechowywane w buforze 112. Informacja z „pozycji zmiany nazwy w buforze 112 jest sygnałem wyjściowym do zapamiętanie w pozycji zapisu wstecznego w buforze 110 podczas konkretnego cyklu w reakcji ma kompletację podczas konkretnego cyklu realizacji konkretnej instrukcji, do której jest przyporządkowana „pozycja zapisu wstecznego. Informacja z „pozycji zapisu wstecznego w buforze 110 jest sygnałem wyjściowym do zapamiętania w jednej z jednostek GPR 32 podczas konkretnego cyklu w reakcji na dostępność tych jednostek podczas konkretnego cyklu do jednego z dwóch portów zapisu wstecznego.
Bufor 112 wysyła informacje do bufora 110 poprzezjeden z ośmiu portów, jak pokazano na fig. 11, tak, że podczas dowolnego cyklu procesora 10 bufor 112 jest w stanie wysłać informacj ę do bufora 110 z odjednej do ośmiu „pozycji zmiany nazwy. W związku z tym, procesor 10 jest w stanie „skompletować do czterech instrukcji w konkretnym cyklu, nawetjeżeli każda z czterech instrukcji ma dwa operandy przeznaczenia, oraz nawet jeżeli nie wszystkie operandy przeznaczenia sąkopiowane do jednostek GPR 32 podczas konkretnego cyklu. Korzystnie, wynik (informacja o operandzie przeznaczenia) może ominąć „pozycje zapisu wstecznego w buforze 110 i może być zapisany bezpośrednio do jednostek GPR 32 o ile port zapisu wstecznego jest dostępny na etapie kompletacji. Procesor 10 realizuje takie ominiecie za pomocą odpowiedniego operowania multiplekserami 113a i 113b, które są podłączone do buforów 110 i 112 oraz do jednostek GPR 32, jak pokazano na fig. 11.
Alternatywny przykład wykonania buforów zmiany nazwy 34 z fig. 11 umożliwia zmianę przyporządkowania pozycji zmiany nazwy w buforze 112 do innej instrukcji po skompletowaniu (ale jeszcze przed zapisem wstecznym) instrukcji, która była poprzednio związana z danąpozyecązmiany nazwy (której poprzednio była przyporządkowana pozycja zmiany nazwy) ponieważ informacja zawarta w tej pozycji zmiany nazwy jest odpowiednio wysyłana do zapamiętania w pozycj i zapisu wstecznego w buforze 110 w reakcji na skompletowanie poprzednio związanej
177 404 z tą pozYciąinstrukcji. Wedługjeszcze innego wykonania z fig. 11, multiplekser 114 wysyła wybrane informacj e do jednostek wykonawczych z bufora 110 lub z bufora 112 w sytuacjach, w których jednostka wykonawcza realizuje instrukcję określającą rejestr architektury związany z taką informacją. Procesor 10 według zalecanego przykładu wykonania ma dwa porty zapisu wstecznego pomiędzy buforami zmiany nazwy a rejestrami architektury, ale odpowiednia liczba portów zapisu wstecznego dla konkretnego przykładu wykonania jest ftinkcjąprawdopodobieństwa, że pozycje zmiany nazwy i pozycje zapisu wstecznego zapełnią się, opóźniając w ten sposób wysłanie instrukcji.
Jak już wspomniano wcześniej w opisie fig. 2-5, procesor 10 opóźnia wykonanie instrukcji realizowanych seryjnie co najmniej do czasu skompletowania wszystkich instrukcji poprzedzających w dwóch sytuacjach. W pierwszej sytuacji, instrukcja ta nie ma być realizowana domyślnie. W drugiej sytuacji, instrukcja określa co najmniej jeden operand źródłowy, dla którego procesor 10 nie zawiera układu nadawczego.
Jeżeli chodzi o sytuację pierwszą, to niektóre instrukcje sąrealizowane na rejestrach architektury specjalnego przeznaczenia (SPR) 40 (fig. 1), gdzie wyniki instrukcji są zapisywane bezpośrednio do rejestrów SPR 40 bez pośredniego przechowywania w buforach zmiany nazwy. Przykładem instrukcji tego typu jest instrukcja Move To (przemieszczenia), która przemieszcza informację z jednej z jednostek GPR 32 do jednego z rejestrów SPR 40. Jak widać na fig. 1, takie instrukcje Move To sąrealizowane przez jednostki CFXU 26. Podczas realizacji instrukcji Move To następuje natychmiastowa aktualizacjajednego z rejestrów SPR40. Podobnie, instrukcja Store powoduje podczas realizacji natychmiastową aktualizację pozycji pamięci w podręcznej pamięci danych 16 (fig. 1). Procesor 10 nie realizuje takich instrukcji w sposób domyślny (co polegałoby na bezpośrednim zapisie wyników instrukcji do rejestru architektury lub pozycji w pamięci bez pośredniego przechowywania w buforach zmiany nazwy), tak że procesor 10 jest w stanie obsłużyć precyzyjne przerwania i precyzyjne warunki wyjątkowe. W związku z tym, w celu zapewnianie uporządkowanego kompletowania i zapisu wstecznego, procesor 10 opóźnia realizację instrukcji Move To i instrukcji Store do czasu skompletowania wszystkich instrukcji poprzednich.
Jeżeli instrukcja wysłana do jednostki wykonawczej ma związany z nią bit EOK (w polu „typ instrukcji“ związanej z insΐrukcjąpozycji w buforze zmiany porządku 76) skasowany do stanu logicznego, 0, to w reakcji na „skompletowanie44 wszystkich instrukcji poprzedzających instrukcję wysyłaną układ logiczny wysyła sygnał (poprzez odpowiednią jedną z linii 60, 86, 88, 90, 92 i 94 połączonych z jednostką wykonawczą). Jednostka wykonawcza realizuje taką wysłaną instrukcję tylko w reakcji na sygnał wyjściowy z układu logicznego.
Na fig. 12-c przedstawiono organizację bufora zmiany porządku 76. Na fig. 13 przedstawiono różne etapy wykonywania pięciu instrukcji z fig. 12a-c. Na fig. 14a-f przedstawiono organizację buforów zmiany nazwy 34 procesora 10.
Na fig. 12a przedstawiono status bufora zmiany porządku 76 na początku cyklu 4 z fig. 13. W związku ztym,nafig.12a widać, że w buforze zmiany porządku 7 6 znaj duj ą się informacj e dla czterech instrukcji wysłanych podczas cyklu 3 z fig. 13. Na fig. 13 przedstawiono różne etapy realizacji czterech instrukcji INST a, InSt a+1, INST a+2 i INST a+3, które są odpowiednio związane z buforami zmiany porządku o numerach 3, 4, 5 i 6 z fig. 12a.
Jak widać na fig. 12a, instrukcja INST ajest wysłana do jednostki FXUA 22 i ma dwa operandy przeznaczenia („liczba przeznaczeń GPR“ = 2). Dla porównania, instrukcja INST a+1 jest wysłana do jednostki FXUB 24, ale majeden operand przeznaczenia („liczba przeznaczeń GPR“ = 1). Instrukcja INST a+2 jest instrukcją Store (zapamiętaj) wysyłaną do jednostki LSU 28 i ma zerową liczbę operandów przeznaczenia („liczba przeznaczeń GPR“ = 0); ponadto bufor zmiany porządku o numerze 5 (związany z instrukcją INST a+2 ) ma EOK = 0 w reakcji na instrukcję INST a+2 wykonaną szeregowo. Instrukcja INST a+3 jest wysyłana do jednostki CFXU 26 i ma jeden operand przeznaczenia („liczba przeznaczeń GPR“ = 1).
Według zalecanego przykładu wykonania, jednostka sekwencyjna 18 określa czy wynikiem realizacji instrukcji może być warunek wyjątkowy. Jednostka sekwencyjna 18 określa toje18
177 404 szcze przed realizacją instrukcji. Jeżeli wynikiem realizacji instrukcji nie może być warunek wyjątkowy, jednostka sekwencyjna 18, korzystnie, zadaje (w reakcji na wysłanie instrukcji) w pozycji bufora zmiany porządku związanej z instrukcją, „ukończenie' = 1, niezależnie od tego czy procesor 10 rzeczywiście ukończył realizację instrukcji, której wynikiem nie może być warunek wyjątkowy.
Ponadto, w sytuacji tego typu, procesor 10 „kompletuje' instrukcję w reakcji na skompletowanie przez procesor 10 wszystkich instrukcji poprzednich, bez względu na to czy procesor 10 rzeczywiście ukończył realizację instrukcji, której wynikiem nie może być warunek wyjątkowy. W związku z tym procesor 10 „kompletuje' instrukcję w reakcji na określenie, że warunek wyjątkowy nie może być wynikiem realizacji danej instrukcji ani żadnej instrukcji poprzedzającej daną instrukcję w zaprogramowanej sekwencji, bez względu na to, czy procesor 10 zakończył realizację każdej instrukcji, której wynikiem nie może być warunek wyjątkowy. Zatem, istnieje możliwość, iż etap kompletacji instrukcji poprzedzi etap realizacji instrukcji; w ten sposób procesor 10 jest w stanie zrealizować „wczesną kompletację' instrukcji.
Korzystnie, poprzez wspomaganie operacji „wczesne zakończenie', procesor 10 jest w stanie szybciej wykonywać kolejne, szeregowo wykonywane instrukcje (takie jak instrukcja Move To [Przenieś do] lub instrukcja Store [Przechowaj], kiedy to wyniki instrukcji zapisywane sąbezpośrednio do rejestru architektury lub umieszczane w pamięci, bez pośredniego składowanie w buforach przemianowania). Jest to prawdziwe bez pogarszania możliwości procesora 10 w uzyskiwaniu dokładnych przerwań i dokładnych warunków wyjątkowych. Zachodzi to dlatego, że wszystkie poprzedzające instrukcje (1) zakończyły już swe wykonywanie bez warunków wyjątkowych lub (2) zakończą wykonywanie bez warunków wyjątkowych. Za pomocą takiej techniki, procesor 10 w dalszym ciągu zapewnia zakończenie według kolejności i zapis zwrotny według kolejności.
Na przykład na fig. 12a, instrukcje INST a+1 i INST a+3 nie są w stanie spowodować ustawienia warunku wyjątkowego, takiego że „zakończony' =1 w buforach przywrócenia uporządkowania o numerach 4 i 6.
Figura 14a przedstawia status alokacji wskaźnika („AL“) 80, wskaźnika zapisu zwrotnego (WB) 82 i wskaźnika zakończenia (CO) 84 buforów przemianowania 34 na początku cyklu4fig. 13.
Stąd fig. 14a odpowiada fig. 12a. Jak przedstawiono na fig. 14a, wskaźnik WB 82 i wskaźnik Co 84 wskazująbufor przemianowania 2, a wskaźnik AL 80 wskazuje bufor przemianowania 6. Bufory przemianowania 2 i 3 sąprzydzielane do instrukcji INST a. Bufor przemianowania 4 jest przydzielany do instrukcj i INST a+1 i bufor przemianowania 5 jest przydzielany do instrukcji INST a+3. Należy zauważyć, że instrukcj a INST a+2 nie ma przydzielonego bufora przemianowania, ponieważ instrukcja INST a+2 ma zero operandów przeznaczenia. W buforach •przemianowania 2-5, „informacja poprawna' = 0, wskazując, że pole „informacja' tych buforów przemianowania nie zawiera poprawnych danych. Na początku cyklu 4 (fig. 13), „informacj a poprawna' = 0 ponieważ nie zostało jeszcze zakończone wykonywanie instrukcji INST a, INST a+1, INST a+2 i INST a+3. W buforze przemianowania 4, „przeniesienie poprawne' = 1, wskazujące że INST a+1 zmienia rejestr CA 42. Należy zauważyć jak poprzednio stwierdzono, że INST a+1 nie jest w stanie spowodować warunku wyjątkowego takiego że „zakończony' = 1 w buforze przywrócenia porządku o numerze 4 (fig. 12a). W związku z tym procesor 10 wspomaga operację „wczesne zakończenie' instrukcji, która modyfikuje rejestr CA 42.
Jak przedstawiono na fig. 14a-g, informacja bitowa CA jest składowana pośrednio w buforach przemianowania 34. Niezależnie od tego procesor 10 w korzystnym przykładzie wykonania nie zawiera obwodów do przekazywania takiej instrukcji bitowej CA do jednostek wykonawczych z buforów przemianowania 34. Jeśli informacja źródłowa operanda danej instrukcji zawiera rejestr CA 42, wtedy dana instrukcja zawiera źródłową informację operanda w zależności od wyników poprzedniej instrukcji (jeśli występuje), która modyfikuje rejestr CA 42.
Figura 12b przedstawia status bufora przywrócenia porządku 76 na początku cyklu 5 z fig. 13. W związku z tym, na fig. 12b, bufor przywrócenia porządku 76 przechowuje informację dla instrukcji INST a+4 przesłanej podczas cyklu 4 z fig. 13. Fig. 13 przedstawia różne stany in177 404 strukcji INST a+4, która związana jest z buforem przywrócenia porządku nr 7. Jak ukazano na fig. 12b, instrukcja IN ST a+4 jest przekazywana do jednostki FXUa 22 i ma jeden operand przeznaczenia („przeznaczenia nr GPR“ = 1), przy czym bufor przywrócenia porządku 7 (związany z instrukcj ąINST a+4) ma EOK=0 w odpowiedzi na instrukcję INST a+4 wykonywana szeregowo.
Ponadto, ze - względu na to, że instrukcja INST a zakończyła wykonywanie się podczas cyklu 4, w buforze przywrócenia porządku nr 3 na fig. 12b status „zakończony“ = 1. W odniesieniu do fig. 13 instrukcj a INST a+2 j est instrukcj ątypu Store [przechowaj ]. Podczas cyklu 4 j ednostka LSU 28 zakończyła pierwsze wykonywanie stanu EXEC A instrukcji INST a+2 związanej z instrukcją Store. Podczas stanu EXEC A, jednostka LSU 28 dokonuje translacji instrukcji Store i sprawdza instrukcję Store w celu ochrony składowania. W związku z tym w buforze przywrócenia porządku nr 5 na fig. 12b status „zakończony“ = 1. Figura 14b przedstawia status przydzielania wskaźnika (AL) 80, wskaźnika zapisu zwrotnego (WB) 82 i wskaźnika zakończenia (CO) 84 buforów przemianowania 34 na początku cyklu 5 fig. 13. Stąd fig. 14b odpowiada fig. 12b. Jak przedstawiono na fig. 14b wskaźnik WB 82 i wskaźnik CO 84 w dalszym ciągu wskazują na bufor przemianowania 2 a wskaźnik AL 80 skorzystał z bufora przemianowania 6 i wskazuj e na bufor przemianowania 7. W związku z tym bufor przemianowania 6 jest przydzielany do instrukcji INST a+4.
W buforze przemianowania 6, „instrukcja poprawna“ = 0, wskazuje że pole „informacja“ bufora przemianowania nie przechowuje poprawnych danych. Na początku cyklu 5 (fig. 13), w buforze przemianowania 6 „informacja poprawna“ = 0, ponieważ wykonywanie instrukcji INST a+4 nie zostało jeszcze zakończone. Poprzez porównanie - na fig. 14b „informacja poprawna“ = 1 w buforach przemianowania 2 i 3 w odpowiedzi na instrukcje INST a i INST a+1, kończące wykonywanie podczas cyklu 4 jak przedstawiono na fig. 13 wskazuje, że pola „informacja buforów przemianowania 2 i 3 przechowujądane poprawne (reprezentowane na fig. 14b poprzez „DATA“ w polach „informacja“).
W buforze przemianowania 6, „poprawne przeniesienie = 1 wskazuje, że INST - a+4 modyfikuje rejestr CA 42. Ponadto informacja źródłowa operanda instrukcji INST a+4 zawiera rejestr CA 42, tak że instrukcja a+4 jest instrukcją wykonywaną szeregowo wraz z informacją źródłową operanda w zależności od warunków poprzedniej instrukcji INST a+1, która modyfikuje rejestr CA 42. Chociaż instrukcja INST a+3 nie modyfikuje rejestru CA 42, to INST a+3 ma informację źródłową operanda w zależności od wyników poprzedzającej instrukcji INST a+1, jak wskazano to na fig. 13 strzałką 100.
Figura 12c przedstawia status bufora przywrócenia porządku 76 dla początku cyklu 6 z fig. 13. Fig. 14c przedstawia status przydzielania wskaźnika (AL) 80, wskaźnika zapisu zwrotnego (WB) 82 i wskaźnika zakończenia (CO) 84 buforów przemianowania 34 na początku cyklu 6 fig 13. Stąd fig. 14c odpowiada fig. 12c.
Jak ukazano na fig. 12c, informacja w buforach przywrócenia porządku o numerach 3,4,5 i 6 została wykasowana w odpowiedzi na instrukcje INST a, INST a+1, INST a+2 i INST a+3 „kończące się“ podczas cyklu 5, jak ukazano na fig. 13. Należy zauważyć, że instrukcja INST a+1 „wcześnie zakończona podczas cyklu 5, poprzedza instrukcję INST a+1, kończącą wykonywanie podczas cyklu 5 jak jest wskazane na fig. 13 poprzez „ECOMP/EXEC“; instrukcja INST a+1 jest członem klasy instrukcji, które wymagajądo wykonania więcej niż jeden cykl procesora 10.
W odniesieniu do fig. 14c, procesor 10 wstawia wskaźnik CO 84 za buforem przemianowania (to jest za buforem przemianowania 5 przed początkiem cyklu 6) poprzednio przydzielony do danej instrukcji (to jest INST a+3) w odpowiedzi na kończenie przez procesor 10 wszystkich instrukcji (to jest INST a, INST a+1 i INST a+2) niezależnie od tego, czy procesor 10 ostatecznie zakończył wykonywanie danej instrukcji (to jest INST a+3, która w dalszym ciągu wykonuje się podczas cykli 6-8).
Również, podczas cyklu 5 układy realizacji szeregowej 84 (fig. 3) wyprowadzają sygnał poprzez linię 92 połączoną z jednostki LSU 28 w odpowiedzi na zakończenie instrukcji INST a i INST a+1; co wynika z faktu, że instrukcja INST a+2 (która była wysłana do jednostki LSU 28
177 404 podczas cyklu 3) miała swój bit związany EOK - w buforze przywrócenia porządku nr 5 wyzerowany do stanu logicznego 0. Podczas cyklu 5 instrukcja a+2 związana z instr'^uk<^c£^'Store „kończy się“ w odpowiedzi na zakończenie (cykl 4) wykonywania stanu EXEC A bez warunków wyjątkowych i na zakończenie (cykl 5) poprzednich instrukcji INST a i INST a+1. Podczas drugiego wykonywania stanu EXEC B, jednostka LSU 28 ostatecznie zapisuje informacje w podręcznej pamięci danych 16. Jednostka LSU 28 wykonuje stan EXEC B instrukcji INST a+2 związanej z instrukcją Store tylko w odpowiedzi na sygnał z układów realizacji szeregowej 84 wystawiany poprzez linie 92.
Jak przedstawiono na fig. 14c, wskaźnik AL 80 kontynuuje wskazywanie na bufor przemianowania 7, i wskaźnik CO 84 wykorzystując bufor przemianowania 2wskazuje bufor przemianowania 6 w odpowiedzi na poprzednie instrukcje INST a, INST a+1 i INST a+3 „kończące się“ podczas cyklu 5. Ponadto jak przedstawiono na fig. 13, obydwa wyniki instrukcji INST a były skopiowane z buforów przemianowania 2 i 3 do jednostki GPR 32 (fig. 1) podczas cyklu 5.
Na fig. 14c, w reakcji na zakończenie instrukcji INST a+1 podczas cyklu 5 pokazanego na fig. 13, bufor zmiany nazwy 4 przybiera wartość „informacja ważna“ = 1. Wskazuje to, że w polu „informacja“ bufora zmiany nazwy 4 jest przechowywana ważna dana (reprezentowana na fig. 14c) nazwą„DATA“ w polu „informacja“) oraz że wpolu „carry“ bufora zmiany nazwy 4 jest przechowywana ważna dana (reprezentowana na fig. 14c nazwą„CA“ w polu „carry). Ponieważ INST a+4 jest instrukcją realizowaną seryjnie z zależnością informacji o operandzie źródłowym od wyników realizacji instrukcji INST.
W korzystnym przykładzie wykonania, w przypadku instrukcj i sekwencyjnego wykonania (np , INST a+4), w której wartość argumentu źródła zależy od nieprzesłanego argumentu (np. wartości bitu CA, przeznaczonej dla rejestru CA 42), procesor 10 wykonuje instrukcję sekwencyjnego wykonania (np. INST a+4) w odpowiedzi na operację na buforach zmiany nazwy 34, sygnalizując że:
1) wszystkie poprzedzające instrukcje są „skompletowane“ i
2) jeśli etap zapisu wstecznego którejś poprzedzającej, „skomplikowanej“ instrukcji nie został jeszcze zakończony, każda taka poprzedaj ąca instrukcj a nie modyfikuj e nieprzesłanego argumentu.
A zatem, na fig. 14d, wskaźnik CO 84 wskazuje bufor zmiany nazwy 6, sygnalizując w ten sposób dla instrukcji INST a+4, że wszystkie poprzedzające instrukcje sąskompletowane. Ponadto, na fig. 14d, wskaźnik WB 82 wskazuje na bufor zmiany nazwy 5, sygnalizując w ten sposób, że chociaż etap zapisu wstecznego poprzedzającej, „skompletowanej“ instrukcji INST a+3 nie został jeszcze zakończony, instrukcja INST a+3 nie zmienia żadnej nieprzesłanej informacji, przeznaczonej dla rejestru CA 42 (ponieważ „przeniesienie ważne“ = 0 w buforze zmiany nazwy 5). Zatem procesor 10 wykonuje instrukcję INST a+4 podczas taktu 7.
W alternatywnym przykładzie wykonania, w przypadku instrukcji sekwencyjnego wykonania (np. INST a+4), w której wartość argumentu źródła zależy od nieprzesłanego argumentu (np. wartości bitu CA przeznaczonej dla rejestru CA 42), procesor 10 wykonuje instrukcję sekwencyjnego wykonania (Np. INST a+4) w odpowiedzi na operacje na buforach zmiany nazwy 34, sygnalizując, że
1) wszystkie poprzedzające instrukcje są „skompletowane“ i
2) etapy zapisu wstecznego wszystkich „skompletowanych“ instrukcji są zakończone, tak że wskaźnik WB 82 i wskaźnik CO 84 wskazują na ten sam bufor zmiany nazwy.
F igura 14e przedstawia wartość wskaźnika przyporządkowania (AL) 80, wskaźnika zapisu wstecznego (WB) 82 i wskaźnika kompletacji (CO) 84 buforów zmiany nazwy 34 na początku cyklu 8 z fig. 13. Jak widać na fig; 14e, wskaźnik AL 80 dalej wskazuje na bufor zmiany nazwy 7, zaś wskaźnik WB 2 dalej wskazuje na bufor zmiany nazwy 5.
Zakończenie wykonywania i „kompletacji11 instrukcji INST a+4 następuje podczas taktu 7 przed zakończeniem wykonywania instrukcji INST a+4 podczas taktu. 7, jak pokazuje „EXEC/COMP“ na fig. 13.
177 404
Zatem, jak widać na fig. 14e, wskaźnik CO 84 został zmieniony i wskazuje nie na bufor zmiany nazwy 6, ale na bufor zmiany nazwy 7.
Korzystnie, procesor 10 zmienia wskaźnik CO 84 po wykonaniu operacji na buforze zmiany nazwy (np. po wykonaniu operacji na buforze zmiany nazwy 6 przed rozpoczęciem taktu 8), poprzednio przyporządkowany do danej instrukcji (np. INST a+4) w odpówiedzi na skompletowanie przez procesor 10 wszystkich poprzedzających instrukcji (np. INST a, INST a+1, INST a+2 i INST a+3) niezależnie od tego, czy procesor 10 rzeczywiście zakończył wykonywanie wszystkich poprzedzających instrukcji (np. INST a+3, którajest dalej wykonywana podczas cyklu 8).
J ak widać na fig. 13, w odpowiedzi na zakończenie wykonywania instrukcj i INST a+4 podczas taktu 7 ustawiane jest „Informacja ważna = 1 (fig. 14e). Sygnalizuje to, że pole „Informacja bufora zmiany nazwy 6 zawiera ważne dane (reprezentowane na fig. 14e przez „DANE w polu „Informacja) i że pole „Przeniesienie bufora zmiany nazwy 6 zawiera ważne dane (reprezentowane na fig. 14e przez „CA w polu „Przeniesienie).
Figura 14fprzedstawia wartość wskaźnika przyporządkowania (AL) 80, wskaźnika zapisu wstecznego (WB) 82 i wskaźnika kompletacji (CO) 84 buforów zmiany nazwy 34 na początku cyklu 9 na fig. 13. Jak widać na fig. 14f, wskaźnik AL 80 i wskaźnik CO 84 dalej wskazująna bufor zmiany nazwy 7, zaś wskaźnik WB 82 dalej wskazuje na bufor zmiany nazwy 5. „Informacja ważna = 1 jest ustawiane w buforze zmiany nazwy 5 w odpowiedzi na zakończenie wykonywania instrukcji INST a+3 podczas cyklu 8. Sygnalizuje to, że pole „Informacja bufora zmiany nazwy 5 zawiera ważne dane (reprezentowane na fig. 14e przez „DANE w polu „Informacj a).
Figura 14g przedstawia wartości wskaźnika przyporządkowania (AL) 80, wskaźnika zapisu wstecznego (WB) 82 i wskaźnika kompletacji (CO) 84 buforów zmiany nazwy 34 na początku taktu 10 z fig. 13. Jak widać na fig. 14g, wskaźnik AL· 80 i wskaźnik CO 84 dalej wskazująna bufor zmiany nazwy 7. Jak widać na fig. 13, wyniki wykonania instrukcji INST a+3 i INST a+4 zostały skopiowane z buforów zmiany nazwy 5 i 6 odpowiednio do rejestrów GPR 32 (fig. 1) podczas cyklu 9. Zatem, jak widać na fig. 14g, wskaźnik WB 82 został zmieniony i wskazuje teraz nie bufor zmiany nazwy 5, ale bufor zmiany nazwy 7; ponadto, informacja w buforach zmiany nazwy 5 i 6 została usunięta w odpowiedzi na skopiowanie wyników wykonania instrukcji INST a+3 i INST a+4 z buforów zmiany nazwy 5 i 6 do rejestrów GPR 32 (fig. 1) podczas cyklu 9.
F igura 15 przedstawia różne etapy wykonywania pięciu instrukcj i z fig. 12a-c w alternatywnym przykładzie wykonania bez właściwości „uprzedniego kompletowania, charakterystycznej dla korzystnego przykładu wykonania. Figura 16a-h przedstawia organizację buforów zmiany nazwy 34 procesora 10 w różnych taktach przetwarzania instrukcji, przedstawionego na fig. 15. Jak widać na Figurze 15, bez funkcji „uprzedniego kompletowania korzystnego przykładu wykonania, wykonanie instrukcji INST a+4 jest opóźnione aż do cyklu 10, zaś kompletacja/zapis wsteczny wyników wykonania instrukcji INST a+4 jest opóźnione do cyklu 11. Wynika to stąd, że instrukcja INST a+4 jest instrukcją sekwencyjnego wykonania, której wykonanie jest opóźnione do skompletowania wszystkich poprzedzających instrukcji. Bez funkcji „uprzedniego kompletowania korzystnego przykładu wykonania, instrukcja INST a+3 nie jest kompletowana aż do cyklu 9, opóźniając w ten sposób wykonanie instrukcji INST a+4 do cyklu 10.
Dla porównania, na fig. 13, instrukcja INST a+3 jest „uprzednio kompletowana podczas cyklu 5, zaś instrukcja INST a+4 jest wykonywana podczas cyklu 7. Instrukcja INST a+4 jest instrukcją sekwencyjnego wykonania, w której wartość argumentu źródła zależy od wyników wykonania poprzedzającej instrukcji INST a+1, która modyfikuje nieprzesłaną wartość bitu CA, przeznaczoną dla rejestru Ca 42. Niemniej, wykonanie instrukcji INST a+4 następuje podczas cyklu 7, a kompletacja/zapis wsteczny wyników instrukcji INST a+4 występuje podczas cyklu 9. Odpowiednio, na fig. 13 z cechą „wczesnej kompletacji w korzystnej postaci, etapy wykonania, kompletacji i zapisu wstecznego instrukcji INST a+4 występują wcześniej niż na fig. 15 bez cechy „wczesnej kompletacji.
Procesor 10 opóźnia wykonanie instrukcji określającej nienadanie argumenty źródłowe (na przykład rejestr SPR 40 i rejestr CA 42), przynajmniej do czasu skompletowania wszystkich operacj i poprzednich. Wynika to z tego powodu, że, kiedy instrukcj a określa nienadane argumen22
177 404 ty źródłowe, wykonanie instrukcji podlega takiej informacji argumentu źródłowego, która jest dostępna i ważna w rejestrach architektonicznych. Przykładami takich instrukcji są (1) rozszerzona instrukcja arytmetyczna, która odczytuje rejestr CA 42 i (2) instrukcja Przenieś Z, która przenosi informację z jednego z rejestrów SPR 40 do jednej z jednostek GpR 32.
Nawet jeśli wszystkie instrukcje poprzedzające są„skompletowane, możliwe jest, aby instrukcja poprzedzająca była „wcześnie skompletowana tak, że jej etap skompletowania poprzedza jej etap wykonania. Jak to omówiono powyżej, w połączeniu z fig. 1-5, procesor 10 zawiera zespół obwodów do wysyłania informacji do jednostek wykonawczych z jednostek GPR 32, jednostek FPR 36, buforów zmiany nazwy 34 i 38, oraz rejestrów kontrolnych. Jeśli konkretna instrukcja cechuje się zależność iąinformacji argumentu źródłowego od wyników poprzedniej „wcześnie skompletowanej instrukcji, i jeśli informacja argumentu źródłowego jest podtrzymywana przez taki układ nadawczy procesora 10, wtedy procesor 10 opóźnia wykonanie konkretnej instrukcji do czasu, aż procesor 10 zakończy etap wykonywania instrukcji „wcześnie skompletowanej (w którym to momencie wyniki instrukcji „wcześnie skompletowanej są dostępne i ważne w buforze zmiany nazwy).
Przez analogię jeśli informacja argumentu źródłowego nie jest podtrzymywana takim układem nadawczym procesora 10, wtedy procesor 10 opóźnia wykonanie konkretnej instrukcji do czasu, aż procesor 10 zakończy etap zapisywania instrukcji „wcześnie skompletowanych (w którym to momencie wyniki instrukcji „wcześnie skompletowanych są dostępne i ważne w rejestrze architektonicznym). Jeśli instrukcja „wcześnie skompletowana nie jest wykonana do końca, wtedy wyniki instrukcji (informacja argumentu wynikowego) nie są dostępne. W takiej sytuacji, procesor 10 odpowiednio opóźnia etap zapisywania instrukcji „wcześnie skompletowanej, do czasu, aż instrukcja zakończy wykonywanie.
Jeśli instrukcja podlega wczesnemu skompletowaniu, wtedy jednostka sekwencyjna 18 wysyła sygnał wskazujący, jednocześnie wysyłając instrukcję do skojarzonej jednostki instrukcji. W odpowiedzi na taki sygnał wskazujący, skojarzona jednostka wykonująca nie próbuje modyfikować wyznaczonej pozycji instrukcji w buforze zmiany przyporządkowania 76. Wynika to z tego, że po skompletowaniu wyznaczonej instrukcji wejściowej buforu zmiany przyporządkowania, pozycja bufora zmiany przyporządkowania jest ponownie przyporządkowana do innej instrukcji tak, że informacja na pozycji bufora zmiany przyporządkowania nie jest już ważna.
Odpowiednio, jeśli instrukcja jest poddana wczesnemu skompletowaniu, wtedy wyznaczona pozycja bufora zmiany przyporządkowania instrukcji może być nieważna, zanim jednostka wykonująca instrukcji zakończy wykonywanie instrukcji. W korzystnym przykładzie wykonania, podczas pojedynczego cyklu procesora 10, jednostka sekwencyjna 18 kontroluje cztery najstarsze pozycje buforów zmiany przyporządkowania posiadające ważne informacje tak, że cztery instrukcje są przeznaczone do jednoczesnego skompletowania podczas pojedynczego cyklu.
W korzystnym przykładzie wykonania, instrukcja Przenieś Z wprowadza informację z rejestrów 40 SPR, przy czym rejestr SPR jest modyfikowany tylko instrukcją Przenieś Do. Korzystnie, - procesor 10 wykonuje instrukcję Przenieś Z w odpowiedzi na skompletowanie wszystkich instrukcji poprzednich, nawet jeśli jedna albo więcej z instrukcji poprzednich jest „wcześniej skompletowana. Jest to możliwe, ponieważ procesor 10 nie „kompletuje wcześniej instrukcji (na przykład instrukcji Przenieś Do albo instrukcji Zapamiętaj), która teoretycznie nie ma być wykonana. Jeśli wszystkie poprzednie instrukcje są „skompletowane, wtedy procesor 10 rzeczywiście ukończył wykonywanie wszystkich instrukcji Przenieś Do. Odpowiednio, procesor 10 wykonuje instrukcję Przenieś Z w odpowiedzi na skompletowanie wszystkich instrukcji poprzednich, ponieważ w takiej sytuacji procesor 10 rzeczywiście zakończył wykonywanie wszystkich poprzednich instrukcji Przenieś Do
W innym znaczącym aspekcie korzystnego przykładu wykonania, procesor 10 podtrzymuj e niedokładny, nieodtwarzalny tryb pracy wyjątkowej zmiennoprzecinkowej. Podczas działania w takim trybie, procesor 10 sygnalizuje warunek wyjątkowy zmiennoprzecinkowy nie będąc
177 404 dokładnym albo informując, która instrukcja zmiennoprzecinkowa spowodowała warunek wyjątkowy. Kiedy procesor 10 posługuje się wyjątkiem, procesor 10 może być w stanie, w którym skompletował on różną ilość instrukcji poza instrukcją zmiennoprzecinkową, która spowodowała wyjątek. Podczas działania w tym trybie, procesor 10 osiąga zwiększoną wydajność dla sekwencji instrukcji, które nie sąwrażliwe na zatrzymanie wykonywania programu dokładnie na instrukcji zmiennoprzecinkowej, powodującej warunek wyjątkowy.
Podczas działania w dokładnym trybie pracy wyjątkowej zmiennoprzecinkowej, procesor 10 „wcześnie kompletuje instrukcję zmiennoprzecinkowąprzed zakończeniem wykonywania instrukcji zmiennoprzecinkowej, w odpowiedzi na skompletowanie wszystkich instrukcji poprzednich. Przy niedokładnym, nieodwracalnym trybie pracy wyjątkowej zmiennoprzecinkowej „wcześnie skompletowane instrukcje zmiennoprzecinkowe różnią się od innych typów instrukcji „wcześnie skompletowanych, ponieważ procesor 10, „wcześnie kompletuje instrukcję zmiennoprzecinkową, nawet jeśli późniejsze wykonanie instrukcji zmiennoprzecinkowej może spowodować warunki wyjątkowe zmiennoprzecinkowe. Każda pozycja bufora zmiany przyporządkowania sygnalizuje, czyjego skojarzona instrukcjajest instrukccązmiennoprzecinkową.
W odpowiedzi na zakończenie etapów wykonywania i kompletowania instrukcji zmiennoprzecinkowej, jej wyniki są pośrednio przechowywane w zmiennoprzecinkowych buforach zmiany nazwy 38. Wyniki sąpośrednio przechowywane w buforach zmiany nazwy 38 do czasu, aż wyniki wszystkich wcześniejszych instrukcji zmiennoprzecinkowych są skopiowane do jednostek FPR 36. W ten sposób, procesor 10 przechodzi odpowiednie etapy „zapisywania instrukcji zmiennoprzecinkowych w porządku ich zaprogramowanej sekwencji.
Bufory zmiany nazwy 38 pośrednio przechowują wyniki instrukcji zmiennoprzecinkowych, dla późniejszego skopiowania do jednostek FPR 36. Ponadto, bufory zmiany nazwy 38 przechowują dalej informację stanu dla odpowiedniego zmodyfikowania zmiennoprzecinkowego statusu architektonicznego i rejestru kontrolnego (FPSCR) (nie pokazanego na rysunku). W odpowiedzi na wykrycie warunku wyjątkowego zmiennoprzecinkowego (zasygnalizowanego przez bit FEX ustawionego FPSCR), podczas kopiowania wyników z buforów zmiany nazwy 38 do jednostek FPR 36 i do rejestru FPSCR, procesor 10 zgłasza warunek wyjątkowy.
Podczas działania w niedokładnym, nieodtwarzalnym trybie pracy wyjątkowej, procesor 10 zgłasza warunek wyjątkowy zmiennoprzecinkowy nie będąc dokładnym albo informując, która instrukcja zmiennoprzecinkowa spowodowała warunek wyjątkowy. Korzystnie, w takiej sytuacji, procesor 10 zgłasza warunek wyjątkowy w następujący sposób.
Po pierwsze, procesor 1- zatrzymuje kompletowanie instrukcji podczas cyklu, w którym procesor 10 wykrywa warunek wyjątkowy zmiennoprzecinkowy. Dokładna instrukcja, podczas której procesor 10 zatrzymuje kompletowanie nie jest istotna tak długo, jak długo stan procesora 10 dokładnie odbija efekty wszystkich skompletowanych instrukcji, poprzedzających konkretną instrukcję, podczas której procesor 10 zatrzymuje kompletowanie.
Po drugie, procesor 10 zakańcza wykonywanie wszystkich poprzednich „wcześnie skompletowanych instrukcji. Ponadto, procesor 10 kopiuje wyniki takich instrukcji do rejestrów architektonicznych tak, że wszystkie pozycje zapisu w buforach zmiany nazwy 34 i 38 zostają puste.
Po trzecie, procesor 10 zgłasza warunek wyjątkowy zmiennoprzecinkowy. Przy niedokładnym, nieodtwarzalnym trybie pracy wyjątkowej, „wcześnie skompletowane instrukcje zmiennoprzecinkowe różnią się od innych typów instrukcji „wcześnie skompletowanych, ponieważ procesor 10 „wcześnie kompletuje instrukcję zmiennoprzecinkowąpomimo tego, że następne wykonanie instrukcji zmiennoprzecinkowej może spowodować warunek wyjątkowy zmiennoprzecinkowy. Zgodnie z tym, inne instrukcje, które są „wcześnie skompletowane albo rzeczywiście skompletowane, nie powodują drugiego warunku wyjątkowego.
W odpowiedzi na wykrycie warunku wyjątkowego, wynikającego z instrukcji zmiennoprzecinkowej, procesor 10 opóźnia zgłoszenie warunku wyjątkowego zmiennoprzecinkowego do czasu, aż procesor 10 zakończy wykonywanie wszystkich poprzednich „wcześnie skompletowanych instrukcji zmiennoprzecinkowych bez natknięcia się na warunek wyjątkowy zmienno24
177 404 przecinkowy. Korzystnie, w takiej sytuacji, procesor 10 zgłasza warunek wyjątkowy w następujący sposób.
Po pierwsze, procesor 10 zatrzymuje kompletowanie instrukcji podczas cyklu, w którym procesor 10 wykryje warunek wyjątkowy zmiennoprzecinkowy. Procesor 10 zatrzymuje kompletowanie instrukcji podczas instrukcji powodującej warunek wyjątkowy zmiennoprzecinkowy tak, że instrukcja nie jest skompletowana.
Po drugie, procesor 10 zakańcza wykonywanie wszystkich poprzednich instrukcji „wcześnie skompletowanych14. To decyduje, czy procesor 10 jest zdolny do zakończenia wykonywania wszystkich poprzednich „wcześnie skompletowanych44 instrukcji zmiennoprzecinkowych bez napotykania na warunki wyjątkowe zmiennoprzecinkowe. Ponadto, procesor 10 kopiuje wyniki takich instrukcji do rejestrów architektonicznych tak, że wszystkie pozycje zapisu w buforach zmiany nazwy 34 i 38 zostająpuste. W ten sposób, kiedy procesor 10 zgłasza warunek wyjątkowy, istnieje stan zgodny procesora 10. Dodatkowo, czeka on do czasu, aż inne bufory zapisu są puste, aby, kiedy rozpoznany jest warunek wyjątkowy, zaprezentować stan zgodny procesora.
Po trzecie, jeśli procesor 10 nie wykrył warunku wyjątkowego zmiennoprzecinkowego, wtedy procesor 10 zgłasza dokładny niezmiennoprzecinkowy warunek wyjątkowy. Przez analogię, jeśli procesor 10 wykrył warunek wyjątkowy zmiennoprzecinkowy, wtedy procesor 10 zgłasza niedokładny, nieodtwarzalny warunek wyjątkowy zmiennoprzecinkowy.
177 404
Ο <
łJ <
Eh ω
ζ
Η <
Ζ !SI
U
Ω
Ο
Α
Ο
6»
W
Σ <
id <
ζ
Ο] ><
υ ζ
w id
W ω
<
Εη
W ο
ζ α
μ >Ό
OJ 1
Ω < ω χ Η Eh Μ W Ł Ο 05 > Z W Ζ Ω Eh 5η Cd Z Ν ΐη,Η cn
CU
| -V. | ||
| < < < | < | |
| id Η H co i | z ·& 1 | |
| Eh Z Z OJ 1 | N *— | |
| cn a < | <J O X | |
| o<o Eh | o p | b? DJ U |
| Z rt? fc? | H 05 >4 | |
| Ω Η H | Σ Ω Z | |
| Cd CJ Σ | < O < | |
| Ω Q *ę | b b Q | |
| Q& |
| ω | -^r l | |
| 04 S | co J | |
| cota | <— | |
| g g’a | M SH | |
| qi Z >i | ||
| Ρη 9 Η | 0 < S | |
| rd h4“ | d H c«Q | |
| a ££ | p S < | |
| Cd 5»C | p H 2 |
FIG. 1
177 404
177 404
PAMIĘCI PODRĘCZNEJ 14
86 88 90 92 94
DO JEOCSKI 22 -1
FIG 3 DO JEDNOSTKI 20 _
DO JEDNOSTKI 24 _
DO JEDNOSTKI 26 DO JEDNOSTKI 28 _
DO JEDNOSTKI 3 0 _
177 404
| Numer buforu | Typ instrukcji | #GPR przezn | #FPR .przezn. | Zakończę nie | -Wyjątek | |
| Jednostka wykonawrra | EOK | |||||
| 0 | 22 | 0 | 1 | 0 | 0 | 0 |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 22 | 0 | 1 | 0 | 0 | 0 |
FIG. 4
Λ76
| Numer buforu | Typ instrukcji | f GPR przezn. | #FPR >rzezn. | Zakoń- czenie | Wyjątek | |
| Jednostka wykonawcza | EOK | |||||
| 0 1 2 3 4 5 6 | ||||||
| 7 | 24 | 1 | 1 | 0 | 1 | 0 |
| 8 | 22 | 1 | 1 | 0 | 1 | 0 |
| 9 | 28 | 1 | 2 | 0 | 1 | 0 |
| 10 11 12 13 14 15 | 28 | 1 | 2 | 0 | 1 | 0 |
FIG. 6
177 404 χ
>1
Q >.
U >ι
U
| -i— Φ | |||||||||||
| r~- | Γ* | N | |||||||||
| i q | 1 Φ | o | |||||||||
| '£ -r | *£ -h | r-1 | *c | ||||||||
| 44 | 0 C | 0 c | 44 | 0 | |||||||
| >1 | 44 ΰ | 44 Φ | 44 Φ | ||||||||
| O | rtj 0 | ftj N | CJ | OJ -r- | |||||||
| Ps3 ( | fc fi | N C | |||||||||
| lo | 1 u | YO | 1 £ | ||||||||
| c | £ | ||||||||||
| 0 | r—1 | 0 | |||||||||
| 44 | 44 α | 44 | 44 Φ | ||||||||
| > | >·« | >1 | >·«- | ||||||||
| O | 2 C | U | 2 c | ||||||||
| Φ | |||||||||||
| m | <35 | N | |||||||||
| 1 C | LO ir» | O | |||||||||
| r-l | 'G-r- | ||||||||||
| 44 | 0 C | • rH | 0 | ||||||||
| 44 C | o ·* | 44 C | |||||||||
| O | <0 b | — > | 03 ·<· | ||||||||
| Łi Ł | LU O | N £ | |||||||||
| 1 | ~φ— •H | ||||||||||
| c | 1 | ’Τ | q | ||||||||
| c | 03 | 03 | |||||||||
| 0 | c | i—4 | £ | ||||||||
| 44 | 44 < | 0 | 44 | 0 | |||||||
| >n | >·' | 1 | 44 Φ | >< | 44 | ||||||
| r i | τ?- ί | O | 3x. | ||||||||
| > <r | |||||||||||
| - | •H | ||||||||||
| F | c | I | 1 | 1 | |||||||
| CC | <0 | 03 | «3 | m | (J | 03 | |||||
| H4 | H4 | H4 | H4 | rL4 | |||||||
| r-4 | >1 | >1 | >1 | r-4 | >1 | ||||||
| 44 | ω ( | w | ω Φ | 44 | W < | ω α | |||||
| >1 | >1 | >·<- | >ι·3 | ||||||||
| O | 2 i | 2 | 2 C | O | S I | 2 c | |||||
| ΓΜ | 1 0 | 1 | 1 | (N | 1 | I | 1 0 | ||||
| TJ Φ | 0 | 0 | 0 | 0 | U Φ | ||||||
| r-4 | Π·Η | TJ ( | up α | i—4 | TJ ( | tj α | 0 -H | ||||
| 44 | 44 £ | 0 - | o | 44 | 0 H | 0 -r | 44 £ | ||||
| >1 | q) rd | 44 £ | 44 C | >1 | 44 £ | 44 £ | Φ.03 | ||||
| CS | φ f | Φ IX | U | Φ f | Φ 0 | U. 3 | |||||
| xu | n 3 | Π ’ | U | ||||||||
| O | φ | <u | ' 0 | Φ | —ΠΤ | ||||||
| •H | •H | -r-4 | •H | •H | |||||||
| 1—1 | c | £ | c | c | £ | £ | |||||
| <u | 03 | 03 | r—1 | 03 | 03 | 03 | |||||
| r4 | 3 | 5 | 3 | 3 | 3 | 3 | |||||
| 44 | 0 | O | u | i—4 | U | 0 | 0 | ||||
| Tj | Ό | TJ | 44 | TJ | TJ | TJ | |||||
| CJ | «3 | CO | 03 | > | «3 | 03 | OS | ||||
| --*3 | ιχ3 | h! | O | hJ | h! | Hl | |||||
| C | »—1 | <N | £ | CN | |||||||
| + | 4- | + | + | ||||||||
| Jh | c | C | c | £ | |||||||
| +J | Li | ||||||||||
| w | u | Li | 4J | « | |||||||
| c | -U | 4- | ω | L | Li | ||||||
| w | ω | σ | £ | 4- | 4J | ||||||
| £ | c | HI | W | W | |||||||
| H | HI | c | £ |
X2
ΙΟ
O
U177 404
ISTR. X
CYKL 1 CYKL 2 CYKL 3 CYKL 4 CYKL 5 CYKL 6 CYKL 7 CYKL 8
INSTR. Χ+1
INSTR. Χ+3
| ŁADOWANIE | DEKODO- WANIE | WYSYŁA- NIE | WYKONA- NIE | ZAKOŃCZĘ- IIE | |
| ŁADOWANIE | DEKODO- WANTE | WYSYŁANIE | WYKONA- NIE | ZAKOŃCZE- NIE | |
| ŁADOWANIE | DEKODO- WANIE | JYSYŁA- NTE | WYKONA- NIE | ZAKOŃCZE- NIE | ZAPIS ZWROTNY |
| ŁADOWANIE | DEKODO- WANIE | WYSYŁA- NIE | WYKONA- NIE | ZAKOŃ- CZENIE |
ZAPIS
ZWROTNY
FIG. 7
WSKAŹNIK KOMPLETACJI , 7
START CYKLI 415
Λ 82)
WSKAŹNIK ZAPISU WSTĘPNEGO \
WSKAŹNIK PRZYPOZĄDKOWANIA.
7
| NUMER BUFORA | NUMER REJESTRU | INFORM. |
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| Ύ 1 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 |
FIG. 8a 8ϋ
WSKAŹNIK ZAPISU — WSTĘPN,. 84
WSKAŹNIK
KOMPLETACJI
PRZYPORZĄDKOWANIA
START CYKLU 6 <3i
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 |
82^
WSKAŹNIK ZAPISU WSTĘPNEGO <
¢84 \
WSKAŹNIK
KOMPLETACJI
WSKAŹNIK PRZYPORZĄDKOWANIA
7
START CYKLU 7
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 |
FIG. 8b
WSKAŹNIK FIG. 8c ZAPISU
WSTĘPNEGO ^WSKAŹNIK»
84KDMPLET/*
WSKAŹNIK
PRZYPORZĄDKOWANIA
7
START CYKLU 8
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 |
FIG. 8d
177 404
| CYKL 1 | CYKL 2 | CYKL 3 | CYKL 4 | CYKL 5 | CYKL 6 | CYKL 7 | CYKL 8 | |
| ISTR. Y | ŁADOWA- NIE | DEKODO- WANIE | ^§YŁA- | ^ΥΚ,ΟΝΑ- | ZAKOŃ- CZENIE |
| INSTR. Y + l | ŁADOWA- HUj | DEKODO- WANIE | WYKONA- NTE | ZAKOŃ- CZENIE |
| INSTR. Y + 2 | ŁADOWANIE | DEKODO- WANIE | WYSYŁA- NIE | WYKONA- NIE | Z^OŃCZfr |
| INSTR. Y+3 | IADOANIE | DEKODO- WANIE | WYSYŁA- J11E | 4YKONA- m | ZAKOŃCZE- NIE |
FIG. 9
WSKAŹNIK KOMPLETACJI
94'
WSKAŹNIK
90START CYKLI 415
| NUMER BUFORA | NUMER REJESTRU | INFORM. |
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 |
WSKAŹNIK
FIG. 10a
TACJI
PRZYPORZĄDKOWANIA 90
START CYKLU 6
| NUMER ’. BUFORA! | NUMER REJESTRU | INFORM. |
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| δ | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 |
WSKAŹNIK
KOMPLETACJI
WSKAŹNIK
START CYKLU 7
| NUMER BUFORA | NUMER REJESTRU | INFORM. |
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| ‘ 9 | ||
| 10 | ||
| 11 |
FIG. 10b
WSKAŹNIK FIG. 10C KOMPLETA94 \
WSKAŹNIK—
PRZYPORZĄDKOWANIA 90
START CYKLU 8
| NUMER BUFORA | NUMER REJESTRU | INFORM. |
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 5 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 |
90FIG. 10d
177 404
| X | X |
| ω | Ο |
| >< | |
| σι | 05 |
| Ο | Ο |
| ζ | 2 |
| α | < |
| X | 2 |
| •ό | Ο |
| X | |
| ο | > |
| G | 2 |
. <
X 5 X < £η 3 Η Ο X W υ Ο X Ε-Ι < W > ο X ο
S ω 2 X ηΩ •ό ο X Ο X Ο »-3 Η X X 2 ε-Η >τ> ω > ο υ 2 2 Q Wco WSh <-5 X u ω
X χ ω ο (Λ 05 ο ο 2 3 α < ω 2 ο
X
Ο >ι Ο 2
ο
Lł_
| X | X U |
| X | > |
| Εη | 05 |
| (Λ | ω |
| Ο | 2 |
| 2 | < |
| G | 2 |
| X | Ο |
| X | |
| 05 | >Η 2 |
177 404
| NUMER BUFORA | TYP instrukcji | #GPR PRZEZN. | #FPR PRZEZN. | SKOŃ- CZONE | WYJĄTEK | |
| JEDNOSTKA WYK. | EOK | |||||
| 0 | ||||||
| 2 | ||||||
| 3 | 22 | 1 | 2 | 0 | 0 | 0 |
| 4 | 24 | 1 | 1 | 0 | 1 | 0 |
| 5 | 28 | 0 | 0 | 0 | 0 | 0 |
| 6 7 8 9 10 11 12 13 14 15 | 26 | 1 | 1 | 0 | 1 | 0 |
FIG. 12a r
| NUMER BUFORA | TYP INSTRUKCJI | #GPR PRZEZN. | #FPR PRZEZN. | SKOŃ- CZONE | WYJĄTEK | |
| JEDNOSTKA WYK. | EOK | |||||
| 0 1 2 | ||||||
| 3 | 22 | 1 | 2 | 0 | 1 | 0 |
| 4 | 24 | 1 | 1 | 0 | 1 | 0 |
| 5 | 28 | 0 | 0 | 0 | 1 | 0 |
| 6 | 26 | 1 | 1 | 0 | 1 | 0 |
| 7 8 9 10 11 12 13 14 15 | 22 | 0 | 1 | 0 | 0 | 0 |
FIG. 12b
ΥΠ 404
| Numer buforu | Typ instrukcji | #GPR Przezn | #FPR Przezn. | Skoń- czono | Wyjątek | |
| Jednostka wykonawcza | EOK | |||||
| 0 | ||||||
| 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 22 | 1 | 1 | 0 | 1 | 0 |
FIG. 12c
Cykl 3 Cykl 4 Cykl 5 Cykl 6 Cykl 7 Cykl 8 Cykl 9 Cykl 10 Cykl 11 Cykl 12
WysylaInstr. a nie
Wykonanie loncz. / Zap.ZWR
| Tnstr. a+4 | Dekodo- wanie | |wysyiaI nie |
Wykon./ <ończ'.
Zap.ZWR.
FIG. 13
177 404
FIG. 14a
POCZĄTEK CYKLU 5
FIG. 14b
177 404 n POCZĄTEK CYKLU 6 _ - _
| NUMER BUFORA | NUMER REJESTRU | INFOR- MACJA | INFO. WAŻN7 | PRZE- NIE- SIENIE | nT§.żne | |
| 0 | ||||||
| 1 | ||||||
| WSKAŹNIK ZAPISU | 2 | |||||
| WSTĘPNEGO f-82 | 3 | |||||
| — | 4 | DANE | 1 | CA | 1 | |
| 5 | 0 | 0 | ||||
| WSKAŹNIK 84^, — | 6 | 0 | 1 | |||
| KOMPLETACJI | 7 | |||||
| WSKAŹNIK 80 > | 8 | |||||
| PRZYPORZĄDKOWANIA | 9 | |||||
| 10 | ||||||
| 11 |
FIG. 14c
POCZĄTEK CYKLU 7
WSKAŹNIK ZAPISU g2 WSTĘPNEGO '
WSKAŹNIK 84 ,
KOMPLETACJI
WSKAŹNIK 80
PRZYPORZĄDKOWANIA
| NUMER BUFORA | NUMER REJESTRU | INFO- RMA- CJA | INFOI MACJŚ WAŻNA | PRZE- NIE- SIENIE | ggi- WAZNF |
| 0 | |||||
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | 0 | 0 | |||
| 6 | 0 | 1 | |||
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
FIG. 14d
177 404 f82
WSKAŹNIK ZAPISU _ WSTĘPNEGO
WSKAŹNIK KOMPLETACJI i ' +
WSKAŹNIK PRZYPORZĄDKOWANIA
START CYKLU 8
| NUMER BUFORA | NUMER REJESTRU | INFO. | INFO. WA2NA | RRZE- g&n | PRZEN. WA2NE |
| 0 | |||||
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | 0 | 0 | |||
| 6 | DANE | 1 | CA | 1 | |
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
FIG. 14e
START CYKLU 9
WSKAŹNIK ZAPISU WSTĘPNEGO
WSKAŹNIK 30 v PRZYPORZĄDKOWANIA
WSKAŹNIK 84
KOMPLETACJI
| NUMER BUFORA | NUMER REJESTRU | INFO. | INFO. WAŻNA | PRZE- NIE- SIENIE | PRZEN. WAŻNE |
| 0 | |||||
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | DANE | 1 | 0 | ||
| 6 | DANE | 1 | CA | 1 | |
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
FIG. 14f m 404 <N
U β Φ φ β Ν -Ν μ <ο X 5
Γ—ί >1
Ο tO
O
LL.
“ar
Ή φ ω ν. φ.α μ ,μ Χ_β C
-ΠΤ
Ο C Μ-) -Ν G «3 Η 3
Ni
U
Ni
Ο β μ Ρ μ -w φ φ £ ·η □ φ ζ μ
Ni >
Ο β
μ μ φ ο £ *W β β 2 ο
«Χφ “Λ β β SŁ ω 4J (0 μ Ο 44 ο- μ ω φ 5 5 Ν Ν CO
Νί >ι
Ο
U
| ) | m | ||
| - y ► | •H | 1—ł | |
| 'Π | Ni | ||
| o | |||
| Ni Φ | U | ||
| •H +J | |||
| C Φ | *3* | ||
| 'N r-i | |||
| 1 | Φ O. | r—f | |
| Ό | 44 £ | 44 | |
| Φ* | w o | >1 | |
| Ni | N | 5 44 | o |
| •H | μ φ | ||
| β | o -η | ||
| 'N | Cu c | ||
| Φ | > φ | ||
| 44 | N 2 | n | |
| cn | μ o | ||
| 5 | 0-44 | r—1 |
>
Ο
Φ + + +
Φ Φ Φ μ
4->
ω β
Η μ μ μ
4J 4J -U en U] ω β c β
Η Η W
Dekodo- Wysyła- Wykon.· Kończ/
Instr. a+4 Iwanie lnie_ _ źaP i fiWJ
177 404
WSKAŹNIK
80'
WSKAŹNIK ZAPIS.U
J
WSTĘPNEGO
82'
POCZĄTEK CYKLU 4 (-84
WSKAŹNIK ZAPISp WSTĘPNEGO °ά
| NUMER BUFORA | NUMER REJESTRU | INF. | INF. | eRZHSHE- SII-NIF. | FPZaHE- TTpNTE |
| 0 | |||||
| 1 | |||||
| 2 | 0 | 0 | |||
| 3 | 0 | 0 | |||
| 4 | 0 | 1 | |||
| 5 | 0 | 0 | |||
| 6 | |||||
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
FIG. 16a
POCZĄTEK CYKLU 5
| NUMER BUFORA | NUMER REJESTRU | ENF. | INF. WAŻNA | iWNE- StENIE | trZćbuE- ETTOTF. waZME |
| 0 | |||||
| 1 | |||||
| 2 | DANE | 1 | 0 | ||
| 3 | DANE | 1 | 0 | ||
| 4 | 0 | 1 | |||
| 5 | 0 | 0 | |||
| 6 | 0 | 1 | |||
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
WSKAŹNIK
PRZYPORZĄDKOWDA
FIG. 16b
177 404
WSKAŹNIK ZAPISU
WSTĘPNEGO
WSKAŹN^S
KOMPLETACJI
WSKAŹNIK 80 'YPORZĄDKOWANIA
POCZĄTEK CYKLU 6
| NUMER BUFORA | NUMER REJESTRU | INFO- ST | ϊί^ΝΑ | PRZE- NIE- SIENIE | mii- $$NE |
| 0 | |||||
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | DANE | 1 | CĄ | 1 | |
| 5 | 0 | 0 | |||
| 6 | 0 | 1 | |||
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
FIG. 16c
WSKAŹNIK ZAPISU WSTĘPNEGO z 82
84^ _
WSKAŹNIK
KOMPLETACJI
WSKAŹNIK 80^
PRZYPORZĄDKOWANIA
POCZĄTEK CYKLU 7 i 8
| NUMER BUFORA | NUMER REJESTRU | 1 ? | [NFOR 1ACJA WAŻNA | PRZE- NIE- SIENIE | WAŻNE |
| 0 | |||||
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | 0 | 0 | |||
| 6 | 0 | 1 | |||
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
FIG. 16d
177 404
WSKAŹNIK -82
KOMPLETACJI84 1 'WSKAŹNIK— ZAPISU WSTĘPNEGO
WSKAŹNIK PRZY- 80 PORZĄDKOWANIA
WSKAŹNIK
KOMPLETACJI84 f
WSKAŹNIK1
ZAPISU WSTĘPNEGO
WSKAŹNIK PRZYPORZĄDKOWANIA
START CYKLU 9
| NUMER BUFORA | NUMER REJESTRU | INFO. | INFO. WAŻNA | PRZE- NIE- SIENIE | PRZEN. WAŻNE |
| 0 | |||||
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | DANE | 1 | 0 | ||
| 6 | 0 | 1 | |||
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
FIG. 16e
START CYKLU
| NUMER BUFORA ; | NUMER REJESTRU | INFO. | INFO, WA2N1 | PRZE- NIE- SIENIE | PRZEN. WA2NE |
| 0 | |||||
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | |||||
| 6 | 0 | 1 | |||
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
FIG. 16f
177 404
WSKAŹNIK ZAPISU WSTĘPNEGO 82 i
WSKAŹNIK
KOMPLETACJI
WSKAŹNIK
PRZYPORZĄDKOWANIA
WSKAŹNIK
PRZYPORZĄDKOWANI^80
WSKAŹNIK 84 ZAPISU WSTĘPNEGO
WSKAŹNIK
ZAPISU
WSTĘPNEGO
82'
POCZĄTEK CYKLU 11
J
| NUMER BUFORA | NUMER REJESTRU | INFO- | INFO- | PRZE- NIE- SIENIE | WAŻNE |
| 0 | |||||
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | |||||
| 6 | DANE | 1 | CA | 1 | |
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
FIG. 16g
POCZĄTEK CYKLU 12
| NUMER BUFORA | NUMER REJESTRU | INFO- p- | INFOR •iACJA WAŻNA | JE- SIENIE | iW; rie: WAŻNF |
| 0 | |||||
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | |||||
| 6 | |||||
| 7 | |||||
| 8 | |||||
| 9 | |||||
| 10 | |||||
| 11 |
FIG. 16h
Departament Wydawnictw UP RP. Nakład 70 egz.
Cena 6,00 zł.
Claims (21)
- Zastrzeżenia patentowe1. Sposób przetwarzania informacji w systemie komputerowym, w którym wysyła się instrukcje do układów wykonawczych dla ich wykonania i określa się dla każdej instrukcji, przed jej wykonaniem, czy może powstać warunek wyjątkowy w wyniku wykonania danej instrukcji przez układy wykonawcze, znamienny tym, że wysyła się sygnał wskazujący kompletność instrukcji w odpowiedzi na stwierdzenie, że warunek wyjątkowy niejest możliwy w wyniku wykonania tej instrukcji przez układy wykonawcze, przy czym sygnał wskazujący wysyła się niezależnie od tego czy układy wykonawcze skończyły wykonywanie tej instrukcji.
- 2. Sposób według zastrz. 1, znamienny tym, że jako instrukcję stosuje się instrukcję szczególną, przy czym instrukcję szczególnąpoprzedza się ciągu instrukcji przez wykonawczą instrukcję szeregową.
- 3. Sposób według zastrz. 2, znamienny tym, że wykonawczą instrukcję szeregową wykonuje się przez układy wykonawcze w odpowiedzi na wysłanie sygnału wskazującego zanim układy wykonawcze zakończą wykonywanie instrukcji szczególnej.
- 4. Sposób według zastrz. 3, znamienny tym, że wykonawczą instrukcję szeregową poprzedza się w ciągu instrukcji przez inną instrukcję, a wykonanie wykonawczej instrukcji szeregowej uzależnia się od informacji o wyniku wykonania tej innej instrukcji.
- 5. Sposób według zastrz. 4, znamienny tym, że wykonawczą instrukcję szeregową wykonuje się w odpowiedzi na wysłanie sygnału wskazującego, jeśli układy wykonawcze zakończą wykonywanie tej innej instrukcji.
- 6. Sposób według zastrz. 3, znamienny tym, że pierwszy etap wykonawczej instrukcji szeregowej wykonuje się przed wysłaniem sygnału.
- 7. Sposób według zastrz. 6, znamienny tym, że drugi etap wykonawczej instrukcji szeregowej wykonuje się w odpowiedzi na wysłanie sygnału wskazującego zanim układy wykonawcze zakończą wykonywanie tej instrukcji szczególnej.
- 8. Sposób według zastrz. 7, znamienny tym, że jako wykonawczą instrukcję szeregową stosuje się instrukcję pamięci.
- 9. Sposób według zastrz. 1, znamienny tym, że zapisuje się sygnał wskazujący w buforze przemianowania w odpowiedzi na określanie, że warunek wyjątkowy nie może wynikać z wykonywania instrukcji przez układy wykonawcze.
- 10. Sposób według zastrz. 9, znamienny tym, że zapisuje się sygnał wskazujący w buforze przemianowania, jeśli instrukcja należy do typu instrukcji wykonywanych w sposób domyślny.
- 11. Sposób według zastrz. 9, znamienny tym, że usuwa się sygnał wskazujący z bufora przemianowania w odpowiedzi na wysłanie tego sygnału.
- 12. Sposób według zastrz. 1, znamienny tym, że zapisuje się sygnał wskazujący do bufora przemianowania, jeśli instrukcjajest instrukcją zmiennoprzecinkową, przeznaczoną do wykonania w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym, nawetjeśli warunek wyjątkowy może powstać w wyniku wykonania instrukcji zmiennoprzecinkowej.
- 13. Sposób według zastrz. 1, znamienny tym, że jako instrukcję stosuje się instrukcję szczególną, przy czym w trakcie wysyłania sygnału wskazującego wysyła się ten sygnał w odpowiedzi na stwierdzenie, że warunek wyjątkowy nie jest możliwy w wyniku wykonania instrukcji przez układy wykonawcze jeśli co najmniej jeden z warunków, to jest warunek wyjątkowy nie jest możliwy w wyniku wykonania poprzedniej instrukcji przez układy wykonawcze i warunek wyjątkowy nie wynika z wykonywania realizowanej instrukcji przez układy wykonawcze, jest prawdziwy dla każdej poprzedniej instrukcji poprzedzającej tę instrukcję szczególną w ciągu instrukcji wysyłanych do układów wykonawczych.
- 14. Sposób według zastrz. 1, znamienny tym, że następnie określa się, czy instrukecajest instrukcją zmiennoprzecinkową, przeznaczoną do wykonania przez układy wykonawcze w nie177 404 precyzyjnym, nieodwracalnym trybie zmiennoprzecinkowym, przy czym w trakcie wysyłania sygnału wskazującego wysyła się sygnał w odpowiedzi na stwierdzenie, że instrukcja jest instrukcj ązmiennoprzecinkową przeznaczonądo wykonania przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym, przy czym wysyłanie sygnału wskazującego jest niezależne do tego czy układy wykonawcze skończyły wykonywanie tej instrukcji.
- 15. Sposób według zastrz. 1, znamienny tym, że jako instrukcję stosuje się instrukcję zmiennoprzecinkową.
- 16. Sposób według zastrz. 15, znamienny tym, że instrukcję zmiennoprzecinkową wykonuje się przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym.
- 17. Sposób według zastrz. 15 albo 16, znamienny tym, że zapisuje się sygnał wskazujący w buforze przemianowania w odpowiedzi na określenie, że instrukcja jest instrukcją zmiennoprzecinkową, przeznaczoną do wykonania przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym.
- 18. Sposób według zastrz. 17, znamienny tym, że usuwa się sygnał wskazujący z bufora przemianowania w odpowiedzi na wysłanie tego sygnału.
- 19. Sposób według zastrz. 15 albo 16, znamienny tym, że w trakcie wysyłania sygnału wskazującego wysyła się ten sygnał w odpowiedzi na stwierdzenie, że instrukcja jest instrukcją zmiennoprzecinkową, przeznaczoną do wykonania przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym, jeśli co najmniej jeden z warunków, to jest warunek, że poprzednia instrukcja jest instrukcją zmiennoprzecinkową, przeznaczoną do wykonania przez układy wykonawcze w nieprecyzyjnym, nieodwracalnym zmiennoprzecinkowym trybie wyjątkowym, warunek, że stan wyj ątkowy nie jest możliwy w wyniku wykonania poprzedniej instrukcji przez układy wykonawcze i warunek wyjątkowy nie wynika z wykonywania poprzedniej instrukcji przez układy wykonawcze, jest prawdziwy dla każdej poprzedniej instrukcji, poprzedzającej tę instrukcję zmiennoprzecinkową w ciągu instrukcji wysyłanych do układów wykonawczych.
- 20. Sposób według zastrz. 15 albo 16, znamienny tym, że jako instrukcję stosuje się instrukcję szczególną przy czym instrukcję szczególną poprzedza się w ciągu instrukcji przez szeregową instrukcję wykonawczą.
- 21. Sposób według zastrz. 20, znamienny tym, że następnie szeregową instrukcję wykonawczą wykonuje się przez układy wykonawcze w odpowiedzi na wysłanie sygnału wskazującego zanim układy wykonawcze zakończyły wykonywania instrukcji szczególnej.* * *
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US22132994A | 1994-03-31 | 1994-03-31 | |
| PCT/EP1994/004313 WO1995027245A1 (en) | 1994-03-31 | 1994-12-27 | Processing system and method of operation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| PL316532A1 PL316532A1 (en) | 1997-01-20 |
| PL177404B1 true PL177404B1 (pl) | 1999-11-30 |
Family
ID=22827362
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PL94316532A PL177404B1 (pl) | 1994-03-31 | 1994-12-27 | Sposób przetwarzania informacji w systemie komputerowym |
Country Status (15)
| Country | Link |
|---|---|
| US (1) | US5548738A (pl) |
| EP (1) | EP0753172B1 (pl) |
| JP (1) | JP2682812B2 (pl) |
| KR (1) | KR100209831B1 (pl) |
| CN (1) | CN1099632C (pl) |
| AT (1) | ATE181161T1 (pl) |
| CA (1) | CA2137053A1 (pl) |
| CZ (1) | CZ9602771A3 (pl) |
| DE (1) | DE69419036T2 (pl) |
| HU (1) | HUT75823A (pl) |
| MY (1) | MY131679A (pl) |
| PL (1) | PL177404B1 (pl) |
| RU (1) | RU2142157C1 (pl) |
| TW (1) | TW260765B (pl) |
| WO (1) | WO1995027245A1 (pl) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5625835A (en) * | 1995-05-10 | 1997-04-29 | International Business Machines Corporation | Method and apparatus for reordering memory operations in a superscalar or very long instruction word processor |
| US5708837A (en) * | 1995-06-30 | 1998-01-13 | International Business Machines Corporation | Method and apparatus for register renaming in a computer system using a separate arithmetic available queue |
| US5881306A (en) * | 1996-12-17 | 1999-03-09 | International Business Machines Corporation | Instruction fetch bandwidth analysis |
| 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 |
| 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 |
| 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 |
| 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 |
| US5875326A (en) * | 1997-04-25 | 1999-02-23 | International Business Machines Corporation | Data processing system and method for completing out-of-order instructions |
| US7089404B1 (en) | 1999-06-14 | 2006-08-08 | Transmeta Corporation | Method and apparatus for enhancing scheduling in an advanced microprocessor |
| JP3808013B2 (ja) * | 2002-07-05 | 2006-08-09 | 富士通株式会社 | 命令実行装置 |
| EP2169538A4 (en) * | 2007-06-20 | 2010-12-01 | Fujitsu Ltd | INSTRUCTIONS PROCESSOR |
| EP2169539A4 (en) * | 2007-06-20 | 2010-12-29 | Fujitsu Ltd | INSTRUCTION MANAGEMENT DEVICE AND METHOD |
| RU2406127C2 (ru) * | 2007-09-18 | 2010-12-10 | Виктор Анатольевич Кущенко | Цифровой процессор кущенко в.а. |
| TWI383364B (zh) * | 2008-01-31 | 2013-01-21 | Chimei Innolux Corp | 液晶顯示裝置及其驅動模組 |
| GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
| US9710272B2 (en) | 2014-04-25 | 2017-07-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Computer processor with generation renaming |
| US10209992B2 (en) | 2014-04-25 | 2019-02-19 | Avago Technologies International Sales Pte. Limited | System and method for branch prediction using two branch history tables and presetting a global branch history register |
| JP7043985B2 (ja) * | 2018-06-13 | 2022-03-30 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
| CN112506570B (zh) * | 2020-12-03 | 2023-09-08 | 长沙树根互联技术有限公司 | 设备指令下发方法、系统和服务器 |
| JP2024025407A (ja) * | 2022-08-12 | 2024-02-26 | 富士通株式会社 | 演算処理装置および演算処理方法 |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5051940A (en) * | 1990-04-04 | 1991-09-24 | International Business Machines Corporation | Data dependency collapsing hardware apparatus |
| US5341482A (en) * | 1987-03-20 | 1994-08-23 | Digital Equipment Corporation | Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions |
| US4879676A (en) * | 1988-02-29 | 1989-11-07 | Mips Computer Systems, Inc. | Method and apparatus for precise floating point exceptions |
| JP2858140B2 (ja) * | 1988-10-19 | 1999-02-17 | アポロ・コンピューター・インコーポレーテッド | パイプラインプロセッサ装置および方法 |
| US5136697A (en) * | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
| US5129067A (en) * | 1989-06-06 | 1992-07-07 | Advanced Micro Devices, Inc. | Multiple instruction decoder for minimizing register port requirements |
| US5077692A (en) * | 1990-03-05 | 1991-12-31 | Advanced Micro Devices, Inc. | Information storage device with batch select capability |
| US5261066A (en) * | 1990-03-27 | 1993-11-09 | Digital Equipment Corporation | Data processing system and method with small fully-associative cache and prefetch buffers |
| IL94115A (en) * | 1990-04-18 | 1996-06-18 | Ibm Israel | Dynamic process for creating pseudo-random test templates for pompous hardware design violence |
| US5197135A (en) * | 1990-06-26 | 1993-03-23 | International Business Machines Corporation | Memory management for scalable compound instruction set machines with in-memory compounding |
| US5214763A (en) * | 1990-05-10 | 1993-05-25 | International Business Machines Corporation | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
| US5193167A (en) * | 1990-06-29 | 1993-03-09 | Digital Equipment Corporation | Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system |
| JPH04172533A (ja) * | 1990-11-07 | 1992-06-19 | Toshiba Corp | 電子計算機 |
| US5222244A (en) * | 1990-12-20 | 1993-06-22 | Intel Corporation | Method of modifying a microinstruction with operands specified by an instruction held in an alias register |
| RU2002298C1 (ru) * | 1990-12-28 | 1993-10-30 | Институт точной механики и вычислительной техники им.С.А.Лебедева РАН | Устройство дл выполнени подпрограмм |
| EP0529303A3 (en) * | 1991-08-29 | 1993-09-22 | International Business Machines Corporation | Checkpoint synchronization with instruction overlap enabled |
| US5274818A (en) * | 1992-02-03 | 1993-12-28 | Thinking Machines Corporation | System and method for compiling a fine-grained array based source program onto a course-grained hardware |
| US5257216A (en) * | 1992-06-10 | 1993-10-26 | Intel Corporation | Floating point safe instruction recognition apparatus |
| US5257214A (en) * | 1992-06-16 | 1993-10-26 | Hewlett-Packard Company | Qualification of register file write enables using self-timed floating point exception flags |
| US5268855A (en) * | 1992-09-14 | 1993-12-07 | Hewlett-Packard Company | Common format for encoding both single and double precision floating point numbers |
| US5450560A (en) * | 1992-12-21 | 1995-09-12 | Motorola, Inc. | Pointer for use with a buffer and method of operation |
-
1994
- 1994-06-17 TW TW083105511A patent/TW260765B/zh active
- 1994-11-30 CA CA002137053A patent/CA2137053A1/en not_active Abandoned
- 1994-12-26 JP JP6323362A patent/JP2682812B2/ja not_active Expired - Lifetime
- 1994-12-27 AT AT95905592T patent/ATE181161T1/de not_active IP Right Cessation
- 1994-12-27 DE DE69419036T patent/DE69419036T2/de not_active Expired - Fee Related
- 1994-12-27 RU RU96119968A patent/RU2142157C1/ru active
- 1994-12-27 HU HU9602594A patent/HUT75823A/hu unknown
- 1994-12-27 WO PCT/EP1994/004313 patent/WO1995027245A1/en not_active Ceased
- 1994-12-27 PL PL94316532A patent/PL177404B1/pl not_active IP Right Cessation
- 1994-12-27 EP EP95905592A patent/EP0753172B1/en not_active Expired - Lifetime
- 1994-12-27 CZ CZ19962771A patent/CZ9602771A3/cs unknown
- 1994-12-29 MY MYPI94003557A patent/MY131679A/en unknown
-
1995
- 1995-01-16 CN CN95101692A patent/CN1099632C/zh not_active Expired - Fee Related
- 1995-03-30 KR KR1019950006996A patent/KR100209831B1/ko not_active Expired - Fee Related
- 1995-06-07 US US08/483,905 patent/US5548738A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| CN1114763A (zh) | 1996-01-10 |
| HU9602594D0 (en) | 1996-11-28 |
| HUT75823A (en) | 1997-05-28 |
| DE69419036D1 (de) | 1999-07-15 |
| CZ9602771A3 (cs) | 2002-06-12 |
| KR100209831B1 (ko) | 1999-07-15 |
| WO1995027245A1 (en) | 1995-10-12 |
| PL316532A1 (en) | 1997-01-20 |
| KR950027565A (ko) | 1995-10-18 |
| JP2682812B2 (ja) | 1997-11-26 |
| MY131679A (en) | 2007-08-30 |
| EP0753172B1 (en) | 1999-06-09 |
| CA2137053A1 (en) | 1995-10-01 |
| DE69419036T2 (de) | 2000-01-27 |
| ATE181161T1 (de) | 1999-06-15 |
| EP0753172A1 (en) | 1997-01-15 |
| RU2142157C1 (ru) | 1999-11-27 |
| JPH07271584A (ja) | 1995-10-20 |
| US5548738A (en) | 1996-08-20 |
| TW260765B (pl) | 1995-10-21 |
| CN1099632C (zh) | 2003-01-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| PL177404B1 (pl) | Sposób przetwarzania informacji w systemie komputerowym | |
| EP0636256B1 (en) | Superscalar risc processor instruction scheduling | |
| US5546599A (en) | Processing system and method of operation for processing dispatched instructions with detected exceptions | |
| US6735685B1 (en) | System and method for handling load and/or store operations in a superscalar microprocessor | |
| JP3520371B2 (ja) | レジスタ・ファイル・バックアップ・キュー | |
| US5559976A (en) | System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions | |
| US5644779A (en) | Processing system and method of operation for concurrent processing of branch instructions with cancelling of processing of a branch instruction | |
| EP0762270A2 (en) | Microprocessor with load/store operation to/from multiple registers | |
| US6192461B1 (en) | Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle | |
| US5524224A (en) | System for speculatively executing instructions wherein mispredicted instruction is executed prior to completion of branch processing | |
| CA2137046C (en) | Processing system and method of operation | |
| KR20040005927A (ko) | 데이터 처리장치에서의 소스 레지스터 록킹 | |
| US5805916A (en) | Method and apparatus for dynamic allocation of registers for intermediate floating-point results | |
| KR100237989B1 (ko) | 슈퍼스칼라 프로세서에서 리네임 버퍼를 효율적으로 사용하기 위한 방법 및 시스템 | |
| US6266761B1 (en) | Method and system in an information processing system for efficient maintenance of copies of values stored within registers | |
| WO1995016955A1 (en) | Load latency of zero for floating point load instructions using a load data queue |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Decisions on the lapse of the protection rights |
Effective date: 20061227 |