WDC 65C02
WDC W65C02S – mikroprocesor firmy Western Design Center, ulepszona wersja CMOS popularnego MOS 6502.
Układ zaprojektowany został przez założyciela firmy WDC, Billa Menscha - jednego z projektantów 6502. W różnych okresach projekt licencjonowany był firmom takim jak NCR Corporation, GTE, Rockwell International, Synertek oraz Sanyo. W65C02S jest niskonapięciowym, 8-bitowym (8-bitowe rejestry i szyna danych) mikroprocesorem ogólnego przeznaczenia. Ma w pełni statyczny rdzeń, umożliwiający wstrzymanie przebiegu zegarowego. Lista instrukcji oraz ręcznie optymalizowany rdzeń predestynują ten układ do zastosowań system-on-a-chip (SoC). Firma WDC stworzyła opis rdzenia w języku Verilog w celu jego zastosowania w układach ASIC i FPGA.
Układ został użyty m.in. w komputerach Apple IIc, Apple Enhanced IIe, BBC Master, Replica I oraz konsolach Atari Lynx, TurboGrafx-16, GameKing i Watara Supervision.
Dane techniczne
[edytuj | edytuj kod]- 8-bitowa szyna danych
- 16-bitowa szyna adresowa
- 8-bitowa jednostka ALU
- 8-bitowe rejestry procesora:
- Akumulator
- Wskaźnik stosu
- Rejestry indeksowe
- Rejestr stanu procesora
- 16-bitowy licznik instrukcji
- 69 instrukcji
- 16 trybów adresowania
- Instrukcje WAit-for-Interrupt (WAI) i SToP (STP) zmniejszające zapotrzebowanie na energię
- Dopuszczalne napięcia pracy: 1.8/2.5/3.0/3.3/5.0 V ±5%
- Pobór prądu: do 150uA na 1 MHz przy zasilaniu 1.8 V, do 500 uA/MHz przy zasilaniu 5 V
- Częstotliwość pracy: do 14 MHz przy zasilaniu 5V
Rejestr stanu procesora
[edytuj | edytuj kod]Rejestr zawiera cztery bity znaczników (N, Z, V, C) - własności wyniku operacji, dwa bity sterujące działaniem procesora (D, I) oraz bit sygnalizacji pułapki (B)
- N - Wynik ujemny
- V - Nadmiar dodawania/odejmowania w kodzie U2
- 1 - (bit 5) Nieokreślony (zawsze 1)
- B - Break (ustawiany przez rozkaz BRK)
- D - Włączenie trybu dziesiętnego dla instrukcji dodawania i odejmowania
- I - wyłączenie przerwania IRQ
- Z - Wynik ostatniej operacji był zerem
- C - Nastąpiło przeniesienie
Porównanie z MOS 6502
[edytuj | edytuj kod]Zestaw instrukcji
[edytuj | edytuj kod]Lista instrukcji WDC 65C02 zawiera wszystkie instrukcje wersji NMOS 6502 oraz kilka nowych, w tym operacje stosowe na rejestrach X i Y, inkrementację i dekrementację akumulatora A oraz względny skok bezwarunkowy BSR. Dodano również nowy tryby adresowania - pamięciowy pośredni strony zerowej - (zp). Nieudokumentowane w 6502 kody operacyjne są w 65C02 interpretowane jako instrukcje puste (NOP). Poprawione zostało działanie instrukcji JMP z trybem adresowania pamięciowym pośrednim (kosztem wydłużenia jej wykonania o 1 cykl przy przekroczeniu granicy stron). Dodano instrukcję JMP z trybem pamięciowym pośrednim postindeksowanym rejestrem X. W65C02S, podobnie jak seria Rockwell R65C00, wykonuje również nowe instrukcje operujące na pojedynczych bitach (RMB, SMB, BBR i BBS).
Zachowanie znaczników N i Z w trybie dziesiętnym
[edytuj | edytuj kod]W65C02S różni się programowo od wersji NMOS 6502 sposobem ustawiania znaczników N i Z w trybie dziesiętnym. W W65C02 odzwierciedlają one poprawnie własności wyniku w kodzie BCD (co kosztuje dodatkowy cykl zegara); w 6502 były one ustawiane według pośredniej wartości wyniku operacji, przed finalną korekcją dziesiętną.
Sygnały zewnętrzne
[edytuj | edytuj kod]Nowy sygnał VPB (Vector Pull), niedostępny w układach innych producentów, oznacza, że procesor pobiera z pamięci adres procedury obsługi wyjątku.