You are on page 1of 16

‫‪Chapter 3 ORG‬‬

‫‪COMPUTERENGINEERINGDEPARTMENT‬‬

‫‪Done By Raneen Forsan‬‬

‫‪:::: Program Concept‬‬


‫مفهوم البرنامج عبارة عن اما هاردوٌر او سوفتوٌر بحتوي على مجموعة من االوامر حتى ٌنفذ امر معٌن‬

‫بحكٌلً بعض البرامج من الصعب التعدٌل علٌهم وهاي البرامج تكتب على اشً ٌسمى ال‪.CHIP‬‬

‫اهم اهداف استخدام الهاردوٌر ‪::‬النه بقوم بعملٌات معقدة عن طرٌق اشارات التحكم ‪.‬‬

‫وبدل ما ارجع اكتب البرنامج (التعدٌل )بامكانً ازود اشارات تحكم حتى اتحللً المشكلة ‪.‬‬

‫‪Hardwired systems are inflexible.‬‬

‫‪•General purpose hardware can do different tasks, given correct control signals.‬‬

‫‪•Instead of re-wiring, supply a new set of control signals.‬‬

‫?‪What is a program‬‬
‫البرنامج عبارة عن مجموعة خطوات متسلسلة وكل خطوة هدفها اتقوم بعملٌات حسابٌة ومنطقٌة وكل خطوة‬
‫بتحتاج الشارات تحكم من البرنامج والمسؤول عن العملٌات الحسابٌة والمنطقٌة هو ال‪ALU‬‬

‫‪A sequence of steps‬‬

‫‪•For each step, an arithmetic or logical operation is done‬‬

‫‪•For each operation, a different set of control signals is needed‬‬

‫‪Function of Control Unit::::::::‬‬

‫الً بدنا نعرفه بانه االوامر الً بالكمبٌوتر ما الها اسماء ولكن الها ‪ id:‬فبسمً ال‪id:‬‬
‫)‪operation)unique‬‬
‫‪For each operation a unique code is provided‬‬
‫‪◦e.g. ADD, MOVE‬‬
‫‪•A hardware segment accepts the code and issues the control signals‬‬

‫!‪•We have a computer‬‬

‫‪Components::‬‬

‫بتنقسم المكونات الً بتساعد على قراءة ال ‪ instruction‬الً قسمٌن‬

‫‪1)control unit :::::‬‬

‫هاي وظٌفتها انها تقرا ال ‪ opp code‬الموجودة بال ‪instruction register‬‬

‫‪2)ALU::::‬‬

‫هاي وظٌفتها اتمام اي عملٌات حسابٌة‬

‫عشان اطلع اي نتٌجة لعملٌات حسابٌة او اي معالجة الزم اقرا ال ‪ instruction‬عن طرٌق ادوات االدخال‬
‫واالخراج ‪.‬‬

‫والزم اخزن النتٌجة بشكل مؤقت داخل مٌموري‬

‫‪Computer Components: Top Level View‬‬

‫هال بدنا نحكً عن الة اسمها ال ‪HYPOTHETICAL.‬‬

‫هاي االلة مخزن فٌها مجموعة ‪ Register‬بس ما فٌها ‪ Register‬اسمه ‪IBR‬‬

‫فٌها ‪ PC,IR,MAR,MBR,I/O AR,I/OBR‬وكل الوظائف حكٌنا عنهم قبل هٌك‬

‫هاي االلة بتتكون من ‪ 16‬بت من ‪0-15‬‬

‫‪0-3_________opp code‬‬

‫‪12 bit _____________operand‬‬

‫لو كان ‪ 4 bit‬لل ‪ٌ________opp code‬عنً ممكن ندعم ‪ 2^4=16‬وهاي بحكً عنها ال ‪maximum‬‬
‫‪number of instruction .‬‬

‫شو ‪ Range‬االرقام لل ‪ 16‬بت ؟من‬

