Измерительное средство для функций адаптера

Иллюстрации

Показать все

Изобретение относится к области измерения использования ресурсов, которое связано с обработкой ввода-вывода. Техническим результатом является предоставление измерительного средства для сбора и представления мелкоструктурной информации об использовании для функций адаптера в подсистеме ввода/вывода. Поток данных ввода-вывода, характерный для адаптера, отслеживается на основе отдельных функций, и результаты динамически представляются пользователю. Эта информация полезна, например, для настройки производительности, выравнивания нагрузки и выставления счетов на основании использования. 2 н. и 8 з.п. ф-лы, 37 ил.

Реферат

Предшествующий уровень техники

Это изобретение в целом относится к обработке ввода/вывода и, в частности, к измерению использования ресурсов, которое связано с обработкой ввода-вывода.

В крупных вычислительных системах часто доступно измерительное средство, которое предоставляет информацию о потоке данных через инфраструктуру ввода-вывода. Такая информация полезна для настройки производительности программ, выравнивания нагрузки и выставления счетов пользователям на основании использования ресурсов.

В качестве одного конкретного примера, в машинах System z®, поставляемых International Business Machines Corporation, предоставляются утилиты для получения информации о потоке данных, проходящем через инфраструктуру ввода-вывода, которая называется канальной подсистемой. Канальная подсистема обеспечивает согласованный интерфейс для канального доступа через канальные типы и различные средства передачи данных подсистемы ввода-вывода. Этот интерфейс, называемый командой вызова запуска субканала (Start Subchannel Call), исполняется встроенным программным обеспечением от имени пользователя. Встроенное программное обеспечение скрывает подробности физического канала от пользователя и снабжено утилитами, такими как утилита измерения, чтобы отслеживать использование ресурса.

Однако в других инфраструктурах ввода-вывода подробности физического канала открыты пользователю, а средства, предоставляемые этими инфраструктурами, которые скрывают подробности, являются недоступными.

Публикация США №2009/0125666 A1, опубликованная 14 мая 2009, под авторством Freking et al., "Dynamically Scalable Queues For Performance Driven PCI Express Memory Traffic", описывает компьютерный программный продукт для реализации способа в системе обработки данных и протокол PCI Express для осуществления высокопроизводительной передачи данных ввода-вывода для большого числа разнообразных конфигураций ввода-вывода, которые включают переменные размеры пакетов и/или переменные/различные количества транзакций на соединении ввода-вывода. Протокол PCI Express усовершенствован для поддержки использования счетчиков и динамически изменяемых размеров очередей. В добавок к стандартным записям очереди, предоставляются/резервируются несколько (или выбранное число) динамически изменяемых записей очереди, и в усовершенствованном протоколе PCI Express предоставляется утилита динамической модификации очереди (dynamic queue modification, DQM), чтобы отслеживать происходящую текущую передачу данных и регулировать, когда размер(ы) записей очереди изменяется (увеличивается или уменьшается) на основании текущего потока данных, передающегося по соединению ввода-вывода PCI Express. Усовершенствованный протокол PCI Express предоставляет точку равновесия, в которой многие крупные пакеты данных передаются эффективно, одновременно устанавливая ограничение на число каждого размера крупных пакетов.

В патенте США №7600053, выданном 6 октября 2009 на имя Carlson et al., "Emulation of Extended Input/Output Measurement Block Facilities", эмулируется средство блока расширенного измерения ввода-вывода. Средство предусматривает сбор соответствующих данных измерения ввода-вывода и сохранение для последующего эффективного извлечения этих данных в блоке расширенного измерения. Сохраненные данные относятся к производительности субканала ввода-вывода.

