KR20190056626A - 통합 메모리 디바이스 및 그의 동작 방법 - Google Patents
통합 메모리 디바이스 및 그의 동작 방법 Download PDFInfo
- Publication number
- KR20190056626A KR20190056626A KR1020170153774A KR20170153774A KR20190056626A KR 20190056626 A KR20190056626 A KR 20190056626A KR 1020170153774 A KR1020170153774 A KR 1020170153774A KR 20170153774 A KR20170153774 A KR 20170153774A KR 20190056626 A KR20190056626 A KR 20190056626A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- temperature
- request
- characteristic
- environment
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명의 실시 예들은 동일한 종류 또는 서로 다른 종류의 다수의 메모리들을 포함하는 통합 메모리 디바이스가 다양한 성능이나 특성을 제공할 수 있도록 하는 방안을 제안한다. 본 발명의 일 실시 예에 따르면, 통합 메모리 디바이스는: 제1 온도의 환경에 있는 제1 메모리; 상기 제1 온도보다 낮은 제2 온도의 환경에 있는 제2 메모리; 및 요청에 응답하여 상기 제1 메모리 또는 상기 제2 메모리를 선택적으로 액세스하는 컨트롤러를 포함할 수 있다.
Description
본 발명은 통합 메모리 디바이스 및 그의 동작 방법에 관한 것이다.
데이터는 4차 산업혁명 시대 기업들의 비즈니스에 가장 중요한 자산이 되고 있으며, 이에 대규모 데이터를 빠르게 전송 및 분석하도록 지원하는 최신 기술에 대한 수요가 점차 증가하고 있다. 예를 들어, 인공지능, 자율주행, 로봇, 헬스케어, 가상현실(virtual reality, VR)/증강현실(augmented reality, AR), 스마트홈 등이 확대됨에 따라 서버나 데이터 센터에 대한 수요의 증가가 예상되고 있다.
레거시(legacy) 데이터 센터는 자원들(예; 컴퓨팅, 네트워킹, 스토리지)을 하나의 장비 내에 포함시키는 구조였다. 그러나 미래의 대용량 데이터 센터는 자원들을 각각 별개로 구성하고, 논리적으로 자원들을 재구성하는 구조를 가질 수 있다. 예를 들어, 대용량 데이터 센터는 자원들을 각각 랙(rack) 수준에서 모듈화하고, 용도에 따라 자원들을 재구성하여 공급할 수 있는 구조를 가질 수 있다. 따라서 미래의 대용량 데이터 센터에 사용하기 적합한 통합형 스토리지 또는 메모리 디바이스가 요구되고 있다.
본 발명의 실시 예들은 다수의 메모리들을 포함하는 서버 시스템 또는 데이터 처리 시스템에서 다양한 성능이나 특성을 지원할 수 있는 통합 메모리 디바이스 및 그의 동작 방법을 제공한다.
본 발명의 일 실시 예에 따르면, 통합 메모리 디바이스는: 제1 온도의 환경에 있는 제1 메모리; 상기 제1 온도보다 낮은 제2 온도의 환경에 있는 제2 메모리; 및 요청에 응답하여 상기 제1 메모리 또는 상기 제2 메모리를 선택적으로 액세스하는 컨트롤러를 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 통합 메모리 디바이스는: 제1 온도의 환경에 있는 제1 메모리; 상기 제1 온도보다 낮은 제2 온도의 환경에 있는 제2 메모리; 상기 제2 온도보다 낮은 제3 온도의 환경에 있는 제3 메모리; 및 요청에 응답하여 상기 제1 메모리, 상기 제2 메모리 및 상기 제3 메모리 중의 하나를 선택적으로 액세스하는 컨트롤러를 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 제1 온도의 환경에 있는 제1 메모리 및 상기 제1 온도보다 낮은 제2 온도의 환경에 있는 제2 메모리를 포함하는 통합 메모리 디바이스의 동작 방법은: 요청을 수신하는 과정; 및 상기 요청에 응답하여 상기 제1 메모리 또는 상기 제2 메모리를 선택적으로 액세스하는 과정을 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 제1 온도의 환경에 있는 제1 메모리; 상기 제1 온도보다 낮은 제2 온도의 환경에 있는 제2 메모리; 및 상기 제2 온도보다 낮은 제3 온도의 환경에 있는 제3 메모리를 포함하는 통합 메모리 디바이스의 동작 방법은: 요청을 수신하는 과정; 및 상기 요청에 응답하여 상기 제1 메모리, 상기 제2 메모리 및 상기 제3 메모리 중의 하나를 선택적으로 액세스하는 과정을 포함할 수 있다.
본 출원의 실시 예들은 다수의 메모리들을 포함하는 통합 메모리 디바이스가 다양한 성능이나 특성을 제공할 수 있도록 하는 방안을 제안한다. 본 출원의 실시 예들은 저온 또는 극저온(cryogenic)과 같이 온도가 낮은 환경에서 동작하는 경우, 휘발성 메모리(예; DRAM)가 비휘발성 메모리와 가까운 특성을 가진다는 점을 고려하여, 이러한 휘발성 메모리를 긴급 처리가 필요한 요청을 위해 사용하거나, 다른 보통의 휘발성 메모리를 위한 캐시로서 사용하는 방안을 제안함으로써, 다양한 성능이나 특성을 제공할 수 있다.
도 1은 데이터 처리 시스템을 도시하는 도면이다.
도 2 및 도 3은 본 출원의 실시 예에 따른 컴퓨팅 디바이스의 구성을 도시하는 도면들이다.
도 4는 본 출원의 실시 예에 따른 컴퓨터 블레이드의 구성을 도시하는 도면이다.
도 5a 및 도 5b는 본 출원의 실시 예에 따른 메모리 블레이드의 구성을 도시하는 도면들이다.
도 6a 및 도 6b는 본 출원의 실시 예에 따른 메모리 디바이스의 구성을 도시하는 도면들이다.
도 7a 내지 도 7c는 본 출원의 실시 예에 따른 메모리들의 실장 예를 도시하는 도면들이다.
도 8은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 구성을 도시하는 도면이다.
도 9는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다.
도 10은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 구성을 도시하는 도면이다.
도 11은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다.
도 12는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 구성을 도시하는 도면이다.
도 13은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다.
도 14a는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 구성을 도시하는 도면이다.
도 14b는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 도면이다.
도 15는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다.
도 2 및 도 3은 본 출원의 실시 예에 따른 컴퓨팅 디바이스의 구성을 도시하는 도면들이다.
도 4는 본 출원의 실시 예에 따른 컴퓨터 블레이드의 구성을 도시하는 도면이다.
도 5a 및 도 5b는 본 출원의 실시 예에 따른 메모리 블레이드의 구성을 도시하는 도면들이다.
도 6a 및 도 6b는 본 출원의 실시 예에 따른 메모리 디바이스의 구성을 도시하는 도면들이다.
도 7a 내지 도 7c는 본 출원의 실시 예에 따른 메모리들의 실장 예를 도시하는 도면들이다.
도 8은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 구성을 도시하는 도면이다.
도 9는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다.
도 10은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 구성을 도시하는 도면이다.
도 11은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다.
도 12는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 구성을 도시하는 도면이다.
도 13은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다.
도 14a는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 구성을 도시하는 도면이다.
도 14b는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 도면이다.
도 15는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.
도 1은 데이터 처리 시스템 10을 도시하는 도면이다. 도 1을 참조하면, 데이터 처리 시스템 10은 다수의 컴퓨팅 랙들(computing racks) 20과 관리 인터페이스(management interface) 30, 그리고 이들 사이의 통신이 가능하도록 하는 네트워크(network) 40을 포함할 수 있다. 이러한 랙스케일 구조(rack-scale architecture)를 가지는 데이터 처리 시스템 10은 대용량 데이터 처리를 위한 데이터 센터 등에 사용될 수 있다.
다수의 컴퓨팅 랙들 20 각각은 단독으로 하나의 컴퓨팅 디바이스(computing device)를 구현할 수 있다. 이를 대신하여, 다수의 컴퓨팅 랙들 20 각각은 다른 컴퓨팅 랙들과의 조합으로 하나의 컴퓨팅 디바이스를 구현할 수 있다. 이러한 컴퓨터 랙들 20의 구체적인 구성 및 동작에 대한 설명은 후술될 것이다.
관리 인터페이스 30은 사용자가 데이터 처리 시스템 10을 조정, 운영 또는 관리할 수 있도록 하는 인터액티브 인터페이스(interactive interface)를 제공할 수 있다. 관리 인터페이스 104는 컴퓨터, 멀티프로세서 시스템, 서버, 랙마운트(rack-mount) 서버, 블레이드(blade) 서버, 랩탑(lap-top) 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 웨어러블 컴퓨팅 디바이스, 네트워크 기기, 웹 기기, 분산 컴퓨팅 시스템, 프로세서 기반 시스템, 및/또는 소비자 전자 기기를 포함하는, 임의 유형의 연산 디바이스로서 구현될 수 있다.
일부 실시 예들에서, 관리 인터페이스 30은 컴퓨팅 랙들 102에 의해 수행될 수 있는 연산 기능들이나, 관리 인터페이스 30에 의해 수행될 수 있는 사용자 인터페이스 기능들을 가지는 분산 시스템에 의해 구현되어질 수 있다. 다른 일부 실시 예들에서, 관리 인터페이스 30은 네트워크 40을 통하여 분산된 다중 컴퓨팅 디바이스들에 의해 구성되고 클라우드(cloud)로서 동작하는 가상 서버(virtual server)에 의해 구현될 수 있다. 관리 인터페이스 30은 프로세서, 입력/출력 서브시스템, 메모리, 데이터 스토리지 디바이스 및 통신 회로를 포함할 수 있다.
네트워크 40은 컴퓨팅 랙들 20과 관리 인터페이스 30 사이 및/또는 컴퓨팅 랙들 20 사이에서의 데이터를 송수신할 수 있다. 네트워크 40은 적절한 수의 다양한 유선 및/또는 유선 네트워크들에 의해 구현될 수 있다. 예를 들어, 네트워크 40은 유선 또는 무선 LAN(local area network), WAN(wide area network) 셀룰라 네트워크, 및/또는 인터넷과 같이 공개적으로 억세스가능한 글로벌 네트워크(publicly-accessible, global network)에 의해 구현되거나 이를 포함할 수 있다. 추가적으로, 네트워크 40은 보조적인 컴퓨터들, 라우터(router)들 및 스위치들과 같은 적절한 수의 보조적인 네트워크 디바이스들을 포함할 수 있다.
도 2는 본 출원의 실시 예에 따른 랙 구조를 가지는 컴퓨팅 디바이스를 도시하는 도면이다.
도 2를 참조하면, 컴퓨팅 랙 20은 구성요소들의 구조, 형태 및 호칭 등에 제한되는 것은 아니지만, 다양한 형태의 구성요소들을 포함할 수 있다. 예를 들어, 컴퓨팅 랙 20은 다수의 드로워(drawer)들 21-29를 포함할 수 있다. 다수의 드로워들 21-29 각각은 다수의 모듈(module)들을 포함할 수 있다. 다수의 모듈들 각각은 다수의 블레이드(blade)들을 포함할 수 있다.
다양한 실시 예들에 있어서, 컴퓨팅 랙 20은 적절한 수의 연산 블레이드(compute blade), 메모리 블레이드(memory blade) 및/또는 상호접속 블레이드(interconnect blade)의 조합에 의해 구현될 수 있다. 여기서는 컴퓨팅 랙 20이 다수의 블레이드들의 조합에 의해 구현되는 것으로 정의되고 있지만, 이를 대신하여, 드로워들, 모듈들, 트레이들, 보드들, 샷시들 또는 유닛들 등의 다양한 이름으로 구현되는 것으로 정의될 수 있음에 유의하여야 한다. 이러한 컴퓨팅 랙 20의 구성요소들은 구현의 편의상 기능별로 분류 및 구별되는 구조를 가질 수 있다. 제한되는 것은 아니지만, 컴퓨팅 랙 20은 상단부터 상호접속 블레이드, 연산 블레이드, 메모리 블레이드의 순서로 분류된 구조를 가질 수 있다. 이러한 컴퓨팅 랙 20 및 이에 의해 구현되는 컴퓨팅 디바이스는 "랙스케일 시스템(rack-scale system)" 또는"분류 시스템(disaggregated system)"으로 명명될 수 있다.
다양한 실시 예들에 있어서, 컴퓨팅 디바이스는 하나의 컴퓨팅 랙 20에 의해 구현될 수 있다. 이를 대신하여, 컴퓨팅 디바이스는 2개 이상의 컴퓨팅 랙들에 포함되는 모든 구성요소들에 의해 구현되거나, 2개 이상의 컴퓨팅 랙들에 포함되는 일부 구성요소들의 조합에 의해 구현되거나, 하나의 컴퓨팅 랙들에 포함되는 일부 구성요소들에 의해 구현될 수 있다.
다양한 실시 예들에 있어서, 컴퓨팅 디바이스는 컴퓨팅 랙 20에 포함되는 적절한 수의 연산 블레이드, 메모리 블레이드 및 상호접속 블레이드(interconnect blade)의 조합에 의해 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스 20A는 2개의 연산 블레이드들, 3개의 메모리 블레이드들 및 1개의 상호접속 블레이드에 의해 구현될 수 있다. 다른 예로, 컴퓨팅 디바이스 20B는 3개의 연산 블레이드들, 2개의 메모리 블레이드들 및 1개의 상호접속 블레이드에 의해 구현될 수 있다. 또 다른 예로, 컴퓨팅 디바이스 20C는 1개의 연산 블레이드들, 4개의 메모리 블레이드들 및 1개의 상호접속 블레이드에 의해 구현될 수 있다.
비록 도 2에서는 컴퓨팅 랙 20이 적절한 수의 연산 블레이드, 메모리 블레이드 및/또는 상호접속 블레이드의 조합에 의해 구현되는 경우를 도시하고 있지만, 컴퓨팅 랙 20은 통상의 서버 등에서 확인될 수 있는, 파워 시스템, 냉각 시스템, 입력/출력 디바이스들과 같은 추가적인 구성요소들을 포함할 수 있다.
도 3은 본 출원의 실시 예에 따른 컴퓨팅 디바이스 100의 블록 구성을 도시하는 도면이다.
도 3을 참조하면, 컴퓨팅 디바이스 100은 다수의 연산 블레이드들(compute blades) 200, 다수의 메모리 블레이드들(memory blades) 400 및 상호접속 블레이드(interconnect blade) 300을 포함할 수 있다. 다수의 연산 블레이드들 200은 풀드 연산 블레이드(pooled compute blades), 풀드 연산 시스템 등으로 불리울 수 있다. 유사하게, 다수의 메모리 블레이드들은 풀드 메모리 블레이드(pooled memory blade), 풀드 메모리 시스템 등으로 불리울 수 있다. 여기서는 컴퓨팅 디바이스 100이 다수의 블레이드들의 조합에 의해 구현되는 것으로 정의되고 있지만, 이를 대신하여 드로워들, 모듈들, 트레이들, 보드들, 샷시들 또는 유닛들 등의 다양한 이름으로 구현되는 것으로 정의될 수 있음에 유의하여야 한다.
다수의 연산 블레이드들 200 각각은 하나 또는 그 이상의 프로세서, 프로세싱/컨트롤 회로, 또는 중앙처리장치(central processing unit, CPU)와 같은 프로세싱 요소를 포함할 수 있다.
다수의 메모리 블레이드들 400 각각은 다수의 휘발성 메모리(volatile memory)들 및/또는 비휘발성 메모리(nonvolatile memory)들과 같은 다양한 형태의 메모리들을 포함할 수 있다. 예를 들어, 다수의 메모리 블레이드들 400 다수의 DRAM(Dynamic Random Access Memory)들, 플래시 메모리(flash memory)들, 메모리 카드들, 하드 디스크 드라이브(hard disk drive, HDD)들, 솔리드 스테이트 드라이브(solid state drive, SSD)들, 및/또는 이들의 조합들을 포함할 수 있다.
다수의 메모리 블레이드들 400 각각은 연산 블레이드들 200 각각에 포함되는 하나 이상의 프로세싱 요소에 의해 분할되거나, 할당되거나, 또는 지정되어 사용될 수 있다. 또한 다수의 메모리 블레이드들 400 각각은 연산 블레이드들 200에 의해 초기화 및/또는 수행될 수 있는 하나 이상의 오퍼레이팅 시스템(operating system, OS)들을 저장할 수 있다.
상호접속 블레이드 300은 연산 블레이드들 200 각각에 포함되는 하나 이상의 프로세싱 요소에 의해 분할, 할당 또는 지정되어 사용될 수 있는, 임의의 통신 회로, 디바이스, 또는 이들의 결합에 의해 구현될 수 있다. 예를 들어, 상호접속 블레이드 300은 임의 개수의 네트워크 인터페이스 포트들, 카드들, 또는 스위치들로서 구현될 수 있다. 상호접속 블레이드 300은 통신을 실행시키기 위한, 하나 이상의 유선 또는 유선 통신 기술들과 관련된 프로토콜들을 사용할 수 있다. 예를 들어, 상호접속 블레이드 300은 PCIe(Peripheral Component Interconnect Express), QPI(QuickPath Interconnect), 이더넷(Ethernet) 등과 같은 프로토콜들에 따라 연산 블레이드들 200과 메모리 블레이드들 400 사이의 통신을 지원할 수 있다.
도 4는 본 출원의 실시 예에 따른 컴퓨터 블레이드 200의 구성을 도시하는 도면이다.
도 4를 참조하면, 컴퓨터 블레이드 200은 하나 이상의 중앙처리장치(central processing unit, CPU) 210과, 하나 이상의 로컬 메모리(local memory) 220과, 입출력(input/output, I/O) 인터페이스(interface) 230을 포함할 수 있다.
CPU 210은 도 3에 도시된 다수의 메모리 블레이드들 400 중에서 사용하기 위한 적어도 하나의 메모리 블레이드를 분할, 할당 또는 지정할 수 있다. 또한 CPU 210은 분할, 할당 또는 지정된 적어도 하나의 메모리 블레이드를 초기화하고, 이들을 통해 데이터의 리드 동작, 라이트(또는 프로그램) 동작 등을 수행할 수 있다.
로컬 메모리 220은 CPU 210의 동작 수행 중에 필요한 데이터를 저장할 수 있다. 다양한 실시 예들에 있어서, 하나의 로컬 메모리 220은 하나의 CPU 210에 일대일 대응하는 구조를 가질 수 있다.
I/O 인터페이스 230은 도 3의 상호접속 블레이드 300을 통한 CPU 210과 메모리 블레이드들 400 사이에서의 인터페이싱을 지원할 수 있다. I/O 인터페이스 230은 하나 이상의 유선 또는 유선 통신 기술들과 관련된 프로토콜들을 사용하여, CPU 210으로부터 상호접속 블레이드 300으로의 송신 데이터를 출력하고, 상호접속 블레이드 300으로부터 CPU 210으로의 수신 데이터를 입력할 수 있다. 예를 들어, I/O 인터페이스 230은 PCIe(Peripheral Component Interconnect Express), QPI(QuickPath Interconnect), 이더넷(Ethernet) 등과 같은 프로토콜들에 따라 CPU 210과 상호접속 블레이드 300 사이의 통신을 지원할 수 있다.
도 5a 및 도 5b는 본 출원의 실시 예에 따른 메모리 블레이드 400의 구성을 도시하는 도면들이다.
도 5a를 참조하면, 메모리 블레이드 400은 컨트롤러 410과 다수의 메모리들 420을 포함할 수 있다. 다수의 메모리들 420은 컨트롤러 410의 제어에 따라 데이터를 저장(또는 라이트)하고, 저장된 데이터를 출력(또는 리드)할 수 있다. 다수의 메모리들 420은 제1 그룹의 메모리들 420A, 제2 그룹의 메모리들 420B 및 제3 그룹의 메모리들 420C를 포함할 수 있다. 제1 그룹의 메모리들 420A, 제2 그룹의 메모리들 420B 및 제3 그룹의 메모리들 420C은 서로 동일한 특성을 가질 수도 있고, 서로 다른 특성을 가질 수 있다. 다양한 실시 예들에 있어서, 제1 그룹의 메모리들 420A, 제2 그룹의 메모리들 420B 및 제3 그룹의 메모리들 420C은 저장 용량(capacity) 또는 레이턴시(latency) 측면에서 동일한 특성을 가지는 메모리들이거나, 서로 다른 특성을 가지는 메모리들일 수 있다.
도 5b를 참조하면, 제1 그룹의 메모리들 420A와 제2 그룹의 메모리들 420B와 제3 그룹의 메모리들 420C는 동적 램(dynamic random access memory, DRAM)일 수 있다. 이와 달리, 제1 그룹의 메모리들 420A와 제2 그룹의 메모리들 420B와 제3 그룹의 메모리들 420C는 정적 램(static random access memory, SRAM)이나 플래시 메모리(flash memory)와 같이 동일한 종류의 메모리일 수 있다. 또한, 제1 그룹의 메모리들 420A와 제2 그룹의 메모리들 420B와 제3 그룹의 메모리들 420C는 서로 다른 종류의 메모리일 수도 있다.
다시 도 5a를 참조하면, 컨트롤러 410은 데이터 컨트롤러(data controller) 510, 메모리 컨트롤러들(memory controller, MC) 520A-520C, 및 I/O 인터페이스 530을 포함할 수 있다.
데이터 컨트롤러 510은 도 3의 연산 블레이드들 200과 다수의 메모리들 420 사이에서 송수신되는 데이터를 제어할 수 있다. 예를 들어, 라이트 요청 또는 커맨드에 응답하여, 데이터 컨트롤러 510은 연산 블레이드들 200로부터의 라이트를 위한 데이터를 수신하고, 이 데이터를 다수의 메모리들 420중에서 해당하는 메모리에 라이트하는 라이트 동작을 제어할 수 있다. 다른 예로, 리드 요청 또는 커맨드에 응답하여, 데이터 컨트롤러 510은 연산 블레이드들 200으로부터 다수의 메모리들 420중에서 특정 메모리에 저장된 데이터를 리드하고, 리드 데이터를 연산 블레이드들 200중에서 해당하는 연산 블레이드로 출력하는 리드 동작을 제어할 수 있다.
메모리 컨트롤러들 520A-520C는 데이터 컨트롤러 510과 다수의 메모리들 420의 사이에 위치하며, 이들 사이에서의 인터페이싱을 지원할 수 있다. 메모리 컨트롤러들 520은 다수의 메모리들 420에 포함되는 제1 그룹의 메모리들 420A, 제2 그룹의 메모리들 420B 및 제3 그룹의 메모리들 420C를 각각에 대응하는 메모리 컨트롤러(iMC0) 520A, 메모리 컨트롤러(iMC1) 520B, 메모리 컨트롤러(iMC2) 520C를 포함할 수 있다. 메모리 컨트롤러(iMC0) 520A는 데이터 컨트롤러 510과 제1 그룹의 메모리들 420A의 사이에 위치하며, 이들 사이에서의 데이터 송수신을 지원할 수 있다. 메모리 컨트롤러(iMC1) 520B는 데이터 컨트롤러 510과 제2 그룹의 메모리들 420B의 사이에 위치하며, 이들 사이에서의 데이터 송수신을 지원할 수 있다. 메모리 컨트롤러(iMC2) 520C는 데이터 컨트롤러 510과 제3 그룹의 메모리들 420C의 사이에 위치하며, 이들 사이에서의 데이터 송수신을 지원할 수 있다. 여기서는 컨트롤러 410이 3개의 메모리 컨트롤러들, 즉 메모리 컨트롤러(iMC0) 520A, 메모리 컨트롤러(iMC1) 520B, 메모리 컨트롤러(iMC2) 520C를 포함하는 예가 도시되어 있지만, 도 5b에 도시된 바와 같이 제1 그룹의 메모리들 420A, 제2 그룹의 메모리들 420B 및 제3 그룹의 메모리들 420C가 모두 동일한 DRAM으로 구현되는 경우 컨트롤러 410은 단일의 메모리 컨트롤러를 포함하는 형태로 도시될 수도 있다.
I/O 인터페이스 530은 도 3의 상호접속 블레이드 300을 통한 데이터 컨트롤러 510과 연산 블레이드들 200 사이에서의 인터페이싱을 지원할 수 있다. I/O 인터페이스 530은 하나 이상의 유선 또는 유선 통신 기술들과 관련된 프로토콜들을 사용하여, 데이터 컨트롤러 510으로부터 상호접속 블레이드 300으로의 송신 데이터를 출력하고, 상호접속 블레이드 300으로부터 데이터 컨트롤러 510으로의 수신 데이터를 입력할 수 있다. 예를 들어, I/O 인터페이스 530은 PCIe(Peripheral Component Interconnect Express), QPI(QuickPath Interconnect), 이더넷(Ethernet) 등과 같은 프로토콜들에 따라 데이터 컨트롤러 510과 상호접속 블레이드 300 사이의 통신을 지원할 수 있다.
전술한 바와 같이, 미래의 데이터 센터와 같은 서버 시스템 또는 데이터 처리 시스템은 연산 블레이드들, 메모리 또는 스토리지 블레이드들 등과 같은 다수의 블레이드들이 단위 랙 내에서 구별되어 장착되는 구조를 가질 수 있다. 이때 하나의 메모리 블레이드 또는 다수의 메모리 블레이드들은 동일한 종류 또는 서로 다른 종류의 다수의 메모리들이 통합된 형태를 가지는 통합 메모리 디바이스(convergence memory device) 또는 풀드 메모리 시스템(pooled memory system)일 수 있다. 예를 들어, 메모리 블레이드는 도 5b에 도시된 바와 같이 동일한 종류의 다수의 동적 램(dynamic random access memory, DRAM)들을 포함할 수 있다. 만약 다수의 메모리들이 동일한 종류인 경우, 동일한 종류의 메모리들은 동일한 특성을 나타내기 때문에, 통합 메모리 디바이스는 호스트로부터의 요청(request)에 대하여 단일의 성능이나 특성만을 제공할 수 있다.
후술되는 본 출원의 실시 예들은 동일한 종류 또는 서로 다른 종류의 다수의 메모리들을 포함하는 통합 메모리 디바이스가 다양한 성능이나 특성을 제공할 수 있도록 하는 방안을 제안한다. 만약 동일한 종류 또는 서로 다른 종류의 메모리들이라 하더라도 사용 환경에 따라 다양한 특성을 가지는 통합 메모리 디바이스를 구현할 수 있다면, 이러한 통합 메모리 디바이스를 포함하는 시스템은 메모리들을 적절하게 선택 및 사용함으로써 다양한 성능이나 특성을 제공할 수 있을 것이다.
다양한 실시 예들에 있어서, 통합 메모리 디바이스에 포함되는 동일한 종류의 메모리들을 다양한 온도 사용 환경에 따라서 다양한 성능이나 특성을 나타낼 수 있다. 예를 들어, 온도가 낮은 환경(즉, 저온 또는 극저온(cryogenic))에서 동작하는 경우, DRAM과 같은 휘발성 메모리에서 동작 속도가 빨라질 수 있으며, 온칩 누설량(on-chip leakage)가 급속히 감소함에 따라 리프레시(refresh) 기간이 길어질 수 있다. 이와 같이 온도가 낮은 환경에서의 휘발성 메모리는 비휘발성 메모리와 같이 특성을 나타낼 수 있다. 다른 예로, 온도가 높은 환경(즉, 실온)에서 동작하는 경우, DRAM과 같은 휘발성 메모리에서 동작 속도가 느려질 수 있으며, 온칩 누설량이 증가함에 따라 파워 소모가 커질 수 있다. 따라서 DRAM과 같은 메모리들을 다양한 온도 환경에서 사용한다면 다양한 성능 또는 특성을 가지는 메모리들의 구현이 가능할 것이다. 이러한 메모리들 중에서 적절한 환경의 메모리를 선택 및 사용한다면 다양한 애플리케이션 요구에 부합하는 성능이 지원될 수 있다.
예컨대, 온도가 낮은 환경에서 동작하는 메모리가 선택된다면, 긴급 처리가 필요한 요청과 같이 상대적으로 우선 순위가 높은 요청에 대하여 빠른 대응이 가능할 뿐만 아니라 파워 소모도 줄어들 수 있다. 그러나 온도가 낮은 환경을 구현하기 위해서는 냉방(cooling) 시스템을 위한 구축하기 위한 비용이 발생하기 때문에, 시스템에서 제공할 수 있는 성능을 고려하여 적절한 수의 메모리들만이 온도가 낮은 환경에서 동작되도록 하고, 대부분의 메모리들은 보통의 온도 환경에서 동작되도록 할 필요가 있다. 이와 같이 각 온도 환경에서 동작하는 메모리들의 수는 시스템의 설계 사항에 따라 적절하게 결정될 수 있는 바, 하기에서는 이러한 메모리들의 수에 대해서는 고려하지 않기로 함에 유의하여야 할 것이다.
도 6a 및 도 6b는 본 출원의 실시 예에 따른 통합 메모리 디바이스의 구성을 도시하는 도면들이다.
도 6a를 참조하면, 통합 메모리 디바이스 600A는 컨트롤러 610과, 다수의 메모리들 620A,620B를 포함할 수 있다. 이하에서는 설명의 편의상 다수의 메모리들 620A,620B가 단일의 메모리인 것으로 설명하기로 한다.
제1 메모리 620A는 제1 온도(1st temperature)의 환경에 있을 수 있으며, 제2 메모리 620B는 제2 온도(2nd temperature)의 환경에 있을 수 있다.
다양한 실시 예에 있어서, 메모리들 620A,620B는 동일한 종류의 DRAM일 수 있으며, 제2 온도는 제1 온도보다 낮은 온도일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 실온을 포함하고, 제2 온도는 저온을 포함할 수 있다. 제1 온도는 25°C일 수 있고, 제2 온도는 -40°C일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 실온을 포함하고, 제2 온도는 극저온 또는 초저온(cryogenic)을 포함할 수 있다. 제1 온도는 25°C일 수 있고, 제2 온도는 -197°C(또는 77 Kelvin)일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 저온을 포함하고, 제2 온도는 극저온 또는 초저온을 포함할 수 있다. 제1 온도는 -40°C일 수 있고, 제2 온도는 -197°C일 수 있다.
다양한 실시 예에 있어서, 제1 메모리 620A는 제1 온도의 환경에서 제1 특성을 가질 수 있으며, 제2 메모리 620B는 제2 온도의 환경에서 제1 특성보다 우수한 제2 특성을 가질 수 있다. 제1 특성 및 제2 특성은 데이터 액세스 속도, 리프레시 기간 또는 온칩 정보의 누설량(on-chip leakage)을 포함할 수 있다.
컨트롤러 610은 요청에 응답하여 제1 메모리 620A 또는 제2 메모리 620B를 선택적으로 액세스(access)할 수 있다. 여기서 요청은 도 3에 도시된 연산 블레이드들 200중의 어느 한 블레이드로부터의 요청이거나 단일의 호스트(미도시함)로부터의 요청일 수 있다.
다양한 실시 예에 있어서, 상기 요청은 제1 우선 순위의 요청이거나 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청일 수 있다. 상기 요청이 제1 우선 순위의 요청인 경우, 컨트롤러 610은 제2 메모리 620B를 액세스할 수 있다. 상기 요청이 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청인 경우 컨트롤러 610은 제1 메모리 620A를 액세스할 수 있다.
다양한 실시 예에 있어서, 컨트롤러 610은 제2 메모리 620B를 제1 메모리 620A를 위한 캐시(cache)로서 사용할 수 있다. 상기 요청에 대한 어드레스가 캐시 히트(cache hit)인 경우, 컨트롤러 610은 제2 메모리 620B를 액세스할 수 있다. 상기 요청에 대한 어드레스가 캐시 미스(cache miss)인 경우, 컨트롤러 610은 제1 메모리 620A를 액세스할 수 있다.
도 6b를 참조하면, 통합 메모리 디바이스 600B는 컨트롤러 610과, 다수의 메모리들 620A,620B,620C를 포함할 수 있다. 이하에서는 설명의 편의상 다수의 메모리들 620A,620B,620C가 단일의 메모리인 것으로 설명하기로 한다.
제1 메모리 620A는 제1 온도(1st temperature)의 환경에 있을 수 있으며, 제2 메모리 620B는 제2 온도(2nd temperature)의 환경에 있을 수 있으며, 제3 메모리 620C는 제3 온도(3rd temperature)의 환경에 있을 수 있다.
다양한 실시 예에 있어서, 메모리들 620A,620B,620C는 동일한 종류의 DRAM일 수 있으며, 제2 온도는 제1 온도보다 낮은 온도일 수 있으며, 제3 온도는 제2 온도보다 낮은 온도일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 실온을 포함하고, 제2 온도는 저온을 포함하고, 제3 온도는 극저온 또는 초저온을 포함할 수 있다. 제1 온도는 25°C일 수 있고, 제2 온도는 -40°C일 수 있고, 제3 온도는 -197°C(또는 77 Kelvin)일 수 있다.
다양한 실시 예에 있어서, 제1 메모리 620A는 제1 온도의 환경에서 제1 특성을 가질 수 있으며, 제2 메모리 620B는 제2 온도의 환경에서 제1 특성보다 우수한 제2 특성을 가질 수 있으며, 제3 메모리 620C는 제3 온도의 환경에서 제2 특성보다 우수한 제3 특성을 가질 수 있다. 제1 특성, 제2 특성 및 제3 특성은 데이터 액세스 속도, 리프레시 기간 또는 온칩 정보의 누설량(on-chip leakage)을 포함할 수 있다.
컨트롤러 610은 요청에 응답하여 제1 메모리 620A, 제2 메모리 620B 및 제3 메모리 620C 중의 하나를 선택적으로 액세스(access)할 수 있다. 여기서 요청은 도 3에 도시된 연산 블레이드들 200중의 어느 한 블레이드로부터의 요청이거나 단일의 호스트(미도시함)로부터의 요청일 수 있다.
다양한 실시 예에 있어서, 상기 요청은 제1 우선 순위의 요청이거나 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청이거나 상기 제2 우선 순위보다 낮은 제3 우선 순위의 요청일 수 있다. 상기 요청이 제1 우선 순위의 요청인 경우, 컨트롤러 610은 제3 메모리 620C를 액세스할 수 있다. 상기 요청이 제2 우선 순위의 요청인 경우, 컨트롤러 610은 제2 메모리 620B를 액세스할 수 있다. 상기 요청이 상기 제3 우선 순위의 요청인 경우 컨트롤러 610은 제1 메모리 620A를 액세스할 수 있다.
다양한 실시 예에 있어서, 컨트롤러 610은 제2 메모리 620B 및 제3 메모리 620C를 제1 메모리 620A를 위한 캐시(cache)로서 사용할 수 있다. 제3 메모리 620C는 제1 메모리 620A를 위한 메인 캐시(main cache)로서 사용될 수 있고, 제2 메모리 620B는 제1 메모리 620A를 위한 서브 캐시(sub cache)로서 사용될 수 있다. 제3 메모리 620C의 저장 공간이 캐시 데이터의 저장을 위한 여유가 없는 경우, 제2 메모리 620B는 제1 메모리 620A를 위한 서브 캐시(sub cache)로서 사용될 수 있다. 상기 요청에 대한 어드레스가 캐시 히트(cache hit)인 경우, 컨트롤러 610은 제2 메모리 620B 또는 제3 메모리 620C를 액세스할 수 있다. 상기 요청에 대한 어드레스가 캐시 미스(cache miss)인 경우, 컨트롤러 610은 제1 메모리 620A를 액세스할 수 있다.
도 7a 내지 도 7c는 본 출원의 실시 예에 따른 메모리들의 실장 예를 도시하는 도면들이다.
도 7a를 참조하면, 제1 메모리 620A와 제2 메모리 620B는 서로 다른 블레이드들에 실장될 수 있다. 제1 메모리 620A는 제1 온도 환경에서의 제1 블레이드에 실장될 수 있고, 제2 메모리 620B는 제2 온도 환경에서의 제2 블레이드에 실장될 수 있다.
도 7b를 참조하면, 제1 메모리 620A와 제2 메모리 620B는 서로 다른 드로워들에 실장될 수 있다. 제1 메모리 620A는 제1 온도 환경에서의 제1 드로워에 실장될 수 있고, 제2 메모리 620B는 제2 온도 환경에서의 제2 드로워에 실장될 수 있다.
도 7c를 참조하면, 제1 메모리 620A와 제2 메모리 620B는 서로 다른 랙들에 실장될 수 있다. 제1 메모리 620A는 제1 온도 환경에서의 제1 랙에 실장될 수 있고, 제2 메모리 620B는 제2 온도 환경에서의 제2 랙에 실장될 수 있다.
전술한 도 7a 내지 도 7c는 도 6a에 도시된 제1 메모리 620A와 제2 메모리 620B는 다양한 온도 환경에 있을 수 있음을 도시한다. 유사하게, 도 6b에 도시된 제1 메모리 620A, 제2 메모리 620B 및 제3 메모리 620C는 서로 다른 메모리 블레이드, 트레이 및 랙 중의 하나에 실장되는 바와 같이 다양한 온도 환경에 있을 수 있다. 이와 같이 다수의 메모리들이 다양한 온도 환경에 있는 경우 다양한 성능 또는 특성을 가지는 메모리들의 구현이 가능하다. 이러한 메모리들 중에서 요청에 적절한 성능 또는 특성을 가지는 메모리를 선택할 수 있으므로, 통합 메모리 디바이스 또는 풀드 메모리 시스템은 애플리케이션의 요구에 맞게 메모리 자원들을 관리할 수 있다. 예를 들어, 최상의 시스템 성능을 요구하는 요청인 경우, 다수의 메모리들 중에서 최상의 성능을 나타내는 메모리가 선택될 수 있으며, 양호의 시스템 성능을 요구하는 요청인 경우, 다수의 메모리들 중에서 양호의 성능을 나타내는 메모리가 선택될 수 있으며, 보통의 시스템 성능을 요구하는 요청인 경우, 다수의 메모리들 중에서 노말의 성능을 나타내는 메모리가 선택될 수 있다. 또한, 빠른 속도를 지원하는 메모리를 보통의 속도를 지원하는 메모리를 위한 캐시로서 사용할 수도 있다.
도 8은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스 800의 구성을 도시하는 도면이다.
도 8을 참조하면, 메모리 디바이스 800은 컨트롤러 805와, 제1 메모리들 860A과 제2 메모리들 860B을 포함하는 다수의 메모리들 855를 포함할 수 있다. 이하에서는 설명의 편의상 다수의 메모리들 860A,860B가 단일의 메모리인 것으로 설명하기로 한다.
제1 메모리 860A는 제1 온도(1st temperature)의 환경에 있을 수 있으며, 제2 메모리 860B는 제2 온도(2nd temperature)의 환경에 있을 수 있다.
다양한 실시 예에 있어서, 메모리들 860A,860B는 동일한 종류의 DRAM일 수 있으며, 제2 온도는 제1 온도보다 낮은 온도일 수 있다.
다양한 실시 예에 있어서, 메모리들 620A,620B는 동일한 종류의 DRAM일 수 있으며, 제2 온도는 제1 온도보다 낮은 온도일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 실온을 포함하고, 제2 온도는 저온을 포함할 수 있다. 제1 온도는 25°C일 수 있고, 제2 온도는 -40°C일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 실온을 포함하고, 제2 온도는 극저온 또는 초저온(cryogenic)을 포함할 수 있다. 제1 온도는 25°C일 수 있고, 제2 온도는 -197°C일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 저온을 포함하고, 제2 온도는 극저온 또는 초저온을 포함할 수 있다. 제1 온도는 -40°C일 수 있고, 제2 온도는 -197°C일 수 있다.
다양한 실시 예에 있어서, 제1 메모리 620A는 제1 온도의 환경에서 제1 특성을 가질 수 있으며, 제2 메모리 620B는 제2 온도의 환경에서 제1 특성보다 우수한 제2 특성을 가질 수 있다. 제1 특성 및 제2 특성은 데이터 액세스 속도, 리프레시 기간 또는 온칩 정보의 누설량(on-chip leakage)을 포함할 수 있다.
컨트롤러 805는 요청에 응답하여 제1 메모리 860A 또는 제2 메모리 860B를 선택적으로 액세스(access)할 수 있다. 여기서 요청은 도 3에 도시된 연산 블레이드들 200중의 어느 한 블레이드로부터의 요청이거나 단일의 호스트(미도시함)로부터의 요청일 수 있다. 이하에서는 상기 요청이 호스트로부터 수신되는 예로서 설명될 것이다. 상기 요청은 우선 순위에 대한 정보를 포함할 수 있다. 예를 들어, 우선 순위에 대한 정보는 노말(normal), 양호(good) 또는 최상(best)과 같이 요청에 대한 우선 순위를 나타낼 수 있다.
컨트롤러 805는 요청에 응답하여 제1 메모리 860A 또는 제2 메모리 860B를 선택적으로 액세스(access)할 수 있다. 여기서 요청은 도 3에 도시된 연산 블레이드들 200중의 어느 한 블레이드로부터의 요청이거나 단일의 호스트(미도시함)로부터의 요청일 수 있다. 이하에서는 상기 요청이 호스트로부터 수신되는 예로서 설명될 것이다. 상기 요청은 우선 순위에 대한 정보를 포함할 수 있다. 예를 들어, 우선 순위에 대한 정보는 노말(normal), 양호(good) 또는 최상(best)과 같이 요청에 대한 우선 순위를 나타낼 수 있다. 또 다른 예를 들어, fast, typical, slow 등 과 같은 빠르기를 바탕으로 구분될 수 있거나 또는 best, good, normal 등과 같이 저장능력 등의 상태 특성을 바탕으로 구분될 수 있는 여러 종류의 메모리들이 한 블레이드에 사용될 수 있으며, 이러한 경우 호스트로부터 수신되는 요청 또는 신호는 각 메모리에 대응될 수 있다.
컨트롤러 805는 데이터 컨트롤러(data controller) 810, 메모리 컨트롤러(iMC0) 820A, 메모리 컨트롤러(iMC1) 820B 및 입/출력(input/output, I/O) 인터페이스 830을 포함할 수 있다.
데이터 컨트롤러(data controller) 810은 요청을 수신하고, 요청에 응답하여 메모리 컨트롤러(iMC0) 820A를 통하여 제1 메모리 860A를 액세스하거나, 메모리 컨트롤러(iMC1) 820B를 통하여 제2 메모리 860B를 액세스할 수 있다. 상기 요청은 제1 우선 순위의 요청이거나 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청일 수 있다. 상기 요청이 제1 우선 순위의 요청("good")인 경우, 데이터 컨트롤러 810은 메모리 컨트롤러(iMC1) 820B를 통하여 제2 메모리 620B를 액세스할 수 있다. 상기 요청이 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청("normal")인 경우 데이터 컨트롤러 810은 메모리 컨트롤러(iMC0) 820A를 통하여 제1 메모리 620A를 액세스할 수 있다.
메모리 컨트롤러(iMC0) 820A는 제1 메모리 860A와의 인터페이스를 위한 메모리 인터페이스이다. 메모리 컨트롤러(iMC1) 820B는 제2 메모리 860B와의 인터페이스를 위한 제2 메모리 인터페이스이다. 입/출력 인터페이스 830은 호스트와의 인터페이스를 위한 것으로, 상기 호스트로부터의 요청을 데이터 컨트롤러 810으로 전달하고, 데이터 컨트롤러 810으로부터 수신된 데이터를 상기 호스트로 전달할 수 있다.
도 9는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다. 예를 들어, 도 9는 도 8에 도시된 컨트롤러 805와, 제1 메모리 860A, 제2 메모리 860B를 포함하는 메모리 디바이스 800에서의 동작을 도시한다.
도 9를 참조하면, 컨트롤러 805는 호스트로부터의 요청을 수신하고(910), 수신된 요청에 대한 우선 순위를 확인할 수 있다(920). 컨트롤러 805는 수신된 요청에 응답하여 메모리 컨트롤러(iMC0) 820A를 통하여 제1 메모리 860A를 액세스하거나, 메모리 컨트롤러(iMC1) 820B를 통하여 제2 메모리 860B를 액세스할 수 있다. 상기 요청은 제1 우선 순위의 요청이거나 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청일 수 있다. 상기 요청이 제1 우선 순위의 요청인 경우, 데이터 컨트롤러 810은 메모리 컨트롤러(iMC1) 820B를 통하여 제2 메모리 620B를 액세스할 수 있다(950). 상기 요청이 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청인 경우, 데이터 컨트롤러 810은 메모리 컨트롤러(iMC0) 820A를 통하여 제1 메모리 620A를 액세스할 수 있다(940).
도 10은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스 1000의 구성을 도시하는 도면이다.
도 10을 참조하면, 메모리 디바이스 1000은 컨트롤러 1005와, 제1 메모리들 1060A과 제2 메모리들 1060B을 포함하는 다수의 메모리들 1055를 포함할 수 있다. 이하에서는 설명의 편의상 다수의 메모리들 1060A,1060B가 단일의 메모리인 것으로 설명하기로 한다.
제1 메모리 1060A는 제1 온도(1st temperature)의 환경에 있을 수 있으며, 제2 메모리 1060B는 제2 온도(2nd temperature)의 환경에 있을 수 있다.
다양한 실시 예에 있어서, 메모리들 1060A,1060B는 동일한 종류의 DRAM일 수 있으며, 제2 온도는 제1 온도보다 낮은 온도일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 실온을 포함하고, 제2 온도는 저온을 포함할 수 있다. 제1 온도는 25°C일 수 있고, 제2 온도는 -40°C일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 실온을 포함하고, 제2 온도는 극저온 또는 초저온(cryogenic)을 포함할 수 있다. 제1 온도는 25°C일 수 있고, 제2 온도는 -197°C일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 저온을 포함하고, 제2 온도는 극저온 또는 초저온을 포함할 수 있다. 제1 온도는 -40°C일 수 있고, 제2 온도는 -197°C일 수 있다.
다양한 실시 예에 있어서, 제1 메모리 1020A는 제1 온도의 환경에서 제1 특성을 가질 수 있으며, 제2 메모리 1020B는 제2 온도의 환경에서 제1 특성보다 우수한 제2 특성을 가질 수 있다. 제1 특성 및 제2 특성은 데이터 액세스 속도, 리프레시 기간 또는 온칩 정보의 누설량(on-chip leakage)을 포함할 수 있다.
컨트롤러 1005는 요청에 응답하여 제1 메모리 1060A 또는 제2 메모리 1060B를 선택적으로 액세스(access)할 수 있다. 여기서 요청은 도 3에 도시된 연산 블레이드들 200중의 어느 한 블레이드로부터의 요청이거나 단일의 호스트(미도시함)로부터의 요청일 수 있다. 이하에서는 상기 요청이 호스트로부터 수신되는 예로서 설명될 것이다.
컨트롤러 1005는 데이터 컨트롤러(data controller) 1010, 메모리 컨트롤러(iMC0) 1020A, 메모리 컨트롤러(iMC1) 1020B 및 입/출력(input/output, I/O) 인터페이스 1030을 포함할 수 있다. 컨트롤러 1005는 제2 메모리 1060B를 제1 메모리 1060A를 위한 캐시(cache)로서 사용할 수 있다.
데이터 컨트롤러 1010은 에이전트(agent) 1012와 캐시 테이블(cache table) 1014를 포함할 수 있다. 캐시 테이블 1014는 제1 메모리 1060A에 대한 캐시 데이터를 저장하고 있는 제2 메모리 1060B에 대한 어드레스 정보를 저장할 수 있다. 예를 들어, 캐시 테이블 1014는 제2 메모리 1060B에 대한 물리적 어드레스 정보를 저장할 수 있다.
에이전트 1012는 입/출력 인터페이스 1030을 통하여 수신되는 요청에 응답하여 제1 메모리 1060A 또는 제2 메모리 1060B에 대한 액세스 동작을 수행할 수 있다. 에이전트 1012는 요청에 대한 어드레스가 캐시 테이블 1014로부터 확인되는지 여부에 따라 제1 메모리 1060A 및 제2 메모리 1060B 중에서 하나의 메모리를 선택하고, 선택된 메모리에 대한 액세스 동작을 수행할 수 있다. 상기 요청에 대한 어드레스가 캐시 테이블 1014로부터 확인되는 경우, 에이전트 1012는 메모리 컨트롤러(iMC1) 1020B를 통하여 제2 메모리 1060B를 액세스할 수 있다. 이와 달리 상기 요청에 대한 어드레스가 캐시 테이블 1014로부터 확인되지 않는 경우, 에이전트 1012는 메모리 컨트롤러(iMC0) 1020A를 통하여 제1 메모리 1060A를 액세스할 수 있다. 다양한 실시 예에 있어서, 요청에 포함되는 정보가 논리적 어드레스인 경우, 에이전트 1012는 논리적 어드레스를 제1 메모리 1060A 또는 제2 메모리 1060B에 대한 물리적 어드레스로 변환하는 어드레스 변환 동작을 수행할 수 있다.
메모리 컨트롤러(iMC0) 1020A는 제1 메모리 1060A와의 인터페이스를 위한 메모리 인터페이스이다. 메모리 컨트롤러(iMC1) 1020B는 제2 메모리 1060B와의 인터페이스를 위한 제2 메모리 인터페이스이다. 입/출력 인터페이스 1030은 호스트와의 인터페이스를 위한 것으로, 상기 호스트로부터의 요청을 데이터 컨트롤러 1010으로 전달하고, 데이터 컨트롤러 1010으로부터 수신된 데이터를 상기 호스트로 전달할 수 있다.
도 11은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다. 예를 들어, 도 11은 도 10에 도시된 컨트롤러 1005와, 제1 메모리 1060A, 제2 메모리 1060B를 포함하는 메모리 디바이스 1000에서의 동작을 도시한다.
도 11을 참조하면, 컨트롤러 1005는 호스트로부터의 요청을 수신할 수 있다(1110). 컨트롤러 1005는 상기 수신된 요청에 대한 어드레스가 캐시 테이블 1014로부터 확인할 수 있다(1120).
상기 수신된 요청에 대한 어드레스가 캐시 테이블 1014로부터 확인되는 경우(1130, Y), 즉 캐시 히트(cache hit)인 경우, 컨트롤러 1005는 제1 메모리 1060A에 대한 캐시인 제2 메모리 1060B를 통하여 요청이 수행되도록 할 수 있다(1140).
이와 달리 상기 요청에 대한 어드레스가 캐시 테이블 1014로부터 확인되지 않는 경우, 즉, 캐시 미스(cache miss)인 경우, 컨트롤러 1005는 제1 메모리 1060A를 통하여 요청이 수행되도록 할 수 있다(1150).
도 12는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스 1200의 구성을 도시하는 도면이다.
도 12를 참조하면, 메모리 디바이스 1200은 컨트롤러 1205와, 제1 메모리들 1260A와 제2 메모리들 1260B와 제3 메모리들 1260C를 포함하는 다수의 메모리들 1255를 포함할 수 있다. 이하에서는 설명의 편의상 다수의 메모리들 1260A,1260B, 1260C가 단일의 메모리인 것으로 설명하기로 한다.
제1 메모리 1260A는 제1 온도(1st temperature)의 환경에 있을 수 있으며, 제2 메모리 1260B는 제2 온도(2nd temperature)의 환경에 있을 수 있으며, 제3 메모리 1260C는 제3 온도(3rd temperature)의 환경에 있을 수 있다.
다양한 실시 예에 있어서, 메모리들 1260A,1260B,1260C는 동일한 종류의 DRAM일 수 있으며, 제2 온도는 제1 온도보다 낮은 온도일 수 있으며, 제3 온도는 제2 온도보다 낮은 온도일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 실온을 포함하고, 제2 온도는 저온을 포함하고, 제3 온도는 극저온 또는 초저온을 포함할 수 있다. 제1 온도는 25°C일 수 있고, 제2 온도는 -40°C일 수 있고, 제3 온도는 -197°C일 수 있다.
다양한 실시 예에 있어서, 제1 메모리 1260A는 제1 온도의 환경에서 제1 특성을 가질 수 있으며, 제2 메모리 1260B는 제2 온도의 환경에서 제1 특성보다 우수한 제2 특성을 가질 수 있으며, 제3 메모리 1260C는 제3 온도의 환경에서 제2 특성보다 우수한 제3 특성을 가질 수 있다. 제1 특성, 제2 특성 및 제3 특성은 데이터 액세스 속도, 리프레시 기간 또는 온칩 정보의 누설량(on-chip leakage)을 포함할 수 있다.
컨트롤러 1205는 요청에 응답하여 제1 메모리 1260A, 제2 메모리 1260B 및 제3 메모리 1260C 중의 하나를 선택적으로 액세스(access)할 수 있다. 여기서 요청은 도 3에 도시된 연산 블레이드들 200중의 어느 한 블레이드로부터의 요청이거나 단일의 호스트(미도시함)로부터의 요청일 수 있다. 이하에서는 상기 요청이 호스트로부터 수신되는 예로서 설명될 것이다. 상기 요청은 우선 순위에 대한 정보를 포함할 수 있다. 예를 들어, 우선 순위에 대한 정보는 노말(normal), 양호(good) 또는 최상(best)과 같이 요청에 대한 우선 순위를 나타낼 수 있다.
컨트롤러 1205는 데이터 컨트롤러(data controller) 1210, 메모리 컨트롤러(iMC0) 1220A, 메모리 컨트롤러(iMC1) 1220B, 메모리 컨트롤러(iMC2) 1220C 및 입/출력(input/output, I/O) 인터페이스 1230을 포함할 수 있다.
데이터 컨트롤러(data controller) 1210은 요청을 수신하고, 요청에 응답하여 메모리 컨트롤러(iMC0) 1220A를 통하여 제1 메모리 1260A를 액세스하거나, 메모리 컨트롤러(iMC1) 1220B를 통하여 제2 메모리 1260B를 액세스하거나, 메모리 컨트롤러(iMC2) 1220C를 통하여 제3 메모리 1260C를 액세스할 수 있다. 상기 요청은 제1 우선 순위의 요청이거나 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청이거나 상기 제2 우선 순위보다 낮은 제3 우선 순위의 요청일 수 있다. 상기 요청이 제1 우선 순위의 요청("best")인 경우, 데이터 컨트롤러 1210은 메모리 컨트롤러(iMC2) 1220C를 통하여 제3 메모리 1220C를 액세스할 수 있다. 상기 요청이 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청("good")인 경우, 데이터 컨트롤러 1210은 메모리 컨트롤러(iMC1) 1220B를 통하여 제2 메모리 1220B를 액세스할 수 있다. 상기 요청이 상기 제2 우선 순위보다 낮은 제3 우선 순위의 요청("normal")인 경우 데이터 컨트롤러 1210은 메모리 컨트롤러(iMC0) 1220A를 통하여 제1 메모리 1220A를 액세스할 수 있다.
메모리 컨트롤러(iMC0) 1220A는 제1 메모리 1260A와의 인터페이스를 위한 메모리 인터페이스이다. 메모리 컨트롤러(iMC1) 1220B는 제2 메모리 1260B와의 인터페이스를 위한 제2 메모리 인터페이스이다. 메모리 컨트롤러(iMC2) 1220C는 제3 메모리 1260C와의 인터페이스를 위한 제3 메모리 인터페이스이다. 입/출력 인터페이스 1230은 호스트와의 인터페이스를 위한 것으로, 상기 호스트로부터의 요청을 데이터 컨트롤러 1210으로 전달하고, 데이터 컨트롤러 1210으로부터 수신된 데이터를 상기 호스트로 전달할 수 있다.
도 13은 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다. 예를 들어, 도 13은 도 12에 도시된 컨트롤러 1205와, 제1 메모리 1260A, 제2 메모리 1260B를 포함하는 메모리 디바이스 1200에서의 동작을 도시한다.
도 13을 참조하면, 컨트롤러 1205는 호스트로부터의 요청을 수신하고(1310), 수신된 요청에 대한 우선 순위를 확인할 수 있다(1320). 컨트롤러 1205는 수신된 요청에 응답하여 메모리 컨트롤러(iMC0) 1220A를 통하여 제1 메모리 1260A를 액세스하거나, 메모리 컨트롤러(iMC1) 1220B를 통하여 제2 메모리 1260B를 액세스하거나, 메모리 컨트롤러(iMC2) 1220C를 통하여 제3 메모리 1260C를 액세스할 수 있다. 상기 요청은 제1 우선 순위의 요청이거나 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청이거나 상기 제2 우선 순위보다 낮은 제3 우선 순위의 요청일 수 있다. 상기 요청이 제1 우선 순위의 요청("best")인 경우, 데이터 컨트롤러 1210은 메모리 컨트롤러(iMC2) 1220C를 통하여 제3 메모리 1220C를 액세스할 수 있다(1360). 상기 요청이 제1 우선 순위보다 낮은 제2 우선 순위의 요청("good")인 경우, 데이터 컨트롤러 1210은 메모리 컨트롤러(iMC1) 1220B를 통하여 제2 메모리 1220B를 액세스할 수 있다(1350). 상기 요청이 상기 제2 우선 순위보다 낮은 제3 우선 순위의 요청("normal")인 경우, 데이터 컨트롤러 1210은 메모리 컨트롤러(iMC0) 1220A를 통하여 제1 메모리 1220A를 액세스할 수 있다(1340).
도 14a는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스 1400의 구성을 도시하는 도면이다.
도 14a를 참조하면, 메모리 디바이스 1400은 컨트롤러 1405와, 제1 메모리들 1460A와 제2 메모리들 1460B와 제3 메모리들 1460C를 포함하는 다수의 메모리들 1455를 포함할 수 있다. 이하에서는 설명의 편의상 다수의 메모리들 1460A,1460B, 1460C가 단일의 메모리인 것으로 설명하기로 한다.
제1 메모리 1460A는 제1 온도(1st temperature)의 환경에 있을 수 있으며, 제2 메모리 1460B는 제2 온도(2nd temperature)의 환경에 있을 수 있으며, 제3 메모리 1460C는 제3 온도(3rd temperature)의 환경에 있을 수 있다.
다양한 실시 예에 있어서, 메모리들 1460A,1460B,1460C는 동일한 종류의 DRAM일 수 있으며, 제2 온도는 제1 온도보다 낮은 온도일 수 있으며, 제3 온도는 제2 온도보다 낮은 온도일 수 있다.
다양한 실시 예에 있어서, 제1 온도는 실온을 포함하고, 제2 온도는 저온을 포함하고, 제3 온도는 극저온 또는 초저온을 포함할 수 있다. 제1 온도는 25°C일 수 있고, 제2 온도는 -40°C일 수 있고, 제3 온도는 -197°C일 수 있다.
다양한 실시 예에 있어서, 제1 메모리 1460A는 제1 온도의 환경에서 제1 특성을 가질 수 있으며, 제2 메모리 1460B는 제2 온도의 환경에서 제1 특성보다 우수한 제2 특성을 가질 수 있으며, 제3 메모리 1460C는 제3 온도의 환경에서 제2 특성보다 우수한 제3 특성을 가질 수 있다. 제1 특성, 제2 특성 및 제3 특성은 데이터 액세스 속도, 리프레시 기간 또는 온칩 정보의 누설량(on-chip leakage)을 포함할 수 있다.
컨트롤러 1405는 요청에 응답하여 제1 메모리 1460A, 제2 메모리 1460B 및 제3 메모리 1460C 중의 하나를 선택적으로 액세스(access)할 수 있다. 여기서 요청은 도 3에 도시된 연산 블레이드들 200중의 어느 한 블레이드로부터의 요청이거나 단일의 호스트(미도시함)로부터의 요청일 수 있다. 이하에서는 상기 요청이 호스트로부터 수신되는 예로서 설명될 것이다. 상기 요청은 우선 순위에 대한 정보를 포함할 수 있다. 예를 들어, 우선 순위에 대한 정보는 노말(normal), 양호(good) 또는 최상(best)과 같이 요청에 대한 우선 순위를 나타낼 수 있다.
컨트롤러 1405는 데이터 컨트롤러(data controller) 1410, 메모리 컨트롤러(iMC0) 1420A, 메모리 컨트롤러(iMC1) 1420B, 메모리 컨트롤러(iMC2) 1420C 및 입/출력(input/output, I/O) 인터페이스 1430을 포함할 수 있다. 컨트롤러 1405는 제2 메모리 1420B 및 제3 메모리 1420C를 제1 메모리 1420A를 위한 캐시(cache)로서 사용할 수 있다. 제3 메모리 1420C는 제1 메모리 1420A를 위한 메인 캐시(main cache)로서 사용될 수 있고, 제2 메모리 1420B는 제1 메모리 1420A를 위한 서브 캐시(sub cache)로서 사용될 수 있다. 제3 메모리 1420C의 저장 공간이 캐시 데이터의 저장을 위한 여유가 없는 경우, 제2 메모리 1420B는 제1 메모리 1420A를 위한 서브 캐시(sub cache)로서 사용될 수 있다.
데이터 컨트롤러 1410은 에이전트(agent) 1412와 캐시 테이블(cache table) 1414를 포함할 수 있다. 캐시 테이블 1414는 제1 메모리 1460A에 대한 캐시 데이터를 저장하고 있는 제3 메모리 1460C 및/또는 제2 메모리 1460B에 대한 어드레스 정보를 저장할 수 있다. 예를 들어, 캐시 테이블 1414는 제3 메모리 1460C 및/또는 제2 메모리 1460B에 대한 물리적 어드레스 정보를 저장할 수 있다.
에이전트 1412는 입/출력 인터페이스 1430을 통하여 수신되는 요청에 응답하여 제1 메모리 1420A, 제2 메모리 1420B 및 제3 메모리 1420C 중의 하나를 선택적으로 액세스(access)할 수 있다. 에이전트 1412는 요청에 대한 어드레스가 캐시 테이블 1414로부터 확인되는지 여부에 따라 제1 메모리 1460A, 제2 메모리 1460B 및 제3 메모리 1460B 중에서 하나의 메모리를 선택하고, 선택된 메모리에 대한 액세스 동작을 수행할 수 있다. 상기 요청에 대한 어드레스가 캐시 테이블 1414로부터 확인되는 경우, 에이전트 1412는 메모리 컨트롤러(iMC2) 1420C를 통하여 제3 메모리 1460C를 액세스하거나, 메모리 컨트롤러(iMC1) 1420B를 통하여 제2 메모리 1460B를 액세스할 수 있다. 이와 달리 상기 요청에 대한 어드레스가 캐시 테이블 1414로부터 확인되지 않는 경우, 에이전트 1412는 메모리 컨트롤러(iMC0) 1420A를 통하여 제1 메모리 1460A를 액세스할 수 있다. 다양한 실시 예에 있어서, 요청에 포함되는 정보가 논리적 어드레스인 경우, 에이전트 1412는 논리적 어드레스를 제1 메모리 1460A, 제2 메모리 1460B 또는 제3 메모리 1460B에 대한 물리적 어드레스로 변환하는 어드레스 변환 동작을 수행할 수 있다.
메모리 컨트롤러(iMC0) 1420A는 제1 메모리 1460A와의 인터페이스를 위한 메모리 인터페이스이다. 메모리 컨트롤러(iMC1) 1420B는 제2 메모리 1460B와의 인터페이스를 위한 제2 메모리 인터페이스이다. 메모리 컨트롤러(iMC2) 1420C는 제3 메모리 1460C와의 인터페이스를 위한 제3 메모리 인터페이스이다. 입/출력 인터페이스 1430은 호스트와의 인터페이스를 위한 것으로, 상기 호스트로부터의 요청을 데이터 컨트롤러 1410으로 전달하고, 데이터 컨트롤러 1410으로부터 수신된 데이터를 상기 호스트로 전달할 수 있다.
도 14b는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 도면이다. 도 14b에 도시된 동작은 도 14a에 도시된 컨트롤러 1405와, 제1 메모리 1460A, 제2 메모리 1460B 및 제3 메모리 1460C를 포함하는 메모리 디바이스 1400에서, 컨트롤러 1405의 데이터 컨트롤러 1410에 포함되는 에이전트 1412와 캐시 테이블 1414에 의해 수행될 수 있다. 이러한 동작은 어느 하나의 메모리, 즉 DRAM 1460C를 다른 하나의 메모리 1460A를 위한 메인 캐시로 사용하고, 선택적으로 DRAM 1460B를 메모리 1460A를 위한 서브 캐시로 사용하는 실시 예에 해당한다. DRAM 1460C가 극저온 환경에서 사용되는 경우, DRAM의 온칩 누설량이 급속하게 감소되고 그에 따라 리프레시 주기가 크게 늘어난다. 그러므로 DRAM 1460C는 비휘발성 메모리 또는 정적(static random access memory, SRAM)에 가까운 특성을 가지게 되며, 이러한 점을 이용하여 DRAM 1460C는 다른 DRAM을 위한 캐시로서 사용될 수 있는 것이다.
도 14b를 참조하면, 에이전트 1412는 호스트로부터의 요청을 수신하고, 상기 수신된 요청에 대한 어드레스가 캐시 테이블 1414에 있는지 여부를 확인할 수 있다(①).
상기 요청에 대한 어드레스가 DRAM 1460C의 어드레스인 것으로 캐시 테이블 1414로부터 확인되는 경우(⑥), 즉 DRAM 1460C에 대한 캐시 히트(cache hit)인 경우, 에이전트 1412는 메모리 컨트롤러(iMC2) 1420C를 거쳐 DRAM 1460C에 대한 액세스를 수행하고(②), 그 수행 결과를 수신할 수 있다(③). 이러한 수행 결과는 입/출력 인터페이스 1430을 거쳐 호스트로 전달될 수 있다. 예를 들어, DRAM 1460C에 대한 리드/라이트 동작이 수행될 수 있다.
상기 요청에 대한 어드레스가 DRAM 1460B의 어드레스인 것으로 캐시 테이블 1414로부터 확인되는 경우(⑥), 즉 DRAM 1460B에 대한 캐시 히트(cache hit)인 경우, 에이전트 1412는 메모리 컨트롤러(iMC1) 1420B를 거쳐 DRAM 1460B에 대한 액세스를 수행하고(④), 그 수행 결과를 수신할 수 있다(⑤). 이러한 수행 결과는 입/출력 인터페이스 1430을 거쳐 호스트로 전달될 수 있다.
이와 달리 상기 요청에 대한 어드레스가 캐시 테이블 1414로부터 확인되지 않는 경우(⑥), 즉 캐시 미스(cache miss)인 경우, 에이전트 1412는 메모리 컨트롤러(iMC0) 1420A를 거쳐 DRAM 1460A에 대한 액세스를 수행하고(⑦), 그 수행 결과를 수신할 수 있다(⑧). 이러한 수행 결과는 입/출력 인터페이스 1430을 거쳐 호스트로 전달될 수 있다.
DRAM 1460A를 통하여 요청을 수행한 이후에 에이전트 1412는 캐시 카피(cache copy) 및 캐시 테이블 업데이트(cache table update) 동작을 수행할 수 있다(⑨). 에이전트 1412는 DRAM 1460A로부터 제1 캐시인 DRAM 1460C로의 캐시 카피 동작을 우선적으로 수행하고, 수행 결과에 따라 캐시 테이블 1414에 대한 업데이트 동작을 수행할 수 있다. 제1 캐시인 DRAM 1460C에서의 저장 공간의 여유가 없는 경우, 에이전트 1412는 DRAM 1460A로부터 제2 캐시인 DRAM 1460B로의 캐시 카피 동작을 수행하고, 수행 결과에 따라 캐시 테이블 1414에 대한 업데이트 동작을 수행할 수 있다.
도 15는 본 출원의 실시 예에 따른 컨트롤러를 포함하는 메모리 디바이스의 동작을 도시하는 플로우챠트이다. 예를 들어, 도 15는 도 14a 및 도 14b에 도시된 컨트롤러 1405와, 제1 메모리 1460A, 제2 메모리 1460B 및 제3 메모리 1460C를 포함하는 메모리 디바이스 1400에서의 동작을 도시한다.
도 15를 참조하면, 컨트롤러 1405는 호스트로부터의 요청을 수신하고, 상기 수신된 요청에 대한 어드레스가 캐시 테이블 1414에 있는지 여부를 확인할 수 있다(1510).
상기 수신된 요청에 대한 어드레스가 캐시 테이블 1414로부터 확인되는 경우(1510, Yes), 컨트롤러 1405는 캐시 히트(cache hit)인 것으로 판단할 수 있다(1520,1530).
제1 캐시로서의 제3 메모리 1460C에 대한 캐시 히트(cache hit)인 경우(1520), 컨트롤러 1405는 제1 메모리 1460A에 대한 제1 캐시인 제3 메모리 1460C를 통하여 요청이 수행되도록 할 수 있다(1525).
제2 캐시로서의 제2 메모리 1460B에 대한 캐시 히트(cache hit)인 경우(1530), 컨트롤러 1405는 제1 메모리 1460A에 대한 제2 캐시인 제2 메모리 1460B를 통하여 요청이 수행되도록 할 수 있다(1535).
이와 달리 상기 요청에 대한 어드레스가 캐시 테이블 1414로부터 확인되지 않는 경우(1510, No), 컨트롤러 905는 캐시 미스(cache miss)인 것으로 판단할 수 있다(1540). 캐시 미스(cache miss)인 경우, 컨트롤러 1405는 제1 메모리 1460A를 통하여 요청이 수행되도록 할 수 있다(1542).
제1 메모리 1460A를 통하여 요청을 수행한 이후에 컨트롤러 1405는 캐시 카피(cache copy) 및 캐시 테이블 업데이트(cache table update) 동작을 수행할 수 있다. 컨트롤러 1405는 제1 메모리 1460A로부터 제1 캐시인 제3 메모리 1460C로의 캐시 카피 동작을 우선적으로 수행하고, 수행 결과에 따라 캐시 테이블 1414에 대한 업데이트 동작을 수행할 수 있다(1550). 제1 캐시인 제3 메모리 1460C에서의 저장 공간의 여유가 없는 경우, 컨트롤러 1405는 제1 메모리 1460A로부터 제2 캐시인 제2 메모리 1460B로의 캐시 카피 동작을 수행하고, 수행 결과에 따라 캐시 테이블 1414에 대한 업데이트 동작을 수행할 수 있다(1555).
전술한 바와 같이, 본 출원의 실시 예들은 동일한 종류 또는 서로 다른 종류의 다수의 메모리들을 포함하는 통합 메모리 디바이스가 다양한 성능이나 특성을 제공할 수 있도록 하는 방안을 제안한다. 본 출원의 실시 예들은 저온 또는 극저온(cryogenic)과 같이 온도가 낮은 환경에서 동작하는 경우, 휘발성 메모리(예; DRAM)이 비휘발성 메모리와 가까운 특성을 가진다는 점을 고려하여, 이러한 휘발성 메모리를 긴급 처리가 필요한 요청을 위해 사용하거나, 다른 보통의 휘발성 메모리를 위한 캐시로서 사용하는 방안을 제안함으로써, 다양한 성능이나 특성을 제공할 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
Claims (50)
- 제1 온도의 환경에 있는 제1 메모리;
상기 제1 온도보다 낮은 제2 온도의 환경에 있는 제2 메모리; 및
요청에 응답하여 상기 제1 메모리 또는 상기 제2 메모리를 선택적으로 액세스하는 컨트롤러를 포함하는, 통합 메모리 디바이스.
- 청구항 1에 있어서, 상기 제1 메모리와 상기 제2 메모리는 동일한 종류인, 통합 메모리 디바이스.
- 청구항 2에 있어서, 상기 제1 온도는 실온을 포함하고, 상기 제2 온도는 저온을 포함하는, 통합 메모리 디바이스.
- 청구항 3에 있어서, 상기 제1 온도는 25°C를 포함하고, 상기 제2 온도는 -40°C를 포함하는, 통합 메모리 디바이스.
- 청구항 2에 있어서, 상기 제1 온도는 실온을 포함하고, 상기 제2 온도는 극저온을 포함하는, 통합 메모리 디바이스.
- 청구항 5에 있어서, 상기 제1 온도는 25°C를 포함하고, 상기 제2 온도는 -197°C를 포함하는, 통합 메모리 디바이스.
- 청구항 2에 있어서, 상기 제1 온도는 저온을 포함하고, 상기 제2 온도는 극저온을 포함하는, 통합 메모리 디바이스.
- 청구항 7에 있어서, 상기 제1 온도는 -40°C를 포함하고, 상기 제2 온도는 -197°C를 포함하는, 통합 메모리 디바이스.
- 청구항 2에 있어서,
상기 제1 온도의 환경에서 상기 제1 메모리는 제1 특성을 가지며,
상기 제2 온도의 환경에서 상기 제2 메모리는 상기 제1 특성보다 우수한 제2 특성을 가지는, 통합 메모리 디바이스.
- 청구항 9에 있어서, 상기 제1 특성 및 상기 제2 특성은 데이터 액세스 속도, 리프레시 기간 및 저장 정보의 누설량 중의 적어도 하나를 포함하는, 통합 메모리 디바이스.
- 청구항 2에 있어서, 상기 제1 메모리 및 상기 제2 메모리는 서로 다른 메모리 블레이드, 트레이 및 랙 중의 하나에 실장되는, 통합 메모리 디바이스.
- 청구항 2에 있어서, 상기 컨트롤러는,
상기 요청이 제1 우선 순위의 요청인 경우 상기 제2 메모리를 액세스하고,
상기 요청이 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청인 경우 상기 제1 메모리를 액세스하는, 통합 메모리 디바이스.
- 청구항 2에 있어서, 상기 컨트롤러는,
상기 제2 메모리를 상기 제1 메모리를 위한 캐시로서 사용하는, 통합 메모리 디바이스.
- 청구항 13에 있어서, 상기 컨트롤러는,
상기 캐시에 대한 어드레스를 저장하고 있는 캐시 테이블; 및
상기 요청에 대한 어드레스가 상기 캐시 테이블로부터 확인되는 경우, 상기 제2 메모리를 액세스하고, 상기 요청에 대한 어드레스가 상기 캐시 테이블로부터 확인되지 않는 경우, 상기 제1 메모리를 액세스하는 에이전트를 포함하는, 통합 메모리 디바이스.
- 청구항 14에 있어서, 상기 컨트롤러는,
상기 제1 메모리와의 인터페이스를 위한 제1 메모리 인터페이스;
상기 제2 메모리와의 인터페이스를 위한 제2 메모리 인터페이스; 및
상기 요청을 수신하기 위한 입/출력 인터페이스를 더 포함하는, 통합 메모리 디바이스.
- 제1 온도의 환경에 있는 제1 메모리;
상기 제1 온도보다 낮은 제2 온도의 환경에 있는 제2 메모리;
상기 제2 온도보다 낮은 제3 온도의 환경에 있는 제3 메모리; 및
요청에 응답하여 상기 제1 메모리, 상기 제2 메모리 및 상기 제3 메모리 중의 하나를 선택적으로 액세스하는 컨트롤러를 포함하는, 통합 메모리 디바이스.
- 청구항 16에 있어서, 상기 제1 메모리와 상기 제2 메모리는 동일한 종류인, 통합 메모리 디바이스.
- 청구항 17에 있어서, 상기 제1 온도는 실온을 포함하고, 상기 제2 온도는 저온을 포함하고, 상기 제3 온도는 극저온을 포함하는, 통합 메모리 디바이스.
- 청구항 18에 있어서, 상기 제1 온도는 25°C를 포함하고, 상기 제2 온도는 -40°C를 포함하고, 상기 제3 온도는 -197°C를 포함하는, 통합 메모리 디바이스.
- 청구항 17에 있어서,
상기 제1 온도의 환경에서 상기 제1 메모리는 제1 특성을 가지며,
상기 제2 온도의 환경에서 상기 제2 메모리는 제1 특성보다 우수한 제2 특성을 가지며,
상기 제3 온도의 환경에서 상기 제3 메모리는 상기 제2 특성보다 우수한 제3 특성을 가지는, 통합 메모리 디바이스.
- 청구항 20에 있어서, 상기 제1 특성, 상기 제2 특성 및 상기 제3 특성은 데이터 액세스 속도, 리프레시 기간 및 저장 정보의 누설량 중의 적어도 하나를 포함하는, 통합 메모리 디바이스.
- 청구항 17에 있어서, 상기 제1 메모리, 상기 제2 메모리 및 상기 제3 메모리는 서로 다른 메모리 블레이드, 트레이 및 랙 중의 하나에 실장되는, 통합 메모리 디바이스.
- 청구항 17에 있어서, 상기 컨트롤러는,
상기 요청이 제1 우선 순위의 요청인 경우 상기 제3 메모리를 액세스하고,
상기 요청이 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청인 경우 상기 제2 메모리를 액세스하고,
상기 요청이 상기 제2 우선 순위보다 낮은 제3 우선 순위의 요청인 경우 상기 제1 메모리를 액세스하는, 통합 메모리 디바이스.
- 청구항 17에 있어서, 상기 컨트롤러는,
상기 제3 메모리를 상기 제1 메모리를 위한 메인 캐시로서 사용하고, 상기 제2 메모리를 상기 제1 메모리를 위한 서브 캐시로서 사용하는, 통합 메모리 디바이스.
- 청구항 24에 있어서, 상기 컨트롤러는,
상기 메인 캐시 및 상기 서브 캐시에 대한 어드레스를 저장하고 있는 캐시 테이블; 및
상기 요청에 대한 어드레스가 상기 캐시 테이블로부터 확인되는 경우, 상기 제2 메모리 또는 상기 제3 메모리를 액세스하고, 상기 요청에 대한 어드레스가 상기 캐시 테이블로부터 확인되지 않는 경우, 상기 제1 메모리를 액세스하는 데이터 컨트롤러를 포함하는, 통합 메모리 디바이스.
- 청구항 25에 있어서, 상기 컨트롤러는,
상기 제1 메모리와의 인터페이스를 위한 제1 메모리 인터페이스;
상기 제2 메모리와의 인터페이스를 위한 제2 메모리 인터페이스;
상기 제3 메모리와의 인터페이스를 위한 제3 메모리 인터페이스; 및
상기 요청을 수신하기 위한 입/출력 인터페이스를 더 포함하는, 통합 메모리 디바이스.
- 제1 온도의 환경에 있는 제1 메모리 및 상기 제1 온도보다 낮은 제2 온도의 환경에 있는 제2 메모리를 포함하는 통합 메모리 디바이스의 동작 방법에 있어서:
요청을 수신하는 과정; 및
상기 요청에 응답하여 상기 제1 메모리 또는 상기 제2 메모리를 선택적으로 액세스하는 과정을 포함하는, 방법.
- 청구항 27에 있어서, 상기 제1 메모리와 상기 제2 메모리는 동일한 종류인, 방법.
- 청구항 28에 있어서, 상기 제1 온도는 실온을 포함하고, 상기 제2 온도는 저온을 포함하는, 방법.
- 청구항 28에 있어서, 상기 제1 온도는 25°C를 포함하고, 상기 제2 온도는 -40°C를 포함하는, 방법.
- 청구항 28에 있어서, 상기 제1 온도는 실온을 포함하고, 상기 제2 온도는 극저온을 포함하는, 방법.
- 청구항 31에 있어서, 상기 제1 온도는 25°C를 포함하고, 상기 제2 온도는 -197°C를 포함하는, 방법.
- 청구항 28에 있어서, 상기 제1 온도는 저온을 포함하고, 상기 제2 온도는 극저온을 포함하는, 방법.
- 청구항 33에 있어서, 상기 제1 온도는 -40°C를 포함하고, 상기 제2 온도는 -197°C를 포함하는, 방법.
- 청구항 28에 있어서,
상기 제1 온도의 환경에서 상기 제1 메모리는 제1 특성을 가지며,
상기 제2 온도의 환경에서 상기 제2 메모리는 상기 제1 특성보다 우수한 제2 특성을 가지는, 방법.
- 청구항 35에 있어서, 상기 제1 특성 및 상기 제2 특성은 데이터 액세스 속도, 리프레시 기간 및 저장 정보의 누설량 중의 적어도 하나를 포함하는, 방법.
- 청구항 28에 있어서, 상기 제1 메모리 및 상기 제2 메모리는 서로 다른 메모리 블레이드, 트레이 및 랙 중의 하나에 실장되는, 방법.
- 청구항 28에 있어서, 상기 액세스하는 과정은,
상기 요청이 제1 우선 순위의 요청인 경우 상기 제2 메모리를 액세스하고,
상기 요청이 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청인 경우 상기 제1 메모리를 액세스하는 과정을 포함하는, 방법.
- 청구항 28에 있어서, 상기 제2 메모리는 상기 제1 메모리를 위한 캐시로서 사용되는, 방법.
- 청구항 39에 있어서, 상기 액세스하는 과정은,
상기 요청에 대한 어드레스가 상기 제2 메모리에 대한 어드레스인 경우 상기 제2 메모리를 액세스하고,
상기 요청에 대한 어드레스가 상기 제1 메모리에 대한 어드레스인 경우 상기 제1 메모리를 액세스하는 과정을 포함하는, 방법. - 제1 온도의 환경에 있는 제1 메모리; 상기 제1 온도보다 낮은 제2 온도의 환경에 있는 제2 메모리; 및 상기 제2 온도보다 낮은 제3 온도의 환경에 있는 제3 메모리를 포함하는 통합 메모리 디바이스의 동작 방법에 있어서:
요청을 수신하는 과정; 및
상기 요청에 응답하여 상기 제1 메모리, 상기 제2 메모리 및 상기 제3 메모리 중의 하나를 선택적으로 액세스하는 과정을 포함하는, 방법.
- 청구항 41에 있어서, 상기 제1 메모리와 상기 제2 메모리는 동일한 종류인, 방법.
- 청구항 42에 있어서, 상기 제1 온도는 실온을 포함하고, 상기 제2 온도는 저온을 포함하고, 상기 제3 온도는 극저온을 포함하는, 방법.
- 청구항 43에 있어서, 상기 제1 온도는 25°C를 포함하고, 상기 제2 온도는 -40°C를 포함하고, 상기 제3 온도는 -197°C를 포함하는, 방법.
- 청구항 42에 있어서,
상기 제1 온도의 환경에서 상기 제1 메모리는 제1 특성을 가지며,
상기 제2 온도의 환경에서 상기 제2 메모리는 제1 특성보다 우수한 제2 특성을 가지며,
상기 제3 온도의 환경에서 상기 제3 메모리는 상기 제2 특성보다 우수한 제3 특성을 가지는, 방법.
- 청구항 45에 있어서, 상기 제1 특성, 상기 제2 특성 및 상기 제3 특성은 데이터 액세스 속도, 리프레시 기간 및 저장 정보의 누설량 중의 적어도 하나를 포함하는, 방법.
- 청구항 42에 있어서, 상기 제1 메모리, 상기 제2 메모리 및 상기 제3 메모리는 서로 다른 메모리 블레이드, 트레이 및 랙 중의 하나에 실장되는, 방법.
- 청구항 42에 있어서, 상기 액세스하는 과정은,
상기 요청이 제1 우선 순위의 요청인 경우 상기 제3 메모리를 액세스하고,
상기 요청이 상기 제1 우선 순위보다 낮은 제2 우선 순위의 요청인 경우 상기 제2 메모리를 액세스하고,
상기 요청이 상기 제2 우선 순위보다 낮은 제3 우선 순위의 요청인 경우 상기 제1 메모리를 액세스하는 과정을 포함하는, 방법.
- 청구항 42에 있어서, 상기 제3 메모리는 상기 제1 메모리를 위한 메인 캐시로서 사용되고, 상기 제2 메모리는 상기 제1 메모리를 위한 서브 캐시로서 사용되는, 방법.
- 청구항 49에 있어서, 상기 액세스하는 과정은,
상기 요청에 대한 어드레스가 상기 제3 메모리에 대한 어드레스인 경우 상기 제3 메모리를 액세스하고,
상기 요청에 대한 어드레스가 상기 제2 메모리에 대한 어드레스인 경우 상기 제2 메모리를 액세스하고,
상기 요청에 대한 어드레스가 상기 제1 메모리에 대한 어드레스인 경우 상기 제1 메모리를 액세스하는 과정을 포함하는, 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170153774A KR102433549B1 (ko) | 2017-11-17 | 2017-11-17 | 통합 메모리 디바이스 및 그의 동작 방법 |
US16/136,069 US10691625B2 (en) | 2017-11-17 | 2018-09-19 | Converged memory device and operation method thereof |
US16/858,455 US11544168B2 (en) | 2017-10-30 | 2020-04-24 | Memory system |
US18/060,524 US20230094144A1 (en) | 2017-10-30 | 2022-11-30 | Memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170153774A KR102433549B1 (ko) | 2017-11-17 | 2017-11-17 | 통합 메모리 디바이스 및 그의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190056626A true KR20190056626A (ko) | 2019-05-27 |
KR102433549B1 KR102433549B1 (ko) | 2022-08-19 |
Family
ID=66533035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170153774A KR102433549B1 (ko) | 2017-10-30 | 2017-11-17 | 통합 메모리 디바이스 및 그의 동작 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10691625B2 (ko) |
KR (1) | KR102433549B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220076726A1 (en) * | 2020-09-04 | 2022-03-10 | Micron Technology, Inc. | Methods and apparatus for probabilistic refresh in volatile memory devices |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130227268A1 (en) * | 2011-08-30 | 2013-08-29 | Makoto Ichida | Memory system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI463321B (zh) | 2007-01-10 | 2014-12-01 | Mobile Semiconductor Corp | 用於改善外部計算裝置效能的調適性記憶體系統 |
US9508607B2 (en) * | 2012-07-20 | 2016-11-29 | Qualcomm Incorporated | Thermal management of tightly integrated semiconductor device, system and/or package |
US9851923B2 (en) | 2013-12-30 | 2017-12-26 | Teradata Us, Inc. | Management of data in multi-storage systems that can include non-volatile and volatile storages |
US9489146B2 (en) * | 2014-12-09 | 2016-11-08 | Sandisk Technologies Llc | Memory system and method for selecting memory dies to perform memory access operations in based on memory die temperatures |
-
2017
- 2017-11-17 KR KR1020170153774A patent/KR102433549B1/ko active IP Right Grant
-
2018
- 2018-09-19 US US16/136,069 patent/US10691625B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130227268A1 (en) * | 2011-08-30 | 2013-08-29 | Makoto Ichida | Memory system |
Also Published As
Publication number | Publication date |
---|---|
US10691625B2 (en) | 2020-06-23 |
KR102433549B1 (ko) | 2022-08-19 |
US20190155766A1 (en) | 2019-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102414047B1 (ko) | 통합 메모리 디바이스 및 그의 동작 방법 | |
KR20190099591A (ko) | 통합 메모리 디바이스 및 그의 동작 방법 | |
JP7449063B2 (ja) | メモリシステム及びメモリシステムの動作方法 | |
US11461024B2 (en) | Computing system and operating method thereof | |
US20200348871A1 (en) | Memory system, operating method thereof and computing system for classifying data according to read and write counts and storing the classified data in a plurality of types of memory devices | |
KR102433549B1 (ko) | 통합 메모리 디바이스 및 그의 동작 방법 | |
KR102692942B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR102446716B1 (ko) | 통합 메모리 디바이스 및 그의 동작 방법 | |
KR102684940B1 (ko) | 데이터 처리 시스템 | |
KR102394695B1 (ko) | 메모리 시스템 및 그것의 동작방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |