RU2547636C1 - Устройство для преобразования виртуальных адресов в физические адреса - Google Patents

Устройство для преобразования виртуальных адресов в физические адреса Download PDF

Info

Publication number
RU2547636C1
RU2547636C1 RU2013159330/08A RU2013159330A RU2547636C1 RU 2547636 C1 RU2547636 C1 RU 2547636C1 RU 2013159330/08 A RU2013159330/08 A RU 2013159330/08A RU 2013159330 A RU2013159330 A RU 2013159330A RU 2547636 C1 RU2547636 C1 RU 2547636C1
Authority
RU
Russia
Prior art keywords
conversion
inputs
outputs
group
addresses
Prior art date
Application number
RU2013159330/08A
Other languages
English (en)
Inventor
Максим Петрович Авдеев
Валерий Александрович Свиридов
Сергей Владимирович Дыдыкин
Алексей Александрович Холостов
Original Assignee
Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом"
Федеральное государственное унитарное предприятие "Российский Федеральный ядерный центр-Всероссийский научно-исследовательский институт экспериментальной физики" - ФГУП "РФЯЦ-ВНИИЭФ"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом", Федеральное государственное унитарное предприятие "Российский Федеральный ядерный центр-Всероссийский научно-исследовательский институт экспериментальной физики" - ФГУП "РФЯЦ-ВНИИЭФ" filed Critical Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом"
Priority to RU2013159330/08A priority Critical patent/RU2547636C1/ru
Application granted granted Critical
Publication of RU2547636C1 publication Critical patent/RU2547636C1/ru

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

