Patent classifications
G06F2212/652
AUTOMATED TRANSLATION LOOKASIDE BUFFER SET REBALANCING
A translation lookaside buffer (TLB) having a fixed sub-TLB and a configurable sub-TLB and methods of using the TLB are provided. The TLB includes a fixed sub-TLB and a configurable sub-TLB. The fixed sub-TLB, during runtime, may store a first plurality of TLB entries corresponding to a first page size set. The configurable sub-TLB, during runtime, is configurable to store a second plurality of TLB entries of a second page size set. The second page size set includes at least a first page size of the first page size set and includes at least a second page size not of the first page size set.
COMPUTER MEMORY MANAGEMENT IN COMPUTING DEVICES
Techniques for computer memory management are disclosed herein. In one embodiment, a method includes in response to receiving a request for allocation of memory, determining whether the request is for allocation from a first memory region or a second memory region of the physical memory. The first memory region has first memory subregions of a first size and the second memory region having second memory subregions of a second size larger than the first size of the first memory region. The method further includes in response to determining that the request for allocation of memory is for allocation from the first or second memory region, allocating a portion of the first or second multiple memory subregions of the first or second memory region, respectively, in response to the request.
Hybrid key-value store
A method for storing a key-value pair can include dividing the key-value pair into a first data record and a second data record. The first data record can include a key associated with the key-value pair. The second data record can include a portion of a value associated with the key-value pair. The second data record can be stored in a secondary data store based on a size of the second data record exceeding a threshold value. The first data record can be stored in an in-memory key-value store based on a size of the first data record not exceeding the threshold value. The first data record can include a reference to the second data record in the secondary data store. A query requiring the key-value pair can be executed by retrieving the first data record from the in-memory key-value store. Related systems and articles of manufacture are also provided.
Apparatus and method for using instruction translation look-aside buffers in the branch target buffer
A microprocessor includes a translation look-aside buffer (TLB) having a plurality of TLB entries addressable by a branch address and having a branch target buffer (BTB), including a plurality of BTB entries addressable by the branch address. Each TLB entry includes a virtual address. Each BTB entry including a branch tag-way data and a target tag-way data. To perform a branch prediction, the BTB and TLB are accessed, where the TLB way associative data representing one of N sets of TLB entries is used to determine BTB hit or BTB miss. If BTB hit, the branch target address of the branch address may be obtained by accessing the TLB using target tag-way data in the BTB, or by using the branch page address when a same page bit in the hit BTB entry is set.
Memory array page table walk
An example memory array page table walk can include using an array of memory cells configured to store a page table. The page table walk can include using sensing circuitry coupled to the array. The page table walk can include using a controller coupled to the array. The controller can be configured to operate the sensing circuitry to determine a physical address of a portion of data by accessing the page table in the array of memory cells. The controller can be configured to operate the sensing circuitry to cause storing of the portion of data in a buffer.
Managing potential faults for speculative page table access
A pipeline in a processor core includes: at least one stage that decodes instructions including load instructions that retrieve data stored at respective virtual addresses, at least one stage that issues at least some decoded load instructions out-of-order, and at least one stage that initiates at least one prefetch operation. Copies of page table entries mapping virtual addresses to physical addresses are stored in a TLB. Managing misses in the TLB includes: handling a load instruction issued out-of-order using a hardware page table walker, after a miss in the TLB, handling a prefetch operation using the hardware page table walker, after a miss in the TLB, and handling any software-calling faults triggered by out-of-order load instructions handled by the hardware page table walker differently from any software-calling faults triggered by prefetch operations handled by the hardware page table walker.
Storage method using memory chain addressing
A storage system is configured to facilitate memory operations with the memory that avoid the need for defragmentation. The system includes one or more memory devices and a memory interface operatively coupled with the one or more memory devices. The memory interface includes a start page module that provides a start page table having a page number that includes a first part of a corresponding dataset. A link page module of the memory interface provides a link page table that indicates an address for a current page of a given dataset and an address for a next page of the given dataset. Write/read page modules of the memory interface provide write/read page tables that include sub-addresses of a page where a portion of a corresponding dataset is being written/read. The memory interface executes data read, write, and erase operations that are tracked using the tables provided by the various modules.
Virtual Memory Management
A method of managing access to a physical memory formed of n memory page frames using a set of virtual address spaces having n virtual address spaces each formed of a plurality p of contiguous memory pages. The method includes receiving a write request to write a block of data to a virtual address within a virtual address space i of the n virtual address spaces, the virtual address defined by the virtual address space i, a memory page j within that virtual address space i and an offset from the start of that memory page j; translating the virtual address to an address of the physical memory using a virtual memory table having n by p entries specifying mappings between memory pages of the virtual address spaces and memory page frames of the physical memory, wherein the physical memory address is defined by: (i) the memory page frame mapped to the memory page j as specified by the virtual memory table, and (ii) the offset of the virtual address; and writing the block of data to the physical memory address.
Virtual Memory Management Method and Apparatus Supporting Physical Addresses Larger Than Virtual Addresses
The present disclosure discloses a virtual memory management method and apparatus supporting physical addresses larger than virtual addresses. The method comprises steps of: determining a target virtual address corresponding to an instruction fetch address or a load storage address in any one of a user mode, a supervisor mode, or a machine mode; determining a target physical address corresponding to the target virtual address by accessing a virtual memory management unit, the virtual memory management unit being internally provided with page table entries that map virtual addresses to physical addresses, the bit width of the target virtual address being possibly less than or equal to that of the target physical address, particularly in a many-core application field; and finally, returning the target physical address to a corresponding instruction fetch unit or load memory unit, thereby ensuring the correctness and validity.
SYSTEMS AND METHODS FOR MANAGING MEMORY UTILIZATION
Systems and methods for managing memory are disclosed. In one embodiment, a first data structure is generated, where the first data structure is associated with one or more virtual addresses mapped to one or more physical addresses of the memory. A size of the first data structure is based on a characteristic of the memory. Data to be stored in the memory is received, and a virtual address of the one or more virtual addresses is identified based on the first data structure. The virtual address is mapped to a physical address, and the data is stored in the physical address. The first data structure is updated based on the storing of the data.