Патент США №7631097, выданный 8 декабря 2009 на имя Moch et al., "Method and Apparatus for Optimizing the Responsiveness and Throughput of a System Performing Packetized Data Transfers Using a Transfer Count Mark", описывает механизм для управления пакетной передачей данных в системе, содержащей передающее и приемное устройства. Передающее устройство может передавать данные на приемное устройство в большом количестве пакетов, каждый пакет имеет размер, равный предопределенному числу байтов данных. Передающее устройство может содержать блок подсчета передачи, чтобы вести подсчет передачи данных на основании числа передаваемых байтов данных. Приемное устройство может программировать передающее устройство посредством отметки подсчета передачи, которая может быть числом, которое соответствует определенному подсчету подсчета передачи данных. Передающее устройство может рассчитывать разницу между подсчетом передачи данных и отметкой подсчета передачи. Если разница между подсчетом передачи и отметкой подсчета передачи меньше, чем предопределенное число, передающее устройство может передавать на приемное устройство короткий пакет данных, содержащий меньше предопределенного числа байтов данных.

Краткое изложение сущности изобретения

Определенные инфраструктуры ввода-вывода, такие как PCI Express, не определяют стандартный интерфейс для измерения активности подсистемы. Однако способность измерять поток данных ввода-вывода является желательной функцией. Следовательно, в соответствии с одной особенностью настоящего изобретения, предоставляется измерительное средство для функций адаптера, таких как функции PCI.

Недостатки имеющегося уровня техники преодолеваются, а преимущества обеспечиваются, посредством компьютерного программного продукта для измерения использования ресурсов в вычислительной среде. Компьютерный программный продукт содержит машиночитаемую запоминающую среду, считываемую устройством обработки данных и хранящую команды для выполнения устройством обработки данных с целью осуществления способа. Способ включает, например, выполнение команды изменения управления функцией шины PCI (Modify PCI Function Controls, MPFC), содержащей дескриптор функции для идентификации адаптера, причем MPFC определяет место в памяти для информации слежения; определение, что доступ к функции адаптера вычислительной среды осуществляется посредством команды или запросом доступа к системной памяти, связанной с функцией адаптера; отслеживание информации, характерной для функции адаптера, причем отслеживание информации включает подсчет определенных осуществляющих доступ команд или подсчет определенных запрошенных доступов к памяти, причем информация отслеживается на основе отдельных адаптерных функций; и сохранение информации слежения в местоположении в памяти.

В изобретении также описаны и заявлены способы и системы, в которых применяют одну или несколько особенностей настоящего изобретения.

Дополнительные признаки и преимущества реализуются посредством методик согласно настоящему изобретению. Другие варианты осуществления и признаки изобретения подробно описаны в настоящем изобретении и считаются частью заявленного изобретения.

Краткое описание чертежей

Одна или несколько особенностей настоящего изобретения конкретно охарактеризованы и отдельно заявлены в формуле изобретения, следующей за описанием. Перечисленные выше и другие задачи, признаки и преимущества изобретения станут ясны из следующего далее подробного описания в сочетании с сопровождающими его чертежами, на которых:

ФИГ.1 представляет собой изображение одного варианта осуществления вычислительной среды, которая должна включать и использовать одну или более особенностей настоящего изобретения;

ФИГ.2 представляет собой изображение одного варианта осуществления логической схемы, которая должна отслеживать команды, в соответствии с одной особенностью настоящего изобретения;

ФИГ.3 представляет собой изображение одного варианта осуществления счетчиков, связанных с функцией, в соответствии с одной особенностью настоящего изобретения;

ФИГ.4А представляет собой изображение одного варианта осуществления счетчиков передачи, используемых, чтобы отслеживать считывания и записи DMA из функций адаптера, в соответствии с одной особенностью настоящего изобретения;

ФИГ.4Б представляет собой изображение одного варианта осуществления логической схемы, которая должна отслеживать операции DMA, в соответствии с одной особенностью настоящего изобретения;

ФИГ.5 представляет собой изображение одного варианта осуществления измерительного блока управления для функции адаптера, в соответствии с одной особенностью настоящего изобретения;

ФИГ.6А - один из вариантов осуществления команды Modify PCI Function Controls, используемой согласно одной из особенностей настоящего изобретения;

ФИГ.6Б - один из вариантов осуществления поля, используемого командой Modify PCI Function Controls, проиллюстрированной на ФИГ.6А согласно одной из особенностей настоящего изобретения;

ФИГ.6В представляет собой изображение одного варианта осуществления другого поля, используемого командой Modify PCI Function Controls, представленной на ФИГ.6А, в соответствии с одной особенностью настоящего изобретения;

