Zilog Z8000 - Zilog Z8000

Zilog Z8000
Projektant Zilog
Bity 16-bitów
Wprowadzono 1979 ; 42 lata temu ( 1979 )
Projekt CISC
Rodzaj Zarejestruj-Pamięć
Rozgałęzienia Rejestr warunków
Poprzednik Z80
Następca Z80000
Rejestry
16× 16-bit ogólnego przeznaczenia
24-bit PC
16-bitowy status
Zilog Z8000
M20 mb procesor.jpg
Z8001 na płycie głównej komputera Olivetti M20
Występ
Szerokość danych 16 bitów
Szerokość adresu 23 bity
Specyfikacje fizyczne
Pakiet(y)

Z8000 ( „ zee- lub zed osiem tysięcy ”) jest 16-bitowy mikroprocesor wprowadzony przez Zilog na początku 1979 roku architektury został zaprojektowany przez Bernarda Peuto natomiast logika i realizacja fizyczna została wykonana przez Masatoshi Shima , wspierana przez małą Grupa ludzi. W przeciwieństwie do większości konstrukcji z tamtych czasów, Z8000 nie używał mikrokodu, co pozwoliło na zaimplementowanie go w zaledwie 17500 tranzystorach.

Z8000 nie był kompatybilny z Z80 , chociaż zawierał wiele dobrze przyjętych uwag projektowych, dzięki którym Z80 stał się popularny. Wśród nich była możliwość łączenia rejestrów i używania ich jako jednego większego rejestru - podczas gdy Z80 pozwalał na użycie dwóch 8-bitowych rejestrów jako jednego 16-bitowego rejestru, Z8000 rozszerzył to, umożliwiając dwa 16-bitowe rejestry działać jako rejestr 32-bitowy lub cztery jako rejestr 64-bitowy. Te połączone rejestry były szczególnie przydatne do operacji matematycznych.

Chociaż był to atrakcyjny projekt jak na tamte czasy i był używany na początku lat 80., nigdy nie był tak popularny jak Z80. Federico Faggin , ówczesny dyrektor generalny Zilog, uważa, że ​​powodem tego było to, że Zilog należał głównie do jednego inwestora, Exxon Enterprises, który miał ambicje konkurowania z IBM . Tak więc, kiedy IBM rozpoczynał projekt IBM PC , postrzegali Ziloga jako konkurenta i wybierali Intel 8088 zamiast Z8000, ponieważ Intel nie był postrzegany jako konkurencja na rynku komputerowym. Jednak data premiery Z8000 umieściła go pomiędzy Intel 8086 (kwiecień 1978) a Motorolą 68000 (wrzesień 1979), z których ta ostatnia miała 32-bitową architekturę zestawu instrukcji i była mniej więcej dwa razy szybsza.

Zilog Z80000 był 32-bitowy obserwacji na projektowaniu, uruchomiona w 1986 roku.

Cechy

Rejestry Z8000
1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (pozycja bitowa)
  Grupowanie
Główne rejestry 16-bitowy 32-bitowy 64-bitowy
RH0 RL0 R0 RR0 RQ0
RH1 RL1 R1
RH2 RL2 R2 RR2
RH3 RL3 R3
RH4 RL4 R4 RR4 RQ4
RH5 RL5 R5
RH6 RL6 R6 RR6
RH7 RL7 R7
  R8 RR8 RQ8
  R9
  R10 RR10
  R11
  R12 RR12 RQ12
  R13
  R14 RR14
  R15
Rejestr statusu
S S N mi V m - - - C Z S P O D i h - F LGD
Licznik programu
0 Człon 0 0 0 0 0 0 0 0 P ROGRAM C ounter
Adres

Z8000 początkowo był dostarczany w dwóch wersjach; Z8001 z pełną 24-bitową zewnętrzną magistrali adresowej , aby umożliwić mu dostęp do 8 megabajtów pamięci, a Z8002 , który obsługiwany tylko adresowania, aby umożliwić 64 kilobajtów pamięci 16-bitowym. Dzięki temu Z8002 miał o osiem pinów mniej, dostarczany w mniejszym 40-pinowym formacie DIP , co czyniło go tańszym w implementacji. Podobnie jak Zilog Z80 , Z8000 zawiera wbudowany układ odświeżania pamięci DRAM .