‫)‪-(2^15-1) to +(2^15-1‬‬

‫‪ 12 Operand address‬بت ٌعنً بتدعم ‪2^12=4000Loc‬‬

‫طٌب كم حجم المٌموري كاملة ؟؟ظ‬

‫القانون =الطول *العرض‬


‫‪)2^4)*(2^12)=2^16.. Bit‬‬

‫لو بدنا انحولها للكٌلو‬

‫‪2^6*2^10=2^6Kb.‬‬

‫‪::::: Instruction Cycle‬‬

‫بدنا نحكً عن مرحلتٌن القراءة والتنفٌذ وشو الً بصٌر فٌهم بالزبط ‪.‬‬
‫‪Two steps:‬‬
‫‪◦Fetch‬‬
‫‪◦Execute‬‬
‫شو بصٌر بعملٌة القراءة‬
‫‪)1‬نضع ال ‪ address‬الً بدنا نقراها بال ‪ PC‬بعدها منفعل ال ‪ Read‬ومنقرا‬

‫‪)2‬الداتا الً قراناها منودٌها لل ‪( IR‬فٌو موجود ال ‪address‬مع ال ‪ instruction‬كاملة )‬

‫‪)3‬فباخد ال ‪ address‬بودٌع على المٌموري‬

‫‪)4‬بعد ما تطلع الداتا من المٌموري بودٌها على ال ‪ALU‬‬

‫من وٌن بٌجً امر القراءة من المٌموري ؟؟؟من ال ‪CPU‬‬

‫طٌب لهون بكون خلصت امر القراءة‬

‫ال ‪::::::: Exexute‬بعتمد على طبٌعة ال ‪instr‬‬

‫اذا كنت بتعامل مع عملٌات منطقٌة بودي ال ‪ data‬لل ‪ALU‬‬

‫اذا كنت بتعامل مع ال ‪ store/load‬بروح بقرا من المٌموري‪.‬‬

‫وظٌفة ال ‪_______I/o‬قراءة وكتابة ‪.‬‬

‫‪ALU‬وظٌفة ______جمع وطرح ‪.‬‬

‫بقرا وبنفذ وبرجع ٌقرا ‪.‬‬


.)‫(قراءة من المٌمموري‬Fetch ‫هاد كله شرحناه بالسالٌد القبل عن ال‬

‫شو بصٌر بعملٌة القراءة‬


‫ ومنقرا‬Read ‫ بعدها منفعل ال‬PC ‫ الً بدنا نقراها بال‬address ‫)نضع ال‬1

) ‫ كاملة‬instruction ‫مع ال‬address ‫ (فٌو موجود ال‬IR ‫)الداتا الً قراناها منودٌها لل‬2

‫ بودٌع على المٌموري‬address ‫)فباخد ال‬3

ALU ‫)بعد ما تطلع الداتا من المٌموري بودٌها على ال‬4

CPU ‫من وٌن بٌجً امر القراءة من المٌموري ؟؟؟من ال‬

‫طٌب لهون بكون خلصت امر القراءة‬

Fetch Cycle
•Program Counter (PC) holds address of next instruction to fetch

•Processor fetches instruction from memory location pointed to by PC

•Increment PC
◦Unless told otherwise
•Instruction loaded into Instruction Register (IR)

•Processor interprets instruction and performs required actions (to execute the instruction)

instr ‫بعتمد على طبٌعة ال‬:::::::Exexute ‫ال‬

ALU ‫ لل‬data ‫اذا كنت بتعامل مع عملٌات منطقٌة بودي ال‬

.‫ بروح بقرا من المٌموري‬store/load ‫اذا كنت بتعامل مع ال‬

‫ اذا ما اتحقق‬else ‫ منروح على ال‬if –else ‫ بعمل قفز مثل جملة الشرطٌة‬control unit ‫اذا كنت بتعامل مع ال‬
. ‫الشرط‬

. ‫_______قراءة وكتابة‬I/o ‫وظٌفة ال‬

. ‫وظٌفة ______جمع وطرح‬ALU


