RU2504000C1 - Способ копирования данных в кэш-памяти и устройство для его осуществления - Google Patents
Способ копирования данных в кэш-памяти и устройство для его осуществления Download PDFInfo
- 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
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, включающее сумматор адресов, блок трансляции адресов, кэш-память первого и второго уровней и внешнюю память, отличающееся тем, что кэш-память первого уровня дополнительно имеет блок мультиплексирования входных данных, связанный с внешней памятью и кэш-памятью второго уровня, для выбора данных для записи в кэш-память первого уровня, а кэш-память второго уровня имеет блок мультиплексирования входных данных, связанный с внешней памятью и кэш-памятью второго уровня, для выбора данных для записи в кэш-память второго уровня.
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)
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 | Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) | Микропроцессор гибридный |
-
2012
- 2012-07-20 RU RU2012130918/08A patent/RU2504000C1/ru active IP Right Revival
Patent Citations (6)
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 |