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

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

Info

Publication number
RU2504000C1
RU2504000C1 RU2012130918/08A RU2012130918A RU2504000C1 RU 2504000 C1 RU2504000 C1 RU 2504000C1 RU 2012130918/08 A RU2012130918/08 A RU 2012130918/08A RU 2012130918 A RU2012130918 A RU 2012130918A RU 2504000 C1 RU2504000 C1 RU 2504000C1
Authority
RU
Russia
Prior art keywords
data
cache
address
level
memory
Prior art date
Application number
RU2012130918/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 RU2012130918/08A priority Critical patent/RU2504000C1/ru
Application granted granted Critical
Publication of RU2504000C1 publication Critical patent/RU2504000C1/ru

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

Изобретение относится к области вычислительной техники и может использоваться в микропроцессорных системах с подсистемами памяти, где необходимо высокое быстродействие.
Известен способ копирования данных, использующий стандартные команды микропроцессора и реализованный в операционной системе 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 для сдвига записываемых данных (по адресу приемника).
Описанные способ и устройство позволяют повысить производительность операций копирования данных по сравнению с известными способами и подсистемами памяти. Использование копирования по невыровненным на границу кэш-линии адресам позволяет использовать единую процедуру копирования для данных с любого адреса с точностью до одного байта размером, кратным размеру кэш-линии.

Claims (2)

1. Способ копирования данных, включающий вычисление виртуальных адресов для чтения по адресу источника данных и записи по адресу приемника данных по инструкции, трансляцию виртуальных адресов источника и приемника данных в физические адреса, обращение по ним в кэш-память первого уровня и кэш-память второго уровня и загрузку данных по адресу источника данных из внешней памяти в кэш-память первого и второго уровней, отличающийся тем, что добавляют инструкцию, проводящую копирование целой кэш-линии в кэш-памяти первого и второго уровней, не используя пересылку данных через регистры процессора, причем виртуальные адреса источника данных для чтения и приемника данных для записи формируют последовательно, затем транслируют их в физические адреса для обращения в кэш-память первого и второго уровней, при этом данные, загруженные по адресу источника данных в объеме одной кэш-линии, записывают в кэш-память первого и второго уровней по адресу приемника данных.
2. Устройство для осуществления способа по п.1, включающее сумматор адресов, блок трансляции адресов, кэш-память первого и второго уровней и внешнюю память, отличающееся тем, что кэш-память первого уровня дополнительно имеет блок мультиплексирования входных данных, связанный с внешней памятью и кэш-памятью второго уровня, для выбора данных для записи в кэш-память первого уровня, а кэш-память второго уровня имеет блок мультиплексирования входных данных, связанный с внешней памятью и кэш-памятью второго уровня, для выбора данных для записи в кэш-память второго уровня.
RU2012130918/08A 2012-07-20 2012-07-20 Способ копирования данных в кэш-памяти и устройство для его осуществления RU2504000C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2012130918/08A RU2504000C1 (ru) 2012-07-20 2012-07-20 Способ копирования данных в кэш-памяти и устройство для его осуществления

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2012130918/08A RU2504000C1 (ru) 2012-07-20 2012-07-20 Способ копирования данных в кэш-памяти и устройство для его осуществления

Publications (1)

Publication Number Publication Date
RU2504000C1 true RU2504000C1 (ru) 2014-01-10

Family

ID=49884797

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012130918/08A RU2504000C1 (ru) 2012-07-20 2012-07-20 Способ копирования данных в кэш-памяти и устройство для его осуществления

Country Status (1)

Country Link
RU (1) RU2504000C1 (ru)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970976B1 (en) * 1999-06-25 2005-11-29 International Business Machines Corporation Layered local cache with lower level cache optimizing allocation mechanism
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US7310712B1 (en) * 2004-06-10 2007-12-18 Sun Microsystems, Inc. Virtual copy system and method
US7330958B2 (en) * 2005-09-22 2008-02-12 International Business Machines Corporation Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
US20080189506A1 (en) * 2007-02-07 2008-08-07 Brian Joseph Kopec Address Translation Method and Apparatus
RU2359315C2 (ru) * 2007-04-28 2009-06-20 Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Микропроцессор гибридный

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970976B1 (en) * 1999-06-25 2005-11-29 International Business Machines Corporation Layered local cache with lower level cache optimizing allocation mechanism
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US7310712B1 (en) * 2004-06-10 2007-12-18 Sun Microsystems, Inc. Virtual copy system and method
US7330958B2 (en) * 2005-09-22 2008-02-12 International Business Machines Corporation Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
US20080189506A1 (en) * 2007-02-07 2008-08-07 Brian Joseph Kopec Address Translation Method and Apparatus
RU2359315C2 (ru) * 2007-04-28 2009-06-20 Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Микропроцессор гибридный

Similar Documents

Publication Publication Date Title
US9690493B2 (en) Two-level system main memory
KR101790913B1 (ko) 플래시 메모리에 저장된 데이터의 추론적 프리페칭
US9690953B2 (en) Generating efficient reads for a system having non-volatile memory
TWI696188B (zh) 混合式記憶體系統
CN107564558B (zh) 实现分散原子i/o写入
KR102268601B1 (ko) 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템
TW201710910A (zh) 交易式混合記憶體模組及其操作方法
US20150339233A1 (en) Facilitating efficient prefetching for scatter/gather operations
US20180018095A1 (en) Method of operating storage device and method of operating data processing system including the device
JP2021517307A (ja) ハイブリッドメモリシステム
KR20200017364A (ko) PCIe 메모리 요청들의 라우팅을 촉진하기 위해 NVMe 물리적 영역 페이지 목록 포인터들 및 데이터 포인터들을 수정
Son et al. Optimizing file systems for fast storage devices
TWI640864B (zh) 重疊輸入輸出記憶體管理單元映射及第二層記憶體讀取之二階命令緩衝器
JP7038227B2 (ja) ハイブリッドメモリシステム
JP2021149374A (ja) データ処理装置
US9329994B2 (en) Memory system
US9927988B2 (en) Data move engine to move a block of data
JP2020508534A (ja) スーパースレッドプロセッサ、処理システム、および方法
KR20090007084A (ko) 디스크 어레이 매스 프리페칭 방법
US10949359B2 (en) Optimizing cache performance with probabilistic model
RU2504000C1 (ru) Способ копирования данных в кэш-памяти и устройство для его осуществления
TW201435579A (zh) 用於從作業系統安裝映像檔的快照啓動多個伺服器之系統與方法
TWI594124B (zh) 虛擬化感知之預取
JP4792065B2 (ja) データ記憶方法
CN111045961A (zh) 数据处理方法及使用所述方法的存储控制器

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20170721

NF4A Reinstatement of patent

Effective date: 20190621