KR20170140813A - 메모리 내의 변환 색인 버퍼 - Google Patents

메모리 내의 변환 색인 버퍼 Download PDF

Info

Publication number
KR20170140813A
KR20170140813A KR1020177034841A KR20177034841A KR20170140813A KR 20170140813 A KR20170140813 A KR 20170140813A KR 1020177034841 A KR1020177034841 A KR 1020177034841A KR 20177034841 A KR20177034841 A KR 20177034841A KR 20170140813 A KR20170140813 A KR 20170140813A
Authority
KR
South Korea
Prior art keywords
memory
address
tlb
host
virtual address
Prior art date
Application number
KR1020177034841A
Other languages
English (en)
Other versions
KR102054335B1 (ko
Inventor
존 디. 레이델
리차드 씨. 머피
Original Assignee
마이크론 테크놀로지, 인크.
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 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20170140813A publication Critical patent/KR20170140813A/ko
Application granted granted Critical
Publication of KR102054335B1 publication Critical patent/KR102054335B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1012Design facilitation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/305Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명의 실시 예들은 메모리 내의 변환 색인 버퍼와 관련된 장치 및 방법을 제공한다. 예시적인 방법은 호스트로부터 가상 어드레스를 포함하는 명령을 수신하는 단계 변환 색인 버퍼(TLB)를 이용하여 메모리 장치의 휘발성 메모리 상에서 가상 어드레스를 물리적 어드레스로 변환하는 단계를 포함한다.

Description

메모리 내의 변환 색인 버퍼
본 발명은 일반적으로 반도체 메모리 장치들 및 방법들에 관한 것으로, 보다 상세하게는, 메모리 내의 변환 색인 버퍼(translation lookaside buffer, TLB)에 관한 장치들 및 방법들에 관한 것이다.
메모리 장치들은 일반적으로 컴퓨터들 또는 다른 전자 시스템들 내에 본질(internal), 반도체, 집적회로들로 제공된다. 휘발성 및 비-휘발성 메모리를 포함하는 다양한 종류의 메모리가 있다. 휘발성 메모리는 데이터(예를 들어, 호스트 데이터, 에러 데이터 등)를 유지하기 위해 전력을 필요로 할 수 있고, 랜덤 엑세스 메모리(random access memory, RAM), 동적 랜덤 엑세스 메모리(DRAM), 정적 랜덤 엑세스 메모리(SRAM), 동기식 동적 랜덤 엑세스 메모리(SDRAM), 사이리스터 랜덤 엑세스 메모리(TRAM) 등을 포함할 수 있다. 비-휘발성 메모리는 전원이 공급되지 않을 때 저장된 데이터를 유지함으로써 지속 데이터(persistent data)를 제공할 수 있고, NAND 플래쉬 메모리, NOR 플래쉬 메모리, 및 상 변화 램덤 엑세스 메모리(PCRAM), 저항성 램덤 엑세스 메모리(RRAM)와 같은 저항 가변 메모리, 및 스핀 토크 전송 랜덤 엑세스 메모리(STT RAM)와 같은 자기저항 램덤 엑세스 메모리(MRAM) 및 다른 것들을 포함할 수 있다.
전자 시스템들은 종종 명령들을 검색 및 실행하고 실행된 명령의 결과를 적당한 위치에 저장하는 다수의 프로세싱 리소스들(예를 들어, 하나 이상의 프로세서들)을 포함한다. 프로세서는 다수의 기능 유닛들(예를 들어, 본 명세서에서 산술 논리 유닛(ALU) 회로, 플롯팅 포인팅 유닛(FPU) 회로 및/또는 예를 들어 데이터에 대해 AND, OR, NOT, NAND, NOR 및 XOR 논리 연산과 같은 논리 연산을 수행하기 위한 명령어를 실행할 수 있는 조합 논리 블록과 같은 기능 유닛 회로로 언급된)을 포함할 수 있다.
전자 시스템의 복수의 구성요소들은 실행 위해 기능 유닛 회로에 명령을 제공하는 것과 관련될 수 있다. 명령들은 예를 들어 제어기 및/또는 호스트 프로세서와 같은 프로세싱 리소스에 의해 생성될 수 있다. 데이터(예를 들어, 논리적 동작을 수행하기 위해 명령이 실행되는 피연산자)는 기능 유닛 회로에 의해 액세스 가능한 메모리 어레이에 저장 될 수 있다. 명령들 및 데이터는 기능 유닛 회로가 데이터에 대해 명령들을 실행하기 전에 메모리 어레이로부터 검색되고, 시퀀싱(sequencing) 및 버퍼링(buffering)될 수 있다. 또한, 상이한 유형들의 동작들이 기능 유닛 회로를 통해 하나 또는 다수의 클럭 사이클에서 실행될 수 있기 때문에, 동작들 및/또는 데이터의 중간 결과는 또한 시퀀싱 및/또는 버퍼링될 수 있다.
많은 경우에, 프로세싱 리소스들(예를 들어, 프로세서들 및/또는 관련 기능 유닛 회로)은 메모리 어레이 외부에 있을 수 있고, 데이터는 엑세스될 수 있다(예를 들어, 프로레싱 리소소들 및 메모리 어레이 사이의 버스(bus)를 통해 명령들을 실행하기 위해). 데이터는 메모리 어레이로부터 버스를 통해 메모리 어레이 외부의 레지스터들로 이동될 수 있다.
도 1은 본 발명의 다수의 실시 예들에 따른 호스트 및 메모리 장치를 포함하는 컴퓨팅 시스템 형태의 장치의 블록도이다.
도 2는 본 발명의 다수의 실시 예들에 따른 메모리 장치 및 다수의 요청 장치(requesting device)들을 포함하는 컴퓨팅 장치 형태의 블록도이다.
도 3은 본 발명의 다수의 실시 예들에 따른 메모리 장치를 포함하는 컴퓨팅 시스템 형태의 블록도이다.
도 4는 본 발명의 다수의 실시 예들에 따른 변환 색인 버퍼를 나타내는 테이블을 도시한다.
본 발명의 실시 예들은 메모리 내의 변환 색인 버퍼와 관련된 장치들 및 방법들을 제공한다. 예시적인 방법은 변환 색인 버퍼(TLB)를 이용하여 메모리 장치의 휘발성 메모리 상에서 가상 어드레스를 물리적 어드레스로 변환하는 호스트로부터 가상 어드레스를 포함하는 명령을 수신하는 것을 포함한다.
컴퓨팅 아키텍처들은 가상 어드레스들을 포함하는 명령들이 컴퓨팅 시스템에서 데이터를 찾는데 이용되는 어드레싱 시스템을 포함할 수 있다. 어드레싱 시스템은 컴퓨팅 시스템의 메모리 장치들이 호스트 또는 호스트 프로세서로부터 입력 및/또는 제어 없이 다양한 물리적 위치들에 데이터를 저장할 수 있도록 가상 어드레스들을 사용할 수 있다. 따라서, 명령들에 사용된 가상 주소들은 실행 중 물리적 어드레스들로 변환될 수 있고, 그래서 명령들과 관련된 데이터가 찾아지고 검색될 수 있다.
다수의 실시 예들에서, 가상 어드레스들을 포함하는 명령들은 생성되고 실행을 위해 다수의 메모리 장치들로 보내질 수 있다. 가상 어드레스들을 포함하는 명령들은 호스트에 의해 생성될 수 있으며, 버스(bus)를 통해 다수의 메모리 장치들로 보내질 수 있다. 다수의 메모리 장치들이 버스를 통해 명령들을 수신하면, 다수의 메모리 장치들은 명령들의 가상 어드레스들을 다수의 메모리들 상의 물리적 어드레스들로 변환하기 위해 변환 색인 버퍼(TLB)를 사용할 수 있다. 변환 색인 버퍼는 다수의 메모리 장치들의 제어기 상에 위치하고 및/또는 다수의 메모리 장치들의 메모리 어레이들 내에 위치할 수 있다. 또한, TLB는 하이브리드 메모리 큐브(HMC)의 논리 베이스에 위치할 수 있고, HMC의 논리 베이스는 TLB 및 볼트(vault) 논리를 사용하여 가상 주소들을 물리적 주소들로 변환할 수 있다. 다수의 메모리 장치들이 가상 주소들을 물리적 주소들로 변환하면, 다수의 메모리 장치들은 명령들과 관련된 데이터를 변환된 물리적 어드레스들에서 위치 시킴으로써, 명령들의 수행을 지속할 수 있다.
다수의 실시 예들에서, 다수의 메모리 장치들을 포함하는 컴퓨팅 시스템은 각각의 메모리 장치가 명령들을 수행할 때 가상 어드레스들을 물리적 어드레스들로 변환을 수행하기 위해 각각의 메모리 장치에 있는 TLB를 사용하여 가상 주소들로 복수의 명령들을 수행할 수 있다.
다음의 본 발명의 상세한 설명에서, 본 명세서의 일부를 형성하고 본 발명의 하나 이상의 실시 예들이 어떻게 실시 될 수 있는지를 예시적으로 나타낸 첨부 도면을 참조한다. 이러한 실시 예들에서 당업자가 본 발명의 실시 예들을 실시 할 수 있도록 충분히 상세하게 설명되며, 다른 실시 예들이 이용될 수 있고, 프로세스, 전기적, 및/또는 구조적 변경이 본 개시의 범위를 벗어나지 않고 이루어질 수 있음을 이해해야 한다. 본 명세서에서 사용된 바와 같은 "다수의" 특정 것은 하나 이상의 그러한 것들을 지칭할 수 있다(예를 들어, 다수의 메모리 어레이는 하나 이상의 메모리 어레이를 나타낼 수 있다).
본 명세서에서 숫자는 첫 번째 숫자 또는 숫자들이 도면 넘버에 해당하는 번호 매기기 규칙에 따르고, 나머지 숫자들은 도면에서 요소 또는 구성 요소를 식별한다. 다른 도면들 사이의 유사한 요소들 또는 구성들은 유사한 숫자들을 사용하여 식별될 수 있다. 예를 들어 120은 구성(20)을 참조할 수 있고, 유사한 구성은 도 3에서 320으로 참조될 수 있다. 인식할 수 있는 바와 같이, 본 명세서의 다양한 실시 예들에 도시된 구성들은 본 개시의 다수의 추가적인 실시 예들을 제공하기 위해 추가, 교환 및/또는 제거될 수 있다. 또한 도면들에 제공된 구성들의 비율 및 상대적인 스케일은 본 발명의 특정 실시 예들을 예시하기 위한 것이므로 제한적으로 해석되어서는 안된다.
도 1은 본 발명의 다수의 실시 예들에 따른 호스트(110) 및 메모리 장치(120)를 포함하는 컴퓨팅 시스템(100)형태의 장치의 블록도이다. 본 명세서에서 사용 된 바와 같이, 호스트(110), 메모리 장치(120), 메모리 어레이, 제어기 및/또는 센싱 회로는 "장치들"로 개별적으로 고려 될 수 있다.
컴퓨팅 시스템(100)은 버스들(154 및 157)을 통해 메모리 장치(120)에 연결된 호스트(110)를 포함한다. 호스트(110)는 다양한 다른 유형의 호스트들 중에서 개인용 랩톱 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 이동 전화 또는 메모리 카드 판독기와 같은 호스트 시스템 일 수 있다. 호스트(110)는 시스템 마더보드(motherboard) 및/또는 백플레인(backplane)을 포함 할 수 있으며, 다수의 프로세싱 리소스들(예를 들어, 하나 이상의 프로세서, 마이크로 프로세서 또는 일부 다른 유형의 제어 회로)을 포함 할 수 있다. 시스템(100)은 호스트(110) 및 메모리 장치(120) 및/또는 호스트 (110) 모두를 위한 별도의 집적 회로를 포함 할 수 있으며, 메모리 장치(120)는 동일한 집적 회로 상에 있을 수 있다. 시스템(100)은 디지털 신호 프로세서들(DSPs) 및/또는 모바일 프로세서들을 포함 할 수 있다.
호스트(110)는 프로세서를 포함 할 수 있다. 프로세서는 메모리 장치(120)에 의한 실행을 위한 명령을 생성 할 수 있다. 호스트(110)의 프로세서에 의해 생성된 명령들은 가상 어드레스들을 포함 할 수 있다. 명령들은 버스(154)를 통해 메모리 장치로 전송 될 수 있다. 일단 메모리 장치(120)가 호스트로부터 명령들을 수신하면, 메모리 장치는 명령들의 가상 주소들을 메모리 장치(120) 상의 물리적 주소들로 변환 할 수 있다.
메모리 디바이스(120)는, 예를 들어, DRAM 장치, 하이브리드 메모리 큐브(HMC) 장치, SRAM 장치, STT RAM 장치, PCRAM 장치, TRAM 장치, PIM 장치, RRAM 장치, NAND 플래시 장치 및/또는 NOR 플래시 장치일 수 있다. 다수의 실시 예들에서, 메모리 장치(120)는 변환 색인 버퍼(TLB)(191)를 포함할 수 있다. TLB(191)는 명령들로부터의 가상 어드레스들을 물리적 어드레스들로 변환하기 위해 메모리 장치에 의해 사용될 수 있다. TLB(191)는 메모리 장치(120)의 제어기 및/또는 메모리 장치(120)의 메모리 어레이에 위치할 수 있다. 다수의 실시 예들에서, 컴퓨팅 시스템(100)은 다수의 메모리 장치들을 포함 할 수 있으며, 여기서 다수의 메모리 장치들은 각각 가상-물리적 어드레스 변환을 수행하기 위한 TLB를 포함하는 다양한 유형의 메모리 장치 일 수 있다.
다수의 실시 예들에서, 메모리 장치(120)는 호스트(110)로부터 가상 어드레스를 포함하는 명령을 수신 할 수있다. 메모리 디바이스 120)는 가상 어드레스에 매핑되는 물리적 어드레스를 식별하고 물리적 어드레스는 메모리 디바이스(120)에 액세스하는데 사용된다. 메모리 장치(120)가 명령으로부터 어떤 물리적 어드레스가 가상 어드레스에 매핑되는지를 식별 할 수 없다면, 메모리 장치(120)는 호스트 (100)로 전송 될 수 있는 에러 메시지를 생성한다.
가상 어드레스에 매핑되는 물리 어드레스를 식별하기 위해, 메모리 장치(120)는 변환 색인 버퍼(TLB)(191)를 사용한다. TLB(191)는 가상 어드레스를 물리적 어드레스에 매핑하는 테이블을 저장할 수있다. TLB(191)는 호스트(110)로부터의 명령들에서 수신된 모든 가상 메모리 어드레스들에 대한 테이블 엔트리들을 포함 할 수 있다. 다수의 실시 예에서, TLB(191)는 호스트(110)상의 변환 장치(도시되지 않음)에 저장된 가상 메모리 어드레스보다 더 빈번하게 액세스되는 가상 메모리 어드레스들에 대한 테이블 엔트리들을 포함 할 수 있다. 다수의 실시 예들에서, TLB(191)는 특정 가상 어드레스 및/또는 물리적 어드레스가 얼마나 자주 액세스되는지에 관한 데이터를 저장할 수 있다.
도 2는 본 발명의 다수의 실시 예들에 따른 메모리 장치(274) 및 다수의 요청 장치들(272, 276, 280)을 포함하는 컴퓨팅 장치(270)의 형태의 장치의 블록도를 도시한다. 요청 장치들의 예들은 특히 프로세서(272), 직접 메모리 액세스(DMA) 장치(276) 및 / 또는 메모리 유닛(280)을 포함 할 수 있다. 프로세서(들)(272)는 도 1에 도시 된 호스트(110)와 관련하여 설명 된 프로세서들과 유사 할 수 있다. 메모리 유닛(280)은 도 1에 도시 된 메모리 디바이스(120) 및/또는 메모리 디바이스120) 이외의 다른 메모리 유닛과 유사 할 수 있다. 컴퓨팅 장치(270)는 도 1에 도시 된 컴퓨팅 장치(100)와 유사 할 수 있다. 도 2에서, 하이브리드 메모리 큐브(HMC)인 메모리(274)의 특정 예에 관해 더 상세히 도시된다. 도 2에 도시된 HMC (274)는 도 1에 도시 된 메모리 디바이스(120)와 유사 할 수 있다.
본 발명의 다양한 실시 예들에 따르면, 필터(들) 및 복수의 맵핑 메카니즘들을 포함하는 메모리 맵핑 모듈은 후술하는 제어 회로와 같은 프로세서(들)(272) 및 HMC(274) 사이의 다양한 방식으로 구현 될 수 있다.
HMC(274)는 예를 들어 DRAM 다이와 같은 다수의 메모리 장치들(278-1, 278-2, 278-3, ..., 278-B), 예를 들어 논리 다이와 같은 하드웨어 논리 장치(282), 주문형 집적 회로(application-specific integrated circuit, ASIC), 다른 장치의 대응하는 논리 등을 포함하는 단일 패키지 일 수 있고, 예를 들어, 하드웨어 논리 장치(282)가 반드시 메모리 장치들(278)과 스택 될 필요는 없지만, 관통 실리콘 비아(through silicon vias, TSV)를 사용하여 함께 스택 될 수 있다. HMC(274) 내의 메모리는 서브 세트들, 예컨대 볼트(284)로 조직 될 수 있으며, 여기서 각각의 볼트(284)는 다른 볼트들(284)과 기능적 및 동작적으로 독립적이다. 각각의 볼트(284)는 각각의 메모리 장치들(278)로부터의 메모리의 파티션을 포함 할 수 있다. 각각의 볼트(284)는 볼트(284)에 대한 메모리 제어기와 유사하게 기능하는 논리 장치(282)에서 예를 들어 볼트 제어기와 같은 하드웨어 논리 유닛(288)을 포함할 수 있다. 각각의 볼트 제어기(284)는 복수의 메모리 장치들(278)의 각각의 서브 세트에 결합 될 수 있다. 예를 들어, 볼트 제어기(288)는 예를 들어 프로세서와 같은 요청 장치에 의해 관리되는 것이 아니라 자신의 타이밍 요건을 결정하는 것을 포함하여 볼트 (284)에 대한 메모리 동작을 관리 할 수 있다. 볼트 제어기(288)는 프로세서(272)와의 요청 및 응답을 위한 다수의 버퍼들을 포함 할 수 있고, 프로세서(272)로부터 요청이 수신된 순서와 관련하여 응답을 프로세서(272)에 순서대로 전송하기 위해 다수의 버퍼들을 이용할 수 있다. 따라서, 프로세서(272)는 요청과 관련된 판독 시간을 인식하지 않고 인터페이스를 통해 HMC(274)에 요청을 전송하도록 구성 될 수 있다.
도 2는 메모리 장치들(278)과 요청 장치들(272, 276, 280) 사이에 결합된 논리 장치(282)의 보다 상세한 모습을 도시한다. 논리 베이스(282)는 각각의 볼트, 예를 들어 볼트 제어에 대한 메모리 제어 논리(288)를 포함 할 수 있다. 볼트 제어기(288)는 볼트(284)의 기능을 통합 할 수 있는 HMC(274)에 대한 공유된 메모리 제어 논리(290)에 결합 될 수 있다. 그러나, 각각의 볼트(284)는 서로 독립적으로 직접 제어, 예를 들어, 제어된 타이밍, 액세스 등으로 제어될 수 있고, 공유된 메모리 제어 논리(290)는 반드시 요청 장치들(272, 276, 280)과 인터페이스 해야 하는 것은 아니므로, 공유된 메모리 제어 논리(290)는 반드시 종래와 같이 중앙 메모리 제어기 포함하는 것은 아니다. 따라서, 일부 실시 예들에서, 컴퓨팅 장치(270) 및/또는 메모리(274)는 중앙 메모리 제어기를 포함하지 않는다. 메모리 제어 논리(290)는 스위치(292), 예컨대 크로스바 스위치에 결합 될 수 있다.
스위치(292)는 볼트(284)로부터 입력/출력(I/O) 링크(296)로의 집단 내부 대역폭의 가용성을 제공 할 수 있다. 스위치(292)는 I/O 링크(296)를 요청 장치들(272, 276, 280)로 제어하는 링크 인터페이스 제어기(294)에 연결될 수 있다. 예를 들어, I/O 링크(296)는 직렬 완전 이중화 된 입력/출력 링크 일 수 있다. 논리 장치(282)는 메모리(274)에 대한 논리/물리 인터페이스를 제공 할 수 있다. 스위치(292)는 변환 색인 버퍼(TLB)(291)를 포함 할 수 있다. TLB(291)는 요청 장치들(272, 276 및/또는 280)로부터 수신 된 명령들의 가상 어드레스를 메모리(274)의 물리적 어드레스들로 변환하기 위해 메모리 제어(290) 및 논리 베이스(282)의 볼트 제어(288)에 의해 사용될 수 있다.
메모리(274)는 특히 프로세서(272), DMA 장치(276) 및/또는 메모리 유닛(280)과 같은 요청 장치들로부터 요청들을 수신 할 수 있다. 본 명세서에 설명 된 바와 같이, 일부 실시 예들에서, 논리 베이스(282)는 명령들로부터 가상 어드레스들을 물리적 어드레스들로 변환하기 위해 TLB(291)를 사용하도록 구성 될 수 있다. 메모리 제어(290) 및/또는 볼트 제어(288)은 메모리(274)에 의해 수신 된 명령과 관련된 데이터를 찾기 위해 변환 된 데이터를 사용할 수 있다.
도 3은 본 발명의 다수의 실시 예들에 따른 메모리 장치(320)를 포함하는 컴퓨팅 시스템(300)의 형태의 장치의 블록도이다. 본 명세서에서 사용되는 메모리 장치(320), 메모리 제어기(340), 채널 제어기(343), 뱅크 조정기(345), 메모리 어레이(330), 센싱 회로(350) 및 논리 회로 (370)는 "장치"로 개별적으로 고려 될 수 있다.
시스템(300)은 메모리 어레이(330)를 포함하는 메모리 장치(320)에 결합 된 (예를 들어, 접속 된) 호스트(310)를 포함 한다. 다수의 실시 예에서, 메모리 장치(320)는 메모리 내의 프로세서(PIM) 장치 일 수 있다. 호스트(310)는 다양한 다른 유형의 호스트들 중에서 개인 랩톱 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 스마트 폰, 또는 메모리 카드 판독기와 같은 호스트 시스템 일 수 있다. 호스트(310)는 시스템 마더보드 및/또는 백플레인을 포함 할 수 있으며, 다수의 프로세싱 리소스들(예를 들어, 하나 이상의 프로세서, 마이크로 프로세서 또는 일부 다른 유형의 제어 회로)을 포함 할 수 있다. 시스템(300)은 개별적인 집적 회로를 포함 할 수 있거나 호스트(310)와 메모리 장치(320)는 동일한 집적 회로 상에 있을 수 있다. 시스템(300)은 예를 들어 서버 시스템 및/또는 고성능 컴퓨팅(HPC) 시스템 및/또는 그 일부일 수 있다. 도 3에 도시 된 예가 폰 노이만 구조(Von Neumann architecture)를 갖는 시스템을 도시하지만, 본 개시의 실시 예들은 비 폰 노이만 구조에서 구현 될 수 있으며, 이는 폰 노이만 구조와 종종 관련되는 하나 이상의 컴포넌트 (예를 들어, CPU, ALU 등)를 포함하지 않을 수 있다.
명료 함을 위해, 시스템(300)은 본 발명에 특정한 관련성을 갖는 피쳐들에 초점을 맞추기 위해 간략화 되었다. 메모리 어레이(330)는 예를 들어, DRAM 어레이, SRAM 어레이, STT RAM 어레이, PCRAM 어레이, TRAM 어레이, RRAM 어레이, NAND 플래시 어레이 및 / 또는 NOR 플래시 어레이 일 수 있다. 어레이(330)는 본 명세서에서 엑세스 라인들(본 명세서에서 워드 라인 또는 선택 라인으로 지칭 될 수 있음)에 의해 결합된 열들 및 데이터 라인 또는 디지트 라인으로 지칭 될 수 있는 감지 라인들에 의해 결합된 행들로 배열된 메모리 셀들을 포함할 수 있다. 단일 어레이(330)가 도 3에 도시되어 있지만, 실시 예들은 이에 제한되지 않는다. 예를 들어, 메모리 장치(320)는 다수의 어레이들(330)(예를 들어, 다수의 DRAM 셀들의 뱅크들, NAND 플래시 셀들 등)을 포함 할 수 있다.
메모리 장치(320)는 I/O 회로(344)를 통해 데이터 버스(356)(예를 들어, I/O 버스) 상으로 제공된 어드레스 신호들을 래치(latch)하는 어드레스 회로(342)를 포함한다. 상태 및/또는 예외 정보는 대역-외-버스(357)를 포함하는 고속 인터페이스(HSI)를 통해 메모리 장치(320) 상의 메모리 제어기(340)로부터 채널 제어기(343)로 제공 될 수 있으며, 이는 채널 제어기(343)로부터 호스트(310)에 제공될 수 있다. 어드레스 신호는 어드레스 회로(342)를 통해 수신되고 메모리 어레이(330)를 액세스하기 위해 열 디코더(346) 및 행 디코더(352)에 의해 디코딩 된다. 데이터는 센싱 회로(350)를 사용하여 데이터 라인들 상의 전압 및/또는 전류 변화를 감지함으로써 메모리 어레이(330)로부터 판독 될 수 있다. 센싱 회로(350)는 메모리 어레이(330)로부터 데이터의 페이지(예를 들어, 열)를 판독하고 래치 할 수 있다. I/O 회로(344)는 데이터 버스(356)를 통해 호스트(310)와의 양방향 데이터 통신에 사용될 수있다. 기록 회로(348)는 메모리 어레이(330)에 데이터를 기록하는데 사용된다.
메모리 제어기(340), 예를 들어 뱅크 제어 논리 및/또는 시퀀서는 호스트(310)로부터의 제어 버스(354)에 의해 제공되는 신호들을 디코딩 한다.
이들 신호는 데이터 판독, 데이터 기록 및 데이터 삭제 동작들을 포함하여 메모리 어레이(330) 상에서 수행되는 동작을 제어하는데 사용되는 칩 인에이블(enable) 신호, 기록 인에이블 신호 및 어드레스 래치 신호를 포함 할 수 있다. 다양한 실시 예들에서, 메모리 제어기(340)는 호스트(310)로부터의 명령을 실행하고 어레이(330)에 대한 액세스를 시퀀싱하는 역할을 한다. 메모리 제어기(340)는 상태 머신(state machine), 시퀀서(sequencer), 또는 어떤 다른 유형의 제어기 일 수 있다. 제어기(340)는 메모리 어레이(330)와 같은 어레이에서 데이터를 시프팅(예를 들어, 우측 또는 좌측)하는 것을 제어 할 수 있다. 제어기(340)는 변환 색인 버퍼(TLB)(391)를 포함 할 수 있다. TLB(391)는 메모리 제어기(340)에 의해 사용되어, 호스트(310)로부터 수신 된 명령들의 가상 어드레스를 메모리 어레이(330)의 물리적 어드레스들로 변환 할 수 있다.
제어기(340)는 버스(354)를 통해 호스트(310)로부터 명령을 수신 할 수 있다. 제어기(340)는 TLB(391)를 사용하여 명령들로부터 가상 주소들을 물리적 주소들로 변환하도록 구성 될 수 있다. 제어기(340)는 메모리 장치(320)에 의해 수신된 명령들과 관련된 데이터를 탐색하기 위해 변환된 물리적 어드레스들을 사용할 수 있다.
다수의 실시 예들에서, 센싱 회로(350)는 다수의 센스 증폭기들 및 다수의 연산 구성 요소들을 포함 할 수 있으며, 이들은 누산기로서 기능 할 수 있고 여기에서 누산기로서 언급 될 수 있고 논리적 동작들을 수행하는데 사용될 수 있다(예를 들어, 상보적인 데이터 라인과 관련된 데이터에 대해).
다수의 실시 예들에서, 센싱 회로(350)는 어레이(330)에 저장된 데이터를 입력으로서 사용하여 논리 동작을 수행하고 센스 라인 어드레스 액세스를 통해 데이터를 전송하지 않고(예를 들어, 행 디코드 신호를 발사하지 않고) 논리 동작의 결과를 다시 어레이(330)에 저장하는 데 사용될 수 있다. 이와 같이, 센싱 회로 외부의 프로세싱 리소스들(예를 들어, 호스트(310) 및/또는 장치(320) 상에(또는 제어기(340) 또는 다른 곳에) 위치 된 ALU 회로와 같은 다른 프로세싱 회로와 연관된 프로세서에 의해)에 의해 수행되기보다는(또는 이와 관련하여) 센싱 회로(350)를 사용하여, 그리고 센싱 회로 (350)내에서 다양한 연산 기능이 수행 될 수 있다.
이전의 다양한 접근 방식에서, 예를 들어 피연산자와 관련된 데이터는 센싱 회로를 통해 메모리에서 판독되어 I/O 라인을 통해(예를 들어, 로컬 I/O 라인 및/또는 글로벌 I/O 라인을 통해) 외부 ALU 회로에 제공됩니다. 외부 ALU 회로는 다수의 레지스터를 포함 할 수 있으며 피연산자를 사용하여 연산 기능을 수행 할 수 있으며 결과는 I/O 라인을 통해 어레이로 다시 전송됩니다. 대조적으로, 본 개시의 다수의 실시 예들에서, 센싱 회로(350)는 메모리 어레이(330)에 저장된 데이터에 대한 논리 연산을 수행하고 그 결과를 센싱 회로(350)에 결합된 I/O 라인(예를 들어 로컬 I/O 라인)을 인에이블링 없이 메모리 어레이(330)에 다시 저장하도록 구성된다. 센싱 회로(350)는 어레이의 메모리 셀과 피치로 형성 될 수있다. 추가적인 논리 회로(370)는 센싱 회로(350)에 연결될 수 있고, 본 명세서에 기술된 연산 결과를 저장, 예를 들어 캐시(cache) 및/또는 버퍼링하는데 사용될 수 있다.
이와 같이, 다수의 실시 예들에서, 센싱 회로(350)가 적절한 연산을 수행하여 외부 연산 리소스들의 사용 없이 이러한 연산 기능을 수행 할 수 있기 때문에, 어레이(330) 및 센싱 회로(350) 외부의 회로가 연산 기능을 수행하는 데 필요하지 않다. 따라서, 센싱 회로(350)는 적어도 어느 정도는 그러한 외부 프로세싱 리소스(또는 적어도 그러한 외부 프로세싱 리소스의 대역폭 소비)를 보완 및/또는 대체하는데 사용될 수 있다.
그러나, 다수의 실시 예에서, 센싱 회로(350)는 외부 프로세싱 리소스(예를 들어, 호스트 (310))에 의해 수행되는 논리 연산에 부가하여 논리 연산(예를 들어, 명령을 실행하기 위해)을 수행하는데 사용될 수 있다. 예를 들어, 호스트(310) 및/또는 센싱 회로(350)는 특정 논리 연산 및/또는 특정 개수의 논리 연산만을 수행하는 것으로 제한 될 수 있다.
I/O 라인을 인에이블링하는 것은 디코드 신호 (예를 들어, 행 디코드 신호)에 결합된 게이트 및 I/O 라인에 결합된 소스/드레인을 갖는 트랜지스터를 인에이블링(예를 들어, 켜는)하는 것을 포함 할 수 있다. 그러나 실시 예들은 I/O 라인을 인에이블링하지 않는 것으로 제한되지 않는다. 예를 들어, 다수의 실시 예들에서, 센싱 회로(예를 들어, 350)는 어레이의 행 디코드 라인을 인에이블링하지 않고 논리 연산을 수행하는데 사용될 수 있다; 그러나, 로컬 I/O 라인(들)은 결과를 어레이(330)(예를 들어, 외부 레지스터)로 되돌아 가지 않는 적절한 위치로 전송하기 위해 인에이블링 될 수 있다.
도 4는 본 개시의 다수의 실시 예들에 따른 변환 색인 버퍼(491)를 도시하는 테이블(490)을 나타낸다. 다수의 실시 예들에서, TLB(491)는 CAM(Content-Addressable Memory) 장치 또는 n-웨이 연상 메모리 장치 일 수 있다. TLB(491)는 열들 및 행들을 갖는 테이블을 저장할 수 있으며, 열들(466-1, 466-2, 466-3 ,. . ., 466-N)은 별도의 테이블 엔트리에 대응할 수 있다. 이와 같이, 각각의 열들(466-1, 466-2, 466-3 ,. . 644-N)은 가상 어드레스(462) 및 물리적 어드레스(464)를 포함 한다.
열들(466-1, 466-2, 466-3, ..., 466-N)은 TLB(491)에 포함된 모든 가상 메모리 주소들의 리스트를 포함한다. 또한, 물리적 어드레스(464)는 각각의 열(466-1, 466-2, 466-3, ..., 466-N)의 가상 어드레스(462)에 대응하는 각각의 열(466-1, 466-2, 466-3, ..., 466-N)의 물리 어드레스를 포함한다. 메모리 장치가 메모리 장치 상의 물리적 어드레스로 변환될 수 있는 가상 어드레스를 포함하는 명령을 실행할 때, 가상 어드레스들(462)은 테이블(490) 내의 물리적 어드레스들(466)로 매핑 될 수 있다.
특정 실시 예가 본 명세서에 도시되고 설명되었지만, 당업자는 동일한 결과를 얻기 위해 계산 된 배치가 도시 된 특정 실시 예를 대체 할 수 있음을 알 것이다. 본 개시는 본 개시 물의 하나 이상의 실시 예의 적응 또는 변형을 포함하도록 의도된다. 상기 설명은 예시적인 방식으로 이루어졌으며 제한적인 것이 아님을 이해해야 한다. 상기 실시 예의 조합 및 본원에서 구체적으로 기술되지 않은 다른 실시 예는 상기 설명을 검토하면 당업자에게 명백 할 것이다. 본 개시의 하나 이상의 실시 예의 범위는 상기 구조 및 방법이 사용되는 다른 응용을 포함한다. 따라서, 본 개시 물의 하나 이상의 실시 예의 범위는 청구 범위가 부여되는 등가물의 전체 범위와 함께, 첨부 된 청구 범위를 참조하여 결정되어야 한다.
전술 한 상세한 설명에서, 일부 특징들은 본 발명을 능률화 할 목적으로 단일 실시 예에서 함께 그룹화된다. 이 개시 방법은 개시된 본 발명의 실시 예가 각 청구항에 명시 적으로 언급 된 것보다 많은 특징을 이용해야 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 이하의 청구 범위가 반영하는 바와 같이, 발명의 주제는 단일 개시된 실시 예의 모든 특징보다 적다. 따라서, 이하의 청구 범위는 발명의 상세한 설명에 포함되며, 각 청구항은 별개의 실시 예로서 독자적으로 기재된다.

