KR20170012399A - 메모리 시스템에서 데이터 구조들을 세그먼트하기 위한 시스템들 및 방법들 - Google Patents

메모리 시스템에서 데이터 구조들을 세그먼트하기 위한 시스템들 및 방법들 Download PDF

Info

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
Application number
KR1020167036180A
Other languages
English (en)
Other versions
KR102196747B1 (ko
Inventor
제이. 토마스 팔로우스키
Original Assignee
마이크론 테크놀로지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20170012399A publication Critical patent/KR20170012399A/ko
Application granted granted Critical
Publication of KR102196747B1 publication Critical patent/KR102196747B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0727Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/073Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1072Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/189Transmission or retransmission of more than one copy of a message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

메모리 시스템에서 데이터 구조들을 세그먼트하기 위한 시스템들 및 방법들 {SYSTEMS AND METHODS FOR SEGMENTING DATA STRUCTURES IN A MEMORY SYSTEM}
관련 출원에 대한 상호-참조
본 출원은 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은 실시예에 따른, 다양한 큐 깊이들에 대하여 가상 뱅크들의 수의 로그 그래프를 예시한다.
하나 이상의 특정 실시예들이 이하에서 설명될 것이다. 이들 실시예들에 대한 간결한 설명을 제공하기 위한 노력으로, 실제 구현의 모드 특징들이 명세서에서 설명되는 것은 아니다. 임의의 이러한 실제 구현의 개발 시, 임의의 엔지니어링 또는 설계 프로젝트에서처럼, 다수의 구현-특정 결정들이, 하나의 구현에서 또 다른 것으로 달라질 수 있는, 시스템-관련 및 비즈니스-관련 제약들을 준수하는 것과 같은, 개발자들의 특정 목표들을 달성하기 위해 이루어져야 한다는 것이 이해되어야 한다. 게다가, 이러한 개발 노력은 복잡하며 시간 소모적일 수 있지만, 그럼에도 불구하고 본 개시의 이득을 가진 통상의 숙련자들에 대한 설계, 제작, 및 제조의 보통의 일일 것임이 이해되어야 한다.
일반적으로 상이한 메모리 유형들은 상이한 능력들을 가진다. 즉, 상이한 메모리 유형들은 다른 메모리 유형들보다 더 효율적으로 특정한 유형들의 기능들을 수행할 수 있다. 예를 들면, 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)

  1. 메모리 디바이스에 있어서,
    데이터를 저장하도록 구성된 메모리 컴포넌트(memory component); 및
    상기 메모리 컴포넌트와 연관된 하나 이상의 속성(property)들 및 상기 메모리 컴포넌트에 대한 예상된 랜덤 액세스 레이트에 기초하여 상기 메모리 컴포넌트내 하나 이상의 뱅크들 또는 하나 이상의 가상 뱅크들을 매핑시키도록 구성된 프로세서를 포함하는, 메모리 디바이스.
  2. 청구항 1에 있어서, 상기 메모리 컴포넌트는 동적 랜덤-액세스 메모리 또는 NAND 메모리를 포함하는, 메모리 디바이스.
  3. 청구항 1에 있어서, 상기 프로세서는 상기 가상 뱅크들 중 두 개의 별개의 가상 뱅크들을 통해 상기 메모리 컴포넌트 상에서 적어도 두 개의 데이터 동작들을 수행하도록 구성되며, 상기 적어도 두 개의 데이터 동작들의 부분은 동시에 수행되는, 메모리 디바이스.
  4. 청구항 1에 있어서, 상기 메모리 컴포넌트와 연관된 상기 속성들은 상기 메모리 컴포넌트의 로우 사이클 시간(row cycle time)을 포함하는, 메모리 디바이스.
  5. 청구항 1에 있어서, 상기 예상된 랜덤 액세스 레이트는 상기 프로세서에 의해 수신된 요청들의 총 라인 레이트, 상기 요청들의 각각의 요청의 최소 크기, 및 상기 요청들의 각각의 요청에 의해 수행된 터치 동작의 유형에 기초하여 결정되는, 메모리 디바이스.
  6. 방법에 있어서,
    프로세서를 통해, 메모리 컴포넌트를 액세스하는 것과 연관된 예상된 랜덤 액세스 레이트를 수신하는 단계;
    상기 프로세서를 통해, 상기 메모리 컴포넌트와 연관된 로우 사이클 시간을 수신하는 단계;
    상기 프로세서를 통해, 상기 예상된 랜덤 액세스 레이트 및 상기 로우 사이클 시간에 기초하여 상기 메모리 컴포넌트에 생성할 뱅크들의 제 1 수 또는 가상 뱅크들의 제 2 수를 결정하는 단계; 및
    상기 프로세서를 통해, 개별적으로 상기 뱅크들의 제 1 수 또는 상기 가상 뱅크들의 제 2 수에 기초하여 상기 메모리 컴포넌트내 하나 이상의 뱅크들 또는 하나 이상의 가상 뱅크들을 매핑시키는 단계로서, 상기 메모리 컴포넌트내 상기 하나 이상의 가상 뱅크들 중 각각의 가상 뱅크는 상기 메모리 컴포넌트내 상기 하나 이상의 가상 뱅크들의 위치들에 기초하여 독립적으로 액세스 가능한, 상기 매핑 단계를 포함하는, 방법.
  7. 청구항 6에 있어서, 상기 로우 사이클 시간은 전체 사이클을 완료하는 상기 메모리 컴포넌트의 메모리 로우에 대한 시간의 양을 포함하는, 방법.
  8. 청구항 6에 있어서, 상기 예상된 랜덤 액세스 레이트는 상기 메모리 컴포넌트를 액세스하기 위한 각각의 요청과 연관된 터치들의 수에 기초하여 결정되는, 방법.
  9. 청구항 6에 있어서, 상기 메모리 컴포넌트내 생성할 상기 가상 뱅크들의 수를 결정하는 단계는 상기 로우 사이클 시간 대 상기 예상된 랜덤 액세스 레이트의 비를 결정하는 단계를 포함하는, 방법.
  10. 청구항 6에 있어서, 상기 하나 이상의 가상 뱅크들의 제 2 가상 뱅크가 또한 액세스되는 동안 상기 프로세서를 통해, 상기 하나 이상의 가상 뱅크들의 제 1 가상 뱅크를 액세스하는 단계를 포함하는, 방법.
  11. 청구항 6에 있어서, 상기 프로세서를 통해, 상기 메모리 컴포넌트들의 복수의 구성요소들을 상기 메모리 컴포넌트들의 상기 하나 이상의 뱅크들 또는 상기 하나 이상의 가상 뱅크들내 하나 이상의 구성요소(element)들에 매핑시키는 단계를 포함하는, 방법.
  12. 청구항 6에 있어서, 상기 프로세서를 통해, 상기 메모리 컴포넌트에 대한 선호된 큐 깊이에 기초하여 상기 메모리 컴포넌트내 생성할 상기 가상 뱅크들의 제 2 수를 결정하는 단계를 포함하는, 방법.
  13. 청구항 12에 있어서, 상기 프로세서를 통해, 상기 선호된 큐 깊이에 기초하여 상기 메모리 컴포넌트내 생성할 상기 가상 뱅크들의 제 2 수를 결정하는 단계는 상기 메모리 컴포넌트를 액세스하는 복수의 랜덤 액세스 요청들의 시뮬레이션을 수행하는 단계 및 상기 선호된 큐 깊이에 도달하기 위해 상기 프로세서에 의해 수행된 사이클들의 수를 결정하는 단계를 포함하는, 방법.
  14. 지시들을 포함한 유형의, 비-일시적, 기계-판독 가능한 매체에 있어서, 상기 지시들은:
    메모리 컴포넌트에 대한 선호된 큐 깊이를 수신하는 것으로서, 상기 선호된 큐 깊이는 상기 메모리 컴포넌트를 액세스하기 위해 큐에서 대기하는 패킷들의 수를 포함하는, 상기 선호된 큐 깊이 수신하기;
    상기 메모리 컴포넌트에 의해 수신될 복수의 랜덤 패킷들의 패킷에 대한 예상된 터치 레이트 및 상기 메모리 컴포넌트내 뱅크들의 제 1 수 또는 가상 뱅크들의 제 2 수에 기초하여 상기 선호된 큐 깊이에 도달하기 위한 사이클들의 수를 결정하는 것으로서, 상기 메모리 컴포넌트내 상기 제 2 수의 가상 뱅크들 중 각각의 가상 뱅크는 상기 메모리 컴포넌트내 상기 제2 수의 가상 뱅크들의 각각의 가상 뱅크의 위치에 기초하여 독립적으로 액세스 가능한, 상기 사이클들의 수 결정하기; 및
    상기 사이클들의 수에 기초하여 상기 메모리 컴포넌트내 뱅크들의 제 3 수 또는 가상 뱅크들의 제 4 수를 결정하도록 구성되는, 유형의, 비-일시적, 기계-판독 가능한 매체.
  15. 청구항 14에 있어서, 상기 사이클들의 수를 결정하기 위한 상기 지시들은:
    상기 뱅크들의 제 1 수 또는 상기 가상 뱅크들의 제 2 수에 대해 상기 메모리 컴포넌트에 의해 상기 복수의 랜덤 패킷들을 수신하는 시뮬레이션을 수행하며;
    상기 시뮬레이션에 기초하여 상기 사이클들의 수를 결정하기 위한 지시들을 포함하는, 유형의, 비-일시적, 기계-판독 가능한 매체.
  16. 청구항 14에 있어서, 상기 가상 뱅크들의 제 4 수를 결정하기 위한 상기 지시들은:
    상기 사이클들의 수가 임계치를 초과하는지를 결정하며;
    상기 사이클들의 수가 상기 임계치를 초과할 때 상기 가상 뱅크들의 제 2 수를 증가시키기 위한 지시들을 포함하는, 유형의, 비-일시적, 기계-판독 가능한 매체.
  17. 청구항 16에 있어서, 상기 임계치는 패킷 에러 레이트(packet error rate)와 연관되는, 유형의, 비-일시적, 기계-판독 가능한 매체.
  18. 청구항 17에 있어서, 상기 패킷 에러 레이트는 상기 메모리 컴포넌트에 의해 상기 복수의 랜덤 패킷들을 수신하는 시뮬레이션 동안 에러가 발생하기 전에 수행된 사이클들의 예상 수를 포함하는, 유형의, 비-일시적, 기계-판독 가능한 매체.
  19. 청구항 16에 있어서, 상기 임계치는 패킷 에러 레이트의 배수인, 유형의, 비-일시적, 기계-판독 가능한 매체.
  20. 청구항 14에 있어서, 상기 메모리 컴포넌트는 동적 랜덤-액세스 메모리 또는 NAND 메모리를 포함하는, 유형의, 비-일시적, 기계-판독 가능한 매체.
