Nevim, ale matne si vzpominam ze 68000 mela vnitrni sbernice 16tibitove. Pouze registry byly 32 bitove a mikrokod se staral aby budil dojem 32bitoveho stroje. Takze napriklad 32bitove scitani se v 16tibitove ALU delalo nadvakrat. Opravdu 32bitova byla az 68020. Ovsem nevim jestli 68008 byla uvnitr 8mibitova, nebo to byla jen 68000 s externi 8mibitovou sbernici.
Jinak pekny clanek.
Z80 rozhodně není 16 bitový a to právě proto, že 16 bitpové jsou tam jenom ty části týkající se adresování paměti. Logicky, se čtvrtkilem paměti by se nedalo skoro nic dělat. Obobně bys pak mohl tvrdit, že 286 nebo zmíněný 68000 není ani 16bitový CPU, protože naadresuje řádově megabajty paměti namísto 64kB.
Já to vidím takhle. Pokud daný procesor má 32bitové registry, 32bitový SP a PC (bez ohledu na to, kolik bitů je reálně vyvedeno z pouzdra v podobě sběrnice a tedy kolik můžu aktuálně osadit RAMěti), tak je to plně 32 bitový procesor i když z důvodu ceny nebo čehokoliv jiného má sběrnici ošizenou. když ho totiž vezmu (nebo nějakého nástupce), tak k němu opravdu ty přímo adresovatelné 4GB připojím, datovou sběrnici si můžu udělat třeba tříkanálovu DDR (to už jsem na X násobku 32 bitů) a přesto se z hlediska programátora a programu naprosto nic nezmění. Kromě rychlosti samozřejmě.
No ale vzdyt to tu BLEK pise ze podle tyhle definice je Z80 16tibitova, protoze nejen adresovani ale i aritmetika se da delat na 16tibitech jednou instrukci (sice ma omezeni na zdrojovy a cilovy registry, ale to zas jina vec).
Nebo jinak. Kdybych vzal Z80tku, pripojil k ni ROMku nejakou malou RAMku a porty abych mel vic ‚nozicek‘, do ROMky dal program kterej bude emulovat 68000 a cely to integroval na jeden chip tak ze by to bylo kompatibilni s 68000 (jenom o hodne pomalejsi), co by to bylo? 8, 16 nebo 32 bitovy procesor?
Mozna by bylo lepsi to rozlisovat podle sirky operandu, ktere jdou do ALU a podle sirky interni sbernice (ale pravda, tyto dva udaje se muzou lisit). Treba secitani, i kdyz nektere osmibitove CPU mely instrukce pro soucet 16bitovych cisel, se vetsinou provadelo nadvakrat – nizsi bajt, vyssi bajt.
U Z80 ma interni datova sbernice sirku 8 bitu, interni adresova sbernice (po ktere krome adres putuji o obsahy SP, PC, IX apod.) ma bitu 16, ale ALU je pouze osmibitova – na vstupu jsou 2 osmibitove hodnoty + C, na vystupu 8 bitu + stavy (C,Z,…)
On se Z80 také někdy označoval jako 8/16 bitový, právě díky těm
aritmetickým instrukcím počítajícím s „dvouregistry“, jenže v tom
označování xbitovosti procesorů je tradičně pěkný zmatek, protože
někdo to označuje právě podle registrů, někdo podle šířky datové
sběrnice, tedy té vnější, ještě jsem viděl nějaký jiný způsob, ale
tak hrozný že si ho ani nepamatuji… :-D
Takže podle datové sběrnice, 8088, ač s šestnáctibitovým vnitřkem
z 8086, byl jen osmibitový (to spáchali aby k němu šly připojit
levnější osmibitové čipy), stejně tak dvaatřicetibitový 386SX byl
z tohohle pohledu jen šestnáctibitový.
S tím adresováním je to blbost, protože třeba skutečně osmibitový
8008 uměl adresovat jen 16KB, takže by měl být podle registru PC
čtrnáctibitový? Navíc tam jde především o množství najednou
přenášených dat, adresování paměti je jiná kapitola.
Nejjednodušší by bylo označování právě podle šířky pracovních
registrů, hlavně toho akumulátoru, ale tam to komplikuje třeba zrovna ta
68000. Pak bych mohl říct že Amiga 500 je šestnáctibitový
mikropočítač s dvaatřicetibitovým procesorem 8-O Takže takhle to asi
také nepůjde.