K1801VM1

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 31.10.2020 tarkistetusta versiosta . tarkastukset vaativat 7 muokkausta .

K1801VM1  on yksisiruinen 16-bittinen mikroprosessori (OMP).

Se on tarkoitettu digitaalisen tiedon käsittelyyn prosessinohjausjärjestelmissä ohjaus- ja mittauslaitteistoissa sekä tietoliikennejärjestelmissä sekä teknisten ja taloudellisten ongelmien ratkaisemiseen osana tietokonetta . K1801VM1-komentojärjestelmä on hyvin lähellä PDP-11- arkkitehtuuria ja on useimmissa tapauksissa yhteensopiva sen kanssa, mutta ei ole sen tarkka kopio.

Mikropiirin koostumus

Mikropiirin rakenne sisältää seuraavat päätoiminnalliset lohkot:

Katso kohta: Rakennekaavio

Perusparametrit

Bittinen syvyys 16 bittiä Numeroesitys kahden komplementin kiinteän pisteen koodi Komentojärjestelmä osoitteeton, yksilähetys, kaksoisosoite Osoitteen tyypit rekisteri , epäsuora rekisteröinti, automaattinen lisäys, epäsuora automaattinen lisäys, epäsuora automaattinen vähentäminen, indeksi, epäsuora indeksi Yleiskäyttöisten rekisterien lukumäärä kahdeksan Keskeytyspyyntörivien määrä neljä Järjestelmän moottoritie MPI yhdistetyillä väylillä osoite- ja tiedonsiirtoon Osoitetila 64 kt tavua Kellotaajuus jopa 5 MHz [1] Lisäyskomentojen suurin suoritusnopeus tietokoneessa rekisteriosoitusmenetelmällä jopa 500 tuhatta operaatiota/s Virrankulutus _ jopa 1,2W

Pin Assignment [2]

Johtopäätös Nimitys lähtötyyppi Päätelmien toiminnallinen tarkoitus
yksi CLC Sisäänkäynti Synkronointi
2 SÄKKI Syötä uloskäynti RAP- sieppauksen vahvistus
3 DMGI Sisäänkäynti RAP-syöte
neljä DMGO Poistu RAP-palvelun tuotos
5 DMR Sisäänkäynti RAP-vaatimus
6 SP Sisäänkäynti Dokumentoimaton toiminto - ajastimen ulkoinen taajuuslähde [3] . Yhdistä +5V
7 SEL1 Poistu Ensimmäisen I/O-rekisterin valinta
kahdeksan SEL2 Poistu Toinen I/O-rekisterin haku
9-20, 22-25 AD0-AD15 Syötä uloskäynti Tietojen osoitebitit
21 GND - Kenraali
26 PA1 Sisäänkäynti Prosessorin numero
27 PA0 Sisäänkäynti Prosessorin numero
28 BSY Poistu Kanava varattu signaali
29 DCLO Sisäänkäynti Virtalähteen vika
kolmekymmentä ACLO Sisäänkäynti AC-virtakatkos
31 IRQ1 Sisäänkäynti Ensimmäinen säteittäinen keskeytyspyyntö "Remote"
32 IRQ2 Sisäänkäynti Toinen säteittäinen keskeytyspyyntö (vektori 100)
33 IRQ3 Sisäänkäynti Kolmas säteittäinen keskeytyspyyntö (vektori 270)
34 SEN SISÄLLÄ Syötä uloskäynti Alkutilan asettaminen
35 VIRQ Sisäänkäynti Vector keskeytyspyyntö
36 IAKO Poistu Keskeytyksen tarjoaminen
37 DOUT Poistu Datan ulostulo (tietojen tallennus)
38 DIN Poistu Tiedonsyöttö (tietojen lukeminen)
39 VASTAA Syötä uloskäynti Passiivisen laitteen synkronointi (vastaus)
40 WTBT Poistu Tavutulostus (kirjoitus/tavu)
41 SYNK Poistu Aktiivinen laitesynkronointi (jakaminen)
42 Ucc - Syöttöjännite

