Zilog Z280

przez | 4 października 2023

Chciałbym tu przedstawić mało znany procesor Zilog Z280 zgodny z Z80, który mógł pracować w trybach 8 i 16-bit. Z280 to rozwinięcie koncepcji Z800 która doczekała się fizycznej realizacji w lipcu 1987 roku. Premiera Z280 była spóźniona o co najmniej 5 lat, więc nie był w stanie zwrócić na siebie uwagi w świecie który został zdominowany przez procesory 16 bitowe i został całkowicie niezauważony. Procesor ten posiadał wiele unikatowych cech, niespotykanych w świecie 8-bit, jak wbudowana pamięć cache, odseparowane od siebie tryby pracy systemu i użytkownika, praca w systemach wieloprocesorowych, możliwość współpracy z koprocesorami oraz uruchomienie systemu bez pamięci ROM poprzez interface szeregowy. Układ zawierał zaawansowany MMU z ochroną pamięci, mogący zaadresować 16MB, cztery kanały DMA, trzy timery/liczniki, asynchroniczny układ transmisji szeregowej oraz potokową jednostkę CPU z mocno rozbudowaną listą rozkazów, zgodną z Z80.

Zilog Z280
Procesor Z280 w wersji 10MHz,
produkowane były również 12MHz

Na potrzeby zapoznania się z możliwościami oferowanymi przez ten procesor w trybie 8 bit został zaprojektowany prototypowy moduł w standardzie RCBus. Zastosowano w nim współczesny mikrokontroler AVR w celu uproszczenia budowy modułu. Zastępuje on generator zegara systemowego, transmisji szeregowej oraz jest wykorzystywany do ładowania rejestru sterującego procesorem, do którego dostęp jest tylko w trakcie specjalnej procedury restartu oraz do ewentualnego przesłania programu ładującego zawartego w wewnętrznej pamięci EEPROM. Rejestr ten umożliwia sterowanie częstotliwością zewnętrznej szyny (1/4, 1/2 oraz 1/1 zegara CPU – domyślnie jest to 1/2) oraz uruchomienie szeregowego ładowania wstępnego (bootstrap).

Moduł z procesorem Z280
Pierwszy prototypowy moduł z procesorem Z280, jeszcze w standardzie RC80

Wbrew obiegowej opinii, procesor Z280 pomimo posiadania wielu zaawansowanych funkcji, jest o około 15% mniej wydajny niż Z80 w trybie 8-bit przy takim samym taktowaniu i wykonywania kodu Z80. Swoją przewagę nad swoimi starszymi braćmi pokazuje dopiero gdy pracuje w trybie szesnastobitowym. Prawdopodobnie w zamierzeniach jego twórców miał to być jego domyślny tryb, a możliwość pracy z ośmiobitową szyną została zachowana dla kompatybilności istniejącymi na rynku 8-bitowymi rozwiązaniami. Zastanawiające jest też to, dlaczego konstruktorzy Z280 zdecydowali się na domyślne obniżenie taktowania zewnętrznej szyny (1/2 CPU) i zastosowanie pamięci cache która miała niwelować tak powstałe straty wydajności, gdyż w momencie premiery tego procesora powszechnie były dostępne i tanie pamięci spełniające wymagania tego procesora pracującego z pełną prędkością. Warto jednak zapoznać się z dokumentacją tego procesora gdyż zawarte w nim rozwiązania stały się normą w późniejszych procesorach. Najciekawszą funkcjonalnością Z280 jest tryb chroniony systemu, który odseparowuje procesy użytkownika od systemu operacyjnego. Próba dostępu przez użytkownika do funkcji systemowych lub dostępu do urządzeń zewnętrznych, pamięci systemu wywołuje wyjątek, podobnie jak wykonanie niedozwolonych instrukcji, który jest obsługiwany przez tryb systemowy.

Zestaw wykorzystujący drugi prototyp modułu Z280

Szkoda, że jego mocno spóźniona premiera nie wpłynęła na rozwój systemów operacyjnych z rodziny CP/M i nie podtrzymała popularności ISA Z80. Wyobrażam sobie wielozadaniowy, wielowątkowy MP/M z trybem chronionym, czyli coś co pojawiło się dopiero wraz z wydaniem Linuxa, Windows NT lub OS/2.

Doświadczenia jakie zdobyłem na prototypowych modułach procesora Z280 zaowocuje finalną wersją tego modułu, który będę mógł z czystym sumieniem udostępnić społeczności.