Transcript اسلايد۵
Central Processing Unit
CPU
واحد پردازش مرکزی ( )CPUقسمتی از
کامپیوتر است که اعظم پردازش داده ها در
آن انجام می شود.
می توان گفت CPUاز سه قسمت اصلی تشکیل
شده است ،که در شکل زیر آمده است.
Register set
CONTROL
ALU
ثباتها داده های موقت را که برای اجرای
دستورات نیاز هستند ،در خود ذخیره می
کنند .البته می توان این داده ها را در
حافظه اصلی نیز ذخیره کرد ،ولی حافظه یکی
CPUبرای انجام اعمال خود نیاز به ذخیره
عمومی :
ثباتهای
موقع آنها دارد.
بازیابی به
سازمان و
اطالعات
مثال برای نگهداری آدرس بازگشت در
فراخوانی برنامه ها و یا دخیره نتایج
موقت محاسبات و ...این حافظه مورد نیاز
اگر در خارج از CPUباشد ،اتالف زمان زیادی
برای CPUدر پی دارد و بهتر این است که در
خود CPUقرار گیرد و البته ظرفیت آن
محدود خواهد بود.
یک یا چند ثبات درون CPUاین حافظه را
تشکیل می دهند.
ثباتهای داخل CPUبا یکدیگر در ارتباط
باشند.
External Input
Clock
Input
: سازمان ثباتهای عمومی
R1
R2
R3
R4
R5
R6
R7
Load
(7 lines)
MUX
SELA
MUX
A bus
3×8
decoder
SELD
OPR
B bus
Arithmetic logic unit
(ALU)
External Output
Output
تعداد بیت ها
(a) Block diagram
3
SELA
3
SELB
3
SELD
(b) Control word
5
OPR
SELB
𝟑𝑹 𝑹𝟏 𝑹𝟐 +
Clock
Input
R1
R2
R3
R4
R5
R6
R7
SELB
MUX
MUX
B bus
SELA
A bus
Arithmetic logic unit
)(ALU
Load
)(7 lines
3×8
decoder
SELD
OPR
ابتدا ، SELAمحتوای 𝟐𝑹 و
محتوای SELBمحتوای 𝟑𝑹 را
به خروجی MUXها می برند.
OPRنیز عمل جمع را
برای ALUمشخص میکند.و
SELDو نیز ورود بار ثبات
𝟏𝑹را فعال میکند تا
خروجی ALUبه 𝟏𝑹 منتقل
شود SELA .و SELBکه یکی
از هفت ثبات را انتخاب می
کنند .ورود هشتمی را نیز
انتخاب کنند .این ورودی
حافظه است.
، OPRپنچ بیت است و می
تواند 32ریز عمل را
برای ALUمشخص کند .مثال
کافیست
ریز عمل
انجام
برای
SELA
SELB
SELD
OPR
کلمه کنترلی به شکل زیر
باشد:
1
Output
(a) Block diagram
5
3
OPR
SELD
3
SELB
0
1
0
0
1
0
0
1
1
0
0
1
0
3
SELA
(b) Control word
که عمل جمع را مشخص میکند.
پشته حافظه ای است که اطالعات را به نحوی
سازمانمیپشته
کند :که آخرین عنصر ذخیره شده ،اولین
ذخیره
عنصر قابل برداشت است؛ یعنی دارای یک ساختار
آخرین ـ ورودی ـ اولین ـ خروجی ـ ()LIFO
میباشد .پشته می تواند خود حافظه ای جداگانه
باشد و یا بخشی از حافظه اصلی کامپیوتر را به
عنوان پشته تعریف کرد.دو عمل روی پشته قابل
عمل به
تواند
تعریفمی
SP
PUSHکه موجب درج عنصری در
است:
باالی پر
خانه
پشتهو عمل POPکه موجب حذف عنصر
باالی شود
پشته می
پشتهیا به
باالیکند
اشاره
میگردد.ثباتی که آدرس پشته را
از
که میاین
خانهخودخالی
کند ،ثبات ()SPپشته نام
ذخیره
در
پیاده
به
بستگی.
دارد
شکل
دارد.
سازی
ساختار یک پشته 64
کلمه ای را نشان
میدهد که به صورت
Last Item
مجزا
ای
حافظه
طراحی شده است ،به
پیاده
نوع
این
Address
64
FULL
EMTY
4
3
C
2
B
1
A
0
DR
SP
در این شکل SP،همواره
Address
پشته:
سازمان
باالی پشته
کلمه
آدرس
را در خود دارد .طبق
64
شکل Cروی پشته قرار
دارد .بنابراین SP=3
FULL
EMTY
می باشد POP .برای
کردن ،کلمه ای که در
آدرس 3قرار دارد را
4
C
SP
باید برداشت و SPرا
3
B
2
یکی کم کرد .برای
A
1
PUSHکردن ابتدا باید
0
Last Item
SPرا بای یک جمع کرد
و سپس کلمه را داخل
DR
پشته وارد کرد.در این
دو پرچم ،برای چک پر یا خالی بودن پشته
، SPشش
شکل ثبات
.و . FULLاگر پشته خالی
EMTY
استفاده می شود :است
بیتی
شود EMTYو اگر FULLپرشود .هرگاه SPشامل
آدرس 63باشد ،جمع آن با یکSP ،را صفر می
کند ،پس آخرین عنصر در خانه صفر قرار می
گیرد و پشته پر می شود.
توجه به شکل
PUSH:
SP SP 1
M [ SP ] DR
SP = 0,
EMTY = 1,
FULL = 0
:سازمان پشته
باPOP وPUSH عملیات
:به این صورت است
: Increment SP
: Write to the stack
If ( SP 0) then ( FULL 1) : Check if stack is full
EMTY 0
POP: DR M [ SP]
: Mark not empty
: Read from the top of stack
: Decrement Stack Pointer
SP SP 1
If ( SP 0) then ( EMTY 1) : Check if stack is empty
Mark not full
FULL
0 حالت پر یا خالی: دو
پشته به
بودن
در هرSP :توجه
FULL ولی بیت های،خانه صفر پشته اشاره می کند
. تمایز بین این دو حالت را نشان می دهدEMTYو
دیتا را در پشته، می توان ابتداPUSH برای:نکته
ابتداPOP را افزایش دهیم و برایSP قرار داد سپس
. را کاهش دهیم و سپس بخوانیمSP
پشته
سازمان
از:حافظه
قسمتی
شکل
ای:
اصلی حافظه
پشته
را نشان
کامپیوتر
می دهد که به سه بخش
تقسیم شده است:
برنامه ،داده و پشته SP
به کلمه باالی پشتهاشاره میکند .همانطور
که می دانیم ثباتهای AR
و PCنیز آدرس حافظه را
در اختیار میگذارند.
PCدر هنگام عملیاتواکشی استفاده می شود و
به قسمت دستورات اشاره
می کند ،در فاز اجرا
برای خواندن عملوند
مورد نیاز است ،و به
منظور PUSHیا POP
کردن کلمات استفاده می
شود.
Address
Memory unit
1000
PC
Program
)(instructions
2000
AR
Data
)(operands
3000
Stack
3997
SP
3998
3999
4000
4001
DR
سازمان پشته:
* Error Condition
پشته حافظه = 1ای
PUSH when:
FULL
POP when EMTY = 1
مثال:
M [ SP] DR
The first item is stored at address 4000
کلمهPOP
اولین : DR
پشته
طبق
شکل M [ SP
]
* Memory Stack
PUSH = Address
* Register Stack
PUSH = Address
SP = 4001
Address
Memory unit
1000
PC
Program
)(instructions
2000
AR
Data
)(operands
3000
Stack
3997
SP
3998
3999
4000
4001
Start Here
DR
Memory Stack :
PUSH : SP SP 1
SPمی باشد
4001
آدرس
SP
دارای 1
و پشته با کاهش آدرس ،رشد
میکند .بنابراین اولین
کلمه در آدرس 4000ذخیره
شده و آخرین کلمه در آدرس
،3000می توان برای چک پر
یا خالی بودن پشته از دو
ثبات استفاده کرد که یکی
آدرس پایین پشته و دیگری
آدرس باالی پشته را در خود
دارد.
بعد از هر SP،PUSHبا
ثبات باالی پشته و پس از
4000
4001
4002
4003
4004
4005
4006
:سازمان پشته
:پشته حافظه ای
:مثال
…
…
…
…
Call sub1
…
…
5005
5002
Main program
5000
5001
5002
5003
5004
5005
5006
…
Call sub2
…
…
Call sub2
…
RET
Sub1
4005
…
…
…
…
…
…
RET
Sub2
Stack
کاربرد پشته در محاسبه عبارات
ریاضی:
منظور استفاده از پشته برای عبارات
به
ریاضی ،باید عبارت را به فرم پسوندی یا
فرم معکوس لهستانی نوشت.
مثال:
A * B + C * D AB * CD * +
: ( 3 * 4 ) + ( 5 * 6 ) 34 * 56 * +
l
6
30
5
5
4
42
12
12
12
12
3
3
+
*
6
5
*
4
3
نکته :
-1به تعداد عملوند PUSH ،کرده ایم یعنی 4
عمل PUSHانجام داده ایم.
-2تعداد کلمات مورد نیاز در پشته مطابق شکل
3کلمه است.
فرمت دستورات در فصل قبل برای
شد.
فرمت دستور العمل:
ماشین پایه بررسی
معموال هر فرمت دستور شامل فیلدهای زیر است:
-1یک فیلد کد عملیات )(OPCODE
عملی است که انجام میشود.
-2یک فیلد آدرس که یک آدرس حافظه یا یک ثبات
پردازنده را مشخص میکند.
-3یک فیلد ،مد آدرس دهی را مشخص می کند؛ یعنی
روشی که عملوند پیدا میشود را تعیین می کند.
سایر فیلدها نیز می توانند استفاده شوند ،مثال
فیلدی که تعداد شیفت ها را در یک دستور شیفت مشخص
می کند.
که مشخص کننده نوع
اغلب کامپیوترها دارای سه نوع ساختار کلی هستند:
-1ساختار مبتنی بر یک آکوموالتور( مانند ماشین
پایه در فصل قبل)
-2ساختار چندثباتی (مبتنی بر ثباتهای عمومی)
-3ساختار پشته ای
-1ساختار مبتنی بر یک آکوموالتور:
کامپیوتر معرفی شده در فصل قبل مبتنی بر ACاست.
ماشین فقط دارای یک فیلد آدرس
در این
فرمت دستور
فرمت
العمل:
دستور
است .
مثل ، ADD Xمحتویات حافظه Xرا با ACجمع می
کندAC AC+M[X]:
-2ساختار چندثباتی (مبتنی بر ثباتهای عمومی):
مثالی از ساختار کامپیوترهای چندثباتی در قبال بیان
شده است .در این کامپیوتر احتیاج به 3فیلد یا 2
فیلد آدرس دارد .مثال دستور 𝟑𝑹 ، ADD 𝑹𝟏 , 𝑹𝟐 ,ا 𝟐𝑹 را با
𝟑𝑹 جمع و حاصل را به 𝟏𝑹 منتقل می کند 𝑹𝟏 𝑹𝟐 + 𝑹𝟑 .
-3ساختار پشته ای:
از دستورات PUSHو POPاستفاده می کنند که این
دستورات احتیاج به یک فیلد آدرس دارند .بنابراین
دستور PUSH Xکلمه ای که در آدرس Xقرار دارد را به
باالی پشته منتقل میکند.
در این ماشین ،دستوراتی که روی عملوند ها ،عمل می
کنند نیاز به فیلد آدرس ندارند.
مثال دستور ADDدر این نوع ماشین دو عملوند باالی
پشته را برداشته و جمع کرده و حاصل را به پشته باز
فرمت دستور العمل:
• مثال:
می خواهیم عبارت )]M[X]=(M[A]+M[B])*(M[C]+M[D
را با دستورات صفر ،یک ،دو و سه آدرسی محاسبه
کنیم:
)• X = (A + B)*(C + D
1) Three-Address
] R1 M [ A] M [ B
ADD
R1, Instruction
A, B
] R 2 M [C ] M [ D
R2, C, D
ADD
M [ X ] R1 R 2
X, R1, R2
MUL
• مزیت :کوتاهی برنامه ها
• عیب :طوالنی بودن دستور
:فرمت دستور العمل
X = (A +
• 2) Two-Address Instruction
R1 M [ A]
R1 R1 M [ B ]
MOV
R1, A
ADD
R1, B
MOV
R2, C
ADD
R2, D
R 2 M [C ]
R2 R2 M [ D]
MUL
R1, R2
R1 R1 R 2
MOV
X, R1
M [ X ] R1
• 3) One-Address Instruction
LOAD
A
AC M [ A]
ADD
B
STORE
T
LOAD
C
ADD
D
MUL
T
STORE
X
AC AC M [ B ]
M [T ] AC
AC M [C ]
AC AC M [ D ]
AC AC M [T ]
M [ X ] AC
:• ادامه مثال
B)*(C + D)
:فرمت دستور العمل
:• ادامه مثال
X = (A +
• 4) Zero-Address Instruction
PUSH
A
PUSH
B
ADD
PUSH
C
PUSH
D
TOS ( A B )
TOS C
TOS D
TOS (C D )
TOS (C D ) ( A B )
ADD
MUL
POP
TOS A
TOS B
X
M [ X ] TOS
B)*(C + D)
دستورات :RISC
REDUCED INSTRUCTION SET
COMPUTER
• دستورات در این ماشین محدود به loadو storeمی باشد.
• ارتباط بین ثبات های پردازنده و حافظه از طریق این دو
دستور می باشد.
• سایر دستورات فقط روی ثبات ها عمل می کنند و هیچ
)X=(A+B)*(C+D
lمثال:
مراجعه ای به حافظه ندارند.
]R1 M [ A
]R2 M [ B
] R 3 M [C
LOAD R1, A
LOAD R2, B
LOAD R3, C
]R4 M [ D
R1, R1, R2 R1 R1 R 2
R3, R3, R4 R 3 R 3 R 4
ADD
R1, R1, R3 R1 R1 R 3
MUL
LOAD R4, D
X, R1 M [ X ] R1
ADD
STORE
مدهای آدرس دهی:
• مد آدرس دهی مشخص می کند که عملوند چگونه
انتخاب شود.
برای برنامه نویس امکاناتی از قبیل اشاره گر بهحافظه ،شمارنده برای حلقه و ...فراهم می کند.
کاهش تعداد بیت در فیلد آدرس در دستور دستور برای داشتن چندین مد آدرس دهی باید دارایباشد مثال
فیلد مد آدرس دهی
Opcode
Addressچند بیتیMode
مدهای آدرس دهی:
• مد ضمنی :implied
•
•
عملوند به صورت ضمنی در دستورالعمل مشخص است
Examples
•
مکمل کردن انباره Com:
•
•
عملوند در ثبات انباره است
PUSH : Stack push
•
عملوند باالی پشته قرار می گیرد
• مد بالفصل :immediate
•
•
•
فیلد عملوند شامل عملوند واقعی است
برای مقدار دهی اولیه ثبات ها استفاده می شود
LD # 50
Example : LD #NBR
• مد ثباتی :register made
•
•
عملوندها در ثبات ها هستند
ثبات مورد نظر با توجه به فیلد آدرس دهی ثبات در دستورالعمل
تعیین می شود
•
k-bit
specify
any one of 2k registers
Mode
ACregister
R1 field canImplied
مدهای آدرس دهی:
• مد ثباتی غیر مستقیم :register indirect made
•
•
تعیین یک ثبات که آدرس عملوند را در خود دارد
)Example : LD (R1
]AC M [R1
• مد افزاینده یا کاهنده خودکار Autoincrement or
AC M [ R1], R1 R1 1
Autodecrement Mode
Example (Autoincrement) : LD (R1)+
• مد آدرس دهی مستقیم یا مطلق direct-absolute
•
•
آدرس موثر در فیلد آدرس قرار می گیرد
Example : LD ADR
• مد آدرس دهی غیر مستقیم indirect address mode
•
استAC ،
M [M
آدرس موثر در آدرسی از]][ ADR
که آن آدرس ،در فیلد عملوند
حافظه
قرار دارد
•
Example : LD @ADR
مدهای آدرس دهی:
• مد آدرس دهی نسبی relative
مقدار PCبه فیلد آدرس اضافه می شود تا آدرس موثر تولید گردد .البته
یافت
افزایش
AC
برنامهM [ PC
بعد از اینکه شمارنده ]ADR
•
Example : LD $ADR
• مد آدرس دهی ایندکس یا شاخص دار indexed
•
ACاضافه می شود تا آدرس موثر
آدرس
فیلد
مقدار ( XRثبات شاخص] )
M
به[ ADR
XR
تولید گردد.
•
)Example : LD ADR(XR
• مد آدرس دهی ثبات پایه base register
•
مقدار BRثبات پایه به فیلد آدرس اضافه می شود تا آدرس موثر تولید
گردد.
مدهای آدرس دهی:
قرار دارد
مثال :در آدرس های 200و 201دستور Load to AC
که فیلد آدرس آن شامل عدد 500است .فیلد دوم دستور که
در کلمه اول دستور واقع است ،مد آدرس دهی است .می
خواهیم با توجه به مقادیر مشخص شده در شکل اثر مدهای
مختلف را بررسی کنیم.
Memory
Mode
Load to AC
Address
200
PC = 200
AC
آدر
س
موث
ر
202
400
800
500
مستقیم
202
400
500
201
بالفصل
202
400
300
800
غیرمستقیم
202
400
325
702
نسبی
400
900
600
شاخص دار
400
-
ثباتی
700
400
ثباتی غیر
مستقیم
400
پس افزاینده
PC
R1
Address = 500
201
Next instruction
202
450
399
700
400
800
500
900
600
202
325
702
202
400
202
400
300
800
R1 = 400
XR = 100
AC
202
401
700
مد آدرس دهی
:دستورات کامپیوتر
:• دستورات اغلب کامپیوترها در سه شکل دسته بندی می شوند
•
• دستورات
• دستورات
دستورات انتقال داده
دستکاری داده ها
خاص پردازنده
:دستورات انتقال داده
•
•
•
•
•
•
Load : transfer from memory to a processor register, usually an AC (memory read)
Store : transfer from a processor register into memory (memory write)
Move : transfer from one register to another register
Exchange : swap information between two registers or a register and a memory word
Input/Output : transfer data among processor registers and input/output device
Push/Pop : transfer data between processor registers and a memory stack
:load مدهای آدرس دهی برای دستور
•
•
•
•
•
@ : Indirect Address
$ : Address relative to PC
# : Immediate Mode
( ) : Index Mode, Register Indirect, Autoincrement register
•
دستورات کامپیوتر:
• دستورات دستکاری داده ها
•
• دستورات
• دستورات
دستورات حسابی
منطقی و دستکاری بیت
شیفت
• دستورات کنترل برنامه
مانند …branch , jump, call, return, compare,
:شرایط بیت های وضعیت
در نظر گرفته شده است که درALU در کامپیوترها ثباتی همراه با
.آن بیت های وضعیت ذخیره می شوند
Z
C
S
V
• Bit C (carry) : set to 1 if the end carry C8 is 1
• Bit S (sign) : set to 1 if F7 is 1
• Bit Z (zero) : set to 1 if the output of the ALU contains all 0’s
• Bit V (overflow) : set to 1 if the exclusive-OR of the last two carries (C8 and C7) is
equal to 1
•
کامپیوتر :RISC
REDUCED INSTRUCTION SET
COMPUTER
•
)Complex Instruction Set Computer (CISC
•
• بعضی دستورات کاربرد خاص دارند و بندرت بکار می روند
• مدهای آدرس دهی زیاد دارند .بین 5تا 20مد مختلف
• دستورات با طول متفاوت
• دارای دستوراتی که می توانند با عملوند های حافظه ای
دستورات زیاد معموال بین 100تا 250
سروکار دارند.
• )Reduced Instruction Set Computer (RISC
•
• مدهای آدرس دهی نسبتا کم
• دسترسی به حافظه در اینجا فقط منحصر به loadو storeاست.
• تمام عملیات داخل ثبات های پردازنده انجام می شود.
• دستورات طول ثابت دارند که براحتی ترجمه می شوند.
• اجرای دستورات معموال در یک سیکل انجام می شود.
• واحد کنترل سیم بندی شده است.
دستورات نسبتا کم
همپوشي پنجره ها در ماشین :RISC
•
شش ثبات
روال،
برای سرعت بخشیدن به عملیات فراخواني و برگشت از زیر مشترک
A,D
پنجره های همپوشانی شده استفاده می گردد.
•
ده ثبات محلی D
این پنجره ها برای جلوگیری مصرف زمان برای انتقال پارامترها
شش ثبات
مشترک
C,D
و برگشت نتایج بین روال ها می باشد.
•
به هر فراخوانی زیر برنامه ،یک پنجره جدید که شامل تعدادی
ثبات از فایل ثبات است ،تخصیص می یابد.
•
ده ثبات محلی C
شش ثبات
فراخوانی زیر برنامه
در واقع یک اشاره گر وجود دارد که هنگام
مشترک
C, B
افزایش می یابد و پنجره جدید را فعال می کند
و هنگام بازگشت
پنجرهمحلی
ده ثبات
قبلی Bفعال
از زیر برنامه ،اشاره گر کاهش یافته و
شش ثبات
اختیار
می شود و و پنجره زیربرنامه مشترک متغیرها
ثبات
مشترک را درده
B, A
انتقال پارامترها
پنجره فعال فعلی قرار می گیرد و سرعت
عمومی
به زیر روال ها افزایش می یابد .ده ثبات محلی A