Программируемые устройства для обработки запросов передачи данных памяти

1. Устройство обработки запросов передачи данных памяти, включающее:
программируемый блок обработки запросов передачи данных памяти (ПОЗПДП), включающий: первый порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с первым адресным пространством; и
отправки соответствующего ответа на запрос передачи данных памяти;
запоминающее устройство, содержащее программируемые данные конфигурации, где программируемые данные конфигурации включают:
как минимум один дескриптор региона, который содержит не менее одного правила, которое ассоциировано с регионом первого адресного пространства, в котором:
для каждого из, как минимум, одного дескриптора региона тип этого дескриптора региона выбирается из одного из следующих 7 типов:
дескриптор страницы с фиксированной длиной страницы;
дескриптор страницы с переменной длиной страницы;
дескриптор сегмента;
дескриптор буфера динамической трансляции; дескриптор диапазона;
дескриптор диапазона, который был адаптирован правилами трансляции адресов памяти;
дескриптор тэга кэша;
второй порт, являющийся главным портом, адаптированный для:
отправки запроса передачи данных памяти, ассоциированного с вторым адресным пространством; и
приема соответствующего ответа на запрос передачи данных памяти;
средства для обработки запроса передачи данных памяти, ассоциированного с первым адресным пространством, полученного через первый порт в соответствии с, как минимум, одним правилом, ассоциированным с первым адресным пространством, закодированным в программируемых данных конфигурации на момент обработки;
средства для генерации и отправки на второй порт запроса передачи данных памяти, ассоциированного со вторым адресным пространством, в ответ на запрос передачи данных памяти, ассоциированный с первым адресным пространством, полученный через первый порт в соответствии с, как минимум, одним правилом, ассоциированным с первым адресным пространством, закодированным в программируемых данных конфигурации на момент обработки;
третий порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с третьим адресным пространством, для получения доступа к части программируемых данных конфигурации; и
отправки соответствующего ответа на запрос передачи данных памяти;
средства для обработки правильно сформированного запроса передачи данных памяти, полученного через третий порт, который адресован в область памяти в третьем адресном пространстве, которое ассоциировано с частью, как минимум, одного дескриптора региона;
программируемый блок прямого доступа к памяти (ППДП), включающий:
первый порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти для управления блоком ППДП; и
отправки соответствующего ответа на запрос передачи данных памяти;
второй порт, являющийся главным портом, адаптированный для:
отправки запроса передачи данных памяти; и
приема соответствующего ответа на запрос передачи данных памяти;
запоминающее устройство, содержащее программируемые данные конфигурации, включая:
как минимум один управляющий дескриптор передачи память-память, который может описать операцию передачи «память-память»; и
средства обработки операции передачи «память-память», используя второй порт и, как минимум, один управляющий дескриптор передачи «память-память»; и
где:
блок ППДП адаптирован для отправки запроса передачи данных памяти из своего второго порта на третий порт блока ПОЗПДП; и
блок ПОЗПДП адаптирован для приема и успешной обработки правильно сформированного запроса передачи данных памяти, отправленного через второй порт блока ППДП, который адресован в область памяти в третьем адресном пространстве, которое ассоциировано с частью, как минимум, одного дескриптора региона блока ПОЗПДП.
2. Устройство по п. 1, где:
часть программируемых данных конфигурации ассоциирована с пользовательской частью первого адресного пространства; и
все программируемые данные конфигурации блока ПОЗПДП, ассоциированные с пользовательской частью первого адресного пространства, доступного через третий порт блока ПОЗПДП, могут быть запрограммированы в одной операции передачи «память-память» блока ППДП.
3. Устройство по любому из пп. 1-2, где программируемые данные конфигурации блока ПОЗПДП также включают в себя как минимум одну строку кэша или как минимум один блок кэша.
4. Устройство по любому из пп. 1-2, где:
блок ПОЗПДП включает в себя средства для ассоциации идентификатора адресного пространства с запросом передачи данных памяти, полученным на первый порт этого блока ПОЗПДП; и
как минимум один из дескрипторов региона из программируемых данных конфигурации этого блока ПОЗПДП может быть ассоциирован с идентификатором адресного пространства.
5. Устройство обработки запросов передачи данных памяти, адаптированное для отображения запроса передачи данных памяти, ассоциированного с первым адресным пространством с, как минимум, одним из N+1 логически независимых регионов обработки запросов передачи данных памяти, указанное адресное пространство разбивается на, как минимум, N непрерывных разделов; указанное устройство, включает:
первый порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с первым адресным пространством, в котором запрос передачи данных памяти ассоциирован с:
адресом памяти в первом адресном пространстве; и
идентификатором адресного пространства; и
отправки соответствующего ответа на запрос передачи данных памяти;
второй порт, адаптированный для отправки значения, ассоциированного с одним из N+1 логически независимых регионов MTRP;
средства для генерации значения, ассоциированного с одним из N+1 логически независимых регионов MTRP второго порта в ответ на запрос передачи данных памяти, полученный на первый порт;
средства указания, что запрос передачи данных памяти не был успешно отображен на одном из N+1 логически независимых регионов MTRP на третьем порте;
где:
значение N равно не менее 2;
как минимум 2 из N+1 логически независимых регионов MTRP могут быть отображены на том же разделе из не менее N непрерывных разделов первого адресного пространства; и
если адрес памяти, ассоциированный с запросом передачи данных памяти, полученным на первом порту, ассоциирован с одним из не менее N непрерывных разделов первого адресного пространства, который могут содержать не менее 2 из N+1 логически независимых регионов MTRP, отображаемых на нем, то значение идентификатора адресного пространства, ассоциированного с этим запросом передачи данных памяти, используется для определения на какой, если имеется, из этих, как минимум, 2 из N+1 логически независимых регионов ПОЗПДП он отображается.
6. Устройство по п. 5, где каждый из, как минимум, N+1 логически независимых регионов обработки запросов передачи данных памяти (ОЗПДП) применяет программируемую схему трансляции адресов памяти для трансляции запросов передачи данных памяти в этот регион.
7. Устройство по п. 6, где как минимум одна из программируемых схем трансляции адресов памяти применяет одноуровневую схему с прямой индексацией.
8. Устройство по п. 5 или 6, где как минимум два идентификатора адресного пространства могут быть ассоциированы с одним из как минимум N непрерывных разделов первого адресного пространства, где этот непрерывный раздел первого адресного пространства ассоциируется с одним из N+1 логически независимых регионов MTRP.
9. Устройство по п. 5 или 6, где значение идентификатора адресного пространства, ассоциированного с запросом передачи данных памяти, ассоциируется с как минимум двумя из, как минимум, N непрерывных разделов первого адресного пространства.
10. Устройство обработки запросов передачи данных памяти, включающее в себя:
программируемый блок обработки запросов передачи данных памяти (ПОЗПДП), включающий в себя:
первый порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с первым адресным пространством, от первого межкомпонентного соединения; и
отправки соответствующего ответа на запрос передачи данных памяти;
второй порт, являющийся главным портом, адаптированный для:
отправки запроса передачи данных памяти, ассоциированного с вторым адресным пространством, на второе межкомпонентное соединение, где второе межкомпонентное соединение не является первым межкомпонентным соединением; и
приема соответствующего ответа на запрос передачи данных памяти;
первый комплект из не менее двух программируемых дескрипторов региона, где:
для каждого программируемого дескриптора региона этот программируемый дескриптор региона:
программно ассоциирован с регионом памяти первого адресного пространства;
включает в себя программируемые правила разрешения доступа; и
включает в себя правила программируемой трансляции адресов памяти;
третий порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с третьим адресным пространством, для получения доступа к части первого комплекта из не менее двух программируемых дескрипторов региона; и
отправки соответствующего ответа на запрос передачи данных памяти;
средства для обработки правильно сформированного запроса передачи данных памяти, полученного через третий порт, который адресован в область памяти в третьем адресном пространстве, которое ассоциировано с частью, как минимум, одного программируемого дескриптора региона из первого набора из, как минимум, двух программируемых дескрипторов региона;
четвертого порта, являющегося портом вывода;
средства для генерации и отправки на второй порт запроса передачи данных памяти в ответ на запрос передачи данных памяти, полученный на первый порт в соответствии с, как минимум, одним правилом, ассоциированным с этим полученным запросом передачи данных памяти, как хранящимся в первом наборе из как минимум двух программируемых дескрипторов региона памяти;
средства для трансляции запроса передачи данных памяти, полученного на первый порт, когда ровно один из как минимум двух программируемых дескрипторов региона, программно ассоциированных с этим адресом, имеет активированное правило трансляции; и
средства для генерации сигнала на четвертый порт, когда более одного программируемого дескриптора региона из как минимум двух программируемых дескрипторов региона, программно связанных с этим адресом, имеет активированное правило трансляции.
11. Устройство по п. 10, где как минимум один программируемый дескриптор региона первого набора из как минимум двух программируемых дескрипторов региона блока ПОЗПДП содержит:
как минимум одно поле разрешения, связанное с запросом передачи данных памяти с исполняемым кодом, выдается от лица программного обеспечения, выполняемого на одном или нескольких ядрах процессора; и
как минимум одно поле разрешения, связанное с запросом передачи данных памяти с данными, выдается от лица программного обеспечения, выполняемого на одном или нескольких ядрах процессора.
12. Устройство по п. 10 или 11, где:
блок ПОЗПДП включает в себя средства для ассоциации идентификатора адресного пространства с запросом передачи данных памяти, полученным на первый порт этого блока ПОЗПДП; и
как минимум один из программируемых дескрипторов региона этого блока ПОЗПДП может быть ассоциирован с идентификатором адресного пространства.
13. Устройство обработки запросов передачи данных памяти, включающее в себя:
программируемый блок обработки запросов передачи данных памяти (ПОЗПДП), включающий в себя:
первый порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с первым адресным пространством, от первого межкомпонентного соединения; и
отправки соответствующего ответа на запрос передачи данных памяти;
второй порт, являющийся главным портом, адаптированный для:
отправки запроса передачи данных памяти, ассоциированного с вторым адресным пространством, на второе межкомпонентное соединение, где второе межкомпонентное соединение не является первым межкомпонентным соединением; и
приема передаваемых данных памяти;
запоминающее устройство, содержащее программируемые данные конфигурации, где программируемые данные конфигурации включают в себя:
как минимум один кэшированный дескриптор региона, который содержит не менее одного правила, которое ассоциировано с регионом первого адресного пространства;
средства для:
доступа к, как минимум, N наборам из не менее двух дескрипторов региона посредством генерации и отправки не менее одного запроса передачи данных памяти через второй порт, где как минимум 1 набор из не менее двух дескрипторов региона представляет собой набор кэшированных дескрипторов региона;
получения соответствующего ответа; и
кэширования этого полученного дескриптора региона;
средства для обработки запроса передачи данных памяти, полученного на первый порт в соответствии с правилами, закодированными в первом наборе из N наборов не менее двух дескрипторов региона, доступных через второй порт на момент обработки; и
средства для генерации и отправки на второй порт запроса передачи данных памяти в ответ на запрос передачи данных памяти, полученный на первый порт в соответствии с, как минимум, одним правилом, ассоциированным с этим полученным запросом передачи данных памяти, как хранящимся в первом наборе из N наборов не менее двух программируемых дескрипторов региона; и
где значение N равно не менее 1.
14. Устройство по п. 13, где значение N равно как минимум 2, а блок ПОЗПДП дополнительно адаптирован для:
разбивки первого адресного пространства первого порта на как минимум 2 непрерывных регионов; и
каждого региона из не менее двух непрерывных регионов первого адресного пространства:
программно ассоциировать этот регион с другим набором из N наборов не менее двух дескрипторов региона, доступных через второй порт.
15. Устройство по п. 13 или 14, где как минимум одним набор из N наборов из не менее двух дескрипторов региона используется в одноуровневой схеме с прямой индексацией.
16. Устройство по п. 13 или 14, где как минимум одним набор из N наборов из не менее двух дескрипторов региона используется в многоуровневой схеме.
17. Устройство по п. 13, где:
для каждого из как минимум N наборов из не менее двух дескрипторов региона блока ПОЗПДП:
все дескрипторы региона в этом наборе одного типа; и
тип всех дескрипторов региона выбирается из 6 следующих типов:
дескриптор страницы с фиксированной длиной страницы;
дескриптор страницы с переменной длиной страницы;
дескриптор сегмента;
дескриптор буфера динамической трансляции; дескриптор региона;
дескриптор региона, который был адаптирован правилами программируемой трансляции адресов памяти; и
как минимум 2 набора из как минимум N наборов из не менее двух дескрипторов региона блока ПОЗПДП имеют разные типы дескрипторов региона.
18. Устройство по п. 14, где:
для каждого из как минимум N наборов из не менее двух дескрипторов региона блока ПОЗПДП:
все дескрипторы региона в этом наборе одного типа; и
тип всех дескрипторов региона выбирается из 6 следующих типов:
дескриптор страницы с фиксированной длиной страницы;
дескриптор страницы с переменной длиной страницы;
дескриптор сегмента;
дескриптор буфера динамической трансляции; дескриптор диапазона;
дескриптор диапазона, который был адаптирован правилами программируемой трансляции адресов памяти; и
как минимум 2 набора из как минимум N наборов из не менее двух дескрипторов региона блока ПОЗПДП имеют разные типы дескрипторов региона.
19. Устройство по п. 18, где блок ПОЗПДП дополнительно адаптирован:
средствами для доступа к как минимум одному кэшу дескрипторов региона, в котором каждый кэш дескрипторов региона содержит не менее двух дескрипторов региона, посредством генерации как минимум одного запроса передачи данных памяти через второй порт и получения соответствующего(-их) ответа(-ов);
средствами для обработки запроса передачи данных памяти, полученного на первый порт в соответствии с правилами, закодированными в одном из как минимум одного кэша дескрипторов региона, доступных через второй порт на момент обработки; и
средствами для генерации и отправки на второй порт запроса передачи данных памяти в ответ на запрос передачи данных памяти, полученный на первый порт в соответствии с правилами, закодированными в одном из как минимум одного кэша дескрипторов региона, доступных через второй порт на момент обработки.
20. Устройство по п. 19, где блок ПОЗПДП дополнительно адаптирован:
средствами доступа к как минимум двум кэшам дескрипторов региона;
разбивки первого адресного пространства первого порта на как минимум 2 непрерывных регионов; и
средствами программной ассоциации каждого из этих как минимум 2 непрерывных регионов с одним из как минимум двух кэшей дескрипторов региона, доступных через второй порт.
21. Устройство по п. 14 или 19, где блок ПОЗПДП дополнительно адаптирован:
третьим портом, являющимся главным портом, адаптированный для:
отправки запроса передачи данных памяти, ассоциированного с третьим адресным пространством, на третье межкомпонентное соединение, где третье межкомпонентное соединение не является первым и вторым межкомпонентным соединением; и
приема передаваемых данных памяти;
средствами для обработки запроса передачи данных памяти, полученного на первый порт в соответствии с правилами, закодированными в одном наборе из как минимум N наборов программируемых дескрипторов региона, доступных через третий порт на момент обработки; и
средствами для генерации и отправки на второй порт запроса передачи данных памяти в ответ на запрос передачи данных памяти, полученный на первый порт в соответствии с правилами, закодированными в одном наборе из как минимум N наборов программируемых дескрипторов региона, доступных через третий порт на момент обработки.
22. Устройство обработки запросов передачи данных памяти, включающее:
программируемый блок обработки запросов передачи данных памяти (ПОЗПДП), включающий:
первый порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с первым адресным пространством, где первое адресное пространство:
подразделено на N разделов; и
диапазон адресного пространства составляет М кибибайтов; и
отправки соответствующего ответа на запрос передачи данных памяти;
второй порт, являющийся главным портом, адаптированный для:
отправки запроса передачи данных памяти, ассоциированного со вторым адресным пространством, где диапазон второго адресного пространства составляет 0 кибибайт; и
приема соответствующего ответа на запрос передачи данных памяти;
запоминающее устройство, содержащее программируемые данные конфигурации, где программируемые данные конфигурации включают:
как минимум N дескрипторов региона, где:
каждый из N дескрипторов региона содержит не менее одного правила, которое ассоциировано с регионом первого адресного пространства;
все из как минимум N дескрипторов региона являются дескрипторами региона одного и того же типа, где этот тип дескриптора региона выбирается из одного из следующих 2:
дескриптор страницы с поддержкой не менее 8 разных длин страниц;
дескриптор сегмента с поддержкой не менее 16 разных выделенных длин сегментов;
как минимум N из не менее N дескрипторов региона ассоциированы с разными из N разделов первого адресного пространства;
средства для обработки запроса передачи данных памяти, ассоциированного с первым адресным пространством, полученного через первый порт в соответствии с, как минимум, одним правилом, ассоциированным с первым адресным пространством, закодированным в программируемых данных конфигурации на момент обработки;
средства для генерации и отправки на второй порт запроса передачи данных памяти, ассоциированного со вторым адресным пространством, в ответ на запрос передачи данных памяти, ассоциированный с первым адресным пространством, полученный через первый порт в соответствии с, как минимум, одним правилом, ассоциированным с первым адресным пространством, закодированным в программируемых данных конфигурации на момент обработки; и
где:
значение М равно не менее 1024;
значение N равно не менее 2 и меньше 16384; и
значение О равно не менее 1.
23. Устройство по п. 22, где блок ПОЗПДП дополнительно включает в себя:
третий порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с третьим адресным пространством, для получения доступа к части программируемых данных конфигурации; и
отправки соответствующего ответа на запрос передачи данных памяти;
средства для обработки правильно сформированного запроса передачи данных памяти, полученного через третий порт, который адресован в действительную область памяти, который получает доступ к как минимум одному из как минимум N дескрипторов региона; и
средства для ответа на правильно сформированный запрос передачи данных памяти, полученный через третий порт, который адресован в действительную область памяти, который получает доступ к как минимум одному из как минимум N дескрипторов региона посредством отправки запроса передачи данных памяти на третий порт.
24. Устройство по п. 23, где устройство дополнительно включает в себя:
межкомпонентное соединение;
как минимум одно целевое соединительное периферийное устройство, подключенное к этому соединению; и
где третий порт блока ПОЗПДП также подключен к этому соединению.
25. Устройство по п. 22 или 23, где блок ПОЗПДП использует тип схемы поиска с прямой индексацией, чтобы показать, какой из минимум N дескрипторов региона ассоциирован с запросом передачи данных памяти.
26. Устройство по п. 22 или 23, где блок ПОЗПДП использует полностью ассоциативную схему поиска, чтобы показать, какой из минимум N дескрипторов региона ассоциирован с запросом передачи данных памяти.
27. Устройство по п. 22 или 23, где блок ПОЗПДП использует контент-ассоциативную схему поиска, чтобы показать, какой из минимум N дескрипторов региона ассоциирован с запросом передачи данных памяти.
28. Устройство обработки запросов передачи данных памяти, включающее:
первый программируемый блок обработки запросов передачи данных памяти (ПОЗПДП), включающий:
первый порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с первым адресным пространством; и
отправки соответствующего ответа на запрос передачи данных памяти;
запоминающее устройство, содержащее программируемые данные конфигурации, где программируемые данные конфигурации включают:
как минимум один дескриптор региона, который содержит не менее одного правила, которое ассоциировано с регионом первого адресного пространства, в котором:
для каждого из, как минимум, одного дескриптора региона тип этого дескриптора региона выбирается из одного из следующих 5 типов:
дескриптор страницы с фиксированной длиной страницы;
дескриптор страницы с переменной длиной страницы;
дескриптор сегмента;
дескриптор буфера динамической трансляции;
дескриптор региона, который был адаптирован правилами программируемой трансляции адресов памяти;
второй порт, являющийся главным портом, адаптированный для:
отправки запроса передачи данных памяти, ассоциированного с вторым адресным пространством; и
приема соответствующего ответа на запрос передачи данных памяти;
средства для обработки запроса передачи данных памяти, ассоциированного с первым адресным пространством, полученного через первый порт в соответствии с, как минимум, одним правилом, ассоциированным с первым адресным пространством, закодированным в программируемых данных конфигурации на момент обработки;
средства для генерации и отправки на второй порт запроса передачи данных памяти, ассоциированного со вторым адресным пространством, в ответ на запрос передачи данных памяти, ассоциированный с первым адресным пространством, полученный через первый порт в соответствии с, как минимум, одним правилом, ассоциированным с первым адресным пространством, закодированным в программируемых данных конфигурации на момент обработки;
третий порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с третьим адресным пространством, для получения доступа к части программируемых данных конфигурации; и
отправки соответствующего ответа на запрос передачи данных памяти;
средства для обработки правильно сформированного запроса передачи данных памяти, полученного через третий порт, который адресован в область памяти в третьем адресном пространстве, которое ассоциировано с частью, как минимум, одного дескриптора региона;
второй программируемый блок обработки запросов передачи данных памяти (ПОЗПДП), включающий:
первый порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с первым адресным пространством; и
отправки соответствующего ответа на запрос передачи данных памяти;
запоминающее устройство, содержащее программируемые данные конфигурации, где программируемые данные конфигурации включают:
как минимум один дескриптор, который содержит как минимум одно правило, ассоциированное с регионом первого адресного пространства, в котором этот дескриптор содержит как минимум одно правило, описывающее трансформацию не менее одного из как минимум одного правила, содержащегося в дескрипторе региона, полученного через один или несколько запросов передачи данных памяти на первый порт;
второй порт, являющийся главным портом, адаптированный для:
отправки запроса передачи данных памяти, ассоциированного с вторым адресным пространством; и
приема соответствующего ответа на запрос передачи данных памяти;
средства для обработки запроса передачи данных памяти, ассоциированного с первым адресным пространством, полученного через первый порт в соответствии с, как минимум, одним правилом, ассоциированным с первым адресным пространством, закодированным в программируемых данных конфигурации на момент обработки;
средства для генерации и отправки на второй порт запроса передачи данных памяти, ассоциированного со вторым адресным пространством, в ответ на запрос передачи данных памяти, ассоциированный с первым адресным пространством, полученный через первый порт в соответствии с, как минимум, одним правилом, ассоциированным с первым адресным пространством, закодированным в программируемых данных конфигурации на момент обработки;
третий порт, являющийся целевым портом, адаптированный для:
получения запроса передачи данных памяти, ассоциированного с третьим адресным пространством, для получения доступа к части программируемых данных конфигурации; и
отправки соответствующего ответа на запрос передачи данных памяти;
средства для обработки правильно сформированного запроса передачи данных памяти, полученного через третий порт, который адресован в область памяти в третьем адресном пространстве, которое ассоциировано с частью, как минимум, одного дескриптора;
где:
второй порт второго блока ПОЗПДП подключен к третьему порту первого блока ПОЗПДП.
29. Устройство по п. 3, где:
блок ПОЗПДП включает в себя средства для ассоциации идентификатора адресного пространства с запросом передачи данных памяти, полученным на первый порт этого блока ПОЗПДП; и
как минимум один из дескрипторов региона из программируемых данных конфигурации этого блока ПОЗПДП может быть ассоциирован с идентификатором адресного пространства.