Execute Cycle
•Processor-memory
◦data transfer between CPU and main memory
•Processor I/O
‫‪◦Data transfer between CPU and I/O module‬‬
‫‪•Data processing‬‬
‫‪◦Some arithmetic or logical operation on data‬‬
‫‪•Control‬‬
‫‪◦Alteration of sequence of operations‬‬
‫‪◦e.g. jump‬‬
‫‪•Combination of above‬‬

‫هون حكٌنا االلٌة الً بتشتغل فٌها القراءة بهاي المٌموري منعٌدها للً نسً‬

‫نضع ال ‪ address‬الً بدنا نقراها بال ‪ PC‬بعدها منفعل ال ‪ Read‬ومنقرا‬

‫‪)2‬الداتا الً قراناها منودٌها لل ‪( IR‬فٌو موجود ال ‪address‬مع ال ‪ instruction‬كاملة )‬

‫‪)3‬فباخد ال ‪ address‬بودٌع على المٌموري‬

‫‪)4‬بعد ما تطلع الداتا من المٌموري بودٌها على ال ‪ALU‬‬

‫من وٌن بٌجً امر القراءة من المٌموري ؟؟؟من ال ‪CPU‬‬

‫طٌب لهون بكون خلصت امر القراءة‬


‫هاي االلة بتدعم ‪ instruction 16‬بس احنا رح نحكً عن ‪ 3‬منهم‬

‫االشً الجدٌد الً بدنا نحكً عنه هً ‪instruction 3‬‬

‫‪ ::loads )1‬بتقرا الداتا من المٌموري وبتخزنها بال ‪ٌ A[c]=x AC‬عنً بتقرا ال ‪ address‬لل ‪C‬‬
‫‪::::store )2‬اكتب البٌانات من ال ‪ AC‬للمٌموري ‪[x]=AC‬‬

‫‪: ::::ADD)3‬بروح على ال ‪ Loc‬وبجٌب داتا الموجودة فٌو وبضٌفها لل ‪AC‬‬

‫]‪Ac+=[x‬‬

‫النه الكمبٌوتر صعب علً ٌقرا داتا بالكلمات فبقرا ارقام مثال عنا‬

‫‪ 1 on hexa: ::::load )1‬و فً ال ‪binary00 01‬‬

‫‪ 2 on hexa::::store )2‬و ‪ 0010‬فً ال ‪binary‬‬

‫‪ 5 on hexa ::::ADD(ِ3‬و ‪ 0101‬فً ال ‪Binary‬‬

‫بعد هٌك طلع عندي ارقام ال ‪ hexa‬النه صعب امثل بال ‪binary‬‬

‫برنامج موجود بالمٌموري بشكل عشوائً حجزنا ‪ X,W‬وكل وحدة اخدت ‪ location‬ال ‪W=941 X=940‬‬
‫اما ال ‪ instruction‬هً ‪300,301,302‬‬

‫‪300_____Load X‬‬

‫‪301_____Add W‬‬

‫‪302 _____Store W‬‬

‫‪)1‬خطوة رقم ‪ 1‬بدي اقرا ال ‪ instruction‬الموجودة بالموقع بس الزم اول اشً اخزن ال ‪ address‬فً‬
‫ال ‪ pc=300 pc‬بعدها بعمل قراءة ‪ٌ fetch‬عنً بقرا ‪ load x‬وبودٌها على ال ‪ IR‬وبعدها بزٌد ال ‪Pc‬‬
‫بمقدار ‪ 1‬وبعدها بنفذ ال ‪ instruction‬بروح على ال ‪ loc x‬وبودي الداتا على ال ‪AC‬‬

‫‪)2‬بدي انفذ ‪ Instruction 2‬الً هً ‪ ADD W‬وال ‪ PC=302‬وبغٌر ال ‪ Ac‬وبحط فٌه الداتا الموجودة بال‬
‫‪Add‬‬

‫طٌب كٌف البرنامج بدو ٌخزن نتائج ال ‪____ ADD ,Store ,Load‬؟‬

‫‪ADD_______5941‬‬

‫‪Store __________2941‬‬

‫‪LOAD____________1941‬‬

