KR20190046470A - Arp를 수행하는 슬레이브 장치 및 이의 동작 방법 - Google Patents

Arp를 수행하는 슬레이브 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20190046470A
KR20190046470A KR1020170140316A KR20170140316A KR20190046470A KR 20190046470 A KR20190046470 A KR 20190046470A KR 1020170140316 A KR1020170140316 A KR 1020170140316A KR 20170140316 A KR20170140316 A KR 20170140316A KR 20190046470 A KR20190046470 A KR 20190046470A
Authority
KR
South Korea
Prior art keywords
arp
slave
command
nth
address
Prior art date
Application number
KR1020170140316A
Other languages
English (en)
Other versions
KR102352156B1 (ko
Inventor
순일 케샤바
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170140316A priority Critical patent/KR102352156B1/ko
Priority to US16/007,405 priority patent/US10749836B2/en
Priority to CN201811249880.0A priority patent/CN109710555B/zh
Publication of KR20190046470A publication Critical patent/KR20190046470A/ko
Application granted granted Critical
Publication of KR102352156B1 publication Critical patent/KR102352156B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5061Pools of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/695Types of network addresses using masks or ranges of addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)

Abstract

본 개시의 예시적 실시예에 따라, 호스트와 연결되는 복수의 포트들(Ports) 및 복수의 엔드포인트들(Endpoints)을 포함하는 슬레이브 장치의 동작 방법은, 상기 포트들에 복수의 슬레이브 어드레스들을 각각 설정하기 위해 복수회의 루프들을 수행하는 단계를 포함하며, 상기 루프들 중 N(단, N은 1 이상의 정수) 루프는, 상기 포트들 중 ARP(Address Resolution Protocol) 전용 포트를 통해 상기 호스트로부터 제1 ARP 커맨드 및 제N 슬레이브 어드레스를 수신하는 단계, 상기 제1 ARP 커맨드에 응답하여, 상기 제N 슬레이브 어드레스를 상기 엔드포인트들 중 제N 엔드포인트에 할당하는 단계 및 상기 포트들 중 상기 제N 엔드포인트에 대응하는 제N 포트에 상기 제N 슬레이브 어드레스를 설정(initiate)하는 단계를 포함한다.

Description