Yksityiskohtainen kuvaus löydöistä

Rakennekaavio

1 34 30 29 35 31 32 33 | | | | | | | | CLC| | ACLO | DCLO| VIRQ| IRQ1| IRQ2| IRQ3| | INIT | | | | | | | \|/ | \|/ \|/ \|/ \|/ \|/ \|/ | \|/ | | | | | | |___|___| /|\ |_|_____|_____|_____|_____|_____|_| | järjestelmä | | | Estä | | tahdikkuutta- | | | Keskeyttää | | | _ | |_______________|_____________________| |___|___| | | | | /|\ /|\ | | | | | |________________________________________|_________________________________________ | | | | | \|/ \|/ | \|/ | | | | | |________|_______|________| |________|_________| | |______|______| | Laiteohjelmiston lohko | | Toiminnassa | | | | IAKO | hallinta | | Estä | | | -->>>--36 |____________|_________________| |________|_________| | | | | | | | | SP \|/ \|/ | | --<<<--27 /|\ /|\ | | | | | | | | SP |____________|____________| | | -->>>--26 | | | | \|/ | | | VASTAA | | | --<<<--39 |_____________|_________________| | | | | | | | | SYNK | Järjestelmä ----<<<---| | -->>>--41 | moottoritie | | | | ----<<<---------- | DOUT |_|_______|_______|_______|_| | BLOCK -->>>--37 | | | | | hallinta | \|/ \|/ \|/ \|/ | systeeminen | DIN /|\ /|\ /|\ /|\ | moottoritie-->>>--38 | | | | | ja | AD0| AD11| AD12| AD15| | rekisterit | WTBT |--------| |--------| | tulo\ -->>>--40 | | | | | lähtö | | | DMR | --<<<--5 | | | | SÄKKI | --<<<--2 | | | | DMGO | -->>>--4 | | | | SP | --<<<--3 | | | | SEL1 | -->>>--7 | | | | SEL2 | -->>>--8 | | | | BSY | -->>>--28 |____________|

Komennot

Komentokoodi ilmaistaan ​​oktaaliluvulla. Tämä näkymä on kätevä tämän prosessorin komentojen visuaaliseen havaitsemiseen.

Joukkueen nimitys Komentokoodi Tiimi
PYSÄYTTÄÄ 000000 Lopettaa
ODOTA 000001 Odotus
RTI 000002 Paluu keskeytyksestä
BPT 000003 Komentokeskeytys virheenkorjausta varten
IOT 000004 Komentokeskeytys I/O:lle
RESET 000005 Palauta ulkoiset laitteet
RTT 000006 Paluu keskeytyksestä
JMP 0001DD Ehdoton hyppy absoluuttiseen osoitteeseen, joka on koodattu DD:ssä. Esimerkiksi sekvenssi 000137 JMP@#7000 007000

käskee prosessoria ottamaan osoitteen paikasta hyppykäskyn jälkeen ja siirtymään määritettyyn osoitteeseen (tässä tapauksessa oktaaliosoite 7000).

RTS 00020R Paluu aliohjelmasta
JSR 004RDD Aliohjelman kutsu
EMT 104000-104377 Komentokeskeytys järjestelmäohjelmille. Esimerkiksi EMT 16:n koodi on 104016. Kaikille EMT-komennoille keskeytyksellä on sama vektori, jonka osoitteessa pitäisi olla aliohjelma, joka varaa komennosta numeron (esimerkissämme se on 16) ja löytää aliohjelman palvelukohtaisen EMT-komennon osoite.
ANSA 104400-104777 komennon keskeytys. Esimerkiksi TRAP 4:n koodi on 104404. Kaikille TRAP-komennoille keskeytyksellä on sama vektori, jonka osoitteessa pitäisi olla aliohjelma, joka poimii komennosta luvun (esimerkissämme se on 4) ja etsii TRAP-komentoa palvelevan aliohjelman osoite.

