czy procesor 8085 ma dodatkowy rejestr w ALU?


11

Z architektury procesora 8085, gdy ALU wykonało obliczenia, wynik jest taktowany z powrotem do akumulatora A na następnej krawędzi zegara. Ale akumulator A jest podłączony bezpośrednio jako wejście ALU, co jeśli krawędź zegara nie podniesie się wystarczająco szybko, aby spowodować dodanie A dwa lub więcej razy, niezwykle trudno byłoby wykryć taki błąd, taka konstrukcja jest bardzo „ kruche ”dla mnie.

Chyba że w ALU istnieje dodatkowy rejestr do tymczasowego zapisywania wyników ALU?

https://en.wikipedia.org/wiki/Intel_8085#/media/File:Intel_8085_arch.svg

https://en.wikipedia.org/wiki/Intel_8085


2
To wygląda na pytanie do @ KenShirriff…
duskwuff -inactive-

1
Jak myślisz, dlaczego taktowanie ALU do rejestru pośredniego nie miałoby takich samych możliwych problemów jak taktowanie go do akumulatora? Tak czy inaczej, lepiej wiedzieć, że ALU daje prawidłowy wynik z wystarczającą liczbą ustawień i czasu podtrzymania względem zegara.
Photon

Odpowiedzi:


17

Jak podejrzewał @duskwuff, przyjrzałem się temu. Aby odpowiedzieć na pytanie, 8085 ma dwa dodatkowe rejestry w ALU.

8085 ma kilka „ukrytych” rejestrów: 16-bitową parę WZ i dwa 8-bitowe rejestry pomocnicze ALU: ACT i TMP. WZ jest częścią pliku rejestru, podczas gdy ACT, A (akumulator) i TMP znajdują się w samym obwodzie ALU.

Oto schemat działania ALU:

Zarejestruj strukturę ALU z lat 8085

Rejestr ACT ma kilka ważnych funkcji. Po pierwsze, przechowuje dane wejściowe do ALU. Umożliwia to zapisywanie wyników z ALU z powrotem do akumulatora bez zakłócania wejścia, co spowodowałoby niestabilność. Po drugie, ACT może utrzymywać stałe wartości (np. Do zwiększania lub zmniejszania lub regulacji dziesiętnej) bez wpływu na akumulator. Wreszcie, ACT pozwala na operacje ALU, które nie używają akumulatora.

Jedną z interesujących konsekwencji konfiguracji ALU w 8085 jest to, że wartość można załadować do akumulatora dopiero po przejściu przez ALU.

Szczegóły dotyczące zestawu rejestrów 8085 są tutaj, a szczegóły ALU są tutaj .


1
W jakiś sposób wiedziałem, że będziesz miał coś do powiedzenia na ten temat. : 3
duskwuff -inactive-

2
genialny ~ (zarówno blog Kena Shirriffa, jak i 8085)!
starx

5

W projektach synchronicznych ważnym zadaniem projektanta jest dopilnowanie, aby takie rzeczy się nie zdarzyły. Rejestr, w którym dane są „taktowane”, ma określone właściwości dynamiczne, takie jak czas narastania zegara, czas utrzymywania zegara, stabilne dane przed i po zmianie sygnału zegarowego. W przypadku naruszenia timingu stan wynikowy nie jest gwarantowany.

W twoim szczególnym przypadku ALU ma opóźnienie propagacji i aby dodać dwa razy A, powinien upłynąć czas, zanim nowy A zostanie dodany do poprzedniego A w sumatorze i wynik pojawi się na jego wyjściu. Najprawdopodobniej została zasymulowana i obliczona, że ​​coś takiego nie wydarzy się w ramach określonego dopuszczalnego zakresu częstotliwości zegara dla urządzenia. Właśnie dlatego arkusz danych ma jawnie minimalne i maksymalne oceny zegara. W przypadku 8085A-2 napisano:

  • Minimalny okres cyklu CLK: 320 ns
  • Maksymalny okres cyklu CLK: 2000 ns

5

Akumulator jest rejestrem wyjściowym ALU.

8085 ma dwufazowy zegar. Tam, gdzie instrukcja pojedynczego zegara, jak NOP, trwała 2 cykle zegarowe. Podobnie jak 8088 zastosowany w oryginalnym komputerze IBM, 8088 miał czterofazowy zegar 4 MHz i wykonywał instrukcje z częstotliwością 1 MHz.

Z dwufazowym zegarem masz dwa cykle oscylatora dla każdego cyklu instrukcji.

Wewnętrznie do pomiaru czasu można wykorzystać dowolną krawędź dowolnego zegara. Zegary są odwrócone, więc w rzeczywistości dostępne są cztery zegary.

Następnie masz przezroczyste zatrzaski, które zatrzaskują się na opadającej krawędzi i klapki D-Flip, które zatrzaskują się na rosnącym brzegu zegara.

Przezroczysty zatrzask umożliwia propagację danych wejściowych do wyjścia rozpoczynającego się od zbocza narastającego zegara, a wartości są zatrzaśnięte na zboczu opadającym zegara.

8085 miał wiele opcji, jeśli chodzi o unikanie warunków rasy rozmnażania.

wprowadź opis zdjęcia tutaj


„8088 miał czterofazowy zegar 4 MHz i wykonywał instrukcje z częstotliwością 1 MHz” - 8088 ma tylko jeden pin wejściowy zegara (chociaż oczekuje niesymetrycznego zegara, a stan wysoki trwa około dwa razy dłużej niż niski stan, który wskazuje wewnętrznie, że wyraźnie robi różne rzeczy w tych stanach, w przeciwieństwie do większości nowoczesnych procesorów, które zawsze taktują wszystko na tej samej krawędzi zegara), więc czy ten 4-fazowy zegar jest generowany wewnętrznie? Czy jest gdzieś opis tego, jak to działa?
Jules
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.