ФИГ.6Г представляет собой изображение одного варианта осуществления содержимого блока информации о функциях (FIB) в соответствии с одной особенностью настоящего изобретения;

ФИГ.7 - один из вариантов осуществления общего представления логики команды Modify PCI Function Controls согласно одной из особенностей настоящего изобретения;

ФИГ.8 представляет собой изображение одного варианта осуществления логической схемы операции установки параметров измерения функций PCI, которая может быть определена командой Modify PCI Function Controls, в соответствии с одной особенностью настоящего изобретения;

ФИГ.9А представляет собой изображение одного варианта осуществления команды загрузки PCI (PCI Load), используемой в соответствии с одной особенностью настоящего изобретения;

ФИГ.9Б представляет собой изображение одного варианта осуществления поля, используемого командой PCI Load, представленной на ФИГ.9А, в соответствии с одной особенностью настоящего изобретения;

ФИГ.9В представляет собой изображение одного варианта осуществления другого поля, используемого командой PCI Load, представленной на ФИГ.9А, в соответствии с одной особенностью настоящего изобретения;

ФИГ.10А-10Б представляют собой изображения одного варианта осуществления логической схемы, которая должна выполнять операцию PCI Load, в соответствии с одной особенностью настоящего изобретения;

ФИГ.11А представляет собой изображение одного варианта осуществления команды сохранения PCI (PCI Store), используемой в соответствии с одной особенностью настоящего изобретения;

ФИГ.11Б представляет собой изображение одного варианта осуществления поля, используемого командой PCI Store, представленной на ФИГ.11А, в соответствии с одной особенностью настоящего изобретения;

ФИГ.11В представляет собой изображение одного варианта осуществления другого поля, используемого командой PCI Store, представленной на ФИГ.11А, в соответствии с одной особенностью настоящего изобретения;

ФИГ.12А-12Б представляют собой изображения одного варианта осуществления логической схемы, которая должна выполнять операцию PCI Store, в соответствии с одной особенностью настоящего изобретения;

ФИГ.13А представляет собой изображение одного варианта осуществления команды PCI Store Block, используемой в соответствии с одной особенностью настоящего изобретения;

ФИГ.13Б представляет собой изображение одного варианта осуществления поля, используемого командой PCI Store Block, представленной на ФИГ.13А, в соответствии с одной особенностью настоящего изобретения;

ФИГ.13В представляет собой изображение одного варианта осуществления другого поля, используемого командой PCI Store Block, представленной на ФИГ.13А, в соответствии с одной особенностью настоящего изобретения;

ФИГ.13Г представляет собой изображение одного варианта осуществления еще одного поля, используемого командой PCI Store Block, представленной на ФИГ.13А, в соответствии с одной особенностью настоящего изобретения;

ФИГ.14А-14Б представляют собой изображения одного варианта осуществления логической схемы, которая должна выполнять операцию PCI Store Block, в соответствии с одной особенностью настоящего изобретения;

ФИГ.15 иллюстрирует один вариант осуществления компьютерного программного продукта, в котором содержится одна или несколько особенностей настоящего изобретения;

ФИГ.16 иллюстрирует один вариант осуществления хост-компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения;

ФИГ.17 иллюстрирует дополнительный пример компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения;

ФИГ.18 иллюстрирует другой пример компьютерной системы, содержащей компьютерную сеть, в которой содержится и используется одна или несколько особенностей настоящего изобретения;

ФИГ.19 иллюстрирует один вариант осуществления различных элементов компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения;

ФИГ.20А иллюстрирует один вариант осуществления исполнительного устройства компьютерной системы по ФИГ.19, в которой содержится и используется одна или несколько особенностей настоящего изобретения;

ФИГ.20Б иллюстрирует один вариант осуществления устройства перехода компьютерной системы по ФИГ.19, в котором содержится и используется одна или несколько особенностей настоящего изобретения;

ФИГ.20В представляет собой изображение одного варианта осуществления блока загрузки/сохранения компьютерной системы, представленной на ФИГ.19, в которой содержится и используется одна или несколько особенностей настоящего изобретения; и

ФИГ.21 иллюстрирует один вариант осуществления эмулированной хост-компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения.

