[go: up one dir, main page]

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 memory

Info

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
Application number
RS20170694A
Other languages
Serbian (sr)
Inventor
Miloš Subotić
Nebojša Pjevalica
Ivan Kaštelan
Miloš Nikolić
Original Assignee
Rt Rk D O O
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 Rt Rk D O O filed Critical Rt Rk D O O
Priority to RS20170694A priority Critical patent/RS60965B1/en
Publication of RS20170694A1 publication Critical patent/RS20170694A1/en
Publication of RS60965B1 publication Critical patent/RS60965B1/en

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)

Патентни захтеви:Patent claims: 1. Поступак преноса обимне количине података између периферног уређаја 700 и виртуелне меморије 740, где се у виртуелној меморији 740 датог корисничког простора алоцира бафер 745 виртуелне меморије 740 у фази 100 алоцирања бафера 745 виртуелне меморије 740, а одговарајуће виртуелне адресе транслирају у фази 200 превођења виртуелних адреса у физичке адресе, карактерисан тиме да се кораком (220) прослеђивања адресе странице (820) табеле (735) страница и кораком (230) читања странице (820) табеле 735 страница добијају виртуелне адресе страница (840) података које одговарају одређеним физичким адресама;1. A method of transferring a large amount of data between a peripheral device 700 and a virtual memory 740, where a buffer 745 of the virtual memory 740 is allocated in the virtual memory 740 of a given user space in the phase 100 of allocating the buffer 745 of the virtual memory 740, and the corresponding virtual addresses are translated in the phase 200 of translating virtual addresses into physical addresses, characterized in that by step (220) of forwarding the page address (820) of the page table (735) and by step (230) of reading the page (820) of the page table 735, virtual addresses of the data pages (840) corresponding to certain physical addresses are obtained; да се прочитане странице (820) табеле (735) страница прослеђују кораком (240) прослеђивања прочитаних страница (820) табеле (735) страница, док се након корака (250) провере последњег нивоа табеле (735) страница у случају позитивног исхода поступак наставља кораком (260) рачунања адресе странице (840) података,а у супротном се поступак наставља од корака (210) рачунања адресе странице (820) табеле (735) страница; да се поступак наставља фазом (300) прослеђивања физичких адреса јединици (715) за премештање страница (820) табеле (735) страница;that the read pages (820) of the page table (735) are forwarded by step (240) of forwarding the read pages (820) of the page table (735), while after step (250) of checking the last level of the page table (735), in case of a positive outcome, the procedure continues with step (260) of calculating the address of the page (840) of the data, and otherwise the procedure continues from step (210) of calculating the address of the page (820) of the page table (735); that the procedure continues with phase (300) of forwarding the physical addresses to the unit (715) for moving the pages (820) of the page table (735); да се фазом (400) преноса низа страница (820) табеле (735) страница дати подаци померају ка и од периферног уређаја (700), као и од и до бафера (745) виртуелне меморије (740); да се фазом (500) провере краја преноса низа страница (820) табеле (735) страница проверава да ли је трансфер страница (820) табеле (735) страница завршен;that the phase (400) of transferring a series of pages (820) of the page table (735) moves the given data to and from the peripheral device (700), as well as from and to the buffer (745) of the virtual memory (740); that the phase (500) of checking the end of the transfer of the series of pages (820) of the page table (735) checks whether the transfer of the pages (820) of the page table (735) is complete; и да се у потврдном случају извршава фаза (600) прекидања преноса низа страница (820) табеле (735)страница.and that in the affirmative case, the phase (600) of interrupting the transmission of the series of pages (820) of the table (735) of pages is performed. 2. Поступак дефинисан према захтеву 1, карактерисан тиме да се у фази (200) превођења виртуелних адреса у физичке адресе процес превођења врши помоћу јединице (710) за превођење континуалних меморијских адреса из виртуелних адреса у физичке адресе. 2. The method defined according to claim 1, characterized in that in the phase (200) of translating virtual addresses into physical addresses, the translation process is performed using a unit (710) for translating continuous memory addresses from virtual addresses into physical addresses. 3. Поступак дефинисан према захтеву 1 и 2, карактерисан тиме да се фазом (200) превођења виртуелних адреса у физичке адресе цео регион страница (840) података континуално преводи, односно читав бафер (745) виртуелне меморије (740) са мноштвом страница (840) података.3. The method defined according to claim 1 and 2, characterized in that the phase (200) of translating virtual addresses into physical addresses continuously translates the entire region of data pages (840), i.e. the entire buffer (745) of virtual memory (740) with a plurality of data pages (840). 4. Поступак дефинисан према захтеву 1, карактерисан тиме да се у фази (300) прослеђивања физичких адреса, физичке адресе странице (840) података се прослеђују, добијене из јединице (710) за превођење континуалних меморијских адреса.4. The method defined in claim 1, characterized in that in the physical address forwarding phase (300), physical addresses of the data page (840) are forwarded, obtained from the continuous memory address translation unit (710). 5. Поступак дефинисан према захтеву 1 и 4, карактерисан тиме да је у фази (400) преноса низа страница (820) табеле (735) страница најмања јединица преноса једна страница (820) табеле (735) страница.5. The method defined according to claim 1 and 4, characterized in that in the phase (400) of transferring a series of pages (820) of a table (735) of pages, the smallest unit of transfer is one page (820) of the table (735) of pages. 6. Поступак дефинисан према захтеву 1 и 4, карактерисан тиме да се у фази (400) преноса низа страница (820) табеле (735) страница премештањем података заправо помера читав низ страница (820) табеле (735) страница.6. The method defined according to claim 1 and 4, characterized in that in the phase (400) of transferring a series of pages (820) of a table (735) of pages, by moving the data, the entire series of pages (820) of the table (735) of pages is actually moved. 7. Поступак дефинисан према захтеву 1, карактерисан тиме да се у оквиру фазе (200) превођења виртуелних адреса у физичке адресе, и то у кораку (250) провере последњег нивоа табеле (735) страница, поступак враћа на корак (210) рачунања адресе странице (820) табеле (735) страница у случају да није досегнут последњи ниво табеле (735) страница.7. The method defined according to claim 1, characterized in that within the phase (200) of translating virtual addresses into physical addresses, and in step (250) of checking the last level of the page table (735), the method returns to step (210) of calculating the page address (820) of the page table (735) in the event that the last level of the page table (735) has not been reached. 8. Поступак дефинисан према захтеву 1, карактерисан тиме да се провером у фази (500) провере краја преноса низа страница поступак поново извршава од фазе (200) превођења виртуелних адреса у физичке адресе уколико трансфер страница (820) табеле (735) страница није завршен, односно уколико није пренет довољан број страница (820) табеле (735) страница.8. The method defined according to claim 1, characterized in that by checking in the phase (500) of checking the end of the transfer of the series of pages, the method is re-executed from the phase (200) of translating virtual addresses into physical addresses if the transfer of pages (820) of the table (735) of pages is not completed, i.e. if a sufficient number of pages (820) of the table (735) of pages have not been transferred.
RS20170694A 2017-07-06 2017-07-06 Method for transferring large quantites of data between a peripheral device and virtual memory RS60965B1 (en)

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)

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