Od jakiegoś czasu zacząłem grać z elektroniką i tworzyć proste bramki logiczne za pomocą tranzystorów. Wiem, że nowoczesne układy scalone używają CMOS zamiast logiki tranzystor-tranzystor. Zastanawiam się nad tym, jak zaprojektowano procesory.
Czy projektowanie jest nadal wykonywane na poziomie (pod) logiki, czy też nie ma już dużo innowacji w tym obszarze i czy przeszliśmy na wyższy poziom abstrakcji? Rozumiem, jak zbudowana jest jednostka ALU, ale procesory mają znacznie więcej.
Skąd się biorą projekty miliardów tranzystorów? Czy są one generowane głównie automatycznie przez oprogramowanie, czy wciąż istnieje wiele ręcznych optymalizacji?
Odpowiedzi:
Jest bardzo prawdopodobne, że procesory i układy SoC są używane przez języki opisu sprzętu, takie jak Verilog i VHDL (dwa główne odtwarzacze).
Te języki pozwalają na różne poziomy abstrakcji. W VHDL można zdefiniować bloki logiczne jako byty; zawiera porty wejściowe i wyjściowe. W bloku można zdefiniować wymaganą logikę. Załóżmy, że definiujesz blok z wejściem A, wejściem B i wyjściem C. Możesz łatwo napisać C = A i B ;, i po prostu utworzyłeś blok portu AND. To prawdopodobnie najprostszy blok, jaki możesz sobie wyobrazić.
Systemy cyfrowe są zwykle projektowane z silną hierarchią. Można uruchomić „najwyższy poziom” za pomocą głównych funkcji wymaganych przez procesor: pamięci procesora (wielu?), PCI-express i innych magistral. Na tym poziomie szyny i sygnały komunikacyjne między pamięcią a procesorem mogą być już zdefiniowane.
Kiedy zejdziesz o jeden poziom niżej, będzie to definiować czynności, które sprawiają, że coś „działa”. Jako przykład mikrokontrolera może zawierać interfejs UART. Rzeczywista logika wymagana do stworzenia funkcjonalnego UART jest zdefiniowana jeden poziom poniżej. W tym przypadku może być wymagana wiele innych logik do generowania i dzielenia wymaganego zegara, danych bufora (buforów FIFO), raportowania danych do CPU (pewnego rodzaju magistrali system).
Ciekawą cechą VHDL i projektowania cyfrowego jest ponowne użycie bloków. Możesz na przykład skopiować i wkleić blok UART na swoim najwyższym poziomie, aby utworzyć 2 UART (no, może nie jest to takie proste, tylko jeśli blok UART jest w stanie adresować!).
Ten projekt nie jest jakimkolwiek projektem na poziomie bramy. VHDL można również „skompilować” w taki sposób, aby w końcu został przetłumaczony na bramki logiczne. Maszyna może zoptymalizować to znacznie lepiej niż człowiek (i szybciej). Na przykład; elementy wewnętrzne bloku A wymagają falownika przed wyprowadzeniem sygnału. Blok B przyjmuje ten sygnał wyjściowy i odwraca go ponownie. Cóż, 2 falowniki szeregowo niewiele robią, prawda? Prawidłowo, więc równie dobrze możesz je pominąć. Jednak w projekcie „najwyższego poziomu” nie będzie można dostrzec dwóch falowników szeregowo. Widoczne są tylko dwa połączone porty. Kompilator może zoptymalizować to znacznie szybciej niż człowiek.
Zasadniczo to, co zawiera system cyfrowy, to opis, w jaki sposób logika powinna „zachowywać się”, a komputer służy do ustalenia, jaki jest najbardziej efektywny sposób rozłożenia poszczególnych bramek logicznych.
źródło
Pozwól mi uprościć i rozwinąć moje poprzednie komentarze i połączyć kropki dla tych, którzy wydają się tego potrzebować.
Czy projektowanie jest nadal wykonywane na poziomie bramki (pod) logicznej?
Projektowanie odbywa się na wielu poziomach, poziom podlogiczny jest zawsze inny . Każdy skurcz produkcyjny wymaga najwspanialszej fizyki, chemii i procesu litograficznego, ponieważ zmienia się także struktura tranzystora i geometria, aby zrekompensować kompromisy, ponieważ zmniejsza się do poziomów atomowych i kosztuje ~ miliardy dolarów za każdy krok binarny rozmiar. Osiągnięcie geometrii 14 nm jest ogromnym przedsięwzięciem w dziedzinie badań i rozwoju, kontroli i zarządzania procesami, a to wciąż mało powiedziane!
Na przykład umiejętności wymagane do tego celu obejmują; - „Niestandardowe układy FET, komórek i bloków, plany pięter na poziomie FUB, generowanie abstrakcyjnych widoków, ekstrakcja RC oraz weryfikacja schematów i układów oraz debugowanie z wykorzystaniem faz projektowania fizycznego, w tym ekstrakcji pasożytniczej, synchronizacji statycznej, obciążenia drutu modele, generowanie zegara, niestandardowe edytowanie wielokątów, algorytmy automatycznego umieszczania i trasowania, planowanie pięter, kompletny układ, pakowanie i weryfikacja. ”*
- czy nie ma już dużo innowacji w tej dziedzinie? - ŹLE - Istnieją znaczące i mocno finansowane innowacje w dziedzinie fizyki półprzewodników, sądząc po prawie Moore'a i liczbie patentów, nigdy się nie zatrzymają. Za każdym razem opłaca się oszczędność energii, ciepła i czterokrotne zwiększenie zdolności.
- czy przeszliśmy na wyższy poziom abstrakcji? - Nigdy nie przestał się ruszać. - Z zapotrzebowaniem na więcej rdzeni, robienie więcej w jednej instrukcji, takiej jak procesory ARM RISC, mocniejsze wbudowane µC lub MCU, inteligentna pamięć RAM z DDR4, która ma domyślnie ECC i sektory takie jak flash z bitami priorytetowymi dla pilnych pobrań pamięci. - Ewolucja procesora i zmiany architektoniczne nigdy się nie zatrzymają.
Pozwól, że dam ci podpowiedź. Przejdź do wyszukiwania pracy w Intel, AMD, TI lub AD dla inżynierów i zobacz opisy stanowisk.
- Skąd się biorą projekty miliardów tranzystorów? - Pochodzi z dodawania kolejnych 64-bitowych bloków sprzętowych. ale teraz pojawiają się awarie nanorurek, myślenie musi zmienić podejście z góry na dół bloków na podejście z dołu do góry w przypadku nanorurek, aby działało.
W rzeczywistości wciąż wydobywają projekty ze Strefy51 ze statków kosmicznych i mają przed sobą drogę… dopóki nie będziemy w pełni zgodni z nano-nano-tubą. Inżynier wchodzi do biblioteki i mówi nVidia, że chcielibyśmy, abyś dołączył do nas tutaj na tym chipie i staje się częścią, która przechodzi w makrobloki . Układ może być replikowany jak mrówki w Toystory, ale jawna kontrola nad wszystkimi połączeniami musi być ręcznie trasowana / sprawdzana, a także używać DRC i automatycznego routingu do porównania. Tak Narzędzia automatyzacji są ciągle aktualizowane, aby usunąć powielanie i zmarnowany czas.
- czy wciąż jest dużo ręcznej optymalizacji?
Ale tak naprawdę procesory rosną jak Tokio, nie jest to z dnia na dzień, ale dziesiątki milionów żyją tam teraz ze stałą poprawą. Nie nauczyłem się projektować w Univ. ale czytając i próbując zrozumieć, jak to działa, byłem w stanie dość szybko nabrać tempa w branży. Mam 10-letnie doświadczenie w moich pierwszych 5 latach w lotnictwie, projektowaniu instrumentów jądrowych, projektowaniu SCADA, monitorowaniu procesów, projektowaniu anten, projektowaniu i debugowaniu zautomatyzowanej stacji pogodowej, VLF Rx OCLO PLL, dwukierunkowym zdalnym sterowaniu rakietami Black Brandt ... i to była moja pierwsza praca. Nie miałem pojęcia, co mogę zrobić.
Nie martw się o miliardy tranzystorów ani nie bój się, czego się nauczyć lub ile musisz wiedzieć. Po prostu podążaj za swoją pasją i czytaj czasopisma branżowe pomiędzy snem, a wtedy nie będziesz wyglądać tak zielono w pracy i nie będzie już czuć się jak w pracy.
Pamiętam, że musiałem zaprojektować 741 „podobny” Op Amp w ramach egzaminu raz w ciągu 20 minut. Tak naprawdę nigdy go nie użyłem, ale potrafię dobrze rozpoznać po świetnych projektach. Ale wtedy miał tylko 20 tranzystorów.
Ale jak zaprojektować procesor musi zaczynać się od specyfikacji, a mianowicie; Po co projektować procesor i tworzyć mierzalne wzorce do osiągnięcia, takie jak; - Na przykład instrukcje makro na sekundę (MIPS) (ważniejsze niż zegar procesora); - Układ Itanium firmy Intel oparty jest na tak zwanym projekcie EPIC (Explicitly Parallel Instruction Computing). - Opatentowana konstrukcja procesora Transmeta z bardzo długimi instrukcjami mikroprocesorów przekształcających kod słowny instrukcji (VLIWCMM). Pozywali Intela w 2006 r., Zamknęli sklep i zdecydowali się na ~ 200 mln USD w 2007 r. - Wydajność na wat (PPW), gdy koszty energii> koszt chipa (dla serwerów) - Zmienna liczba operacji na sekundę (FLOPS) dla wydajności matematycznej.
Jest o wiele więcej wskaźników, ale nigdy nie opieraj jakości projektu procesora na jego szybkości GHz (patrz mit)
Jakie narzędzia są potrzebne do projektowania procesorów? Lista nie zmieściłaby się na tej stronie, od projektu fizyki na poziomie atomowym do projektu dynamicznej siatki EMC fizycznego EM / RF po inżyniera testującego weryfikację projektu interfejsu, gdzie wymagane umiejętności obejmują; - Front-end RTL Simulation - znajomość architektury IA i architektury komputera oraz projektowania na poziomie systemu - Weryfikacja i symulacja logiki przy użyciu VHDL lub Verilog. - Programowanie obiektowe i różne protokoły CPU, magistrali / interkonektu, koherencji.
źródło
Przegląd projektu procesora przez AMD
Wersja Intela
Żadne z nich nie zawiera zbyt wielu szczegółów, ale mimo to interesujące. Nie akceptuj tego jako odpowiedzi. Inni szczegółowo przeanalizowali twoje pytanie i włożyli więcej wysiłku w próbę udzielenia szczegółowej odpowiedzi.
źródło