Seria została później rozszerzona o Z8003 i Z8004 , odpowiednio zaktualizowane wersje Z8001 i Z8002. Wersje te zostały zaprojektowane w celu zapewnienia ulepszonej obsługi pamięci wirtualnej , dodania nowych rejestrów stanu w celu wskazania błędów segmentacji (testowania i ustawiania) oraz zapewnienia możliwości przerwania.

Zestaw rejestrów składał się z szesnastu 16-bitowych rejestrów ogólnego przeznaczenia, oznaczonych od R0 do R15. Rejestry mogą być połączone w osiem rejestrów 32-bitowych, oznaczonych jako RR0/RR2/../RR14, lub w cztery rejestry 64-bitowe, oznaczonych jako RQ0/RQ4/RQ8/RQ12. Pierwsze osiem rejestrów można również podzielić na szesnaście 8-bitowych rejestrów, oznaczonych jako RL0 do RL7 dla dolnego bajtu i RH0 do RH7 dla górnego (wysokiego) bajtu. Rejestr R15 jest wyznaczony jako wskaźnik stosu . W Z8001 rejestr R14 służy do dodawania stałego przesunięcia do wskaźnika stosu, a licznik programu jest rozszerzany do 32 bitów, aby uwzględnić podobne przesunięcie.

Istniał zarówno tryb użytkownika ("normalny"), jak i tryb nadzorcy , wybierany przez bit 14 w rejestrze flag. W trybie nadzorcy rejestry stosu wskazują na stos systemowy i dostępne są wszystkie uprzywilejowane instrukcje. W trybie użytkownika rejestry stosu wskazują normalny stos i wszystkie uprzywilejowane instrukcje wygenerują błąd.

Matryca Ziloga Z8002

Obsługa pamięci

Z8000 używał podzielonej na segmenty mapy pamięci, z 7-bitowym „numerem segmentu” i 16-bitowym przesunięciem. Obie liczby były reprezentowane przez piny na Z8001, co oznacza, że ​​może bezpośrednio adresować 23-bitową pamięć lub 8 MB. Jednak wewnętrznie instrukcje mogły bezpośrednio uzyskiwać dostęp do danych w ramach 16-bitowego przesunięcia. Dzięki temu format instrukcji był mniejszy; system z bezpośrednim dostępem do 23-bitowego adresu musiałby odczytać trzy bajty (24-bity) z pamięci dla każdego adresu, o którym mowa w kodzie, co wymagałoby dwóch odczytów na 16-bitowej magistrali. W przypadku segmentów adresy wymagały tylko jednego odczytu 16-bitowego, a numer segmentu trzeba było zaktualizować tylko wtedy, gdy dane przekroczyły granice 16-bitów/64 KB. Może to poprawić ogólną wydajność, gdy dane można rozmieścić w zakresie 64 KB.

Opcjonalny 48-pinowy moduł zarządzania pamięcią Z8010 (MMU) rozszerzył mapę pamięci do 16 MB, tłumacząc 23-bitowy adres z procesora na 24-bitowy. Wewnętrznie zawierał listę 64 segmentów i 8-bitowy wskaźnik do fizycznej lokalizacji tego segmentu w pamięci RAM. Kiedy CPU próbował uzyskać dostęp do określonego segmentu, Z8010 przetłumaczy to na 8-bitowy adres na szynie adresowej, a następnie przekaże 16-bitowy offset bez zmian. Umożliwiło to rozproszenie wielu programów w fizycznej pamięci RAM, z których każdy miał własną przestrzeń do pracy, wierząc, że uzyskuje dostęp do całego 8 MB pamięci RAM. Segmenty miały zmienną długość, rozszerzając się do 64 KB, aby umożliwić dostęp do całej pamięci z 64 segmentów. Gdyby potrzebnych było więcej niż 64 segmenty, można było użyć wielu Z8010. Z8010 nie był dostępny w momencie premiery i ostatecznie spóźnił się o dziewięć miesięcy do roku.

Wraz z wydaniem Z8003/Z8004 do oferty dodano Z8015 , dodając obsługę pamięci stronicowanej . Główna różnica polega na tym, że Z8015 dzieli pamięć na 64 bloki 2 KB, podczas gdy Z8010 dzieli pamięć na 64 bloki o zmiennej wielkości, do 64 KB każdy. Dodatkowo Z8015 rozszerza numer segmentu z 7 do 12 bitów, a następnie wykorzystuje je jako najbardziej znaczące bity 23-bitowego ogólnego adresu, zastępując górne bity oryginalnego 16-bitowego przesunięcia. Zaletą tego schematu dostępu jest to, że można łatwo odczytywać lub zapisywać bloki o wielkości 2 KB na dysku twardym , więc ten wzorzec jest bardziej zgodny z tym, co ostatecznie stanie się w przypadku segfault.

Systemy oparte na procesorach Z8000

Na początku lat 80. procesor Zilog Z8000 był popularny na komputerach z systemem Unix o rozmiarze desktopów . Te niedrogie systemy uniksowe umożliwiły małym firmom uruchomienie prawdziwego systemu wieloużytkownikowego i współdzielenie zasobów (dysk, drukarki) zanim sieć stała się powszechna. Zwykle zamiast wbudowanej grafiki, jak to było typowe dla serwerów w tamtych czasach, miały tylko porty szeregowe RS232 (4–16) i równoległe porty drukarki .

Systemy komputerowe oparte na Z8000 obejmowały własną serię System 8000 firmy Zilog, a także innych producentów:

  • Styczeń 1980: C8002 stworzony przez Onyx Systems używał Z8001, działał z Unix System III , był dostarczany z kompilatorami C i FORTRAN 77 i miał również dostępny kompilator COBOL. Miał 8 portów szeregowych, 1 napęd taśmowy QIC, pojedynczy 8-calowy dysk twardy i kosztował ok. 25 tys. dolarów. Główny procesor odciążał dysk, taśmę i szeregowe operacje IO do procesora Z80 na drugiej płycie.
  • 1982: Olivetti M20 , niekompatybilny z IBM komputer PC z systemem Olivetti PCOS, pochodną COSMOS lub CP/M.
  • 1980-1986: Olivetti Linea 1 S1000, S6000, M30, M40, M50, M60, M70. Wszystkie te minikomputery firmy Olivetti działały w systemie BCOS/COSMOS.
  • 1985: anulowany projekt komputerowy Commodore 900
  • 1987-1989: Wschodnioniemiecki EAW ( Elektro-Apparate-Werke ) wyprodukował Workstation/ Multiuser System P8000 oparty na wschodnioniemieckim klonie U8000 z Z8000.

Komputer Zilog S8000 wyszedł z wersją Uniksa o nazwie ZEUS (Zilog Enhanced Unix System). ZEUS był portem Uniksa w wersji 7 i zawierał coś, co określano jako „Berkeley Enhancements”. ZEUS zawierał wersję COBOL o nazwie RM/COBOL (Ryan McFarland COBOL). Dostępność RM/COBOL pozwoliła na szybkie przeniesienie wielu aplikacji komercyjnych na komputer S8000, chociaż nie pomogło to w długoterminowym sukcesie. Model S8000 odniósł pewien sukces w urzędach skarbowych i ekspertach podatkowych w Stanach Zjednoczonych, którzy wykorzystywali ten model do przetwarzania elektronicznych deklaracji podatkowych.

Była wersja Z8000 systemu operacyjnego Xenix . Namco wykorzystało serię Z8000 w swoich grach arkadowych Pole Position i Pole Position II . Maszyny używały dwóch Z8002, 64 KB wersji Z8000.

Zgłoszone włączenie urządzenia do projektów wojskowych może być wyjaśnieniem dalszego przetrwania dzisiejszego Z8000 w postaci kontrolerów komunikacji szeregowej Z16C01/02 (SCC). Ponadto standardowy centralny komputer danych lotniczych (SCADC) wykorzystywał Z8002. Zawiadomienie o zakończeniu życia firmy Zilog zostało wysłane w 2012 roku.

Ograniczony sukces

Podczas gdy Z8000 widział pewne zastosowanie na początku lat 80., stosunkowo szybko został pominięty w innych konstrukcjach.

Federico Faggin , następnie prezes Zilog, później zaproponował to ze względu na umowy o finansowaniu Zilog jest z Exxon „s ramienia kapitału podwyższonego ryzyka, Exxon Enterprises. Przedsiębiorstwa poczyniły szereg inwestycji w dziedzinie komputerów i na początku lat 80. pozycjonowały się jako konkurent IBM w dużej przestrzeni systemowej. Faggin sugeruje, że IBM postrzegał Ziloga jako konkurenta i w rezultacie odmówił rozważenia Z8000.

Jednak analiza wyborów dostępnych projektantom na początku lat 80. sugeruje, że są bardziej prozaiczne powody, dla których Z8000 nie był bardziej popularny:

Porównując wersje językowe Byte Sieve w asemblerze , można zauważyć, że 1,1 sekundy 5,5 MHz Z8000 jest imponujące w porównaniu do 8-bitowych konstrukcji, które zastąpiła, w tym Zilog 4 MHz Z80 w 6,8 sekundy i popularny 1 MHz MOS 6502 przy 13,9. Nawet nowsza Motorola 6809 1 MHz była znacznie wolniejsza, bo 5,1 sekundy. Dobrze wypada również w porównaniu z 8 MHz Intel 8086, który obrócił się w 1,9 sekundy, lub tańszym 5 MHz Intel 8088 w 4 sekundy.

Chociaż procesory Intela z łatwością przewyższały Z8001, były pakowane w 40-stykowe DIP, co czyniło je tańszymi w implementacji niż 48-stykowe Z8001. Z8002 również używał 40-pinowego pakietu, ale miał 16-bitową magistralę adresową, która mogła uzyskać dostęp tylko do 64 KB pamięci RAM, podczas gdy procesory Intela miały 20-bitową magistralę, która miała dostęp do 1 MB pamięci RAM. Wewnętrznie, 23-bitowe adresy Z8000 były również bardziej skomplikowane w przetwarzaniu niż prostszy system Intela wykorzystujący 16-bitowe adresy bazowe i oddzielne rejestry segmentowe. Dla tych, którzy szukają taniej opcji z dostępem do (jak to było wtedy) dużej ilości pamięci, projekty Intela były konkurencyjne i dostępne ponad rok wcześniej.

Dla tych, którzy szukają czystej wydajności, Z8000 był najszybszym procesorem dostępnym na początku 1979 roku. Ale było to prawdą tylko przez kilka miesięcy. 16/32-bitowa 8 Mhz Motorola 68000 pojawiła się na rynku później w tym samym roku i obraca się w czasie 0,49 sekundy w tym samym teście sitowym, ponad dwa razy szybciej niż Z8000. Chociaż używał jeszcze większego układu 64-pinowego DIP, dla tych, którzy chcieli przejść na więcej niż 40-pinowe, była to niewielka cena za zdecydowanie najszybszy procesor swojej epoki. Jego 32-bitowe instrukcje i rejestry, w połączeniu z 24-bitową szyną adresową z płaskim 16-MB adresowaniem, również uczyniły go znacznie bardziej atrakcyjnym dla projektantów, do czego przyznaje się Faggin.

Aby dodać jeszcze więcej problemów, kiedy Z8000 został po raz pierwszy wydany, zawierał szereg błędów. Wynikało to z złożonego dekodera instrukcji, który w przeciwieństwie do większości procesorów tamtych czasów nie wykorzystywał mikrokodu i był zależny od logiki zaimplementowanej bezpośrednio w CPU. Pozwoliło to na wyeliminowanie przechowywania mikrokodu i powiązanej logiki dekodowania, co zmniejszyło liczbę tranzystorów do 17500. Natomiast współczesny Intel 8088 wykorzystywał 29 000 tranzystorów, podczas gdy Motorola 68000 kilka miesięcy później wykorzystywała 68 000.

Drugie źródła

Kilka innych firm wyprodukowało Z8000, w tym AMD , SGS-Ates , Toshiba i Sharp .

Bibliografia

Dalsza lektura