Różnica między mikroprogramowaniem poziomym i pionowym

Różnica między mikroprogramowaniem poziomym i pionowym

Proces pisania mikrokodu dla pamięci sterującej centralnej jednostki przetwarzania komputera nazywa się mikroprogramowaniem. Mikrokod dla pamięci sterującej jest generowany po konfiguracji komputera, a jego mikro zaprogramowana jednostka sterująca jest. Pamięć sterująca jest częścią jednostki sterującej, która przechowuje wszystkie programy mikro, których nie można często modyfikować. Każda linia programu mikro reprezentuje mikroinukcję, która określa jedną lub więcej mikrooperacji. Istnieją dwa odrębne sposoby zorganizowania mikroinstrukcji: poziome i pionowe. Horyzontalne mikroinstruktury reprezentują kilka mikrooperacji, które są wykonywane w tym samym czasie. Jednak w skrajnych przypadkach każda horyzontalna mikroinstrukt kontroluje wszystkie zasoby sprzętowe systemu. Wręcz przeciwnie, pionowa mikroinstruktowanie przypomina konwencjonalny format języka maszynowego zawierający jedną operację i kilka operandy. W przeciwieństwie do horyzontalnych mikroinstruktów, pionowa mikroinstrukcja reprezentuje pojedyncze mikrooperacje.

Mikroprogramowanie poziome

W mikroprogramowaniu poziomym, każdy bit jest identyfikowany specjalnie za pomocą jednego punktu sterowania, co wskazuje, że należy wykonać odpowiednią mikro-operacje. Ponieważ każda mikroinstrukcja jest wystarczająca do jednoczesnego kontrolowania kilku zasobów, ma potencjalną przewagę nad bardziej wydajnym wykorzystaniem sprzętu, a ponadto wymaga mniejszej liczby mikroinstruktów na mikroprogramy. Umożliwia wyższy stopień równoległości z minimalną ilością kodowania i oddzielnymi pól kontrolnych. Jednak opracowanie mikropramów, które wykorzystują zasoby optymalnie lub wydajnie, jest złożonym zadaniem. Mikroprogramy poziome oferuje dużą elastyczność, ponieważ każdy bit sterowania jest od siebie niezależny. Ma większą długość, więc zwykle zawiera więcej informacji niż pionowe mikroinstruktory.

Mikroprogramowanie pionowe

Mikroprogramowanie pionowe wykorzystuje zmienny format i wyższy stopień kodowania, w przeciwieństwie do mikroprogramowania poziomego. Nie tylko skraca długość mikroinstruktury, ale także zapobiega zwiększającej pojemności pamięci w przypadku bezpośredniego wpływu na długość mikroinstrukcji. Każda pionowa mikroinstrukcja zazwyczaj reprezentuje pojedynczą mikro-operację. Kod jest używany do wykonania każdej mikroperacji, a dekoder tłumaczy kod na poszczególne sygnały sterujące. Ponieważ określono tylko mikro-operacje, pola mikroinstruktów są w pełni wykorzystywane. Plus pionowe mikroprogramy są łatwiejsze do pisania niż ich poziome odpowiedniki. Pionowa mikroinstruktowanie przypomina konwencjonalny format języka maszynowego obejmujący jedną operację i kilka operandy. W związku z tym jest łatwe w użyciu do mikroprogramowania. Zasadniczo składa się z czterech do sześciu pól, które wymagają około 16 do 32 bitów na instrukcję.

Różnica między mikroprogramowaniem poziomym i pionowym

Kodowanie

Mikroprogramowanie pionowe wykorzystuje zmienny format i wyższy stopień kodowania, w przeciwieństwie do mikroprogramowania poziomego. W pionowym mikroprogramowaniu bity sterujące są kodowane, przy czym każdy kod jest używany dla każdego działania do wykonania, a dekoder instrukcji dekoduje kod na wiele sygnałów sterowania. Przeciwnie, horyzontalne mikroprogramowanie obejmuje horyzontalne mikroinstrukcje, które w ogóle nie wykorzystują kodowania. Reprezentują każdy bit sterowania w danych danych przypisanych osobnymi bitami w formacie mikroinstruktury. Każde trochę w polu kontrolnym jest przymocowane do linii sterowania.

Sekwencja

Mikroprogramy poziome ogólnie następuje sekwencyjnego podejścia do określenia następnej mikroinstrukcji w mikroprogramie, podobnym do konwencjonalnego formatu języka maszynowego. Każdy bit jest identyfikowany specjalnie z pojedynczym punktem sterowania, co wskazuje, że odpowiednia mikro-operacja ma być wykonywana. Następnie do rozbicia sekwencji wymagane są specjalne mikroinstruktury gałęzi warunkowe i bezwarunkowe. Mikroprogramowanie pionowe może użyć stosunkowo adresowania, w którym konieczne jest kilka bitów do określenia względnego skoku do przodu. Wymaga to obliczenia adresu na każdym kroku.

Projekt

- Mikroprogramy pionowe mają lepszą gęstość kodu, co jest korzystne dla wielkości sklepu sterującego. Pionowa mikroinstruktowanie przypomina konwencjonalny format języka maszynowego obejmujący jedną operację i kilka operandy. Każda pionowa mikroinstruktowa reprezentuje pojedynczą mikro-operację, podczas gdy operandy mogą określać zlew danych i źródło. Z drugiej strony poziome mikropramy, na ogół reprezentują wiele mikrooperacji, które są wykonywane w tym samym czasie. W skrajnych przypadkach każda horyzontalna mikroinstrukt kontroluje jednocześnie kilka zasobów sprzętowych.

Elastyczność

- Poziome mikropramy oferują lepszą elastyczność, ponieważ każdy bit sterowania jest od siebie niezależny. Ma większą długość, więc zwykle zawiera więcej informacji niż pionowe mikroinstruktory. Poziome mikroinstrukcje z 48 lub więcej bitami są dość powszechne. Mikroprogramy poziome mają potencjalną przewagę w zakresie bardziej wydajnego wykorzystania sprzętu, a na ich podstawie wymaga mniejszej liczby mikroinstruktów na mikroprogram. Z drugiej strony pionowe mikroinstrukcje są bardziej kompaktowe, ale mniej elastyczne niż mikroinstruktory poziome. W związku z tym podejście pionowe jest łatwe w użyciu do mikroprogramowania.

Poziome kontra. Mikroprogramowanie pionowe: wykres porównawczy

Podsumowanie mikroprogramowania poziomego i pionowego

W przeciwieństwie do horyzontalnych mikroinstruktów, pionowa mikroinstrukcja reprezentuje pojedyncze mikrooperacje. Poziome mikroprogramy umożliwiają wyższy stopień równoległości z minimalną ilością kodowania i oddzielnych pól kontrolnych, podczas gdy bity kontrolne są kodowane w pionowych mikropramach. Wybór między tymi dwoma podejściami musi być ostrożnie dokonany. Jednak w praktyce projektanci używają kombinacji poziomych i pionowych formatów mikroinstruktów, aby wynikowa struktura była kompaktowa, ale wydajna.