KR101747966B1 - 자율 서브시스템 아키텍처 - Google Patents

자율 서브시스템 아키텍처 Download PDF

Info

Publication number
KR101747966B1
KR101747966B1 KR1020100068824A KR20100068824A KR101747966B1 KR 101747966 B1 KR101747966 B1 KR 101747966B1 KR 1020100068824 A KR1020100068824 A KR 1020100068824A KR 20100068824 A KR20100068824 A KR 20100068824A KR 101747966 B1 KR101747966 B1 KR 101747966B1
Authority
KR
South Korea
Prior art keywords
memory
autonomous
die
memory device
memory devices
Prior art date
Application number
KR1020100068824A
Other languages
English (en)
Other versions
KR20110028212A (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 KR20110028212A publication Critical patent/KR20110028212A/ko
Application granted granted Critical
Publication of KR101747966B1 publication Critical patent/KR101747966B1/ko

Links

Images

Classifications

    • 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/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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
    • 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/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • 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/061Improving I/O performance
    • 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/0653Monitoring storage devices or systems
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0673Single storage device
    • 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/0688Non-volatile semiconductor memory arrays
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/622State-only directory, i.e. not recording identity of sharing or owning nodes

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)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

자율 서브-시스템은 호스트 컨트롤러로부터 다운로드된 데이터베이스를 수신한다. 컨트롤러는 버스 트래픽 및/또는 서브시스템 내의 할당된 리소스들을 감시하고 시스템 수행을 동적으로 개선시키기 위해 감시된 결과들에 기초하여 리소스들을 재할당한다.

Description

자율 서브시스템 아키텍처{AUTONOMOUS SUBSYSTEM ARCHITECTURE}
병렬의, 분산 시스템들을 위한 문제는 어떻게 메모리 리소스(resources)들을 관리하고 할당하는지에 관한 것이다. 메모리는 전형적으로 적합한 프로토콜들이 코히어런시(coherency)와 일관성(consistency)을 가능케 하기 위해 적용되는 공유(shared) 버스를 이용하는 호스트 프로세서에 첨부된다. 이러한 전략에 있어서, 프로세서 코어(core) 상의 메모리 컨트롤러 하드웨어는 공통 버스 상의 트래픽(traffic)을 관측할 수 있고, 따라서 다른 프로세서들에 의해 수행되는 동작들을 반사하는 캐쉬(cache) 라인들을 업데이트하거나 무효화할 수 있다. 다수-노드(many-node) 멀티프로세서 시스템은 또한 프로세서 노드들이 그들이 작업 중인 캐쉬 라인들 또는 페이지들과 관련된 메모리 트래픽을 보는 것을 허용하기 위해 "디렉토리-기반(directory-based)" 코히어런스 기술들을 이용할 수 있다. 이러한 전략들은 점점 수행을 방해하고 분산 시스템들 내의 개선들을 필요로 한다.
도 1은 프로세서가 본 발명에 따른 분산 서브-시스템(sub-system) 내에 구성된 다중 자율 메모리 장치들과 통신하도록 허용하는 아키텍처를 도시한 도면,
도 2는 분산 서브-시스템을 가능케 하는 자율 메모리 장치의 단순화된 블록도,
도 3은 본 발명에 따른 자율 메모리 장치의 일 실시예를 도시한 도면이다.
다음의 상세한 설명에 있어서, 여러 구체적인 설명들은 본 발명의 완전한 이해를 제공하기 위해 설명된다. 그러나, 본 발명이 이러한 구체적 설명 없이도 실행될 수 있다는 것은 본 분야의 통상의 기술을 가진 자에 의해 이해될 것이다. 다시 말해, 잘 알려진 방법들, 절차들, 구성요소들 및 회로들은 본 발명을 불명료하게 하지 않도록 상세하게 설명되지 않았다.
그들의 파생물들과 함께 "결합된(coupled)" 및 "연결된(connected)" 이란 단어들이 사용될 수 있다. 이러한 단어들은 서로 동의어들로서 의도되지 않았다고 이해되야 한다. 오히려, 특정 실시예들에 있어서, "연결된"이란 단어는 둘 이상의 구성요소들이 서로 직접적인 물리적 또는 전기적 접촉이 되어 있다는 것을 지시하는 데 사용될 수 있다. "결합된"이란 단어는 둘 이상의 구성요소들이 서로 직접 또는 간접적으로(그들 사이의 다른 개입된 구성요소들 간의) 물리적 또는 전기적 접촉이 되어 있다는 것을 지시하는 데 사용될 수 있고, 그리고/또는 둘 이상의 구성요소들이 협력하거나 상호작용하는 것을 지시하는데 사용될 수 있다(예컨대, 원인과 효과 관계로서).
도 1에 도시된 실시예는 다중 자율 메모리 장치들(102)과 프로세서가 본 발명에 따른 분산 서브-시스템(10) 내의 통신을 위해 구성될 수 있게 하는 아키텍처(architecture)를 도시한다. 엄청난 수의 장치들 사이에 통신을 원활히 하기 위해, 분산 서브-시스템(10) 내의 자율 메모리 장치들(102) 각각은 그들 고유의 어드레스(address)를 할당받는다. 이는 각각의 자율 메모리 장치(102)에 서브-시스템 내에서 다른 장치들에 메세지를 전송하는 능력을 부여한다. 도면이 3 X 3 어레이(array) 내의 자율 메모리 장치들을 도시함에도 불구하고, 분산 서브-시스템(10)은 네트워크 내에서 더 엄청난 수의 장치들을 구비하여 구성될 수 있다.
일 실시예에 있어서, 어드레싱(addressing) 구조(scheme)는, 각각의 자율 메모리 장치(102)가 예컨대, 메모리 장치가 루트(root) 장치의 포트에 전기적으로 연결되고 장치의 특정 포트 상에 위치하는 것으로 구체화될 수 있듯이, 자율 메모리 장치로의 루트에 의해 결정되는 것처럼 고유의 정적 어드레스를 할당받는 경우, 절대적일 수 있다. 다른 실시예에 있어서, 자율 메모리 장치의 어드레스는 시스템 내에서 동작하는 동안 동적으로 결정될 수 있다. 주소가 동적으로 결정되도록 허용함으로써, 어드레싱 구조는 시스템 동작 동안 최적화의 목적을 위해 변형될 수 있다.
시스템 시작에 있어서, 네트워크는 이러한 장치간 통신이 발생하도록 허용하기 위해 라우팅 정보를 전송함으로써 초기화할 수 있다. 선택적으로, 시스템은 자율 메모리 장치들(102)이 네이버들(neighbors)을 결정하기 위해 스캔(scan) 기술을 사용하여 라우팅 테이블을 생성함으로써 자기조직화할 수 있다(self-organize). 라우팅 테이블은 분산 서브-시스템(10) 내의 장치들의 트랙을 보존하고 예컨대, 다른 장치에 말을 거는 어떤 하나의 장치의 위치에 기초한 레이턴시(latency) 비용과 같은 파라미터들(parameters)을 저장할 수 있다.
분산 자율 메모리 장치들(102)을 연결하는 버스 상에서 주고 받는 메세지는 모델(modeled)이 될 수 있거나 또는 그것이 표준 네트워크가 될 수 있다. 이러한 하나의 표준 네트워크는 하나의 장치로부터 다른 장치로 데이터의 정확한 전송을 검증할 책임이 있는 TCP/IP(Transmission Control Protocol/Internet Protocol)일 수 있다. TCP/IP는 또한 데이터가 정확하고 완전히 수신되도록 검증될 때까지 재전송을 요구하는 분실한 데이터 또는 에러들을 검출하는데 지원하는 것을 제공한다. 분산 서브-시스템(10)이 일할 수 있는 다른 타입의 네트워크는 낮은 레이턴시 통신, 높은 대역폭 클러스터링(clustering), 및 저장 트래픽을 허용하기 위해 패브릭(fabric)을 생성하는 인피니밴드(infiniBand) 아키텍처이다. 또한, 자율 메모리 장치들(102) 사이의 통신은 프레임 기반 네트워크 내의 이더넷(Ethernet)을 사용할 수 있다.
도면은 다른 메모리 타입들이 자율 메모리 장치(102)에 부착될 수 있음을 도시한다. 예컨대, 이 자율 메모리 장치(102)의 각각의 노드는 NAND, DRAM 또는 '오프라인(offline)' 스토리지(storage) 또는 스크랫치패드(scratchpad) 공간을 위해 부착된 다른 휘발성/비휘발성 조합들을 가질 수 있다. 또한, 도면에 도시된 것은 무선 신호들을 전송하기 위해 안테나와 결합된 메모리 장치(102)를 도시한 무선 아키텍처의 실시예이다. 안테나들은 메모리 장치와 연관된 라디오가 메모리 어레이들을 프로그램밍하고, 무선 통신 신호들을 이용하여 통신함으로써 데이터베이스 및 알고리즘을 다운로드하도록 허용하는 다이폴 안테나들, 정전용량 판들(capacitive plates), 근접장(near-field) 루프(loop) 안테나들일 수 있다. 구성 라우팅 테이블은 분산 서브-시스템(10) 내의 장치들 사이의 통신을 원활히 하기 위해 메모리 장치들을 트랙킹한다(tracks).
도면은 메모리 서브시스템 내의 자율 메모리 장치들(102)로서 도시된 다이스(dice) 및 제어 블록 사이의 무선 연결을 도시한다. 이 실시예에 있어서, 제어 블록은 여러 블록들에 일어나는 트래픽의 폭주에 대응하고 감시한다. 버스 트래픽은 시스템 수행을 구속할 수 있는 리소스의 하나의 양상이다. 수행 구속력을 감소시키기 위해, 감시 블록은 검색(searches)을 병렬적으로 하거나 또는 컴퓨팅 리소스를 전부 이용하는 다른 다이(die)로 데이터베이스의 부분들을 이동시킬 수 있다. 이러한 것처럼, 감시 블록은 메모리 장치(102) 사이의 데이터의 재배치에 의해 최적화될 수 있는 리소스의 단 하나의 예인 버스 트래픽과 함께, 시스템 수행을 최적화하기 위해 구속된 리소스들을 감시한다.
이 실시예에 있어서, 다이-다이(die-to-die) 무선 통신은 동일한 스택(stack)내에 있는 다른 다이스와 단지 통신하도록 물리적으로 위치하는 안테나를 사용할 수 있다. 다이간 무선 통신을 달성하기 위해, 각각의 자율 메모리 장치(102)는 신호를 전송하는 출력 포트들 상의 안테나들과 신호를 수신하는 입력 포트들 상의 안테나를 가질 것이다. 무선 통신은 본드 와이어들(bond wires)을 위한 필요를 최소화할 것이다.
도 2는 메모리 내에 저장된 내용들의 계산과 조작을 제공하는 컴퓨팅 노드 및 가속 하드웨어를 포함하는 자율 메모리 장치(102)의 단순화된 블록도를 도시한다. 분산 서브-시스템(10)은 다이간 통신 포트(204, 206, 208, 및 210)를 사용하는 네이버링(neighboring) 다이와 통신을 취급하는 각각의 장치를 구비한 다중 자율 메모리 장치(102)를 포함한다. 이러한 다이간 통신 경로는 분산 서브-시스템(10) 내의 대략 수천 개의 다이와 같은 엄청난 수의 다이들 사이에 자율 통신을 허락한다.
자율 메모리 장치(102)는 동작 시스템 및 프로세싱 용량 둘 모두를 포함하고, 그것의 컨텐츠(contents)의 의미를 지각한다. 달리 말하자면, 장치(102)는 어디에 소정 데이터베이스 테이블들이 위치되어 있는지, 이러한 테이블들의 각각에 대한 필드 정의들, 및 어떻게 그들이 서로 링크되어 있는지에 대한 자세한 내용을 지각하고 있다. 이러한 정보를 이용하여, 자율 메모리 장치(102)는 호스트 프로세서로 되돌아갈 수 있는 결과를 얻기 위해 저장된 데이터베이스 내의 데이터를 독립적으로 프로세싱한다.
도 3은 본 발명에 따른 자율 메모리 장치(102)에 대한 기능적 블록들의 일 실시예를 도시한다. 자율 메모리 장치는 사용 모델들이 스마트(smart) 메모리 내에서 메모리 인텐시브(intensive) 동작들과 계산들을 포함할 수 있도록 제어 기능들 및 프로세싱 가속(304)을 제공하는 스마트 메모리 프로세싱 엔진(302)을 포함한다. 범용 제어 엔진(306)은 다른 기능들 사이에서, 다른 메모리 장치들을 제어하기 위해 다운로드된 최종-사용자(end-user) 소프트웨어 또는 펌웨어(firmware)를 수신하는 마이크로컨트롤러이다. 제어 엔진(306)은 자율 메모리의 풀(pool) 내의 명령들을 초기화할 수 있고 호스트 인터페이스(320)를 통해 호스트 컨트롤러로 전송될 수 있는 풀로부터의 정보를 추출할 수 있다. 프로토콜들과 알고리즘들은 장치들 사이의 중재(arbitration)를 허용하고, 풀의 레벨을 최적화하기 위해 실행되는 알고리즘들, 및 장치들 사이에 통과되는 정보를 라우팅한다.
하드웨어 가속기(308: hardware accelerator)는 스마트 메모리 프로세싱 엔진(304)에, 메모리(318) 내에 저장된 컨텐츠의 계산 및 조작을 위한 가속 하드웨어를 제공한다. 하드웨어 가속기(308)는 메모리 복사 및 이동, 마스크 비트들(mask bits)의 단순 비교, 매트릭스 동작들 등을 취급할 수 있다. 코드 스토리지 블록(310)은 범용 제어 엔진(306)에 의해 사용을 위한 호스트 인터페이스(320)를 통해 호스트 프로세서로부터 다운로드된 코드를 저장한다. API(Application Programming Interface) 관리 블록(312)은 어플리케이션들의 제작을 지원하기 위해 동작 시스템 서비스 또는 라이브러리들(libraries)에 의해 제공되는 저장된 루틴들(routines) 및 프로토콜들을 실행한다. 소프트웨어 API's는 플렉시블(flexible)하고 최적의 수행을 달성하기 위해 하부 하드웨어의 지식을 사용한다. 구성 라우팅 테이블(314)은 분산 서브-시스템(10) 내의 다른 메모리 장치들의 트랙을 보유한다. 분산 서브-시스템(10)의 구성은 동적으로 결정될 수 있고 자율 메모리 장치(102)가 시스템 내에서 동작하는 동안 업데이트된 라우트 테이블일 수 있다.
플랫(flat) 메모리 공간 내에 데이터 구조를 저장하는 것은 공통적이다. 무수한 가능한 데이터 구조가 존재하는 동안, 예컨대, 매트릭스들과 링크된 리스트들과 같은 아주 적은 공통 구조들이 자율 메모리가 메모리 기능성을 제고시키는데 사용될 수 있는 방법을 도시하는데 사용될 수 있다. 매트릭스는 예컨대, 구조 공학, 전산 유체 역학, 모델 감소, 반도체 장치들, 열역학, 재료학, 음향학, 컴퓨터 그래픽/비전, 로봇학/운동학과 같은 하부 2D 또는 3D 구조들의 다양한 문제들로부터 발생하는 문제를 포함하는 넓은 스펙트럼의 도메인들을 커버한다. 매트릭스는 또한 최적화, 회로 시뮬레이션, 경제적인 및 재정적인 모델링, 이론적인 및 양자 화학, 화학적 프로세스 시뮬레이션, 수학 및 통계학, 전력 네트워크, 및 다른 네트워크와 그래프와 같은 구조를 전형적으로 갖지 않는 어플리케이션들을 커버할 수 있다.
매트릭스 내에 저장된 프로세싱 정보에 있어서, 매트릭스의 전부 또는 일부는 메모리(318)로부터 판독되고 계산은 매트릭스의 컨텐츠 상에서 하드웨어 가속기(308)에 의해 수행된다. 종래 시스템에 있어서, 매트릭스의 큰 부분은 주 메모리(main memory)로부터 검색되고 프로세서 캐쉬 내의 스토리지에 페이징된다(paged). 이러한 매트릭스는 반복적인 계산을 포함하고 전체 매트릭스들을 포함할 수 있으며, 따라서 종래 시스템은 프로세서 캐쉬에 프로세싱을 위해 요구되는 전체 컨텐츠를 저장할 수 없다.
그러나, 자율 메모리 장치(102)는 매트릭스 알고리즘들을 실행하는 데 효율성을 크게 개선한다. 자율 메모리 장치(102)는 플랫 메모리 맵(flat memory map)을 사용하는 매트릭스들을 저장할 수 있고 이러한 매트릭스들 상에서 동작을 크게 가속화하기 위해 임베디드(embedded) 하드웨어 가속기(308)와 메모리(318)의 폐쇄 커플링(close coupling)을 이용할 수 있다. 매트릭스 계산들은 높은 수행 메트릭스 동작들을 촉진하기 위해 분산 서브-시스템(10) 내에 매트릭스를 적절하게 조직함으로써 좀 더 향상될 수 있다. 예컨대, 동작 내의 공통 분할된 피연산자들(operands)은 동일한 자율 메모리 장치(102) 내에서 유리하게 존재하기 위해 계획될 수 있고, 그에 따라 이러한 동작들의 완성은 다른 장치들과 통신을 필요로 하지 않는다.
정보의 정돈된 세트들의 조작 및 저장을 가능케 하기 위해 플랫 메모리 맵 내에 링크된 리스트들을 생성하는 것은 통상적이다. 링크된 리스트를 횡단하는 동안, 각각의 기록이 패턴을 매칭하는지 결정하기 위해 또는 단순히 차후의 기록을 향하는 포인터를 얻기 위해 검사되는 것은 일반적으로 요구된다. 분산 서브-시스템(10)을 이용하여, 최소한의 호스트 버스 트래픽을 갖는 링크된 리스트를 분석하는 것은 가능하다. 그러므로, 각각의 자율 메모리 장치(102)는 구체적인 패턴들을 찾는 각각의 기록들을 검사할 수 있고, 반복하기 전에 다음 기록을 향하는 포인터를 찾아낼 수 있다. 결과들이 찾아지면, 자율 메모리 장치(102)는 호스트로 해당 결과들을 되돌리기 위해 호스트 인터페이스(320)를 이용한다.
데이터베이스는 보통 링크간 테이블들의 그룹들 내에서 조직되는 큰 데이터 세트들로 구성된다. 인덱스 파일들은 이러한 테이블들 내에서 정보에 대한 검색을 가속화하기 위해 생성되고 유지되며, 이용된다. 종래 시스템들에 있어서, 소정 데이터베이스들은 데이터베이스들 상에서 동작하는 프로세서에 이용가능한 근접 메모리보다 더 크고 메모리 액세스들(accesses)의 중요한 부분은 게이트 시스템 수행으로 불리는 긴 레이턴시 입출력(IO)을 가질 수 있다.
종래 시스템들과 대비하여 보면, 분산 서브-시스템(10)은 서로서로 및 호스트 프로세서와 통신하도록 구성된 매우 엄청난 수의 자율 메모리 장치들(102)을 가질 수 있다. 분산 서브-시스템(10) 내에서 발견된 메모리 밀도는 메모리의 비용에 의해 우선적으로 제한될 수 있다. 더욱이, 메모리(318)와 동일한 다이 상에 임베디드된 제어 엔진(306)이 있으면, 대부분의 동작들은 메모리 다이 내부의 버스 트래픽과 메모리 다이 외부의 제한된 트래픽을 포함할 것이다. 큰 밀도의 메모리(318)와 범용 제어 엔진(306)의 폐쇄 커플링이 주어진다면, 외부 메모리를 액세스하는 프로세서에 의해 야기된 대역폭 병목(bandwidth bottleneck)은 제거될 수 있다. 하드웨어 가속기(308) 내의 단순한 하드웨어 가속 기술들이 분산 서브-시스템(10)의 수행을 극적으로 증가시키는데 사용될 수 있다.
메모리 컨텐츠를 조작하는 구체적인 목적을 위해 디자인된 분산 서브-시스템(10)이 있으면, 유용한 하드웨어 프리미티브들(primitives)의 한정된 세트는 실행될 수 있다. 분산 서브-시스템(10) 내에서 데이터베이스를 실행하기 위해, 데이터베이스는 데이터 베이스가 어떻게 조직되는지에 대한 정보에 따라 메모리 서브시스템으로, 전부 또는 일부가 전송된다. 데이터베이스 내의 정보를 프로세싱하기 위한 알고리즘들 또한 다운로드된다. 초기화 프로세스 완성되면, 호스트는 분산 서브-시스템(10)으로 매우 높은 레벨의 명령어들을 발생시킨다. 더 높은 레벨 기능을 수행하기 위해 구체적인 어드레스들을 판독하고 기록하기보다, 호스트 프로세서는 "패턴을 매칭하는 모든 기록들을 찾기 위해 테이블 A를 분석하라, 이러한 기록들 각각을 위해 테이블 B로 포인터들을 추출하라, 테이블 A로부터 필드들 a,b,c를 되돌리고 테이블 B로부터 d,e를 되돌려라" 와 같은 명령어를 발행할 수 있다. 모든 동작들은 분산 서브-시스템(10) 내에서 실행되고 결과들의 짧은 리스트가 호스트 프로세서로 되돌려진다.
자율 메모리는 리니어 검색이 거대한 데이터베이스 상에서 수행되는 경우에 큰 이점을 갖는다. 예컨대, 각각 64B의 2M 페이지의 8 뱅크들을 포함하는 1GB 메모리 밀도를 갖는 하나의 자율 메모리 장치를 위한 파이프라이닝(pipelining)을 사용하기 때문에, 페이지는 약 20mS의 1GB 다이에 대한 가능한 검색 시간을 야기하는 페이지당 약 10nsec의 비트 속도(beat rate)에서 타겟 패턴(target pattern)과 비교될 수 있다. 이것이 자신에 의한 인상적인 결과인 반면, 그 값은 이러한 해결책에서 스케일러블(scalable)하고, 따라서, 각각 1GB 메모리 밀도를 갖는 두 개의 자율 메모리 장치들(102)을 위한 검색 시간은 어떠한 크기의 메모리 풀(pool)을 위한 또는 페타-바이트(peta-byte)의 메모리를 위한 검색 시간과 같이 약 20mS일 것이다. 분산 서브-시스템(10) 내에서 자율 메모리 장치들(102)을 사용하면, 리니어 검색을 수행하는 것은 열적 관리 및 전력 제한과 함께 메모리 장치(102) 어레이의 비용에 의해 제한될 것이다.
시스템 관리 기능들은 또한 분산 서브-시스템(10) 내의 자율 메모리 장치들(102)에 유용할 수 있다. 예컨대, 데이터 센터는 분산 서브-시스템(10) 상에서 바이러스 스캔(virus scan)을 수행할 수 있고 바이러스가 검출될 때, 데이터 센터는 검색 및 파괴 알고리즘이 타겟 바이러스의 어떠한 발생을 제거하고 고립시키기 위해 모든 바이트 상에서 실행되는 시간 중에 20mS 동안 '다운(downed)'될 것이다.
분산 서브-시스템(10) 내의 자율 메모리 장치들(102)은 "흩뿌리기/모으기(Scatter/Gather)" 동작들을 실행할 때 종래 시스템들보다 나은 이점을 제공한다. "흩뿌리기/모으기" 동작들은 메모리 또는 입출력(IO) 서브시스템에 의해 실행되는 하나의 혼합 명령으로 번역되는 서로 다른 어드레스들에서 기록들(writes)의 시퀀스를 제공한다. 이러한 동작들은 그들이 자율적으로 실행되는 포인트에서 분산 서브-시스템(10) 내의 다중 다이로 전송되고 분석된다. 결과 상태는 전체 동작이 완료된 때 호스트로 누적되고 보고된다. 분산 서브-시스템(10) 내의 자율 메모리 장치들(102)은 이미지 프로세싱과 같은 어플리케이션들의 소정 클래스들(classes)에 이상적이다. 이러한 클래스들은 이미지가 상대적으로 독립적으로 프로세싱되는 다수의 더 작은 세그먼트들로 분할될 수 있는 병렬 컴퓨팅(parallel computing)에 매우 적합하다. 이러한 작은 세그먼트들 상의 계산들이 완료된 후에, 더 많은 계산들이 이미지가 전체 이미지를 에워싸는 레벨에서 프로세싱될 때까지 더 큰 세그먼트를 형성하기 위해 이러한 세그먼트들의 그룹들 상에서 수행될 수 있다.
자율 메모리 장치들(102)을 사용하면, 많은 또는 모든 이러한 낮은 레벨 계산들이 자율 메모리 뱅크(bank)의 레벨에서 병렬로 행해진다. 뱅크 경계선들을 가로지르는 계산들은 하나의 장치 내에서 행해질 수 있고, 다이간 통신을 이용함으로써, 더 높은 레벨 계산들은 서브시스템 레벨에서 행해질 수 있다. 다른 병렬 컴퓨팅 작업들이 유사한 모델 다음에 수행되고, 결과의 정확성을 높이기 위해 또는 시간을 통해 시뮬레이션 단계를 밟기 위해 반복을 포함할 수 있다.
분산 서브-시스템(10)은 메모리 저장 장치들에 의해 행해질 수 있는, 기대되는 판독 및 기록 동작들 간의 상호작용을 제공한다. 자율 메모리 장치(102)는 호스트 컴퓨터 및 네트워크 둘 모두와 통신을 허용하는, 하나 이상의 인터페이스들을 사용하는 현존 컴퓨팅 인프라와 상호작용한다. 호스트 컴퓨터의 상관관계로부터, 상호작용이 블록 인터페이스 또는 메모리일 수 있지만 자율 메모리 장치(102)로는, 플렉시블 인터페이스가 상부에 소프트웨어 APIs가 생성될 수 있도록 제공된다. 이러한 APIs는 다른 자율 메모리 장치들 사이의 요구 상에서 통과하는 방법을 제공하거나 또는 호스트 시스템으로 기능성을 노출하는 것 둘 중 하나로 기준화될 수 있다.
분산 서브-시스템(10) 내에 다른 장치들로의 자율 메모리 장치(102) 인터페이스는 명령어 및 파라미터들의 리스트를 포함할 수 있는 통과 메시지의 길을 제공한다. 파라미터들은 실제 데이터, 어레이 내에 데이터와 관련된 어드레싱 정보, 및 어레이 내에 위치한 객체와 관련된 객체 식별자들을 포함할 수 있다. 파라미터들은 주어진 데이터 세트 상에서 동작하도록 요구되는 코드로의 객체 식별(Object ID) 또는 주소에 의해 참조 또는 포함할 수 있다. 자율 메모리 장치(102)로 통과되는 코드들은 OpenCL 표준, 가능하게는 MapReduce에 의해 설립된 패러다임에 적합할 수 있다. 많은 현존하는 클러스터링 및 "클라우드 컴퓨팅(cloud-computing)" 인프라 부분들은 분산 서브-시스템(10) 내에서 재활용될 수 있다.
분산 서브-시스템(10) 내의 메모리 컨트롤러 또는 자율 메모리 장치(102)는 메모리 장치들 사이의 데이터 전송으로 인해 버스 활동들을 결정하도록 조건 감ㅅ시(moitoring)를 수행할 수 있다. 감시된 결과들을 토대로, 리소스의 재할당은 시스템 수행을 개선하기 위해 동적으로 실행될 수 있다. 예컨대, 분산 서브-시스템(10)의 트래픽을 감시한 후에, 고 대역폭 트래픽이 보통 두 개의 메모리 장치들 사이에서 발생하는 것은 결정될 수 있다. 이러한 메모리 장치들이 네이버링 장치들이 아니라면, 서브시스템은 단일 자율 메모리 장치(102)가 알고리즘을 완성하는 프로세싱을 제공하도록 허용하기 위해 다른 메모리 장치의 컨텐츠를 재배치할 수 있고 이러한 메모리 장치들 중 하나를 선택할 수 있다. 선택적으로, 상대적으로 멀리 떨어진 장치들의 메모리 컨텐츠는 버스 트래픽을 감소시키기 위해 가까운 노드들로 재분산될 수 있다.
더욱이, 판독-전용(read-only) 컨텐츠를 위한 분산 서브-시스템(10)의 검색은 항상 능동적인 네트워크의 서브셋(subset)을 야기할 수 있다. 이 경우에 있어서, 서브시스템은 다중 자율 메모리 장치들(102)이 분산 서브-시스템(10) 내의 판독-전용 컨텐트 상에서 병렬 동작들을 수행할 수 있도록 네트워크의 이러한 부분 내의 컨텐츠를 복사할 수 있다.
지금까지 본 발명의 실시예들이 자율 데이터 저장을 통해 향상된 메모리 저장 효율들을 허락한다는 것은 명백해졌다. 분산 메모리 서브-시스템 내의 자율 메모리 장치를 연결함으로써, 호스트는 자율 메모리 장치로 데이터베이스를 다운로드할 수 있다. 자율 메모리 장치는 자율 메모리의 하나의 풀 내에서 다이간 통신을 취급하는 인터페이스를 사용하는 네이버링 다이로 데이터베이스의 부분들을 분산시키도록 명령들을 초기화할 수 있다. 그런 다음, 자율 메모리 장치는 호스트 인터페이스를 통해 호스트 컨트롤러로 통과되는 자율 메모리의 풀로부터의 정보를 추출할 수 있다.
본 발명의 소정 특징들이 여기에 설명되고 도시되었지만, 많은 변형, 치환, 변화, 및 균등물들이 본 분야에서 통상의 기술을 가진 자에게 발생할 것이다. 그러므로, 첨부된 청구범위들은 본 발명의 진정한 사상 내에 있는 이러한 모든 변형들 및 변화들을 커버하도록 의도되었다고 이해되어야 한다.

Claims (16)

  1. 조건 감시 블록을 갖는 컨트롤러와;
    버스 트래픽을 갖는 제 1 및 제 2 자율 메모리 장치들로서, 제 1 자율 메모리 장치는 컨텐츠를 저장하도록 다이의 메모리와 메모리를 구비하는 동일한 다이에 임베디드된 제어 엔진을 포함하는 다이를 포함하고, 조건 감시 블록은 버스 트래픽을 감시하고 감시된 결과들에 기초하여 시스템 수행을 동적으로 개선시키기 위해 리소스들을 재할당하고, 제 1 자율 메모리 장치는 제 2 자율 메모리 장치의 다이와 통신하도록 제 2 자율 메모리 장치의 다이에 물리적으로 결합된 제 1 다이간 통신 포트를 포함하고, 제 1 자율 메모리 장치는 제 1 및 제 2 자율 메모리 장치들과는 다른 부가 자율 메모리 장치의 다이와 통신하도록 부가 자율 메모리 장치의 다이에 물리적으로 결합된 제 2 다이간 통신 포트를 포함하는, 제 1 및 제 2 자율 메모리 장치들; 및
    제 1 및 제 2 자율 메모리 장치들에 대해 네이버링(neighboring) 장치가 아닌 제 3 자율 메모리 장치로서, 컨트롤러가 네이버링 장치들인 제 1 및 제 2 자율 메모리 장치들에 대해 재배치되도록 제 3 자율 메모리 장치의 컨텐츠를 선택하고, 제 1, 제 2 및 제 3 자율 메모리 장치들이 외부 메모리를 결합시키기 위해 스크랫치 패드(scratch pad) 메모리 포트를 더 포함하는, 제 3 자율 메모리 장치;를 갖추어 이루어지는 것을 특징으로 하는 자율 메모리 서브-시스템.
  2. 삭제
  3. 제 1 항에 있어서,
    제 1, 제 2 및 제 3 자율 메모리 장치 내에서 분산된 판독-전용(read-only) 컨텐트가 제 3 자율 메모리 장치에 의해 버스 트래픽을 초래하는 것 없이 판독-전용 컨텐츠 상에서 병렬 동작들을 수행하기 위해 제 1 및 제 2 자율 메모리 장치들 내에서 복사되는 것을 특징으로 하는 자율 메모리 서브-시스템.
  4. 제 1 항에 있어서,
    컨트롤러가 제 1 및 제 2 자율 메모리 장치들 사이의 버스 트래픽을 감소시키기 위해 제 1 자율 메모리 장치로 제 2 자율 메모리 장치의 컨텐츠를 재배치하도록 선택하는 것을 특징으로 하는 자율 메모리 서브-시스템.
  5. 삭제
  6. 제 1 항에 있어서,
    외부 메모리가 NAND 메모리 또는 DRAM(Dynamic Random Access Memory)인 것을 특징으로 하는 자율 메모리 서브-시스템.
  7. 네이버링 메모리 장치들에 대해 데이터베이스의 부분들을 분산시키도록 명령들을 초기화하는 메모리 장치들의 어레이 내의 메모리 장치; 및
    자율 메모리 서브-시스템의 버스 트래픽을 감시하고 네이버링 메모리 장치들로 메모리 장치의 버스 트래픽을 동적으로 감소시키기 위해 메모리 장치의 어레이의 메모리 컨텐트를 재할당하는 조건 감시 블록으로, 메모리 장치는 네이버링 메모리 장치들의 제 1 메모리 장치의 다이와 통신하도록 네이버링 메모리 장치들의 제 1 메모리 장치의 다이에 물리적으로 결합된 제 1 다이간 통신 포트를 포함하고, 메모리 장치는 네이버링 메모리 장치들의 제 2 메모리 장치의 다이와 통신하도록 네이버링 메모리 장치들의 제 2 메모리 장치의 다이에 물리적으로 결합된 제 2 다이간 통신 포트를 포함하되, 메모리 장치들의 어레이 내의 메모리 장치는 외부의 NAND 메모리 및 DRAM을 결합시키기 위해 스크랫치 패드 메모리 포트를 더 포함하는, 조건 감시 블록;을 갖추어 이루어진 것을 특징으로 하는 자율 메모리 서브-시스템.
  8. 삭제
  9. 제 7 항에 있어서,
    메모리 장치들의 어레이 내의 메모리 장치가 적어도 네 개의 네이버링 메모리 장치들과 통신하기 위해 네 개의 네이버링 메모리 장치들의 네 개의 각각의 다이에 물리적으로 결합된 네 개의 출력 포트들을 갖는 것을 특징으로 하는 자율 메모리 서브-시스템.
  10. 제 7 항에 있어서,
    메모리 장치들의 어레이 내의 메모리 장치가 적어도 네 개의 네이버링 메모리 장치들과 무선으로 통신하는 것으로 특징으로 하는 자율 메모리 서브-시스템.
  11. 제 7 항에 있어서,
    조건 감시 블록이 넌-네이버링(non-neighboring) 메모리 장치들로부터 네이버링 메모리 장치들을 결정한 후 메모리 장치들의 어레이의 메모리 장치 내의 메모리 컨텐트를 재할당하는 것을 특징으로 하는 자율 메모리 서브-시스템.
  12. 제 11 항에 있어서,
    메모리 서브-시스템 내에서 분산된 판독-전용 컨텐트가 넌-네이버링 메모리 장치들에 의해 버스 트래픽을 초래하는 것 없이 판독-전용 컨텐트 상에서 병렬 동작들을 수행하도록 메모리 장치들의 어레이 내의 메모리 장치와 네이버링 장치들에서 복사되는 것을 특징으로 하는 자율 메모리 서브-시스템.
  13. 메모리 장치들의 어레이를 갖춘 자율 메모리 서브-시스템으로, 어레이 내의 메모리 장치가 컨텐츠를 저장하도록 다이의 메모리와 메모리를 구비하는 동일한 다이에 임베디드된 제어 엔진을 포함하는 다이를 포함하고, 어레이 내의 메모리 장치가 어레이 내의 메모리 장치들로 데이터베이스의 부분들을 분산시키도록 명령들을 초기화시키고 구속된 리소스들을 동적으로 관리하기 위해 메모리 컨텐트의 재할당을 지시하고, 메모리 장치는 메모리 장치들의 어레이 사이에서 제 1 메모리 장치의 다이와 통신하도록 메모리 장치들의 어레이 사이에서 제 1 메모리 장치의 다이에 물리적으로 결합된 제 1 다이간 통신 포트를 포함하고, 메모리 장치는 메모리 장치들의 어레이 사이에서 제 2 메모리 장치의 다이와 통신하도록 메모리 장치들의 어레이 사이에서 제 2 메모리 장치의 다이에 물리적으로 결합된 제 2 다이간 통신 포트를 포함하되, 어레이 내의 메모리 장치는 외부 메모리를 결합시키기 위해 스크랫치 패드 메모리 포트를 포함하는 것을 특징으로 하는 자율 메모리 서브-시스템.
  14. 제 13 항에 있어서,
    구속된 리소스들이 버스 대역폭을 포함하는 것을 특징으로 하는 자율 메모리 서브-시스템.
  15. 제 13 항에 있어서,
    어레이 내의 넌-네이버링 장치들의 메모리 컨텐츠가 구속된 리소스들을 최적화하기 위해 네이버링 장치들로 재분산되는 것을 특징으로 하는 자율 메모리 서브-시스템.
  16. 삭제
KR1020100068824A 2009-09-11 2010-07-16 자율 서브시스템 아키텍처 KR101747966B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/557,856 2009-09-11
US12/557,856 US9015440B2 (en) 2009-09-11 2009-09-11 Autonomous memory subsystem architecture

Publications (2)

Publication Number Publication Date
KR20110028212A KR20110028212A (ko) 2011-03-17
KR101747966B1 true KR101747966B1 (ko) 2017-06-15

Family

ID=43603668

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100068824A KR101747966B1 (ko) 2009-09-11 2010-07-16 자율 서브시스템 아키텍처

Country Status (5)

Country Link
US (2) US9015440B2 (ko)
JP (1) JP5826471B2 (ko)
KR (1) KR101747966B1 (ko)
CN (1) CN102024011B (ko)
DE (1) DE102010044529B4 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10003675B2 (en) 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
US10769097B2 (en) 2009-09-11 2020-09-08 Micron Technologies, Inc. Autonomous memory architecture

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015440B2 (en) 2009-09-11 2015-04-21 Micron Technology, Inc. Autonomous memory subsystem architecture
US10089043B2 (en) * 2013-03-15 2018-10-02 Micron Technology, Inc. Apparatus and methods for a distributed memory system including memory nodes
EP2784704A1 (en) * 2013-03-26 2014-10-01 Fujitsu Limited Multi-component computational fluid dynamics simulations
US9495238B2 (en) 2013-12-13 2016-11-15 International Business Machines Corporation Fractional reserve high availability using cloud command interception
US9246840B2 (en) 2013-12-13 2016-01-26 International Business Machines Corporation Dynamically move heterogeneous cloud resources based on workload analysis
US10296263B2 (en) 2014-04-30 2019-05-21 International Business Machines Corporation Dispersed bloom filter for determining presence of an object
US9965336B2 (en) * 2014-04-30 2018-05-08 International Business Machines Corporation Delegating iterative storage unit access in a dispersed storage network
KR101714412B1 (ko) 2016-12-28 2017-03-09 주식회사 티맥스클라우드 클라우드 환경에서 데이터베이스 시스템을 구성하는 방법 및 장치
US11138044B2 (en) 2018-09-26 2021-10-05 Micron Technology, Inc. Memory pooling between selected memory resources

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5105425A (en) * 1989-12-29 1992-04-14 Westinghouse Electric Corp. Adaptive or fault tolerant full wafer nonvolatile memory
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
JP2579419B2 (ja) * 1992-05-22 1997-02-05 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・メモリ・システム
US6101620A (en) * 1995-04-18 2000-08-08 Neomagic Corp. Testable interleaved dual-DRAM architecture for a video memory controller with split internal/external memory
US5754948A (en) * 1995-12-29 1998-05-19 University Of North Carolina At Charlotte Millimeter-wave wireless interconnection of electronic components
JPH1132356A (ja) * 1997-07-11 1999-02-02 Fujitsu Ltd マルチプロセッサシステム
JPH11232180A (ja) * 1998-02-10 1999-08-27 Hitachi Ltd データ処理装置
US20020009119A1 (en) * 2000-02-11 2002-01-24 Matthew William T. Environmental heat stress monitor
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US7356568B2 (en) * 2002-12-12 2008-04-08 International Business Machines Corporation Method, processing unit and data processing system for microprocessor communication in a multi-processor system
US7075541B2 (en) 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US7978682B2 (en) * 2005-05-09 2011-07-12 At&T Intellectual Property I, Lp Methods, systems, and computer-readable media for optimizing the communication of data packets in a data network
US20070005922A1 (en) * 2005-06-30 2007-01-04 Swaminathan Muthukumar P Fully buffered DIMM variable read latency
US7558859B2 (en) 2005-10-17 2009-07-07 Microsoft Corporation Peer-to-peer auction based data distribution
US8275949B2 (en) * 2005-12-13 2012-09-25 International Business Machines Corporation System support storage and computer system
US7756898B2 (en) * 2006-03-31 2010-07-13 Isilon Systems, Inc. Systems and methods for notifying listeners of events
US8601155B2 (en) * 2006-08-16 2013-12-03 Oracle America, Inc. Telemetry stream performance analysis and optimization
US8407399B2 (en) * 2008-10-29 2013-03-26 Sandisk Il Ltd. Method and apparatus for enforcing a flash memory caching policy
US8942113B2 (en) * 2009-05-07 2015-01-27 Verizon Patent And Licensing Inc. System and method for dynamically adjusting routing metrics based on power consumption
US9015440B2 (en) 2009-09-11 2015-04-21 Micron Technology, Inc. Autonomous memory subsystem architecture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10769097B2 (en) 2009-09-11 2020-09-08 Micron Technologies, Inc. Autonomous memory architecture
US11586577B2 (en) 2009-09-11 2023-02-21 Micron Technology, Inc. Autonomous memory architecture
US10003675B2 (en) 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
US10778815B2 (en) 2013-12-02 2020-09-15 Micron Technology, Inc. Methods and systems for parsing and executing instructions to retrieve data using autonomous memory

