KR101354346B1 - 내부 프로세서들을 구비한 메모리 및 메모리 액세스 제어 방법들 - Google Patents

내부 프로세서들을 구비한 메모리 및 메모리 액세스 제어 방법들 Download PDF

Info

Publication number
KR101354346B1
KR101354346B1 KR1020127012610A KR20127012610A KR101354346B1 KR 101354346 B1 KR101354346 B1 KR 101354346B1 KR 1020127012610 A KR1020127012610 A KR 1020127012610A KR 20127012610 A KR20127012610 A KR 20127012610A KR 101354346 B1 KR101354346 B1 KR 101354346B1
Authority
KR
South Korea
Prior art keywords
memory
command
fetch unit
data
delete delete
Prior art date
Application number
KR1020127012610A
Other languages
English (en)
Other versions
KR20120082928A (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 KR20120082928A publication Critical patent/KR20120082928A/ko
Application granted granted Critical
Publication of KR101354346B1 publication Critical patent/KR101354346B1/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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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
    • 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/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

내부 프로세서들을 구비한 메모리들 및 그러한 메모리들 내에서의 데이터 통신 방법들이 제공된다. 하나의 그러한 메모리는 액세스될 뱅크들의 가용성에 기초하여 메모리 어레이에 대한 커맨드들의 수행을 실질적으로 제어하도록 구성된 페치 유닛을 포함할 수 있다. 페치 유닛은 뱅크로부터 데이터가 판독될지 또는 뱅크에 데이터가 기록될지를 지시하는 커맨드들 및 뱅크로부터 판독되거나 뱅크에 기록될 데이터의 어드레스를 포함하는 명령들을 수신할 수 있다. 페치 유닛은 뱅크의 가용성에 기초하여 커맨드들을 수행할 수 있다. 일 실시예에서, 제어 로직은 활성화된 뱅크가 이용 가능할 때 페치 유닛과 통신한다. 다른 구현에서, 페치 유닛은 활성화된 뱅크 내의 이전 커맨드가 완료된 시기로 설정된 타이머들에 기초하여 뱅크가 이용 가능해지기를 기다릴 수 있다.

Description

내부 프로세서들을 구비한 메모리 및 메모리 액세스 제어 방법들{MEMORY HAVING INTERNAL PROCESSORS AND METHODS OF CONTROLLING MEMORY ACCESS}
본 발명의 실시예들은 일반적으로는 메모리 시스템들, 구체적으로는 내부 프로세서들을 구비하는 메모리 시스템들에 관한 것이다.
본 섹션은 아래에 설명 및/또는 청구되는 본 발명의 다양한 양태들과 관련될 수 있는 다양한 기술 양태들을 독자에게 소개하기 위한 것이다. 본 설명은 본 발명의 다양한 양태들의 더 나은 이해를 돕기 위한 배경 정보를 독자에게 제공하는 데 도움이 될 것으로 생각된다. 따라서, 이러한 진술들은 이점을 고려하여 읽어야 하며, 종래 기술의 인정으로서 해석되지 않아야 한다는 것을 이해해야 한다.
통상적으로, 전자 시스템들은 하나 이상의 프로세서들을 포함하며, 프로세서들은 명령들을 검색 및 실행하고, 실행된 명령의 결과들을 저장(예로서, 회수)할 수 있는데, 예를 들어 결과들을 적절한 장소에 저장할 수 있다. 일반적으로, 프로세서는 산술 로직 유닛(ALU) 회로를 사용하여, 하나 이상의 피연산자들과 같은 데이터에 대해 산술 및 로직 연산들과 같은 명령들을 실행할 수 있다. 예를 들어, ALU 회로는 하나의 피연산자와 다른 피연산자를 가산, 감산, 승산 또는 제산할 수 있거나, 하나 이상의 피연산자들에 대해 AND, OR, XOR 및 NOT 로직 함수들과 같은 로직 연산들을 수행할 수 있다. 프로세서는 상이한 정도의 복잡성을 갖는 명령들을 실행할 수 있으며, 상이한 명령들은 하나 또는 다수의 클럭 사이클 내에 ALU 회로를 통해 피연산자(들)를 입력하는 것을 포함할 수 있다.
전자 시스템 내의 다수의 컴포넌트는 명령들의 세트를 실행을 위해 ALU로 지향시키는 것과 관련될 수 있다. 일부 장치들에서는, 전자 시스템 내의 제어기 또는 소정의 다른 적절한 프로세서에 의해 명령들이 생성될 수 있다. 데이터(예로서, 명령들의 실행 대상인 피연산자들은 물론, 명령들)는 ALU에 의해 액세스될 수 있는 메모리 컴포넌트(예로서, 메모리 어레이) 내에 저장될 수 있다. 명령들 및 데이터가 메모리 장치로부터 검색될 수 있으며, ALU가 데이터에 대한 명령들의 실행을 시작하기 전에 배열 및/또는 버퍼링될 수 있다. 더구나, 하나 또는 다수의 클럭 사이클 내에 ALU를 통해 상이한 타입의 연산들이 실행될 수 있으므로, 명령들 및/또는 데이터의 중간 결과들도 배열 및/또는 버퍼링될 수 있다.
통상적으로, 프로세서(예로서, ALU 회로)는 메모리 어레이의 외부에 있을 수 있고, 명령들의 세트를 실행하기 위해 프로세서와 메모리 어레이 사이에서 버스를 통해 데이터가 액세스된다. 처리 속도는 버스의 대역폭에 의해 제한될 수 있으므로, 프로세서가 메모리 내부에(예로서, 메모리 상에 직접) 구현되어 처리 시간 및 전력이 보존되는 PIM(processor-in-memory) 장치에서는 처리 성능이 향상될 수 있다. 더구나, 메모리는 외부의 도움이 거의 또는 전혀 없이 명령들을 실행하도록 구성될 수도 있어서, 처리 전력을 더 절약할 수 있다.
아래의 상세할 설명에서 그리고 아래의 도면들을 참조하여 소정 실시예들이 설명된다.
도 1은 본 기술의 일 실시예에 따른 프로세서 기반 시스템의 블록도를 나타낸다.
도 2는 본 기술의 일 실시예에 따른, 외부 프로세서와 인터페이스하는 내부 프로세서를 구비한 메모리 시스템의 블록도를 나타낸다.
도 3은 본 기술의 하나 이상의 실시예들에 따른, 내부 프로세서 및 메모리의 상이한 컴포넌트들 사이의 통신 경로들을 구비한 메모리의 일부를 나타낸다.
도 4는 본 기술의 하나 이상의 실시예들에 따른, 내부 프로세서를 갖는 메모리 내의 메모리 어레이에 액세스하기 위한 프로세스를 나타내는 흐름도이다.
전자 장치는 일반적으로 프로세서를 사용하여 다수의 스테이지에서 명령들을 처리할 수 있다. 명령들의 처리는 명령들을 실행하고, 실행된 명령들의 결과들을 저장하는 것을 포함할 수 있다. 예를 들어, 명령들 및 명령 실행 대상인 데이터가 외부 프로세서(예로서, 메모리 제어기)로부터 내부 프로세서(예로서, ALU 회로)로 전송될 수 있다. 명령들 및/또는 데이터는 먼저 메모리 어레이에 저장되어, 내부 프로세서가 명령들을 실행하는 데 사용될 수 있을 때 검색될 수 있다. 명령(들)이 실행되면, 내부 프로세서는 명령(들)의 결과들을 메모리 컴포넌트, 메모리 어레이 또는 임의의 다른 적절한 출력에 저장할 수 있다.
메모리 외부의 프로세서는 외부 버스를 이용하여 메모리 어레이로 그리고 그로부터 정보(예로서, 명령들 및/또는 데이터)를 전송할 수 있다. 처리 효율은 메모리 어레이와 프로세서 사이의 정보 전송이 전력 및 시간을 소비할 수 있으므로 외부 버스의 대역폭에 의해 부분적으로 제한될 수 있다. 하나 이상의 실시예들에서, 메모리는 외부 버스 없이 메모리 어레이와 프로세서 사이에서 정보가 전송될 수 있게 함으로써 전력을 보존할 수 있다.
본 기술들에 따르면, ALU들과 같은 하나 이상의 프로세서들이 메모리 내에 메모리 컴포넌트와 함께 패키징될 수 있다. 예를 들어, 메모리는 PIM(processor-in-memory)일 수 있으며, ALU들에 의해 실행될 명령들 및 데이터 및 실행된 명령들로부터의 결과들을 저장할 수 있는 메모리 장치(예컨대, 메모리 어레이)에 내장된 ALU들을 포함할 수 있다. 다른 실시예들에서, ALU들 및 메모리 어레이는 동일 패키지 내의 고유 다이들 상에 있을 수 있다. 예를 들어, ALU들 및 메모리 어레이는 멀티-칩 패키지(MCP) 내에 배열될 수 있으며, 하나 이상의 TSV(through-silicon via)에 의해 전기적으로 접속될 수 있다. 메모리 장치와 함께 패키징되는 프로세서들은 (예를 들어, 메모리 장치에 내장되거나 MCP의 일부인지에 관계없이) "내부 프로세서들"로서 지칭될 수 있으며, 따라서 프로세서와 함께 패키징된 메모리 장치는 내부 프로세서를 "구비한" 메모리로 간주될 수 있다. 본 명세서에서 사용될 때, "계산 엔진"은 내부 프로세서의 일례일 수 있으며, 본 기술들에 따라 메모리 장치와 함께 패키징될 수 있다. 게다가, 계산 엔진과 같은 내부 프로세서는 하나 이상의 ALU를 포함할 수 있다.
메모리는 명령들을 체계화하기 위한 시퀀서, 메모리 어레이로부터 데이터에 액세스하기 위한 페치 유닛(fetch unit) 및 데이터 및/또는 명령들을 저장(예로서, 유지)하기 위한 버퍼와 같은 컴포넌트들도 포함할 수 있다. 버퍼는 중간 결과들 또는 최종 결과들이 메모리 어레이로 전송되기 전에 이들을 유지할 수도 있다. 일 실시예에서, 시퀀서는 메모리 어레이에 대한 액세스를 조정할 수 있거나, 어레이에 대한 액세스를 조정하는 메모리 외부의 프로세서(즉, 외부 프로세서)와 통신할 수 있다. 하나 이상의 실시예들에서, 페치 유닛도 메모리 어레이에 대한 액세스를 조정할 수 있다. 메모리 상의 메모리 어레이의 내부 조정은 메모리가 외부 프로세서들과 같은 외부 장치들의 도움이 거의 또는 전혀 없이 명령들을 처리하는 것을 가능하게 할 수 있다.
본 기술의 일 실시예는 메모리 외부의 다른 장치들 또는 프로세서들과의 통신을 줄이면서 명령들을 처리하도록 구성된 메모리를 포함한다. 구체적으로, 시퀀서 및 페치 유닛과 같은 소정 컴포넌트들은 실질적으로 외부 제어 또는 외부 데이터 전송 없이 데이터를 판독 및 기록하고 연산들의 수행을 체계화할 수 있다. 외부 통신량의 감소는 메모리가 더 적은 외부 버스 라인들 또는 감소된 폭의 외부 버스 라인들을 갖게 할 수 있다. 더구나, 외부 통신량의 감소는 메모리 안팎으로의 데이터 전송들의 전력 소비를 줄일 수 있으므로 처리 전력을 줄일 수 있다.
이제, 도면들을 참조하면, 도 1은 일반적으로 참조 번호 10으로 지시되는 프로세서 기반 시스템을 도시한다. 후술하는 바와 같이, 시스템(10)은 본 기술의 실시예들에 따라 제조된 다양한 전자 장치들을 포함할 수 있다. 시스템(10)은 컴퓨터, 페이저, 셀룰러 폰, 퍼스널 오거나이저, 제어 회로 등과 같은 임의의 다양한 타입일 수 있다. 통상의 프로세서 기반 시스템에서, 마이크로프로세서와 같은 하나 이상의 프로세서(12)는 시스템(10)에서의 시스템 기능들 및 요청들의 처리를 제어한다. 후술하는 바와 같이, 시스템(10)의 프로세서(12) 및 다른 서브컴포넌트들은 본 기술의 하나 이상의 실시예들에 따라 제조된 메모리를 포함할 수 있다.
시스템(10)은 통상적으로 전원(14)을 포함한다. 예컨대, 시스템(10)이 휴대용 시스템인 경우, 전원(14)은 이롭게도 연료 전지, 전력 획득 장치, 영구 배터리, 교체 가능 배터리 및/또는 재충전 가능 배터리를 포함할 수 있다. 전원(14)은 AC 어댑터도 포함할 수 있으며, 따라서 시스템(10)은 예를 들어 벽 콘센트에 플러그를 통해 접속될 수 있다. 전원(14)은 DC 어댑터도 포함할 수 있으며, 따라서 시스템(10)은 예를 들어 차량 담배 라이터에 플러그를 통해 접속될 수 있다.
시스템(10)이 수행하는 기능들에 따라, 다양한 다른 장치들이 프로세서(12)에 결합될 수 있다. 예를 들어, 입력 장치(16)가 프로세서(12)에 결합될 수 있다. 입력 장치(16)는 예를 들어 버튼, 스위치, 키보드, 라이트 펜, 마우스, 디지타이저 및 스타일러스, 및/또는 음성 인식 시스템을 포함할 수 있다. 디스플레이(18)도 프로세서(12)에 결합될 수 있다. 입력 장치(16) 및/또는 디스플레이(18)는 각각 또는 양자가 사용자 인터페이스를 형성할 수 있다. 디스플레이(18)는 예를 들어 LCD, SED 디스플레이, CRT 디스플레이, DLP 디스플레이, 플라즈마 디스플레이, OLED 디스플레이, LED들 및/또는 오디오 디스플레이를 포함할 수 있다. 더구나, RF 서브시스템/기저대역 프로세서(20)도 프로세서(12)에 결합될 수 있다. RF 서브시스템/기저대역 프로세서(20)는 RF 수신기 및 RF 송신기(도시되지 않음)에 결합되는 안테나를 포함할 수 있다. 하나 이상의 통신 포트(22)도 프로세서(12)에 결합될 수 있다. 통신 포트(22)는 예를 들어 모뎀, 프린터, 컴퓨터와 같은 하나 이상의 주변 장치(24)에 또는 근거리 네트워크, 원거리 네트워크, 인트라넷 또는 인터넷과 같은 네트워크에 결합되도록 적응될 수 있다.
프로세서(12)는 일반적으로 메모리에 저장된 프로그램들을 처리함으로써 시스템(10)을 제어한다. 소프트웨어 프로그램들은 예를 들어 운영 체제, 데이터베이스 소프트웨어, 드래프팅 소프트웨어, 워드 프로세싱 소프트웨어, 및/또는 비디오, 사진 또는 사운드 편집 소프트웨어를 포함할 수 있다. 메모리는 프로세서(12)에 동작 가능하게 결합되어, 다양한 프로그램들을 구현하기 위한 명령들을 저장하고 이들의 실행을 돕는다. 예를 들어, 프로세서(12)는 동적 랜덤 액세스 메모리(DRAM) 및/또는 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함할 수 있는 시스템 메모리(26)에 결합될 수 있다. 시스템 메모리(26)는 휘발성 메모리, 비휘발성 메모리 또는 이들의 조합을 포함할 수 있다. 시스템 메모리(26)는 통상적으로 크며, 따라서 동적으로 로딩되는 애플리케이션들 및 데이터를 저장할 수 있다.
프로세서(12)는 또한 비휘발성 메모리(28)에 결합될 수 있는데, 이는 시스템 메모리(26)가 반드시 휘발성이라는 것을 암시하지는 않는다. 비휘발성 메모리(28)는 시스템 메모리(26)와 함께 사용되는 EPROM, 저항성 판독 전용 메모리(RROM) 및/또는 플래시 메모리와 같은 판독 전용 메모리(ROM)를 포함할 수 있다. ROM의 크기는 통상적으로 임의의 필요한 운영 체제, 애플리케이션 프로그램들 및 고정 데이터를 저장하기에 충분할 만큼만 크도록 선택된다. 게다가, 비휘발성 메모리(28)는 예를 들어 저항성 메모리 또는 다른 타입의 비휘발성 반도체 메모리를 포함하는 하이브리드 드라이브와 같은 테이프 또는 디스크 드라이브 메모리와 같은 고용량 메모리를 포함할 수 있다.
본 기술의 일부 실시예들은 프로세서(12)와 시스템 메모리(26)의 컴포넌트들 간의 통신을 관련된다. 예컨대, 프로세서(12)는 예를 들어 시스템 메모리(26) 내의 메모리 장치들과 같은 메모리의 내부 프로세서들로부터 신호들을 송수신할 수 있는 범용 프로세서, 중앙 처리 유닛, 프로세서 코어, ASIC, 메모리 제어기 및/또는 ALU를 포함할 수 있다. 프로세서(12)와 시스템 메모리(26)와 같은 메모리의 컴포넌트들 간의 통신에 관련되는 시스템(10)의 컴포넌트들은 일반적으로 도 2의 블록도에 도시된 바와 같은 "메모리 시스템"(30)으로 지칭될 수 있다. 일부 실시예들에서, 메모리 시스템(30)은 메모리 장치(34)를 포함할 수 있고, 이 메모리 장치는 (도 1에서와 같은) 시스템(10)의 시스템 메모리(26)의 일부일 수 있으며, 계산 엔진(38)과 같은 내부 프로세서를 구비할 수 있다. 메모리 시스템(30)은 외부 프로세서(32)도 포함할 수 있으며, 이 외부 프로세서는 (도 1에서와 같은) 프로세서 제어 시스템(10)의 프로세서(12)를 공동으로 형성하기 위해 더 범용적인 프로세서와 함께 SOC(system-on-chip) 상에 있을 수 있다. 외부 메모리 제어기일 수도 있는 외부 프로세서(32)는 메모리 장치(34)의 소정 컴포넌트들과 통신하고 그리고/또는 이들을 제어할 수 있다.
메모리 시스템(30)은 외부 프로세서(32)와 메모리 장치(34) 사이의 통신으로 한정되지 않는 기능들을 가진 컴포넌트들을 포함할 수 있다. 예를 들어, 외부 프로세서(32)는 메모리 장치(34) 외의 장치들을 제어할 수 있다. 그러나, 외부 프로세서(32)는 메모리 시스템(30)과 관련하여 설명되는 바와 같이 메모리 장치(34)의 소정 컴포넌트들과 통신하고 그리고/또는 그들을 제어하는 외부 프로세서(32)의 하나의 기능을 지칭할 수 있다. 또한, 시스템 메모리(26)의 모든 부분들이 메모리 시스템(30)의 일부는 아닐 수도 있다. 본 기술들에 따르면, "메모리 장치"(34)는 외부 프로세서(32)와의 통신과 관련된 메모리 시스템의 컴포넌트들을 지칭할 수 있다.
외부 프로세서(32) 및 메모리 장치(34)는 표준 메모리 인터페이스(44)에 동작 가능하게 결합될 수 있으며, 이 인터페이스는 외부 프로세서(32)와 메모리 장치(34) 사이의 데이터 전송을 가능하게 할 수 있고, 외부 프로세서(32)로 하여금 커맨드들을 메모리 장치(34)로 전송(예로서, 운반)하는 것을 가능하게 할 수 있다. 하나 이상의 실시예들에서, 표준 메모리 인터페이스(44)의 타입들은 예를 들어 DDR, DDR2, DDR3, LPDDR 또는 LPDDR2를 포함할 수 있다. 게다가, 일부 실시예들에서는, 메모리 장치(34)와 외부 프로세서(32) 사이의 데이터 및 또한 커맨드들(예로서, 요청들, 승인들, 명령들 등)의 전송을 가능하게 하기 위해 추가적인 인터페이스(들)가 구성될 수 있다. 예를 들어, 외부 프로세서(32) 및 메모리 장치(34)는 또한 제어 인터페이스(46)에 의해 동작 가능하게 결합될 수 있으며, 이 인터페이스는 메모리 장치(34)로부터 외부 프로세서(32)로의 커맨드들을 포함하는 커맨드들이 외부 프로세서(32)와 메모리 장치(34) 사이에서 전송되는 것을 가능하게 할 수 있다.
메모리 장치(34)와 같은 메모리는 (명령들을 실행하고, 완료된 결과들을 저장하는 것을 포함하여) 명령들을 실질적으로 처리하도록 구성될 수 있으며, 외부 프로세서(32)와의 통신을 줄일 수 있다. 메모리 장치(34) 상의 메모리 어레이(36)에 대한 액세스는 통상적으로 외부 프로세서(32)에 의해 제어될 수 있지만, 하나 이상의 실시예들에서 메모리 어레이 액세스를 포함하는 명령들의 처리는 실질적으로 메모리 장치(34) 내에서 제어될 수 있다. 예를 들어, 외부 프로세서(32)가 명령들을 메모리 어레이(36)로 전송하면, 데이터를 판독 및/또는 기록하기 위해 메모리 어레이(34)에 액세스하는 것을 포함하는 명령들의 처리는 주로 메모리 장치(34) 내에서 발생할 수 있다.
메모리 어레이(36)는 임의의 적절한 형태의 저장 장치를 지칭할 수 있으며, 예를 들어 DRAM 어레이 또는 SDRAM 어레이를 포함할 수 있다. 하나 이상의 실시예들에서, 메모리 어레이(36)는 데이터, 데이터에 대해 실행될 명령들, 및 실행된 명령들의 완료된 결과들을 저장할 수 있다. 메모리 어레이(36)는 메모리 시스템(30) 내의 소정 컴포넌트들에 의해 액세스될 수 있으며, 이들은 어레이에 액세스하여, 명령들 및/또는 데이터를 판독하고, 완료된 결과들을 기록하는 것 등을 행할 수 있다. 통상적으로, 한 번에 하나의 커맨드(예로서, 판독 및/또는 기록)만이 메모리 어레이(36)의 뱅크에서 수행될 수 있다. 따라서, 메모리 어레이 뱅크들 내의 커맨드들이 충돌하지 않도록 메모리 어레이(36)에 대한 액세스가 조정될 수 있다.
메모리 장치(34)는 하나 이상의 산술 로직 유닛(ALU)을 포함할 수 있는 계산 엔진(38)과 같은 내부 프로세서도 포함할 수 있다. 게다가, 계산 엔진(38)은 메모리 장치(34) 상의 복수의 계산 엔진(38)을 지칭할 수도 있다. 계산 엔진(38)은 데이터에 대한 연산들을 수행하도록 구성될 수 있다. 일 실시예에서, 계산 엔진(38)은 피연산자들 또는 이전 연산들의 중간 결과들과 같은 데이터에 대해 다양한 수학적 또는 로직 연산들을 수행하도록 구성된 하나 이상의 ALU 블록을 포함할 수 있다.
계산 엔진(38)은 메모리 어레이(36)로부터 정보를 검색하고(예로서, 명령들 및/또는 데이터를 판독하고), 그 안에 정보를 저장하는(예로서, 완료된 결과들을 기록하는) 것을 포함하여 메모리 어레이(36)에 액세스할 수 있는 시퀀서(40)에 의해 제어될 수 있다. 정보를 검색하고 저장하는 프로세스는 또한 페치 유닛(50), 메모리 제어부(48), 및 버퍼(42)와 같은 메모리 컴포넌트를 필요로 할 수 있다. 시퀀서(40)는 커맨드 정보 및 데이터 어드레스를 페치 유닛(50)으로 전송할 수 있으며, 페치 유닛(50)은 메모리 어레이(36) 상태들을 배열하여 데이터를 판독 및 기록할 수 있다. 일 실시예에서, 메모리 제어부(48)는 시퀀서(40)로부터 페치 유닛(50)에 의해 수신된 커맨드 및 어드레스 비트들을 디코딩할 수 있다.
계산 엔진(38)이 명령들을 실행하면, 그 결과들은 메모리 어레이(36)에 기록되기 전에 버퍼(42)에 저장될 수 있다. 게다가, 일부 명령들은 계산 엔진에서 둘 이상의 클럭 사이클을 필요로 하고 그리고/또는 다수의 연산의 수행을 필요로 할 수 있으므로, 중간 결과들도 메모리 장치(34) 내의 메모리 컴포넌트들에 저장될 수 있다. 예를 들어, 중간 결과들은 계산 엔진(38)에 결합된 버퍼(42) 또는 메모리 레지스터들과 같은 메모리 컴포넌트들에 저장될 수 있다. 하나 이상의 실시예들에서, 계산 엔진(38)은 후속 연산들을 수행하기 위해 버퍼(42)의 중간 결과들에 액세스할 수 있다.
버퍼(42)는 버퍼들의 하나 이상의 층을 포함할 수 있다. 예를 들어, 그리고 도 3과 관련하여 더 설명되는 바와 같이, 버퍼(42)는 데이터(예로서, 피연산자들, 중간 결과들, 완료된 결과들 등)를 저장할 수 있는 계산 버퍼(54) 및 메모리 어레이(36)로부터 전송된 명령들을 저장할 수 있는 명령 버퍼를 포함할 수 있다. 버퍼(42)는 데이터 버퍼 또는 단순 버퍼와 같은 추가적인 버퍼들도 포함할 수 있으며, 이들은 더 밀도 높은 저장을 제공할 수 있고, 실행된 명령들의 중간 또는 최종 결과들을 저장할 수 있다. 본 명세서에서 사용될 때, "버퍼(42)"는 계산 엔진(38)으로 그리고 그로부터 전송된 데이터 및/또는 명령들을 유지할 수 있는 임의 타입의 버퍼 층(예로서, 계산 버퍼, 명령 버퍼, 데이터 버퍼 등) 또는 임의 타입의 메모리를 지칭할 수 있다.
설명된 바와 같이, 내부 프로세서들을 갖는 메모리들은 메모리 내의, 예를 들어 내부 프로세서와 메모리 어레이 사이에서의 내부 통신이 전력 소비 및 처리 시간을 줄일 수 있으므로 향상된 처리 능력을 갖는다. 하나 이상의 실시예들에서, 실질적으로 메모리 장치(34) 내에서 명령들을 처리하도록 구성된 메모리 장치들(34)을 구비한 메모리 시스템들(30)은 처리 능력을 더 향상시킬 수 있다. 구체적으로, 메모리 장치(34)는 장치(34) 상의 메모리 어레이(36)에 대한 액세스를 조정하도록 구성될 수 있다.
메모리 장치 부분(52)의 상이한 컴포넌트들 사이의 가능한 통신을 예시하는 도 3의 메모리 장치 부분(52)에 메모리 어레이 액세스를 조정하기 위한 프로세스가 도시될 수 있다. 더구나, 메모리 장치(34)에서의 메모리 어레이 액세스를 조정하기 위한 프로세스(80)가 또한 도 4의 흐름도에서 설명될 수 있다. 도 4는 도 3에 도시된 메모리 장치 컴포넌트들 및 통신들을 설명할 수 있으므로, 도 3 및 4는 동시에 설명될 수 있다.
프로세스(80)는 시퀀서(40)가 명령 버퍼(56)로부터 명령을 페치할 때 시작될 수 있다(블록 82). 일 실시예에서, 명령은 예를 들어 (도 2에서와 같이) 외부 프로세서(32)에 의해 외부에서 메모리 어레이(36)로 전송되어, 명령 버퍼(56) 내에 버퍼링되었을 수 있다. 명령은 데이터에 대해 수행될 연산들, 메모리 어레이(36)에 대해 데이터를 판독 또는 기록하기 위한 커맨드들은 물론, 데이터 어드레스들(예로서, 데이터가 위치하는 메모리 어레이(36) 내의 뱅크 및 페이지)을 포함할 수 있다. 시퀀서는 제어 신호(58)를 명령 버퍼(56)에 전송하여, 명령들을 검색할 명령 버퍼 내의 행들을 식별함으로써 명령을 검색할 수 있다. 명령들은 시퀀서(40)로 전송(경로 60)될 수 있다.
하나 이상의 실시예들에서, 명령들은 직접 또는 간접적일 수 있다. 직접 명령은 데이터에 대해 수행될 연산들을 체계화하기 위한 커맨드들, 데이터를 판독 또는 기록하기 위한 커맨드들과 같은 다수의 커맨드들 및/또는 데이터의 어드레스들을 포함할 수 있다. 예를 들어, 직접 명령들은 메모리 어레이(36)로부터 데이터를 판독 또는 기록하기 위한 커맨드들, 데이터에 대한 메모리 어레이(36) 내의 어드레스들(예로서, 피연산자 A 및 피연산자 B를 판독할 장소)은 물론, 피연산자들(A, B)에 대한 소정의 연산들을 어떻게 체계화할지를 시퀀서(40)에 알리는 커맨드들을 포함할 수 있다. 간접 명령은 한 번에 하나의 커맨드씩 시퀀서(40)로 전송될 수 있는 비교적 더 간단한 커맨드들을 포함할 수 있다. 예를 들어, 간접 명령은 메모리 어레이(36)로부터 피연산자 A를 페치하기 위한 하나의 커맨드, 메모리 어레이(36)로부터 피연산자 B를 페치하기 위한 다른 커맨드, 피연산자들(A, B)에 대한 소정 연산들을 체계화하기 위한 제3 커맨드 및 완료된 결과들을 저장할 수 있는 어레이(36) 내의 어드레스를 식별하는 데 사용되는 제4 커맨드를 포함할 수 있다. 직접 명령들은 처리 속도를 증가시킬 수 반면, 직접 명령의 모든 부분들(예로서, 간접 명령의 상이한 커맨드들)이 함께 전송되므로, 간접 명령들은 더 간단한 메모리 장치(34)를 가능하게 할 수 있다. 예를 들어, 간접 명령들을 전송하도록 구성된 메모리 장치(34)에서, 시퀀서(40)는 더 간단할 수 있고, 버스(60) 또한 넓을 필요가 없으며, 그리고/또는 명령 버퍼(56)는 직접 명령들을 전송하는 명령 버퍼(56)만큼 넓을 필요가 없을 수 있다.
명령 버퍼(56)에 의해 전송되는 명령들은 메모리 어레이(36)로부터 데이터(예로서, 피연산자들)를 판독하거나 데이터(예로서, 완료된 결과들)를 그에 기록하기 위한 커맨드들을 포함할 수 있다. 예를 들어, 명령들은 어레이(36) 내의 소정 어드레스(예로서, 특정 뱅크 및 행)에 저장된 소정의 피연산자들을 검색하도록 시퀀서(40)에 지시할 수 있다. 대안으로서, 일부 명령들은 이전 연산들의 중간 결과들을 이용하여 실행될 수 있으므로, 명령들은 계산 버퍼(42)로부터 검색될 중간 결과들의 어드레스를 포함할 수 있다. 명령들이 중간 결과들을 이용하여 실행되는 경우, 시퀀서(40)는 메모리 어레이(36)에 액세스하는 것이 필요하지 않을 수 있다.
명령들이 메모리 어레이(36)에 저장된 피연산자들에 액세스하도록 시퀀서(40)에 지시하는 경우, 둘 이상의 커맨드(예로서, 판독 및 기록)가 어레이(36)의 동일 뱅크 내에서 동시에 발생하고 있는 경우에 발생할 수 있는 메모리 어레이(36)의 오류를 방지하기 위해 어레이(36)에 대한 액세스가 조정될 수 있다. 하나 이상의 실시예들에서, 메모리 장치(34)는 메모리 장치(34) 내에서 메모리 어레이 액세스의 조정이 수행될 수 있도록 구성될 수 있다. 일 실시예에서, 시퀀서(40)는 메모리 어레이 조정을 제어할 수 있으며, 메모리 어레이 액세스를 조정하기 위해 외부와 (예로서, 외부 프로세서(32)와) 통신할 수 있다. 그러나, 외부 장치들과의 통신은 실질적으로 감소할 수 있다. 예를 들어, 메모리 어레이(36)에 대한 액세스는 메모리 장치(34) 내의 페치 유닛(50)에 의해 실질적으로 제어될 수 있다.
프로세스(80)는 페치 유닛(50)에 의해 실질적으로 제어되는 메모리 어레이 액세스를 나타낸다. 시퀀서(40)가 명령들을 수신하면, 시퀀서(40)는 커맨드(62) 및 어드레스(64)를 포함하는 명령들을 페치 유닛(50)으로 전송할 수 있다(블록 84). 일 실시예에서, 페치 유닛(50)은 커맨드들(62) 및 어드레스들(64)을 메모리 제어부(48)로 전송할 수 있으며, 이 메모리 제어부는 명령들을 디코딩된 어드레스(68) 및 제어 신호(66)로 디코딩한다(블록 86). 디코딩된 어드레스(68) 및 제어 신호(66)는 적절한 어드레스들(예로서, 소정의 뱅크, 페이지 및/또는 행)로부터의 데이터의 판독 또는 기록을 지시할 수 있다. 이어서, 페치 유닛(50)은 데이터를 유지하는 뱅크 또는 데이터가 기록될 뱅크를 활성화(예로서, 개방)할 수 있다(블록 88).
페치 유닛(50)은 메모리 어레이에 대한 액세스를 실질적으로 제어하여, 둘 이상의 커맨드(예로서, 데이터 판독 또는 기록)가 메모리 어레이(36)의 동일 뱅크 상에서 수행되는 것을 방지할 수 있다. 그러한 메모리 어레이(36)에 대한 액세스의 조정은 본 기술들에 따른 다양한 구현들을 가질 수 있다. 일 실시예에서, 메모리 어레이(36)는 어레이(36) 내의 페이지가 열리거나 닫힐 때를 모니터링하도록 구성될 수 있는 제어 로직(74)은 포함할 수 있다. 제어 로직(74)은 관련 뱅크(즉, 페치 유닛(50)이 판독 또는 기록하도록 지시받은 뱅크)의 상태를 나타내는 제어 신호(76)를 페치 유닛(50)으로 전송하는 것을 지칭할 수 있는 "핸드쉐이킹"을 시작할 수 있다. 페치 유닛(50)은 관련 뱅크에 대해 커맨드들을 수행하기 전에 신호(76)를 기다릴 수 있다(블록 90).
관련 뱅크가 이용 가능한 경우(예로서, 커맨드들이 관련 뱅크에 대해 수행되고 있지 않은 경우), 페치 유닛(50)은 관련 뱅크로부터 판독하고 그리고/또는 그에 기록하는 커맨드(들)를 수행할 수 있다(블록 92). 시퀀서(40)에서 수신된 명령들이 데이터를 판독하기 위한 커맨드들을 포함하는 경우, 페치 유닛은 관련 뱅크로부터 데이터를 검색하고, 데이터를 계산 버퍼(54)로 전송할 수 있으며, 따라서 데이터는 계산 엔진(38)이 데이터에 대해 명령들을 실행하는 데에 이용될 수 있을 것이다. 게다가, 시퀀서(40)에서 수신된 명령들이 메모리 어레이에 데이터를 기록하기 위한 커맨드들을 포함하는 경우, 페치 유닛(50)은 메모리 어레이(36) 내의 지시된 어드레스에 데이터(예로서, 완료된 결과들)를 기록할 수 있다.
커맨드들이 수행되면(블록 92), 메모리 어레이(36)의 제어 로직(74)은 커맨드들이 관련 뱅크에 대해 수행되었음을 나타내는 신호(76)를 페치 유닛(50)으로 전송할 수 있다(블록 94). 이어서, 페치 유닛(50)은 메모리 어레이(36) 상의 관련 뱅크를 프리챠지(예로서, 폐쇄)할 수 있으며(블록 96), 제어 로직(74)은 관련 뱅크가 닫혔음을 확인하는 신호(74)를 전송할 수 있다(블록 98). 페치 유닛(50)은 커맨드가 수행되었고 데이터가 검색되었거나 메모리 어레이(36) 내의 적절한 어드레스(들)에 저장되었음을 나타내는 신호(78)를 시퀀서(40)로 전송할 수 있다(블록 100). 데이터는 계산 버퍼(54)로 전송(경로 70)될 수 있으며, 이 계산 버퍼는 계산 엔진(38)(도 3에는 도시되지 않고, 도 2에 도시됨)이 데이터를 이용하여 명령들을 실행할 때까지 데이터를 유지할 수 있다.
설명된 바와 같이, 상이한 구현들이 메모리 어레이 액세스의 조정을 위해 사용될 수 있다. 다른 실시예에서, 페치 유닛(50)은 타이머들(79)에 기초하여 커맨드들(예로서, 판독 또는 기록)의 수행 시기를 정할 수 있다. 타이머들(79)은 메모리 어레이(36)로의 그리고 그로부터의 데이터 전송들이 통상적으로 얼마나 오래 걸리는지에 대한 클럭 사이클들에 기초할 수 있다. 예를 들어, 메모리 어레이에서 뱅크가 열린 후에(블록 88), 그리고 뱅크에 대해 커맨드들을 수행하기 전에, 타이머(79)가 활성화될 수 있고, 페치 유닛(50)은 관련 뱅크에 대해 어떠한 다른 커맨드도 수행되고 있지 않음을 보증하도록 타이머(79)에 의해 설정된 타이머 조건들이 충족될 때까지 기다릴 수 있다(블록 90). 타이머 조건들이 충족되면, 페치 유닛(50)은 관련 뱅크로부터 판독하거나 그에 기록하기 시작할 수 있다(블록 92). 수행될 커맨드에 기초하여, 커맨드가 완료될 시기를 지시하도록 다른 타이머가 설정될 수 있다. 페치 유닛(50)은 메모리 어레이(36) 내의 뱅크를 프리챠지(폐쇄)하기 전에 커맨드 완료 타이머가 충족되기를 기다릴 수 있다. 더구나, 일 실시예에서는, 페치 유닛이 커맨드가 완료될 것으로 추정되는 시기에 기초하여 뱅크에 대해 커맨드를 수행하기 시작할 때 타이머(79)가 활성화될 수 있다. 그 뱅크에 대한 미래의 액세스들은 이전 커맨드로부터의 활성화된 타이머(79)에 기초할 수 있다. 하나 이상의 실시예들에서, 페치 유닛(50)이 커맨드들을 수행하거나 관련 뱅크를 닫기 전의 적절한 시간 양을 설정하기 위해 tRCD, tRP 등과 같은 타이머들(79)이 사용될 수 있다.
프로세스(80)는 메모리 어레이(36)에 대한 판독 및/또는 기록을 포함하는 명령들의 처리를 설명하지만, 시퀀서(40)는 메모리 어레이(36)에 대한 액세스를 포함하지 않는 명령들도 수신할 수 있다. 예를 들어, 시퀀서(40)는 계산 버퍼(54)의 소정 행에 이미 버퍼링되었을 수 있는 이전 연산들 또는 명령들의 중간 결과들을 이용하여 실행될 수 있는 명령들을 수신할 수 있다. 전술한 프로세스(80)를 수행하는 것이 아니라, 시퀀서(40)는 제어 신호(72)를 계산 버퍼(54)로 전송하여, 중간 결과들이 위치하는 계산 버퍼(54) 내의 행(들)을 식별할 수 있다. 데이터가 이미 계산 버퍼(54) 내에 있을 때, 피연산자들이 이미 계산 버퍼(54) 내에 이전 연산들로부터의 중간 결과들로서 버퍼링된 경우에 연산들을 수행하기 위해 계산 버퍼(54)와 메모리 어레이(36) 사이의 전송들이 발생하지 않을 수 있다.
더구나, 설명된 바와 같이, 버퍼(42)(도 2)는 분할되고 그리고/또는 메모리 장치(34)의 컴포넌트들에 대한 상이한 버스들을 가질 수 있는 하나 이상의 층들을 포함할 수 있다. 버퍼(42)는 시퀀서(40) 및 메모리 어레이(36)에 대한 개별 버스들을 각각 가진 개별 버퍼들(42)로서 도 3에 도시된 명령 버퍼(56) 및 계산 버퍼(54)를 포함할 수 있다. 그러나, 도 3의 개별 버퍼들(54, 56)은 데이터 및 명령들을 저장하기 위한 층들을 갖고 버퍼(42)(예로서, 결합된 버퍼들(54, 56))와 메모리 어레이(36) 및/또는 시퀀서(40) 사이에 공유 버스를 갖는 하나의 버퍼(42)일 수도 있다.
본 발명은 다양한 변경들 및 대안 형태들이 가능할 수 있지만, 특정 실시예들이 도면들에 예시되었고, 본 명세서에서 상세히 설명되었다. 그러나, 본 발명은 개시된 특정 형태들로 한정되는 것을 의도하지 않는다는 것을 이해해야 한다. 오히려, 본 발명은 아래에 첨부된 청구항들에 의해 정의되는 바와 같은 본 발명의 사상 및 범위 내에 속하는 모든 변경들, 균등물들 및 대안들을 커버한다.

Claims (30)

  1. 메모리 장치를 동작시키는 방법으로서,
    상기 메모리 장치 내부의 시퀀서에 의해, 상기 메모리 장치 내부의 명령 버퍼로부터 명령을 페치하는 단계;
    상기 명령을 상기 메모리 장치 내부의 페치 유닛에 전송하는 단계;
    상기 페치 유닛에 의해, 상기 메모리 장치 내의 메모리 어레이의 메모리 뱅크를 활성화하는 단계 - 상기 메모리 뱅크는 상기 명령에 대응함 -;
    상기 메모리 장치 내부의 프로세서에 의해 상기 명령을 실행하는 단계; 및
    상기 메모리 뱅크가 이용 가능함을 지시하는 신호를 상기 페치 유닛에 전송하는 단계
    를 포함하며,
    상기 메모리 뱅크를 활성화하는 단계는 상기 신호를 상기 페치 유닛에 전송한 후에만 일어나며,
    상기 명령을 실행하는 단계는 상기 신호에 응답하여 상기 메모리 어레이에 대한 판독 커맨드 및 기록 커맨드 중 하나 이상을 실행하는 단계를 포함하는 메모리 장치 동작 방법.
  2. 제1항에 있어서,
    명령을 페치하는 단계는 데이터에 대해 수행될 연산들, 또는 상기 메모리 어레이로부터 데이터를 판독하거나 상기 메모리 어레이에 데이터를 기록하기 위한 커맨드들을 페치하는 단계를 포함하는 메모리 장치 동작 방법.
  3. 제1항에 있어서,
    명령을 페치하는 단계는 복수의 커맨드를 포함하는 직접 명령을 페치하는 단계를 포함하는 메모리 장치 동작 방법.
  4. 제1항에 있어서,
    명령을 페치하는 단계는 상기 메모리 어레이 내의 제1 어드레스로부터 피연산자들을 검색하기 위한 명령들을 페치하는 단계를 포함하는 메모리 장치 동작 방법.
  5. 제1항에 있어서,
    명령을 페치하는 단계는 상기 메모리 장치 내의 계산 버퍼로부터 피연산자들을 검색하기 위한 명령들을 페치하는 단계를 포함하는 메모리 장치 동작 방법.
  6. 제1항에 있어서,
    상기 메모리 어레이에 대한 액세스를 조정하는 단계를 포함하며, 상기 조정은 상기 메모리 장치 내부에서 발생하는 메모리 장치 동작 방법.
  7. 제1항에 있어서,
    상기 단계들 각각은 외부 프로세서로부터의 명령 없이 일어나는 메모리 장치 동작 방법.
  8. 삭제
  9. 제1항에 있어서,
    상기 명령이 실행되었음을 지시하는 제2 신호를 상기 페치 유닛에 전송하는 단계를 포함하는 메모리 장치 동작 방법.
  10. 제9항에 있어서,
    상기 제2 신호에 기초하여 상기 메모리 뱅크를 프리챠지(precharge)하는 단계를 포함하는 메모리 장치 동작 방법.
  11. 제1항에 있어서,
    상기 메모리 뱅크를 활성화한 후에, 상기 페치 유닛에 동작 가능하게 결합된 타이머를 활성화하는 단계 - 상기 타이머는 상기 페치 유닛이 상기 뱅크에 대해 커맨드를 수행하기 시작할 수 있는 시간을 설정하고, 상기 커맨드는 상기 명령의 적어도 일부임 -; 및
    상기 타이머에 기초하여 상기 메모리 뱅크에 대해 상기 커맨드를 수행하는 단계 - 상기 커맨드는 판독 커맨드 및 기록 커맨드 중 하나 이상을 포함함 -
    를 포함하는 메모리 장치 동작 방법.
  12. 제11항에 있어서,
    상기 메모리 뱅크에 대해 이전의 커맨드가 완료된 시기에 기초하여 상기 시간을 설정하는 단계를 더 포함하는 메모리 장치 동작 방법.
  13. 메모리 장치로서,
    메모리 어레이로부터 수신된 명령을 저장하도록 구성되는 명령 버퍼;
    상기 메모리 장치 외부에 있는 소스로부터 커맨드를 수신하지 않고 데이터에 대해 상기 명령을 수행하도록 구성되는 내부 프로세서;
    상기 데이터를 저장하도록 구성되는 상기 메모리 어레이;
    상기 명령 버퍼로부터 상기 명령을 검색하도록 구성되는 시퀀서; 및
    상기 메모리 어레이에 대한 액세스를 제어하도록 구성되며, 상기 시퀀서로부터 상기 명령을 수신하도록 구성되는 페치 유닛 - 상기 명령은 데이터의 어드레스, 및 상기 메모리 어레이로부터 상기 데이터를 판독하거나 상기 메모리 어레이에 상기 데이터를 기록하기 위한 커맨드를 포함하고, 상기 시퀀서는 상기 커맨드 및 상기 어드레스를 상기 페치 유닛에 전송하도록 구성됨 -
    을 포함하는 메모리 장치.
  14. 제13항에 있어서,
    상기 페치 유닛은 상기 메모리 장치 외부에 있는 소스로부터 제어 신호를 수신하지 않고 동작하도록 구성되는 메모리 장치.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020127012610A 2009-10-21 2010-10-07 내부 프로세서들을 구비한 메모리 및 메모리 액세스 제어 방법들 KR101354346B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/603,393 2009-10-21
US12/603,393 US8719516B2 (en) 2009-10-21 2009-10-21 Memory having internal processors and methods of controlling memory access
PCT/US2010/051844 WO2011049753A1 (en) 2009-10-21 2010-10-07 Memory having internal processors and methods of controlling memory access

Publications (2)

Publication Number Publication Date
KR20120082928A KR20120082928A (ko) 2012-07-24
KR101354346B1 true KR101354346B1 (ko) 2014-01-22

Family

ID=43447261

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127012610A KR101354346B1 (ko) 2009-10-21 2010-10-07 내부 프로세서들을 구비한 메모리 및 메모리 액세스 제어 방법들

Country Status (6)

Country Link
US (2) US8719516B2 (ko)
EP (1) EP2491561B1 (ko)
KR (1) KR101354346B1 (ko)
CN (1) CN102640226B (ko)
TW (1) TWI442244B (ko)
WO (1) WO2011049753A1 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8281395B2 (en) * 2009-01-07 2012-10-02 Micron Technology, Inc. Pattern-recognition processor with matching-data reporting module
US8521958B2 (en) 2009-06-04 2013-08-27 Micron Technology, Inc. Internal processor buffer
US8380916B2 (en) 2009-06-04 2013-02-19 Micron Technology, Inc. Control of page access in memory
US8234460B2 (en) 2009-06-04 2012-07-31 Micron Technology, Inc. Communication between internal and external processors
US9535876B2 (en) 2009-06-04 2017-01-03 Micron Technology, Inc. Conditional operation in an internal processor of a memory device
US9477636B2 (en) 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory
TWI631459B (zh) * 2011-11-04 2018-08-01 曾銘松 記憶體裝置與其運作方法
US9823864B2 (en) 2014-06-02 2017-11-21 Micron Technology, Inc. Systems and methods for throttling packet transmission in a scalable memory system protocol
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
CN107408404B (zh) 2015-02-06 2021-02-12 美光科技公司 用于存储器装置的设备及方法以作为程序指令的存储
FR3032814B1 (fr) * 2015-02-18 2018-02-02 Upmem Circuit dram muni d'un processeur integre
CN108369507A (zh) * 2015-10-16 2018-08-03 三星电子株式会社 用于使用存储器中处理来处理指令的方法和设备
KR20170060739A (ko) 2015-11-25 2017-06-02 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
KR102548591B1 (ko) * 2016-05-30 2023-06-29 삼성전자주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR20170136829A (ko) 2016-06-02 2017-12-12 삼성전자주식회사 반도체 장치, 메모리 장치 및 메모리 장치의 동작 방법
US10423353B2 (en) * 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
KR20180093648A (ko) * 2017-02-14 2018-08-22 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10684955B2 (en) * 2017-04-21 2020-06-16 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations
US10236038B2 (en) * 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10416927B2 (en) 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
KR102395463B1 (ko) 2017-09-27 2022-05-09 삼성전자주식회사 적층형 메모리 장치, 이를 포함하는 시스템 및 그 동작 방법
US10866900B2 (en) 2017-10-17 2020-12-15 Samsung Electronics Co., Ltd. ISA extension for high-bandwidth memory
US10825491B2 (en) * 2017-12-11 2020-11-03 Micron Technology, Inc. Systems and methods for writing zeros to a memory array
WO2019202371A1 (en) * 2018-04-16 2019-10-24 Badenhorst Emile A processor and a method of operating a processor
KR102665410B1 (ko) 2018-07-30 2024-05-13 삼성전자주식회사 메모리 장치의 내부 프로세싱 동작 방법
TWI749331B (zh) * 2018-10-11 2021-12-11 力晶積成電子製造股份有限公司 具有記憶體內運算架構的記憶體及其操作方法
US10483978B1 (en) * 2018-10-16 2019-11-19 Micron Technology, Inc. Memory device processing
US10884664B2 (en) 2019-03-14 2021-01-05 Western Digital Technologies, Inc. Executable memory cell
US10884663B2 (en) * 2019-03-14 2021-01-05 Western Digital Technologies, Inc. Executable memory cells
US11687363B2 (en) * 2019-07-15 2023-06-27 Micron Technology, Inc. Internal management traffic regulation for memory sub-systems
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
US11720354B2 (en) * 2020-01-07 2023-08-08 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
FR3118528B1 (fr) 2020-12-28 2023-12-01 Commissariat Energie Atomique Module mémoire adapté à mettre en oeuvre des fonctions de calcul
US20230060826A1 (en) * 2021-09-01 2023-03-02 Micron Technology, Inc. Command scheduling component for memory
US11887688B2 (en) * 2021-10-26 2024-01-30 Micron Technology, Inc. Techniques for indicating row activation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188086A1 (en) * 2002-03-29 2003-10-02 International Business Machines Corporation Method and apparatus for memory with embedded processor

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5131082A (en) * 1989-06-09 1992-07-14 International Business Machines Corporation Command delivery for a computing system for transfers between a host and subsystem including providing direct commands or indirect commands indicating the address of the subsystem control block
JP2505887B2 (ja) * 1989-07-14 1996-06-12 富士通株式会社 命令処理システム
KR960001273B1 (ko) * 1991-04-30 1996-01-25 가부시키가이샤 도시바 단일칩 마이크로컴퓨터
US5634073A (en) * 1994-10-14 1997-05-27 Compaq Computer Corporation System having a plurality of posting queues associated with different types of write operations for selectively checking one queue based upon type of read operation
US6810449B1 (en) * 1995-10-19 2004-10-26 Rambus, Inc. Protocol for communication with dynamic memory
JPH09293015A (ja) * 1996-04-24 1997-11-11 Mitsubishi Electric Corp メモリシステムおよびそれに用いられる半導体記憶装置
US6298413B1 (en) * 1998-11-19 2001-10-02 Micron Technology, Inc. Apparatus for controlling refresh of a multibank memory device
US6442673B1 (en) * 1999-11-05 2002-08-27 I.P. First L.L.C. Update forwarding cache for address mode
US6629234B1 (en) * 2000-03-30 2003-09-30 Ip. First, L.L.C. Speculative generation at address generation stage of previous instruction result stored in forward cache for use by succeeding address dependent instruction
US6859856B2 (en) * 2001-10-23 2005-02-22 Flex P Industries Sdn. Bhd Method and system for a compact flash memory controller
TW561396B (en) * 2001-11-02 2003-11-11 Via Tech Inc Arbitration device and method for reading and writing operation of memory
US6857055B2 (en) * 2002-08-15 2005-02-15 Micron Technology Inc. Programmable embedded DRAM current monitor
JP2004213337A (ja) 2002-12-27 2004-07-29 Nec Computertechno Ltd 半導体記憶装置及び実装型半導体装置
JP3973597B2 (ja) * 2003-05-14 2007-09-12 株式会社ソニー・コンピュータエンタテインメント プリフェッチ命令制御方法、プリフェッチ命令制御装置、キャッシュメモリ制御装置、オブジェクトコードの生成方法および装置
US20060129740A1 (en) * 2004-12-13 2006-06-15 Hermann Ruckerbauer Memory device, memory controller and method for operating the same
US9606807B2 (en) * 2009-06-04 2017-03-28 Micron Technology, Inc. Direct communication with a processor internal to a memory device
US8234460B2 (en) 2009-06-04 2012-07-31 Micron Technology, Inc. Communication between internal and external processors
US8380916B2 (en) 2009-06-04 2013-02-19 Micron Technology, Inc. Control of page access in memory
US9535876B2 (en) * 2009-06-04 2017-01-03 Micron Technology, Inc. Conditional operation in an internal processor of a memory device
US9684632B2 (en) * 2009-06-04 2017-06-20 Micron Technology, Inc. Parallel processing and internal processors
US8521958B2 (en) * 2009-06-04 2013-08-27 Micron Technology, Inc. Internal processor buffer
US9477636B2 (en) * 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188086A1 (en) * 2002-03-29 2003-10-02 International Business Machines Corporation Method and apparatus for memory with embedded processor

Also Published As

Publication number Publication date
US20110093665A1 (en) 2011-04-21
EP2491561B1 (en) 2019-12-04
TW201137628A (en) 2011-11-01
US20140244948A1 (en) 2014-08-28
US9164698B2 (en) 2015-10-20
TWI442244B (zh) 2014-06-21
US8719516B2 (en) 2014-05-06
CN102640226A (zh) 2012-08-15
CN102640226B (zh) 2015-11-25
KR20120082928A (ko) 2012-07-24
EP2491561A1 (en) 2012-08-29
WO2011049753A1 (en) 2011-04-28

Similar Documents

Publication Publication Date Title
KR101354346B1 (ko) 내부 프로세서들을 구비한 메모리 및 메모리 액세스 제어 방법들
US11914530B2 (en) Memory having internal processors and data communication methods in memory
US10970247B2 (en) Conditional operation in an internal processor of a memory device
US9606807B2 (en) Direct communication with a processor internal to a memory device
US8521958B2 (en) Internal processor buffer
TWI529534B (zh) 用於在內部及外部處理器之間通信之系統及方法
US20200293452A1 (en) Memory device and method including circular instruction memory queue
US20240184724A1 (en) Memory having internal processors and data communication methods in 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
FPAY Annual fee payment

Payment date: 20161221

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180104

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200107

Year of fee payment: 7