‫هال بدنا نعطً مثال مهم عن ال ‪ fetch ,execute‬بدون وجود ال ‪IBR /MBR/MAR‬‬

‫‪Address‬‬ ‫‪Fetch‬‬ ‫‪Execute‬‬


‫‪300‬‬ ‫‪1940‬‬ ‫‪IR=1940 /pc=301/‬‬ ‫‪AC=MEM[940]=0003‬‬
‫‪301‬‬ ‫‪5941‬‬ ‫‪IR=5941/pc=302‬‬ ‫‪Ac+=MEM[941]=0005‬‬
‫‪303‬‬ ‫‪2941‬‬ ‫‪IR=2941/pc=303‬‬ ‫‪MEM[941]=AC =0005‬‬
‫‪304‬‬ ‫‪1941‬‬ ‫‪IR=1941,Pc=304‬‬ ‫‪MEM[941]=0005‬‬
‫الخطوات نفس الً حكٌناه سابقا بس فً عنا مالحظات ال ‪ MEM[941]=0005‬هاي االخٌرة جبتلها قٌمة‬
‫ال ‪ 0005‬النه مخزن بال ال ]‪ location [941‬برضو مخزن ‪.0005‬‬

‫كمان مالحظة ال ‪ ________PC,IR‬بتتغٌر فً كل مرة‪.‬‬

‫هال بدنا ناخد مثال بوجود ال ‪MAR ,MBR,IR‬‬

‫‪Address‬‬ ‫‪Fetch‬‬ ‫‪Execute‬‬


‫‪300‬‬ ‫‪1940‬‬ ‫‪MAR=PC=300‬‬ ‫‪MBR=MEM[940]=0003‬‬
‫‪MBR=MEM[300]=1940‬‬ ‫‪AC=MBR=0003‬‬
‫‪IR=1‬‬
‫‪MAR=940‬‬
‫‪PC=301‬‬

‫‪301‬‬ ‫‪5941‬‬ ‫‪MAR=PC=301‬‬ ‫‪MBR=MEM[941]=0002‬‬


‫‪MBR=MEM[301]=5941‬‬ ‫‪AC=MBR=0005‬‬
‫‪IR=5‬‬
‫‪MAR=941‬‬
‫‪PC=302‬‬

‫‪302‬‬ ‫‪2941‬‬ ‫‪MAR=PC=302‬‬ ‫‪MBR=AC=0005‬‬


‫‪MBR=MEM[302]=2941‬‬ ‫‪MEM[941]=MBR=0005‬‬
‫‪IR=2‬‬
‫‪MAR=941‬‬
‫‪PC=303‬‬

‫منحط قٌمة ال ‪ PC‬بال ‪ MAR‬وبعدها منعمل قراءة من المٌموري والداتا الً انقرات بتروح لل ‪ MBR‬بعدها‬
‫ال ‪ OPP code‬بتروح لل ‪ IR‬وال ‪ address‬على ال ‪ MAR‬واخر اشً منزٌد ال ‪PC‬‬

‫فً حال ال ‪::::: Execute‬‬

‫منقرا الداتا ومنحطها بال ‪ MBR‬ومن ال ‪ MBR‬منروح على ال ‪...AC‬‬

‫‪ :::::: Instruction Cycle State Diagram‬اي ‪ instruction‬بتمر بمراحل شو هاي المراحل ؟‬

‫‪)1‬اول مرحلة بتبدا من عند ال ‪_______instruction address calculation‬فٌها منحط ال ‪ address‬بال ‪PC‬‬

‫‪ _____ Fetch instruction )2‬قراءة ال ‪ instruction‬وبوصلها لل ‪IR‬‬

‫‪)3‬بعد هٌك ال ‪ control circuit‬بتحدد شو هً ال ‪)instruction decoding(instruction‬‬

‫‪)4‬بعد هٌك بحدد ال ‪ Address‬الً بدي اتعامل معاه ونحطه بال ‪ MAR‬وهاي المرحلة هً ‪operand address‬‬
‫‪calculation‬‬