Подробное описание

В соответствии с одной особенностью настоящего изобретения, предоставляется измерительное средство для сбора и представления мелкоструктурной информации об использовании для подсистемы ввода/вывода, которая содержит адаптеры, такие как адаптеры PCI Express. Эта информация полезна, например, для настройки производительности, выравнивания нагрузки и выставления счетов на основании использования. В одном конкретном примере, характерный для адаптера поток данных ввода-вывода отслеживается на основе отдельных адаптерных функций, и результаты динамически представляются пользователю. Например, на основе отдельных адаптерных функций, отслеживаются команды доступа к адаптеру, и подсчитывается поток данных прямого доступа к памяти. Команды доступа отслеживаются, например, встроенным программным обеспечением процессора, а поток данных прямого доступа к памяти подсчитывается, например, аппаратными счетчиками. Подсистема ввода-вывода динамически представляет значения измерений пользователю путем обновления блока управления в определенном пользователем местоположении в памяти. Измерения являются независимыми от устройства в том понимании, что типы устройств (например, адаптеров) нет необходимости знать заранее.

Как используется в данном документе, термин "адаптер" включает любой тип адаптера (например, адаптер запоминающего устройства, сетевой адаптер, обрабатывающий адаптер, адаптер PCI, криптографический адаптер, другой тип адаптеров ввода-вывода, и т.п.) В одном из вариантов осуществления адаптер содержит одну функцию. Тем не менее, в других вариантах осуществления адаптер может содержать множество функций. В зависимости от того, содержит ли адаптер одну функцию или множество функций, применима одна или несколько особенностей настоящего изобретения. Кроме того, в примерах, представленных в данном документе, адаптер используется взаимозаменяемо с функцией адаптера (например, функцией PCI), если не указано иное.

Далее будет описан один из вариантов осуществления вычислительной среды, в которой содержится и используется одна или несколько особенностей настоящего изобретения согласно ФИГ.1, изображены различные режимы. В одном из примеров вычислительной средой 100 является сервер System z®, предлагаемый International Business Machines Corporation. Основой сервера System z® является z/Architecture®, предлагаемая International Business Machines Corporation. Подробности, касающиеся z/Architecture®, описаны в публикации IBM® под названием "z/Architecture-Principles of Operation", публикация IBM № SA22-7832-07 (февраль 2009 г.). IBM®, System z® и z/Architecture являются зарегистрированными товарными знаками International Business Machines Corporation (Армонк, штат Нью-Йорк, США). Другие названия, используемые в заявке, могут являться зарегистрированными товарными знаками, товарными знаками или названиями продуктов International Business Machines Corporation или других компаний.

В одном из примеров вычислительная среда 100 содержит один или несколько центральных процессоров (ЦП) 102, связанных с системной памятью 104 (иначе называемой основной памятью) посредством контроллера 106 памяти. Для доступа к системной памяти 104 центральный процессор 102 выдает запрос чтения или записи, в котором содержится адрес, используемый для доступа к системной памяти. Поскольку адрес, содержащийся в запросе, обычно не может непосредственно использоваться для доступа к системной памяти, он транслируется в адрес, который может непосредственно использоваться для доступа к системной памяти. Адрес транслируется посредством механизма 108 трансляции (XLATE). Например, адрес транслируется из виртуального адреса в действительный или абсолютный адрес с использованием, например, динамической трансляции адресов (DAT).

Запрос, содержащий транслированный адрес, принимается контроллером 106 памяти. В одном из примеров контроллер 106 памяти состоит из аппаратного обеспечения и используется для арбитража при доступе к системной памяти и для обеспечения непротиворечивости памяти. Этот арбитраж осуществляется применительно к запросам, принимаемым от ЦП 102, а также запросам, принимаемым от одного или нескольких адаптеров 110. Подобно центральным процессорам адаптеры выдают в системную память 104 запросы на получение доступа к системной памяти.

В одном примере, адаптер 110 является адаптером взаимосвязи периферийных компонентов (PCI) или PCI Express (PCIe), который содержит одну или более функций 111 PCI. Функция PCI выдает запрос, который маршрутизируется в концентратор 112 ввода-вывода (например, концентратор PCI) посредством одного или нескольких коммутаторов (например, коммутаторов PCIe) 114. В одном примере, концентратор ввода-вывода состоит из аппаратного обеспечения, включая один или более конечных автоматов, и соединен с контроллером 106 памяти посредством шины 120 ввод-ввывод-память.

