Zamapuj procesor na schemat obwodu

11

Jestem programistą (używam języków wysokiego poziomu, takich jak .NET, C, C ++ itp.), Próbując zrozumieć, jak działają komputery na niższym poziomie.

Znam ten schemat:

Usiłuję uzyskać ogólny wgląd w sposób, w jaki diagram w łączu mapuje się do schematu obwodu takiego:

Na przykład spójrz na instrukcję języka asemblera:

ADD 1,2

Próbuję zrozumieć, w jaki sposób procesor wytwarza „3” jako wynik. Zdaję sobie sprawę, że odpowiedź na to pytanie może być trudna w prostych słowach. Jeśli tak, to pomoże link, może do książki.

w0051977
źródło
W odniesieniu do pierwszego opublikowanego diagramu wszystkie potrzebne dane dotyczące faktycznej arytmetyki są ukryte w dużym bloku oznaczonym „ALU”: każdy inny blok na tym schemacie jest tylko po to, aby uzyskać 1,2 i „dodać” do ALU i wynik znowu. Wiedząc o tym, możesz zacząć czytać, jak działa ALU, jeśli o to pytasz ..
Brian Drummond
5
Twój pierwszy schemat jest odwzorowany na procesorze Z80 na drugim schemacie.
starblue

Odpowiedzi:

7

Problem polega na tym, że aby zrozumieć, w jaki sposób komputer dochodzi do 1 + 2 = 3, musisz zrozumieć o 2 poziomy głębiej, niż już poszedłeś.

Z grubsza zorganizowany jest komputer (pod względem kierunków studiów), taki jak ten od najwyższego poziomu abstrakcji do najbardziej fizycznej rzeczywistości:

  1. Oprogramowanie
  2. Maszyna wirtualna
  3. System operacyjny
  4. BIOS
  5. Systemy wbudowane
  6. Bloki IP (podjednostki / urządzenia peryferyjne)
  7. Bloki logiczne
  8. Poziom bramy
  9. Poziom tranzystora
  10. Półprzewodniki
  11. Fizyka urządzeń

Aby właściwie zrozumieć, dlaczego komputer może wytwarzać 2 + 1 = 3, musisz najpierw zdecydować, co chcesz zaakceptować „w wierze”, a w co nie uwierzysz, dopóki go nie zinternalizujesz. Ta informacja będzie na drugim poziomie poniżej tego, co rozumiesz. Więc jeśli chcesz zrozumieć obwód sumatora na poziomie logicznym, musisz zrozumieć podstawy tranzystorów „cyfrowych” (w szczególności CMOS).

Korzystając z wcześniejszej witryny jako przykładu, rozważ ten zasób . Omówiono „Full Adder” - minimalny całkowicie uniwersalny obwód zdolny do dodawania / odejmowania, łącznie z wprowadzaniem i przeprowadzaniem.

Musisz także zrozumieć, w jaki sposób liczby są reprezentowane w uzupełnieniu 2 (system liczb stosowany w nowoczesnych komputerach do arytmetyki liczb całkowitych).

Jeśli naprawdę chcesz światowej klasy kursu wprowadzającego, nie mogę wystarczająco polecić profesora Scotta Willsa z Georgia Tech. Zmarł w zeszłym roku na raka, ale jego kurs trwa . Klasa Georgia Tech ECE2030 (wprowadzenie do inżynierii komputerowej) ma swój podręcznik i ćwiczenia online.

Powodzenia!

DrFriedParts
źródło
Dzięki za to. +1. Jestem programistą .NET, chociaż mam doświadczenie w C i C ++. Rozumiem, że C # jest kompilowany do języka pośredniego, a kompilator JIT jest ukierunkowany na architekturę komputera, kompilując kod IL w locie. Próbuję zrozumieć, w jaki sposób mikrokontroler może odbierać operand i kod operacji i generować dane wyjściowe. Mam wiedzę (poziom GCSE) na temat elementów elektronicznych, takich jak: tranzystory, kondensatory itp.
w0051977
... wtedy zacznę od „Przełącz projekt” w Czytaniach i zacznę od dalszych lekcji.
DrFriedParts
Twoja lista tematów zawiera kilka nieistotnych dla pytania pytań, pomijając te, które są najistotniejsze.
Chris Stratton,
@Chris - Nie, nie ma.
DrFriedParts
3

Musiałem nauczyć się tego samego na uniwersytecie i skorzystaliśmy z książki Organizacja i projektowanie komputerów, która była bardzo szczegółowa (ale może jest zbyt szczegółowa dla twoich potrzeb).

Patterson i Hennesy użyli jakiegoś „prostego” procesora MIPS i pokazali całą funkcję procesora z pewnym przykładowym kodem w asemblerze.

Generalnie myślę, że byłoby dobrym pomysłem wziąć jakiś „prosty” procesor (Arduino lub coś takiego) i spróbować zrozumieć tam funkcję, ponieważ różnice między tym a bardziej złożonym są większe w tym, jak duże są zaimplementowane kody instrukcji.

PS Może elementarny mikroprocesor z Google Code byłby pomocny. Jest to mikroprocesor symulowany w Javie.

Thomas Fischer
źródło
2

Bezpłatna książka „ Jak działają komputery - procesor i pamięć główna” autorstwa Rogera Younga odpowie na twoje pytanie, w celu lepszego zrozumienia używa przekaźników zamiast tranzystorów.

rvnd_kk
źródło
2
Chociaż ta książka wydaje się przydatna, edytuj odpowiedź, aby uwzględnić pełny tytuł i informacje o autorze. W ten sposób, jeśli link kiedykolwiek się zmieni, nadal będzie możliwe wyśledzenie go w przyszłości.
PeterJ
Wygląda na to, czego wtedy szukałem. +1. Spojrzę i wrócę.
w0051977,
-1

Tutaj znalazłem swoją odpowiedź . Jest to ogólny przegląd procesu dodawania liczb.

w0051977
źródło
4
Przydatny dla przyszłych czytelników jest podsumowanie materiału w odpowiedzi. Samo podanie linku do zewnętrznego zasobu nie dodaje wiele do EE.SE.
Photon
Zwróć uwagę na to, co tutaj mówi @ThePhoton. Chociaż ten film na youtube może ci pomóc, czy możesz podsumować to, czego się nauczyłeś, aby w przypadku zerwania tego linku wideo nadal była to odpowiedź?
Kortuk