ARP를 수행하는 슬레이브 장치 및 이의 동작 방법{SLAVE DEVICE FOR PERFORMING ADDRESS RESOLUTION PROTOCOL AND OPERATION METHOD THEREOF}
본 개시의 기술적 사상은 호스트 또는 마스터와 통신하는 슬레이브 장치에 관한 것으로서, 자세하게는 ARP를 수행하는 슬레이브 장치 및 이의 동작 방법에 관한 것이다.
사용자의 사용하는 데이터 양이 방대해짐에 따라, 호스트는 더 많은 슬레이브 장치들과 버스를 통해 연결되어 호스트와 슬레이브 장치들간의 통신을 통해 방대한 양의 데이터를 신속하게 처리하는 동작을 수행한다. 슬레이브 장치는 호스트와 통신을 수행하기 전에 ARP(Address Resolution Protocol)을 수행하여 호스트로부터 슬레이브 어드레스를 할당 받을 수 있다. 한편, 각각의 슬레이브 장치는 다양한 기능, 방대한 메모리 공간을 지원하기 위하여 복수의 엔드포인트들을 포함하게 되었고, 엔드포인트들 각각에 슬레이브 어드레스가 할당되어야 하는 바, ARP를 수행하는 데에 로드가 증가하는 문제가 있었다. 또한, 종래에는 슬레이브 장치는 하나의 엔드포인트당 ARP 수행을 위한 포트 및 호스트와의 통신을 위한 포트를 구비해야 되기 때문에, 더 많은 엔드포인트들을 포함할수록 더 많은 포트들이 필요하게 되었고, 이러한 점은 슬레이브 장치에 대한 설계 시 문제가 되었다.
본 개시의 기술적 사상은 복수의 엔드포인트들을 포함하는 슬레이브 장치가 ARP를 효율적으로 수행할 수 있는 슬레이브 장치 및 이의 동작 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 호스트와 연결되는 복수의 포트들(Ports) 및 복수의 엔드포인트들(Endpoints)을 포함하는 슬레이브 장치의 동작 방법은, 상기 포트들에 복수의 슬레이브 어드레스들을 각각 설정하기 위해 복수회의 루프들을 수행하는 단계를 포함하며, 상기 루프들 중 N(단, N은 1 이상의 정수) 루프는, 상기 포트들 중 ARP(Address Resolution Protocol) 전용 포트를 통해 상기 호스트로부터 제1 ARP 커맨드 및 제N 슬레이브 어드레스를 수신하는 단계, 상기 제1 ARP 커맨드에 응답하여, 상기 제N 슬레이브 어드레스를 상기 엔드포인트들 중 제N 엔드포인트에 할당하는 단계 및 상기 포트들 중 상기 제N 엔드포인트에 대응하는 제N 포트에 상기 제N 슬레이브 어드레스를 설정(initiate)하는 단계를 포함한다.
본 개시의 기술적 사상의 일측면에 따른 복수의 포트들, 복수의 엔드포인트들 및 상기 엔드포인트들 각각에 슬레이브 어드레스를 할당하기 위한 컨트롤러를 포함하는 SSD(Solid State Drive)의 동작 방법은, 상기 컨트롤러는 상기 포트들 중 ARP 전용 포트에 ARP 어드레스를 설정하는 단계, 상기 컨트롤러는 상기 ARP 전용 포트를 통해 호스트로부터 ARP 관련 메시지를 수신하는 단계 및 상기 컨트롤러는 상기 ARP 관련 메시지를 기반으로 ARP를 수행하는 단계를 포함한다.
본 개시의 일 실시예에 따른 슬레이브 장치는 ARP 관련 메시지를 전담하여 수신하는 ARP 전용 포트를 통해 ARP 엔드포인트들 각각에 슬레이브 어드레스를 할당하기 위한 ARP 관련 메시지들을 호스트로부터 수신할 수 있어, ARP 수행을 위한 필요한 포트 개수를 최소화하여 슬레이브 장치의 사이즈를 줄일 수 있다.
본 개시의 일 실시예에 따른 슬레이브 장치는 하나의 ARP 전용 포트를 통해 ARP 관련 메시지(ARP_Message)를 수신하고, 슬레이브 장치 내의 모든 ARP 엔드포인트들에 대한 슬레이브 어드레스 할당을 일괄적으로 수행함으로써, 효율적인 ARP를 수행할 수 있는 효과가 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 일 실시예에 따른 컴퓨팅 시스템의 개략적인 블록도를 나타낸다.
도 2a 및 도 2b는 도 1의 제1 슬레이브 장치의 구현 예를 설명하기 위한 블록도이다.
도 3은 본 개시의 일 실시예에 따른 SSD의 ARP 엔드포인트들 및 포트들의 구성을 설명하기 위한 블록도이다.
도 4는 본 개시의 일 실시예에 따른 SSD의 ARP 수행을 설명하기 위한 블록도이다.
도 5는 도 4의 SSD의 ARP 관련 메시지를 수신 대기할 때까지의 동작을 설명하기 위한 순서도이다.
도 6은 도 4의 SSD에서 ARP 수행을 위해 생성하는 ARP 테이블을 설명하기 위한 도면이다.
도 7은 도 4의 SSD의 ARP 관련 메시지를 수신한 때의 동작을 설명하기 위한 순서도이다.
도 8은 도 4의 SSD에서 ARP 수행의 결과로서 생성하는 ARP 테이블을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시예에 따른 도 5의 단계 S140 이후의 SSD의 동작을 설명하기 위한 순서도이다.
도 10은 본 개시의 일 실시예에 따른 SSD의 VPD 관련 커맨드에 부합하는 동작 수행을 설명하기 위한 블록도이다.
도 11은 도 10의 SSD의 동작을 설명하기 위한 순서도이다.
도 12는 본 개시의 실시예들에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템을 개략적으로 나타내는 블록도이다.
도 1은 본 개시의 일 실시예에 따른 컴퓨팅 시스템(100)의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 컴퓨팅 시스템(100)은 호스트(120), 버스(140) 및 복수의 슬레이브 장치들(160_1~160_m)을 포함할 수 있다. 호스트(120)는 버스(140)를 통해 슬레이브 장치들(160_1~160_m)과 연결될 수 있다. 일 실시예로, 버스(140)는 호스트(120)와의 시스템 통신을 위해 사용되는 2 선식 버스(bi-directional 2-wire bus)로서, 시스템 관리 버스(System Management Bus; 이하, SM 버스)에 해당할 수 있다. 버스(140)는 I2C(Inter-Integrated Circuit) 직렬 버스 프로토콜 기반으로 동작할 수 있으며, I2C 버스에 해당할 수 있다. 또한, 버스(140)는 PCI 익스프레스(Peripheral Component Interconnect Express) 버스일 수 있다. 이하에서는, 버스(140)는 SM 버스인 것을 중심으로 서술하겠으나, 이는 서술의 편의를 위한 것으로 버스(140)는 이에 한정되지 않음은 분명하다.
슬레이브 장치들(160_1~160_m)은 버스(140)를 활용하여 호스트(120)와 소정의 대역폭을 갖는 통신을 수행할 수 있다. 버스(140)의 종류에 따라 슬레이브 장치들(160_1~160_m)은 호스트(120)와 상이한 대역폭을 갖는 통신을 수행할 수 있도록 지원할 수 있다. 슬레이브 장치들(160_1~160_m) 각각은 호스트(120)와 통신하기 위하여 적어도 하나의 슬레이브 어드레스를 호스트(120)로부터 할당 받을 수 있다. 호스트(120)는 버스 마스터(122)를 포함할 수 있으며, 버스 마스터(122)는 슬레이브 장치들(160_1~160_m)에 슬레이브 어드레스를 할당하는 동작을 제어 또는 관리할 수 있다. 버스 마스터(122)는 버스 컨트롤러로 지칭될 수 있다. 일 실시예로, 버스 마스터(122)와 슬레이브 장치들(160_1~160_m)은 ARP(Address Resolution Protocol)를 수행함으로써, 슬레이브 장치들(160_1~160_m)은 슬레이브 어드레스를 할당받을 수 있다.
일 실시예로, 제1 슬레이브 장치(160_1)는 복수의 포트들(162) 및 ARP를 지원할 수 있는 복수의 ARP 엔드포인트들(164)을 포함할 수 있다. ARP 엔드포인트 (164)는 관리(Management) 엔드포인트로 지칭될 수 있다. 포트들(162)은 하나의 ARP 전용 포트(P0) 및 통신을 위한 포트들(P1~Pk)을 포함할 수 있다. 또한, 제1 슬레이브 장치(160_1)는 전력 관리 집적 회로(Power Management Integrated Circuit, 미도시) 및 온도 센서(미도시)를 더 포함할 수 있으며, 포트들(162)은 전력 관리 집적 회로 및 온도 센서와 연결되는 적어도 하나의 포트를 더 포함할 수 있다.
제1 슬레이브 장치(160_1)가 ARP를 수행할 때에, ARP 전용 포트(P0)를 이용하여 버스 마스터(122)로부터 ARP 관련 메시지를 수신할 수 있다. 제1 슬레이브 장치(160_1)는 ARP 전용 포트(P0)에 ARP 어드레스를 설정할 수 있다. 예컨대, 제1 슬레이브 장치(160_1)가 부트-업(Boot-up)된 때에, 제1 슬레이브 장치(160_1) 내의 비휘발성 메모리에 저장된 ARP 어드레스를 리드하여 ARP 전용 포트(P0)에 ARP 어드레스를 설정할 수 있다. 버스 마스터(122)는 제1 슬레이브 장치(160_1)에 ARP 어드레스와 일치하는 어드레스를 포함하는 ARP 관련 메시지를 전송할 수 있으며, 제1 슬레이브 장치(160_1)는 ARP 전용 포트(P0)를 통해 ARP 관련 메시지를 수신할 수 있다.
제1 내지 제k 포트들(P1~Pk)은 ARP 엔드포인트들(164)과 대응할 수 있다. 일 예로, 제1 포트(P1)는 제1 ARP 엔드포인트(ARP Endpoint_1)와 대응되고, 제2 포트(P2)는 제2 ARP 엔드포인트(ARP Endpoint_2)와 대응되는 방식으로, 제1 내지 제k 포트들(P1~Pk)은 ARP 엔드포인트들(164)과 일대일 대응될 수 있다. 다만, 이는 예시적 실시예에 불과한 바, 다양한 방식으로 제1 내지 제k 포트들(P1~Pk)은 ARP 엔드포인트들(164)과 대응할 수 있다. 제1 슬레이브 장치(160_1)는 수신한 ARP 관련 메시지를 기반으로 ARP를 수행하여 버스 마스터(122)로부터 수신한 슬레이브 어드레스들을 ARP 엔드포인트들(164) 각각에 할당할 수 있다. 또한, 제1 슬레이브 장치(160_1)는 할당 결과를 기반으로 ARP 엔드포인트들(164) 각각에 대응하는 제1 내지 제k 포트들(P1~Pk)에 슬레이브 어드레스를 설정할 수 있다. 예컨대, 제1 슬레이브 장치(160_1)는 버스 마스터(122)로부터 수신한 제1 슬레이브 어드레스를 제1 ARP 엔드포인트에 할당하고, 제1 ARP 엔드포인트에 대응하는 제1 포트(P1)에 제1 슬레이브 어드레스를 설정할 수 있다. 제1 슬레이브 장치(160_1)의 ARP 수행에 대한 구체적인 서술은 후술한다.
ARP 엔드포인트들(164)은 각각 대응하는 포트들(P1~Pk)을 통해 호스트(120)로부터 소정의 커맨드, 요청, 데이터 신호 등을 수신할 수 있다. ARP 엔드포인트들(164)은 수신한 신호들을 제1 슬레이브 장치(160_1) 내의 컨트롤러 또는 프로세서에 라우팅할 수 있다. 또한, ARP 엔드포인트들(164)은 제1 슬레이브 장치(160_1) 내의 컨트롤러 또는 프로세서에 의해 생성된 응답, 데이터 신호 등을 각각 대응하는 포트들(P1~Pk)을 통해 호스트(120)에 전송할 수 있다.
제1 슬레이브 장치(160_1)의 구성은 다른 슬레이브 장치들(160_2~160_m)에도 적용될 수 있다. 다만, 슬레이브 장치들(160_1~160_m) 각각의 ARP 어드레스는 상이하며, 각각이 포함하는 포트의 개수, ARP 엔드포인트 개수는 동일 또는 상이할 수 있다. 슬레이브 장치들(160_1~160_m) 각각은 ARP 전용 포트를 통해 버스 마스터(122)로부터 ARP 관련 메시지를 수신하고, ARP 관련 메시지에 기반하여 ARP를 수행하여, 슬레이브 어드레스들을 할당받을 수 있다.
이와 같이, 본 개시의 일 실시예에 따른 슬레이브 장치는 ARP 관련 메시지를 전담하여 수신하는 ARP 전용 포트를 통해 ARP 엔드포인트들 각각에 슬레이브 어드레스를 할당하기 위한 ARP 관련 메시지들을 호스트로부터 수신할 수 있어, ARP 수행을 위한 필요한 포트 개수를 최소화하여 슬레이브 장치의 사이즈를 줄일 수 있다.
도 2a 및 도 2b는 도 1의 제1 슬레이브 장치(160_1)의 구현 예를 설명하기 위한 블록도이다.
도 2a를 참조하면, 도 1의 제1 슬레이브 장치(160_1)는 SSD(Solid State Drive, 200)로 구현될 수 있다. 다만, 이는 예시적 실시예에 불과한 바, 제1 슬레이브 장치(160_1)는 다양한 종류의 메모리 시스템 또는 메모리 장치로 구현될 수 있다. 이하에서는, 제1 슬레이브 장치(160_1)가 SSD(200)로 구현된 예를 중심으로 서술하나, 제1 슬레이브 장치(160_1)의 구현 예는 이에 한정되지 않음은 분명하다. SSD(200)는 메모리 동작을 수행하는 비휘발성 메모리 서브시스템(220) 및 VPD(Vital Product Data)를 저장하는 정보 장치(240)를 포함할 수 있다. VPD는 IPMI(Intelligent Platform Management Interface) 플랫폼 관리 FRU(Field Replaceable Unit) 정보 저장소 정의에 의해 정의되는 것으로서, SSD(200)의 특정 하드웨어 또는 소프트웨어 세트와 관련된 구성(Configuration) 및 정보 데이터이다. 예를 들어, VPD는 SSD(200)와 관련된 부품(part) 번호, 일련(serial) 번호, 엔지니어링 변경 레벨 등의 정보를 저장할 수 있다. 정보 장치(240)는 FRU 정보 장치로 지칭될 수 있으며, EEPROM(Electrically Erasable Programmable Read-Only Memory) 장치로 구현될 수 있다. 비휘발성 메모리 서브시스템(220)은 적어도 하나의 컨트롤러(또는, 프로세서), 비휘발성 메모리들을 포함할 수 있다.
비휘발성 메모리 서브시스템(220) 및 정보 장치(240)는 SM 버스(SM_Bus)와 연결될 수 있다. 즉, 도 1의 호스트(120)는 SM 버스(SM_Bus)를 통해 비휘발성 메모리 서브시스템(220) 및 정보 장치(240)에 액세스할 수 있다. 비휘발성 메모리 서브시스템(220)은 SM 버스(SM_Bus)를 통해 호스트(120)로부터 요청 또는 커맨드(이하, 서술의 편의상 커맨드로 통일하여 서술)를 수신하고, 이에 응답하여 메모리 동작을 수행할 수 있다. 비휘발성 메모리 서브시스템(220)은 SM 버스(SM_Bus)를 통해 메모리 동작의 결과를 호스트(120)에 전송할 수 있다. 정보 장치(240)는 SM 버스(SM_Bus)를 통해 호스트(120)로부터 VPD 관련 커맨드를 수신할 수 있으며, 정보 장치(240)는 SM 버스(SM_Bus)를 통해 호스트(120)로 VPD 관련 커맨드에 대한 응답을 전송할 수 있다.
도 1의 ARP 엔드포인트들(164)은 비휘발성 메모리 서브시스템(220)에 대응하는 적어도 하나의 ARP 엔드포인트, 정보 장치(240)에 대응하는 적어도 하나의 ARP 엔드포인트를 포함할 수 있다. 또한, 도 1의 SSD(200)는 비휘발성 메모리 서브시스템(220)와 정보 장치(240)를 별개의 블록으로서 포함하고 있으나, 이에 국한되지 않고, SSD(200)는 정보 장치(240)를 포함하는 비휘발성 메모리 서브시스템(220)을 포함할 수 있다.
도 2b를 더 참조하면, 도 2a의 SSD(200)와 비교하여, 전력 관리 집적 회로(260) 및 온도 센서(280)를 더 포함할 수 있다. 전력 관리 집적 회로(260)는 SSD(200)의 전력을 관리할 수 있으며, 온도 센서(280)는 SSD(200) 내부의 온도를 센싱할 수 있다. 비휘발성 메모리 서브시스템(220) 내의 컨트롤러는 전력 관리 집적 회로(260)의 동작 및 온도 센서(280)의 동작을 제어할 수 있다.
도 3은 본 개시의 일 실시예에 따른 SSD(200)의 ARP 엔드포인트들 (224, 226, 242) 및 포트들(281, 282, 283)의 구성을 설명하기 위한 블록도이다.
도 3을 참조하면, SSD(200)는 비휘발성 메모리 시스템(220), 정보 장치(240) 및 포트들(281~283)을 포함할 수 있다. 비휘발성 메모리 시스템(200)은 컨트롤러(222)를 포함할 수 있으며, 제1 내지 제2 ARP 엔드포인트들(224, 226)은 비휘발성 메모리 시스템(220)에 대응할 수 있다. 제1 ARP 엔드포인트(224)는 제1 포트(281)와 대응되고, 제1 포트(281)를 통해 SM 버스(SM_Bus)와 연결될 수 있다. 제2 ARP 엔드포인트(226)는 제2 포트(282)와 대응되고, 제2 포트(282)를 통해 SM 버스(SM_Bus)와 연결될 수 있다. 제1 내지 제2 ARP 엔드포인트들(224, 226)은 SM 버스(SM_Bus)를 통해 도 1의 호스트(120)로부터 커맨드를 수신하고, 수신한 커맨드를 컨트롤러(222)에 라우팅할 수 있다. 컨트롤러(222)는 관리 인터페이스(Management Interface; MI)를 포함할 수 있으며, 관리 인터페이스(MI)는 제1 내지 제2 ARP 엔드포인트들(224, 226)로부터 라우팅된 커맨드를 제1 내지 제2 ARP 엔드포인트들(224, 226) 대신 처리할 수 있다. 즉, 관리 인터페이스(MI)는 라우팅된 커맨드를 기반으로 메모리 동작을 수행할 수 있다. 관리 인터페이스(MI)는 메모리 동작의 결과들을 제1 내지 제2 ARP 엔드포인트들(224, 226)에 전송할 수 있으며, 제1 내지 제2 ARP 엔드포인트들(224, 226)은 각각 제1 내지 제2 포트들(281, 282)을 통해 메모리 동작의 결과들을 호스트(120)에 전송할 수 있다. 도 3의 비휘발성 메모리 서브시스템(220)은 하나의 컨트롤러(222)만을 포함하는 것으로 도시하고 있으나, 이는 예시적 실시예에 불과한 바, 이에 국한되지 않고, 다양한 기능을 지원하기 위하여 복수의 컨트롤러들을 포함할 수 있다.
정보 장치(240)는 도 2a에서 서술한 바와 같이, VPD를 저장할 수 있으며, 제3 엔드포인트(242)는 정보 장치(240)에 대응할 수 있다. 제3 ARP 엔드포인트(242)는 제3 포트(283)와 대응되고, 제3 포트(283)를 통해 SM 버스(SM_Bus)와 연결될 수 있다. 제3 ARP 엔드포인트(242)는 SM 버스(SM_Bus)를 통해 호스트(120)로부터 VPD 관련 커맨드를 수신하고, 수신한 VPD 관련 커맨드를 컨트롤러(222)에 라우팅할 수 있다. VPD 관련 커맨드에 따른 동작은 도 10 및 도 11에서 구체적으로 서술하겠다.
전술한 바와 같이, ARP 엔드포인트들(224, 226, 242)은 SM 버스(SM_Bus)를 통해 호스트(120)로부터 커맨드를 수신하거나, 커맨드에 따른 응답을 호스트(120)에 전송하기 위해 슬레이브 어드레스의 할당이 필요하다. SSD(200)는 위와 같은 ARP 엔드포인트들(224, 226, 242)에 대한 슬레이브 어드레스 할당을 위하여 ARP를 수행할 수 있으며, 도 4 등에서 구체적으로 서술하겠다.
또한, 도 3에서 도시된 SSD(200)의 구성은 예시적 실시예에 불과한 바, 이에 국한되지 않으며, SSD(200)는 비휘발성 메모리 서브시스템(220) 및 정보 장치(240) 이외의 다양한 장치들을 포함할 수 있으며, SSD(200)의 구성에 따라 다양한 엔드포인트들이 SSD(200) 내에 형성될 수 있다.
도 4는 본 개시의 일 실시예에 따른 SSD(200)의 ARP 수행을 설명하기 위한 블록도이다.
도 4에서는 SSD(200)의 ARP 수행을 설명하기 위해 필요한 구성 요소만을 도시하였다. 도 4를 참조하면, SSD(200)는 컨트롤러(222), 메모리(260) 및 ARP 전용 포트(284)를 포함할 수 있다. 컨트롤러(222)는 ARP 수행을 위한 관리 인터페이스(MI)를 포함할 수 있다. ARP 수행하는 때에 관리 인터페이스(MI)는 관리 인터페이스(MI)로 지칭될 수 있다. 메모리(260)는 비휘발성 메모리일 수 있으며, 관리 인터페이스(MI)가 ARP 수행할 때에, 필요한 ARP 정보(262)를 저장할 수 있다. ARP 정보(262)는 관리 인터페이스(MI)가 본 개시의 실시예들에 따른 ARP를 수행하는 데에 기반이 되는 소정의 커맨드들 및 ARP 어드레스 등을 포함할 수 있다. ARP 전용 포트(284)는 SM 버스(SM_Bus)를 통해 도 1의 호스트(120)로부터 ARP 관련 메시지(ARP_Message)를 전담하여 수신하여 관리 인터페이스(MI)에 제공하고, ARP 관련 메시지(ARP_Message)에 대한 ARP 응답(ARP_Res)을 관리 인터페이스(MI)로부터 수신하여 SM 버스(SM_Bus)를 통해 호스트(120)에 전송할 수 있다.
관리 인터페이스(MI)는 SSD(200)가 부트-업된 후에, 메모리(260)로부터 ARP 정보(262)를 리드하고, ARP 정보(262)로부터 ARP 어드레스를 획득하여, ARP 전용 포트(284)에 설정(initiate)할 수 있다. 또한, 관리 인터페이스(MI)는 ARP 전용 포트(284)를 활성화시킬 수 있으며, ARP 포트(284)는 설정된 ARP 어드레스에 부합하는 ARP 관련 메시지(ARP_Message)를 수신하여, 관리 인터페이스(MI)에 제공할 수 있다. ARP 관련 메시지(ARP_Message)는 다양한 종류의 ARP 커맨드를 포함할 수 있으며, 관리 인터페이스(MI)는 ARP 커맨드의 종류에 따라 상이한 동작을 수행할 수 있다. 이에 대한 구체적인 내용은 도 7에서 후술하겠다. 정리하면, 관리 인터페이스(284)는 ARP 관련 메시지(ARP_Message)를 기반으로 도 3의 ARP 엔드포인트들(224, 226, 242) 각각에 호스트(120)로부터 수신한 슬레이브 어드레스를 할당할 수 있으며, 더 나아가, 포트들(281, 282, 283) 각각에 슬레이브 어드레스를 설정할 수 있다.
본 개시의 일 실시예에 따른 관리 인터페이스(MI)는 하나의 ARP 전용 포트(284)를 통해 ARP 관련 메시지(ARP_Message)를 수신하고, 모든 ARP 엔드포인트들(224, 226, 242)에 대한 슬레이브 어드레스 할당을 일괄적으로 수행함으로써, 효율적인 ARP를 수행할 수 있는 효과가 있다.
도 5는 도 4의 SSD(200)의 ARP 관련 메시지를 수신 대기할 때까지의 동작을 설명하기 위한 순서도이고 , 도 6은 도 4의 SSD(200)에서 ARP 수행을 위해 생성하는 ARP 테이블( ARP Table_a)을 설명하기 위한 도면이다. 이하 도 5 및 도 6의 내용은 도 3 및 도 4의 내용을 바탕으로 서술하도록 하겠다.
도 5를 참조하면, SSD(200)는 전원 오프가 된 후, 전원 온이 되었을 때, 또는 시스템 리셋(reset) 되었을 때, 부트-업 될 수 있다(S100). 이후, 관리 인터페이스(MI)는 ARP 전용 포트(284)에 ARP 어드레스를 설정할 수 있다(S110). 관리 인터페이스(MI)는 ARP 엔드포인트들(224, 226, 242)에 대한 UDID(Unique Device Identifier)를 생성할 수 있다(S120). ARP 엔드포인트들(224, 226, 242) 각각의 UDID는 상이할 수 있으며, UDID는 슬레이브 어드레스를 ARP 엔드포인트들(224, 226, 242)에 할당할 때에, 이용될 수 있다. 또한, 관리 인터페이스(MI)는 생성한 UDID들을 기반으로 ARP 테이블을 생성할 수 있다(S130).
도 6을 더 참조하면, 관리 인터페이스(MI)는 생성한 UDID들을 기반으로 ARP 테이블(ARP Table_a)을 생성하여, UDID를 관리할 수 있다. ARP 테이블(ARP Table_a)은 ARP 엔드포인트들(224, 226, 242)과 생성한 UDID 간의 대응 관계를 나타낼 수 있다. 예컨대, ARP 테이블(ARP Table_a)은 제1 ARP 엔드포인트(224)는 제1 UDID(UDID_1)와 대응하고, 제2 ARP 엔드포인트(226)는 제2 UDID(UDID_2)와 대응하며, 제3 ARP 엔드포인트(242)는 제3 UDID(UDID_3)와 대응하는 것을 나타낼 수 있다. 위와 같이, 관리 인터페이스(MI)는 SSD(200) 내의 모든 ARP 엔드포인트들(224, 226, 242)에 대한 UDID들(UDID_1~UDID_3)을 일괄적으로 생성할 수 있으며, UDID들(UDID_1~UDID_3)을 ARP 테이블(ARP Table_a)을 이용하여 관리할 수 있다.
다시 도 5로 돌아오면, 관리 인터페이스(MI)는 ARP를 수행하기 위하여, ARP 관련 메시지 수신을 대기할 수 있다(S140).
도 7은 도 4의 SSD(200)의 ARP 관련 메시지를 수신한 때의 동작을 설명하기 위한 순서도이고 , 도 8은 도 4의 SSD(200)에서 ARP 수행의 결과로서 생성하는 ARP 테이블(ARP Table_b)을 설명하기 위한 도면이다. 이하 도 7 및 도 8의 내용은 도 3 및 도 4의 내용을 바탕으로 서술하도록 하겠다.
도 7을 참조하면, 도 5의 단계 S140 이후에, 관리 인터페이스(MI)는 'GetUDID'커맨드를 수신하였는지 여부를 판별할 수 있다(S201). 관리 인터페이스(MI)는 수신한 ARP 관련 메시지(ARP_Message)에 포함된 ARP 커맨드가 'GetUDID'커맨드인지 여부를 판별할 수 있다.'GetUDID'커맨드를 수신한 때(S201, YES), 관리 인터페이스(MI)는 생성한 UDID들(UDID_1~UDID_3)을 SM 버스(SM_Bus)를 통해 모두 전송하였는지 여부를 판별할 수 있다(S202). 모든 UDID들(UDID_1~UDID_3)을 전송하지 않은 때(S202, NO), 관리 인터페이스(MI)는 ARP 테이블(ARP Table_a)로부터 호스트(120)에 전송하지 않은 UDID를 전송할 수 있다(S203). 모든 UDID들(UDID_1~UDID_3)을 전송한 때(S202, YES), 관리 인터페이스(MI)는 호스트(120)에 별다른 응답을 하지 않을 수 있으며, 다음 ARP 관련 메시지(ARP_Message)를 수신하기 위하여 대기할 수 있다(S140).
'GetUDID'커맨드를 수신하지 않은 때(S204, NO), 관리 인터페이스(MI)는 'Assign Address'커맨드를 수신하였는지 여부를 판별할 수 있다(S204). 관리 인터페이스(MI)는 수신한 ARP 관련 메시지(ARP_Message)에 포함된 ARP 커맨드가 'Assign Address'커맨드인지 여부를 판별할 수 있다. 'Assign Address'커맨드를 수신한 때(S204, YES), 관리 인터페이스(MI)는 ARP 테이블(ARP Table_a)의 UDID들(UDID_1~UDID_3) 중 ARP 관련 메시지(ARP_Message)에 포함된 UDID와 일치하는 UDID가 있는지 여부를 판별할 수 있다(S205). ARP 테이블(ARP Table_a)의 UDID들(UDID_1~UDID_3) 중 ARP 관련 메시지(ARP_Message)에 포함된 UDID와 일치하는 UDID가 있는 때(S205, YES), 관리 인터페이스(MI)는 ARP 테이블(ARP Table_a)에 ARP 관련 메시지(ARP_Message)에 포함된 슬레이브 어드레스를 저장할 수 있고, 일치하는 UDID에 대응하는 포트에 슬레이브 어드레스를 설정할 수 있다(S206). 또한, 호스트(120)가 다른 UDID, 슬레이브 어드레스 및 'Assign Address'커맨드를 포함하는 ARP 관련 메시지를 전송할 수 있도록 관리 인터페이스(MI)는 소정의 ACK 신호를 호스트(120)에 전송할 수 있다.
도 8을 더 참조하여 예시적으로 설명하면, ARP 관련 메시지(ARP_Message)는 Assign Address'커맨드, 제1 UDID(UDID_1) 및 제1 슬레이브 어드레스(Slave ADD_1)를 포함하는 때에, 관리 인터페이스(MI)는 ARP 테이블(ARP Table_b)에 제1 UDID(UDID_1)와 일치하는 제1 ARP 엔드포인트(224)의 UDID(UDID_1)를 판별할 수 있다. 관리 인터페이스(MI)는 제1 ARP 엔드포인트(224)와 대응하는 ARP 테이블(ARP Table_b)의 영역에 제1 슬레이브 어드레스(Slave ADD_1)를 저장함으로써, 제1 슬레이브 어드레스(Slave ADD_1)를 제1 ARP 엔드포인트(224)에 할당할 수 있다. 또한, 관리 인터페이스(MI)는 제1 슬레이브 어드레스(Slave ADD_1)를 제1 ARP 엔드포인트(224)에 대응하는 제1 포트(281)에 설정할 수 있다. 관리 인터페이스(MI)는 단계 S205를 포함하는 루프를 복수 회 수행하여, 제1 내지 제3 슬레이브 어드레스들(Slave ADD_1~Slave ADD_3)을 제1 내지 제3 엔드포인트들(224, 226, 242) 각각에 할당할 수 있다. 관리 인터페이스(MI)는 제1 내지 제3 슬레이브 어드레스들(Slave ADD_1~Slave ADD_3)을 ARP 테이블(ARP Table_b)에 저장하고, ARP 테이블(ARP Table_b)을 이용하여 제1 내지 제3 슬레이브 어드레스들(Slave ADD_1~Slave ADD_3)을 일괄적으로 관리할 수 있다.
다시 도 7로 돌아오면, ARP 테이블(ARP Table_a)의 UDID들(UDID_1~UDID_3) 중 ARP 관련 메시지(ARP_Message)에 포함된 UDID와 일치하는 UDID가 더 이상 없는 때(S205, NO), 관리 인터페이스(MI)는 호스트(120)에 별다른 응답을 하지 않을 수 있으며, 다음 ARP 관련 메시지(ARP_Message)를 수신하기 위하여 대기할 수 있다(S140).
'Assign Address'커맨드를 수신하지 않은 때(S204, NO), 관리 인터페이스(MI)는 'ARP Reset'커맨드를 수신하였는지 여부를 판별할 수 있다(S207). 관리 인터페이스(MI)는 수신한 ARP 관련 메시지(ARP_Message)에 포함된 ARP 커맨드가 'ARP Reset'커맨드인지 여부를 판별할 수 있다. 'ARP Reset'커맨드를 수신한 때(S207, YES), 관리 인터페이스(MI)는 ARP 테이블(ARP Table_b)의 제1 내지 제3 슬레이브 어드레스들(Slave ADD_1~Slave ADD_3)을 삭제함으로써, 제1 내지 제3 ARP 엔드포인트들(224, 226, 242)에 대한 슬레이브 어드레스 할당을 해제할 수 있으며, 제1 내지 제3 포트들(281~283)을 비활성화시킬 수 있다(S208). 이후, 관리 인터페이스(MI)는 다음 ARP 관련 메시지(ARP_Message)를 수신하기 위하여 대기할 수 있다(S140).
'ARP Reset'커맨드를 수신하지 않은 때(S207, NO), 관리 인터페이스(MI)는 다른 종류의 커맨드를 수신하였는지 여부를 판별할 수 있다(S209). 예컨대, 다른 종류의 커맨드 중 하나는 'Prepare to ARP'일 수 있다. 관리 인터페이스(MI)는 수신한 ARP 관련 메시지(ARP_Message)에 포함된 ARP 커맨드가 다른 종류의 커맨드인지 여부를 판별할 수 있다. 다른 종류의 커맨드를 수신한 때(S209, YES), 관리 인터페이스(MI)는 수신한 ARP 커맨드에 대응하는 동작을 수행할 수 있다(S210). 다른 종류의 커맨드를 수신하지 않은 때(S209, NO), 관리 인터페이스(MI)는 다음 ARP 관련 메시지(ARP_Message)를 수신하기 위하여 대기할 수 있다(S140).
도 7에 도시된 ARP 커맨드 수신 여부를 판별하는 시퀀스는 예시적 실시예에 불과한 바, 이에 국한되지 않으며, 다양한 시퀀스를 기반으로 ARP 커맨드 수신 여부를 판별할 수 있다.
도 9는 본 개시의 일 실시예에 따른 도 5의 단계 S140 이후의 SSD의 동작을 설명하기 위한 순서도이다 . 이하 도 9의 내용은 도 3 및 도 4의 내용을 바탕으로 서술하도록 하겠다.
도 9를 참조하면, 관리 인터페이스(MI)는 단계 S140 이후에 SM 버스(SM_Bus)를 통해 도 1의 호스트(120)로부터 어드레스와 함께 SM 버스 패킷(또는, SM 버스 패킷은 어드레스를 포함)을 수신할 수 있다(S301). SM 버스 패킷은 ARP 관련 메시지(ARP_Message)를 포함할 수 있으며, 관리 인터페이스(MI)는 SM 버스 패킷에 대응하는 어드레스가 ARP 전용 포트(284)에 설정된 ARP 어드레스와 일치하는지 여부를 판별할 수 있다(S303). SM 버스 패킷에 대응하는 어드레스가 ARP 어드레스와 일치하는 때(S303, YES), 관리 인터페이스(MI)는 SM 버스 패킷에 포함된 ARP 관련 메시지(ARP_Message)를 이용하여 도 7의 단계 S201를 수행할 수 있다. SM 버스 패킷에 대응하는 어드레스가 ARP 어드레스와 일치하지 않는 때(S303, NO), 관리 인터페이스(MI)는 SM 버스 패킷에 대응하는 어드레스가 SSD(200)의 장치 슬레이브 어드레스와 일치하는지 여부를 판별할 수 있다(S305). 장치 슬레이브 어드레스는 ARP 엔드포인트들(224, 226, 242) 각각에 할당된 슬레이브 어드레스를 지칭할 수 있다. 도 8을 더 참조하여 예시적으로 설명하면, SM 버스 패킷에 대응하는 어드레스가 제1 슬레이브 어드레스(Slave ADD_1)인 때에, 관리 인터페이스(MI)는 ARP 테이블(ARP Table_b)을 참조하여, 제1 ARP 엔드포인트(224)에 할당된 제1 슬레이브 어드레스(Slave ADD_1)와 일치함을 판별할 수 있다.
SM 버스 패킷에 대응하는 어드레스가 SSD(200)의 장치 슬레이브 어드레스와 일치하는 때(S305, YES), 관리 인터페이스(MI)는 SM 버스 패킷에 포함된 커맨드에 부합하는 동작을 수행할 수 있다. 즉, SM 버스 패킷에 대응하는 어드레스가 제1 슬레이브 어드레스(Slave ADD_1)인 때에, 제1 ARP 엔드포인트(224)는 제1 포트(281)를 통해 SM 버스 패킷을 수신할 수 있으며, 제1 ARP 엔드포인트(224)는 SM 버스 패킷을 관리 인터페이스(MI)에 라우팅할 수 있다. 관리 인터페이스(MI)는 SM 버스 패킷에 포함된 커맨드에 부합하는 동작을 수행할 수 있다. 더 나아가, 관리 인터페이스(MI)는 커맨드에 부합하는 동작 수행 결과를 제1 ARP 엔드포인트(224)에 제공할 수 있으며, 제1 ARP 엔드포인트(224)는 제1 포트(281)를 통해 커맨드에 부합하는 동작 수행 결과를 호스트(120)에 전송할 수 있다.
관리 인터페이스(MI)는 SM 버스 패킷을 수신하지 않은 때(S301, NO), SM 버스 패킷에 대응하는 어드레스가 장치 슬레이브 어드레스와 일치하지 않는 때(S305, NO), 단계 S307을 수행한 후에는 ARP 관련 메시지를 포함하는 다음 SM 버스 패킷을 수신하기 위해 대기할 수 있다(S140).
도 10은 본 개시의 일 실시예에 따른 SSD(300)의 VPD 관련 커맨드에 부합하는 동작 수행을 설명하기 위한 블록도이고 , 도 11은 도 10의 SSD(300)의 동작을 설명하기 위한 순서도이다.
도 10에서는 SSD(300)의 VPD 관련 커맨드에 부합하는 동작 수행을 설명하기 위해 필요한 구성 요소만을 도시하였다. 도 10을 참조하면, SSD(300)는 컨트롤러(322), 정보 장치(340), 제3 ARP 엔드포인트(342) 및 제3 포트(383)를 포함할 수 있다. 제3 ARP 엔드포인트(342)에는 슬레이브 어드레스가 할당된 상태이며, 제3 ARP 엔드포인트(342)는 제3 포트(383)를 통해 도 1의 호스트(120)로부터 VPD 관련 커맨드(VPD CMD)를 수신할 수 있다. VPD 관련 커맨드(VPD CMD)는 VPD 리드 커맨드(VPD Read CMD) 또는 VPD 라이트 커맨드(VPD Write CMD)일 수 있다. 호스트(120)는 정보 장치(340)에 저장된 VPD(344)에 액세스하거나 VPD(344)를 업데이트하기 위하여 VPD 관련 커맨드를 SSD(300)에 SM 버스(SM_Bus)를 통해 전송할 수 있다.
먼저, 제3 ARP 엔드포인트(342)가 VPD 리드 커맨드(VPD Read CMD)를 수신한 때에, VPD 리드 커맨드(VPD Read CMD)를 관리 인터페이스(MI)로 라우팅할 수 있다. 관리 인터페이스(MI)는 VPD 리드 커맨드(VPD Read CMD)를 기반으로 내부 리드 커맨드(INT Read CMD)를 생성하여, 정보 장치(340)에 제공할 수 있다. 관리 인터페이스(MI)는 정보 장치(340)로부터 VPD(344)를 포함하는 내부 커맨드 응답(INT CMD_Res)을 수신할 수 있다. 관리 인터페이스(MI)는 내부 커맨드 응답(INT CMD_Res)을 기반으로 VPD(344)를 포함하는 VPD 커맨드 응답(VPD CMD_Res)을 생성하여, 제3 ARP 엔드포인트(342)에 제공할 수 있으며, 제3 ARP 엔드포인트(342)는 제3 포트(383)를 통해 호스트(120)에 VPD 커맨드 응답(VPD CMD_Res)을 전송할 수 있다.
제3 ARP 엔드포인트(342)가 VPD 라이트 커맨드(VPD Write CMD)를 수신한 때에, 도 10에는 도시되지는 않았지만, VPD 라이트 커맨드(VPD Write CMD)와 함께 소정의 데이터를 호스트(120)로부터 수신할 수 있다. 제3 ARP 엔드포인트(342)는 소정의 데이터 및 VPD 라이트 커맨드(VPD Write CMD)를 관리 인터페이스(MI)로 라우팅할 수 있다. 관리 인터페이스(MI)는 VPD 라이트 커맨드(VPD Write CMD)를 기반으로 내부 라이트 커맨드(INT Write CMD)를 생성하여, 소정의 데이터와 함께 정보 장치(340)에 제공할 수 있다. 정보 장치(340)는 내부 라이트 커맨드(INT Write CMD)에 응답하여, 소정의 데이터를 VPD(344)로서 정보 장치(340)의 메모리에 라이트할 수 있다. 관리 인터페이스(MI)는 정보 장치(340)로부터 라이트 동작 완료를 알리기 위한 신호 및 내부 라이트 커맨드(INT Write CMD)를 수신하였음을 알리기 위한 신호 중 적어도 하나를 포함하는 내부 커맨드 응답(INT CMD_Res)을 수신할 수 있다. 관리 인터페이스(MI)는 내부 커맨드 응답(INT CMD_Res)을 기반으로 VPD 커맨드 응답(VPD CMD_Res)을 생성하여, 제3 ARP 엔드포인트(342)에 제공할 수 있으며, 제3 ARP 엔드포인트(342)는 제3 포트(383)를 통해 호스트(120)에 VPD 커맨드 응답(VPD CMD_Res)을 전송할 수 있다.
도 11을 참조하면, 관리 인터페이스(MI)는 호스트(120)로부터 정보 장치(340)에 대응하는 포트(예를 들면, 제3 포트(383))를 통해 VPD 관련 커맨드를 수신할 수 있다(S400). 관리 인터페이스(MI)는 VPD 관련 커맨드를 기반으로 내부 커맨드(INT CMD)를 생성하여, 정보 장치(340)에 제공할 수 있다(S420). 관리 인터페이스(MI)는 정보 장치(340)로부터 내부 커맨드 응답(INT CMD_Res)을 수신할 수 있다(S440). 관리 인터페이스(MI)는 내부 커맨드 응답(INT CMD_Res)을 기반으로 VPD 관련 커맨드 응답(VPD CMD_Res)을 생성하여, 호스트(120)에 포트(예를 들면, 제3 포트(383))를 통해 제공할 수 있다(S460).
도 12는 본 개시의 실시예들에 따른 메모리 시스템(1100)을 포함하는 컴퓨팅 시스템(1000)을 개략적으로 나타내는 블록도이다.
도 12를 참조하면, 컴퓨팅 시스템(1000)은 메모리 시스템(1100), 프로세서(1200), RAM(1300), 입출력 장치(1400), 및 전원 장치(1500) 포함할 수 있다. 한편, 도 23에는 도시되지 않았지만, 컴퓨팅 시스템(1000)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다. 컴퓨팅 시스템(1000)은 퍼스널 컴퓨터로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(personal digital assistant) 및 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다. 프로세서(1200)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다.
일실시예에 따라, 프로세서(1200)는 마이 크로프로세서(micro-processor), 중앙 처리 장치(Central Processing Unit; CPU)일수 있다. 프로세서(1200)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus) 등과 같은 버스(1600)를 통하여 RAM(1300), 입출력 장치(1400) 및 메모리 시스템(1100)과 통신을 수행할 수 있다. 이때, 메모리 시스템(1100)은 도 1 내지 도 11에 도시된 실시예들이 적용되도록 구현될 수 있다. 즉, 메모리 시스템(1100)의 메모리 컨트롤러(1120)는 메모리(1110)에 대응하는 엔드포인트들 각각에 슬레이브 어드레스를 할당하기 위하여, ARP 전용 포트를 이용해 일괄적으로 ARP를 수행할 수 있으며, ARP 테이블을 이용해 ARP를 효율적으로 수행할 수 있다. 메모리 동작 대상이 되는 적어도 하나의 선택 워드라인과 연결된 서브 블록의 위치에 따라서 메모리 동작 방식을 다르게 하여 메모리 동작을 수행할 수 있다. 일 실시예에 따라, 프로세서(1200)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다. RAM(1300)은 컴퓨팅 시스템(1000)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, RAM(1300)은 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다. 입출력 장치(1400)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다. 전원 장치(1500)는 컴퓨팅 시스템(1000)의 동작에 필요한 동작 전압을 공급할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 호스트와 연결되는 복수의 포트들(Ports) 및 복수의 엔드포인트들(Endpoints)을 포함하는 슬레이브 장치의 동작 방법에 있어서,
    상기 포트들에 복수의 슬레이브 어드레스들을 각각 설정하기 위해 복수회의 루프들을 수행하는 단계를 포함하며,
    상기 루프들 중 N(단, N은 1 이상의 정수) 루프는,
    상기 포트들 중 ARP(Address Resolution Protocol) 전용 포트를 통해 상기 호스트로부터 제1 ARP 커맨드 및 제N 슬레이브 어드레스를 수신하는 단계;
    상기 제1 ARP 커맨드에 응답하여, 상기 제N 슬레이브 어드레스를 상기 엔드포인트들 중 제N 엔드포인트에 할당하는 단계; 및
    상기 포트들 중 상기 제N 엔드포인트에 대응하는 제N 포트에 상기 제N 슬레이브 어드레스를 설정(initiate)하는 단계를 포함하는 슬레이브 장치의 동작 방법.
  2. 제1항에 있어서,
    상기 슬레이브 장치의 동작 방법은,
    상기 ARP 전용 포트에 상기 호스트로부터 적어도 하나의 ARP 관련 메시지를 수신하기 위해 ARP 어드레스를 설정하는 단계를 더 포함하는 것을 특징으로 하는 슬레이브 장치의 동작 방법.
  3. 제1항에 있어서,
    상기 슬레이브 장치의 동작 방법은,
    상기 엔드포인트들에 대응하는 UDID(Unique Device Identifier)들을 생성하는 단계; 및
    생성한 상기 UDID들을 이용하여 상기 엔드포인트들과 상기 UDID들의 대응 관계를 나타내는 ARP 테이블을 생성하는 단계를 더 포함하는 것을 특징으로 하는 슬레이브 장치의 동작 방법.
  4. 제3항에 있어서,
    상기 슬레이브 장치의 동작 방법은,
    상기 ARP 전용 포트를 통해 상기 호스트로부터 제2 ARP 커맨드를 수신하는 단계; 및
    상기 제2 ARP 커맨드에 응답하여, 상기 ARP 테이블을 참조해 상기 UDID들 중 어느 하나를 상기 ARP 전용 포트를 통해 상기 호스트로 전송하는 단계를 더 포함하는 것을 특징으로 하는 슬레이브 장치의 동작 방법.
  5. 제3항에 있어서,
    상기 제N 슬레이브 어드레스를 상기 제N 엔드포인트에 할당하는 단계는,
    상기 ARP 테이블의 상기 UDID들과 상기 제1 ARP 커맨드와 함께 수신된 UDID를 비교하는 단계;
    상기 ARP 테이블의 상기 UDID들 중 제N UDID가 상기 수신된 UDID과 일치하는 때에, 상기 ARP 테이블을 참조하여, 상기 엔드포인트들 중 상기 제N UDID와 대응하는 상기 제N 엔드포인트를 획득하는 단계; 및
    획득한 상기 제N 엔드포인트에 상기 제N 슬레이브 어드레스를 할당하는 단계를 포함하는 것을 특징으로 하는 슬레이브 장치의 동작 방법.
  6. 제5항에 있어서,
    상기 슬레이브 어드레스들을 설정하는 단계는,
    상기 제N 엔드포인트와 상기 제N 슬레이브 어드레스의 대응 관계를 나타내기 위해 상기 ARP 테이블에 상기 제N 슬레이브 어드레스를 저장하는 단계를 더 포함하는 것을 특징으로 하는 슬레이브 장치의 동작 방법.
  7. 제6항에 있어서,
    상기 루프들을 수행한 결과, 상기 ARP 테이블은 상기 엔드포인트들에 할당된 상기 슬레이브 어드레스들을 저장하는 것을 특징으로 하는 슬레이브 장치의 동작 방법.
  8. 제7항에 있어서,
    상기 슬레이브 장치의 동작 방법은,
    상기 ARP 전용 포트를 통해 상기 호스트로부터 제3 ARP 커맨드를 수신하는 단계; 및
    상기 제3 ARP 커맨드에 응답하여, 상기 ARP 테이블에 저장된 상기 슬레이브 어드레스들을 삭제하는 단계를 더 포함하는 것을 특징으로 하는 슬레이브 장치의 동작 방법.
  9. 제1항에 있어서,
    상기 슬레이브 장치의 동작 방법은,
    상기 루프들을 수행한 후에, 상기 ARP 전용 포트를 통해 상기 호스트로부터 제3 ARP 커맨드를 수신하는 단계; 및
    상기 제3 ARP 커맨드에 응답하여, 상기 포트들 각각에 대한 슬레이브 어드레스 설정을 해제하는 단계를 더 포함하는 슬레이브 장치의 동작 방법.
  10. 복수의 포트들, 복수의 엔드포인트들 및 상기 엔드포인트들 각각에 슬레이브 어드레스를 할당하기 위한 컨트롤러를 포함하는 SSD(Solid State Drive)의 동작 방법에 있어서,
    상기 컨트롤러는 상기 포트들 중 ARP 전용 포트에 ARP 어드레스를 설정하는 단계;
    상기 컨트롤러는 상기 ARP 전용 포트를 통해 호스트로부터 ARP 관련 메시지를 수신하는 단계; 및
    상기 컨트롤러는 상기 ARP 관련 메시지를 기반으로 ARP를 수행하는 단계를 포함하는 것을 특징으로 하는 SSD의 동작 방법.
