Kalkulacka
Pavel Troller
patrol na sinus.cz
Čtvrtek Srpen 30 20:19:23 CEST 2012
> Dne 24. srpna 2012 14:14 Jaroslav Buchta <jaroslav.buchta na hascomp.cz> napsal(a):
> > Tak cloveka napada, jak mizerny vykon musi mit CPU v beznych kalkulackach,
> > vzdyt jde o n operaci nasobeni neco mezi float a double... To i low end PIC
> > (ATMEL, ARM...) zvladne levou zadni za zlomek sekundy i s diagnostickym
> > vypisem na COM (to bude trvat nejdyl ;-) )
>
> Kalkulačka musí mít ještě jednu vlastnost a to nízkou spotřebu
> energie, protože je napájená z baterie. Taktováním CPU by šel zvýšit
> výkon, ale současně i spotřeba a u kalkulačky je užitečnější, když
> vydrží na jedny baterky několik let než aby 69! uměla spočítat za 10ms
> ;)
>
> P.K.
Zdravím,
myslím, že neuškodí se maličko zmínit o tehdejších kalkulačkových CPU.
Např. ten, který byl použit u TI kalkulaček řady SR5x/TI5x (ale i některých
jiných) měl následující vlastnosti:
1) Čtyřbitová datová sběrnice (inu, byl to čtyřbitový procesor). To znamená,
že např. přenos jednoho "čísla" (rozumíme tím to, s čím kalkulačka
počítala, tj. včetně skrytých číslic, exponentu, znamének atd.) po této
sběrnici trval 16 sběrnicových cyklů. Každý cyklus trval navíc více
(různý počet, viz dále) hodinových taktů. Tato šestnáctice obvykle tvořila
jakýsi "rámec", během kterého, byl-li kalkulátor v klidu, zároveň
docházelo k zobrazování na displeji a scanování klávesnice. Pokud
kalkulátor počítal, patřičné takty pro zobrazování a scan klávesnice byly
vypuštěny a tím se proces několikanásobně urychlil.
2) Prakticky neobsahoval vnitřní registry, snad jen registry typické pro ALU
(akumulátor, B registr, možná nějaký stínový registr pro pomocné účely
atd.). Vše ostatní bylo uloženo jinde, a to:
- Registry algebraické hierarchie (tj. pro provádění výpočtů typu
1+2*3^4, případně závorek): v tzv. SCOM (bude popsáno dále)
- "paměti" (tj. registry, obsluhované pomocí STO, RCL atd.): v RAM
- Konstanty pro výpočty transcendentních funkcí: v tzv. paměti konstant.
Tato byla později kombinována s pamětí firmware pro složitější operace
(součást patentu TI-58/9).
Je tedy třeba si uvědomit, že pro výpočet 1+2 bylo potřeba několik přesunů
po sběrnici výše popsané mezi CPU a SCOM/RAM, což nějaký čas určitě
zabralo.
3) Šlo o P-MOS technologii, tj. trojité napájecí napětí, značná spotřeba
(CPU během činnosti zřetelně hřálo) a poměrně nízký clock. Např. v TI-59
se jako rezonátor používal mezifrekvenční keramický filtr 450 kHz, u TI-58
byl prachsprostý kondenzátor. Zde byla výhoda, TI-58 bylo možno
"overclockovat" - někteří šli až na 600 kHz. To u TI-59 možné nebylo,
neboť by nefungoval záznam a čtení magnetických štítků.
Tyto vlastnosti byly určující pro výpočetní výkon těchto systémů. Teď ještě
pár informací o ostatních obvodech "chipsetu":
1) SCOM - tzv. "Scanning ROM". Tento název je podivný, ale vystihuje
v podstatě účel. Byly to víceúčelové obvody, obsahující:
- ROM s pamětí mikroprogramu (šíře 24 bitů). Jelikož SCOM byla s CPU
obvykle "piggybackována" a oba obvody měly poměrně mnoho vývodů,
nejpíše probíhal přenos mikroinstrukcí paralelně (ale jist si tím
nejsem).
- 8 interních 16niblových R/W registrů pro podporu CPU, viz výše
- dekodéry pro scanovací dráty klávesnice, současně používané pro
buzení matice displeje (proto SCOM)
- některé další pomocné funkce.
2) RAM - jen u lepších, programovatelných modelů - poměrně malý obvod,
obsahující 30 16niblových registrů, použitelných buďto jako programové
instrukce nebo proměnné. Přenos v rámci sběrnicového cyklu popsaného
výše.
3) Budiče displeje - jednoduché obvody obdobné těm, známým z TTL provedení.
4) Další obvody u lepších strojů - paměť konstant + firmware, případně
"Library Module" - výměnný modul u TI-58/59, v zásadě ROM s
přístupem v běžných sběrnicových cyklech.
Takže při porovnání s dnešními "low-end" PIC/ARM/ATMEL šlo o naprosto
odlišnou architekturu a tedy nelze srovnávat nesrovnatelné...
Omlouvám se za případné nepřesnosti, přeci jen jsem to studoval již před
delší dobou a znáte to, entropie vzrůstá...
Zdraví Pavel
Další informace o konferenci Hw-list