Способ копирования данных в кэш-памяти и устройство для его осуществления


 


Владельцы патента RU 2504000:

Открытое акционерное общество "КОНСТРУКТОРСКОЕ БЮРО "КОРУНД-М" (ОАО КБ "КОРУНД-М") (RU)

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

 

Изобретение относится к области вычислительной техники и может использоваться в микропроцессорных системах с подсистемами памяти, где необходимо высокое быстродействие.

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

Известен также способ и устройство, производящее копирование данных из одной области памяти в другую, при этом адреса обоих областей памяти задаются (определяются) одной командой. Контроллер получает значения начальных и конечных адресов областей памяти, предназначенных для копирования из одной области в другую, и производит копирование данных от начального адреса до конечного (Заявка US №2004/0049649, Кл. G06F 12/00, опубл. 11.03.2004).

Известен способ и устройство, производящее копирование данных из одной области памяти в другую без использования инструкций загрузки/сохранения данных, оперируя значениями начальных и конечных адресов областей памяти, предназначенных для копирования из одной области в другую, и счетчиком, показывающим количество одиночных операций копирования данных (Заявка US 2010/1099054, Кл. G06F 12/00, опубл. 2010).

Недостатком описанных выше способов и устройств копирования данных является сложность осуществления данных способов из-за отсутствия из пользовательского приложения прямого доступа к системному контроллеру, выполняющему операции копирования. Наиболее близким по технической сути и достигаемому техническому результату является способ копирования данных, включающий вычисление виртуальных адресов для чтения по адресу источника данных и записи по адресу приемника данных по инструкции, трансляцию виртуальных адресов источника и приемника данных в физические адреса, обращение по ним в кэш-память первого уровня и кэш-память второго уровня и загрузку данных по адресу источника данных из внешней памяти в кэш-память первого и второго уровней, и устройство, осуществляющее способ, включающее сумматор адресов, блок трансляции адресов, кэш-память первого и второго уровней и внешнюю память (Патент RU №2359315, Кл. G06F 9/30, опубл. 2008).

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

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

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

Изобретение поясняется чертежом, на котором представлена схема копирования памяти.

Устройство состоит из центрального процессора (ЦП) 1 и внешней памяти (ВП) 2. Процессор состоит из буфера инструкций (БИ) 3, сумматора адресов (СА) 4, блока трансляции адресов (БТА) 5, подсистема памяти состоит из кэш-памяти первого уровня (КП1) 6 и кэш-памяти второго уровня (КП2) 7, включающих блоки мультиплексирования входных данных 8 и 9 соответственно. В подсистеме памяти имеются ячейки памяти по адресам источника данных 10 в блоке КП2 7 и 11 в блоке ВП 2 и ячейки по адресам приемника данных 12 в блоке КП1 6 и 13 в блоке КП2 7.

Копирование данных по способу при помощи описанного выше устройства осуществляют следующим образом. К набору инструкций устройства добавляют новую инструкцию копирования кэш-линии. Выполняя программу, декодируют инструкцию копирования кэш-линии, буфером инструкций (БИ) 3, посредством которого разбивают ее на две, последовательно подаваемые такты на сумматор адресов (СА) 4. В сумматоре адресов (СА) 4 вычисляют виртуальные адреса и передают их на блок трансляции адресов (БТА) 5, и транслируют их в физические адреса. Первый из полученных адресов интерпретируют как адрес источника данных, второй (в следующем такте) - как адрес приемника данных.

По адресам источника данных (виртуальному с выхода сумматора адресов (СА) 4 и физическому с выхода блока трансляции адресов (БТА) 5) обращаются в кэш-память первого (КП1) 6 и второго (КП2) 7 уровней и во внешнюю память (ВП) 2. Виртуальный адрес используют для адресации кэш-памяти первого (КП1) 6 и второго (КП2) 7 уровней, а физический - для проверки тегов и обращений во внешнюю память (ВП) 2.