Концентратор ввода-вывода содержит, например, корневой комплекс 116, который принимает запрос от коммутатора. Запрос содержит адрес ввода-вывода, который подается на блок 118 защиты и трансляции адреса, который осуществляет доступ к информации, используемой для запроса. В качестве примеров, запрос может содержать адрес ввода-вывода, используемый для выполнения операции прямого доступа к памяти (DMA) или для запроса инициируемого сообщениями прерывания (MSI). Блок 118 защиты и трансляции адреса осуществляет доступ к информации, используемой для запроса DMA или MSI. В качестве конкретного пример, для операции DMA, информация может быть получена, чтобы транслировать адрес. Транслированный адрес затем направляется на контроллер памяти, чтобы осуществлять доступ к системной памяти.

В одном примере, информация, используемая для запроса DMA или MSI, подаваемого функцией адаптера, получается из записи таблицы устройств, расположенной в концентраторе ввода-вывода (например, в блоке защиты и трансляции адреса). Запись таблицы устройств содержит информацию для функции адаптера, и с каждой функцией адаптера связана по меньшей мере одна запись таблицы устройств. Например, имеется одна запись таблицы устройств на адресное пространство, приписанное к функции адаптера. Для запросов, подаваемых от функций адаптера, запись таблицы устройств находится с помощью ID реквестора (определяющего, например, номер шины, номер устройства и номер функции), предоставляемого в запросе.

В дополнение к адаптерам, и особенно функциям адаптера, подающим запросы, доступ к адаптерам, в частности функциям адаптера, может осуществляться процессорами 102. Этот доступ осуществляется посредством команд, подаваемых процессорами. В этом примере команды являются характерными для инфраструктуры ввода/вывода. То есть, поскольку инфраструктура ввода-вывода основана на PCI или PCIe, команды являются командами PCI. В качестве некоторых примеров команд PCI можно назвать PCI Load (Загрузить), PCI Store (Сохранить), PCI Store Block (Сохранить), PCI Modify (Изменить) и PCI Refresh Translations (Обновить трансляции). Хотя в этом примере инфраструктура ввода-вывода и команды основаны на PCI, в других вариантах осуществления могут использоваться другие инфраструктуры и соответствующие команды.

Для запросов, которые подаются процессорами на функции адаптера, производится ссылка на запись таблицы функций, связанную с функцией адаптера. Запись таблицы функций, которая хранится в защищенной памяти и отыскивается с помощью дескриптора функции, содержит признаки функции адаптера. В одном примере дескриптор функции содержит индикатор активации, указывающий, активирован ли дескриптор; номер функции, который идентифицирует функцию (это статический идентификатор и может использоваться в качестве индекса в таблице функций); и номер экземпляра, определяющий конкретный экземпляр этого дескриптора функции.

В соответствии с одной особенностью настоящего изобретения, предоставляется функциональная возможность, в которой на основе отдельных функций (в данном документе функция адаптера и функция используются взаимозаменяемо) автоматически подсчитывается выполнение одной или более характерных для PCI команд, и измеряется объем данных, передаваемых в системную память и из нее функцией адаптера. Кроме того, предоставляется функциональная возможность для периодического динамического обновления системной памяти текущими значениями измерений.

Один вариант осуществления логической схемы для отслеживания команд доступа PCI описывается со ссылкой на ФИГ.2. Команда доступа - это команда, которая осуществляет доступ к функции адаптера (например, адресному пространству функции адаптера) или выполняет действие от имени функции адаптера (например, заполняет или изменяет запись таблицы устройств). В одном примере эти команды реализуются с использованием встроенного программного обеспечения процессора, а следовательно отслеживание команд выполняет встроенное программное обеспечение. В контексте настоящего изобретения аппаратно-программное обеспечение содержит, например, микрокод, милликод и/или макрокод процессора. Оно содержит, например, команды аппаратного уровня и/или структуры данных, используемые при реализации высокоуровневого машинного кода. В одном варианте осуществления изобретения оно содержит, например, собственный код, который, как правило, поставляют как микрокод, который содержит выверенное программное обеспечение, или микрокод, характерный для базового аппаратного обеспечения, и управляет доступом операционной системы к аппаратному обеспечению системы.