‫‪)5‬بعدها منعمل قراءة من المٌموري لل ‪ operand‬ونودٌه لل ‪MBR‬‬


. ‫ بتمر بنفس المراحل‬instruction ‫معلومة مش كل ال‬

‫ شو الخطوات ؟؟‬A+B ‫باختصار لو انه بدنا نعمل‬

‫)بعدها بعمل تحلٌل‬add )instruction ‫ بعدها بقرا ال‬instruction ‫ لل‬address ‫اول اشً بحدد ال‬
‫) وبعدها بجٌب قٌم وبجمعهم من خالل ال‬B(ً‫)والثان‬A(ِ ‫ االول‬operand ‫بعدها بحدد‬...... ‫ بعدها‬decode
AC ‫وبخزن الناتج بال‬.ALU

. ‫________ من المٌموري‬instruction ‫من وٌن بقرا ال‬

execute +fetch +Store ‫ مراحل ال‬3 ‫الرسمة القسم الفوق بمثل‬

Instruction ADD A,B requires single instruction cycle with the


following steps occurs:
•Fetch the ADD instruction.
•Read the contents of memory location A into the processor.
•Read the contents of memory location B into the processor
•Add the two values.
•Write the result from the processor to memory location A

ADD(A.B)

instructions ‫بدي اشوف كم بدها تاخد وقت باعتبار بانه ال‬

Arithmatic =5/logic=4/ِAccess time =2

‫ فبعتبره صفر‬calculation ‫ما ذكرت وقت لل‬


‫القانون‬

‫‪Total time=time for address calculation +time for instruction fetch +time for‬‬
‫‪decoding +time for address calculation +operand store‬‬

‫ما ذكرت وقت لل ‪ calculation‬فبعتبره صفر وال ‪ instruction fetch‬هً نفسها ‪Memory access‬‬

‫ٌعنً ‪Time=2‬‬

‫وال ‪ store‬هً ال ‪access memory =2‬‬

‫‪Total time=15‬‬

‫ولو كان عندي ‪ Memory access‬كان الجواب ‪19‬‬

‫فال ‪ ADD A‬لحالها بتاخد معً وقت ‪ 11‬النها بتشمل كل الخطوات اال اخر خطوة وما قرانا اال ‪operand‬‬
‫واحد فالجواب ‪11‬‬

‫ال ‪ logic‬بستخدمها مع العملٌات المنطقٌة‬

‫ال ‪ ALU‬آما‪Add ,sub ::::Arethmatic‬‬

‫‪and ,or ::::: ,logic‬‬

‫اول اشً بدي اعرف شو هً فكرة ال ‪:::::::interrupt‬‬

‫هً عبارة عن الوقوف عن العمل مثال لو كنت بتدرس حد حكى معك وانت بتدرس فطبٌعً انك اتوقف بسبب‬
‫التعطٌل الً صار ولكن بوجود ال ‪ interrupt‬انا بكمل دراسة حتى لو اجانً شغل ثانً‬

‫نحكً عن الكمبٌوتر ‪ :::‬اذا كان بقوم باداء معٌن واجاه امر من ال ‪ CPU‬بوجود ال ‪ interrupt‬بكمل ‪.‬‬

‫‪:::::: Interrupts‬‬

‫مثال صغٌر عنا الطابعة فٌها ‪ Buffer‬فلما ال ‪ CPU‬بتعطً امر للطابعة انها تطبع ال ‪ processor‬الخاص‬
‫بال ‪ CPU‬ما رح ٌتعطل النه ال ‪ processor‬الخاص بالطابعة بقرا من ال ‪ buffer‬للطابعة فال ‪ CPU‬ما رح‬
‫تتعطل‬

‫ال ‪:::: normal sequence‬انه بقرا ال ‪ instruction‬وبنفذهم ‪.‬واذا اجى اي عمل قطع عمله بكمل من‬
‫مكان ما وصل‬

‫ال ‪ i/o‬بس ٌخلص عادتا بعمل ‪ interrupt‬بقول لل ‪ CPU‬خلصت وبعمل تشوٌش ‪.‬‬
‫أنواع لل‬
‫‪interrupt‬‬

‫ممكن ٌحصل فً البرامج عند القسمة على عدد صفر النه غٌر مسموح فبعطل العمل ‪.‬‬
‫\ثانً نوع انه اشغل مجموعة ‪ processor‬وكل واحد ٌكون اله وقت ‪.‬‬

‫‪Classes of interrupts:‬‬
‫‪◦Program‬‬
‫‪◦e.g. overflow, division by zero‬‬
‫‪◦Timer ― Generated by internal processor timer‬‬
‫‪◦e.g. Used in pre-emptive multi-tasking‬‬
‫‪◦I/O ― from I/O controller‬‬
‫‪◦Hardware failure‬‬
‫‪◦e.g. memory parity error‬‬

‫نحكً مثال سرٌع على ال ‪ interrupt‬مثال لو كان عندي برنامج بال ‪ CPU‬واجى امر طباعة بانه ال ‪ CPU‬اتودي‬
‫الداتا لل ‪ Buffer‬الً للطابعة بدون ال ‪ interrupt‬ال ‪ CPU‬راح اضل تستنى بوجود ال ‪ interrupt‬رح تٌجً‬
‫الطابعة اتقول لل ‪ CPU‬انهٌت عملً ارجعً كملً‬

‫بدون ال ‪ interrupt‬بضٌع عنا ال ‪clock cycle‬‬

‫لٌش بستعمل ال ‪.interrupt‬؟؟ عشان ازٌد االداء والكفاءة من خالل انً اشغل ال ‪ CPU‬بالوقت الفاضً بال‬
‫‪ instruction‬تانٌات ‪.‬‬

‫بدنا نعرف مراحل ال ‪ I/O‬مثال الطابعة ؟؟؟ بتبعت ال ‪ CPU‬الداتا للطابعة وما بتستنى بترجع بسرعة وبتكمل ال‬
‫‪ instruction‬فالشاشة الخاصة بالطابعة بتكمل شغلها الً هو قراءة البٌانات بعدها بترو ح لل ‪ CPU‬بتقلها خلصت‬
‫فبروح ال ‪ CPU‬بعمل قراءة للحالة هل فعال خلصت ‪Collect State‬‬

‫هاد بوجود ال ‪interrupt‬‬

‫بدون ال ‪ interrupt‬ال ‪ CPU‬بتبعت بٌانات لل ‪ Buffer‬للشاشة كل ‪ I/O‬الها شاشة الها ‪processor‬مسؤولة عن‬
‫القراءة من ال ‪ Buffer‬وطباعتها لل ‪user‬‬

‫ال ‪::: State Flag‬هو عبارة عن ‪ Register‬بحدد اذا الطباعة نجحت او ال ‪.‬‬

‫خطوات اي ‪I/O Program‬‬

‫‪)1‬اجهز الداتا (احدد ال ‪)parameter ,Data‬الً منعمل علٌهم ال ‪Write‬‬