В случае, если данные по адресу источника данных есть в кэш-памяти второго уровня (КП2) 7, то производят чтение всей строки кэш-линии. В противном случае, обращаются во внешнюю память (ВП) 2 по адресу источника данных 11. Чтение по адресу источника данных из внешней памяти производят шириной в кэш-линию. На следующем такте прочитанные данные подают на вход мультиплексоров данных 8 и 9 в кэш-памяти первого (КП1) 6 и второго (КП2) 7 уровней соответственно для записи их по адресу приемника данных 12 и 13.

Посредством мультиплексоров 8 и 9 выбирают данные, считанные из кэш-памяти второго уровня (КП2) 7 (источник 10) или из внешней памяти (ВП) 2 (источник 11) в зависимости от попадания (или промаха) в кэш-память второго уровня (КП2) 7. Данные, выбранные мультиплексорами 8 и 9, записывают по адресу приемника данных 12 в кэш-память первого уровня (КП1) 6 и по адресу приемника данных 13 в кэш-память второго уровня (КП2) 7. Запись производят по виртуальному адресу приемника данных, полученному с выхода сумматора адресов (СА) 4, с использованием для записи тегов физического адреса приемника данных, полученному с выхода блока трансляции адресов (БТА) 5.

Описанные способ и устройство позволяют копировать данные размером, кратным одной кэш-линии, по невыровненным на границу кэш-линии адресам, производя чтение данных из двух кэш-линий подряд (по адресу источника) и используя мультиплексоры 8 и 9 для сдвига записываемых данных (по адресу приемника).

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

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

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



 

Похожие патенты:

Изобретение относится к вычислительной технике. .

Изобретение относится к вычислительной технике. .

Изобретение относится к вычислительной технике. .

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

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

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

Изобретение относится к области кэш-памяти, и, более конкретно, к системам памяти с кэшем "жертвенных" данных, данных и команд. .

Изобретение относится к системам обработки, точнее, к системам виртуально маркированного кэша команд. .

Изобретение относится к технологии обработки изображений для увеличения или уменьшения изображения, воспроизводимого на дисплее, или перемещению изображения вверх, вниз, вправо или влево. Технический результат заключается в повышении эффективности воспроизведения изображения за счет алгоритма, который отдельно хранит и эффективно воспроизводит данные текстуры. Технический результат достигается за счет иерархических данных, в которых данные изображений, представляющие изображение при различных уровнях разрешения, организованы в соответствии с уровнями разрешения, содержат три типа данных, состоящих из заголовка 150, индексных блоков 160 и мозаичных изображений 170; заголовок 150 определяет несколько областей, образованных декомпозицией пирамидальной структуры в виртуальном пространстве, в котором генерируются иерархические данные; в каждой области определяется указатель, который указывает на один из индексных блоков; индексные блоки 160 генерируются для каждой области в структуре, определенной заголовком 150; указатель, который указывает на одно из мозаичных изображений 170, определяется для позиций в изображениях многих слоев, принадлежащих каждой области; изображения 170 являются данными изображений, в действительности используемых для рендеринга изображения. 10 н. и 17 з.п. ф-лы, 29 ил.

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

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

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении конфигурирования твердотельного запоминающего устройства для конкретного раздела или виртуализированного гостя в условиях, когда управляющая программа изначально не знает о конфигурации твердотельного запоминающего устройства. Способ выполнения команды для выполнения команды конфигурирования твердотельного запоминающего устройства (Configure Storage Class Memory) в вычислительной системе, имеющей доступ к основному запоминающему устройству и твердотельному запоминающему устройству, включает: получение подсистемой ввода-вывода информации о конфигурации твердотельного запоминающего устройства; сообщение подсистемой ввода-вывода управляющей команде по меньшей мере части полученной информации о конфигурации твердотельного запоминающего устройства; получение подсистемой ввода-вывода блока запроса, содержащего командный код, указывающий команду конфигурирования твердотельного запоминающего устройства и значение общего размера для определения запрашиваемого количества приращений твердотельного запоминающего устройства; инициирование процесса конфигурирования для конфигурирования твердотельного запоминающего устройства. 3 н. и 9 з.п. ф-лы, 16 ил.

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

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