Обращаясь к ФИГ.2, сначала завершается выполнение основной части команды, шаг 200. То есть, команда PCI, такая как команда Загрузить (Load), Сохранить (Store), Сохранить блок (Store Block), Изменить (Modify) или Обновить трансляции (Refresh Translations), поданная процессором, чтобы выполнить операцию для определенной функции адаптера, выполняется, и основная часть этой команды завершается.

После этого осуществляется определение, было ли выполнение основной части команды успешным, запрос 202. Это определение производится, например, проверкой состояния, связанного с командой (например, возвращаемого концентратором ввода-вывода). Если выполнение не было успешным, то выполнение команды завершается, шаг 204, и, в этом варианте осуществления, отслеживание для этой команды не обеспечивается. (В других вариантах осуществления неудавшиеся команды также могут учитываться). Однако, если выполнение было успешным, то осуществляется дальнейшее определение, активировано ли измерение для этой функции адаптера, запрос 206. То есть, в одном примере, измерение может быть активировано на основе отдельных функций адаптера путем установки индикатор активации измерения в блоке управления, связанном с функцией адаптера. Если измерение не активировано, то выполнение команды снова завершается без какого-либо отслеживания, шаг 204.

Однако, если измерение активировано для функции, то счетчик использования команды извлекается для функции из защищенной памяти, шаг 208. Например, в одном варианте осуществления, имеется множество счетчиков для каждой функции. Как показано на ФИГ.3, функция А содержит множество счетчиков, таких как, например, счетчик 310 загрузки, счетчик 312 сохранения, счетчик 314 сохранения блока, счетчик 316 изменения функции и счетчик 318 обновления трансляций. Каждый из этих счетчиков соответствует типу команды PCI, который может использоваться для доступа к функции PCI и для которого требуется отслеживание. Осуществляется определение, какой тип команды был выполнен, и извлекается счетчик, соответствующий команде, которая только что была успешно выполнена. Например, если была выполнена команда загрузки, то из безопасной памяти извлекается счетчик 310 загрузки. В других вариантах осуществления могут использоваться и/или отслеживаться больше, меньше или другие счетчики и/или команды управления.

Согласно ФИГ.2, после извлечения надлежащего счетчика использования команд, он увеличивается (например, на единицу) и сохраняется обратно в безопасной памяти, шаг 210. Это завершает выполнение команды, шаг 204.

В дополнение к отслеживанию команды, в соответствии с одной особенностью настоящего изобретения, также отслеживаются операции DMA. В частности, подсчитываются объемы передачи данных на основе отдельных функции. Как правило, операции DMA являются невидимыми для ЦП, использующего ранее описанные способы подсчета команд, поэтому используется альтернативный способ. Например, как показано на ФИГ.4А, когда функция 110 PCI запускает операцию записи или чтения DMA, она принимается на концентраторе 112 ввода-вывода через один или более коммутаторов 114. С учетом получения пакета чтения или записи PCI на концентраторе ввода-вывода от данной функции PCI, счетчик 400 передачи данных в концентраторе, и, в частности, в корневом комплексе 116, увеличивается в соответствии с размером передачи данных. В одном конкретном примере, для каждой функции PCI поддерживается уникальный набор счетчиков передачи данных чтения и записи. Эти счетчики отслеживают, например, число передаваемых байтов. Если, например, операция DMA является операцией чтения, то счетчик чтения обновляется числом считанных байтов. Аналогично, если операция DMA является операцией записи, то счетчик записи обновляется числом записанных байтов. В одном примере счетчики являются аппаратными счетчиками (например, 32-битными счетчиками на 32-байтной глубине детализации).

