Dlaczego produkowana częstotliwość zegara wynosi 6,144 MHz, ale wewnętrznie (procesor 8085) wykorzystuje tylko 3,072 MHz. Co również prowadzi do określonej wartości 6,144 w zegarze.
Znalazłem odpowiedź na yahoo .... http://answers.yahoo.com/question/index?qid=20080810090119AAurr2i
ale muszę przyznać, że nadal nie rozumiem tego dobrze. Czy mógłby ktoś z was wyrzucić na ten temat kilka linijek?
8085
microprocessor
clock
loxxy
źródło
źródło
Odpowiedzi:
Jednym z powodów podzielenia zegara przez dwa jest uzyskanie fali prostokątnej o częstotliwości nawet 50%. Może być tak, że 8085 wewnętrznie wykorzystuje obie krawędzie zegara i nie działałby, gdyby jedna połowa cyklu była znacznie krótsza niż druga.
W czasach, gdy 8085 był nowy, te ładne oscylatory w puszkach nie były powszechne, a ludzie często brukowali ze sobą obwody zegara z dyskretnych kryształów, kondensatorów i bramek logicznych. Dzielenie przez dwa zapewnia równomierne rozmieszczenie wznoszących i opadających krawędzi.
Jeśli chodzi o 6,144 MHz, przekonasz się, że można go podzielić przez liczbę całkowitą, aby uzyskać wspólne wartości szybkości transmisji, co najmniej do 38400.
śledzić ...
Patrząc na arkusz danych Intela dla 8085, istnieją trzy interesujące stwierdzenia
Tak więc, spekulacje na temat używania dziwnych krawędzi zegara do przesuwania elementów wewnętrznie na bok, staje się oczywiste, że kiedy zaprojektowali 8085, Intel zastępował potrzebę specjalnego kontrolera zegara, integrując tę funkcję z układem. Podział podstawy czasu X1-X2 na pół przed wysłaniem go jako CLK zapewnia, że system uzyska ładny, równomierny cykl pracy, jeśli nic więcej.
źródło
W czasie projektowania tego układu ludzie używali w procesorze jak najmniejszej liczby tranzystorów, aby były wystarczająco małe, aby zmieściły się na dostępnych układach.
Podejrzewam, że praktycznie każdy „rejestr” (zarówno rejestry widoczne dla programistów, jak i wewnętrzne zatrzaski mikroarchitektu) w procesorze tej epoki zapisywał dane w przezroczystej bramkowanej zatrzasku D lub coś podobnego. Obecnie na chipie jest mnóstwo tranzystorów, więc łatwiej jest używać pełnych przerzutników D typu master-slave, nawet jeśli używają dwa razy więcej tranzystorów.
Wiele instrukcji pobiera dane z rejestru A, łączy je z innymi danymi z ALU i zapisuje wynik z powrotem w rejestrze A. Jest to dość łatwe, jeśli rejestr A jest implementowany z pełnym przerzutnikiem D typu master-slave.
Ale jeśli rejestr A jest przezroczystą bramkowaną zapadką D, potrzebne są nie nakładające się zegary. Użyj impulsu na jednym zegarze, aby zapisać gdzieś jakiś wynik pośredni (podczas gdy rejestr A utrzymuje stałą wyjściową), a następnie impulsu na innym zegarze, aby załadować rejestr A nową wartością (podczas gdy rejestr pośredni utrzymuje stałą wyjściową).
Wymaga to zegara 2-fazowego. Najłatwiejszym sposobem na uzyskanie nie nakładającego się 2-fazowego zegara (w czasach, gdy tranzystorów było mało) był mały obwód zewnętrzny, który pobiera zegar wejściowy i dzieli go na dwa.
Z biegiem czasu ludzie wymyślili, jak pakować coraz więcej tranzystorów na układ scalony. Dlatego osoby projektujące procesory zintegrowały coraz więcej elementów wokół procesora w pełny system komputerowy z procesorem.
Czytając między wierszami artykułu na temat sygnału z Wikipedii , mam wrażenie, że ludzie, którzy zaprojektowali 8085 i 6502 oraz inne układy z tamtej epoki, mieli nieco więcej miejsca niż poprzednia generacja zintegrowanych procesorów i zdecydowali, że będą najlepsi korzystanie z tego pokoju polegało na umieszczeniu tego małego obwodu zewnętrznego na chipie. Ale wszystkie rejestry zachowały tę samą zapadkę D tak jak poprzednio.
Dlatego właśnie częstotliwość zegara dzieli się na dwa. Możesz pomyśleć o pierwszym zewnętrznym impulsie zegarowym generującym impuls na wewnętrznym sygnale zegarowym phase_one, aby zaktualizować ten pośredni rejestr wyników, oraz drugim impulsie z zewnętrznego zegara generującego impuls na wewnętrznym sygnale zegarowym phase_one, aby zaktualizować rejestr widoczny dla programisty.
źródło
Istnieje wiele powodów, aby podzielić cykl instrukcji na wiele cykli zegara. Dobrym przykładem jest dostęp do głównej magistrali pamięci.
Większość współczesnych procesorów to architektury Von-Neumann; to znaczy, że zarówno ich kod, jak i dane znajdują się w tym samym układzie pamięci. Cóż, jeśli chcesz przeczytać instrukcję, a ta instrukcja załaduje zmienną z pamięci ... to są dwa wejścia do pamięci. Ale większość pamięci to tylko jeden port (to znaczy, że może wykonać tylko jeden odczyt lub zapis na cykl). Więc jak czytasz instrukcję i czytasz swoją zmienną?
Rozwiązaniem jest zastosowanie dwustopniowego cyklu instrukcji. Pierwszy etap pobierze instrukcję z pamięci, a drugi etap może następnie odczytać (lub zapisać!) Zmienną z pamięci głównej.
Niektóre starsze żetony poszły jeszcze dalej. Wcześniej, jeśli twój układ miał 16-bitową pamięć adresowalną, ale zewnętrzna magistrala adresowa ma tylko 8 bitów, to zapoznaj się z włączeniem blokady adresu. Jeden cykl zegara wysyła górne 8 bitów 16-bitowego adresu, a następny cykl zegara wysyła dolne 8 bitów. Trzeci cykl mógłby następnie odczytać / zapisać zmienną z / do pamięci.
Istnieją inne, lepsze powody, aby mieć cykl instrukcji o długości wielu cykli zegara. Jednym z najlepszych powodów jest potokowanie. Jest to sztuczka stosowana przez współczesne procesory w celu pełniejszego wykorzystania wszystkich jednostek wykonawczych dostępnych w układzie; na przykład, podczas wykonywania jednej instrukcji, następna jest pobierana w tym samym czasie.
źródło
Wewnętrznie rdzeń 8085A wymaga zegara dwufazowego. Wewnętrzna logika, która wyprowadza dwie fazy zegara, dzieli również zegar wejściowy przez dwa. Jak już wspomniano, powodem użycia zegara wejściowego 6,144 MHz jest szybkość transmisji, układ będzie działał dobrze przy 6 MHz. Układ ma w rzeczywistości 3 MHz, wymagając kryształu 6 MHz, ale działa z radością z częstotliwością 6,144 MHz, co zapewnia łatwiejsze generowanie prędkości transmisji (Uart można taktować z częstotliwością 6,144 MHz z oscylatora napędzającego 8085 lub z 3,072 MHz z wyjścia CLK w 8085) zapewniając wiele użytecznych prędkości transmisji). Nadal używam tych archaicznych układów do wykonywania specjalnych funkcji w niektórych moich robotach. Taktuję Uarts własnym oscylatorem i 8085A za pomocą oscylatora 6,4 MHz, który pracuje z chipem na 3,2 MHz. The 3. 2MHz ładnie dzieli się, aby zapewnić zegar 40KHz dla moich przetworników ultradźwiękowych. Bardziej sensowne jest używanie bardziej nowoczesnych urządzeń IC w moich botach, ale mam mnóstwo starych 8085, Z80, 63C09 i 63C09E, 68B09 i 68B09E itp., Z którymi naprawdę lubię grać.
źródło
Zegar to tylko chwila, w której chcesz, aby wydarzenie miało miejsce. Teraz nie preferujemy wyzwalania poziomu w obwodach cyfrowych, ponieważ gdy poda się więcej czasu, może wystąpić interakcja między różnymi obwodami w mikroprocesorze, co prowadzi do zwarć. Więc idziemy na wyzwalanie krawędzi. Teraz mikroprocesor nie wie, kiedy nastąpiło wyzwolenie zbocza. Rozumie tylko 1 lub 0. Zatem flip-flop jest wymagany do uzyskania wartości 1 i 0 za każdym razem, gdy zostanie wykryte zbocze zegara. Dlatego konieczne staje się użycie flip-flopa. W rezultacie częstotliwość zegara jest dzielona przez dwa.
źródło