Jeśli prędkość ładowania elektrycznego się nie zmieniła, w jaki sposób komputery stały się szybsze?

48

Wszyscy wiedzą, że prędkość obliczeniowa drastycznie wzrosła od czasu ich wynalezienia i wygląda na to, że będzie kontynuowana. Zastanawia mnie jednak jedna rzecz: gdybyś dzisiaj przepuścił prąd elektryczny przez materiał, poruszałby się on z taką samą prędkością, jak gdybyś zrobił to z tym samym materiałem 50 lat temu.

Mając to na uwadze, w jaki sposób komputery stały się szybsze? Jaki jest główny obszar projektowania procesorów, który spowodował tak niesamowite zwiększenie prędkości?

Pomyślałem, że może to być jeden lub więcej z poniższych:

  • Mniejsze procesory (mniejszy dystans do przepłynięcia prądu, ale wydaje mi się, że tylko tutaj można by uzyskać marginalne korzyści).
  • Lepsze materiały
Leylandski
źródło
4
To miłe pytanie. Oczywiście sam materiał nie jest tak ważny - w ciągu ostatnich 100 lat samochody stały się szybsze, ale gaz jest nadal tym samym gazem (mniej więcej), tylko silnik stał się bardziej wydajny. Wstępną odpowiedź można znaleźć tutaj , ale mam nadzieję, że odpowiedź będzie bardziej szczegółowa.
Ran G.
Rozmiar jest tutaj dużym problemem. Ale afaik osiągnęliśmy (lub jesteśmy blisko) fizyczną barierę w projektowaniu układów. (Nie jestem tutaj ekspertem, inni dowiedzą się o tym więcej). Oczywiście rozmiar procesora nie jest jedynym parametrem.
A.Schulz
Częstotliwość taktu procesora jest ograniczona szybkością elektronów w stosowanych materiałach, ale dominowały inne czynniki.
Raphael
Ponieważ przede wszystkim nie były optymalnie szybkie i nadal nimi nie są. Prędkość światła nie jest krokiem determinującym szybkość.
user207421,
1
Bezwstydna wtyczka: superuser.com/questions/543702/…
bwDraco

Odpowiedzi:

54

gdybyś dzisiaj przepuścił prąd elektryczny przez materiał, poruszałby się on z tą samą prędkością, jak gdyby zrobił to z tym samym materiałem 50 lat temu.

Mając to na uwadze, w jaki sposób komputery stały się szybsze? Jaki jest główny obszar projektowania procesorów, który spowodował tak niesamowite zwiększenie prędkości?

Otrzymujesz błędne wnioski, ponieważ twoja początkowa hipoteza jest błędna: myślisz, że szybkość procesora jest równa prędkości elektronów w procesorze.

W rzeczywistości procesor to pewna synchroniczna logika cyfrowa. Ograniczeniem jego prędkości jest to, że wyjście równania logicznego powinno być stabilne w ciągu jednego okresu zegarowego. Dzięki logice zaimplementowanej w tranzystorach limit jest głównie związany z czasem wymaganym do przełączenia tranzystorów. Zmniejszając rozmiar kanału, możemy sprawić, że będą się szybciej przełączać. Jest to główny powód poprawy maksymalnej częstotliwości procesorów przez 50 lat. Dzisiaj modyfikujemy również kształt tranzystorów, aby zwiększyć ich szybkość przełączania, ale o ile mi wiadomo , tylko Intel, Global Foundries i TSMC są w stanie dziś tworzyć FinFET.

Istnieją jednak inne sposoby poprawy maksymalnej częstotliwości taktowania procesora: jeśli podzielisz swoje równanie logiczne na kilka mniejszych, możesz przyspieszyć każdy krok i uzyskać wyższą częstotliwość taktowania. Potrzebujesz także więcej okresów taktowania, aby wykonać tę samą akcję, ale stosując techniki potokowe , możesz sprawić, aby tempo instrukcji na sekundę było zgodne z częstotliwością taktowania.