Дальнейшие подробности относительно отслеживания операций DMA описываются со ссылкой на ФИГ.4Б. В одном примере эту логическую схему выполняет концентратор ввода-вывода. Как показано на ФИГ.4Б, сначала запрос DMA принимается на концентраторе ввода-вывода от функции PCI, шаг 450. Осуществляется определение, активировано ли измерение для функции PCI, запрос 452. То есть, измерение активировано для конкретной функции адаптера. Это определение осуществляется посредством проверки индикатора, связанного с функцией. Если индикатор активации измерения не установлен, то отслеживание операции DMA завершено. Однако, если измерение активировано для этой конкретной функции PCI, то осуществляется определение типа обрабатываемого запроса, шаг 454. То есть, является ли запрос запросом чтения или записи. Кроме того, могут подсчитываться и другие типы операций, такие как инициируемые сообщениями прерывания или другие.

На основании типа запроса счетчик для этого типа и для этой функции выбирается и обновляется, шаг 458. В одном примере это происходит одновременно с обработкой DMA. Это завершает отслеживание запроса DMA.

В дополнение к вышеуказанному, в соответствии с одной особенностью настоящего изобретения, имеется блок управления измерением в системной памяти для каждой функции PCI, который периодически (например, каждые четыре секунды) динамически обновляется. Например, встроенное программное обеспечение автоматически обновляет один или более блоков управления для одной или более функций адаптера периодической выборкой значений измерений для функций. Например, встроенное программное обеспечение периодически считывает счетчики из концентратора ввода-вывода и добавляет их к накопленному подсчету в блоке управления измерением.

Один вариант осуществления блока 500 управления измерением представлен на ФИГ.5. Как показано, в этом примере блок 500 управления измерением содержит различные параметры, включая, например:

Подсчет 502 выборки: Это поле увеличивается каждый раз, когда подсистема ввода-вывода обновляет блок управления измерением;

Поле 504 операций сохранения: Это поле представляет собой обновляемое значение команд сохранения, которые были выполнены для функции PCI, связанной с этим блоком управления. Это поле обновляется путем добавления значения в счетчике 312 сохранения к значению этого поля.

Поля в этом блоке управления (исключая поле подсчета выборки) могут накапливаться в течение заданного периода времени или переустанавливаться после каждого периода выборки, так что значение отражает подсчеты для одного периода выборки. Период накопления определяется на основании политики и может перестраиваться;

Поле 506 операций загрузки: Это поле содержит подсчет операций загрузки для этой функции PCI. Это поле обновляется путем добавления значения в счетчике 310 загрузки к значению этого поля;

Поле 508 операций сохранения блока: Это поле содержит подсчет для операций сохранения блока для этой функции PCI. Это поле обновляется путем добавления значения в счетчике 314 сохранения блока к значению этого поля;

Поле 510 операций обновления трансляции: Это поле содержит подсчет команд обновления трансляций для этой функции PCI. Это поле обновляется путем добавления значения в счетчике 318 обновления трансляций к значению этого поля. Команда обновления трансляций используется, чтобы обновлять информацию трансляции, используемую адаптером; и

Счетчик(и) 512 чтения/записи DMA: Это поле также содержит обновленную информацию счетчиков чтения и записи для этой функции PCI. В этом примере эти счетчики являются 64-битными счетчиками. Например, счетчики 400 передачи периодически извлекаются из концентратора ввода/вывода и используются, чтобы обновлять счетчики 512 чтения/записи DMA.

К тому же, каждое из полей в блоке измерения динамически обновляется в определенные отрезки времени. Поле подсчета выборки увеличивается, и каждое из других полей обновляется путем добавления или замены значения в блоке управления его соответствующим счетчиком в защищенной памяти. В одном конкретном примере функция PCI может обладать одним или более адресными пространствами, определенными для нее, а следовательно корневой комплекс тогда содержит пару счетчиков чтения/записи для каждого адресного пространства функции. Аналогично, блок измерения этой функции PCI включает пары чтения/записи счетчиков для каждого из адресных пространств.

Чтобы активировать измерительное средство для функции, в одном примере операционная система выполняет команду регистрации измерения, называемую командой изменения управления функции шины PCI (Modify PCI Function Controls). Выполнение этой команды используется, чтобы информировать подсистему ввода-вывода об адресах в системной памяти для блока управления измерением, а также о ключе, используемом для доступа к этому местоположению. В одном конкретном примере эта команда также может отслеживаться, и поэтому в таком случае для этой команды управления в блоке управления измерения будет иметься поле, а также счетчик в защищенной памяти (см., например, счетчик 316 изменения функции).

