1
Az integrált áramkörök kimenetének kialakítása • • •
totem-pole three-state open-kollektor
Az áramkörök általános leegyszerűsített kimeneti fokozata: + tápfeszültség R1 V1
K1
k im en et U ki, I ki
V2
K2 R2
ahol R1>>R2, és K1, K2 félvezető eszközökkel megvalósított kapcsoló (kapcsolóüzemű tranzisztorok), amelyeket belső V1 és V2 vezérlőjelek vezérelnek (nyit-zár)
Totem pole kimenet: K1,K2 ellenütemben vezérelve K1 nyit zár
K2 zár nyit
Kimenet Logikai '0' Logikai '1'
A totem-pole kimenet "ellenállásai" olyanok, hogy a kimenetek közvetlen összekötését nem viselik el. Két, ellenkező értékre vezérelt kimenet összekötése esetén Imin áram folyik, amelyből Imin2*R1 és Imin2*R1 teljesítményt el kell disszipálni. Ezt az áramkörök nem viselik el.
2
Three-state kimenet: K1 és K2 külön vezérelhetők. K1 nyit zár nyit
K2 zár nyit nyit
Kimenet Logikai '0' Logikai '1' Nagyimpedanciás állapot
Nyitott kollektoros kimenet: Felépítésében a totem pole kimenettől annyiban tér el, hogy a K1 és R1 elemek elmaradnak A V vezérlőjel aktív állapota a kimenet '0' szintjét biztosítja, a logikai '1' szint külső un. felhúzó ellenállással (Rc) biztosítható. Az Rc külső csatlakoztatása lehetővé teszi az ellenállás egyedi méretezését. Így több open kollektoros kimenet közvetlen összekötésével huzalozott NOR kapcsolás hozható létre: U A B C X X = A ⋅ B⋅C = A + B+ C A R 1 0 B X 1 0 1 0 C 0 0 0 1 tá p
c
Flip-flopok alkalmazása Pergésmentesítés - aszinkron S-R flip-flop (A kapcsoló pergése esetén a kimenet csak egyszer vált)
S
K
k1
Q
k1 k2 S
k2 R
R Q
3
Szinkron flip-flopok Alaphelyzetbe állító jelek: • aszinkron működés • negált logikájú jelek Preset: D=1 Clear: D=0
Pr
Q
Cp Cl
Q
D
Működési módok: • Élvezérelt • Master-slave • Data-lock-out
Élvezérelt
Master-slave
Data-lock-out Bemenet mintavételezése
Kimenet beállítása
Időzítések: Propagation Delay (késleltetési idő): Az órajel éléhez képest a kimenet előállása Setup time: Az az idő, amennyivel az órajel éle előtt a bemenetnek stabilnak kell lennie Hold time: Az az idő, amennyivel az órajel éle után a bemenetnek stabilnak kell lennie (Funkcionális hazárd!) Kettes osztó kialakítása JK flip-flop-ból: U X
X
J Q Cp 76 Q K
Y X
Y
J Q Cp 76 Q K
Y
t
2.4. ábra Kettes osztó kialakítása D flip-flop-ból: U D 74 X
Cp
Q Q
Y
X
Y
t
4 Kétfázisú órajel előállítása Hazárd léphet fel. U Clk
F1 D 74
Clk
Cp
Q
Q
F1
F2
Q
F2
t
Helyes megoldás.
Clk
D
Q1
D
Q2
Cp
Q
Cp
Q
C1 Clk Q1 Q2 C2 C1 C2
Funkcionális elemek - kombinációs hálózatok
Multiplexer
Y=A·v+B·v A B
v
Y
N-ből 1 dekóder (demultiplexer)
A B
Y0 Y1 Y2 E Y3
E 1 1 1 1 0
A 0 0 1 1 -
B 0 1 0 1 -
Y0 0 1 1 1 1
Y1 1 0 1 1 1
Y2 1 1 0 1 1
Y3 1 1 1 0 1
5
Komparátorok (bináris értékek összehasonlítása) A3 A2 A1 A0
A7 : : A0 A>B A=B A
A>B A=B A
A>B A=B
B3 B2 B1 B0
B7 : : B0
Bitszélesség növelése • Kaszkád bemenetek felhasználásával A3 A2 A1 A0 A
B B3 B2 B1 B0
•
7485
AB
A3 A2 A1 A0 AB B3 B2 B1 B0
7485
A3 A2 A1 A0 AB B3 B2 B1 B0
AB
7485
AB
A3 A2 A1 A0 AB B3 B2 B1 B0
7485
AB
Kiegészítő kombinációs hálózattal
Szinkron hálózatok Számlálók Működés módja szerint: • aszinkron • szinkron. Számlálás iránya szerint: • egyirányú, • kétirányú (reverzibilis). Kezdeti érték beállítása szerint: • nullázás (törlés/clear) Szinkron/aszinkron • induló érték megadása (töltés/load) Szinkron/aszinkron
Aszinkron számlálók
Clk
D
Q1
D
Q2
D
Q3
Cp
Q
Cp
Q
Cp
Q
Clk Q1 Q2 Q3
n. kimenet (n*∆tff) idő múlva érvényes Frekvenciaosztásra használjuk, aszinkron törlésnél a hazárdra ügyelni kell
6
Szinkron számlálók
Clk
T
Q1
T
Q2
T
Q3
Cp
Q
Cp
Q
Cp
Q
Clk Q1 Q2 Q3
párhuzamos kaszkádosítás: n. ff bemenetén n-1 bemenetű ÉS kapu késleltetés: ∆tff + ∆tkapu soros kaszkádosítás: n. ff bemenetén is csak 2 bemenetű ÉS kapu késleltetés: ∆tff + (n-2)*∆tkapu RCO (Ripple Carry Output) a számláló a következő órajelre átfordul n bites bináris számláló: 2n-1 BCD számláló: 9 ENP: Számlálás engedélyezése ENT: Számlálás és RCO engedélyezése LOAD: A számláló kimenetei a következő órajelre az (A..D) bemenetein található értéket veszik fel CLEAR: A számláló kimenetei a következő órajelre 0 értéket vesznek fel
LOAD
CLR
QA Q
B
Q
C
74160-163
CLK ENP
ENT
ENP
A
B
Q
D
RCO C
D
Számlálás engedélyezés
ENT RCO engedélyezés
QD QC QB QA
RCO
7 Soros/párhuzamos kaszkádosítás LOAD
74160-163
CLK ENP
Q Q Q Q A B C D
CLR
ENT
A
B
LOAD
RCO C
CLR
Q
A
B
Q
Q
C
74160-163
CLK ENP
D
Q
ENT
CLK
A
B
LOAD
D
RCO C
74160-163
CLK
D
Q Q Q Q A B C D
CLR
ENP
ENT
A
LOAD
RCO
B
C
74160-163
ENP
D
Q Q Q Q A B C D
CLR
CLK
ENT
A
RCO
B
C
D
"H"
"H"
0...N
0...N (Aszinkron törlés)
N
A Komp.
N
A Komp.
=
=
B
B Számláló
Számláló
0 Aszinkron reset 0...N,M...K (Aszinkron törlés)
0...N,M...K (N<M
K
N
Komp. A
A Komp.
K
N
Komp. A
A Komp.
=
=
=
= B
B
B
B
Ld
Cl
Cl
Számláló
Számláló
Ld
Ld
Cl
Cl Aszinkron RESET
v MPX A B M 0
M
Számlálási ciklus rövidítése szinkron törléssel (0-12-ig számláló): Szinkron törlés ABCD LOAD
CLR
QA Q
B
Q
C
ENP
ENT
A
D
RCO
74163
CLK
Q
B
C
Count
D
0000 1000 0100 1100 0010 :
Clear
0011
Számlálási ciklus rövidítése aszinkron törléssel(0-12-ig számláló): Hazárdmentes megoldás !
Hazárd kialakulása lehetséges !
Szinkron beírás ABCD
Aszinkron törlés ABCD LOAD
CLR
"H"
A
Q
B
Q
C
74161
CLK ENP
Q
ENT
A
Q
D
RCO B
C
D
Count
0000 1000 0100 1100 0010 : 1011
Clear
LOAD
CLR
"H"
B
Q
C
74161
CLK ENP
QA Q
ENT
A
Q
D
RCO B
C
D "L"
Count
0000 1000 0100 1100 0010 : 0011
Load
8 Regiszterek Közös órajellel vezérelt D flip-flop csoport (Ha D-G flip-flop: LATCH) X1
D 74
Q
Cp X2
D 74 D 74
X3b
Q Q
Cp Xn
X2b
Q Q
Cp X3
X1b
Q
D 74 Cp
Xnb
Q Q
Cp
Léptető regiszter
SI Clk
D
Q1
D
Q2
D
Q3
Cp
Q
Cp
Q
Cp
Q
Clk SI Q1 Q2 Q3
Általános regiszter V0 0 0 1 1
V1 0 1 0 1
Funkció Tölt Balra léptet Jobbra léptet Töröl
Egy cella Xi Qi-1 Qi+1 0
A MPX B Y C D V1 V0
D
Qi
Cp Cl Clk Aszinkron törlés
9
Memóriák ROM (Read Only Memory): Csak olvasható memória A kezdeti tartalom belekerülhet gyártáskor: maszk programozott ROM A felhasználó által egyszer írható: PROM (Programable .....) UV fénnyel a teljes tartalom törölhető majd újraírható: EPROM (Erasable ....) Elektronikusan törölhető és újraírható: EEPROM, E2PROM (Electrically ....) RAM (Random Access Memory): Írható - olvasható memória Induláskor a tartalom véletlenszerű statikus: Tárolás flip-flopban dinamikus: tárolás kondenzátorban - a tartalmat periodikusan újra kell írni - frissítés An-1 ... A0: n db címvezeték Dm-1 ... D0: m db adatvezeték
Memória An-1... A0
OE
OE: kimenet engedélyezés CE: Chip engedélyezés
CE Dm-1... D0
R/W: művelet kijelölés 1: olvas / 0: ír
R/W
Kapacitás: kbit (1024 bit), Mbit (1024x1024 bit), kbyte (1024 x 8 bit) Szervezés
Kapacitás
1k x 1 bit 2k x 8 bit 4k x 8 bit 1M x 1 bit 16k x 4 bit
1 kbit (210) 16 kbit (214) 32 kbit (215) 1 Mbit (220) 64 kbit (216)
adatvezetékek száma 1 (20) 8 (23) 8 (23) 1 (20) 4 (22)
Belső felépítés : mátrix szervezés
Cím
S O R D E K
CE OE
. . . .
. . . .
. . . .
. . . .
Oszlop MPX Adat
. . . .
címvezetékek száma 10 11 12 20 14
10
Kapacitás növelése Bitszélesség 2n-1 x k → 2n-1 x m*k (pl: 2k x 2 bit → 2k x 8 bit : n=11, k=2, m=8)
n
n
cím
cím
CE
E n
cím CE
n
adat
cím . . . .
n
adat
CE
cím CE
adat
adat
k
k
k
k
m*k
11 Címtartomány 2n-1 x k → 2m* 2n-1 x k (pl: 2k x 8 bit → 8k x 8 bit : n=11, k=8, m=4)
n
m+n
n
cím
cím
CE n m
E
D E K Ó D E R
cím CE
. .
2m . .
n . . . . n
adat
adat
cím CE
cím CE
adat
adat
k
k
k
k
k
12 Számítógépek felépítése
Neumann modell
Operatív tár
BE
ALU
KI
Vezérlő egység
Alapelvek • belső programtárolás illetve programvezérlés • utasítás és adat azonos közegben és formában tárolva • az utasításszámláló dönti el, hogy egy adott rekesz program vagy adat (vagyis értelmezésük az algoritmusban van kódolva) • utasítások programmal módosíthatók • az adattípusok műveletekhez rendeltek • szekvenciális utasítás végrehajtás • egydimenziós, lineáris címzésű memória • bináris ábrázolás Fejlődés • • • •
ALU + vezérlő egység ⇒ Processzor Külső kapcsolatok, perifériák leválása (KI - BE összevonása) tárcentrikus felépítés I/O csatornák, SÍN kialakítása
13
Sínek egyszintű sín
Processzor
Memória
Periféria
Sín (busz) : jelek összessége Adat busz Cím busz Vezérlő jelek Időosztásos sínhasználat egyszerű, olcsó megvalósítás szűk keresztmetszet MASTER az az eszköz, amely az adatátvitelt vezényli SLAVE az adatátvitelben résztvevő eszköz (adat forrás, cél) A MASTER nem feltétlenül forrása vagy célja az adatátvitelnek Arbitráció Több MASTER esetén dönteni kell, hogy ki jogosult a busz használatára A kommunikáció módszere szerint: Aszinkron busz az adó és a vevő nem jár szinkronban, a kapcsolatfelvétel és a vétel visszaigazolása szükséges (handshake jelek) Szinkron busz az adatátvitel adott sebességen történik, meghatározott vezérlőjelek időzítésével. Az adó nem vár választ, a rendszer minden elemének bírnia kell a diktált sebességet
14
2. CPU funkcionális felépítése cím ALU
Busz interfész
adat vezérlő jelek
Belső busz Vezérlő és Regiszterek
utasítás dekódoló
Busz interfész Kapcsolattartás a külvilággal Cím sín: a műveletben résztvevő külső eszköz azonosítása Adat sín: A művelet adata Vezérlő jelek: A művelet végrehajtásának ütemezése
ALU: Aritmetikai logikai egység • Aritmetikai műveletek megvalósítása Összeadás/kivonás (kettes komplemens) cél: minél gyorsabb legyen (kombinációs hálózat) gond: átvitelképzés carry look ahead Fixpontos szorzás/osztás Összeadásra és léptetésre vezethető vissza Sorrendi hálózatot igényel Lebegőpontos műveletek Általában csak aritmetikai társprocesszorokban valósítják meg • Léptetések Probléma: n bit léptetése egy ütemben Speciális shift regiszterek alkalmazása • Logika műveletek megvalósítása Általában AND, OR, XOR, NOT
15
Regiszterek Belső tároló elemek, tartalmuk a külső memóriánál sokkal gyorsabban hozzáférhető a műveletek számára Általános célú regiszterek: felhasználásuk módja nem kötött Speciális célú regiszterek: Felhasználásuk korlátozott Címregiszterek: Általános célú címregiszter : Operandusok címét tárolják Program számláló (PC - program counter, IP - instruction pointer) A következő utasítás címét tartalmazza. Saját inkrementáló egységgel rendelkezik Verem mutató (SP - stack pointer) A verem legfelső elemének címét tárolja. A veremkezelő műveletek automatikusan hivatkoznak rá. Adatregiszterek: Műveletek operandusait tárolják Akkumulátor: egycímű gépeknél a műveletek egyik operandusa Speciális regiszterek: Állapot regiszter (flagek) A processzor aktuális állapotát, az utolsó műveletvégzés eredményének jellemzőit tárolja CY – átvitel, Z – Zero, S – előjel, P – paritás, AC - segédátvitel Vezérlő egység Feladata: Az utasítás-végrehajtás folyamatának levezénylése, a belső funkcionális elemek működésének összehangolása. Bemenet: Utasítás kód, állapotjelek Kimenet: belső/külső vezérlőjelek szekvenciái Megvalósítás: Huzalozott logika Gyors Bonyolult utasításkészlet esetén technológiai problémák lépnek fel Sorrendi hálózat Fázisregiszter Mikroprogramozott vezérlőegység Rögzített struktúra 1 gépi utasítás = mikroprogram szubrutin (a processzor mikroprogram szinten interpretálja az utasítást)
16
Gépi utasítás általános felépítése Műveleti kód
operandusok
Egycímű gép: Kétcímű gép:
Az egyik operandus kötelezően az akkumulátor Az egyik operandus a művelet forrás operandusa, a másik forrás és cél operandus is egyben Háromcímű gép: 2 forrás és egy cél operandus Négycímű gép: Az utasítás tartalmaz 2 forrás, 1 cél operandust és a következő utasítás címét is Adattípusok Egyszerű Bit Byte (8 bit) Szó (word - 16 bit) Hosszú szó (long word, dword - 32 bit) Összetett Karakterlánc Bit string Lebegőpontos számok
17
Címzési módok Közvetlen címzés Az utasítás tartalmazza az operandust Direkt címzés Memória direkt címzés Az utasítás tartalmazza az operandus memóriacímét Regiszter direkt címzés Az operandus egy regiszter Indirekt címzés Memória indirekt címzés Az utasítás tartalmazza az operandus memóriacímét tartalmazó memóriarekesz címét Regiszter indirekt címzés Az operandus címét egy címregiszter tartalmazza Pre-dekremens címzés Egy regiszter tartalmazza az operandus címét. A művelet elvégzése előtt a címregiszter értéke az operandus méretével csökken. Tipikusan veremkezelésre használják. A verembe adatot elhelyező művelet címzési módja Post-inkremens címzés Egy regiszter tartalmazza az operandus címét. A művelet elvégzése után a címregiszter értéke az operandus méretével nő. Tipikusan veremkezelésre használják. A veremből adatot eltávolító művelet címzési módja Indexelt címzés Az operandus címe egy bázisregiszter és egy operandusmérettel megszorzott indexregiszter összegéből képződik. A támogatott operandusméretek: 1, 2, 4, 8 byte Indexelt címzés eltolással Az operandus címe egy bázisregiszter, egy operandusmérettel megszorzott indexregiszter és egy konstans eltolás összegéből képződik. Az eltolást közvetlen adatként az utasításkód tartalmazza.
18
8085 felépítése (HW modell)
Az utasítás-végrehajtás folyamata: fázis (1 órajelperiódus) – gépi ciklus (1 buszművelet) - utasítás
Utasítás felhozatal Belső munka ← értelmezés Paraméter felhozatal Belső munka ← művelet Eredmény tárolása
gépi ciklus (külső memória / IO hozzáférés) → olvasás → olvasás → írás
19
8085 felépítése (SW modell) Regiszterek: A – Akkumulátor ( 8 bit) B,C,D,E, H,L – általános regiszterek (8 bit) BC,DE,HL – regiszterpárok (16 bit) SP – Verem mutató (16 bit) PC – utasítás számláló (16 bit) PSW – Program állapot szó : Akkumulátor + flag-ek (16 bit) Flag-ek: Z,S,P,CY,AC Címzési módok: adat: közvetlen adat – az operandust az utasítás tartalmazza indirekt (közvetlen) adatcímzés – az utasítás tartalmazza az operandus címét regiszter címzés – az operandus egy regiszter indirekt regisztercímzés – az operandus címét egy regiszterpár tartalmazza cím: közvetlen utasításcímzés – a következő utasítás címét az utasítás tartalmazza regiszter indirekt utasításcímzés - a következő utasítás címét regiszterpár tartalmazza Utasítástípusok: Adatmozgató MOV r1,r2 MOV r,M MVI r,adat8 LXI rp,adat16 LDAX rp
MOV M,r MVI M,adat8 LDA cím16 STA cím16 STAX rp XCHG
Aritmetikai ADD r SUB r INR r INX rp
ADD M SUB M INR M DCX rp
Logikai ANA r ANA M ORA r ORA M XRA r XRA M CMP r CMP M RLC (A7 › CY) RAL (A7 › CY, CY › A0 ) CMA CMC
ADI adat8 SUI adat8 DCR r DAD rp
LHLD cím16 SHLD cím16
ADC r SBB r DCR M DAA
ANI adat8 ORI adat8 XRI adat8 CPI adat8 RRC (A0 › CY) RRC (A0 › CY, CY › A7 ) STC
ADC M SBB M
ACI adat8 SBI adat8
20 Vezérlés átadó JMP cím16 CALL cím16 RET RST n
Jcc cím16 Ccc cím16 Rcc PCHL
(NZ,Z,NC,C,PO,PE,P,M) (NZ,Z,NC,C,PO,PE,P,M) (NZ,Z,NC,C,PO,PE,P,M)
Stack PUSH PSW POP PSW
PUSH rp
POP rp
NOP EI
IN cím8 RIM
OUT cím8 SIM
Egyéb HLT DI
XTHL
SPHL