torstai 12. helmikuuta 2015

HP1000 - Ostosta odotellessa

Viimeisin ostokseni USA:sta on tulossa näillä näppäilyillä ja ajattelin heti alkuun hiukan fiilistellä. Kyseessä siis on Hewlett Packardin valmistama 16-bittinen minitietokone, jota valmistettiin vähän eri variantteina 60-luvulta 80-luvulle. HP:n mallinumerointi on todella sekavaa, alkuun mallisarja tunnettiin 211x:n, mutta kun ferriittimuisti vaihtui puolijohdemuistiksi, muuttui mallinimi 21MX:ksi. Lopulta HP nimisi koneet 1000-sarjaksi, vaikka itse keskusyksiköiden tyypit pysyivät "21xx" muodossa. Oma koneeni on 1000-sarjan kone, jonka CPU:n tyyppi on 2109. E vielä tarkoittaa Extented, suomeksi sanottuna laajennetulla käskykannalla, sekä CPU:n sisäinen S-väylä on käyttäjän ulkopuolisten laitteiden ronkittavissa.

Mikä tässä tietokoneessa on sitten niin hienoa? Noooh...

A. Koneen CPU on tehty pelkästään TTL-logiikkapiireistä, ei mitään Intel/Zilog/Mostek-oikoteitä (tosin eipä niitä juuri julkaisuvuonna ollutkaan).
B. Koneessa on ohjelmoitava mikrokoodi ( = voi ohjelmoida omia konekäskyjä)!
C. Vilkkuvat valot* ja kytkimet. Mikään ei voita niitä.

HP 1000 E-series. Ikävä kyllä ostamassani ei tullut mukaan mitään oheislaitteita tullut, kuten noita upeita levyasemia... Kuva: Wikipedia


HP käytti TTL:ää vielä tuolloin, johtuen ihan siitä että se oli nopeaa, todella nopeaa verrattuna aikansa CMOS-suorittimiin. Motorola 68000 kylläkin pyyhki tälläisillä HP:lla pöytää heti -79, eikä TTL CPU:ta enää nähty 80-luvulla oikeastaan missään (viipaleprosessoreita kylläkin, mutta se on jo ihan oman postauksen arvoinen tarina).


Mistä pienet HP:t on tehty?


Tietysti 74xxx-sarjasta, PROMeista ja pienestä määrästä SRAMia. Monimutkaisin osa tässä tietokoneessa on 74181 ALU (jos nyt ROM/RAM-piirejä lasketa), tuttu varmasti monelle.

Ehdottomasti mielenkiintoisin ominaisuus on muokattava mikrokoodi. Käytännössä tässä laitteessa on kaksi eritasoilla olevaa ohjausyksikköä. Peruskäskyjen mikrokoodi on tallennettuna PROMeille, mutta koneessa voi olla laajennuskortilla lisää mikrokoodia laajenetulle käskykannalle. Tämä muisti voi olla ROM- tai RAM-tyyppistä, toisin sanoen jälkimmäisessä tapauksessa mikrokoodia voidaan muokata lennossa tai ladata levyltä, jos ohjelma tarvitsee jotain spesiaalikäskyjä.

Mikrokoodi on (vertikaalinen) 24-bittinen, sillä on 10 väliaikaista rekisteriä ja 3-kerroksinen pino. Mikrokäskyt kuvaavat sekvenssiä, jolla käsky suoritetaan. Esim. siirrä rekisteri A väylään S, aseta ALU summaimeksi, jne. Ja mikä hienointa, mikrokäskyt voivat suorittaa aliohjelmia (tarkemmin oikeastaan mikroaliohjelmia), koska pino ottaa paluuosoitteen talteen.

Käytännössä homma menee siten, että kun käsky noudetaan muistista (yllätys: sekin mikrokoodilla), luetaan data käskyrekisteriin, joka asettaa hyppy-ROMin avulla osoitteen kohdalleen mikrokoodi-ROMiin, josta puolestaan alkaa mikrokoodin ( = halutun käskyn) suoritus. Käskyn lopuksi hypätään mikrokoodi-ROMin osoitteeseen nolla, jossa fetch-mikrokoodirutiini sijaitsee ja homma alkaa alusta.

Hämmentävä tekele nykyajan mittapuulla. Tälläinen mikro-ohjelmointi on syntynyt aivan pelkästään tarpeesta säästää muistia ja nopeuttaa koneen toimintaa. Ajatellaan vaikka kertolaskua, se vie kohtuuttoman paljon koneaikaa, jos sen joutuu tekemään softalla, koska kellojaksoja menee lähemmäs puolet pelkkiin käskyjen hakemiseen muistista. Mikro-ohjelmoinilla muistista ei tarvitse hakea mitään, kertolaskua jauhetaan suoraan CPU:n sisällä apurekistereitä käyttäen. Tämä oli parasta mitä pystyttiin järjelliseen hintaan tarjota omana aikanaan (tietenkään tälläinen tekniikka ei voita mitään nykyaikaista lookup-taulukoilla tehtyjä kerto- ja jakolaskuja...)

Jos kiinnostaa tutustua tarkemmin HP:n sielunelämään, tässä linkki HP:n huoltomanuaaliin:
http://bitsavers.trailing-edge.com/pdf/hp/1000/1000_MEF_EngrRef/92851-90001_Mar81_1.1.pdf
...heti ensimmäisellä sivulla on kaiken kertova lohkokaavio koneen sisuksista.

Lisää juttuja HP:sta, kunhan se maailmalta saapuu!


Ps. Jos sattuu löytymään tälläisen HP:n oheislaitteita, niin laittakaa viestiä!


Ei kommentteja:

Lähetä kommentti