179288. lajstromszámú szabadalom • Nagyssebességű mikroprogramozott processzor elrendezés
9 179288 10 PLR pipeline regiszternek az MS microprogram tároló bemenetére visszavezetett bitjei a következő mikrociklushoz tartozó mikroprogram tároló címet állítják elő. Ez a szekvencia az utasításhoz tartozó összes mikrociklus lezajlásáig ismétlődik, tehát addig amíg az MV mikroprogramozott vezérlő egység egy új utaíátásbevételezési jelet nem ad. Mikrociklusok: 1. A MUX 1 és MUX multiplexereken keresztül a Pr 2 regiszter tartalma rákerül a RAM ADDR címregiszter bemenetére és a mikrociklus végén abba betöltődik. 2. A RAM memória olvasás engedélyező jelet kap az MV mikroprogramozott vezérlő egységtől, és a kimenetén megjelenő (az előbbi ciklusban a RAM ADDR címregiszterbe töltött címen levő címadat) a MUX 1 és MUX 2 multiplexereken keresztül ismét a RAM ADDR címregiszter bemenetére kerül, ahová a mikrociklus végén ismét beíródik. 3. A RAM memória ismét olvasásengedélyező jelet kap, amelynek hatására a kimenetén megjelenő adat a MUX 1 és MUX 2 multiplexereken és a BUS Dr buszmeghajtó egységen keresztül eljut az Out Rx külső (periféria) regiszter bemenetére. Az utasításnak a Pr 1 regiszterben tárolt része a DEMUX 1 demultiplexer szelektáló bemenetén kijelölte a kívánt periféria regiszterhez tartozó kimenetet, és a mikroprocesszornak a DEMUX 1 demultiplexerre adott engedélyező jele hatására a mikrociklus végén az így kiválasztott Out Rx külső regiszterbe a kívánt adat beíródik. A mikroprocesszor — mivel az utasítás végrehajtása megtörtént — ebben a mikrociklusban kiad egy új utasításbevételezési jelet, amely a mikrociklus végén az új utasítást bevételezi és a PC programcím számlálót a következő címre lépteti. 4. Vezérlés nincs. Az újonnan bevételezett utasítás dekódolása történik a mikroprocesszorban. 5. A soron következő utasítás első mikrociklusa. Látható, hogy minden mikrociklusban a PLR pipeline regiszter visszacsatolt bitjei meghatározzák az MS mikroprogram tároló következő mikroutasítását. Ebben az utasításkategóriában tekintsünk még át egy relatív indirekt címzésű adatmozgató utasítást, amelynek célja egy In Rx külső regiszterből a RAM memória relatív indirekt címére történő adatbevitel. A címzés relatívságát, azaz a címeltolódás mértékét az erre a célra kijelölt BR 2 regiszterben korábban eltárolt adat határozza meg. Az utasítás formátuma: Op. kód IN Rx INDIR. CÍM Mikrociklusok: 0. Az utasítás bevételezése a Pr 1 és Pr 2 regiszterekbe és dekódolása már az előző utasítás végén megtörtént (lásd az előző utasítás végrehajtási ciklust). 1. A Pr 2 regiszter tartalma a MUX 1 multiplexeren keresztül az ALU aritmetikai és logikai egység B bemenetére kerül. A BR 2 regiszter kimenete engedélyeződik, és tartalma az ALU aritmetikai és logikai egység A bemenetére kerül. Az ALU aritmetikai és logikai egység szelektáló bemenetéin az MV mikroprogramozott vezérlő egység összegzési üzemmódot jelöl ki, a kimeneten tehát az A és B bemenetek összege jelenik meg, amely a mikrociklus végén az AKKU R akkumulátor regiszterbe töltődik. 2. Az AKKU R akkumulátor regiszter kimenete engedélyeződik és a mikrociklus végén tartalma a RAM ADDR címregiszterbe került (relatív indirekt dm), 3. A RAM memória olvasásengedélyező jelet kap, és a kimenetén megjelenő címadat a MUX 1 és MUX 2 multiplexereken keresztül a RAM ADDR címregiszterbe töltődik (a mikrociklus végén). 4. Az utasításnak a Pr 1 regiszterben tárolt része a DEMUX 2 demultiplexer szelektáló bemenetéin már az előzőekben kijelölte a kívánt In Rx külső regiszterhez tartozó vezérlőkimenetet. A vezérlőegységnek a DEMUX 2 demultiplexerre adott engedélyező jele hatására ez a kimenet aktivizálódik, és az In Rx külső regiszter tartalmát az adatbuszra kapuzza, és a BUS Dr buszmeghajtón keresztül a RAM memória adatbemenetére kerül. A RAM memória beíró jelet kap az MV mikroprogramozott vezérlőegységtől, és a RAM ADDR címregiszterben tárolt címre a kívánt adat beíródik. A ciklus végén az új utasítás a Pr 1 és Pr 2 regiszterekbe töltődik, és a PC programcím számláló értéke megnövekszik. 5. Vezérlés nincs, az új utasítás dekódolása folyik. Tekintsünk át egy kiragadott példát az aritmetikai logikai utasításcsoportból. Az utasítás formátuma: Op. kód IN Rx ARM DIR. CÍM Az utasítás feladata egy input típusú regiszter, például az IN RX külső regiszter tartalma és a direkt cím által kijelölt memóriarekesz tartalma között az utasítás ARM mezejében definiált aritmetikai művelet elvégzése és a végeredmény eljuttatása a RAM memóriába, az utasításban meghatározott DIR CIM-re. Mikrociklusok: 0. Megegyezik az előző utasítás nulladik mikrodklusával. 1. A Pr 2 regiszter tartalma a MUX 1 és MUX 2 multiplexereken keresztül a RAM ADDR címregiszterbe töltődik. 2. Az utasításnak a Pr 1 regiszterben tárolt része a DEMUX 2 demultiplexer szelektáló bemenetén kijelölte a kívánt In Rx külső regiszterhez tartozó kimenetet, és a vezérlőegységnek a DEMUX 2 demultiplexerre adott engedélyező jele hatására ez a kimenet aktivizálódik, és az In Rx külső regiszter tartalmát az adatbuszra, és ezen keresztül az ALU aritmetikai és logikai egység A bemenetére kapuzza. A RAM memória olvasás engedélyező jelet kap, és a kimenetén megjelenő adat a MUX 1 multiplexeren keresztül az ALU aritmetikai és logikai egység B bemenetére kerül. Az utasítás Pr 1 regiszterben tárolt APAI része az ALU aritmetikai és logikai egy5 10 15 20 25 30 35 40 45 50 55 60 65 5