Przyglądając się niektórym niestandardowym procesorom zauważyłem, że częstotliwości, przy których działają, są stosunkowo niskie w porównaniu do współczesnych procesorów (rzędu kilku MHz). Czy istnieje powód takiego ograniczenia dla inżynierii elektronicznej, np. W przypadku płyt chlebowych? Jeśli tak, jak ustalić maksymalną częstotliwość, którą można osiągnąć dzięki projektowi?
15
Odpowiedzi:
Ma to głównie związek z długością połączeń wzajemnych i opóźnieniami propagacji przez bramki. Jeśli zredukujemy procesor do jego istoty, będzie to maszyna sprzężenia zwrotnego. Kilka kombinatorycznych obwodów logicznych oblicza niektóre funkcje boolowskie na podstawie aktualnego stanu maszyny, a te funkcje określają nowy stan, który jest blokowany przez sekwencyjny zespół obwodów, gdy pojawia się nowa krawędź zegara. Wszystkie obwody kombinatoryczne mają opóźnienia. Okres zegara nie może być krótszy niż czas, jaki zajmuje najwolniejsza droga przez te bramki, aby uzyskać stabilny wynik, ponieważ pojedynczy nieprawidłowy bit zatrzymuje pokaz.
Ponadto logika sekwencyjna ma wymagania dotyczące czasu. Zanim nadejdzie krawędź zegara, istnieje minimalny czas konfiguracji, że wejścia muszą być stabilne, a następnie muszą być stabilne przez pewien czas wstrzymania. Jeśli zostaną naruszone, stan staje się śmieci.
Opóźnienia propagacji są spowodowane między innymi przez szybkość ładowania pasożytniczych pojemności, szybkość tworzenia prądu w obliczu indukcyjności i szybkość przełączania urządzeń krzemowych. Na przykład tranzystor bipolarny z mniejszą bazą może przełączać się szybciej niż jeden z większą bazą, więc mały tranzystor na chipie będzie szybszy niż dyskretny.
We wcześniejszej odpowiedzi, którą usunąłem, pisałem o efektach linii transmisyjnej. Ale nie sądziłem, że te efekty nawet nie pojawiają się na zdjęciu przy prędkościach, o których mówimy, ponieważ, powiedzmy, przy 10 MHz, długość fali nadal wynosi około 30 metrów. Tak więc w skali zwykłej płytki drukowanej impulsy na skali czasowej kilku megaherców wciąż docierają jednocześnie do wszystkich części sieci miedzianej.
Tak więc, jeśli wykonujesz procesor z dyskretnych komponentów, po prostu nie osiągasz małych komponentów z szybkimi czasami przełączania i taką samą bliskością, która minimalizuje zbłąkane pojemności i indukcyjności.
Niemniej jednak starożytne maszyny dyskretne w latach 60. działały znacznie szybciej niż te domowe maszyny. Dotarcie tam zajęło trochę czasu i sprytu. Na przykład IBM 360 Model 44 (1964) działał z częstotliwością 4 MHz. To wciąż może być „szybkość domu”, ale CDC 7600 wydany zaledwie kilka lat później w 1969 roku przekroczył 36 MHz. Artykuł w Wikipedii http://en.wikipedia.org/wiki/CDC_7600 daje wskazówki na temat niektórych sztuczek, które zostały wyciągnięte, na przykład:
„Jak zawsze, projekt Cray'a koncentrował się również na pakowaniu w celu zmniejszenia rozmiaru, skrócenia ścieżek sygnałowych, a tym samym zwiększenia częstotliwości roboczej. ... [E] moduł modułu faktycznie składał się z maksymalnie sześciu płyt PC, każda wypełniona subminiaturowymi rezystorami, diodami i tranzystory. Sześć kart zostało ułożonych w stos, a następnie połączonych ze sobą wzdłuż ich krawędzi, dzięki czemu powstał bardzo kompaktowy, ale zasadniczo nie do naprawienia moduł. ”
Tak więc procesory homebrew niekoniecznie są zbudowane w oparciu o swój prawdziwy potencjał z powodu pewnych mylących efektów związanych z jakością i układem kompilacji. Mimo to każdy, kto buduje procesor z pojedynczych układów scalonych i dyskretnych komponentów działających w kilku megahercach, powinien pochwalić.
źródło
Jako były licealista, który zbudował komputer specjalnego przeznaczenia z serii TTL 7400, który zdobył nagrodę na targach naukowych, zauważyłem te rzeczy, które uniemożliwiły mu jak najszybsze działanie:
Błądząca pojemność w płycie tartej. Kilka pF między każdą sąsiadującą parą złączy. To ograniczone czasy narastania / opadania krawędzi impulsu oraz miejscami dodatkowe przesłuchy. To był prawdopodobnie największy czynnik.
Odmiany żetonów typu grab-bag. (Czy ktoś pamięta Poly-Paks?) 74LSxx, 74Hxx, 74xx z różnymi opóźnieniami propagacji i innymi cechami, uniemożliwił synchronizację sygnałów przy wyższych częstotliwościach zegara niż kilka MHz.
Statyczne układy pamięci Cheapo, znowu z torby lub innego źródła o niskiej jakości. Po prostu nie potrafili czytać ani pisać w sposób niezawodny powyżej określonej stawki.
Moje oprzyrządowanie testowe ograniczało się do generatorów sygnałów homebrew, oscyloskopu pasmowego 5MHz i tymczasowych obwodów cyfrowych zmontowanych przez jury. Trudno sprawdzić integralność sygnału, czas, amplitudy sygnałów cyfrowych, które zostały dolnoprzepustowe przefiltrowane do chwiejnej papki.
Dzisiaj trudno byłoby znaleźć zakres 5 MHz, chyba że ktoś jest zabytkowym nabywcą. Lepsze wszelkiego rodzaju żetony są równie łatwe do zdobycia, nawet w pakietach DIP z odstępem 0,1 ", z tym że od dawna nie widziałem zbyt wiele na drodze do zgarnięcia. Jednak płyty gniazdowe niewiele się zmieniły. Zbłąkana pojemność wciąż jest zabójcą prędkości dla wszelkich ostrych kreatywnych projektów cyfrowych.
Najlepszym sposobem na uniknięcie zbłąkanej pojemności jest unikanie płyt chlebowych za pomocą płytki drukowanej homebrew, ale oczywiście wymaga to więcej wysiłku i czasu.
źródło
Myślę, że głównym powodem jest to, że wraz ze wzrostem częstotliwości impedancja połączeń płyty tartej zwiększy się i ograniczy końcową prędkość obwodu.
Każde połączenie na płycie ma niską, ale niezerową indukcyjność. Gdy częstotliwość rośnie, musisz wziąć pod uwagę te efekty. Impedancję drutów można znaleźć poprzez:
gdzie L jest indukcyjnością drutu. W końcu Z stanie się wystarczająco wysoki, aby nie płynął prąd, a obwód przestanie działać. Znalezienie dokładnej wartości liczbowej dla tej liczby będzie bardzo skomplikowane, szczególnie dlatego, że płyty pilśniowe mają obok siebie ślady i to zmieni nieco impedancję każdego drutu z tej formuły. Jeśli naprawdę chcesz (nieprecyzyjny) numer, możesz spróbować tutaj obliczyć indukcyjność (a zatem impedancję) swoich drutów. Jeśli znasz najniższy prąd, z którego część może operować, możesz określić maksymalną częstotliwość, zanim osiągniesz ten limit.
źródło
Inni odpowiedzieli „dlaczego”. Oto jak ustalić maksymalną prędkość.
źródło
Oprócz wszystkich przyczyn elektrycznych, które ograniczają prędkość, jest też jeden na poziomie logicznym:
Nie można rzucić tylu zasobów, aby przyspieszyć działanie, na przykład operacja potokowa z przewidywaniem gałęzi, szybsza arytmetyka i tak dalej. Skrytki nie mają większego sensu, jeśli nie są szybsze niż pamięć główna.
źródło
W przypadku maszyn Homebrew sprowadza się to do dwóch czynników. Opóźnienie propagacji używanych układów i liczba układów, których należy użyć na najdłuższej ścieżce przez procesor.
Na przykład 74HC574 (rejestr 8-bitowy) ma maksymalne opóźnienie propagacji około 41ns (wzięte z arkusza danych). Powiedzmy teraz, że najdłuższa ścieżka w projekcie procesora wymaga przejścia przez 8 różnych układów. Zsumuj opóźnienia propagacji dla każdego z 8 i wyobraźmy sobie, że chodzi o 333ns. Z 1000ns to tyle samo, co 1 MHz, co daje maksymalną prędkość 3 MHz.
W praktyce możesz ograniczyć się do czegoś wolniejszego, na przykład 2 MHz, aby zapewnić stabilną konstrukcję. Nawet jeśli myślisz, że przegapisz czas tylko raz na miliard cykli, to wciąż masz kłopoty. 10 miliardów podzielonych przez 3 miliony oznacza, że stracisz wykonanie raz na 3333 sekundy, czyli mniej więcej raz na godzinę. Awarie maszyny co godzinę nie są dobre!
Aby przyspieszyć, możesz użyć szybszych układów i / lub zmienić projekt, aby zmniejszyć liczbę układów na najwolniejszej ścieżce. Najszybsza widoczna prędkość Homebrew wynosi około 4 MHz, co daje 250ns na ukończenie każdego cyklu.
źródło