نمايش دا ده ها - شبکه اجتماعی نت

Download Report

Transcript نمايش دا ده ها - شبکه اجتماعی نت

‫انتقال ثبات‬
‫و‬
‫ريزعمل ها‬
REGISTER TRANSFER AND MICROOPERATIONS
‫انتقال ثبات و ريزعمل ها‬
• Register Transfer Language
• Register Transfer
‫زبان انتقال ثبات‬
‫انتقال ثبات‬
• Bus and Memory Transfers
‫انتقال حافظه و گذرگاه‬
• Arithmetic Microoperations
‫ريزعمل هاي حسابي‬
• Logic Microoperations
• Shift Microoperations
• Arithmetic Logic Shift Unit
‫ريزعملهاي منطقي‬
‫ريزعمل هاي شيفت‬
‫واحد شيفت حسابي‬
‫سيستم ديجيتالي ساده‬
‫مدارات ترتيبي و ترکيبي مي تواند براي ساختن سيستم هاي ديجيتالي ساده استفاده شود‬
‫• سيستمهاي ديجيتالي ساده معموال با يکي از موارد زير شناخته مي شوند‪:‬‬
‫– ثباتهاي ي که در سيستم موجود است‪.‬‬
‫– عملياتي که سيستم انجام مي دهد‪.‬‬
‫• براي شناساي ي يک سيستم بايد بدانيم‪:‬‬
‫– چه عملياتي روي داده ها انجام مي شود‪.‬‬
‫– چه اطالعاتي بين ثباتها منتقل مي شود‪.‬‬
‫ريزعمل ها(‪)1‬‬
‫• عملياتي که روي داده ها در ثباتها انجام مي شود ريز عمل ناميده مي شود‪.‬‬
‫• عمليات داخلي ثباتها نمونه هاي ي از ريزعمل ها هستند‪.‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫شيفت ‪Shift‬‬
‫بار کردن ‪Load‬‬
‫پاک کردن ‪Clear‬‬
‫اضافه کردن ‪Increment‬‬
‫‪...‬‬
‫ريزعمل ها(‪)2‬‬
‫يک عمليات پايه که روي داد هاي ذخيره شده در يک يا چند ثبات در طي يک‬
‫پالس انجام مي شود ريزعمل نام دارد‪.‬‬
‫يک سيکل ساعت‬
‫‪ALU‬‬
‫)‪(f‬‬
‫‪Registers‬‬
‫)‪(R‬‬
‫)‪R  f(R, R‬‬
‫‪ f‬مي تواند ‪،subtract ،add ،increment ،clear ،load ،shift‬‬
‫‪ xor ،and ، complement‬يا ‪ ...‬باشد‪.‬‬
‫سازمان کامپيوتر‬
‫•تعريف سازمان(‪ )organization‬داخلي کامپيوتر‬
‫مجموعه ثباتها‬‫مجموعه ريزعمل ها‬‫‪-‬سيگنال هاي کنترلي که ترتيب ريزعمل ها را مشخص مي کنند‪.‬‬
‫سطح انتقال ثبات‬
‫• بررسي کاميوتر از اين منظر سطح انتقال ثبات‬
‫(‪)register transfer level‬‬
‫ناميده مي شود‪.‬‬
‫• در اين سطح تمرکز بر موارد زير است‪:‬‬
‫– ثباتهاي سيستم‬
‫– تبديل داده ها درون ثباتها‬
‫– انتقال داده ها بين ثباتها‬
‫زبان انتقال ثبات‬
‫‪REGISTER TRANSFER LANGUAGE‬‬
‫• به جاي مشخص کردن يک سيستم با کلمات‪ ،‬ان را با يک نوتيشن خاص که زبان انتقال‬
‫ثبات ناميده مي شود نشان ميدهند‪.‬‬
‫• زبان انتقال ثبات مي تواند براي نشان دادن هر ترتيب از ريزعمل ها مورد استفاده قرار گيرد‪.‬‬
‫• زبان انتقال ثبات‪:‬‬
‫– يک زبان سمبوليک است‪.‬‬
‫– يک ابزار اسان براي شرح سازمان داخلي کامپيوترهاي ديجيتال است‪.‬‬
‫– فرايند طراحي سيستم هاي ديجيتال را تسهيل مي کند‪.‬‬
‫نامگذاري ثباتها‬
‫• ثباتها معموال با حروف بزرگ نامگذاري مي شوند‪ .‬گاهي اوقات پس از اسم انها اعداد قرار مي‬
‫گيرد‪(A, R13, IR).‬‬
‫• اغلب نامها نشان دهنده کاري است که ثبات انجام مي شود مثال‪:‬‬
‫‪- memory address register‬‬
‫‪- program counter‬‬
‫‪- instruction register‬‬
‫‪Showing individual bits‬‬
‫‪0‬‬
‫‪1‬‬
‫‪2‬‬
‫‪0‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪8 7‬‬
‫)‪PC(L‬‬
‫‪– MAR‬‬
‫‪– PC‬‬
‫‪– IR‬‬
‫‪Register‬‬
‫‪R1‬‬
‫‪7‬‬
‫‪15‬‬
‫)‪PC(H‬‬
‫‪Subfields‬‬
‫‪15‬‬
‫‪0‬‬
‫‪R2‬‬
‫‪Numbering of bits‬‬
‫انتقال ثبات‬
‫• کپ ي شدن اطالعات يک ثبات به ثبات ديگر انتقال ثبات نام دارد‪.‬‬
‫• يک انتقال ثبات به شکل زير نشان داده مي شود‪:‬‬
‫‪R2  R1‬‬
‫– در اين حالت محتواي ثبات ‪ R1‬به ‪ R2‬منتقل مي شود‪.‬‬
‫– انتقال در يک پالس انجام مي شود‪.‬‬
‫– محتواي ‪ R1‬تغييير نمي کند‪.‬‬
‫انتقال ثبات‬
‫• يک انتقال ثبات مثل زير‪:‬‬
‫‪R3  R5‬‬
‫موارد زير را در سيستم ايجاب مي کند‪:‬‬
‫– خطوط انتقال از ‪ R3‬به ‪R5‬‬
‫– بار شدن موازي در ‪R3‬‬
‫– خطوط کنترل الزم براي انجام عمليات‬
‫توابع كنترلي‬
‫•‬
‫•‬
‫•‬
‫•‬
‫اغلب اوقات عمليات ها فقط زماني که يک شرط خاص برقرار باشد بايد اجرا شوند‪.‬‬
‫اين مساله شبيه ‪ if‬در زبان هاي برنامه نويسي است‪.‬‬
‫در سيستم هاي ديجيتال شرط با يک سيگنال کنترلي (‪ )control signal‬يا تابع‬
‫کنترلي (‪ )control function‬انجام مي شود‬
‫تابع کنترلي به شکل زير نشان داده مي شود‪:‬‬
‫‪P: R2  R1‬‬
‫بدين معني که اگر ‪ P‬برابر ‪ 1‬بود انتقال از ‪ R1‬به ‪ R2‬انجام شود‪ .‬يا‪:‬‬
‫)‪if (P = 1) then (R2  R1‬‬
‫پياده سازي سخت افزاري انتقاالت کنترلي‬
‫‪P: R2 R1‬‬
‫‪Load‬‬
‫‪R2‬‬
‫‪Clock‬‬
‫‪P‬‬
‫‪n‬‬
‫‪Control‬‬
‫‪Circuit‬‬
‫بلوک دياگرام‬
‫‪R1‬‬
‫‪t+1‬‬
‫‪t‬‬
‫‪Clock‬‬
‫‪Load‬‬
‫‪Transfer occurs here‬‬
‫فرض مي شود که ثبات ها حساس به لبه مثبت هستند•‬
‫دياگرام زمان بندي‬
‫عمليات همزمان‬
‫• اگر تعداد دو يا بيشتر عمليات همزمان انجام شود انها را با کاما (‪ )،‬از هم‬
‫جدا مي کنيم‪.‬‬
‫‪P: R3  R5, MAR  IR‬‬
‫• در اينجا اگر ‪ P=1‬باشد‪ ،‬به طور همزمان ‪ R5‬به ‪ R3‬و ‪ IR‬به‬
‫‪ MAR‬منتقل مي شود‪.‬‬
‫عالئم اوليه‬
‫شرح‬
‫سمبل‬
‫حروف بزرگ‬
‫‪MAR, R2‬‬
‫پرانتز ( )‬
‫)‪R2(0-7), R2(L‬‬
‫پيکان ‪‬‬
‫‪R2  R1‬‬
‫دو نقطه ‪:‬‬
‫کاما ‪،‬‬
‫‪A  B, B  A‬‬
‫مثال‬
‫نشان دهنده يک ثبات‬
‫نشان دهنده قسمتي از يک ثبات‬
‫نشان دهنده انتقال اطالعات‬
‫نشان دهنده پايان تابع کنترلي‬
‫جدا کننده دو ريز عمل‬
‫‪P:‬‬
‫ارتباط بين ثبات ها‬
‫• در يک سيستم ديجيتال با ثباتهاي فراوان‪ ،‬اتصال مستقيم هر ثبات با‬
‫ثبات ديگر امکان پذير نيست‪.‬‬
‫• براي اتصال ‪ n‬ثبات به يکديگر به )‪n(n-1‬خط ارتباطي نياز است‪.‬‬
‫• هزينه‪O(n2) :‬‬
‫– براي سيستم هاي با تعداد ثبات زياد عملي نيست‬
‫• به جاي اين کار از يک مجموعه مدار متمرکز به نام گذرگاه ‪ bus‬براي‬
‫انتقال اطالعات استفاده مي شود‪.‬‬
‫• همچنين از توابع کنترلي تعيين کنيم کدام ثبات‪ ،‬ثبات منبع و کدام ثبات‬
‫مقصد است‪.‬‬
‫گذرگاه ‪BUS‬‬
‫گذرگاه يک مسير(متشکل يک از گروه از سيم ها) که اطالعات روي ان منتقل مي شود‪ .‬انتقال مي تواند از منابع مختلف به مقاصد‬
‫مختلف باشد‪.‬‬
‫از يک ثبات به گذرگاه‪BUS  R :‬‬
‫‪Register D‬‬
‫‪Register C‬‬
‫‪Register B‬‬
‫‪Register A‬‬
‫‪Bus lines‬‬
‫باس با ماکس‬
Register A
1
2
3
4
Register B
1
B1 C 1 D 1
0
4 x1
MUX
2
3
Register C
4
1
B2 C 2 D 2
0
4 x1
2
3
4
Register D
1
B3 C 3 D 3
0
MUX
4 x1
MUX
x
select
y
4-line bus
2
3
4
B4 C 4 D 4
0
4 x1
MUX
‫انتقال از گذرگاه به يک ثبات‬
‫خطوط گذرگاه‬
Reg. R0
Reg. R1
Reg. R2
D 0 D1 D2 D 3
2x4
Decoder
z
Select
w
Reg. R3
Load
E (enable)
‫بافر سه حالته‬
Output Y=A if C=1
High-impedence if C=0
Normal input A
Control input C
‫گذرگاه با بافر سه حالته‬
Bus line for bit 0
A0
B0
C0
D0
Select
Enable
S0
S1
0
1
2
3
‫نشان دادن انتقال گذرگاه در ‪RTL‬‬
‫• انتقال ثبات از طريق گذرگاه مي تواند به يکي از دو شکل زير نشان داده شود‪.‬‬
‫‪R2 R1‬‬
‫‪BUS R1, R2  BUS‬‬
‫يا‬
‫• در اولي گذرگاه بصورت ضمني وجود دارد درحاليکه در دومي به طور صريح بيان شده‬
‫است‪.‬‬
‫حافظه )‪(RAM‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫هر کلمه با يک ادرس مشخص مي شود‪.‬‬
‫براي ‪ r‬کلمه ادرس دهي از ‪ 0‬تا ‪ r-1‬مي باشد‪.‬‬
‫هر کلمه مي تواند ‪ n‬بيت را ذخيره کند‪.‬‬
‫يک ‪ RAM‬با ‪ r = 2k‬کلمه را در نظر بگيريد‪ .‬اين ‪ RAM‬به موارد‬
‫‪:‬‬
‫دارد‬
‫نياز‬
‫زير‬
‫‪data input lines‬‬
‫– ‪ n‬خط داده ورودي‬
‫– ‪ n‬خط داده خروجي‬
‫– ‪ k‬خط ادرس‬
‫– يک خط کنترل خواندن‬
‫– يک خط کنترل نوشتن‬
‫‪n‬‬
‫‪address lines‬‬
‫‪RAM‬‬
‫‪unit‬‬
‫‪k‬‬
‫‪Read‬‬
‫‪Write‬‬
‫‪n‬‬
‫‪data output lines‬‬
‫انتقال حافظه‬
‫• در سطح انتقال ثبات يک حافظه به صورت يک نماد ‪ M‬نشان داده مي شود‪.‬‬
‫• چون يک حافظه شامل چندين ادرس مختلف است‪ ،‬بايد جاي مورد نظر در حافظه مشخص‬
‫شود‪.‬‬
‫•‬
‫•‬
‫•‬
‫در سيستم هاي کامپيوتري براي دستيابي به حافظه‪ ،‬ادرس دلخواه در يک ثبات مشخص قرار داده مي شود‪.‬‬
‫اين ثبات ‪ MAR( Memory Address Register‬يا ‪ )AR‬ناميده مي شود‪.‬‬
‫وقتي حافظه دستيابي مي شود‪ ،‬محتواي ‪ MAR‬به عنوان ادرس روي خطوط ادرس حافظه مورد استفاده قرار مي‬
‫گيرد‪.‬‬
‫‪Read‬‬
‫‪Memory‬‬
‫‪unit‬‬
‫‪Write‬‬
‫‪Data in‬‬
‫‪M‬‬
‫‪Data out‬‬
‫‪AR‬‬
‫خواندن از حافظه‬
‫• براي خواندن يک کلمه ازحافظه زبان انتقال ثبات بصورت زير است‪:‬‬
‫]‪R1  M[MAR‬‬
‫• براي انجام مثال فوق اعمال زير انجام مي پذيرد‪:‬‬
‫– محتواي ‪ MAR‬روي خطوط ادرس فرستاده مي شود‪.‬‬
‫– سيگنال )‪ Read (= 1‬به واحد حافظه فرستاده مي شود‪.‬‬
‫– محتواي ادرس مشخص شده روي خطوط داده قرار مي گيرد‪.‬‬
‫– اين مقدار از گذرگاه به ثبات ‪ R1‬منتقل مي شود‪.‬‬
‫نوشتن در حافظه‬
‫• براي خواندن از يک کلمه حافظه زبان انتقال ثبات بصورت زير نوشته مي شود‪:‬‬
‫‪M[MAR]  R1‬‬
‫• براي انجام مثال فوق اعمال زير انجام مي پذيرد‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫محتواي ‪ MAR‬روي خطوط ادرس فرستاده مي شود‪.‬‬
‫سيگنال )‪ write (= 1‬به واحد حافظه فرستاده مي شود‪.‬‬
‫مقدار ثبات ‪ R1‬به گذرگاه منتقل مي شود‪.‬‬
‫مقدار روی باس به محل مشخص شده در حافظه منتقل مي شود‪.‬‬
Bus and Memory Transfers
SUMMARY OF R. TRANSFER MICROOPERATIONS
A B
Transfer content of reg. B into reg. A
AR  DR(AD)
Transfer content of AD portion of reg. DR into reg. AR
A  constant
Transfer a binary constant into reg. A
ABUS  R1,
Transfer content of R1 into bus A and, at the same time,
R2  ABUS
AR
DR
M[R]
M
Transfer content of bus A into R2
Address register
Data register
Memory word specified by reg. R
Equivalent to M[AR]
DR  M
M  DR
Memory read operation: transfers content of
Memory word specified by AR into DR
Memory write operation: transfers content of
DR into memory word specified by AR
‫انواع ريزعمل ها‬
‫• ريزعمل ها در سيستم کامپيوتري به چهار دسته مختلف تقسيم مي شوند‪:‬‬
‫ريزعمل هاي انتقال ثبات‬
‫‪- Register transfer microoperations‬‬
‫ريزعمل هاي حسابي‬
‫‪- Arithmetic microoperations‬‬
‫ريزعمل هاي منطقي‬
‫‪- Logic microoperations‬‬
‫ريزعمل هاي شيفت‬
‫‪- Shift microoperations‬‬
‫ريزعمل هاي حسابي‬
:‫• ريزعمل هاي حسابي پايه عبارت اند‬
‫– جمع‬
‫– تفريق‬
‫– افزايش يک واحد‬
‫– کاهش يک واحد‬
R3 
R3 
R2 
R2 
R3 
R1 
R1 
R1 + R2
R1 - R2
R2’
R2’+ 1
R1 + R2’+ 1
R1 + 1
R1 - 1
Contents of R1 plus R2 transferred to R3
Contents of R1 minus R2 transferred to R3
Complement the contents of R2
2's complement the contents of R2 (negate)
subtraction
Increment
Decrement
‫ جمع کننده و تفريق کننده دودوي ي‬،‫افزايشگر‬
B3
Binary Adder
‫جمع کننده دودوي ي‬
A3
C3
FA
C4
B2
A2
Binary Adder-Subtractor
‫تفريق کننده دودوي ي‬-‫ جمع کننده‬B3
C2
FA
S3
B1
A1
A3
B2
C1
FA
S2
B0
A0
S1
A2
B1
C0
FA
S0
A1
B0
A0
M
C3
FA
C4
Binary Incrementer
‫افزايشگر دودوي ي‬
S3
S2
A3
y
HA
C4
S
S3
y
HA
S
S2
C0
FA
S0
A1
x
C
C1
FA
S1
A2
x
C
C2
FA
x
y
HA
C
S
S1
A0
1
x
y
HA
C
S
S0
‫مدار عمليات حسابي‬
Cin
S1
S0
A0
X0
S1
S0
0 4x1
1 MUX
2
3
B0
A1
S1
S0
0 4x1
1 MUX
2
3
B1
A2
S1
S0
0 4x1
1 MUX
2
3
B2
A3
S1
S0
0 4x1
1 MUX
2
3
B3
0
S1
0
0
0
0
1
1
1
1
S0
0
0
1
1
0
0
1
1
Cin
0
1
0
1
0
1
0
1
C0
D0
FA
Y0
C1
X1
C1
D1
FA
Y1
C2
X2
C2
D2
FA
Y2
C3
X3
C3
D3
FA
Y3
C4
Cout
1
Y
B
B
B’
B’
0
0
1
1
Output
D=A+B
D=A+B+1
D = A + B’
D = A + B’+ 1
D=A
D=A+1
D=A-1
D=A
‫ريزعمل ها‬
‫جمع‬
‫جمع با بيت انتقال‬
‫تفريق با بيت قرضي‬
‫تفريق‬
A ‫انتقال‬
A ‫افزايش‬
A ‫کاهش‬
A ‫انتقال‬
Add
Add with carry
Subtract with borrow
Subtract
Transfer A
Increment A
Decrement A
Transfer A
‫ريز عمل هاي منطقي‬
‫•‬
‫ريز عمل هاي منطقي ريزعمل هاي ي هستند که عمليات دودوي ي را روي رشته اي از بيت هاي ثبات انجام مي دهند‪.‬‬
‫– عمليات منطقي روي يک بيت داده کار مي کنند به همين دليل به انها ‪ bit-wise‬مي گويند‪ .‬مثال در يک ثبات هشت بيتي وقتي‬
‫عمل ‪ not‬انجام مي شود روي هر بيت به طور مستقل انجام مي شود‪.‬‬
‫– از عمليات منطقي مي تواند براي دستکاري بيتي ( ‪)bit manipulations‬داده ها استفاده شود‬
‫•‬
‫به طور کلي ‪ 16‬عمليات متفاوت منطقي مي تواند روي دو متغير دودوي ي انجام شود‪.‬‬
‫‪F15‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫•‬
‫‪F14‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪F2 … F13‬‬
‫‪0 … 1‬‬
‫‪0 … 1‬‬
‫‪1 … 0‬‬
‫‪0 … 1‬‬
‫‪F1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪B F0‬‬
‫‪0 0‬‬
‫‪1 0‬‬
‫‪0 0‬‬
‫‪1 0‬‬
‫‪A‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫بيشتر سيستمها فقط چهار عمل زير را پياده سازي مي کنند‪.‬‬
‫‪– AND (), OR (), XOR (), Complement/NOT‬‬
‫•‬
‫عمليات ديگر مي توانند با استفاده از اين چهار ريزعمل ساخته شوند‪.‬‬
‫ليست ريزعمل هاي منطقي‬
‫• ليست ريزعمل هاي منطقي‬
‫ متغير‬2 ‫ عمل منطقي مختلف روي‬16n
.‫منطقي تعريف کرد‬
2 2‫عمل‬
‫ متغير مي توان‬n ‫با‬
‫• جدول ارزش براي دو متغير دودوي ي‬
x 0011
y 0101
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Boolean
Function
F0 = 0
F1 = xy
F2 = xy'
F3 = x
F4 = x'y
F5 = y
F6 = x  y
F7 = x + y
F8 = (x + y)'
F9 = (x  y)'
F10 = y'
F11 = x + y'
F12 = x'
F13 = x' + y
F14 = (xy)'
F15 = 1
MicroName
Operations
F0
Clear
FAB
AND
F  A  B’
FA
Transfer A
F  A’ B
FB
Transfer B
FAB
Exclusive-OR
FAB
OR
F  A  B)’
NOR
F  (A  B)’ Exclusive-NOR
F  B’
Complement B
FAB
F  A’
Complement A
F  A’ B
F  (A  B)’
NAND
F  all 1's
Set to all 1's
‫پياده سازي سخت افزاري عمليات منطقي‬
Ai
Bi
0
1
4X1
MUX
Fi
2
3 Select
S1
S0
‫جدول توابع‬
S1
0
0
1
1
S0
0
1
0
1
Output
F=AB
F = AB
F=AB
F = A’
-operation
AND
OR
XOR
Complement
‫کاربردهاي ريزعملهاي منطقي‬
‫•‬
‫ريزعمل هاي منطقي مي توانند براي دستکاري بيتي مورد استفاده قرار گيرند‪ .‬يعني براي تغيير بيت هاي يک قسمت دلخواه از‬
‫يک ثبات‪.‬‬
‫•‬
‫فرض کنيد داده ها در ثبات ‪ A‬هستند‪ .‬ثبات ‪ B‬مي تواند براي تغيير محتويات ‪ A‬به کار رود‪.‬‬
‫‪AA+B‬‬
‫‪AAB‬‬
‫’‪A  A • B‬‬
‫‪AA•B‬‬
‫‪AAB‬‬
‫‪A  (A • B) + C‬‬
‫‪AAB‬‬
‫‪Selective-set‬‬
‫‪Selective-complement‬‬
‫‪Selective-clear‬‬
‫)‪Mask (Delete‬‬
‫‪Clear‬‬
‫‪Insert‬‬
‫‪Compare‬‬
‫‪...‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫ست کردن انتخابي‬
‫• در يک کردن انتخابي ‪ B‬براي تعيين بيت هاي ي از ‪ A‬که قرار است يک شوند مورد استفاده قرار مي‬
‫گيرد‪.‬‬
‫)‪(A  A + B‬‬
‫‪At‬‬
‫‪B‬‬
‫‪At+1‬‬
‫‪1100‬‬
‫‪1010‬‬
‫‪1110‬‬
‫• به ازاي بيت هاي ي که در ‪ B‬مقدار يک دارند‪ ،‬بيت هاي معادل انها در ‪ A‬يک مي شود‪ .‬بقيه بيت هاي‬
‫‪ A‬بدون تغيير مي مانند‪.‬‬
‫مکمل کردن انتخابي‬
‫• در مکمل کردن انتخابي ثبات ‪ B‬براي تعيين بيت هاي ي از ‪ A‬که قرار است مکمل شوند مورد استفاده‬
‫قرار مي گيرد‪.‬‬
‫)‪(A  A  B‬‬
‫‪At‬‬
‫‪B‬‬
‫‪At+1‬‬
‫‪1100‬‬
‫‪1010‬‬
‫‪0110‬‬
‫• به ازاي بيت هاي ي که در ‪ B‬مقدار يک دارند‪ ،‬بيت هاي معادل انها در ‪ A‬مکمل(‪ )NOT‬مي شود‪.‬‬
‫بقيه بيت هاي ‪ A‬بدون تغيير مي مانند‪.‬‬
‫پاک کردن انتخابي‬
‫•‬
‫در پاک کردن انتخابي ثبات ‪ B‬براي تعيين بيت هاي ي از ‪ A‬که قرار است پاک(صفر) شوند مورد استفاده قرار مي گيرد‪.‬‬
‫‪1 1 0 0 At‬‬
‫‪1010 B‬‬
‫)’‪(A  A  B‬‬
‫•‬
‫‪0 1 0 0 At+1‬‬
‫به ازاي بيت هاي ي که در ‪ B‬مقدار يک دارند‪ ،‬بيت هاي معادل انها در ‪ A‬صفر مي شود‪ .‬بقيه بيت هاي ‪ A‬بدون تغيير مي‬
‫مانند‪.‬‬
‫عمليات ماسک کردن‬
‫•‬
‫در عمل ماسک کردن ‪ B‬براي تعيين بيت هاي ي از ‪ A‬که قرار است پاک(صفر) شوند مورد استفاده قرار مي گيرد‪.‬‬
‫)‪(A  A  B‬‬
‫•‬
‫‪At‬‬
‫‪B‬‬
‫‪1100‬‬
‫‪1010‬‬
‫‪At+1‬‬
‫‪1000‬‬
‫به ازاي بيت هاي ي که در ‪ B‬مقدار صفر دارند‪ ،‬بيت هاي معادل انها در ‪ A‬صفر مي شود‪ .‬بقيه بيت هاي ‪ A‬بدون تغيير مي مانند‪.‬‬
‫عمليات پاک کردن‬
‫• در عمل پاک کردن اگر بيت هاي ‪ A‬و ‪ B‬مشابه بود‪ ،‬بيت معادل در ‪ A‬صفر مي شود‪ ،‬در غير اين‬
‫صورت بدون تغيير مي ماند‪ .‬اگر دو عدد برابر باشند نتيجه تمام صفر خواهد بود(برای مقايسه مناسب‬
‫است)‬
‫)‪(A  A  B‬‬
‫‪At‬‬
‫‪B‬‬
‫‪1100‬‬
‫‪1010‬‬
‫‪At+1‬‬
‫‪0110‬‬
‫عمليات درج‬
‫•‬
‫•‬
‫عمليات درج براي وارد کردن رشته بيت مورد نظر به درون ثبات مورد استفاده قرار مي گيرد‪.‬‬
‫روش انجام عمل درج‪:‬‬
‫– ابتدا يک عمل ماسک براي پاک کردن بيت هاي مورد نظر انجام مي شود‪.‬‬
‫– سپس يک عمل ‪ OR‬براي قرار دادن بيت هاي جديد مورد استفاده قرار مي گيرد‪.‬‬
‫– مثال‪:‬‬
‫• فرض کنيد مي خواهيم ‪ 1010‬را به قسمت کم ارزش ثبات ‪ A‬وارد کنيم‪.‬‬
‫)‪A (Original‬‬
‫)‪A (Desired‬‬
‫)‪A (Original‬‬
‫‪Mask‬‬
‫)‪A (Intermediate‬‬
‫‪Added bits‬‬
‫)‪A (Desired‬‬
‫‪1101 1000 1011 0001‬‬
‫‪1101 1000 1011 1010‬‬
‫•‬
‫‪1000‬‬
‫‪1111‬‬
‫‪1000‬‬
‫‪0000‬‬
‫‪1000‬‬
‫‪• 1101‬‬
‫‪1111‬‬
‫‪1101‬‬
‫‪0000‬‬
‫‪1101‬‬
‫‪0001‬‬
‫‪0000‬‬
‫‪0000‬‬
‫‪1010‬‬
‫‪1010‬‬
‫‪1011‬‬
‫‪1111‬‬
‫‪1011‬‬
‫‪0000‬‬
‫‪1011‬‬
‫ريز عمل شيفت‬
‫• در سيستم هاي ديجيتال سه نوع شيفت مختلف وجود دارد‪:‬‬
‫– شيفت منطقي‬
‫– شيفت چرخشي‬
‫– شيفت حسابي‬
‫• تفاوت اين شيفت ها در بيت ورودي سريال است‪.‬‬
‫•عمليات شيفت به راست‪:‬‬
‫‪Serial‬‬
‫‪input‬‬
‫‪Serial‬‬
‫‪input‬‬
‫‪• A left shift operation‬‬
‫• در شيفت منطقي بيت ورودي صفر است‪.‬‬
‫• شيفت منطقي به راست‪:‬‬
‫شيفت منطقي‬
‫‪0‬‬
‫• شيفت منطقي به چپ‪:‬‬
‫‪0‬‬
‫• در زبان انتقال ثبات از عالئم زير استفاده مي شود‪:‬‬
‫– مثال‪:‬‬
‫• ‪R2  shr R2‬‬
‫• ‪R3  shl R3‬‬
‫شيفت منطقي به چپ‬
‫شيفت منطقي به راست‬
‫‪– shl‬‬
‫‪– shr‬‬
‫شيفت چرخشي‬
‫•‬
‫در شيفت چرخشي بيت ورودي سريال‪ ،‬بيت خروجي از سمت ديگر ثبات است‪.‬‬
‫•‬
‫شيفت چرخشي به راست‪:‬‬
‫•‬
‫شيفت چرخشي به چپ‪:‬‬
‫•‬
‫در زبان انتقال ثبات از عالئم زير استفاده مي شود‪:‬‬
‫شيفت چرخشي به چپ‬
‫شيفت چرخشي به راست‬
‫– مثال‪:‬‬
‫• ‪R2  cir R2‬‬
‫• ‪R3  cil R3‬‬
‫‪– cil‬‬
‫‪– cir‬‬
‫شيفت حسابي‬
‫•‬
‫•‬
‫•‬
‫•‬
‫شيفت حسابي براي اعداد عالمت دار معني دار است‪.‬‬
‫شيفت حسابي به چپ عدد درون ثبات را در ‪ 2‬ضرب مي کند‪.‬‬
‫شيفت حسابي به راست عدد درون ثبات را بر ‪ 2‬تقسيم مي کند‪.‬‬
‫مهمترين ويژگي شيفت حسابي ان است که به هنگام شيفت (ضرب و تقسيم) عالمت ثبات را حفظ مي کند‪.‬‬
‫• شيفت حسابي به راست‪:‬‬
‫‪sign‬‬
‫‪bit‬‬
‫• شيفت حسابي به چپ‪:‬‬
‫‪0‬‬
‫‪sign‬‬
‫‪bit‬‬
‫شيفت حسابي‬
‫• در شيفت به چپ بايد مساله سرريز(‪ )overflow‬چک شود‪.‬‬
‫‪0‬‬
‫‪sign‬‬
‫‪bit‬‬
‫اگر قبل از شيفت مقدار دو بيت اخر‬
‫متفاوت باشد‪ ،‬سرريز رخ داده است‪.‬‬
‫‪V‬‬
‫• در زبان انتقال ثبات از عالئم زير استفاده مي شود‪:‬‬
‫– مثال‪:‬‬
‫• ‪R2  ashr R2‬‬
‫• ‪R3  ashl R3‬‬
‫شيفت حسابي به چپ‬
‫شيفت حسابي به راست‬
‫‪– ashl‬‬
‫‪– ashr‬‬
‫پياده سازي سخت افزاري شيفت ها‬
Serial
input (IR)
Select
)‫شيفت به چپ(پايين‬0
)‫شيفت به راست(باال‬1
S
0
1
MUX
H0
MUX
H1
MUX
H2
MUX
H3
A0
A1
S
A2
0
1
A3
S
0
1
S
0
1
Serial
input (IL)
‫ حسابي‬،‫ منطقي‬،‫واحد عمليات شيفت‬
S3
S2
S1
S0
Ci
‫واحد‬
‫حسابي‬
Di
Select
0 4x1
1 ‫مالتي پلکسر‬
2
3
Ci+1
‫واحد‬
‫منطقي‬
Bi
Ai
Ai-1
Ai+1
S3
0
0
0
0
0
0
0
0
0
0
0
0
1
1
S2
0
0
0
0
0
0
0
0
1
1
1
1
0
1
S1 S0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
X
X
X
X
Fi
Ei
shr
shl
Cin
0
1
0
1
0
1
0
1
X
X
X
X
X
X
‫عمليات‬
F=A
F=A+1
F=A+B
F=A+B+1
F = A + B’
F = A + B’+ 1
F=A-1
F=A
F=AB
F = A B
F=AB
F = A’
F = shr A
F = shl A
‫توضيح‬
Transfer A
Increment A
Addition
Add with carry
Subtract with borrow
Subtraction
Decrement A
TransferA
AND
OR
XOR
Complement A
Shift right A into F
Shift left A into F