KR1020167036180A 2014-06-02 2015-06-01 메모리 시스템에서 데이터 구조들을 세그먼트하기 위한 시스템들 및 방법들 KR102196747B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 삼성전자주식회사 메모리 장치 및 그의 파워 제어 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
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

Publication number Publication date
US20210141541A1 (en) 2021-05-13
US20150347015A1 (en) 2015-12-03
US20150347048A1 (en) 2015-12-03
US9690502B2 (en) 2017-06-27
CN106489136A (zh) 2017-03-08
US20190102095A1 (en) 2019-04-04
US9823864B2 (en) 2017-11-21
TWI545497B (zh) 2016-08-11
EP3149585A4 (en) 2018-04-11
US10540104B2 (en) 2020-01-21
US20170329545A1 (en) 2017-11-16
EP3149592B1 (en) 2022-05-04
US9696920B2 (en) 2017-07-04
US11526280B2 (en) 2022-12-13
US10921995B2 (en) 2021-02-16
TW201617879A (zh) 2016-05-16
KR102196747B1 (ko) 2020-12-31
US10146457B2 (en) 2018-12-04
US9747048B2 (en) 2017-08-29
TW201610688A (zh) 2016-03-16
EP3149595A1 (en) 2017-04-05
US20210247915A1 (en) 2021-08-12
US9733847B2 (en) 2017-08-15
US20200097191A1 (en) 2020-03-26
EP3149602A4 (en) 2017-08-09
US10572164B2 (en) 2020-02-25
EP3149602B1 (en) 2019-05-22
US20150347226A1 (en) 2015-12-03
US20200097190A1 (en) 2020-03-26
EP3149595B1 (en) 2022-11-16
KR20170005498A (ko) 2017-01-13
WO2015187574A1 (en) 2015-12-10
TWI570569B (zh) 2017-02-11
CN106489134B (zh) 2018-08-14
CN106489134A (zh) 2017-03-08
EP3149585A1 (en) 2017-04-05
CN106489136B (zh) 2020-03-06
TWI554883B (zh) 2016-10-21
WO2015187575A1 (en) 2015-12-10
EP3149592A4 (en) 2018-01-03
EP3149585B1 (en) 2020-08-12
CN109032516A (zh) 2018-12-18
EP3149586A4 (en) 2018-08-29
EP3149599A1 (en) 2017-04-05
US20170168728A1 (en) 2017-06-15
CN106471485B (zh) 2019-01-08
US20210247914A1 (en) 2021-08-12
TW201614476A (en) 2016-04-16
TW201610687A (zh) 2016-03-16
TW201617868A (zh) 2016-05-16
EP3149586A1 (en) 2017-04-05
US20150350082A1 (en) 2015-12-03
EP3149595A4 (en) 2018-03-28
US20170300382A1 (en) 2017-10-19
TWI547799B (zh) 2016-09-01
WO2015187572A1 (en) 2015-12-10
WO2015187578A1 (en) 2015-12-10
TWI582588B (zh) 2017-05-11
CN113971004A (zh) 2022-01-25
KR101796413B1 (ko) 2017-12-01
US20150347019A1 (en) 2015-12-03
WO2015187576A1 (en) 2015-12-10
WO2015187577A1 (en) 2015-12-10
CN109032516B (zh) 2021-10-22
EP3149602A1 (en) 2017-04-05
CN106471474A (zh) 2017-03-01
EP3149599B1 (en) 2022-09-21
CN106575257A (zh) 2017-04-19
KR20170012400A (ko) 2017-02-02
CN106471460B (zh) 2019-05-10
EP3149586B1 (en) 2022-07-20
US20150347225A1 (en) 2015-12-03
TW201614501A (en) 2016-04-16
US11194480B2 (en) 2021-12-07
TWI625632B (zh) 2018-06-01
EP3149592A1 (en) 2017-04-05
EP3149599A4 (en) 2018-01-03
US11531472B2 (en) 2022-12-20
US9600191B2 (en) 2017-03-21
US11461017B2 (en) 2022-10-04
CN106471485A (zh) 2017-03-01
US11461019B2 (en) 2022-10-04
CN106575257B (zh) 2019-05-28
KR102197401B1 (ko) 2021-01-04
US11003363B2 (en) 2021-05-11
CN110262751A (zh) 2019-09-20
US20200150884A1 (en) 2020-05-14
CN106471460A (zh) 2017-03-01
CN106471474B (zh) 2019-08-20

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