计算机组成教学课件:Chapter3 BasicInputOutput_第1页
计算机组成教学课件:Chapter3 BasicInputOutput_第2页
计算机组成教学课件:Chapter3 BasicInputOutput_第3页
计算机组成教学课件:Chapter3 BasicInputOutput_第4页
计算机组成教学课件:Chapter3 BasicInputOutput_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论