版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Chapter3
BasicInput/OutputContentsAccessingI/ODevicesProgram-controlledI/OInterrupt-basedI/ODirectMemoryAccess2AccessingI/ODevicesComputersystemcomponentscommunicatethroughaninterconnectionnetwork.3AccessingI/ODevicesAddressspaceandmemoryaccessconceptsfromprecedingchapteralsoapplytoI/Odevices.EachI/Odevicemustconsistofsomeaddressablelocations.TheselocationsareaccessedwithLoadandStoreinstructions.TheselocationsareimplementedasI/Oregisters.4AccessingI/ODevicesTheI/OdevicesandthememorysharethesameaddressspaceMemory-mappedI/ONospecialcommandsforI/OI/Olooksjustlikememoryread/writeExample: Load R2,DATAIN Store R2,DATAOUTDATAINistheaddressofaregisterinaninputdevice.DATAOUTistheaddressofaregisterinanoutputdevice.5AccessingI/ODevicesMemory-mappedI/OAdvantageAnymachineinstructionthatcanaccessmemorycanbeusedtotransferdatatoorfromanI/Odevice.DisadvantageValuablememoryaddressspaceisusedup.6AccessingI/ODevicesSeparatedI/O(IsolatedI/O)SeparateaddressspacesSpecialI/OinstructionstoperformI/OtransfersE.g.,IN,OUTAdvantageI/OdevicesdealwithfewaddresslinesNoteAseparateI/OaddressspacedoesnotnecessarilymeanthattheI/Oaddresslinesarephysicallyseparatefromthememoryaddresslines.7I/ODeviceInterfaceInput/OutputDeviceProblemsWidevarietyofperipheralsDeliveringdifferentamountsofdataAtdifferentspeedsIndifferentformatsAllslowerthanCPUandRAMNeedI/Ointerfaces8I/ODeviceInterfaceAnI/Odeviceinterfaceisacircuitbetween
adeviceandtheinterconnectionnetwork.Providesthemeansfordatatransferand
exchangeofstatusandcontrolinformation.Includesdata,status,andcontrolregisters
accessiblewithLoadandStoreinstructions.Memory-mappedI/Oenablessoftwaretoviewtheseregistersaslocationsinmemory.91011Program-controlledI/O(Polling)Interrupt-drivenI/ODirectMemoryAccess(DMA) CommunicationMethodswithCPUProgram-ControlledI/ODiscussI/Oissuesusingkeyboard&display.Readkeyboardcharacters,storeinmemory,anddisplayonscreen.Implementthistaskwithaprogramthatperformsalloftherelevantfunctions.Thisapproachcalledprogram-controlledI/O.Howcanweensurecorrecttimingofactions
andsynchronizedtransfersbetweendevices?12SignalingProtocolforI/ODevicesAssumethattheI/Odeviceshaveawaytosenda“ready”signaltotheprocessor.Forkeyboard,indicatescharactercanberead
soprocessorusesLoadtoaccessdataregister.Fordisplay,indicatescharactercanbesentsoprocessorusesStoretoaccessdataregister.The“ready”signalineachcaseisastatusflag
instatusregisterthatispolledbyprocessor.13ExampleI/ORegistersForsampleI/Oprogramsthatfollow,assumespecificaddresses&bitpositionsforregisters.Registersare8bitsinwidthandword-aligned.Forexample,keyboardhasKINstatusflaginbitb1ofKBD_STATUSregisterataddress0x4004.ProcessorpollsKBD_STATUSregister,
checkingwhetherKINflagis0or1.IfKINis1,processorreadsKBD_DATAregister.1415WaitLoopforPollingI/OStatusProgram-controlledI/Oimplementedwithawaitloopforpollingkeyboardstatusregister:
READWAIT: LoadByte R4,KBD_STATUS
And R4,R4,#2
Branch_if_[R4]0 READWAIT
LoadByte R5,KBD_DATAKeyboardcircuitplacescharacterinKBD_DATAandsetsKINflaginKBD_STATUS.CircuitclearsKINflagwhenKBD_DATAisread.16WaitLoopforPollingI/OStatusSimilarwaitloopfordisplaydevice:
WRITEWAIT: LoadByte R4,DISP_STATUS
And R4,R4,#4
Branch_if_[R4]0 WRITEWAIT
StoreByte R5,DISP_DATADisplaycircuitsetsDOUTflaginDISP_STATUSafterpreviouscharacterhasbeendisplayed.CircuitautomaticallyclearsDOUTflag
whenacharacteristransferredtoDISP_DATA.17RISC-andCISC-styleI/OProgramsConsidercompleteprogramsthatusepollingtoread,store,anddisplayalineofcharacters.Eachkeyboardcharacterechoedtodisplay.Programfinisheswhencarriagereturn(CR)characterisenteredonkeyboard.LOCisaddressoffirstcharacterinstoredline.18RISC-styleprogram19CISC-styleprogramCISChasTestBit,CompareByteinstructionsaswellasauto-incrementaddressingmode20InterruptsDrawbackofawaitloop:processorisbusy.WithlongdelaybeforeI/Odeviceisready,cannotperformotherusefulcomputation.Insteadofusingawaitloop,letI/Odevicealerttheprocessorwhenitisready.Meanwhile,processorperformsotherusefultasksusingthewaitingperiod.2122InterruptAninterruptisaneventthatcausestheprocessortostopitscurrentprogramexecutionandswitchtoperforminganinterruptserviceroutine.InterruptRequestSignalAsignalthatanI/Odevicesendstotheprocessorthroughoneofthebuscontrollineswhenitisready.ConceptofInterrupt23ConceptofInterrupt24InterruptAcknowledgeSignalCPUissuesthesignaltotellthedevicethatinterrupthasbeenrecognized.Inresponse,deviceremovesinterruptrequest.Acknowledgementcanalsobedonebyaccessingstatusordataregisterindeviceinterface.InterruptServiceRoutine(InterruptHandler)Theroutineexecutedinresponsetoaninterruptrequestiscalledtheinterruptserviceroutine.ConceptofInterruptExampleofUsingInterruptsConsiderataskwithextensivecomputationandperiodicdisplayofcurrentresults.Timercircuitcanbeusedfordesiredinterval,withinterrupt-requestsignaltoprocessor.Twosoftwareroutines:COMPUTE&DISPLAY.ProcessorsuspendsCOMPUTEexecutiontoexecuteDISPLAYoninterrupt,thenreturns.DISPLAYisshort;timeismostlyinCOMPUTE.2526Interrupt-ServiceRoutineDISPLAYisaninterrupt-serviceroutine.Forexample,assumeinterruptsignalassertedwhenprocessorisexecutinginstructioni.Instructioncompletes,thenPC(i+1)savedtotemporarylocationbeforeexecutingDISPLAY.Return-from-interruptinstructioninDISPLAY
restoresPCwiththesavedaddressfromthattemporarystoragelocation.Savereturnaddressonstackorinaregister.Saving/restoringofgeneral-purposeregisterscanbeautomaticorprogram-controlled.2728DifferencebetweensubroutineandinterruptserviceroutineAsubroutineperformsafunctionrequiredbytheprogramfromwhichitiscalled.Theinterruptserviceroutineisexecutedatanytimeduetointerrupt,notduetoCall.Itmaynothaveanythingincommonwiththeprogrambeingexecutedatthetimetheinterruptisreceived.Interrupt-ServiceRoutineEnablingandDisablingInterruptsMustprocessoralwaysrespondimmediatelytointerruptrequestsfromI/Odevices?Sometaskscannottolerateinterruptlatency
andmustbecompletedwithoutinterruption.Needwaystoenableanddisableinterrupts,
bothinprocessorandindeviceinterfaces.Providesflexibilitytoprogrammers.UsecontrolbitsinprocessorandI/Oregisters.29EventSequenceforanInterruptProcessorstatus(PS)registerhasIEbit.ProgramsetsIEto1toenableinterrupts,andsetsIEto0toignoreinterrupts.Weshouldensurethatthesameorotherrequestsignaldoesnotleadtosuccessiveinterruptions.Whenaninterruptisrecognized,processorsavesprogramcounterandstatusregister(IE=1).IEbitclearedto0sothatsameorothersignaldoesnotcausefurtherinterruptions.Afteracknowledgingandservicinginterrupt,restoresavedstate,whichsetsIEto1again.30HandlingMultipleDevicesAnumberofdevicescapableofinitiatinginterruptsmaybeconnectedtotheprocessor.Whichdeviceisrequestingservice?Howistheappropriateserviceroutineexecuted?Shouldinterruptnestingbepermitted?Howaretwoormoresimultaneousrequestshandled?31Polling(NonvectoredInterrupt)32For1stquestion,polldevicestatusregisters,checkingifIRQbitforeachdeviceisset.For2ndquestion,calldevice-specificroutineforfirstsetIRQbitthatisencountered.VectoredInterruptsVectoredinterruptsreduceservicelatency;
noinstructionsexecutedtopollmanydevices.Letrequestingdeviceidentifyitselfdirectlybysendingasignalorabinarycodetotheprocessoroverthebus(typicallydatabus).Processorusestheinformationtofindtheaddressofcorrectroutineinaninterrupt-vectortable.Thestartingaddressoftheinterrupt-serviceroutineofadevicearecalledtheinterruptvector.Interruptvectortablecontainsthememoryaddressesofinterrupthandlers.33VectoredInterrupts34Tablelookupisperformedbyhardware.Interrupt-vectortableislocatedatfixedaddress,butroutinescanbelocatedanywhereinmemory.VectoredInterrupts35DaisyChainVectoredInterrupts36PriorityInterruptNestingServiceroutinesusuallyexecutetocompletion.Insomecases,allowtoacceptaninterruptfromaspecialdeviceduringtheexecutionofaninterrupt-serviceroutineforanotherdevice.ThisisinterruptnestingItcanbedonebyhavingserviceroutinessetIEbitto1Formorecontrol,usedifferentprioritylevels.Currentlevelheldinprocessorstatusregister.Acceptrequestsonlyfromhigher-leveldevices.37SimultaneousRequestsTwoormoredevicesrequestatthesametime.Arbitrationorpriorityresolutionisrequired.WithsoftwarepollingofI/Ostatusregisters,serviceorderdeterminedbypollingorder.Withvectoredinterrupts,hardwaremustselectonlyonedevicetoidentifyitself.Usearbitrationcircuitsthatenforcedesiredpriorityorfairnessacrossdifferentdevices.38ControllingI/ODeviceBehaviorProcessorIEbitsettingaffectsalldevices.Desirabletohaveamechanismtocontrolwhetheradeviceisallowedtointerrupttheprocessor.AnIEbitinthedevice’scontrolregister.Suchacontrolregisteralsoenablesselectingthedesiredmodeofoperationforthedevice.AccessregisterwithLoad/Storeinstructions.Forexampleinterfaces,settingKIEorDIEto1enablesinterruptsfromkeyboardordisplay.39ProcessorControlRegistersInadditiontoaprocessorstatus(PS)register,othercontrolregistersareoftenpresent.IPSregisteriswherePSisautomaticallysavedwhenaninterruptrequestisrecognized.IENABLEhasonebitperdevicetocontrolifrequestsfromthatsourcearerecognized.IPENDINGhasonebitperdevicetoindicateifinterruptrequesthasnotyetbeenserviced.4041AccessingControlRegistersUsespecialMoveinstructionsthattransfervaluestoandfromgeneral-purposeregisters.TransferpendinginterruptrequeststoR4:
MoveControl R4,IPENDINGTransfercurrentprocessorIEsettingtoR2:
MoveControl R2,PSTransferdesiredbitpatterninR3toIENABLE:
MoveControl IENABLE,R342ExamplesofInterruptProgramsUsekeyboardinterruptstoreadcharacters,butpollingwithinserviceroutinefordisplayIllustrateinitializationforinterruptprograms,includingdatavariablesandcontrolregistersShowsavingofregistersinserviceroutineConsiderRISC-styleandCISC-styleprogramsWeassumethatpredeterminedlocationILOC
isaddressof1stinstructioninserviceroutine43444546MultipleInterruptSourcesTouseinterruptsforbothkeyboard&display,callsubroutinesfromILOCserviceroutineServiceroutinereadsIPENDINGregisterCheckswhichdevicebit(s)is(are)set
todeterminewhichsubroutine(s)tocallServiceroutinemustsave/restoreLinkregisterAlsoneedseparatepointervariabletoindicate
outputcharacterfornextdisplayinterrupt4748ExceptionsAnexceptionisanyinterruptionofexecution.ThisincludesinterruptsforI/Otransfers.Buttherearealsoothertypesofexceptions.Recoveryfromerrors:detectdivisionbyzero,orinstructionwithaninvalidOPcode.Debugging:useoftracemode&breakpoints.Operatingsystem:softwareinterrupttoenter.ThelasttwocasesarediscussedinChapter4.49RecoveryfromErrorsAftersavingstate,serviceroutineisexecuted.Routinecanattempttorecover(ifpossible)
orinformuser,perhapsendingexecution.WithI/Ointerrupt,instructionbeingexecutedatthetimeofrequestisallowedtocomplete.Iftheinstructionisthecauseoftheexception,serviceroutinemustbeexecutedimmediately.Thus,returnaddressmayneedadjustment.5051DirectMemoryAccessInterruptdrivenandprogrammedI/OrequireactiveCPUinterventionTransferrateislimitedCPUistiedupinmanaginganI/OtransferSolution:DirectMemoryAccess(DMA)Usedforhigh-speedblocktransfersdirectlybetweenanexternaldeviceandthemainmemoryADMAcontrollerisprovided
totakeovercontrolofthesystemfromCPUDuringthetransfer,theCPUisnotinvolved52DMAOperationProgram-ControlledI/OinDMA53DMAOperationDMAcontrolsdatatransfer54DMAOperationI/OInterruptinDMA55DMAOperationTheCPU“prepares”theDMAoperationbytransferringinformationtoaDMAcontroller(DMAC)LocationofthedataonthedeviceLocationofthedatainmemorySizeoftheblocktotransferDirectionofthetransferModeoftransfer(burst,cyclesteal)Whenthedeviceisreadytotransferdata,theDMACtakescontrolofthesystembuses(DMACdealswithtransfer),andCPUcarriesonwithotherworkDMACsendsinterruptwhenfinished56DMAControllerAcomputersystemwithDMAcontrollerBR:BusRequestBG:BusGrant57DMAControllerFunctionofDMAControllerTakeovercontrolofthedatatransferbetweenthememoryandI/Odevices.Forwordstransferred,theDMAcontrollerProvidesthememoryaddressProvidesallthebussignalthatcontroldatatransferIncreasesthememoryaddressforsuccessivewordsKeepstrackofthenumberoftransfers58DMAControllerRegistersinaDMAinterfaceStartingaddressWordcountDoneIEIRQStatusandcontrolWR/31301059DMAControllerInternalOrganization60DMATransferModeBurstMode(BlockMode)OncetheDMAcontrollerisgrantedaccesstothesystembusbytheprocessor,ittransfersallbytesofdatainthedatablockbeforerelinquishingcontrolofthesystembusbacktotheprocessor.UsageItisusefulforloadingprogramsordatafilesintomemory.DisadvantageRendertheprocessorinactiveforrelativelylongperiodsoftime.LowCPUefficiency61DMATransferModeCycleStealingModeOncetheDMAcontrollerobtainsaccesstothesystembus,ittransferson
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 动物的营养需要
- 生物物种安全保护体系建设
- 皮肤科湿疹药物治疗须知
- 职场沟通的技巧与方法
- 幼师教育家精神演讲稿
- 实习员工实习报告
- 2025版前列腺癌常见症状及护理方法指南
- 手环心率测试原理
- 脑卒中宣教护理品管圈
- 脑出血患者入院宣教
- 企业所得税培训班教学课件
- 2024-2025学年北京市朝阳区北京中学八年级上学期期中考试物理试题(含答案)
- 锂离子电池相关项目实施方案
- 中学生天文知识竞赛考试题库500题(含答案)
- 《接触网施工》课件 3项目一 软横跨安装
- 人教版(2024新版)七年级上册英语期中测试卷(含答案)
- 杭州市2025届高三教学质量检测(一模) 政治试题卷(含答案 )
- 四川宜宾五粮液股份有限公司招聘笔试题库2024
- 《经济法基础与实务》期末考试试卷3套含答案(大学期末复习资料)
- 曲靖市市级机关统一遴选公务员笔试真题2023
- 全新美容院店转让合同下载
评论
0/150
提交评论