Ograniczenie częstotliwości dla procesorów homebrew

15

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?

Eugen
źródło
Jak ... domowe chipy VLSI? Wyobrażam sobie, że to ograniczenie kosztów. Precyzji, jaką zapewnia sprzęt o wartości wielu milionów dolarów, po prostu nie można powielić w domu, w wyniku czego układy muszą działać wolniej.
Nate
4
@Nate, wyobrażam sobie, że ma na myśli wieloprocesorowe procesory homebrew zbudowane z TTL. Na przykład: homebrewcpu.com
Alfred Centauri
@Nate Zaktualizowałem moje pytanie, aby było bardziej szczegółowe.
Eugen
@AlfredCentauri - tak, masz rację;)
Eugen

Odpowiedzi:

16

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ć.

Kaz
źródło
W zależności od złożoności ścieżki danych, pomyślałbym, że urządzenie homebrew powinno być w stanie wejść do zegara z częstotliwością 20 MHz lub wyższą bez trudności przy użyciu nowoczesnych technologii i konwencjonalnych technik. Nie multi-GHz, ale nie całkowity garb. Podejrzewam jednak, że w większości przypadków, w których stosowane są procesory homebrew, łatwość rozwiązywania problemów jest ważniejsza niż szybkość. Nawiasem mówiąc, główny zegar z zegarem oryginalnej maszyny arkadowej marki Pong® wynosił 14,3818 MHz, choć został dość wcześnie podzielony; Wydaje mi się, że jedyne, co ogranicza prędkość, to środkowa linia boiska.
supercat,
1
Wiele procesorów homebrew używa EPROM do przechowywania mikrokodu, ale także do implementacji złożonych logiki i / lub tablic prawdy (wiele z nich ma nawet ALU wykonaną z jednego lub więcej ROMów). Szybkość dostępu do ROM-ów może znacznie ograniczyć maksymalną prędkość maszyny, ale są one popularne, ponieważ ułatwiają debugowanie, zmianę przeznaczenia i poprawianie procesora bez znaczącego ponownego instalowania.
Alexios,
15

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.

DarenW
źródło
4

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:

Ta formuła

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.

Nate
źródło
Czy możesz wyjaśnić związek między impedancją a prędkością obwodu?
Eugen
Jak to wyjaśnia, że ​​procesory takie jak Intel Core I7 pracują z taktowaniem 2,5 GHz, a procesory oparte na płytkach chlebowych nie mogą osiągnąć tej prędkości? Początkowo myślałem, że istnieje związek z długością drutu między procesorem a układami RAM.
Eugen
Nie zaprzeczając prawom fizyki, ale nie sądzę, że indukcyjność jest tak naprawdę głównym ogranicznikiem prędkości. Następnie podobne przewody o podobnych zakresach długości są używane w domowych radiotelefonach i innych projektach, na znacznie wyższych częstotliwościach. Trzeba tylko uważać na dopasowanie impedancji, długości,
układu
1
@DarenW: Indukcyjność bierna i pojemność są rzeczywiście problemami. W systemie radiowym zwykle masz tylko jeden drut o nietypowej długości. W implementacji procesora masz setki, o wzajemnej indukcyjności w zależności od odstępów. Interakcje zależne od częstotliwości są niemożliwe do zarządzania ze względu na złożoność. Impedancja charakterystyczna zależy silnie od takich rzeczy, jak odległość od śladów podłoża ... które nie są dobrze kontrolowane na desce.
Ben Voigt,
1
Myślę, że masz rację. Myślę, że prawdopodobnie powinny to być reakcje w ogóle. Pojemność będzie skutkować podobnymi problemami, ale dla takich rzeczy, jak twarde narastające / opadające krawędzie i zmiany stanu. Równania do znalezienia impedancji są jednak podobne, a jeśli chce odpowiedzi numerycznej, prawdopodobnie można je zastosować w podobny sposób.
Nate
3

Inni odpowiedzieli „dlaczego”. Oto jak ustalić maksymalną prędkość.

  1. Dla każdego przerzutnika sprawdź, czy jest na zegarze do Q.
  2. Łączna długość drutu wszystkich drutów od przerzutnika do następnego przerzutnika. Zmień tę długość na czas. Drut ma ~ 2/3 prędkości światła
  3. Suma opóźnień bramy, w tym przez asynchroniczną pamięć RAM.
  4. Poświęć czas na ustawienie następnego flip-flopa.
  5. Dodaj 1-4. To jest twój minimalny okres zegara. Odwróć, aby uzyskać częstotliwość.
  6. Rozważ pochylenie zegara. Jeśli zegar dojdzie do drugiego ff przed pierwszym, dodaj pochylenie za pomocą 1-4.
  7. Jeśli zegar dojdzie do drugiego ff przed pierwszym, oblicz minimum 1-3. Upewnij się, że są one krótsze niż czas wstrzymania wymagany przez drugi ff plus odchylenie zegara.
Brian Carlton
źródło
O jakiej długości drutu mówisz: długość od źródła zasilania do pinów wyjściowych CPU, pinów wyjściowych CPU do układów RAM ...? Nie jestem też do końca jasne, co masz na myśli na pierwszym etapie.
Eugen
2
@Eugen - Myślę, że (ale nie moja specjalizacja) odnosi się do jego wewnętrznego opóźnienia propagacji - czasu od taktowania do uzyskania stabilnego wyniku.
Bezwarunkowo
1

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.

starblue
źródło
1

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.

Phil Wright
źródło