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.