PCI конфигурациясы: PCI, PCI X және PCI Express құрылғыларын автоматты түрде конфигурациялау механизмі. Конфигурациялық кеңістік, драйверлерге қолжетімді.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
PCI конфигурациялық кеңістігі – Conventional PCI, PCI X және PCI Express шиналарына қосылған карталардың автоматты конфигурациясын жүзеге асырудың негізгі механизмі.
Auto configuration mechanism used by PCI
PCI configuration space is the underlying way that the Conventional PCI, PCI X and PCI Express perform auto configuration of the cards inserted into their bus.
Шолу
PCI құрылғылары конфигурациялық кеңістік деп аталатын регистрлер жиынтығына ие, ал PCI Express құрылғылар үшін кеңейтілген конфигурациялық кеңістікті ұсынады. Конфигурациялық кеңістік регистрлері жад мекенжайларымен байланыстырылады. Құрылғы драйверлері мен диагностикалық бағдарламалық құралдар конфигурациялық кеңістікке қол жеткізуі керек, ал операциялық жүйелер әдетте құрылғы конфигурациялық кеңістігіне қол жеткізу үшін API-лерді пайдаланады. Егер операциялық жүйеде жад арқылы карталанған конфигурациялық кеңістікке сұраулар үшін анықталған әдістер немесе API-лер болмаса, драйвер немесе диагностикалық бағдарламалық құрал операциялық жүйенің негізгі қол жеткізу ережелерімен үйлесімді түрде конфигурациялық кеңістікке қол жеткізу жауапкершілігін алады. Барлық жүйелерде құрылғы драйверлері құрылғының конфигурациялық кеңістігіне қол жеткізу үшін операциялық жүйе ұсынған API-лерді пайдалануға ұсынылады.
PCI devices have a set of registers referred to as configuration space and PCI Express introduces extended configuration space for devices. Configuration space registers are mapped to memory locations. Device drivers and diagnostic software must have access to the configuration space, and operating systems typically use APIs to allow access to device configuration space. When the operating system does not have access methods defined or APIs for memory mapped configuration space requests, the driver or diagnostic software has the burden to access the configuration space in a manner that is compatible with the operating system's underlying access rules. In all systems, device drivers are encouraged to use APIs provided by the operating system to access the configuration space of the device.
Техникалық ақпарат
PCI жергілікті шинасының басқа I/O архитектураларынан басты артықшылығы – оның конфигурациялық механизмі болды. Әдеттегі жад картасы және I/O порт кеңістіктерінен өзге, шинадағы әрбір құрылғы функциясы 256 байттық конфигурациялық кеңістікке ие, оған сегіз биттік PCI шинасы, бес биттік құрылғы және құрылғының үш биттік функция нөмірі арқылы (көбінесе BDF немесе B/D/F деп аталады, шина/құрылғы/функция аббревиатурасы) қол жеткізуге болады. Бұл 256 шинаға дейін, әрқайсысында 32 құрылғыға және әр құрылғыда сегіз функцияға мүмкіндік береді. Бір PCI кеңейту картасы құрылғы ретінде жауап бере алады және кемінде нөлдік функцияны жүзеге асыруы керек. Конфигурациялық кеңістіктің алғашқы 64 байты стандартталған, ал қалғаны жеткізушілер анықтаған мақсаттар үшін қолданылады. Кейбір жоғары деңгейдегі компьютерлер бірнеше PCI доменін (немесе PCI сегментін) қолдайды, әрбір PCI домені 256 шинаға дейін қолдай алады. Конфигурациялық кеңістіктің көбірек бөліктерін ескі пайдаланулармен қақтырыссыз стандарттау үшін, PCI конфигурациялық кеңістігінің қалған 192 байтында мүмкіндіктер тізімі анықталуы мүмкін. Әрбір мүмкіндіктің қандай екенін сипаттау үшін бір байты және келесі мүмкіндікке сілтеме жасау үшін бір байты болады. Қосымша байттардың саны мүмкіндік идентификаторына (ID) байланысты. Егер мүмкіндіктер қолданылса, Статус регистріндегі бит белгіленеді және стандартталған тіркелімдерде анықталған көрсеткіш регистрінде мүмкіндіктердің тізбектелі тізіміндегі біріншісіне сілтеме беріледі. PCI X 2.0 және PCI Express 4096 байтқа дейін кеңейтілген конфигурациялық кеңістікті енгізді. Кеңейтілген конфигурациялық кеңістіктің жалғыз стандартталған бөлігі – кеңейтілген мүмкіндіктер тізімінің басталуы болатын алғашқы төрт байт. Кеңейтілген мүмкіндіктер әдеттегі мүмкіндіктерге ұқсас, бірақ олар кеңейтілген конфигурациялық кеңістіктегі кез келген байтқа сілтеме жасай алады (сегіз бит орнына 12 бит қолдану арқылы), төрт биттік нұсқа нөмірі және 16 биттік мүмкіндік идентификаторына ие. Кеңейтілген мүмкіндік идентификаторлары әдеттегі мүмкіндік идентификаторларымен сәйкес келеді, бірақ олар бөлек тізімдерде болғандықтан шатасу мүмкін емес.
One of the major improvements the PCI Local Bus had over other I/O architectures was its configuration mechanism. In addition to the normal memory mapped and I/O port spaces, each device function on the bus has a configuration space, which is 256 bytes long, addressable by knowing the eight bit PCI bus, five bit device, and three bit function numbers for the device (commonly referred to as the BDF or B/D/F, as abbreviated from bus/device/function). This allows up to 256 buses, each with up to 32 devices, each supporting eight functions. A single PCI expansion card can respond as a device and must implement at least function number zero. The first 64 bytes of configuration space are standardized; the remainder are available for vendor defined purposes. Some high end computers support more than one PCI domain (or PCI segment); each PCI domain supports up to 256 buses. In order to allow more parts of configuration space to be standardized without conflicting with existing uses, there can be a list of capabilities defined within the remaining 192 bytes of PCI configuration space. Each capability has one byte that describes which capability it is, and one byte to point to the next capability. The number of additional bytes depends on the capability ID. If capabilities are being used, a bit in the Status register is set, and a pointer to the first in a linked list of capabilities is provided in the Cap. pointer register defined in the Standardized Registers. PCI X 2.0 and PCI Express introduced an extended configuration space, up to 4096 bytes. The only standardized part of extended configuration space is the first four bytes at which are the start of an extended capability list. Extended capabilities are very much like normal capabilities except that they can refer to any byte in the extended configuration space (by using 12 bits instead of eight), have a four bit version number and a 16 bit capability ID. Extended capability IDs overlap with normal capability IDs, but there is no chance of confusion as they are in separate lists.
Стандартталған тіркелімдер
Құрылғы ID (DID) және Өндіруші ID (VID) тіркелімдері құрылғыны (мысалы, интегралды схеманы) анықтайды және олар көбінесе PCI ID деп аталады. 16 биттік өндіруші ID-ін PCI SIG тағайындайды. 16 биттік құрылғы ID-ін өндіруші тағайындайды. Барлық белгілі өндіруші және құрылғы ID-лерін жинауға бағытталған тоқтап қалған жоба бар. (Қосымша сілтемелер төменде келтірілген.) Статус тіркелімі қолдау көрсетілетін мүмкіндіктерді және орын алған қателердің түрлерін хабарлау үшін қолданылады. Команда тіркелімі жеке-жеке қосылып немесе өшірілетін мүмкіндіктердің биттік маскасын қамтиды. Бас тіркелімінің мәндері құрылғының функциясына байланысты бас бөлімінің қалған 48 байтының (64 16) әртүрлі орналасуын анықтайды. Яғни, 1-типті бас бөлімдері Root Complex, коммутаторлар және көпірлер үшін, ал 0-типті бас бөлімдері – соңғы нүктелер үшін. Кэш жолының өлшемі тіркелімі құрылғыға жадқа жазу және жою транзакциясын жүзеге асыруға рұқсат беру алдында бағдарламалауы керек. Бұл әдетте процессордың кэш жолының өлшемімен сәйкес келуі керек, бірақ дұрыс параметр жүйеге байланысты. Бұл тіркелім PCI Express үшін қолданылмайды. Ішкі жүйе ID (SSID) және ішкі жүйе өндіруші ID (SVID) нақты үлгіні (мысалы, қосымша картаны) ажыратады. Өндіруші ID чипсет өндірушісіне, ал ішкі жүйе өндіруші ID карта өндірушісіне тиесілі. Ішкі жүйе ID өндірушісі құрылғы ID-мен бірдей сан кеңістігінен ішкі жүйе ID-ін тағайындайды. Мысалы, сымсыз желілік карталар жағдайында чип өндірушісі Broadcom немесе Atheros, ал карта өндірушісі Netgear немесе Hewlett Packard болуы мүмкін. Әдетте, өндіруші ID – құрылғы ID комбинациясы хостқа құрылғыны басқару үшін қандай драйверді жүктеу керектігін көрсетеді, өйткені бірдей VID:DID комбинациясы бар барлық карталарды бір драйвер басқара алады. Ішкі жүйе өндіруші ID – ішкі жүйе ID комбинациясы картаны анықтайды, бұл драйвер картаның жұмысында шағын өзгерістер енгізу үшін пайдалана алатын ақпарат.
The Device ID (DID) and Vendor ID (VID) registers identify the device (such as an IC), and are commonly called the PCI ID. The 16 bit vendor ID is allocated by the PCI SIG. The 16 bit device ID is then assigned by the vendor. There is an inactive project to collect all known Vendor and Device IDs. (See the external links below.) The Status register is used to report which features are supported and whether certain kinds of errors have occurred. The Command register contains a bitmask of features that can be individually enabled and disabled. The Header Type register values determine the different layouts of remaining 48 bytes (64 16) of the header, depending on the function of the device. That is, Type 1 headers for Root Complex, switches, and bridges. Then Type 0 for endpoints. The Cache Line Size register must be programmed before the device is told it can use the memory write and invalidate transaction. This should normally match the CPU's cache line size, but the correct setting is system dependent. This register does not apply to PCI Express. The Subsystem ID (SSID) and the Subsystem Vendor ID (SVID) differentiate specific model (such as an add in card). While the Vendor ID is that of the chipset manufacturer, the Subsystem Vendor ID is that of the card manufacturer. The Subsystem ID is assigned by the subsystem vendor from the same number space as the Device ID. As an example, in the case of wireless network cards, the chip manufacturer might be Broadcom or Atheros, and the card manufacturer might be Netgear or Hewlett Packard. Generally, the Vendor ID–Device ID combination designates which driver the host should load in order to handle the device, as all cards with the same VID:DID combination can be handled by the same driver. The Subsystem Vendor ID–Subsystem ID combination identifies the card, which is the kind of information the driver may use to apply a minor card specific change in its operation.