Tranzystory służą do wielu celów w obwodzie elektrycznym, tj. Przełączników, w celu wzmocnienia sygnałów elektronicznych, umożliwiając sterowanie prądem itp.
Jednak ostatnio czytałem o prawie Moore'a, między innymi przypadkowymi artykułami internetowymi, że w nowoczesnych urządzeniach elektronicznych jest zapakowana ogromna liczba tranzystorów, przy czym ilość tranzystorów w nowoczesnej elektronice jest w zakresie milionów, jeśli nie miliardów.
Dlaczego właściwie ktoś miałby tak wiele tranzystorów? Jeśli tranzystory działają jak przełączniki itp., Dlaczego potrzebujemy tak absurdalnie dużej ich liczby w naszych nowoczesnych urządzeniach elektronicznych? Czy nie jesteśmy w stanie uczynić rzeczy bardziej wydajnymi, abyśmy używali znacznie mniej tranzystorów niż obecnie?
źródło
Odpowiedzi:
Tranzystory to przełączniki, tak, ale przełączniki to coś więcej niż tylko włączanie i wyłączanie światła.
Przełączniki są pogrupowane w bramki logiczne. Bramki logiczne są zgrupowane w bloki logiczne. Bloki logiczne są pogrupowane w funkcje logiczne. Funkcje logiczne są pogrupowane w układy scalone.
Na przykład bramka NAND TTL zwykle wykorzystuje 2 tranzystory (bramki NAND są uważane za jeden z podstawowych elementów składowych logiki wraz z NOR):
symulacja tego obwodu - Schemat utworzony za pomocą CircuitLab
Ponieważ technologia zmieniła się z TTL na CMOS (która jest obecnie de facto standardem), w zasadzie nastąpiło natychmiastowe podwojenie tranzystorów. Na przykład bramka NAND przeszła z 2 tranzystorów do 4:
zasymuluj ten obwód
Zatrzask (taki jak SR) można wykonać za pomocą bramek 2 CMOS NAND, czyli 8 tranzystorów. Rejestr 32-bitowy można zatem wykonać przy użyciu 32 przerzutników, czyli 64 bramek NAND lub 256 tranzystorów. ALU może mieć wiele rejestrów, a także wiele innych bramek, więc liczba tranzystorów szybko rośnie.
Im bardziej złożone funkcje spełnia układ, tym więcej bramek jest potrzebnych, a tym samym więcej tranzystorów.
Twój średni procesor jest obecnie znacznie bardziej złożony niż powiedzmy układ Z80 sprzed 30 lat. Nie tylko wykorzystuje rejestry o 8-krotnej szerokości, ale faktyczne operacje, które wykonuje (złożone transformacje 3D, przetwarzanie wektorowe itp.) Są o wiele bardziej złożone niż starsze układy. Pojedyncza instrukcja we współczesnym procesorze może zająć wiele sekund (a nawet minut) obliczeń w starym 8-gorzkim komputerze, a wszystko to ostatecznie ma więcej tranzystorów.
źródło
Sprawdziłem u lokalnego dostawcy różnych urządzeń półprzewodnikowych, a największy chip SRAM, jaki mieli, to 32 Mb. To 32 miliony pojedynczych obszarów, w których można zapisać 1 lub 0. Biorąc pod uwagę, że „co najmniej” 1 tranzystor jest potrzebny do przechowywania 1 bitu informacji, to 32 miliony tranzystorów na absolutnym minimum.
Co dostajesz 32 Mbity? To 4 MB lub mniej więcej 4-minutowy plik muzyczny MP3 niskiej jakości.
EDIT - komórka pamięci SRAM według mojego googlinga wygląda następująco: -
To 6 tranzystorów na bit i więcej niż 192 miliony tranzystorów na wspomnianym układzie.
źródło
Myślę, że OP mogą być mylone przez urządzenia elektroniczne mające tak wiele tranzystorów. Prawo Moore'a dotyczy przede wszystkim komputerów (procesorów, pamięci SRAM / DRAM / powiązanych pamięci, procesorów graficznych, układów FPGA itp.). Coś jak radio tranzystorowe może być (w większości) na jednym chipie, ale nie może skorzystać z wszystkich , że wielu tranzystorów. Z drugiej strony urządzenia komputerowe mają nienasycony apetyt na tranzystory do dodatkowych funkcji i szerszych szerokości danych.
źródło
Jak wcześniej wspomniano, SRAM wymaga 6 tranzystorów na bit. Gdy powiększamy nasze pamięci podręczne (w celu zwiększenia wydajności), potrzebujemy coraz więcej tranzystorów. Patrząc na opłatek procesora , możesz zauważyć, że pamięć podręczna jest większa niż pojedynczy rdzeń procesora, a jeśli przyjrzysz się bliżej rdzeniom, zobaczysz dobrze zorganizowane części, które są również pamięcią podręczną (prawdopodobnie dane i instrukcja L1 skrytki). Przy 6 MB pamięci podręcznej potrzebujesz 300 milionów tranzystorów (plus logika adresowania).
Ale, jak już wspomniano, tranzystory nie są jedynym powodem do zwiększenia liczby tranzystorów. W nowoczesnym Core i7 wykonano ponad 7 instrukcji na okres zegara i na rdzeń (przy użyciu dobrze znanego testu dhrystone). Oznacza to jedno: najnowocześniejsze procesory wykonują wiele obliczeń równoległych. Wykonanie większej liczby operacji w tym samym czasie wymaga większej liczby jednostek do zrobienia tego i bardzo sprytniejszej logiki, aby to zaplanować. Lepsza logika wymaga znacznie bardziej złożonych równań logicznych i znacznie więcej tranzystorów do jej wdrożenia.
źródło
Odsuwając się trochę od szczegółów:
Komputery to złożone cyfrowe urządzenia przełączające. Mają warstwę po warstwie złożoności. Najprostszym poziomem są bramki logiczne, takie jak bramki NAND, jak omówiono, Następnie przechodzisz do dodatków, rejestrów przesuwnych, zatrzasków itp. Następnie dodajesz logikę taktowaną, dekodowanie instrukcji, pamięci podręczne, jednostki arytmetyczne, dekodowanie adresu, To trwa i trwa i trwa . (Nie wspominając o pamięci, która wymaga kilku tranzystorów na bit przechowywanych danych)
Każdy z tych poziomów wykorzystuje wiele części z poprzedniego poziomu złożoności, z których wszystkie oparte są na wielu podstawowych bramkach logicznych.
Następnie dodajesz współbieżność. Aby uzyskać coraz większą wydajność, nowoczesne komputery są zaprojektowane do wykonywania wielu rzeczy jednocześnie. W ramach jednego rdzenia dekoder adresu, jednostka arytmetyczna, procesor wektorowy, menedżer pamięci podręcznej i różne inne podsystemy działają jednocześnie, wszystkie z własnymi systemami sterowania i systemami synchronizacji.
Współczesne komputery mają również coraz większą liczbę osobnych rdzeni (wiele procesorów w układzie).
Za każdym razem, gdy wchodzisz na warstwę abstrakcji, masz o wiele rzędów wielkości więcej złożoności. Nawet najniższy poziom złożoności ma tysiące tranzystorów. Wejdź na podsystemy wysokiego poziomu, takie jak CPU, a mówisz o co najmniej milionach tranzystorów.
Są jeszcze procesory graficzne (Graphics Processing Units). GPU może mieć TYSIĄCE osobnych procesorów zmiennoprzecinkowych, które są zoptymalizowane do matematyki wektorowej, a każdy podprocesor będzie miał kilka milionów tranzystorów.
źródło
Bez próby omówienia liczby tranzystorów potrzebnych do określonych elementów procesor wykorzystuje więcej tranzystorów w celu zwiększenia możliwości, w tym:
źródło
Oprócz zwiększania pojemności pierwotnej pamięci RAM, pamięci podręcznej, rejestrów, a także dodawania większej liczby rdzeni obliczeniowych i szerszych szerokości magistrali (32 vs 64 bity itp.), Dzieje się tak, ponieważ procesor jest coraz bardziej skomplikowany.
Procesory to jednostki obliczeniowe złożone z innych jednostek obliczeniowych. Instrukcja procesora przechodzi przez kilka etapów. W dawnych czasach istniał jeden etap, a sygnał zegarowy byłby tak długi, jak najgorszy przypadek dla wszystkich bramek logicznych (wykonanych z tranzystorów). Następnie opracowaliśmy wykładzinę rur, w której procesor został podzielony na etapy: pobieranie instrukcji, dekodowanie, przetwarzanie i zapisywanie wyników. Ten prosty 4-stopniowy procesor mógłby następnie pracować z zegarem czterokrotnie większym niż oryginalny zegar. Każdy etap jest odrębny od innych etapów. Oznacza to nie tylko, że twoja prędkość zegara może wzrosnąć do 4x (przy 4-krotnym wzmocnieniu), ale teraz możesz mieć 4 instrukcje warstwowe (lub „potokowe”) w procesorze, co skutkuje 4x wydajnością. Jednak teraz tworzone są „zagrożenia”, ponieważ jedna nadchodząca instrukcja może zależeć od wyniku poprzedniej instrukcji, ale ponieważ „ W potoku nie zostanie on pobrany, gdy wejdzie on na etap procesu, gdy drugi wyjdzie z etapu procesu. Dlatego należy dodać zespół obwodów, aby przekazać ten wynik do instrukcji wchodzącej na etap procesu. Alternatywą jest utknięcie rurociągu, co zmniejsza wydajność.
Każdy etap rurociągu, a zwłaszcza część procesu, można podzielić na coraz więcej etapów. W rezultacie powstaje ogromna ilość obwodów do obsługi wszystkich wzajemnych zależności (zagrożeń) w rurociągu.
Inne obwody można również ulepszyć. Trywialny dodatek cyfrowy o nazwie „dodatek tętnienia” jest najłatwiejszym, najmniejszym, ale najwolniejszym dodatkiem. Najszybszy sumator jest sumą „noszącą przyszłość” i zajmuje ogromną wykładniczą liczbę obwodów. Na moim kursie inżynierii komputerowej zabrakło mi pamięci w symulatorze 32-bitowego sumatora wyprzedzającego, więc przecięłem go na pół, 2 16-bitowe sumatory CLA w konfiguracji przenoszenia tętnień. (Dodawanie i odejmowanie jest bardzo trudne dla komputerów, łatwe mnożenie, dzielenie jest bardzo trudne)
Efektem ubocznym tego wszystkiego jest to, że kiedy zmniejszamy rozmiar tranzystorów i dzielimy etapy, częstotliwości zegara mogą wzrosnąć. Pozwala to procesorowi wykonać więcej pracy, dzięki czemu działa cieplej. Ponadto wraz ze wzrostem częstotliwości opóźnienia propagacji stają się bardziej widoczne (czas potrzebny na ukończenie etapu rurociągu i sygnał dostępny po drugiej stronie) Z powodu impedancji efektywna prędkość propagacji wynosi około 1 stopy na nanosekundę (1 Ghz). Wraz ze wzrostem prędkości zegara układ układu staje się coraz ważniejszy, ponieważ układ 4 GHz ma maksymalny rozmiar 3 cali. Teraz musisz zacząć włączać dodatkowe magistrale i obwody do zarządzania wszystkimi danymi poruszającymi się po układzie.
Cały czas dodajemy instrukcje do żetonów. SIMD (wiele danych z pojedynczą instrukcją), oszczędzanie energii itp. Wszystkie wymagają obwodów elektrycznych.
Wreszcie dodajemy więcej funkcji do układów. W dawnych czasach procesor i jednostka ALU (arytmetyczna jednostka logiczna) były oddzielne. Połączyliśmy je. FPU (zmiennoprzecinkowa jednostka) była osobna, która również została połączona. Teraz dodajemy USB 3.0, akcelerację wideo, dekodowanie MPEG itp. Przenosimy coraz więcej obliczeń z oprogramowania na sprzęt.
źródło
Majenko ma świetną odpowiedź na temat używania tranzystorów. Zamiast tego pozwólcie mi przejść od innego wektora podejścia i zająć się wydajnością.
Czy przy projektowaniu czegoś efektywnie jest używać jak najmniejszej liczby tranzystorów?
Zasadniczo sprowadza się to do wydajności, o której mówisz. Być może jesteś członkiem religii, która utrzymuje, że konieczne jest użycie jak najmniejszej liczby tranzystorów - w takim przypadku odpowiedź jest prawie podana. A może jesteś firmą, która tworzy produkt. Nagle proste pytanie o efektywność staje się bardzo skomplikowanym pytaniem o stosunek kosztów do korzyści.
I tu pojawia się kicker - tranzystory w układach scalonych są niezwykle tanie, a wraz z upływem czasu stają się coraz tańsze (dyski SSD są doskonałym przykładem tego, jak obniżono koszt tranzystorów). Z kolei praca jest niezwykle droga.
W czasach, w których układy scalone dopiero zaczynały się pojawiać, pewna presja polegała na utrzymywaniu jak najniższej liczby wymaganych komponentów. Stało się tak po prostu dlatego, że miały znaczący wpływ na koszt produktu końcowego (w rzeczywistości często stanowiły większość kosztu produktu), a kiedy budujesz gotowy, „zapakowany” produkt, koszt robocizny jest rozłóż na wszystkie wykonane kawałki. Wczesne komputery oparte na układach scalonych (myślę, że są to arkady wideo) zostały doprowadzone do jak najniższego kosztu jednostkowego. Jednak na koszty stałe (w przeciwieństwie do kosztów jednostkowych) duży wpływ ma kwota, którą możesz sprzedać. Jeśli zamierzasz sprzedać tylko parę, prawdopodobnie nie warto poświęcać zbyt wiele czasu na obniżanie kosztów jednostkowych. Z drugiej strony, jeśli próbujesz zbudować cały ogromny rynek,
Zwróć uwagę na ważną część - sensowne jest inwestowanie dużo czasu w poprawę „wydajności”, gdy projektujesz coś do masowej produkcji. Właśnie tym jest „przemysł” - u rzemieślników koszty wykwalifikowanej siły roboczej są często głównym kosztem produktu końcowego, w fabryce więcej kosztów pochodzi z materiałów i (stosunkowo) niewykwalifikowanej siły roboczej.
Przejdźmy do rewolucji na PC. Kiedy pojawiły się komputery w stylu IBM, były bardzo głupie. Niezwykle głupie. Były to komputery ogólnego przeznaczenia. Do prawie każdego zadania można zaprojektować urządzenie, które może to zrobić lepiej, szybciej, taniej. Innymi słowy, w uproszczonym ujęciu wydajności były wysoce nieefektywne. Kalkulatory były znacznie tańsze, mieściły się w kieszeni i działały przez długi czas na baterii. Konsole do gier miały specjalny sprzęt, dzięki czemu są bardzo dobrzy w tworzeniu gier. Problem polegał na tym, że nie mogli zrobić nic innego. PC może zrobić wszystko - miał znacznie gorszy stosunek ceny do wydajności, ale nie byłeś chętny do zrobienia kalkulatora lub konsoli do gier 2D. Dlaczego Wolfenstein i Doom (i na komputerach Apple, Maraton) pojawiają się na komputerach ogólnego przeznaczenia, a nie na konsolach do gier? Ponieważ konsole były bardzo dobre w tworzeniu gier opartych na ikonach 2D (wyobraź sobie typową grę JRPG lub gry takie jak Contra), ale kiedy chciałeś odejść od wydajnego sprzętu, okazało się, że nie ma wystarczającej mocy obliczeniowej, aby zrobić cokolwiek innego!
Tak więc pozornie mniej wydajne podejście daje kilka bardzo interesujących opcji:
Wszystko to wiąże się z „marnotrawstwem” tranzystorów, ale to nie jest prawdziwa strata, ponieważ rzeczywiste całkowite koszty są niższe niż byłyby, gdybyś naciskał na proste „jak najmniej tranzystorów, jak to możliwe”.
źródło
Inną stroną historii „tylu tranzystorów” jest to, że tranzystory te nie są indywidualnie zaprojektowane przez człowieka. Nowoczesny rdzeń procesora ma około 0,1 miliarda tranzystorów i żaden człowiek nie projektuje bezpośrednio każdego z tych tranzystorów. To nie byłoby możliwe. Żywotność 75 lat wynosi zaledwie 2,3 miliarda sekund.
Aby więc zrealizować tak ogromne projekty, ludzie są zaangażowani w definiowanie funkcjonalności urządzenia na znacznie wyższym poziomie abstrakcji niż poszczególne tranzystory. Transformacja do poszczególnych tranzystorów jest znana jako synteza obwodów i odbywa się za pomocą bardzo drogich, zastrzeżonych narzędzi, których rozwój z biegiem lat kosztuje łącznie miliard dolarów, gromadząc się wśród głównych producentów procesorów i odlewni.
Narzędzia do syntezy obwodów nie generują projektów z możliwie najmniejszą liczbą tranzystorów. Odbywa się to z wielu powodów.
Po pierwsze, omówmy najbardziej podstawowy przypadek: każdy złożony obwód może być symulowany przez znacznie prostszy, być może szeregowy, procesor z wystarczającą pamięcią. Z pewnością możesz symulować układ i7 z doskonałą dokładnością, jeśli tylko podłączysz wystarczającą ilość pamięci szeregowej RAM do Arduino. Takie rozwiązanie będzie miało znacznie mniej tranzystorów niż prawdziwy procesor i będzie działać niesamowicie wolno, z efektywną częstotliwością taktowania 1 kHz lub mniejszą. Oczywiście nie zamierzamy posuwać się tak daleko w redukcji liczby tranzystorów .
Musimy więc ograniczyć się do pewnej klasy transformacji typu projekt-tranzystor: takich, które zachowują równoległą pojemność wbudowaną w oryginalny projekt.
Nawet wtedy optymalizacja pod kątem minimalnej liczby tranzystorów prawdopodobnie spowoduje powstanie konstrukcji, których nie da się wyprodukować przy użyciu istniejącego procesu półprzewodnikowego. Czemu? Ponieważ układy, które można faktycznie wykonać, są strukturami 2D i wymagają pewnej redundancji obwodu po prostu, aby można było połączyć te tranzystory bez konieczności kilograma metalu. Fan-in i fan-tranzystorów, a wynikające bramki, ma znaczenie.
Wreszcie, narzędzia nie są teoretycznie doskonałe: zwykle wymagałoby to zbyt dużo czasu procesora i pamięci, aby wygenerować rozwiązania, które są globalnie minimalne pod względem liczby tranzystorów, biorąc pod uwagę ograniczenie produkowanego układu.
źródło
Myślę, że OP musi wiedzieć, że „prosty przełącznik” często wymaga kilku tranzystorów? Czemu? Z wielu powodów. Czasami potrzebne są dodatkowe tranzystory, aby zużycie energii było niskie dla stanu „włączony” lub „wyłączony”. Czasami tranzystory są potrzebne, aby poradzić sobie z niepewnością na wejściach napięcia lub specyfikacjach komponentów. Wiele powodów. Ale doceniam sens. Spójrz na schemat obwodu dla OP-AMP, a zobaczysz kilkadziesiąt tranzystorów! Ale nie byłoby ich tam, gdyby nie służyli celom w obwodzie.
źródło
Zasadniczo wszystko, co komputer rozumie, to 0 i 1 s., Co decydują te przełączniki. Tak, funkcje tranzystorów są większe niż przełączników. Więc jeśli przełącznik może zdecydować, czy wyjście ma być 0, czy 1 (zakładając, że jako pojedyncza operacja bi), tym większa liczba bitów. im więcej tranzystorów .. więc nic dziwnego, dlaczego musimy osadzić miliony tranzystorów w jednym mikroprocesorze .. :)
źródło
W erze technologii potrzebujemy inteligentnych urządzeń (małych, szybkich i wydajnych). Urządzenia te składają się z układów scalonych (IC), które zawierają nr. tranzystorów. Potrzebujemy coraz więcej tranzystorów, aby uczynić układ scalony inteligentniejszym i szybszym, ponieważ w elektronice każdy obwód w układzie scalonym składa się z sumatora, ciągnika siodłowego, multiplikatora, dzielnika, bramek logicznych, rejestrów, multiplekserów, klapek, liczników, przesuwników, pamięci oraz mikroprocesory itp. do implementacji dowolnej logiki w urządzeniach, które składają się wyłącznie z tranzystorów (MOSFET). Za pomocą tranzystorów możemy zaimplementować dowolną logikę. Potrzebujemy więc coraz więcej tranzystorów .....
źródło