EMT:n ja TRAP:n välillä ei ole perustavanlaatuista eroa. Järjestelmäohjelmissa on tapana käyttää EMT-komentoa (tietokoneelle BC on monitori ja diagnostiikkajärjestelmä) ja TRAP-komentoa käyttäjäohjelmissa.

NOP 000240 (10100000) Ei toimintaa
CLC 000241 (10100001) Tyhjennä lippu C (carry = carry)
CLV 000242 (10100010) Tyhjennä V-lippu (oVerflow = ylivuoto)
CLZ 000244 (10100100) Tyhjennä Z-lippu (nolla = nolla)
CLN 000250 (10101000) Tyhjennä lippu N (negatiivinen = negatiivinen arvo)
CCC 000257 (10101111) Tyhjennä kaikki numerot
SEC 000261 (10110001) Aseta lippu C (carry = carry)
SEV 000262 (10110010) Aseta V-lippu (oVerflow = ylivuoto)
SEZ 000264 (10110100) Aseta Z-lippu (nolla = nolla)
SEN 000270 (10111000) Aseta lippu N (negatiivinen = negatiivinen arvo)
SCC 000277 (10111111) Aseta kaikki numerot
101PNZVCItse asiassa yllä olevat komennot , joiden 101xxxxx koodit ovat 240-277, ovat ainoa komento, joka muuttaa prosessorin tilasanan P lippuja . Se on kirjoitettu binäärimuodossa N,Z,V,C osoittamaan, mihin lippuihin toiminnon tulisi vaikuttaa (1) tai mihin lipuihin toiminto tulee jättää huomiotta (0). . Koodin sisältävä komento 263 (10110011)asettaa siis liput C ja V samaan aikaan arvoon 1. Siten komento muistomerkillä NOPja koodilla 240on tämän komennon erikoistapaus ja sisältää lippujen maskin, jonka mukaan mikään niiden pitäisi muuttua. Vastaavasti komento koodilla260 (10110000)
MOPPI 0003DD Korkeiden ja alhaisten tavujen vaihtaminen DD:n osoittamassa 16-bittisessä sanassa.
BR 000400 Ehdoton hyppy siirtymäkohtaisesti komentoa seuraavan solun suhteen. Esimerkiksi koodi 000400 tarkoittaa siirtymistä soluun BR-komennon jälkeen, koodi 000401 tarkoittaa hyppäämistä yhden 16-bittisen solun yli, 000402 tarkoittaa kahta jne. Tarkkaan ottaen tämä komento ja kaikki siirtymäkäskyt huomioidaan parhaiten binääri tai heksadesimaali. Silloin se näyttää 1NNNNNNNN(bin) tai 1NN(hex), jossa N on offset-arvo. Toisin sanoen komento kirjoitetaan sanan korkeaan tavuun ja offset on matalaan tavuun. Negatiiviset offset-arvot kirjoitetaan kahden komplementin kanssa . Tämä tarkoittaa, että offset -1 koodataan muodossa FF (hex) ja käsky on 1FF (hex) tai vastaavasti 777 (okt). Koodilla 777 siirrytään yhteen 16-bittiseen soluun takaisin, eli itse BR-käskyyn, ja silmukka tapahtuu. Koodilla 776 - 2 solua taaksepäin, 775 - kolme. jne.
BNE 001000 Hyppää offsetilla, jos se ei ole yhtä suuri. Komentokoodi on 2NN (hex) - katso BR-komennon kuvaus. Siirtymä käynnistyy, jos prosessorin Z-lippu on 0. Osoite Komento Ohjelman teksti assemblerissä 1000: 020104 CMP R1,R4 1002:001001 BNE MET 1004: 010102 MOV R1,R2 1006: 010103 MET: MOV R1,R3

Tässä CMP-vertailukäsky vertaa yleisrekisterien R1 ja R4 sisältöä ja asettaa suorittimen liput C, V, Z, N vertailun tulosten mukaan ja BNE-käsky hyppää +1 kuusitoista bitin sanaa eteenpäin, jos Z-lippu on 0.

