ميکرو اپريشن هاي شيفت
Download
Report
Transcript ميکرو اپريشن هاي شيفت
Department of Computer and IT Engineering
University of Kurdistan
Computer Architecture
Register Transfer Language (RTL)
By: Dr. Alireza Abdollahpouri
دو بخش اساس ی یک پردازنده
Datapath ()مسير داده
The ALU, registers and logic to perform operations
on them
Control unit ()واحد کنترل
Generates signals to control datapath
Accepts status signals to perform sequencing
Control
unit
Data Path
2
زبان انتقال رجيستر
)RTL (Register Transfer language
تعريف ريزعمليات()Micro Operation
يک عمليات پايه که روي داده هاي ذخيره شده روي رجيسترها در يک کالک انجام
ميشود مانندShift , Load , Clear , Inc ,Dec :
براي مشخص کردن يک سيستم ديجيتال بايد موارد زير تعيين شوند:
-1مجموعه رجيسترهاي آن و توانايي هاي هر رجيستر
-2دنباله ميکرواپريشن هاي قابل اجرا بر روي اطالعات ذخيره شده در هر رجيستر
-3شرط کنترلي که باعث انجام مجموعه اي متوالي از ميکرواپريشن ها مي شود
زبان انتقال رجيسترRTL
براي سهولت در توصيف دنباله اي از عملوندها و نقل و انتقال داده بين رجيسترها (در
)datapathاز سيستم نمايش ويژه اي به اسم 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
قوانين RTL
انتقال اطالعات يک رجيستر به ديگري بصورت زير نمايش داده ميشود:
R2 R1
عبارت فوق نشان دهنده انتقال محتويات رجيستر R1به رجيستر R2است .محتوي R1بدون
تغييرباقي مي ماند ولي محتوي R2برابر با محتوي R1ميشود.
الزمه سخت افزاري انتقال :
-1موجود بودن مسيري از خروجي R1به R2
-2رجيستر R2بايد قابليت بارکردن موازي ( )Parallel Loadداشته باشد .
دو ريزعمليات همزمان با کاما از هم جدا می شوند:
R1 R1+R2, R3 0
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
Multiplexer-Based Transfers
Consider
if ( K1 1) then ( R0 R1)else if ( K 2 1) then R0 R2
Which can also be expressed as
K1 : R0 R1,
K1 K 2 : R0 R2
Block diagram?
8
Multiplexer Block Diagram
K1 : R0 R1,
K1 K 2 : R0 R2
9
تمرین
if ( R1 0 )then ( R1 7)else if ( K 1) then R1 R1 R2
K
Control
Load
R2
R1
unit
n
7 (0…0111)
+
0
n
MUX
1
10
انتقال از طريق گذرگاه ()BUS
در يک کامپيوتر تعداد زيادي رجيستر وجود دارد که همه آنها بايد به
نوعي به هم متصل شوند براي سهولت در اتصال از Busاستفاده مي
شود.
Busبه مجموعه اي از خطوط مشترک اتالق ميشود که با داشتن nخط
مي توانند اطالعات رجيسترهاي nبيتي را به طور همزمان منتقل کنند.
براي پياده سازي Busاز دو طريق استفاده مي شود:
مالتي پلکسرها
گيت هاي با خروجي 3حالته
.1
.2
11
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ها :به تعداد رجيسترها
12
انتقال از طريق BUS
معموال ورودي همه رجيسترهاي مقصد به BUSمتصل ميباشند .از اينرو کافيست
S1S0بنحوي انتخاب شود که خروجي رجيستر روي BUSقرار گيرد .همزمان ورودي
Loadرجيستر مقصد نيز فعال شود تا داده از مبدا به مقصد انتقال يابد .براي مثال
براي انتقال رجيستر Aبه رجيستر Bاز طريق باس به ترتيب زير عمل ميشود:
BUS A , B Bus
در صورتي که وجود BUSرا بصورت ضمني قبول کنيم بصورت ساده مي نويسيم:
BA
13
پياده سازي BUSبا استفاده از گيتهاي 3حالتهTriState Buffer :
گيت سه حالته :مداري است که خروجي آن عالوه بر 2حالت صفر و يک
مي تواند دروضعيت سومي قرار گيرد که اصطالحا حالت امپدانس باال ناميده
شده و در اين حالت خروجي گيت بصورت مدار باز عمل ميکند يعني نه به
صفر وصل است نه به يک.
Output Y
يك بافر 3حالته و عملكرد آن
14
c=1
Y=A
c=0
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
15
انواع ميکرو اپريشن یا ریزعملیات
ميکرواپريشن هاي متداول پياده سازي شده در کامپيوتر هاي ديجيتال عبارتند از:
انتقال رجيستر :اطالعات را از يک رجيستر به ديگري منتقل مي کنند.
محاسباتي :عمليات محاسباتي را روي داده ذخيره شده در رجيسترها انجام ميدهند.
منطقي :عمليات دستکاري روي بيت هاي رجيستر را انجام مي دهد.
: Shiftعمل شيفت را روي داده ذخيره شده روي رجيسترها انجام مي دهند.
.1
.2
.3
.4
16
انتقال حافظه
می توان برای کار با حافظه از دو رجيستر استفاده کردDR ، AR :
عمل خواندن حافظه Read :
براي خواندن از يک محل مشخص از حافظه بايد آدرس آن محل مشخص شده در رجيستر خاصي
به نام Address Registerنوشته شود .داده خوانده شده از حافظه نيز در رجيستر DR
نوشته مي شود .
عمل نوشتن درحافظه Write :
آدرس محل مورد نظر در ARريخته ميشود .اين محل حافظه بصورت ] M[ARنشان داده
ميشود .داده مورد نظر ميتواند در هر يک از رجيسترها قرار داشته باشد.
ميکرو اپريشن هاي مربوطه بصورت زير خواهند بود:
Read
Memory
unit
Write
Data in
17
Data out
AR
DR M AR
Read :
M AR R1
Write :
ميکرواپريشن هاي محاسباتي
ميکرو اپريشن هاي محاسباتي اصلي عبارتند از:
جمع ،تفريق ،افزايش ،کاهش و شيفت
ميکرواپريشن جمع :
بصورت روبرو نشان داده ميشودR3 R1+R2 :
احتياجات سخت افزاري :
سه رجيستر و مدارات ديجيتالي که عمل جمع را انجام دهند .
A0
C0
B0
FA
S0
18
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
19
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
20
S0
FA
C4
C3
C2
S1
FA
S2
S3
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
مدار واحد محاسباتي
Cin
A0
Fi
Fi
A1
X0
C0 D0
FA
Y0 C1
X1
C1 D1
Y1
C2
مي توان با استفاده از مدار روبرو انواع
ميکرو اپريشنهاي محاسباتي را يکجا پياده
خروجي اين مداربصورت. سازي کرد
. جدول زير است
D= A+Y+Cin
4x1
MUX
Fi
A2
A3
4x1
MUX
Fi
X3
C2
Y3
C3
X3
C3
Y3
D2
D3
C4
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
.
21
ميکرواپريشن هاي منطقي Logic MicroOperations
اين ميکرو اپريشن ها عمليات باينري منطقی را روي بيت هاي ذخيره
شده در رجيسترها انجام ميدهند .عمل باينري بصورت جداگانه بر روي
هر بيت اعمال ميگردد.
P : R1 R1 R 2
ميکرواپريشن XOR
ميکرواپريشن OR
P : R1 R1 R 2
ميکرواپريشن AND
P : R1 R1 R 2
22
پياده سازي سخت افزاري ميکرواپريشن هاي منطقي
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
23
برخي کاربردهاي ميکرو اپريشن هاي منطقي
: Selective Set
براي يک کردن بيتهايي از رجيستر Aبکار ميرود .بيتهايي را که ميخواهيم يک
شوند ،توسط رجيستر Bمشخص ميکنيم.
1010
1100
1110
A
) Bدو بيت سمت چپ Aرا مجبور به يک شدن مي کنيم ،بقيه دست نمي خورد(.
A
(بعد از عمل)
اينکار با A A B
سوال:
24
انجام ميشود.
برای selective clearبه چه صورت عمل می کنيم؟
ميکرو اپريشن هاي شيفت
اين ميکرو اپريشن ها براي انتقال سلاير داده بکار ميروند
شيفت به راست :
شيفت به چپ :
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
asl R
Rتقسيم بر 2
R1ضرب در 2
Si=0
R0
R n-1
asr:
R0
R n-1
asl:
اگر در aslمقدار Rn-1عوض شود OverFlowاتفاق مي افتد.
براي تشخيص اين امر از رابطه زير استفاده ميشود (:قبل از شيفت)
28
R n 1 R n 2
V
پياده سازي سخت افزاري ميکرو اپريشن هاي شيفت
A3A2 A1 A0
Serial Input IL
Serial Input IR
S (select)
S
1
0
S
0
1
S
0
1
S
1
0
0 for shift right
1 for shift left
MUX
H3
MUX
H2
MUX
H1
MUX
H0
بيتي4 مدار ترکيبي براي شيفت
29
ALU
به جاي اينکه هر رجيستر جداگانه عمليات را انجام دهد ،ميتوان از يک
واحد محاسباتي منطقي مستقل براي انجام عمليات بر روي رجيسترهاي
مختلف استفاده کرد .اين واحد ALUناميده ميشود.
براي انجام يک ميکرو اپريشن خروجي رجيستر مبدا به ورودي ALU
متصل شده و خروجي ALUبه ورودي رجيستر مقصد متصل ميشود.
مدار ترکيبي ALUعمل مورد نظر را که توسط وروديهاي کنترل مشخص
ميشود انجام ميدهد.
عمل شيفت ميتواند توسط ALUيا به صورت مجزا توسط واحد ديگري
انجام شود.
عملوند 1
نتیجه
ALU
carry
OV
انتخاب عمل
30
عملوند 2
ALU
: ALU مدار سخت افزاري براي يک بيت
Ci
S3 S2 S1 S0 Cin
21 اسالید
S1
S0
Bi
Ai
يک قسمت
از مدار
محاسباتي
Di
S2
S3
Ci+1
Ei
23 اسالید
S1
S0
Bi
Ai
يک قسمت
از مدار
منطقي
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+B
A+B+1
A+B
A-B
A
A+1
A -1
A
A B
A B
AB
A
shl A
shr A
31
Questions
32
32