Изобретение относится к области коммуникационных систем, в частности к механизмам взаимодействия адаптерной платы с памятью вычислительного узла.
Известно устройство для преобразования виртуальных адресов в физические адреса, использующееся в коммуникационной системе EXTOLL (см. http://www.extoll.de/), которое содержит входной интерфейс НТАХ Inport, управляемый конечным автоматом FSM, через который поступают заявки на преобразование виртуальных адресов и ответы на запросы чтения удаленной таблицы преобразования, расположенной в памяти вычислительного узла. Выходы входного интерфейса НТАХ Inport соединены с входами ATU Request FIFO и ATU Reorder Buffer соответственно. Выход очереди поступивших запросов на преобразование виртуальных адресов ATU Request FIFO соединен со входом блока формирования запросов чтения удаленной таблицы преобразования виртуальных адресов ATU Requester, выходы которого соединены со входами последовательной кэш-памяти ранее преобразованных виртуальных адресов TLB и выходным интерфейсом НТАХ Outport. Выход буфера сортировки поступающих ответов на запросы чтения удаленной таблицы преобразования ATU Reorder Buffer соединен с первым входом блока обработки ответов на запросы чтения удаленной таблицы преобразования ATU Responder, второй вход которого соединен со вторым выходом блока формирования запросов чтения удаленной таблицы преобразования виртуальных адресов ATU Requester, третий вход соединен с выходом последовательной кэш-памяти ранее преобразованных виртуальных адресов TLB, а выход соединен со вторым входом выходного интерфейса НТАХ Outport, через который передаются ответы на запросы на преобразование виртуальных адресов и запросы на чтение.
Блоки НТАХ Inport и НТАХ Outport отвечают за взаимодействие с остальной логикой EXTOLL. Request FIFO содержит входящие запросы на преобразование от других блоков EXTOLL. Эти запросы вычитываются блоком ATU Requester. Блок ATU Requester начинает поиск в кэш и одновременно подготавливает запрос на чтение глобальной таблицы преобразования. Когда поиск в кэш завершен, блок Requester либо направляет запрос на чтение глобальной таблицы через НТАХ Outport (в случае кэш-промаха), либо направляет необходимые данные блоку Responder (в случае кэш-попадания). Блок ATU Reorder Buffer принимает входящие ответы, содержащие записи глобальных таблиц преобразования и сортирует их в порядке запросов (так как в системе с HiperTransport ответы на запросы чтения памяти могут приходить в измененном порядке). Отсортированные ответы передаются блоку ATU Responder. Блок ATU Responder получает записи глобальных таблиц либо от блока сортировки, либо из кэш. ATU Responder формирует возвращаемое значение преобразования и передает его через НТАХ Outport блоку, запросившему преобразование.
Вышеуказанное устройство является наиболее близким по технической сущности к заявляемому устройству и поэтому выбрано в качестве прототипа.
Недостатками прототипа являются отсутствие контроля выхода за выделенный массив зарегистрированной памяти, а также одноуровневая система кэширования ранее преобразованных адресов.
Решаемой технической задачей является создание устройства для преобразования виртуальных адресов в физические адреса с повышенной надежностью и производительностью.
Достигаемым техническим результатом является введение контроля за преобразуемым виртуальным адресом, а также введение дополнительного уровня кэширования непосредственно в каналах запроса преобразования виртуальных адресов.
Для достижения технического результата в устройстве для преобразования виртуальных адресов в физические адреса, содержащем элемент памяти с таблицей преобразования адресов первого уровня и кэш память, новым является то, что дополнительно введены многоканальный коммутатор запросов преобразования виртуальных адресов, первые группы входов/выходов которого являются соответствующими группами входов/выходов устройства, и блок управления преобразованием, первая группа входов/выходов которого соединена со второй группой входов/выходов многоканального коммутатора запросов, а вторая группа входов/выходов соединена с группой входов/выходов кэш-памяти, причем третья группа входов/выходов блока управления преобразованием является соответствующей группой входов/выходов устройства, при этом блок управления преобразованием включает в себя управляющий конечный автомат и элемент памяти с таблицей преобразования адресов первого уровня, в которую введены поля размера и смещения, а в каждый канал коммутатора запросов дополнительно введена кэш-память.
Новая совокупность существенных признаков позволяет повысить надежность и производительность. Надежность системы повышается за счет введения в таблице преобразования двух дополнительных полей - размера зарегистрированного блока памяти и смещения этого блока памяти внутри первой страницы памяти. Это позволяет осуществлять контроль выхода за пределы выделенного массива памяти, а также регистрировать память, начинающуюся не с начала страницы. Производительность системы повышается за счет введения дополнительного уровня кэширования непосредственно в каналы запроса преобразования виртуальных адресов.
На фигуре 1 представлена блок-схема заявляемого устройства.
Устройство для преобразования виртуальных адресов в физические адреса содержит элемент памяти 1 с таблицей преобразования адресов первого уровня и кэш-память 2, многоканальный коммутатор запросов преобразования виртуальных адресов 3, первые группы входов/выходов которого являются соответствующими группами входов/выходов устройства, и блок управления преобразованием 4, первая группа входов/выходов которого соединена со второй группой входов/выходов многоканального коммутатора запросов 3, а вторая группа входов/выходов соединена с группой входов/выходов кэш-памяти 2, причем третья группа входов/выходов блока управления преобразованием 4 является соответствующей группой входов/выходов устройства, при этом блок управления преобразованием 4 включает в себя управляющий конечный автомат 5 и элемент памяти 1 с таблицей преобразования адресов первого уровня, в которую введены поля размера и смещения, а в каждый канал коммутатора запросов дополнительно введена кэш-память 6.
Устройство работает следующим образом. Каждый канал многоканального коммутатора запросов преобразования виртуальных адресов 3 ожидает запроса на преобразование виртуального адреса. После поступления запроса на преобразование проверяется наличие запрошенного виртуального адреса в кэш-памяти первого уровня 6 ранее преобразованных адресов соответствующего канала. Если удалось найти адрес в кэш-памяти 6, то соответствующий ему физический адрес возвращается через запрашивающий канал. Такая ветвь описывает наиболее быстрый исход преобразования виртуального адреса в физический.
Если в кэш-памяти первого уровня 6 не удалось обнаружить запрашиваемый виртуальный адрес, то многоканальный коммутатор запросов 3 переадресует этот запрос блоку управления преобразованием виртуального адреса 4.
Блок управления преобразованием виртуального адреса 4, получив запрос, обращается к параллельной кэш-памяти второго уровня 2. Если в кэш-памяти второго уровня 2 удается найти соответствующую пару «виртуальный адрес - физический адрес», то преобразование на этом завершается, и найденный физический адрес возвращается многоканальному коммутатору запросов преобразования виртуального адреса 3, который его возвращает запрашивающему каналу и сохраняет его в своей кэш-памяти первого уровня 6.
В том случае, если и в кэш-памяти второго уровня 2 не удалось обнаружить виртуальный адрес, то запускается алгоритм преобразования виртуального адреса в физический на основе двухуровневых таблиц преобразования. Структура таблиц преобразования приведена на фигуре 2.
Из таблицы преобразования 1, размещенной в блоке управления преобразованием виртуального адреса 4, для преобразуемого адреса вычитывается описание зарегистрированного блока памяти: физический адрес удаленной таблицы преобразования, размер блока памяти и смещение внутри первой страницы. Затем осуществляется проверка преобразуемого адреса.
Если преобразуемый адрес не выходит за пределы выделенной памяти, то из удаленной таблицы преобразования через канал прямого доступа к памяти RdDMA запрашивается физический адрес, соответствующей заданному виртуальному. После получения ответа от RdDMA, пара «виртуальный адрес - физический адрес» сохраняется в параллельной кэш-памяти второго уровня 2, и результат преобразования возвращается многоканальному коммутатору запросов 3, который его возвращает запрашивающему каналу. Запрашивающий канал также сохраняет преобразованный виртуальный адрес в своей кэш-памяти 6.
В случае ошибки, информация о ней также передается многоканальному коммутатору запросов 3, который передает информацию запрашивающему каналу.
Устройство для преобразования виртуальных адресов в физические адреса прошло проверку и показало свою работоспособность в составе прошивки программируемой логической интегральной схемы, на которой построен адаптерный модуль системы межпроцессорных обменов.
Применение данного устройства позволило в составе адаптерного модуля системы межпроцессорных обменов снизить накладные расходы на обмен данными между адаптерной платой СМПО и памятью вычислительного узла за счет применения метода zero-copy, а также позволило реализовать обмены в парадигме read/write.
На коммуникационных тестах, за счет применения двухуровневого кэширования в устройстве для преобразования виртуальных адресов в физические адреса, удалось получить уменьшение коммуникационной задержки на 1.5 мкс. Дополнительный контроль за выходом виртуального адреса за пределы выделенного адресного пространства позволил повысить надежность устройства за счет исключения операций доступа к незарегистрированным областям памяти вычислительного узла.

Claims (1)

  1. Устройство для преобразования виртуальных адресов в физические адреса, содержащее элемент памяти с таблицей преобразования адресов первого уровня и кэш-память, отличающееся тем, что дополнительно введены многоканальный коммутатор запросов преобразования виртуальных адресов, первые группы входов/выходов которого являются соответствующими группами входов/выходов устройства, и блок управления преобразованием, первая группа входов/выходов которого соединена со второй группой входов/выходов многоканального коммутатора запросов, а вторая группа входов/выходов соединена с группой входов/выходов кэш-памяти, причем третья группа входов/выходов блока управления преобразованием является соответствующей группой входов/выходов устройства, при этом блок управления преобразованием включает в себя управляющий конечный автомат и элемент памяти с таблицей преобразования адресов первого уровня, в которую введены поля размера и смещения, а в каждый канал коммутатора запросов дополнительно введена кэш-память.
RU2013159330/08A 2013-12-30 2013-12-30 Устройство для преобразования виртуальных адресов в физические адреса RU2547636C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2013159330/08A RU2547636C1 (ru) 2013-12-30 2013-12-30 Устройство для преобразования виртуальных адресов в физические адреса

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2013159330/08A RU2547636C1 (ru) 2013-12-30 2013-12-30 Устройство для преобразования виртуальных адресов в физические адреса

Publications (1)

Publication Number Publication Date
RU2547636C1 true RU2547636C1 (ru) 2015-04-10

Family

ID=53296414

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013159330/08A RU2547636C1 (ru) 2013-12-30 2013-12-30 Устройство для преобразования виртуальных адресов в физические адреса

Country Status (1)

Country Link
RU (1) RU2547636C1 (ru)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2361267C2 (ru) * 2003-11-26 2009-07-10 Майкрософт Корпорейшн Отложенная очистка буферов быстрого преобразования адресов
RU2397536C2 (ru) * 2004-09-29 2010-08-20 Сони Корпорейшн Устройство обработки информации, способ управления процессом и компьютерная программа

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2361267C2 (ru) * 2003-11-26 2009-07-10 Майкрософт Корпорейшн Отложенная очистка буферов быстрого преобразования адресов
RU2397536C2 (ru) * 2004-09-29 2010-08-20 Сони Корпорейшн Устройство обработки информации, способ управления процессом и компьютерная программа

Similar Documents

Publication Publication Date Title
US4195340A (en) First in first out activity queue for a cache store
US6741258B1 (en) Distributed translation look-aside buffers for graphics address remapping table
KR920006851A (ko) 데이터 처리시스템 및 방법
RU2017138467A (ru) Программируемые устройства для обработки запросов передачи данных памяти
US4167782A (en) Continuous updating of cache store
JPS643755A (en) Cache memory control system
KR20180088525A (ko) 스위치들 내의 어드레스 캐싱
WO2011095678A1 (en) Update handler for multi-channel cache
US10430246B2 (en) Virtualized and synchronous access to hardware accelerators
KR102442682B1 (ko) 머신 러닝 시스템에서 직렬화된 키 값 접근을 방지하기 위한 시스템 및 방법
JP6168635B2 (ja) データベース管理システム、計算機、データベース管理方法
JP2020523678A (ja) 論理ディレクトリを使用したキャッシュ構造
US9335934B2 (en) Shared memory controller and method of using same
US4214303A (en) Word oriented high speed buffer memory system connected to a system bus
US20160139806A1 (en) Independent Ordering Of Independent Transactions
US9292456B2 (en) System and method for data synchronization across digital device interfaces
RU2547636C1 (ru) Устройство для преобразования виртуальных адресов в физические адреса
US20230350811A1 (en) Real time input/output address translation for virtualized systems
CN113485643B (zh) 用于数据存取的方法及数据写入的控制器
Paraskevas et al. Virtualized multi-channel rdmawith software-defined scheduling
US20140136796A1 (en) Arithmetic processing device and method for controlling the same
CN113515234B (zh) 一种用于控制数据读出到主机的方法及控制器
CN116028388B (zh) 高速缓存方法、装置、电子设备、存储介质和程序产品
US10628329B2 (en) Data processing system having a coherency interconnect
JP2537526B2 (ja) マルチプロセッサシステム