• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Mikroprogram

    Przeczytaj także...
    Lista rozkazów procesora (ang. instruction set) – zestaw podstawowych instrukcji, jakie dany procesor potrafi wykonać.Emulacja (ang. emulation) – programowe symulowanie działania określonego oprogramowania lub platformy sprzętowej przez inny system lub na sprzęcie innego typu.
    Digital Equipment Corporation (DEC) - amerykańska firma informatyczna założona w 1957 r. przez Kena Olsena. Nazwa handlowa - Digital.

    Mikroprogram (mikrokod) – program implementujący listę rozkazów CPU. Podobnie jak język wysokiego poziomu jest kompilowany do kodu maszynowego, tak każda instrukcja kodu maszynowego ma postać ciągu mikroinstrukcji nazywanego mikroprogramem lub mikrokodem.

    Elementy tworzące mikroprogram znajdują się na pojęciowo niższym poziomie niż instrukcje języka maszynowego (asemblera). Aby więc odróżnić je od elementów programowania niskopoziomowego, stosuje się przedrostek mikro-: mikroprogram, mikrokod, mikroinstrukcja, mikroasembler, itp.

    Język wysokiego poziomu (autokod) – typ języka programowania, którego składnia i słowa kluczowe mają maksymalnie ułatwić rozumienie kodu programu dla człowieka, tym samym zwiększając poziom abstrakcji i dystansując się od sprzętowych niuansów. Kod napisany w języku wysokiego poziomu nie jest bezpośrednio „zrozumiały” dla komputera – większość kodu stanowią tak naprawdę normalne słowa, np. w języku angielskim. Aby umożliwić wykonanie programu napisanego w tym języku należy dokonać procesu kompilacji.Procesor (ang. processor), także CPU (ang. Central Processing Unit) – urządzenie cyfrowe sekwencyjne, które pobiera dane z pamięci, interpretuje je i wykonuje jako rozkazy. Wykonuje on ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora.

    Mikroprogramy są szczegółowo dopracowywane i optymalizowane pod kątem jak najszybszego wykonania. Zaniedbanie na tym poziomie grozi dużym spowolnieniem programów, które będą uruchamiane na tym procesorze. Mikroprogramista musi posiadać gruntowną wiedzę na temat obwodów elektrycznych danego typu komputera, ponieważ na nich właśnie operuje mikrokod. Mikroprogram jest pisany przez twórców CPU w fazie projektowania.

    Asembler (z ang. assembler) – termin informatyczny związany z programowaniem i tworzeniem kodu maszynowego dla procesorów. W języku polskim oznacza on program tworzący kod maszynowy na podstawie kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku programowania bazującym na podstawowych operacjach procesora zwanym językiem asemblera, popularnie nazywanym również asemblerem. W tym artykule język programowania nazywany będzie językiem asemblera, a program tłumaczący – asemblerem.Pamięć operacyjna (ang. internal memory, primary storage) – pamięć adresowana i dostępna bezpośrednio przez procesor, a nie przez urządzenia wejścia-wyjścia procesora. W pamięci tej mogą być umieszczane rozkazy (kody operacji) procesora (program) dostępne bezpośrednio przez procesor i stąd nazwa pamięć operacyjna. W Polsce często pamięć ta jest utożsamiana z pamięcią RAM, choć jest to zawężenie pojęcia, pamięcią operacyjną jest też pamięć nieulotna (ROM, EPROM i inne jej odmiany) dostępna bezpośrednio przez procesor, a dawniej używano pamięci o dostępie cyklicznym.

    W większości procesorów korzystających z mikrokodu, mikroprogram nie znajduje się w pamięci operacyjnej, lecz w specjalnej szybkiej pamięci zwanej pamięcią sterującą (ang. control store). Może być to pamięć tylko do odczytu lub pamięć o dostępie swobodnym. W drugim przypadku mikrokod jest ładowany do pamięci sterującej, z innego urządzenia pamięci, podczas inicjacji CPU. Wtedy też możliwe jest modyfikowanie mikrokodu w celu usunięcia błędów lub dodania nowych instrukcji. Mikrokod może również pozwalać na emulację innej, zwykle bardziej złożonej, architektury komputerowej.

    Program komputerowy (ang. computer program) - sekwencja symboli opisująca obliczenia zgodnie z pewnymi regułami zwanymi językiem programowania. Program jest zazwyczaj wykonywany przez komputer (np. wyświetlenie strony internetowej), czasami bezpośrednio – jeśli wyrażony jest w języku zrozumiałym dla danej maszyny lub pośrednio – gdy jest interpretowany przez inny program (interpreter). Program może być ciągiem instrukcji opisujących modyfikacje stanu maszyny ale może również opisywać obliczenia w inny sposób (np. rachunek lambda).VAX – architektura procesorów Digitala a zarazem seria komputerów opartych o rzeczoną ISA. Ten 32-bitowy model programowy został wprowadzony aby zastąpić różne (wzajemnie niezgodne) architektury komputerów serii Programmed Data Processor (PDP).

    Początki mikroprogramowania[]

    Mikrokod został stworzony, by uprościć proces programowania maszyny. Początkowo lista rozkazów procesora była na sztywno wbudowana w fizyczną architekturę komputera. Każdej elementarnej instrukcji (dodawaniu, przesuwaniu, kopiowaniu słów) odpowiadał układ elektroniczny. Zapewniało to wprawdzie bardzo szybkie wykonanie programu, jednak listy rozkazów stawały się coraz bardziej złożone, a ich projektowanie i testowanie w postaci fizycznych obwodów elektrycznych coraz trudniejsze.

    Kompilator – program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym) . Proces ten nazywany jest kompilacją. W informatyce kompilatorem nazywa się najczęściej program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy. Niektóre z nich tłumaczą najpierw do języka asemblera, a ten na język maszynowy jest tłumaczony przez asembler.Język maszynowy (kod maszynowy) – język programowania, w którym zapis programu wymaga instrukcji bezpośrednio jako liczb, które są rozkazami i danymi bezpośrednio pobieranymi przez procesor wykonujący ten program.

    Mikroprogramowanie zminimalizowało ten problem pozwalając projektantom procesorów implementować listę instrukcji jako mikroprogram, a nie zespół obwodów elektrycznych. W przeciwieństwie do wbudowanych instrukcji, nawet w zaawansowanej fazie projektowania mikrokod mógł być łatwo zmieniony. W ten sposób projektowanie CPU zostało znacznie ułatwione i pozwoliło na dalsze rozbudowywanie list rozkazów procesora.

    IBM (ang. International Business Machines Corporation; potocznie zwany Big Blue, NYSE: IBM) – jeden z najstarszych koncernów informatycznych.Pamięć o dostępie swobodnym (ang. Random-access memory, RAM) – rodzaj pamięci komputerowej, która pozwala na dostęp do przechowywanych danych w stałym czasie, niezależne od miejsca ich przechowywania i wcześniejszych operacji. Obecnie ma postać układów elektronicznych.

    Możliwość znacznego rozbudowania listy rozkazów procesora była istotną zaletą. Od latach 60. aż do późnych lat 70., znaczna część programowania odbywała się za pomocą języków asemblera, czyli symbolicznych odpowiedników rozkazów maszynowych. Większa abstrakcyjność (wysokopoziomowość) instrukcji oznaczała większą produktywność programisty. Doprowadziło to do projektów opartych o bezpośrednio wykonywalne języki wysokiego poziomu (ang. Directly Executable High Level Language), gdzie każde wyrażenie języka wysokiego poziomu takiego jak PL/I mogło być bezpośrednio wykonane przez mikrokod sprzętu z pominięciem kompilacji. Przykładami tego podejścia były IBM Future Systems i Data General Fountainhead Project.

    ROM (ang. Read-Only Memory - pamięć tylko do odczytu) - rodzaj pamięci półprzewodnikowej urządzenia elektronicznego, w szczególności komputera, z której dane można tylko odczytywać, a zapis jest niemożliwy lub trwa długo może wymagać dodatkowych czynności lub sprzętu. W tego typu pamięciach przechowywane są dane, które muszą być zachowane, nawet jeśli urządzenie nie jest zasilane.Implementacja (wdrożenie, przystosowanie, realizacja, łac.ang. implementation) – w informatyce – proces przekształcania abstrakcyjnego opisu systemu lub programu na obiekt fizyczny: komputer lub działający program zapisany w konkretnym języku programowania; także obiekt fizyczny będący efektem takiego przekształcenia, np. implementacja systemu operacyjnego (wdrożenie systemu) lub kompilatora dla konkretnego typu komputera.

    Mikroprogramowanie pozwoliło również uporać się z problemem przepustowości pamięci. W latach 70. prędkość procesorów rosła dużo szybciej niż prędkość pamięci. Stosowano wtedy różne techniki akceleracji, takie jak: przesyłanie bloków pamięci, czytanie z wyprzedzeniem czy wielopoziomowe pamięci podręczne. Instrukcje maszynowe wysokiego poziomu (implementowane w mikrokodzie) pozwoliły dodatkowo odciążyć pamięć. Na przykład całe operacje na łańcuchach znaków mogły być wykonane dzięki pojedynczej instrukcji procesora i nie wymagały wielokrotnego uciekania się do pamięci w celu pobrania kolejnej instrukcji programu.

    Rozkaz – w informatyce i programowaniu to pojedyncza operacja centralnej jednostki obliczeniowej określona przez zestaw rozkazów danej architektury. Jest ona przekazywana procesorowi, który ją wykonuje, po czym zapisuje wartość wynikową lub ustawia flagę błędu, jeżeli wystąpił. W szerszym pojęciu, rozkaz może być elementem programu wykonywalnego, takiego jak kod bajtowy.Słowo maszynowe lub po prostu słowo to podstawowa porcja informacji, na której operuje system komputerowy. Słowo, w przypadku maszyn operujących na arytmetyce binarnej, jest liczbą złożoną z odgórnie określonej ilości bitów. Liczbę bitów w słowie nazywamy długością lub szerokością słowa i z przyczyn praktycznych zazwyczaj jest ona potęgą liczby 2. Wielkość słowa określa rozmiar szyny danych oraz rejestrów procesora.

    Do architektur korzystających z wysokopoziomowych instrukcji procesora należą IBM System/360 i DEC VAX. Podejście polegające na używaniu wysoce złożonych instrukcji procesora implementowanych przy pomocy mikrokodu zostało później nazwane CISC.

    Bibliografia[]

    1. M.Morris Mano: Architektura komputerów. WNT, 1988. ISBN 83-204-0888-1.
    (window.RLQ=window.RLQ||).push(function(){mw.log.warn("Gadget \"edit-summary-warning\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");mw.log.warn("Gadget \"wikibugs\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");mw.log.warn("Gadget \"ReferenceTooltips\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");mw.log.warn("Gadget \"main-page\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");});



    w oparciu o Wikipedię (licencja GFDL, CC-BY-SA 3.0, autorzy, historia, edycja)

    Reklama

    Czas generowania strony: 0.02 sek.