KR1020170140316A 2017-10-26 2017-10-26 Arp를 수행하는 슬레이브 장치 및 이의 동작 방법 KR102352156B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170140316A KR102352156B1 (ko) 2017-10-26 2017-10-26 Arp를 수행하는 슬레이브 장치 및 이의 동작 방법
US16/007,405 US10749836B2 (en) 2017-10-26 2018-06-13 Slave device for performing address resolution protocol and operating method thereof
CN201811249880.0A CN109710555B (zh) 2017-10-26 2018-10-25 用于执行地址解析协议的从设备及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170140316A KR102352156B1 (ko) 2017-10-26 2017-10-26 Arp를 수행하는 슬레이브 장치 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190046470A true KR20190046470A (ko) 2019-05-07
KR102352156B1 KR102352156B1 (ko) 2022-01-17

Family

ID=66244415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170140316A KR102352156B1 (ko) 2017-10-26 2017-10-26 Arp를 수행하는 슬레이브 장치 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US10749836B2 (ko)
KR (1) KR102352156B1 (ko)
CN (1) CN109710555B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11226671B2 (en) 2019-02-27 2022-01-18 Micron Technology, Inc. Power translator component
US11481303B2 (en) * 2019-04-18 2022-10-25 Bretford Manufacturing, Inc. Method and apparatus for controlling LED operation of a storage system
CN110247997B (zh) * 2019-06-26 2020-12-15 三维通信股份有限公司 Das系统中ip地址分配和拓扑管理的方法、装置和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150120514A (ko) * 2013-02-22 2015-10-27 삼성전자주식회사 다수의 E-NodeB들과 사용자 단말 간에 동시 접속을 제공하기 위한 방법 및 시스템

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313136B2 (en) 2003-06-26 2007-12-25 Nokia Corporation Method and system establishing a data link layer protocol on a I2C™ physical layer connection
WO2008018485A1 (fr) 2006-08-09 2008-02-14 Nec Corporation Commutateur pour une interconnexion, et système
US7743269B2 (en) 2007-02-26 2010-06-22 Dell Products, Lp System and method of managing power consumption of communication interfaces and attached devices
US8930609B2 (en) 2010-08-18 2015-01-06 Intel Corporation Method, apparatus, and system for manageability and secure routing and endpoint access
US8688926B2 (en) * 2010-10-10 2014-04-01 Liqid Inc. Systems and methods for optimizing data storage among a plurality of solid state memory subsystems
WO2013105963A1 (en) 2012-01-12 2013-07-18 Intel Corporation Pcie smbus slave address self-selection
US10454760B2 (en) * 2012-05-23 2019-10-22 Avago Technologies International Sales Pte. Limited Layer-3 overlay gateways
US9507736B2 (en) 2012-06-01 2016-11-29 Broadcom Corporation Network controller with integrated management controller
US8995443B2 (en) * 2012-07-31 2015-03-31 Qualcomm Incorporated Address resolution mechanism for hybrid communication networks
WO2014115157A1 (en) * 2013-01-24 2014-07-31 Hewlett-Packard Development Comany, L.P. Address resolution in software-defined networks
US20140223066A1 (en) 2013-02-06 2014-08-07 Advanced Micro Devices, Inc. Multi-Node Management Mechanism
CN104166628B (zh) * 2013-05-17 2018-05-18 华为技术有限公司 管理内存的方法、装置和系统
US9426060B2 (en) * 2013-08-07 2016-08-23 International Business Machines Corporation Software defined network (SDN) switch clusters having layer-3 distributed router functionality
US9785455B2 (en) * 2013-10-13 2017-10-10 Nicira, Inc. Logical router
US9798636B2 (en) 2014-06-23 2017-10-24 Liqid Inc. Front end traffic handling in modular switched fabric based data storage systems
US10002044B2 (en) * 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
KR102214556B1 (ko) * 2014-08-19 2021-02-09 삼성전자주식회사 메모리 장치 및 모듈
US9940275B2 (en) 2015-03-16 2018-04-10 Dell Products, Lp System and method to avoid SMBus address conflicts via a baseboard management controller
US9998324B2 (en) 2015-09-30 2018-06-12 Nicira, Inc. Logical L3 processing for L2 hardware switches
US10409737B2 (en) * 2017-06-07 2019-09-10 Intel Corporation Apparatus, system, and method for positionally aware device management bus address assignment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150120514A (ko) * 2013-02-22 2015-10-27 삼성전자주식회사 다수의 E-NodeB들과 사용자 단말 간에 동시 접속을 제공하기 위한 방법 및 시스템