CLR(B) *050DD Poista DD:n osoittaman sanan bitit. Komennolla 0050DD on muistomerkki CLR ja 1050DD:ssä muistomerkki CLRB.
KAMPA) *051DD Käännä DD:n osoittaman sanan bitit käänteisiksi.
INC(B) *052DD Lisätään 1 sanaan, johon DD viittaa.
DEC(B) *053DD Vähennä 1 sanasta, johon DD viittaa.
NEG(B) *054DD Allekirjoituksen muutos
ADC(B) *055DD Kuljeta lisäys
SBC(B) *056DD Suorita vähennys
TST(B) *057DD Tarkistetaan sana ja asetetaan suorittimen liput C, V, Z, N tällaisen tarkistuksen tulosten perusteella.
ROR(B) *060DD Kierrä oikealle
ROL(B) *061DD Käänny vasemmalle
ASR(B) *062DD Aritmeettinen siirto oikealle
ASL(B) *063DD Aritmeettinen siirto vasemmalle
MARK 0064NN Pinoosoittimen palautus (CS)
SXT 0067DD Kyltin laajennus
MTPS 1064DD Prosessorin tilasana (SPW) kirjoitus
MFPS 1067DD SSP:n lukeminen
MOV(B) *1SSDD Edelleenlähetys
CMP(B) *2SSDD Vertailu
BIT(B) *3SSDD Päästöjen tarkistaminen
BIC(B) *4SSDD Päästöjen poistaminen
BIS *5SSDD Boolen lisäys
XOR 074RDD XOR
LISÄTÄ 06SSDD Lisäys
SUB 16SSDD Vähennyslasku
BR 0004XXX Haaroittuminen ehdoton
BNE 0010XXX Haara, jos se ei ole 0
BEQ 0014XXX Haara, jos se on 0
  •  - Näiden komentojen koodin merkittävin bitti on merkki tavukomennosta. Jos se on yhtä suuri kuin 0, komento suorittaa operaatioita 16-bittisillä sanoilla, jotka sijaitsevat parillisissa osoitteissa. Jos tämä bitti on asetettu arvoon 1, komento toimii mielivaltaisessa osoitteessa sijaitsevilla tavuilla, kun taas 16-bittisen sanan alemmalla tavulla on parillinen osoite ja korkealla tavulla pariton osoite.

Osoitusmenetelmät

Operandi määritetään arvoilla SS (lähde - lähde) ja DD (kohde - vastaanotin), kun taas ensimmäinen numero määrittää osoitustilan ja toinen - prosessorin yleisrekisterin numero. Jos esimerkiksi SS = 27, niin 2 on osoitusmenetelmä ja 7 on rekisterinumero.

Prosessorissa on 8 16-bittistä rekisteriä: R0, R1, R2…R7. Tässä tapauksessa R0-R5:tä käytetään käskyoperandien tallentamiseen. Rekistereillä R6 ja R7 on lisäksi erityinen tarkoitus, mutta kaikki toiminnot niillä tapahtuvat samalla tavalla kuin muillakin rekistereillä.

Rekisteri R6 toimii pinoosoittimena (SP, Stack Pointer) ja sisältää pinon yläosan osoitteen. Pinoon kirjoittaminen tapahtuu yleensä automaattisen pienentämisen osoitusmenetelmällä ja lukeminen automaattisen lisäyksen menetelmällä. Suorittaessaan useita operaatioita (käsittelee laitteisto- ja ohjelmistokeskeytyksiä sekä soittaa ja palata aliohjelmista) prosessori muuttaa tämän rekisterin arvoa tietyllä tavalla.

Rekisteri R7 on ohjelmalaskuri (PC, Program Counter) ja sisältää seuraavan prosessorin suorittaman käskyn osoitteen. Numeron kirjoittaminen R7:ään vastaa hyppäämistä määritettyyn osoitteeseen.

Osoitusmenetelmät:

