-
公开(公告)号:US20180081816A1
公开(公告)日:2018-03-22
申请号:US15273433
申请日:2016-09-22
Applicant: Google Inc.
Inventor: Joel Dylan Coburn , Albert Borchers , Christopher Lyle Johnson , Robert S. Sprinkle
IPC: G06F12/0868 , G06F12/0871 , G06F12/0873 , G06F12/12 , G06F12/1009 , G06F12/1027
CPC classification number: G06F12/0868 , G06F12/023 , G06F12/04 , G06F12/0815 , G06F12/0871 , G06F12/0873 , G06F12/1009 , G06F12/1027 , G06F12/12 , G06F2212/1016 , G06F2212/1024 , G06F2212/152 , G06F2212/3042 , G06F2212/305 , G06F2212/604 , G06F2212/652
Abstract: Methods, systems, and apparatus for receiving a request to access, from a main memory, data contained in a first portion of a first page of data, the first page of data having a first page size; initiating a page fault based on determining that the first page of data is not stored in the main memory; allocating a portion of the main memory equivalent to the first page size; transferring the first portion of the first page of data from the secondary memory to the allocated portion of the main memory without transferring the entire first page of data; and updating a first page table entry associated with the first portion of the first page of data to point to a location of the allocated portion of the main memory to which the first portion of the first page of data is transferred.
-
公开(公告)号:US10459847B1
公开(公告)日:2019-10-29
申请号:US14789535
申请日:2015-07-01
Applicant: GOOGLE INC.
Inventor: Monish Shah , Albert Thomas Borchers , Joel Dylan Coburn , Benjamin Charles Serebrin
IPC: G06F13/36 , G06F12/1081 , G06F12/02 , G11C7/10
Abstract: A method includes deploying non-volatile random access memory (NVRAM) coupled to a processor or central processing unit (CPU) core of a computing device as a peripheral device via an input/output (I/O) bus, and providing a NVRAM application programming interface (API) for the CPU core to conduct NVRAM read and write operations. Providing the NVRAM API includes allocating a single memory buffer per command to hold data transferred to or from the NVRAM. The method includes configuring the processor in conjunction with the NVRAM API to set up command queues inside in the host Memory Mapped Input Output (MMIO) space.
-
公开(公告)号:US20180046411A1
公开(公告)日:2018-02-15
申请号:US15236171
申请日:2016-08-12
Applicant: Google Inc.
Inventor: Joel Dylan Coburn , Albert Borchers , Christopher Lyle Johnson , Robert S. Sprinkle
IPC: G06F3/06 , G06F12/0815 , G06F12/0811
CPC classification number: G06F3/0685 , G06F3/0619 , G06F3/065 , G06F12/0811 , G06F12/0815 , G06F12/0835 , G06F12/0868 , G06F12/1009 , G06F12/1081 , G06F2212/1021 , G06F2212/283 , G06F2212/621
Abstract: Methods, systems, and apparatus for receiving a request to access, from a main memory, a first cache line of a page of data; determining that the first cache line is not stored in the main memory and is stored in a secondary memory, and in response: transferring the first cache line of the page of data from the secondary memory to the main memory without transferring the entire page of data, wherein a remaining portion of the page of data remains stored in the secondary memory; updating a page table entry associated with the page of data to point to a location of the page of data in the main memory; and transferring the remaining portion of the page of data from the secondary memory to the main memory.
-
公开(公告)号:US20180046378A1
公开(公告)日:2018-02-15
申请号:US15235495
申请日:2016-08-12
Applicant: Google Inc.
Inventor: Joel Dylan Coburn , Albert Borchers , Christopher Lyle Johnson , Robert S. Sprinkle
IPC: G06F3/06 , G06F12/123 , G06F12/1009
CPC classification number: G06F12/1009 , G06F12/121 , G06F2212/1024 , G06F2212/1032 , G06F2212/152 , G06F2212/657
Abstract: Methods, systems, and apparatus for determining whether an access bit is set for each page table entry of a page table based on a scan of the page table with at least one page table walker, the access bit indicating whether a page associated with the page table entry was accessed in a last scan period; incrementing a count for each page in response to determining that the access bit is set for the page table entry associated with the page; resetting the access bit after determining whether the access bit is set for each page table entry; receiving a request to access, from a main memory, a first page of data; initiating a page fault based on determining that the first page of data is not stored in the main memory; and servicing the page fault with a DMA engine.
-
-
-