Ach, brakuje Ci koncepcji STATE MACHINE. To tam możemy „napisać kod” złożony z chipów sprzętowych TTL: selektorów danych, 4-bitowych liczników, grup równoległych flipflopów. (Ale to wszystko są skomplikowane części, podczas gdy idea „maszyn stanowych” jest dość prosta).
„Maszyna stanu” jest również powszechnie nazywana „mikrokodem”. Nazywany także „plastrem bitowym” lub „mikrosekwenserem”. Jest również oznaczony jako dekoder instrukcji wewnątrz układu procesora. (Tak więc to „malutka osoba” w układzie procesora czyta kody operacyjne i faktycznie wykonuje wymienione czynności).
We wszystkich wielu wprowadzających / popularnych wyjaśnieniach dotyczących komputerów, uczą nas wszystkiego o bramkach logicznych io pełnowymiarowych procesorach wbudowanych, ale nigdy o warstwie abstrakcji, która jest umieszczona niewidocznie między nimi. Nie próbują wyjaśniać tego malutkiego mężczyzny.
Najprostszą maszyną stanu jest układ ROM z liniami adresowymi podłączonymi do wielobitowego cyfrowego licznika w górę. Następnie bajty wyjściowe ROM są traktowane jako pojedyncze przewody lub linie sterujące. (To jest jak automatyczny licznik czasu pralki, przechodzący kolejno między N różnymi ustawieniami). Gdy adres binarny zlicza się w górę, osiem przewodów słowa wyjściowego (lub szesnaście, 24, 32 itd.) Mogą tworzyć dowolny wzór chcemy. Po prostu napisz żądany wzór w ROM.
To jest bardzo podobne do mechanicznej pozytywki. Albo kontroler wzorców żarówek na szyldach reklamowych z lat pięćdziesiątych: wiązka obrotowych krzywek tarczowych z przełącznikami skrzydełkowymi na krawędziach. Wytnij kilka wzgórz i dolin na krawędziach dysków bakelitowych, a będziesz mógł tworzyć dowolne zsynchronizowane wzory światła.
Ale prawdziwa siła tego pomysłu pojawi się tylko wtedy, gdy podłączymy nasz licznik binarny do trzech lub czterech linii wejściowych adresu ROM. Następnie użyj pozostałych dodatkowych linii adresowych ROM jako danych wejściowych! Na przykład, jeśli ROM ma 8 linii addr, możemy połączyć nasz 3-bitowy licznik w górę z trzema liniami. W ten sposób licznik utworzy sekwencyjną sekwencję ośmiu wzorów bitowych na wyjściu ROM. Następnie ROM przechowuje trzydzieści dwie różne wersje tych plików, wybrane przez pozostałe pięć wierszy adresu.
MIKROPROCESOR 6502, ZNALEZIONY W APPLE-II I INNYCH
Następnie użyj pięciu wejść adresu ROM ... ABY WYBRAĆ OPCJĘ URZĄDZENIA-JĘZYKA! Różne bity umieszczone na tych pięciu dodatkowych liniach adresu będą wyzwalać różne sekwencje 8-pulsowe zapisane w pamięci ROM. Każda z 32 możliwych instrukcji kodu operacji będzie składać się z 8 kroków (lub mniej). Na koniec użyj wszystkich bitów wyjściowych ROM jako linii sterujących.
Ta linia wyjściowa tutaj, gdy jest wysoka, kieruje razem dwa rejestry do sumatora w celu dodania dwóch liczb. Drugi polega na zwiększaniu impulsu głównego rejestru adresowego procesora w celu przechodzenia przez kod maszynowy przechowywany w pamięci RAM. Ten drugi przewód blokuje wyjście sumatora, więc można go zrzucić do jednego z rejestrów procesora podczas wykonywania instrukcji ADD. Inny zrzuci jakiś rejestr do głównego rejestru adresowego w celu wykonania instrukcji JMP.
Innymi słowy, sam procesor jest wykonany z oprogramowania. Ale jest to wzór bitowy przechowywany na stałe w kilku słowach pamięci ROM. Zmień wzorce bitowe, a zmienisz to, co robią kody operacyjne. Maszyna stanów to miejsce, w którym najgłębszy poziom oprogramowania jest fizycznie wykonany ze sprzętu. Pomyśl o maszynie stanu jako „małym człowieku” wewnątrz komputera, który czyta każdą instrukcję kodu maszynowego i wysyła impulsy do linii sterujących, które manipulują rejestrami i wykonują małą sekwencję kroków każdego kodu operacyjnego. (A ROM mikrosekwensera to prosty mózg małego człowieka.)
Bardzo fajną animacją jest układ Visual 6502 w javascript dla przeglądarek (6502 to procesor używany w starych komputerach APPLE-II). Przykładowy obrazek powyżej.
http://www.visual6502.org/JSSim/
W rzeczywistości może wykonać program w kodzie maszynowym, podczas gdy wszystkie wewnętrzne przewodniki i bramki logiczne zmieniają kolor wewnątrz układu scalonego. Układ pokazuje wszystkie rejestry, liczniki adresów pamięci, sumator, shifter itp. Ale ma też masywną, losowo wyglądającą szachownicę wzdłuż górnej krawędzi. To jest bitslice, ROM, trwały wzorzec dla jego rozkazów, wszystkie stworzone przez działającą maszynę stanu.
Steampunk: jeśli zamierzasz zbudować myślący silnik Babbage, będziesz chciał, aby obracający się cylinder pozytywki obracał się z prędkością około 20 000 obr./min, a małe kołki na cylindrze powinny być wykonane ze stopu wolframu i irydu , ponieważ ten cylinder zawiera rozkazy, w postaci wzorów małych wypukłości, a jego ogromna prędkość obrotowa określa szybkość procesora. (Może użyć małych srebrnych kropek na szklanym cylindrze i niektórych z tych nowopowstałych fotokomórek selenowych, zamiast małych przełączników w kształcie liści, aby odczytać wzór cylindra. Steam-punk optyczny komputer !!! Telewizor mechaniczny 15 kHz ze skanowaniem liniowym wykonywanym przez obrotowe, ośmiokątne lustro kwarcowe, lewitowane powietrzem i obracające się z prędkością około 100 000 obr./min. Skorzystaj z jednego z nich i oceń moc swojego komputera na podstawie mocy zasilacza sprężarki powietrza.
Albo tak: komputery to oprogramowanie aplikacji, które jest zrobione z języka wysokiego poziomu, który składa się z kodu interpretera, który składa się z asemblera, który składa się z rozkazów kodu maszynowego ...-sekwencje sprzętowe ROM maszyny, które składają się z rejestrów i selektorów danych oraz liczników i przerzutników, które są wykonane z bramek logicznych, które są zbudowane z pojedynczych tranzystorów, które są wykonane z zanieczyszczonego krzemu, który jest zbudowany z atomów Si obardzo mało fosforu, boru.KTÓRE składają się z jąder i elektronów, które składają się z protonów i neutronów, które są zbudowane z kwarków poruszających się po wrzącym morzu na poziomie Fermiego.
Lub tak: pośrodku komputera znajduje się mechaniczne pokrętło licznika czasu prania.Ale obraca się z częstotliwością ponad GHz.