‫‪)2‬اخذ االمر من ال ‪I/O‬‬

‫‪)3‬الطابعة بتاخد الداتا من ال ‪ Buffer‬وتطبعهم‬

‫‪)4‬الشاشة لل ‪ I/O‬بتقرا وبتعرضهم لل ‪USER‬‬

‫‪ collect state )5‬اذا تمت الطباعة بنجاح او ال‬

‫طٌب لما ٌحكً اختار رقم ‪ 4‬هاي اي مرحلة هاي مرحلة ال ‪Send‬‬
collect state ‫ هاي اي مرحلة ؟هاي مرحلة ال‬5 ً‫ولما ٌحك‬

Program Flow Control


•Interrupts used to improve the processing efficiency.
◦The processor transfer data to a printer using the write instruction.
◦Without interrupt, after each write operation the processor must pause and
remain idle until the printer catches up.
◦With interrupts, the processor can be engaged in executing other instructions
while an I/O operation is in progress.
•The I/O program consists of three sections:
◦prepare for the actual I/O operation(4)
◦e.g. prepare parameters for the command
◦The actual I/O command.
◦without interrupt processor use polling to check if done.
◦Flags to complete I/O operation (5).
◦e.g. Flags indicating the success or failure of the operation.

‫ او ال ؟؟‬interrupt ‫ بتفحص اذا اجاها‬CPU ‫متى ال‬

