KR102611987B1 - 패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템 - Google Patents
패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템 Download PDFInfo
- Publication number
- KR102611987B1 KR102611987B1 KR1020150163982A KR20150163982A KR102611987B1 KR 102611987 B1 KR102611987 B1 KR 102611987B1 KR 1020150163982 A KR1020150163982 A KR 1020150163982A KR 20150163982 A KR20150163982 A KR 20150163982A KR 102611987 B1 KR102611987 B1 KR 102611987B1
- Authority
- KR
- South Korea
- Prior art keywords
- bandwidth
- host
- fabric network
- storage devices
- interface
- Prior art date
Links
- 239000004744 fabric Substances 0.000 title claims abstract description 126
- 238000000034 method Methods 0.000 title claims description 13
- 238000012544 monitoring process Methods 0.000 claims abstract description 23
- 238000007726 management method Methods 0.000 claims abstract description 19
- 238000004891 communication Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 98
- 238000012545 processing Methods 0.000 description 8
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 7
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 5
- 101100058964 Arabidopsis thaliana CALS5 gene Proteins 0.000 description 5
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 5
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 101000882406 Staphylococcus aureus Enterotoxin type C-1 Proteins 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3209—Monitoring remote activity, e.g. over telephone lines or network connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3268—Power saving in hard disk drive
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3278—Power saving in modem or I/O interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3027—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3041—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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
- G06F11/3062—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 where the monitored property is the power consumption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/328—Computer systems status display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/349—Performance evaluation by tracing or monitoring for interfaces, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템에 관하여 개시한다. 패브릭 네트워크를 이용한 파워 관리 방법은 하나 이상의 호스트와 하나 이상의 스토리지 디바이스들이 접속되는 패브릭 네트워크에서 상기 호스트에 연결되는 외부 인터페이스 상태와 상기 스토리지 디바이스에 연결되는 내부 인터페이스 상태를 모니터링하는 단계, 상기 모니터링 결과에 기초하여 상기 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출하는 단계 및, 상기 산출된 내부 인터페이스 밴드위스의 합산 정보가 상기 호스트에 연결되는 외부 인터페이스 밴드위스를 기준으로 임계 범위 내에 포함되도록 상기 내부 인터페이스 밴드위스를 조정하는 단계를 포함한다.
Description
본 발명은 패브릭 네트워크 시스템 및 패브릭 네트워크를 이용하는 장치에 관한 것으로서, 자세하게는 패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템에 관한 것이다.
일반적으로, 패브릭 네트워크(Fabric Network)로 스토리지 시스템을 구성하는 경우에 외부 호스트 디바이스로 연결되는 외부 인터페이스 밴드위스(bandwidth) 대비 내부의 스토리지 디바이스를 연결하는 내부 인터페이스 밴드위스의 총합을 상당히 높게 설계한다. 이에 따라서, 패브릭 네트워크에 접속되는 스토리지 디바이스들의 소비 전력이 필요 이상으로 커지는 문제점이 있었다.
본 발명의 목적은 호스트에서 요구하는 최대 I/O(Input/Output) 성능을 유지하면서 스토리지 디바이스들의 소비 전력을 줄이기 위한 패브릭 네트워크를 이용한 파워 관리 방법을 제공하는데 있다.
본 발명의 다른 목적은 호스트에서 요구하는 최대 I/O 성능을 유지하면서 스토리지 디바이스들의 소비 전력을 줄이기 위한 패브릭 네트워크 시스템을 제공하는데 있다.
본 발명의 기술적 사상의 일면에 따른 패브릭 네트워크를 이용한 파워 관리 방법은 하나 이상의 호스트와 하나 이상의 스토리지 디바이스들이 접속되는 패브릭 네트워크에서 상기 호스트에 연결되는 외부 인터페이스 상태와 상기 스토리지 디바이스에 연결되는 내부 인터페이스 상태를 모니터링하는 단계, 상기 모니터링 결과에 기초하여 상기 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출하는 단계 및, 상기 산출된 내부 인터페이스 밴드위스의 합산 정보가 상기 호스트에 연결되는 외부 인터페이스 밴드위스를 기준으로 임계 범위 내에 포함되도록 상기 내부 인터페이스 밴드위스를 조정하는 단계를 포함한다.
발명의 기술적 사상의 다른 면에 따른 패브릭 네트워크 시스템은 복수의 포트들을 갖고, 상기 포트들에 접속되는 호스트와 스토리지 디바이스들 사이의 통신을 지원하는 패브릭 네트워크 유닛, 상기 호스트에 연결되는 외부 인터페이스 상태와 상기 스토리지 디바이스에 연결되는 내부 인터페이스 상태를모니터링하는 모니터링 유닛 및, 상기 모니터링된 외부 인터페이스 상태와상기 내부 인터페이스 상태에기초하여 상기 호스트에서 요구하는 최대 밴드위스는 유지하면서 상기 스토리지 디바이스들의 소비 전력은 절감되도록 상기 스토리지 디바이스들에 연결되는 내부 인터페이스 밴드위스를 조정하는 제어 유닛을 포함한다.
본 발명에 따르면 호스트에서 요구하는 최대 I/O 성능을 유지하면서 스토리지 디바이스들의 인터페이스 밴드위스를 낮추도록 패브릭 네트워크에서의 내부 인터페이스 밴드위스를 조정함으로써, 스토리지 시스템의 소비 전력을 절감할 수 있는 효과가 발생된다.
도 1은 본 발명의 기술적 사상에 따른 패브릭 네트워크 시스템 구성의 일 예를 보여준다.
도 2는 도 1에 도시된 패브릭 네트워크 유닛의 세부 구성의 일 예를 보여준다.
도 3a는 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템 구성의 일 예를 보여준다.
도 3b는 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템 구성의 다른 예를 보여준다.
도 4는 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템 구성에서의 스토리지 디바이스들의 인터페이스 밴드위스를 그룹별로 관리하는 방법을 설명하기 위한 도면이다.
도 5는 도 3a 또는 도 3b에 도시된 호스트의 구성을 예시적으로 보여준다.
도 6은 도 3a 또는 도 3b에 도시된 스토리지 디바이스의 구성을 예시적으로 보여준다.
도 7은 도 6에 도시된 메모리 컨트롤러의 구성을 예시적으로 보여준다.
도 8은 도 6에 도시된 메모리 디바이스의 세부 구성의 일 예를 보여준다.
도 9는 도 8에 도시된 메모리 셀 어레이의 일 예를 보여준다.
도 10은 도 9에 도시된 메모리 셀 어레이에 포함된 제1메모리 블록의 일 예를 나타내는 회로도이다.
도 11은 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템에서의 호스트에 접속되는 스토리지 디바이스의 개수에 따른 성능을 보여주는 그래프이다.
도 12는 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템에서의 호스트에 접속되는 스토리지 디바이스의 개수에 따른 하나의 스토리지 디바이스에서의 파워 소모량을 보여주는 그래프이다.
도 13은 본 발명의 실시 예에 따른 패브릭 네트워크 시스템을 채용하는 컴퓨팅 시스템에서의 인터페이스 밴드위스에 따른 아이들 파워 소모량을 보여주는 그래프이다.
도 14는 본 발명의 실시 예에 따른 패브릭 네트워크 시스템을 채용하는 컴퓨팅 시스템에서의 인터페이스 밴드위스에 따른 시이퀀셜 리드/라이트 성능을 보여주는 그래프이다.
도 15는 본 발명의 실시 예에 따른 패브릭 네트워크 시스템을 채용하는 컴퓨팅 시스템에서의 인터페이스 밴드위스에 따른 랜덤 리드/라이트 성능을 보여주는 그래프이다.
도 16은 본 발명의 실시 예에 따른 패브릭 네트워크를 이용한 파워 관리 방법의 흐름도의 일 예를 보여준다.
도 17은 본 발명의 실시 예에 따른 패브릭 네트워크를 이용한 파워 관리 방법의 흐름도의 다른 예를 보여준다.
도 2는 도 1에 도시된 패브릭 네트워크 유닛의 세부 구성의 일 예를 보여준다.
도 3a는 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템 구성의 일 예를 보여준다.
도 3b는 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템 구성의 다른 예를 보여준다.
도 4는 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템 구성에서의 스토리지 디바이스들의 인터페이스 밴드위스를 그룹별로 관리하는 방법을 설명하기 위한 도면이다.
도 5는 도 3a 또는 도 3b에 도시된 호스트의 구성을 예시적으로 보여준다.
도 6은 도 3a 또는 도 3b에 도시된 스토리지 디바이스의 구성을 예시적으로 보여준다.
도 7은 도 6에 도시된 메모리 컨트롤러의 구성을 예시적으로 보여준다.
도 8은 도 6에 도시된 메모리 디바이스의 세부 구성의 일 예를 보여준다.
도 9는 도 8에 도시된 메모리 셀 어레이의 일 예를 보여준다.
도 10은 도 9에 도시된 메모리 셀 어레이에 포함된 제1메모리 블록의 일 예를 나타내는 회로도이다.
도 11은 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템에서의 호스트에 접속되는 스토리지 디바이스의 개수에 따른 성능을 보여주는 그래프이다.
도 12는 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템에서의 호스트에 접속되는 스토리지 디바이스의 개수에 따른 하나의 스토리지 디바이스에서의 파워 소모량을 보여주는 그래프이다.
도 13은 본 발명의 실시 예에 따른 패브릭 네트워크 시스템을 채용하는 컴퓨팅 시스템에서의 인터페이스 밴드위스에 따른 아이들 파워 소모량을 보여주는 그래프이다.
도 14는 본 발명의 실시 예에 따른 패브릭 네트워크 시스템을 채용하는 컴퓨팅 시스템에서의 인터페이스 밴드위스에 따른 시이퀀셜 리드/라이트 성능을 보여주는 그래프이다.
도 15는 본 발명의 실시 예에 따른 패브릭 네트워크 시스템을 채용하는 컴퓨팅 시스템에서의 인터페이스 밴드위스에 따른 랜덤 리드/라이트 성능을 보여주는 그래프이다.
도 16은 본 발명의 실시 예에 따른 패브릭 네트워크를 이용한 파워 관리 방법의 흐름도의 일 예를 보여준다.
도 17은 본 발명의 실시 예에 따른 패브릭 네트워크를 이용한 파워 관리 방법의 흐름도의 다른 예를 보여준다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 기술적 사상에 따른 패브릭네트워크 시스템(100) 구성의 일 예를 보여준다.
도 1에 도시된 바와 같이, 패브릭 네트워크 시스템(100)은 패브릭 네트워크 유닛(110), 모니터링 유닛(120) 및 제어 유닛(130)을 포함한다.
패브릭 네트워크 유닛(110)은 복수개의 포트들(P1 ~ Pn)을 구비하고, 포트들(P1 ~ Pn)에 접속된 디바이스들 사이의 통신을 지원한다. 포트들(P1 ~ Pn)에는 컴퓨터, 셋톱 박스(set-top-box), 서버, 디지털 카메라, 네비게이션 장치, 모바일 장치, 스토리지 디바이스 등이 접속될 수 있다. 예로서, 포트들(P1 ~ Pn)에는 하나 이상의 호스트와 하나 이상의 스토리지 디바이스들이 각각 접속될 수 있다.
패브릭 네트워크 유닛(110)은 하나 이상의 스위칭 노드들을 통하여 포트들 사이의 통신 연결을 수행한다. 복수 개의 스위칭 노드들로 구성되는 경우에 패브릭 네트워크 유닛(110)의 포트들(P1 ~ Pn)은 복수의 경로들을 통하여 통신 연결되는 것이 가능하다.
모니터링 유닛(120)은 패브릭 네트워크 유닛(110)의 포트들(P1 ~ Pn)에 접속되는 호스트와의 외부 인터페이스 상태 및 패브릭 네트워크 유닛(110)의 포트들(P1 ~ Pn)에 접속되는 스토리지 디바이스와의 내부 인터페이스 상태를 모니터링한다. 본 발명의 실시 예에서는 패브릭 네트워크 유닛(110)과 호스트 사이의 인터페이스를 외부 인터페이스로 정의하고, 패브릭 네트워크 유닛(110)과 스토리지 디바이스 사이의 인터페이스를 내부 인터페이스로 정의하였다.
예로서, 모니터링 유닛(120)은 패브릭 네트워크 유닛(110)의 포트들(P1 ~ Pn)에 접속된 호스트로부터 수신되는 외부 인터페이스 밴드위스 구성(external interface bandwidth configuration) 정보에 기초하여 외부 인터페이스 밴드위스를 검출할 수 있다. 그리고, 모니터링 유닛(120)은 패브릭 네트워크 유닛(110)의 포트들(P1 ~ Pn)에 접속된 스토리지 디바이스로부터 수신되는 내부 인터페이스 밴드위스 구성(internal interface bandwidth configuration) 정보에 기초하여 내부 인터페이스 밴드위스를 검출할 수 있다.
제어 유닛(130)은 모니터링 유닛(120)에서의 모니터링된 외부 인터페이스 상태와 내부 인터페이스 상태에 기초하여 스토리지 디바이스들에 연결되는 내부 인터페이스 밴드위스(bandwidth)를 조정한다.
예로서, 제어 유닛(130)은 패브릭 네트워크 유닛(110)에 접속된 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출한다. 그리고, 제어 유닛(130)은 산출된 내부 인터페이스 밴드위스의 합산 정보가 호스트에 연결되는 외부 인터페이스 밴드위스를 기준으로 임계 범위 내에 포함되도록 내부 인터페이스 밴드위스를 조정한다.
예로서, 패브릭 네트워크 유닛(110)에 복수개의 호스트들이 접속되는 경우에, 제어 유닛(130)은 호스트 별로 해당 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출한다. 그리고, 제어 유닛(130)은 호스트 별로 산출된 내부 인터페이스 밴드위스의 합산 정보가 호스트 각각에 연결되는 외부 인터페이스 밴드위스를 기준으로 한 임계 범위 내에 포함되도록 내부 인터페이스 밴드위스를 조정한다.
여기에서, 외부 인터페이스 밴드위스를 기준으로 한 임계 범위는 패브릭 네트워크 유닛(110)에 접속된 스토리지 디바이스의 개수, 내부 인터페이스 밴드위스에 따른 I/O(Input/Output) 성능 및 스토리지 디바이스들의 소비 전력 사이의 상관 관계에 기초하여 결정될 수 있다.
예로서, 외부 인터페이스 밴드위스를 기준으로 한 임계 범위의 하한 밴드위스는 해당 호스트의 외부 인터페이스 밴드위스에 제1임계값을 더한 값으로설정하고, 임계 범위의 상한 밴드위스는 해당 호스트의 외부 인터페이스 밴드위스에 제2임계값을 더한 값으로설정할 수 있다. 여기에서, 제2임계값은 제1임계값보다 크게 결정된다.
예로서, 제1임계값 및 제2임계값은 해당 호스트의 외부 인터페이스 밴드위스에 따른 최대 I/O(Input/Output) 성능은 유지하면서 해당 호스트에 연결된 스토리지 디바이스들의 소비 전력을 감소시키는 조건을 충족시키도록 시뮬레이션 또는 실험 통계를 통하여 결정할 수 있다.
제어 유닛(130)은 패브릭 네트워크 유닛(110)에 접속되는 스토리지 디바이스들을 밴드위스에 따라서 동일한 밴드위스 별로 그룹핑 처리한다. 그리고, 제어 유닛(130)은 패브릭 네트워크 유닛(110)에 접속되는 호스트들이 요구하는 밴드위스에 상응하도록 밴드위스 별로 그룹핑된 스토리지들을 호스트 별로 다르게 매핑 처리할 수 있다. 예로서, 제어 유닛(130)은 산출된 내부 인터페이스 밴드위스의 합산 정보 및 호스트에 연결되는 외부 인터페이스 밴드위스에 기초하여 밴드위스 별 그룹 단위로 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스를 조정할 수도 있다.
도 2는 도 1에 도시된 패브릭 네트워크 유닛(110)의 세부 구성의 일 예를 보여준다.
도 2에 도시된 바와 같이, 패브릭 네트워크 유닛(110)은 복수개의 스위칭 노드들(N1 ~ N18)로 형성될 수 있다. 도 2의 실시 예에서는 스위칭 노드들(N1 ~ N18)의 개수를 18개로 설정하였으나, 패브릭 네트워크 유닛(110)에 접속되는 디바이스들의 개수를 고려하여 스위칭 노드들(N1 ~ N18)의 개수를 이보다 적거나 크게 설정할 수 있다.
스위칭 노드들(N1 ~ N18) 각각은 패브릭 스위치를 포함하고 있으며, 스위칭 노드들(N1 ~ N18) 각각은 복수의 경로들을 상호 연결되는 구조를 갖는다. 스위칭 노드들(N1 ~ N18) 각각에 포함된 패브릭 스위치는 스위칭 노드들(N1 ~ N18) 사이의 통신 연결이 가능해지도록 통신 경로를 제어하는 동작을 수행할 수 있다.
스위칭 노드들(N1 ~ N18)의 일부 또는 전체는 호스트 또는 디바이스들이 접속되는 포트들(P1 ~ Pn)로 할당될 수 있다.
도 3a는 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템 구성의 일 예(1000A)를 보여준다.
도 3a에 도시된 바와 같이, 컴퓨팅 시스템(1000A)은 호스트(1100) 및 스토리지 시스템(1200)을 포함한다. 스토리지 시스템(1200)은 패브릭 네트워크 시스템(100) 및 복수의 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N, 여기에서 N은 2 이상의 정수)을 포함한다.
도 3a의 실시 예에서는 패브릭 네트워크 시스템(100)을 스토리지 시스템(1200)에 포함되도록 구성하였다. 다른 예로서, 패브릭 네트워크 시스템(100)은 스토리지 시스템(1200)에서 분리되어 독립된 구성을 가질 수도 있다. 또 다른 예로서, 패브릭 네트워크 시스템(100)을 호스트(1100)에 포함되도록 구성할 수도 있다. 패브릭 네트워크 시스템(100)에 대해서는 도 1 및 도 2에서 설명하였으므로, 중복적인 설명은 피하기로 한다.
호스트(1100)는 패브릭 네트워크 시스템(100)을 통하여 접속되는 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)과 통신할 수 있는 하드웨어 및 소프트웨어를 포함한다. 그리고, 호스트(1100)는 다양한 연산 처리 동작을 수행하기 위한 하드웨어 및 소프트웨어를 포함할 수 있다.
예로서, 호스트(1100)는 패브릭 네트워크 시스템(100)을 통하여 접속되는 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)에 데이터를 쓰거나, 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)로부터 데이터를 읽어내는 동작을 수행할 수 있다. 또한, 호스트(1100)는 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)로부터 읽어낸 데이터를 이용하여 다양한 연산 처리 동작을 수행할 수도 있다.
예로서, 호스트(1100)는 패브릭 네트워크 시스템(100)과의 통신 설정 과정에서 외부 인터페이스 밴드위스 구성(external interface bandwidth configuration) 정보를 패브릭 네트워크 유닛(110)으로 전달할 수 있다.
스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)은 패브릭 네트워크 시스템(100)을 통하여 접속되는 호스트(1100)와 통신할 수 있는 하드웨어 및 소프트웨어를 포함한다.
스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)은 패브릭 네트워크 시스템(100)과의 통신을 위한 내부 인터페이스 밴드위스를 조정하기 위한 하드웨어 및 소프트웨어를 포함한다. 패브릭 네트워크 시스템(100)은 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N) 각각의 내부 인터페이스 밴드위스를 조정할 수 있다. 예로서, 패브릭 네트워크 시스템(100)의 제어 유닛(130)을 통하여 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)은 내부 인터페이스 밴드위스 조정 요청을 받을 수 있다. 그러면, 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)은 내부 인터페이스 밴드위스 조정 요청에 기초하여 스토리지 디바이스의 인터페이스 밴드위스를 조정한다.
예로서, 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N) 각각은 SSD(Solid State Drive)로 구현될 수 있다. 다른 예로서, 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N) 각각은 HDD(Hard Disk Drive)로 구현될 수 있다. 또 다른 예로서, 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)은 하나 이상의 SSD와 하나 이상의 HDD로 구현될 수도 있다.
호스트(1100)와 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)을 연결하는 인터페이스를 PCIe(Peripheral Component Interconnect Express) 인터페이스, SAS (Serial Attached Small Computer System) 인터페이스, SATA(Serial Advanced Technology Attachment) 인터페이스 또는 네트워크(Network) 인터페이스 등의 다양한 인터페이스로 구성할 수 있다.
도 3b는 본 발명의 실시 예에 따른 패브릭네트워크 시스템을 채용하는 컴퓨팅 시스템 구성의 다른 예(1000B)를 보여준다.
도 3b에 도시된 바와 같이, 컴퓨팅 시스템(1000B)은 복수개의 호스트들(1100-1 ~ 1100-K, 여기에서 K는 2 이상의 정수) 및 스토리지 시스템(1200)을 포함한다. 스토리지 시스템(1200)은 패브릭네트워크 시스템(100) 및 복수의 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)을 포함한다.
도 3a에 도시된 컴퓨팅 시스템(1000A)은 패브릭 네트워크 시스템(100)에 단일의 호스트(1100)가 접속되는 구성을 갖는데 비하여, 도 3b에 도시된 컴퓨팅 시스템(1000B)은 패브릭네트워크 시스템(100)에 복수개의 호스트들(1100-1 ~ 1100-K)이 접속되는 구성을 갖는다.
호스트들(1100-1 ~ 1100-K) 각각은 패브릭 네트워크 시스템(100)을 통하여 접속되는 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)과 통신할 수 있는 하드웨어 및 소프트웨어를 포함한다. 그리고, 호스트들(1100-1 ~ 1100-K) 각각은 다양한 연산 처리 동작을 수행하기 위한 하드웨어 및 소프트웨어를 포함할 수 있다.
예로서, 호스트들(1100-1 ~ 1100-K) 각각은 패브릭 네트워크 시스템(100)과의 통신 설정 과정에서 외부 인터페이스 밴드위스 구성(external interface bandwidth configuration) 정보를 패브릭 네트워크 유닛(110)으로 전달할 수 있다.
호스트들(1100-1 ~ 1100-K)과 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)을 연결하는 인터페이스를 PCIe(Peripheral Component Interconnect Express) 인터페이스, SAS (Serial Attached Small Computer System) 인터페이스, SATA(Serial Advanced Technology Attachment) 인터페이스 또는 네트워크(Network) 인터페이스 등의 다양한 인터페이스로 구성할 수 있다.
도 4는 본 발명의 실시 예에 따른 패브릭 네트워크 시스템을 채용하는 컴퓨팅 시스템(1000C) 구성에서의 스토리지 디바이스들의 인터페이스 밴드위스를 그룹별로 관리하는 방법을 설명하기 위한 도면이다.
도 4에 도시된 바와 같이, 컴퓨팅 시스템(1000C)은 복수개의 호스트들(1100-1 ~ 1100-K, 여기에서 K는 2 이상의 정수) 및 스토리지 시스템(1200C)을 포함한다. 스토리지 시스템(1200C)은 패브릭 네트워크 시스템(100) 및 스토리지 디바이스 블록(200)을 포함한다.
패브릭 네트워크 시스템(100)의 제어 유닛(130)은 스토리지 디바이스 블록(200)에 포함된 복수의 스토리지 디바이스들을 밴드위스 별로 분류하여 그룹핑 처리한다. 예로서, 제1밴드위스를 가지는 스토리지 디바이스들을 제1그룹의 스토리지 디바이스(200A)로 분류하고, 제2밴드위스를 가지는 스토리지 디바이스들을 제2그룹의 스토리지 디바이스(200B)로 분류하고, 제3밴드위스를 가지는 스토리지 디바이스들을 제3그룹의 스토리지 디바이스(200C)로 분류할 수 있다.
패브릭 네트워크 시스템(100)의 제어 유닛(130)은 패브릭 네트워크 유닛(110)에 접속되는 호스트들 호스트들(1100-1 ~ 1100-K)이 요구하는 밴드위스에 상응하도록 밴드위스 별로 그룹핑된 스토리지들을 호스트 별로 다르게 매핑 처리할 수 있다. 또한, 제어 유닛(130)은 모니터링 유닛(120)에서 모니터링된 인터페이스 상태에 기초하여 밴드위스 그룹 단위로 스토리지 디바이스들의 밴드위스를 조정할 수도 있다. 예로서, 제어 유닛(130)은 스토리지 디바이스들 각각에 대하여 밴드위스 그룹을 변경하는 방식으로 인터페이스 밴드위스를 조정할 수도 있다.
도 5는 도 3a 또는 도 3(b)에 도시된 호스트(1100 또는 1100-1)의 구성을 예시적으로 보여준다.
도 5에 도시된 바와 같이, 호스트(1100 또는 1100-1)는 프로세서(1110), 메모리(1120), 어댑터(1130) 및 버스(1140)를 포함한다.
프로세서(1110), 메모리(1120) 및 어댑터(1130)는 버스(1140)에 접속되어 있으며, 버스(1140)를 통하여 데이터 또는 신호들을 주고 받을 수 있다.
프로세서(1110)는 데이터의 처리 및 구성 수단들의 동작들의 제어를 수행하기 위한 회로, 인터페이스들 또는 프로그램 코드를 포함할 수 있다. 예로서, 프로세서(1110)는 CPU, ARM, 또는 주문형 반도체(ASIC: application specific integrated circuit)를 포함할 수 있다.
메모리(1120)는 호스트(1100 또는 1100-1)의 동작에 필요한 데이터, 명령들 또는 프로그램 코드들을 저장하는 SRAM 또는 DRAM을 포함할 수 있다. 또한, 비휘발성 메모리를 포함할 수도 있다. 메모리(1120)에는 하나 이상의 오퍼레이팅 시스템(operating system)들 및 가상 머신(VM: virtual machine)들을 실행하도록 동작할 수 있는 프로그램 코드들이 저장될 수 있다. 또한, 메모리(1120)에는 가상 머신들을 관리하기 위한 하이퍼바이저(hypervisor)를 실행하는 프로그램 코드들도 저장될 수 있다.
메모리(1120)를 사용하는 프로세서(1110)는 하나 이상의 오퍼레이팅 시스템(operating system)들, 가상 머신(VM: virtual machine)들을 실행하도록 동작할 수 있다. 또한, 프로세서(1110)는 가상 머신들을 관리하기 위한 하이퍼바이저(hypervisor)를 실행하거나 하이퍼바이저에 의해 제어되도록 동작할 수 있다.
프로세서(1110)는 가상 머신들 간의 네트워크 접속성 또는 가상 머신들과 패브릭 네트워크 시스템(100)을 통한 스토리지 디바이스들(200-1 ~ 200-N) 사이의 접속성을 제공하기 위하여 하이퍼바이저에 의해 채용되는 소프트웨어 스위치(software switch)를 포함할 수 있다.
프로세서(1110)는 패브릭 네트워크 시스템(100)과의 통신 설정 과정에서 인터페이스 밴드위스 구성(interface bandwidth configuration) 정보를 패브릭 네트워크 유닛(110)으로 전달할 수 있다.
어댑터(1130)는 호스트(1100 또는1100-1)에 패브릭 네트워크 시스템(100)을 접속시키기 역할을 한다. 예로서, 어댑터(1130)는 호스트 버스 어댑터(Host Bus Adaptor; HBA) 또는 네트워크 어댑터(Network Adaptor)가 적용될 수 있다. 예로서, 호스트 버스 어댑터는 SCSI 어댑터, 파이버 채널 어댑터, 시리얼 ATA 어댑터 등을 포함할 수 있다. 네트워크 어댑터는 링크 수단을 통해 네트워크 디바이스들(200)에 결합될 수 있다. 예로서, 링크 수단은 구리 배선(copper wiring), 광섬유 케이블(fiber optic cabling), 하나 이상의 무선 채널들, 또는 그 조합을 포함할 수 있다. 그리고, 네트워크 어댑터는 하나 이상의 네트워킹 표준들에 따라서 데이터를 송신 및 수신하도록 동작할 수 있는 회로, 인터페이스들, 또는 코드를 포함할 수 있다.
예로서, 어댑터(1130)는 패브릭네트워크 시스템(100)을 통한 스토리지 디바이스들(SD1 ~ SDN; 200-1 ~ 200-N)을 연결하는 인터페이스를 PCIe(Peripheral Component Interconnect Express) 인터페이스, SAS (Serial Attached Small Computer System) 인터페이스, SATA(Serial Advanced Technology Attachment) 인터페이스 또는 네트워크(Network) 인터페이스등의 다양한 인터페이스로 구성할 수 있다.
6은 도 3a 또는 도 3b에 도시된 스토리지 디바이스(200-1)의 구성을 예시적으로 보여준다.
도 6에 도시된 바와 같이, 스토리지 디바이스(200-1)는 메모리 컨트롤러(210) 및 메모리 디바이스(220)를 포함한다.
메모리 디바이스(220)는 하나 이상의 비휘발성 메모리(NVM; 220-1)로 구성될 수 있다. 예로서, 메모리 디바이스(220)에 적용되는 비휘발성 메모리(220-1)는 플래시 메모리뿐만 아니라PRAM(Phase change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등으로 구성될 수 있다. 다른 예로서, 메모리 디바이스(220)는 적어도 하나 이상의 비휘발성 메모리들과 적어도 하나 이상의 휘발성 메모리가 혼합된 형태로 구성될 수 있고, 적어도 두 종류 이상의 비휘발성 메모리들이 혼합된 형태로 구성될 수도 있다.
메모리 컨트롤러(210)는 호스트로부터 수신되는 커맨드에 기초하여 메모리 디바이스(220)에 대한 제어 동작을 수행할 수 있다. 메모리 컨트롤러(210)는 호스트로부터 수신되는 커맨드에 따라서 복수의 채널들(CH1 ~CHM)을 통하여 접속된 메모리 디바이스(220)에 대한 프로그램(또는 쓰기), 독출 및 소거 동작을 제어한다.
메모리 컨트롤러(210)와 메모리 디바이스(220) 사이에는 오퍼레이션 수행에 필요한 신호들을 I/O 처리하기 위한 채널(channel)들이 형성되어 있다. 오퍼레이션 수행에 필요한 신호들은 예로서 커맨드, 어드레스 및 데이터 등이 될 수 있다.
메모리 컨트롤러(210)는 밴드위스 조정 모듈(201)을 포함한다. 밴드위스 조정 모듈(201)은 패브릭네트워크 시스템(100)과의 인터페이스 처리 속도를 조정하기 위한 밴드위스 조정을 수행하는 하드웨어 및 소프트웨어를 포함한다. 메모리 컨트롤러(210)는 패브릭 네트워크 시스템(100)으로부터 내부 인터페이스 조정 요청을 받으면, 밴드위스 조정 모듈(201)을 이용하여 내부 인터페이스 조정 요청에 기초하여 스토리지 디바이스의 인터페이스 밴드위스를 조정한다. 스토리지 디바이스의 인터페이스 밴드위스를 높이면 인터페이스 처리 속도는 높아지고 파워 소모량은 증가하게 된다. 반대로, 스토리지 디바이스의 인터페이스 밴드위스를 낮추면 인터페이스 처리 속도는 낮아지고 파워 소모량은 감소하게 된다.
도 7은 도 6에 도시된 메모리 컨트롤러(210)의 구성을 예시적으로 보여준다.
도 7에 도시된 바와 같이, 메모리 컨트롤러(210)는 프로세서(211), RAM(Random Access Memory; 212), 호스트 인터페이스(213), 메모리 인터페이스(214), ROM(Read Only Memory, 215) 및 버스(216)를 구비한다.
메모리 컨트롤러(210)의 구성요소들은 버스(216)를 통하여 데이터 및 각종 신호들을 주고 받는다.
프로세서(211)는 RAM(212)에 저장된 프로그램 코드 및 데이터들을 이용하여 스토리지 디바이스(200-1)의 동작을 전반적으로 제어할 수 있다. 스토리지 디바이스(200-1)가 초기화될 때 프로세서(211)는 메모리 디바이스(220)에 저장된 스토리지 디바이스(200-1)에서 수행되는 동작들을 제어하는데 필요한 프로그램 코드 및 데이터들을 읽어내어 RAM(212)에 로딩시킬 수 있다. RAM(212)에는 밴드위스 조정 모듈(201)용 소프트웨어가 로딩될 수 있다.
호스트 인터페이스(213)는 메모리 컨트롤러(210)에 접속되는 호스트와의 데이터 교환 프로토콜을 구비하고 메모리 컨트롤러(210)와 호스트 사이의 인터페이스를 수행한다. 호스트 인터페이스(213)는 예로서 ATA(Advanced Technology Attachment) 인터페이스, SATA(Serial Advanced Technology Attachment) 인터페이스, PATA(Parallel Advanced Technology Attachment) 인터페이스, USB(Universal Serial Bus) 또는 SAS(Serial Attached Small Computer System) 인터페이스, SCSI(Small Computer System Interface), eMMC(embedded Multi Media Card) 인터페이스, UFS(Universal Flash Storage) 인터페이스, PCI(Peripheral Component Interconnect) 인터페이스, PCIe(Peripheral Component Interconnect Express) 인터페이스, 네트워크 인터페이스 등으로 구현할 수 있다. 그러나 이는 예시일 뿐 이에 제한되는 것은 아니다. 호스트 인터페이스(213)는 프로세서(211)의 제어에 따라서 호스트로부터 커맨드 및 데이터를 수신하거나, 호스트로 데이터를 전송할 수 있다.
메모리 인터페이스(214)는 메모리 디바이스(220)와 전기적으로 연결되어 있다. 메모리 인터페이스(214)는 프로세서(211)의 제어에 따라서 메모리 디바이스(220)로 커맨드, 어드레스 및 데이터를 전송하거나, 메모리 디바이스(220)로부터 데이터를 수신할 수 있다. 메모리 인터페이스(214)는 NAND 플래시 메모리 또는 NOR 플래시 메모리를 지원하도록 구성될 수 있다. 메모리 인터페이스(214)는 복수 개의 채널들을 통하여 소프트웨어 또는 하드웨어 인터리브 동작들이 수행되도록 구성될 수도 있다.
ROM(215)에는 스토리지 디바이스가 접속되는 장치의 초기 부팅에 필요한 코드 정보를 저장할 수 있다.
도 8은 도 6에 도시된 메모리 디바이스(220)의 세부 구성의 일 예를 보여준다.
도 8을 참조하면, 메모리 디바이스(220)는 메모리 셀 어레이(11), 제어 로직(control logic; 12), 전압 생성부(13), 로우 디코더(14) 및 페이지 버퍼(15)를 포함할 수 있다. 이하에서는, 메모리 디바이스(220)에 포함된 구성 요소들에 대하여 상술하기로 한다.
메모리 셀 어레이(11)는 하나 이상의 스트링 선택 라인(SSL), 복수의 워드 라인들(WL) 및 하나 이상의 접지 선택 라인(GSL)에 연결될 수 있으며, 또한 복수의 비트 라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(11)는 복수의 워드 라인들(WL) 및 복수의 비트 라인들(BL)이 교차하는 영역들에 배치되는 복수의 메모리 셀들(MC)을 포함할 수 있다.
메모리 셀 어레이(11)에 소거 전압이 인가되면 복수의 메모리 셀들(MC)은 소거 상태가 되며, 메모리 셀 어레이(11)에 프로그램 전압이 인가되면 복수의 메모리 셀들(MC)은 프로그램 상태가 된다. 이때, 각 메모리 셀(MC)은 문턱 전압에 따라 구분되는 소거 상태 및 제1 내지 제n 프로그램 상태들(P1 내지 Pn) 중 하나를 가질 수 있다.
여기서, n은 2 이상의 자연수일 수 있다. 예를 들어, 메모리 셀(MC)이 2 비트 레벨 셀인 경우 n은 3일 수 있다. 다른 예에서, 메모리 셀(MC)이 3 비트 레벨 셀인 경우 n은 7일 수 있다. 또 다른 예에서, 메모리 셀(MC)이 4 비트 레벨 셀인 경우 n은 15일 수 있다. 이와 같이, 복수의 메모리 셀들(MC)은 멀티 레벨 셀들을 포함할 수 있다. 그러나, 본 발명의 기술적 사상은 이에 한정되지 않고, 복수의 메모리 셀들(MC)은 싱글 레벨 셀들을 포함할 수도 있다.
제어 로직(12)은 메모리 컨트롤러(210A)로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(11)에 데이터를 기입하거나 메모리 셀 어레이(11)로부터 데이터를 독출하기 위한 각종 제어 신호를 출력할 수 있다. 이로써, 제어 로직(12)은 메모리 디바이스(220) 내의 각종 동작을 전반적으로 제어할 수 있다.
제어 로직(12)에서 출력된 각종 제어 신호는 전압 생성부(13), 로우 디코더(14) 및 페이지 버퍼(15)에 제공될 수 있다. 구체적으로, 제어 로직(12)은 전압 생성부(13)에 전압 제어 신호(CTRL_vol)를 제공할 수 있고, 로우 디코더(14)에 로우 어드레스(X_ADDR)를 제공할 수 있으며, 페이지 버퍼(15)에 칼럼 어드레스(Y_ADDR)를 제공할 수 있다.
전압 생성부(13)는 전압 제어 신호(CTRL_vol)를 기초로 하여 메모리 셀 어레이(11)에 대한 프로그램, 독출 및 소거 동작을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 구체적으로, 전압 생성부(13)는 복수의 워드 라인들(WL)을 구동하기 위한 제1 구동 전압(VWL), 복수의 스트링 선택 라인들(SSL)을 구동하기 위한 제2 구동 전압(VSSL) 및 복수의 라운드 선택 라인들(GSL)을 구동하기 위한 제3 구동 전압(VGSL)을 생성할 수 있다.
이때, 제1 구동 전압(VWL)은 프로그램 전압(또는 기입 전압), 독출 전압, 소거 전압, 패스 전압 또는 프로그램 검증 전압일 수 있다. 또한, 제2 구동 전압(VSSL)은 스트링 선택 전압, 즉, 온(on) 전압 또는 오프(off) 전압일 수 있다. 나아가, 제3 구동 전압(VGSL)은 그라운드 선택 전압, 즉, 온 전압 또는 오프 전압일 수 있다.
로우 디코더(14)는 복수의 워드 라인들(WL)을 통해 메모리 셀 어레이(11)에 연결되고, 제어 로직(12)으로부터 수신한 로우 어드레스(X_ADDR)에 응답하여 복수의 워드 라인들(WL) 중 일부 워드 라인을 활성화할 수 있다. 구체적으로, 독출 동작 시에 로우 디코더(14)는 선택된 워드 라인에 독출 전압을 인가하고, 비 선택된 워드 라인에 패스 전압을 인가할 수 있다.
한편, 프로그램 동작 시에 로우 디코더(14)는 선택된 워드 라인에 프로그램 전압을 인가하고, 비 선택된 워드 라인에 패스 전압을 인가할 수 있다. 본 실시예에서, 프로그램 루프들 중 적어도 하나에서 로우 디코더(14)는 선택된 워드 라인 및 추가 선택된 워드 라인에 프로그램 전압을 인가할 수 있다.
페이지 버퍼(15)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(11)에 연결될 수 있다. 구체적으로, 독출 동작 시에 페이지 버퍼(15)는 감지 증폭기(sense amplifier)로 동작하여 메모리 셀 어레이(11)에 저장된 데이터(DATA)를 출력할 수 있다. 한편, 프로그램 동작 시에 페이지 버퍼(15)는 기입 드라이버(write driver)로 동작하여 메모리 셀 어레이(11)에 저장하고자 하는 데이터(DATA)를 입력시킬 수 있다.
도 9는 도 8에 도시된 메모리 셀 어레이(11)의 일 예를 보여준다.
도 9를 참조하면, 메모리 셀 어레이(11)는 플래시 메모리 셀 어레이일 수 있다. 이때, 메모리 셀 어레이(11)는 a(a는 2 이상의 정수)개의 메모리 블록들(BLK1 내지 BLKa)을 포함하고, 각 메모리 블록(BLK1 내지 BLKa)은 b(b는 2이상의 정수)개의 페이지들(PAGE1 내지 PAGEb)을 포함하며, 각 페이지들(PAGE1 내지 PAGEb)은 c(c는 2 이상의 정수)개의 섹터들(SEC1 내지 SECc)을 포함할 수 있다. 도 9에서는 도시의 편의를 위해, 메모리 블록 BLK1에 대하여만 페이지들(PAGE0 내지 PAGEb) 및 섹터들(SEC1 내지 SECc)을 도시하였으나, 다른 메모리 블록들(BLK2 내지 BLKa)도 블록 BLK1과 동일한 구조를 가질 수 있다.
도 10은 도 9에 도시된 메모리 셀 어레이에 포함된 제1메모리 블록의 일 예(BLK1a)를 나타내는 회로도이다.
도 10을 참조하면, 제1 메모리 블록(BLK1a)은 수직 구조의 낸드 플래시 메모리일 수 있다. 이때, 도 9에 도시된 각 블록들(BLK1 내지 BLKa)은 도 10과 같이 구현될 수 있다. 도 10에서, 제1 방향은 x 방향으로, 제2 방향은 y 방향으로, 제3 방향은 z 방향으로 지칭하기로 한다. 그러나, 본 발명은 이에 한정되지 않고, 제1 내지 제3 방향은 변경될 수도 있다.
제1 메모리 블록(BLK1a)은 복수의 셀 스트링들(CST), 복수의 워드 라인들(WL), 복수의 비트 라인들(BL), 복수의 그라운드 선택 라인들(GSL1, GSL2), 복수의 스트링 선택 라인들(SSL1, SSL2) 및 공통 소스 라인(CSL)을 포함할 수 있다. 여기서, 셀 스트링들(CST)의 개수, 워드 라인들(WL)의 개수, 비트 라인들(BL)의 개수, 그라운드 선택 라인들(GSL1, GSL2)의 개수 및 스트링 선택 라인들(SSL1, SSL2)의 개수는 실시 예에 따라 다양하게 변경될 수 있다.
셀 스트링(CST)은 대응되는 비트 라인(BL)과 공통 소스 라인(CSL) 사이에 직렬로 연결된 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC) 및 그라운드 선택 트랜지스터(GST)를 포함할 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 다른 실시 예에서, 셀 스트링(CST)은 적어도 하나의 더미 셀을 더 포함할 수 있다. 또 다른 실시 예에서, 셀 스트링(CST)은 적어도 두 개의 스트링 선택 트랜지스터들 또는 적어도 두 개의 그라운드 선택 트랜지스터들을 포함할 수도 있다.
또한, 셀 스트링(CST)은 제3 방향(z 방향)으로 신장될 수 있는데, 구체적으로, 기판 상에 수직 방향(z 방향)으로 신장될 수 있다. 따라서, 셀 스트링(CST)을 포함하는 메모리 블록(BLK1a)을 수직 방향의 낸드 플래시 메모리라고 지칭할 수 있다. 이와 같이, 셀 스트링(CST)을 기판 상에 수직 방향(z)으로 신장시킴으로써, 메모리 셀 어레이(11)의 집적도를 향상시킬 수 있다.
복수의 워드 라인들(WL)은 제1 방향(x) 및 제2 방향(y)으로 연장되고, 각 워드 라인(WL)은 대응되는 메모리 셀들(MC)과 연결될 수 있다. 이에 따라, 동일 층에서 제1 방향(x) 및 제2 방향(y)을 따라 이웃하게 배열된 복수의 메모리 셀들(MC)은 동일한 워드 라인(WL)에 연결될 수 있다. 구체적으로, 각 워드 라인(WL)은 메모리 셀(MC)의 게이트에 연결되어 메모리 셀(MC)을 제어할 수 있다. 이때, 복수의 메모리 셀들(MC)은 데이터를 저장할 수 있으며, 연결된 워드 라인(WL)의 제어에 따라 프로그램, 독출 또는 소거될 수 있다.
복수의 비트 라인들(BL)은 제1 방향(x)으로 연장되고, 스트링 선택 트랜지스터(SST)와 연결될 수 있다. 이에 따라, 제1 방향(x)을 따라 이웃하게 배열된 복수의 스트링 선택 트랜지스터들(SST)은 동일한 비트 라인(BL)에 연결될 수 있다. 구체적으로, 각 비트 라인(BL)은 스트링 선택 트랜지스터(SST)의 드레인에 연결될 수 있다.
복수의 스트링 선택 라인들(SSL1, SSL2)은 제2 방향(y)으로 연장되고, 스트링 선택 트랜지스터(SST)와 연결될 수 있다. 이에 따라, 제2 방향(y)을 따라 이웃하게 배열된 복수의 스트링 선택 트랜지스터들(SST)은 동일한 스트링 선택 라인(SSL1 또는 SSL2)에 연결될 수 있다. 구체적으로, 각 스트링 선택 라인(SSL1 또는 SSL2)은 스트링 선택 트랜지스터(SST)의 게이트에 연결되어 스트링 선택 트랜지스터(SST)를 제어할 수 있다.
복수의 그라운드 선택 라인들(GSL1, GSL2)은 제2 방향(y)으로 연장되고, 그라운드 선택 트랜지스터(GST)와 연결될 수 있다. 이에 따라, 제2 방향(y)을 따라 이웃하게 배열된 복수의 그라운드 선택 트랜지스터들(GST)은 동일한 그라운드 선택 라인(GSL1 또는 GSL2)에 연결될 수 있다. 구체적으로, 각 그라운드 선택 라인(GSL1 또는 GSL2)은 그라운드 선택 트랜지스터(GST)의 게이트에 연결되어 그라운드 선택 트랜지스터(GST)를 제어할 수 있다.
또한, 각 셀 스트링(CST)에 포함된 그라운드 선택 트랜지스터들(GST)은 공통 소스 라인(CSL)에 공통으로 연결될 수 있다. 구체적으로, 공통 소스 라인(CSL)은 그라운드 선택 트랜지스터(GST)의 소스에 연결될 수 있다.
여기서, 동일한 워드 라인(WL) 및 동일한 스트링 선택 라인(SSL1 또는 SSL2)에 공통으로 연결되고, 제2 방향(y)을 따라 이웃하게 배치되는 복수의 메모리 셀들(MC)은 페이지(PAGE)라고 지칭할 수 있다. 예를 들어, 제1 워드 라인(WL1)에 공통으로 연결되고, 제1 스트링 선택 라인(SSL1)에 공통으로 연결되며, 제2 방향(y)을 따라 이웃하게 배치되는 복수의 메모리 셀들(MC)은 제1 페이지(PAGE1)라고 지칭할 수 있다. 또한, 제1 워드 라인(WL1)에 공통으로 연결되고, 제2 스트링 선택 라인(SSL2)에 공통으로 연결되며, 제2 방향(y)을 따라 이웃하게 배치되는 복수의 메모리 셀들(MC)은 제2 페이지(PAGE2)라고 지칭할 수 있다.
메모리 셀(MC)에 대한 프로그램 동작을 수행하기 위해서는, 비트 라인(BL)에 0V를 인가하고, 스트링 선택 라인(SSL)에 온(on) 전압을 인가하고, 그라운드 선택 라인(GSL)에 오프(off) 전압을 인가할 수 있다. 온 전압은 스트링 선택 트랜지스터(SST)를 턴-온(turn-on) 시키도록 그 문턱 전압보다 크거나 같을 수 있고, 오프 전압은 그라운드 선택 트랜지스터들(GST)을 턴-오프(turn-off) 시키도록 그 문턱 전압보다 작을 수 있다. 또한, 메모리 셀들(MC) 중 선택 메모리 셀에는 프로그램 전압을 인가하고, 나머지 메모리 셀들에는 패스 전압을 인가할 수 있다. 프로그램 전압이 인가되면, F-N 터널링에 의해 메모리 셀들(MC) 내로 전하가 주입될 수 있다. 패스 전압은 메모리 셀들(MC)의 문턱 전압보다 클 수 있다.
메모리 셀(MC)에 대한 소거 동작을 수행하기 위해서는, 메모리 셀들(MC)의 바디(body)에 소거 전압을 인가하고, 워드 라인들(WL)에 0V를 인가할 수 있다. 이에 따라, 메모리 셀들(MC)의 데이터가 일시에 소거될 수 있다.
도 11은 본 발명의 실시 예에 따른 패브릭네트워크 시스템(100)을 채용하는 컴퓨팅 시스템(1000A, 1000B 또는 1000C)에서의 호스트에 접속되는 스토리지 디바이스의 개수에 따른 성능을 보여주는 그래프이다.
도 11은 스토리지 디바이스들의 인터페이스 밴드위스를 고정한 상태에서 호스트에 접속되는 스토리지 디바이스들의 개수를 증가시키면서 랜덤 리드 성능(MB/S)을 측정한 결과를 보여준다.
도 11을 참조하면, 세모 표시의 곡선은 스토리지 시스템의 인터페이스 레인 개수를 4로 설정한 사례를 보여주고, 네모 표시의 곡선은 스토리지 시스템의 인터페이스 레인 개수를 8로 설정한 사례를 보여주고, 마름모 표시의 곡선은 스토리지 시스템의 인터페이스 레인 개수를 16으로 설정한 사례를 보여준다.
인터페이스 레인 개수를 4로 설정한 경우에 스토리지 디바이스의 개수가 2개까지 랜덤 리드 성능(MB/S)이 증가하고, 2개 이상의 스토리지 디바이스들이 접속되더라도 랜덤 리드 성능은 거의 증가하지 않는다는 사실을 알 수 있다.
그리고, 인터페이스 레인 개수를 8로 설정한 경우에 스토리지 디바이스의 개수가 6개까지 랜덤 리드 성능이 증가하고, 6개 이상의 스토리지 디바이스들이 접속되더라도 랜덤 리드 성능은 거의 증가하지 않는다는 사실을 알 수 있다.
그리고, 인터페이스 레인 개수를 16으로 설정한 경우에 스토리지 디바이스의 개수가 8개까지 랜덤 리드 성능이 증가하고, 8개 이상의 스토리지 디바이스들이 접속되더라도 랜덤 리드 성능은 그다지 증가하지 않는다는 사실을 알 수 있다.
도 11과 같은 측정 결과를 통하여, 최대 성능을 나타낸 이후 증가된 스토리지 디바이스에서는 여분의 밴드위스가 발생하고, 이러한 여분의 밴드위스를 줄여도 최대 성능에는 영향을 끼치지 않게 된다.
이에 따라서, 본 발명은 패브릭 네트워크 시스템(100)에서 최대 성능을 나타낸 이후의 증가된 스토리지 디바이스에서 발생되는 여분의 밴드위스를 낮추도록 내부 인터페이스 밴드위스를 조정하여 스토리지 시스템의 파워 소모량을 줄인다.
도 11과 같은 측정 결과에 기초하여, 패브릭 네트워크 시스템(100)의 제어 유닛(130)은 호스트와 연결되는 외부 인터페이스 상태와 스토리지 디바이스들과 연결되는 내부 인터페이스 상태에기초하여 스토리지 디바이스들에 대한 인터페이스 밴드위스(bandwidth)를 조정할 수 있다.
예로서, 패브릭 네트워크 시스템(100)의 제어 유닛(130)은 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출하고, 산출된 내부 인터페이스 밴드위스의 합산 정보가 호스트에 연결되는 외부 인터페이스 밴드위스를 기준으로 임계 범위 내에 포함되도록 내부 인터페이스 밴드위스를 조정한다. 여기에서, 임계 범위는 도 11과 같은 측정 결과에 기초하여 결정할 수 있다.
예로서, 제어 유닛(130)은 호스트에 동일 밴드위스 그룹에 속하는 스토리지 디바이스들을 매핑하여 연결하고, 내부 인터페이스 밴드위스의 합산 정보가 호스트에 연결되는 외부 인터페이스 밴드위스를 기준으로 임계 범위 내에 포함되도록 밴드위스 그룹 단위로스토리지들에 대한 밴드위스를 조정할수 있다.
다른 예로서, 제어 유닛(130)은 내부 인터페이스 밴드위스의 합산 정보가 호스트에 연결되는 외부 인터페이스 밴드위스를 기준으로 임계 범위 내에 포함되도록 스토리지들 각각에 대한 밴드위스를 독립적으로 조정할 수도 있다.
도 12는 본 발명의 실시 예에 따른 패브릭네트워크 시스템(100)을 채용하는 컴퓨팅 시스템에서(1000A, 1000B 또는1000C)의 호스트에 접속되는 스토리지 디바이스의 개수에 따른 하나의 스토리지 디바이스에서의파워 소모량을 보여주는 그래프이다.
도 12는 패브릭 네트워크 시스템(100)에 의하여 스토리지 디바이스들의 인터페이스 밴드위스를 조정한 상태에서 호스트에 접속되는 스토리지 디바이스의 개수에 따른 하나의 스토리지 디바이스에서의 파워 소모량 측정 결과를 보여준다.
도 12를 참조하면, 최대 성능을 나타낸 이후의 스토리지 디바이스들의 증가에 따른 여분의 밴드위스를 낮추도록 밴드위스를 조정함으로써 스토리지 디바이스 당 파워 소모량은 낮아지게 된다는 사실을 알 수 있다.
도 13은 본 발명의 실시 예에 따른 패브릭 네트워크 시스템(100)을 채용하는 컴퓨팅 시스템(1000A, 1000B 또는 1000C)에서의 인터페이스 밴드위스에 따른 아이들 파워 소모량을 보여주는 그래프이다.
도 13은 인터페이스 사양을 Gen3x4에서 Gen3x2 또는 Gen2x2로 낮추었을 때의 스토리지 디바이스의 아이들 파워 소모량을 측정한 것이다. 도 13을 참조하면, 인터페이스 밴드위스를 낮추었을 때 스토리지 디바이스의 아이들 파워 소모량이 감소한다는 것을 보여준다.
도 14는 본 발명의 실시 예에 따른 패브릭 네트워크 시스템(100)을 채용하는 컴퓨팅 시스템(1000A, 1000B 또는 1000C)에서의 인터페이스 밴드위스에 따른 시이퀀셜 리드/라이트 성능을 보여주는 그래프이다.
도 15는 본 발명의 실시 예에 따른 패브릭 네트워크 시스템(100)을 채용하는 컴퓨팅 시스템(1000A, 1000B 또는 1000C)에서의 인터페이스 밴드위스에 따른 랜덤 리드/라이트 성능을 보여주는 그래프이다.
도 14 및 도 15은 패브릭 네트워크 시스템(100)에 의하여 스토리지 디바이스들의 인터페이스 밴드위스를 조정한 상태에서 인터페이스 사양이 Gen3x4 또는 Gen2x2에서의 시이퀀셜 리드/라이트 성능 및 랜덤 리드/라이트 성능을 측정한 것이다.
도 14 및 도 15를 참조하면, 호스트와 연결되는 외부 인터페이스 밴드위스가 최대 성능일 때 스토리지 디바이스들에 연결되는 내부 인터페이스 밴드위스를 줄여도 유사한 성능을 유지한다는 사실을 알 수 있다.
도 16은 본 발명의 실시 예에 따른 패브릭 네트워크를 이용한 파워 관리 방법의 흐름도의 일 예를 보여준다.
도 1에 도시된 바와 같은 패브릭 네트워크 시스템(100)이 적용되는 다양한 형태의 컴퓨팅 시스템(1000A, 1000B 또는 1000C)에서 내부 인터페이스 밴드위스 조정에 따른 파워 관리 방법의 일 예를 도 16의 흐름도를 참조하여 설명하기로 한다.
패브릭 네트워크 시스템(100)은 패브릭 네트워크에서 호스트에 연결되는 외부 인터페이스 상태와 스토리지 디바이스에 연결되는 내부 인터페이스 상태를 모니터링하는 동작을 수행한다(S110). 예로서, 패브릭 네트워크 시스템(100)의 모니터링 유닛(120)은 호스트로부터 수신되는 외부 인터페이스 밴드위스 구성(external interface bandwidth configuration) 정보 및 스토리지 디바이스들로부터 수신되는 내부 인터페이스 밴드위스 구성(internal interface bandwidth configuration) 정보에 기초하여 외부 인터페이스 밴드위스와 내부 인터페이스 밴드위스를 모니터링할 수 있다.
다음으로, 패브릭 네트워크 시스템(100)은 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출한다(S120). 예로서, 패브릭 네트워크 시스템(100)의 제어 유닛(130)은 외부 인터페이스 밴드위스와 내부 인터페이스 밴드위스에 대한 모니터링 결과에 기초하여 호스트 별로 해당 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출한다.
다음으로, 패브릭 네트워크 시스템(100)은 내부 인터페이스 밴드위스의 합산 정보와 외부 인터페이스 밴드위스에 기초하여 내부 인터페이스 밴드위스를 조정하는 동작을 수행한다(S130). 예로서, 패브릭 네트워크 시스템(100)의 제어 유닛(130)은 호스트 별로 산출된 내부 인터페이스 밴드위스의 합산 정보가 호스트 각각에 연결되는 외부 인터페이스 밴드위스를 기준으로 임계 범위 내에 포함되도록 내부 인터페이스 밴드위스를 조정한다. 여기에서, 임계 범위는 해당 호스트의 외부 인터페이스 밴드위스에 따른 최대I/O(Input/Output) 성능은 유지하면서 해당 호스트에 연결된 스토리지 디바이스들의 소비 전력을 감소시키는 조건을 충족시키도록 시뮬레이션 또는 실험 통계를 통하여 결정할 수 있다.
도 17은 본 발명의 실시 예에 따른 패브릭 네트워크를 이용한 파워 관리 방법의 흐름도의 다른 예를 보여준다.
도 1에 도시된 바와 같은 패브릭 네트워크 시스템(100)이 적용되는 다양한 형태의 컴퓨팅 시스템(1000A, 1000B 또는 1000C)에서 내부 인터페이스 밴드위스 조정에 따른 파워 관리 방법의 다른 예를 도 16의 흐름도를 참조하여 설명하기로 한다.
패브릭 네트워크 시스템(100)은 패브릭 네트워크에 접속되는 스토리지 디바이스들을 밴드위스에 따라서 동일한 밴드위스 별로 그룹핑 처리한다(S210). 따라서, 스토리지 디바이스들은 복수의 밴드위스 그룹으로 분류될 수 있다.
다음으로, 패브릭 네트워크 시스템(100)은 패브릭 네트워크에 접속되는 호스트들이 요구하는 밴드위스에 상응하도록 밴드위스 별로 그룹핑된 스토리지들을 호스트 별로 매핑 처리한다(S220). 예로서, 호스트에서 요구하는 밴드위스에 대응되도록 호스트 별로 동일 그룹 내에 포함된 스토리지 디바이스들을 매핑 처리할 수 있다.
다음으로, 패브릭 네트워크 시스템(100)은 패브릭 네트워크에서 호스트에 연결되는 외부 인터페이스 상태와 스토리지 디바이스에 연결되는 내부 인터페이스 상태를 모니터링하는 동작을 수행한다(S230). 예로서, 모니터링 동작은 실시적으로 수행할 수 있다.
다음으로, 패브릭 네트워크 시스템(100)은 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출한다(S240).
다음으로, 패브릭 네트워크 시스템(100)은 내부 인터페이스 밴드위스의 합산 정보와 외부 인터페이스 밴드위스에 기초하여 내부 인터페이스 밴드위스를 조정하는 동작을 수행한다(S250). 예로서, 밴드위스에 따른 그룹 단위로 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스를 조정할 수 있다. 다른 예로서, 스토리지 디바이스들 각각에 대하여 밴드위스 그룹을 변경하는 방식으로 내부 인터페이스 밴드위스를 조정할 수도 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100; 패브릭 네트워크 시스템 110; 패브릭 네트워크 유닛
120; 모니터링 유닛 130; 제어 유닛
1000A, 1000B, 1000C; 컴퓨팅 시스템
1100, 1100-1, 1100-K; 호스트 1200, 1200C; 스토리지 시스템
200-1, 200-N; 스토리지 디바이스 200; 스토리지 디바이스 블록
1110, 211; 프로세서 1120; 메모리
1130; 어댑터 1140, 216; 버스
210; 메모리 컨트롤러 201; 밴드위스 조정 모듈
220; 메모리 디바이스 220-1; 비휘발성 메모리
212; RAM 213; 호스트 인터페이스
214; 메모리 인터페이스 215; ROM
11; 메모리 셀 어레이 12; 제어 로직
13: 전압 생성부 14; 로우 디코더
15; 페이지 버퍼
120; 모니터링 유닛 130; 제어 유닛
1000A, 1000B, 1000C; 컴퓨팅 시스템
1100, 1100-1, 1100-K; 호스트 1200, 1200C; 스토리지 시스템
200-1, 200-N; 스토리지 디바이스 200; 스토리지 디바이스 블록
1110, 211; 프로세서 1120; 메모리
1130; 어댑터 1140, 216; 버스
210; 메모리 컨트롤러 201; 밴드위스 조정 모듈
220; 메모리 디바이스 220-1; 비휘발성 메모리
212; RAM 213; 호스트 인터페이스
214; 메모리 인터페이스 215; ROM
11; 메모리 셀 어레이 12; 제어 로직
13: 전압 생성부 14; 로우 디코더
15; 페이지 버퍼
Claims (10)
- 패브릭 네트워크 시스템의 파워 관리 방법에 있어서,
하나 이상의 호스트와 하나 이상의 스토리지 디바이스들이 접속되는 패브릭 네트워크에서 상기 호스트에 연결되는 외부 인터페이스 상태와 상기 스토리지 디바이스에 연결되는 내부 인터페이스 상태를 모니터링하는 단계;
상기 모니터링 결과에 기초하여 상기 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출하는 단계; 및
상기 산출된 내부 인터페이스 밴드위스의 합산 정보가 상기 호스트에 연결되는 외부 인터페이스 밴드위스를 기준으로 임계 범위 내에 포함되도록 상기 내부 인터페이스 밴드위스를 조정하는 단계를 포함하는 파워 관리 방법. - 제1항에 있어서, 상기 외부 인터페이스 상태 및 상기 내부 인터페이스 상태를 모니터링하는 단계는 외부 인터페이스 밴드위스 구성 정보와 내부 인터페이스 밴드위스 구성 정보에 기초하여 호스트에 연결되는 외부 인터페이스 밴드위스와 상기 스토리지 디바이스에 연결되는 내부 인터페이스 밴드위스를 검출하는 것을 특징으로 하는 것을 특징으로 하는 파워 관리 방법.
- 제1항에 있어서, 상기 임계 범위는 상기 패브릭 네트워크에 접속된 스토리지 디바이스의 개수, 상기 내부 인터페이스 밴드위스에 따른 I/O(Input/Output) 성능 및 상기 스토리지 디바이스들의 소비 전력 사이의 상관 관계에 기초하여 결정되는 것을 특징으로 하는 파워 관리 방법.
- 제1항에 있어서, 상기 내부 인터페이스 밴드위스의 합산 정보를 산출하는 단계는 상기 패브릭 네트워크에 복수개의 호스트들이 접속되는 경우에 상기 호스트 별로 상기 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출하는 것을 특징으로 하는 파워 관리 방법.
- 제4항에 있어서, 상기 내부 인터페이스 밴드위스를 조정하는 단계는 상기 호스트 별로 산출된 내부 인터페이스 밴드위스의 합산 정보가 상기 호스트 각각에 연결되는 외부 인터페이스 밴드위스를 기준으로 임계 범위 내에 포함되도록 상기 내부 인터페이스 밴드위스를 조정하는 것을 특징으로 하는 파워 관리 방법.
- 제1항에 있어서, 상기 패브릭 네트워크에 복수개의 호스트들이 접속되는 경우에 상기 모니터링 결과에 기초하여 상기 호스트들이 요구하는 밴드위스에 상응하도록 밴드위스 별로 그룹핑된 스토리지 디바이스들을 상기 호스트들 각각에 매핑 처리하는 단계를 더 포함하는 것을 특징으로 하는 파워 관리 방법.
- 제1항에 있어서, 상기 호스트와 상기 스토리지 디바이스를 연결하는 인터페이스를 PCIe 인터페이스, SAS 인터페이스, SATA 인터페이스 또는 네트워크 인터페이스 중의 어느 하나의 인터페이스로 구성하는 것을 특징으로 하는 파워 관리 방법.
- 복수의 포트들을 갖고, 상기 포트들에 접속되는 호스트와 스토리지 디바이스들 사이의 통신을 지원하는 패브릭 네트워크 유닛;
상기 호스트에 연결되는 외부 인터페이스 상태와 상기 스토리지 디바이스에 연결되는 내부 인터페이스 상태를 모니터링하는 모니터링 유닛; 및
상기 모니터링된 외부 인터페이스 상태와 상기 내부 인터페이스 상태에 기초하여 상기 호스트에서 요구하는 최대 밴드위스는 유지하면서 상기 스토리지 디바이스들의 소비 전력은 절감되도록 상기 스토리지 디바이스들에 연결되는 내부 인터페이스 밴드위스를 조정하는 제어 유닛을 포함하는 패브릭 네트워크 시스템. - 제8항에 있어서, 상기 제어 유닛은 상기 모니터링된 외부 인터페이스 상태와 상기 내부 인터페이스 상태에 기초하여 상기 호스트 별로 상기 호스트에 연결되는 스토리지 디바이스들에 대한 내부 인터페이스 밴드위스의 합산 정보를 산출하고, 상기 산출된 내부 인터페이스 밴드위스의 합산 정보가 상기 호스트에 연결되는 외부 인터페이스 밴드위스를 기준으로 임계 범위 내에 포함되도록 상기 내부 인터페이스 밴드위스를 조정하는 것을 특징으로 하는 패브릭 네트워크 시스템.
- 제8항에 있어서, 제어 유닛은 상기 포트들에 복수개의 호스트들이 접속되는 경우에 상기 모니터링된 외부 인터페이스 상태와 상기 내부 인터페이스 상태에 기초하여 상기 호스트들이 요구하는 밴드위스에 상응하도록 밴드위스 별로 그룹핑된 스토리지 디바이스들을 상기 호스트들 각각에 매핑 처리하고, 상기 매핑 처리된 그룹 단위로 상기 스토리지 디바이스들에 대한 내부 인터페이스를 조정하는 것을 특징으로 하는 패브릭 네트워크 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150163982A KR102611987B1 (ko) | 2015-11-23 | 2015-11-23 | 패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템 |
US15/291,266 US10001827B2 (en) | 2015-11-23 | 2016-10-12 | Power management method using fabric network and fabric network system using power management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150163982A KR102611987B1 (ko) | 2015-11-23 | 2015-11-23 | 패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170059702A KR20170059702A (ko) | 2017-05-31 |
KR102611987B1 true KR102611987B1 (ko) | 2023-12-08 |
Family
ID=58721062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150163982A KR102611987B1 (ko) | 2015-11-23 | 2015-11-23 | 패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10001827B2 (ko) |
KR (1) | KR102611987B1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018143977A1 (en) * | 2017-02-01 | 2018-08-09 | Hewlett-Packard Development Company, L.P. | Performance threshold |
US10514745B2 (en) * | 2017-09-29 | 2019-12-24 | Intel Corporation | Techniques to predict memory bandwidth demand for a memory device |
US10877542B2 (en) * | 2019-03-07 | 2020-12-29 | Alibaba Group Holding Limited | Power management system and method implementing interconnect controls |
US11789878B2 (en) * | 2019-12-19 | 2023-10-17 | Intel Corporation | Adaptive fabric allocation for local and remote emerging memories based prediction schemes |
KR20220084844A (ko) | 2020-12-14 | 2022-06-21 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US11693799B2 (en) * | 2021-09-20 | 2023-07-04 | Red Hat, Inc. | Bandwidth control for input/output channels |
CN113986802A (zh) * | 2021-09-30 | 2022-01-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种PCIe互联设备及系统 |
US11734207B1 (en) * | 2022-02-02 | 2023-08-22 | Western Digital Technologies, Inc. | Dynamic port allocation in PCIe bifurcation system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004521411A (ja) | 2000-12-22 | 2004-07-15 | インテル・コーポレーション | 分散プログラミングネットワークにおける適応信頼性バランシングのためのシステム及び方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583995A (en) * | 1995-01-30 | 1996-12-10 | Mrj, Inc. | Apparatus and method for data storage and retrieval using bandwidth allocation |
US7099969B2 (en) | 2003-11-06 | 2006-08-29 | Dell Products L.P. | Dynamic reconfiguration of PCI Express links |
US7305520B2 (en) | 2004-01-30 | 2007-12-04 | Hewlett-Packard Development Company, L.P. | Storage system with capability to allocate virtual storage segments among a plurality of controllers |
US7634587B2 (en) | 2004-08-11 | 2009-12-15 | Apple Inc. | I/O descriptor cache for bus mastering I/O controllers |
JP4877482B2 (ja) | 2006-04-11 | 2012-02-15 | 日本電気株式会社 | PCIExpressリンク、マルチホストコンピュータシステム、およびPCIExpressリンクの再構成方法 |
JP2007323284A (ja) * | 2006-05-31 | 2007-12-13 | Hitachi Ltd | 計算機システム、ストレージシステム及び帯域管理方法 |
US7660925B2 (en) | 2007-04-17 | 2010-02-09 | International Business Machines Corporation | Balancing PCI-express bandwidth |
US8904077B1 (en) | 2007-06-26 | 2014-12-02 | Qlogic, Corporation | Power management for host bus adapters |
US7653773B2 (en) | 2007-10-03 | 2010-01-26 | International Business Machines Corporation | Dynamically balancing bus bandwidth |
US8214551B2 (en) | 2010-01-09 | 2012-07-03 | International Business Machines Corporation | Using a storage controller to determine the cause of degraded I/O performance |
US9329790B2 (en) | 2010-12-27 | 2016-05-03 | International Business Machines Corporation | Method and system for managing a storage network to reduce power consumption |
US20150046626A1 (en) | 2013-08-12 | 2015-02-12 | Samsung Electronics Co., Ltd. | Low power secondary interface adjunct to a pci express interface between integrated circuits |
US9537743B2 (en) * | 2014-04-25 | 2017-01-03 | International Business Machines Corporation | Maximizing storage controller bandwidth utilization in heterogeneous storage area networks |
-
2015
- 2015-11-23 KR KR1020150163982A patent/KR102611987B1/ko active IP Right Grant
-
2016
- 2016-10-12 US US15/291,266 patent/US10001827B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004521411A (ja) | 2000-12-22 | 2004-07-15 | インテル・コーポレーション | 分散プログラミングネットワークにおける適応信頼性バランシングのためのシステム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170147056A1 (en) | 2017-05-25 |
KR20170059702A (ko) | 2017-05-31 |
US10001827B2 (en) | 2018-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102611987B1 (ko) | 패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템 | |
US8069300B2 (en) | Solid state storage device controller with expansion mode | |
CN105373416B (zh) | 存储器控制器、存储装置、服务器虚拟化系统及其方法 | |
KR20150080531A (ko) | 부분 페이지 메모리 동작 | |
US9941016B2 (en) | Flash memory device performing adaptive loop, memory system and method of operating the memory system | |
US20170171106A1 (en) | Quality of service management method in fabric network and fabric network system using the same | |
US11086540B2 (en) | Memory system, memory controller and memory device for configuring super blocks | |
US20190155767A1 (en) | Storage device configured to update field programmable gate array and method of operating the same | |
KR20210057355A (ko) | 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법 | |
KR20210103228A (ko) | 메모리 시스템 및 이의 동작 방법 | |
KR102306853B1 (ko) | 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템 | |
KR102585214B1 (ko) | 가변 소거 유닛 크기를 가지는 스토리지 디바이스 및 이를 포함하는 레이드 스토리지 시스템 | |
CN112783431A (zh) | 存储装置及其操作方法 | |
US11966608B2 (en) | Memory controller with improved data reliability and memory system including the same | |
US11709610B2 (en) | Memory system, memory controller and operating method | |
KR102686745B1 (ko) | 필드 프로그래머블 게이트 어레이를 업데이트하도록 구성된 스토리지 장치 및 그것의 동작 방법 | |
KR20230071013A (ko) | 데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
KR20230018873A (ko) | 메모리 시스템 및 그 동작 방법 | |
KR20230075645A (ko) | 반도체 장치 내 신호 간섭을 줄이기 위한 장치 및 방법 | |
KR20230153181A (ko) | 메모리 장치 및 그 프로그래밍 속도 조절 방법 |
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 |