МНОГОПОРТОВЫЙ КОНТРОЛЛЕР ЗАПОМИНАЮЩЕГО УСТРОЙСТВА С ПОРТАМИ, АССОЦИИРОВАННЫМИ С КЛАССАМИ ТРАФИКА

1. Контроллер запоминающего устройства, содержащий множество портов, в котором каждый порт соединяется для приема операций в запоминающем устройстве из одного или нескольких источников, и в котором каждый порт предназначается для трафика операции в запоминающем устройстве конкретного типа, причем контроллер запоминающего устройства содержит блок интерфейса агента, сконфигурированный для переключения трафика операции в запоминающем устройстве с множества портов на множество блоков каналов запоминающего устройства в ответ на относительные параметры качества обслуживания (QoS) для операций в запоминающем устройстве, и причем в ответ на прием первой операции в запоминающем устройстве из первого источника, который передал одну или более предыдущих операций в запоминающем устройстве, и дополнительно в ответ на первый параметр QoS, соответствующий первой операции в запоминающем устройстве, указывающий более высокий уровень обслуживания, чем предыдущие параметры QoS, соответствующие предыдущим операциям в запоминающем устройстве, контроллер запоминающего устройства конфигурируется для повышения предыдущих параметров QoS до уровня обслуживания, указанного первым параметром QoS.
2. Контроллер запоминающего устройства по п. 1, в котором определение параметров QoS отличается для разных типов трафика, и в котором блок интерфейса агента конфигурируется для сравнения параметров QoS с разными определениями для переключения трафика операции в запоминающем устройстве.
3. Контроллер запоминающего устройства по п. 2, в котором по меньшей мере один из портов предназначается для трафика реального масштаба времени, и в котором параметры QoS для трафика реального масштаба времени отражают разные уровни срочности в источнике.
4. Контроллер запоминающего устройства по п. 3, в котором по меньшей мере другой из портов предназначается для трафика от процессора, причем процессорный трафик не относится к реальному масштабу времени, и причем параметры QoS указывают обслуживание либо наилучшее из возможного, либо с малой задержкой.
5. Контроллер запоминающего устройства по п. 4, в котором по меньшей мере другой из портов предназначается для трафика от графического блока, причем графический трафик не относится к реальному масштабу времени.
6. Контроллер запоминающего устройства по п. 1, дополнительно содержащий множество блоков каналов запоминающего устройства, причем множество блоков каналов запоминающего устройства конфигурируется для хранения параметров QoS для операций считывания и аннулирования параметров QoS для операций записи, и причем множество блоков каналов запоминающего устройства конфигурируется для повышения параметров QoS для операций считывания из первого источника в ответ на первый параметр QoS, указывающий более высокий уровень обслуживания, чем параметры QoS для операций считывания.
7. Контроллер запоминающего устройства по п. 1, дополнительно содержащий множество блоков каналов запоминающего устройства, соединенных с блоком интерфейса агента, в котором блоки каналов запоминающего устройства каждый содержат очередь предварительной сортировки и блок интерфейса запоминающего устройства для соединения с запоминающим устройством, и в котором блок интерфейса агента конфигурируется для планирования операций в запоминающем устройстве из портов на заданный блок канала запоминающего устройства в ответ на параметры QoS у операций в запоминающем устройстве, и в котором блок интерфейса агента конфигурируется для переупорядочения операций в запоминающем устройстве в заданный блок канала запоминающего устройства на основе параметров QoS, и в котором блоки каналов запоминающего устройства конфигурируются для группировки операций в запоминающем устройстве в очереди предварительной сортировки в соответствии с тем, какие операции в запоминающем устройстве предполагается эффективно выполнять вместе для запоминающего устройства, и в котором блоки каналов запоминающего устройства конфигурируются для планирования групп на основе параметра QoS наивысшего уровня в каждой группе, и в котором блоки каналов запоминающего устройства конфигурируются для предварительного синтезирования операций в запоминающем устройстве в команды для запоминающего устройства, и в котором блок интерфейса запоминающего устройства конфигурируется для переупорядочения команд на основе эффективного доступа к запоминающему устройству.
8. Контроллер запоминающего устройства по п. 7, в котором операции в запоминающем устройстве содержат операции считывания и операции записи, и в котором очереди предварительной сортировки конфигурируются для постановки в очередь отдельно операций считывания и операций записи, и в котором очереди предварительной сортировки конфигурируются для аннулирования параметров QoS для операций записи и планирования между операциями считывания и операциями записи в ответ на заполненность очередей записи.
9. Контроллер запоминающего устройства по п. 7, в котором предполагается, что операции в запоминающем устройстве эффективно выполнять вместе, если верно по меньшей мере одно из следующего: (i) операции в запоминающем устройстве относятся к той же странице в запоминающем устройстве; (ii) они относятся к разным рангам запоминающего устройства; или (iii) они относятся к разным банкам запоминающего устройства.
10. Интегральная схема, содержащая:
контроллер запоминающего устройства по п. 1;
одно или более периферийных устройств реального масштаба времени (RT);
по меньшей мере один процессор; и
одно или более периферийных устройств, не относящихся к реальному масштабу времени (NRT); и
причем одно или более периферийных устройств RT соединяются с портом RT из множества портов, по меньшей мере один процессор соединяется с первым портом NRT из множества портов, и причем одно или более периферийных устройств NRT соединяются со вторым портом NRT из множества портов, и причем контроллер запоминающего устройства конфигурируется для захвата операций в запоминающем устройстве из множества портов и планирования операций в запоминающем устройстве в одном или нескольких каналах запоминающего устройства, причем определения планирования между операциями в запоминающем устройстве, принятыми в разных портах, частично зависят от определенных портов, в которых принимались операции в запоминающем устройстве.
11. Способ, содержащий этапы, на которых:
принимают операции в запоминающем устройстве в множестве портов в контроллере запоминающего устройства, в котором каждый порт соединяется для приема операций в запоминающем устройстве из одного или нескольких источников, и в котором каждый порт предназначается для трафика операции в запоминающем устройстве конкретного типа;
переключают трафик операции в запоминающем устройстве с множества портов на множество блоков каналов запоминающего устройства в контроллере запоминающего устройства в ответ на относительные параметры качества обслуживания (QoS) для операций в запоминающем устройстве;
принимают первую операцию в запоминающем устройстве из первого источника, который передал одну или более предыдущих операций в запоминающем устройстве; и
в ответ на первый параметр QoS, соответствующий первой операции в запоминающем устройстве, указывающий более высокий уровень обслуживания, чем предыдущие параметры QoS, соответствующие предыдущим операциям в запоминающем устройстве, контроллер запоминающего устройства повышает предыдущие параметры QoS до уровня обслуживания, указанного первым параметром QoS.
12. Способ по п. 11, в котором этап, на котором принимают операции в запоминающем устройстве, содержит этапы, на которых:
принимают первую операцию в запоминающем устройстве в порту реального масштаба времени (RT) из множества портов, причем первая операция в запоминающем устройстве имеет первый параметр качества обслуживания (QoS), заданный в соответствии с набором уровней QoS RT;
принимают вторую операцию в запоминающем устройстве в порту, не относящемуся к реальному масштабу времени (NRT), из множества портов параллельно с первой операцией в запоминающем устройстве, причем вторая операция в запоминающем устройстве имеет второй параметр QoS, заданный в соответствии с набором уровней QoS NRT; и
в котором этап, на котором переключают трафик операции в запоминающем устройстве, содержит этап, на котором:
контроллер запоминающего устройства планирует первую операцию в запоминающем устройстве и вторую операцию в запоминающем устройстве для доступа к запоминающему устройству по меньшей мере частично в ответ на первый параметр QoS и второй параметр QoS.
13. Способ по п. 11, дополнительно содержащий этапы, на которых:
множество блоков каналов запоминающего устройства сохраняет параметры QoS для операций считывания;
множество блоков каналов запоминающего устройства аннулирует параметры QoS для операций записи; и
множество блоков каналов запоминающего устройства повышает параметры QoS для операций считывания из первого источника в ответ на первый параметр QoS, указывающий более высокий уровень обслуживания, чем параметры QoS для операций считывания.
14. Способ по п. 11, в котором блоки каналов запоминающего устройства каждый содержат очередь предварительной сортировки и блок интерфейса запоминающего устройства для соединения с запоминающим устройством, и в котором этап, на котором переключают трафик операции в запоминающем устройстве, содержит этапы, на которых:
планируют операции в запоминающем устройстве из портов на заданный блок канала запоминающего устройства в ответ на параметры QoS у операций в запоминающем устройстве;
переупорядочивают операции в запоминающем устройстве в заданный блок канала запоминающего устройства на основе параметров QoS.
15. Способ по п. 14, дополнительно содержащий этапы, на которых:
множество блоков каналов запоминающего устройства группирует операции в запоминающем устройстве в очереди предварительной сортировки в соответствии с тем, какие операции в запоминающем устройстве предполагается эффективно выполнять вместе для запоминающего устройства;
множество блоков каналов запоминающего устройства планирует группы на основе параметра QoS наивысшего уровня в каждой группе;
множество блоков каналов запоминающего устройства предварительного синтезирует операции в запоминающем устройстве в виде команд для запоминающего устройства; и
блок интерфейса запоминающего устройства переупорядочивает команды на основе эффективного доступа к запоминающему устройству.
16. Способ по п. 15, в котором операции в запоминающем устройстве содержат операции считывания и операции записи, и способ дополнительно содержит этапы, на которых:
очереди предварительной сортировки ставят в очередь отдельно операции считывания и операции записи;
очереди предварительной сортировки аннулируют параметры QoS для операций записи; и
очереди предварительной сортировки планируют между операциями считывания и операциями записи в ответ на заполненность очередей записи.
17. Способ по п. 15, в котором предполагается, что операции в запоминающем устройстве эффективно выполнять вместе, если верно по меньшей мере одно из следующего: (i) операции в запоминающем устройстве относятся к той же странице в запоминающем устройстве; (ii) они относятся к разным рангам запоминающего устройства; или (iii) они относятся к разным банкам запоминающего устройства.