KR102439067B1 - 커맨드 선택 폴리시 - Google Patents
커맨드 선택 폴리시 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid 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는 본 개시의 다수의 실시예에 따른 커맨드 선택 폴리시를 구현하는 것과 관련된 커맨드의 예를 도시한다.
도 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 우선순위 큐에 삽입하는 단계;
행 판독 커맨드를 제2 우선순위 큐에 삽입하는 단계; 및
기록 커맨드를 제3 우선순위 큐 또는 제4 우선순위 큐에 삽입하는 단계를 포함하며;
상기 방법은:
상기 기록 커맨드에 대응하는 기록-후-판독 의존성을 결정하는 단계;
상기 기록 커맨드를 다른 열 판독 커맨드 또는 다른 행 판독 커맨드로서 카테고리화하는 단계; 및
상기 카테고리화하는 단계에 기초하여 상기 제1 우선순위 큐 또는 상기 제2 우선순위 큐 중 하나에 상기 기록 커맨드를 삽입하는 단계를 더 포함하는, 커맨드 선택 방법. - 제 1 항에 있어서,
상기 복수의 우선순위 큐 중 하나에 상기 복수의 커맨드 각각을 삽입하는 단계는
열 기록 커맨드들 및 행 기록 커맨드들보다 열 판독 커맨드들 및 행 판독 커맨드들을 우선순위화하는 단계를 포함하는, 커맨드 선택 방법. - 제 1 항에 있어서,
우선순위의 순서로 상기 복수의 우선순위 큐를 반복하는 단계를 더 포함하고, 상기 적어도 하나의 커맨드는 상기 반복에 적어도 부분적으로 기초하여 선택되는, 커맨드 선택 방법. - 제 3 항에 있어서,
우선순위의 순서로 상기 복수의 우선순위 큐를 반복하는 단계는
최고 우선순위 큐가 상기 최고 우선순위 큐 내의 상기 커맨드들을 반복함으로써 발행 가능한 커맨드를 포함하는지 여부를 결정하는 단계로서, 상기 복수의 우선순위 큐 중 각각의 우선순위 큐 내의 상기 커맨드들이 상기 메모리 제어기에 의해 수신되는 순서에 의해 우선순위화되는 단계; 및
상기 최고 우선순위 큐가 발행 가능한 커맨드를 포함한다는 결정에 기초하여 상기 메모리 장치로 상기 발행 가능한 커맨드를 발행하는 단계; 또는
상기 최고 우선순위 큐가 발행 가능한 커맨드를 포함하지 않는다는 결정에 기초하여 다음으로 높은 우선순위 큐 내의 상기 커맨드들을 반복함으로써 상기 다음으로 높은 우선순위 큐가 발행 가능한 커맨드를 포함하는지 여부를 결정하는 단계를 포함하는, 커맨드 선택 방법. - 삭제
- 삭제
- 삭제
- 제 1 항에 있어서,
상기 기록 커맨드를 열 기록 커맨드 또는 행 기록 커맨드로 분류하는 단계를 더 포함하며,
상기 기록 커맨드는 상기 카테고리화하는 단계에 기초하여 상기 제3 우선순위 큐 또는 상기 제4 우선순위 큐에 삽입되는, 커맨드 선택 방법. - 장치에 있어서,
메모리 장치; 및
상기 메모리 장치에 결합되는 제어기를 포함하되,
각각의 수신된 커맨드에 대한 우선순위 카테고리를 결정하고;
각각의 수신된 커맨드를 각각의 수신된 커맨드의 결정된 우선순위 카테고리에 기초하여 복수의 우선순위화된 큐 중 선택된 큐에 삽입하며;
우선순위의 순서로 상기 복수의 우선순위화된 큐를 반복함으로써 상기 메모리 장치로 발행하기 위한 커맨드들을 선택하고;
제1 타입의 수신된 판독 커맨드들을 제1 우선순위 카테고리로 지정하고, 그것들을 상기 복수의 우선순위화된 큐의 제1 우선순위 큐에 삽입하며;
적어도 제3 우선순위 큐를 유지하고;
제2 타입의 수신된 판독 커맨드들을 제2 우선순위 카테고리로 지정하고, 그것들을 상기 복수의 우선순위화된 큐의 제2 우선순위 큐에 삽입하며;
수신된 기록 커맨드들을 제 1 타입 또는 제 2 타입 중 하나로 지정하며;
상기 수신된 기록 커맨드들이 이전의 판독 커맨드보다 상기 메모리 장치의 다른 페이지로 향하는 것으로 결정하는 것에 응답하여, 상기 수신된 기록 커맨드들을 상기 적어도 제 3 우선순위 큐로 삽입하고; 그리고
상기 기록 커맨드들이 적어도 하나의 이전 판독 커맨드와 동일한 페이지로 향하는 것으로 결정하는 것에 응답하여, 상기 수신된 기록 커맨드들을 상기 제 1 우선순위 큐 또는 상기 제 2 우선순위 큐에 삽입하도록 구성되는 상기 제어기를 포함하는, 장치. - 삭제
- 삭제
- 제 9 항에 있어서,
상기 제1 타입의 판독 커맨드들은 열 판독 커맨드들이고, 상기 제2 타입의 판독 커맨드들은 행 판독 커맨드들인, 장치. - 삭제
- 제 9 항에 있어서,
상기 제어기는
상기 우선순위화된 큐들 내의 커맨드들이 발행될 수 있는지 여부를 결정하고;
상기 메모리 장치로 발행하기 위해, 상기 제 1 우선순위 큐에 포함되고 발행할 수 있는 것으로 결정된 제 1 커맨드를 선택하며;
상기 메모리 장치로 발행하기 위해, 상기 제 2 우선순위 큐에 포함되고 상기 제 1 우선순위 큐가 발행 가능한 커맨드를 포함하지 않는다는 결정에 기초하여 발행할 수 있는 것으로 결정된 제 1 커맨드를 선택하고; 그리고
상기 제 1 우선순위 큐 또는 제 2 우선순위 큐 중 어느 하나, 또는 양자 모두가, 커맨드를 현재 포함한다는 결정에 기초하여 상기 메모리 장치로의 발행을 위해 적어도 상기 제 3 우선순위 큐로부터의 커맨드의 선택을 방지하도록 구성되는, 장치. - 제 9 항에 있어서,
상기 제 1 우선순위 큐는 상기 복수의 우선순위화된 큐의 최고 우선순위 큐이고,
상기 제 2 우선순위 큐는 상기 복수의 우선순위화된 큐의 두번째로 높은 우선순위 큐인, 장치. - 제 9 항, 제 12항, 제14항 및 제 15 항 중 어느 한 항에 있어서,
상기 제어기는
기록-후-판독 의존성을 갖는 것으로 결정된 판독 커맨드가 존재하지 않는 다면, 상기 우선순위화된 큐들이 임의의 판독 커맨드들을 포함하는 경우, 어떠한 기록 커맨드들도 상기 메모리 장치로의 발행을 위해 선택되지 않는 커맨드 선택 폴리시에 기초하여 상기 메모리 장치로 발행하기 위한 커맨드들을 선택하도록 구성되는, 장치. - 제어기에 있어서,
메모리 장치로 발행될 수신된 커맨드들을 저장하도록 구성된 커맨드 큐;
복수의 우선순위화된 큐; 및
로직을 포함하되,
각각의 수신된 커맨드에 대한 우선순위 카테고리들을 결정하고;
각각의 수신된 커맨드를 그것의 우선순위 카테고리에 기초한 상기 복수의 우선순위화된 큐 중 하나에 삽입하며; 상기 그것의 우선순위 카테고리는
상기 커맨드에 대응하는 커맨드 형태;
상기 커맨드가 개방된 또는 폐쇄된 행으로 향하는지 여부; 또는
판독-후-기록 의존성이 상기 커맨드와 관련되는지 여부; 또는
이들의 임의의 조합;에 기초하고, 그리고
가장 높은 우선순위 큐로부터 가장 낮은 우선순위 큐로의 우선순위의 순서로 상기 복수의 우선순위화된 큐를 반복함으로써 상기 메모리 장치로 발행하기 위해 상기 복수의 우선순위화된 큐로부터 커맨드를 선택하는 상기 로직을 포함하는, 제어기. - 제 17 항에 있어서,
상기 복수의 우선순위화된 큐를 반복하는 단계는
더 높은 우선순위 큐가, 발행할 수 없는 커맨드들 및 적어도 하나의 비-발행 가능 커맨드를 포함한다고 결정하는 것에 응답하여 상기 반복에 결론을 내리는 단계를 포함하는, 제어기. - 제 17 항 내지 제 18 항 중 어느 한 항에 있어서,
상기 로직은
선-준비, 선착순(first-ready, first-come, first-served, FRFCFS) 폴리시에 기초하여 상기 메모리 장치로 발행하기 위한 커맨드들을 선택하도록 구성되고, 여기에서 상기 우선순위화된 큐들이 임의의 판독 커맨드들을 포함한다면 판독 커맨드들이 기록 커맨드들보다 우선순위화되며,
상기 기록 커맨드가 기록-후-판독 의존성을 갖는 판독 커맨드와 관련된 것으로 결정되는 경우에만 상기 메모리 장치로의 발행을 위해 기록 커맨드들이 선택되는, 제어기. - 방법에 있어서,
메모리 장치로 발행될 각각의 수신된 커맨드들로 우선순위 카테고리들을 지정하는 단계;
각각의 수신된 커맨드를 지정된 우선순위 카테고리에 기초하여 복수의 우선순위화된 큐 중 선택된 하나에 삽입하는 단계로서, 그것의 지정된 우선순위 카테고리는
상기 커맨드에 대응하는 커맨드 형태;
상기 커맨드가 개방된 행으로 향하는지 여부; 또는
기록-후-판독 의존성이 상기 커맨드와 관련되는지 여부; 또는
이들의 임의의 조합; 에 기초하고, 그리고
가장 높은 우선순위 큐로부터 가장 낮은 우선순위 큐로의 우선순위의 순서로 상기 복수의 우선순위화된 큐를 반복함으로써 상기 메모리 장치로 발행하기 위해 상기 복수의 우선순위화된 큐로부터 커맨드를 선택하는 단계를 포함하는, 방법. - 커맨드 선택 방법에 있어서,
복수의 수신된 커맨드 각각을 상기 커맨드 각각의 지정된 우선순위 카테고리에 기초하여 복수의 우선순위화된 큐 중 선택된 하나에 삽입하는 단계로서, 상기 커맨드 각각의 상기 지정된 우선순위 카테고리는
상기 커맨드에 대응하는 커맨드 형태;
상기 커맨드가 개방된 행으로 향하는지 여부; 및
기록-후-판독 의존성이 상기 커맨드들과 관련되는지 여부; 중 적어도 하나에 기초하고, 그리고
우선순위의 순서로 상기 복수의 우선순위화된 큐를 반복함으로써 메모리 장치로 발행하기 위해 상기 복수의 우선순위화된 큐로부터 커맨드를 선택하는 단계를 포함하는, 방법.
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)
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)
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 |
-
2017
- 2017-10-24 US US15/791,886 patent/US10409739B2/en active Active
-
2018
- 2018-08-14 US US16/103,585 patent/US10831682B2/en active Active
- 2018-09-26 CN CN201880067106.XA patent/CN111566610B/zh active Active
- 2018-09-26 WO PCT/US2018/052921 patent/WO2019083673A2/en unknown
- 2018-09-26 KR KR1020207014311A patent/KR102439067B1/ko active IP Right Grant
- 2018-09-26 EP EP18870007.4A patent/EP3701366A4/en not_active Withdrawn
-
2020
- 2020-11-09 US US17/093,104 patent/US11288214B2/en active Active
Non-Patent Citations (2)
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 |