Määrä Menetelmä Selitys Esimerkkejä
0 Rekisteröidy Operandi on rekisterin sisältö. Esimerkiksi käsky 10304 (1SSDD) kopioi rekisterin R3 sisällön rekisteriin R4 ja kirjoitetaan muodossa MOV R3, R4. 10102 MOV R1, R2
yksi Epäsuora rekisteri Rekisteri sisältää operandin osoitteen 005011 CLR (R1)

005011 CLR@R1

2 automaattinen lisäys rekisteri sisältää operandin osoitteen. Rekisterin sisältö sen jälkeen, kun sitä on käytetty osoitteena, kasvaa 2:lla (sanakomennot) tai 1:llä (tavukomennot) 005022 CLR (R2)+
3 Epäsuora automaattinen lisäys rekisteri sisältää operandin osoitteen osoitteen. Rekisterin sisältö sen jälkeen, kun sitä on käytetty osoitteena, kasvaa 2:lla 005032 CLR @(R2)+
neljä Automaattinen vähennys rekisterin sisältöä vähennetään 2:lla (sanakomennot) tai 1:llä (tavukomennot) ja sitä käytetään operandin osoitteena 005042 CLR-(R2)
5 Epäsuora automaattinen vähennys Rekisterin sisältöä pienennetään kahdella ja sitä käytetään operandin osoitteen osoitteena. 005052 CLR@-(R2)
6 indeksi komennon jälkeen kirjoitettuun numeroon lisätään rekisterin sisältö ja saatua summaa käytetään operandin osoitteena 005062 CLR 2(R2)
000002
7 epäsuora indeksi komennon jälkeen kirjoitettuun numeroon lisätään rekisterin sisältö ja saatua summaa käytetään operandin osoitteen osoitteena 005072 CLR @22(R2)
000022

Kun osoitetaan RS-rekisterin kautta, näitä osoitusmenetelmiä kutsutaan erityisellä tavalla:

Osoitusmenetelmä Koodi Selitys Esimerkkejä
suoraan 27 Operandi tallennetaan käskyä seuraavaan sanaan. Itse asiassa tämä on automaattinen inkrementaalinen osoitusmenetelmä, joka käyttää PC-rekisteriä, eli PC sisältää operandin osoitteen, ja tämä on aina käskyä seuraavan solun osoite. Tämän jälkeen rekisteriä kasvatetaan 2:lla, mikä PC:tä käytettäessä vastaa "hyppäämistä" seuraavaan osoitteeseen tietosolun läpi, eikä siihen tallennettua numeroa suoriteta komentona. 012703 MOV #21, R3
000021
012700 MOV #IN,R0
xxxxxx IN:
ehdoton 37 operaandin osoite tallennetaan käskyä seuraavaan sanaan CLR @#7000
JMP @#BEN
suhteellinen 67 PC:n sisältö lisätään käskyn taakse muistiin tallennettuun sanaan ja saatua summaa käytetään operandin osoitteena. JMP TV
CLR 5554
epäsuora-suhteellinen 77 PC:n sisältö lisätään komentoa seuraavaan sanaan, saatua summaa käytetään operandin osoitteen osoitteena. CLR @MET
INC @15342

Katso myös

Muistiinpanot

  1. Dshkhunyan V.L., Borshchenko Yu.I., Naumenko V.R., Ryzhov A.A., Romanets V.Yu., Burmistrov I.A., Solovjov K.M. K1801-sarjan LSI-sarjojen yksisiruiset mikroprosessorit // "Mikroprosessoritilat ja -järjestelmät" : päiväkirja. - 1984. - Nro 4 . - S. 12 .
  2. [https://web.archive.org/web/20140416182158/http://vak.ru/doku.php/proj/bk/1801vm-series Arkistoitu 16. huhtikuuta 2014 Wayback Machine -projektissa: bk:1801vm- sarja [vak.ru]]
  3. Speccy on valintamme! - Näytä viesti erikseen - Digitaalinen arkeologia: 1801 ja all-all-all . Haettu 22. elokuuta 2015. Arkistoitu alkuperäisestä 4. lokakuuta 2015.

Linkit