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:
- Daje ci więcej swobody. Porównaj stare konsole 2D ze starymi komputerami IBM i starymi akceleratorami grafiki 3D do nowoczesnych procesorów graficznych, które powoli stają się komputerami ogólnego przeznaczenia.
- Umożliwia zwiększenie wydajności produkcji masowej, mimo że produkty końcowe (oprogramowanie) są pod pewnymi względami „rzemieślnicze”. Firmy takie jak Intel mogą obniżyć koszt jednostki pracy znacznie efektywniej niż wszyscy indywidualni programiści na całym świecie.
- Daje więcej miejsca na więcej abstrakcji w rozwoju, a tym samym pozwala na lepsze wykorzystanie gotowych rozwiązań, co z kolei pozwala na niższe koszty programowania i testowania, w celu uzyskania lepszej wydajności. Jest to zasadniczo powód, dla którego każdy uczeń może napisać pełnowartościową aplikację opartą na graficznym interfejsie użytkownika z dostępem do bazy danych i łącznością internetową oraz wszystkimi innymi rzeczami, które byłyby niezwykle trudne do opracowania, gdybyś zawsze musiał zaczynać od zera.
- W komputerach PC oznaczało to, że Twoje aplikacje z czasem rosły szybciej bez Twojego wkładu. Czas darmowego lunchu jest już prawie skończony, ponieważ coraz trudniej jest poprawić pierwotną prędkość komputerów, ale wpłynęło to na większą część życia komputera.
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”.