PL114858B1 - Data processing system - Google Patents

Data processing system Download PDF

Info

Publication number
PL114858B1
PL114858B1 PL1974170324A PL17032474A PL114858B1 PL 114858 B1 PL114858 B1 PL 114858B1 PL 1974170324 A PL1974170324 A PL 1974170324A PL 17032474 A PL17032474 A PL 17032474A PL 114858 B1 PL114858 B1 PL 114858B1
Authority
PL
Poland
Prior art keywords
microprogram
memory
register
multiplexer
signal
Prior art date
Application number
PL1974170324A
Other languages
English (en)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed filed Critical
Publication of PL114858B1 publication Critical patent/PL114858B1/pl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

Przedmiotem wynalazku jest system przetwarza¬ nia danych, wyposazony w procesor przystosowany do obslugi urzadzen peryferyjnych w oparciu o przypisane im priorytety.Pojemnosc ukladów buforowych wymagana co najmniej dla najszybszych urzadzen peryferyjnych zwiazanych z systemem przetwarzania danych mozna zmniejszyc na zasadzie przypisania poszcze¬ gólnym urzadzeniom peryferyjnym priorytetów i umozliwienia urzadzeniom o priorytetach wyz¬ szych przerywania obslugi Urzadzen o priorytetach nizszych. Procedury obslugi przerwan wymagaja przetwarzania odpowiednich mikroprogramów o róznym stopniu skomplikowania, a przetwarzanie to pochlania na ogól znaczna czesc czasu pracy procesora, co jest zauwazalne zwlaszcza przy skla¬ dowaniu ,i odtwarzaniu mikrorozkazów i danych urzadzenia, 'którego obsluga zostaje przerwana. iZnane sa na przyklad z opisów patentowych USA nr 3 282 239 i 3 599 162 systemy przetwarzania danych zawierajace zespól przetwarzajacy, który odbiera zadania przerwania, na przyklad z urza¬ dzen peryferyjnych. Zadania sa przypisane do wie¬ lu róznych poziomów priorytetu, tak ze zadanie o wyzszym poziomie priorytetu ma pierwszenstwo przed zadaniami o nizszych poziomach priorytetu' Zespól przetwarzajacy ma obwód kontroli priory¬ tetu, który wybiera zadanie o wyzszym priorytecie i uaktywnia odpowiedni poziom lub stan progra¬ mu, który obsluguje zadanie. 10 15 20 25 30 Programy sa zazwyczaj przetrzymywane w pa¬ mieci, przy czym zwykle stosuje sie specjalny re¬ jestr zwany rejestrem adresów programu dla adre¬ sowania poszczególnych instrukcji programowych w pamieci. Rejestr ten jest zazwyczaj inkremento¬ wany tak, aby nadazal za programem, to znaczy jedna instrukcja w okreslonym czasie.Z opisu patentowego USA nr 3 373 408 znane jest stosowanie wielu rejestrów adresów programu, przy czym kazdy odpowiada jednemu poziomowi lub stanowi program. Tak wiec zadany poziom lub stan programu moze byc uaktywniony w prosty sposób przez wybranie odpowiedniego, jednego z rejestrów dla adresowania pamieci. Wybrany re¬ jestr bedzie oczywiscie inkrementowany w zwykly sposób, tak aby podazal za pogramem. Zaopatrze¬ nie w wiele rejestrów adresów programu znacznie ulatwia przelaczanie z jednego poziomu lub stanu programu na drugi, gdy wystepuje przerwanie.To znane rozwiazanie posiada te wade, ze chociaz ulatwia obsluge zadan przerwania, lecz nie Wspo¬ maga wykonania programów, które nie sa zwiaza¬ ne z zadaniami przerwania. W szczególnosci, nie ma tu wspomagania w wykonywaniu zgrupowa¬ nych podprogramów, to jest gdy jeden program zmienia sie na drugi program lub podprogram, dla którego przewidywany jest powrót.Celem wynalazku jest pokonac to ograniczenie przez opracowanie systemu ulatwiajacego wykony¬ wanie zgrupowanych podprogramów. System prze- 114 858114 858 3 twarzania danych, wyposazony w mikroprogramo- wo sterowany procesor majacy mikroprogramowa pamiec, pamiec operacyjna, uklad sterowania pa¬ mieci operacyjnej i wiele milkroprogramowych re¬ jestrów adresowych wybieranych odpowiednio dla adresowania mikroprogramowej pamieci, wiele urzadzen peryferyjnych oraz uklad priorytetu od¬ bierajacy sygnaly zadania przerwania z urzadzen peryferyjnych i wytwarzajacy sygnal selekcji wskazujacy identycznosc urzadzenia peryferyjnego, z którego pochodzi wybrany sygnal zadania, wedlug wynalazku charakteryzuje sie tym, ze multiplekser znajdujacy sie w ukladzie sterowania pamieci ope- pflyjnaj swy»Hpieewszym wejsciem polaczony jest {' Arila-lLdrd fcrto&ytetp na którego wyjsciu wystepuje ygnal selekcji. \ l ^J3JB^/^uS^»^lJsc^em multiplekser polaczony iesLvz» wyjsciemlicznika rewersyjnego. Ponadto wyjScoe^TnuIt^le^sera jest polaczone z mikropro- gramowym rejestrem adresowym dla adresowania mikroprogramowej pamieci, przy czym na wyjsciu multipleksera wystepuje sygnal z pierwszego wej¬ scia przy obecnosci sygnalu zadania, a przy braku sygnalu zadania na wyjsciu tego mutlipleksera wy¬ stepuje sygnal z drugiego jego wejscia.Multiplekser jest polaczony z mikroprogramo- wym rejestrem adresowym poprzez rejestr identy¬ fikacja poziomu, którego wyjscie jest polaczone z komparatorem polaczonym jednoczesnie z pierw¬ szym wejsciem multipleksera dla porównania za¬ wartosci rejestru identyfikacji poziomu z wartoscia sygnalu selekcji z ukladu priorytetu i wytworzenia sygnalu przerwania jesli zawartosci rejestru sa wieksze niz wartosc sygnalu selekcji.Do mikroprogramowego rejestru adresowego do¬ laczony jest poprzez drugi multiplekser tor wielo- liniowy dolaczony do wszystkich urzadzen peryfe¬ ryjnych, Ten drugi multiplekser jest sterowany sygnalem przerwania aby mógl spowodowac prze¬ kazywanie startowych adresów mikroprogramo- wych z urzadzen peryferyjnych wytwarzajacych przerwanie poprzez tor wieloliniowy do aktualnie wybranego mikroprogramowego rejestru adreso¬ wego.Przedmiot wynalazku jest przedstawiony w przy¬ kladzie wykonania na rysunku, na którym fig. 1 przedstawia ogólny schemat blokowy systemu przetwarzania danych, fig. 2 <— schemat blokowy czesci systemu przedstawionego na fig. 1, która odpowiada zmianom poziomu adresowego pamieci mikroprogramowej wynikajacymi z zadania wysy¬ lanego przez urzadzenie peryferyjne, fig. 3 '—sche¬ mat blokowy czesci systemu z fig. 1, która odpo¬ wiada za zmiany poziomu mikroprogramowego, a fig. 4 przedstawia schemat blokowy czesci syste¬ mu z fig. 1 zwiazanej z glównymi operacjami pa¬ mieciowymi.Na figurze 1 przedstawiono uklad pamieci 10 Obejmujacy pamiec mikroprogramowa 11 i pamiec operacyjna lub pamiec danych 12. Obie pamieci 11 i 12 przedstawiono jako adresowane niezaleznie.Pamieci te sa przedstawione w postaci bloków o (róznych rozmiarach. Ma to na celu pokaizanie, ze maja one slowa o róznych dlugosciach, a rów¬ niez rózne pojemnosci informacyjne. Zaleca sie, aby pamieci te byly budowane z podobnych modu¬ lów pólprzewodnikowych w celu otrzymania poje¬ dynczej jednostki o oddzielnych ukladach adreso¬ wych. Uklad sterowania 13 pamieci mikroprogra- 5 mowej jest przedstawiony lacznie z torem adreso¬ wym 14 pamieci i torem rozkazowym 15, który jest torem dwukierunkowym umozliwiajacym za¬ pisywanie materialu mikroprogramowego, jak rów¬ niez odczytywanie go do celów zwiazanych ze ste- io rowaniem.W podobny sposób przedstawiono uklad sterowa¬ nia 16 pamieci operacyjnej wyposazony w tor adre¬ sowy 17 i dwukierunkowa szyne danych 18 pola¬ czona z pamiecia operacyjna 12. 15 Dekoder mikrorozkazów 19 dekoduje mlkrorozka- zy pobrane z pamieci 11 przez uklad sterujacy 13 i przesylane linia 20.Dekoder 19 generuje sygnaly sterujace przezna¬ czone dla glównych ukladów logicznych i jednostki 20 arytmetycznej: lub ukladu obróbki danych 21. De¬ koder 19 przetwarza równiez sygnaly sterujace sko¬ kami mikroprogramowymi dla ukladu sterowania 13 pamieci mikroprogramowej II.Przedstawiono dwukierunkowe polaczenia 22 i 23 25 pomiedzy ukladem obróbki danych 21, a dekoderem mikrorozkazów 19 i ukladem sterujacym 16 pamie¬ ci operacyjnej. Podobne dwukierunkowe polacze¬ nia 24, 25, 26, 27 znajduja sie pomiedzy ukladem obróbki danych 21, a odpowiednio: pamiecia robo- 30 cza 28, rejestrami roboczymi 29, pamiecia obrazo¬ wa 30 i peryferyjnym systemem sterujacym 31.Pamiec robocza 28 jest bardzo szybka pamiecia no¬ tatnikowa o organizacji slowowej, wykorzystywana w zwykly sposób przez uklad obróbki danych 21. 35 Zaleca sie, aby wszystkie adresy pamieci robo¬ czej byly dostepne dla poziomów 8—15 aktywnosci procesora, natomiast aby tylko czesc adresów — a mianowicie polowa — byla dostepna dla pozio¬ mów mikroprogramowych zwiazanych z urzadze- 40 niami peryferyjnymi. W obu polówkach tej pamie¬ ci zarezerwowano komórki przewidziane dla znacz¬ ników. Pozostale komórki sa przypisane rejestrom zakresowym, informacjom zwiazanym z tlumacze¬ niem (translation slaves) stalym, slowom steruja- 45 cym urzadzen peryferyjnych i innym rejestrom zwiazanym z zadaniami dostepu mikroprograrhu.Pamiec robocza 28 jest bardzo szybka pamiecia notatnikowa o pojemnosci 256 slów 32-ibitowych, która umozliwia wykonanie dwu odczytów i jedne- 50 go zapisu w jednym mikrorozkazie, (Rejestry robocze 29 zostana opisane bardziej szczególowo w polaczeniu z ukladami mikroprogra- mowania wielopoziomowego. Pamiec obrazowa 30 sklada sie z rejestrów adresowalnych, które infor- 55 muja procesor o zawartosci wszystkich rejestrów pozostalych, przy czym mikroprogram przechowy¬ wany w pamieci mikroprogramowej 11 ma dostep jedynie do niektórych rejestrów pamieci obrazo¬ wej. 60 Sterujacy system peryferyjny 31 obsluguje od strony procesora koncówki szyny 32 urzadzen pe¬ ryferyjnych i jest wyposazony w siec prioryterów, okreslajaca które sposród urzadzen peryferyjnych i w jakim czasie moze uzyskac dostep do proce- 65 sora.114 858 6 Kazde urzadzenie peryferyjne jest podlaczone do systemu interfejsowego szyny peryferyjnej 32 za posrednictwem zlacza, które przepuszcza sygnaly sterujace urzadzen peryferyjnych generowane przez mikroprogram, a równiez wprowadza lub wyprowadza informacje. Przewidziano specjalne zlacza, w które sa wyposazone: pamiec dyskowa 33, czytnik kart 34, drukarka 35, monitor ekranowy 36, interfejs standardowy 37 i uklad bezposredniego wprowadzania danych 38. W przypadku wyposaze¬ nia systemu w uklad bezposredniego wprowadza¬ nia danych nalezy rozszerzyc pamiec mikroprogra- mowa, co zaznaczono na fig. 1 linia przerywana tworzaca dodatkowy blok 39.Linia przerywana 40 zaznaczono na fig. 2 inter¬ fejs dolaczony do zlaczy urzadzen peryferyjnych 33—37 z fig. 1, a linia ta odpowiada w ogólnosci polaczeniu 32 z fig. 1. Pierwszy tor wieloliniowy 41 wyprowadzony z interfejsu 40 zostaje pobudzony, gdy jakies urzadzenie peryferyjne zazada dostepu do procesora. Dekoder priorytetów na podstawie pobudzenia toru 41 decyduje, które z urzadzen pe¬ ryferyjnych ma pierwszenstwo w stosunku do in¬ nych urzadzen, które w tym samym czasie równiez zadaja dostepu.W ogólnosci, najwygodniej jest w taki sposób zorganizowac tor wieloliniowy 41, aby obejmowal on po jednej linii wyprowadzonej z lacza kazdego urzadzenia peryferyjnego.W przykladzie zastosowano jednak bardziej zwarte kodowanie, aby uniknac ograniczenia doty¬ czacego liczby obslugiwanych laczy urzadzen pery¬ feryjnych.Sygnal na wyjsciu 43 sieci kodowania prioryte¬ tu 42, który identyfikuje okreslone lacze peryfe¬ ryjne, reprezentuje w kazdej chwili zadanie o naj¬ wiekszym priorytecie. Sygnal pojawiajacy sie na wyjsciu 43 jest przesylany linia 46 do ukladu 47, 'który wysyla sygnal obecnosci linia 48 do urzadze¬ nia peryferyjnego o danym priorytecie. Pod wply¬ wem sygnalu 'Obecnosci na linii 48 wybrane lacze pobudza wieloliniowy tor 49 adresem pamieci mi- kroprogramowej, który odpowiada poczatkowi okreslonego programu wymaganego do obslugi da¬ nego zadania. Moze to dotyczyc transmisji infor¬ macji i/lub sterowania okreslonej fazy roboczej urzadzenia peryferyjnego.Tor wieloliniowy 49 jest wspólny dla wszystkich laczy peryferyjnych systemu. Drugi wieloliniowy tor 50, wspólny dla wszystkich laczy, jest równiez ladowany w tym samym czasie informacja prze¬ znaczona dla rejestru modyfikujacego procesora.Sygnal ustawiony na wyjsciu 43 sieci kodowania priorytetu 42 jest równiez podawany do drugiej sieci kodowania priorytetu 51, która na wyjsciu 52 dostarcza sygnal reprezentujacy poziom milkropro- gramowy odpowiadajacy wybranemu urzadzeniu peryferyjnemu. Przedstawiono dwie sieci kodujace 42 i 51 ze wzgledu na mozliwosc wykorzystywania tego samego poziomu mikroprogramowego przez dwa lub wiecej urzadzenia peryferyjne i zwiazana z tym koniecznosc identyfikacji wybranego lacza (na linii 48) i odpowiadajacego mu poziomu mikro¬ programowego {na linii 52). Fizycznie, sieci koduja¬ ce 42 i 51 moga byc wykonane w postaci pojedyn¬ czej jednostki wyposazonej w wyjscia wyprowadzo¬ ne z jej róznych stopni.Wynik dotyczacy decyzji o wyborze priorytetu i okreslenia poziomu mikroprogramowego zadan 5 urzadzen peryferyjnych jest przesylany z wyjscia 52 drugiej sieci kodowania priorytetu 51 do wej¬ scia multipleksera 53. Multiplekser 53 wybiera jedno sposród swych dwcch wejsc, na które jest podawany sygnal z wyjscia drugiej sieci kodowa¬ lo nia 51 i sygnal z wyjscia licznika rewersyjnego 55 wykorzystywanego do okreslania poziomów mikro- programowych operacji procesora nie zwiazanych z zadaniami urzadzen peryferyjnych. Multiplekser 53 dostarcza na wyjsciu 56 sygnalu przesylanego do 15 rejestru identyfikacji poziomu 57, który to rejestr ma wyjscie wieloliniowe 58.Poziomy mikroprogramowe zwiazane z operacja¬ mi urzadzen peryferyjnych maja priorytet taki, ze multiplekser bedzie faworyzowal swoje wejscie 52 20 za wyjatkiem przypadku, gdy nie wystepuje zada¬ nie zwiazane z operacjami urzadzen peryferyjnych.Równiez zadanie wysylane przez urzadzenia pe¬ ryferyjne maja okreslone priorytety i poziom mi- kroprogramowy moze przerwac poziom o priory- 25 tecie nizszym. Operacjom peryferyjnym przypo¬ rzadkowano siedem poziomów, sa one reprezento¬ wane liczbami binarnymi od 1 do 7, przy czym wartosc „1" reprezentuje priorytet najwyzszy.Przerwania poziomów wywolywane zadaniami •w wysylanymi przez urzadzenia peryferyjne sa obslu¬ giwane za pomoca komperatora 59, który porów¬ nuje sygnaly ustawiony na wyjsciu sieci koduja¬ cej 51, przesylany odgalezieniem 60, z sygnalem na wyjsciu wieloliniowym 58 rejestru identyfikacji po- 35 ziomu 57. Ten ostatni sygnal jest przesylany odga¬ lezieniami 61 i 62.Ody sygnal na Wyjsciu drugiej sieci kodowania priorytetu 51 ma mniejsza wartosc binarna (wyzszy priorytet) od zawartosci rejestru identyfikacji po- 40 ziomu, komparator 59 wytwarza ustalony uprzed¬ nio sygnal wyjsciowy na linii 63. Sygnal ten jest przesylany linia 63 do ukladu przerwan 64, który sprawdza, czy przerwanie nie zaklóci okreslonej sekwencji sterowania, np. cyklu pamieciowego. 45 Uklad przerwan 64 ma równiez za zadanie ograni¬ czanie czestotliwosci wystepowania przerwan.Uklad przerwan 64 dopuszcza przerwanie peryfe¬ ryjne tylko wtedy, gdy od, ostatniego przerwania minely co najmniej trzy cykle procesora. Uklad 50 ten blokuje równiez przerwanie na okres pieciu cykli od chwili rozpoczecia operacji dostepu do pa¬ mieci. Wszystkie te funkcje spelnia uklad przer¬ wan 64 za pomoca malego licznika lub rejestru przesuwnego. 55 iW tym cyklu procesora, w którym rejestr iden¬ tyfikacji poziomu mikroprogramowego 57 zmienia stan, nastepuje przelaczenie od rejestru adresu biezacego mikroprogramu do odpowiedniego reje¬ stru nowego. Tego rodzaju rejestry adresowe mi* 60 kroprogramu zajmuja rózne komórki pamieci zapi¬ sywalnej, która stanowi mikroprogramowy rejestr adresowy 65 o pojemnosci 16 slów, adresowany od¬ galezieniem 61 wyjscia rejestru identyfikacji po¬ ziomu 57. Zmiana poziomu przerwania powoduje 65 równiez, ze drugi multiplekser 66 wybiera tor wie-114 858 25 30 loliniowy 49, którym jest podawany jeden z sygna¬ lów wejsciowych tego -multipleksera i na podstawie tego sygnalu wysterowuje swe wyjscie 67. Sygnal z wyjscia €7 drugiego multipleksera 66 dochodzi do ukladu adresowania pamieci 68, który adresuje 5 uklad pamieci 10 za posrednictwem toru 69, który odpowiada strzalce 14 na fig. 1.Inne wejscie 70 drugiego multipleksera 66 zawie¬ ra wyjscie licznika 71 i jest wybierane podczas zwyklego adresowania sekwencyjnego pamieci ope- 10 racyjnej lub pamieci danych 12 wchodzacej w sklad ukladu pamieci 10. Uklad adresowania pamieci 68 jest dolaczony do wyjscia 67 drugiego multiplekse¬ ra 66, poniewaz uklad ten jest na ogól przeznaczo¬ ny do powiekszania rozmiarów pamieci, przy czym 15 nie odbywa sie to kosztem szybkosci, poniewaz przy adresowaniu zastosowano technike zakladko¬ wania adresów parzystych i nieparzystych ukladu pamieci 10.Zmiana zawartosci rejestru identyfikacji pozio- 2* -mu mikroprogramowego 57 powoduje wybranie in¬ nej komórki w mikroprogramowym rejestrze adre¬ sowym 65. Ma to na celu zabezpieczenie powrotu adresu pamieci mikroprogramowej do uprzednio wybranej komórki w rejestrze adresowym 65. No¬ wy adres mikroprogramowy jest otrzymywany z toru wieloliniowego 49 i pojawia sie w torze 69 tak, ze operacja pobierania rozpoczyna sie w pa¬ mieci mikroprogramowej 11 od pierwszego mikro¬ rozkazu sekwencji zadanej przez urzadzenie pery¬ feryjne o wyzszym priorytecie, które wysyla zada¬ nie. Tor 69 ma odgalezienie poprowadzone do re¬ jestru adresowego 65 i nowy adres pamieci mikro¬ programowej jest wiec zapisywany do rejestru ad¬ resu mikroprogramu wybranego przez odgalezienie ^ 61 wyjscia rejestru poziomu.Ze wzgledu na technike zakladkowania stosowa¬ na przy pobieraniu mikroprogramu, dekodowaniu i wykonaniu, dwa poprzednie mikrorozkazy nadal sa obecne w procesorze, przy czym jeden z nich jest w stopniu dekodujacym ukladu obróbki da¬ nych 21. Jezeli którykolwiek z tych rozkazów wy¬ maga wykonania skoku lufo dostepu do pamieci operacyjnej, wtedy konieczny bedzie powrót do po¬ ziomu przerwanego w celu osiagniecia tego adresu pamieci mikroprogramowej, który wymagal skoku, to jest w celu wyzerowania rozkazu odpowiadaja¬ cego mu i rozkazu nastepnego. Zerowanie to wy¬ konuje uklad logiczny 72, który wytwarza na wyj¬ eciu 73 sygnal o wartosci „2" w kazdym cyklu pro^ 50 cesora, poza przypadkiem wystapienia przerwania, 'kiedy to wartosc tego sygnalu jest zmniejszana do „1", a nastepnie do „0" dla nastepnych cykli pro¬ cesora, chyba ze wystapily operacje skoku lub do¬ stepu do pamieci, które zablokuja sygnalem na 55 linii 75 zmiany sygnalu na wyjsciu 73. Sygnal z wyjscia ukladu logicznego 72 jest przesylany na wejscie nastepnej zapisywalnej pamieci zerowej 74 o dostepie swobodnym i pojemnosci 16 slów, w Iktórej adres zapisywanej komórki jest równiez 60 okreslany sygnalem w odgalezieniu $1 wyjscia ukladu poziomu, który to sygnal ustawia odpowied¬ nia wartosc w rewersyjnym liczniku adresowal¬ nym 7-7.Odpowiednia komórka pamieci zerowej 74 bedzie 15 40 45 wiec przechowywala liczbe reprezentujaca ilosc mikrorozkazów, które wymagaja wyzerowania po powrocie z przerwania. Sygnal ustawiony na wyj¬ sciu 76 pamieci zerowej 74 jest podawany na wej¬ scie jednostki arytmetycznej 78, która stanowi czesc ukladu obróbki danych 21 i odejmuje stan zerowy (nuli count) ustawiony w torze 76 od war¬ tosci ustawionej na wyjsciu 79 rejestru adresowe¬ go 65. Odpowiedni zmodyfikowany adres pamiecio¬ wy jest dostepny na linii 80, która stanowi jedno¬ czesnie wejscie drugiego multipleksera 66. Wejscie to jest wybierane przez multiplekser 66 podczas powrotu do przerwanego poziomu mikroprogramo¬ wego i ma ono te sama wartosc co zawartosc odpowiedniej komórki rejestru adresowego 65, poza przypadkiem, gdy wystapi koniecznosc wykonania operacji zerowania.Wskazanie poziomu mikroprogramowego o wyz¬ szym priorytecie wymaga zmiany stanu rejestru identyfikacji poziomu 57, zmiany odpowiednich ko¬ mórek pamieci rejestrowych 65 i 74 i zmiany ad¬ resu podawanego torem 69 do pamieci. Spowoduje to pobranie mikrorozkazu okreslonego na torze 49.W nastepnym cyklu procesora jest wykonywane dekodowanie w dekoderze mikrorozkazów 19, i wy¬ konanie ostatniego mikrorozkazu poziomu przer¬ wanego w ukladzie obróbki danych 21.W ogólnosci nalezy spodziewac sie, ze technika tasmowego wykonywania rozkazów pociaga za so¬ ba dalsze wykonanie funkcji zakladkowania, a do¬ tyczy to zwlaszcza tworzenia adresu pamieci mi¬ kroprogramowej.W drugim cyklu procesora nastepujacym po zmianie zawartosci rejestru identyfikacji poziomu mikroprogramowego 57 wymagane jest wykonanie pierwszego mikrorozkazu z mikrorozkazów przery¬ wajacych. Pociaga to za soba przelaczenie pomiedzy rejestrami roboczymi.Sygnal ustawiony na wyjsciu wieloliniowym 58 rejestru identyfikacji poziomu 57 jest wprowadza¬ ny w odpowiednim czasie do rejestru 81. Sygnal z wyjscia 8? jest pobierany z rejestru 81 w drugim cyklu po zmianie poziomu mikroprogramowego.Jest on wykorzystywany do zmiany adresów prze¬ sylanych do zapisywalnych pamieci o dostepie bez¬ posrednim 83, 84, 85 i 86, które obejmuja odpo¬ wiednie rejestry robocze A, B, K i C. Wieloreje- strowe pamieci K i C maja pojemnosc szesnastu slów, z (których jedno jest wybierane w czasie od¬ powiadajacym sygnalizacji poziomu mikroprogra¬ mowego na linii 82.Jeden rejestr wybrany z rejestrów K i C przyj¬ muje biezaca zawartosc odpowiedniego licznika re- wersyjnego 87 lub 88 przesylana odpowiednio to¬ rem 89 lub 90. Rejestry K85 sa wykorzystywane do sterowania patiami mikroprogramowymi na od¬ powiednich poziomach mikroprogramowych, reje¬ stry te sa zerowane, gdy okreslony poziom jest wykorzystywany po raz pierwszy. Rejestry C86 sa ladowane podczas wprowadzania odpowiednich po¬ ziomów imikroprogramowych, zawartosc tych re¬ jestrów stanowia modyfikatory adresów pamieci roboczej 28, przy czym kazdy poziom mikroprogra¬ mowy, a zwlaszcza kazde lacze peryferyjne ma za¬ pewniony dostep do okreslonego obszaru pamieci114 858 9 10 roboczej, które to obszary moga byc i zwykle sa rózne dla rdznych laczy. Rejestry K sa zerowane przy kazdym ladowaniu -rejestrów C, to jest przy pierwszym wybieraniu lacza. Podczas przerwania wysylanego przez lacze peryferyjne odpowiedni re¬ jestr C jest wybierany po uplywie dwu cykli pro¬ cesora od chwili zainicjowania przerwania, rejestr ten ijest ladowany wartoscia ustawiona na linii 50 wyprowadzonej z interfejsu podsystemu laczy.Jest to wykonywane za posrednictwem toru 91 na zasadzie wybrania odpowiedniego wejscia multi¬ pleksera 92, przy jednoczesnym wybraniu zerowego wejscia 93 multipleksera 94 tak, aby wysterowac licznik 87 za posrednictwem wyjscia 95 multiplek¬ sera.Zastosowanie rejestrów C jako modyfikatorów adresowych pamiaci roboczej umozliwia wykonanie tego samego fragmentu mikrokodu na róznych po¬ ziomach miikroprogramowych, jak równiez na tym samym poziomie, gdy fragment ten zostanie po prostu wprowadzony ponownie. Operacje te mozna rozpoczac na jednym poziomie i przed jej zakon¬ czeniem dla tego poziomu mozna zakonczyc prze¬ twarzanie jednego lub kilku przerwan poziomów o wyzszych priorytetach przed powrotem do zakon¬ czenia wykonywania poziomu pierwotnego. Mozli¬ wosc ta jest uzyteczna przy sterowaniu standardo¬ wych laczy interfejsowych.Podczas ladowania wybranego rejestru C na wejsciowym poziomie mikroprogramowym lacza peryferyjnego ladowany modyfikator jest podawa¬ ny odgalezieniem 96 wyjscia 90, multipleksera do ukladu dekodera 97 w celu przeslania sygnalu ste¬ rowania wybieraniem-linia 98 i interfejsem lacza <32 — na pierwotne lacze peryferyjne, które pod wyplywem tego sygnalu wprowadzi swe dane na wejscie wspólnej szyny danych prowadzacej do procesora i zarejestruje sygnaly sterujace proce¬ sora.Wyjscia wybranych rejestrów C i K sa dostepne na liniach 99 i 100 odpowiednio dla jednostki aryt¬ metycznej procesora w celu zaadresowania odpo¬ wiedniej pamieci roboczej i w celu sterowania wy¬ konywaniem petli mikroprogramowych. Równiez wejscia 101 i 102 multiplekserów 92 i 94 stanowia wyjscia jednostki arytmetycznej, dzieki czemu moz¬ na dokonywac zmian zawartosci rejestrów podczas przetwarzania. Przedstawiono równiez tory sprze¬ zenia zwrotnego 103 i 104 wyprowadzone z wyjsc 99 i 100 rejestrów na wejscia multiplekserów 92 i 94. Wymienione tory sprzezenia zwrotnego sa wykorzystywane podczas operacji wybierania wy¬ maganej podczas ladowania liczników 88 i 87.Rejestry A i B 83 i 84 sa wykorzystywane jako zródla argumentów dla jednostki arytmetycznej i dla innych zastosowan jak: ladowanie pamieci roboczej i dostarczanie adresów pamieci operacyj¬ nej, dostarczanie danych, które maja byc zapisane do pamieci i ladowanie rejestrów C i K. Czesc kaz¬ dego rejeestru A i B moze byc wykorzystywana jako modyfikator adresu pamieci roboczej.Argumenty sa dostarczane wyjsciami 105 i 106 wybranych rejestrów A i B podlaczonych jako wybieralne wejscia do obu multiplekserów 107 i 108. Wyjscia 109 i 110 multiplekserów 107 i 108 wchodza do rejestrów argumentów 111 i 112 prze¬ znaczonych dla jednostki arytmetycznej. W prak¬ tyce wymienione multipleksery maja kilka innych wejsc alternatywnych, a ich wyjscia 109 i 110 sa 5 rozgalezione, zwielokrotnione i wykorzystywane do innych celów. W sklad wymienionych wejsc in¬ nych wchodzi wejscie binarnego zera, wejscie bi¬ narnej jedynki, wejscie danych pochodzacych z wybranego lacza peryferyjnego i wejscie danych I0 pochodzacych z pamieci operacyjnej, wejsc tych nie pokazano w celu zachowania przejrzystosci schematu.Kazdy z rejestrów A i B jest wykonany jedynie w dziewieciu egzemplarzach i tak: po jednym re- 15 jestrze przeznaczono na kazdy poziom mikroprogra- mowy (1—7) zwiazany z operacjami wykonywany¬ mi przez urzadzenia peryferyjne, jeden rejestr jest zarezerwowany na uszkodzenia (poziom „0") i jeden jest wykorzystywany przez wszystkie poziomy mi- ^o kroprogramowe (8 do 15) zwiazane z operacjami procesora. Jest tak dlatego, poniewaz poziomy mi- kroprogramowe zwiazane jedynie z operacjami procesora sa wykorzystywane do budowy stosów tak, ze w przypadku, gdy wymagaja one oddziel- 25 nych informacji sterujacych dla kazdego poziomu, to wystarczy jedynie dostarczyc jednego zbioru zródel danych, to jest argumentów lub slów dla i z pamieci.Tor wybierania poziomu mikroprogramowego 82 30 prowadzi równiez do nastepnej zapisywalnej pa¬ mieci .113 o dostepie swobodnym, która ma wejscia i wyjscia polaczone z jednostka arytmetyczna i przeznaczone do przesylania informacji zwiaza¬ nych ze stanami znaczników porównawczych 35 i wskazników wystepujacych w jednostce arytme¬ tycznej, które sa wymagane do sterowania i prze¬ twarzania zgodnie z podstawowa lista rozkazów procesora. (Pamiec 113 ma szesnascie rejestrów, po jednym dla kazdego poziomu mikroprogramowego. 40 Opisano powyzej w jaki sposób lacze peryferyj¬ ne odpowiadajace poziomowi mikroprogramowemu o wyzszym priorytecie moze przerwac dowolny po¬ ziom mikroprogramowy o nizszym priorytecie, po¬ nadto przedstawiono równiez w jjaiki sposób, pod- 45 czas powrotu do poziomu mikroprogramowego, ope¬ racja modyfikacji zerujacej powoduje, ze skoki lub dostepy do pamieci nie powoduja zadnych strat in¬ formacji, nawet wtedy gdy wystepuja one podczas wykonywania tego poziomu*, który jest przerywany. 50 Moze jednak wystapic przypadek, ze podczas ta¬ kiego przerwania pojawi sie zadanie obslugi wyge¬ nerowane przez inne zlacze^ peryferyjne, które ma poziom imikroprogramowy o nizszym priorytecie niz lacze przerywajace, ale o wyzszym priorytecie 55 od poziomu przerwanego.W takim przypadku lacze zadajace obslugi po¬ winno zostac obsluzone przed wykonaniem powrotu do poziomu przerwanego.Jednakze o ile zwykly powrót do poziomu przer- 60 wanego spowoduje po prostu ponowne wybranie odpowiedniego mikToprogramu i rejestrów robo¬ czych, to obsluzenie nowego zadania o priorytecie posrednim bedzie wymagalo zebrania informacji dotyczacych adresu poczatkowego pamieci mikro- 65 programowej i modyfikatora pamieci roboczej,114 858 11 12 ustawionych na liniach 49 i 50. Wejscie do okreslo¬ nego poziomu mikroprogramowego wiaze sie z usta¬ wieniem odpowiednich bitów znacznikowych w do¬ datkowym rejestrze o dlugosci szesnastu bitów, po jednym dla kazdego poziomu mikroprogramowego.Osiagnieto to wykorzystujac dodatkowe pozycje bi¬ towe w kazdej komórce pamiaci zerowej 74, która jest ladowana za posrednictwem linii ML przy kazdej zmianie poziomu.(Badanie zawartosci tej pamieci odbywa sie na linii M podczas powrotu z przerwania. Po zakon¬ czeniu przerwania zadanie o najwyzszym prioryte¬ cie poziomu mikroprogramowego, jak okreslono to w peryferyjnym systemie sterowania 31, wytwarza wskaznik definiujacy odpowiedni poziom mikropro- gramowy. Badany jest bit znacznika odpowiadajacy temu poziomowi. Jezeli bit ten jest zapalony, wy¬ korzystywane sa odpowiednie wartosci adresu mi¬ kroprogramowego, rejestrów C i K itd. Jezeli na¬ tomiast wartoscia tego bitu jest zero, co oznacza, ze wejscie do tego poziomu jest wykonywane po raz pierwszy, wtedy sygnaly sa zbierane z linii 49 i M w taki sposób, jak dla przerwania.Nastepna cecha ukladu przerwan jest to, ze za¬ danie dostepu do procesora wysylane przez lacza peryferyjne sa zliczane w tych fazach przez impul¬ sy zegarowe procesora, wymienione impulsy zega¬ rowe moga byc blokowane przez prccesor w chwi¬ lach, gdy przerwanie nie zostanie przyjete przez procesor.Dzieki takiemu rozwiazaniu zadania peryferyjne sa -zsynchronizowane z taktowaniem procesora.Zadania pochodzace z laczy pozostaja zapalone do chwili wyslania przez procesor impulsu EXIT lacz¬ nie z sygnalem sterowania wybieraniem. Dzieki ta¬ kiemu rozwiazaniu zapewnione jest, ze poziom przerwania nie zostanie skasowany przed powro¬ tem z przerwania lub przerwan.Procesor wedlug wynalazku obsluguje zadanie wysylane przez lacza peryferyjne na jednym po¬ ziomie imikroprogramowym wybranym sposród po¬ ziomów od 1 do 7, Procesor ten moze oczywiscie rozpoczac wykonywanie swoich operacji wykorzy¬ stujac odpowiedni poziom mikroprogramowy. Ope¬ racje wykonywane na poziomach 1—7 nie moga byc przerywane przez poziomy stojace wyzej w hierarchii poziomów. W przypadku pojawienia sie takiego przerwania operacja bedzie wykonywana na nastepnym wyzszym poziomie wymagajacym obslugi, co moze oznaczac dalsze opóznienie przed powrotem do pierwszego poziomu przerwanego.Operacje procesora na poziomie mikroprogramo- wym „O* •—jest to poziom ó najwyzszym priory¬ tecie — sa zarezerwowane dla przerwan krytycz¬ nych, takich ljak bledy parzystosci lub uszkodzenia ukladów. W przypadku gdy nie wystepuje zadanie wykonania operacji peryferyjnych, zwykle prze¬ twarzanie danych odbywa-sie na poziomach mikro- programowych 8—15.Operacje wykonywane na poziomach mikropro- gcamowych 8»—15 róznia sie od operacji na pozio¬ mach 0—7 tymr.ze przejscia z poziomu na poziom odbywaja sie sekwencyjnie zgodnie ze sterowaniem stosowanym do programów zaglebionych. W przy¬ padku wystapienia skoku do programu nastepnego, z którego jest oczekiwany powrót, mikrorozkaz LINK, po zdekodowaniu, spowoduje przeslanie im¬ pulsu zliczajacego do licznika rewersyjnego 55 w celu dostarczenia nastepnego poziomu o wyzszym 5 priorytecie, który wybierze odpowiedni adres mi¬ kroprogramowy i rejestry zliczajace w celu zala¬ dowania adresu poczatkowego okreslonego rozka¬ zem LINK.Po powrocie ze skoku mikrorozkaz EXIT, po 10 zdekodowaniu, spowoduje przeslanie rewersyjnego impulsu zliczajacego do ilicznika rewersyjnego 55, który wybiera rejestr adresowy mikroprogramowe¬ go poziomu o nizszym priorytecie w celu konty¬ nuowania przetwarzania na tym poziomie. Przy 15 kazdym przejsciu jest wykorzystywana technika tasmowa, dzieki czemu odpowiednie zmiany reje¬ strów roboczych C i K i porównania znaczników i rejestrów wskazników 113 beda wystepowac po uplywie dwu cykli procesora od rozpoczacia wy- 20 mienionego przejscia.System ten umozliwia obsluzenie maksymalnej liczby osmiu zaglebionych skoków, przy czym nie ma tu zadnych wymagan dotyczacych czasochlon¬ nego skladowania i rozladowywania. Rozkazy sfco- 25 kowe moga byc symulowane na zasadzie przepi¬ sywania do rejestru adresowego mikroprogramu poziomu biezacego adresu obliczonego. Pociaga to za soba deklarowanie rejestru adresowego mikro¬ programu jako argumentu przeznaczenia, a sam » rozkaz bedzie traktowany jako skok bezwarunko¬ wy bez zerowania sekwencji wykonywanej, która powoduje straty cykli procesora.Przyczyna, dla której operacje dostepu do pamie¬ ci operacyjnej wymagaja zerowania jezeli wystapia » one podczas przetwarzania w technice tasmowej na poziomach od 0 do 7 jest to ze rejestry wejscia, wyjscia pamiaci operacyjnej nie sa powielone dla róznych poziomów mikroprogramowych, a zaleta techniki tasmowej polega na organizacji sterowania 40 pamiaci.Na figurze 4 przedstawiono podstawowy uklad pamiaci operacyjnej 12. Pokazano tu rejestr 114 przeznaczony dla slów zapisywanych do pamiaci, rejestr 115 — dla slów odczytywanych z pamieci, 45 tor adresowy 17 wyprowadzony z wyjscia drugiego multipleksera 66 w przypadku wybrania jego wej¬ scia 70 przychodzacego z licznika adresowego 71 pamiaci operacyjnej. Aby zabezpieczyc zawartosc liczników 114, 115 i licznika adresowego 71 do 59 chwili ich wykorzystania przez biezacy poziom mi¬ kroprogramowy zapala sie wskaznik zajetosci pa¬ miaci, który blokuje zmiany poziomów mikropro¬ gramowych gaszenie tego wskaznika nie nastepowalo pózniej 55 niz po wykonaniu okreslonej liczby mikrorozkazów nastepujacych po zaladowaniu licznika adresowe¬ go 71 pamieci tak, aby nie dopuscic do nieuzasad¬ nionego blokowania zmiany poziomów, co mogloby doprowadzic do kryzysu czasowego w urzadzeniu w peryferyjnym, przy czym chodzi tu o synchronicz¬ ne, niebuforowe urzadzenia takie jak dyski i czyt¬ niki kart.Te uprzednio okreslona liczbe mozna ustalic au¬ tomatycznie za pomoca sprzetu lub za pomoca sto- ts aewania odpowiedniej konwencji pisania mikropro-114 858 13 14 ¦gramów, w przykladzie wykonania urzadzenia we¬ dlug wynalazku wynosi ona piec.Podczas operacji odczytu pamieci operacyjnej licznik adresowy 71 jest ladowany jednym mikro- rozkazem, który powoduje zapalenie warunku za- 5 jetosci pamieci, np. jest wyzwalany przerzutnik 116 przedstawiony w poblizu licznika 71.Dane odczytane spod tego adresu zostana okreslo¬ ne jako znaczace w pamieciowym rejestrze wyj¬ sciowym 115 w trzecim mikrorozkazie po zalado- 19 waniu licznika adresowego 71, wskaznik zajetosci pamieci jest gaszony po wykorzystaniu pamiecio¬ wego rejestru wyjsciowego 115 jako zródla argu¬ mentu. Dwie operacje odczytu moga zachodzic na siebie w sensie czasowym zgodnie z tzw. technika 15 zakladkowania, jezeli zapoczatkowano druga ope¬ racje odczytu na zasadzie zaladowania licznika 71 po rozkazie, który bezposrednio poprzedza rozkaz wykorzystujacy rejestr 115 Jako zródlo argumentu.Nastepnie, drugie slowo wczytane do rejestru 115 20 musi równiez zostac wykorzystane jako argument nie pózniej niz w piec rozkazów po pierwszym za¬ ladowaniu licznika 71.Podczas operacji zapisu do pamieci jest ladowa¬ ny pamieciowy licznik adresowy 71 i wyzwalany 25 przerzutnik 116, po czym nastepuje zaladowanie pamieciowego rejestru wejsciowego 114. Przerzut¬ nik 116 przestanie byc wyzwalany po pobraniu zawartosci pamieciowego rejestru wejsciowego 114.Operacje zapisu nie moga byc zakladkowane, ale 30 operacja zapisu moze zachodzic w czasie na opera¬ cje odczytu poprzez zaladowanie licznika 71 rozka¬ zem, który poprzedza rozkaz wykorzystujacy re¬ jestr wyjsciowy 115 jako argument. Nastepnie jest ladowany rejestr wejsciowy 114, przy czym naste- 35 puje to nie pózniej jak w piec rozkazów po zala¬ dowaniu licznika 71 dla operacji odczytu.Stosowana jest równiez operacja pamieciowa od¬ czytaj — zmodyfikuj — zapisz, która jest wyko¬ nywana w czasie pieciu mikrorozkazów odpowia- 40 dajacych zajetosci pamieci.Lacze np. 33—38 sa fizycznymi ukladami, które dzieki odpowiedniemu zaprojektowaniu uwzgled¬ niajacemu wszelkie potrzebne specjalizowane sek¬ wencje mikrorozkazowe, maskuja wszelkie róznice, 45 które w przeciwnym przypadku bylyby widoczne dla kodu operacyjnego, z którego pamietany mi- kroplan tlumaczy programy skladajace sie z roz¬ kazów wchodzacych w sklad listy rozkazów pod¬ stawowych, na sygnaly sterujace wewnetrznymi 50 operacjami procesora. Dzieki takiemu rozwiazaniu osiagnieto duza elastycznosc w stosunku do nowych urzadzen peryferyjnych lub mechanizmów, ponie¬ waz po Wyposazeniu ich w odpowiednie lacze nie zachodzi koniecznosc zmiany ukladów procesora. 55 Podstawowa lista mikrorozkazów obejmuje wiele rozkazów konwencjonalnych. Na przyklad dwuad- resowe rozkazy 32-bitowe moga dotyczyc operacji arytmetycznych dodawania, odejmowania i wpro¬ wadzania oraz operacji logicznych jak przesuwanie, 60 mnozenie logiczne, sumowanie logiczne, równowaz¬ nosc, natomiast rozkazy trójadresowe moga doty¬ czyc podobnych operacji logicznych, a ponadto operacji i-nie, równowaznosci, nie-i lacznie z ope¬ racja porównaj i skocz i operacjami wyzwalania 65 znaczników i rejestrów. Za pomoca rozkazów szes- nastobitowych mozna wykonywac operacje ladowa¬ nia rejestrów, operacje arytmetyczne i logiczne lacznie z operacjami przesuwania i wyzwalania znaczników, które to operacje moga byc traktowa¬ ne jako rozkazy glówne. Pomocnicze rozkazy 16-bitowe sa wykorzystywane przy ladowaniu i operacjach arytmetycznych i wspomagaja one glówne rozkazy 16-bitowe, ponadto moga byc one wykorzystywane do wykonywania róznych operacji skokowych wykonywanych w zaleznosci od stanów znaczników, wskazników lub wyników operacji po¬ równywania.Obecnie zostana omówione pewne szczególnie uzyteczne mikrorozkazy dodatkowe. Jeden z nich jest zwiazany z zalecana organizacja bajtowa pro¬ cesora, który pracuje na slowach 32-bitowych i 4-bajtowych, 8 bitów na bajt. Ten rodzaj rozkazu pobiera dowolny bajt argumentu i zastepuje nim dowolny bajt argumentu innego. Rozkaz ten moze byc wykorzystywany do szeregowego przesylania okreslonych bajtów, a równiez do budowania slów, w których jeden bajt pochodzi z jednego zródla, a pozostale trzy bajty pochodza ze zródla innego.W ogólnosci oba zródla i miejsca przeznaczenia moga byc zamienione w zaleznosci od danego roz¬ kazu. Jezeli np. argumenty sa umieszczone w reje¬ strach A i B, 83, 84, poszczególne bajty moga byc pobierane selektywnie z dowolnego argumentu na zasadzie odpowiedniego wybrania wejsc multiplek¬ sera 107 lub 108. Operacje sterowane wykorzystuja¬ ce odpowiednie modyfikatory umozliwiaja uzytecz¬ na i elastyczna obróbke bajtów.Jezeli znaki sa traktowane jako bajty, to omó¬ wiony wyzej rozkaz moze byc uwazany za efek¬ tywne narzedzie obróbki znaków.Fakt, ze bajtowa organizacja procesora moze byc uwazana za narzedzie obróbki znaków oznacza, ze wynikowe kody rozkazowe majace organizacje slowowa, a nie bajtowa moga byc przystosowane do organizacji bajtowej ze wszystkim wyplywaja¬ cymi z tego zaletami.Dane dotyczace wynikowych kodów rozkazowych zorientowanych slowowo moga byc przyjmowane przez procesor zorientowany bajtowo jezeli dlugosc slowa jest taka sama w obu przypadkach. Co wie¬ cej, kod wynikowy dotyczacy slowa o dlugosci mniejszej od dlugosci slowa procesora moga rów¬ niez byc przystosowywane za pomoca dwóch in¬ nych rodzajów mikrorozkazów, z których jeden rozdziela format slowowy na czesci mniejsze od dlugosci bajtu procesora i wypelnia brakujace ob¬ szary bajtów zerami. Rozkaz ten nazywa sie EXPAND i dziala na rejestrze przesuwnym w celu przeprowadzenia odpowiednich manipulacji na baj¬ tach i dodawanych zerach. Rozkaz drugi jest wy¬ korzystywany po przetworzeniu w celu usuniecia zer i polaczenia znaczacych bitów slowa, rozkaz ten ma nazwe COMFRESS i równiez dziala na rejestrze przesuwnym.W przypadku 4-bajtowych, 32-bitowyeli slów procesora i 24-bitowych slów kodu wynikowego odpowiedni rozkaz EXPAND wprowadza slowo 24-bitowe na pozycje 0—23 rejestru przesuwanego i wykonuje nastepujace przesuniecia w prawo:1141 15 z pozycji dla bitów 0^5, 4 pozycje dla bitów &—11, 6 pozycji dla bitów 12i—17 i 8 pozycji dla bitów 24 i 25 sa wprowadzane zera. W taki-sposób zostaje utworzone slowo czterobajtowe, przy czym na 5 dwóch bardziej, znaczacych pozycjach bitowych w kazdym bajcie sa ustawione zera.Innym rodzajem rozkazu jest rozkaz, który wy¬ konuje dowolne okreslone operacje logiczne pomie¬ dzy argumentem istniejacym, okreslonym na pod- 10 stawie adresu wystepujacego w rozkazie pamieci obrazowej w zmodyfikowanym lub nie rozkazie dla pamieci roboczej, a argumentem zbudowanym specjalnie, który ma albo literal ,jl" albo stan okreslonego znacznika wprowadzonego na wyzna- 15 czona pozycje bitowa zerowego slowa 32-bitowego.Wynik moze byc wykorzystany do przepisania ar¬ gumentu istniejacego, lub tez znacznik wyznaczony moze 'byc zastapiony wynikiem dla wyznaczonej pozycji bitowej. Rózne pola rnikrorozkazu okreslaja 2Q argument istniejacy, rodzaj operacji logicznej, wy¬ znaczona pozycje bitowa, okreslony znacznik (gdy taki wystepuje) i zastosowanie wyniku.Ten rodzaj rozkazu nadaje sie zwlaszcza do ba¬ dania stanu operacyjnego urzadzenia peryferyjnego. 25 Rozkaz ten powoduje przeladowanie kilku pozycji slowa statusowego (slowo stanu), co jest wykony¬ wane ma zasadzie kolejnego wybierania róznych wyznaczonych pozycji bitowych w celu wybrania odpowiednich operacji logicznych, przy czym wy- 30 niki posrednie sa przechowywane na pozycji znacz¬ nikowej w akumulacyjnej funkcji boolowskiej.Lista rozkazów, obok rozkazów dotyczacych sko¬ ków i porównan pomiedzy bajtami i slowami, obej¬ muje równiez mikrorozkaz przeznaczony do stero- 35 wania skokiem w zaleznosci od stanu wyznaczone¬ go bitu okreslonego argumentu. Rozkaz ten nadaje sie zwlaszcza do testowania wyniku badania statu¬ su urzadzenia peryferyjnego przeprowadzonego przez poprzedni mikrorozkaz. Tlumaczenie okreslo- 40 nego kodu wynikowego na podstawowy zbiór funk¬ cji mikroprogramowych procesora wykonuje inny rodzaj 'rnikrorozkazu, który jest wykorzystywany do czasowego usuwania dowolnego pola z okreslo¬ negoslowa. tó Operacja ta jest wykonywana na zasadzie prze¬ suwania slowa o okreslona liczbe pozycji bitowych, a nastepnie wybrania okreslonej liczby bitów tego slowa, na ogól od strony mniej znaczacej slowa.Wybrana czesc lub pole slowa moze byc nastepnie M przetworzona w celu dostosowania jej do adresu wymaganej funkcji mikroprogramowej. Pociaga to -za soba operacje indeksowania od adresu bazowego tablicy funkcji w pamieci operacyjnej. Tablica ta, obok adresu poczatkowego mikroprogramu moze zawierac inne informacje dotyczace adresowanych programów.Jako przyklad przedstawia sie operacje wykony¬ wane w maszynach cyfrowych ICL 1900. Wybrana operacja dotyczy ladowania rejestru (LDX) wyma¬ ganego przy 'dowolnej realizacji kodu wynikowego i sklada sie z kilku etapów podstawowych: przy czym wystepujace tu liczby maja postac szesnast- kowa.W pierwszym etapie adres rozkazu ICL 1900 jest 6- 16 ladowany do rejestru adresowego pamieci i pobie¬ rany jest odpowiadajacy mu rozkaz (kod wyniko¬ wy). Ma to postac rozszerzona obejmujaca zera uzupelniajace cztery bajty 8-bitowe.W drugim etapie rozkaz przechowywany w pa¬ mieciowym rejestrze wyjsciowym jest przetwarza¬ ny na format 1900 o dlugosci 24 bitów na zasadzie wykorzystania rejestru przesuwnego i operacji usu¬ wania zer. Wynik jest wprowadzany do rejestru B.Nastepnie jest wykonywana operacja czasowego usuwania dotyczaca zawartosci rejestru B, co ma na celu wyizolowanie czesci operacyjnej rozkazu, która zostaje przesunieta na pozycje mniej znacza¬ ce slowa.Tak wiec odbywa sie przesuwanie 14 pozycji bi¬ towych i usuwanie 9 mniej znaczacych pozycji bi¬ towych. Wynik jest wykorzystywany do indekso¬ wania adresu bazowego tablicy funkcji w celu wykonania operacji dostepu do pamieci roboczej.Nastepnie jest wykonywana nastepna operacja cza¬ sowego usuwania dotyczaca zawartosci rejestru B (przesuniecie o jeden bit i usuniecie 5 bitów mniej znaczacych). Operacja ta dostarcza adresu okreslo¬ nego rejestru i adres ten jest wprowadzany do zna¬ nego adresu w pamieci roboczej. W nastepnym etapie odbywa sie trzecie czasowe, usuniecie pola rejestru B (przesuniecie w prawo o 8 pozycji i po¬ branie C bitów), co zapewnia informacje o tym, co ma byc zapisane do pozadanego rejestru i wpro¬ wadza ja do innego znanego adresu w pamieci ro¬ boczej. W kolejnym etapie nastepuje zaladowanie okreslonego rejestru wymagana zawartoscia, co moze byc wykonane po przeprowadzeniu róznych testów, np. po zbadaniu czy informacja, która ma byc zaladowana jest literalem, czy adresem reje¬ stru, a jezeli jest adresem rejestru, to czy okresla ona rejestr, do którego wprowadzono adres rejestru usunietego, lub czy oba te adresy okreslaja ten sam rejestr. Inne czynniki, które moga byc wyko¬ rzystane przed wykonaniem ostatniego etapu doty¬ cza okreslenia modyfikatora, np. z rejestru C lub B.Przy poczatkowej operacji dostepu do pamieci wystepuje opóznienie wynoszace dwa cykle proce¬ sorowe pomiedzy pierwszym a drugim etapem, opóznienie to jest zwykle wykorzystywane do zba¬ dania waznosci okreslonego adresu. Stanowi to po prostu rozszerzenie testu rozpoczetego przed wyko¬ naniem pierwszego dostepu do pamieci.Na figurze 2 i 3 przedstawiono wyjscia róznych rejestrów procesora, wyjscia te sa zaopatrzone w odgalezienia oznaczone 13. Oznacza to, ze za¬ wartosci tych rejestrów sa zapamietywane w pa¬ mieci obrazowej przedstawionej na fig. 1. W ten sposób _ dzieki zastosowaniu odpowiedniego bram¬ kowania tych odgalezien otrzymuje sie ciagly zapis stanu aktywnosci procesora, co jest szczególnie uzy¬ teczne do celów diagnostyki. 1 Z a s t r z e z e i\i a patentowe 1. System przetwarzania danych wyposazony w mikroprogramowo sterowany procesor majacy mi- kropTogramowa pamiec, pamiec operacyjna, uklad sterowania pamieci operacyjnej i wiele mikropro- »114 858 17 18 gramowych rejestrów adresowych wybieranych od¬ powiednio dla adresowania imikroprogramowej pa¬ mieci, wiele urzadzen peryferyjnych oraz uklad priorytetu odbierajacy sygnaly zadania przerwania z urzadzen peryferyjnych i wytwarzajacy sygnal selekcji wskazujacy identycznosc urzadzenia pery¬ feryjnego z którego pochodzi wybrany sygnal zada¬ nia, znamienny tym, ze multiplekser (53) znajduja¬ cy sie w ukladzie sterowania (13) pamieci opera¬ cyjnej (12) swym pierwszym wejsciem (52) polaczo¬ ny jest z ukladem priorytetu (42, 51) na którego wyjsciu wystepuje sygnal selekcji, a swym drugim wejsciem (54) multiplekser (53) polaczony jest z wyjsciem licznika rewersyjnego (55), a ponadto wyjscie (56) multipleksera (53) jest polaczone z mi- kroprogramowym rejestrem adresowym (65) dla ad¬ resowania mikroprogramowej pamieci (11), przy czym na wyjsciu (56) multipleksera (53) wystepuje sygnal z pierwszego wejscia (52) przy obecnosci sygnalu zadania, a przy braku sygnalu zadania na wyjsciu (56) multipleksera (53) wystepuje sygnal z 'drugiego jego wejscia (54). 10 15 20 2. System wedlug zastrz. 1, znamienny tym, ze multiplekser (53) jest polaczony z mikroprogramo- wym rejestrem adresowym (65) poprzez rejestr identyfikacji poziomu (57), którego wyjscie jest po¬ laczone z komparatorem (59) polaczonym jedno¬ czesnie z pierwszym wejsciem (52) multipleksera (53) dla porównania zawartosci rejestru identyfi¬ kacji poziomu (57) z wartoscia sygnalu selekcji z ukladu priorytetu (42, 51) i wytworzenia sygnalu przerwania jesli zawartosci rejestru sa wieksze niz wartosc sygnalu selekcji. 3. System wedlug zastrz. 2, znamienny tym, ze do mikroprograTnowego rejestru adresowego (65) dolaczony jest poprzez multiplekser (66) tor wielo- liniowy (49) dolaczony do Wszystkich urzadzen pe¬ ryferyjnych, przy czym do multipleksera (66) jest doprowadzony sygnal przerwania dla spowodowa¬ nia przekazywania startowych adresów mikropro- gramowych z urzadzen peryferyjnych wytwarzaja¬ cych przerwanie poprzez tor wieloliniowy (49) do aktualnie wybranego mikroprogramowego rejestru adresowego <65).114 S5S T I 40 | \^ is I I 32" PR 4* Z^^31 6 EKC \2= ,47 szl l^ri^=:="-^==^~-voL~ .50 -fl 15 J£ MS UDC 70 IS 80 Mi 6t 76 !? int. rnC0Mp AU.MX U 66 X?3 MPA 67 r GS Haddfv IS^ I 63* M-«- 65 /55 —H'p UDC I ^54- 1 -5fi L-6Z £1 |uoc|-77 MOLL =1 ML —1174' 75 I '57 I _58 'A 5 i FIG 2 i h-50 AU. a^o mj. 30 95 37 103 MX V2 -91 .55 UDC 3630 i A.U.AU- MX L^ U55 UDC ^7 .53 A.U.Lss 104 Noo A.U. 108 15 106, ^r^&4 |S5 U1 MX „52 105 MX hllO 15.- OP RLG. -107 -10?) OR RLG.kW r t AU AU 116 K 5 5A { ' ^70 MX | 71 _6G FIGA 114" 5 1 17 MS 12 5 D ^U5 ¦10 105,105 RSW Zakl. Graf. W-wa, Srebrna 16, z. 41-82/0. — 100 + 20 egz.Cena 45 zl PL

Claims (1)

  1. Z a s t r z e z e i\i a patentowe 1. System przetwarzania danych wyposazony w mikroprogramowo sterowany procesor majacy mi- kropTogramowa pamiec, pamiec operacyjna, uklad sterowania pamieci operacyjnej i wiele mikropro- »114 858 17 18 gramowych rejestrów adresowych wybieranych od¬ powiednio dla adresowania imikroprogramowej pa¬ mieci, wiele urzadzen peryferyjnych oraz uklad priorytetu odbierajacy sygnaly zadania przerwania z urzadzen peryferyjnych i wytwarzajacy sygnal selekcji wskazujacy identycznosc urzadzenia pery¬ feryjnego z którego pochodzi wybrany sygnal zada¬ nia, znamienny tym, ze multiplekser (53) znajduja¬ cy sie w ukladzie sterowania (13) pamieci opera¬ cyjnej (12) swym pierwszym wejsciem (52) polaczo¬ ny jest z ukladem priorytetu (42, 51) na którego wyjsciu wystepuje sygnal selekcji, a swym drugim wejsciem (54) multiplekser (53) polaczony jest z wyjsciem licznika rewersyjnego (55), a ponadto wyjscie (56) multipleksera (53) jest polaczone z mi- kroprogramowym rejestrem adresowym (65) dla ad¬ resowania mikroprogramowej pamieci (11), przy czym na wyjsciu (56) multipleksera (53) wystepuje sygnal z pierwszego wejscia (52) przy obecnosci sygnalu zadania, a przy braku sygnalu zadania na wyjsciu (56) multipleksera (53) wystepuje sygnal z 'drugiego jego wejscia (54). 10 15 20 2. System wedlug zastrz. 1, znamienny tym, ze multiplekser (53) jest polaczony z mikroprogramo- wym rejestrem adresowym (65) poprzez rejestr identyfikacji poziomu (57), którego wyjscie jest po¬ laczone z komparatorem (59) polaczonym jedno¬ czesnie z pierwszym wejsciem (52) multipleksera (53) dla porównania zawartosci rejestru identyfi¬ kacji poziomu (57) z wartoscia sygnalu selekcji z ukladu priorytetu (42, 51) i wytworzenia sygnalu przerwania jesli zawartosci rejestru sa wieksze niz wartosc sygnalu selekcji. 3. System wedlug zastrz. 2, znamienny tym, ze do mikroprograTnowego rejestru adresowego (65) dolaczony jest poprzez multiplekser (66) tor wielo- liniowy (49) dolaczony do Wszystkich urzadzen pe¬ ryferyjnych, przy czym do multipleksera (66) jest doprowadzony sygnal przerwania dla spowodowa¬ nia przekazywania startowych adresów mikropro- gramowych z urzadzen peryferyjnych wytwarzaja¬ cych przerwanie poprzez tor wieloliniowy (49) do aktualnie wybranego mikroprogramowego rejestru adresowego <65).114 S5S T I 40 | \^ is I I 32" PR 4. * Z^^31 6 EKC \2= ,47 szl l^ri^=:="-^==^~-voL~ .50 -fl 15 J£ MS UDC 70 IS 80 Mi 6t 76 !? int. rnC0Mp AU. MX U 66 X?3 MPA 67 r GS Haddfv IS^ I 63* M-«- 65 /55 —H'p UDC I ^54- 1 -5fi L-6Z £1 |uoc|-77 MOLL =1 ML —1174' 75 I '57 I _58 'A 5 i FIG 2 i h-50 AU. a^o mj. 30 95 37 103 MX V2 -91 .55 UDC 3630 i A.U. AU- MX L^ U55 UDC ^7 .53 A.U. Lss 104 Noo A.U. 108 15 106, ^r^&4 |S5 U1 MX „52 105 MX hllO 15.- OP RLG. -107 -10?) OR RLG.kW r t AU AU 116 K 5 5A { ' ^70 MX | 71 _6G FIGA 114" 5 1 17 MS 12 5 D ^U5 ¦10 105,105 RSW Zakl. Graf. W-wa, Srebrna 16, z. 41-82/0. — 100 + 20 egz. Cena 45 zl PL
PL1974170324A 1973-04-13 1974-04-12 Data processing system PL114858B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1786473A GB1448866A (en) 1973-04-13 1973-04-13 Microprogrammed data processing systems

Publications (1)

Publication Number Publication Date
PL114858B1 true PL114858B1 (en) 1981-02-28

Family

ID=10102548

Family Applications (1)

Application Number Title Priority Date Filing Date
PL1974170324A PL114858B1 (en) 1973-04-13 1974-04-12 Data processing system

Country Status (10)

Country Link
US (1) US3988719A (pl)
JP (1) JPS5647568B2 (pl)
DE (1) DE2417795C2 (pl)
FR (1) FR2225784B1 (pl)
GB (1) GB1448866A (pl)
HU (1) HU172377B (pl)
IN (1) IN140927B (pl)
NL (1) NL176714C (pl)
PL (1) PL114858B1 (pl)
ZA (1) ZA742281B (pl)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
GB1527289A (en) * 1976-08-17 1978-10-04 Int Computers Ltd Data processing systems
US4090239A (en) * 1976-12-30 1978-05-16 Honeywell Information Systems Inc. Interval timer for use in an input/output system
US4126894A (en) * 1977-02-17 1978-11-21 Xerox Corporation Memory overlay linking system
US4080652A (en) * 1977-02-17 1978-03-21 Xerox Corporation Data processing system
US4126893A (en) * 1977-02-17 1978-11-21 Xerox Corporation Interrupt request controller for data processing system
US4080651A (en) * 1977-02-17 1978-03-21 Xerox Corporation Memory control processor
US4228497A (en) * 1977-11-17 1980-10-14 Burroughs Corporation Template micromemory structure for a pipelined microprogrammable data processing system
US4315314A (en) * 1977-12-30 1982-02-09 Rca Corporation Priority vectored interrupt having means to supply branch address directly
DE2805939C2 (de) * 1978-02-13 1980-01-31 Siemens Ag, 1000 Berlin Und 8000 Muenchen Steuerwerk
US4348721A (en) * 1978-06-30 1982-09-07 International Business Machines Corporation System for selectively addressing nested link return addresses in a microcontroller
US4217640A (en) * 1978-12-11 1980-08-12 Honeywell Information Systems Inc. Cache unit with transit block buffer apparatus
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor
JPS5748139A (en) * 1980-09-04 1982-03-19 Nec Corp Microprogram control device
IT1134780B (it) * 1980-12-18 1986-08-13 Honeywell Inf Systems Unita' di controllo microprogrammata con rete di salti multipli
US4541045A (en) * 1981-09-21 1985-09-10 Racal-Milgo, Inc. Microprocessor architecture employing efficient operand and instruction addressing
US4695945A (en) * 1985-02-28 1987-09-22 International Business Machines Corporation Processor I/O and interrupt filters allowing a co-processor to run software unknown to the main processor
US4755966A (en) * 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization
US4802087A (en) * 1986-06-27 1989-01-31 Honeywell Bull Inc. Multiprocessor level change synchronization apparatus
US5018098A (en) * 1987-05-07 1991-05-21 Fujitsu Limited Data transfer controlling apparatus for direct memory access
US5003462A (en) * 1988-05-31 1991-03-26 International Business Machines Corporation Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
US5008808A (en) * 1988-06-23 1991-04-16 Storage Technology Corporation Consolidation of commands in a buffered input/output device
DE4037723C2 (de) * 1990-11-27 1995-04-06 Siemens Ag Verfahren zum Übermitteln von an mehreren Datenschnittstellen einer prozessorgesteuerten Einrichtung vorliegenden Informationen an deren Prozessoreinrichtung
JP2868141B2 (ja) * 1992-03-16 1999-03-10 株式会社日立製作所 ディスクアレイ装置
JPH07271699A (ja) * 1994-03-31 1995-10-20 Canon Inc ネットワークを介して接続される周辺処理装置と情報処理装置並びにその周辺処理装置における制御方法とその周辺処理装置の制御方法
EP1903437A3 (en) * 2006-07-31 2008-10-22 Seiko Epson Corporation Update data transmission method, firmware writing system, and update data transmission program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3286239A (en) * 1962-11-30 1966-11-15 Burroughs Corp Automatic interrupt system for a data processor
US3373408A (en) * 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US3599162A (en) * 1969-04-22 1971-08-10 Comcet Inc Priority tabling and processing of interrupts

Also Published As

Publication number Publication date
FR2225784B1 (pl) 1979-10-12
IN140927B (pl) 1977-01-01
DE2417795C2 (de) 1983-11-24
US3988719A (en) 1976-10-26
NL176714B (nl) 1984-12-17
ZA742281B (en) 1975-04-30
DE2417795A1 (de) 1974-10-24
JPS5042758A (pl) 1975-04-18
HU172377B (hu) 1978-08-28
AU6767474A (en) 1975-10-09
NL7405059A (pl) 1974-10-15
FR2225784A1 (pl) 1974-11-08
NL176714C (nl) 1985-05-17
JPS5647568B2 (pl) 1981-11-10
GB1448866A (en) 1976-09-08

Similar Documents

Publication Publication Date Title
PL114858B1 (en) Data processing system
CA1176757A (en) Data processing system for parallel processings
US4016545A (en) Plural memory controller apparatus
US5754839A (en) Apparatus and method for implementing watchpoints and breakpoints in a data processing system
US4074353A (en) Trap mechanism for a data processing system
US4635193A (en) Data processor having selective breakpoint capability with minimal overhead
US3312951A (en) Multiple computer system with program interrupt
US4077058A (en) Method and apparatus for executing an extended decor instruction
US3735363A (en) Information processing system employing stored microprogrammed processors and access free field memories
US4079451A (en) Word, byte and bit indexed addressing in a data processing system
US3753236A (en) Microprogrammable peripheral controller
US3997895A (en) Data processing system with a microprogrammed dispatcher for working either in native or non-native mode
US4019033A (en) Control store checking system and method
CZ93491A3 (en) Digital computer system
US4045782A (en) Microprogrammed processor system having external memory
GB1580846A (en) Data processing system
US4287561A (en) Address formulation interlock mechanism
EP0042082B1 (en) Microprogram sequencer for microprogrammed control unit
US4379328A (en) Linear sequencing microprocessor facilitating
EP0191402A2 (en) Data processing system
EP0129006A2 (en) Detection and correction of multi-chip synchronization errors
US4225921A (en) Transfer control technique between two units included in a data processing system
US4432050A (en) Data processing system write protection mechanism
EP0010197B1 (en) Data processing system for interfacing a main store with a control sectron and a data processing section
US4084229A (en) Control store system and method for storing selectively microinstructions and scratchpad information