力传感器及电子秤设计文献翻译输入输出访问Word格式.docx
《力传感器及电子秤设计文献翻译输入输出访问Word格式.docx》由会员分享,可在线阅读,更多相关《力传感器及电子秤设计文献翻译输入输出访问Word格式.docx(17页珍藏版)》请在冰点文库上搜索。
![力传感器及电子秤设计文献翻译输入输出访问Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/916b017e-423d-43b2-916d-e710abaa0b0d/916b017e-423d-43b2-916d-e710abaa0b0d1.gif)
Inthisarticle,wewilllookatthethreebasicmethodsofI/Oaccessing-programmedI/O,interrupt-drivenI/O,anddirectmemoryaccess(DMA).ThekeyissuethatdistinguishesthesethreemethodsishowdeeplytheprocessorisinvolvedinI/Ooperations.Thediscussionemphasizesinterrupt-drivenI/O,becauseitisbasedontheconceptofinterrupthandling,whichisageneralproblemthatgoesbeyondInput/Outputoperations.Thestudyofinterrupthandlingalsoaidsinunderstandingthegeneralconceptofexceptionprocessing,whichisanimportantissuenotonlyforI/O,butalsoforinterfacingacomputerwithothersystemcontrolfunctions.
AddressingI/ORegisters
Input/OutputdevicescommunicatewithaprocessorthroughInput/Outputports.Throughtheinputports,sprocessorreceivesdatafromtheI/Odevices.Throughtheoutputports,aprocessorsendsdatatotheI/Odevices.EachI/Oportconsistsofasmallsetofregisters,suchasdatabufferregisters(theinputbufferand/ortheoutputbuffer),thestatusregister,andthecontrolregister.Theprocessormusthavesomemeanstoaddresstheseregisterswhilecommunicatingwiththem.TherearetwocommonmethodsofaddressingI/Oregister-memory-mappedI/OanddirectI/O.
1.Memory-MappedI/O
Memory-mappedI/OmapstheI/Oregistersandmainmemoryintoaunifiedaddressspaceinthecomputersystem.I/Oregisterssharethesameaddressspacewithmainmemory,butaremappedtoaspecificsectionthatisreservedjustforI/O.Thus,theI/Oregistercanbeaddressedinordinarymemoryreferenceinstructionsasiftheyarepartofthemainmemorylocations.TherearenospeciallydesignedI/Oinstructionsintheinstructionsetofthesystem.AnyinstructionthatreferencesalocationinthisareaisanI/Oinstruction.AnyinstructionthatcanspecifyamemoryaddressiscapableofperformingI/Ooperations.TheMotorolaMC68000isanexampleofacomputersystemthatusesthisaddressingmethod.
2.DirectI/O
ThemethodofaddressingI/OregistersdirectlywithoutsharingtheaddressspacewiththemainmemoryiscalleddirectI/OorI/O-mappedI/O.Inotherwords,I/Oregistersarenotmappedtothesameaddressspacewiththemainmemory.EachI/Oregisterhasanindependentaddressspace.Asaresult,instructionsthatreferencethemainmemoryspacecannotbeusedforInput/Output.Intheinstructionsetofthecomputersystem,specialI/OinstructionsmustbedesignedforI/Ooperations.IntheseI/Oinstructions,distinctI.D.numbersmustbeusedtoaddressdifferentI/Ocommunicationchannels(i.e.,I/Oports).Theyarecalledportnumbers.TheI/OregistersofanI/OportareconnectedtothesystemI/Obus,throughwhichtheprocessorcanreferencetheI/Oregistersdirectlytosend/receivedatato/fromanI/Odevice.AnI/Oportnumberisnotfromthesameaddressspaceasmainmemory.ThePentiumisanexampleofacomputersystemthatusesthedirectI/Oaddressingmethod.Ithasa64GBmemoryaddressspace(32addressbits)and,atthesametime,a64KBI/Oaddressspace(16bitsI/Oaddress/portnumber).
Wecancomparememory-mappedI/OandthedirectI/OandthedirectI/Oasfollows:
●Memory-mappedI/OusesordinarymemoryreferenceinstructionstoaccessI/O,soitprovidesflexibilityforI/OprogrammingandsimplifiesI/Osoftware.DirectI/OdoesnotprovideanyflexibilityinI/Oprogramming,sinceonlyasmallsetofspecialI/OinstructionsareallowedtoreferenceI/Oregisters.
●formemory-mappedI/O,theprocessorusesthesameaddresslinestoaccessalltheaddressableI/Oregistersandthesamedatalinestosend/receivedatato/formtheseregisters.ThissimplifiestheconnectionbetweenI/Oportandtheprocessor,andthusleadstoalow-costhardwaredesignandimplementation.FordirectI/O,theconnectionbetweenI/Oportsandtheprocessormaybemoreexpensive.Thisisbecauseeither
(1)specialhardwareisneededtoimplementseparateI/Oaddresslinesor
(2)whenmemoryaddresslinesareusedforI/O;
aspecialflagisneeded,indicatingthattherequestedaddressisforanI/Ooperation.
●InspiteoftheadvantageofusingordinarymemoryreferenceinstructionstoaccessI/Oregisters,memory-mappedI/OmaycomplicatethecontrolunitdesigninregardstotheimplementationofI/O-relatedinstructions.ThisisbecauseusuallytheI/Obuscyclesneedtobelongerthantheequivalentmemorybuscycles,andthismeansthatthedesignofdifferenttimingcontrollogicisrequired.Thiscanbeusedtoexplainwhymemory-mappedI/Obenefitsprogrammers,butnotelectronicsengineers.
●DirectI/Oaddressinghasanotheradvantageovermemory-mappedI/Ointhatlow-leveldebuggingonadifferentiatedaddressingsystemmaybeeasier,becausebreak-pointsorerrortrapscanbeimposedmoregenerally.
●withmemory-mappedI/O,I/Oregisterssharethesameaddressspacewithmainmemory;
hence,thememoryspaceavailableforprogramsanddataisreduced.FordirectI/Oaddressing,I/Odoesnotsharememoryspacewithmainmemory,andasinglecontiguousmemoryspacecanbemaintainedandusedbyprogrammers.
ProgrammedI/O
ProgrammedI/Orequiresthatalldatatransferoperationsbeputunderthecompletecontroloftheprocessorwhenexecutingprograms.Itissometimescalledpolling,becausetheprogramrepeatedlypolls(checks)thestatusflagofanI/Odevice,sothatitsinput/outputoperationcanbesynchronizedwiththeprocessor.AgeneralflowchartofsuchaprogramisshowninFigure1.TheprogramcontinuouslypollsthestatusofanI/Odevicetofindoutwhether
(1)dataisavailableintheinputbufferor
(2)theoutputdeviceisreadyforreceivingdatafromtheprocessor.Ifthestatusshows“available”theprogramwillexecuteadatatransferinstructiontocompletetheI/Ooperation;
otherwise,thebusystatusoftheI/Odevicewillforcetheprogramtocirculateinabusy-waitingloopuntilthestatusbecomesavailable.Suchabusy-waitingloop,whichcontinuouslychecksthestatusofdataavailability(forinput)ordeviceavailability(forout-put),formsthetypicalprogramstructureofprogrammedI/O.Itisthistime-consumingbusy-waitingloopthatwastesprocessortimeandmakesprogrammedI/Overyinefficient.TheprocessormustbeinvolvedcontinuouslyintheentireI/Oprocess.Duringthistimeinterval,theprocessorcannotperformanyusefulcomputation,butonlyserveasingleI/Odevice.ForcertainslowI/Odevices,thisbusy-waitingloopintervalmaybelongenoughthattheprocessorcouldexecutemillionsofinstructionsbeforetheI/Oeventoccurs,e.g.,akeystrokeonakeyboard.
TheoperationalmodelfprogrammedI/Ostatedaboveischaracterizedbythebusywaitingloopoftheprogram,duringwhichtheprocessorspendstimepollinganI/Odevice.Becauseofthededicationoftheprocessortoasingletask,thismodeofprogrammedI/Oiscalleddedicatedpollingorspinpolling.Althoughdedicatedpollingishighlyinefficient,sometimesitisnecessaryandevenunavoidable.Inaparticularcase,ifanurgenteventneedsanimmediateresponsewithoutdelay,thendedicatedpollingbyadedicatedprocessormaybethebestwaytohandleit.Oncetheexpectedeventhappens,theprocessorcantracttoitimmediately.Forexample,certainrealtimesystems(e.g.,radarechoprocessingsystems)requireareactiontoincomingdatathatissoquickthatevenaninterruptresponseistooslow.Undersuchacircumstance,onlyafastdedicatedpollingloopmaysuffice.
AnothermodeofoperationofprogrammedI/Oiscalledintermittentpollingortimedpolling.Inthismode,theprocessormaypollthedeviceataregulartimedinterval,whichcanbeexpectedorprescheduled.Suchadevicecanbefoundinmanyembeddedsystemswhereaspecial-purposecomputerisusedforprocesscontrol,dataacquisition,environmentalmonitoring,trafficcounting,etc.thesedevices,whichmeasure,collect,orrecorddata,areusuallypolledperiodicallyinaregularscheduledeterminedbytheneedsoftheapplication.Suchamethodofintermittentpollingcanhelpsavetimelostinspinpollingandavoidthecomplexityofinterruptprocessing.However,itshouldbenotedthatintermittentpollingmaynotbeapplicableinsomespecialcases,inwhichthereisonlyonedevicetobepolledandthecorrectpollingratemustbeachievedwiththeassistanceofaninterrupt-drivenclock.Usingtimedpollinginthiscasewouldresultinsimplyswappingoneinterrupt-drivenclock.Usingtimepollinginthiscasewouldresultinsimplyswappingoneinterruptrequirementforanother.
Interrupt-DrivenI/O
Interrupt-drivenI/Oisameanstoavoidtheinefficientbusy-waitingloops,whichcharacterizeprogrammedI/O.InsteadofwaitingwhiletheI/Odeviceisbusydoingitsjobofinput/output,theprocessorcanrunotherprograms.WhentheI/Odevicecompletesitsjobanditsstatusbecomes“available”,itwillissueaninterruptrequesttotheprocessor,askingforCPUservice.Inresponse,theprocessorsuspendswhateveritiscurrentlydoing,inordertoattendtotheneedsofthatI/Odevice.
Inrespondtoaninterruptrequest,theprocessorwillfirstsavethecontentsofboththeprogramcounterandthestatusregisterfortherunningprogram,andthentransferthecontroltothecorrespondinginterruptserviceroutinetoperformtherequireddatainput/outputoperation.Whentheinterruptserviceroutinehascompleteditsexecutionandifnomoreinterruptrequestsarepending,theprocessorwillresumetheexecutionofthepreviouslyinterruptedprogramandrestorethecontentsofthestatusesandprogramcounter.Theprocessorhardwareshouldchecktheinterruptrequestsignaluponcompletionofexecutionofeveryinstruction.Ifm