Rapid Development of Dependable Mobile Applications
Download
Report
Transcript Rapid Development of Dependable Mobile Applications
Department of Computer and IT Engineering
University of Kurdistan
Computer Architecture
Register Transfer Language (RTL)
By: Dr. Alireza Abdollahpouri
اجزا يک کامپيوتر ديجيتال
Digital Components -1
يک سيستم ديجيتال از اجزايي نظير رجيستر ,ديکودر ,اجزاء محاسباتي و منطق کنترل تشکيل مي شود
Data and Control Path -2
اين اجزا توسط مسيرهاي داده و کنترل به هم مرتبط مي شوند
مشخصه هاي يک کامپيوتر ديجيتال:
يک کامپيوتر ديجيتال توسط رجيسترها و عملياتي که روي داده ذخيره شده در آن قابل انجام است شناخته ميشود .
: Micro Operation
به عملياتي گفته مي شود که روي داده هاي ذخيره شده روي رجيسترها انجام ميشوند مانند Shift , Load :
, Clear , Inc ,Dec
2
زبان انتقال رجيستر
) RTL ( Register Transfer language
براي مشخص کردن يک کامپيوتر بايد موارد زير تعيين شوند :
-1مجموعه رجيسترهاي آن و توانايي هاي هر رجيستر
-2دنباله ميکرواپريشن هاي قابل اجرا بر روي اطالعات ذخيره شده در هر رجيستر
-3شرط کنترلي که باعث انجام مجموعه اي متوالي از ميکرواپريشن ها مي شود.
زبان انتقال رجيستر : RTL
براي سهولت در توصيف دنباله اي از عملوندها و نقل و انتقال داده بين رجيسترها از
سيستم نمايش ويژه اي به اسم RTLاستفاده ميشود .استفاده از RTLسبب
سهولت توصيف عملکرد کامپيوتر و راحتي کار طراحي آن ميگردد .
3
يک RTLساده
اسامي رجيسترها :
اسامي رجيسترها با حروف بزرگ که معموال ساده شده کار رجيستر است مشخص ميشوند .نظير:
MAR=Memory Address Register
PC= Program Counter
IR= Instruction Register
)رجيستر شماره R1=(1
نمايش رجيسترها :
براي نمايش يک رجيستر از يک مستطيل استفاده ميشود که نام
رجيستر در وسط آن نوشته ميشود
PC
نمايش بيت ها :
بيت هاي يک رجيستر nبيتي از ( 0سمت راست) تا ( n-1سمت چپ
ترين بيت) شماره گذاري ميشوند
گاهي يک رجيستر 16بيتي به 2بايت کم ارزش و پر
ارزش بصورت زير تقسيم ميشود
از پرانتز و شماره بر اي مشخص کردن يک قسمت
از رجيستر استفاده ميشود
4
76543210
7
0
)PC(L
15
8
)PC(H
)PC(H)= PC(8-15
) PC(L)= PC( 0-7
نمايش انتقال داده بين رجيسترها
انتقال اطالعات يک رجيستر به ديگري بضورت زير نمايش داده ميشود:
R2
R1
عبارت فوق نشان دهنده انتقال محتويات رجيستر R1به رجيستر R2است .محتوي R1بدون
تغييرباقي مي ماند ولي محتوي R2برابر با محتوي R1ميشود.
الزمه سخت افزاري انتقال :
-1موجود بودن مسيري از خروجي R1به R2
-2رجيستر R2بايد قابليت بارکردن موازي ( )Parallel Loadداشته باشد .
5
تابع کنترلي
شرط انتقال :
گاهي اوقات انتقال فقط بايد در صورت تحقق يک شرط کنترلي خاص انجام شود نظير
عبارت :
)If (P=1) ( then (R2 R1
تابع کنترلي :
يک عبارت بولي است که مقدار صفر يا يک دارد اين
تابع بصورت زير در عبارت ميکرواپريشن گنجانيده
ميشود
CLK
Load
R2
6
P
Control
Circuit
n
R1
P: R2 R1
زمان بندي
مدار كنترل در زمان tسيگنال
Pرا فعال ميكند لذا وقتي كالك
t+1به وقوع ميپيوندد با P
فعال روبرو شده و باعث انتقال
R1به R2ميشود.
t+1
t
Clk
)Load (P
عمل انتقال در اين زمان اتقاق مي افتد
اين انتقال در لبه كالك t+1اتفاق مي افتد .اگر Pبيش از يك Clkفعال
باشد عمل انتقال در ساير كالك ها هم اتفاق خواهد افتاد.
فعال بودن به لبه باعث ميشود تا بتوان عمل را در يك كالك پالس انجام داد.
R2
7
R1
R1
T: R2
انتقال از طريق گذرگاه () Bus
در يک کامپيوتر تعداد زيادي رجيستر وجود دارد که همه آنها بايد به
نوعي به هم متصل شوند براي سهولت در اتصال از Busاستفاده مي
شود.
Busبه مجموعه اي از خطوط مشترک اتالق ميشود که با داشتن n
خط مي توانند اطالعات رجيسترهاي nبيتي را به طور همزمان منتقل
کنند .
براي پياده سازي Busاز دو طريق استفاده مي شود :
مالتي پلکسرها
گيت هاي با خروجي 3حالته
.1
.2
8
Busبا استفاده ازMUX
3 2 1 0
4x1
MUX
Reg Selected
4x1
MUX
S0 S1
A
0
0
B
1
0
C
0
1
D
1
1
A
B
4x1
MUX
C
4x1
MUX
S0
0
1
2
3
0
1
2
3
S1
D
4 line Bus
0
1
2
3
S1 S0
0
1
2
3
تعداد MUXها :به تعداد بيتهاي رجيسترها ( Mux 0بيت صفر تمام رجيسترها را روي busقرار ميدهد و ) ...
تعداد ورودي MUXها :به تعداد رجيسترها
9
انتقال از طريق BUS
معموال ورودي همه رجيسترهاي مقصد به BUSمتصل ميباشند .از اينرو کافيست
S1S0بنحوي انتخاب شود که خروجي رجيستر روي BUSقرار گيرد .همزمان ورودي
Loadرجيستر مقصد نيز فعال شود تا داده از مبدا به مقصد انتقال يابد .براي مثال
براي انتقال رجيستر Aبه رجيستر Bاز طريق باس به ترتيب زير عمل ميشود:
در صورتي که وجود BUSرا بصورت ضمني قبول کنيم بصورت ساده مي نويسيم:
, B Bus
BUS A
BA
10
پياده سازي Busبا استفاده از گيتهاي 3حالته TriState BUffer :
گيت سه حالته :مداري است که خروجي آن عالوه بر 2حالت صفر و يک مي
تواند دروضعيت سومي قرار گيرد که اصطالحا حالت امپدانس باال ناميده شده
و در اين حالت خروجي گيت بصورت مدار باز عمل ميکند يعني نه به صفر
وصل است نه به يک .
Output Y
يك بافر 3حالته و عملكرد آن
11
c=1
Y=A
c=Ø
Y=High Impedance
Input A
Control C
پياده سازي Busبا استفاده از گيتهاي 3حالته TriState BUffer :
استفاده از گيتهاي سه حالته سبب ميشود تا
بتوان يک Busرا براحتي از طريق اتصال
خروجي رجيسترهاي سه حالته و يا استفاده
از يک بافر سه حالته بوجود آورد
فقط بايد مواظب بود که در هر لحظه فقط يکي
از گيت هاي سه حالته فعال باشد اين اطمينان
با استفاده از يک Decoderحاصل ميشود
Bus line for bit 0
A0
B0
C0
D0
S0
2x4
S1
Decoder
Enable
12
انواع ميکرو اپريشن
ميکرواپريشن هاي متداول پياده سازي شده در کامپيوتر هاي ديجيتال عبارتند از:
انتقال رجيستر :اطالعات را از يک رجيستر به ديگري منتقل مي کنند.
محاسباتي :عمليات محاسباتي را روي داده ذخيره شده در رجيسترها انجام ميدهند.
منطقي :عمليات دستکاري روي بيت هاي رجيستر را انجام مي دهد.
: Shiftعمل شيفت را روي داده ذخيره شده روي رجيسترها انجام مي دهند .
.1
.2
.3
.4
13
انتقال حافظه
دو رجيستر در کار با حافظه دخيل هستندDR ، AR :
عمل خواندن حافظه Read :
براي خواندن از يک محل مشخص از حافظه بايد آدرس آن محل مشخص شده در
رجيستر خاصي به نام Address Registerنوشته شود .داده خوانده شده
از حافظه نيز در رجيستر DRنوشته مي شود .
عمل نوشتن درحافظه Write :
آدرس محل مورد نظر در ARريخته ميشود .اين محل حافظه بصورت
]M[ARنشان داده ميشود .داده مورد نظر ميتواند در هر يک از رجيسترها
قرار داشته باشد.
ميکرو اپريشن هاي مربوطه بصورت زير خواهند بود:
Reed :DR M AR
Write :M AR R1
14
ميکرواپريشن هاي محاسباتي
ميکرو اپريشن هاي محاسباتي اصلي عبارتند از:
جمع ،تفريق ،افزايش ،کاهش و شيفت
ميکرواپريشن جمع :
بصورت روبرو نشان داده ميشودR3 R1+R2 :
احتياجات سخت افزاري :
سه رجيستر و مدارات ديجيتالي که عمل جمع را انجام دهند .
A0
C0
B0
FA
S0
15
A1
C1
B1
FA
S1
A2
C2
B2
FA
S2
A3
C3
B3
FA
S3
C4
ميکرواپريشن هاي محاسباتي
ميکرو اپريشن تفريق :
اغلب از طريق متمم گيري و جمع انجام مي شود:
R3 R1-R2
معادل است با
R3 R1+R2+1
ميکرواپريشن : DEC ، INC
( با مدار ترکيبي و با با يک شمارنده باال يائين شمار ساخته مي شوند ).
R1 R1-1
R1 R1+1
1
A0
y
x
HA
S
S0
16
C
A1
x
y
HA
S
S1
C
A2
x
y
HA
S
S2
C
A3
x
y
HA
S
S3
C
C4
جمع کننده و تفريق كننده باينري
براي اجراي ريزعملوند جمع نياز به مداري است که عمل جمع را روي رجيسترها انجام دهد .اين
مداراز nمدار تمام جمع کننده FAساخته مي شود .
ورودي به اين مدار هريک از رجيسترهاي R1و R2و خروجي مي تواند به هريک از آنها و يا
رجيستر ديگري منتقل شود .
A0
A1
B0
A2
B1
A3
B2
B3
M
C0
FA
FA
C1
S=A+B
M=0
S=A-B
M=1
17
S0
FA
C4
C3
C2
S1
FA
S2
S3
مدار واحد محاسباتي
Cin
S1
S0
B
B
0
1
S1
S0
B
B
0
1
S1
S0
B
B
0
1
S1
S0
B
B
0
1
S0
S1 4x1
0
MUX
1
2
3
S0
S1
0
1
2
3
S0
S1
0
1
2
3
S0
S1
0
1
2
3
4x1
MUX
4x1
MUX
A0
Fi
C0 D0
مي توان با استفاده از مدار روبرو انواع ميکرو
FA
اپريشنهاي محاسباتي را يکجا پياده سازي کرد
Y0 C1
. خروجي اين مداربصورت جدول زير است.
Fi
Fi
A1
A2
A3
4x1
MUX
X0
Fi
X1
C1 D1
Y1
C2
X3
C2
Y3
C3
X3
C3
Y3
C4
D= A+Y+Cin
D2
D3
Cout
S0 S1 CIN Y
D
0
0
0
0
1
1
1
1
A+B
A+B+1
A+B
A+B+1
A
A+1
A-1
A
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
B
B
B
B
0
0
1
1
Micro Operatioon
Add
Add With Carry
Sub with Borrow
Sub
Inc
Dec
Transfor
.
18
ميکرواپريشن هاي منطقي Logic MicroOperations
19
اين ميکرو اپريشن ها عمليات باينري را روي بيت هاي ذخيره شده در رجيسترها انجام
ميدهند .عمل باينري بصورت جداگانه بر روي هر بيت اعمال ميگردد.
ميکرواپريشن XOR
P : R1 R1 R 2
ميکرواپريشن OR
P : R1 R1 R 2
ميکرواپريشن AND
P : R1 R1 R 2
1010
مثال 1100
0110
ميکرواپريشن هاي منطقي
تعداد 16عمل منطقي مختلف را ميتوان بر روي دو متغير باينري انجام داد.
اما غلب کامپيوترها فقط COMPLEMENT ، XOR ، OR ، ANDرا به
توسط مدارهاي سخت افزاري پياده ميکنند.
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
1
1
1
1
20
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
YX
00
01
10
11
پياده سازي سخت افزاري ميکرواپريشن هاي منطقي
S1
S0
S0
Ai
Bi
S1 S0
S1
0
MUX
1
Ei
0
0
1
1
0
1
0
1
OutPut
E A B
E A B
E A B
EA
2
3
21
برخي کاربردهاي ميکرو اپريشن هاي منطقي
: Selective Set -1
براي يک کردن بيتهايي از رجيستر Aبکار ميرود .بيتهايي را که ميخواهيم يک
شوند ،توسط رجيستر Bمشخص ميکنيم.
1010
1100
1110
A
) Bدو بيت سمت چپ Aرا مجبور به يک شدن مي کنيم ،بقيه دست نمي خورد(.
A
(بعد از عمل)
اينکار با A A B
22
انجام ميشود.
برخي کاربردهاي ميکرو اپريشن هاي منطقي
: Selective Complement-2
بيت هاي مشخصي از Aرا متمم مي کنيم.
A 1010
B 1100
( A 0110بعد از عمل)
اينکار با
23
A A B
انجام ميشود.
برخي کاربردهاي ميکرو اپريشن هاي منطقي
: Selective Clear-3بيت هاي دلخواه در Aرا صفر ميکند.
A A B : Mask Operations -4
بيت هاي Aدر جايي از Bکه صفر هست ،صفر ميشوند.
A 1010
B 1100
A 0010
A A B
A 1010
B 1100
A 1000
24
ميکرو اپريشن هاي شيفت
اين ميکرو اپريشن ها براي انتقال سلاير داده بکار ميروند
شيفت به راست :
So
شيفت به چپ :
0 1 1 0
Si
0 1 1 0
قبل از شيفت
25
Si
So
Si 0 1 1
1 1 0 Si
بعد از شيفت
انواع شيفت
شيفت منطقي : Logical Shift
Si=0در نظر گرفته ميشود.
مقدار
شيفت منطقي به سمت چپ
Shl R1
R1
در RTLميکرواپريشن هر دو رجيستر مبدا و مقصد بايد يکسان باشند.
شيفت منطقي به سمت راست
26
Shr R2
R2
انواع شيفت
شيفت چرخشي : Circular Shift
Si به Soوصل ميشود.
شيفت چرخش ي به سمت چپ
شيفت چرخش ي به سمت راست
27
Cil R1
R1
Cir R2
R2
انواع شيفت
شيفت محاسباتي : Arithmetic Shift
در اين نوع شيفت ،شيفت به راست به منزله تقسيم بر 2و شيفت به سمت چپ
به منزله ضرب در 2است .از اينرو محتوي بيت عالمت رجيستر در هنگام
شيفت بدون تغيير باقي ميماند.
Si
asr R
R
تقسيم بر 2
asl R
R1
ضرب در 2
R0
Si=Ø
R0
اگر در aslمقدار R n-1عوض شود OverFlowاتفاق مي افتد.
براي تشخيص اين امر از رابطه زير استفاده ميشود (:قبل از شيفت)
28
R n-1
asr:
R n-1
R n 1 R n 2
asl:
V
پياده سازي سخت افزاري ميکرو اپريشن هاي شيفت
در يک کامپيوتر با چندين رجيستر
ميتوان عمل شيفت را با استفاده از
يک مدار ترکيبي پياده سازي نمود .
ميشود.خروجي رجيستر مورد نظر از
طريق يک پالس به مدار ترکيب اعمال
ميشود و پس از محاسبه نتيحه شيفت
حاصل به رجيستر مقصد منتقل
ميگردد .اين کار فقط يک پالس نياز
دارد.
S
0
1
S
)Serial Input (IR
A1
Mux
S
0
1
S
A0
A2
Mux
S
0
1
S
A1
A3
S
0
1
S
A2
)Serial Input (IL
H0
Mux
H1
H2
Output
S H0 H1 H2 H3
0 IR A0 A1 A2
1 A1 A2 A3 IL
29
H3
Mux
مدار ترکيبي براي شيفت 4بيتي
ALU
به جاي اينکه هر رجيستر جداگانه عمليات را انجام دهد ،ميتوان از يک
واحد محاسباتي منطقي مستقل براي انجام عمليات بر روي رجيسترهاي
مختلف استفاده کرد .اين واحد ALUناميده ميشود.
براي انجام يک ميکرو اپريشن خروجي رجيستر مبدا به ورودي ALU
متصل شده و خروجي ALUبه ورودي رجيستر مقصد متصل ميشود.
مدار ترکيبي ALUعمل مورد نظر را که توسط وروديهاي کنترل مشخص
ميشود انجام ميدهد.
عمل شيفت ميتواند توسط ALUيا به صورت مجزا توسط واحد ديگري
انجام شود.
30
ALU
: براي يک بيتALU مدار سخت افزاري
Ci
S1
S0
Bi
Ai
S3 S2 S1 S0 Cin
يک قسمت
از مدار
محاسباتي
Di
S2
S3
Ci+1
S1
S0
Bi
Ai
Ei
يک قسمت
از مدار
منطقي
Ai-1 Ai+1
Select
4x1
0
MUX
1
2
3
Fi
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
x
x
0 0
0 1
1 0
1 1
0 0
0 1
1 0
1 1
0 x
1 x
0 x
1 x
x x
x 0
F Operation
A
A+1
A+B
A+B-1
A+B
A+B+1
A-1
A
A B
A B
AB
A
shl A
shr A
31