IP Library › Granted Patent US 10,860,323
Granted Patent B2
US 10,860,323 · App. 15/768,254 · Granted Dec 8, 2020

Method and apparatus for processing instructions using processing-in-memory

Inventors: Kiyoung Choi (Seoul, KR); Jun-whan Ahn (Seoul, KR); Sung-joo Yoo (Seoul, KR)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F9/35G06F9/30087G06F9/52G06F12/0811G06F15/785G06F15/7821G06F12/082G06F12/1027G06F2212/1008
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,860,323
App. No.
15/768,254
Granted
Dec 8, 2020
Kind
B2
Abstract

Provided is a method and apparatus for processing instructions using a processing-in-memory (PIM). A PIM management apparatus includes: a PIM directory comprising a reader-writer lock regarding a memory address that an instruction accesses; and a locality tracer configured to figure out locality regarding the memory address that the instruction accesses and determine whether or not an object that executes the instruction is a PIM.

Claims (35)

1. A processing-in-memory (PIM) management apparatus comprising:

a PIM directory comprising a reader-writer lock regarding a memory address that an instruction accesses; and

a locality tracer configured to figure out locality regarding the memory address that the instruction accesses and determine whether or not an object that executes the instruction is a PIM memory,

wherein, when the object that executes the instruction is the PIM memory, the locality tracer transmits a request for reflecting data stored in a cache in the PIM memory or a request for discarding data stored in the cache to the cache according to whether an operation of the instruction is a write operation or a read operation.

2. The PIM management apparatus of claim 1 , wherein a total number of reader-writer locks in the PIM directory is equal to or less than a value obtained by dividing a size of an entire storage space of the PIM memory by a size of a cache unit block.

3. The PIM management apparatus of claim 1 , wherein the PIM directory comprises a reader-writer lock that is stored distinctively using a hash value regarding a memory address.

4. The PIM management apparatus of claim 1 , wherein each reader-writer lock of the PIM directory comprises:

information indicating whether a writer lock is set;

information indicating whether a reader lock is set; and

information regarding a number of reader locks.

5. The PIM management apparatus of claim 1 , wherein the locality tracer determines, based on a tag comprising information regarding a memory address of data stored in a cache, the object that executes the instruction as the PIM memory when the memory address that the instruction accesses is not in the tag.

6. The PIM management apparatus of claim 5 , wherein the locality tracer renews the tag when the cache is accessed or when the object that executes the instruction is determined as the PIM memory.

7. The PIM management apparatus of claim 5 , wherein the tag comprises a hash value of a cache tag.

8. A method of processing processing-in-memory (PIM) instructions by using a reader-writer lock regarding a memory address and locality information indicating whether data is stored in a cache, the method comprising:

obtaining a reader-writer lock regarding a memory address that an instruction accesses;

figuring out locality of the memory address that the instruction accesses; and

determining, based on the locality, whether an object that executes the instruction is a PIM memory; and

when the object that executes the instruction is the PIM memory, transmitting a request for reflecting data stored in a cache in the PIM memory or a request for discarding data stored in the cache to the cache according to whether an operation of the instruction is a write operation or a read operation.

9. The method of claim 8 , wherein the obtaining of the reader-writer lock comprises:

figuring out whether the reader-writer lock has been set on the memory address that the instruction accesses, in a PIM directory comprising a reader-writer lock array;

when the lock has been set, waiting until the lock is unlocked; and

when the lock has not been set, setting a lock for the instruction.

10. The method of claim 9 , wherein the setting of the lock for the instruction comprises

when the instruction is a read operation, and a number of reader-writer locks set is equal to or less than a certain number, obtaining the lock for the instruction.

11. The method of claim 9 , wherein the figuring out of whether the reader-writer lock has been set comprises:

obtaining a hash value regarding the memory address that the instruction accesses; and

checking whether the reader-writer lock has been set by searching the PIM directory using the hash value.

12. The method of claim 8 , wherein the determining comprises:

when data regarding the memory address that the instruction accesses is in the cache, determining, based on the locality information, the object that executes the instruction as a processor; and

when data regarding the memory address is not in the cache, determining the object that executes the instruction as the PIM memory.

13. The method of claim 12 , wherein the transmitting further comprises,

when the object that executes the instruction is determined as the PIM memory, if the instruction is related to a read operation, transmitting a request for reflecting data stored in the cache in the PIM memory to the cache, and if the instruction is related to a write operation, transmitting a request for discarding data stored in the cache to the cache.

14. The method of claim 12 , further comprising, when the object that executes the instruction is determined as the PIM memory, renewing the locality information.

15. The method of claim 8 , wherein the memory address that the instruction accesses is an address translated to a physical address by using a translation lookaside buffer (TLB).

16. A non-transitory computer-readable recording medium having recorded thereon a program for performing the method of claim 8 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2018
From: CHOI, KIYOUNG; AHN, JUN-WHAN; YOO, SUNG-JOO
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 045546/0873 →
Priority Claims (1)
KR 10-2015-0144744 · Oct 16, 2015 · national
Continuity (1)
Related Publication 20180336035A1 · Nov 22, 2018
Cited By (2)
US 12,399,722 US 12,524,153