Yleinen laite CP1600 - General Instrument CP1600

Intellivision -videopelikonsoli, joka on ylivoimaisesti CP1600 -perheen tärkein sovellus

CP1600 on 16-bittinen mikroprosessori luotu kumppanuus General Instrument ja Honeywell vuonna 1975. Honeywell käytti CP1600 useissa prosessin ohjaustietokoneiden ja niihin liittyvien järjestelmien, mutta sen kaikkein laaja käyttö oli CP1610 versiota Intellivision pelikonsoli . Järjestelmä näki vain vähän muuta käyttöä, koska General Instrumentin markkinointifilosofia oli etsiä asiakkaita vain erittäin suurilla tilauksilla ja jättää huomiotta pienemmät asiakkaat. He eivät myöskään pyrkineet toiseen lähdejärjestelyyn , joka mikroprosessorisuunnittelun alkuaikoina oli vaatimus useimmille potentiaalisille asiakkaille.

Kuvaus

Fyysinen toteutus

CP1600 Pin-out

CP1600 toteutettiin nMOS -järjestelmässä ja vaati +12, +5, -3 V virtalähteitä; suurin osa sisäisestä logiikasta toteutettiin TTL: ssä (5 V). Jokainen mikrotilan tai prosessorin sykli käyttää neljää sisäistä aikaväliä, jotka on muodostettu kahdesta päällekkäisestä kellosta. 3,3 MHz: n kaksivaiheinen kello tuottaa 600 nanosekunnin mikrosyklin. 5 MHz: n kaksivaiheinen kello tuottaa 400 nanosekunnin mikrosyklin. Kellosignaalien tehontarpeen vuoksi ne oli tuotettava ulkoisilla piireillä, kuten oli yleistä tällä mikroprosessorisuunnittelun aikakaudella.

Jotta 16-bittinen prosessori mahtuu 40-nastaiseen kaksoislinjapakettiin (DIP), CP1600 multipleksoi datansa ja osoitetapinsa. Tämä mahdollisti 16 -nastaisen sarjan käytön sekä osoitteen valinnassa että tietojen lukemisessa ja kirjoittamisessa, mutta se vaati kahta väyläsykliä. Se myös monimutkaisti koneen yleistä ulkoasua, koska muistiväylälle tarvittiin puskureita osoitteen lukitsemiseksi, kun prosessori kytki nastat datatilaan. Rajapinta järjestelmä oli myös monimutkainen, vaatii kolme tappia, BDIR, BC1ja BC2, jotka oli dekoodattu ymmärtää, mitä tilan muistiväylän oli.

Suhteellisen harvinainen piirre CP1600: ssa oli sen "ulkoinen haara" -konsepti. Tämä toteutettiin sirun neljällä nastalla, joiden EBCA0läpi käskykoodin EBCA3neljä alinta bittiä pidettiin BEXT. Kun tämä käsky suoritetaan, nastat aktivoituvat ja niiden avulla ilmaistaan, mitkä enintään kuudestatoista ulkoisesta järjestelmästä otetaan näytteitä ja palautetaan EBCItapille. Tämän tapin looginen arvo, korkea tai matala, osoitti sitten, onko haara otettava. Tätä voitaisiin käyttää esimerkiksi testattaessa, onko ulkoisella laitteella syöttötietoja, jotka on käsiteltävä.

Kaiken kaikkiaan CP1600: ta käyttävän järjestelmän käyttöönotto vaati usein lisätukea ja logiikkaa. Tähän sisältyi järjestelmä kuudentoista signaalin multipleksoimiseksi yhdeksi nastaksi, jos ulkoista haarautumista käytettiin, ja kolmen bitin-kahdeksan rivin muunnin, jotta väylän tilasignaaleja ei tarvitse purkaa ulkoisissa osissa.

Ohjesarja ja rekisterit

16-bittiä käytettävissä käskyn opcode , CP1600 käytetään vain 10. Loput 6 bittiä oli merkitty "varattu tulevia laajennuksia". Näyttää siltä, ​​että ylimääräiset 6 bittiä oli tarkoitettu käytettäväksi rinnakkaisprosessorien kanssa, mikä vahvisti PCIT- linjan, joka pysäytti suorittimen, kunnes se vapautettiin. Varhaisessa dokumentaatiossa näkyy kaksi suunniteltua pelimerkkiä sarjassa, 1616, joka lisäsi "Extended Instruction Set": n, ja 1618 "Priority Expander".

Järjestelmä sisältää 87 perusohjetta. Ohjeet voivat olla yhdestä kolmeen 16-bittistä sanaa käytetystä osoitemuodosta riippuen. CP1600 ei tukenut muistin muistin epäsuoraa osoittamista (siirtymiä), ja silmukointi toteutettiin käyttämällä erillistä summainta, joka teki yhden jakson muutoksia muistin osoitteisiin. Aritmeettinen logiikkayksikkö (ALU) oli 16-bittinen, ja se voisi lisätä kaksi 16-bittistä sisäisiä rekistereitä 2.4 mikrosekuntia, ja muisti rekisteröidä lisätä kaksi 16-bittistä lukua 3.2 mikrosekuntia.

Kuten PDP-11, myös CP1600 käytti kahdeksaa 16-bittistä "yleiskäyttöistä" prosessorirekisteriä , vaikka ne eivät olleet todella yleiskäyttöisiä kuin nykyaikaisissa malleissa. Vain R0 oli todella yleiskäyttöinen ja sitä on kuvattu "ensisijaiseksi varaajaksi". R1-R3 olivat datalaskureita, joita yleensä käytettiin rekisteripohjaiseen osoittamiseen ("implisiittinen osoite"). R4 ja R5 kasvoivat automaattisesti käytön jälkeen, mikä teki niistä hyödyllisiä datakokoelmien toistamiseen.

R6 oli pino -osoitin , R7 ohjelmalaskuri. Koska molemmat näistä rekistereistä olivat ohjelmoijan nähtävissä, niitä voidaan käyttää muun muassa useiden pinojen toteuttamiseen tai monimutkaisemman haarautumisen tukemiseen. Ei ollut implisiittisiä pino -ohjeita; kun R6: ta käytettiin "lukutoiminnossa", se pienensi osoitetta ja palautti sitten osoitetut tiedot simuloimalla a: ta POP, ja kun sitä käytettiin "kirjoituksessa", se lisäsi (kuten R4/R5) ja kirjoitti, kuten a PUSH.

I/O

Kuten aikakaudella oli tavallista, CP1600 käytti muistiin kartoitettua I/O- pistettä , toisin kuin erilliset I/O-nastat, kuten Intel- järjestelmissä. Multipleksoidun väylän ja monitilan väylän tilan käyttö vaikeutti I/O: n toteuttamista kuin normaalisti tapahtuisi muistikartoitetuissa järjestelmissä. Tämä tarkoitti sitä, että toteutusten oli käytettävä salpoja tai puskureita voidakseen liittyä suorittimeen, koska se muutti väylän osoitteen osoittamisesta dataksi. Tämä vaikutti negatiivisesti I/O -suorituskykyyn ja lisäsi I/O -laitteiden monimutkaisuutta.

Tämän ongelman ratkaisemiseksi GI toimitti sarjan 164x omistettuja I/O -siruja, jotka toteuttivat vaaditun väylälogiikan. Näitä olivat esimerkiksi näppäimistö 1641, kasetti 1643 ja näytön ohjain 1647. Tunnetuin näistä on 1640 "Ohjelmoitava rajapintaohjain" eli PIC, joka on suunniteltu toimimaan yhdessä CP1600: n kanssa kanavaohjaimena . Kuten muutkin 1640 -sarjan sirut, PIC dekoodasi sisäisesti väylälogiikan, mutta lisäsi myös erittäin yksinkertaisen prosessorin, joka pystyi suorittamaan omia ohjelmiaan I/O- ja suoramuistikäyttöön . Voidaan esimerkiksi lähettää käsky levykkeen kortin PIC: lle lukemaan tietoja tietystä sektorista levyllä. PIC lukisi sitten tiedot omaan sisäiseen puskuriinsa, katsoisi väylää käyttämättömäksi ajaksi, kun tilan nastat olivat kaikki nolla, ja lähettäisi sitten tiedot päämuistiin.

General Instrumentin mukana toimitetaan ristikokoonpanijat ja simulaattorit/virheenkorjaimet, jotka ovat yhteensopivia 16-bittisten tai suurempien minitietokoneiden kanssa . GI tarjosi myös erillisen CP1600 -pohjaisen mikrotietokonejärjestelmän GIC1600: een.

Käyttää

Intellivisionissa käytettävä CP1610 on 1600 -mikroprosessoriperheen yhteensopiva jäsen. Se käyttää 2 MHz: n kaksivaiheista kelloa, joka tuottaa 1 mikrosekunnin prosessorisyklin. CP1610 NTSC Intellivisionsissa käyttää 1.7897725 MHz: n kaksivaiheista kelloa. Vaikka CP1600: n käyttäjät perinteisessä tietokoneroolissa olivat suhteellisen harvinaisia, yli 3 miljoonaa Intellivision -tuotetta tuotettiin vuodesta 1980 vuoteen 1983 ulottuvaan videopeli -onnettomuuteen, joka johti Intellivision -tuotantolinjojen sulkemiseen vuonna 1984.

CP1600: n tuotanto päättyi vuonna 1985, kun General Instrument erosi mikroelektroniikka -divisioonastaan ​​luodakseen mikrosirutekniikan . Tässä vaiheessa oli saatavana useita 32-bittisiä malleja, kuten MC68000, jotka olivat vain vähän kiinnostuneita 16-bittisestä mallista, kuten CP1600, ja niiden tärkein nykyinen asiakas, Intellivision, ei ollut enää tuotannossa. Monet muut tuotteet olivat myös end-of-lifed samaan aikaan, ja niiden ensisijainen tuote oli PIC.

Viitteet

Bibliografia

Ulkoiset linkit