WO2018046850A1 - Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue - Google Patents
Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue Download PDFInfo
- Publication number
- WO2018046850A1 WO2018046850A1 PCT/FR2017/052368 FR2017052368W WO2018046850A1 WO 2018046850 A1 WO2018046850 A1 WO 2018046850A1 FR 2017052368 W FR2017052368 W FR 2017052368W WO 2018046850 A1 WO2018046850 A1 WO 2018046850A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- cache
- address
- addresses
- circuit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Definitions
- the present application relates to a computing system comprising a processor, a memory, and a control interface between the processor and the memory.
- a processor PIM Processor In Memory
- PIM Processor In Memory
- a PIM processor is controlled by a main processor, typically an Intel, ARM or Power processor. In this document this processor is called HCPU (Host CPU).
- the PIM processor and the HCPU have access to the memory in which the PIM processor is integrated.
- this memory is called PIM memory.
- Each PIM processor has registers that allow the HCPU to control it. These registers, accessible by the HCPU, are visible in the physical address space of the PIM circuit. In this document these registers are called interface registers, the set of interface registers of a PIM processor being called the interface of this PIM processor, and the software, running on the HCPU, controlling this interface being called the interface software.
- the HCPU typically performs the following actions to use a PIM processor:
- the writes generated by the HCPU having as destination either the interface of a PIM processor or the PIM memory, must be carried out without delay.
- a HCPU has a cache system and it can delay writing in the PIM circuit indefinitely.
- HCPUs processors have cache management instructions to force the main memory update, a data specified by its address, whose writing has so far only occurred in the cache of the processor .
- cache affected by the cache management instructions is named in this document "CPU cache", the cache not affected by these instructions being named “DRAM cache”.
- Delayed writes are also a problem for non-volatile memories that do not integrate a PIM processor.
- MRAM memories magnetic memory
- EVERSPIN magnetic memory
- DRAM-compatible interface for use with a DRAM controller.
- Another problem is that if a data item Cl to be written to a certain address is stored in the DRAM cache, this data can be replaced by the arrival of a new data C2 for the same address, the DRAM cache considering optimal not to write Cl in the memory circuit, C1 being supplanted by C2.
- the HCPUs processors have cache management instructions, in particular to invalidate in the cache a data item specified by its address.
- the value VI is no longer present in the cache, and if the HCPU reroutes a data item to the AV address, it will obtain the value V2 of the memory circuit and the cache will now hide this value V2.
- an invalidation instruction targeting the AV address ensures that the VI value is no longer present in the CPU cache, but does not guarantee that the VI value is not always present in the DRAM cache.
- the DRAM controller will just return the VI value from its DRAM cache.
- an embodiment provides a computing system comprising: a computing device having one or more processing cores under instruction command and a memory controller, the memory controller including a cache memory; and a memory circuit coupled to the memory controller via a data bus and an address bus, the memory circuit being adapted to have a first memory location of m bits accessible by a plurality of first addresses provided on the address bus, the computing device being configured to select, for each memory operation accessing the first memory location of m bits, one of the plurality of first addresses.
- the first memory location of m bits is accessible by a plurality P of first addresses, the computing device being configured to use a first of the addresses to access the first memory location during an Nth and a (N + P ) first access operations to the first memory location.
- each address of the plurality of first addresses comprises a first value of n bits and a second value of p bits
- the computing device being configured to perform a write data write operation to the m bits of the first memory location by performing a read operation of the first memory location using one of the first addresses having a first n-bit value selected and a second p-bit value generated according to the write data.
- the memory circuit is adapted, in response to receiving a read operation to the first memory location using one of the first addresses, to write the second p-bit value of the address in the first memory location.
- p and m are positive integers and m is equal to or greater than p.
- the memory circuit is adapted to have a second memory location accessible by a plurality of second addresses provided on the address bus.
- the first and second memory locations are part of a first range of memory locations of the memory circuit, the first range of memory locations being selected by a sliding address window, wherein the memory locations of the first range of memory locations are addressable:
- the memory circuit comprising an address conversion circuit adapted to convert addresses in the first and second address ranges to corresponding addresses in the sliding address window.
- the address conversion circuit comprises at least one programmable register for defining the location of the sliding address window.
- said at least one register of the address conversion circuit is programmable to define the location and the size of the sliding address window.
- the memory controller is adapted to perform a cache evacuation operation, the cache evacuation operation comprising one or more memory access instruction sequences performed by the memory controller resulting in that :
- all or part of the read data stored in the memory controller cache memory is evacuated from the cache memory, the read data including data read from the memory circuit prior to the cache evacuation operation; or all or part of the cache write transactions stored in the memory controller cache is written to the memory circuit and all or part of the read data stored in the memory controller cache memory is evacuated from the cache memory.
- the memory circuit further comprises an auxiliary processor
- the memory access instruction sequence comprises only register access instructions to access one or more control registers of the memory circuit to control the memory access.
- the memory circuit comprises a monitoring circuit, accessible by the computing device, and adapted to record memory access transactions made in the memory circuit, the computing device being configured to generate said one or more memory access instruction sequences based on the transactions recorded by the monitoring circuit.
- the memory circuit further comprises an auxiliary processor, the first and second memory locations being control registers of the auxiliary processor.
- the computing device is configured to generate commands of a first type and commands of a second type, the memory circuit being adapted to modify the order of commands received from the computing device in such a way that for a first group of commands of the second type generated by the computing device between first and second commands of the first type, the order of the first and second commands of the first type relative to the command group of the second type is respected.
- the memory circuit is adapted to modify the order of the commands on the basis of an order value associated with at least each order of the first type, the order value of each command being included:
- the computing device further comprises a CPU cache memory configurable by cache management instructions, the memory cache of the memory controller not being configurable by cache management instructions.
- the memory circuit comprises a non-volatile memory array.
- Another embodiment provides a method of accessing a memory circuit coupled to a memory controller of a computing device via a data bus and an address bus, the computing device having one or more processing cores and the memory controller comprising a cache memory, the method comprising: selecting, by the computing device, for each memory operation accessing a first memory location of m bits of the memory circuit, an address among a plurality first addresses, the first memory location of m bits being accessible by each of the plurality of first addresses provided on the address bus.
- a system consisting of a main circuit and at least one memory circuit; the main circuit comprising at least one main processor and a memory controller connected to the memory circuit; the memory controller comprising a cache that is not affected by the cache management instructions of the main processor; the memory circuit integrating at least one auxiliary processor; this auxiliary processor comprising an interface accessible to the main processor; this interface comprising registers, each register of this interface being accessible by the main processor through a plurality of addresses; the interface being controlled by software running on the main processor, the software choosing for each access to a given register of the interface, one of the plurality of addresses corresponding to this register.
- the choice of the address to access a register of the given interface is done in such a way that an address, used during the N th access to this register, will be used during the (N + P) th access to this register, where P is the number of addresses composing the plurality of addresses associated with this register.
- the access address to at least one interface register is constructed by assembling a first n-bit field named major field, with a second field of p-bit, called field minor, where the value of the major field is selected from a plurality of values, and the value of the minor field can have any value between 0 and ( 2A P) -1, reading the interface register to the address ⁇ major field, minor field ⁇ causing the writing thereof by the minor field value, the software using such readings to write values in the interface register.
- the possible values of the minor field are restricted to the values that can be written in the interface register.
- the advantage of using, during a read operation, a field of the address for transmitting bits to be written in the memory is that the read operation is not likely to be put on hold in the cache, as could be a write operation.
- registers of the interface make it possible to configure the position and, where appropriate, the size, of an additional access window on an area of the memory of the memory circuit, this access window being accessible to through a plurality of address ranges, and where the interface software realizes access to the memory of the memory circuit by positioning this access window on the memory area concerned, and chooses the access addresses in the plurality of ranges. addresses to access this access window.
- the interface software chooses the addresses to access the access window in such a way that if the address of the N th access to the access window is chosen from a given address range, then the (N + P) i th access address will be chosen in this same address range, where P is the number of address ranges composing the plurality of address ranges. .
- the software controlling the interface uses an access sequence, chosen from among a set of predetermined access sequences, to expel from the cache of the memory controller the write transactions transmitted before this sequence, thus forcing the actual realization of these write transactions, the determination of the predetermined access sequences being made from the known characteristics or deduced from the observation of the memory controller cache.
- the software controlling the interface uses an access sequence, chosen from a set of predetermined access sequences, to expel from the memory controller cache the data read before this sequence, the determination of the predetermined sequences. based on the known characteristics or deduced from the observation, the memory controller cache.
- the software controlling the interface uses an access sequence, chosen from a set of predetermined access sequences, to expel from the memory controller cache the write transactions and the data read before this sequence. , the determination of the predetermined sequences being based on the known characteristics or deduced from the observation, the memory controller cache.
- the access sequence is reduced, so that it ensures the eviction of the memory controller cache only write transactions or data read, corresponding to a subset of the associated physical addresses to the memory circuit.
- the predetermined access sequences only comprise accesses to registers of the interface.
- the interface comprises a mechanism for recording the last transactions that have reached the memory circuit, this recording mechanism being accessible by the main processor via the interface itself.
- the software controlling the interface uses previously the mechanism for recording the last transactions, to automatically determine the predetermined access sequences.
- the interface comprises at least one control register capable of receiving commands from the HCPU, and where these commands are classified between highly ordered commands and low order commands; the low-order commands issued between two highly ordered commands forming a loosely ordered command set within which the low-order commands can be executed in the disorder; and where the highly ordered commands are executed in the order with respect to the other highly ordered commands and with respect to the sets of weakly ordered commands.
- the interface comprises at least one control register capable of receiving commands from the HCPU, and where these commands are all strongly ordered between them.
- the commands are reordered through the use of a number included in the commands themselves.
- the commands are reordered through the use of a number included in the command addresses.
- the commands are reordered through the use of numbers, part of a number being included in the order itself, the remainder of the number being included in the address of the order.
- the auxiliary processor is not integrated in the memory circuit, but is integrated in a circuit connected to the memory circuit. According to one embodiment, there is no integrated processor and the memory is non-volatile.
- Figure 1 schematically illustrates a computing system according to one embodiment
- Figure 2 illustrates in more detail a memory interface of the system of Figure 1 according to one embodiment
- Figure 3 illustrates in more detail a memory interface of the system of Figure 1 according to another embodiment.
- the HCPU is usually a very powerful processor therefore able to execute instructions in the disorder (Out Of Order processor: 000 processor), also in addition to cache management instructions, the use of "memory barrier" instructions is possible to force the execution in a proper order of instructions.
- a BM memory barrier instruction ensures that all accesses generated by instructions located before the BM instruction are fully realized from the standpoint of the CPU cache, before an access generated by an instruction after the BM instruction is performed.
- the instruction set of a HCPU may include, for reasons of performance optimization, variations around this concept, with, for example, barrier instructions concerning only the writes or the readings.
- mapped register means that the register is accessible to a physical address.
- a register can be mapped several times: this means that it is accessible to several different physical addresses.
- FIG. 1 illustrates a calculation system comprising a processing device 102 coupled by a bus, for example of the DDR (double data rate) type, to a memory circuit 104.
- the bus comprises, for example, a bus data 106A and an address bus 106B.
- the device 102 comprises, for example, one or more processing cores 108, a Central Processing Unit (CPU) cache memory 110, and a memory controller 112 comprising a cache memory 114.
- the cache memory 114 is for example a Dynamic Random Access Memory (DRAM) cache memory in the case where the memory circuit 104 is a memory of the DRAM type.
- DRAM Dynamic Random Access Memory
- the memory circuit 104 comprises, for example, a memory 116, a processing device 118 and an interface 120.
- the circuit 104 comprises, for example, an address translation circuit 122 comprising one or more registers 124 and a monitoring circuit 126. .
- each interface register is mapped a number of times, which number depends on the characteristics of the DRAM cache.
- the interface of the PIM processor 118 may comprise only 3 directly accessible registers, allowing indirect access to a much larger number of registers:
- the memory circuit 104 contains 2 A memory Wmots, but to create numerous addresses, it is declared as having 2 A (N + i) memory words, with i> 0.
- the boot code (BIOS / boot firmware) and the operating system (OS, Operating System) must take into account the actual size of the memory and not the declared size:
- the OS must initialize the databases of its memory allocators taking into account the actual size of the memory.
- the interface software uses, at each access to a register (for example access 208 to the register 202 and access 210 to the register 204 in Figure 2) a different address mapping it; Consequently :
- the DRAM cache will "overflow" quickly, naturally pushing the transaction writes stored there to be executed.
- - may, after a series of writes, generate access
- the minimum size of the set of addresses mapping an interface register is based on the size and characteristics of the DRAM cache.
- the address series mapping the command register is generated by a circular function F:
- the state associated with a memory word is summed up with the address used for its last access (see a field of this address if part of the address remains fixed).
- interface registers instead of being each associated with a private current address, can use a common common address, the latter being governed at each access in the following way:
- the address of the access to a register is the result of the sum of an offset, depending on the register considered, and the common current address,
- the common current address is updated by function F.
- a weakly ordered class including, for example, commands writing data, instructions and parameters
- the ownership of a command to one or the other class is encoded in the command itself.
- the scheduling rules are as follows:
- the highly ordered commands can be received in the wrong order by the recipient command register, but they must be executed in the order of their generation: for this, the strongly ordered commands are numbered at the time of their generation.
- each strongly ordered command to a given command register includes an n-bit field for numbering it.
- control buffer an n-bit counter, called current command number, containing the current number of the strongly ordered command to be executed.
- the interface software can read the current command number to find out what is the last command executed, which allows it to know how many have been executed, and therefore how many new highly ordered commands it can generate without exceeding the buffer's capacity. ordered. Thus it can generate orders strongly ordered as the previous ones are executed.
- part of the address where the command is written serves as the command number.
- the address series mapping the command register is generated by a circular function F:
- A2 is given by F (Al).
- the command register is associated with the following hardware resources:
- an n-bit counter named the current command number, containing the current number of the strongly ordered command to be executed.
- command buffer a memory of M entries named command buffer, each entry being:
- This method actually uses the two preceding methods, the number of the command consisting partly of a field of the address and partly of a field of the command. Reordering of low order orders
- the second point is easy to determine by associating with each control register a register counting how many poorly ordered commands received by this control register have been executed.
- a FIFO can be used to store low-order commands, in case the rhythm of their arrival can be greater than the rhythm of their executions. Avoidance of early readings
- the DRAM cache may have logic adapted to detect such access pattern and decide to read data in advance based on this access pattern.
- 1/4 of the physical address space of the memory circuit is dedicated to the interface of the PIM processor.
- the number of its registers is very small, so each one of these registers will be mapped millions of times: allowing to easily solve the problem of access for these registers of interface.
- one solution is to use an access window 305, called a mobile window, whose location 304 in the PIM memory 302 (and possibly the size) can be configured via interface registers. , this mobile window being mapped many times in a wide range of physical addresses 306 named multiple window.
- the physical addresses of the PIM circuit could be organized as follows:
- the 2 A (N + 1) physical addresses constitute the multiple window, where the mobile window is mapped many times.
- the physical address space classically mapping the PIM memory may be used by the HCPU to access areas of the PIM memory that are not accessed by the PIM processor.
- the PIM memory area on which the movable window is positioned may or may not remain accessible through the "conventional" physical address space of the PIM memory.
- Access in the mobile window eg access
- the mobile window is accessible via a plurality of physical address ranges, all of these physical address ranges constituting the multiple window.
- the moving window is such that it is fully included in a page of the DRAM, the position of the moving window can be expressed as a pair ⁇ x, y ⁇ :
- the interface software When the interface software has written all the affected areas, it uses bogus access, to push out of the DRAM cache the last writes that might be in wait.
- the interface software can now use, for accessing the PIM memory currently targeted by the mobile window, all the previously described solutions for access to the interface register, in particular the use of address current common.
- the interface software modifies a common or common current address only when it is used for an access: it is not modified by moving the moving window .
- the speed of the logic realizing the mechanism of the moving window can pose more problem as explained below.
- the position of the moving window can be expressed by a pair ⁇ x, y ⁇ :
- the mobile window is therefore associated with the page x, of the PIM memory, this association being programmable via interface registers.
- the decoding of this case is simple because it is enough to look at very few bits of the number of a page number to determine that this page belongs to the multiple window.
- predetermined access sequences are used to fill the DRAM cache with unimportant transactions: - chasing the writes pending: thus realizing their updates
- DCW_BARRIER (Dram Cache Write Barrier) Write barrier for DRAM caches: Ensures that all writes made before the start of DCW_BARRIER are effective (visible by the PIM processor) at the end of DCW_BARRIER.
- DCR_BARRIER (Dram Cache Read Barrier) Read Barrier for DRAM Cache: Ensures that all data read after the end of DCR_BARRIER is newer than the date that DCR_BARRIER was started.
- DCM_BARRIER Dram Cache Memory Barrier
- Some DRAM cache architectures may be such that the DCW_BARRIER, DCR_BARRIER, and DCM_BARRIER sequences can be reduced, and thus reduce their execution time, if the effect of these barriers applies only to a range of addresses specified in parameter.
- BARRIER access sequence variants can be:
- DCW_BARRIER (start_addr, end_addr) ensures that all writes made before the start of DCW_BARRIER (start_addr, end_addr) in the address range ⁇ start_addr: end_addr ⁇ are effective at the end of DCW BARRIER (start addr, end addr).
- DCR_BARRIER (start_addr, end_addr) ensures that all values read in the range ⁇ start_addr: end_addr ⁇ after the end of DCR_BARRIER (start_addr, end_addr) are newer than the date that DCR_BARRIER (start_addr, end_addr) was started .
- DCM_BARRIER start_addr, end_addr equivaux indifferently to:
- a non-volatile memory without a PIM processor, can nevertheless have an interface allowing it to use all the aspects of the invention, in particular those allowing:
- the address sequences to be used in the invention depend on the characteristics of the DRAM cache.
- This kind of analysis is commonly performed among others by manufacturers of DRAMs and memory cards DIMMs, including to develop their products and verify their compliance, but also by manufacturers of computers using HCPU processors, for the development point of their systems.
- analysis systems such as those of the company Tektronix, capable of analyzing the traffic of a DRAM controller of an HCPU processor.
- the interface may comprise hardware means for recording the last N transactions arrived, or at least or a sufficient part of their characteristics, this record being accessible via the interface itself.
- a DRAM memory is organized into banks, pages and columns.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019513044A JP2019531546A (ja) | 2016-09-08 | 2017-09-06 | 高度dramメモリコントローラの内部キャッシュをバイパスするための方法および装置 |
US16/331,429 US11494308B2 (en) | 2016-09-08 | 2017-09-06 | Methods and devices for bypassing the internal cache of an advanced DRAM memory controller |
CN201780062063.1A CN109952567B (zh) | 2016-09-08 | 2017-09-06 | 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置 |
KR1020197009869A KR102398616B1 (ko) | 2016-09-08 | 2017-09-06 | 진보한 dram 메모리 컨트롤러의 내부 캐시를 우회시키기 위한 방법 및 장치 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1658373A FR3055715B1 (fr) | 2016-09-08 | 2016-09-08 | Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue |
FR1658373 | 2016-09-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018046850A1 true WO2018046850A1 (fr) | 2018-03-15 |
Family
ID=57750074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2017/052368 WO2018046850A1 (fr) | 2016-09-08 | 2017-09-06 | Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue |
Country Status (6)
Country | Link |
---|---|
US (1) | US11494308B2 (fr) |
JP (1) | JP2019531546A (fr) |
KR (1) | KR102398616B1 (fr) |
CN (1) | CN109952567B (fr) |
FR (1) | FR3055715B1 (fr) |
WO (1) | WO2018046850A1 (fr) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7218556B2 (ja) * | 2018-12-06 | 2023-02-07 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US11048636B2 (en) * | 2019-07-31 | 2021-06-29 | Micron Technology, Inc. | Cache with set associativity having data defined cache sets |
US11481255B2 (en) * | 2019-09-10 | 2022-10-25 | International Business Machines Corporation | Management of memory pages for a set of non-consecutive work elements in work queue designated by a sliding window for execution on a coherent accelerator |
US11403111B2 (en) | 2020-07-17 | 2022-08-02 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic using look-up tables |
US11355170B1 (en) | 2020-12-16 | 2022-06-07 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic |
US11868657B2 (en) * | 2021-02-08 | 2024-01-09 | Samsung Electronics Co., Ltd. | Memory controller, method of operating the memory controller, and electronic device including the memory controller |
US11354134B1 (en) * | 2021-03-25 | 2022-06-07 | Micron Technology, Inc. | Processing-in-memory implementations of parsing strings against context-free grammars |
US11921634B2 (en) * | 2021-12-28 | 2024-03-05 | Advanced Micro Devices, Inc. | Leveraging processing-in-memory (PIM) resources to expedite non-PIM instructions executed on a host |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5361391A (en) * | 1992-06-22 | 1994-11-01 | Sun Microsystems, Inc. | Intelligent cache memory and prefetch method based on CPU data fetching characteristics |
US5459856A (en) * | 1991-12-06 | 1995-10-17 | Hitachi, Ltd. | System having independent access paths for permitting independent access from the host and storage device to respective cache memories |
EP0886216A1 (fr) * | 1997-06-06 | 1998-12-23 | Texas Instruments Incorporated | Microprocesseur comprenant des moyens de stockage de données non-antémémorisables |
WO2000055734A1 (fr) * | 1999-03-17 | 2000-09-21 | Rambus, Inc. | Procede et controleur de memoire a blocs dependants |
FR3032814A1 (fr) | 2015-02-18 | 2016-08-19 | Upmem |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6734867B1 (en) * | 2000-06-28 | 2004-05-11 | Micron Technology, Inc. | Cache invalidation method and apparatus for a graphics processing system |
US6983354B2 (en) * | 2002-05-24 | 2006-01-03 | Micron Technology, Inc. | Memory device sequencer and method supporting multiple memory device clock speeds |
US20060090034A1 (en) * | 2004-10-22 | 2006-04-27 | Fujitsu Limited | System and method for providing a way memoization in a processing environment |
JP3938177B2 (ja) * | 2004-10-29 | 2007-06-27 | キヤノン株式会社 | データ処理装置及びデータ処理装置におけるメモリ割り当て方法 |
US8253751B2 (en) * | 2005-06-30 | 2012-08-28 | Intel Corporation | Memory controller interface for micro-tiled memory access |
JP2007249314A (ja) * | 2006-03-14 | 2007-09-27 | Yaskawa Electric Corp | 高速データ処理装置 |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US8386723B2 (en) * | 2009-02-11 | 2013-02-26 | Sandisk Il Ltd. | System and method of host request mapping |
JP5526697B2 (ja) * | 2009-10-14 | 2014-06-18 | ソニー株式会社 | ストレージ装置およびメモリシステム |
US10020036B2 (en) * | 2012-12-12 | 2018-07-10 | Nvidia Corporation | Address bit remapping scheme to reduce access granularity of DRAM accesses |
US9075557B2 (en) * | 2013-05-15 | 2015-07-07 | SanDisk Technologies, Inc. | Virtual channel for data transfers between devices |
US9208103B2 (en) * | 2013-09-26 | 2015-12-08 | Cavium, Inc. | Translation bypass in multi-stage address translation |
WO2015047266A1 (fr) * | 2013-09-26 | 2015-04-02 | Intel Corporation | Ouvertures de stockage par blocs vers une mémoire persistante |
US9690928B2 (en) * | 2014-10-25 | 2017-06-27 | Mcafee, Inc. | Computing platform security methods and apparatus |
EP3018587B1 (fr) * | 2014-11-05 | 2018-08-29 | Renesas Electronics Europe GmbH | Unité d'accès mémoire |
-
2016
- 2016-09-08 FR FR1658373A patent/FR3055715B1/fr active Active
-
2017
- 2017-09-06 JP JP2019513044A patent/JP2019531546A/ja active Pending
- 2017-09-06 KR KR1020197009869A patent/KR102398616B1/ko active IP Right Grant
- 2017-09-06 WO PCT/FR2017/052368 patent/WO2018046850A1/fr active Application Filing
- 2017-09-06 US US16/331,429 patent/US11494308B2/en active Active
- 2017-09-06 CN CN201780062063.1A patent/CN109952567B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5459856A (en) * | 1991-12-06 | 1995-10-17 | Hitachi, Ltd. | System having independent access paths for permitting independent access from the host and storage device to respective cache memories |
US5361391A (en) * | 1992-06-22 | 1994-11-01 | Sun Microsystems, Inc. | Intelligent cache memory and prefetch method based on CPU data fetching characteristics |
EP0886216A1 (fr) * | 1997-06-06 | 1998-12-23 | Texas Instruments Incorporated | Microprocesseur comprenant des moyens de stockage de données non-antémémorisables |
WO2000055734A1 (fr) * | 1999-03-17 | 2000-09-21 | Rambus, Inc. | Procede et controleur de memoire a blocs dependants |
FR3032814A1 (fr) | 2015-02-18 | 2016-08-19 | Upmem |
Also Published As
Publication number | Publication date |
---|---|
KR20190067171A (ko) | 2019-06-14 |
CN109952567A (zh) | 2019-06-28 |
FR3055715B1 (fr) | 2018-10-05 |
CN109952567B (zh) | 2023-08-22 |
US20210349826A1 (en) | 2021-11-11 |
JP2019531546A (ja) | 2019-10-31 |
US11494308B2 (en) | 2022-11-08 |
KR102398616B1 (ko) | 2022-05-16 |
FR3055715A1 (fr) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018046850A1 (fr) | Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue | |
US20190243558A1 (en) | Two-level system main memory | |
JP2018133086A5 (fr) | ||
US10203878B2 (en) | Near memory accelerator | |
US20150032964A1 (en) | Handling virtual memory address synonyms in a multi-level cache hierarchy structure | |
US20130138867A1 (en) | Storing Multi-Stream Non-Linear Access Patterns in a Flash Based File-System | |
FR2624994A1 (fr) | Systeme de commande de registre intermediaire de traduction | |
EP2638476A1 (fr) | Procédé et appareil permettant d'accéder à des données d'une machine virtuelle | |
US9710283B2 (en) | System and method for pre-storing small data files into a page-cache and performing reading and writing to the page cache during booting | |
EP3182292B1 (fr) | Procédé de prédiction d'une donnée a précharger dans une mémoire cache | |
EP3005126B1 (fr) | Systèmes de stockage et mémoire à alias | |
EP3293637A1 (fr) | Gestion d'index dans une mémoire flash | |
WO2022140157A1 (fr) | Caches reconfigurables par processus | |
US20130339612A1 (en) | Apparatus and method for testing a cache memory | |
EP1607878A1 (fr) | Procédé et programme d'ordinateur de traitement d'une adresse virtuelle pour la programmation d'un contrôleur de DMA et système sur puce associé | |
FR2805368A1 (fr) | Systeme et procede utilisant l'acces speculatif a l'antememoire pour des performances ameliorees | |
EP2666092B1 (fr) | Systeme multi-coeurs et procede de coherence de donnees | |
FR2600441A1 (fr) | Unite de gestion de memoire | |
FR2609195A1 (fr) | Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede | |
US20230342049A1 (en) | Reading a master boot record for a namespace using a regular read operation | |
US11809341B2 (en) | System, device and method for indirect addressing | |
EP2652624B1 (fr) | Procede, programme d'ordinateur et dispositif de gestion d'acces memoire dans une architecture multiprocesseurs de type numa | |
FR2919401A1 (fr) | Procede de test des chemins de donnees dans un circuit electronique | |
US20130339607A1 (en) | Reducing store operation busy times | |
FR3103590A1 (fr) | Procédé de construction d’une signature caractéristique des accès, par un microprocesseur, à une mémoire |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17771492 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019513044 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 20197009869 Country of ref document: KR Kind code of ref document: A |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17771492 Country of ref document: EP Kind code of ref document: A1 |