RS20170694A1 - Method for transferring large quantites of data between a peripheral device and virtual memory - Google Patents
Method for transferring large quantites of data between a peripheral device and virtual memoryInfo
- Publication number
- RS20170694A1 RS20170694A1 RS20170694A RSP20170694A RS20170694A1 RS 20170694 A1 RS20170694 A1 RS 20170694A1 RS 20170694 A RS20170694 A RS 20170694A RS P20170694 A RSP20170694 A RS P20170694A RS 20170694 A1 RS20170694 A1 RS 20170694A1
- Authority
- RS
- Serbia
- Prior art keywords
- pages
- page
- phase
- addresses
- data
- Prior art date
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
Поступак обимног преноса података између периферног уређаја и виртуелне меморије The process of transferring large amounts of data between a peripheral device and virtual memory
Области технике на коју се проналазак односи Field of technology to which the invention relates
Проналазак припада области интегрисаних кола и периферних јединица за аквизицију, обраду или пренос велике количине података. Тачније, проналазак је везан за директан приступ меморији (енг. Direct Метоrу Access, DMA) у системима који поседују једно или више интегрисаних кола. За проналазак су кључне табеле страница (енг. Раgе Tables), смештене у системској меморији. Такође, проналазак припада области управљања меморијом, односно области превођења континуалних виртуелних адреса у физичке адресе, што се врши помоћу табела страница. The invention belongs to the field of integrated circuits and peripheral units for the acquisition, processing or transmission of large amounts of data. More precisely, the invention is related to direct memory access (DMA) in systems that have one or more integrated circuits. The key to the invention are page tables (Rage Tables), located in the system memory. Also, the invention belongs to the field of memory management, i.e. the field of translating continuous virtual addresses into physical addresses, which is done using page tables.
Ознака према међународној класификацији патената (МКП) је: G06F12/10, G06F12/1009, G06F12/1081, G06F13/00. The designation according to the International Patent Classification (IPC) is: G06F12/10, G06F12/1009, G06F12/1081, G06F13/00.
Технички проблем Technical problem
Технички проблем решаван у изложеном поступку је пренос веће количине података између периферне јединице и виртуелне меморије. The technical problem solved in the presented method is the transfer of large amounts of data between the peripheral unit and virtual memory.
Типичан начин за пренос података се обавља помоћу међубафера у физичкој меморији који се налази између периферне јединице и виртуелне меморије. Периферна јединица пише или чита податке у међубафер, а процесор врши копирање података између међубафера и виртуелне меморије. Процес се изнова извршава док се не пренесу сви потребни подаци. Међутим, овај процес троши процесорско време на копирање. Предложени проналазак избегава коришћење међубафера, с обзиром да сам може да приступа виртуелној меморији, из разлога што извршава алгоритам за превођење виртуелних страница у физичке. A typical way to transfer data is to use a buffer in physical memory located between the peripheral and the virtual memory. The peripheral writes or reads data to the buffer, and the processor copies the data between the buffer and the virtual memory. The process is repeated until all the necessary data is transferred. However, this process consumes processor time for copying. The proposed invention avoids the use of a buffer, since it can access virtual memory itself, because it performs the algorithm for translating virtual pages into physical ones.
Стање технике State of the art
Патент US 8898429 В2, објављен 29. децембра 2011. године под називом „Appiication processor and а computing system having the same" фирме Samsung Electronics, описује мноштво периферних уређаја конфигурисаних да деле табеле страница и врше операције директног приступа меморији. Међутим, битна разлика у односу на предложени поступак је што у датом патенту свака јединица за управљање меморије (енг. Метоrу management unit, MMU) поседује бафер за превођење (енг. Translation lookaside buffer, TLB). Описани MMU je ca случајним приступом, услед чега је TLB неопходан као кеш меморија ради убрзања извршавања процеса, док MMU у описаном поступку има другачију улогу. Такође, за разлику од датог патента, оперативни систем описаног поступка преузима поједине функције споменуте контролне јединице. Patent US 8898429 V2, published on December 29, 2011 under the title "Application processor and a computing system having the same" by Samsung Electronics, describes a variety of peripherals configured to share page tables and perform direct memory access operations. However, an important difference compared to the proposed method is that in the given patent, each memory management unit (MMU) has a translation lookaside buffer (TLB). The described MMU is random access, as a result of which the TLB is necessary as a cache memory to speed up the execution of the process, while the MMU in the described method has a different role. Also, unlike the given patent, the operating system of the described method takes over some of the functions of the mentioned control unit.
Патент US 7653803 В2 објављен 17. јануара 2006. године од фирме Globalfoundries под називом „Address translation for input/output (I/O) devices and interrupt remapping for I/O devices in an I/O тетоrу management unit (IOMMU)" описује улазно-излазну MMU за неколико уређаја и бар једну меморију у коју се смештају преведени подаци;односно један или више уноса табеле уређаја. За разлику од овога, у предложеном поступку је MMU на самом уређају. У овом патенту се описује и специфична имплементација табеле страница, односно да поседују хијерархијску структуру. Patent US 7653803 V2 published on January 17, 2006 by Globalfoundries under the title "Address translation for input/output (I/O) devices and interrupt remapping for I/O devices in an I/O management unit (IOMMU)" describes an input/output MMU for several devices and at least one memory in which the translated data is stored; that is, one or more device table entries. In contrast to this, in the proposed method, the MMU is on the device itself. This patent also describes a specific implementation of the page table, i.e. that they have a hierarchical structure.
Патент US 7370137 В2 Intel корпорације под називом „Inter-domain data mover for a memory-to-memory сору engine" објављен 6. јуна 2005. године дефинише транслацију адреса података за коју се користе различите табеле страница, док се у предложеном поступку користи иста табела страница. Користи се DMA машина у сврху копирања помоћу транслације табела страница. Дакле, копирање се врши између два процесора, док се у предложеном поступку копирање врши између периферног уређаја и процесора. Битна разлика је и што се премештање података врши између виртуелних машина. Patent US 7370137 V2 of Intel Corporation, entitled "Inter-domain data mover for a memory-to-memory source engine", published on June 6, 2005, defines data address translation using different page tables, while the proposed method uses the same page table. A DMA machine is used for the purpose of copying using page table translation. Therefore, copying is performed between two processors, while in the proposed method, copying is performed between a peripheral device and the processor. An important difference is that data movement is performed between virtual machines.
Патентна пријава US 20150261687 А1 објављена 14. марта 2014. године од корпорације International Business Machines под називом „Extended раgе table for i/o address translation" даје опис поступка и система за проширење табеле страница. Страници у адресном меморијском простору се приступа на основу почетка странице табеле и проширеног индекса. Континуалним страницама се приступа операцијама писања и читања. Предност дате патентне пријаве је везана за превођење виртуелних адреса у физичке адресе за DMA адресни простор, али се не решава проблем приступа постојећим страницама, нити проблем дељења исте табеле страница између периферног уређаја и централног процесора. Patent application US 20150261687 A1 published on March 14, 2014 by International Business Machines Corporation under the title "Extended range table for i/o address translation" describes a method and system for extending a page table. A page in the address memory space is accessed based on the start of the table page and the extended index. Contiguous pages are accessed by write and read operations. The advantage of this patent application is related to the translation of virtual addresses into physical addresses for the DMA address space, but it does not solve the problem of accessing existing pages, nor the problem of sharing the same page table between a peripheral device and the central processor.
Излагање суштине проналаска Exposition of the essence of the invention
Предложени поступак даје на значају при превођењу виртуелне адресе страница у физичке адресе, при чему се странице читају из табеле страница. Дакле, суштина предложеног поступка јесте превођење континуалне виртуелне меморије бафера помоћу јединице за превођење континуалних меморијских адреса (превођење виртуелних у физичке адресе). Проналаском се континуално преводи читав регион у баферу са мноштвом страница. Предност оваквог начина транслирања у односу на појединачно транслирање јесте мањи број копирања из табеле страница, као и то што се из табеле страница добију вишеструке физичке адресе, на основу којих се читав низ страница учита и преноси, односно копира. The proposed method emphasizes the translation of virtual page addresses into physical addresses, whereby pages are read from the page table. Thus, the essence of the proposed method is the translation of continuous virtual buffer memory using a unit for translating continuous memory addresses (translating virtual to physical addresses). The invention continuously translates an entire region in a buffer with a plurality of pages. The advantage of this method of translation compared to individual translation is the smaller number of copies from the page table, as well as the fact that multiple physical addresses are obtained from the page table, based on which a whole series of pages are loaded and transferred, i.e. copied.
Кратак опис слика проналаска Brief description of the invention images
Следеће слике употпуњују опис проналаска: The following images complete the description of the invention:
Слика 1a: Поступак описаног проналаска у фазама Figure 1a: The process of the described invention in stages
Слика 1б: Опис корака друге фазе поступка Figure 1b: Description of the steps of the second phase of the procedure
Слика 2: Систем у вези описаног проналаска Figure 2: System related to the described invention
Слика 3: Приказ преноса података Figure 3: Data transfer display
Детаљан опис проналаска Detailed description of the invention
У описаном поступку се врши аутоматско превођење страница континуалног бафера у виртуелној меморији. Слика 1a приказује поступак са главним фазама, при чему је почетак поступка фаза 100 алоцирања бафера виртуелне меморије, који се врши помоћу апликације у централној процесорској јединици. Након овога следи фаза 200 превођења виртуелних адреса у физичке адресе, и то виртуелних адреса страница табеле страница. Кораци ове фазе су описани у следећем пасусу. Поступак се наставља фазом 300 прослеђивања физичких адреса, а потом следи фаза 400 преноса низа страница података. Подаци се померају ка и од периферног уређаја, као и од и до бафера виртуелне меморије. Фазом 500 провере краја преноса низа страница се проверава да ли је трансфер страница података завршен. Ако није завршен, поступак се понавља од фазе 200 превођења виртуелних адреса у физичке адресе. У супротном, извршава се фаза 600 прекидања преноса низа страница података и поступак се завршава. In the described method, the pages of a continuous buffer in virtual memory are automatically translated. Figure 1a shows the method with the main phases, where the process begins with the phase 100 of allocating the virtual memory buffer, which is performed by an application in the central processing unit. This is followed by the phase 200 of translating virtual addresses into physical addresses, namely virtual addresses of pages of the page table. The steps of this phase are described in the following paragraph. The method continues with the phase 300 of forwarding physical addresses, and then follows the phase 400 of transferring a data page sequence. Data is moved to and from the peripheral device, as well as from and to the virtual memory buffer. The phase 500 of checking the end of the page sequence transfer checks whether the transfer of the data pages is complete. If it is not complete, the process is repeated from the phase 200 of translating virtual addresses into physical addresses. Otherwise, phase 600 of interrupting the transmission of the data page sequence is performed and the process ends.
Слика 1б приказује кораке у оквиру фазе 200 превођења виртуелних адреса у физичке адресе. Дакле, добијају се физичке адресе од виртуелних адреса страница табеле страница и овај поступак је рекурзиван. Читањем страница из табеле страница добијају се физичке адресе нових страница из табеле страница, а на крају и физичке адресе страница података. Превођење континуалне виртуелне меморије бафера се одвија помоћу јединице за превођење континуалних меморијских адреса. Корак 210 рачунања адресе странице табеле странице је први корак 200 превођења виртуелних адреса у физичке адресе, којим се обезбеђују одговарајуће физичке адресе које одговарају одређеним виртуелним адресама. Свака табела поседује мноштво уноса, односно страница података, који се не преносе појединачно, већ се одређени регион страница континуално преводи (цео бафер са много страница). Структура табеле би се могла представити као стабло чији су елементи странице са физичким адресама као уносима, а поља виртуелних адреса одређују који унос да се користи. Кораком 220 прослеђивања адресе странице табеле страница се шаљу адресе странице података јединици за премештање страница. Након тога, кораком 230 читања странице табеле страница се дати уноси табеле читају, а потом у кораку 240 прослеђивања прочитане странице се поменути уноси, односно странице прослеђују јединици за превођење меморијских адреса. Уколико није досегнут последњи ниво табеле странице података, поступак се враћа на корак 210 рачунања адресе странице табеле странице, што се проверава у кораку 250 провере последњег нивоа табеле страница. Уколико је последњи ново табеле стараница података досегнут, поступак се завршава кораком 260 рачунања адресе странице података. Figure 1b shows the steps in the virtual address to physical address translation phase 200. Thus, physical addresses are obtained from the virtual addresses of the pages of the page table and this process is recursive. By reading pages from the page table, the physical addresses of new pages from the page table are obtained, and finally the physical addresses of the data pages. The translation of the continuous virtual memory of the buffer is performed using a continuous memory address translation unit. Step 210 of calculating the page address of the page table is the first step 200 of the virtual address to physical address translation, which provides the corresponding physical addresses corresponding to the specific virtual addresses. Each table has a plurality of entries, i.e. data pages, which are not transferred individually, but a specific region of pages is translated continuously (the entire multi-page buffer). The table structure could be represented as a tree whose page elements are physical address entries, and the virtual address fields determine which entry to use. In step 220, the page table page address forwarding sends the data page addresses to the page moving unit. After that, in step 230, the page table page entries are read, and then in step 240, the read page forwarding passes the entries, or pages, to the memory address translation unit. If the last level of the data page table has not been reached, the procedure returns to step 210, calculating the page address of the page table, which is checked in step 250, checking the last level of the page table. If the last new page table of the data has been reached, the procedure ends with step 260, calculating the data page address.
Слика 2 приказује систем са директним приступом меморији 730, за брзо копирање и пренос велике количине података између периферног уређаја 700 и виртуелне меморије 740. Централна процесорска јединица 720 алоцира бафер 745 у виртуелној меморији 740 и прослеђује периферном уређају 700 адресу, величину бафера 745 виртуелне меморије 740 и операцију, на пример читања или уписа. Периферни уређај 700 преводи континуалну виртуелну меморију 740 помоћу јединице 710 за превођење континуалних меморијских адреса из виртуелних адреса у физичке адресе. Јединица 710 за превођење континуалних меморијских адреса чита табелу 735 страница из већих делова, док јединица 715 за премештање страница помера податке са специфичног уређаја од и према баферу 745 виртуелне меморије 740. У ову сврху користи физичке адресе страница добијених од јединице 710 за превођење континуалних меморијских адреса. Дакле, јединица 715 за премештање страница користи физичке адресе бафера 745 од стране јединице 710 за превођење континуалних меморијских адреса. Уређај 725 за управљање меморијом 730 прима поменуте физичке адресе од бафера 745 виртуелне меморије 740 и управља меморијом 730 користећи табеле 735 страница. Апликација 726 прослеђује виртуелне адресе бафера 745 виртуелне меморије 740 јединици 710 за превођење континуалних меморијских адреса. Figure 2 shows a system with direct memory access 730, for quickly copying and transferring large amounts of data between a peripheral device 700 and a virtual memory 740. The central processing unit 720 allocates a buffer 745 in the virtual memory 740 and passes to the peripheral device 700 the address, the size of the buffer 745 of the virtual memory 740 and the operation, for example a read or write. The peripheral device 700 translates the contiguous virtual memory 740 using a unit 710 for translating contiguous memory addresses from virtual addresses to physical addresses. The continuous memory address translation unit 710 reads the page table 735 in larger chunks, while the page mover 715 moves data from a specific device to and from the buffer 745 of the virtual memory 740. For this purpose, it uses the physical addresses of the pages obtained from the continuous memory address translation unit 710. Thus, the page mover 715 uses the physical addresses of the buffer 745 from the continuous memory address translation unit 710. The memory management unit 725 receives said physical addresses from the buffer 745 of the virtual memory 740 and manages the memory 730 using the page tables 735. The application 726 passes the virtual addresses of the buffer 745 of the virtual memory 740 to the contiguous memory address translation unit 710.
Јединица 710 за превођење континуалних меморијских адреса из виртуелних адреса у физичке адресе представља MMU (енг. Метоrу management unit)-јединицу која се налази на периферном уређају 700. Користећи преведене физичке адресе, MMU приступа меморији 730. За разлику од стандардног MMU, који преводи само по једну адресу, јединица 710 за превођење континуалних меморијских адреса преводи низове адреса, с обзиром да чита целе странице из табеле 735 страница. Број копирања из меморије 730 је смањен у односу на стандардни MMU, што је описано у наредном пасусу. The unit 710 for translating contiguous memory addresses from virtual addresses to physical addresses is an MMU (Metro management unit) located on the peripheral device 700. Using the translated physical addresses, the MMU accesses memory 730. Unlike a standard MMU, which translates only one address at a time, the unit 710 for translating contiguous memory addresses translates strings of addresses, since it reads entire pages from a page table 735. The number of copies from memory 730 is reduced compared to a standard MMU, which is described in the next paragraph.
Слика 3 даје приказ трансфера страница 820 података табеле 735 страница, при чему се увек преноси једна страница 820 табеле 735 страница, што представља најмању јединицу преноса. Карактеристика описаног поступка је, као што је већ речено, транслирање не појединачне странице 820 табеле 735 страница, већ читавог региона страница табеле 735 страница, које се континуално преводе. Поред тога што за последицу буде мањи број копирања у меморију 730, из табеле 735 страница се добијају физичке адресе и на основу њих се читав низ страница 820 табеле 735 страница учитава и преноси, односно копира. Figure 3 shows the transfer of data pages 820 of the page table 735, whereby one page 820 of the page table 735 is always transferred, which represents the smallest unit of transfer. The characteristic of the described method is, as already mentioned, the translation not of a single page 820 of the page table 735, but of an entire region of pages of the page table 735, which are continuously translated. In addition to the fact that the number of copies to the memory 730 is reduced, physical addresses are obtained from the page table 735 and based on them the entire series of pages 820 of the page table 735 is loaded and transferred, i.e. copied.
Странице 840 података садрже корисничке податке и налазе се у баферу 745 виртуелне меморије 740. У том виртуелном адресном простору се дати кориснички подаци налазе у континуалном низу адреса, једна иза друге, док у физичком адресном простору странице 840 података нису распоређене једна за другом, већ су разбацане. Странице 820 табеле 735 страница садрже физичке адресе које могу да показују на неку другу страницу 820 табеле 735 страница или на страницу 840 података. Алгоритам на основу виртуелне адресе рачуна индекс да би пронашао коју адресу дате странице 820 табеле 735 страница треба да чита. Data pages 840 contain user data and are located in buffer 745 of virtual memory 740. In this virtual address space, the given user data is located in a continuous series of addresses, one after the other, while in the physical address space, the data pages 840 are not arranged one after the other, but are scattered. Pages 820 of the page table 735 contain physical addresses that can point to another page 820 of the page table 735 or to a data page 840. The algorithm calculates an index based on the virtual address to find which address of a given page 820 of the page table 735 should be read.
Начин индустријске и друге примене проналаска Method of industrial and other application of the invention
Када се са периферног уређаја жели писати у бафер, најчешће не постоји могућност директног приступања виртуелном баферу из разлога што не постоји јединица за превођење континуалних меморијских адреса из виртуелних у физичке адресе. Примена описаног проналаска је заснована на идеји да није потребан нови управљачки програм и да се споменута јединица за превођење континуалних меморијских адреса користи за виртуализацију. Међутим, основна примена описаног проналаска јесте начин на који се користи виртуелни континуални бафер. Генерално, јединица за превођење континуалних меморијских адреса не омогућава да се у било који део меморије уписује, али исто тако оперативни систем не дозвољава да се алоцира довољно велик физички бафер. Директним уписивањем у већи бафер виртуелне меморије читају се веће количине страница. When a peripheral device wants to write to a buffer, it is usually not possible to directly access the virtual buffer because there is no unit for translating continuous memory addresses from virtual to physical addresses. The application of the described invention is based on the idea that a new driver is not needed and that the mentioned unit for translating continuous memory addresses is used for virtualization. However, the basic application of the described invention is the way in which a virtual continuous buffer is used. Generally, the unit for translating continuous memory addresses does not allow writing to any part of the memory, but also the operating system does not allow allocating a sufficiently large physical buffer. By writing directly to a larger virtual memory buffer, larger amounts of pages are read.
Claims (8)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RS20170694A RS60965B1 (en) | 2017-07-06 | 2017-07-06 | Method for transferring large quantites of data between a peripheral device and virtual memory |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RS20170694A RS60965B1 (en) | 2017-07-06 | 2017-07-06 | Method for transferring large quantites of data between a peripheral device and virtual memory |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| RS20170694A1 true RS20170694A1 (en) | 2019-01-31 |
| RS60965B1 RS60965B1 (en) | 2020-11-30 |
Family
ID=65236528
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RS20170694A RS60965B1 (en) | 2017-07-06 | 2017-07-06 | Method for transferring large quantites of data between a peripheral device and virtual memory |
Country Status (1)
| Country | Link |
|---|---|
| RS (1) | RS60965B1 (en) |
-
2017
- 2017-07-06 RS RS20170694A patent/RS60965B1/en unknown
Also Published As
| Publication number | Publication date |
|---|---|
| RS60965B1 (en) | 2020-11-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10802987B2 (en) | Computer processor employing cache memory storing backless cache lines | |
| EP2994837B1 (en) | Multi-core page table sets of attribute fields | |
| US8451281B2 (en) | Shared virtual memory between a host and discrete graphics device in a computing system | |
| US8661181B2 (en) | Memory protection unit in a virtual processing environment | |
| US6779049B2 (en) | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism | |
| US20100325374A1 (en) | Dynamically configuring memory interleaving for locality and performance isolation | |
| US20140108701A1 (en) | Memory protection unit in a virtual processing environment | |
| KR101179341B1 (en) | Performing direct cache access transactions based on a memory access data structure | |
| US10459852B1 (en) | Memory utilization analysis for memory management systems | |
| CA2577865C (en) | System and method for virtualization of processor resources | |
| US8694755B1 (en) | Virtual memory management for real-time embedded devices | |
| US10241925B2 (en) | Selecting a default page size in a variable page size TLB | |
| TW201411345A (en) | Memory management for a hierarchical memory system | |
| US20160188251A1 (en) | Techniques for Creating a Notion of Privileged Data Access in a Unified Virtual Memory System | |
| US12360930B2 (en) | Input/output device operational modes for a system with memory pools | |
| Haldar et al. | Operating systems | |
| KR20210144656A (en) | How to allocate virtual pages to non-contiguous backup physical subpages | |
| US7979640B2 (en) | Cache line duplication in response to a way prediction conflict | |
| US8347064B1 (en) | Memory access techniques in an aperture mapped memory space | |
| RS20170694A1 (en) | Method for transferring large quantites of data between a peripheral device and virtual memory | |
| US20250225077A1 (en) | Address translation structure for accelerators | |
| US20090024798A1 (en) | Storing Data | |
| US20250181516A1 (en) | Method and apparatus for translating virtual address for processing-in memory | |
| CN119088727A (en) | Address translation cache method, translation cache, processor, and computer storage medium | |
| CN104508641A (en) | Multiple sets of attribute fields within a single page table entry |