Дальнейшие подробности относительно команды Modify PCI Function Controls описываются в данном документе. Обращаясь к ФИГ.6А, команда 600 Modify PCI Function Controls содержит, например, код 602 операции, указывающий команду Modify PCI Function Controls; первое поле 604, указывающее местоположение, в котором находится различная информация, касающаяся функции адаптера, для которой устанавливаются рабочие параметры; и второе поле 606, указывающее местоположение, из которого извлекается блок информации о функциях PCI (FIB). Содержимое местоположений, указанных в полях 1 и 2, дополнительно описано далее.

В одном из вариантов осуществления в поле 1 указан регистр общего назначения, в котором содержится различная информация. Как показано на ФИГ.6Б, в содержимом регистре содержится, например, дескриптор 610 функции, который идентифицирует дескриптор функции адаптера, от имени которого выполняется команда изменения;

адресное пространство 612, указывающее адресное пространство в системной памяти, соответствующее функции адаптера, указанной дескриптором функции; управление 614 операцией, которое определяет операцию, выполняемую для функции адаптера; и указатель 616 состояния, который указывает состояние команды при ее выполнении с использованием заданного кода.

В одном из вариантов осуществления дескриптор функции содержит, например, разрешающий индикатор, указывающий, активирован ли дескриптор, номер функции, указывающий функцию адаптера (это статический идентификатор, который может использоваться для индексации в таблице функций); и номер экземпляра, указывающий конкретный экземпляр этого дескриптора функции. Для каждой функции адаптера предусмотрен один дескриптор функции, который используется для определения местоположения записи в таблице функций (FTE). Каждая запись в таблице функций содержит рабочие параметры и/или другую информацию, связанную с функцией адаптера. В качестве одного из примеров, запись в таблице функций содержит: номер экземпляра: в этом поле указан конкретный экземпляр дескриптора функции адаптера, соответствующий записи в таблице функций;

индекс 1…n записи в таблице устройств (DTE): может существовать один или несколько индексов таблицы устройств, каждым из которых является индекс в таблице устройств для определения местоположения записи в таблице устройств (DTE). Для каждой функции адаптера существует одна или несколько записей в таблице устройств, каждая из которых содержит информацию, связанную с функцией адаптера, включая информацию, используемую для обработки запросов функции адаптера (например, запросов DMA, запросов MSI), и информацию, касающуюся запросов, связанных с функцией адаптера (например, команд шины PCI). Каждой записи в таблице устройств соответствует одно адресное пространство в системной памяти, присвоенное функции адаптера. Функция адаптера может иметь одно или несколько адресных пространств в системной памяти, присвоенных функции адаптера.

индикатор занятости: в этом поле указано, занята ли функция адаптера;

индикатор состояния постоянной ошибки: в этом поле указано, находится ли функция адаптера в состоянии постоянной ошибки;

индикатор инициированного восстановления: в этом поле указано, инициировано ли восстановление для функции адаптера;

индикатор полномочий: в этом поле указано, имеет ли операционная система, пытающаяся управлять функцией адаптера, полномочия для этого;

разрешающий индикатор: в этом поле указано, разрешена ли функция адаптера (например, 1 = разрешена, 0 = заблокирована);

идентификатор реквестора (RID): это идентификатор функции адаптера, содержащий, например, номер шины, номер устройства и номер функции.

В одном из примеров это поле используется для доступа к конфигурационному пространству функции адаптера. (Память адаптера может быть определена как адресные пространства, включая, например, конфигурационное пространство, пространство ввода-вывода и/или одно или более пространств памяти.) В одном из примеров доступ к конфигурационному пространству может осуществляться путем указания конфигурационного пространства в команде, которую операционная система (или другая конфигурация) передает функции адаптера. В команде указан сдвиг в конфигурационном пространстве и дескриптор функции, используемый для определения местоположения соответствующей записи в таблице функций, которая содержит RID. Аппаратно-программное обеспечение принимает команду и определяет, ч