Claims (27)

  1. 방법에 있어서,
    호스트로부터 가상 어드레스를 포함하는 명령을 수신하는 단계; 및
    변환 색인 버퍼(translation lookaside buffer, TLB)를 이용하여 메로리 장치의 휘발성 메모리 상에서 상기 가상 어드레스를 물리적 어드레스로 변환하는 단계를 포함하는 방법.
  2. 청구항 1에 있어서,
    버스를 통해 상기 호스트로부터 상기 메모리 장치로 상기 명령을 수신하는 단계를 포함하는 방법.
  3. 청구항 1에 있어서,
    상기 가상 어드레스를 상기 물리적 어드레스로 변환하는 단계는 하이브리드 메모리 규브(HMC) 상에서 상기 가상 어드레스를 상기 물리적 어드레스로 변환하는 단계를 포함하는 방법.
  4. 청구항 1에 있어서,
    상기 가상 어드레스를 상기 물리적 어드레스로 변환하는 단계는 PIM(processor in memory) 장치 상에서 상기 가상 어드레스를 상기 물리적 어드레스로 변환하는 단계를 포함하는 방법.
  5. 청구항 1에 있어서,
    이동되는 상기 메모리 장치의 데이터에 응답하여 가상 및 물리적 어드레스 간의 관계를 재 맵핑함으로써 상기 TLB를 갱신하는 단계를 포함하는 방법.
  6. 청구항 1에 있어서,
    상기 가상 어드레스를 상기 물리적 어드레스로 변환하는 단계는 메모리 장치 상의 물리 주소와 관련된 비트만을 포함하는 변환을 포함하는 방법.
  7. 청구항 1 내지 6 중 어느 하나에 있어서,
    변환하는 단계는 상기 메모리 장치의 제어기 내에 위치하는 상기 TLB를 이용하는 단계를 포함하는 방법.
  8. 청구항 1 내지 6 중 어느 하나에 있어서,
    변환하는 단계는 상기 메모리 장치의 메모리 어레이에 위치하는 상기 TLB를 이용하는 단계를 포함하는 방법.
  9. 청구항 1 내지 6 중 어느 하나에 있어서,
    변환하는 단계는 상기 메모리 장치의 메모리 어레이에 위치하는 상기 TLB를 이용하는 단계를 포함하는 방법.
  10. 청구항 1 내지 6 중 어느 하나에 있어서,
    변환하는 단계는 상기 메모리 장치 상에서 상기 가상 어드레스를 직접적으로 상기 물리적 어드레스에 매핑하기 위해 상기 TLB를 이용하는 단계를 포함하는 방법.
  11. 청구항 1 내지 6 중 어느 하나에 있어서,
    상기 가상 어드레스를 상기 물리적 어드레스로 변환하기 위해 상기 메모리 장치를 사용하는 단계를 포함하는 방법.
  12. 장치에 있어서,
    메모리 어레이, 상기 메모리 어레이는 휘발성 메모리 셀들을 포함하고;
    상기 메모리 어레이에 결합된 제어기, 상기 제어기는 변환 색인 버퍼를 포함하고, 상기 제어기는 명령을 수신하고 상기 메모리 어레이에서 상기 TLB를 이용하여 상기 명령들로부터의 가상 어드레스를 물리적 어드레스로 변환하기 위해 구성되는 장치.
  13. 청구항 12에 있어서,
    상기 제어기는 버스를 통해 호스트로부터 상기 명령을 수신하기 위해 구성되는 장치.
  14. 청구항 12에 있어서,
    상기 TLB는 상기 메모리 어레이의 다수의 물리적 어드레스들 각각으로 가상 어드레스들의 변환을 제공하기 위해 구성되는 장치.
  15. 청구항 14에 있어서,
    상기 메모리 어레이의 상기 다수의 물리적 어드레스들은 상기 메모리 어레이의 어드레스 가능한 물리적 어드레스 각각을 포함하는 장치.
  16. 방법에 있어서,
    버스를 통해 호스트로부터 메모리 장치로 명령을 수신하는 단계, 상기 명령은 가상 어드레스를 포함하고;
    변환 색인 버퍼(TLB)를 이용하여 상기 가상 어드레스를 물리적 어드레스로 변환하는 단계, 상기 TLB는 상기 메모리 장치 상에 위치하고; 및
    명령과 관련된 데이터를 상기 변환된 물리적 어드레스에 위치시킴으로써 명령을 수행하는 단계를 포함하는 방법.
  17. 청구항 16에 있어서,
    상기 가상 어드레스를 물리적 어드레스로 변환하기 위해 하이브리드 메모리 큐브(HMC)의 논리 베이스를 이용하는 단계를 포함하는 방법.
  18. 청구항 17에 있어서,
    상기 가상 어드레스를 물리적 어드레스로 변환하기 위해 상기 HMC의 상기 논리 베이스 상의 상기 TLB를 이용하는 단계를 포함하는 방법.
  19. 청구항 16 내지 17 중 어느 하나에 있어서,
    상기 호스트 상에 프로세서가 있는 가상 어드레스를 포함하는 명령을 생성하는 단계를 포함하는 방법.
  20. 청구항 16 내지 17 중 어느 하나에 있어서,
    상기 가상 어드레스를 상기 물리적 어드레스로 변환하는 단계는 상기 버스의 상기 메모리 장치 측 상에서 발생하는 방법.
  21. 장치에 있어서,
    다수의 메모리 장치들; 및
    논리 베이스, 사이 논리 베이스는 상기 다수의 메모리 장치들과 연결되며 변환 색인 버퍼를 포함하고, 상기 논리 베이스는 명령을 수신하고 상기 TLB를 이용하여 상기 다수의 메모리 장치 내에서 상기 명령으로부터의 가상 어드레스를 물리적 어드레스로 변환하기 위해 하기 위해 구성되는 장치.
  22. 청구항 21에 있어서,
    상기 논리 베이스는 상기 명령으로부터의 상기 가상 어드레스를 상기 물리적 어드레스로 변환하기 위해 사용되는 다수의 볼트(vault) 제어기를 포함하는 장치.
  23. 청구항 21 내지 22 중 어느 하나에 있어서,
    상기 논리 베이스는 프로세서를 포함하는 호스트와 연결되고, 상기 논리 베이스는 호스트로부터 상기 명령을 수신하기 위해 구성되는 장치.
  24. 청구항 21 내지 22 중 어느 하나에 있어서,
    상기 TLB는 가상 어드레스들을 다수의 메모리 장치들 내의 다수의 물리적 어드레스들 각각에 매핑하기 위해 구성되는 장치.
  25. 장치에 있어서,
    호스트; 및
    버스를 통해 상기 호스트에 결합된 다수의 메모리 장치들을 포함하고, 상기 다수의 메모리 장치들 각각은 변환 색인 버퍼를 포함하는 제어기 및 메모리 셀들의 다수의 메모리 어레이들을 포함하고, 상기 다수의 메모리 장치들 각각은 호스트로부터 가상 어드레스를 포함하는 명령을 수신하고 다수의 휘발성 메모리 장치들 상에서 상기 가상 어드레스를 물리적 어드레스로 변환하기 위해 구성되는 장치.
  26. 청구항 25에 있어서, 상기 호스트는 상기 다수의 메모리 장치로 송신되는 가상 어드레스들을 포함하는 다수의 명령들을 생성하도록 구성되는 장치.
  27. 청구항 26에 있어서,
    상기 다수의 메모리 장치들은 그들의 각각의 메모리 장치들 상의 물리적 어드레스들을 식별하기 위해 다수의 비트들을 변환하지 않기 위해 그들의 각각의 TLB들을 사용하도록 구성되는 장치.
KR1020177034841A 2015-05-21 2016-05-17 메모리 내의 변환 색인 버퍼 KR102054335B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/718,649 US10007435B2 (en) 2015-05-21 2015-05-21 Translation lookaside buffer in memory
US14/718,649 2015-05-21
PCT/US2016/032883 WO2016187205A1 (en) 2015-05-21 2016-05-17 Translation lookaside buffer in memory

Publications (2)

Publication Number Publication Date
KR20170140813A true KR20170140813A (ko) 2017-12-21
KR102054335B1 KR102054335B1 (ko) 2019-12-10

Family

ID=57320601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177034841A KR102054335B1 (ko) 2015-05-21 2016-05-17 메모리 내의 변환 색인 버퍼

Country Status (6)

Country Link
US (3) US10007435B2 (ko)
EP (1) EP3298497B1 (ko)
KR (1) KR102054335B1 (ko)
CN (1) CN107667354B (ko)
TW (1) TWI633436B (ko)
WO (1) WO2016187205A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9524248B2 (en) * 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US10007435B2 (en) * 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
US9997232B2 (en) * 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
KR20180050849A (ko) * 2016-11-07 2018-05-16 삼성전자주식회사 전자 장치 및 메모리 액세스 방법
TWI643067B (zh) * 2017-04-14 2018-12-01 國立臺灣科技大學 三維非及閘快閃記憶體及其記憶體管理方法
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
US10416927B2 (en) * 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10809942B2 (en) * 2018-03-21 2020-10-20 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US11321257B2 (en) 2019-12-31 2022-05-03 Micron Technology, Inc. Quality of service control of logical devices for a memory sub-system
US11321238B2 (en) * 2020-08-11 2022-05-03 Micron Technology, Inc. User process identifier based address translation
US20220382478A1 (en) * 2021-06-01 2022-12-01 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for page migration in memory systems
US20230297499A1 (en) * 2022-01-21 2023-09-21 Nvidia Corporation Locating a memory unit associated with a memory address utilizing a mapper

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150036165A (ko) * 2012-07-18 2015-04-07 마이크론 테크놀로지, 인크. 계층적 메모리 시스템을 위한 메모리 관리

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345352B1 (en) 1998-09-30 2002-02-05 Apple Computer, Inc. Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions
US6412057B1 (en) * 1999-02-08 2002-06-25 Kabushiki Kaisha Toshiba Microprocessor with virtual-to-physical address translation using flags
US6681311B2 (en) 2001-07-18 2004-01-20 Ip-First, Llc Translation lookaside buffer that caches memory type information
US20040054867A1 (en) 2002-09-13 2004-03-18 Paulus Stravers Translation lookaside buffer
US20040225840A1 (en) 2003-05-09 2004-11-11 O'connor Dennis M. Apparatus and method to provide multithreaded computer processing
JP4520790B2 (ja) * 2004-07-30 2010-08-11 富士通株式会社 情報処理装置およびソフトウェアプリフェッチ制御方法
US7454590B2 (en) * 2005-09-09 2008-11-18 Sun Microsystems, Inc. Multithreaded processor having a source processor core to subsequently delay continued processing of demap operation until responses are received from each of remaining processor cores
DE112005003736T5 (de) 2005-12-29 2008-11-13 Intel Corporation, Santa Clara Virtueller Übersetzungspuffer
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US8601234B2 (en) 2007-11-07 2013-12-03 Qualcomm Incorporated Configurable translation lookaside buffer
US8151076B2 (en) 2008-04-04 2012-04-03 Cisco Technology, Inc. Mapping memory segments in a translation lookaside buffer
US8051271B2 (en) 2008-07-01 2011-11-01 Arm Limited Translation of virtual to physical addresses
US8069300B2 (en) 2008-09-30 2011-11-29 Micron Technology, Inc. Solid state storage device controller with expansion mode
US8108650B2 (en) 2009-05-29 2012-01-31 Apple Inc. Translation lookaside buffer (TLB) with reserved areas for specific sources
US8429135B1 (en) 2009-06-11 2013-04-23 Cisco Technology, Inc. Processor fault tolerance through translation lookaside buffer refresh
WO2011007599A1 (ja) 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
US8386749B2 (en) 2010-03-16 2013-02-26 Advanced Micro Devices, Inc. Address mapping in virtualized processing system
US8694737B2 (en) * 2010-06-09 2014-04-08 Micron Technology, Inc. Persistent memory for processor main memory
WO2012061633A2 (en) * 2010-11-03 2012-05-10 Netlist, Inc. Method and apparatus for optimizing driver load in a memory package
KR101707927B1 (ko) 2010-11-25 2017-02-28 삼성전자주식회사 메모리 시스템 및 그 운용방법
WO2012156850A1 (en) 2011-05-19 2012-11-22 International Business Machines Corporation Managing the translation look-aside buffer (tlb) of an emulated machine
WO2013028849A1 (en) 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
US8880819B2 (en) 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
US9081706B2 (en) * 2012-05-10 2015-07-14 Oracle International Corporation Using a shared last-level TLB to reduce address-translation latency
US9047090B2 (en) 2012-08-07 2015-06-02 Qualcomm Incorporated Methods, systems and devices for hybrid memory management
US9158705B2 (en) 2013-03-13 2015-10-13 Intel Corporation Stride-based translation lookaside buffer (TLB) prefetching with adaptive offset
US9342443B2 (en) 2013-03-15 2016-05-17 Micron Technology, Inc. Systems and methods for memory system management based on thermal information of a memory system
US11074169B2 (en) * 2013-07-03 2021-07-27 Micron Technology, Inc. Programmed memory controlled data movement and timing within a main memory device
US9639476B2 (en) * 2013-09-26 2017-05-02 Cavium, Inc. Merged TLB structure for multiple sequential address translations
US9208103B2 (en) * 2013-09-26 2015-12-08 Cavium, Inc. Translation bypass in multi-stage address translation
CN103744640B (zh) * 2014-01-15 2017-03-08 龙芯中科技术有限公司 位查找电路、cam、tlb、存储器及微处理器
US10007435B2 (en) * 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
US9626300B2 (en) * 2015-07-27 2017-04-18 Google Inc. Address caching in switches
US20180203807A1 (en) * 2017-01-13 2018-07-19 Arm Limited Partitioning tlb or cache allocation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150036165A (ko) * 2012-07-18 2015-04-07 마이크론 테크놀로지, 인크. 계층적 메모리 시스템을 위한 메모리 관리

Also Published As

Publication number Publication date
EP3298497B1 (en) 2020-07-08
EP3298497A4 (en) 2019-01-02
KR102054335B1 (ko) 2019-12-10
US20180292997A1 (en) 2018-10-11
CN107667354A (zh) 2018-02-06
US20210096748A1 (en) 2021-04-01
US20160342339A1 (en) 2016-11-24
WO2016187205A1 (en) 2016-11-24
TW201706855A (zh) 2017-02-16
US10884626B2 (en) 2021-01-05
CN107667354B (zh) 2021-10-22
US10007435B2 (en) 2018-06-26
TWI633436B (zh) 2018-08-21
US11494078B2 (en) 2022-11-08
EP3298497A1 (en) 2018-03-28

Similar Documents

Publication Publication Date Title
US11494078B2 (en) Translation lookaside buffer in memory
US11915741B2 (en) Apparatuses and methods for logic/memory devices
US12050536B2 (en) Apparatuses and methods for compute enabled cache
US10942652B2 (en) Apparatuses and methods for parallel writing to multiple memory device structures
US10199088B2 (en) Apparatuses and methods for cache invalidate
CN111052099B (zh) 存储器内处理
US11663137B2 (en) Memory array page table walk
CN109427384B (zh) 存储器内处理
US20220197829A1 (en) High capacity hidden memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant