To szerokie pytanie, na które nie ma łatwej odpowiedzi; to długa droga od elektronów wędrujących wzdłuż miedzianych drutów do renderowania strony internetowej w Firefoksie. Spróbuję dać ci przegląd od dołu do góry i wskażę odpowiednie rzeczy, na które można spojrzeć w górę.
Kodowanie liczb
01
Zauważ, że istnieje również wiele sposobów kodowania liczb w systemie binarnym. Po zbudowaniu pierwszego procesora zdajesz sobie sprawę z zalet robienia rzeczy w określony sposób. Popularnymi przykładami są dwa uzupełnienia i zmiennoprzecinkowe IEEE . Na początek ogranicz się do zwykłych liczb naturalnych.
Bramy
Załóżmy, że używamy kodowania binarnego. Pomyśl o tym, jak nauczyłeś się dodawania w szkole podstawowej i zapisz to samo dla liczb binarnych. Jak się okazuje, elementy składowe algebry boolowskiej są już dla ciebie dostępne; łatwo jest zbudować podstawowy sumator (i inne funkcje arytmetyczne) za pomocą bramek logicznych .
Jak zbudować takie bramy, nie wchodzi w zakres informatyki; inżynieria elektryczna dostarczyła wiele rozwiązań przy użyciu np. lamp lub tranzystorów . Udaj się do Elektrycznego Stos Exchange na pytania w tej sprawie.
Zegar i stan
Nie wszystkie bramki są równie szybkie i nie wszystkie części obliczeń mają tę samą liczbę bramek. Dlatego musimy szczególnie uważać, aby poszczególne operacje się nie wyprzedzały. Przydatne okazało się użycie zegara globalnego ; wynikiem danej sieci bramek jest stan przewodów wyjściowych na końcu cyklu (który może zmieniać się gwałtownie, gdy bramki kaskadowo zbliżają się do poszczególnych stanów końcowych).
Oznacza to, że wyniki jednego cyklu mogą wymagać zapisania aż do rozpoczęcia następnego cyklu, np. W przypadku podłączenia pętli. Istnieje wiele podstawowych elementów, których można użyć z różnym skutkiem, wszystkie gromadzone z bram; niektóre są nazywane klapkami . Są one również używane do budowania rejestrów , elementów przechowujących liczby dla tylu cykli zegara, ile potrzeba.
Architektura i polecenia
Teraz masz mnóstwo do wyboru. Jakie operacje arytmetyczne zapewnia twój procesor? Jak wyglądają twoje polecenia? Warto spojrzeć na architekturę MIPS, której wczesne formy są łatwe w porównaniu z innymi projektami. Spójrz na plany :
Oryginał z http://ube.ege.edu.tr/~erciyes/CENG311
Zasadniczo jest to pobieranie i dezasemblacja poleceń, zestaw rejestrów, ALU i kontrola. Polecenia kodują operację ALU, którą należy wykonać na których operandach (według numeru rejestru, w którym są przechowywane), jak manipulować licznikiem programu² lub który rejestr ładować / przechowywać z / do pamięci³.
Dalsze uwagi
Do tej pory masz działający procesor w nowoczesnym sensie, zakładając, że wymyśliłeś, jak zbudować pamięć i sposób, w jaki ją karmić. W drodze do nowoczesnej maszyny trzeba dokonać wielu wyborów. Oto niektóre:
Alternatywy
Na powyższe duży wpływ ma historia. W innym świecie o różnych umysłach komputery mogą działać inaczej. W rzeczywistości istnieje wiele modeli obliczeń , z których niektóre mają zalety, które czynią je przydatnymi jako abstrakcja dla prawdziwych maszyn w wielu przypadkach. Podejmowane są również próby naśladowania sposobu działania naszego mózgu, to znaczy umożliwienia obliczeń neuronowych , lub bardziej ogólnie, wykorzystania strategii rozwiązywania problemów i przechowywania informacji zaobserwowanych w naturze , w szczególności DNA i obliczeń kwantowych .
Więc może (mam nadzieję?) Powyższe informacje to cała starożytna historia za kolejne 50 lub 100 lat.
- Wszystkie fantazyjne rzeczy, które robimy dzisiaj z komputerami, są podzielone na wiele małych zadań arytmetycznych, które procesor wykonuje jeden po drugim.
- Jeśli Twój model pozwala programowi manipulować przepływem sterowania, byłby to adres pamięci, z którego procesor otrzymuje następną instrukcję. Możesz również wymyślić maszyny, które odczytują tylko stały zestaw instrukcji, powiedzmy, z taśmy. Tak naprawdę zrobiły to wczesne wdrożenia. Brak skoków oznaczał brak pętli; program był całkowicie rozwiniętą / rozwiniętą serią instrukcji w zależności od danych. Oczywiście możliwość korzystania z tego samego programu do wielu danych wejściowych jest silniejsza.
- Zakładając, że masz pamięć; Twój procesor działa bez niego, ale może poradzić sobie z tak wieloma wartościami jednocześnie. Wczesne komputery odczytywały wszystkie dane z taśm i trzymały je w rejestrach. Nie było pamięci, nie mówiąc już o trwałej pamięci do zapisu, jaką znamy dzisiaj.