Intel 8080
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/7e/Intel_C8080A_9064_33001_N8384_top.jpg/230px-Intel_C8080A_9064_33001_N8384_top.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/AMD_C8080A.jpg/230px-AMD_C8080A.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/CEMI_MCY_7880.jpeg/230px-CEMI_MCY_7880.jpeg)
Intel 8080 – jeden z pierwszych mikroprocesorów, wyprodukowany przez Intela w kwietniu 1974. Jest 8-bitowym mikroprocesorem wykonanym w technologii n-MOS, pracującym z częstotliwością taktowania 2 MHz. Jest on uniwersalną jednostką centralną złożoną z jednostki arytmetyczno-logicznej, rejestrów roboczych i układu sterowania. Dane i instrukcje są przesyłane do i z pamięci za pośrednictwem 8-bitowej szyny danych, pamięć jest adresowana 16-bitową szyną adresową.
Wyprodukowany w 1978 roku 16-bitowy procesor 8086, który jest protoplastą wszystkich stosowanych w komputerach zgodnych z PC, zawiera wszystkie instrukcje procesora 8080 (chociaż mają one inne kody maszynowe) i dlatego jest zgodny na poziomie programu źródłowego w kodzie asemblera z procesorem 8080. Początkowo układ sprzedawano w cenie 360 USD; cena ta – wraz z pojawianiem się na rynku wersji układu innych producentów – malała do poniżej 2 USD w roku 1991[1]. Klon 8080 – MCY7880 był jedynym produkowanym w Polsce procesorem[2].
Charakterystyka
[edytuj | edytuj kod]- słowo 8-bitowe
- 72 instrukcje
- bezpośrednie adresowanie pamięci o pojemności do 64 KB
- arytmetyka dwójkowa i dziesiętna kodowana dwójkowo (BCD)
- 8 rejestrów programowych dostępnych dla programisty
- cykl pracy 2μs, wymuszany przez 2-fazowy zegar zewnętrzny
- częstotliwość zegara 2-3 MHz (podstawowy cykl rozkazowy – 4 takty)
- 3 napięcia zasilające: +5V, +12V, -5V
- ubogi zestaw trybów adresowania i nieuporządkowana lista rozkazów
- konieczność stosowania dodatkowych układów: zegar i sterownik systemu
Schemat blokowy
[edytuj | edytuj kod]![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Intel_8080_arch.svg/320px-Intel_8080_arch.svg.png)
W strukturze mikroprocesora można wyróżnić cztery bloki funkcjonalne:
- blok rejestrów wraz z układem wybierającym
- jednostkę arytmetyczno-logiczną
- układ sterowania z rejestrem rozkazów
- dwukierunkowy, trójstanowy bufor szyny danych
Blok rejestrów z układem wybierającym
[edytuj | edytuj kod]Blok rejestrów z układem wybierającym jest statyczną pamięcią z dostępem swobodnym (RAM), zorganizowaną w ten sposób, że tworzy następujące rejestry:
- licznik rozkazów (PC) – 16-bitowy
- wskaźnik stosu (SP) – 16-bitowy
- sześć ośmiobitowych rejestrów uniwersalnych: B, C, D, E, H, L, które można łączyć w pary
- rejestr pomocniczy składający się z dwóch ośmiobitowych rejestrów W oraz Z
Licznik rozkazów zawiera adresy wykonywanych instrukcji. Przy pobraniu każdego bajta z pamięci zewnętrznej i wchodzącego w skład instrukcji, zawartość licznika jest automatycznie zwiększana o 1. Stos śladów organizowany jest w pamięci zewnętrznej RAM. Wskaźnik tego stosu (SP) zawiera adres ostatnio zajętego miejsca na stosie. Sześć ośmiobitowych rejestrów uniwersalnych jest dostępnych dla programisty i można ich używać pojedynczo (jako rejestrów 8-bitowych) lub w parach, jako rejestrów 16-bitowych. W ten sposób można łączyć w pary rejestry B-C, D-E i H-L. Rejestr pomocniczy wytworzony z rejestrów W i Z nie jest dostępny dla programisty i wykorzystywany jest do operacji wewnętrznych.
Dane ośmiobitowe są wprowadzane do bloku rejestrów poprzez multiplekser. Między blokami rejestrów a rejestrem adresów i buforem adresów mogą zachodzić przesłania. Informacja szesnastobitowa może być zwiększona lub zmniejszona o 1, co zachodzi w układzie generacji następnika i poprzednika. Korzysta się z tego przy aktualizacji zawartości licznika rozkazów i wskaźnika stosu. Rejestr adresów jest połączony z trójstanowym buforem, który można wprowadzić w stan wysokiej impedancji, gdy wymagane jest odizolowanie mikroprocesora od pamięci zewnętrznej, tj. wtedy, gdy urządzenia zewnętrzne przesyłają dane bezpośrednio do pamięci z pominięciem jednostki centralnej (DMA).
Jednostka arytmetyczno-logiczna
[edytuj | edytuj kod]Jednostka arytmetyczno-logiczna może wykonywać działania w arytmetyce dwójkowej, operując liczbami ośmiobitowymi, do realizacji arytmetyki dziesiętnej wprowadzono rozkazy korekcji po dodawaniu i odejmowaniu. Z jednostką ALU związany jest rejestr znaczników, którego zawartość tworzy warunki pracy przy wykonywaniu operacji arytmetycznych, logicznych i instrukcji warunkowych. Poszczególne bity tego rejestru służą do określenia:
- zera na wyjściu sumatora
- przeniesienia
- znaku parzystości
- przeniesienia połówkowego (kodu BCD)
- znaku liczby dla liczb w kodzie uzupełnień do dwóch
Układ sterowania z rejestrem rozkazów
[edytuj | edytuj kod]Rejestr rozkazów jest rejestrem ośmiobitowym, do którego na początku każdego cyklu rozkazowego jest przesyłany pierwszy bajt instrukcji (zawierający kod instrukcji) pobrany z zewnętrznej pamięci przez szynę danych D0 ... D7 i wewnętrzną szynę danych. Zawartość rejestru rozkazowego jest dostępna dla dekodera instrukcji, który generuje, wraz z układem sterującym sygnały sterujące dla wszystkich układów mikroprocesora. Do układów są doprowadzone końcówki ф1, ф2, READY, INT, RESET i HOLD, przez które wprowadza się dodatkowe informacje sterujące. Z układu sterowania jest wyprowadzonych na zewnątrz sześć wyjść identyfikujących stany i cykle mikroprocesora dla układów zewnętrznych. Są to INTE, HLDA, DBIN, SYNC, WR i WAIT.
Bufor szyny danych
[edytuj | edytuj kod]Bufor szyny danych jest ośmiobitowym, dwukierunkowym rejestrem służącym do odizolowania wewnętrznej szyny danych od końcówek D0 ... D7 stanowiących zewnętrzną szynę danych. Lista rozkazów 8080 obejmuje:
- przesłania między rejestrami procesora lub rejestrem a pamięcią zaadresowaną w jednym z trzech trybów (natychmiastowy, bezpośredni, zawartością pary rejestrów)
- operacje arytmetyczne dodawania, odejmowania, porównywania wykonywane na ośmiobitowych liczbach dwójkowych, całkowitych bez znaku lub ze znakiem w kodzie U2, jednym z argumentów operacji jest zawartość akumulatora, drugim – zawartość rejestru roboczego, argument bezpośredni lub zawartość komórki pamięci zaadresowanej parą H-L
- dodawanie dwucyfrowych liczb dziesiętnych, wykonywane metodą korekcji zawartości akumulatora
- dodawanie i odejmowanie wielokrotnej precyzji
- operacje logiczne na słowach ośmiobitowych
- operacje przesyłania, zwiększania, zmniejszania i dodawania szesnastobitowych adresów traktowanych jako liczby całkowite bez znaku
- rozkazy skoku, przy czym skok warunkowy jest skokiem bezwzględnym, a warunkiem skoku jest stan wybranego znacznika w rejestrze stanu
- rozkazy wejścia/wyjścia realizujące przesłania między akumulatorem a układem sprzęgającym, którego numer jest podany w rozkazie
Historia
[edytuj | edytuj kod]W Polsce pod koniec lat 70. zakłady półprzewodnikowe CEMI produkowały mikroprocesor o nazwie MCY7880 w pełni zgodny z 8080 oraz dodatkowe układy wspomagające zgodne z układami Intela[3].
Zobacz też
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ Maciej Danecki. Opera na szesnaście bitów, czyli jak to zrobił Intel. „Bajtek”, styczeń 1991. Spółdzielnia „Bajtek”. ISSN 0860-1674. (pol.).
- ↑ Retrogram Hardware – Polak potrafił, czyli smutna historia Elwro – gram.pl [online], www.gram.pl [dostęp 2017-11-24] (pol.).
- ↑ Rydzewski 1986 ↓, s. 81.
Bibliografia
[edytuj | edytuj kod]- Andrzej Rydzewski: Mikrokomputer elementy, budowa, działanie. Warszawa: NOT Sigma, 1986. ISBN 83-85001-17-4.