KR20170012399A - 메모리 시스템에서 데이터 구조들을 세그먼트하기 위한 시스템들 및 방법들 - Google Patents
메모리 시스템에서 데이터 구조들을 세그먼트하기 위한 시스템들 및 방법들 Download PDFInfo
- Publication number
- KR20170012399A KR20170012399A KR1020167036180A KR20167036180A KR20170012399A KR 20170012399 A KR20170012399 A KR 20170012399A KR 1020167036180 A KR1020167036180 A KR 1020167036180A KR 20167036180 A KR20167036180 A KR 20167036180A KR 20170012399 A KR20170012399 A KR 20170012399A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- memory component
- banks
- virtual
- processor
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- 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
-
- 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/38—Information transfer, e.g. on bus
-
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
-
- 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/0656—Data buffering 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/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
- 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/0661—Format or protocol conversion 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
-
- 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
-
- 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
- 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/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/189—Transmission or retransmission of more than one copy of a message
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
- Dram (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
메모리 디바이스(14)는 데이터를 저장하는 메모리 컴포넌트(24, 26, 28) 및 프로세서(22)를 포함할 수 있다. 프로세서(22)는 메모리 컴포넌트(24, 26, 28)와 연관된 하나 이상의 속성들 및 메모리 컴포넌트(24, 26, 28)에 대한 예상된 랜덤 액세스 레이트에 기초하여 메모리 컴포넌트(24, 26, 28)에서 하나 이상의 뱅크(35)들 또는 하나 이상의 가상 뱅크(36)들을 매핑시킬 수 있다.
Description
관련 출원에 대한 상호-참조
본 출원은 2014년 6월 2일에 출원된, “확장 가능한 메모리 시스템 프로토콜을 위한 시스템들 및 방법들(Systems and Methods for a Scalable Memory System Protocol)”이라는 제목의, 미국 가 특허 출원 번호 제62/006,668호에 대한 우선권을 주장하는 정규 출원이며, 본 출원에 참조로서 통합된다.
발명의 분야
본 개시는 일반적으로 메모리 디바이스들을 사용하여 데이터 동작들(예로서, 판독, 기록)이 수행될 수 있는 레이트를 개선하기 위한 메모리 시스템에 관한 것이다. 보다 구체적으로, 본 개시는 메모리 시스템들이 메모리 시스템들을 액세스하기 위한 요청들에 응답하는 레이트들을 개선하기 위한 시스템들 및 기술들에 관한 것이다.
이 섹션은 이하에서 설명되며 및/또는 주장되는, 본 개시의 다양한 양상들에 관련될 수 있는 기술의 다양한 양상들을 판독자에게 소개하도록 의도된다. 이러한 논의는 본 개시의 다양한 양상들의 보다 양호한 이해를 용이하게 하기 위해 배경 정보를 판독자에게 제공하는데 도움이 되는 것으로 믿어진다. 따라서, 이들 서술들은 종래 기술의 허용들로서가 아닌, 이러한 관점에서 판독될 것이라는 것이 이해되어야 한다.
일반적으로, 동적 랜덤 액세스 메모리(DRAM) 컴포넌트와 같은 저 성능(예로서, 낮은 요청 레이트) 메모리 유형들은 정적 랜덤 액세스 메모리(SRAM) 컴포넌트와 같은 많이 수용할 수 있는(예로서, 높은 요청 레이트) 메모리들에 비교하여 비교적 저렴할 수 있다. 이와 같이, 특정한 데이터 동작들(예로서, 판독, 기록)은 메모리 유형들의 각각의 능력들에 기초하여 특정한 메모리 유형들에 대해 수행될 수 있다. 예를 들면, 다수의 동작들을 수반한 큰 복잡한 데이터 동작들에 대해, 데이터 동작들이 DRAM 컴포넌트를 사용하여 동일한 데이터 동작들을 수행할 때와 비교하여 더 빠르게 수행됨을 보장하기 위해 SRAM 컴포넌트를 사용하는 것이 유익할 수 있다. SRAM 컴포넌트가 요청된 데이터 동작들을 효율적으로 수행하기 위해 사용될 수 있지만, SRAM 컴포넌트들은 통상적으로 비용 고려사항들로 인해 메모리 디바이스에서 제한된다. 이와 같이, 고도로 유능한 메모리 컴포넌트들과 유사하거나 또는 보다 높은 레이트들에서 동작들을 수행하기 위해 덜 유능한 메모리 컴포넌트들 또는 다른 메모리 유형들을 사용하는 것이 유익할 수 있다.
본 개시의 다양한 양상들은 다음의 상세한 설명을 판독할 때 및 도면들을 참조하여 더 잘 이해될 수 있다:
도 1은 실시예에 따른, 컴퓨팅 시스템의 예의 블록도를 예시한다;
도 2는 실시예에 따른, 도 1의 컴퓨팅 시스템의 부분일 수 있는 메모리 디바이스의 예의 블록도를 예시한다;
도 3은 실시예에 따른, 다수의 메모리 층들을 포함할 수 있는 예시적인 3-차원 적층 메모리 컴포넌트의 상면도를 예시한다;
도 4는 실시예에 따른, 도 3의 메모리 컴포넌트의 물리 계층들의 방법의 흐름도를 예시한다;
도 5는 실시예에 따른, 도 3의 메모리 컴포넌트의 일 부분의 물리 계층들을 이루는 예시적인 가상 뱅크들의 방법의 흐름도를 예시한다;
도 6은 실시예에 따른, 가상 뱅크들에 매핑된 4개의 데이터 구조들의 블록도를 예시한다;
도 7은 실시예에 따른, 도 3의 메모리 디바이스의 메모리 컴포넌트에서 생성하기 위한 가상 뱅크들의 수를 결정하기 위한 방법의 흐름도를 예시한다;
도 8은 실시예에 따른, 메모리 컴포넌트의 예시적인 데이터 구조의 블록도를 예시한다;
도 9는 실시예에 따른, 도 4의 데이터 구조의 세그먼트된 버전의 블록도를 예시한다;
도 10은 실시예에 따른, 선호 큐 길이에 기초하여 도 2의 메모리 디바이스의 메모리 컴포넌트에서 생성하기 위한 가상 뱅크들의 수를 결정하기 위한 방법의 흐름도를 예시한다; 및
도 11은 실시예에 따른, 다양한 큐 깊이들에 대하여 가상 뱅크들의 수의 로그 그래프를 예시한다.
도 1은 실시예에 따른, 컴퓨팅 시스템의 예의 블록도를 예시한다;
도 2는 실시예에 따른, 도 1의 컴퓨팅 시스템의 부분일 수 있는 메모리 디바이스의 예의 블록도를 예시한다;
도 3은 실시예에 따른, 다수의 메모리 층들을 포함할 수 있는 예시적인 3-차원 적층 메모리 컴포넌트의 상면도를 예시한다;
도 4는 실시예에 따른, 도 3의 메모리 컴포넌트의 물리 계층들의 방법의 흐름도를 예시한다;
도 5는 실시예에 따른, 도 3의 메모리 컴포넌트의 일 부분의 물리 계층들을 이루는 예시적인 가상 뱅크들의 방법의 흐름도를 예시한다;
도 6은 실시예에 따른, 가상 뱅크들에 매핑된 4개의 데이터 구조들의 블록도를 예시한다;
도 7은 실시예에 따른, 도 3의 메모리 디바이스의 메모리 컴포넌트에서 생성하기 위한 가상 뱅크들의 수를 결정하기 위한 방법의 흐름도를 예시한다;
도 8은 실시예에 따른, 메모리 컴포넌트의 예시적인 데이터 구조의 블록도를 예시한다;
도 9는 실시예에 따른, 도 4의 데이터 구조의 세그먼트된 버전의 블록도를 예시한다;
도 10은 실시예에 따른, 선호 큐 길이에 기초하여 도 2의 메모리 디바이스의 메모리 컴포넌트에서 생성하기 위한 가상 뱅크들의 수를 결정하기 위한 방법의 흐름도를 예시한다; 및
도 11은 실시예에 따른, 다양한 큐 깊이들에 대하여 가상 뱅크들의 수의 로그 그래프를 예시한다.
하나 이상의 특정 실시예들이 이하에서 설명될 것이다. 이들 실시예들에 대한 간결한 설명을 제공하기 위한 노력으로, 실제 구현의 모드 특징들이 명세서에서 설명되는 것은 아니다. 임의의 이러한 실제 구현의 개발 시, 임의의 엔지니어링 또는 설계 프로젝트에서처럼, 다수의 구현-특정 결정들이, 하나의 구현에서 또 다른 것으로 달라질 수 있는, 시스템-관련 및 비즈니스-관련 제약들을 준수하는 것과 같은, 개발자들의 특정 목표들을 달성하기 위해 이루어져야 한다는 것이 이해되어야 한다. 게다가, 이러한 개발 노력은 복잡하며 시간 소모적일 수 있지만, 그럼에도 불구하고 본 개시의 이득을 가진 통상의 숙련자들에 대한 설계, 제작, 및 제조의 보통의 일일 것임이 이해되어야 한다.
일반적으로 상이한 메모리 유형들은 상이한 능력들을 가진다. 즉, 상이한 메모리 유형들은 다른 메모리 유형들보다 더 효율적으로 특정한 유형들의 기능들을 수행할 수 있다. 예를 들면, DRAM 메모리 유형들은 SRAM 메모리만큼 빠르게 기능들을 수행하는 것이 가능하지 않을 수 있다. 특정한 실시예들에서, 메모리 시스템은 가상 뱅크들로서 DRAM의 부분들을 매핑시키며 동시에 가상 뱅크들을 사용하여 다수의 동작들을 수행할 수 있다. 이와 같이, SRAM에 의해 개별적으로 수행되어 온 동작들이 이제 DRAM들을 사용하여 수행될 수 있다. DRAM의 가상 뱅크들에서 이들 다수의 동작들을 동시에 수행함으로써, 가상 뱅크들을 사용한 메모리 시스템은 보다 낮은 요청 레이트 메모리(DRAM)를 사용하지만, SRAM과 같은 고-요청 레이트 메모리를 사용하는 환상을 제공할 수 있다. 그 결과, SRAM과 같은 보다 높은 능력 메모리들이 다른 프로세스들을 수행하기 위해 예약될 수 있다. 보다 효율적인 동작들을 수행하기 위해 다양한 메모리 유형들에서 가상 뱅크들을 매핑시키는 것에 관한 부가적인 상세들이 이하에서 보다 상세히 설명될 것이다.
확장 가능한 프로토콜을 사용한 컴퓨팅 및 메모리 시스템들(Computing and Memory Systems Using the Scalable Protocol)
도입으로서, 도 1은 여기에서 설명된 기술들에 따른 메모리 컴포넌트들에서 가상 뱅크들을 매핑시킬 수 있는 메모리 디바이스들을 포함할 수 있는 컴퓨팅 시스템(10)의 블록도를 예시한다. 컴퓨팅 시스템(10)은 컴퓨터, 페이저, 셀룰러 전화, 전자 수첩(personal organizer), 제어 회로 등과 같은, 다양한 컴퓨팅 디바이스들 중 임의의 것일 수 있다. 컴퓨팅 시스템(10)은 다수의 메모리 디바이스들(14)에 결합될 수 있는 호스트 시스템 온 칩(SoC)(12)을 포함할 수 있다. 호스트 SoC(12)는 컴퓨터 또는 다른 전자 시스템의 모든 컴포넌트들을 단일 칩으로 통합하는 집적 회로(IC)일 수 있다. 이와 같이, 호스트 SoC(12)는 컴퓨팅 시스템(10)에서 시스템 기능들 및 요청들의 프로세싱을 제어할 수 있는, 마이크로프로세서와 같은, 하나 이상의 프로세서들을 포함할 수 있다. 여기에서 사용된 바와 같이, 프로세서들은 대응하는 전기 디바이스 상에서 실행 가능한 지시들을 수행할 수 있는 임의의 적절한 프로세서를 포함할 수 있다.
상기 언급된 바와 같이, 호스트 SoC(12)는 메모리 디바이스들(14)에 결합될 수 있다. 특정한 실시예들에서, 호스트 SoC(12)는 채널들(16)을 통해 메모리 디바이스들(14)에 결합될 수 있다. 채널들(16)은 버스들, 전기 배선 등을 포함할 수 있다.
도 2는 메모리 디바이스(14)의 실시예의 블록도를 묘사한다. 메모리 디바이스(14)는 디지털 데이터를 보유하도록 설계된 임의의 전기 저장 디바이스를 포함할 수 있다. 메모리 디바이스(14)는 휘발성 메모리 및 비-휘발성 메모리를 포함한 매우 다양한 메모리 컴포넌트들을 포함할 수 있다. 휘발성 메모리는 동적 랜덤 액세스 메모리(DRAM) 및/또는 정적 랜덤 액세스 메모리(SRAM)를 포함할 수 있다. 게다가, 휘발성 메모리는 단일 인라인 메모리 모듈들(SIMM들) 또는 이중 인라인 메모리 모듈들(DIMM들)과 같은, 다수의 메모리 모듈들을 포함할 수 있다.
비-휘발성 메모리는 EPROM과 같은, 판독-전용 메모리(ROM), 및/또는 휘발성 메모리와 함께 사용될 플래시 메모리(예로서, NAND)를 포함할 수 있다. 부가적으로, 비-휘발성 메모리는 테이프 또는 디스크 드라이브 메모리와 같은 고 용량 메모리를 포함할 수 있다. 이해될 바와 같이, 휘발성 메모리 또는 비-휘발성 메모리는 코드(예로서, 지시들)를 저장하기 위한 비-일시적 유형의 기계-판독 가능한 매체로 고려될 수 있다.
도 2에 도시된 바와 같이, 특정한 실시예들에서, 메모리 디바이스(14)는 메모리 디바이스(14) 상에 저장된 메모리 컴포넌트들에 밀착 결합된 프로세서-인-메모리(PIM) 또는 컴퓨터 프로세서(CPU)일 수 있는 시스템 온 칩(SoC)(22)을 포함할 수 있다. 일반적으로, 메모리 SoC(22)는 메모리 디바이스(14)의 메모리 컴포넌트들과 동일한 실리콘 칩 상에 있을 수 있다. 메모리 디바이스(14)로 프로세싱 및 메모리 컴포넌트들을 병합함으로써, 메모리 SoC(22)는 데이터 요청들 및 응답들이 메모리 컴포넌트들 및 호스트 SoC(12) 사이에서 송신 및 수신되는 방식을 관리할 수 있다. 특정한 실시예들에서, 메모리 SoC(22)는 지연시간(latency)을 감소시키며 대역폭을 증가시키기 위해 메모리 컴포넌트들 사이에서의 트래픽을 제어할 수 있다. 이해될 바와 같이, 호스트 SoC(12) 및 메모리 SoC(22)는 여기에서 설명된 실시예들에 따라 메모리 컴포넌트들 및 다른 디바이스들 사이에서의 송신들을 제어할 때 확장 가능한 메모리 시스템 프로토콜을 이용할 수 있다. 이와 같이, 확장 가능한 메모리 시스템 프로토콜은 메모리 디바이스(14) 및 호스트 SoC(12) 사이에서의 채널들(16) 상에서, 뿐만 아니라 메모리 컴포넌트들 및 메모리 SoC(22) 사이에서의 채널들(29) 상에서 동작할 수 있다.
예로서, 메모리 디바이스(14)는 NAND 메모리들(24), 감소-지연시간 동적 랜덤 액세스 메모리(RLDRAM)(26), 이중 데이터 레이트 4세대 동기식 동적 랜덤-액세스 메모리(DDR4)(28) 등과 같은 메모리 유형들을 포함할 수 있다.
특정한 실시예들에서, 호스트 SoC(12) 및 메모리 SoC(22)는 메모리 컴포넌트들, 레지스터들 등을 통해 제공된 컴퓨터-실행 가능한 지시들에 기초하여 다양한 동작들을 수행할 수 있다. 메모리 컴포넌트들 또는 저장 장치는 프로세서-실행 가능한 코드, 데이터 등을 저장하기 위해 미디어로서 작용할 수 있는 임의의 적절한 제조 물품들일 수 있다. 이들 제조 물품들은 현재 개시된 기술들을 수행하기 위해 호스트 Soc(12) 또는 메모리 SoC(22)에 의해 사용된 프로세서-실행 가능한 코드를 저장할 수 있는 컴퓨터-판독 가능한 미디어(즉, 임의의 적절한 형태의 메모리 또는 저장 장치)를 나타낼 수 있다. 메모리 및 저장 장치는 또한 데이터, 데이터의 분석 등을 저장하기 위해 사용될 수 있다. 메모리 및 저장 장치는 여기에서 설명된 다양한 기술들을 수행하기 위해 호스트 SoC(12) 또는 메모리 SoC(22)에 의해 사용된 프로세서-실행 가능한 코드를 저장할 수 있는 비-일시적 컴퓨터-판독 가능한 미디어(즉, 임의의 적절한 형태의 메모리 또는 저장 장치)를 나타낼 수 있다. 비-일시적은 단지 미디어가 유형이며 신호가 아님을 나타낸다는 것에 유의하여야 한다.
데이터 구조들의 고
세그먼테이션
(High Segmentation of Data Structures)
상기 언급된 바와 같이, 메모리 디바이스들은 통상적으로 다른 유형들의 메모리들 상에서 수행된 동작들을 수행하기 위해 특정한 유형들의 메모리들의 능력들을 레버리징함으로써 보다 효율적으로 사용될 수 있다. 예를 들면, DRAM과 같은 저 능력 메모리 유형들은 SRAM과 같은 고도로 유능한 메모리들에 비교하여 비교적 저렴할 수 있다. DRAM은 SRAM만큼 빠르게 기능들을 수행하는 것이 가능하지 않을 수 있지만, 뱅크들과 같은 DRAM의 독립적으로 동작 가능한 영역들(IOR들)이 SRAM에 의해 개별적으로 수행되어 온 다수의 동작들을 동시에 수행하기 위해 사용될 수 있다. 이와 같이, 특정한 실시예들에서, 메모리 SoC(22)는 메모리 디바이스(14) 내에서 하나 이상의 메모리 컴포넌트들의 데이터 구조들을 세그먼트할 수 있다. 즉, 메모리 SoC(22)는 각각의 메모리 컴포넌트의 이용 가능한 데이터 구조들을 사용하여 정보를 분배하는 방법을 결정할 수 있다. 여기에서 논의된 바와 같이, 데이터 구조를 세그먼트하는 것은 일반적으로 메모리 컴포넌트에 이미 존재하는 뱅크들에 따른 데이터 구조의 부분들을 기존의 뱅크들의 가상 뱅크들 등으로 매핑시키는 것을 수반한다는 것이 언급되어야 한다. 이해될 바와 같이, 뱅크들은 메모리 컴포넌트 내에서 그것들 각각의 데이터 구조들을 고려해볼 때 서로 독립적으로 동작할 수 있다. 동일한 방식으로, 각각의 뱅크에서 매핑된 가상 뱅크들은 각각의 개별적인 가상 뱅크가 매핑되는 뱅크에 의존하여 서로 독립적으로 동작할 수 있다. 어떤 경우에도, 메모리 컴포넌트들에서 이용 가능한 데이터 구조들을 결정한 후, 메모리 SoC(22)는 메모리 컴포넌트의 부분인 상이한 데이터 구조들을 메모리 컴포넌트의 뱅크들 또는 가상 뱅크들로 매핑시킬 수 있다. 그 결과, 고 세그먼테이션(segmentation) 기술들은 DRAM(즉, 관례적인 DRAM보다 많은 뱅크들 및 관례적인 DRAM에서 발견되지 않은 가상 뱅크들로서 동작하기 위해 세그먼트된 가능한 뱅크들을 가진 DRAM)과 같은 높은 뱅크 카운트들을 가진 저렴한 메모리가 SRAM과 같은 보다 비싸며 고도로 유능한 메모리를 대신하도록 허용할 수 있다.
앞서 말한 것을 고려하여, 메모리 디바이스(14)의 각각의 메모리 컴포넌트는 그것이 처음에 제조되었을 때 메모리 컴포넌트의 부분일 수 있는 특정한 수의 데이터 구조들을 포함할 수 있다. 예를 들면, 메모리 컴포넌트는 볼트(vault)들 및 뱅크들과 같은 상이한 부분들로 분배될 수 있는 메모리의 다수의 계층들을 포함하는 적층 디바이스일 수 있다. 도 3은 제조 시 생성될 수 있는, 다수의 메모리 계층들을 포함할 수 있는 예시적인 3-차원 적층 메모리 컴포넌트(30)의 상면도를 예시한다. 도 3에 도시된 바와 같이, 메모리 컴포넌트(30)는 그것에 결합된 다수의 링크들(31)을 포함할 수 있다. 일반적으로, 상기 논의된 채널들(29)은 하나 이상의 링크들(31)을 포함할 수 있으며 메모리 컴포넌트(30)로의 액세스를 제공할 수 있다. 묘사된 실시예에서, 각각의 링크(31)는 3개의 유입 레인(ingress lane)들 및 2개의 유출 레인(egress lane)들을 포함할 수 있다.
상기 언급된 바와 같이, 메모리 컴포넌트(30)는 다수의 메모리 계층들 및 로직 계층을 포함할 수 있다. 도 4는, 예를 들면, 8개의 메모리 계층들(32)(예로서, DRAM 계층 1-8) 및 하나의 로직 계층(33)(예로서, 로직 계층 0)을 가진 메모리 컴포넌트(30)의 개략도를 예시한다. 각각의 메모리 계층(32)은 데이터를 저장하기 위해 사용될 수 있는 메모리 비트 셀들을 포함할 수 있다. 로직 계층(33)은 메모리 계층들(32) 중 하나 이상으로 및 외부 인터페이스로의 액세스를 용이하게 할 수 있는 제어 회로 컴포넌트들을 포함할 수 있다.
상기 논의된 바와 같이, 메모리 컴포넌트(30)는 메모리 컴포넌트(30)의 별개의 세그먼트(segment)들 또는 IOR들을 제공하기 위해 제조 시 세그먼트될 수 있다. 일 예에서, 각각의 메모리 계층(32)은 큰 세그먼트들(예로서, 볼트들)로 분리될 수 있으며, 이것은 보다 작은 세그먼트들(예로서, 뱅크들)로 추가로 세그먼트될 수 있다. 여기에서 설명된 기술들에 따르면, 뱅크들은 가상 뱅크들로 추가로 세그먼트될 수 있다. 도 5는 상기 논의된 메모리 컴포넌트(30)의 일 부분(27)의 개략도를 예시한다. 도 5에 도시된 바와 같이, 메모리 컴포넌트(30)의 부분(27)의 각각의 메모리 계층(32)은 두 개의 볼트들(34)로 세그먼트될 수 있으며 각각의 볼트(34)는 두 개의 뱅크들(35)로 세그먼트될 수 있다.
도 5는 링크들(31) 중 하나에 관련된 로직 및 메모리 스택의 일 부분(27)을 예시한다는 것에 유의하여야 한다. 일 실시예에서, 전체 메모리 컴포넌트(30)에 대한 64개의 이러한 부분들(예로서, 슬라이스(slice)들)이 있을 수 있다. 각각의 메모리 계층(32)이 두 개의 볼트들(34)로 세그먼트되므로, 로직 계층(33)은 두 개의 제어 로직 부분들(36)을 포함할 수 있으며, 이것은 각각의 개별적인 볼트(34)로의 데이터의 흐름을 제어할 수 있다. 묘사된 실시예에서, 두 개의 볼트들(34)은 하나의 외부 링크(31)마다 예시된다. 이러한 구성은 DRAM 기술의 내부 속도 능력의 최적화 및 그것이 어떻게 로직 계층(33)의 외부 속도 능력에 매칭되는지를 제공할 수 있다. 그러나, 특정한 실시예들에서, 각각의 볼트(34)가 로직 계층에 결합된 그 자신의 개개의 수직 버스(도시되지 않음)를 포함할 수 있다는 것에 유의하여야 한다. 특정한 실시예들에서, 각각의 링크(31)는 로직 계층(33)을 통해 볼트들(34)을 액세스할 수 있다. 이와 같이, 로직 계층(33)은 메모리 계층들(32) 중 임의의 것으로의 액세스를 제공할 수 있다.
이를 염두에 두고, 메모리 SoC(22) 또는 임의의 다른 적절한 디바이스는 뱅크들(35)을 메모리 컴포넌트(30)의 개선된 동작들을 제공하기 위해 사용될 수 있는 가상 뱅크들(36)로 추가로 세그먼트할 수 있다. 즉, 특정한 실시예들에서, 메모리 SoC(22)는 다양한 데이터 동작들을 수행하기 위해 사용될 수 있는, 별개의 가상 뱅크들(36)로서 메모리 계층(32)의 세그먼트들(예로서, 뱅크들(35))의 상이한 부분들을 할당한다.
예로서, 도 6은 메모리 컴포넌트(30)의 부분일 수 있는 4개의 예시적인 데이터 구조들(37)을 예시한다. 이해될 바와 같이, 여기에서 개시된 시스템들 및 기술들을 사용하여, 메모리 SoC(22)는 데이터 구조들(37)을 뱅크들(35)에 걸쳐 분배된 가상 뱅크들(36)에 매핑시킬 수 있다. 즉, 메모리 컴포넌트(30)는 4개의 가상 뱅크들(36)(가상 뱅크들 0-3)로 세그먼트된 6개의 뱅크들(36)(뱅크들 0-5)을 포함할 수 있다. 도 6에 예시된 바와 같이, 데이터 구조 A 및 데이터 구조 D는 판독-전용 구조들보다 2배 더 많은 물리 뱅크들로 매핑되는 판독-수정-기록(RMW) 구조들이다. 즉, RMW 구조들의 레지스터들은, 각각 하나의 뱅크(35)에 걸쳐 매핑될 수 있는 판독 전용 구조들과 대조적으로, 각각 두 개의 뱅크들(35)에 걸쳐 매핑될 수 있다. 각각의 구조를 상이한 뱅크들(35)에 매핑시킴으로써, 메모리 SoC(22)는 다수의 요청들을 다루기 위해 메모리 컴포넌트(30)의 능력을 개선할 수 있다. 예를 들면, 제 1 요청이 데이터 구조(A)의 레지스터(A0)를 액세스하는 것을 수반하며 제 2 요청이 데이터 구조(A)의 레지스터(A5)를 액세스하는 것을 수반한다면, 메모리 SoC(22)는 제 1 요청이 프로세싱될 때까지 제 2 요청에 대한 데이터 구조(A)로의 액세스를 제공하지 않을 수 있다. 그러나, 데이터 구조들(37)이 도 6에 예시된 가상 뱅크들(36)로 매핑된다면, 레지스터들(A0 및 A5)이 상이한 뱅크들(35)의 부분인 상이한 가상 뱅크들(36)에 매핑되므로, 메모리 SoC(22)는 그것들 양쪽 모두가 상이한 뱅크들(35)을 액세스하기 때문에 제 1 및 제 2 요청들을 동시에 프로세싱할 수 있다.
메모리 컴포넌트(30)의 예시적인 세그먼트된 구조를 명심하면, 메모리 컴포넌트들의 고 세그먼테이션을 사용하기 위한 기술들은 네트워크 장비 예를 사용하여 이하에서 설명될 것이다. 그러나, 이러한 동일한 접근법이 또한 어떤 명확한 데이터 구조들도 없을 때 작동할 수 있다는 것에 유의하여야 한다. 일반적으로, 상기 언급된 바와 같이, DRAM 뱅크들(예로서, 뱅크들(35))처럼, 독립적으로 동작 가능한 영역들(IOR들)을 어드레싱 구조의 하위 비트들에 넣음으로써, 데이터 구조들의 세그먼테이션에 비교하여 동일한 시스템 동작 효과가 달성될 수 있다. 예를 들면, DRAM 자연 액세스가 128 비트들 (16 바이트들)이면, 16B 그룹 직전의 어드레스 비트는 다음 IOR로 이어질 수 있다. 이와 같이, 연속적인 랜덤 트랜잭션들은 이전 트랜잭션과 상이한 IOR로 갈 가능성이 있다.
네트워크 장비 예를 보면, 인터넷 트래픽을 지원할 수 있는 고속 라우터에서, 40개까지의 상이한 데이터 구조들이 패킷이 라우터에 의해 수신될 때 참조될 수 있다. 인입 데이터의 총 라인 레이트가 400Gb/초이고, 최소 패킷 크기가 512 비트들이고, 패킷 주위에서의 부가적인 시간 갭들이 패킷 지속 기간이 672 비트들이게 하며, 모든 패킷들이 동일한 크기이면, 패킷레이트는 1.68ns, 또는 672 비트들/ 400 Gb/초이다. 몇몇 구조들은 간단히 패킷 당 한 번 터치(예로서, 판독 또는 기록)되지만, 다른 구조들은 두 번 터치될 수 있다(예로서, 판독되며 기록된다). 이와 같이, 이러한 라인 레이트를 지원하기 위해, 메모리는 1.68ns/2 = 0.84ns의 2-터치들에 대한 랜덤 액세스 레이트를 지원할 수 있으며, 이것은 임의의 메모리가 이러한 유형의 랜덤 액세스를 지원하는 것이 어려울 수 있다. 게다가, 0.84ns의 로우 사이클 시간(row cycle time)(tRC) 또는 그것을 tRC의 훨씬 더 작은 값으로 스케일링하는 것을 허용하도록 DRAM들을 설계하는 것은 어려울 수 있다. 여기에서 사용된 바와 같이, 메모리 컴포넌트의 tRC는 메모리 컴포넌트의 메모리 로우가 로우 활성화에서 활성 로우의 프리-차징까지, 전체 사이클을 완료하기 위해 걸리는 최소량의 시간(예로서, 클록 사이클들)을 나타낸다.
이러한 유형의 랜덤 액세스를 용이하게 하기 위해, 메모리 SoC(22)에 의해 이용된 개개의 DRAM들의 뱅크 카운트들의 수는 0.84ns의 2-터치들에 대한 대략적인 액세스 레이트를 랜덤하게 갖는 애플리케이션의 요구들을 커버하기 위해 충분한 수의 뱅크들을 제공하기 위해 증가될 수 있다. 개개의 DRAM들의 뱅크 카운트들의 수를 결정하기 위해, 메모리 SoC(22)는 메모리 컴포넌트의 데이터 구조가 선호된 랜덤 액세스 요청 레이트에 따른 성공적인 시스템 동작을 허용하기 위해 사용될 수 있는 정도 또는 양을 결정할 수 있다. 일반적으로, 사용할 세그먼테이션의 양은 메모리 컴포넌트의 tRC 대 선호된 랜덤 액세스 요청 레이트의 비에 의존적일 수 있다.
앞서 말한 것을 고려하면, 도 7은 메모리 SoC(22)가 메모리 컴포넌트(예로서, DRAM)에서 사용하기 위해 선택할 수 있는 세그먼트들의 최소 수를 결정하기 위한 방법(40)을 예시한다. 메모리 컴포넌트가 이러한 세그먼트들의 최소 수보다 적게 포함한다면, 메모리 컴포넌트의 세그먼트들은 때로는, 각각의 세그먼트를 결부시키고, 동시에 도착하며, 다양한 지연들을 야기할 랜덤 요청을 수신하기 시작할 수 있다. 이와 같이, 실제로, 방법(40)을 수행한 후 구현된 세그먼트들의 수는 산출된 최소치 외에 하나 이상의 세그먼트들을 포함할 수 있다. 여기에서 사용된 바와 같이, 세그먼트들은 메모리 컴포넌트(30)에 이미 존재하는 뱅크들(35)을 나타낸다. 세그먼트들은 또한 상기 설명된 바와 같이 프로세서에 의해 매핑된 가상 뱅크들(36)을 나타낸다. 특정한 실시예들에서, 메모리 SoC(22)는 각각의 메모리 컴포넌트의 상이한 세그먼트들을 사용하기 전에 이하에 설명된 방법(40)을 수행할 수 있다. 그러나, 방법(40)은 임의의 적절한 프로세서에 의해 수행될 수 있다는 것이 이해되어야 한다. 논의의 목적들을 위해, 방법(40)에 대한 다음의 설명은 가상 뱅크들(36)에 대하여 설명될 것이지만, 방법(40)은 또한 메모리 컴포넌트(30)의 부분인 뱅크들(35)에 대하여 수행될 수 있다는 것이 이해되어야 한다.
블록(42)에서, 메모리 SoC(22)는 메모리 SoC(22)로 송신될 것으로 예상된 패킷들에 대한 예상된 랜덤 액세스 레이트를 수신할 수 있다. 상기 제공된 예를 다시 참조하면, 인입 데이터의 총 라인 레이트가 400Gb/초이고, 최소 패킷 크기는 512 비트들(패킷-간 갭들을 포함한 672 비트 등가)이며, 모든 패킷들이 최소 크기이면, 각각의 수신된 패킷에 대한 예상된 랜덤 액세스 레이트는 대략 1.68ns이다. 각각의 패킷이 2-터치 데이터 동작을 포함한다고 가정하면, 각각의 수신된 패킷에 대한 예상된 랜덤 액세스 레이트는 대략 0.84 ns이다.
블록(44)에서, 메모리 SoC(22)는 메모리 컴포넌트에 대한 로우 사이클 시간(tRC)을 수신할 수 있다. 상기 논의된 바와 같이, 메모리 컴포넌트의 tRC는 메모리 컴포넌트의 메모리 로우가 로우 활성화에서 활성 로우의 프리-차징까지, 전체 사이클을 완료하기 위해 걸리는 최소량의 시간(예로서, 클록 사이클들)을 나타낸다. 다시 말해서, 메모리 컴포넌트의 tRC는 메모리 컴포넌트에서의 데이터 구조(예로서, 뱅크)가 하나의 데이터 동작(예로서, 2-터치 동작)을 수행할 때 사용할 수 있는 시간의 양을 나타낼 수 있다.
블록(46)에서, 메모리 SoC(22)는 메모리 컴포넌트의 tRC 대 각각의 수신된 패킷에 대한 예상된 랜덤 액세스 레이트의 비에 기초하여 사용될 수 있는 각각의 메모리 컴포넌트에서의 가상 뱅크들의 최소 수를 결정할 수 있다. 블록(44)에서 수신된 메모리 컴포넌트의 tRC가 8.4ns이면, 상기 예에서 메모리 컴포넌트의 tRC 대 각각의 수신된 패킷에 대한 예상된 랜덤 액세스 레이트의 비는 8.4:0.84 또는 10 대 1이다. 메모리 컴포넌트의 tRC 대 각각의 수신된 패킷에 대한 예상된 랜덤 액세스 레이트 사이에서의 결과적인 비는 각각의 수신된 패킷에 대한 예상된 랜덤 액세스 레이트를 수용하기 위해 각각의 메모리 컴포넌트에서 사용될 가상 뱅크들의 최소 수에 대응할 수 있다. 즉, 결과적인 비는 패킷들을 큐에 부가하지 않고 패킷들을 계속해서 수신하기 위해 각각의 메모리 컴포넌트에서 요구된 가상 뱅크들의 수를 확인할 수 있다.
상기 언급된 바와 같이, 메모리 컴포넌트(30)는 일반적으로 메모리 컴포넌트(30)를 설계하거나 또는 제조할 때 상이한 구조들(예로서, 볼트들(34), 뱅크들(35))로 분배된다. 하나의 분배 예는 상기 논의된 바와 같이, 메모리 컴포넌트(30)를 뱅크들(35)로 분리하는 것을 포함한다. 뱅크들(30)은 공유된 독립 로우 및 컬럼 디코더들, 감지 증폭기들, 및 데이터 경로들을 사용하여 액세스 가능할 수 있다.
이를 염두에 두고, 몇몇 실시예들에서, 메모리 SoC(22)는 뱅크(35)를 가상 뱅크들(36)로 분리함으로써 메모리 계층들(35)을 액세스하기 위해 보다 적은 리소스들을 사용할 수 있다. 즉, 메모리 SoC(22)는 상이한 뱅크들(35)이 독립적으로 동작할 수 있게 하기 위해 뱅크(35)의 상이한 부분들을 다수의 가상 뱅크들(36)에 매핑시킬 수 있다. 이와 같이, 로직 계층(33)의 별개의 로우 디코더들은 각각의 가상 뱅크(36)를 액세스하기 위해 사용될 수 있지만 리소스들의 몇몇 공통성은 각각의 데이터 경로를 따라 및 로직 계층(33)의 컬럼 디코더들을 통해 여전히 존재할 수 있다.
하나의 뱅크(35)를 가상 뱅크들(34)로 매핑시킴으로써, 메모리 SoC(22)는 상이한 볼트들(34) 또는 상이한 메모리 계층들(32)의 상이한 뱅크들(35) 부분을 매핑시키는 것에 비교하여 보다 적은 영역 페널티(예로서, 2-3% 추가)를 초래할 수 있다. 즉, 새로운 요청은 다수의 가상 뱅크들(36)을 갖고 이러한 단일 뱅크(35)로 들어오며 공유된 리소스들(예로서, 컬럼 디코더)을 사용하여 가상 뱅크들의 각각을 액세스할 수 있다. 이와 같이, 메모리 SoC(22)는, 전체 뱅크(35)의 로우 사이클 시간(tRC)(예로서, ~35ns)보다 빠른, ~4ns의 컬럼-대-컬럼 지연 시간(column-to-column delay time)(tCCD)의 레이트에서 요청을 제공할 수 있다. 몇몇 경우들에서, tCCD레이트는 데이터 경로 능력(예로서, 1-2ns에서 동작할 수 있는)보다 느릴 수 있지만, 가상 뱅크들(36)을 사용하는 것은 종래의 시스템들에 비교하여 메모리 컴포넌트(30)를 액세스할 때 개선된 속도들을 여전히 제공할 수 있다.
다시 블록(46)을 참조하면, 각각의 메모리 컴포넌트에서 사용할 가상 뱅크들의 최소 수를 결정한 후, 메모리 SoC(22)는 각각의 메모리 컴포넌트에서의 하나 이상의 데이터 구조들을 각각의 가상 뱅크(36)에 매핑시키는 것을 시작할 수 있다. 보다 많은 뱅크들(35)을 갖도록 메모리 컴포넌트(30)를 설계하거나 또는 가상 뱅크들(36)을 뱅크들(35)에 부가함으로써, 메모리 컴포넌트(30)는 부가적인 실리콘 영역을 사용할 수 있으며, 이것은 보다 높은 비용, 및 그러므로 비트 당 보다 높은 비용과 관련이 있을 수 있다는 것에 유의하여야 한다. 그 결과, 메모리 컴포넌트(30)의 다이 크기가 일정하면, 보다 적은 비트들이 메모리 컴포넌트(30)에서 이용 가능할 수 있다. 그러나, 여기에서 설명된 매핑의 프로세스는 실제로 임의의 메모리 용량(예로서, 메모리 비트 카운트)의 손실이 감소하게 하지 않을 것이다. 대신에, 여기에서 설명된 매핑 기술들은 데이터가 메모리 컴포넌트(30)에 퍼지게 할 수 있다. 이와 같이, 부가적인 로지스틱스는 사용 중인 메모리 및 자유로운 메모리에 대해 파악할 때 사용될 수 있다.
메모리 컴포넌트를 세그먼트하는 이득들을 보다 양호하게 예시하기 위해, 도 8은 가상 뱅크들(36)로 세그먼트되지 않은 메모리 컴포넌트의 데이터 구조(60)의 예를 예시한다. 도 8에 도시된 바와 같이, 데이터 구조(60)는 16개의 메모리 어드레스들(62)을 포함한다. 패킷 요청이 데이터 구조(60)를 가진 각각의 메모리 컴포넌트에 의해 수신될 때, 패킷 요청의 대응하는 데이터 동작은 데이터 구조가 메모리 컴포넌트(30)의 tRC에 대해 이용 가능하지 않게 할 수 있다. 즉, 예를 들면, 제 1 패킷 요청이 데이터 구조(60)의 구성요소(3)에 대한 요청을 포함하며 제 2 패킷 요청이 구성요소(16)에 대한 요청을 포함한다면, 제 2 패킷 요청은 제 1 패킷 요청이 완료될 때까지 또는 메모리 컴포넌트의 tRC가 경과할 때까지 수행되지 않을 수 있다. 메모리 컴포넌트의 tRC가 제 2 요청 패킷이 데이터 구조(60)를 액세스하려고 시도할 때 경과하지 않았다면, 메모리 SoC(22)는 각각의 데이터 구조(60)에 대한 큐에 위치될 수 있다.
도 9는 가상 뱅크들(72, 74, 76, 및 78)을 가진 세그먼트된 데이터 구조(70)를 예시한다. 일 실시예에서, 데이터 구조(70)의 각각의 엔트리는 가상 뱅크들(36)의 수에 기초하여 라운드 로빈 방식으로 넘버링될 수 있다. 예를 들면, 도 8의 데이터 구조(60)에서 예시된 바와 같이 각각의 메모리 어드레스를 시간순으로 넘버링하는 대신에, 구성요소(1)는 가상 뱅크(72)에 매핑되고, 구성요소(2)는 가상 뱅크(74)에 매핑되고, 구성요소(3)는 가상 뱅크(76)에 매핑되고, 구성요소(4)는 가상 뱅크(78)에 매핑되고, 구성요소(5)는 가상 뱅크(72) 등에 매핑된다.
앞서 말한 것을 고려하여, 세그먼트된 데이터 구조(70)의 값은 도 9의 세그먼트된 데이터 구조(70)에 상기 제공된 예를 적용할 때 분명해질 것이다. 즉, 제 1 패킷 요청이 세그먼트된 데이터 구조(70)의 구성요소(3)에 대한 요청을 포함한다면, 메모리 SoC(22)는 세그먼트된 데이터 구조(70)의 가상 뱅크(76)로의 액세스를 제공할 수 있다. 각각의 세그먼트된 데이터 구조가 동일한 메모리 컴포넌트의 부분이므로, 각각의 가상 뱅크의 tRC는 메모리 컴포넌트의 tRC에 대응한다. 그러나, 데이터 구조(60)와 달리, 제 2 패킷 요청이 구성요소(16)에 대한 요청을 포함한다면, 메모리 SoC(22)는 제 1 패킷 요청이 가상 뱅크(76)를 액세스하는 것을 정지하였는지에 관계없이 가상 뱅크(78)로의 액세스를 제공할 수 있다. 이해될 바와 같이, 가상 뱅크(76) 및 가상 뱅크(78)가 서로 독립적이므로, 메모리 Soc(22)는 가상 뱅크(76)가 또 다른 동작을 수행하기 바쁠 때조차 가상 뱅크(78)로의 액세스를 제공할 수 있다. 이와 같이, 데이터 구조(60)와 대조적으로, 세그먼트된 데이터 구조(70)를 사용하여 데이터 동작들을 효율적으로 수행하기 위한 메모리 컴포넌트의 능력은 보다 많은 가상 뱅크들이 생성됨에 따라 증가한다.
도 7의 방법(40)은 메모리 컴포넌트(30)에서 생성하기 위한 최소 수의 가상 뱅크들을 제공할 수 있지만, 다양한 에러들, 예상되지 않은 지연들, 메모리 컴포넌트(30)를 액세스하기 위해 큐에서 대기하는 패킷들 등을 보상하기 위해 메모리 컴포넌트(30)에 부가적인 가상 뱅크들을 부가하는 것이 유익할 수 있다. 예를 들면, 1011 랜덤 요청 사이클들에 대해 상기 설명된 네트워크 시스템의 시뮬레이션들을 고려하며 1.68ns마다 요청을 수신할 수 있는 베이스라인 SRAM 및 데이터 구조들의 세그먼테이션이 없음을 가정할 때, 큐 깊이(즉, 새로운 요청이 완전 파이프 라이닝 시스템에서 얼마나 대답을 기다리는지)는 단지 1-터치를 가진 동작들에 대해 1 패킷일 수 있다. 2-터치들을 가진 동작들에 대해, 다른 한편으로, 큐 시간은 무한으로 가는 추세이다. 즉, SRAM은 각각의 요청이 터치를 두 번 수행할 때 계속될 수 없다. 매 1.68ns마다 메모리 컴포넌트는 그것이 상기 시간 스팬에서 단지 1-터치 동작들을 프로세싱할 수 있을지라도 2-터치 요청을 수신할 수 있으므로, 큐 깊이는 각각의 수신된 패킷 후 증가하며 무한으로 가는 추세이다. 이와 같이, 시뮬레이션된 시스템은 설계된 대로 기능할 수 없다.
이제 4-방향(4-way) 데이터 구조 세그먼테이션을 사용하여 상기 예의 시뮬레이션으로부터의 몇 개의 데이터 포인트들로 가면, 상대적 tRC = 2*요청레이트를 가진 디바이스에 대한 최대 큐 지연은 12가 되도록 시뮬레이션된다. 상대적 tRC = 3x에 대해, 최대 큐 지연은 31이 되도록 시뮬레이션된다. 양호한 시스템 동작을 위한 최대 큐 지연은 각각의 메모리 컴포넌트의 다양한 속성들에 기초하여 약 15보다 크지 않은 것이 바람직할 수 있다. 이와 같이, tRC = 2x는 패킷당 구조에 대한 1-터치를 위한 적정한 솔루션이다. 2-터치들에 대해, tRC는 2개의 동작들이 요구되기 때문에 효과적으로 두 배가 되며, 따라서 tRC=2x는 tRC=4x로서 행동할 것이며, 이것은 이 예에서 수용 가능하지 않게 긴 큐 시간을 가질 것이다.
64-방향 세그먼테이션에서 및 tRC=8.4ns(즉, 5x 패킷레이트)를 가정할 때, 큐 깊이는 6이 되도록 시뮬레이션될 수 있으며, 이것은 패킷당 1-터치에 대해 수용 가능할 수 있다. 그러나, 패킷 당 2-터치들을 에뮬레이팅(emulate)하는 tRC=10x에서, 큐 깊이는 9가 되도록 시뮬레이션될 수 있으며, 이것은 또한 수용 가능할 수 있다. 그러므로, 5x 패킷레이트에서 사이클링될 수 있는, 각각의 메모리 컴포넌트의 64개의 뱅크들을 이용함으로써, 메모리 시스템은 인입 패킷당 메모리의 2-터치들에서조차 전체 라인 레이트를 유지할 수 있다.
tRC = 6x(예로서, 이 예에서 10.08ns)를 가진 64-방향 세그먼테이션에서, DRAM의 대응하는 클래스는 여전히 종래의 1T-1C DRAM 셀 및 종래의 감지 증폭기들을 사용하면서 고속 뱅크 사이클링 기술들을 사용하여 형성될 수 있다. 여기에서, 큐는 1-터치에 대해 7 및 2-터치에 대해 10일 수 있으며, 양쪽 모두는 다시 수용 가능하다. 예로서, 40개의 데이터 구조들의 시스템이 1-터치(예로서, 판독-전용) 구조들인 구조들 중 14개 및 2-터치(즉, 판독-수정-기록) 구조들인 24개를 갖는다면, 14개 판독-전용 구조들의 각각에 대한 16-방향 세그먼테이션은 총 224개의 뱅크들을 수반할 수 있다. 이와 같이, 이 예에서 큐는 13일 것이다. 남아있는 26개의 구조들은 30-방향 세그먼테이션을 승인 받을 수 있으며, 그에 의해 780개의 뱅크들(35)을 소비한다. 여기에서, 2-터치 큐는 14일 수 있다. 이 예에서 수반된 뱅크들(35)의 총 수는 그 후 224 + 780 = 1,004일 수 있다. 이용 가능한 뱅크들(35)의 총 수가 1,024이면, 20개의 뱅크들(35)은 다른 기능들을 위해 이용 가능한 채로 있다. 이를 유념하면, 시스템이 원하는 메모리 용량 및 대역폭을 달성하기 위해 8개의 DRAM들을 사용한다면, 각각의 DRAM은 128개의 뱅크들(35)을 사용할 수 있으며, 이것은 산업 표준 DRAM보다 더 높을 수 있지만 적정한 비용으로 설계 및 형성하는 것이 여전히 실현 가능하다.
데이터 구조들의 세그먼테이션이 여기에서 네트워크 라우터를 참조하여 설명되지만, 여기에서 설명된 기술들이 또한 다른 유형들의 시스템들에서 이용될 수 있다는 것이 이해되어야 한다. 이와 같이, 상기 예들은 현재 개시된 기술들의 범위를 네트워킹에 제한하도록 의도되지 않는다.
앞서 말한 것을 고려하면, 도 10은 선호된 큐 깊이에 기초하여 메모리 컴포넌트에서 생성할 가상 뱅크들의 수를 결정하기 위한 방법(90)을 예시한다. 도 7에 대하여 상기 언급된 바와 같이, 논의의 목적들을 위해, 방법(90)에 대한 다음의 설명은 가상 뱅크들(36)에 대하여 설명될 것이지만, 방법(90)은 또한 메모리 컴포넌트(30)의 부분인 뱅크들(35)에 대하여 수행될 수 있다는 것이 이해되어야 한다.
일 실시예에서, 방법(90)은 방법(40)에 따라 메모리 컴포넌트에서 생성할 가상 뱅크들(36)의 수를 결정한 후 수행될 수 있다. 즉, 방법(40)은 메모리 컴포넌트(30)에서 매핑시키기 위한 가상 뱅크들(36)의 최소 수를 결정하기 위해 사용될 수 있으며 그 후 방법(90)은 다양한 데이터 요청들을 효율적으로 수행하기 위해 메모리 컴포넌트(30)에서 매핑시키기 위한 가상 뱅크들(36)의 수를 미세 조정하거나 또는 확인하기 위해 이용될 수 있다.
방법(40)처럼, 방법(90)에 대한 다음의 설명은 메모리 컴포넌트 SoC(22)에 의해 수행되는 것으로서 논의될 것이지만, 임의의 적절한 프로세서가 방법(90)을 수행할 수 있다는 것이 이해되어야 한다. 게다가, 방법(90)은 특정한 순서로 제공되지만, 방법(90)은 임의의 적절한 순서로 수행될 수 있다는 것에 유의하여야 한다.
이제 도 10을 참조하면, 블록(92)에서, 메모리 SoC(22)는 선호된 큐 깊이를 수신할 수 있다. 선호된 큐 깊이는 메모리 컴포넌트가 세그먼트된 후 이용 가능한 메모리의 양에 기초하여 결정될 수 있다. 일반적으로, 각각의 큐 깊이 증분은 큐잉되는 대응하는 데이터를 저장하기 위해 메모리 컴포넌트에서 부가적인 레지스터 또는 부가적인 메모리를 사용하는 것을 수반한다. 이와 같이, 선호된 큐 깊이는 메모리 컴포넌트에서 이용 가능한 메모리의 양에 관련될 수 있다.
메모리 비용은 메모리 컴포넌트(30)가 지원할 수 있는 큐 깊이의 양을 증가시키는 것과 연관된다는 것에 유의하여야 한다. 메모리 컴포넌트(30)에 이용 가능한 큐 깊이를 증가시키는 것은, 즉 큐 깊이를 증가시키기 위해 메모리 컴포넌트(30)의 보다 많은 레지스터들을 사용하는 것을 수반한다. 큐 깊이를 감소시키기 위해, 그러나, 메모리 SoC(22)는 메모리 컴포넌트(30) 내에서 가상 뱅크들(36)을 매핑시킬 수 있다. 그러나, 가상 뱅크들(36)의 매핑은 상이한 가상 뱅크들(36)에 대한 상이한 큐를 수용하기 위해 여전히 메모리 비용을 증가시키며 로직 계층(33) 상에서 제어 로직 비용을 부가한다. 그러나, 세그먼트된 메모리 컴포넌트(30)에 비교하여 세그먼트되지 않은 메모리 컴포넌트(30)의 비교적 더 긴 큐 깊이들은 가상 뱅크들(36)을 갖는 것과 연관된 다수의 큐를 사용하는 것에 비교하여 보다 낮은 시스템 성능에 대응한다.
블록(94)에서, 메모리 SoC(22)는 메모리 컴포넌트(30)의 가상 뱅크들(36)에 대한 몇몇 예상된 터치 레이트를 갖는 랜덤 트래픽에 기초하여 선호된 큐 깊이에 도달하기 전에 수행된 사이클들의 수를 결정할 수 있다. 특정한 실시예들에서, 가상 뱅크들(36)의 예상된 양은 방법(40)의 결과에 대응할 수 있다.
방법(40)을 사용하여 결정된 가상 뱅크들(36)의 최소 수에 대한 예상된 터치 레이트를 가진 랜덤 트래픽을 사용하여, 메모리 SoC(22)는 특정한 수의 랜덤 요청들을 수신하는 메모리 컴포넌트(30)의 시뮬레이션을 수행할 수 있다. 일 실시예에서, 메모리 SoC(22)는 선호된 큐 깊이가 도달될 때까지 시뮬레이션을 수행할 수 있다.
예로서, 도 11은 메모리 컴포넌트(30)에서 존재하는 다수의 가상 뱅크들(36)에 대하여 다수의 사이클들에 걸쳐 다양한 큐 깊이 값들이 발생할 때를 예시한 로그 그래프(110)를 예시한다. 로그 그래프(110)에서 도시된 바와 같이, 메모리 컴포넌트(30)가 4개의 가상 뱅크들(36)로 세그먼트될 때, 2의 최대 큐 깊이가 10,000 사이클들 후 도달된다. 이를 유념하여, 블록(94)에서, 메모리 SoC(22)는 다수의 사이클들이 선호된 큐 깊이에 도달하기 전에 수행될 것으로 예상됨을 결정하기 위해 시뮬레이션을 사용할 수 있다.
다시 도 10을 참조하면, 블록(96)에서, 메모리 SoC(22)는 사이클들의 수가 몇몇 임계치보다 큰 지를 결정할 수 있다. 일 실시예에서, 임계치는 트래픽으로서 시뮬레이션되는 패킷들의 예상된 패킷 에러 레이트와 연관될 수 있다. 즉, 상기 설명된 방법(40)에 의해 결정된 가상 뱅크들(36)의 수가 수신된 패킷들과 연관된 데이터 동작들을 수행하기 위해 충분한 수의 가상 뱅크들(36)을 제공할 수 있지만, 결정된 수는 수신된 패킷들의 패킷 에러 레이트들을 고려하지 않는다. 임의의 패킷은 에러가 발생할 수 있기 전에 수행된 예상된 사이클들의 수를 반영하는 패킷 에러 레이트를 가질 수 있다. 예를 들면, 패킷 에러 레이트는 109 사이클들마다 1 에러일 수 있다. 에러가 패킷에 대해 발생할 때, 패킷은 재송신되며 메모리 컴포넌트(30)에 대한 큐(예로서, 큐 깊이)는 증가할 수 있다.
이를 유념하며 시뮬레이션의 부분인 패킷들의 랜덤 트래픽을 고려할 때, 요청 패킷은 이전 요청 패킷이 프로세싱을 완료하기 전에 동일한 가상 뱅크(36)에 반복적으로 도달할 수 있다. 이와 같이, 요청 패킷들은 백업하거나 또는 큐의 부분으로서 레지스터에 저장될 수 있다. 특정한 실시예들에서, 요청 패킷들의 백로그는 메모리 컴포넌트(30)의 앞에서 큐에 저장될 수 있다. 그러나, 큐의 크기는 큐에 패킷들을 유지하기 위한 각각의 레지스터가 메모리 공간의 비용을 산출하므로 제한된다. 몇몇 포인트에서, 메모리 공간은 더 이상 이용 가능하지 않을 것이다. 큐 리소스들이 제거되는 빈도가 패킷 에러로 인한 정상 패킷 드롭레이트(drop rate) 미만이면, 메모리 컴포넌트(30)의 동작에서 임의의 관찰 가능한 손실이 없을 수 있다. 예를 들면, 패킷이 109 회 중 1회 드롭되면, 메모리 컴포넌트(30)는 정상 패킷 드롭레이트의 0.1% 또는 1012 요청들 중 하나를 드롭시키는 큐를 지원하기 위해 충분한 레지스터들을 포함하기 위해 선택될 수 있다. 이와 같이, 다시 블록(96)을 참조하면, 몇몇 실시예들에서, 임계치는 패킷 에러 레이트보다 몇 배 더 클 수 있다. 예를 들면, 1010 패킷들 중 1개의 패킷이 드롭되면, 임계치는 1012으로서 설정될 수 있다.
메모리 SoC(22)가 사이클들의 수가 임계치보다 크지 않다고 결정하면, 메모리 SoC(22)는 방법(90)을 종료하며 블록(94)에서 사용된 가상 뱅크들의 수로 진행할 수 있다. 그러나, 메모리 SoC(22)가 사이클들의 수가 임계치보다 크다고 결정하면, 메모리 SoC(22)는 메모리 컴포넌트(30)에 매핑된 가상 뱅크들(36)의 양을 증가시킬 수 있으며 블록(98)에서, 선호된 큐 깊이에 도달하기 위한 사이클들의 수가 임계치 미만일 때까지 블록들(94-98)을 반복할 수 있다.
상기 설명된 방법(90)이 메모리 SoC(22)에 의해 수행되는 것으로 설명되지만, 특정한 실시예들에서, 방법(90)은 메모리 디바이스(14)로부터 별개로 동작하는 프로세서에 의해 수행될 수 있다는 것에 유의하여야 한다. 즉, 방법(90)을 수행하는 프로세서는 보다 빨리 사용할 가상 뱅크들(36)의 양을 결정하기 위해, 통상적인 메모리 SoC들에 비교하여 부가적인 프로세싱 전력을 가질 수 있다. 그러나, 방법(90)이 메모리 SoC(22)에 의해 수행된다면, 메모리 SoC(22)는 방법(90)을 효율적으로 수행하기 위해 부가적인 제어 로직, 카운터들, 및 랜덤 수 발생기를 포함할 수 있다는 것에 유의하여야 한다.
여기에서 설명된 실시예들은 다양한 수정들 및 대안적인 형태들에 영향을 받기 쉬울 수 있지만, 특정 실시예들은 도면들에서 예로서 도시되었으며 여기에서 상세히 설명되었다. 그러나, 본 발명은 개시된 특정한 형태들에 제한되도록 의도되지 않는다는 것이 이해되어야 한다. 오히려, 본 발명은 다음의 첨부된 청구항들에 의해 정의된 바와 같이 본 발명의 사상 및 범위 내에 있는 모든 수정들, 등가물들, 및 대안들을 커버하기 위한 것이다.
Claims (20)
- 메모리 디바이스에 있어서,
데이터를 저장하도록 구성된 메모리 컴포넌트(memory component); 및
상기 메모리 컴포넌트와 연관된 하나 이상의 속성(property)들 및 상기 메모리 컴포넌트에 대한 예상된 랜덤 액세스 레이트에 기초하여 상기 메모리 컴포넌트내 하나 이상의 뱅크들 또는 하나 이상의 가상 뱅크들을 매핑시키도록 구성된 프로세서를 포함하는, 메모리 디바이스. - 청구항 1에 있어서, 상기 메모리 컴포넌트는 동적 랜덤-액세스 메모리 또는 NAND 메모리를 포함하는, 메모리 디바이스.
- 청구항 1에 있어서, 상기 프로세서는 상기 가상 뱅크들 중 두 개의 별개의 가상 뱅크들을 통해 상기 메모리 컴포넌트 상에서 적어도 두 개의 데이터 동작들을 수행하도록 구성되며, 상기 적어도 두 개의 데이터 동작들의 부분은 동시에 수행되는, 메모리 디바이스.
- 청구항 1에 있어서, 상기 메모리 컴포넌트와 연관된 상기 속성들은 상기 메모리 컴포넌트의 로우 사이클 시간(row cycle time)을 포함하는, 메모리 디바이스.
- 청구항 1에 있어서, 상기 예상된 랜덤 액세스 레이트는 상기 프로세서에 의해 수신된 요청들의 총 라인 레이트, 상기 요청들의 각각의 요청의 최소 크기, 및 상기 요청들의 각각의 요청에 의해 수행된 터치 동작의 유형에 기초하여 결정되는, 메모리 디바이스.
- 방법에 있어서,
프로세서를 통해, 메모리 컴포넌트를 액세스하는 것과 연관된 예상된 랜덤 액세스 레이트를 수신하는 단계;
상기 프로세서를 통해, 상기 메모리 컴포넌트와 연관된 로우 사이클 시간을 수신하는 단계;
상기 프로세서를 통해, 상기 예상된 랜덤 액세스 레이트 및 상기 로우 사이클 시간에 기초하여 상기 메모리 컴포넌트에 생성할 뱅크들의 제 1 수 또는 가상 뱅크들의 제 2 수를 결정하는 단계; 및
상기 프로세서를 통해, 개별적으로 상기 뱅크들의 제 1 수 또는 상기 가상 뱅크들의 제 2 수에 기초하여 상기 메모리 컴포넌트내 하나 이상의 뱅크들 또는 하나 이상의 가상 뱅크들을 매핑시키는 단계로서, 상기 메모리 컴포넌트내 상기 하나 이상의 가상 뱅크들 중 각각의 가상 뱅크는 상기 메모리 컴포넌트내 상기 하나 이상의 가상 뱅크들의 위치들에 기초하여 독립적으로 액세스 가능한, 상기 매핑 단계를 포함하는, 방법. - 청구항 6에 있어서, 상기 로우 사이클 시간은 전체 사이클을 완료하는 상기 메모리 컴포넌트의 메모리 로우에 대한 시간의 양을 포함하는, 방법.
- 청구항 6에 있어서, 상기 예상된 랜덤 액세스 레이트는 상기 메모리 컴포넌트를 액세스하기 위한 각각의 요청과 연관된 터치들의 수에 기초하여 결정되는, 방법.
- 청구항 6에 있어서, 상기 메모리 컴포넌트내 생성할 상기 가상 뱅크들의 수를 결정하는 단계는 상기 로우 사이클 시간 대 상기 예상된 랜덤 액세스 레이트의 비를 결정하는 단계를 포함하는, 방법.
- 청구항 6에 있어서, 상기 하나 이상의 가상 뱅크들의 제 2 가상 뱅크가 또한 액세스되는 동안 상기 프로세서를 통해, 상기 하나 이상의 가상 뱅크들의 제 1 가상 뱅크를 액세스하는 단계를 포함하는, 방법.
- 청구항 6에 있어서, 상기 프로세서를 통해, 상기 메모리 컴포넌트들의 복수의 구성요소들을 상기 메모리 컴포넌트들의 상기 하나 이상의 뱅크들 또는 상기 하나 이상의 가상 뱅크들내 하나 이상의 구성요소(element)들에 매핑시키는 단계를 포함하는, 방법.
- 청구항 6에 있어서, 상기 프로세서를 통해, 상기 메모리 컴포넌트에 대한 선호된 큐 깊이에 기초하여 상기 메모리 컴포넌트내 생성할 상기 가상 뱅크들의 제 2 수를 결정하는 단계를 포함하는, 방법.
- 청구항 12에 있어서, 상기 프로세서를 통해, 상기 선호된 큐 깊이에 기초하여 상기 메모리 컴포넌트내 생성할 상기 가상 뱅크들의 제 2 수를 결정하는 단계는 상기 메모리 컴포넌트를 액세스하는 복수의 랜덤 액세스 요청들의 시뮬레이션을 수행하는 단계 및 상기 선호된 큐 깊이에 도달하기 위해 상기 프로세서에 의해 수행된 사이클들의 수를 결정하는 단계를 포함하는, 방법.
- 지시들을 포함한 유형의, 비-일시적, 기계-판독 가능한 매체에 있어서, 상기 지시들은:
메모리 컴포넌트에 대한 선호된 큐 깊이를 수신하는 것으로서, 상기 선호된 큐 깊이는 상기 메모리 컴포넌트를 액세스하기 위해 큐에서 대기하는 패킷들의 수를 포함하는, 상기 선호된 큐 깊이 수신하기;
상기 메모리 컴포넌트에 의해 수신될 복수의 랜덤 패킷들의 패킷에 대한 예상된 터치 레이트 및 상기 메모리 컴포넌트내 뱅크들의 제 1 수 또는 가상 뱅크들의 제 2 수에 기초하여 상기 선호된 큐 깊이에 도달하기 위한 사이클들의 수를 결정하는 것으로서, 상기 메모리 컴포넌트내 상기 제 2 수의 가상 뱅크들 중 각각의 가상 뱅크는 상기 메모리 컴포넌트내 상기 제2 수의 가상 뱅크들의 각각의 가상 뱅크의 위치에 기초하여 독립적으로 액세스 가능한, 상기 사이클들의 수 결정하기; 및
상기 사이클들의 수에 기초하여 상기 메모리 컴포넌트내 뱅크들의 제 3 수 또는 가상 뱅크들의 제 4 수를 결정하도록 구성되는, 유형의, 비-일시적, 기계-판독 가능한 매체. - 청구항 14에 있어서, 상기 사이클들의 수를 결정하기 위한 상기 지시들은:
상기 뱅크들의 제 1 수 또는 상기 가상 뱅크들의 제 2 수에 대해 상기 메모리 컴포넌트에 의해 상기 복수의 랜덤 패킷들을 수신하는 시뮬레이션을 수행하며;
상기 시뮬레이션에 기초하여 상기 사이클들의 수를 결정하기 위한 지시들을 포함하는, 유형의, 비-일시적, 기계-판독 가능한 매체. - 청구항 14에 있어서, 상기 가상 뱅크들의 제 4 수를 결정하기 위한 상기 지시들은:
상기 사이클들의 수가 임계치를 초과하는지를 결정하며;
상기 사이클들의 수가 상기 임계치를 초과할 때 상기 가상 뱅크들의 제 2 수를 증가시키기 위한 지시들을 포함하는, 유형의, 비-일시적, 기계-판독 가능한 매체. - 청구항 16에 있어서, 상기 임계치는 패킷 에러 레이트(packet error rate)와 연관되는, 유형의, 비-일시적, 기계-판독 가능한 매체.
- 청구항 17에 있어서, 상기 패킷 에러 레이트는 상기 메모리 컴포넌트에 의해 상기 복수의 랜덤 패킷들을 수신하는 시뮬레이션 동안 에러가 발생하기 전에 수행된 사이클들의 예상 수를 포함하는, 유형의, 비-일시적, 기계-판독 가능한 매체.
- 청구항 16에 있어서, 상기 임계치는 패킷 에러 레이트의 배수인, 유형의, 비-일시적, 기계-판독 가능한 매체.
- 청구항 14에 있어서, 상기 메모리 컴포넌트는 동적 랜덤-액세스 메모리 또는 NAND 메모리를 포함하는, 유형의, 비-일시적, 기계-판독 가능한 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462006668P | 2014-06-02 | 2014-06-02 | |
US62/006,668 | 2014-06-02 | ||
US14/726,150 | 2015-05-29 | ||
US14/726,150 US9690502B2 (en) | 2014-06-02 | 2015-05-29 | Systems and methods for segmenting data structures in a memory system |
PCT/US2015/033573 WO2015187577A1 (en) | 2014-06-02 | 2015-06-01 | Systems and methods for segmenting data structures in a memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170012399A true KR20170012399A (ko) | 2017-02-02 |
KR102196747B1 KR102196747B1 (ko) | 2020-12-31 |
Family
ID=54701759
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167036180A KR102196747B1 (ko) | 2014-06-02 | 2015-06-01 | 메모리 시스템에서 데이터 구조들을 세그먼트하기 위한 시스템들 및 방법들 |
KR1020167036182A KR102197401B1 (ko) | 2014-06-02 | 2015-06-01 | 확장 가능 메모리 시스템 프로토콜로 패킷들을 송신하기 위한 시스템들 및 방법들 |
KR1020167036974A KR101796413B1 (ko) | 2014-06-02 | 2015-06-01 | 스케일러블 메모리 시스템 프로토콜 내에서 패킷 송신들을 재배열하기 위한 시스템들 및 방법 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167036182A KR102197401B1 (ko) | 2014-06-02 | 2015-06-01 | 확장 가능 메모리 시스템 프로토콜로 패킷들을 송신하기 위한 시스템들 및 방법들 |
KR1020167036974A KR101796413B1 (ko) | 2014-06-02 | 2015-06-01 | 스케일러블 메모리 시스템 프로토콜 내에서 패킷 송신들을 재배열하기 위한 시스템들 및 방법 |
Country Status (6)
Country | Link |
---|---|
US (16) | US9733847B2 (ko) |
EP (6) | EP3149602B1 (ko) |
KR (3) | KR102196747B1 (ko) |
CN (9) | CN106575257B (ko) |
TW (6) | TWI547799B (ko) |
WO (6) | WO2015187572A1 (ko) |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9606928B2 (en) * | 2014-08-26 | 2017-03-28 | Kabushiki Kaisha Toshiba | Memory system |
US10127383B2 (en) * | 2014-11-06 | 2018-11-13 | International Business Machines Corporation | Resource usage optimized auditing of database shared memory |
US9817602B2 (en) * | 2014-11-13 | 2017-11-14 | Violin Systems Llc | Non-volatile buffering for deduplication |
GB2539443B (en) * | 2015-06-16 | 2020-02-12 | Advanced Risc Mach Ltd | A transmitter, a receiver, a data transfer system and a method of data transfer |
ES2934610T3 (es) * | 2016-02-19 | 2023-02-23 | Viasat Inc | Métodos y sistemas para la asignación de capacidad de red multinivel |
US9997232B2 (en) * | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
TWI587133B (zh) * | 2016-05-20 | 2017-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置之資料頁對齊方法及其查找表的製作方法 |
JP2018049387A (ja) * | 2016-09-20 | 2018-03-29 | 東芝メモリ株式会社 | メモリシステム及びプロセッサシステム |
US11314648B2 (en) * | 2017-02-08 | 2022-04-26 | Arm Limited | Data processing |
US10216671B2 (en) | 2017-02-27 | 2019-02-26 | Qualcomm Incorporated | Power aware arbitration for bus access |
US10784986B2 (en) | 2017-02-28 | 2020-09-22 | Intel Corporation | Forward error correction mechanism for peripheral component interconnect-express (PCI-e) |
US10318381B2 (en) * | 2017-03-29 | 2019-06-11 | Micron Technology, Inc. | Selective error rate information for multidimensional memory |
BR112019026942B1 (pt) | 2017-06-23 | 2024-02-15 | Huawei Technologies Co., Ltd | Tecnologia de acesso à memória e sistema de computador |
US10713189B2 (en) * | 2017-06-27 | 2020-07-14 | Qualcomm Incorporated | System and method for dynamic buffer sizing in a computing device |
US11294594B2 (en) * | 2017-08-07 | 2022-04-05 | Kioxia Corporation | SSD architecture supporting low latency operation |
US10387242B2 (en) | 2017-08-21 | 2019-08-20 | Qualcomm Incorporated | Dynamic link error protection in memory systems |
US10592121B2 (en) * | 2017-09-14 | 2020-03-17 | Samsung Electronics Co., Ltd. | Quasi-synchronous protocol for large bandwidth memory systems |
US10963003B2 (en) | 2017-10-20 | 2021-03-30 | Graphcore Limited | Synchronization in a multi-tile processing array |
GB201717295D0 (en) | 2017-10-20 | 2017-12-06 | Graphcore Ltd | Synchronization in a multi-tile processing array |
GB2569275B (en) * | 2017-10-20 | 2020-06-03 | Graphcore Ltd | Time deterministic exchange |
GB2569276B (en) | 2017-10-20 | 2020-10-14 | Graphcore Ltd | Compiler method |
CN107943611B (zh) * | 2017-11-08 | 2021-04-13 | 天津国芯科技有限公司 | 一种快速产生crc的控制装置 |
US10824376B2 (en) | 2017-12-08 | 2020-11-03 | Sandisk Technologies Llc | Microcontroller architecture for non-volatile memory |
US10622075B2 (en) | 2017-12-12 | 2020-04-14 | Sandisk Technologies Llc | Hybrid microcontroller architecture for non-volatile memory |
CN110022268B (zh) * | 2018-01-09 | 2022-05-03 | 腾讯科技(深圳)有限公司 | 一种数据传输控制方法、装置及存储介质 |
CN108388690B (zh) * | 2018-01-16 | 2021-04-30 | 电子科技大学 | 元胞自动机实验平台 |
KR20190099879A (ko) * | 2018-02-20 | 2019-08-28 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US10810304B2 (en) | 2018-04-16 | 2020-10-20 | International Business Machines Corporation | Injecting trap code in an execution path of a process executing a program to generate a trap address range to detect potential malicious code |
US11003777B2 (en) | 2018-04-16 | 2021-05-11 | International Business Machines Corporation | Determining a frequency at which to execute trap code in an execution path of a process executing a program to generate a trap address range to detect potential malicious code |
US10929033B2 (en) * | 2018-04-25 | 2021-02-23 | Micron Technology, Inc. | Allocating variable media types of memory devices in a memory system |
US10831653B2 (en) * | 2018-05-15 | 2020-11-10 | Micron Technology, Inc. | Forwarding code word address |
US11003375B2 (en) | 2018-05-15 | 2021-05-11 | Micron Technology, Inc. | Code word format and structure |
US10496478B1 (en) * | 2018-05-24 | 2019-12-03 | Micron Technology, Inc. | Progressive length error control code |
US10409680B1 (en) * | 2018-05-24 | 2019-09-10 | Micron Technology, Inc. | Progressive length error control code |
US11074007B2 (en) | 2018-08-08 | 2021-07-27 | Micron Technology, Inc. | Optimize information requests to a memory system |
US10969994B2 (en) * | 2018-08-08 | 2021-04-06 | Micron Technology, Inc. | Throttle response signals from a memory system |
TWI819072B (zh) * | 2018-08-23 | 2023-10-21 | 美商阿爾克斯股份有限公司 | 在網路運算環境中用於避免環路衝突的系統、非暫態電腦可讀取儲存媒體及電腦實現方法 |
KR102541897B1 (ko) | 2018-08-27 | 2023-06-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
US11061751B2 (en) | 2018-09-06 | 2021-07-13 | Micron Technology, Inc. | Providing bandwidth expansion for a memory sub-system including a sequencer separate from a controller |
US11080210B2 (en) | 2018-09-06 | 2021-08-03 | Micron Technology, Inc. | Memory sub-system including an in package sequencer separate from a controller |
US10838909B2 (en) | 2018-09-24 | 2020-11-17 | Hewlett Packard Enterprise Development Lp | Methods and systems for computing in memory |
US10771189B2 (en) | 2018-12-18 | 2020-09-08 | Intel Corporation | Forward error correction mechanism for data transmission across multi-lane links |
WO2020135385A1 (zh) * | 2018-12-29 | 2020-07-02 | 上海寒武纪信息科技有限公司 | 通用机器学习模型、模型文件的生成和解析方法 |
CN109815043B (zh) * | 2019-01-25 | 2022-04-05 | 华为云计算技术有限公司 | 故障处理方法、相关设备及计算机存储介质 |
US11637657B2 (en) | 2019-02-15 | 2023-04-25 | Intel Corporation | Low-latency forward error correction for high-speed serial links |
US10997111B2 (en) | 2019-03-01 | 2021-05-04 | Intel Corporation | Flit-based packetization |
US11249837B2 (en) | 2019-03-01 | 2022-02-15 | Intel Corporation | Flit-based parallel-forward error correction and parity |
US10777240B1 (en) | 2019-03-07 | 2020-09-15 | Sandisk Technologies Llc | Efficient control of memory core circuits |
TWI810262B (zh) * | 2019-03-22 | 2023-08-01 | 美商高通公司 | 用於計算機器的可變位元寬資料格式的單打包和拆包網路及方法 |
US10983795B2 (en) * | 2019-03-27 | 2021-04-20 | Micron Technology, Inc. | Extended memory operations |
US11296994B2 (en) | 2019-05-13 | 2022-04-05 | Intel Corporation | Ordered sets for high-speed interconnects |
US10877889B2 (en) * | 2019-05-16 | 2020-12-29 | Micron Technology, Inc. | Processor-side transaction context memory interface systems and methods |
US10971199B2 (en) | 2019-06-20 | 2021-04-06 | Sandisk Technologies Llc | Microcontroller for non-volatile memory with combinational logic |
US11740958B2 (en) | 2019-11-27 | 2023-08-29 | Intel Corporation | Multi-protocol support on common physical layer |
KR20220110295A (ko) | 2019-12-26 | 2022-08-05 | 마이크론 테크놀로지, 인크. | 적층 메모리 시스템을 위한 진리표 확장 |
KR20220116259A (ko) | 2019-12-26 | 2022-08-22 | 마이크론 테크놀로지, 인크. | 적층 메모리 시스템의 비-결정 동작을 위한 기술 |
EP4081889A4 (en) | 2019-12-26 | 2023-05-31 | Micron Technology, Inc. | HOST TECHNIQUES FOR STACKED STORAGE SYSTEMS |
KR20210091404A (ko) | 2020-01-13 | 2021-07-22 | 삼성전자주식회사 | 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법 |
US11507498B2 (en) | 2020-03-05 | 2022-11-22 | Sandisk Technologies Llc | Pre-computation of memory core control signals |
US11812909B2 (en) | 2020-04-10 | 2023-11-14 | The Procter & Gamble Company | Cleaning implement with a rheological solid composition |
US11474743B2 (en) | 2020-08-13 | 2022-10-18 | Micron Technology, Inc. | Data modification |
US11494120B2 (en) * | 2020-10-02 | 2022-11-08 | Qualcomm Incorporated | Adaptive memory transaction scheduling |
TWI763131B (zh) * | 2020-11-18 | 2022-05-01 | 瑞昱半導體股份有限公司 | 網路介面裝置、包含該網路介面裝置之電子裝置,及網路介面裝置的操作方法 |
US11409608B2 (en) * | 2020-12-29 | 2022-08-09 | Advanced Micro Devices, Inc. | Providing host-based error detection capabilities in a remote execution device |
US11481270B1 (en) * | 2021-06-16 | 2022-10-25 | Ampere Computing Llc | Method and system for sequencing data checks in a packet |
CN113840272B (zh) * | 2021-10-12 | 2024-05-14 | 北京奕斯伟计算技术股份有限公司 | 数据传输方法、数据传输装置以及电子装置 |
US11886367B2 (en) * | 2021-12-08 | 2024-01-30 | Ati Technologies Ulc | Arbitration allocating requests during backpressure |
CN114301995B (zh) * | 2021-12-30 | 2023-07-18 | 上海交通大学 | 实时工业以太网协议的转换切换与互通融合系统及其方法 |
US20230236992A1 (en) * | 2022-01-21 | 2023-07-27 | Arm Limited | Data elision |
US11922026B2 (en) | 2022-02-16 | 2024-03-05 | T-Mobile Usa, Inc. | Preventing data loss in a filesystem by creating duplicates of data in parallel, such as charging data in a wireless telecommunications network |
US11914473B1 (en) * | 2022-10-20 | 2024-02-27 | Micron Technology, Inc. | Data recovery using ordered data requests |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050086374A1 (en) * | 2003-10-17 | 2005-04-21 | Gaurav Singh | Method and apparatus for providing internal table extensibility with external interface |
US20080049505A1 (en) * | 2006-08-22 | 2008-02-28 | Mosaid Technologies Incorporated | Scalable memory system |
US20080109629A1 (en) * | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Asymmetric memory migration in hybrid main memory |
KR20080044254A (ko) * | 2005-08-03 | 2008-05-20 | 쌘디스크 코포레이션 | 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리 |
KR20100034591A (ko) * | 2008-09-24 | 2010-04-01 | 한국전자통신연구원 | 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치 |
WO2011071645A1 (en) * | 2009-12-07 | 2011-06-16 | Sandisk Corporation | Method and system for concurrent background and foreground operations in a non-volatile memory array |
Family Cites Families (210)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7380092B2 (en) | 2002-06-28 | 2008-05-27 | Rambus Inc. | Memory device and system having a variable depth write buffer and preload method |
USRE36751E (en) * | 1987-07-15 | 2000-06-27 | Hitachi, Ltd. | ATM switching system connectable to I/O links having different transmission rates |
EP0453863A2 (en) | 1990-04-27 | 1991-10-30 | National Semiconductor Corporation | Methods and apparatus for implementing a media access control/host system interface |
US5379297A (en) * | 1992-04-09 | 1995-01-03 | Network Equipment Technologies, Inc. | Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode |
JPH05308373A (ja) * | 1992-04-28 | 1993-11-19 | Matsushita Electric Ind Co Ltd | スター型分散制御ネットワークおよびそれに用いる端末装置 |
US5771247A (en) * | 1994-10-03 | 1998-06-23 | International Business Machines Corporation | Low latency error reporting for high performance bus |
US6725349B2 (en) | 1994-12-23 | 2004-04-20 | Intel Corporation | Method and apparatus for controlling of a memory subsystem installed with standard page mode memory and an extended data out memory |
US5781449A (en) * | 1995-08-10 | 1998-07-14 | Advanced System Technologies, Inc. | Response time measurement apparatus and method |
US5978874A (en) * | 1996-07-01 | 1999-11-02 | Sun Microsystems, Inc. | Implementing snooping on a split-transaction computer system bus |
US5935213A (en) * | 1996-05-02 | 1999-08-10 | Fore Systems, Inc. | System and method for generating explicit rate value information for flow control in ATAM network |
US5918182A (en) * | 1996-08-30 | 1999-06-29 | Motorola, Inc. | Method and apparatus for mitigating data congestion in an integrated voice/data radio communications system |
US5754567A (en) | 1996-10-15 | 1998-05-19 | Micron Quantum Devices, Inc. | Write reduction in flash memory systems through ECC usage |
US6272600B1 (en) | 1996-11-15 | 2001-08-07 | Hyundai Electronics America | Memory request reordering in a data processing system |
US6208655B1 (en) * | 1996-11-27 | 2001-03-27 | Sony Europa, B.V., | Method and apparatus for serving data |
US6292834B1 (en) * | 1997-03-14 | 2001-09-18 | Microsoft Corporation | Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network |
KR100247022B1 (ko) * | 1997-06-11 | 2000-04-01 | 윤종용 | Atm 스위칭 시스템의 단일 스위치 소자 및 버퍼 문턱값 결정 방법 |
US6021124A (en) * | 1997-08-19 | 2000-02-01 | Telefonaktiebolaget Lm Ericsson | Multi-channel automatic retransmission query (ARQ) method |
US6516442B1 (en) * | 1997-12-07 | 2003-02-04 | Conexant Systems, Inc. | Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system |
JP2881418B1 (ja) * | 1998-02-20 | 1999-04-12 | 一男 佐藤 | 識別データー記載シリコン基板およびその製造方法 |
JP3650262B2 (ja) * | 1998-03-20 | 2005-05-18 | 富士通株式会社 | セルの転送レート制御装置およびその方法 |
US6782490B2 (en) * | 1999-03-17 | 2004-08-24 | At&T Corp. | Network-based service for the repair of IP multicast sessions |
US6952401B1 (en) * | 1999-03-17 | 2005-10-04 | Broadcom Corporation | Method for load balancing in a network switch |
US7668189B1 (en) * | 1999-07-08 | 2010-02-23 | Thomson Licensing | Adaptive transport protocol |
US6751698B1 (en) * | 1999-09-29 | 2004-06-15 | Silicon Graphics, Inc. | Multiprocessor node controller circuit and method |
EP1146738B1 (en) * | 1999-11-22 | 2007-09-19 | Sony Corporation | Videotape recording and playback device, and videotape player |
US6799220B1 (en) * | 2000-04-13 | 2004-09-28 | Intel Corporation | Tunneling management messages over a channel architecture network |
US6715007B1 (en) * | 2000-07-13 | 2004-03-30 | General Dynamics Decision Systems, Inc. | Method of regulating a flow of data in a communication system and apparatus therefor |
EP1330725B1 (en) * | 2000-09-29 | 2012-03-21 | Alacritech, Inc. | Intelligent network storage interface system and devices |
US7113507B2 (en) * | 2000-11-22 | 2006-09-26 | Silicon Image | Method and system for communicating control information via out-of-band symbols |
US6957313B2 (en) | 2000-12-01 | 2005-10-18 | Hsia James R | Memory matrix and method of operating the same |
GB0031535D0 (en) * | 2000-12-22 | 2001-02-07 | Nokia Networks Oy | Traffic congestion |
US7469341B2 (en) * | 2001-04-18 | 2008-12-23 | Ipass Inc. | Method and system for associating a plurality of transaction data records generated in a service access system |
US7287649B2 (en) | 2001-05-18 | 2007-10-30 | Broadcom Corporation | System on a chip for packet processing |
US7006438B2 (en) * | 2001-05-31 | 2006-02-28 | Turin Networks | Distributed control of data flow in a network switch |
US20030033421A1 (en) * | 2001-08-02 | 2003-02-13 | Amplify.Net, Inc. | Method for ascertaining network bandwidth allocation policy associated with application port numbers |
US20030031178A1 (en) * | 2001-08-07 | 2003-02-13 | Amplify.Net, Inc. | Method for ascertaining network bandwidth allocation policy associated with network address |
US7072299B2 (en) * | 2001-08-20 | 2006-07-04 | International Business Machines Corporation | Credit-based receiver using selected transmit rates and storage thresholds for preventing under flow and over flow-methods, apparatus and program products |
KR100790131B1 (ko) * | 2001-08-24 | 2008-01-02 | 삼성전자주식회사 | 패킷 통신시스템에서 매체 접속 제어 계층 엔터티들 간의 시그널링 방법 |
WO2003019394A1 (en) * | 2001-08-24 | 2003-03-06 | Intel Corporation | A general input/output architecture, protocol and related methods to support legacy interrupts |
US7062609B1 (en) * | 2001-09-19 | 2006-06-13 | Cisco Technology, Inc. | Method and apparatus for selecting transfer types |
US20030093632A1 (en) * | 2001-11-12 | 2003-05-15 | Intel Corporation | Method and apparatus for sideband read return header in memory interconnect |
KR100415115B1 (ko) * | 2001-11-29 | 2004-01-13 | 삼성전자주식회사 | 통신시스템의 데이터 혼잡 통보 방법 및 장치 |
JP3912091B2 (ja) * | 2001-12-04 | 2007-05-09 | ソニー株式会社 | データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム |
WO2003063423A1 (en) * | 2002-01-24 | 2003-07-31 | University Of Southern California | Pseudorandom data storage |
US20030152096A1 (en) * | 2002-02-13 | 2003-08-14 | Korey Chapman | Intelligent no packet loss networking |
EP1341336B1 (en) | 2002-02-14 | 2005-07-13 | Matsushita Electric Industrial Co., Ltd. | Method for controlling the data rate of transmitting data packets in a wireless communications system, receiver and transmitter therefor |
US6970978B1 (en) * | 2002-04-03 | 2005-11-29 | Advanced Micro Devices, Inc. | System and method for providing a pre-fetch memory controller |
KR100429904B1 (ko) * | 2002-05-18 | 2004-05-03 | 한국전자통신연구원 | 차등화된 QoS 서비스를 제공하는 라우터 및 그것의고속 IP 패킷 분류 방법 |
US6963868B2 (en) * | 2002-06-03 | 2005-11-08 | International Business Machines Corporation | Multi-bit Patricia trees |
US7133972B2 (en) | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US7043599B1 (en) | 2002-06-20 | 2006-05-09 | Rambus Inc. | Dynamic memory supporting simultaneous refresh and data-access transactions |
US7408876B1 (en) * | 2002-07-02 | 2008-08-05 | Extreme Networks | Method and apparatus for providing quality of service across a switched backplane between egress queue managers |
US7051150B2 (en) * | 2002-07-29 | 2006-05-23 | Freescale Semiconductor, Inc. | Scalable on chip network |
US7124260B2 (en) | 2002-08-26 | 2006-10-17 | Micron Technology, Inc. | Modified persistent auto precharge command protocol system and method for memory devices |
US7143264B2 (en) * | 2002-10-10 | 2006-11-28 | Intel Corporation | Apparatus and method for performing data access in accordance with memory access patterns |
US7372814B1 (en) * | 2003-02-27 | 2008-05-13 | Alcatel-Lucent | Network system with color-aware upstream switch transmission rate control in response to downstream switch traffic buffering |
US7080217B2 (en) | 2003-03-31 | 2006-07-18 | Intel Corporation | Cycle type based throttling |
US6988173B2 (en) | 2003-05-12 | 2006-01-17 | International Business Machines Corporation | Bus protocol for a switchless distributed shared memory computer system |
US7167942B1 (en) | 2003-06-09 | 2007-01-23 | Marvell International Ltd. | Dynamic random access memory controller |
EP1635518B1 (en) * | 2003-06-18 | 2019-07-31 | Nippon Telegraph And Telephone Corporation | Wireless packet communication method |
US7342881B2 (en) * | 2003-06-20 | 2008-03-11 | Alcatel | Backpressure history mechanism in flow control |
US7277978B2 (en) | 2003-09-16 | 2007-10-02 | Micron Technology, Inc. | Runtime flash device detection and configuration for flash data management software |
KR100526187B1 (ko) * | 2003-10-18 | 2005-11-03 | 삼성전자주식회사 | 모바일 애드 혹 네트워크 환경에서 최적의 전송율을 찾기위한 조절 방법 |
US20050108501A1 (en) * | 2003-11-03 | 2005-05-19 | Smith Zachary S. | Systems and methods for identifying unending transactions |
US7420919B1 (en) * | 2003-11-10 | 2008-09-02 | Cisco Technology, Inc. | Self converging communication fair rate control system and method |
KR100560748B1 (ko) * | 2003-11-11 | 2006-03-13 | 삼성전자주식회사 | 알피알 공평 메카니즘을 이용한 대역폭 할당 방법 |
US7451381B2 (en) * | 2004-02-03 | 2008-11-11 | Phonex Broadband Corporation | Reliable method and system for efficiently transporting dynamic data across a network |
JP4521206B2 (ja) * | 2004-03-01 | 2010-08-11 | 株式会社日立製作所 | ネットワークストレージシステム、コマンドコントローラ、及びネットワークストレージシステムにおけるコマンド制御方法 |
US7475174B2 (en) * | 2004-03-17 | 2009-01-06 | Super Talent Electronics, Inc. | Flash / phase-change memory in multi-ring topology using serial-link packet interface |
US20050210185A1 (en) * | 2004-03-18 | 2005-09-22 | Kirsten Renick | System and method for organizing data transfers with memory hub memory modules |
US20050223141A1 (en) * | 2004-03-31 | 2005-10-06 | Pak-Lung Seto | Data flow control in a data storage system |
JP2005318429A (ja) * | 2004-04-30 | 2005-11-10 | Sony Ericsson Mobilecommunications Japan Inc | 再送制御方法及び無線通信端末 |
US20060056308A1 (en) * | 2004-05-28 | 2006-03-16 | International Business Machines Corporation | Method of switching fabric for counteracting a saturation tree occurring in a network with nodes |
US7984179B1 (en) * | 2004-06-29 | 2011-07-19 | Sextant Navigation, Inc. | Adaptive media transport management for continuous media stream over LAN/WAN environment |
US7773578B2 (en) * | 2004-07-13 | 2010-08-10 | Utstarcom Telecom Co., Ltd. | Packet transmission method for wireless signals in a wireless base station system |
US7441087B2 (en) * | 2004-08-17 | 2008-10-21 | Nvidia Corporation | System, apparatus and method for issuing predictions from an inventory to access a memory |
US7433363B2 (en) | 2004-08-23 | 2008-10-07 | The United States Of America As Represented By The Secretary Of The Navy | Low latency switch architecture for high-performance packet-switched networks |
US7660245B1 (en) * | 2004-09-16 | 2010-02-09 | Qualcomm Incorporated | FEC architecture for streaming services including symbol-based operations and packet tagging |
US7340582B2 (en) * | 2004-09-30 | 2008-03-04 | Intel Corporation | Fault processing for direct memory access address translation |
TWI254849B (en) * | 2004-10-13 | 2006-05-11 | Via Tech Inc | Method and related apparatus for data error checking |
US7830801B2 (en) * | 2004-10-29 | 2010-11-09 | Broadcom Corporation | Intelligent fabric congestion detection apparatus and method |
US7859996B2 (en) * | 2004-10-29 | 2010-12-28 | Broadcom Corporation | Intelligent congestion feedback apparatus and method |
US20060143678A1 (en) * | 2004-12-10 | 2006-06-29 | Microsoft Corporation | System and process for controlling the coding bit rate of streaming media data employing a linear quadratic control technique and leaky bucket model |
US7702742B2 (en) * | 2005-01-18 | 2010-04-20 | Fortinet, Inc. | Mechanism for enabling memory transactions to be conducted across a lossy network |
US7877566B2 (en) | 2005-01-25 | 2011-01-25 | Atmel Corporation | Simultaneous pipelined read with multiple level cache for improved system performance using flash technology |
US8085755B2 (en) * | 2005-04-01 | 2011-12-27 | Cisco Technology, Inc. | Data driven route advertisement |
US7987306B2 (en) * | 2005-04-04 | 2011-07-26 | Oracle America, Inc. | Hiding system latencies in a throughput networking system |
US7743183B2 (en) * | 2005-05-23 | 2010-06-22 | Microsoft Corporation | Flow control for media streaming |
TWI305890B (en) | 2005-05-27 | 2009-02-01 | Darfon Electronics Corp | Button mechanism |
US8027256B1 (en) * | 2005-06-02 | 2011-09-27 | Force 10 Networks, Inc. | Multi-port network device using lookup cost backpressure |
DE102005035207A1 (de) * | 2005-07-27 | 2007-02-01 | Siemens Ag | Verfahren und Vorrichtung zur Datenübertragung zwischen zwei relativ zueinander bewegten Komponenten |
US7630307B1 (en) * | 2005-08-18 | 2009-12-08 | At&T Intellectual Property Ii, Lp | Arrangement for minimizing data overflow by managing data buffer occupancy, especially suitable for fibre channel environments |
US8291295B2 (en) | 2005-09-26 | 2012-10-16 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
US7652922B2 (en) * | 2005-09-30 | 2010-01-26 | Mosaid Technologies Incorporated | Multiple independent serial link memory |
US7961621B2 (en) * | 2005-10-11 | 2011-06-14 | Cisco Technology, Inc. | Methods and devices for backward congestion notification |
US8149846B2 (en) * | 2005-11-10 | 2012-04-03 | Hewlett-Packard Development Company, L.P. | Data processing system and method |
US7698498B2 (en) | 2005-12-29 | 2010-04-13 | Intel Corporation | Memory controller with bank sorting and scheduling |
US8065582B2 (en) * | 2006-02-13 | 2011-11-22 | Digital Fountain, Inc. | FEC streaming with aggregation of concurrent streams for FEC computation |
US7617437B2 (en) * | 2006-02-21 | 2009-11-10 | Freescale Semiconductor, Inc. | Error correction device and method thereof |
KR100695435B1 (ko) | 2006-04-13 | 2007-03-16 | 주식회사 하이닉스반도체 | 반도체 메모리 소자 |
US7756028B2 (en) * | 2006-04-27 | 2010-07-13 | Alcatel Lucent | Pulsed backpressure mechanism for reduced FIFO utilization |
JP5184527B2 (ja) * | 2006-07-25 | 2013-04-17 | トムソン ライセンシング | スタガーキャスティング及びクロスパケット前方誤り訂正を用いたインターネットプロトコル型無線ネットワークでのバーストパケット損失からの回復 |
US7739576B2 (en) * | 2006-08-31 | 2010-06-15 | Micron Technology, Inc. | Variable strength ECC |
EP2084864A1 (en) * | 2006-10-24 | 2009-08-05 | Medianet Innovations A/S | Method and system for firewall friendly real-time communication |
JP2008123330A (ja) * | 2006-11-14 | 2008-05-29 | Toshiba Corp | 不揮発性半導体記憶装置 |
US7818389B1 (en) * | 2006-12-01 | 2010-10-19 | Marvell International Ltd. | Packet buffer apparatus and method |
US9116823B2 (en) * | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
KR101364443B1 (ko) | 2007-01-31 | 2014-02-17 | 삼성전자주식회사 | 메모리 시스템, 이 시스템을 위한 메모리 제어기와 메모리,이 시스템의 신호 구성 방법 |
US7596643B2 (en) * | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
US8693406B2 (en) * | 2007-08-09 | 2014-04-08 | Intel Corporation | Multi-user resource allocation and medium access control (MAC) overhead reduction for mobile worldwide interoperability for microwave access (WiMAX) systems |
US7937631B2 (en) * | 2007-08-28 | 2011-05-03 | Qimonda Ag | Method for self-test and self-repair in a multi-chip package environment |
JP4564520B2 (ja) * | 2007-08-31 | 2010-10-20 | 株式会社東芝 | 半導体記憶装置およびその制御方法 |
US7769015B2 (en) | 2007-09-11 | 2010-08-03 | Liquid Computing Corporation | High performance network adapter (HPNA) |
US7821939B2 (en) * | 2007-09-26 | 2010-10-26 | International Business Machines Corporation | Method, system, and computer program product for adaptive congestion control on virtual lanes for data center ethernet architecture |
US8130649B2 (en) * | 2007-10-18 | 2012-03-06 | Alcatel Lucent | Ingress traffic flow control in a data communications system |
US8305991B1 (en) * | 2007-11-14 | 2012-11-06 | Sprint Spectrum L.P. | Method and system for sector switching during packet transmission |
US7870351B2 (en) * | 2007-11-15 | 2011-01-11 | Micron Technology, Inc. | System, apparatus, and method for modifying the order of memory accesses |
US8245101B2 (en) * | 2007-12-27 | 2012-08-14 | Sandisk Enterprise Ip Llc | Patrol function used in flash storage controller to detect data errors |
US8120990B2 (en) | 2008-02-04 | 2012-02-21 | Mosaid Technologies Incorporated | Flexible memory operations in NAND flash devices |
US8355336B2 (en) * | 2008-02-13 | 2013-01-15 | Qualcomm Incorporated | Methods and apparatus for formatting headers in a communication frame |
JP5141606B2 (ja) * | 2008-03-26 | 2013-02-13 | セイコーエプソン株式会社 | 印刷装置 |
US8724636B2 (en) * | 2008-03-31 | 2014-05-13 | Qualcomm Incorporated | Methods of reliably sending control signal |
EP2279576A4 (en) * | 2008-04-24 | 2012-02-01 | Ericsson Telefon Ab L M | ERROR RATE MANAGEMENT |
US8374986B2 (en) * | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
US8223796B2 (en) * | 2008-06-18 | 2012-07-17 | Ati Technologies Ulc | Graphics multi-media IC and method of its operation |
KR101431760B1 (ko) * | 2008-06-25 | 2014-08-20 | 삼성전자주식회사 | Ecc 알고리즘을 이용한 플래시 메모리 장치 및 그구동방법 |
US8542588B2 (en) * | 2008-06-25 | 2013-09-24 | Qualcomm Incorporated | Invoking different wireless link rate selection operations for different traffic classes |
US7937419B2 (en) * | 2008-06-26 | 2011-05-03 | Tatu Ylonen Oy | Garbage collection via multiobjects |
US8547846B1 (en) * | 2008-08-28 | 2013-10-01 | Raytheon Bbn Technologies Corp. | Method and apparatus providing precedence drop quality of service (PDQoS) with class-based latency differentiation |
WO2010041469A1 (ja) * | 2008-10-09 | 2010-04-15 | 日本電気株式会社 | コンテンツ配信システム、コンテンツ配信方法およびコンピュータプログラム |
US8402190B2 (en) * | 2008-12-02 | 2013-03-19 | International Business Machines Corporation | Network adaptor optimization and interrupt reduction |
US20100161938A1 (en) * | 2008-12-23 | 2010-06-24 | Marco Heddes | System-On-A-Chip Supporting A Networked Array Of Configurable Symmetric Multiprocessing Nodes |
US8737374B2 (en) * | 2009-01-06 | 2014-05-27 | Qualcomm Incorporated | System and method for packet acknowledgment |
JP5168166B2 (ja) * | 2009-01-21 | 2013-03-21 | 富士通株式会社 | 通信装置および通信制御方法 |
EP2214100A1 (en) * | 2009-01-30 | 2010-08-04 | BRITISH TELECOMMUNICATIONS public limited company | Allocation of processing tasks |
CN102449600B (zh) * | 2009-03-06 | 2015-07-08 | 阿斯帕拉公司 | 用于i/o受驱速率自适应的方法和系统 |
TWI384810B (zh) | 2009-05-07 | 2013-02-01 | Etron Technology Inc | 可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法及其裝置 |
US8880716B2 (en) * | 2009-05-08 | 2014-11-04 | Canon Kabushiki Kaisha | Network streaming of a single data stream simultaneously over multiple physical interfaces |
CN101924603B (zh) * | 2009-06-09 | 2014-08-20 | 华为技术有限公司 | 数据传输速率的自适应调整方法、装置及系统 |
US20110035540A1 (en) * | 2009-08-10 | 2011-02-10 | Adtron, Inc. | Flash blade system architecture and method |
US8238244B2 (en) * | 2009-08-10 | 2012-08-07 | Micron Technology, Inc. | Packet deconstruction/reconstruction and link-control |
US8281065B2 (en) * | 2009-09-01 | 2012-10-02 | Apple Inc. | Systems and methods for determining the status of memory locations in a non-volatile memory |
US8543893B2 (en) * | 2009-09-02 | 2013-09-24 | Agere Systems Llc | Receiver for error-protected packet-based frame |
FR2949931B1 (fr) | 2009-09-10 | 2011-08-26 | Canon Kk | Procedes et dispositifs de transmission d'un flux de donnees, produit programme d'ordinateur et moyen de stockage correspondants. |
US8966110B2 (en) | 2009-09-14 | 2015-02-24 | International Business Machines Corporation | Dynamic bandwidth throttling |
US8312187B2 (en) * | 2009-09-18 | 2012-11-13 | Oracle America, Inc. | Input/output device including a mechanism for transaction layer packet processing in multiple processor systems |
WO2011033600A1 (ja) * | 2009-09-21 | 2011-03-24 | 株式会社 東芝 | 仮想記憶管理装置 |
EP2483777A4 (en) * | 2009-09-30 | 2016-05-11 | Altera Corp | ENHANCED EXCHANGE OF WAVEFORM DATA BETWEEN MULTIPLE PROCESSORS USING COMPRESSION AND DECOMPRESSION |
US9477636B2 (en) | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
US8719516B2 (en) * | 2009-10-21 | 2014-05-06 | Micron Technology, Inc. | Memory having internal processors and methods of controlling memory access |
US8281218B1 (en) * | 2009-11-02 | 2012-10-02 | Western Digital Technologies, Inc. | Data manipulation engine |
US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
US8183452B2 (en) * | 2010-03-23 | 2012-05-22 | Yamaha Corporation | Tone generation apparatus |
US8321753B2 (en) | 2010-04-13 | 2012-11-27 | Juniper Networks, Inc. | Optimization of packet buffer memory utilization |
CN101883446B (zh) * | 2010-06-28 | 2014-03-26 | 华为终端有限公司 | 一种sd控制芯片及数据通信方法 |
US9537488B1 (en) * | 2010-05-13 | 2017-01-03 | Altera Corporation | Apparatus for configurable interface and associated methods |
US8295292B2 (en) * | 2010-05-19 | 2012-10-23 | Telefonaktiebolaget L M Ericsson (Publ) | High performance hardware linked list processors |
US20110299588A1 (en) * | 2010-06-04 | 2011-12-08 | Apple Inc. | Rate control in video communication via virtual transmission buffer |
US8539311B2 (en) * | 2010-07-01 | 2013-09-17 | Densbits Technologies Ltd. | System and method for data recovery in multi-level cell memories |
KR101719395B1 (ko) * | 2010-07-13 | 2017-03-23 | 샌디스크 테크놀로지스 엘엘씨 | 백-엔드 메모리 시스템 인터페이스를 동적으로 최적화하는 방법 |
US20120192026A1 (en) * | 2010-07-16 | 2012-07-26 | Industrial Technology Research Institute | Methods and Systems for Data Transmission Management Using HARQ Mechanism for Concatenated Coded System |
US8751903B2 (en) | 2010-07-26 | 2014-06-10 | Apple Inc. | Methods and systems for monitoring write operations of non-volatile memory |
GB2513551B (en) | 2010-09-24 | 2018-01-10 | Ibm | High-speed memory system |
JP6032754B2 (ja) * | 2010-10-01 | 2016-11-30 | フィリップス ライティング ホールディング ビー ヴィ | 無線ネットワークでデータパケット送信をスケジューリングするデバイス及び方法 |
EP2447842A1 (en) | 2010-10-28 | 2012-05-02 | Thomson Licensing | Method and system for error correction in a memory array |
US8842536B2 (en) * | 2010-12-23 | 2014-09-23 | Brocade Communications Systems, Inc. | Ingress rate limiting |
JP2012150152A (ja) * | 2011-01-17 | 2012-08-09 | Renesas Electronics Corp | データ処理装置及び半導体装置 |
WO2012129191A2 (en) * | 2011-03-18 | 2012-09-27 | Fusion-Io, Inc. | Logical interfaces for contextual storage |
JP5800565B2 (ja) | 2011-05-11 | 2015-10-28 | キヤノン株式会社 | データ転送装置及びデータ転送方法 |
KR20130021865A (ko) * | 2011-08-24 | 2013-03-06 | 삼성전자주식회사 | 이동통신 시스템의 고정자원 할당 방법 및 장치 |
US8832331B2 (en) * | 2011-08-29 | 2014-09-09 | Ati Technologies Ulc | Data modification for device communication channel packets |
EP2761472B1 (en) * | 2011-09-30 | 2020-04-01 | Intel Corporation | Memory channel that supports near memory and far memory access |
US8588221B2 (en) * | 2011-10-07 | 2013-11-19 | Intel Mobile Communications GmbH | Method and interface for interfacing a radio frequency transceiver with a baseband processor |
US20130094472A1 (en) * | 2011-10-14 | 2013-04-18 | Qualcomm Incorporated | Methods and apparatuses for reducing voice/data interruption during a mobility procedure |
US8938658B2 (en) * | 2011-11-07 | 2015-01-20 | Sandisk Enterprise Ip Llc | Statistical read comparison signal generation for memory systems |
US9048876B2 (en) * | 2011-11-18 | 2015-06-02 | Sandisk Enterprise Ip Llc | Systems, methods and devices for multi-tiered error correction |
US8954822B2 (en) * | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
WO2013095576A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Processor-based apparatus and method for processing bit streams |
TW201346572A (zh) | 2012-01-27 | 2013-11-16 | Marvell World Trade Ltd | 發送器設備及發送器系統 |
WO2013122438A1 (en) * | 2012-02-17 | 2013-08-22 | Samsung Electronics Co., Ltd. | Data packet transmission/reception apparatus and method |
US9135192B2 (en) | 2012-03-30 | 2015-09-15 | Sandisk Technologies Inc. | Memory system with command queue reordering |
WO2013153577A1 (en) * | 2012-04-12 | 2013-10-17 | Hitachi, Ltd. | Data transfer method and storage system adopting data transfer method |
US9436625B2 (en) * | 2012-06-13 | 2016-09-06 | Nvidia Corporation | Approach for allocating virtual bank managers within a dynamic random access memory (DRAM) controller to physical banks within a DRAM |
US20150103668A1 (en) * | 2012-06-27 | 2015-04-16 | Qualcomm Incorporated | Low overhead and highly robust flow control apparatus and method |
US10034023B1 (en) * | 2012-07-30 | 2018-07-24 | Google Llc | Extended protection of digital video streams |
US9444751B1 (en) * | 2012-08-03 | 2016-09-13 | University Of Southern California | Backpressure with adaptive redundancy |
GB2505956B (en) * | 2012-09-18 | 2015-08-05 | Canon Kk | Method and apparatus for controlling the data rate of a data transmission between an emitter and a receiver |
US9215174B2 (en) * | 2012-10-18 | 2015-12-15 | Broadcom Corporation | Oversubscription buffer management |
KR101754890B1 (ko) * | 2012-10-22 | 2017-07-06 | 인텔 코포레이션 | 고성능 인터커넥트 물리 계층 |
US9424228B2 (en) | 2012-11-01 | 2016-08-23 | Ezchip Technologies Ltd. | High performance, scalable multi chip interconnect |
US8713311B1 (en) | 2012-11-07 | 2014-04-29 | Google Inc. | Encryption using alternate authentication key |
US9438511B2 (en) * | 2012-12-11 | 2016-09-06 | Hewlett Packard Enterprise Development Lp | Identifying a label-switched path (LSP) associated with a multi protocol label switching (MPLS) service and diagnosing a LSP related fault |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9229854B1 (en) * | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
KR20140100008A (ko) * | 2013-02-05 | 2014-08-14 | 삼성전자주식회사 | 휘발성 메모리 장치의 구동 방법 및 휘발성 메모리 장치의 테스트 방법 |
US9569612B2 (en) * | 2013-03-14 | 2017-02-14 | Daniel Shawcross Wilkerson | Hard object: lightweight hardware enforcement of encapsulation, unforgeability, and transactionality |
US9030771B2 (en) * | 2013-04-26 | 2015-05-12 | Oracle International Corporation | Compressed data verification |
US20140371941A1 (en) * | 2013-06-18 | 2014-12-18 | The Regents Of The University Of Colorado, A Body Corporate | Software-defined energy communication networks |
WO2014204128A1 (ko) * | 2013-06-19 | 2014-12-24 | 엘지전자 주식회사 | Mtc 기기의 수신 방법 |
KR102123439B1 (ko) * | 2013-11-20 | 2020-06-16 | 삼성전자 주식회사 | 이동 망에서 비디오 트래픽의 사용자 만족도 최적화를 고려한 혼잡 완화 방법 및 그 장치 |
GB2520724A (en) * | 2013-11-29 | 2015-06-03 | St Microelectronics Res & Dev | Debug circuitry |
US9699079B2 (en) * | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
JP6249403B2 (ja) * | 2014-02-27 | 2017-12-20 | 国立研究開発法人情報通信研究機構 | 光遅延線及び電子バッファ融合型光パケットバッファ制御装置 |
US9813815B2 (en) * | 2014-05-20 | 2017-11-07 | Gn Hearing A/S | Method of wireless transmission of digital audio |
KR102310580B1 (ko) * | 2014-10-24 | 2021-10-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US9740646B2 (en) * | 2014-12-20 | 2017-08-22 | Intel Corporation | Early identification in transactional buffered memory |
US9185045B1 (en) * | 2015-05-01 | 2015-11-10 | Ubitus, Inc. | Transport protocol for interactive real-time media |
US10003529B2 (en) * | 2015-08-04 | 2018-06-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for memory allocation in a software-defined networking (SDN) system |
KR102525295B1 (ko) * | 2016-01-06 | 2023-04-25 | 삼성전자주식회사 | 데이터 관리 방법 및 장치 |
KR102589410B1 (ko) * | 2017-11-10 | 2023-10-13 | 삼성전자주식회사 | 메모리 장치 및 그의 파워 제어 방법 |
-
2015
- 2015-05-28 US US14/724,446 patent/US9733847B2/en active Active
- 2015-05-28 US US14/724,510 patent/US9823864B2/en active Active
- 2015-05-28 US US14/724,489 patent/US9600191B2/en active Active
- 2015-05-28 US US14/724,558 patent/US9696920B2/en active Active
- 2015-05-28 US US14/724,473 patent/US9747048B2/en active Active
- 2015-05-29 US US14/726,150 patent/US9690502B2/en active Active
- 2015-06-01 CN CN201580040829.7A patent/CN106575257B/zh active Active
- 2015-06-01 CN CN201580037256.2A patent/CN106489134B/zh active Active
- 2015-06-01 WO PCT/US2015/033564 patent/WO2015187572A1/en active Application Filing
- 2015-06-01 CN CN201580037235.0A patent/CN106471474B/zh active Active
- 2015-06-01 WO PCT/US2015/033573 patent/WO2015187577A1/en active Application Filing
- 2015-06-01 WO PCT/US2015/033571 patent/WO2015187575A1/en active Application Filing
- 2015-06-01 WO PCT/US2015/033572 patent/WO2015187576A1/en active Application Filing
- 2015-06-01 CN CN201580037266.6A patent/CN106489136B/zh active Active
- 2015-06-01 KR KR1020167036180A patent/KR102196747B1/ko active IP Right Grant
- 2015-06-01 EP EP15802804.3A patent/EP3149602B1/en active Active
- 2015-06-01 EP EP15802464.6A patent/EP3149595B1/en active Active
- 2015-06-01 WO PCT/US2015/033568 patent/WO2015187574A1/en active Application Filing
- 2015-06-01 EP EP15803606.1A patent/EP3149599B1/en active Active
- 2015-06-01 EP EP15803148.4A patent/EP3149586B1/en active Active
- 2015-06-01 CN CN201810797365.XA patent/CN109032516B/zh active Active
- 2015-06-01 CN CN202111246413.4A patent/CN113971004A/zh active Pending
- 2015-06-01 CN CN201580035917.8A patent/CN106471485B/zh active Active
- 2015-06-01 KR KR1020167036182A patent/KR102197401B1/ko active IP Right Grant
- 2015-06-01 EP EP15802662.5A patent/EP3149592B1/en active Active
- 2015-06-01 CN CN201910363451.4A patent/CN110262751A/zh active Pending
- 2015-06-01 WO PCT/US2015/033574 patent/WO2015187578A1/en active Application Filing
- 2015-06-01 CN CN201580035967.6A patent/CN106471460B/zh active Active
- 2015-06-01 EP EP15802720.1A patent/EP3149585B1/en active Active
- 2015-06-01 KR KR1020167036974A patent/KR101796413B1/ko active IP Right Grant
- 2015-06-02 TW TW104117829A patent/TWI547799B/zh active
- 2015-06-02 TW TW104117824A patent/TWI582588B/zh active
- 2015-06-02 TW TW104117823A patent/TWI625632B/zh active
- 2015-06-02 TW TW104117826A patent/TWI545497B/zh active
- 2015-06-02 TW TW104117828A patent/TWI570569B/zh active
- 2015-06-02 TW TW104117868A patent/TWI554883B/zh active
-
2017
- 2017-02-21 US US15/438,492 patent/US10146457B2/en active Active
- 2017-06-29 US US15/637,327 patent/US10572164B2/en active Active
- 2017-08-01 US US15/666,410 patent/US10540104B2/en active Active
-
2018
- 2018-12-03 US US16/208,035 patent/US11003363B2/en active Active
-
2019
- 2019-11-26 US US16/696,667 patent/US11194480B2/en active Active
- 2019-11-26 US US16/696,650 patent/US10921995B2/en active Active
-
2020
- 2020-01-20 US US16/747,336 patent/US11461017B2/en active Active
-
2021
- 2021-01-19 US US17/152,465 patent/US11461019B2/en active Active
- 2021-04-27 US US17/242,037 patent/US11531472B2/en active Active
- 2021-04-27 US US17/241,993 patent/US11526280B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050086374A1 (en) * | 2003-10-17 | 2005-04-21 | Gaurav Singh | Method and apparatus for providing internal table extensibility with external interface |
KR20080044254A (ko) * | 2005-08-03 | 2008-05-20 | 쌘디스크 코포레이션 | 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리 |
US20080049505A1 (en) * | 2006-08-22 | 2008-02-28 | Mosaid Technologies Incorporated | Scalable memory system |
US20080109629A1 (en) * | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Asymmetric memory migration in hybrid main memory |
KR20100034591A (ko) * | 2008-09-24 | 2010-04-01 | 한국전자통신연구원 | 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치 |
WO2011071645A1 (en) * | 2009-12-07 | 2011-06-16 | Sandisk Corporation | Method and system for concurrent background and foreground operations in a non-volatile memory array |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102196747B1 (ko) | 메모리 시스템에서 데이터 구조들을 세그먼트하기 위한 시스템들 및 방법들 | |
US11687454B2 (en) | Memory circuit and cache circuit configuration | |
Cheong et al. | A flash memory controller for 15μs ultra-low-latency SSD using high-speed 3D NAND flash with 3μs read time | |
US10339079B2 (en) | System and method of interleaving data retrieved from first and second buffers | |
CN107220187A (zh) | 一种缓存管理方法、装置及现场可编程门阵列 | |
EP3758318A1 (en) | Shared memory mesh for switching | |
US10275350B2 (en) | System and method for performance optimal partial rank/bank interleaving for non-symmetrically populated DIMMs across DDR channels | |
EP3462327A2 (en) | Systems, methods and apparatus for memory access and scheduling | |
US9390017B2 (en) | Write and read collision avoidance in single port memory devices | |
CN112559391A (zh) | 用于设置2级自动关闭定时器以访问存储器装置的技术 | |
US20180188976A1 (en) | Increasing read pending queue capacity to increase memory bandwidth | |
US20180018104A1 (en) | Dynamic write latency for memory controller using data pattern extraction | |
CN103823773B (zh) | 存储系统及其操作方法 | |
JP6332756B2 (ja) | データ処理方法、装置、およびシステム | |
US8788748B2 (en) | Implementing memory interface with configurable bandwidth | |
US11755235B2 (en) | Increasing random access bandwidth of a DDR memory in a counter application | |
CN104407985B (zh) | 存储器地址映射方法及存储器地址映射系统 | |
CN111158600B (zh) | 一种提升高带宽存储器(hbm)访问效率的装置和方法 | |
CN114667509A (zh) | 一种存储器、网络设备及数据访问方法 | |
CN110618877A (zh) | 用于提供包队列的自适应轮询的技术 | |
CN106649136A (zh) | 一种数据存储方法和存储装置 | |
Shi et al. | A Storage Scheme for Fast Packet Buffers in Network Processor | |
Rasmussen et al. | SDRAM-based packet buffer model for high speed switches | |
KR20140064015A (ko) | 메모리 시스템 및 이의 동작 방법 | |
CN103246624A (zh) | 一种应用于多接口sram带权重的优先级调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |