KR20160092007A - 자율 메모리를 위한 방법 및 시스템 - Google Patents

자율 메모리를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20160092007A
KR20160092007A KR1020167017509A KR20167017509A KR20160092007A KR 20160092007 A KR20160092007 A KR 20160092007A KR 1020167017509 A KR1020167017509 A KR 1020167017509A KR 20167017509 A KR20167017509 A KR 20167017509A KR 20160092007 A KR20160092007 A KR 20160092007A
Authority
KR
South Korea
Prior art keywords
instruction
memory
packet
parser
instructions
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020167017509A
Other languages
English (en)
Other versions
KR101812912B1 (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 KR20160092007A publication Critical patent/KR20160092007A/ko
Application granted granted Critical
Publication of KR101812912B1 publication Critical patent/KR101812912B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F2003/0697

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)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

방법, 장치 및 시스템이 개시되었다. 방법의 일 실시형태는 자율 메모리 디바이스가 명령어 세트를 수신하는 단계, 메모리 디바이스가 명령어 세트를 실행하는 단계, 명령어 세트에 응답하여 메모리 디바이스로부터 회복된 어느 데이터와 명령어 세트를 패킷으로 조합하는 단계, 및 메모리 디바이스로부터 패킷을 송신하는 단계를 포함한다.

Description

자율 메모리를 위한 방법 및 시스템{METHODS AND SYSTEMS FOR AUTONOMOUS MEMORY}
우선권 출원
본 출원은 2013년 12월 2일자로 출원된 미국 출원 제14/094,273호에 대한 우선권의 이익을 주장하며, 그의 전문은 참고로 본 명세서에 편입된다.
전형적으로 메모리 디바이스는 컴퓨터 또는 다른 전자 디바이스에서 내부, 반도체, 집적 회로로서 제공된다. 램(RAM), 롬(ROM), 동적 램(DRAM), 동기식 동적 램(SDRAM), 및 비-휘발성(예를 들어, 플래시) 메모리를 포함하는 여러 다른 유형의 메모리가 많이 있다.
소정 수의 비-휘발성 메모리 디바이스는 컴퓨터 시스템에서 기계적으로-동작되는 하드 디스크 드라이브를 에뮬레이팅할 수 있는 고체 상태 드라이브(SSD)를 제작하도록 조합될 수 있다. 고체 상태 드라이브는 움직이는 부품이 없기 때문에 기계적 하드 드라이브보다 더 큰 신뢰도로 더 고속의 액세스를 제공할 수 있다.
컴퓨터 시스템의 증가하는 성능에 적어도 부분적으로 기인하여, 메모리 및 고체 상태 드라이브 제조자는 컴퓨터 시스템 성능 증가와 보조를 맞추려고 하기 위해 그들 메모리의 성능을 증가시키도록 일정한 압박을 받고 있을 수 있다. 컴퓨터 시스템 상의 어느 연산 부담이라도 완화하도록 메모리로의 기록 및 판독을 더 효율적이게 할 일반적 필요성이 있다.
도 1은 자율 메모리 프로세싱 장치의 일 실시형태의 예시적 기능적 블록 선도;
도 2는 도 1의 실시형태에 따른 패킷 파서(packet parser)의 일 실시형태의 예시적 블록 선도;
도 3은 도 1의 실시형태에 따른 프로그램 카운터의 일 실시형태의 예시적 블록 선도;
도 4는 도 1의 실시형태에 따른 명령어 메모리의 일 실시형태의 예시적 블록 선도;
도 5는 도 1의 실시형태에 따른 디코드 로직의 일 실시형태의 예시적 블록 선도;
도 6은 도 1의 실시형태에 따른 레지스터 파일의 일 실시형태의 예시적 블록 선도;
도 7a 및 도 7b는 도 1의 실시형태에 따른 실행 유닛의 일 실시형태의 예시적 블록 선도;
도 8은 도 1의 실시형태에 따른 파서의 일 실시형태의 예시적 블록 선도;
도 9는 도 1의 실시형태에 따른 패킷 발생기의 일 실시형태의 예시적 블록 선도;
도 10은 도 1의 실시형태에 따른 명령어 실행을 위한 포맷의 일 실시형태의 예시적 선도;
도 11은 메모리 시스템의 일 실시형태의 예시적 블록 선도; 및
도 12는 자율 메모리 디바이스에서의 자율 메모리 프로세싱 장치의 연산의 일 실시형태의 예시적 순서도.
이하의 상세한 설명에서는, 그 일부분을 형성하고 있는 그리고 특정 실시형태를, 예시의 방식으로, 보여주고 있는 첨부 도면을 참조한다. 도면에서는, 유사한 숫자가 수개의 도면의 곳곳에서 실질적으로 유사한 컴포넌트를 기술한다. 본 발명의 범위로부터 벗어남이 없이 구조적, 논리적 및 전기적 변경이 이루어질 수도 있고 다른 실시예가 이용될 수도 있다. 그러므로, 이하의 상세한 설명은 한정적 의미로 받아들여지려는 것이 아니다.
본 발명은 어느 일 유형의 메모리로도 한정되지 않는다. 자율 메모리 프로세싱 장치는 반도체 메모리, 광학 메모리 또는 자기 메모리를 포함하는 어느 유형의 메모리 디바이스, 메모리 디바이스 그룹 또는 메모리 기술과도 연관될 수 있다. 예를 들어, 메모리는 비-휘발성(예를 들어, NAND 플래시, NOR 플래시, 상 변화 메모리(PCM)) 또는 휘발성(예를 들어, DRAM, SRAM)을 포함할 수 있다.
여기에서 사용되는 바와 같이, 노드는 수신된 패킷을 파싱하기 위한 패킷 파서, 노드로부터 네트워크로 송신될 패킷을 발생시키기 위한 패킷 발생기, 및 노드를 어느 네트워크와도 인터페이싱시킬 수 있는 네트워크 포트를 포함할 수 있다. 노드는 부가적으로는 노드의 동작을 제어하기 위한 프로세싱 엘리먼트는 물론 데이터를 저장하기 위한 메모리도 포함할 수 있다. 다른 실시형태에 있어서, 노드는 부가적 기능을 위한 부가적 하드웨어 및/또는 소프트웨어/펌웨어를 포함할 수 있다. 자율 프로세싱 장치를 갖는 자율 메모리 디바이스는 노드라고 생각될 수 있다.
도 1은 자율 메모리 프로세싱 장치의 일 실시형태의 기능적 블록 선도를 예시하고 있다. 그러한 장치는 메모리(100)와 연관될 수 있고 중앙 프로세싱 유닛(CPU)-기반 컴퓨팅 시스템에서 메모리 대역폭 병목을 완화하도록 사용될 수 있다. 자율 메모리 프로세싱 장치는 자율 메모리 디바이스에 위치할 수 있다.
자율 메모리 프로세싱 장치는 패킷 파서(101), 프로그램 카운터(107), 명령어 메모리(105), 디코드 로직(103), 레지스터 파일(109), 파서(115), 패킷 발생기(111), 하나 이상의 실행 유닛(EU)(113), 및 페이지 버퍼(117)를 포함할 수 있다. 다른 실시형태가 다른 엘리먼트 및 다른 아키텍처를 사용할 수 있으므로 도 1의 엘리먼트 및 아키텍처는 단지 예시의 목적을 위한 것일 뿐이다.
도 2는 패킷 파서(101)의 블록 선도를 예시하고 있다. 패킷 파서(101)는 네트워크(예를 들어, 메모리(100) 외부 네트워크)에 결합되어 그로부터의 데이터 패킷을 받아들일 수 있다. 패킷 파서(101)는 또한 패킷 파서(101)가 네트워크로부터 패킷으로 수신된 프로그램 카운트(예를 들어, 명령어 메모리 위치)를 프로그램 카운터(107)에 로딩할 수 있도록 프로그램 카운터(107)의 입력에 결합될 수 있다. 패킷 파서(101)는 또한 프로그램 카운터(107)가 그 현재 프로그램 카운트(예를 들어, 명령어 메모리 위치)를 패킷 파서(101)에 로딩할 수 있도록 프로그램 카운터(107)의 출력에 결합될 수 있다. 패킷 파서(101)는 명령어 메모리(105) 및 레지스터 파일(109) 내에 네트워크로부터 패킷으로 수신된 데이터(예를 들어, 명령어)의 로딩을 가능하게 하도록 명령어 메모리(105) 및 레지스터 파일(109)의 입력에 더 결합될 수 있다.
도 3은 프로그램 카운터(107)의 블록 선도를 예시하고 있다. 예시의 목적으로, 프로그램 카운터(107)는 32 비트 카운터로서 도시되어 있다. 그렇지만, 다른 실시형태는 다른 프로그램 카운터 사이즈를 사용할 수도 있다.
프로그램 카운터(107)는 하나 이상의 실행 유닛(113)의 일부분일 수 있는 프로그램 카운터 실행 유닛(PCEU)(114) 및 패킷 파서(101)로부터의 입력을 가질 수 있다. 프로그램 카운터(107)는 명령어 메모리(105)에 결합된 출력을 가질 수 있다.
프로그램 카운터(107)는 프로그램(예를 들어, 실행가능한 명령어)을 포함하고 있을 수 있는 명령어 메모리(105)에서의 특정 명령어 위치에 액세스하도록 프로그램 카운트 값(예를 들어, 명령어 메모리 위치)을 포함하고 있을 수 있다. 프로그램 카운트 값은, 패킷 파서(101)에 의해 결정되고 그로부터 수신되는 바와 같이, 들어오는 패킷에서의 특정 데이터 필드로부터 설정될 수 있거나, 또는 프로그램 카운터 실행 유닛(114)으로부터의 계산된 값일 수 있다. 프로그램 카운터(107)는 그 후 명령어 메모리(105)에 프로그램 카운트의 값(예를 들어, 32-비트 레지스터)을 출력할 수 있다.
도 4는 명령어 메모리(105)의 블록 선도를 예시하고 있다. 명령어 메모리(105)는 프로그램(예를 들어, 실행가능한 명령어)을 저장하기 위한 소정 수의 레지스터를 포함할 수 있다. 패킷 파서(101)는 명령어 메모리(105)의 기록 포트에 결합될 수 있다. 명령어 메모리(105)는, 패킷 파서(101)에 의해 결정되는 바와 같은, 들어오는 패킷 내 수신된 명령어가 패킷으로부터 명령어 메모리(105)에 로딩될 수 있게 되도록 패킷 파서(101)에 의해 기록될 수 있다.
명령어 메모리(105)는 명령어 메모리(105) 내의 특정 위치에 액세스하기 위한 주소를 각각 받아들일 수 있는 2개의 주소 포트를 포함할 수 있다. 하나의 주소는 프로그램 카운터(107)로부터 유래할 수 있다. 다른 주소는 패킷 발생기(111)로부터 유래할 수 있다.
하나의 연산 동안, 명령어 메모리(105)는 프로그램 카운터(107)의 주소에 의해 나타낸 위치로부터의 명령어(예를 들어, 데이터 포트)를 출력할 수 있다. 이러한 명령어는 수행할 연산에 관하여 실행 유닛(113)에 명령하기 위해 실행 유닛(113)에 의해 디코딩 및 실행될 수 있다. 이러한 명령어는 실행 유닛(113)에 피연산자는 물론 레지스터 파일(109)로의 인덱스도 주어 프로세싱을 위해 실행 유닛(113)에 무슨 데이터를 출력할지에 관하여 레지스터 파일(109)에 명령할 수 있다.
도 5는 디코드 로직(103)의 블록 선도를 예시하고 있다. 디코드 로직(103)은 실행 유닛 디코드 로직(501), 파서 디코드 로직(502), 및 디멀티플렉싱 기능(503)(예를 들어, 디멀티플렉서)을 포함할 수 있다.
디멀티플렉싱 기능(503)으로의 입력은 명령어 메모리(105)의 출력으로부터의 명령어 스트림에 결합될 수 있다. 명령어 스트림에서의 하나 이상의 제어 비트는 명령어 스트림에서의 특정 명령어의 수신지(예를 들어, EU 디코드 로직(501), 파서 디코드 로직(502))를 선택하도록 사용될 수 있다.
명령어가 EU 디코드 로직(501)으로 발신되면, EU 디코드 로직(501)은 실행 유닛(113) 중 하나에 명령어를 발신하기 위해 명령어를 프로세싱할 수 있다. 명령어는 무슨 유형의 연산을 수행할지에 관하여는 물론 실행 유닛(113) 중 하나에 명령어의 실행 동안 사용될 피연산자를 주기 위해서도 실행 유닛(113) 중 하나에 명령할 수 있다. 피연산자는 레지스터 파일(109)의 레지스터 내에 인덱싱되고 실행 유닛(113) 중 하나가 그 데이터를 프로세싱할 수 있도록 무슨 데이터를 출력할지에 관하여 그 레지스터에 명령할 수 있다.
디멀티플렉싱 기능(503)은 또한 파서(115)에 결합되는 파서 디코드 로직(502)에 명령어를 발신할 수 있다. 명령어는 프로세싱을 위해 페이지 버퍼(117)의 특정 세그먼트로부터 실행 유닛(113) 중 하나로 데이터를 판독하기 위해 페이지 버퍼(117)의 어느 세그먼트에 액세스할지 파서에 순차적으로 명령하는 파서 디코드 로직(502)을 제어할 수 있다.
도 6은 레지스터 파일(109)의 블록 선도를 예시하고 있다. 레지스터 파일(109)은 패킷 파서(101), 패킷 발생기(111), 실행 유닛(113) 중 하나 이상, 및 메모리 판독 표시로부터의 입력을 포함할 수 있다. 메모리 판독 표시는 메모리 연산이 완료되었을 때를 나타내는 파서(115)에 의해 발생되는 신호일 수 있다. 레지스터 파일(109)은 패킷 발생기(111), 실행 유닛(113), 및 파서(115)로의 출력을 포함할 수 있다.
레지스터 파일(109)은 실행 유닛(113)에 의한 프로세싱이 일어나고 있는 동안 변수를 저장할 메모리(예를 들어, 복수의 레지스터)를 포함할 수 있다. 이들 변수는 하나 이상의 명령어에 응답하여 메모리로부터 검색된 데이터를 포함할 수 있다. 레지스터 파일(109)은 레지스터 내의 초기 조건을 설정하기 위해 패킷 파서(101)에 의해 기록될 수 있고 패킷 발생기(111)에 의해 판독될 수 있다. 실행 유닛(113)의 각각은 멀티플렉싱 기능을 통해 레지스터 파일(109)로부터 인수를 수신할 수 있다. 패킷 발생기(111)로의 출력은 레지스터 파일(109)의 레지스터에 저장된 데이터를 네트워크로의 송신을 위한 패킷으로 번들링하도록 사용될 수 있다.
도 7a는 일반적으로 실행 유닛(113)(예를 들어, 실행 유닛(0-N))의 일 실시형태의 블록 선도를 예시하고 있는 한편 도 7b는 구체적으로 프로그램 카운터 실행 유닛(114)의 일 실시형태의 블록 선도를 예시하고 있다. PCEU(114)는 실행 유닛(113)의 그룹의 일부분이라고 생각될 수 있지만 다른 실행 유닛(113)과는 다른 아키텍처를 가질 수 있다.
특정 자율 메모리 프로세싱 장치에 포함될 수 있는 실행 유닛(113)의 특정 수에 대한 요건은 없다. 하나의 장치는 단일 실행 유닛(113)을 가질 수 있는 한편 다른 장치는 다수(예를 들어, 수백)의 실행 유닛을 가질 수 있다.
도 7a는 실행 유닛(113)이 4개의 산술 로직 유닛(ALU)(701 내지 704)을 포함할 수 있음을 예시하고 있다. ALU1(703) 및 ALU2(704)의 출력은 멀티플렉싱 기능(706)에 입력될 수 있다. 어느 ALU(703, 704) 출력이 선택되는지는 멀티플렉싱 기능(706)을 위한 선택 신호로서 출력이 사용될 수 있는 Comp ALU(702)의 출력에 의해 결정될 수 있다. 제4 ALU, ALU Out(701)은 실행 유닛(113)에 의해 수행된 연산의 결과를 어디에 저장할지 레지스터 파일(109)에 나타낼 수 있는 레지스터 파일(109)로의 레지스터 주소(Rd)로서의 출력을 가질 수 있다.
하위 3개의 ALU(702-704) 및 멀티플렉싱 기능(706)은 if-then-else 연산을 수행할 수 있다. 멀티플렉싱 기능(706)은 "소정 조건이면"을 제공할 수 있고 여기서 그 조건은 Comp ALU(702)에 의해 결정된다. 그리하여, 조건이 참이면, 그때 하나의 ALU(예를 들어, ALU1(703))의 출력이 Comp ALU(702)의 출력에 의해 선택되고, 그렇지 않으면 다른 ALU(예를 들어, ALU2(704))의 출력이 Comp ALU(702)의 출력에 의해 선택된다.
예를 들어, ALU1(703)이 피연산자 입력(OPERAND1(R1), OPERAND2(R2)) 및 커맨드 입력(OPERATOR1)을 갖고 ALU2(704)이 피연산자 입력(OPERAND3(R3), OPERAND4(R4)) 및 커맨드 입력(OPERATOR2)을 갖는다고 가정되면, if-then-else 문은 다음처럼 보일 수 있다:
Figure pct00001
여기서 "Operand1 OPERATOR1 Operand2"는 ALU1(703)에 의해 제공될 수 있고, "Operand3 OPERATOR2 Operand4"는 ALU2(704)에 의해 제공될 수 있고, "if (Condition)"은 Comp ALU(702) 및 멀티플렉싱 기능(706)에 의해 제공될 수 있다.
도 10의 명령어의 포맷에 관하여 후속하여 설명되는 바와 같이, 피연산자 및 연산자는 명령어에 의해 제공될 수 있거나 또는 명령어는 어느 레지스터에 피연산자 값이 위치하고 있는지 나타낼 수 있다. 예를 들어, OPERAND1(R1)는 레지스터(R1)에 위치하고 있을 수 있고, OPERAND(R2)는 레지스터(R2)에 위치하고 있을 수 있고, OPERAND(R3)는 레지스터(R3)에 위치하고 있을 수 있고, OPERAND(R4)는 레지스터(R4)에 위치하고 있을 수 있다.
ALU1(703) 및 ALU2(704)는 동일한 연산 또는 다른 연산을 수행할 수 있다. 환언하면, OPERATOR1는 OPERATOR2와 동일할 수 있거나 또는 OPERATOR1는 OPERATOR2와 다를 수 있다.
ALU Out(701)은 피연산자 입력(R5, R6)(예를 들어, 레지스터(R5, R6)) 및 커맨드 입력(OPERATOR3)을 가질 수 있다. (R5) 및 (R6)로부터의 값에 대해 커맨드(OPERATOR3)를 수행하는 ALU Out(701)에 의해 발생되는 바와 같은 결과(Rd)는 어디에 실행 유닛(113)의 결과가 저장되는지 결정한다.
Comp ALU(702)은 피연산자 입력(R7, R8)(예를 들어, 레지스터(R7, R8)) 및 커맨드 입력(OPERATOR4)을 가질 수 있다. 앞서 논의된 바와 같이, (R7) 및 (R8)로부터의 값에 대해 커맨드(OPERATOR4)를 수행하는 결과는 멀티플렉싱 기능(106)의 선택을 결정한다.
위의 ALU(701 내지 704)에서 커맨드(예를 들어, OPERATOR1, OPERATOR2, OPERATOR3, OPERATOR4)로서 사용될 수 있는 전형적 연산은 가산, 감산, 논리곱, 논리합, 논리부정, 부정 논리합, 같음, 작거나 같음, 작음, 같지 않음, 크거나 같음, 또는 큼을 포함할 수 있다. 다른 실시예는 다른 연산을 사용할 수 있으므로 이들 연산은 단지 예시의 목적을 위한 것이다.
도 7b는 프로그램 카운터 실행 유닛(PCEU)(114)의 아키텍처를 예시하고 있다. 이러한 아키텍처는 실행 유닛0-n(113)과 유사하지만 ALU Out(701)이 없을 수 있다. PCEU(114)는 프로그램 카운터(107)에 대한 새로운 주소를 결정하는 것에 전용일 수 있으므로, PCEU(114) 연산의 결과를 저장할 위치가 프로그램 카운터(107)일 것이므로 ALU Out(701)은 포함되지 않는다.
PCEU(114)는 피연산자 입력(R9, R10) 및 커맨드 입력(OPERATOR5)을 갖는 Comp ALU(710)을 포함할 수 있다. ALU1(711)은 피연산자 입력(R11, R12) 및 커맨드 입력(OPERATOR6)을 포함할 수 있다. ALU2(712)은 피연산자 입력(R13, R14) 및 커맨드 입력(OPERATOR7)을 포함할 수 있다.
ALU1(711) 및 ALU2(712)의 출력은 멀티플렉싱 기능(714)으로의 입력일 수 있다. Comp ALU(710)의 출력은 멀티플렉싱 기능(714)을 위한 선택 신호를 제공할 수 있다. 그리하여, 앞서 설명된 실행 유닛(113)에서와 같이, PCEU(114)은 if-then-else 문을 제공할 수 있으며 여기서 멀티플렉싱 기능(714)은 "소정 조건이면"을 제공하고 그 조건은 Comp ALU(710)에 의해 결정된다. 그리하여, 조건이 참이면, 그때 하나의 ALU(예를 들어, ALU1(711))의 출력이 Comp ALU(710)의 출력에 의해 선택되고, 그렇지 않으면 다른 ALU(예를 들어, ALU2(712))의 출력이 Comp ALU(710)의 출력에 의해 선택된다. 그 결과는 프로그램 카운터(107)에 로딩될 수 있다.
앞서 설명된 실행 유닛(113)에서와 같이, PCEU(114)에서 사용될 연산자 및 커맨드는 명령어 메모리로부터의 명령어로부터 로딩될 수 있거나 또는 명령어는 어느 레지스터가 그 값을 포함하고 있을 수 있는지 나타낼 수 있다.
도 8은 파서(115)의 블록 선도를 예시하고 있다. 파서(115)는 기록될 주소는 물론 데이터도 포함하는 메모리 기록 포트를 포함할 수 있다. 메모리 판독 주소 포트는 판독된 데이터가 메모리 판독 데이터 포트 내로 판독될 수 있도록 판독할 메모리로의 주소를 제공할 수 있다. 파서(115)는 또한 메모리 판독 연산이 완료되었을 때 메모리 판독 표시 신호를 출력할 수 있다. 파서(115)는 실행 유닛(113)으로의 출력, 레지스터 파일(109)로부터의 입력, 및 파서 디코드 로직(502)으로부터의 구성 입력을 더 포함할 수 있다.
파서(115)는 직접 그것이 메모리(100)의 페이지 버퍼(117)에 기록 또는 그로부터 판독할 수 있도록 메모리(100)로의 직접 액세스를 가질 수 있다. 파서(115)는 페이지 버퍼(117)의 전체 길이로의 액세스를 갖고 그래서, 프로세싱을 더 관리가능하게 하기 위해, 그것은 페이지 버퍼(117)를 더 작은 세그먼트(예를 들어, 규칙적으로 획정된 세그먼트)로 세분할 수 있다. 예를 들어, 파서(115)는 페이지 버퍼의 처음 100 바이트에 대해 연산하고, 그 후 다음 100 바이트, 그리고 전체 페이지 버퍼(117)가 판독/기록될 때까지 이것을 계속할 수 있다. 이것을 성취하기 위해, 파서(115)에는 페이지 버퍼(117)의 어느 세그먼트로부터 판독할지 결정하는 패킷 파서(101)로부터의 주소가 주어질 수 있다.
파서(115)는 페이지 버퍼(117)의 컨텐트를 어떻게 파싱할지 파서(115)에 명령할 수 있는 레지스터 파일(109)로부터의 구성 입력을 수신할 수 있다. 파서(115)는 레지스터 파일(109)에서 새로운 컨텐트가 이용가능하다고 실행 프로그램에 명령하는 메모리 판독 표시 신호를 발생시킬 수 있다.
도 9는 패킷 발생기(111)의 일 실시형태의 블록 선도를 예시하고 있다. 패킷 발생기는 명령어 메모리(105) 및 레지스터 파일(109)로부터의 입력 그리고 명령어 메모리(105) 및 레지스터 파일(109)로의 출력을 포함할 수 있다. 패킷 발생기(111)는 부가적으로는 어느 발생된 패킷이라도 출력하기 위해 네트워크로의 출력을 갖는다.
패킷 발생기(111)는 이들 엘리먼트(105, 109)로부터 데이터를 판독하기 위해 명령어 메모리(105)에 대한 주소 및 레지스터 파일(109)에 대한 주소를 발생시킬 수 있다. 패킷 발생기(111)는 그 후 레지스터 파일(109)로부터의 판독된 데이터(예를 들어, 명령어 메모리(105)로부터의 명령어 및 컨텍스트(예를 들어, 데이터, 메모리 판독으로부터의 결과, 수행된 연산으로부터의 결과))를 사용하고, 이러한 데이터를 번들링하고, 그리고 네트워크를 통하여 송신될 패킷을 발생시킬 수 있다.
도 10은 도 1의 실시형태에 따른 명령어 실행의 포맷의 일 실시형태를 예시하고 있다. 각각의 명령어(1001 내지 1003)는 실행 유닛(113)에 의한 실행을 위해 명령어 메모리에 저장될 수 있다.
명령어의 예시된 실시형태는 4개의 명령어(1000 내지 1003)를 포함한다. 각각의 명령어는 실행 유닛(113)의 서로 다른 ALU와 연관될 수 있다. 그리하여, 실행 유닛(113)이 다른 수량의 ALU을 포함하면, 실행 포맷은 다른 수량의 명령어(1000 내지 1003)를 포함할 수 있다. 이하의 논의에서는 도 10도 그리고 도 7a의 ALU도 참조한다.
제1 명령어(1000)(예를 들어, 명령어(D))는 실행 유닛(113) 중 하나에 의한 연산의 결과의 수신지 레지스터(예를 들어, Rd)를 표현할 수 있다. 앞서 논의된 바와 같이, ALU Out(701)은 실행 유닛(113)의 결과를 저장할 수신지 레지스터(Rd)의 주소를 발생시킬 수 있다. 그리하여, ALU Out(701)은 레지스터(Rd)를 발생시키기 위한 제1 명령어(1000)와 연관될 수 있다.
제2 명령어(1001)(예를 들어, 명령어(C))는 실행 유닛(113)에 의해 표현되는 if-then-else 문의 조건을 표현할 수 있다. 예시된 실시형태에 있어서, 조건은 비교값(VC)에 의해 표현된다. 앞서 논의된 바와 같이, Comp ALU(702)은 멀티플렉싱 기능(706)을 위한 선택 신호로서 사용되는 조건을 발생시킬 수 있다. 그리하여, Comp ALU(702)은 VC가 참인지의 비교를 위한 제2 명령어(1001)와 연관될 수 있다.
제3 명령어(1002)(예를 들어, 명령어(T))는 실행 유닛(113)에 의해 표현되는 if-then-else 문의 "then" 결과를 표현할 수 있다. 예시된 실시형태에 있어서, "then" 결과는 Vt - 참인 경우의 값에 의해 표현된다. 앞서 논의된 바와 같이, ALU1(703)은 "then" 결과를 발생시킬 수 있다. 그리하여, ALU1(703)은 Vt인 "then" 결과를 위한 제3 명령어(1002)와 연관될 수 있다.
제4 명령어(1003)(예를 들어, 명령어(F))는 실행 유닛(113)에 의해 표현되는 if-then-else 문의 "else" 결과를 표현할 수 있다. 예시된 실시형태에 있어서, "else" 결과는 Vf - 거짓인 경우의 값에 의해 표현된다. 앞서 논의된 바와 같이, ALU2(704)은 "else" 결과를 발생시킬 수 있다. 그리하여, ALU2(704)은 Vf인 "else" 결과를 위한 제4 명령어(1003)와 연관될 수 있다.
VC인 조건, Vt인 "then" 결과, Vf인 "else" 결과, 및 Rd인 결과 레지스터를 사용하면, if-then-else 문은 다음에 의해 표현될 수 있다:
Figure pct00002
도 11은 도 1의 자율 메모리 프로세싱 장치(130)를 편입할 수 있는 메모리 시스템의 일 실시형태의 블록 선도를 예시하고 있다. 메모리 시스템은 하나 이상의 메모리 디바이스(예를 들어, SSD)(1101, 1102)와 네트워크(1120)를 통하여 통신할 수 있는 컨트롤러(1100)(예를 들어, CPU)를 포함할 수 있다. 네트워크(1120)는 유선 버스 또는 무선 통신(예를 들어, 와이파이)일 수 있다.
메모리 디바이스(1101)는 메모리 디바이스(1101)의 저장부를 구성하는 로컬 메모리(100)(예를 들어, RAM, DRAM, SRAM, NAND 플래시, NOR 플래시, 상 변화 메모리(PCM))는 물론 도 1의 자율 메모리 프로세싱 장치(130)도 포함할 수 있다. 자율 메모리 프로세싱 장치(130)는 메모리(100)에 비교적 가까이 위치하고 있을 수 있다(예를 들어, 동일 다이, 동일 다이 스택, 동일 메모리 모듈). 예를 들어, 자율 메모리 프로세싱 장치(130)는 메모리(100)의 뱅크 레벨에서 회로에 포함될 수 있다. 각각의 뱅크는 하나의 메모리 칩이 실질적으로 동시에 동작하는 자율 메모리 프로세싱 장치(130)의 다수의 인스턴스를 가질 수 있도록 서로 다른 자율 메모리 프로세싱 장치(130)를 가질 수 있다. 여기에서 사용되는 바와 같이, 로컬 메모리(100)는 네트워크를 통하여 가지 않고 자율 메모리 프로세싱 장치(130)에 접속되는 메모리일 수 있다.
도 11의 시스템의 디바이스의 각각은 노드라고 생각될 수 있다. 각각의 노드는 네트워크(1120)를 통하여 다른 노드와 통신할 수 있다. 노드의 각각은 실질적으로 유사할 수 있거나 또는 노드 중 하나 이상은 서로 다른 아키텍처를 가질 수 있다. 예를 들어, 제1 메모리 디바이스(1101)는 프로그램 카운터 실행 유닛(114)에 부가하여 단일 실행 유닛(113)만을 가질 수 있는 한편 제2 메모리 디바이스(1102)는 프로그램 카운터 실행 유닛(114)에 부가하여 하나보다 많은 실행 유닛(113)을 가질 수 있다.
그리하여, 후속하여 설명되는 바와 같이, 컨트롤러(1100)(예를 들어, 소스 노드)는 소스 노드의 현재 프로세싱 상태 및 명령어를 포함하고 있는 메시지(예를 들어, 패킷)를 메모리 디바이스(1101)(예를 들어, 표적 노드)에 발신할 수 있다. 다른 일 실시형태에 있어서, 제1 메모리 디바이스(1101)는 소스 노드일 수 있는 한편 제2 메모리 디바이스(1102)는 표적 노드일 수 있다.
명령어는 메모리 디바이스(1101)로의 커맨드(예를 들어, 검색, 정렬, 비교)를 포함할 수 있다. 메모리 디바이스(1101)는 컨트롤러에 의한 개입 없이 커맨드에 의해 명령된 태스크를 수행할 수 있다. 자율 메모리 프로세싱 장치(130)는 메시지를 다른 노드(1100, 1102)에 발신 및 그로부터 수신하고, 프로세싱 명령어 및 상태를 다른 노드(1100, 1102)에 발신 및 그로부터 수신하고, 프로그램 상태를 복원 및 저장하고, 프로세싱 명령어를 실행하고, 로컬 메모리를 판독 및 기록하고, 그리고/또는 단일 노드에서 다수의 프로세싱 컨텍스트를 지원할 수 있다.
자율 메모리 프로세싱 장치(130) 아키텍처는 (예를 들어, ALU을 포함하는) 실행 유닛(113)을 부가 및 제거하는 동적 무결절 융통성을 제공하여, 그리하여 필요에 따라 부가적 프로세싱 능력을 노드에 부여할 수 있다. 자율 메모리 프로세싱 장치(130)에서의 실행 유닛(113)의 동적 부가 및 제거는 이하의 예의 연산에서 예시될 수 있다.
전형적 종래 기술 프로그램은 다음과 같이 발생될 수 있다:
Figure pct00003
전형적 종래 기술 CPU 시스템에서와 같이, 이들 명령어에는 내포된 종속성이 있다. 예를 들어, Register2에서의 값은 Instruction1이 실행할 기회를 가지기 전에 겹쳐쓰여질 것이기 때문에 Instruction2는 Instruction1 전에(또는 그와 동일한 사이클에서) 실행할 수 있지 않을 수 있다.
자율 메모리 프로세싱 장치 아키텍처에 있어서, 더 복잡한 실행 유닛(EU) 아키텍처는 프로그램을 실행하는데 필요한 사이클의 수를 감축하기 위해 사용될 수 있다. 각각의 EU는 각각 별개의 태스크를 수행하는 소정 수의 다른 ALU(예를 들어, 4개의 ALU)을 포함하고 있을 수 있다. 그리하여, 자율 메모리 프로세싱 장치에 대해 기록되는 프로그램은 다음과 같이 발생될 수 있다(PCEU 더하기 하나의 EU를 갖는 아키텍처를 가정):
Figure pct00004
각각의 [EU# Instruction#]는, 도 10에 예시된 바와 같이, 다음과 같이 나타날 수 있다:
Figure pct00005
또한, 자율 메모리 프로세싱 장치 아키텍처의 일부분으로서, 프로세서는 그것들 내에 매립된 서로 다른 수의 EU를 가질 수 있다. 이것은, 예를 들면, 4개의 EU와 하나의 PCEU를 갖는 아키텍처를 가능하게 할 수 있다:
Figure pct00006
이들 EU의 명령어 중 어느 하나라도 이 사이클에서 수행할 부가적 작업이 있지 않을 수 있다는 사실에 기인하여 공백일 수 있다. 이것은 프로그램의 특정 스테이지에서의 병렬도 결여에 기인할 수 있다.
자율 메모리 프로세싱 장치 아키텍처는 시스템에서 자율 메모리 프로세싱 장치 엔진의 이종 세트 간 상호작용을 가능하게 할 수 있다(예를 들어, 하나의 장치 "A"는 PCEU 더하기 하나의 EU를 가질 수 있는 한편, 다른 장치 "B"는, 동일한 상호접속된 시스템에서, PCEU 더하기 4개의 EU를 가질 수 있다). 이러한 시나리오에서 장치 A가 그 컨텍스트를 장치 "B"에 발신할 필요가 있다고 가정되면, 프로그램은 명령어의 순차적 스트림으로 패키징되어 장치 "B"에 배송될 수 있다. 장치 "B"는 그 후 다음과 같이 그 하드웨어 상에서 동일한 방식으로 그것들을 스케줄링할 수 있다:
Figure pct00007
이것은 병렬도 손실에 이르러 시스템에서의 비효율을 초래할 수 있는데 모든 프로그램마다 결국에는 가장 좁은 자율 메모리 프로세싱 장치의 그것에 다가갈 것이기 때문이다.
명령어는 명령어들 간 어느 종속성도 있지 않음을 보장하지 않고는 병렬 EU로 번들링되지 않을 수 있다. 이러한 종류의 비교는 전형적 종래 기술 시스템에서는 컴퓨터 계산상 비용이 많이 들 수 있으므로, 자율 메모리 프로세싱 장치는 명령어 "펜스" 플래그의 개념을 사용할 수 있다. "펜스" 플래그는 명령어 스트림이 그 스트림에서 이전 명령어에 대한 어느 종속성도 더 이상 갖지 않는 곳을 애플리케이션 라이터 또는 컴파일러가 마킹 가능하게 한다. 이러한 정보는 명령어 스트림이 돌려져 상당한 프로세싱 오버헤드 없이 프로세서의 이종 세트 상에서 스케줄링 가능하게 할 수 있다.
예를 들어, 이하의 명령어 스트림: [PCEU Instruction] [EU Instruction1] [EU Instruction2] [EU Instruction3] [Fence Marker/Instruction] [EU Instruction4] [EU Instruction5] [EU Instruction6] [EU Instruction7] [Fence Flag/Instruction]은 자율 메모리 프로세싱 장치 "A" 상에서 이하의 방식: [PCEU] [1] [PCEU] [2] [F] [PCEU] [3] [PCEU] [4] [PCEU] [5] [PCEU] [6] [F] [PCEU] [7]으로 스케줄링될 수 있고(여기서 [F]는 "펜스" 마커를 나타냄), 자율 메모리 프로세싱 장치 "B"에서는: [PCEU] [1] [2] [3] [X] [F] [PCEU] [4] [5] [6] [7]로서 스케줄링될 수 있다.
"펜스" 명령어는 주어진 자율 메모리 프로세싱 장치(예를 들어, "A" 또는 "B")의 명령어 메모리에 그것이 로딩되어 있는 동안 패킷-인 로직에 의해 프로세싱될 수 있다. "펜스" 플래그의 존재는 명령어 메모리에 저장될 수 있지만, 스케줄링의 컨텍스트 외에는 무의미할 수 있다. 그렇지만, 그것은 패킷-아웃 로직이 원래 스트림을 복원할 수 있도록 명령어 메모리에 플래그로서 저장된다.
자율 메모리 프로세싱 장치의 연산의 일례(예를 들어, 메모리 검색)로서, 패킷은 네트워크(예를 들어, 메모리 네트워크)로부터 패킷 파서(101)에 의해 수신될 수 있다. 패킷 파서(101)는 패킷을 세그먼트로 파싱할 수 있다. 일부 세그먼트는 패킷이 이전 노드를 떠났을 때 이전 노드가 있었던 상태를 표현하는 레지스터 컨텐트를 그것들이 포함하고 있을 수 있다는 점에서 컨텍스트일 수 있다.
패킷은 실행될 프로그램에 대한 명령어 메모리(105)에서의 시작 위치를 포함하고 있을 수 있다. 이러한 시작점은 프로그램 카운터(107)에 로딩될 수 있다. 또한, 패킷은 명령어 메모리(105)에 로딩될 명령어 세트 및 레지스터 파일(109)에 로딩될 수 있는 초기 조건 세트를 포함하고 있을 수 있다. 초기 조건은 이전 노드로부터 명령어에 의해 발신되는 변수일 수 있다. 초기 조건은 또한 현재 실행 중인 프로그램에 의한 사용을 위한 상수일 수 있다.
프로그램 카운터(107)에서의 값은 어느 명령어가 실행되도록 명령어 메모리(105)로부터 판독되는지 결정한다. 프로그램 카운터(107)에서의 다음 값은 이전 값으로부터의 증분이거나 또는 프로그램 카운터 실행 유닛(114)에 의해 결정되는 바와 같은 계산된 값일 수 있다.
명령어는 파서(115)의 구성을 설정할 수 있다. 파서(115)는, 명령어의 실행을 통해, 페이지 버퍼(117)로부터 변수를 제거하도록 그리고 궁극적으로는 메모리 판독 연산을 수행하도록 구성될 수 있다.
메모리 판독 연산이 일어날 때, 변수는 실시간으로 페이지 버퍼(117) 컨텐트로부터 제거되어 실행 유닛(113)에 입력으로서 제시될 수 있다. 다른 잠재적 입력은, 프로그램 명령어에 의해 결정되는 바와 같이, 레지스터 파일로부터 판독될 수 있고, 프로세싱을 위해 실행 유닛(113)에 제시될 수 있다. 앞서 설명된 바와 같이, "펜스"는 수개의 연이은 명령어를 병렬로 실행할 수 있는 능력을 제공할 수 있다. 병렬로 실행될 수 없는 명령어는 미루어져 후속 사이클 동안 실행될 수 있다.
실행 유닛(113)은 그들 입력 인수를 복수의 세트의 입력 인수로서 프로세싱할 수 있으며, 각각의 세트는 병렬로 프로세싱된다. 그리하여, 다수의 실행 유닛(113)은 후에 레지스터 파일에 다시 전송되게 되거나, 파서(115)에 전송되어 궁극적으로는 하나 이상의 메모리 기록 연산에 대한 데이터로서 페이지 버퍼(117)에 기록될 수 있는 출력 변수를 발생시킬 수 있거나, 또는 출력 변수는 어떤 특정 액션을 발생시키도록 레지스터 파일에 들어갈 수 있다. 액션은 패킷 발생기(111)에 의해 패킷을 발생시키는 것이거나 또는 새로운 메모리 판독 또는 메모리 기록 연산을 개시하는 것일 수 있다.
페이지 버퍼(117) 컨텐트(예를 들어, 검색 커맨드의 결과)는 요청하는 노드에 네트워크를 통하여 송신될 패킷에 포함되도록 패킷 발생기(111)에 제시될 수 있다. 패킷은 태스크(예를 들어, 검색)가 완료되었고 결과가 패킷에 포함되어 있다고 나타내는 요청하는 노드로의 메시지를 포함할 수 있다.
연산의 더 넓은 예로서, 네트워크는 자율 메모리 디바이스의 패브릭을 포함할 수 있으며, 각각은 적어도 하나의 자율 메모리 프로세싱 장치를 포함한다. 데이터 그룹이 메모리 디바이스의 패브릭에 걸쳐 저장될 수 있다. 특정 데이터 리스트를 찾도록 데이터 그룹 전체를 검색하는 것이 소망될 때, 검색 프로그램은 특정 데이터 리스트를 찾도록 그 디바이스를 검색하도록 하나의 자율 메모리 디바이스에 푸싱될 수 있다. 프로그램이 그 특정 자율 메모리 디바이스 내에 저장된 데이터가 검색되었고 리스트로부터의 데이터 전부가 존재하지 않는다고 결정할 때, 프로그램은 하나 이상의 패킷으로 번들링되어 다른 자율 메모리 디바이스에 전송될 수 있고 거기서 그 디바이스의 자율 메모리 프로세싱 장치는 검색을 계속할 수 있다. 프로그램의 이러한 번들링은 자율 메모리 디바이스의 패브릭 전체가 검색되거나 데이터 리스트가 완료될 때까지 계속될 수 있다. 일부 실시형태에 있어서, 특정 자율 메모리 디바이스에서 발견된 데이터도 전송될 프로그램과 패킷(들)으로 번들링될 수 있다.
그러한 일 실시형태가 도 12의 순서도에 예시되어 있다. 예시된 방법은 자율 메모리 디바이스(1101)에서의 자율 메모리 프로세싱 장치(130)에 의해 도 11의 시스템에서 실행될 수 있다.
메모리 디바이스(1101)는 자율 메모리 프로세싱 장치(130)에 제공되는 패킷을 수신할 수 있다(1201). 장치(130)는 앞서 논의된 바와 같이 명령어, 프로그램 카운터, 및 데이터를 제거하도록 패킷을 파싱할 수 있다(1203). 그 후 명령어는 메모리(100)에 저장된 데이터에 대해 소망 태스크를 수행하도록 실행될 수 있다(1205). 그 후, 명령어, 및 명령어에 의해 발생된 어느 데이터라도 네트워크 상의 송신(1209)을 위한 패킷으로 번들링될 수 있다(1207).
장치는 회로, 집적 회로 다이, 메모리 디바이스, 메모리 어레이 또는 시스템으로서 정의될 수 있다.
결어
자율 메모리 디바이스 내에서의 자율 메모리 프로세싱 장치의 하나 이상의 실시형태는 전통적 CPU-기반 컴퓨팅 시스템의 메모리 대역폭 병목을 완화하도록 명령어의 프로세싱을 수행할 수 있다. 명령어 세트(예를 들어, 프로그램) 및/또는 데이터를 포함하고 있는 패킷은 노드에서의 메모리에서의 데이터가 CPU 또는 소스 노드로부터의 제어와 독립적인 명령어에 의해 연산될 수 있도록 그들 노드 간에 전송될 수 있다.
여기에서는 특정 실시형태가 예시 및 설명되었지만, 나타낸 특정 실시형태에 대해 동일 목적을 달성하도록 계산되는 어느 배열이라도 대체될 수 있음을 당업자는 인식할 것이다. 당업자에게는 많은 적응이 명백할 것이다. 따라서, 본 출원은 어느 적응 또는 변형이라도 망라하도록 의도된다.

Claims (15)

  1. 방법으로서,
    자율 메모리 디바이스에서 명령어 세트를 수신하는 단계;
    상기 메모리 디바이스에서 상기 명령어 세트를 실행하는 단계;
    상기 명령어 세트에 응답하여 상기 메모리 디바이스로부터 회복된 어느 데이터와 상기 명령어 세트를 패킷으로 조합하는 단계; 및
    상기 메모리 디바이스로부터 상기 패킷을 송신하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 메모리 디바이스에서 상기 명령어 세트를 수신하는 단계 및 상기 메모리 디바이스로부터 상기 패킷을 송신하는 단계는 각각 상기 메모리 디바이스에 결합된 네트워크로부터 상기 명령어 세트를 수신하는 단계 및 상기 네트워크에 상기 패킷을 송신하는 단계를 포함하는 방법.
  3. 제1항에 있어서, 상기 명령어 세트를 수신하는 단계는 상기 명령어 세트를 포함하는 패킷을 수신하는 단계를 포함하고 그리고 상기 방법은
    수신된 상기 명령어 세트와 연관된 초기 프로그램 카운터 값을 프로그램 카운터에 로딩하는 단계;
    상기 명령어 세트를 명령어 메모리에 로딩하는 단계; 및
    상기 명령어 세트와 연관된 초기 조건 세트를 레지스터 파일에 로딩하는 단계를 포함하는 수신된 상기 패킷을 파싱하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서, 상기 명령어 세트를 실행하는 단계는
    상기 명령어 세트의 제1 명령어를 실행한 후에 새로운 프로그램 카운터 값을 계산하는 단계; 및
    상기 새로운 프로그램 카운터 값을 상기 프로그램 카운터에 저장하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 명령어 세트를 실행하는 단계는 제1 실행 유닛에서 제1 명령어를 그리고 제2 실행 유닛에서 제2 명령어를 실행하는 단계를 포함하되 상기 제1 및 제2 명령어의 실행은 실질적으로 병렬인 방법.
  6. 제1항에 있어서, 상기 메모리 디바이스는 복수의 노드 중 제1 노드이고 그리고 상기 메모리 디바이스로부터 상기 패킷을 송신하는 단계는 상기 복수의 노드 중 제2 노드에 상기 패킷을 송신하는 단계를 포함하는 방법.
  7. 제6항에 있어서,
    상기 복수의 노드 중 제3 노드로부터 초기 조건을 수신하는 단계; 및
    상기 초기 조건을 파일 레지스터에 저장하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서, 상기 명령어 세트는 펜스 플래그를 포함하고 그리고 상기 명령어 세트를 저장하는 단계는
    명령어 메모리에서 상기 펜스 플래그 이전의 하나 이상의 명령어 및 상기 명령어 메모리에서 상기 펜스 플래그 다음의 하나 이상의 명령어를 저장하는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    제1 실행 유닛에서 상기 펜스 플래그 이전의 상기 하나 이상의 명령어를 실행하는 단계; 및
    제2 실행 유닛에서 상기 펜스 플래그 이후의 상기 하나 이상의 명령어를 실행하는 단계를 더 포함하는 방법.
  10. 제9항에 있어서, 상기 펜스 플래그 이전의 상기 하나 이상의 명령어를 실행하는 단계는 상기 펜스 플래그 이후의 상기 하나 이상의 명령어를 실행하는 단계와 실질적으로 동시에 수행되는 방법.
  11. 제1항에 있어서, 상기 명령어 세트를 실행하는 단계는
    프로그램 카운터 실행 유닛에 복수의 피연산자를 제공하는 단계;
    상기 프로그램 카운터 실행 유닛에 연산자를 제공하는 단계; 및
    상기 복수의 피연산자에 대한 상기 연산자의 실행으로부터의 결과에 응답하여 업데이트된 프로그램 카운터 값을 발생시키는 단계를 포함하는 방법.
  12. 장치로서,
    명령어 및 시작 위치를 포함하는 패킷을 수신하도록 구성된 패킷 파서(packet parser);
    상기 패킷 파서에 결합되어 상기 명령어를 수신하도록 구성된 명령어 메모리;
    상기 명령어 메모리 및 상기 패킷 파서에 결합된 프로그램 카운터로서, 상기 패킷 파서로부터 상기 시작 위치를 초기에 수신하고 그리고 상기 시작 위치에서 상기 명령어 메모리로부터 명령어를 검색하도록 구성된 상기 프로그램 카운터;
    상기 명령어를 실행하도록 상기 명령어 메모리에 결합된 복수의 실행 유닛;
    상기 복수의 실행 유닛에 결합된 파서로서, 로컬 메모리로부터 데이터의 판독을 제어하도록 구성된 상기 파서;
    상기 파서 및 상기 명령어 메모리에 결합되어 상기 파서 및 상기 패킷 파서로부터의 상기 데이터를 저장하도록 구성된 레지스터 파일; 및
    상기 명령어 메모리 및 상기 레지스터 파일에 결합된 패킷 발생기로서, 상기 명령어 세트 및 상기 데이터를 포함하는, 송신을 위한 패킷을 발생시키도록 구성된 상기 패킷 발생기를 포함하는 장치.
  13. 제12항에 있어서, 상기 복수의 실행 유닛의 각각은
    복수의 산술 로직 유닛(ALU); 및
    상기 복수의 산술 로직 유닛 중 적어도 2개의 출력 사이에 결합된 멀티플렉싱 기능을 포함하는 장치.
  14. 제13항에 있어서, 상기 복수의 ALU은 상기 명령어로부터의 각각의 명령어와 연관된 ALU을 포함하는 장치.
  15. 제13항에 있어서, 상기 복수의 실행 유닛의 각각은 if-then-else 문을 구현하는 장치.
KR1020167017509A 2013-12-02 2014-12-01 자율 메모리를 위한 방법 및 시스템 Active KR101812912B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/094,273 2013-12-02
US14/094,273 US10003675B2 (en) 2013-12-02 2013-12-02 Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
PCT/US2014/067927 WO2015084728A1 (en) 2013-12-02 2014-12-01 Methods and systems for autonomous memory

Publications (2)

Publication Number Publication Date
KR20160092007A true KR20160092007A (ko) 2016-08-03
KR101812912B1 KR101812912B1 (ko) 2018-01-30

Family

ID=53265363

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167017509A Active KR101812912B1 (ko) 2013-12-02 2014-12-01 자율 메모리를 위한 방법 및 시스템

Country Status (6)

Country Link
US (2) US10003675B2 (ko)
EP (1) EP3077911B1 (ko)
JP (2) JP6449287B2 (ko)
KR (1) KR101812912B1 (ko)
CN (1) CN105874436B (ko)
WO (1) WO2015084728A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9779057B2 (en) 2009-09-11 2017-10-03 Micron Technology, Inc. Autonomous memory architecture
US9779138B2 (en) 2013-08-13 2017-10-03 Micron Technology, Inc. Methods and systems for autonomous memory searching
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
KR102395190B1 (ko) 2017-07-31 2022-05-06 삼성전자주식회사 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법
US11289137B2 (en) * 2017-11-16 2022-03-29 Micron Technology, Inc. Multi-port storage-class memory interface
US11119946B2 (en) 2019-05-16 2021-09-14 Micron Technology, Inc. Codeword rotation for zone grouping of media codewords
CN110933001B (zh) * 2019-11-18 2020-11-27 清华大学 一种可扩展的可重构交换机包解析器基本处理单元结构
JP2022010951A (ja) 2020-06-29 2022-01-17 キオクシア株式会社 半導体記憶装置
US11070621B1 (en) * 2020-07-21 2021-07-20 Cisco Technology, Inc. Reuse of execution environments while guaranteeing isolation in serverless computing

Family Cites Families (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH062038B2 (ja) 1987-11-18 1994-01-12 江口 光市郎 イワシ肉消臭加工法
US5134711A (en) 1988-05-13 1992-07-28 At&T Bell Laboratories Computer with intelligent memory system
GB8816413D0 (en) 1988-07-09 1988-08-17 Int Computers Ltd Data processing system
US5105425A (en) 1989-12-29 1992-04-14 Westinghouse Electric Corp. Adaptive or fault tolerant full wafer nonvolatile memory
DE69132495T2 (de) 1990-03-16 2001-06-13 Texas Instruments Inc., Dallas Verteilter Verarbeitungsspeicher
JPH04132356A (ja) 1990-09-21 1992-05-06 Ricoh Co Ltd 内線電話交換方式
GB9023096D0 (en) 1990-10-24 1990-12-05 Int Computers Ltd Database search processor
JPH052610A (ja) 1991-06-25 1993-01-08 Mitsubishi Electric Corp リレーシヨナルデータベースにおける集約演算処理方式
JP2579419B2 (ja) 1992-05-22 1997-02-05 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・メモリ・システム
JPH08501403A (ja) 1993-06-30 1996-02-13 グンツィンガー,アントン インテリジェント通信システム
US5835755A (en) 1994-04-04 1998-11-10 At&T Global Information Solutions Company Multi-processor computer system for operating parallel client/server database processes
CA2145106C (en) 1994-04-22 1999-08-24 Abhaya Asthana Intelligent memory-based input/output system
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
JP3289101B2 (ja) 1996-01-25 2002-06-04 東京エレクトロン株式会社 フラッシュ・ディスク・システムの初期化方法及び装置
KR100359414B1 (ko) 1996-01-25 2003-01-24 동경 엘렉트론 디바이스 주식회사 데이타독출/기록방법및그를이용한메모리제어장치및시스템
US6047334A (en) * 1997-06-17 2000-04-04 Intel Corporation System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence
AU9604698A (en) 1997-10-10 1999-05-03 Rambus Incorporated Method and apparatus for two step memory write operations
US6105130A (en) 1997-12-23 2000-08-15 Adaptec, Inc. Method for selectively booting from a desired peripheral device
JPH11232180A (ja) 1998-02-10 1999-08-27 Hitachi Ltd データ処理装置
US6751606B1 (en) 1998-12-23 2004-06-15 Microsoft Corporation System for enhancing a query interface
US7610559B1 (en) 1999-07-27 2009-10-27 Samsung Electronics Co., Ltd. Device customized home network top-level information architecture
US20020009119A1 (en) 2000-02-11 2002-01-24 Matthew William T. Environmental heat stress monitor
CN1437724A (zh) * 2000-03-03 2003-08-20 坦诺网络公司 使用内部处理器存储空间的高速数据处理
US20020161848A1 (en) 2000-03-03 2002-10-31 Willman Charles A. Systems and methods for facilitating memory access in information management environments
US20020124137A1 (en) 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
US6516380B2 (en) 2001-02-05 2003-02-04 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6586276B2 (en) 2001-07-11 2003-07-01 Intel Corporation Method for fabricating a microelectronic device using wafer-level adhesion layer deposition
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
US20040186832A1 (en) 2003-01-16 2004-09-23 Jardin Cary A. System and method for controlling processing in a distributed system
US7581080B2 (en) 2003-04-23 2009-08-25 Micron Technology, Inc. Method for manipulating data in a group of processing elements according to locally maintained counts
GB2406399A (en) 2003-09-23 2005-03-30 Ibm Seaching within a computer network by entering a search term and optional URI into a web browser
US7380039B2 (en) 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US7050351B2 (en) 2003-12-30 2006-05-23 Intel Corporation Method and apparatus for multiple row caches per bank
US7487288B2 (en) 2004-05-14 2009-02-03 International Business Machines Corporation Dynamic loading of virtual volume data in a virtual tape server
US7490354B2 (en) 2004-06-10 2009-02-10 International Business Machines Corporation Virus detection in a network
US7243200B2 (en) 2004-07-15 2007-07-10 International Business Machines Corporation Establishing command order in an out of order DMA command queue
US7242216B1 (en) 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
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
US7634622B1 (en) * 2005-06-14 2009-12-15 Consentry Networks, Inc. Packet processor that generates packet-start offsets to immediately store incoming streamed packets using parallel, staggered round-robin arbitration to interleaved banks of memory
US20070005922A1 (en) 2005-06-30 2007-01-04 Swaminathan Muthukumar P Fully buffered DIMM variable read latency
US20070165457A1 (en) 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
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
US20070150699A1 (en) 2005-12-28 2007-06-28 Schoinas Ioannis T Firm partitioning in a system with a point-to-point interconnect
US7609561B2 (en) 2006-01-18 2009-10-27 Apple Inc. Disabling faulty flash memory dies
JP4786354B2 (ja) * 2006-01-27 2011-10-05 株式会社日立製作所 iSCSI通信制御方法とそれを用いた記憶システム
DE102006009027A1 (de) 2006-02-27 2007-08-30 Infineon Technologies Ag Speicheranordnung
US7756898B2 (en) 2006-03-31 2010-07-13 Isilon Systems, Inc. Systems and methods for notifying listeners of events
TW200743991A (en) 2006-05-18 2007-12-01 Realtek Semiconductor Corp Data search method and apparatus thereof
US7647454B2 (en) 2006-06-12 2010-01-12 Hewlett-Packard Development Company, L.P. Transactional shared memory system and method of control
EP2033316A4 (en) 2006-06-21 2010-08-11 Element Cxi Llc CONSTRUCTION OF A FAULT TOLERANT INTEGIRER CIRCUIT
US7941579B2 (en) 2006-06-30 2011-05-10 Brother Kogyo Kabushiki Kaisha Communication system for authenticating authority of host device for accessing storage medium set to periphery device
US8601155B2 (en) 2006-08-16 2013-12-03 Oracle America, Inc. Telemetry stream performance analysis and optimization
US7952184B2 (en) 2006-08-31 2011-05-31 Micron Technology, Inc. Distributed semiconductor device methods, apparatus, and systems
US7788243B2 (en) 2006-09-08 2010-08-31 Sybase, Inc. System and methods for optimizing data transfer among various resources in a distributed environment
US7657705B2 (en) 2006-09-27 2010-02-02 Lsi Corporation Method and apparatus of a RAID configuration module
US7477535B2 (en) 2006-10-05 2009-01-13 Nokia Corporation 3D chip arrangement including memory manager
US7761485B2 (en) 2006-10-25 2010-07-20 Zeugma Systems Inc. Distributed database
US8285707B2 (en) 2006-11-08 2012-10-09 International Business Machines Corporation Method of querying relational database management systems
US8510481B2 (en) 2007-01-03 2013-08-13 Apple Inc. Memory access without internal microprocessor intervention
US7761687B2 (en) 2007-06-26 2010-07-20 International Business Machines Corporation Ultrascalable petaflop parallel supercomputer
US8037270B2 (en) 2007-06-27 2011-10-11 International Business Machines Corporation Structure for memory chip for high capacity memory subsystem supporting replication of command data
US8433842B2 (en) * 2007-06-29 2013-04-30 Sandisk Technologies Inc. Method for communicating with a non-volatile memory storage device
US8320373B2 (en) * 2007-08-23 2012-11-27 Qualcomm Incorporated Packet-based processing system
US7895151B2 (en) 2008-06-23 2011-02-22 Teradata Us, Inc. Fast bulk loading and incremental loading of data into a database
US7623365B2 (en) 2007-08-29 2009-11-24 Micron Technology, Inc. Memory device interface methods, apparatus, and systems
US7913033B2 (en) 2007-10-09 2011-03-22 Micron Technology, Inc. Non-volatile memory device having assignable network identification
US7816934B2 (en) 2007-10-16 2010-10-19 Micron Technology, Inc. Reconfigurable connections for stacked semiconductor devices
TWI346289B (en) * 2007-12-19 2011-08-01 Ralink Technology Corp Peripheral complying with sdio standard and method for managing sdio command
US7978516B2 (en) * 2007-12-27 2011-07-12 Pliant Technology, Inc. Flash memory controller having reduced pinout
US8194433B2 (en) 2008-02-20 2012-06-05 Ovonyx, Inc. Method and apparatus for accessing a bidirectional memory
JP2009211233A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US7979757B2 (en) 2008-06-03 2011-07-12 Micron Technology, Inc. Method and apparatus for testing high capacity/high bandwidth memory devices
WO2009153687A1 (en) 2008-06-18 2009-12-23 Petascan Ltd Distributed hardware-based data querying
US8407399B2 (en) 2008-10-29 2013-03-26 Sandisk Il Ltd. Method and apparatus for enforcing a flash memory caching policy
US20100161914A1 (en) 2008-12-23 2010-06-24 Eilert Sean S Autonomous memory subsystems in computing platforms
US8493979B2 (en) * 2008-12-30 2013-07-23 Intel Corporation Single instruction processing of network packets
US20100180182A1 (en) 2009-01-09 2010-07-15 Seagate Technology Llc Data memory device and controller with interface error detection and handling logic
US8261019B2 (en) 2009-02-13 2012-09-04 Oracle America, Inc. Conveying critical data in a multiprocessor system
US8549092B2 (en) 2009-02-19 2013-10-01 Micron Technology, Inc. Memory network methods, apparatus, and systems
TWI406130B (zh) 2009-03-10 2013-08-21 Phison Electronics Corp 資料處理系統、控制器及其搜尋特定記憶體區的方法
US8427952B1 (en) * 2009-03-24 2013-04-23 Packet Plus, Inc. Microcode engine for packet processing
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
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
CN102014011A (zh) 2009-09-04 2011-04-13 中兴通讯股份有限公司 环网保护方法与系统
US8972627B2 (en) 2009-09-09 2015-03-03 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
US9779057B2 (en) 2009-09-11 2017-10-03 Micron Technology, Inc. Autonomous memory architecture
US9015440B2 (en) 2009-09-11 2015-04-21 Micron Technology, Inc. Autonomous memory subsystem architecture
US8374022B2 (en) 2009-12-21 2013-02-12 Intel Corporation Programming phase change memories using ovonic threshold switches
US8954714B2 (en) * 2010-02-01 2015-02-10 Altera Corporation Processor with cycle offsets and delay lines to allow scheduling of instructions through time
US8468151B2 (en) 2010-06-29 2013-06-18 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries based on multiple hardware accelerators
KR20120004162A (ko) 2010-07-06 2012-01-12 삼성전자주식회사 데이터베이스 관리 방법 및 이를 이용한 데이터베이스 서버 시스템
US9792307B2 (en) 2010-07-27 2017-10-17 Oracle International Corporation Enterprise-based searching of new and updated data
US8930618B2 (en) 2010-08-24 2015-01-06 Futurewei Technologies, Inc. Smart memory
US8595414B2 (en) * 2010-09-30 2013-11-26 Apple Inc. Selectively combining commands for a system having non-volatile memory
US10026458B2 (en) 2010-10-21 2018-07-17 Micron Technology, Inc. Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size
JP5238791B2 (ja) 2010-11-10 2013-07-17 株式会社東芝 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法
JP2012159903A (ja) 2011-01-31 2012-08-23 Fujitsu Semiconductor Ltd データ処理システム、データ処理装置、及びデータ処理方法
US8478736B2 (en) 2011-02-08 2013-07-02 International Business Machines Corporation Pattern matching accelerator
US8756405B2 (en) * 2011-05-09 2014-06-17 Freescale Semiconductor, Inc. Selective routing of local memory accesses and device thereof
KR101306622B1 (ko) 2011-06-22 2013-09-11 주식회사 에이디칩스 명령어 큐 제어장치
JP2013045378A (ja) 2011-08-26 2013-03-04 Fujitsu Ltd ストレージ制御方法、情報処理装置およびプログラム
KR101713071B1 (ko) 2011-09-09 2017-03-09 인텔 코포레이션 메모리 장치에서의 경로 분리
US8775685B1 (en) * 2011-10-13 2014-07-08 Xilinx, Inc. Parallel processing of network packets
CN102521535A (zh) * 2011-12-05 2012-06-27 苏州希图视鼎微电子有限公司 通过特定指令集来进行相关运算的信息安全协处理器
US20130173655A1 (en) 2012-01-04 2013-07-04 International Business Machines Corporation Selective fetching of search results
US8675423B2 (en) 2012-05-07 2014-03-18 Micron Technology, Inc. Apparatuses and methods including supply current in memory
US9245926B2 (en) 2012-05-07 2016-01-26 Micron Technology, Inc. Apparatuses and methods including memory access in cross point memory
US8780635B2 (en) 2012-11-09 2014-07-15 Sandisk Technologies Inc. Use of bloom filter and improved program algorithm for increased data protection in CAM NAND memory
US9424202B2 (en) 2012-11-19 2016-08-23 Smartfocus Holdings Limited Database search facility
US10089043B2 (en) 2013-03-15 2018-10-02 Micron Technology, Inc. Apparatus and methods for a distributed memory system including memory nodes
US9779138B2 (en) 2013-08-13 2017-10-03 Micron Technology, Inc. Methods and systems for autonomous memory searching
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

Also Published As

Publication number Publication date
EP3077911B1 (en) 2022-05-04
CN105874436B (zh) 2019-03-08
JP2018139118A (ja) 2018-09-06
US20150153963A1 (en) 2015-06-04
US20190007529A1 (en) 2019-01-03
EP3077911A1 (en) 2016-10-12
JP6449287B2 (ja) 2019-01-09
WO2015084728A1 (en) 2015-06-11
JP6633119B2 (ja) 2020-01-22
US10003675B2 (en) 2018-06-19
US10778815B2 (en) 2020-09-15
EP3077911A4 (en) 2017-08-02
CN105874436A8 (zh) 2016-09-21
KR101812912B1 (ko) 2018-01-30
CN105874436A (zh) 2016-08-17
JP2017504870A (ja) 2017-02-09

Similar Documents

Publication Publication Date Title
KR101812912B1 (ko) 자율 메모리를 위한 방법 및 시스템
KR102778192B1 (ko) Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법
US9292291B2 (en) Instruction merging optimization
KR102318531B1 (ko) 스트리밍 메모리의 치환 동작
US10936234B2 (en) Data transfer between memory devices on shared bus
US10996860B2 (en) Method to improve mixed workload performance on storage devices that use cached operations
CN108628693A (zh) 处理器调试方法和系统
CN104111817B (zh) 算术处理装置
TWI766891B (zh) 半導體裝置的處理器與其操作方法
US20150293766A1 (en) Processor and method
JP6292324B2 (ja) 演算処理装置
KR102915345B1 (ko) 하드웨어 오토로더
CN120950128B (zh) 数据处理装置及方法、处理器和芯片
EP4336363A1 (en) Systems and methods for executing data processing functions
CN117666944A (zh) 用于执行数据处理功能的方法和存储装置
US10606498B2 (en) Method for allocating memory
CN119960831A (zh) 指令运行方法、处理器和电子设备
JP2006268487A (ja) エミュレーション装置及びエミュレーション方法、並びに、エミュレーションプログラム

Legal Events

Date Code Title Description
A201 Request for examination
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 9