Dzisiaj prędkość elektronów stała się ograniczeniem: przy 10 GHz sygnał elektryczny nie może być propagowany na odległości większej niż 3 cm. Jest to mniej więcej rozmiar obecnych procesorów. Aby uniknąć tego problemu, w układzie może znajdować się kilka niezależnych domen synchronicznych, co zmniejsza ograniczenia propagacji sygnału. Ale to tylko jeden czynnik ograniczający, między innymi szybkość przełączania tranzystora, rozpraszanie ciepła, EMC i prawdopodobnie inne (ale nie jestem w branży odlewni krzemu).

Jacen
źródło
To dobra informacja. Nigdy wcześniej nie myślałem, że istnieje górna granica prędkości zegara.
nick
3
To 3 cm przy 10 GHz jest optymistyczne. Elektrony w drutach wydają się być nieco wolniejsze niż fotony w próżni.
8bittree
6
@ 8bittree: prędkość elektronów nie ma znaczenia, prawda? Liczy się prędkość sygnału, która jest znacznie szybsza.
Harry Johnston,
1
@HarryJohnston Hmm ... według Wikipedii masz rację . Ale same sygnały są nadal wolniejsze niż światło. A 3 cm przy 10GHz oparte jest na świetle w próżni
8bittree
1
Oprócz tego, że mniejsze tranzystory są szybsze, możesz dodać więcej na chipie. Występuje kompromis czas / przestrzeń dla obwodów, więc więcej tranzystorów oznacza szybsze obwody. to znaczy. z kilkudziesięciu tranzystorów można zrobić 32-bitowy sumator, ale obliczenie pojedynczego dodatku wymagałoby wielu tyknięć zegara. Najnowsze procesory Intela mogą to zrobić jednym tikiem zegara, który, jak sądzę, wymaga 100 000 tranzystorów.
BlueRaja - Danny Pflughoeft
15

Istnieje wiele złożonych zmiennych, które wpływają na ogólną szybkość procesora, ale główną z nich jest szybkość zegara, która wzrosła do połowy 2000 roku, a następnie uległa spłaszczeniu z powodu ograniczeń fizycznych. Zużycie energii na układ również wzrosło w tym okresie, aby zrekompensować straty / wycieki układu. Chipy procesora właśnie stały się zbyt gorące, a technologia chłodzenia stała się ważniejsza i nie można było zastosować większej mocy (bez dosłownie ich stopienia!).

Extremetech.com daje miłą ankietę, która wskazuje, że prawo Moore'a jest tak naprawdę napędzane głównie przez skalowanie Dennarda . Ten ostatni zawalił się w połowie 2000 roku. Istnieje wiele innych czynników / usprawnień projektowych związanych z „szybkością” układu (gdzie „prędkość” jest mierzona jako całkowity czas wykonania kodu, a nie tylko taktowanie zegara), które miały tendencję do maskowania punktu przegięcia w możliwościach sprzętowych, takich jak pamięci podręczne, równoległość procesora / wielordzeniowy , przewidywanie rozgałęzień itp., które zostały dodane z mniejszymi szerokościami bramek (a zatem o wiele więcej bramek na chip dla dodatkowej funkcjonalności). Szerokości bram również przestały się zmniejszać lub przynajmniej zmniejszać mniej gwałtownie z każdym pokoleniem.

Dlaczego te ograniczające trendy nie są zbyt dobrze znane? Niektóre podmioty, które mają największą wiedzę na temat tych trendów, „mają najwięcej do stracenia” i faktycznie mają najmniejszą szansę na ich opublikowanie. Na przykład Intel, wart miliardy dolarów, prawdopodobnie nie opublikuje zastrzeżonych danych wewnętrznych wskazujących na ograniczenia lub spadki przyszłej wydajności.

Na horyzoncie pojawiają się nowe możliwości, które mogą prowadzić do zupełnie nowych trendów (ale niektóre dotyczą prawie zupełnie różnych technologii / technik produkcji), w tym chipów fotonicznych, układów 3-D, w których układy układane są w wielu warstwach, obliczeń kwantowych, nanotechnologii, takich jak nanorurki tranzystory itp.

vzn
źródło
Od dawna marzyłem o rozwoju obsługi systemu operacyjnego i języka dla koncepcji grup rdzeni, przy czym każda grupa ma jednolity system pamięci, a wszystkie rdzenie mają również dostęp do wspólnego systemu pamięci. Powinno być możliwe, aby fragment kodu powiedział „Chcę odrodzić wątek, który widzi dokładnie taką samą pamięć jak ja przez cały czas” i mieć system zapewniający, że wszystkie wątki, które powinny widzieć tę samą pamięć, działają na te same rdzenie. Niektóre algorytmy mogą być znacznie bardziej efektywne, gdy takie gwarancje są dostępne, ale w wielu systemach jedynym ...
SuperCat
... sposobem na osiągnięcie tego jest wybranie rdzenia procesora przez aplikację i nie zezwalanie na uruchamianie wątków na żadnym innym, co jest naprawdę okropne.
supercat
2
Prędkości zegara nie wzrosły znacząco w ciągu ostatnich 10 lat. Dodawanie rdzeni, wykonywanie zestawów instrukcji w jednej instrukcji itp. Redukowanie wąskich gardeł gdzie indziej np. Przepustowość pamięci była głównym czynnikiem wpływającym na szybkość współczesnego procesora.
JamesRyan
5

Delegacja na dodatkowe procesory

Kolejną kwestią (oprócz innych świetnych odpowiedzi) jest przekazanie zadań innym procesorom. We wczesnych dniach obliczeniowych istniał tylko jeden procesor. W przypadku grafiki obliczenia zostały udostępnione innym obliczeniom w tym samym procesorze. Teraz mamy osobne procesory do przetwarzania grafiki.

Wiele rdzeni

Wiele współczesnych procesorów ma wiele rdzeni w tym samym kawałku krzemu. Ponieważ dzielą ten sam kawałek krzemu, nie wpływa to tak bardzo na spowolnienie przechodzenia układu do innego rdzenia / procesora. Przykład: procesory graficzne.

Rozszerzenie pamięci i adresu

Wczesne 8-bitowe mikroprocesory miały mniejszy zakres adresowania niż dzisiejsze procesory 32-bitowe i 64-bitowe. Nowoczesne procesory mają zwiększony zasięg pamięci, co oznacza, że ​​więcej obliczeń można wykonać w pamięci, niż trzeba uzyskiwać dostęp do pamięci zewnętrznej.

Dotyczy to również pamięci na chipie. Większa przestrzeń adresowa pozwala na większe pamięci bliżej centralnego rdzenia, pozostawiając jednocześnie dużą przestrzeń adresową poza krzemem.

Rurociągi i pamięci podręczne

Ponieważ pamięć staje się tańsza, współczesne komputery wdrażają teraz bardziej wyrafinowane potoki danych i instrukcji, a także pamięci podręczne danych i instrukcji. Przyspiesza to wykonywanie, zmniejszając potrzebę pobierania z wolniejszej pamięci (poza krzemem) do wewnętrznej pamięci podręcznej. Niektóre procesory mogą zawierać forpętle w pamięci podręcznej instrukcji.

Podsumowanie

Dzisiejsze komputery są znacznie szybsze, nie tylko ze względu na postępy w technologiach tranzystorowych i krzemowych, ale także z powodu przekazania zadań innym procesorom / rdzeniom. Pamięć staje się szybsza i tańsza, dzięki czemu procesory mają dużo pamięci blisko procesora. Zakresy adresowania pozwalają na więcej pamięci, co oznacza mniej pobrań do pamięci zewnętrznej. Większe rozmiary rejestrów pozwalają na pobranie większej ilości danych na cykl (4 bajty w systemie 32-bitowym, 1 bajt w systemie 8-bitowym). Wiele rdzeni pozwala na wykonywanie operacji równoległych zamiast ich szeregowania.

Thomas Matthews
źródło
4

Prawie wszystkie postępy w szybkości komputera pochodzą z jednego z następujących obszarów:

Mniejsze tranzystory