Also Published As

Publication number Publication date
US10749836B2 (en) 2020-08-18
US20190132277A1 (en) 2019-05-02
CN109710555A (zh) 2019-05-03
CN109710555B (zh) 2023-09-26
KR102352156B1 (ko) 2022-01-17

Similar Documents

Publication Publication Date Title
US9531668B2 (en) Micro server, method of allocating MAC address, and computer readable recording medium
US10372639B2 (en) System and method to avoid SMBus address conflicts via a baseboard management controller
US9684530B2 (en) System and method for assigning virtual functions and management host thereof
US10917291B2 (en) RAID configuration
KR20170008141A (ko) 복수의 엑세스 모드를 지원하는 불휘발성 메모리를 포함하는 시스템 및 그것의 엑세스 방법
KR102352156B1 (ko) Arp를 수행하는 슬레이브 장치 및 이의 동작 방법
US8949499B2 (en) Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US20180225246A1 (en) Computer system and method for accessing endpoint device in computer system
CN111078410B (zh) 内存分配方法、装置、存储介质及电子设备
KR101821016B1 (ko) 제어 시스템의 구성요소에 식별자를 할당하는 장치, 시스템 및 방법
US9146693B2 (en) Storage control device, storage system, and storage control method
US11093422B2 (en) Processor/endpoint communication coupling configuration system
US9319350B2 (en) Virtual address for virtual port
CN111475435A (zh) 一种存储介质共享方法、装置及电子设备和存储介质
CN115858440A (zh) PCIe设备管理方法、设备及服务器
JP2019175427A (ja) コンピュータシステム及びその動作方法
CN109643295B (zh) 从发起者节点访问耦合到目标节点的存储器
JP2019139417A (ja) 情報処理装置、制御方法及び制御プログラム
CN113568858B (zh) 设备管理方法、装置及存储介质
TWI615720B (zh) 資源分配系統、設備分配控制器以及設備識別方法
CN116795642A (zh) 服务器子卡的监控方法、装置、计算机设备及存储介质
JP2019192232A (ja) コンピューティングシステム及びこれを備えるデータ処理システム
CN116578350A (zh) 通信接口功能配置方法、装置、通信系统、设备及介质
JP2013182461A (ja) 情報処理装置および情報処理装置におけるリソースの制御方法、並びにコンピュータ・プログラム

Legal Events

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