ميکرو اپريشن هاي شيفت

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‬را بصورت ضمني قبول کنيم بصورت ساده مي نويسيم‪:‬‬
‫‪BA‬‬
‫‪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
EA
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
AB
A
shl A
shr A
31
Questions
32
32