Dwie rzeczy wynikają z zmniejszenia tranzystorów:

  1. Są one fizycznie bliżej siebie, więc czas potrzebny na przebycie sygnału elektrycznego ze źródła do miejsca przeznaczenia jest krótszy. Więc chociaż sygnały elektryczne nie przemieszczają się szybciej niż 50 lat temu, często teraz podróżują na krótsze odległości .
  2. Więcej tranzystorów może być zawartych w układzie, co oznacza, że ​​więcej „pracy” można wykonać jednocześnie. Im więcej tranzystorów zostanie dodanych, tym trudniej jest znaleźć dla nich przydatną pracę, ale stosuje się wiele sprytnych sztuczek (patrz poniżej).

Więcej „użytecznej pracy” na instrukcję

Na przykład niektórym procesorom brakuje instrukcji mnożenia lub dzielenia liczb całkowitych; zamiast tego to zadanie należy wykonać przy użyciu powolnych procedur oprogramowania. Dodawanie instrukcji mnożenia i dzielenia znacznie przyspiesza. Dodanie instrukcji zmiennoprzecinkowych może przyspieszyć oprogramowanie wymagające liczb zmiennoprzecinkowych.

Ważnym sposobem wykonywania bardziej „użytecznej pracy” na instrukcję jest zwiększenie rozmiaru słowa . Procesory, które mogą wykonywać operacje na liczbach 32-bitowych, często wymagają znacznie mniej instrukcji, aby wykonać to samo zadanie, co 16-bitowe lub 8-bitowe procesory.

Niektóre procesory obsługują instrukcje, które wykonują kilka czynności jednocześnie, w szczególności instrukcje, które wykonują tę samą operację na wielu elementach danych ( SIMD ).

Więcej instrukcji na cykl

„Cykl zegarowy” to sposób, w jaki procesor przechodzi z obecnego stanu do następnego. W pewnym sensie jest to najmniejsza jednostka pracy, jaką procesor może wykonać jednocześnie. Jednak liczba cykli zegara wykonywanych przez poszczególne instrukcje zależy od konstrukcji procesora.

Wraz z pojawieniem się procesorów potokowych stało się możliwe, że oddzielne instrukcje „nakładają się”, tzn. Zaczynałyby się przed zakończeniem poprzedniego. Jednak niektóre instrukcje mogą unieważnić następną instrukcję, która nie będzie znana, dopóki następna instrukcja nie zostanie częściowo wykonana, więc sprawy mogą się skomplikować. (Procesory potokowe zawierają logikę, aby upewnić się, że wszystko działa poprawnie, ale charakterystyka wydajności jest bardziej złożona).

Procesory superskalarne przenoszą to na wyższy poziom, dosłownie pozwalając na wykonanie dwóch instrukcji jednocześnie, a wykonywanie poza kolejnością idzie o krok dalej, umożliwiając wykonywanie instrukcji poza kolejnością. Te funkcje wymagają analizy strumienia instrukcji, aby dowiedzieć się, które instrukcje nie kolidują ze sobą.

Chociaż istnieją inne takie sztuczki (np. Przewidywanie gałęzi , wykonywanie spekulacyjne ), ważniejszy jest ogólny obraz:

  • każda instrukcja wymaga określonej liczby cykli zegara (niekoniecznie stała)
  • ale wiele instrukcji może być w toku jednocześnie
  • dlatego istnieje mierzalne „ instrukcje na cykl ”, które wynoszą> 1 dla wysokiej klasy procesorów
  • ale zależy to bardzo mocno od obciążenia pracą

Więcej cykli na sekundę

Innymi słowy, wyższa częstotliwość zegara . Zwiększenie prędkości zegara nie tylko zwiększa wytwarzane ciepło, ale także wymaga znacznie bardziej zdyscyplinowanej konstrukcji chipów, ponieważ istnieje mniejszy limit czasu na stabilizację obwodu. Dzięki temu udało nam się pokonać wiele kilometrów do 2000 roku, kiedy osiągnęliśmy praktyczne ograniczenia.

Dane we właściwym miejscu we właściwym czasie

Chociaż komponenty w procesorze zbliżają się coraz bliżej ze względu na kurczące się tranzystory, procesor i pamięć RAM są nadal w odległości 5-10 cm. Jeśli instrukcja potrzebuje czegoś z pamięci RAM, wykonanie tej instrukcji nie zajmie 5 lub 6 cykli, zajmie to około 200. Jest to problem wąskiego gardła von Neumanna .

Naszą główną bronią przeciwko temu jest pamięć podręczna . Dane, do których ostatnio uzyskiwano dostęp, są częściej dostępne, dlatego są przechowywane w specjalnej pamięci (zwanej cache), która znajduje się w układzie procesora, co znacznie przyspiesza dostęp.

Jednak inne techniki (takie jak potokowanie i przewidywanie rozgałęzień ) pomagają, umożliwiając procesorowi wykonanie użytecznej pracy podczas oczekiwania na dane, a także przewidywanie, które dane mogą być wkrótce potrzebne.

Wiele i / lub wyspecjalizowane procesory

O wiele łatwiej jest pisać oprogramowanie dla jednego procesora niż dla wielu procesorów. Czasami jednak korzyści wynikające z wydajności / kosztów / zużycia energii są tego warte.

Ponadto niektóre procesory są szczególnie dobrze dostosowane do niektórych zadań. Na przykład procesory graficzne są specjalnie zaprojektowane do obliczeń wymaganych do renderowania grafiki i efektów 2D i 3D.

Procesory wielordzeniowe to zasadniczo wiele procesorów w jednym układzie.

Artelius
źródło
3

Gdy komputery mogą wykonywać więcej obliczeń w jednostce czasu, są postrzegane jako szybsze. Każde obliczenie może nie zostać wykonane szybciej niż wcześniej, ale wykonuje się więcej obliczeń. Dobrą analogią byłaby liczba kroków, które wykona biegacz. Gdyby biegacz zachowywał się zgodnie z prawem Moore'a, biegacz byłby w stanie wykonać dwa razy więcej kroków co dwa lata. Zasadniczo biegacz pokonałby dwukrotnie dystans w tym samym czasie, co biegacz dwa lata temu. Dystans podzielony przez czas równa się prędkości. 2 X Odległość równa się 2 X Prędkości.

użytkownik24719
źródło
3

Moc obliczeniowa komputera / procesora zależy od tego, jak szybko przemieszcza się prąd, a raczej od tego, jak szybko można go włączać i wyłączać. Im szybciej możesz przełączać się między przepływem prądu a przepływem prądu, tym więcej informacji możesz przetworzyć w jednostce centralnej lub przesłać w dół linii.

Dan
źródło
2

W przypadku typowych procesorów stosowanych w komputerach PC rozpraszanie ciepła było czynnikiem ograniczającym od ponad dekady, w których procesory chłodzone powietrzem w komputerach PC były ograniczone do około 4 GHz. Chłodzenie wodą podnosi to do około 5 Ghz, a chłodzenie azotem zastosowano do zwiększenia częstotliwości taktowania do około 6 Ghz do 6,5 Ghz.

Częstotliwość taktowania jest w zasadzie funkcją napięcia w zależności od wielkości logiki obwodu (czasu potrzebnego do zmiany stanów przez przełącznik). Im wyższe napięcie lub mniejsza logika obwodu, tym większa szybkość, ale stanowi to problem rozpraszania ciepła, ponieważ gęstość zwykle rośnie wraz ze zmniejszeniem wielkości logiki obwodu. Dzięki wysokiej gęstości nie ma już dużo miejsca na materiał przewodzący ciepło, aby rozproszyć ciepło. Zmniejszenie gęstości zwiększa koszt, a także zwiększa opóźnienia propagacji z powodu dłuższych obwodów.

