KR102516584B1 - 메모리 시스템 - Google Patents

메모리 시스템 Download PDF

Info

Publication number
KR102516584B1
KR102516584B1 KR1020180144289A KR20180144289A KR102516584B1 KR 102516584 B1 KR102516584 B1 KR 102516584B1 KR 1020180144289 A KR1020180144289 A KR 1020180144289A KR 20180144289 A KR20180144289 A KR 20180144289A KR 102516584 B1 KR102516584 B1 KR 102516584B1
Authority
KR
South Korea
Prior art keywords
data
data packet
address
memory
memory device
Prior art date
Application number
KR1020180144289A
Other languages
English (en)
Other versions
KR20200059494A (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 에스케이하이닉스 주식회사
Priority to KR1020180144289A priority Critical patent/KR102516584B1/ko
Priority to US16/282,166 priority patent/US11055239B2/en
Priority to CN201910183500.6A priority patent/CN111209221B/zh
Priority to TW108109648A priority patent/TW202020678A/zh
Priority to JP2019057683A priority patent/JP2020087408A/ja
Priority to US16/858,414 priority patent/US11288012B2/en
Publication of KR20200059494A publication Critical patent/KR20200059494A/ko
Priority to US17/134,117 priority patent/US11487473B2/en
Application granted granted Critical
Publication of KR102516584B1 publication Critical patent/KR102516584B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/24Interrupt
    • 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

Abstract

본 발명은 메모리 시스템에 관한 것으로, 메모리 장치들 간에 데이터를 전송하기 위한 기술이다. 이러한 본 발명은 데이터와 헤더 정보를 포함하는 데이터 패킷을 서로 간에 직접적으로 전달하는 복수의 메모리 장치 및 복수의 메모리 장치 중 소스 메모리 장치에 데이터 패킷을 송신하고, 복수의 메모리 장치 중 마지막 메모리 장치로부터 데이터 패킷을 수신하는 메모리 제어부를 포함하고, 복수의 메모리 장치 각각은 헤더 정보를 해시하여 서로 다른 위치의 어드레스 영역에 데이터를 액세스한다.

Description

메모리 시스템{Memory system}
본 발명은 메모리 시스템에 관한 것으로, 메모리 장치들 간에 데이터를 전송하기 위한 기술이다.
최근 스마트 폰, 태블릿 PC와 같은 이동 통신 단말기의 보급이 대중화되고 있다. 그리고, 소셜 네트워크 서비스(SNS, Social Network Service), 사물 네트워크(M2M, Machine to Machine), 센서 네트워크(Sensor Network) 등의 사용이 증가하고 있다. 이에 따라, 데이터의 양, 생성 속도 및 그 다양성이 기하급수적으로 증가하고 있다. 빅 데이터의 처리를 위해서는 메모리의 속도도 중요하지만 저장 용량이 큰 메모리 장치 및 메모리 모듈이 요구된다.
이에, 메모리 시스템은 데이터의 저장 용량을 늘리기 위하여 복수의 메모리 장치들을 구비한다. 메모리 시스템은 복수의 메모리 장치들이 데이터 라인을 공유하여 컨트롤러에 연결된다. 그런데, 메모리 시스템 내에 포함되는 메모리 장치들의 개수가 많은 경우 로딩이 증가하게 된다. 또한, 메모리 장치들과 컨트롤러 간의 데이터 전송시 데이터 이동 시간 및 전력 소모가 증가하게 된다.
본 발명의 실시예는 메모리 장치들 간에 데이터를 직접 전송하고, 데이터의 어드레스를 정하지 않고 패킷 형식으로 전달할 수 있도록 하는 메모리 시스템을 제공한다.
본 발명의 실시예에 따른 메모리 시스템은, 데이터와 헤더 정보를 포함하는 데이터 패킷을 서로 간에 직접적으로 전달하는 복수의 메모리 장치; 및 복수의 메모리 장치 중 소스 메모리 장치에 데이터 패킷을 송신하고, 복수의 메모리 장치 중 마지막 메모리 장치로부터 데이터 패킷을 수신하는 메모리 제어부를 포함하고, 복수의 메모리 장치 각각은 헤더 정보를 해시하여 서로 다른 위치의 어드레스 영역에 데이터를 액세스한다.
본 발명의 실시예는 데이터의 전송 속도를 향상시키고 데이터 어드레싱에 관한 트래픽을 줄일 수 있도록 하는 효과를 제공한다.
아울러 본 발명의 실시예는 예시를 위한 것으로, 당업자라면 첨부된 특허청구범위의 기술적 사상과 범위를 통해 다양한 수정, 변경, 대체 및 부가가 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
도 1은 본 발명의 실시예에 따른 메모리 시스템의 구성도.
도 2는 도 1의 메모리 제어부에 관한 상세 구성도.
도 3은 도 1의 각 메모리 장치에 관한 상세 구성도.
도 4는 도 3의 어드레스 해시부에 관한 동작을 설명하기 위한 도면.
도 5는 도 1의 각 메모리 장치에 저장되는 데이터 저장 포맷의 실시예.
도 6은 도 1의 각 메모리 장치간에 전달되는 데이터 스트림 포맷의 실시예.
도 7은 도 1의 각 메모리 장치에 요청되는 데이터 요청 포맷의 실시예.
도 8 및 도 9는 본 발명의 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 흐름도.
도 10은 본 발명의 실시예에 따른 메모리 시스템 큐 변화를 설명하기 위한 도면.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명하고자 한다. 본 발명의 실시예를 설명함에 있어서 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때 이는 "직접적으로 연결"되어 있는 경우뿐만 아니라 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함" 또는 "구비"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함하거나 구비할 수 있는 것을 의미한다. 또한, 명세서 전체의 기재에 있어서 일부 구성요소들을 단수형으로 기재하였다고 해서, 본 발명이 그에 국한되는 것은 아니며, 해당 구성요소가 복수 개로 이루어질 수 있음을 알 것이다.
도 1은 본 발명의 실시예에 따른 메모리 시스템의 구성도이다.
본 발명의 실시예에 따른 메모리 시스템(10)은 메모리 제어부(100)와 복수의 메모리 장치 M1~M4를 포함한다.
메모리 제어부(100)는 프로세서들 P1~P3로부터 요청된 명령을 분석하고 처리할 수 있다. 여기서, 프로세서들 P1~P3로부터 요청된 명령은 복수의 메모리 장치 M1~M4에 데이터를 라이트하기 위한 라이트 명령과, 복수의 메모리 장치 M1~M4에 저장된 데이터를 리드하기 위한 리드 명령 등을 포함할 수 있다. 메모리 제어부(100)는 프로세서들 P1~P3로부터 명령이 인가되면 복수의 메모리 장치 M1~M4를 구동하기 위한 펌웨어(Firmware) 또는 소프트웨어에 따라서 백그라운드 기능 블럭들의 동작을 제어할 수 있다.
메모리 제어부(100)는 프로세서들 P1~P3과 채널 CN1~CN3을 통해 연결된다. 여기서, 채널 CN1~CN3은 데이터가 송수신되는 데이터 버스와 제어신호가 송수신되는 제어 버스를 포함할 수 있다.
메모리 제어부(100)는 채널 CN1~CN3을 통해 인가되는 데이터 패킷(후술함)을 메모리 장치 M1(소스 메모리 장치)에 전달한다. 그리고, 메모리 제어부(100)는 메모리 장치 M4(마지막 메모리 장치)로부터 인가되는 데이어 패킷을 채널 CN1~CN3을 통해 프로세서들 P1~P3에 전달한다. 또한, 메모리 제어부(100)는 메모리 장치 M4로부터 인가되는 데이터 패킷을 메모리 장치 M1에 전달할 수 있다.
메모리 제어부(100)는 복수의 메모리 장치 M1~M4의 동작을 제어할 수 있다. 본 발명의 실시예에서 복수의 메모리 장치 M1~M4는 메모리 제어부(100)를 거치지 않고 복수의 메모리 장치 M1~M4 간에 데이터 패킷이 직접 전달될 수 있다. 이에 따라, 메모리 제어부(100)는 채널 CN1~CN3을 통해 인가되는 데이터 패킷을 메모리 장치 M1에 전달하고, 메모리 장치 M4로부터 인가되는 데이터 패킷을 채널 CN1~CN3에 제공한다.
본 발명의 실시예에 따른 복수의 메모리 장치 M1~M4는 메모리 제어부(100)를 경유하지 않고 서로 간에 직접 데이터 패킷을 전달할 수 있다. 즉, 복수의 메모리 장치 M1~M4는 서로 다른 메모리 장치 M1~M4로부터 제공된 데이터 패킷을 저장하거나, 저장된 데이터 패킷을 리드하여 서로 다른 메모리 장치로 제공할 수 있다.
예를 들어, 메모리 장치 M1는 메모리 제어부(100)로부터 인가된 데이터 패킷을 저장하거나 저장된 데이터 패킷을 메모리 장치 M2에 전달할 수 있다. 그리고, 메모리 장치 M2는 메모리 장치 M1로부터 인가된 데이터 패킷을 저장하거나 저장된 데이터 패킷을 메모리 장치 M3에 전달할 수 있다. 또한, 메모리 장치 M3는 메모리 장치 M2로부터 인가된 데이터 패킷을 저장하거나 저장된 데이터 패킷을 메모리 장치 M4에 전달할 수 있다. 그리고, 메모리 장치 M4는 메모리 장치 M3로부터 인가된 데이터 패킷을 저장하거나 저장된 데이터 패킷을 메모리 제어부(100)에 전달할 수 있다.
본 발명의 실시예에서 메모리 장치 M1~M4가 4 개인 것을 일 예로 설명하였지만, 본 발명의 실시예는 이에 한정되는 것이 아니며 메모리 장치의 개수는 한정되지 않는다.
또한, 본 발명이 실시예에서 메모리 장치 M1~M4는 휘발성 메모리로 구성될 수 있다. 하지만, 본 발명의 실시예는 이에 한정되는 것이 아니라, 메모리 장치 M1~M4가 낸드 플래시 메모리, 노어 플래시 메모리, PRAM(Phase-change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등의 불휘발성 메모리 장치들 중 하나로 구성될 수 있다.
복수의 메모리 장치 M1~M4는 서로 간에 직접 데이터 패킷을 전달하기 위한 인터페이스 I1~I4를 포함한다.
여기서, 메모리 장치 M1의 인터페이스 I1는 수신부 R1, 송신부 T1를 포함한다. 수신부 R1는 메모리 제어부(100)로부터 인가되는 데이터 패킷을 수신하고, 송신부 T1는 메모리 장치 M2에 데이터 패킷을 송신한다.
그리고, 메모리 장치 M2의 인터페이스 I2는 수신부 R2, 송신부 T2를 포함한다. 수신부 R2는 메모리 장치 M1로부터 인가되는 데이터 패킷을 수신하고, 송신부 T2는 메모리 장치 M3에 데이터 패킷을 송신한다.
메모리 장치 M3의 인터페이스 I3는 수신부 R3, 송신부 T3를 포함한다. 수신부 R3는 메모리 장치 M2로부터 인가되는 데이터 패킷을 수신하고, 송신부 T3는 메모리 장치 M4에 데이터 패킷을 송신한다.
또한, 메모리 장치 M4의 인터페이스 I4는 수신부 R4, 송신부 T4를 포함한다. 수신부 R4는 메모리 장치 M3로부터 인가되는 데이터 패킷을 수신하고, 송신부 T4는 메모리 제어부(100)에 데이터 패킷을 송신한다.
도 2는 도 1의 메모리 제어부(100)에 관한 상세 구성도이다.
메모리 제어부(100)는 인터페이스(110), 제어부(120), 송신부(130) 및 수신부(140)를 포함한다.
여기서, 인터페이스(110)는 외부의 프로세서들 P1~P3과 채널 CN을 통해 인터페이싱을 수행한다. 즉, 인터페이스(110)는 프로세서들 P1~P3로부터 인가되는 데이터 패킷을 제어부(120)에 전달하거나, 제어부(120)로부터 인가되는 데이터 패킷을 프로세서들 P1~P3에 제공한다.
제어부(120)는 메모리 장치 M1, M4의 액세스 동작을 중재한다. 즉, 제어부(120)는 인터페이스(110)를 통해 인가되는 데이터 패킷을 송신부(130)에 전달한다. 그리고, 제어부(120)는 수신부(140)로부터 인가되는 데이터 패킷을 인터페이스(110)에 전달한다. 제어부(120)는 인터페이스(110)를 통해 인가되는 데이터 패킷과 수신부(140)로부터 인가되는 데이터 패킷 간에 충돌이 일어나지 않도록 데이터 패킷의 송수신 동작을 중재한다.
송신부(130)는 제어부(120)로부터 인가되는 데이터 패킷을 메모리 장치 M1에 송신한다. 그리고, 수신부(140)는 메모리 장치 M4로부터 데이터 패킷을 수신하여 제어부(120)에 전달한다.
도 3은 도 1의 각 메모리 장치 M1~M4에 대한 상세 구성도이다. 복수의 메모리 장치 M1~M4는 그 구성이 모두 동일하므로, 도 3의 실시예에서는 하나의 메모리 장치 M1에 관한 상세 구성을 일 예로 설명하기로 한다.
메모리 장치 M1는 데이터 패킷 제어부(200), 어드레스 해시부(210), 커맨드 및 어드레스 생성부(220), 버퍼부(230), 헤더 체크부(240), 저장부(250), 데이터 리드부(260), 수신부 R1 및 송신부 T1를 포함한다.
수신부 R1는 메모리 제어부(100)로부터 데이터 패킷 IDP을 수신하여 데이터 패킷 DP을 데이터 패킷 제어부(200)에 제공한다. 그리고, 데이터 패킷 제어부(200)는 수신부 R1로부터 인가되는 데이터 패킷 DP에 대응하여 메모리 장치 M1 내부의 동작을 제어한다.
즉, 데이터 패킷 제어부(200)는 수신부 R1로부터 데이터 패킷 DP을 수신하여 메모리 장치 M1 내부에 데이터 패킷 DP를 제공한다. 여기서, 데이터 패킷 DP은 데이터와 헤더 정보를 포함할 수 있다. 그리고, 데이터 패킷 제어부(200)는 헤더 체크부(250)로부터 인가되는 헤더 체크신호 HC에 대응하여 메모리 장치 M1의 큐(후술함) 정보를 설정하거나 변경한다. 또한, 데이터 패킷 제어부(200)는 후단의 메모리 장치 M2에 데이터 패킷을 송신하기 위한 데이터 패킷 전송신호 DT를 생성한다.
그리고, 어드레스 해시부(210)는 데이터 패킷 제어부(200)로부터 인가되는 데이터 패킷 DP에 대응하여 어드레스를 해시하고 해시 어드레스 HADD를 생성한다. 즉, 어드레스 해시부(210)는 데이터 패킷 DP에 포함된 헤더 정보를 해시하여 랜덤한 물리적 어드레스(Physical Address)를 생성할 수 있다. 어드레스 해시부(210)에 대한 동작은 후술하는 도 4에서 상세히 설명하기로 한다.
커맨드 및 어드레스 생성부(220)는 데이터 패킷 DP과 해시 어드레스 HADD에 대응하여 데이터를 저장하기 위한 커맨드 CMD 및 어드레스 ADD를 생성한다. 저장부(230)는 커맨드 CMD 및 어드레스 ADD에 대응하여 버퍼부(240)로부터 인가되는 데이터 BD를 저장한다. 버퍼부(240)는 데이터 패킷 DP을 버퍼링하여 데이터 BD를 저장부(230)에 제공한다.
헤더 체크부(250)는 데이터 패킷 DP과 데이터 리드부(260)에서 리드된 데이터 RD를 비교하여 헤더 정보를 체크하고 헤더 체크신호 HC를 데이터 패킷 제어부(200)에 출력한다. 그리고, 데이터 리드부(260)는 저장부(230)에 저장된 데이터 D를 리드하여 리드된 데이터 RD를 헤더 체크부(260)에 출력한다. 그리고, 데이터 리드부(260)는 리드된 데이터 RD를 송신부 T1에 제공할 수도 있다.
송신부 T1는 데이터 리드부(260)에서 리드된 데이터 RD를 입력받는다. 그리고, 송신부 T1는 데이터 패킷 제어부(200)로부터 인가되는 데이터 패킷 전송신호 DT에 대응하여 데이터 패킷 ODP을 다음 메모리 장치 M2에 송신한다.
프로세서 P1~P3로부터 물리적 어드레스를 입력받아 매핑 테이블을 통해 메모리 장치 M1~M4의 어드레스를 매핑하는 경우 각 메모리 장치 M1~M4에 액세스 하는 것이 어렵다. 프로세서 P1~P3로부터 멀리 배치된 메모리 장치에 지정된 데이터를 플러시(Flush)하거나 리드하는 과정에서 로딩이 증가하게 되고 이동 속도가 저하될 수 있다.
이에, 본 발명의 실시예에서는 데이터가 저장될 어드레스를 지정하지 않고 데이터와 어드레스를 패킷 형식으로 전달한다. 따라서, 본 발명의 실시예는 데이터 패킷 DP 정보에 따라 어드레스를 해시하여 각 메모리 장치 M1~M4에서 어드레스가 랜덤하게 지정될 수 있도록 한다. 그리고, 본 발명의 실시예는 메모리 제어부(100)와 물리적으로 가장 가까운 첫 번째 메모리 장치 M1에 요청된 데이터를 저장한다. 이에 따라, 본 발명의 실시예는 데이터의 액세스가 용이하고 데이터를 플러시 하거나 리드하는 과정에서 로딩을 줄이고 이동 속도를 증가시킬 있다.
이러한 구성을 갖는 메모리 장치 M1의 동작을 설명하면 다음과 같다.
먼저, 메모리 장치 M1의 데이터를 리드하기 위한 리드 동작시, 데이터 패킷 제어부(200)는 '리드 요청' 큐가 포함된 데이터 패킷 DP을 수신한다. 어드레스 해시부(210)는 데이터 패킷 DP에 포함된 헤더 정보를 토대로 하여 해시 어드레스 HADD를 생성한다.
이후에, 커맨드 및 어드레스 생성부(220)에 의해 생성된 커맨드 CMD 및 어드레스 ADD에 대응하여 저장부(230)에 저장된 데이터 D가 리드된다. 여기서, 어드레스 ADD는 해시 어드레스 HADD에 의해 랜덤하게 설정된 어드레스 레이어이다. 저장부(230)는 어드레스 ADD의 번호가 하나씩 증가함에 따라 랜덤한 어드레스에서 데이터 D가 리드될 수 있다. 데이터 리드부(260)는 데이터 D를 입력받아 리드된 데이터 RD를 헤더 체크부(250)에 제공한다.
이어서, 헤더 체크부(250)는 요청된 데이터 패킷 DP의 헤더 정보와 리드된 데이터 RD의 정보가 일치하는지의 여부를 나타내는 헤더 체크신호 HC를 생성한다. 데이터 패킷 제어부(200)는 헤더 체크신호 HC를 판단하여 요청된 데이터 패킷 DP의 헤더 정보와 리드된 데이터 RD의 정보가 일치한다면 '리드 데이터'로 큐를 변경한다.
다음에, 데이터 리드부(260)를 통해 리드된 데이터 RD가 송신부 T1에 전달된다. 그리고, 데이터 패킷 제어부(200)는 데이터 패킷 전송신호 DT를 활성화시킨다. 송신부 T1는 데이터 패킷 전송신호 DT가 활성화된 경우 데이터 패킷 ODP을 다음 메모리 장치 M2에 송신한다.
만약, 첫 번째 메모리 장치 M1에서 요청된 데이터를 리드한 경우 나머지 메모리 장치 M2~M4는 리드 동작을 수행하지 않고 바이패스 한다. 즉, 첫 번째 메모리 장치 M1는 위와 같은 리드 동작 과정을 통해 저장부(230)의 데이터 D를 리드한다. 그리고, 나머지 메모리 장치 M2~M4는 위와 같은 리드 동작 과정을 거치지 않고 데이터 패킷 제어부(200)가 바로 데이터 패킷 전송신호 DT를 활성화시킨다. 이에 따라, 나머지 메모리 장치 M2~M4는 수신부 R1를 통해 인가되는 데이터 패킷 DP을 송신부 T1를 통해 바로 바이패스하여 메모리 제어부(100)에 데이터 패킷 ODP을 전달할 수 있다.
한편, 메모리 장치 M1에 데이터를 라이트하기 위한 라이트 동작시, 데이터 패킷 제어부(200)는 '라이트 백' 큐가 포함된 데이터 패킷 DP을 수신한다. 데이터 패킷 제어부(200)는 수신된 데이터 패킷 DP을 버퍼부(240)에 저장한다. 그리고, 어드레스 해시부(210)는 데이터 패킷 DP에 포함된 헤더 정보를 토대로 하여 해시 어드레스 HADD를 생성한다.
이후에, 커맨드 및 어드레스 생성부(220)에 의해 생성된 커맨드 CMD 및 어드레스 ADD에 대응하여 저장부(230)에 저장된 데이터 D가 리드된다. 데이터 리드부(260)는 데이터 D를 입력받아 리드된 데이터 RD를 헤더 체크부(250)에 제공한다.
이어서, 헤더 체크부(250)는 리드된 데이터 RD의 헤더 정보를 체크하여 헤더 체크신호 HC를 데이터 패킷 제어부(200)에 전달한다. 데이터 패킷 제어부(200)는 헤더 체크신호 HC를 판단하여 데이터의 저장 가능 여부를 나타내는 유효 정보의 비트가 '0'인 상태(디스에이블 상태)인 경우 데이터 라이트 동작을 제어한다. 즉, 버퍼부(240)에 저장된 데이터가 저장부(230)에 저장된다.
여기서, 저장부(230)는 해시 어드레스 HADD에 의해 어드레스 ADD가 랜덤하게 설정되어 어드레스 ADD의 번호가 하나씩 증가함에 따라 랜덤한 어드레스 영역에 데이터 BD가 라이트될 수 있다.
도 4는 도 3의 어드레스 해시부(210)에 관한 동작을 설명하기 위한 도면이다.
어드레스 해시부(210)는 데이터 패킷 제어부(200)로부터 인가되는 데이터 패킷 DP에 대응하여 어드레스를 해시하고 해시 어드레스 HADD를 생성한다. 즉, 어드레스 해시부(210)는 어드레스 레이어 번호(Address Layer Number), 프로세스 ID(Process ID) 및 가상 어드레스(Virtual Address)를 포함하는 헤더 정보를 해시하여 랜덤한 물리적 어드레스(Physical Address)를 생성할 수 있다. 여기서, 프로세스 ID와 가상 어드레스는 프로세서 P1~P3에서 설정될 수 있다.
이러한 어드레스 해시부(210)는 어드레스 레이어 번호, 프로세스 ID 및 가상 어드레스를 논리조합하여 물리적 어드레스(Physical Address)를 랜덤하게 생성하는 논리조합부(211)를 포함할 수 있다. 예를 들어, 논리조합부(211)는 배타적논리합(Exclusive OR, XOR) 소자를 포함하여 어드레스 레이어 번호, 프로세스 ID 및 가상 어드레스의 각 비트를 배타적논리합으로 연산하여 랜덤한 물리적 어드레스를 생성한다. 이에 따라, 각 메모리 장치 M1~M4는 물리적으로 서로 다른 위치의 어드레스 영역에 데이터가 저장될 수 있다.
도 5는 도 1의 각 메모리 장치 M1~M4에 저장되는 데이터 저장 포맷의 실시예이다. 각 메모리 장치 M1~M4에 데이터가 저장되는 경우 도 5와 같은 데이터 포맷으로 데이터가 저장될 수 있다.
각 메모리 장치 M1~M4에 저장되는 데이터 포맷은 데이터와 헤더 정보를 포함한다. 여기서, 데이터는 각 메모리 장치 M1~M4에 저장되는 데이터를 의미한다. 그리고, 헤더 정보는 유효(Valid), 어드레스 레이어 번호, 프로세스 ID 및 가상 어드레스 필드 등을 포함할 수 있다.
유효 정보는 메모리 장치 M1~M4에 데이터를 저장할 수 있는지의 여부를 나타낸다. 메모리 장치 M1~M4에 데이터를 저장하기 위해서는 유효 정보의 비트를 판단하여 유효 정보가 유효 상태인 경우에만 데이터의 저장이 가능하다.
예를 들어, 유효 정보의 비트가 "0"인 경우 해당하는 메모리 장치에 데이터의 저장이 가능한 경우이다. 반면에, 유효 정보의 비트가 "1"인 경우 해당하는 메모리 장치에 이미 저장된 데이터가 있으므로 더 이상 데이터를 저장할 수 없다는 것을 의미할 수 있다.
그리고, 어드레스 레이어 번호는 메모리 장치 M1~M4에서 데이터가 저장될 타겟 어드레스의 번호를 나타낸다. 본 발명의 실시예는 어드레스 해시부(210)에 의해 데이터가 저장되는 어드레스 영역이 랜덤하게 지정된다. 이에 따라, 본 발명의 실시예는 각각의 메모리 장치 M1~M4에서 서로 다른 위치의 어드레스 영역에 데이터가 저장될 수 있다.
예를 들어, 메모리 장치 M1에서는 어드레스 레이어 번호가 '1'로 설정될 수 있고, 메모리 장치 M2에서는 어드레스 레이어 번호가 '2'로 설정될 수 있다. 또한, 메모리 장치 M3에서는 어드레스 레이어 번호가 '3'으로 설정될 수 있고, 메모리 장치 M4에서는 어드레스 레이어 번호가 '4'로 설정될 수 있다. 하지만, 이는 일 예에 해당할 뿐, 각 메모리 장치 M1~M4에서 데이터가 저장되는 위치는 랜덤하게 변경이 가능하다.
또한, 프로세스 ID는 복수의 프로세서 P1~P3 중 선택된 메모리 장치에 데이터 서비스를 요청한 프로세서의 고유 번호를 나타낸다. 또한, 가상 어드레스는 각 메모리 장치 M1~M4에서 데이터가 저장될 어드레스 위치를 랜덤하게 지정하기 위한 어드레스이다.
도 6은 도 1의 각 메모리 장치 M1~M4 간에 전달되는 데이터 스트림 포맷의 실시예이다. 각 메모리 장치 M1~M4 간에 데이터가 전달되는 경우 도 6과 같은 데이터 포맷으로 데이터가 전달될 수 있다.
각 메모리 장치 M1~M4 간에 전달되는 데이터 포맷은 데이터와 헤더 정보를 포함한다. 여기서, 헤더 정보는 큐(Que), 어드레스 레이어 번호, 프로세스 ID 및 가상 어드레스 필드 등을 포함할 수 있다.
큐 정보는 각 메모리 장치 M1~M4 간에 전달되는 데이터의 동작 정보를 나타낸다. 큐 정보는 '리드 요청(Read request)', '리드 데이터(Read data)', '라이트 백(Write back)' 정보 등을 포함할 수 있다. '리드 요청' 정보는 각 메모리 장치 M1~M4 간에 데이터의 리드를 요청하기 위한 정보이다. 그리고, '리드 데이터' 정보는 각 메모리 장치 M1~M4에 저장된 데이터를 리드하기 위한 정보이다. 또한, '라이트 백' 정보는 각 메모리 장치 M1~M4에 데이터를 저장하기 위한 정보이다.
본 발명의 실시예에서 메모리 제어부(100)는 '리드 요청' 정보와 '라이트 백' 정보를 메모리 장치 M1에 전달할 수 있다. 그리고, 메모리 제어부(100)는 메모리 장치 M4로부터 인가되는 '리드 데이터' 정보를 헤더 정보에 의해 설정된 프로세서에 전달할 수 있다. 또한, 메모리 장치 M4는 '리드 데이터' 정보를 '라이트 백' 정보로 메모리 장치 M1에 다시 전달할 수 있다.
도 7은 도 1의 각 메모리 장치 M1~M4에 요청되는 데이터 요청 포맷의 실시예이다. 각 메모리 장치 M1~M4에 '리드 요청' 정보가 전달되는 경우 도 7과 같은 데이터 포맷으로 헤더 정보가 전달될 수 있다.
'리드 요청' 동작시 각 메모리 장치 M1~M4에 서로 전달되는 데이터 포맷은 헤더 정보만 포함한다. 여기서, 헤더 정보는 큐(Que), 어드레스 레이어 번호, 프로세스 ID 및 가상 어드레스 필드 등을 포함할 수 있다.
도 8은 본 발명의 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 흐름도이다. 도 8의 흐름도에서는 '리드 요청', '리드 데이터'에 대한 동작 과정을 일 예로 설명하기로 한다.
메모리 제어부(100)는 프로세서 P1로부터 '리드 요청' 정보를 포함하는 데이터 패킷을 수신한다.(단계 S81) 그러면, 메모리 제어부(100)로부터 메모리 장치 M1로 전달되는 헤더 정보의 큐가 '리드 요청' 상태가 되고 어드레스 레이어 번호가 '1'로 세팅된다.(단계 S82) 그리고, 메모리 장치 M1에 '리드 요청'에 대한 큐를 요청한다.(단계 S83)
메모리 장치 M1는 입력되는 어드레스를 해시하고 저장된 어드레스를 리드한다.(단계 S84) 그리고, 메모리 장치 M1는 헤더 체크부(250)를 통해 리드 데이터를 체크한다. 즉, 헤더 체크부(250)는 헤더 정보가 '리드 요청' 정보와 매칭되는지의 여부를 판단한다.(단계 S85)
헤더 정보가 '리드 요청' 정보와 매칭되지 않고 유효한 데이터가 없는 경우 어드레스 레이어 번호를 하나 증가시킨다.(단계 S86)
여기서, 메모리 장치 M2, M3에도 유효한 데이터가 없는 경우 메모리 장치 M4까지 '리드 요청' 큐가 전달된다. 만약, 마지막 메모리 장치 M4에도 유효한 데이터가 없다면 다시 처음의 메모리 장치 M1에 '리드 요청' 큐가 전달된다.
그러면, 메모리 장치 M1는 처음에 해시된 어드레스와 다른 어드레스가 지정된다. 즉, 어드레스 해시부(210)는 도 4와 같은 방식으로 어드레스가 계속 랜덤하게 변경되므로 두 번째 '리드 요청' 큐가 전달되는 경우 새로운 어드레스가 지정된다. 메모리 장치 M1에서 해시되는 어드레스는 메모리 장치 M1 내에서 랜덤하게 변경될 수 있다.
반면에, 헤더 정보가 '리드 요청' 정보와 매칭되는 경우 메모리 장치 M1에 저장된 데이터를 리드하기 위해 큐 정보를 '리드 데이터' 상태로 변경한다. 그리고, 유효 데이터를 찾은 메모리 장치 M1의 헤더 정보에서 유효 정보의 비트를 '0'으로 변경한다.(단계 S87) 즉, 메모리 장치 M1에서 유효 데이터를 이미 리드했으므로, 라이트 동작시 다음에 입력되는 데이터가 저장될 수 있도록 유효 정보의 비트를 디스에이스블시킨다.
이후에, 다음 메모리 장치, 예를 들면, 메모리 장치 M2에 큐를 요청하여 데이터를 전달한다.(단계 S88) 마지막 메모리 장치 M4 까지 데이터가 전달되면 메모리 제어부(100)는 메모리 장치 M4의 데이터 패킷을 프로세서 P1에 전송한다.
도 9는 본 발명의 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 흐름도이다. 도 9의 흐름도에서는 '라이트 백'에 대한 동작 과정을 일 예로 설명하기로 한다.
메모리 제어부(100)는 프로세서 P1로부터 플러시(Flush) 요청 정보를 포함하는 데이터 패킷을 수신한다.(단계 S91) 플러시 요청 정보는 메모리 장치 M1에 이미 저장된 데이터를 플러싱하여 다음 메모리 장치 M2에 밀어내고 프로세서 P1로부터 요청되는 새로운 데이터를 메모리 장치 M1에 저장하기 위한 정보이다.
그러면, 메모리 제어부(100)로부터 메모리 장치 M1로 전달되는 헤더 정보의 큐가 '라이트 백' 상태가 되고 어드레스 레이어 번호가 '1'로 세팅된다.(단계 S92) 그리고, 메모리 장치 M1에 데이터를 저장하기 위해 '라이트 백'에 대한 큐를 요청한다.(단계 S93)
메모리 장치 M1는 입력되는 어드레스를 해시하고 저장된 어드레스를 리드한다.(단계 S94) 그리고, 메모리 장치 M1는 헤더 체크부(250)를 통해 리드 데이터를 체크한다. 즉, 헤더 체크부(250)는 헤더 정보의 유효 필드를 체크하여 유효 정보의 비트가 '1'인 상태(인에이블 상태)인지 '0'인 상태(디스에이블 상태)인지의 여부를 판단한다.(단계 S95)
만약, 유효 정보의 비트가 디스에이블 상태인 경우 해당 어드레스에 요청된 데이터 패킷을 저장하고 유효 비트를 '1'인 상태(인에이블 상태)로 세팅한다.(단계 S96) 반면에, 헤더 정보에 유효한 다른 어드레스 레이어 번호가 존재하는 경우 해당 어드레스에 대해 유효한 데이터 패킷을 리드한다. 그리고, 어드레스 레이어 번호를 하나 증가시켜 '라이트 백' 큐를 세팅하고 해당하는 어드레스 영역에 요청된 데이터를 저장한다.(단계 S97)
즉, 본 발명의 실시예는 '라이트 백' 동작시 메모리 제어부(100)와 가장 인접한 첫 번째 메모리 장치 M1에 요청된 데이터를 저장한다. 메모리 제어부(100)와 가장 인접한 메모리 장치 M1에 데이터를 저장하면 추후 데이터를 리드하는 경우 액세스가 용이하다.
그리고, 본 발명의 실시예는 헤더 정보의 유효 필드를 체크하여 메모리 장치 M1에 이미 저장된 데이터가 있는 지의 여부를 판단한다. 메모리 장치 M1에 유효한 데이터가 없으면 메모리 장치 M1에 바로 요청된 데이터를 저장한다. 반면에, 메모리 장치 M1에 유효한 데이터가 있는 경우 메모리 장치 M1에 저장된 데이터를 다음 메모리 장치 M2로 전송하고 메모리 장치 M1에 요청된 데이터를 저장한다. 만약, 메모리 장치 M2에도 유효한 데이터가 이미 있는 경우 메모리 장치 M3, M4에 순차적으로 데이터가 전달되어 저장될 수 있다.
도 10은 본 발명의 실시예에 따른 메모리 시스템 큐 변화를 설명하기 위한 도면이다. 도 10은 프로세서 P1~P3의 요청에 따른 헤더 정보의 큐 변화 과정을 나타낸다.
예를 들어, 메모리 제어부(100)는 프로세서 P1~P3 중 프로세서 P1로부터 명령을 수신한다.(단계 S101) 프로세서 P1는 프로세스 ID, 가상 어드레스를 지정하여 메모리 제어부(100)에 정보를 요청할 수 있다.
메모리 제어부(100)는 프로세서 P1로부터 명령이 수신되는 경우 메모리 장치 M1에 데이터 패킷을 전달한다. 메모리 장치 M1에 전달된 데이터 패킷에는 데이터와 헤더 정보가 포함된다. 헤더 정보에 포함된 큐 필드는 프로세서 P1의 요청에 따라 데이터 비트 값이 변화될 수 있다.
즉, 프로세서 P1로부터 리드 이벤트가 수신되는 경우 헤더 정보의 큐 필드는 '리드 요청'으로 설정된다.(단계 S102) 그러면, 메모리 제어부(100)는 메모리 장치 M1에 데이터의 리드를 요청한다. 큐 정보가 '리드 데이터'로 변경되는 경우 메모리 장치 M1에서 데이터를 리드하여 프로세서 P1로 전송할 수 있다.(단계 S103)
또한, 프로세서 P1로부터 라이트 백 이벤트가 수신되는 경우 헤더 정보의 큐 필드는 '라이트 백'으로 설정된다.(단계 S104) 그러면, 메모리 장치 M1는 데이터의 저장이 가능한지 체크하기 위해 헤더 정보의 유효 정보를 판단한다.(단계 S105) 만약, 헤더 정보의 유효 정보를 판단하여 유효 데이터가 이미 저장된 상태에서 요청된 데이터의 저장이 불가한 경우 다음 메모리 장치(예를 들면, 메모리 장치 M2)에 대해 새로운 '라이트 백' 큐를 생성한다.(단계 S106)
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 데이터와 헤더 정보를 포함하는 데이터 패킷을 서로 간에 직접적으로 전달하는 복수의 메모리 장치; 및
    상기 복수의 메모리 장치 중 소스 메모리 장치에 상기 데이터 패킷을 송신하고, 상기 복수의 메모리 장치 중 마지막 메모리 장치로부터 상기 데이터 패킷을 수신하는 메모리 제어부를 포함하고,
    상기 복수의 메모리 장치 각각은
    상기 헤더 정보를 해시하여 서로 다른 위치의 어드레스 영역에 상기 데이터를 액세스하고,
    상기 데이터 패킷에 대응하여 어드레스를 해시하고 해시 어드레스를 생성하는 어드레스 해시부를 포함하는 메모리 시스템.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1항에 있어서, 상기 메모리 제어부는
    프로세서들과 채널을 통해 연결되어 상기 채널을 통해 상기 데이터 패킷을 송수신하는 메모리 시스템.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1항에 있어서, 상기 메모리 제어부는
    프로세서들과 인터페이싱을 수행하는 인터페이스;
    상기 소스 메모리 장치와 상기 마지막 메모리 장치의 액세스 동작을 중재하는 제어부;
    상기 제어부로부터 인가되는 상기 데이터 패킷을 상기 소스 메모리 장치에 송신하는 송신부; 및
    상기 마지막 메모리 장치로부터 인가되는 상기 데이터 패킷을 수신하여 상기 제어부에 전달하는 수신부를 포함하는 메모리 시스템.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제 3항에 있어서, 상기 제어부는
    상기 마지막 메모리 장치로부터 인가되는 상기 데이터 패킷을 상기 송신부에 전달하거나 상기 인터페이스에 전달하는 메모리 시스템.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1항에 있어서, 상기 복수의 메모리 장치 각각은
    헤더 체크신호에 대응하여 큐 정보를 설정하거나 변경하는 데이터 패킷 제어부;
    상기 데이터 패킷과 상기 해시 어드레스에 대응하여 커맨드 및 어드레스를 생성하는 커맨드 및 어드레스 생성부;
    상기 커맨드 및 상기 어드레스에 대응하여 상기 데이터 패킷을 저장하는 저장부; 및
    상기 데이터 패킷과 상기 저장부에서 리드된 데이터를 비교하여 헤더 정보를 체크하고 상기 헤더 체크신호를 생성하는 헤더 체크부를 포함하는 메모리 시스템.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제 5항에 있어서, 상기 데이터 패킷 제어부는
    상기 헤더 정보에 포함된 리드 요청 큐에 대응하여 상기 헤더 정보를 체크하고 상기 헤더 정보가 일치하는 경우 리드 데이터로 큐를 변경하는 메모리 시스템.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제 5항에 있어서, 상기 데이터 패킷 제어부는
    상기 헤더 정보에 포함된 유효 정보를 판단하고, 상기 유효 정보가 디스에이블 상태인 경우 라이트 백 큐에 대응하여 상기 데이터 패킷을 저장하는 메모리 시스템.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제 7항에 있어서, 상기 데이터 패킷 제어부는
    상기 유효 정보가 인에이블 상태인 경우 어드레스 레이어 번호를 증가시켜 유효한 데이터 패킷을 리드하고 라이트 백 큐를 설정하는 메모리 시스템.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제 5항에 있어서, 상기 어드레스 해시부는
    상기 데이터 패킷에 포함된 헤더 정보를 해시하여 랜덤한 물리적 어드레스를 생성하는 메모리 시스템.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제 5항에 있어서, 상기 어드레스 해시부는
    상기 헤더 정보에 포함된 어드레스 레이어 번호, 프로세스 ID 및 가상 어드레스를 해시하여 랜덤한 물리적 어드레스를 생성하는 메모리 시스템.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제 5항에 있어서, 상기 어드레스 해시부는
    상기 헤더 정보에 포함된 어드레스 레이어 번호, 프로세스 ID 및 가상 어드레스를 논리조합하여 랜덤한 물리적 어드레스를 생성하는 논리조합부를 포함하는 메모리 시스템.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제 5항에 있어서, 상기 복수의 메모리 장치 각각은
    상기 메모리 제어부로부터 상기 데이터 패킷을 수신하는 수신부; 및
    상기 데이터 패킷 제어부로부터 인가되는 데이터 패킷 전송신호에 대응하여 상기 데이터 패킷을 송신하는 송신부를 더 포함하는 메모리 시스템.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제 12항에 있어서, 상기 복수의 메모리 장치 각각은
    상기 수신부를 통해 인가된 상기 데이터 패킷을 상기 송신부를 통해 바이패스 하는 메모리 시스템.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제 5항에 있어서, 상기 복수의 메모리 장치 각각은
    상기 데이터 패킷을 버퍼링하여 데이터를 상기 저장부에 제공하는 버퍼부를 더 포함하는 메모리 시스템.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제 5항에 있어서, 상기 복수의 메모리 장치 각각은
    상기 저장부에 저장된 데이터를 리드하여 상기 리드된 데이터를 상기 헤더 체크부에 제공하는 데이터 리드부를 더 포함하는 메모리 시스템.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1항에 있어서,
    상기 복수의 메모리 장치에 저장되는 상기 헤더 정보는
    유효, 어드레스 레이어 번호, 프로세스 ID 및 가상 어드레스 중 어느 하나 이상의 필드를 포함하는 메모리 시스템.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1항에 있어서,
    상기 복수의 메모리 장치 간에 전달되는 상기 헤더 정보는
    큐, 어드레스 레이어 번호, 프로세스 ID 및 가상 어드레스 중 어느 하나 이상의 필드를 포함하는 메모리 시스템.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제 17항에 있어서, 상기 큐는
    리드 요청, 리드 데이터 및 라이트 백 정보 중 어느 하나의 정보로 설정되는 메모리 시스템.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1항에 있어서,
    상기 메모리 제어부로부터 플러시 요청이 인가되는 경우 상기 소스 메모리 장치에 이미 저장된 데이터를 플러싱하여 다음 메모리 장치에 전달하고 라이트 백 큐에 대응하여 요청된 데이터를 상기 소스 메모리 장치에 저장하는 메모리 시스템.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1항에 있어서,
    복수의 메모리 장치 중 상기 메모리 제어부와 물리적으로 인접한 상기 소스 메모리 장치에 요청된 데이터가 저장되는 메모리 시스템.
KR1020180144289A 2018-07-23 2018-11-21 메모리 시스템 KR102516584B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020180144289A KR102516584B1 (ko) 2018-11-21 2018-11-21 메모리 시스템
US16/282,166 US11055239B2 (en) 2018-11-21 2019-02-21 Memory system
CN201910183500.6A CN111209221B (zh) 2018-11-21 2019-03-12 存储系统
TW108109648A TW202020678A (zh) 2018-11-21 2019-03-20 記憶體系統
JP2019057683A JP2020087408A (ja) 2018-11-21 2019-03-26 メモリーシステム
US16/858,414 US11288012B2 (en) 2018-07-23 2020-04-24 Memory system
US17/134,117 US11487473B2 (en) 2018-07-23 2020-12-24 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180144289A KR102516584B1 (ko) 2018-11-21 2018-11-21 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20200059494A KR20200059494A (ko) 2020-05-29
KR102516584B1 true KR102516584B1 (ko) 2023-04-03

Family

ID=70727198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180144289A KR102516584B1 (ko) 2018-07-23 2018-11-21 메모리 시스템

Country Status (5)

Country Link
US (1) US11055239B2 (ko)
JP (1) JP2020087408A (ko)
KR (1) KR102516584B1 (ko)
CN (1) CN111209221B (ko)
TW (1) TW202020678A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11456970B1 (en) 2019-05-13 2022-09-27 Barefoot Networks, Inc. Augmenting data plane functionality with field programmable integrated circuits

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04363746A (ja) * 1990-07-06 1992-12-16 Nec Corp Dma機能を有するマイクロコンピュータシステム
US5923654A (en) * 1996-04-25 1999-07-13 Compaq Computer Corp. Network switch that includes a plurality of shared packet buffers
US7899052B1 (en) 1999-01-27 2011-03-01 Broadcom Corporation Memory structure for resolving addresses in a packet-based network switch
US7243184B1 (en) * 2002-06-14 2007-07-10 Juniper Networks, Inc. Maintaining packet order using hash-based linked-list queues
CN100486226C (zh) * 2005-02-18 2009-05-06 美国博通公司 一种网络设备以及在该网络设备中处理数据的方法
US7904639B2 (en) * 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
CN101622595A (zh) * 2006-12-06 2010-01-06 弗森多系统公司(dba弗森-艾奥) 用于服务器内的存储区域网络的装置、系统和方法
US8429143B2 (en) 2008-04-25 2013-04-23 International Business Machines Corporation Methods and systems for improving hash table performance
US20110258366A1 (en) * 2010-04-19 2011-10-20 Mosaid Technologies Incorporated Status indication in a system having a plurality of memory devices
CN102811158A (zh) * 2011-06-02 2012-12-05 中兴通讯股份有限公司 一种数据定位、重组方法及相应装置
US9134919B2 (en) * 2012-03-29 2015-09-15 Samsung Electronics Co., Ltd. Memory device including priority information and method of operating the same
US9473373B2 (en) * 2012-04-04 2016-10-18 Viavi Solutions, Inc. Method and system for storing packet flows
US20140115579A1 (en) 2012-10-19 2014-04-24 Jonathan Kong Datacenter storage system
US9495246B2 (en) 2013-01-21 2016-11-15 Kaminario Technologies Ltd. Raid erasure code applied to partitioned stripe
US9798628B2 (en) 2014-04-25 2017-10-24 Rambus Inc. Memory mirroring
KR102249416B1 (ko) * 2014-06-11 2021-05-07 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 구동 방법
CN106688208B (zh) 2014-09-25 2020-06-30 英特尔公司 利用机架规模架构中的池化存储器进行的网络通信
US20160283303A1 (en) 2015-03-27 2016-09-29 Intel Corporation Reliability, availability, and serviceability in multi-node systems with disaggregated memory
US9665415B2 (en) 2015-09-26 2017-05-30 Intel Corporation Low-latency internode communication
KR102513903B1 (ko) * 2015-12-03 2023-03-28 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
US9952925B2 (en) 2016-01-06 2018-04-24 Micron Technology, Inc. Error code calculation on sensing circuitry
US9983821B2 (en) 2016-03-29 2018-05-29 Samsung Electronics Co., Ltd. Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
US10083722B2 (en) 2016-06-08 2018-09-25 Samsung Electronics Co., Ltd. Memory device for performing internal process and operating method thereof
US10275272B2 (en) 2016-06-20 2019-04-30 Vmware, Inc. Virtual machine recovery in shared memory architecture
US9996440B2 (en) 2016-06-20 2018-06-12 Vmware, Inc. Fault tolerance using shared memory architecture
KR20180087925A (ko) * 2017-01-25 2018-08-03 삼성전자주식회사 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치
KR20180102268A (ko) * 2017-03-07 2018-09-17 에스케이하이닉스 주식회사 메모리 모듈 및 이를 포함하는 메모리 시스템
CN110737398B (zh) 2018-07-20 2023-09-01 伊姆西Ip控股有限责任公司 协调访问操作的方法、设备和计算机程序产品

Also Published As

Publication number Publication date
KR20200059494A (ko) 2020-05-29
TW202020678A (zh) 2020-06-01
JP2020087408A (ja) 2020-06-04
US11055239B2 (en) 2021-07-06
CN111209221B (zh) 2023-08-15
US20200159678A1 (en) 2020-05-21
CN111209221A (zh) 2020-05-29

Similar Documents

Publication Publication Date Title
USRE49151E1 (en) Memory system and electronic device
US20210349642A1 (en) Channel Optimized Storage Modules
US20170344259A1 (en) Computer product, method, and system to dynamically manage storage devices accessed remotely over a network
JP2008102706A5 (ja) メモリ制御回路とメモリ制御方法、及び集積回路と当該メモリ制御回路におけるodt制御方法
US9507639B2 (en) Parallel computation with multiple storage devices
CN101923447A (zh) 用于分层存储器体系结构的存储器装置
US10235300B2 (en) Memory system including memory device and operation method thereof
US20170269875A1 (en) Memory system and operating method thereof
US10078614B2 (en) Systems and methods of data transfer
CN108572798B (zh) 针对快速数据传输执行监听操作的存储装置及其方法
KR20160031099A (ko) 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 가비지 컬렉션 방법
US20180335943A1 (en) Memory system and operating method thereof
KR20150081635A (ko) 불휘발성 반도체 메모리를 포함하는 저장 장치 및 그것의 관리 방법
US10585822B2 (en) Operation method of host system including storage device and operation method of storage device controller
KR20200078592A (ko) 메모리 블록 복구 방법 및 디바이스
US11288012B2 (en) Memory system
KR102219759B1 (ko) 저장 장치, 그것을 포함하는 데이터 저장 시스템 및 그것의 동작 방법
JP2016181112A (ja) メモリデバイス、半導体装置および情報処理装置
KR102516584B1 (ko) 메모리 시스템
TW201738764A (zh) 非揮發性記憶體模組以及操作儲存裝置的方法
US20150160863A1 (en) Unified memory type aware storage module
US20190138473A1 (en) Semiconductor devices including command priority policy management and related systems
CN113721838B (zh) 用于存储设备的写、读数据方法、存储控制器以及dma引擎
CN102567219A (zh) 固态硬盘sata接口的数据传输方法
US10515007B2 (en) Technologies for remapping pending bit array read requests

Legal Events

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