Also Published As

Publication number Publication date
JP5826471B2 (ja) 2015-12-02
JP2011060278A (ja) 2011-03-24
US9612750B2 (en) 2017-04-04
KR20110028212A (ko) 2011-03-17
DE102010044529A1 (de) 2011-03-24
CN102024011A (zh) 2011-04-20
DE102010044529B4 (de) 2023-04-27
US20150205530A1 (en) 2015-07-23
CN102024011B (zh) 2016-05-04
US9015440B2 (en) 2015-04-21
US20110066796A1 (en) 2011-03-17

Similar Documents

Publication Publication Date Title
KR101747966B1 (ko) 자율 서브시스템 아키텍처
KR102028252B1 (ko) 자율 메모리 아키텍처
CN111630505B (zh) 深度学习加速器***及其方法
US10025533B2 (en) Logical block addresses used for executing host commands
KR102240774B1 (ko) 지역 베이스보드 관리 제어기를 이용하여 패브릭 시스템에 걸쳐 불휘발성 메모리 익스프레스 내에서 공유된 그래픽 처리부 자원들을 할당하는 방법
CN104603739A (zh) 对并行存储的块级访问
JP2004537106A (ja) 単一のオペレーティングシステムイメージ下で動作する再構成可能なプロセッサを用いるウェブサーバのためのシステムおよび方法
Jenkins et al. Enabling fast, noncontiguous GPU data movement in hybrid MPI+ GPU environments
US9420036B2 (en) Data-intensive computer architecture
JP2021506032A (ja) オンチップの計算ネットワーク
CN116070682B (zh) 神经元计算机操作***的snn模型动态映射方法及装置
US11061676B2 (en) Scatter gather using key-value store
WO2023124304A1 (zh) 芯片的缓存***、数据处理方法、设备、存储介质及芯片
CN115563050A (zh) 众核计算芯片及数据访问方法
GB2483884A (en) Parallel processing system using dual port memories to communicate between each processor and the public memory bus
US20080275683A1 (en) kD TREE AND ENVELOPE TO IMPROVE IDENTIFICATION OF NEAREST ATOMS
Xiao et al. Unified virtual memory support for deep CNN accelerator on SoC FPGA
CN116627887A (zh) 图数据处理的方法和芯片

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