Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
12/25/12
1
BBM 231 – Yazmaçların Aktarımı Seviyesinde Tasarım!
Hacettepe Üniversitesi Bilgisayar Müh. Bölümü
Bu derste!• Büyük, karmaşık sayısal sistemlerin tasarımı ele
alınacaktır. ASM ve ASMD çizgeleri Tasarım Örnekleri Denetleme Mantığı * yazmaç ve kod çözücüler ile * her bir durum için bir iki durumlu ile Çoklayılar ile Tasarım
2
Büyük Sayısal Sistemler!• Büyük sayısal sistemleri, – Durum sayıları çok fazla olduğundan, durum tablosu ile ifade
edemeyiz.
• Modüler bir yaklaşım ile ele alınırlar. • Sistem her biri bir işlevi yerine getiren daha küçük sistemlere
bölünür. • Bu modüller, yazmaçlar, kodlayıcılar, aritmetik elemanlar,
kontrol mantığı gibi cihazlardan oluşur. • Modüller, veri yolları ve kontrol sinyalları ile birbirlerine
bağlanırlar.
3
Yazmaç Aktarımı Düzeyi!• Yazmaçlar, bir sayısal sistemin temel bileşenleri
arasında sayılırlar.
Yazmaç aktarım düzeyi sistemdeki yazmaçlar kümesi yazmaçlarda saklanılan veri üzerindeki işlemler sistemdeki işlemlerin sırasını denetleyen denetim birimi
4
Gösterimler !Bir sayısal sistemde en çok karşılaşılan işlemler:
1. Aktarım işlemleri
R2 ß R1 if(T3 == 1) then (R2 ß R1, R3ßR2) (T3: kontrol sinyali)
2. Aritmetik işlemler R1 ß R1 + R2
3. Mantıksal işlemler (e.g. OR) 4. Kaydırma işlemleri
R4 ß shr R4
5
ASM : Algoritmasal Durum Makinaları (Algorithmic State Machines) !
• Sayısal sistemlerde saklanan ikili veri – Veri – Denetim
Veri-işleme işlemleri : aritmetik işlemler, kaydırma, vb. Sayısal sistem tasarımı: 1. Veri işleme işlemlerini gerçekleştiren devrelerin tasarımı
(datapath unit) 2. Çeşitli olayların hangi sırada olduğunu belirleyen denetim
devrelerinin tasarımı (control unit)
6
12/25/12
2
7
Donanım Algoritması => bir sayısal sistemin denetim sırası ve datapath görevlerinin belirtilmesi.
Donanım algoritmasının tanımlanması için kullanılan akış çizgeleri ASM (algorithmic state machine)
ASM çizgesi !• 3 temel bileşen içerir:
1. Durum kutusu (State box) 2. Karar kutusu (Decision box) 3. Koşullu kutu (Conditional Box)
8
ASM Çizgesi Bileşenleri 1/2!
9
Decision Box:
State Box:
R 0 , S_pause durumundan bir sonraki duruma geçişte gerçekleşir!
Start_OP_A: Moore tipi sinyal
10
ASM Çizgesi Bileşenleri 2/2!
Hiçbir veri-‐işleme işlemi barındırmayan ASM çizgesi
ASM Bloğu!
11
Her bir blok, bir saat-vuruşu süresinde sistemin durumunu belirtir.
Genel olarak, Moore türü çıkışlar state box’lar ile, Mealy türü çıkışlar ise koşullu box’lad ile üretilirler.
Eşdeğer Durum Çizeneği!
12
12/25/12
3
ASM’de Zaman!
13
Bir sonraki saat vuruşunda : • A yazmacındaki değer arttırılır. • Eğer E = 1 ise R temizlenir. • Bir sonraki duruma geçilir.
ASMD Çizgesi (Algorithmic State Machine and Datapath) !
ASM çizgesinden farkı. 1) Yazmaç işlemleri ‘state box’ larda ifade edilmez. 2) Yazmaç işlemleri, çizgenin kenarlarında
gösterilir. 3) ‘conditional box’lar yazmaç işlemlerini
denetleyen sinyalleri belirtir.
14
Tasarım Örneği-1!– Veriyolu (datapath) birimi
• E ve F diye iki tane JK ikidurumlusundan • Bir tane 4-bit ikili sayaç : A[3:0] tan oluşur.
– A’daki ikidurumlular A3 A2 A1 Ao dır. – A3 en yüksek öncelikli bittir. – Start sinyali sistemi başlatır. A’nın içeriği ve F sıfırlanır. – Herbir saat vuruşunda sayaç 1 arttırılır. – A2 A3 bitleri işlemlerin sırasını belirler.
• A2=0 ise E 0’lanır ve sayma devam eder. • A2=1 ise E 1’lenir ve A3=0 ise sayma devam eder. • A2=1 ise E 1’lenir ve A3=1 ise F 1’lenir ve bir sonraki saat vuruşunda
sistem saymayı durdurur. - Start = 0 ise sistem ilk durumda kalır, 1 ise işlemler devam eder.
15
Tasarım Örneği-1: Blok diagram!
16
Status signals
ControllerStart
reset_bclock
set_Fclr_A_F
set_Eclr_E
incr_A
Datapath
A
E
F
A3
A2
(a)
E !" 0
F !" 1 F !" 1 F !" 1
A !" 0F !" 0
A !" A # 1
1
Start
1
A2
S_1
S_idle
A3
S_2
1
reset_b
E !" 1
Note: A3 denotes A[3],A2 denotes A[2],!" denotes nonblocking assignmentreset_b denotes active-low reset condition
(b)
1
A2
1
S_1incr_A
S_idle
A3
S_2set_F
1
clr_E
reset_b
clr_A_F
set_E
E !" 0
A !" A # 1
E !" 1
A !" 0F !" 0
(d)
1
Start
1
1
A2
reset_b
S_1
S_idle
E !" 0
A3
S_2
1
A !" 0F !" 0
A !" A # 1
E !" 1
(c)
Start
©2007 by Prentice Hall, Inc.A Pearson Company
Figure Number: 08 09 a-d Mano/CilettiDigital Design, 4e
AAHFZUT0
Tasarım Örneği-1: ASMD Çizgesi!Zamanuyumsuz reset için
17
Zamanuyumlu reset için
Tasarım Örneği-1 : Gelişmiş ASMD Çizgesi!
18
Zamanuyumsuz reset için
Eğer bir işlem koşulsuz ise Moore-türü sinyal
A’nın arttırılması (S_1) Koşullu ise Mealy-türü sinyal
E’nin 1lenmesi (S_1 ve A2=1)
12/25/12
4
Tasarım Örneği-1: İşlem Sırası!
19
Tasarım Örneği 1!
20
Tasarım Örneği-1: Durum Tablosu!
21 22
Tasarım Örneği-1!
Tasarım Örneği-2: İkili Çarpma!
4. Bölümde, toplayıcılar ve AND geçitleri ile gerçekleştirmiştik. • daha çok donanım ile fakat 1 saat vuruşunda gerçekleşir. Şimdi à 1 toplayıcı ve 1 kaydırma yazmacı ile gerçekleştireceğiz. • daha az donanım ile fakat birden çok saat vuruşunda gerçekleşir.
23
(register B) (register Q) • partial product formed in register A, • stored in registers A and Q • carry after addition in flip-flop C • number of bits in the multiplier initially in counter P
Tasarım Örneği-2: Genel Görünüm!
24
12/25/12
5
Tasarım Örneği-2 : Yazmaçlar!
25 26
Tasarım Örneği-2: ASMD Çizgesi!
Tasarım Örneği-2: Çalışması!
27
Tasarım Örneği-2: Durum Çizeneği!
28
S_idleStart ! 1
Start ! 0
S_add S_shift
Zero ! 0
Zero ! 1
(a)
State Transition Register Operations
From To
S_idle Initial state
S_idle S_add A "! 0, C "! 0, P "! dp_width
S_add S_shift P "= P # 1if (Q[0]) then (A "! A $ B, C "! Cout)
S_shift shift right {CAQ}, C <! 0
(b)
©2007 by Prentice Hall, Inc.A Pearson Company
Figure Number: 08 16 ab Mano/CilettiDigital Design, 4e
AAHFZVA0
Denetleme Mantığı (Control Logic) !• Denetleyici, bir dizisel devredir. – Bilinen dizisel devre tasarımı ile yapılabilir. • Durum ve girişlerin çok olduğu durumlarda ?
İki tasarım yöntemi:
Bir yazmaç ve kod çözücü ile (sequence register and decoder)
Her bir durum için bir ikidurumlu ile (one-hot design: one flip-flop per state)
29
Bir Yazmaç ve Kod Çözücü ile Tasarım!
30
12/25/12
6
31
Bir Yazmaç ve Kod Çözücü ile Tasarım (1)!
32
Bir Yazmaç ve Kod Çözücü ile Tasarım (2)!
C
D
C
D
Load_regs
Decr_P
Add_regs
Shift_regs
clock
Start
reset_b
Q[0]
Zero
Ready
Next State Logic
T3
(S_idle) T0
(S_shift) T2
(S_add) T1
0
1
Next State Logic
2 ! 4Decoder
2 ! 4 Decoder
C
D
C
D
G0
G1T3
(S_Idle) T0
(S_shift) T2
(S_add) T1
0
1
Load_regs
Ready
Decr_P
Add_regs
Shift_regs
clock
Start
reset_b
Q[0]
Zero
G0
G1
(a)
(b)
©2007 by Prentice Hall, Inc.A Pearson Company
Figure Number: 08 17 ab Mano/CilettiDigital Design, 4e
AAHFZVB0
DG1 = T1 DG0 = T0Start + T2Zero’
Her Bir Durum için İkidurumlu ile Tasarım!
• Maksimum sayıda ikidurumlu içerir. – Bir önceki yöntemde 2n durum için n ikidurumlu. – Bu yöntemde 2n durum için 2n ikidurumlu.
Avantajı basitliği durum ya da uyarma çizelgesine ihtiyaç yoktur. (D türü ikidurumlu için) ASMD ya da durum çizgesine bakarak tasarlanabilir.
33 34
Her Bir Durum için İkidurumlu ile Tasarım!
Çoklayıcılar ile Tasarım!• Bir yazmaç ve kod çözücü ile tasarım – İkidurumlular (durum değeri) – Kod çözücü: denetim çıkışlarını üretir. – Geçitler: bir sonraki durumu ve çıkış sinyallerini
belirler.
Geçitler yerine çoklayıcılar da kullanabiliriz.
35
Bir Örnek: Çoklayıcılar ile Tasarım!
36
00 durumunda w = 0 ise 00 durumuna w = 1 ise 01 durumuna
12/25/12
7
37
Bir Örnek: Çoklayıcılar ile Tasarım!
38
00 durumunda w = 0 ise 00 durumuna w = 1 ise 01 durumuna
Tasarım Örneği: Yazmaçtaki Birlerin Sayılması!
• R1 yazmacındaki birlerin sayısı R2 yazmacına aktarılır.
• Birim zamanda R1’den bir bit sola, E ikidurumlusuna aktarılır. – E = 1 ise R2 yazmacındaki değer arttırılır.
• R1= 0 ise sona erer.
39
1
S_idle Ready
1
Start
1Zero
S_1 Incr_R2
reset_b
S_2Shift_left
S_3
E
Load_regs
R2 !" R2 # 1
R1 !" dataR2 !" all 1s
{E, R1} !" {E, R1} !! 1
S_idle Ready
1
Start
1Zero
S_1
reset_b
R1 !" dataR2 !" all 1s
{E, R1} !" {E, R1} !! 1S_2
S_3
E
1
R2 !" R2 # 1
Statussignals
ControllerShift_left
Start
reset_bclock
Datapath R1
E
Zero
...
... R2
E
data
count
Incr_R2
Load_regs
Shift_left
Ready
(a)
(b) (c)
©2007 by Prentice Hall, Inc.A Pearson Company
Figure Number: 08 22 a-c Mano/CilettiDigital Design, 4e
AAHFZVE0
Yazmaçtaki Birlerin Sayılması!
40
41
Yazmaçtaki Birlerin Sayılması!
42