Procesory nie stały się tak szybsze w ciągu ostatnich kilku lat, obecny Intel i7 4790K (4,0 Ghz, 4,4 Ghz turbo) nie jest znacznie szybszy niż drugiej generacji Intel i7 2700K (3,5 Ghz, 3,9 Ghz turbo), inne niż jest to szybsze taktowanie (około 14,3% szybciej). Z drugiej strony, ponieważ grafika 3D może korzystać z operacji równoległych, karty graficzne zwiększyły wydajność około 3 razy w ciągu ostatnich 4 lub 5 lat, niektóre mają równowartość ponad 3000 rdzeni.

rcgldr
źródło
2

Mimo że podane już odpowiedzi są dobre, wszystkie wydają się bardzo skomplikowane!

Szybka odpowiedź „TLDR” to „liczba bramek logicznych” i „jak szybko te bramki logiczne mogą się uruchomić”. Pomyśl o bramkach logicznych takich jak 1 i 0. To tylko tranzystor / lampa próżniowa / cokolwiek włącza się lub wyłącza. 1 jest włączony 0 jest wyłączony.

Elektryczność nie porusza się ani szybciej, ani wolniej, ale możesz wcisnąć więcej zer i jedynek na swój układ, ponieważ same jedynki i zera są mniejsze. I możesz sprawić, by z czasem szybciej się obracały. Czy to czyni nieco prostszą odpowiedź?

DigitalGalaxy
źródło
2

Dwa najważniejsze czynniki to fakt, że tranzystory skurczyły się w absurdalny sposób, dlatego mamy teraz smartfony z znacznie ponad miliardem tranzystorów, a także fakt, że przełączanie tranzystora z jednego stanu do drugiego stało się znacznie szybsze. Szybsze przełączanie przekłada się bezpośrednio na większą prędkość. Większa liczba tranzystorów pośrednio zwiększa prędkość, ponieważ umożliwia wiele innych ulepszeń, o których mowa: Mamy pamięci podręczne, ponieważ mamy więcej tranzystorów. Mamy coraz więcej rejestrów, ponieważ mamy więcej tranzystorów. Mamy instrukcje wektorowe, ponieważ mamy więcej tranzystorów. Mamy procesory dwu-, czterordzeniowe lub dziesięciordzeniowe, ponieważ mamy więcej tranzystorów.

W znacznie mniejszym stopniu mamy poprawę prędkości z powodu lepszego projektu. Na przykład mnożnik jest nie tylko szybszy, ponieważ mamy więcej tranzystorów, ale dlatego, że używamy lepszych metod. Przewidywanie gałęzi poprawiło się poza tym, że dostępnych jest więcej tranzystorów. Ale w sumie jest to niewielki efekt w porównaniu z brutalną mocą miliarda tranzystorów.

(Procesor w pierwszym komputerze Mac nazywał się procesorem Motorola 68000, ponieważ miał tranzystory 68000. Nowy iPad ma około 20 000 razy więcej).

gnasher729
źródło
0

Jestem inżynierem mechanikiem, więc nie wiem, jak bardzo wpływa to na szybkość procesora lub czy stało się to czynnikiem ograniczającym, czy nie, ale fizyka związana z tym jest zdrowa. Indukcyjność i pojemność obwodu będą miały wpływ na szybkość wzrostu i spadku cyfrowych sygnałów napięciowych, a tym samym na szybkość przełączania. Idealnie sygnały przełączające byłyby ładnymi falami kwadratowymi. W rzeczywistości są lekko zdeformowane i nachylone na brzegach. Sygnały muszą być wysokie i wystarczająco wysokie, aby można je było odczytać przed następnym cyklem zegara. Zasadniczo fala sygnału potrzebuje „płaskiego punktu” na górze. Jeśli zmienisz zbyt szybko, dostaniesz więcej sygnału spiczastej fali. Ci z was, którzy są bardziej zaznajomieni z sygnałami cyfrowymi, mogą wyjaśnić w razie potrzeby, ale pomysł jest słuszny.

Jeff
źródło
2
Witamy! O ile mi wiadomo, wszystko, co mówisz, jest prawdą. Ale nie rozumiem, w jaki sposób odpowiada na pytanie, w jaki sposób komputery mogły być szybsze przez lata.
David Richerby,