‫ او ال‬interrupt ً‫ ساعتها بتشوف اذا ف‬instruction ‫ بتنفذ كل ال‬CPU ‫)بعد ما ال‬1

‫ الٌم‬collect data ‫ او بتعمل‬Next Instruction ‫ بتنفذ ال‬CPU ‫ بتروح ال‬interrupt ً‫)اذا ما ف‬2
interrupt ‫ انه استجاب لل‬.Handling interrupt ‫نحكً عنها‬

interrupt ‫ بنفذه لما ٌكون عندي‬Function ‫_____عبارة عن‬Handling ‫تعرٌف ال‬

::: ‫مثال‬

Interrupt Cycle
•Added to instruction cycle to check for interrupt.
◦Indicated by an interrupt signal
•If no interrupt, fetch next instruction

•If interrupt pending:


◦Suspend execution of current program
◦Save context
◦Set PC to start address of interrupt handler routine
◦Process interrupt
◦Restore context and continue interrupted program
•The interrupt handler program is part of the operating system that determines the nature
of the interrupt and performs required actions.
‫مثال افرض انه انا بدي اقرا ال ‪ instruction‬خاصة ببرنامج معٌن الها ال ‪ Address 700‬وال ‪interpret‬‬
‫الً بده ٌوصلنً مخزن على ا‪ location 400‬اول اشً بحط ال ‪ address‬لل ‪ instruction‬بال‪Pc‬‬
‫وبعمل ‪ Fetch‬بزٌد بعدها ال ‪ pc‬بمقدار واحد وبعدها بعمل ‪ check for interrupt‬بس ٌكون فً‬
‫‪ interrupt‬الزم استدعً ال ‪ Function‬الً اسمه ‪ handling‬فبوقف عند ال ‪ instruction‬وبروح‬
‫بنادي ال ‪ Handling‬عشان احكً للبرنامج انه انا بدي انتقل لل ‪ location‬جدٌد بخزن ال ‪ PC‬بالمٌموري‬
‫بشكل مؤقت عشان بس اخلص ارجعله ‪.‬بعد ما ٌكمل ال ‪ Handler‬برجع لل ‪ instruction‬الً انتهى من‬
‫عندها فبروح بشطب القٌمة من المٌموري وبرجعها على ال ‪PC‬‬

‫فً عملٌة ال ‪ interrupt‬رح نشتغل شغل زٌادة‬

‫ومش موجود بالبرنامج احسن من انه ٌضل ال مع هٌك بضل ‪ CPU‬فاضً‬


‫وممكن انضٌع وقت ولكن بضل اقصر بكتٌر من وقت ال‪Wait‬‬
‫كٌف ممكن نحسب ‪ Gain interrupt‬منحسب فٌو الوقت الً خلٌنا فٌو ال ‪Interrupret‬‬
‫ال‬
‫تقسٌم الوقت بدون ال ‪interrupter‬‬
‫لو فرضنا انه الوقت الً كان ال ‪processor‬شغال مع ال‬
‫‪Interpret‬هو ‪ 17‬وبدون استخدامه هو ‪13‬‬
‫فكم ال ‪ Gain‬؟؟‬
‫‪17/13‬‬
‫إل ‪ efficiency gain‬بعتمد على طبٌعة ال ‪ I/O‬اذا قصٌر او طوٌل ‪.‬‬
‫‪Efficiency Gain from Interrupts‬‬
‫‪•The process of interrupt handling involved some overhead.‬‬
‫‪◦Extra instructions required to be executed to determines the nature of‬‬
‫‪interrupt.‬‬
•Gain in efficiency of using interrupts is measured by amount of time
you keep the processor busy compared to not using interrupts.

