現(xiàn)在計(jì)算機(jī)底層軟件技術(shù).ppt
現(xiàn)代計(jì)算機(jī)底層軟件技術(shù),頂星數(shù)碼,PC底層軟件包括?,BIOSBasicInputOutputSystem基本輸入輸出系統(tǒng)系統(tǒng)硬件的一部分硬件中的軟件ECEmbeddedControllerProgramEmbeddedkeyboard&EmbeddedMousePowerManagementBatterySystem,BIOS功能,BootOSfromsomemediaInitializeISASystemInitializeSpecificHardwareInitializeIndustryStandardsystemOffersysteminformationtoOSandAppHardwareProgramInterfaceroutinePowerManageSxSupport,BootOSfromsomemedia,DeviceTypeATA/ATAPIDeviceUSBHarddisk/floppy/CDROMPCIDeviceOtherSelectableBBSSpec,InitializeSpecificHardware,MemorySizingGPIOClockChipCSSpecificInitializeSpecificHardwarePortingtoourSystemCardBusController,InitializeISASystem,VGAtoKeyboard8259,8254,InitializeIndustryStandardsystem,InitializePCISystemInitializePnPSystemInitializeATA/ATASystemInitializeUSBSystemOther1394,InitializePCISystem,EnumeratePCISystemBusNo,DeviceNo,andFunctionNoAllocateSystemResourcetoEveryPCIDeviceMemoryIOCopyROMtoROMAddress,InitializePnPSystem,BasedOnSCDInitializePnPISAInitializeCompatiblePnPDeviceSupperIOCardReader(LPC),InitializeATA/ATAPISystem,NativeSupport?HowManyController?LoopeveryChanneltofinddeviceInitializeeveryfoundHarddiskandCDROMSetupInt13RoutineandDiskParameterTable,InitializeUSBSystem,AllocatesystemresourcetoUSBControllerLoopEverycontrollertofinddeviceSetAddressEnumerateDeviceClassHookfromUSBStorageDevice,OffersysteminformationtoOSandApp,ToOS:ACPIInt15MPTablePCIRoutingTableToAppSMBIOSF000Information,HardwareProgramInterfaceroutine,INTKeyboardMouseFloppyHardDisk,VGASMIAPMSpeedStep,INT過程,SoftwareHardware,SMI過程,PowerManagementSxSupport,S4=S5S3JudgeS3RestoreSomeDeviceEnvironmentSearchACPITableJudgetoOSroutine,AddressSpaceConcept,AddressSpacePCIISA,MemorySpace(4GB),BIOSLocation,BIOSArea,FFFFFFFF,以2M的BIOS為例,其占用的內(nèi)存范圍為0FFFC0000H-0FFFFFFFFH,00000000,占用高端地址,BIOSLocation,F000Segment,E000Segment,00000000,00100000,BIOS最高兩個(gè)段的內(nèi)容同時(shí)被映射到1M以下的高端地址。,Shadow,DRAM空間vsROM空間CHIPSET尋址控制程序運(yùn)行速度,A000:0h,E000:0h,F000:0h,CGA,VGA,B000:0h,C000:0h,B800:0h,Available,VGABIOS,C800:0h,ExpansionROMs,D000:0h,SystemBIOS,SystemBIOS,Available,ShadowArea,MemoryMapBelow1M,00000-003FFIntVector00400-004FFBIOSDataAreaA0000-BFFFFVedioMemoryC0000-?VedioBIOS?-DFFFFOptionROME0000-FFFFFBIOSArea,TheFirstInstructionExecute,CPUPowerOnCPUInstructionPipeisemptyCPUInstructionPool給CPU接口指令預(yù)取單元指令預(yù)取單元啟動(dòng)FSB總線,執(zhí)行一個(gè)ReadF000:FFF0操作,F(xiàn)SB是重試類型,北橋接受到這個(gè)讀請求,以Retry結(jié)束。,TheFirstInstructionExecute,北橋在PCI總線上啟動(dòng)Readtransaction(F000:FFF0)操作。如果PCISlot上面沒有任何設(shè)備以快速,中速,或者慢速解碼,那么LPC橋解碼這個(gè)Transaction,啟動(dòng)Retry,結(jié)束北橋的行為。如果PCISlotLPC橋啟動(dòng)Readtransaction(F000:FFF0)操作,被EC解碼,EC在ROM的ISA總線上啟動(dòng)交易,從ROM中取出第一條指令,TheFirstInstructionExecute,LPC橋得到第一條指令位置信息北橋Retry,LPC橋返回F000:FFF0地方內(nèi)容CPURetry,北橋返回F000:FFF0地方內(nèi)容F000:FFF0地方內(nèi)容進(jìn)入指令流一般第一條指令都是跳轉(zhuǎn)指令,調(diào)試除外。該跳轉(zhuǎn)指令進(jìn)入指令流水線,TheFirstInstructionExecute,最后這條指令被CPU核心指令在這條指令達(dá)到核心時(shí),預(yù)取指令單元同步工作,此時(shí)后面一堆指令已被讀出,進(jìn)入流水線工作核心知道這時(shí)一條跳轉(zhuǎn)指令,清空指令流,更新預(yù)取指令池和預(yù)取單元地址預(yù)取指令池空,請求預(yù)取指令單元啟動(dòng)FSB讀取新的位置指令內(nèi)容上面過程重復(fù),例子指令分析:MOVax,ds:si,DS=F000h,Si=FFF0h該條指令被預(yù)取指令單元預(yù)取進(jìn)入指令池進(jìn)入核心單元核心單元向數(shù)據(jù)單元要數(shù)據(jù),不是向指令預(yù)取單元核心單元向Cache要數(shù)據(jù)(如果CacheEnable),例子指令分析:MOVax,ds:si,Cache系統(tǒng)沒有當(dāng)前內(nèi)容備份,Cache系統(tǒng)在FSB啟動(dòng)讀F000:FFF0處內(nèi)容的ReadTransaction該FSB上Transaction部分以及后續(xù)部分的PCI、LPC等行為和取指令時(shí)的行為沒有任何區(qū)別同樣的行為重復(fù)Cache取到數(shù)據(jù),交給核心單元。,MemorySizingandShadow,RUNinROMF000MemorySizingReadRAMInformationfromSPD(SMBus)Programtiming(FrequencyandCASLatency)ProgramAddressInformationSimpleMemoryTest0250k。停0FShadow,MemorySizingandShadow,ShadowCopyROMImagetoRAM,NotinF000JumptoRAM,F(xiàn)arJumpShadowF000toRAMGoToPOSTVGAISAPnPPCI,CMOSRAM,128BytesRAM電池供電保護(hù)數(shù)據(jù)AccessedByI/Oport70H/71HMostChipsethavesecondaryCMOSRAM,SCUScreen,BIOSRUN總結(jié),RUNINROM,POST,OS,ACPI,MPTable,PCIRoutingTable,SMI,INT15,Boot,MemorySizingandShadow,HardwarePowerOn,CSInitialize,ISALegacy,PnPInitialize,PCIInitialize,Q&A,Thanks,