KR102439067B1 - 커맨드 선택 폴리시 - Google Patents

커맨드 선택 폴리시 Download PDF

Info

Publication number
KR102439067B1
KR102439067B1 KR1020207014311A KR20207014311A KR102439067B1 KR 102439067 B1 KR102439067 B1 KR 102439067B1 KR 1020207014311 A KR1020207014311 A KR 1020207014311A KR 20207014311 A KR20207014311 A KR 20207014311A KR 102439067 B1 KR102439067 B1 KR 102439067B1
Authority
KR
South Korea
Prior art keywords
command
commands
priority
write
read
Prior art date
Application number
KR1020207014311A
Other languages
English (en)
Other versions
KR20200059318A (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 KR20200059318A publication Critical patent/KR20200059318A/ko
Application granted granted Critical
Publication of KR102439067B1 publication Critical patent/KR102439067B1/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/1689Synchronisation and timing concerns
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and 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/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Bus Control (AREA)

Abstract

전자 메모리 또는 저장소를 위한 커맨드 선택 폴리시와 관련된 장치 및 방법이 설명된다. 메모리 제어기로의 커맨드들은 커맨드의 타입, 하나의 커맨드가 다른 커맨드에 대해 수신되었을 때의 타이밍, 하나의 커맨드가 메모리 장치로 발행될 준비가 될 때의 타이밍, 또는 그러한 팩터들의 일부 조합에 기초하여 우선순위화될 수 있다. 예를 들어, 메모리 제어기는 특정 타입들의 커맨드들(예를 들어, 판독 커맨드들)이 다른 타입들의 커맨드들(예를 들어, 기록 커맨드들)보다 우선순위화되는 선-준비, 선착순(FRFCFS) 폴리시를 사용할 수도 있다. 상기 폴리시는 커맨드들 간 또는 커맨드들 사이의 의존성들 또는 관계들에 기초하여 선-준비, 선착순(FRFCFS) 폴리시와 같은 예외들을 사용할 수 있다. 일 예는 각각의 커맨드들에 대응하는 카테고리에 기초한 우선순위 큐로 커맨드를 삽입하는 단계, 및 발행할 커맨드를 선택하기 위해 우선순위의 순서로 복수의 우선순위 큐들을 반복하는 단계를 포함할 수 있다.

Description

커맨드 선택 폴리시
본 개시는 일반적으로 메모리에 관한 것으로, 보다 상세하게는 커맨드 선택 폴리시(command selection policy)에 관련된 장치 및 방법에 관한 것이다.
메모리 장치는 일반적으로 컴퓨터 또는 기타 전자 디바이스 내의 내부, 반도체, 집적 회로로 제공된다. 휘발성 및 비-휘발성 메모리를 포함하여 다양한 유형의 메모리가 존재한다. 휘발성 메모리는 그 데이터를 유지하기 위해 전력이 필요할 수 있으며 그 중에서 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 및 동기식 동적 RAM(SDRAM)을 포함한다. 비-휘발성 메모리는 전원이 공급되지 않을 때 저장된 데이터를 보유함으로써 영구 데이터를 제공할 수 있으며, 그 중에서 NAND 플래시 메모리, NOR 플래시 메모리, 판독 전용 메모리(ROM), 전기적 소거 가능한 프로그래머블 ROM(EEPROM), 소거 가능한 프로그래머블 ROM(EPROM) 및 위상 변화 랜덤 액세스 메모리(PCRAM), 저항성 랜덤 액세스 메모리(RRAM) 및 자기 저항 랜덤 액세스 메모리(MRAM)를 포함할 수 있다.
메모리는 다양한 전자 어플리케이션들을 위한 휘발성 및 비-휘발성 데이터 저장소로도 활용된다. 비-휘발성 메모리는, 예를 들어, 개인용 컴퓨터, 휴대용 메모리 스틱, 디지털 카메라, 휴대용 전화기, MP3 플레이어와 같은 휴대용 음악 플레이어, 영화 플레이어 및 기타 전자 디바이스에서 사용될 수 있다. 메모리 셀들은 어레이로 배열될 수 있으며, 어레이는 메모리 장치에서 사용된다.
다양한 컴퓨팅 시스템은 메모리(예를 들어, 메모리 시스템)에 연결된 프로세싱 자원을 포함하고, 이는 명령 세트(예를 들어, 프로그램, 애플리케이션 등)의 실행과 관련하여 액세스된다. 메모리 시스템은 프로세싱 자원들로부터 수신된 커맨드들(예를 들어, 판독 및 기록)이 메모리 시스템에 의해 실행되는 순서를 결정하는데 사용되는 스케줄링 폴리시를 구현할 수 있다. 컴퓨팅 시스템 상에서 실행되는 프로그램의 실행 시간이, 예를 들어 메모리에 대한 액세스 요청과 관련된 실행 시간에 의해 영향을 받기 때문에 이러한 스케줄링 폴리시는 컴퓨팅 시스템 성능에 영향을 줄 수 있다.
도 1은 메모리 시스템을 포함하고 본 개시의 다수의 실시예에 따라 커맨드 선택 폴리시를 구현할 수 있는 컴퓨팅 시스템 형태에서 장치의 블록도이다.
도 2는 본 개시의 다수의 실시예에 따라 커맨드 선택 폴리시를 구현할 수 있는 제어기의 블록도이다.
도 3A 및 3B는 본 개시의 다수의 실시예에 따라 커맨드 선택 폴리시를 구현하는 것과 관련된 순서도를 도시한다.
도 4는 본 개시의 다수의 실시예에 따른 커맨드 선택 폴리시를 구현하는 것과 관련된 커맨드의 예를 도시한다.
본 개시는 커맨드 선택 폴리시와 관련된 장치 및 방법을 포함한다. 예시적인 방법은 메모리 제어기에 복수의 커맨드를 수신하는 단계, 복수의 커맨드 각각을 각각의 커맨드 카테고리에 기초하여 복수의 우선순위 큐 중 하나에 삽입하는 단계, 및 우선순위 큐 중 하나로부터, 큐의 우선순위 및 적어도 하나의 커맨드의 카테고리에 기초하여 메모리 제어기로 발행하기 위하여 복수의 커맨드 중 하나를 선택하는 단계를 포함할 수 있다.
본 개시의 다수의 실시예는 이전의 접근들과 비교할 때 개선된 커맨드 선택 폴리시를 제공할 수 있다. 예를 들어, 일부 이전 커맨드 선택 폴리시는 선착순(first-come, first-served, FCFS) 및 선-준비, 선착순(first-ready, first-come, first-served, FRFCFS)이 포함된다. 선착순 폴리시는 커맨드가 제어기에 의해 수신된(예를 들어, 디코딩된) 순서에 기초하여 메모리 장치(예를 들어, DRAM 장치와 같은 주 메모리)에 의한 실행을 위해 메모리 제어기에 수신된 커맨드를 스케줄링하는 것을 포함할 수 있다. 따라서, 가장 오래된 커맨드가 먼저 실행된다. 그러나, 다양한 메모리 시스템은 커맨드가 발행될 수 있는지(예를 들어, 메모리 제어기로부터 메모리 장치로) 여부에 영향을 줄 수 있는 타이밍 제약을 포함한다. 예를 들어, 메모리 어레이와 관련된 다양한 지원 회로(예를 들어, 행 디코드 회로, 열 디코드 회로, 감지 증폭기 회로, 프리차지(precharge) 회로, 리프레시 회로 등)는 특정 커맨드가 메모리 장치에 의한 실행이 준비된 때/여부를 결정하는 타이밍 제약을 포함할 수 있다. 따라서, 선착순 폴리시는 더 새로운 커맨드가 (예를 들어, 타이밍 제약에 기초하여) 메모리 장치로의 발행을 준비할 수 있지만, 이전 커맨드가 실행될 때까지 커맨드가 메모리 장치에 전송될 수 없기 때문에 실행 대기 시간을 증가시킬 수 있다.
선-준비, 선착순 폴리시는 선착순 폴리시와 비교할 때 대기 시간을 감소시킬 수 있다. 예를 들어, 선-준비, 선착순 폴리시에서 메모리 제어기는 커맨드 큐를 반복할 수 있고, 발행되기 위해 준비되어 마주치는 첫 번째 커맨드를 선택할 수 있다. 따라서, 아직 준비되지 않은 이전 커맨드는 더 새로운 대기중인 준비된 커맨드를 위해 스킵될 수 있다.
예를 들어, 선-준비, 선착순 폴리시는 행 커맨드보다 열 커맨드의 우선순위를 포함할 수 있는데, 폴리시가 발행될 준비가 된 가장 오래된 열 커맨드를 위한 커맨드 큐를 탐색하는 단계를 포함하고, 그리고 발행 가능한 열 커맨드가 발견되지 않으면, 발행될 준비가 된 가장 오래된 행 커맨드가 메모리 장치로의 발행을 위해 선택된다. 당업자로서, 메모리 및 저장소 어레이는 열 및 행으로 논리적으로 또는 물리적으로, 또는 둘 다로 구성될 수 있다. 따라서, 여기에서 사용된 바와 같이, "열" 커맨드는 메모리 장치의 어레이의 개방된(예를 들어, 활성화된) 행(예를 들어, 페이지)에 대응하는 어드레스로 향하는 커맨드를 지칭하고, "행" 커맨드는 어레이의 폐쇄된 (예를 들어, 비활성화된) 행에 대응하는 어드레스로 향하는 커맨드를 지칭한다.
선착순 폴리시 또는 선-준비, 선착순 폴리시 중 어느 것도 판독 커맨드(예를 들어, 중복 기재 커맨드)를 우선순위화하지 않는다. 처리 자원(예를 들어, 중앙 처리 장치)에 의해 실행되는 다양한 명령들이 다른 커맨드들의 실행에 의존할 수 있기 때문에 판독 커맨드들의 우선순위화는 시스템 성능을 향상시킬 수 있다. 예를 들어, CPU에 의해 실행되는 다양한 커맨드는 메모리 시스템으로 발행된 판독 커맨드에 의존할 수 있다. 따라서, 종속 커맨드들은 판독 커맨드에 대응하는 데이터가 CPU로 반환될 때까지 CPU에 의해 실행될 수 없다. 이와 같이, 메모리 시스템으로 전송된 판독 커맨드의 실행에 있어서의 지연은 프로그램 실행에 있어서의 지연을 초래할 수 있다.
본 개시의 다수의 실시예는 기록 커맨드들보다 판독 커맨드들을 우선순위화하는 커맨드 선택 폴리시를 구현할 수 있는데, 이는 다른 이점들 중에서, 메모리로의 판독 요청들에 관련된 대기 시간을 감소시키는 것과 같은 이점들을 제공할 수 있다. 여기에서 추가로 설명되는 바와 같이, 다수의 실시예는 엄격한 판독 우선순위와 함께 선-준비, 선착순 폴리시와 유사성을 가지는 커맨드 선택 폴리시를 구현하는 단계를 포함한다. 다수의 실시예는 기계-판독 가능 매체에 저장된 명령들의 실행을 통해 구현될 수 있는데, 이는 다양한 비-일시적 매체를 포함할 수 있지만, 다른 유형의 기계 판독 가능 매체 중에서 고체-상태 메모리, 위상-변화 메모리, 강유전성 메모리, 광학 매체, 및/또는 자기 매체와 같은 휘발성 및/또는 비 휘발성 메모리를 포함할 수 있으나 이에 제한되지 않는다.
본 개시의 다음의 상세한 설명에서, 본 개시의 일부를 형성하고 본 개시의 다수의 실시예가 어떻게 실시될 수 있는지를 예시의 방법으로 나타낸 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 개시의 실시예를 실시할 수 있도록 충분히 상세하게 설명되며, 다른 실시예가 이용될 수 있고 프로세스, 전기적 및/또는 구조적 변경이 본 개시의 범위를 벗어나지 않고 이루어질 수 있음을 이해해야 한다. 여기에서 사용되는 바와 같이, 지정자 "N"은 그렇게 지정된 다수의 특정 특징들이 본 개시의 다수의 실시예에 포함될 수 있음을 나타낸다.
여기에서 사용되는 바와 같이, "다수의(a number of)" 무언가는 그러한 것들 중 하나 이상을 지칭할 수 있다. 예를 들어, 다수의 메모리 장치는 하나 이상의 메모리 장치들을 지칭할 수 있다. "복수(plurality)"의 무언가는 2개 이상을 의도한다. 또한, 여기에서 사용되는 바와 같이, 도면들에서 참조 부호들과 특별히 관련하여 "N"과 같은 지정자는 그렇게 지정된 다수의 특정 특징이 본 개시의 다수의 실시예에 포함될 수 있음을 나타낸다.
여기에서의 도면들은 첫 번째 숫자 또는 숫자들이 도면 번호에 대응되고 나머지 숫자들이 도면에서 요소 또는 구성 요소를 식별하는 번호 부여 규칙을 따른다. 서로 다른 도면들 사이의 유사한 요소들 또는 구성 요소들은 유사한 숫자들을 사용하여 식별될 수 있다. 알 수 있는 바와 같이, 여기에서의 다양한 실시예에 도시된 요소들은 본 개시의 다수의 추가적인 실시예를 제공하도록 추가, 교환 및/또는 제거될 수 있다. 또한, 도면들에 제공된 요소들의 비율 및 상대적 크기는 본 개시의 다양한 실시예를 예시하기 위한 것이며 제한하는 의미로 사용되어서는 안 된다.
도 1은 메모리 시스템(120)을 포함하는 컴퓨팅 시스템 형태에서 장치의 블록도이고, 본 개시의 다수의 실시예에 따라 커맨드 선택 폴리시를 구현할 수 있다. 여기에서 사용되는 바와 같이, "장치"는 회로 또는 회로들, 다이 또는 다이들, 모듈 또는 모듈들, 장치 또는 장치들, 시스템 또는 시스템들과 같은 다양한 구조들 또는 구조들의 조합을 지칭할 수 있지만, 이에 제한되지는 않는다. 예를 들어, 제어기(104), 호스트(102), 시스템(120) 및/또는 장치(110-1 내지 110-N)는 개별적으로 "장치"라고 지칭될 수 있다.
이 예에서, 컴퓨팅 시스템은(예를 들어, 인터페이스(103)를 통해) 제어기 (104)에 연결된 호스트 (102)를 포함하고, 이는 (예를 들어, 인터페이스(105)를 통해) 메모리 시스템(120)에 연결된다. 컴퓨팅 시스템은 랩탑 컴퓨터, 개인용 컴퓨터, 디지털 카메라, 디지털 기록 및 재생 장치, 휴대 전화, PDA, 메모리 카드 리더, 인터페이스 허브, 센서일 수 있다. 다른 시스템들 중에서, 사물 인터넷(IoT) 가능 장치 및 호스트(102)는 (예를 들어, 제어기(104)를 통해) 메모리(120)에 액세스할 수 있는 다수의 처리 자원(예를 들어, 하나 이상의 프로세서들)을 포함할 수 있다. 호스트(102)는 (예를 들어, 제어기(104)를 통해 메모리 시스템 (120)으로부터) 운영 체제(OS) 및/또는 그것에 로딩될 수 있는 다양한 애플리케이션의 실행을 담당할 수 있다.
제어기(104)는 호스트(102)로부터 메모리 트랜잭션 요청들(예컨대, 각각 로드 및 저장 커맨드로 지칭될 수 있는 판독 및 기록 커맨드의 형태로)을 수신할 수 있다. 제어기(104)는 인터페이스(103, 105)를 통해 호스트(102)와 메모리 시스템(120) 사이에서 커맨드 및/또는 데이터를 전송할 수 있으며, 인터페이스는 예를 들어, 적합한 프로토콜을 사용하는 버스와 같은 물리적 인터페이스를 포함할 수 있다. 그러한 프로토콜은 주문형이거나 독점적일 수 있거나, 하나 또는 두개의 인터페이스(103 및 105)가 주변 구성 요소 상호연결 익스프레스(Peripheral Component Interconnect Express, PCI Express), Gen-Z, CCIX 등과 같은 표준화 된 프로토콜을 이용할 수 있다. 제어기(104)는 하드웨어, 펌웨어 또는 소프트웨어 형태의 제어 회로, 또는 이 3개의 어떤 조합을 포함할 수 있다. 예를 들어, 제어기(104)는 상태 기계, 시퀀서, 및/또는 일부 다른 유형의 제어 회로들을 포함할 수 있으며, 이는 인쇄 회로 기판에 결합된 주문형 집적 회로(ASIC)의 형태로 구현될 수 있다. 다수의 실시예에서, 제어기(104)는(예를 들어, 시스템-온-칩(SOC) 구성에서) 호스트(102)와 공존할 수 있다. 또한, 제어기(104)는 메모리 시스템(120)과 공존할 수 있다. 제어기(104)는, 예를 들어, 도 2와 관련하여 설명된 제어기(204)와 같은 제어기일 수 있으며, 아래에 더 설명되는 바와 같이 본 개시의 다수의 실시예에 따라 커맨드 선택 폴리시를 구현하도록 구성될 수 있다.
도 1에 도시된 바와 같이, 메모리 시스템(120)은 다수의 메모리 장치(110-1, 110-2, ... , 110-N)를 포함하는데, 이는 총괄적으로 메모리(110)로 지칭될 수 있다. 메모리(110)는 다수의 물리적 메모리 "칩", 또는 메모리 셀들의 다수의 어레이(예를 들어, 뱅크들) 각각이 포함하는 다이들(dice) 및 어레이(들)에 액세스하는 단계와 관련된(예를 들어, 어레이로부터 데이터를 판독하고 어레이에 데이터를 기록하는) 대응하는 지원 회로(예를 들어, 어드레스 회로, I/O 회로, 제어 회로, 판독/기록 회로 등)를 포함할 수 있다. 예를 들어, 메모리 장치들(110-1 내지 110-N)은 다수의 DRAM 장치들, SRAM 장치들, PCRAM 장치들, RRAM 장치들, FeRAM, 위상 변화 메모리, 3DXpoint 및/또는 플래시 메모리 장치들을 포함할 수 있다. 다수의 실시예에서, 메모리 시스템(110)은 컴퓨팅 시스템을 위한 메인 메모리로서 기능할 수 있다.
도 2는 본 개시의 다수의 실시예에 따라 커맨드 선택 폴리시를 구현할 수 있는 제어기(204)의 블록도이다. 제어기(204)는 도 1에 도시된 제어기(104)와 같은 제어기의 일부일 수 있다. 예를 들어, 제어기(204)는 특정 커맨드 선택 폴리시를 구현하는데 사용되는 제어기(104)의 커맨드 선택 서브 시스템을 나타낼 수 있다. 여기에서 사용된 바와 같이, 커맨드 선택 폴리시는 커맨드 스케줄링 폴리시으로 지칭될 수 있고 메모리 장치로의 발행을 위한 커맨드를 선택하는 단계 및/또는 커맨드를 스케줄링하는 단계(예를 들어, 우선순위화)를 지칭할 수 있다. 제어기(204)에 의해 구현될 수 있는 커맨드 선택 폴리시의 예는 도 3에 도시된 순서도와 관련하여 더 설명된다.
제어기(204)는 호스트(예를 들어, 102)와 같은 장치로부터 수신 된 메모리 시스템(예를 들어, 120)으로 들어오는 액세스 요청과 관련된(총괄적으로 커맨드들(232)로 지칭되는) 커맨드(232-0, 232-1, 232-2, ..., 232-(i-1))를 저장하는 커맨드 큐(230)를 포함한다. 제어기(204)는 들어오는 액세스 요청을 디코딩하고 원하는 커맨드 선택 폴리시에 따라 대응하는 커맨드들(232)을 분류할 수 있다. 예를 들어, 하나의 커맨드와 다른 커맨드와의 관계(예를 들어, 기록-후-판독 의존성)를 포함하는 다양한 다른 요인들 중에서, 수신된 커맨드들(232)은 커맨드 유형(예를 들어, 판독 또는 기록), 커맨드 어드레스(예를 들어, 커맨드가 메모리 장치의 개방된 또는 폐쇄된 행을 목표로 하는지의 여부), 및/또는 커맨드 에이지(age)(예를 들어, 수신된 이후의 시간)를 포함하지만, 이에 제한되지 않는 다양한 요소들에 기초하여 분류될 수 있다.
도 2에 도시된 바와 같이, 제어기(204)는 원하는 커맨드 선택 폴리시를 구현하는 데 사용되는 커맨드 선택 로직(240)을 포함할 수 있다. 이 예에서, 커맨드 선택 로직(240)은 복수의 우선순위화된 큐(248-0(Q0), 248-1(Q1), 248-2(Q2), ..., 248-(k-1)(Qk-1))를 포함하는데, 이는 원하는 커맨드 선택 폴리시를 구현하기 위해 사용되는 시간 파라미터 로직(242) 및 우선순위 로직(244)뿐 아니라, 총괄적으로 우선순위화된 큐(248)로 지칭될 수 있다.
타이밍 파라미터 로직(242)은 커맨드들이 발행될 메모리 장치에 액세스하는 것과 관련된 다양한 타이밍 제약들을 추적하는 것을 담당할 수 있다. 이러한 시간 제약들은 다양한 다른 신호들 중에서 다양한 제어 신호들(예를 들어, 판독/기록 가능 신호들) 및/또는 어드레스 신호들(예를 들어, 행/열 어드레스 신호들)의 타이밍과 같은 제약들을 포함할 수 있다. 예를 들면, 메모리 장치가 DRAM 장치인 경우, 이러한 타이밍 파라미터들은, 다양한 다른 타이밍 파라미터들(예를 들어, tRAS, tCAS, tCP, tASR, tASC, tCAH 등) 중에서, 활성화 커맨드 및 열 커맨드 사이에 원하는 최소 시간(예를 들어, tRCD), 열 커맨드들 사이에 원하는 최소 시간(예를 들어, tCCD), 프리차지 커맨드 및 활성화 커맨드 사이의 최소 타이밍(예를 들어, tRP)을 포함할 수 있다. 예를 들면, 로직(242)은 우선순위화된 큐(248)들에서 커맨드들이 발행할 준비가 되었는지(예를 들어, 커맨드들이 장치 타이밍 파라미터들을 위반하지 않고 실행을 위해 메모리 장치에 송신될 수 있는지 여부)를 결정하기 위해 사용될 수 있다. 여기서 사용되는 바와 같이, 용어 "큐"는 특정 데이터 구조 구현으로 제한되도록 의도되지 않고, 오히려 용어 큐는 다양한 방식으로 조직된 요소들의 집합을 지칭할 수 있고, 다른 것들 중에서, 하나 이상의 상이한 타입들의 큐들 및/또는 리스트(list)들(예를 들어, 리스트, 링크된 리스트 등)의 특성들을 가질 수 있다.
우선순위 로직(244)은 큐(230)에서 커맨드들(232)을 반복하고, 수신된 커맨드들(232)에 대한 지정된 우선순위 카테고리들을 결정하고, 우선순위 큐들(248) 중 선택된 것으로 커맨드들(232)을 삽입하고, 복수의 큐들(248)을 (우선순위의 순서로) 반복하여 메모리 장치로 발행할 특정 커맨드를 선택하는 것을 담당할 수 있다. 도 2에서, 화살표(247)는 메모리 장치에 전송된 선택된 커맨드를 나타내고, 화살표(249)는 메모리 장치로부터 (예를 들어, 선택된 커맨드에 대응하는) 응답을 나타낸다. 화살표(233)는 지정된 카테고리 및 대응하는 우선순위 레벨에 기초하여 우선순위 큐들(248) 중 하나에 삽입하기 위한 커맨드 선택 로직(240)에 제공된 커맨드(232)를 나타낸다. 화살표(235)는, 예를 들면, 커맨드 선택 로직(240)이 커맨드들(232)을 반복하고 이들이 메모리 장치로 발행되면 큐(230)로부터 커맨드들(232)을 제거하는 것과 관련된 제어 신호를 나타낸다.
다수의 실시예에서, 우선순위 큐들(248)은 큐(248-0)가 최고 우선순위를 갖고 큐(248-(k-1))가 가장 낮은 우선순위를 갖도록 우선순위 순서로 인덱싱된다. 상이한 우선순위들을 갖는 큐들은 제1 우선순위, 제2 우선순위, 제3 우선순위 등을 갖는 것으로 지칭될 수도 있다. 하나의 큐의 우선순위의 차이는 다른 큐에 대해 상대적이다. 따라서, "더 높은" 우선순위 큐가 주어지거나 또는 다른 큐에 대해 우선순위를 갖는다. 따라서, 최고 우선순위 큐는 우선순위화된 큐들(248) 중 최고 우선순위를 가지며, 가장 낮은 우선순위 큐는 우선순위화된 큐들(248) 중 가장 낮은 우선순위를 갖는다
각각의 우선순위 큐들(248) 내의 커맨드들(232)의 우선순위 순서는 각각의 큐(248)에서 가장 오래된 커맨드가 최고 우선순위를 갖도록 커맨드들의 에이지에 기초할 수 있고, 각각의 큐를 반복할 때 먼저 마주치게 될 것이다. 일 예로서, 우선순위 큐들(248) 중 적어도 일부를 통한 반복은, 마주치게 되는 발행을 위해 준비된(예를 들어, 장치 타이밍 파라미터들에 기초한) 제1 커맨드가 발행을 위해 선택되는 선-준비, 선착순 폴리시를 사용하는 것을 포함할 수 있다. 그러나, 아래에서 더 설명되는 바와 같이, 다수의 실시예에서, 큐들(248)을 통한 반복은 특정 환경들 하에서 더 낮은 우선순위 큐들을 무시하는 것을 포함할 수 있고, 이는 (예를 들어, 최고 우선순위 큐가 비어있지 않다는 결정에 응답하여) 최고 우선순위 큐(예를 들어, 248-0) 보다 더 낮은 우선순위를 갖는 적어도 하나의 큐에서 발행 가능한 커맨드들을 발행하는 것으로부터 방지할 수 있다. 또한, 열 커맨드(예를 들어, 열 판독 커맨드 및 열 기록 커맨드 모두)가 행 커맨드(예를 들어, 행 판독 커맨드 및 행 기록 커맨드 모두)보다 우선순위화되는 선-준비, 선착순 폴리시와 다르게, 본 개시의 다수의 실시예는 판독 커맨드들(예를 들어, 열 판독 커맨드들 및 행 판독 커맨드들 모두)이 기록 커맨드들(예를 들어, 열 기록 커맨드들 및 열 기록 커맨드들 모두)보다 우선순위화되는 수정된 선-준비, 선착순 선택 폴리시를 구현하며, 이는 다른 다양한 선택 폴리시에 비하여 (예를 들어, 감소된 대기 시간(latency)을 통해) 향상된 시스템 성능을 제공할 수 있다.
각 커맨드(232)는 복수의 우선순위 카테고리 지정들 중 하나를 수신할 수 있다. 우선순위 카테고리 지정들은 예를 들어, 각각의 상이한 우선순위 큐들(248)에 대응할 수 있다. 예를 들어, 최고 우선순위에 대응하는 지정을 수신하는 커맨드들은 최고 우선순위 큐(248-0)에 삽입되고, 다음으로 높은 우선순위에 대응하는 지정을 수신하는 커맨드들은 다음으로 높은 우선순위 큐(248-1), 기타 등등에 삽입된다. 각 커맨드(232)에 대한 지정된 우선순위 카테고리는 다른 요인들 중에서 커맨드가 판독 또는 기록 커맨드인지, 판독/기록 커맨드의 유형(예를 들어, 커맨드가 열 판독/기록 커맨드인지 또는 행 판독/기록 커맨드인지), 및 커맨드의 에이지와 같은 다양한 인자들에 기초하여 결정될 수 있다.
다수의 실시예에서, 우선순위 큐들(248) 중 어느 하나가 판독 커맨드를 포함한다면, 기록 커맨드가 발행을 위해 선택되지 않도록 기록 커맨드들보다 판독 커맨드들이 우선순위화된다. 그러나, 판독 커맨드들을 우선순위화하는 것을 포함하는 다수의 실시예에서, 예를 들면, 기록 커맨드의 우선순위 카테고리 지정은, (예를 들어, 기록 커맨드가 수신된 판독 커맨드(232)와 동일한 페이지를 타겟으로 하는 결정으로 인해) 제어기(204)가 기록 커맨드와 관련된 기록-후-판독 의존성을 검출하는지 여부에 의존할 수 있다. 기록 커맨드와 관련된 결정된 기록-후-판독 의존성은 기록 커맨드가 기록-후-판독 의존성과 관련되지 않은 경우보다 기록 커맨드를 더 높은 우선순위 카테고리로 지정하게 할 수 있어서, 기록 커맨드는 그렇지 않을 경우의 기록 커맨드보다 높은 우선순위 큐(248)에 삽입되도록 하고, 그러므로 큐들(248)에 하나 이상의 판독 커맨드가 포함되기 전에 발행될 수 있다.
여기서 사용되는 바와 같이, 기록-후-판독 의존성은, (예를 들어, 타겟팅된 페이지에 타겟팅된 데이터를 기록하기 위한 커맨드가 아직 실행되지 않았기 때문에) 타겟 페이지에 타겟팅된 데이터가 저장되기 전에 특정 어드레스(예를 들어, 메모리의 페이지)를 타겟으로 하는 판독 커맨드가 실행될 경우에 에러가 발생할 수 있는 상황을 지칭한다. 이와 같이, 본 개시의 다수의 실시예에서, 우선순위 큐들(248)이 임의의 판독 커맨드들을 포함하면, 기록-후-판독 의존성이 검출되는 경우에만 발행을 위해 기록 커맨드가 선택될 것이다(예를 들어, 기록 커맨드는 기록에 의존하는 판독이 존재하지 않는 한 발행되지 않을 것이다). 그렇지 않을 경우보다, (예를 들어, 검출된 기록-후-판독 의존성으로 인해) 기록 커맨드를 더 높은 우선순위 큐에 삽입하는 것은, 기록 커맨드가 발행하도록 허용되지 않는 "데드-락(dead-lock)" 상황(예를 들어, 판독 커맨드들이 기록 커맨드들보다 우선순위화되기 때문에)을 방지하지만 대응하는 판독 커맨드는 기록-후-판독 의존성으로 인해 발행하도록 허용되지 않는 등의 이점을 제공할 수 있다.
도 3A 및 도 3B와 관련하여 이하에서 더 설명되는 바와 같이, 판독 커맨드들이 기록 커맨드들보다 우선순위화되는 다수의 실시예에서, 열 판독 커맨드들은 행 판독 커맨드들보다 우선순위화될 수 있다. 예를 들어, 수신된 열 판독 커맨드들은 최고 우선순위 큐(248-0)에 삽입될 수 있고 수신된 행 판독 커맨드들은 그 다음으로 높은 우선순위 큐(248-1)에 삽입될 수 있다. 일부 예에서, 수신된 기록 커맨드들에 대해 기록-후-판독 의존성이 검출되지 않으면, 수신된 열 기록 커맨드들은 더 낮은 우선순위 큐(예를 들어, 248-2 내지 248-(k-1))로 삽입될 수 있다. 다수의 실시예에서, 수신된 행 기록 커맨드가 수신된 열 기록 커맨드보다 낮은 우선순위 큐에 삽입되도록, 열 기록 커맨드가 행 기록 커맨드보다 우선순위화될 수 있다. 예를 들어, 수신된 열 기록 커맨드들은 세번째로 높은 우선순위 큐(248-2)에 삽입될 수 있고, 수신된 행 기록 커맨드들은 네번째로 높은 우선순위 큐(248-3)에 삽입될 수 있다. 전술한 바와 같이, 검출된 기록-후-판독 의존성으로 인해, 수신된 기록 커맨드는 판독 커맨드와 동일한 우선순위 카테고리로 지정될 수 있으며, 더 높은 우선순위 큐들(예를 들어, 개방된 페이지에서의 기록 커맨드일 경우엔 248-0, 폐쇄된 페이지에서의 기록 커맨드일 경우엔 248-1) 중 하나로의 기록 커맨드의 삽입을 초래할 수 있다.
동작에 있어서, 제어기(204)가 커맨드 선택 폴리시에 따라 수신된 커맨드들(232)을 적절한 우선순위 큐들(248)에 삽입하면, 큐들(248) 내의 커맨드들은 최고 우선순위 큐(248-0)에서의 커맨드들로 시작하여 순서대로 반복되고, 발행을 위해 준비된 것으로 결정된 마주친 제1 커맨드가 선택된다. 일부 예시에서, 최고 우선순위 큐(248-0)가 발행 가능한 커맨드를 포함하지 않는다는 결정에 응답하여, 제어기(204)는 두번째로 높은 우선순위 큐(248-1)를 검색하고 발행 가능한 것으로 결정된 제1 커맨드를 선택한다. 다수의 실시예에서, 제어기(204)는 최고 우선순위 큐(248-0) 또는 두번째로 높은 우선순위 큐(248-1) 중 어느 하나가 현재 커맨드를 포함하면 하위 우선순위 큐들로부터의 임의의 커맨드들의 선택을 방지하도록 구성될 수 있다. 예를 들어, 큐들(248-0 및 248-1)보다 우선순위가 더 낮은 큐들(248)은 커맨드 선택 동안 큐들(248)을 반복할 때 (예를 들어, 248-2 이하의 큐들이 도달되지 않도록) 무시될 수 있다.
첫번째 및 두번째로 가장 높은 우선순위 큐들(248-0 및 248-1)이 각각 열 판독 커맨드들 및 행 판독 커맨드들을 포함하는 상기 예에서, 예를 들어, 결정된 기록-후-판독 의존성으로 인해 (예를 들어, 큐(248-2)에 도달되지 않을 것이기 때문에) 기록 커맨드가 큐들(248-0 및 248-1) 중 하나에 삽입되지 않는 한, 발행을 위해 선택되는 기록 커맨드는 없을 것이다. 따라서, 다수의 실시예에서, 가장 높은 우선순위 큐들(예를 들어, 248-0 및 248-1)이 오직 비-발행 가능(non-issuable) 커맨드들만을 포함하는 경우, (예를 들어, 더 낮은 우선순위 큐들은 커맨드 선택을 위해 그들을 반복할 때 무시될 것이므로) 더 낮은 우선순위 큐들(예를 들어, 248-2 내지 248-(k-1))에서의 발행 가능한 커맨드들도 발행하지 않을 것이다.
도 3A 및 도 3B는 본 개시의 다수의 실시예에 따른 커맨드 선택 폴리시를 구현하는 것과 관련된 순서도를 도시한다. 도 3A 및 도 3B에 설명된 방법은, 예를 들면, 전술한 제어기(104 및/또는 204)와 같은 제어기에 의해 실행될 수 있다. 도 3A 및 도 3B와 관련하여 설명된 예는 4개의 우선순위 큐들(예를 들어, 도 2에 설명된 우선순위화된 큐(248)들)을 이용하는 커맨드 선택 폴리시를 가정하며, 열 판독 커맨드들은 행 판독 커맨드들보다 우선순위화되고, 행 판독 커맨드들은 열 기록 커맨드들보다 우선순위화되며, 열 기록 커맨드들은 행 기록 커맨드들에 대해 일반적으로 우선순위화된다. 다른 예들 및 구현들과 같이, 다른 양의 우선순위 큐들이 고려된다. 우선순위 큐들은 "리스트들" 또는 "목적지 리스트들"로 지칭될 수 있다. 도 3A 및 도 3B에서, 지정자 "i"는 커맨드 큐에서 수신된 커맨드들(예를 들어, 도 2에 도시된 커맨드 큐(230)에서 수신된 커맨드들(232))을 참조하여 인덱스로서 사용된다. 지정자 "DL"은 4개의 우선순위화된 큐들(예를 들어, 목적지 리스트들 DL = 0 내지 DL = -3)을 참조하는 인덱스로서 사용된다. 지정자 "k"는 인덱스이고, 이들을 반복하면서 4개의 목적지 리스트들을 참조한다. 지정자 "j"는 인덱스로서 사용되고, 특정 목적지 리스트 "k" 내의 커맨드들을 반복하면서 상기 특정 목적지 리스트 내의 커맨드들을 참조한다.
도 3A는 수신된 커맨드들을 카테고리화하고 카테고리화에 기초하여 이들을 우선순위화된 큐들 중 적절한 큐에 삽입하는 것과 관련되고, 도 3B는 우선순위화된 큐들(및 그 안의 커맨드들)을 반복하고, 커맨드들이 발행 가능한지(예를 들어, 발행할 준비가 되어 있는지), 발행을 위한 커맨드들을 선택하는 것, 및 선택된 커맨드들을 메모리 장치로 발행하는 것과 관련된다.
360에서, 커맨드 선택 동작이 시작된다. 362에서, 인덱스 "i"는 "0"으로 초기화되고, 364에서, 커맨드 큐(예를 들어, 230)가 우선순위화된 리스트들 중 하나에 삽입될 임의의 더 많은 커맨드들을 포함하는지 여부가 결정된다(예를 들어, 조건 i = 0이 충족되는 것은 커맨드 큐가 비어 있다는 것을 의미한다). 엔큐잉(enqued)될 수신된 커맨드가 더 이상 존재하지 않으면, 흐름은 도 3B로 이동한다. 그러나, 우선순위 큐에 추가되어야 할 커맨드가 수신된 경우, 단계 366에서 인덱스 "DL"은 "0"으로 초기화되고, 368에서 수신된 커맨드 큐 에서 "제i번째" 커맨드가 타겟으로 하는 행이 개방된 행을 타겟으로 하는지 여부(예를 들어, "제i번째" 커맨드가 열 커맨드인지 여부)에 대한 결정이 이루어진다. "제i번째" 커맨드가 폐쇄된 행을 타겟팅한 것(예를 들어, 커맨드는 행 판독 컨맨드이거나 행 기록 커맨드임)에 응답하여, 단계 372에서 "제i번째" 커맨드가 판독 커맨드인지 여부를 결정하기 전에 단계 370에서 인덱스 "DL"은 (1씩) 감분된다. "제i번째" 커맨드가 판독 커맨드인 것에 응답하여, 376에서 그 커맨드는 리스트 "DL" 상으로 엔큐잉된다. 그러므로 "제i번째" 커맨드가 열 판독 커맨드이면, 그것은 DL = 0(예를 들어, 최고 우선순위 큐)에 대응하는 우선순위화된 큐에 삽입될 것이고, "제i번째" 커맨드가 행 판독 커맨드이면, 그것은 DL = -1(예를 들어, 두번째로 높은 우선순위 큐)에 대응하는 우선순위화된 큐에 삽입될 것이다. 다수의 실시예에서, 우선순위화된 큐들에 대응하는 인덱스들은 "0"에서 시작할 수 있고, 더 낮은 우선순위 큐들이 우선순위 큐들의 리스트의 끝에 첨부될 수 있으며, 이는 비교 동작들의 결과들을 보완하지 않고 2개의 상이한 우선순위 큐들의 상대적인 우선순위를 결정하는 능력을 제공함으로써 유익할 수 있다(예를 들어, m < n 인 경우에서, 인덱스 "m"을 갖는 큐는 인덱스 "n"을 갖는 큐보다 더 낮은 우선순위를 가진다). 380에 도시된 바와 같이, 적절한 우선순위 큐에 삽입된 다음 "제i번째" 커맨드에 후속하여, 수신된 커맨드의 큐 내의 다음 커맨드가 평가되도록 인덱스 "i"는 (1씩) 증분되고, "제i번째" 커맨드가 개방된 행을 타겟으로 하는 경우, 372에서 "제i번째" 커맨드가 판독 커맨드인지 여부가 결정된다.
372에서 "제i번째" 판독 커맨드가 판독 커맨드가 아닌 것으로 결정되면(예를 들어, 커맨드가 기록 커맨드인 경우), 374에서 현재 기록 커맨드와 동일한 행에 타겟팅된 더 새로운(예를 들어, 더 최근에 수신된) 판독 커맨드들이 존재하는지 여부가 결정된다(예를 들어, 현재의 기록 커맨드와 관련된 기록-후-판독 의존성이 있는 경우). 현재 기록 커맨드와 동일한 행에 더 새로운 판독 커맨드가 있는 경우, 376에서 현재의 기록 커맨드는 DL = 0에 대응하는 최고 우선순위 큐로 또는 DL = -1에 대응하는 두번째로 높은 우선순위 큐로 삽입된다. 그러나, 현재의 기록 커맨드가 새로운 판독 커맨드와 동일한 행을 타겟팅하지 않는다면, 376에서 적절한 우선순위 큐에 삽입되기 전에, 378에서 인덱스 "DL"은 (2씩) 감분된다. 그러므로 기록 커맨드가 새로운 기록 커맨드와 동일한 행을 타겟팅하지 않으면, 열 기록 커맨드일 경우 DL = -2(예를 들어, 세번째로 높은 우선순위 큐)에 대응하는 우선순위 큐에 삽입될 것이고, 행 기록 커맨드일 경우 DL = -3(예를 들어, 이 예에서 가장 낮은 우선순위 큐)에 대응하는 우선순위 큐에 삽입될 것이다.
364에서의 조건이 충족되면(예를 들어, 우선순위화된 큐들에 삽입될 수신된 커맨드 큐에서 더 이상의 수신된 커맨드들이 존재하지 않음), 382에서 인덱스 "k"는 "0"으로 초기화된다. 박스 384는 4개의 우선순위 큐 모두가 반복되었는지 여부를 결정하기 위한 확인을 나타낸다. 이 예에서, 조건 k = -4가 384에서 충족될 때, 398에서 도시된 바와 같이, 커맨드 선택 동작이 행해진다. 385에서, 인덱스 "j"는 "0"으로 초기화되고, 386에서 인덱스 "j"의 현재 값은 인덱스 "k"에 대응하는 우선순위화된 큐 내의 커맨드들의 양과 비교된다. 인덱스 "j"의 값이 인덱스 "k"에 대응하는 우선순위화된 큐에서의 커맨드들의 양과 동일하지 않은 경우(예를 들어, 인덱스 "k"에 대응하는 큐는 아직 평가되지 않은 커맨드들을 포함함), 387에서 인덱스 "k"에 대응하는 우선순위화된 큐에서의 "제j번째" 커맨드가, 더 오래된 기록 커맨드가 타겟팅된 행과 동일한 행에 타겟팅된 판독 커맨드인지 여부에 대한 결정이 이루어진다.
"제j번째" 커맨드가 더 오래된 기록 커맨드와 동일한 행으로 향하지 않는다고 결정하는 것에 응답하여, 389에서 "제j번째" 커맨드가 발행할 준비가 되어 있는지 여부가 결정된다. 전술한 바와 같이, 제어기가 특정 커맨드가 발행 가능하거나 아닌지를 결정하는 여부는, 예를 들어, 메모리 장치와 관련된 다양한 타이밍 파라미터들에 의존할 수 있다. "제j번째" 커맨드가 준비되었다고 결정되면, 396에서 커맨드가 메모리 장치로 발행되고 선택 동작이 종료된다. "제j번째" 커맨드가 389에서 발행을 위해 준비되지 않은 것으로 판정되면, 388에서 인덱스 "j"가 (1씩) 증분되고, 386에서의 비교가 다시 수행된다.
387에서, "제j번째" 커맨드가 이전의 기록 커맨드와 동일한 행으로 향하는 것으로 결정하는 것에 응답하여, 388에서 인덱스 "j"가 (1씩) 증분되고, 386에서의 비교가 다시 수행된다. 이러한 방식으로, 387에서의 확인은 더 오래된 기록과 동일한 행으로 향하는 판독 커맨드가 더 오래된 기록이 발행할 때까지 발행되지 않도록 보장한다.
386에 도시된 바와 같이, 인덱스 "k"에 대응하는 우선순위화된 큐 내의 모든 커맨드들이 평가되면, 390에서 인덱스 "k"는 (1씩) 감분된다. 392에서 k = -2인지의 확인이 수행된다. "k"가 -2가 아닐 경우, 384에서 k = -4인지의 확인이 수행된다.
392에서 k = -2인 경우, 394에서 최고 우선순위 큐(예를 들어, 우선순위 "0"으로 지정되고 인덱스 k = 0에 대응하는 큐) 및 그 다음의 가장 높은 우선순위 큐(예를 들어, 우선순위 "-1"로 지정된 큐 및 인덱스 k = -1에 대응하는 큐)가 비어 있는지 여부에 관한 결정이 이루어진다. 2개의 가장 높은 우선순위 큐가 비어 있다면, 커맨드 선택 프로세스는 384에서 계속된다. 그러나, 2개의 가장 높은 우선순위 큐가 394에서 비어 있지 않은 것으로 결정되면, 커맨드 선택 동작은 커맨드가 발행되지 않고 398에서 종료한다. 이러한 방식으로, 2개의 가장 높은 우선순위 큐들 중 어느 하나가 임의의 커맨드들을 포함하면, 2개의 가장 높은 우선순위 큐들보다 더 낮은 우선순위를 갖는 우선순위화된 큐들이 스킵(skip)된다. 따라서, 열 판독 커맨드들이 최고 우선순위 큐(예를 들어, 우선순위 큐 "0")에 삽입되고 행 판독 커맨드들이 그 다음으로 높은 우선순위 큐(예를 들어, 우선순위 큐 "-1"에 삽입되는 이 예에서, 2개의 더 높은 우선순위 큐들 중 어느 하나가 임의의 커맨드들을 포함할 경우, 발행할 준비가 되어 있더라도 2개의 더 낮은 우선순위 큐들(예를 들어, 우선순위 큐들 "-2" 및 "-3") 중 어떠한 커맨드(예를 들어, 기록 커맨드들)도 메모리 장치로 발행하기 위해 선택되지 않을 것이다. 더 낮은 우선순위 큐들에서 발행 가능한 기록 커맨드들이 비-발행 가능 판독 커맨드들보다 먼저 발행되는 것을 방지하는 것은 판독들 전에 기록들을 발행하는 것과 관련하여 초래될 수 있는 대기 시간 페널티들을 회피할 수 있다.
여기에 기재된 실시예에 따라 기록 커맨드들에 앞서 판독 커맨드들에 우선순위화하는 단계는 기록-후-판독 종속성들을 고려하면서 기록들에 앞서 판독들을 스케줄링함으로써, 기타 다양한 장점 중에서, 선행 커맨드 스케줄링 폴리시들에 비해 시스템 대기 시간을 개선하는 것과 같은 이점들을 제공할 수 있다.
도 4는 본 개시의 다수의 실시예에 따라 커맨드 선택 폴리시를 구현하는 것과 관련된 커맨드(432)의 예를 도시한다. 이 예에서, 커맨드(432)는 다수의 필드 441(ADDR), 443(DATA), 445(R/W) 및 447(STATE)을 포함한다. 실시예는 특정한 커맨드 구조, 필드의 양 등에 제한되지 않는다. 이 예에서, 필드(441)는 커맨드의 행 및 열 어드레스를 포함할 수 있고, 필드(443)는 커맨드에 대응하는 데이터(예를 들어, 저장될 데이터 또는 메모리로부터 판독된 데이터)를 포함할 수 있으며, 필드(445)는 커맨드 유형을 나타낼 수 있다(예를 들어, 커맨드가 판독 또는 기록인지 여부). 그리고, 필드(447)는 다른 상태 정보 중에서, 커맨드의 에이지(age) 및 커맨드가 현재 열려있는 행을 목표로 하는지 여부와 같은 커맨드 선택 폴리시에 의해 사용될 수 있는 추가적인 상태 정보를 나타낼 수 있다.
본 명세서에서는 특정의 실시형태에 대하여 도시하고 설명하였만, 당업자에게 이해되는 바와 같이, 동일한 결과를 달성하도록 계산된 구성을 본 개시의 특정의 실시형태로 대체될 수 있다. 본 개시는 본 개시의 다양한 실시형태의 적응예 또는 변형예를 포함하도록 의도한 것이다. 상기 설명은 예시적인 양태로 행한 것이며, 한정을 목적으로 한 것이 아님을 이해할 것이다. 상기 실시형태의 조합 및 본 명세서에서 특히 설명하지 않은 다른 실시형태는 상기 설명을 참조함으로써 당업자에게는 명백할 것이다. 본 개시의 다양한 실시형태의 범위는 상기 구조 및 방법이 사용되는 다른 응용예를 포함하는 것이다. 따라서, 본 개시의 다양한 실시형태의 범위는 첨부된 특허청구 범위를 참조하여, 그러한 청구 범위가 부여되는 등가물의 전체 범위와 함께 결정되어야 한다.
전술한 상세한 설명에서, 다양한 특징들은 본 개시의 간소화를 목적으로 단일 실시예에서 함께 그룹화된다. 본 개시의 방법은 본 개시의 실시예가 각 청구항에 명시적으로 언급된 것보다 더 많은 특징들을 이용해야 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 이하의 청구 범위들이 반영하는 바와 같이, 발명의 주제는 단일 개시된 실시예의 모든 특징들보다 적다. 따라서, 이하의 청구 범위들은 이것에 의해 발명의 상세한 설명에 포함되며, 각 청구항은 별개의 실시예로서 독자적으로 정립된다.

Claims (21)

  1. 커맨드 선택 방법으로서,
    복수의 커맨드를 메모리 제어기에 수신하는 단계;
    각 커맨드의 카테고리에 기초하여 복수의 우선순위 큐 중 하나에 상기 복수의 커맨드 각각을 삽입하는 단계; 및
    상기 우선순위 큐들 중 하나로부터, 상기 큐의 상기 우선순위 및 적어도 하나의 커맨드의 상기 카테고리에 기초하여 메모리 장치로 발행하는 상기 복수의 커맨드 중 적어도 하나의 커맨드를 선택하는 단계를 포함하며,
    상기 메모리 장치로 발행하는 상기 적어도 하나의 커맨드를 선택하는 단계는, 최고 우선순위 큐보다 더 낮은 우선순위를 갖는 적어도 하나의 큐에서의 발행 가능한 커맨드들이 발행되는 것을 방지하는 단계를 포함하며;
    상기 복수의 우선순위 큐 중 하나에 상기 복수의 커맨드 각각을 삽입하는 단계는:
    열 판독 커맨드를 제1 우선순위 큐에 삽입하는 단계;
    행 판독 커맨드를 제2 우선순위 큐에 삽입하는 단계; 및
    기록 커맨드를 제3 우선순위 큐 또는 제4 우선순위 큐에 삽입하는 단계를 포함하며;
    상기 방법은:
    상기 기록 커맨드에 대응하는 기록-후-판독 의존성을 결정하는 단계;
    상기 기록 커맨드를 다른 열 판독 커맨드 또는 다른 행 판독 커맨드로서 카테고리화하는 단계; 및
    상기 카테고리화하는 단계에 기초하여 상기 제1 우선순위 큐 또는 상기 제2 우선순위 큐 중 하나에 상기 기록 커맨드를 삽입하는 단계를 더 포함하는, 커맨드 선택 방법.
  2. 제 1 항에 있어서,
    상기 복수의 우선순위 큐 중 하나에 상기 복수의 커맨드 각각을 삽입하는 단계는
    열 기록 커맨드들 및 행 기록 커맨드들보다 열 판독 커맨드들 및 행 판독 커맨드들을 우선순위화하는 단계를 포함하는, 커맨드 선택 방법.
  3. 제 1 항에 있어서,
    우선순위의 순서로 상기 복수의 우선순위 큐를 반복하는 단계를 더 포함하고, 상기 적어도 하나의 커맨드는 상기 반복에 적어도 부분적으로 기초하여 선택되는, 커맨드 선택 방법.
  4. 제 3 항에 있어서,
    우선순위의 순서로 상기 복수의 우선순위 큐를 반복하는 단계는
    최고 우선순위 큐가 상기 최고 우선순위 큐 내의 상기 커맨드들을 반복함으로써 발행 가능한 커맨드를 포함하는지 여부를 결정하는 단계로서, 상기 복수의 우선순위 큐 중 각각의 우선순위 큐 내의 상기 커맨드들이 상기 메모리 제어기에 의해 수신되는 순서에 의해 우선순위화되는 단계; 및
    상기 최고 우선순위 큐가 발행 가능한 커맨드를 포함한다는 결정에 기초하여 상기 메모리 장치로 상기 발행 가능한 커맨드를 발행하는 단계; 또는
    상기 최고 우선순위 큐가 발행 가능한 커맨드를 포함하지 않는다는 결정에 기초하여 다음으로 높은 우선순위 큐 내의 상기 커맨드들을 반복함으로써 상기 다음으로 높은 우선순위 큐가 발행 가능한 커맨드를 포함하는지 여부를 결정하는 단계를 포함하는, 커맨드 선택 방법.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 제 1 항에 있어서,
    상기 기록 커맨드를 열 기록 커맨드 또는 행 기록 커맨드로 분류하는 단계를 더 포함하며,
    상기 기록 커맨드는 상기 카테고리화하는 단계에 기초하여 상기 제3 우선순위 큐 또는 상기 제4 우선순위 큐에 삽입되는, 커맨드 선택 방법.
  9. 장치에 있어서,
    메모리 장치; 및
    상기 메모리 장치에 결합되는 제어기를 포함하되,
    각각의 수신된 커맨드에 대한 우선순위 카테고리를 결정하고;
    각각의 수신된 커맨드를 각각의 수신된 커맨드의 결정된 우선순위 카테고리에 기초하여 복수의 우선순위화된 큐 중 선택된 큐에 삽입하며;
    우선순위의 순서로 상기 복수의 우선순위화된 큐를 반복함으로써 상기 메모리 장치로 발행하기 위한 커맨드들을 선택하고;
    제1 타입의 수신된 판독 커맨드들을 제1 우선순위 카테고리로 지정하고, 그것들을 상기 복수의 우선순위화된 큐의 제1 우선순위 큐에 삽입하며;
    적어도 제3 우선순위 큐를 유지하고;
    제2 타입의 수신된 판독 커맨드들을 제2 우선순위 카테고리로 지정하고, 그것들을 상기 복수의 우선순위화된 큐의 제2 우선순위 큐에 삽입하며;
    수신된 기록 커맨드들을 제 1 타입 또는 제 2 타입 중 하나로 지정하며;
    상기 수신된 기록 커맨드들이 이전의 판독 커맨드보다 상기 메모리 장치의 다른 페이지로 향하는 것으로 결정하는 것에 응답하여, 상기 수신된 기록 커맨드들을 상기 적어도 제 3 우선순위 큐로 삽입하고; 그리고
    상기 기록 커맨드들이 적어도 하나의 이전 판독 커맨드와 동일한 페이지로 향하는 것으로 결정하는 것에 응답하여, 상기 수신된 기록 커맨드들을 상기 제 1 우선순위 큐 또는 상기 제 2 우선순위 큐에 삽입하도록 구성되는 상기 제어기를 포함하는, 장치.
  10. 삭제
  11. 삭제
  12. 제 9 항에 있어서,
    상기 제1 타입의 판독 커맨드들은 열 판독 커맨드들이고, 상기 제2 타입의 판독 커맨드들은 행 판독 커맨드들인, 장치.
  13. 삭제
  14. 제 9 항에 있어서,
    상기 제어기는
    상기 우선순위화된 큐들 내의 커맨드들이 발행될 수 있는지 여부를 결정하고;
    상기 메모리 장치로 발행하기 위해, 상기 제 1 우선순위 큐에 포함되고 발행할 수 있는 것으로 결정된 제 1 커맨드를 선택하며;
    상기 메모리 장치로 발행하기 위해, 상기 제 2 우선순위 큐에 포함되고 상기 제 1 우선순위 큐가 발행 가능한 커맨드를 포함하지 않는다는 결정에 기초하여 발행할 수 있는 것으로 결정된 제 1 커맨드를 선택하고; 그리고
    상기 제 1 우선순위 큐 또는 제 2 우선순위 큐 중 어느 하나, 또는 양자 모두가, 커맨드를 현재 포함한다는 결정에 기초하여 상기 메모리 장치로의 발행을 위해 적어도 상기 제 3 우선순위 큐로부터의 커맨드의 선택을 방지하도록 구성되는, 장치.
  15. 제 9 항에 있어서,
    상기 제 1 우선순위 큐는 상기 복수의 우선순위화된 큐의 최고 우선순위 큐이고,
    상기 제 2 우선순위 큐는 상기 복수의 우선순위화된 큐의 두번째로 높은 우선순위 큐인, 장치.
  16. 제 9 항, 제 12항, 제14항 및 제 15 항 중 어느 한 항에 있어서,
    상기 제어기는
    기록-후-판독 의존성을 갖는 것으로 결정된 판독 커맨드가 존재하지 않는 다면, 상기 우선순위화된 큐들이 임의의 판독 커맨드들을 포함하는 경우, 어떠한 기록 커맨드들도 상기 메모리 장치로의 발행을 위해 선택되지 않는 커맨드 선택 폴리시에 기초하여 상기 메모리 장치로 발행하기 위한 커맨드들을 선택하도록 구성되는, 장치.
  17. 제어기에 있어서,
    메모리 장치로 발행될 수신된 커맨드들을 저장하도록 구성된 커맨드 큐;
    복수의 우선순위화된 큐; 및
    로직을 포함하되,
    각각의 수신된 커맨드에 대한 우선순위 카테고리들을 결정하고;
    각각의 수신된 커맨드를 그것의 우선순위 카테고리에 기초한 상기 복수의 우선순위화된 큐 중 하나에 삽입하며; 상기 그것의 우선순위 카테고리는
    상기 커맨드에 대응하는 커맨드 형태;
    상기 커맨드가 개방된 또는 폐쇄된 행으로 향하는지 여부; 또는
    판독-후-기록 의존성이 상기 커맨드와 관련되는지 여부; 또는
    이들의 임의의 조합;에 기초하고, 그리고
    가장 높은 우선순위 큐로부터 가장 낮은 우선순위 큐로의 우선순위의 순서로 상기 복수의 우선순위화된 큐를 반복함으로써 상기 메모리 장치로 발행하기 위해 상기 복수의 우선순위화된 큐로부터 커맨드를 선택하는 상기 로직을 포함하는, 제어기.
  18. 제 17 항에 있어서,
    상기 복수의 우선순위화된 큐를 반복하는 단계는
    더 높은 우선순위 큐가, 발행할 수 없는 커맨드들 및 적어도 하나의 비-발행 가능 커맨드를 포함한다고 결정하는 것에 응답하여 상기 반복에 결론을 내리는 단계를 포함하는, 제어기.
  19. 제 17 항 내지 제 18 항 중 어느 한 항에 있어서,
    상기 로직은
    선-준비, 선착순(first-ready, first-come, first-served, FRFCFS) 폴리시에 기초하여 상기 메모리 장치로 발행하기 위한 커맨드들을 선택하도록 구성되고, 여기에서 상기 우선순위화된 큐들이 임의의 판독 커맨드들을 포함한다면 판독 커맨드들이 기록 커맨드들보다 우선순위화되며,
    상기 기록 커맨드가 기록-후-판독 의존성을 갖는 판독 커맨드와 관련된 것으로 결정되는 경우에만 상기 메모리 장치로의 발행을 위해 기록 커맨드들이 선택되는, 제어기.
  20. 방법에 있어서,
    메모리 장치로 발행될 각각의 수신된 커맨드들로 우선순위 카테고리들을 지정하는 단계;
    각각의 수신된 커맨드를 지정된 우선순위 카테고리에 기초하여 복수의 우선순위화된 큐 중 선택된 하나에 삽입하는 단계로서, 그것의 지정된 우선순위 카테고리는
    상기 커맨드에 대응하는 커맨드 형태;
    상기 커맨드가 개방된 행으로 향하는지 여부; 또는
    기록-후-판독 의존성이 상기 커맨드와 관련되는지 여부; 또는
    이들의 임의의 조합; 에 기초하고, 그리고
    가장 높은 우선순위 큐로부터 가장 낮은 우선순위 큐로의 우선순위의 순서로 상기 복수의 우선순위화된 큐를 반복함으로써 상기 메모리 장치로 발행하기 위해 상기 복수의 우선순위화된 큐로부터 커맨드를 선택하는 단계를 포함하는, 방법.
  21. 커맨드 선택 방법에 있어서,
    복수의 수신된 커맨드 각각을 상기 커맨드 각각의 지정된 우선순위 카테고리에 기초하여 복수의 우선순위화된 큐 중 선택된 하나에 삽입하는 단계로서, 상기 커맨드 각각의 상기 지정된 우선순위 카테고리는
    상기 커맨드에 대응하는 커맨드 형태;
    상기 커맨드가 개방된 행으로 향하는지 여부; 및
    기록-후-판독 의존성이 상기 커맨드들과 관련되는지 여부; 중 적어도 하나에 기초하고, 그리고
    우선순위의 순서로 상기 복수의 우선순위화된 큐를 반복함으로써 메모리 장치로 발행하기 위해 상기 복수의 우선순위화된 큐로부터 커맨드를 선택하는 단계를 포함하는, 방법.
KR1020207014311A 2017-10-24 2018-09-26 커맨드 선택 폴리시 KR102439067B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/791,886 2017-10-24
US15/791,886 US10409739B2 (en) 2017-10-24 2017-10-24 Command selection policy
PCT/US2018/052921 WO2019083673A2 (en) 2017-10-24 2018-09-26 CONTROL SELECTION POLICY

Publications (2)

Publication Number Publication Date
KR20200059318A KR20200059318A (ko) 2020-05-28
KR102439067B1 true KR102439067B1 (ko) 2022-09-01

Family

ID=66169319

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207014311A KR102439067B1 (ko) 2017-10-24 2018-09-26 커맨드 선택 폴리시

Country Status (5)

Country Link
US (3) US10409739B2 (ko)
EP (1) EP3701366A4 (ko)
KR (1) KR102439067B1 (ko)
CN (1) CN111566610B (ko)
WO (1) WO2019083673A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262753A (zh) * 2019-05-30 2019-09-20 合肥致存微电子有限责任公司 一种加快命令响应的方法、系统以及ssd
US11470184B2 (en) * 2019-12-12 2022-10-11 Microsoft Technology Licensing, Llc. Intellegent queuing of rules based command invocations
US11797188B2 (en) * 2019-12-12 2023-10-24 Sk Hynix Nand Product Solutions Corp. Solid state drive with multiplexed internal channel access during program data transfers
US11093174B1 (en) * 2020-02-19 2021-08-17 Dell Products L.P. Information handling system having improved host memory buffer for input/output requests
JP7337006B2 (ja) 2020-03-03 2023-09-01 キオクシア株式会社 メモリシステムおよび制御方法
CN115516415A (zh) * 2020-03-10 2022-12-23 美光科技公司 用于管理存储器子系统的队列的方法、系统和可读存储媒体
US11662998B2 (en) * 2020-11-05 2023-05-30 Outsystems—Software Em Rede, S.A. Detecting duplicated code patterns in visual programming language code instances
CN114647363A (zh) * 2020-12-17 2022-06-21 伊姆西Ip控股有限责任公司 用于数据处理的方法、电子设备和计算机程序产品
US11455109B2 (en) * 2021-01-27 2022-09-27 Micron Technology, Inc. Automatic wordline status bypass management
US11886702B2 (en) 2021-02-03 2024-01-30 Micron Technology, Inc. Speed bins to support memory compatibility
US20220269424A1 (en) * 2021-02-19 2022-08-25 Vast Data Ltd. Resource allocation in a storage system
US11726827B2 (en) 2021-02-19 2023-08-15 Vast Data Ltd. Hierarchical workload allocation in a storage system
US11782640B2 (en) 2021-03-31 2023-10-10 Advanced Micro Devices, Inc. Efficient and low latency memory access scheduling
US11789655B2 (en) 2021-03-31 2023-10-17 Advanced Micro Devices, Inc. Efficient and low latency memory access scheduling
US20230393784A1 (en) * 2022-06-03 2023-12-07 Micron Technology, Inc. Data path sequencing in memory systems
CN114968858B (zh) * 2022-07-18 2022-11-25 珠海妙存科技有限公司 一种命令队列管理方法、系统、装置及存储介质
US20240061580A1 (en) * 2022-08-19 2024-02-22 Samsung Electronics Co., Ltd. Submission queue entry age tracking

Family Cites Families (338)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4380046A (en) 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
JPS6032911B2 (ja) 1979-07-26 1985-07-31 株式会社東芝 半導体記憶装置
US4435792A (en) 1982-06-30 1984-03-06 Sun Microsystems, Inc. Raster memory manipulation apparatus
US4727474A (en) 1983-02-18 1988-02-23 Loral Corporation Staging memory for massively parallel processor
EP0214718A3 (en) 1985-07-22 1990-04-04 Alliant Computer Systems Corporation Digital computer
US5201039A (en) 1987-09-30 1993-04-06 Mitsubishi Denki Kabushiki Kaisha Multiple address-space data processor with addressable register and context switching
US4843264A (en) 1987-11-25 1989-06-27 Visic, Inc. Dynamic sense amplifier for CMOS static RAM
US5276643A (en) 1988-08-11 1994-01-04 Siemens Aktiengesellschaft Integrated semiconductor circuit
JPH0713858B2 (ja) 1988-08-30 1995-02-15 三菱電機株式会社 半導体記憶装置
US5023838A (en) 1988-12-02 1991-06-11 Ncr Corporation Random access memory device with integral logic capability
US4958378A (en) 1989-04-26 1990-09-18 Sun Microsystems, Inc. Method and apparatus for detecting changes in raster data
US5253308A (en) 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
EP0446721B1 (en) 1990-03-16 2000-12-20 Texas Instruments Incorporated Distributed processing memory
US5034636A (en) 1990-06-04 1991-07-23 Motorola, Inc. Sense amplifier with an integral logic function
US5210850A (en) 1990-06-15 1993-05-11 Compaq Computer Corporation Memory address space determination using programmable limit registers with single-ended comparators
JP3361825B2 (ja) 1990-08-22 2003-01-07 テキサス インスツルメンツ インコーポレイテツド メモリ・アレイ・アーキテクチャ
JPH06103599B2 (ja) 1990-11-16 1994-12-14 三菱電機株式会社 半導体集積回路装置
US5325519A (en) 1991-10-18 1994-06-28 Texas Microsystems, Inc. Fault tolerant computer with archival rollback capabilities
FR2685973B1 (fr) 1992-01-03 1994-02-25 France Telecom Point memoire pour memoire associative.
KR950005095Y1 (ko) 1992-03-18 1995-06-22 문정환 양방향성 그로벌 비트 라인을 갖는 dram
EP0584783A3 (en) 1992-08-25 1994-06-22 Texas Instruments Inc Method and apparatus for improved processing
KR950004854B1 (ko) 1992-10-08 1995-05-15 삼성전자 주식회사 반도체 메모리 장치
US5440482A (en) 1993-03-25 1995-08-08 Taligent, Inc. Forward and reverse Boyer-Moore string searching of multilingual text having a defined collation order
US5485373A (en) 1993-03-25 1996-01-16 Taligent, Inc. Language-sensitive text searching system with modified Boyer-Moore process
US5369622A (en) 1993-04-20 1994-11-29 Micron Semiconductor, Inc. Memory with isolated digit lines
US5754478A (en) 1993-04-20 1998-05-19 Micron Technology, Inc. Fast, low power, write scheme for memory circuits using pulsed off isolation device
JP2663838B2 (ja) 1993-07-27 1997-10-15 日本電気株式会社 半導体集積回路装置
JP3252306B2 (ja) 1993-08-10 2002-02-04 株式会社日立製作所 半導体不揮発性記憶装置
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
JP3251421B2 (ja) 1994-04-11 2002-01-28 株式会社日立製作所 半導体集積回路
US5655113A (en) 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
JPH0831168A (ja) 1994-07-13 1996-02-02 Hitachi Ltd 半導体記憶装置
US5481500A (en) 1994-07-22 1996-01-02 International Business Machines Corporation Precharged bit decoder and sense amplifier with integrated latch usable in pipelined memories
US5615404A (en) 1994-10-31 1997-03-25 Intel Corporation System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals
US5638128A (en) 1994-11-08 1997-06-10 General Instrument Corporation Of Delaware Pixel interpolation filters for video decompression processor
US5724366A (en) 1995-05-16 1998-03-03 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
KR0146530B1 (ko) 1995-05-25 1998-09-15 김광호 단속제어회로를 구비한 반도체 메모리 장치와 제어방법
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
JP2812262B2 (ja) 1995-08-31 1998-10-22 日本電気株式会社 連想記憶装置
US6385634B1 (en) 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
JP2817836B2 (ja) 1995-11-30 1998-10-30 日本電気株式会社 半導体メモリ装置
JP3356612B2 (ja) 1996-02-29 2002-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 高速な輪郭スムージング方法及び装置
US6092186A (en) 1996-05-07 2000-07-18 Lucent Technologies Inc. Apparatus and method for aborting un-needed instruction fetches in a digital microprocessor device
US5915084A (en) 1996-09-30 1999-06-22 Advanced Micro Devices, Inc. Scannable sense amplifier circuit
US5991209A (en) 1997-04-11 1999-11-23 Raytheon Company Split sense amplifier and staging buffer for wide memory architecture
JP3592887B2 (ja) 1997-04-30 2004-11-24 株式会社東芝 不揮発性半導体記憶装置
US6510098B1 (en) 1997-05-28 2003-01-21 Cirrus Logic, Inc. Method and apparatus for transferring data in a dual port memory
US6088772A (en) 1997-06-13 2000-07-11 Intel Corporation Method and apparatus for improving system performance when reordering commands
JPH1115773A (ja) 1997-06-24 1999-01-22 Matsushita Electron Corp 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法
US5935263A (en) 1997-07-01 1999-08-10 Micron Technology, Inc. Method and apparatus for memory array compressed data testing
US6195734B1 (en) 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
US6181698B1 (en) 1997-07-09 2001-01-30 Yoichi Hariguchi Network routing table using content addressable memory
US6025221A (en) 1997-08-22 2000-02-15 Micron Technology, Inc. Processing methods of forming integrated circuitry memory devices, methods of forming DRAM arrays, and related semiconductor masks
US5991785A (en) 1997-11-13 1999-11-23 Lucent Technologies Inc. Determining an extremum value and its index in an array using a dual-accumulation processor
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6163862A (en) 1997-12-01 2000-12-19 International Business Machines Corporation On-chip test circuit for evaluating an on-chip signal using an external test signal
JP3488612B2 (ja) 1997-12-11 2004-01-19 株式会社東芝 センス増幅回路
US5986942A (en) 1998-01-20 1999-11-16 Nec Corporation Semiconductor memory device
JPH11260057A (ja) 1998-03-13 1999-09-24 Nec Corp 半導体記憶装置
JPH11265995A (ja) 1998-03-17 1999-09-28 Mitsubishi Electric Corp 半導体記憶装置
JPH11306751A (ja) 1998-04-22 1999-11-05 Toshiba Corp 半導体記憶装置
US6005799A (en) 1998-08-06 1999-12-21 Silicon Aquarius Methods and circuits for single-memory dynamic cell multivalue data storage
US6141286A (en) 1998-08-21 2000-10-31 Micron Technology, Inc. Embedded DRAM architecture with local data drivers and programmable number of data read and data write lines
US7409694B2 (en) 1998-09-09 2008-08-05 Microsoft Corporation Highly componentized system architecture with loadable virtual memory manager
US6385708B1 (en) 1998-11-16 2002-05-07 Infineon Technologies Ag Using a timing-look-up-table and page timers to determine the time between two consecutive memory accesses
JP2000173269A (ja) 1998-12-08 2000-06-23 Mitsubishi Electric Corp 半導体記憶装置
KR100381968B1 (ko) 1998-12-30 2004-03-24 주식회사 하이닉스반도체 고속동작용디램
US5999435A (en) 1999-01-15 1999-12-07 Fast-Chip, Inc. Content addressable memory device
US6389507B1 (en) 1999-01-15 2002-05-14 Gigabus, Inc. Memory device search system and method
US6134164A (en) 1999-04-22 2000-10-17 International Business Machines Corp. Sensing circuit for a memory cell array
US6741104B2 (en) 1999-05-26 2004-05-25 Micron Technology, Inc. DRAM sense amplifier for low voltages
US6157578A (en) 1999-07-15 2000-12-05 Stmicroelectronics, Inc. Method and apparatus for accessing a memory device
US6208544B1 (en) 1999-09-09 2001-03-27 Harris Corporation Content addressable memory cell providing simultaneous read and compare capability
US6578058B1 (en) 1999-10-06 2003-06-10 Agilent Technologies, Inc. System and method for comparing values from target systems
US7124221B1 (en) 1999-10-19 2006-10-17 Rambus Inc. Low latency multi-level communication interface
US6418498B1 (en) 1999-12-30 2002-07-09 Intel Corporation Integrated system management memory for system management interrupt handler independent of BIOS and operating system
JP4627103B2 (ja) 2000-01-18 2011-02-09 富士通セミコンダクター株式会社 半導体記憶装置及びその制御方法
US6687175B1 (en) 2000-02-04 2004-02-03 Renesas Technology Corporation Semiconductor device
WO2001065359A2 (en) 2000-02-29 2001-09-07 Peter Petrov Method and apparatus for building a memory image
US7028170B2 (en) 2000-03-08 2006-04-11 Sun Microsystems, Inc. Processing architecture having a compare capability
JP3983969B2 (ja) 2000-03-08 2007-09-26 株式会社東芝 不揮発性半導体記憶装置
US6678678B2 (en) 2000-03-09 2004-01-13 Braodcom Corporation Method and apparatus for high speed table search
JP3822412B2 (ja) 2000-03-28 2006-09-20 株式会社東芝 半導体記憶装置
US6965648B1 (en) 2000-05-04 2005-11-15 Sun Microsystems, Inc. Source synchronous link integrity validation
JP2004502267A (ja) 2000-07-07 2004-01-22 モサイド・テクノロジーズ・インコーポレイテッド アクセス待ち時間が均一な高速dramアーキテクチャ
US6466499B1 (en) 2000-07-11 2002-10-15 Micron Technology, Inc. DRAM sense amplifier having pre-charged transistor body nodes
US7302582B2 (en) 2000-08-21 2007-11-27 United States Postal Service Delivery point validation system
US6301164B1 (en) 2000-08-25 2001-10-09 Micron Technology, Inc. Antifuse method to repair columns in a prefetched output memory architecture
US6704828B1 (en) 2000-08-31 2004-03-09 Micron Technology, Inc. System and method for implementing data pre-fetch having reduced data lines and/or higher data rates
US6948056B1 (en) 2000-09-28 2005-09-20 Intel Corporation Maintaining even and odd array pointers to extreme values by searching and comparing multiple elements concurrently where a pointer is adjusted after processing to account for a number of pipeline stages
US6304477B1 (en) 2001-01-31 2001-10-16 Motorola, Inc. Content addressable magnetic random access memory
US6563754B1 (en) 2001-02-08 2003-05-13 Integrated Device Technology, Inc. DRAM circuit with separate refresh memory
US6650158B2 (en) 2001-02-21 2003-11-18 Ramtron International Corporation Ferroelectric non-volatile logic elements
US6807614B2 (en) 2001-07-19 2004-10-19 Shine C. Chung Method and apparatus for using smart memories in computing
US7546438B2 (en) 2001-07-19 2009-06-09 Chung Shine C Algorithm mapping, specialized instructions and architecture features for smart memory computing
ITRM20010531A1 (it) 2001-08-31 2003-02-28 Micron Technology Inc Dispositivo rilevatore a bassa potenza e alta tensione per memorie ditipo flash.
US7260672B2 (en) 2001-09-07 2007-08-21 Intel Corporation Using data stored in a destructive-read memory
US7062689B2 (en) 2001-12-20 2006-06-13 Arm Limited Method and apparatus for memory self testing
US20040073773A1 (en) 2002-02-06 2004-04-15 Victor Demjanenko Vector processor architecture and methods performed therein
US6707729B2 (en) 2002-02-15 2004-03-16 Micron Technology, Inc. Physically alternating sense amplifier activation
WO2003088033A1 (en) 2002-04-09 2003-10-23 University Of Rochester Multiplier-based processor-in-memory architectures for image and graphics processing
JP2003331598A (ja) 2002-05-13 2003-11-21 Mitsubishi Electric Corp 半導体記憶装置
US7406494B2 (en) 2002-05-14 2008-07-29 Texas Instruments Incorporated Method of generating a cycle-efficient bit-reverse index array for a wireless communication system
JP2003346484A (ja) 2002-05-23 2003-12-05 Mitsubishi Electric Corp 不揮発性半導体記憶装置
US6789099B2 (en) 2002-06-10 2004-09-07 International Business Machines Corporation Sense-amp based adder with source follower evaluation tree
US7054178B1 (en) 2002-09-06 2006-05-30 Etron Technology, Inc. Datapath architecture for high area efficiency
US6987693B2 (en) 2002-09-24 2006-01-17 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US7079407B1 (en) 2002-10-18 2006-07-18 Netlogic Microsystems, Inc. Content addressable memory (CAM) device including match line sensing
US6765834B2 (en) 2002-11-19 2004-07-20 Hewlett-Packard Development Company, L.P. System and method for sensing memory cells of an array of memory cells
US6731542B1 (en) 2002-12-05 2004-05-04 Advanced Micro Devices, Inc. Circuit for accurate memory read operations
KR100546307B1 (ko) 2002-12-05 2006-01-26 삼성전자주식회사 글로벌 입출력라인을 프리차지 및/또는 이퀄라이징하기위한 프리차지 회로를 구비하는 반도체 장치 및프리차지 및/또는 이퀄라이즈하는 트랜지스터의 레이아웃
US6888372B1 (en) 2002-12-20 2005-05-03 Altera Corporation Programmable logic device with soft multiplier
AU2002353406A1 (en) 2002-12-27 2004-07-22 Solid State System Co., Ltd. Nonvolatile memory unit with specific cache
US7346903B2 (en) 2003-02-04 2008-03-18 Sun Microsystems, Inc. Compiling and linking modules of a cycle-based logic design
US6768679B1 (en) 2003-02-10 2004-07-27 Advanced Micro Devices, Inc. Selection circuit for accurate memory read operations
US6819612B1 (en) 2003-03-13 2004-11-16 Advanced Micro Devices, Inc. Apparatus and method for a sense amplifier circuit that samples and holds a reference voltage
US6865122B2 (en) 2003-04-11 2005-03-08 Intel Corporation Reclaiming blocks in a block-alterable memory
US7454451B2 (en) 2003-04-23 2008-11-18 Micron Technology, Inc. Method for finding local extrema of a set of values for a parallel processing element
US7447720B2 (en) 2003-04-23 2008-11-04 Micron Technology, Inc. Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements
US7574466B2 (en) 2003-04-23 2009-08-11 Micron Technology, Inc. Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
US9015390B2 (en) 2003-04-25 2015-04-21 Micron Technology, Inc. Active memory data compression system and method
DE10319271A1 (de) 2003-04-29 2004-11-25 Infineon Technologies Ag Speicher-Schaltungsanordnung und Verfahren zur Herstellung
JP3898152B2 (ja) 2003-05-27 2007-03-28 ローム株式会社 演算機能付き記憶装置および演算記憶方法
CN1846278B (zh) 2003-09-04 2010-04-28 Nxp股份有限公司 集成电路和高速缓冲存储器的重新映射方法
US6956770B2 (en) 2003-09-17 2005-10-18 Sandisk Corporation Non-volatile memory and method with bit line compensation dependent on neighboring operating modes
US7177183B2 (en) 2003-09-30 2007-02-13 Sandisk 3D Llc Multiple twin cell non-volatile memory array and logic block structure and method therefor
US7913125B2 (en) 2003-11-04 2011-03-22 Lsi Corporation BISR mode to test the redundant elements and regular functional memory to avoid test escapes
US6950771B1 (en) 2003-12-09 2005-09-27 Xilinx, Inc. Correlation of electrical test data with physical defect data
US7401281B2 (en) 2004-01-29 2008-07-15 International Business Machines Corporation Remote BIST high speed test and redundancy calculation
US7631236B2 (en) 2004-01-29 2009-12-08 International Business Machines Corporation Hybrid built-in self test (BIST) architecture for embedded memory arrays and an associated method
JP4819316B2 (ja) 2004-02-23 2011-11-24 ルネサスエレクトロニクス株式会社 半導体装置
US7088606B2 (en) 2004-03-10 2006-08-08 Altera Corporation Dynamic RAM storage techniques
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US7120063B1 (en) 2004-05-07 2006-10-10 Spansion Llc Flash memory cell and methods for programming and erasing
US8522205B2 (en) 2004-05-18 2013-08-27 Oracle International Corporation Packaging multiple groups of read-only files of an application's components into multiple shared libraries
JP2006127460A (ja) 2004-06-09 2006-05-18 Renesas Technology Corp 半導体装置、半導体信号処理装置、およびクロスバースイッチ
US7061817B2 (en) 2004-06-30 2006-06-13 Micron Technology, Inc. Data path having grounded precharge operation and test compression capability
US7116602B2 (en) 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US7434024B2 (en) 2004-08-30 2008-10-07 Ati Technologies, Inc. SIMD processor with register addressing, buffer stall and methods
US20060069849A1 (en) 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US7685365B2 (en) 2004-09-30 2010-03-23 Intel Corporation Transactional memory execution utilizing virtual memory
US20060112240A1 (en) 2004-11-24 2006-05-25 Walker Robert M Priority scheme for executing commands in memories
US20060149804A1 (en) 2004-11-30 2006-07-06 International Business Machines Corporation Multiply-sum dot product instruction with mask and splat
US7230851B2 (en) 2004-12-23 2007-06-12 Sandisk Corporation Reducing floating gate to floating gate coupling effect
KR100673901B1 (ko) 2005-01-28 2007-01-25 주식회사 하이닉스반도체 저전압용 반도체 메모리 장치
US7543119B2 (en) 2005-02-10 2009-06-02 Richard Edward Hessel Vector processor
US7624313B2 (en) 2005-03-28 2009-11-24 Hewlett-Packard Development Company, L.P. TCAM BIST with redundancy
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7187585B2 (en) 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US20080244135A1 (en) 2005-05-04 2008-10-02 Nxp B.V. Memory Controller and Method For Controlling Access to a Memory, as Well as System Comprising a Memory Controller
US7193898B2 (en) 2005-06-20 2007-03-20 Sandisk Corporation Compensation currents in non-volatile memory read operations
KR100720644B1 (ko) 2005-11-17 2007-05-21 삼성전자주식회사 메모리 장치 및 메모리 그 동작 방법
WO2007069295A1 (ja) 2005-12-13 2007-06-21 Spansion Llc 半導体装置およびその制御方法
JP5129450B2 (ja) 2006-01-16 2013-01-30 ルネサスエレクトロニクス株式会社 情報処理装置
US8077533B2 (en) 2006-01-23 2011-12-13 Freescale Semiconductor, Inc. Memory and method for sensing data in a memory using complementary sensing scheme
JP4989900B2 (ja) 2006-01-31 2012-08-01 ルネサスエレクトロニクス株式会社 並列演算処理装置
US7400532B2 (en) 2006-02-16 2008-07-15 Micron Technology, Inc. Programming method to reduce gate coupling interference for non-volatile memory
KR100755370B1 (ko) 2006-04-17 2007-09-04 삼성전자주식회사 반도체 메모리 장치
TW200828333A (en) 2006-04-28 2008-07-01 Samsung Electronics Co Ltd Sense amplifier circuit and sense amplifier-based flip-flop having the same
US7752417B2 (en) 2006-06-05 2010-07-06 Oracle America, Inc. Dynamic selection of memory virtualization techniques
US7372715B2 (en) 2006-06-14 2008-05-13 Micron Technology, Inc. Architecture and method for NAND flash memory
US8069377B2 (en) 2006-06-26 2011-11-29 Micron Technology, Inc. Integrated circuit having memory array including ECC and column redundancy and method of operating the same
US7724559B2 (en) 2006-07-14 2010-05-25 International Business Machines Corporation Self-referenced match-line sense amplifier for content addressable memories
US7443729B2 (en) 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
US7885119B2 (en) 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7692466B2 (en) 2006-08-18 2010-04-06 Ati Technologies Ulc Sense amplifier based flip-flop
US7805587B1 (en) 2006-11-01 2010-09-28 Nvidia Corporation Memory addressing controlled by PTE fields
US8151082B2 (en) 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US7471536B2 (en) 2006-12-08 2008-12-30 Texas Instruments Incorporated Match mismatch emulation scheme for an addressed location in a CAM
US7460387B2 (en) 2007-01-05 2008-12-02 International Business Machines Corporation eDRAM hierarchical differential sense amp
US7743303B2 (en) 2007-01-22 2010-06-22 Micron Technology, Inc. Defective memory block remapping method and system, and memory device and processor-based system using same
US7937535B2 (en) 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US7804718B2 (en) 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
US7492640B2 (en) 2007-06-07 2009-02-17 Sandisk Corporation Sensing with bit-line lockout control in non-volatile memory
JP2009009665A (ja) 2007-06-29 2009-01-15 Elpida Memory Inc 半導体記憶装置
US7996749B2 (en) 2007-07-03 2011-08-09 Altera Corporation Signal loss detector for high-speed serial interface of a programmable logic device
US7489543B1 (en) 2007-07-25 2009-02-10 Micron Technology, Inc. Programming multilevel cell memory arrays
US7694195B2 (en) 2007-08-14 2010-04-06 Dell Products L.P. System and method for using a memory mapping function to map memory defects
US7869273B2 (en) 2007-09-04 2011-01-11 Sandisk Corporation Reducing the impact of interference during programming
US7787319B2 (en) 2007-09-06 2010-08-31 Innovative Silicon Isi Sa Sense amplifier circuitry for integrated circuit having memory cell array, and method of operating same
US8042082B2 (en) 2007-09-12 2011-10-18 Neal Solomon Three dimensional memory in a system on a chip
US7965564B2 (en) 2007-09-18 2011-06-21 Zikbit Ltd. Processor arrays made of standard memory cells
US7663928B2 (en) 2007-10-09 2010-02-16 Ememory Technology Inc. Sense amplifier circuit having current mirror architecture
US8156299B2 (en) 2007-10-19 2012-04-10 Virident Systems Inc. Managing memory systems containing components with asymmetric characteristics
US7924628B2 (en) 2007-11-14 2011-04-12 Spansion Israel Ltd Operation of a non-volatile memory array
US7979667B2 (en) 2007-12-10 2011-07-12 Spansion Llc Memory array search engine
US7755960B2 (en) 2007-12-17 2010-07-13 Stmicroelectronics Sa Memory including a performance test circuit
US8495438B2 (en) 2007-12-28 2013-07-23 Texas Instruments Incorporated Technique for memory imprint reliability improvement
US7808854B2 (en) 2008-02-19 2010-10-05 Kabushiki Kaisha Toshiba Systems and methods for data transfers between memory cells
JP5194302B2 (ja) 2008-02-20 2013-05-08 ルネサスエレクトロニクス株式会社 半導体信号処理装置
US8332580B2 (en) 2008-04-02 2012-12-11 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US20090254694A1 (en) 2008-04-02 2009-10-08 Zikbit Ltd. Memory device with integrated parallel processing
US7957206B2 (en) 2008-04-04 2011-06-07 Micron Technology, Inc. Read circuitry for an integrated circuit having memory cells and/or a memory cell array, and method of operating same
US8339824B2 (en) 2008-07-02 2012-12-25 Cooke Laurence H Nearest neighbor serial content addressable memory
US8417921B2 (en) 2008-08-15 2013-04-09 Apple Inc. Running-min and running-max instructions for processing vectors using a base value from a key element of an input vector
US8555037B2 (en) 2008-08-15 2013-10-08 Apple Inc. Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture
US8259509B2 (en) 2008-08-18 2012-09-04 Elpida Memory, Inc. Semiconductor memory device and method with auxiliary I/O line assist circuit and functionality
ITRM20080543A1 (it) 2008-10-09 2010-04-10 Micron Technology Inc Architettura e metodo per la programmazione di memorie.
KR101596283B1 (ko) 2008-12-19 2016-02-23 삼성전자 주식회사 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치
KR101622922B1 (ko) 2009-03-06 2016-05-20 삼성전자 주식회사 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치
US8484276B2 (en) 2009-03-18 2013-07-09 International Business Machines Corporation Processing array data on SIMD multi-core processor architectures
US8055816B2 (en) * 2009-04-09 2011-11-08 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
KR20100134235A (ko) 2009-06-15 2010-12-23 삼성전자주식회사 반도체 메모리 장치
US7898864B2 (en) 2009-06-24 2011-03-01 Sandisk Corporation Read operation for memory with compensation for coupling based on write-erase cycles
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US8412987B2 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
US8238173B2 (en) 2009-07-16 2012-08-07 Zikbit Ltd Using storage cells to perform computation
US9076527B2 (en) 2009-07-16 2015-07-07 Mikamonu Group Ltd. Charge sharing in a TCAM array
JP4951041B2 (ja) 2009-08-06 2012-06-13 株式会社東芝 半導体記憶装置
US8059438B2 (en) 2009-08-28 2011-11-15 International Business Machines Corporation Content addressable memory array programmed to perform logic operations
US8077532B2 (en) 2009-09-02 2011-12-13 Micron Technology, Inc. Small unit internal verify read in a memory device
US8482975B2 (en) 2009-09-14 2013-07-09 Micron Technology, Inc. Memory kink checking
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US20120246380A1 (en) 2009-10-21 2012-09-27 Avidan Akerib Neighborhood operations for parallel processing
US9477636B2 (en) 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory
US8650232B2 (en) 2009-10-26 2014-02-11 Via Technologies, Inc. System and method for determination of a horizontal minimum of digital values
KR101634340B1 (ko) 2009-11-03 2016-06-28 삼성전자주식회사 반도체 메모리 장치의 프로그램 방법
US8583896B2 (en) 2009-11-13 2013-11-12 Nec Laboratories America, Inc. Massively parallel processing core with plural chains of processing elements and respective smart memory storing select data received from each chain
KR20110054773A (ko) 2009-11-18 2011-05-25 삼성전자주식회사 비트라인 디스털번스를 개선하는 반도체 메모리 장치
US8089815B2 (en) 2009-11-24 2012-01-03 Sandisk Technologies Inc. Programming memory with bit line floating to reduce channel-to-floating gate coupling
US8605015B2 (en) 2009-12-23 2013-12-10 Syndiant, Inc. Spatial light modulator with masking-comparators
JP2011146102A (ja) 2010-01-15 2011-07-28 Elpida Memory Inc 半導体装置及びデータ処理システム
US8615629B2 (en) * 2010-01-18 2013-12-24 Marvell International Ltd. Access scheduler
CN102141905B (zh) 2010-01-29 2015-02-25 上海芯豪微电子有限公司 一种处理器体系结构
US8164942B2 (en) 2010-02-01 2012-04-24 International Business Machines Corporation High performance eDRAM sense amplifier
US8533245B1 (en) 2010-03-03 2013-09-10 Altera Corporation Multipliers with a reduced number of memory blocks
US9317536B2 (en) 2010-04-27 2016-04-19 Cornell University System and methods for mapping and searching objects in multidimensional space
KR101119371B1 (ko) 2010-04-29 2012-03-06 주식회사 하이닉스반도체 반도체 메모리 장치 및 이의 동작 방법
US8559232B2 (en) 2010-05-03 2013-10-15 Aplus Flash Technology, Inc. DRAM-like NVM memory array and sense amplifier design for high temperature and high endurance operation
US8819687B2 (en) * 2010-05-07 2014-08-26 Advanced Micro Devices, Inc. Scheduling for multiple memory controllers
US8351278B2 (en) 2010-06-23 2013-01-08 International Business Machines Corporation Jam latch for latching memory array output data
KR101143471B1 (ko) 2010-07-02 2012-05-11 에스케이하이닉스 주식회사 센스앰프 및 이를 포함하는 반도체 장치
US20120017039A1 (en) 2010-07-16 2012-01-19 Plx Technology, Inc. Caching using virtual memory
US8462532B1 (en) 2010-08-31 2013-06-11 Netlogic Microsystems, Inc. Fast quaternary content addressable memory cell
US8347154B2 (en) 2010-09-21 2013-01-01 International Business Machines Corporation Use of hashing function to distinguish random and repeat errors in a memory system
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8332367B2 (en) 2010-10-20 2012-12-11 International Business Machines Corporation Parallel data redundancy removal
KR101148352B1 (ko) 2010-11-02 2012-05-21 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 동작 방법
JP5528987B2 (ja) 2010-11-11 2014-06-25 ピーエスフォー ルクスコ エスエイアールエル 半導体装置
US8553481B2 (en) 2010-11-29 2013-10-08 Apple Inc. Sense amplifier latch with integrated test data multiplexer
US9165023B2 (en) 2011-01-31 2015-10-20 Freescale Semiconductor, Inc. Integrated circuit device and method for determining an index of an extreme value within an array of values
KR20120088973A (ko) 2011-02-01 2012-08-09 삼성전자주식회사 로컬 센스앰프 회로 및 이를 포함하는 반도체 메모리 장치
JP2012174016A (ja) 2011-02-22 2012-09-10 Renesas Electronics Corp データ処理装置およびそのデータ処理方法
JP5259765B2 (ja) 2011-03-29 2013-08-07 株式会社東芝 不揮発性半導体メモリ
US8725730B2 (en) 2011-05-23 2014-05-13 Hewlett-Packard Development Company, L.P. Responding to a query in a data processing system
US8706958B2 (en) 2011-09-01 2014-04-22 Thomas Hein Data mask encoding in data bit inversion scheme
CN103907157B (zh) 2011-10-28 2017-10-17 慧与发展有限责任合伙企业 进行行移位的可移位存储器
US8891297B2 (en) 2011-11-01 2014-11-18 Micron Technology, Inc. Memory cell sensing
KR101321481B1 (ko) 2011-11-04 2013-10-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 위한 테스트 회로
US9830158B2 (en) 2011-11-04 2017-11-28 Nvidia Corporation Speculative execution and rollback
KR20130052971A (ko) 2011-11-14 2013-05-23 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
GB2511957B (en) 2011-11-22 2015-02-11 Mips Tech Inc Processor with kernel mode access to user space virtual addresses
CN105955704B (zh) 2011-11-30 2018-12-04 英特尔公司 用于提供向量横向比较功能的指令和逻辑
KR20130072869A (ko) 2011-12-22 2013-07-02 에스케이하이닉스 주식회사 프리차지 회로 및 비휘발성 메모리 장치
US20140108480A1 (en) 2011-12-22 2014-04-17 Elmoustapha Ould-Ahmed-Vall Apparatus and method for vector compute and accumulate
US20130286705A1 (en) 2012-04-26 2013-10-31 David B. Grover Low power content addressable memory hitline precharge and sensing circuit
US8938603B2 (en) 2012-05-31 2015-01-20 Samsung Electronics Co., Ltd. Cache system optimized for cache miss detection
US20130332707A1 (en) 2012-06-07 2013-12-12 Intel Corporation Speed up big-number multiplication using single instruction multiple data (simd) architectures
KR102062301B1 (ko) 2013-01-03 2020-01-03 삼성전자주식회사 메모리 장치의 페이지 복사 방법 및 메모리 시스템의 페이지 관리 방법
US20140215185A1 (en) 2013-01-29 2014-07-31 Atmel Norway Fetching instructions of a loop routine
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9171153B2 (en) 2013-05-17 2015-10-27 Hewlett-Packard Development Company, L.P. Bloom filter with memory element
US8964496B2 (en) 2013-07-26 2015-02-24 Micron Technology, Inc. Apparatuses and methods for performing compare operations using sensing circuitry
US8971124B1 (en) 2013-08-08 2015-03-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9153305B2 (en) 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9019785B2 (en) 2013-09-19 2015-04-28 Micron Technology, Inc. Data shifting via a number of isolation devices
US9348747B2 (en) 2013-10-29 2016-05-24 Seagate Technology Llc Solid state memory command queue in hybrid device
US9449675B2 (en) 2013-10-31 2016-09-20 Micron Technology, Inc. Apparatuses and methods for identifying an extremum value stored in an array of memory cells
US9430191B2 (en) 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
US20150270015A1 (en) 2014-03-19 2015-09-24 Micron Technology, Inc. Memory mapping
US9934856B2 (en) 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
CN106462501B (zh) 2014-05-08 2019-07-09 美光科技公司 基于混合存储器立方体系统互连目录的高速缓冲存储器一致性方法
EP3140749B1 (en) 2014-05-08 2021-01-13 Micron Technology, INC. In-memory lightweight coherency
US9711207B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9910787B2 (en) 2014-06-05 2018-03-06 Micron Technology, Inc. Virtual address table
US9830999B2 (en) 2014-06-05 2017-11-28 Micron Technology, Inc. Comparison operations in memory
US10074407B2 (en) 2014-06-05 2018-09-11 Micron Technology, Inc. Apparatuses and methods for performing invert operations using sensing circuitry
US9496023B2 (en) 2014-06-05 2016-11-15 Micron Technology, Inc. Comparison operations on logical representations of values in memory
US9449674B2 (en) 2014-06-05 2016-09-20 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9779019B2 (en) 2014-06-05 2017-10-03 Micron Technology, Inc. Data storage layout
US9786335B2 (en) 2014-06-05 2017-10-10 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9711206B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9704540B2 (en) 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US10068652B2 (en) 2014-09-03 2018-09-04 Micron Technology, Inc. Apparatuses and methods for determining population count
US9904515B2 (en) 2014-09-03 2018-02-27 Micron Technology, Inc. Multiplication operations in memory
US9847110B2 (en) 2014-09-03 2017-12-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector
US9589602B2 (en) 2014-09-03 2017-03-07 Micron Technology, Inc. Comparison operations in memory
US9898252B2 (en) 2014-09-03 2018-02-20 Micron Technology, Inc. Multiplication operations in memory
US9747961B2 (en) 2014-09-03 2017-08-29 Micron Technology, Inc. Division operations in memory
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US9940026B2 (en) 2014-10-03 2018-04-10 Micron Technology, Inc. Multidimensional contiguous memory allocation
US9836218B2 (en) 2014-10-03 2017-12-05 Micron Technology, Inc. Computing reduction and prefix sum operations in memory
US10163467B2 (en) 2014-10-16 2018-12-25 Micron Technology, Inc. Multiple endianness compatibility
US10147480B2 (en) 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
US9779784B2 (en) 2014-10-29 2017-10-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9747960B2 (en) 2014-12-01 2017-08-29 Micron Technology, Inc. Apparatuses and methods for converting a mask to an index
US10073635B2 (en) 2014-12-01 2018-09-11 Micron Technology, Inc. Multiple endianness compatibility
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
US9583163B2 (en) 2015-02-03 2017-02-28 Micron Technology, Inc. Loop structure for operations in memory
US9898253B2 (en) 2015-03-11 2018-02-20 Micron Technology, Inc. Division operations on variable length elements in memory
US9741399B2 (en) 2015-03-11 2017-08-22 Micron Technology, Inc. Data shift by elements of a vector in memory
US10146537B2 (en) 2015-03-13 2018-12-04 Micron Technology, Inc. Vector population count determination in memory
US10049054B2 (en) 2015-04-01 2018-08-14 Micron Technology, Inc. Virtual register file
US10140104B2 (en) 2015-04-14 2018-11-27 Micron Technology, Inc. Target architecture determination
US9959923B2 (en) 2015-04-16 2018-05-01 Micron Technology, Inc. Apparatuses and methods to reverse data stored in memory
US9704541B2 (en) 2015-06-12 2017-07-11 Micron Technology, Inc. Simulating access lines
US9921777B2 (en) 2015-06-22 2018-03-20 Micron Technology, Inc. Apparatuses and methods for data transfer from sensing circuitry to a controller
US9588767B2 (en) * 2015-06-25 2017-03-07 International Business Machines Corporation Silent store detection and recording in memory storage
US9996479B2 (en) 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
KR102416465B1 (ko) * 2015-11-30 2022-07-04 삼성전자주식회사 공유 자원을 효율적으로 관리하는 데이터 처리 시스템
US9905276B2 (en) 2015-12-21 2018-02-27 Micron Technology, Inc. Control of sensing components in association with performing operations
US9952925B2 (en) 2016-01-06 2018-04-24 Micron Technology, Inc. Error code calculation on sensing circuitry
US10404603B2 (en) * 2016-01-22 2019-09-03 Citrix Systems, Inc. System and method of providing increased data optimization based on traffic priority on connection
US10048888B2 (en) 2016-02-10 2018-08-14 Micron Technology, Inc. Apparatuses and methods for partitioned parallel data movement
US9892767B2 (en) 2016-02-12 2018-02-13 Micron Technology, Inc. Data gathering in memory
US9971541B2 (en) 2016-02-17 2018-05-15 Micron Technology, Inc. Apparatuses and methods for data movement
US10956439B2 (en) 2016-02-19 2021-03-23 Micron Technology, Inc. Data transfer with a bit vector operation device
US9899070B2 (en) 2016-02-19 2018-02-20 Micron Technology, Inc. Modified decode for corner turn
US9697876B1 (en) 2016-03-01 2017-07-04 Micron Technology, Inc. Vertical bit vector shift in memory
US10262721B2 (en) 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10379772B2 (en) 2016-03-16 2019-08-13 Micron Technology, Inc. Apparatuses and methods for operations using compressed and decompressed data
US9910637B2 (en) 2016-03-17 2018-03-06 Micron Technology, Inc. Signed division in memory
US10388393B2 (en) 2016-03-22 2019-08-20 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10120740B2 (en) 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10977033B2 (en) 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
US10430244B2 (en) 2016-03-28 2019-10-01 Micron Technology, Inc. Apparatuses and methods to determine timing of operations
US10074416B2 (en) 2016-03-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for data movement
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
US10607665B2 (en) 2016-04-07 2020-03-31 Micron Technology, Inc. Span mask generation
US9818459B2 (en) 2016-04-19 2017-11-14 Micron Technology, Inc. Invert operations using sensing circuitry
US9659605B1 (en) 2016-04-20 2017-05-23 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US9659610B1 (en) 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US9761300B1 (en) 2016-11-22 2017-09-12 Micron Technology, Inc. Data shift apparatuses and methods
US10409839B2 (en) * 2017-03-30 2019-09-10 The Boeing Company Dimension optimization in singular value decomposition-based topic models

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
미국공개특허 제2011-0179240호(2011.07.21.) 1부.*
미국공개특허 제2011-0276974호(2011.11.10.) 1부.*

Also Published As

Publication number Publication date
KR20200059318A (ko) 2020-05-28
US11288214B2 (en) 2022-03-29
EP3701366A4 (en) 2021-08-04
US20210056052A1 (en) 2021-02-25
CN111566610B (zh) 2022-04-05
EP3701366A2 (en) 2020-09-02
US10409739B2 (en) 2019-09-10
US20190121546A1 (en) 2019-04-25
CN111566610A (zh) 2020-08-21
US10831682B2 (en) 2020-11-10
WO2019083673A2 (en) 2019-05-02
US20190121545A1 (en) 2019-04-25
WO2019083673A3 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
KR102439067B1 (ko) 커맨드 선택 폴리시
US11593027B2 (en) Command selection policy with read priority
US11061721B2 (en) Task queues
JP6130594B2 (ja) 信頼性の高い動作に適したメモリコントローラを有するデータプロセッサ及び方法
KR102448999B1 (ko) 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스
US20220398200A1 (en) Memory protocol with programmable buffer and cache size
EP3462327A2 (en) Systems, methods and apparatus for memory access and scheduling
US20180188976A1 (en) Increasing read pending queue capacity to increase memory bandwidth
KR102307229B1 (ko) 명령 우선 순위를 이용하는 메모리 프로토콜
KR101349899B1 (ko) 메모리 제어기 및 이의 메모리 접근 스케줄링 방법
US20190042450A1 (en) Cache filter
US9836220B2 (en) Data processing system and method of operating the same
CN112965816B (zh) 内存管理技术及计算机系统
CN115729622A (zh) 用于存储器的命令调度组件
US20190065373A1 (en) Cache buffer

Legal Events

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