•Gain in efficiency depends on type of I/O:


◦short wait I/O: time required to finish I/O operation is less than the
time between two consecutive I/O operations
◦Long wait I/O: time required to finish I/O operation is longer than the
time between two consecutive I/O operations

‫ إ بشتغلو مع بعض مش كل وحدة لحال عن طرٌق ال‬CPU ,Memory ,I/O‫ل‬


‫الً هً الخطوط وطبٌعة االرتباط بٌنهم بتعتمد على ال‬Interconnection
………..functionality

Connecting
•A computer consists basically of (processor, memory, I/O)
communicating with each other.

•Interconnection structure –is the collection of paths connecting the


various modules.

•Different type of connection for different modules depend on their


functionalities.

:::: Memory Connection

‫ واكون عارفة الداتا‬address ‫ بالمٌموري شرط ٌكون معً ال‬location ‫عشان اكتب على‬
write ‫ او‬read ‫الً بدي اكتبها والزم احدد العملٌة الً بقوم فٌها‬

‫ وكل واحد‬control signal ‫ عبارة عن اسالك وهاي االسالك هً ال‬communication ‫ال‬


. ‫فٌها بنقل واحد بت‬

Memory Connection
•Receives and sends data

•Receives addresses (of locations)

•Receives control signals


◦Read

◦Write
‫‪◦Timing‬‬

‫على شو بعتمد عدد ال ‪ data line‬؟؟؟على عدد البت الً بقراها او‬
‫بكتبها بكل مرة بمر فٌها على المٌموري‬

‫مثال ‪:::‬لو قرات ‪ٌ 1 word‬عنً معناها ‪ٌ 2 byte‬عنً معناها قرات ‪2*8=18 bit‬‬

‫لو قرات بكل ‪ memory access =1‬كم ‪ data line‬بدي ؟‪8*1=8bit‬‬

‫لو قرات بكل ‪ memory access =4‬بحتاج ‪32‬‬

‫قاعدة ‪:2‬عدد ال ‪ address‬بتعتمد على عدد ‪memory location‬‬

‫هاي بشبه سؤال كم عدد البت الالزم عشان اعطً ‪ Unique address‬او كم عدد ال‬
‫‪address line‬‬

‫سؤال ‪:::‬كم عدد ال ‪ address line‬حتى اعطً ‪ unique address‬ل ‪4 Mega‬‬

‫‪2^2*2^20=2^22‬‬

‫‪ 2^20‬عشان التحوٌل‬

‫كل ‪ device‬فً الها ‪ port‬فلما نبعت داتا منبعتها على رقم ال ‪ port‬منبعت داتا لل ‪ I/O‬هل‬
‫بدي ‪ Read‬وال ‪ Write‬واذا كان ‪ input device‬رح ٌاخد الداتا من برى واذا كان ‪ I/O‬رح‬
‫ٌاخد ال ‪ address‬من ال ‪PORT‬‬
Input/Output Connection(2)
•Receive control signals from computer

•Send control signals to peripherals


◦e.g. spin disk
•Receive addresses from computer
◦e.g. port number to identify peripheral
•Send interrupt signals (control)

Address ‫ شو تقرا فالزم تعطى‬memory ‫ هً الً بتحدد لل‬CPU ‫ال‬

‫____بتعطً المٌموري داتا‬CPU ‫ال‬

Read +write ‫______بتعمل‬Control signal ‫اما ال‬

address + ‫ داتا‬memory ‫___بتعطً لل‬CPU ‫ال‬

Data +interpret I/O ‫____بتاخد من ال‬CPU ‫ال‬

CPU Connection
•Reads instruction and data

•Writes out data (after processing)

•Sends control signals to other units

•Receives (& acts on) interrupts

•Computer system support the following types of data


transfers:
◦Memory to processor
◦Processor to memory
◦I/O to processor
◦Processor to I/O
◦I/O to or from memory (DMA).
‫ علٌكم‬Bus ‫ال‬

Done by <<<<Raneen Forsan >>>

You might also like