KR20200054004A - 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법 - Google Patents

호스트와 통신을 수행하는 전자 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20200054004A
KR20200054004A KR1020180137606A KR20180137606A KR20200054004A KR 20200054004 A KR20200054004 A KR 20200054004A KR 1020180137606 A KR1020180137606 A KR 1020180137606A KR 20180137606 A KR20180137606 A KR 20180137606A KR 20200054004 A KR20200054004 A KR 20200054004A
Authority
KR
South Korea
Prior art keywords
signal
host
electronic device
completion signal
policy
Prior art date
Application number
KR1020180137606A
Other languages
English (en)
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 KR1020180137606A priority Critical patent/KR20200054004A/ko
Priority to US16/671,542 priority patent/US11175855B2/en
Priority to CN201911069587.0A priority patent/CN111177058A/zh
Publication of KR20200054004A publication Critical patent/KR20200054004A/ko
Priority to US17/499,512 priority patent/US11593033B2/en

Links

Images

Classifications

    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • 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
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/14Two-way operation using the same type of signal, i.e. duplex
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/14Two-way operation using the same type of signal, i.e. duplex
    • H04L5/16Half-duplex systems; Simplex/duplex switching; Transmission of break signals non-automatically inverting the direction of transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

본 개시의 기술적 사상의 일측면에 따른 호스트와 통신을 수행하는 전자 장치에 있어서, 상기 호스트와 상기 전자 장치의 연결이 설립된 이후에 초기 커맨드(initial command) 신호 및 상기 초기 커맨드 신호에 따른 제1 완료 신호를 수신하고, 상기 초기 커맨드 신호 및 상기 제1 완료 신호에 기초하여 감지한 상기 호스트의 신호 전송 정책에 기초하여 감지 신호를 전송하는 감지 로직 및 상기 감지 신호에 기초하여 상기 호스트로 제2 완료 신호를 전송하는 전송 로직을 포함하며, 상기 감지 로직은, 상기 호스트로부터 수신한 적어도 하나의 데이터 프레임들에 따른 제1 완료 신호를 수신하였는지 여부에 따라 상기 감지 신호를 전송하는 것을 특징으로 한다.

Description

호스트와 통신을 수행하는 전자 장치 및 그 동작 방법 { ELECTRONIC DEVICE FOR COMMUNICATING WITH HOST AND OPERATING METHOD OF THE ELECTRONIC DEVICE }
본 개시의 기술적 사상은 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법에 관한 것으로서, 자세하게는 호스트와 전자 장치가 함께 양방향 통신을 수행하는 전자 장치 및 그 동작 방법에 관한 것이다.
전자 기술 발달함에 따라 전자 장치가 전송하는 정보의 양이 급격하게 증가하였고, 데이터 통신을 효율적으로 수행하기 위해 처리 장치(processing unit), 메모리, 통신 장치 등 다양한 분야에서 데이터 통신을 위한 인터페이스를 개선하기 위한 연구가 이루어지고 있다. 그러나, 종래의 인터페이스들 중 일부는 다양한 원인들에 의해 반이중 통신(half duplex connection)이 설립(establish)되어 데이터 통신의 효율성이 저하되었다.
본 개시의 기술적 사상을 통해 해결하려는 과제는 호스트의 신호 전송 정책을 감지함에 따라 호스트로 완료 신호를 전송함으로서 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법을 제공함에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 호스트와 통신을 수행하는 전자 장치에 있어서, 상기 호스트와 상기 전자 장치의 연결이 설립된 이후에 초기 커맨드(initial command) 신호 및 상기 초기 커맨드 신호에 따른 제1 완료 신호를 수신하고, 상기 초기 커맨드 신호 및 상기 제1 완료 신호에 기초하여 감지한 상기 호스트의 신호 전송 정책에 기초하여 감지 신호를 전송하는 감지 로직; 및 상기 감지 신호에 기초하여 상기 호스트로 제2 완료 신호를 전송하는 전송 로직을 포함하며, 상기 감지 로직은, 상기 호스트로부터 수신한 적어도 하나의 데이터 프레임들에 따른 제1 완료 신호를 수신하였는지 여부에 따라 상기 감지 신호를 전송한다.
본 개시의 기술적 사상의 일측면에 따른 호스트와 통신을 수행하는 전자 장치의 동작 방법에 있어서, 제1 국면에서, 상기 호스트의 신호 전송 정책을 상기 호스트가 기설정된 개수의 데이터 프레임들을 전송한 후 상기 데이터 프레임에 따른 제1 완료 신호를 전송하는 제1 정책으로 감지하는 단계; 제2 국면에서, 적어도 하나의 데이터 프레임들을 전송 및 수신하는 단계; 및 상기 제2 국면에서, 상기 정책을 감지함에 따라 상기 호스트로부터 상기 제1 완료 신호를 수신하면 상기 호스트로 제2 완료 신호를 전송하는 단계를 포함하며, 상기 제1 국면은, 상기 제2 국면에서 상기 적어도 하나의 데이터 프레임들을 전송 및 수신하기 위한 커맨드를 전송 또는 수신한다.
본 개시의 기술적 사상의 일측면에 따른 이니시에이터(initiator)와 SAS(Serial Attached Small computer system interface) 프로토콜에 의해 통신을 수행하는 타겟 장치(target device)의 동작 방법에 있어서, 연결 요청 신호를 전송하는 단계; 상기 이니시에이터로부터 연결 응답 신호를 수신한 이후, 초기 커맨드(initial command) 신호를 수신하는 단계; 및 상기 이니시에이터로부터 기설정된 시간 이내에 상기 초기 커맨드 신호에 따른 제1 완료 신호를 수신하는 경우, 상기 초기 커맨드 신호에 따른 제1 완료 신호에 응답하여 상기 이니시에이터로 제2 완료 신호를 전송하는 단계; 또는 상기 이니시에이터로부터 기설정된 시간 이내에 상기 초기 커맨드 신호에 따른 제1 완료 신호를 수신하지 않는 경우, 상기 기설정된 시간 이후에 상기 이니시에이터로 상기 제2 완료 신호를 전송하는 단계를 포함한다.
본 개시의 예시적 실시예에 따른 전자 장치 및 그 동작 방법에 따르면, 호스트의 신호 전송 방식을 감지함으로써 전자 장치가 전이중 통신(full duplex connection)에 의해 호스트와 데이터 통신을 수행함으로서 데이터 전송의 효율성을 증대시킬 수 있다.
도 1은 본 개시의 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 2는 본 개시의 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 3은 본 개시의 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 4는 본 개시의 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 5는 본 개시의 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 6a는 본 개시의 실시예에 따라 전자 장치가 제1 정책을 감지하는 동작을 설명하기 위한 흐름도, 도 6b는 본 개시의 실시예에 따라 전자 장치가 감지된 제1 정책에 따라 완료 신호를 전송하는 동작을 설명하기 위한 시퀀스도, 도 6c는 본 개시의 실시예에 따라 전자 장치가 호스트의 신호 전송 정책이 제1 정책임을 판단하여 완료 신호를 전송하는 동작을 설명하기 위한 시퀀스도이다.
도 7a는 본 개시의 실시예에 따라 전자 장치가 제2 정책을 감지하는 동작을 설명하기 위한 흐름도, 도 7b는 본 개시의 실시예에 따라 전자 장치가 감지된 제2 정책에 따라 완료 신호를 전송하는 동작을 설명하기 위한 시퀀스도, 도 7c는 본 개시의 실시예에 따라 전자 장치가 호스트의 신호 전송 정책이 제2 정책임을 판단하여 완료 신호를 전송하는 동작을 설명하기 위한 시퀀스도이다.
도 8a는 호스트의 신호 전송 정책이 제1 정책인 경우 전자 시스템의 데이터 전송 방법을 설명하기 위한 데이터 흐름도, 도 8b는 호스트의 신호 전송 정책이 제1 정책인 경우 본 개시의 실시예에 따른 전자 시스템의 데이터 전송 방법을 설명하기 위한 도면이다.
도 9a 및 도 9b는 호스트의 신호 전송 정책이 제2 정책인 경우 본 개시의 실시예에 따른 전자 시스템의 데이터 전송 방법을 설명하기 위한 데이터 흐름도이다.
도 10a 및 도 10b는 호스트의 신호 전송 정책이 제1 정책인 경우 본 개시의 실시예에 따른 전자 시스템의 데이터 전송 방법을 설명하기 위한 시퀀스도이다.
도 11은 호스트의 신호 전송 정책이 제2 정책인 경우 본 개시의 실시예에 따른 전자 시스템의 데이터 전송 방법을 설명하기 위한 시퀀스도이다.
도 12는 본 개시의 일 실시예에 따른 전자 시스템을 설명하기 위한 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 실시예에 따른 전자 시스템을 나타내는 블록도이다.
본 개시의 실시예에 따른 전자 시스템(10)은 호스트(100) 및 전자 장치(200)를 포함할 수 있으며, 전자 장치(200)는 제어 로직(210) 및 전송 로직(220)을 포함할 수 있다.
본 개시의 실시예에 따른 호스트(100) 및 전자 장치(200)는 데이터(DTA)를 전송하고 수신하기 위해 연결을 설립(establish)할 수 있다. 호스트(100)와 전자 장치(200)가 연결이 설립된 후에 호스트(100) 및 전자 장치(200) 중 적어도 하나가 데이터(DTA)를 모두 전송 및 수신하고 나면 완료 신호(DONE)를 전송 및 수신할 수 있다. 데이터(DTA)는 프레임, 비트, 바이트 등의 단위로 전송될 수 있다. 완료 신호(DONE)는 응답 신호의 일종으로서 예컨대, 전자 장치(200)가 데이터(DTA)를 전송하면, 호스트(100)는 응답 신호를 전송할 수 있다. 즉, 완료 신호(DONE)에 한정되는 것이 아닌, 일방의 장치로부터 데이터(DTA)를 수신하면, 그 응답으로서 전송하는 신호를 모두 포함할 수 있다.
본 개시의 실시예에 따른 완료 신호(DONE)는 통신 과정의 일부 또는 전부를 수행하였다는 것을 상대방에게 알리기 위한 신호가 될 수 있다. 예를 들어, 완료 신호(DONE)는 호스트(100)가 전송해야 할 데이터(DTA)를 모두 전송한 이후에 호스트(100)가 더 이상 전송할 데이터(DTA)가 없음을 전자 장치(200)에 알리기 위한 신호가 될 수 있다. 한편, 이하에서 완료 신호(DONE)는 제1 완료 신호 및 제2 완료 신호로 기재될 수 있으며, 제1 완료 신호는 호스트(100)가 전자 장치(200)로 전송하는 완료 신호(DONE), 제2 완료 신호는 전자 장치(200)가 호스트(100)로 전송하는 완료 신호(DONE)를 의미한다. 즉, 제1 완료 신호 및 제2 완료 신호는 완료 신호의 발행처만 다를 뿐, 데이터(DTA)를 모두 전송하였다는 의미의 신호인 점은 동일하다.
본 개시의 실시예에 따르면, 호스트(100) 또는 전자 장치(200)가 그 상대방에게 완료 신호(DONE)를 전송하면, 완료 신호(DONE)를 전송한 이후에는 데이터(DTA)를 더 이상 전송할 수 없다. 예를 들어, 호스트(100)가 완료 신호(DONE)를 전송한 이후에 다양한 원인에 의해서 다른 데이터(DTA)를 전송하는 상황이 발생하더라도, 완료 신호(DONE)를 전자 장치(200)에 전송한 이상, 다른 데이터(DTA)를 전송할 수 없다. 이 경우, 전자 시스템(10)은 전자 장치(200)만 데이터(DTA)를 전송할 수 있는 반이중 통신(half duplex communication) 상태에 놓이게 된다. 전자 시스템(10)이 반이중 통신으로 데이터(DTA)를 주고받는 경우, 데이터 전송량이 감소하기 때문에 본 개시에 따른 전자 시스템(10)은 반이중 통신을 최소화하여 전이중 통신(full duplex communication)의 지속 시간을 증대시키는데 목적이 있다.
본 개시의 실시예에 따른 전자 장치(200)는 호스트(100)와 연결이 설립된 이후에 다양한 신호를 수신하고, 수신된 신호에 기초하여 호스트(100)의 신호 전송 정책을 감지하며, 감지된 신호 전송 정책에 의해 완료 신호(DONE)를 호스트(100)로 전송할 수 있다. 구체적으로, 제어 로직(210)은 호스트(100)로부터 초기 커맨드 신호(initial command signal) 및 초기 커맨드 신호에 따른 완료 신호(DONE)를 수신하여 신호 전송 정책을 감지하고, 감지된 결과에 따라 감지 신호(DET)를 전송 로직(220)에 전송할 수 있다. 감지 신호(DET)는 호스트(100)의 신호 전송 정책을 의미하는 신호를 포함할 수 있다. 전송 로직(220)은 수신된 감지 신호(DET)에 기초하여 완료 신호(DONE)를 호스트(100)에 전송하여, 전자 장치(200)가 수행하는 일련의 데이터 전송 과정을 완료할 수 있다.
신호 전송 정책이란, 호스트(100)가 전자 장치(200)로 신호를 전송하는 방식을 규정한 정책을 의미할 수 있다. 전자 시스템(10)이 데이터 통신을 수행하기 위해선, 데이터(DTA), 완료 신호(DONE)를 포함한 다양한 신호를 호스트(100)와 전자 장치(200)가 송수신할 수 있다. 예컨대, 신호 전송 정책은, 호스트(100)가 완료 신호(DONE)를 전자 장치(200)로 보내는 시점 또는 시구간, 완료 신호(DONE)의 특성 등을 규정한 정책을 포함할 수 있다.
초기 커맨드 신호란, 호스트(100)와 전자 장치(200) 간의 연결이 설립되고 난 이후, 호스트(100) 또는 전자 장치(200)가 상대방에게 최초로 보내는 커맨드 신호를 의미한다. 커맨드 신호는 다양한 명령들(instructions)을 포함할 수 있으며, 예컨대, 통신을 원활하게 수행하기 위하여 전자 장치(200)의 사이즈, 용량(capacity), 장치의 정보(예컨대, 장치의 종류) 등을 요청하는 커맨드가 될 수 있다. 본 개시의 실시예에 따르면 초기 커맨드 신호는 호스트(100)의 신호 전송 정책을 감지하기 위하여 이용된다. 다만, 이에 제한되지는 않으며 실시예에 따라 호스트(100)가 전자 장치(200)의 신호 전송 정책을 감지하기 위하여 이용될 수도 있고, 이 경우에는 전자 장치(200)가 호스트(100)로 전송하는 초기 커맨드 신호를 이용할 수도 있다. 신호 전송 정책을 감지하는 방법은 후술하기로 한다.
본 개시의 실시예에 따르면, 전자 장치(200)는 호스트(100)의 신호 전송 정책에 따라, 호스트(100)로 전송하는 완료 신호(DONE)를 보내는 방식을 달리함으로써 전이중 통신의 지속 시간을 연장할 수 있다.
본 개시의 일 실시예에 따르면, 호스트(100)가 기설정된 개수의 데이터 프레임들을 전송한 후 완료 신호(DONE)를 전송하는 경우, 전자 장치(200)는 호스트(100)의 신호 전송 정책을 제1 정책으로 감지할 수 있다. 호스트(100)의 신호 전송 정책이 제1 정책인 것으로 감지한 경우, 호스트(100)로부터 완료 신호(DONE)를 수신하기 전에 전자 장치(200)가 먼저 완료 신호(DONE)를 전송한다면, 호스트(100)만 통신을 수행하는 반이중 통신 상태에 놓일 수 있다. 따라서, 전자 장치(200)는 호스트(100)로부터 완료 신호(DONE)를 수신한 이후에만 완료 신호(DONE)를 보낼 수 있다.
본 개시의 일 실시예에 따르면, 호스트(100)가 전자 장치(200)로부터 완료 신호(DONE)를 수신한 것을 전제 조건으로 전자 장치(200)로 완료 신호(DONE)를 전송하는 경우, 전자 장치(200)는 호스트(100)의 신호 전송 정책을 제2 정책으로 감지할 수 있다. 호스트(100)의 신호 전송 정책이 제2 정책인 것으로 감지한 경우, 전자 장치(200)가 완료 신호(DONE)를 보내지 않으면, 타임 아웃(time-out)에 의해 호스트(100) 및 전자 장치(200) 간 연결이 강제로 종료되지 않는 이상, 호스트(100)는 전자 장치(200)로 완료 신호(DONE)를 보낼 수 없다. 즉, 호스트(100) 및 전자 장치(200)간 통신 연결 시간이 지나치게 증가할 수 있다. 따라서, 전자 장치(200)가 호스트(100)의 신호 전송 정책을 제2 정책으로 감지한 경우에는 전자 장치(200) 내부의 트리거 로직(예컨대, 도 2의 트리거 로직(212))이 조건 신호(COND)를 전송하면 호스트(100)로 완료 신호(DONE)를 전송할 수 있다. 즉, 호스트(100)로부터 완료 신호(DONE)를 수신하였는지와 독립적으로, 전자 장치(200)가 호스트(100)로 완료 신호(DONE)를 전송할 수 있다.
이와 같이, 본 개시의 실시예에 따르면, 호스트(100)의 신호 전송 정책에 따라 호스트(100)와 전자 장치(200) 간의 가변적인 방법으로 통신을 수행함으로써, 효율적으로 전이중 통신의 지속 시간을 증대시킬 수 있으며 데이터 전송의 효율성을 증대시킬 수 있다. 한편, 이하에서는 전자 장치(200)가 호스트(100)의 신호 전송 정책에 따라 완료 신호(DONE)를 전송하는 방법에 대해서 설명하지만, 호스트(100)가 전자 장치(200)의 신호 전송 정책에 따라 완료 신호(DONE)를 전송하는 방법에도 동일하게 적용될 수 있다. 즉, 본 개시의 기술적 사상은 호스트(100)와 전자 장치(200)의 주체가 변경되더라도 적용될 수 있음은 물론이다.
본 개시의 실시예에 따른 전자 시스템(10)은 각종 데이터를 교환하기 위한 다양한 종류의 전자 시스템을 포함할 수 있다. 예컨대, 전자 시스템(10)은 직렬 SCSI(SAS, Serial Attached Small computer system interface)에 의해 통신하는 전자 시스템을 포함할 수 있다. 이 경우, 호스트(100) 및 전자 장치(200)는 이니시에이터(initiator) 및 타겟(target)을 포함하는 엔드 디바이스(end device)가 될 수 있다. 일 예로, 호스트(100)가 이니시에이터이고 전자 장치(200)가 타겟이라고 가정한다면, 호스트(100)는 HBA(Host Bus Adapter)를 포함할 수 있으며, 전자 장치(200)는 다양한 저장 장치(storage device)로 구현될 수 있다. 예를 들어, 저장 장치는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash memory), 솔리드 스테이트 드라이브(SSD), 하드디스크 드라이브(HDD) 등으로 구현될 수 있다.
본 개시의 실시예에 따른 전자 시스템(10)은 단지 SAS에 의해 통신이 수행되는 것으로 제한되지는 않으며 다양한 인터페이스에 의해 통신이 수행되는 전자 시스템을 포함할 수 있다. 일 실시예에 따르면, 전자 시스템(10)은 유선 또는 무선 통신을 이용하여 데이터를 전송하는 서버 디바이스와 클라이언트 디바이스로 구현될 수도 있다. 예컨대, 전자 시스템(10)은 PCIe(Peripheral Component Interconnect Express), 이더넷을 통한 RDMA(remote direct memory access), SATA(Serial Advanced Technology Attachment), 파이버 채널(Fibre Channel), 또는 NVMe(Non Volatile Memory Express)를 따르거나, 이더넷 또는 USB(Universal Serial Bus)와 같은 범용 인터페이스를 따를 수 있다. 또는, 전자 시스템(10)은 근거리 및 원거리 통신 인터페이스에 의해 통신이 수행될 수 있으며, 예컨대, IEEE, Zigbee, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), 5G(5th Generation), WiFi(wireless fidelity), Bluetooth, NFC(Near Field Communication), IR(Infrared Ray) 등 다양한 방식에 의한 통신 인터페이스를 따를 수 있다.
도 2는 본 개시의 실시예에 따른 전자 시스템을 나타내는 블록도이다.
본 개시의 실시예에 따른 전자 시스템(10)은 호스트(100) 및 전자 장치(200)를 포함할 수 있으며, 전자 장치(200)는 제어 로직(210) 및 전송 로직(220)을 포함할 수 있다. 제어 로직(210)은 감지 로직(211), 트리거 로직(212)을 포함할 수 있다.
본 개시의 실시예에 따른 감지 로직(211)은 호스트(100)로부터 완료 신호(DONE)를 수신할 수 있으며, 전송 로직(220)은 호스트(100)로 완료 신호(DONE)를 전송할 수 있다. 예컨대, 감지 로직(211)과 호스트(100) 사이에는 신호를 송신 또는 수신하기 위한 추가적인 인터페이스가 더 포함될 수 있으며, 전송 로직(220)과 호스트 사이에서도 마찬가지이다.
감지 로직(211)은 호스트(100)로부터 완료 신호(DONE), 데이터(DTA), 초기 커맨드 신호 중 적어도 하나를 수신할 수 있다.
본 개시의 실시예에 따르면, 감지 로직(211)은 호스트(100)와 전자 장치(200)의 연결이 설립되고 난 이후에 가장 처음으로 수신하는 신호인 초기 커맨드 신호를 수신할 수 있다. 또한, 감지 로직(211)은 초기 커맨드 신호에 따른 일련의 동작을 전자 시스템(10)이 수행하고 난 이후에, 초기 커맨드 신호에 따른 완료 신호(DONE)를 수신할 수 있다. 호스트(100)와 전자 장치(200)는 각종 신호를 교환하여 데이터 통신을 하기 위해 서로간의 연결을 설립할 수 있다.
본 개시의 실시예에 따르면, 제1 국면(first phase)에서 감지 로직(211)은 초기 커맨드 신호 및 초기 커맨드 신호에 따른 완료 신호를 수신할 수 있다. 예컨대, 초기 커맨드 신호는 전자 장치(200)의 용량(capacity)을 요청하는 신호가 될 수 있으며, 초기 커맨드 신호에 따른 완료 신호는 호스트(100)가 전자 장치(200)의 용량을 요청하는 동작을 완료하였다는 신호가 될 수 있다. 즉, 제1 국면은 전자 시스템(10)이 원활하게 데이터를 통신하도록 준비하는 국면을 의미할 수 있다.
본 개시의 실시예에 따르면, 제2 국면(second phase)에서 감지 로직(211)은 데이터(DTA) 및 데이터(DTA)에 따른 완료 신호를 수신할 수 있다. 예컨대, 호스트(100)로부터 소정의 개수의 데이터 프레임들을 수신한 이후 완료 신호(DONE)를 수신할 수 있다. 여기서, 완료 신호(DONE)는 호스트(100)가 소정의 개수의 데이터 프레임들을 전송하는 동작을 완료하였다는 신호가 될 수 있다. 즉, 제2 국면은 전자 시스템(10)이 데이터를 통신하는 국면을 의미할 수 있다.
본 개시의 실시예에 따르면, 감지 로직(211)은 제1 국면에서 호스트(100)로부터 수신한 초기 커맨드 신호 및 초기 커맨드 신호에 따른 완료 신호에 기초하여 호스트(100)의 신호 전송 정책을 감지할 수 있으며, 감지 로직(211)은 호스트(100)의 신호 전송 정책에 따라 감지 신호(DET)를 전송 로직(220)으로 전송할 수 있다.
본 개시의 실시예에 따르면, 전송 로직(220)은 감지 신호(DET)에 기초하여 호스트(100)로 완료 신호(DONE)를 전송할 수 있다.
일 예로, 전송 로직(220)은 감지 신호(DET)가 수신되면 호스트(100)로 완료 신호(DONE)를 전송할 수 있다. 전송 로직(220)은 완료 신호(DONE)를 호스트(100)로 전송할 수 있는 상태에 놓여있더라도 감지 신호(DET)가 수신될 때까지 완료 신호(DONE)를 호스트(100)로 전송하는 것을 유보할 수 있다. 예컨대, 전자 장치(200)가 호스트(100)로 전송할 데이터(DTA)를 모두 전송한 뒤라도, 다양한 원인에 의해 추가로 데이터(DTA)를 전송하게 될 수 있으므로, 감지 신호(DET)가 수신되기 전 까지는 호스트(100)로 완료 신호(DONE)를 전송하는 것을 유보할 수 있다. 즉, 감지 신호(DET)는 전송 로직(220)이 호스트(100)로 완료 신호(DONE)를 보낼 조건을 충족시키는 신호가 될 수 있다.
다른 예로, 전송 로직(220)은 감지 신호(DET)가 수신되면 호스트(100)의 신호 전송 정책을 판단할 수 있다. 즉, 감지 신호(DET)는 호스트(100)의 신호 전송 정책에 관한 정보를 포함할 수 있으며, 전송 로직(220)은 수신된 감지 신호(DET)를 기초로 호스트(100)의 신호 전송 정책을 판단할 수 있다. 예컨대, 전송 로직(220)은 수신된 감지 신호(DET)에 기초하여 호스트(100)의 신호 전송 정책을 제1 정책 및 제2 정책 중 어느 하나로 판단할 수 있다. 이 후, 전송 로직(220)이 호스트(100)의 신호 전송 정책을 제1 정책으로 판단한 경우, 완료 신호(DONE)를 호스트(100)로 전송할 수 있으며, 전송 로직(220)이 호스트(100)의 신호 전송 정책을 제2 정책으로 판단한 경우, 완료 신호(DONE)를 호스트(100)로부터 수신한 이후에, 완료 신호(DONE)를 호스트(100)로 전송할 수 있다.
본 개시의 실시예에 따르면, 전송 로직(220)은 감지 신호(DET) 및 조건 신호(COND)에 기초하여 호스트(100)로 완료 신호(DONE)를 전송할 수 있다. 전송 로직(220)은 감지 신호(DET) 및 조건 신호(COND)를 수신한 것에 응답하여 호스트(100)로 완료 신호(DONE)를 전송할 수 있다. 전송 로직(220)은 감지 신호(DET) 및 조건 신호(COND)를 수신하면, 전자 장치(200)가 호스트(100)로 완료 신호(DONE)를 보낼 모든 조건이 만족한 것으로 판단하고, 호스트(100)로 완료 신호(DONE)를 보낼 수 있다. 일 실시예에 따르면, 전송 로직(220)은 완료 신호(DONE)를 생성하고, 감지 신호(DET) 및 조건 신호(COND)를 수신하면 완료 신호(DONE)를 전송하기 위해 활성화가 되며, 생성한 완료 신호(DONE)를 호스트(100)로 전송할 수 있다.
본 개시의 실시예에 따르면, 트리거 로직(212)은 전송 로직(220)으로 조건 신호(COND)를 전송할 수 있다. 일 실시예에 따르면, 트리거 로직(212)은 전자 장치(200)가 호스트(100)로 전송할 잔여 데이터 프레임의 유무에 따라 상이한 조건 신호(COND)를 전송 로직(220)으로 전송할 수 있다. 이에 관하여 도 3에서 후술한다.
도 3은 본 개시의 실시예에 따른 전자 시스템을 나타내는 블록도이다.
본 개시의 실시예에 따른 전자 시스템(10)은 호스트(100) 및 전자 장치(200)를 포함할 수 있으며, 전자 장치(200)는 제어 로직(210) 및 전송 로직(220)을 포함할 수 있다. 제어 로직(210)은 감지 로직(211), 트리거 로직(212)을 포함할 수 있다. 트리거 로직(212)은 제1 서브 트리거 로직(213) 및 제2 서브 트리거 로직(214)을 포함할 수 있다.
본 개시의 일 실시예에 따르면, 트리거 로직(212)은 제1 조건 신호(COND1) 및 제2 조건 신호(COND2) 중 적어도 하나를 전송 로직(220)에 전송할 수 있다. 조건 신호(COND)는 제1 조건 신호(COND1) 및 제2 조건 신호(COND2)를 포함할 수 있다. 제1 조건 신호(COND1) 및 제2 조건 신호(COND2)는 전송 로직(220)이 완료 신호(DONE)를 호스트(100)로 전송할 수 있도록 하는 전제 조건이다. 즉, 전술한 바와 같이, 전송 로직(220)은 제1 조건 신호(COND1) 및 제2 조건 신호(COND2) 중 적어도 어느 하나를 수신하고, 감지 신호(DET)를 수신하면 완료 신호(DONE)를 호스트(100)로 전송할 수 있다.
본 개시의 실시예에 따르면, 제1 조건 신호(COND1) 및 제2 조건 신호(COND2)는 전자 장치(200)가 호스트(100)로 전송할 잔여 데이터가 있는지 여부에 따라 상이하게 발생되는 신호이다.
본 개시의 실시예에 따르면, 제1 서브 트리거 로직(213)은 전자 장치(200)가 전송할 데이터(DTA)가 남아 있더라도 호스트(100)로 완료 신호(DONE)를 전송해야 하는 경우, 제1 조건 신호(COND1)를 전송 로직(220)으로 전송하여 전송 로직(220)이 완료 신호(DONE)를 전송하도록 요청할 수 있다. 제2 서브 트리거 로직(214)은 전자 장치(200)가 전송할 데이터(DTA)가 남아 있지 않으므로 호스트(100)로 완료 신호(DONE)를 전송해야 하는 경우, 제2 조건 신호(COND2)를 전송 로직(220)으로 전송하여 전송 로직(220)으로 전송하여 전송 로직(220)이 완료 신호(DONE)를 전송하도록 요청할 수 있다. 예컨대, 제1 서브 트리거 로직(213)은 펌웨어(FW)로 구현될 수 있으며, 제2 서브 트리거 로직(214)은 링크 스테이트 머신(Link State Machine)으로 구현될 수 있다.
도 4는 본 개시의 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.
단계 S310에 따르면, 호스트(100)와 전자 장치(200)의 연결이 설립된 이후에 수신한 개시 커맨드 신호 및 개시 커맨드 신호에 따른 완료 신호(DONE)에 기초하여 호스트(100)가 완료 신호(DONE)를 전송하는 신호 전송 정책을 감지할 수 있다. 이와 관련하여, 도 6a 및 도 7a에서 자세히 후술하기로 한다.
단계 S320에 따르면, 전자 장치(200)에 포함된 감지 로직(211)은 감지된 결과에 따라 감지 신호(DET)를 전송 로직(220)으로 전송할 수 있다. 예컨대, 감지 신호(DET)는 전송 로직(220)이 완료 신호(DONE)를 호스트(100)로 전송하기 위한 전제 조건이 되는 신호가 될 수 있으며, 감지 신호(DET)는 호스트(100)의 신호 전송 정책에 관한 정보를 포함하는 신호가 될 수 있다.
단계 S330에 따르면, 전자 장치(200)에 포함된 전송 로직(220)은 감지 신호(DET)에 기초하여 호스트(100)로 완료 신호(DONE)를 전송할 수 있다. 일 실시예에 따르면, 전송 로직(220)은 감지 신호(DET)를 수신한 것에 응답하여 호스트(100)로 완료 신호(DONE)를 전송함으로써, 감지 신호(DET)를 완료 신호(DONE) 전송의 전제 조건으로 할 수 있다. 다른 실시예에 따르면, 전송 로직(220)은 감지 신호(DET)를 수신하여, 감지 신호(DET)에 포함된 호스트(100)의 신호 전송 정책에 관한 정보를 기초로 호스트(100)의 신호 전송 정책을 판단할 수 있다. 예컨대, 호스트(100)의 신호 전송 정책을 제1 정책으로 판단하면, 전송 로직(220)은 완료 신호(DONE)를 호스트(100)로 전송할 수 있고, 호스트(100)의 신호 전송 정책을 제2 정책으로 판단하면, 전송 로직(220)은 감지 신호(DET)를 수신한 이후에 호스트(100)로부터 완료 신호(DONE)를 수신하면, 전송 로직(220)은 호스트(100)로 완료 신호(DONE)를 전송할 수 있다.
도 5는 본 개시의 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다. 도 4에서 전술한 단계 S310 및 S320은 중복되므로 설명을 생략하기로 한다.
단계 S325에서, 전자 장치(200)에 포함된 트리거 로직(212)은 전자 장치(200)가 호스트(100)로 전송할 잔여 데이터가 있는지 여부에 따라 상이한 조건 신호(COND)를 전송할 수 있다. 예컨대, 전자 장치(200)가 전송할 잔여 데이터가 존재하는 경우에는 제1 서브 트리거 로직(213)이 제1 조건 신호(COND1)를 전송할 수 있으며, 전자 장치(200)가 전송할 잔여 데이터가 존재하지 않는 경우에는 제2 서브 트리거 로직(214)이 제2 조건 신호(COND2)를 전송할 수 있다.
단계 S335에서, 전자 장치(200)는 호스트(100)로 감지 신호(DET) 및 조건 신호(COND)에 기초하여 호스트(100)로 완료 신호를 전송할 수 있다. 전송 로직(220)은 감지 신호(DET) 및 조건 신호(COND)를 모두 수신한 경우에 호스트(100)로 완료 신호를 전송할 수 있다. 일 예로, 전송 로직(220)은 조건 신호(COND)를 수신한 이후에 감지 신호(DET)를 수신하며, 조건 신호(COND)를 수신한 것에 응답하여 완료 신호(DONE)를 호스트(100)로 전송할 수 있다. 다른 예로, 전송 로직(220)은 감지 신호(DET)를 수신한 이후에 조건 신호(COND)를 수신하며, 감지 신호(DET)를 수신한 것에 응답하여 완료 신호(DONE)를 호스트(100)로 전송할 수 있다. 다른 예로, 전송 로직(220)은 조건 신호(COND)를 수신한 이후에 감지 신호(DET)를 수신하고, 수신된 감지 신호(DET)를 기초로 호스트(100)의 신호 전송 정책을 판단하며, 판단한 호스트(100)의 신호 전송 정책에 따라 완료 신호(DONE)를 호스트(100)로 전송할 수 있다. 상기와 같이, 전자 장치(200)가 호스트(100)로 완료 신호(DONE)를 전송하는 방식을 호스트(100)의 신호 전송 정책에 따라 다양하게 변화시키면서 전이중 통신의 지속시간을 증대시킬 수 있다.
도 6a는 본 개시의 실시예에 따라 전자 장치가 제1 정책을 감지하는 동작을 설명하기 위한 흐름도, 도 6b는 본 개시의 실시예에 따라 전자 장치가 감지된 제1 정책에 따라 완료 신호를 전송하는 동작을 설명하기 위한 시퀀스도, 도 6c는 본 개시의 실시예에 따라 전자 장치가 호스트의 신호 전송 정책이 제1 정책임을 판단하여 완료 신호를 전송하는 동작을 설명하기 위한 시퀀스도이다.
도 6a에 따르면, 전자 장치(200)는 호스트(100)의 신호 전송 정책을 제1 정책으로 감지할 수 있다. 단계 S411에서, 전자 장치(200)는 호스트(100)로 호스트(100) 및 전자 장치(200)간 연결을 설립하기 위한 연결 요청 신호를 전송할 수 있다. 예컨대, 연결 요청 신호는 SAS 프로토콜에 따른 OAF(Open Address Frame)이 될 수 있으며, OAF는 호스트(100) 및 전자 장치(200)의 어드레스를 포함할 수 있다.
단계 S412에서, 호스트(100)는 수신한 연결 요청 신호에 응답하여, 연결 응답 신호를 전송할 수 있다. 예컨대, 연결 응답 신호는 SAS 프로토콜에 따른 OPEN_ACCEPT 신호가 될 수 있다. 도 6a 및 후술할 도 7a에서 전자 장치(200)가 연결 요청 신호를 전송하며, 호스트(100)가 연결 응답 신호를 전송하는 것으로 예시하였으나 반대로, 호스트(100)가 연결 요청 신호를 전송하며, 전자 장치(200)가 연결 응답 신호를 전송할 수도 있다. 한편, 호스트(100) 및 전자 장치(200)가 연결 요청 신호 및 연결 응답 신호를 전송함에 따라, 호스트(100) 및 전자 장치(200)간의 연결이 설립될 수 있다.
단계 S421에서, 호스트(100)는 초기 커맨드 신호(CMD)를 전자 장치(200)로 전송할 수 있다. 예컨대, 호스트(100)는 초기 커맨드 신호(CMD)를 전송함에 따라 전자 장치(200)의 잔여 용량 등 다양한 정보를 요청할 수 있으며, 전자 장치(200)는 요청된 정보를 호스트(100)에 응답할 수 있다. 초기 커맨드 신호(CMD)는 전술한 바와 같이, 호스트(100) 및 전자 장치(200)간 연결이 설립된 이후에 최초로 전송되는 신호이다.
단계 S422에서, 호스트(100)는 초기 커맨드 신호(CMD)에 따른 완료 신호(DONE)를 전자 장치(200)로 전송할 수 있다. 예컨대, 제1 국면에서 호스트(100)는 초기 커맨드 신호(CMD)를 전송한 이후, 전자 장치(200)로부터 완료 신호(DONE)를 수신하는 것과는 무관하게, 초기 커맨드 신호(CMD)에 따른 완료 신호(DONE)를 전자 장치(200)로 전송할 수 있다. 예를 들어, 호스트(100)는 초기 커맨드 신호(CMD)를 전송한 이후, 기설정된 시간 이내에 초기 커맨드 신호(CMD)에 따른 완료 신호(DONE)를 전자 장치(200)로 전송할 수 있다. 이 경우, 제2 국면에서의 호스트(100)는 기설정된 개수의 데이터 프레임 또는 기설정된 크기의 데이터(DTA)를 전송한 이후 완료 신호(DONE)를 전송할 수 있다.
호스트(100)의 신호 전송 정책이 제1 정책인 경우, 제1 국면에서 호스트(100)는 초기 커맨드 신호(CMD) 및 그에 따른 완료 신호(DONE)를 전자 장치(200)로부터 완료 신호(DONE)를 수신하였는지와 무관하게 전송한다. 또한, 호스트(100)의 신호 전송 정책이 제1 정책인 경우, 제2 국면에서 호스트(100)는 기설정된 개수의 데이터 프레임 또는 기설정된 크기의 데이터(DTA)를 전송한 이후 완료 신호(DONE)를 전송할 수 있다. 이에 따라, 전자 장치(200)는 호스트(100)와의 연결이 설립된 직후인 제1 국면에서 호스트(100)의 신호 전송 정책을 감지할 수 있다.
따라서, 단계 S430에서 전자 장치(200)는 제1 국면에서 호스트(100)가 전송하는 초기 커맨드 신호(CMD) 및 그에 따른 완료 신호(DONE)를 수신함으로써, 호스트(100)가 제2 국면에서는 기설정된 개수의 데이터 프레임을 전송한 후 완료 신호(DONE)를 전송하는 제1 정책임을 감지할 수 있다.
도 6b에 따르면, 제2 국면에서 전송 로직(220)은 조건 신호(COND) 및 감지 신호(DET)를 수신함에 따라 완료 신호(DONE)를 호스트(100)로 전송할 수 있다.
단계 S430에서, 전술한 바와 유사하게 감지 로직(211)은 호스트(100)의 신호 전송 정책을 제1 정책으로 감지할 수 있다. 단계 S440에서, 트리거 로직(212)은 전송 로직(220)으로 조건 신호(COND)를 전송할 수 있다. 이 경우, 조건 신호(COND)는 제1 조건 신호(COND1) 및 제2 조건 신호(COND2)를 포함할 수 있다. 조건 신호(COND)는 전송 로직(220)으로 하여금 호스트(100)로 완료 신호(DONE)를 전송하도록 요청하는 신호가 될 수 있다.
단계 S450에서, 호스트(100)는 일련의 데이터(DTA)를 전송한 이후에, 전송한 데이터(DTA)에 따른 완료 신호(DONE)를 감지 로직(211)으로 전송할 수 있다. 예컨대, 호스트(100)은 전자 장치(200)에 포함된 다양한 수신 인터페이스로 완료 신호(DONE)를 전송하면, 수신 인터페이스는 호스트(100)로부터 수신한 완료 신호(DONE)를 감지 로직(211)으로 전송할 수 있다. 호스트(100)는 제2 국면에서 전자 장치(200)와 데이터(DTA)를 송수신할 수 있다. 이 경우, 호스트(100)가 전자 장치(200)로 전송하기로 예정된 데이터(DTA)를 모두 전송한 이후, 데이터(DTA)를 전송한 것에 따른 완료 신호(DONE)를 전송할 수 있다.
단계 S460에서, 감지 로직(211)은 완료 신호(DONE)를 수신하면 감지 신호(DET)를 생성하고, 감지 신호(DET)를 전송 로직(220)으로 전송할 수 있다. 구체적으로, 감지 로직(211)은 호스트(100)의 신호 전송 정책을 제1 정책으로 감지한 경우(S430), 완료 신호(DONE)를 수신하면(S450), 감지 신호(DET)를 생성하여 전송 로직(220)으로 전송할 수 있다(S460).
호스트(100)가 기설정된 개수의 데이터 프레임들을 보낸 이후에, 전자 장치(200)로부터 완료 신호(DONE)를 수신하는 것과 무관하게 언제나 완료 신호(DONE)를 보낸 이상, 전자 장치(200)가 완료 신호(DONE)를 보내지 않더라도 반이중 통신이 수행될 것은 자명하다. 따라서, 감지 로직(211)은 호스트(100)가 완료 신호(DONE)를 전송(S450)한 경우에는 더 이상 전이중 통신을 수행할 수 없으므로, 호스트(100)로 완료 신호(DONE)를 전송(S480)하도록 감지 신호(DET)를 전송 로직(220)으로 전송한다. 또한, 감지 로직(211)이 호스트(100)로부터 완료 신호(DONE)를 수신하기 전까지는 감지 신호(DET)를 보내는 것을 유예함으로써, 호스트(100) 및 전자 장치(200)간 전이중 통신이 수행되는 지속시간을 증대시킬 수 있다.
단계 S470에서, 전송 로직(220)은 조건 신호(COND) 및 감지 신호(DET)를 수신할 수 있으며, 단계 S480에서, 전송 로직(220)은 조건 신호(COND) 및 감지 신호(DET)를 수신한 것에 응답하여 완료 신호(DONE)를 전송할 수 있다. 예컨대, 전송 로직(220)은 조건 신호(COND) 및 감지 신호(DET)를 수신함과 함께 완료 신호(DONE)를 전송함으로써, 호스트(100)와 전자 장치(200)간에서 데이터를 주고 받는 과정을 완료할 수 있다. 구체적으로, 전송 로직(220)은 제1 조건 신호(COND1) 및 제2 조건 신호(COND2) 중 적어도 하나와 함께 감지 신호(DET)를 수신하면, 완료 신호(DONE)를 전송할 수 있다. 또한, 전송 로직(220)은 감지 신호(DET) 및 조건 신호(COND)를 수신하면 호스트(100)로 완료 신호(DONE)를 보내도록 프로그래밍되어 있을 수 있다.
도 6c에 따르면, 제2 국면에서 전송 로직(220)은 호스트(100)의 신호 전송 정책이 제1 정책임을 판단하고, 호스트(100)로 완료 신호(DONE)를 전송할 수 있다.
단계 S441에서, 감지 로직(211)은 호스트(100)의 신호 전송 정책이 제1 정책인 것으로 감지함에 따라, 감지 신호(DET)를 전송 로직(220)으로 전송할 수 있다. 이 경우, 감지 신호(DET)는 호스트(100)의 신호 전송 정책이 제1 정책인 것을 가리키는 정보를 포함할 수 있다. 단계 S451에서, 트리거 로직(212)은 조건 신호(COND)를 전송 로직(220)으로 전송할 수 있다. 한편, 단계 S451이 수행된 이후, 단계 S441이 수행될 수 있음은 물론이다.
단계 S461에서, 감지 로직(211)은 수신한 감지 신호(DET)에 기초하여 호스트(100)의 신호 전송 정책을 제1 정책으로 판단할 수 있다. 즉, 감지 신호(DET)에 포함된 정보에 기초하여, 호스트(100)의 신호 전송 정책을 전송 로직(220)이 판단할 수 있다.
단계 S471 및 S472에서, 호스트(100)는 감지 로직(211)으로 완료 신호(DONE)를 전송할 수 있으며, 감지 로직(211)은 전송 로직으로 완료 신호(DONE)를 전송할 수 있다. 즉, 호스트(100)에서 전송된 완료 신호(DONE)는 감지 로직(211)을 경유하여 전송 로직(220)이 수신할 수 있다. 다만, 이에 제한되지는 않으며, 호스트(100)로부터 전자 장치(200)에 포함된 다양한 종류의 수신 인터페이스가 완료 신호(DONE)를 수신하고, 완료 신호(DONE)를 수신한 수신 인터페이스가 전송 로직(220)으로 완료 신호(DONE)를 전송함에 따라 단계 S471 및 단계 S472 를 대체할 수 있다.
단계 S481에서, 전송 로직(220)은 조건 신호(COND) 및 감지 신호(DET)를 수신할 수 있으며, 단계 S491에서, 전송 로직(220)은 조건 신호(COND) 및 감지 신호(DET)를 수신한 것에 응답하여 완료 신호(DONE)를 전송할 수 있다.
전술한 바와 같이, 도 6c에 따르면, 호스트(100)로부터 전자 장치(200)에 완료 신호(DONE)가 수신되면(S471), 이에 응답하여 전송 로직(220)이 호스트(100)로 완료 신호(DONE)를 전송(S491)할 준비를 하기 위해 단계 S461에서 호스트(100)의 신호 전송 정책을 제1 정책으로 판단할 수 있다. 이에 따라, 감지 신호(DET) 및 조건 신호(COND)가 수신된 경우, 호스트(100)로부터 완료 신호(DONE)를 수신함과 함께 전송 로직(220)이 호스트(100)로 완료 신호(DONE)를 전송함으로써, 일련의 데이터 통신 과정을 완료하는데 소요되는 딜레이를 감소시킬 수 있다.
도 7a는 본 개시의 실시예에 따라 전자 장치가 제2 정책을 감지하는 동작을 설명하기 위한 흐름도, 도 7b는 본 개시의 실시예에 따라 전자 장치가 감지된 제2 정책에 따라 완료 신호를 전송하는 동작을 설명하기 위한 시퀀스도, 도 7c는 본 개시의 실시예에 따라 전자 장치가 호스트의 신호 전송 정책이 제2 정책임을 판단하여 완료 신호를 전송하는 동작을 설명하기 위한 시퀀스도이다. 이하에서는, 도 6a 내지 도 6c와 중복된 내용에 대해서는 생략한다.
도 7a에 따르면, 전자 장치(200)는 호스트(100)의 신호 전송 정책을 제2 정책으로 감지할 수 있다. 단계 S511에서, 전자 장치(200)는 호스트(100)로 호스트(100) 및 전자 장치(200)간 연결을 설립하기 위한 연결 요청 신호를 전송할 수 있다. 단계 S512에서, 호스트(100)는 수신한 연결 요청 신호에 응답하여, 연결 응답 신호를 전송할 수 있다. 예컨대, 전자 시스템(10)이 SAS 프로토콜에 따라 통신을 수행하는 경우, 연결 요청 신호는 OAF가 될 수 있으며, 연결 응답 신호는 OPEN_ACCEPT 신호가 될 수 있다.
단계 S521에서, 호스트(100)는 초기 커맨드 신호(CMD)를 전자 장치(200)로 전송할 수 있으며, 전자 장치(200)는 초기 커맨드 신호(CMD)에 따라 호스트(100)로부터 요청된 정보를 호스트(100)에 응답할 수 있다.
본 개시의 일 실시예에 따르면, 호스트(100)는 초기 커맨드 신호(CMD)를 전송한 이후, 기설정된 시간 이내에 초기 커맨드 신호(CMD)에 따른 완료 신호(DONE)를 전자 장치(200)로 전송하지 않을 수 있다. 전자 장치(200)는 초기 커맨드 신호(CMD)를 수신한 이후, 기설정된 시간 이내에 초기 커맨드 신호(CMD)에 따른 완료 신호(DONE)를 수신하지 않은 경우, 단계 S522를 수행할 수 있다.
단계 S522에서, 전자 장치(200)는 완료 신호(DONE)를 호스트(100)로 전송할 수 있다. 예컨대, 전자 장치(200)는 초기 커맨드 신호(CMD)에 의해 요청된 정보 또는 일련의 데이터(DTA)를 호스트(100)로 전송한 이후에, 그에 따른 완료 신호(DONE)를 호스트(100)로 전송할 수 있다.
단계 S523에서, 호스트(100)는 초기 커맨드 신호(CMD)에 따른 완료 신호(DONE)를 전자 장치(200)로 전송할 수 있다. 예컨대, 제1 국면에서 호스트(100)는 초기 커맨드 신호(CMD)를 전송한 이후, 전자 장치(200)로부터 완료 신호(DONE)를 수신하는 것에 종속되어, 초기 커맨드 신호(CMD)에 따른 완료 신호(DONE)를 전자 장치(200)로 전송할 수 있다. 즉, 호스트(100)의 신호 전송 정책이 제2 정책인 경우, 제1 국면 및 제2 국면에서 호스트(100)는 전자 장치(200)로부터 완료 신호(DONE)를 수신한 이후에 전자 장치(200)로 완료 신호를 전송할 수 있다.
단계 S530에서 전자 장치(200)는 제1 국면에서 호스트(100)가 전송하는 초기 커맨드 신호(CMD)를 전송한 이후, 전자 장치(200)가 완료 신호(DONE)를 전송함으로써, 호스트(100)의 신호 전송 정책을 제2 정책으로 감지할 수 있다. 즉, 전자 장치(200)는 제1 국면에서의 통신 과정을 통해, 호스트(100)가 제2 국면에서도 전자 장치(200)가 완료 신호(DONE)를 전송한 이후, 호스트(100)가 완료 신호(DONE)를 전송함을 감지할 수 있다. 따라서, 전자 장치(200)는 호스트(100)의 신호 전송 정책을 제2 정책으로 감지할 수 있다.
도 7b에 따르면, 제2 국면에서 전송 로직(220)은 조건 신호(COND) 및 감지 신호(DET)를 수신함에 따라 완료 신호(DONE)를 호스트(100)로 전송할 수 있다.
단계 S530에서, 전술한 바와 유사하게 감지 로직(211)은 호스트(100)의 신호 전송 정책을 제2 정책으로 감지할 수 있다. 단계 S540에서, 감지 로직(211)은 호스트(100)의 신호 전송 정책을 제2 정책으로 감지함에 따라, 감지 신호(DET)를 생성하고, 전송 로직(220)으로 감지 신호를 전송할 수 있다.
일 실시예에 따르면, 단계 S550에서, 전송 로직(220)은 수신한 감지 신호(DET)에 기초하여 호스트(100)의 신호 전송 정책을 제2 정책으로 판단할 수 있다. 이 경우, 감지 신호(DET)는 호스트(100)의 신호 전송 정책에 관한 정보를 포함할 수 있다. 감지 신호(DET)에 포함된 정보에 기초하여, 전송 로직(220)은 호스트(100)의 신호 전송 정책을 제2 정책으로 판단할 수 있다. 다른 실시예에 따르면, 단계 S550은 생략될 수 있다. 구체적으로, 전송 로직(220)은 감지 신호(DET) 및 조건 신호(COND)를 모두 수신하면, 호스트(100)로 완료 신호(DONE)를 전송하도록 프로그래밍되어 있을 수 있다. 이 경우에는, 전송 로직(220)은 호스트(100)의 신호 전송 정책을 판단할 필요가 없으며, 전송 로직(220)의 처리 시간을 감소시킬 수 있다.
단계 S560에서, 트리거 로직(212)은 조건 신호(COND)를 전송 로직(220)으로 전송할 수 있다. 전술한 바와 같이, 조건 신호(COND)는 제1 서브 트리거 로직(213) 및 제2 서브 트리거 로직(214)에 의해 생성된 제1 조건 신호(COND1) 및 제2 조건 신호(COND2)를 포함할 수 있음은 물론이다. 한편, 단계 S560과 단계 S540의 순서는 바뀔 수 있다. 즉, 전자 장치(200)는 단계 S560, S540, S550 순서로 동작할 수 있음은 물론이다.
단계 S570에서, 전송 로직(220)은 조건 신호(COND) 및 감지 신호(DET)를 수신할 수 있으며, 단계 S580에서, 전송 로직(220)은 조건 신호(COND) 및 감지 신호(DET)를 수신한 것에 기초하여 완료 신호(DONE)를 전송할 수 있다.
도시되지는 않았지만, 제2 국면에서 전자 장치(200)가 데이터(DTA)를 전송한 이후, 전송한 데이터(DTA)에 따른 완료 신호(DONE)를 전송할 수 있다. 호스트(100)는 전자 장치(200)가 전송한 데이터(DTA)에 따른 완료 신호(DONE)를 수신(S580)함으로써 완료 신호(DONE)를 전자 장치(200)로 전송(S590)할 수 있다. 호스트(100)의 신호 전송 정책은 제2 정책이기 때문이다.
도 8a는 호스트의 신호 전송 정책이 제1 정책인 경우 전자 시스템의 데이터 전송 방법을 설명하기 위한 데이터 흐름도, 도 8b는 호스트의 신호 전송 정책이 제1 정책인 경우 본 개시의 실시예에 따른 전자 시스템의 데이터 전송 방법을 설명하기 위한 도면이다.
도 8a에 따르면, 호스트(100)와 전자 장치(200)간의 연결(connection)이 설립된 이후, 호스트(100)의 신호 전송 정책이 제1 정책인 경우, 호스트(100)는 데이터(61)를 전송한 이후에 완료 신호(62)를 전자 장치(200)로 전송할 수 있다. 일 예로, 데이터(61)는 기설정된 개수의 데이터 프레임을 포함할 수 있으며, 다른 예로, 데이터(61)는 기설정된 사이즈(예컨대, 비트수)를 갖는 데이터가 될 수 있다. 이 경우, 종래의 전자 장치(200)가 데이터(63)를 전송한 이후, 호스트(100)로부터 완료 신호(62)를 수신한 것과 상관 없이 완료 신호(64)를 전송한다면, 호스트(100)로 완료 신호(64)를 전송한 시점으로부터 호스트(100)로부터 완료 신호(62)를 수신한 시점까지의 반이중 통신(half duplex communication)을 수행하는 구간이 발생하게 된다.
도 8b에 따르면, 전자 장치(200)는 본 개시의 실시예에 따른 동작 방법을 수행할 수 있다. 호스트(100)가 데이터(61)를 전송한 이후, 그에 따른 완료 신호(62)를 전송한 것에 응답하여, 전자 장치(200)는 완료 신호(64)를 전송할 수 있다. 도 8a와 같이 전자 장치(200)가 소정의 데이터(63)를 전송한 이후, 완료 신호(64)를 전송하는 것이 아닌, 도 8b와 같이 전자 장치(200)가 완료 신호(62)를 수신한 이후에 호스트(100)로 완료 신호(64)를 전송할 수 있도록, 전자 장치(200)는 감지 로직(211), 트리거 로직(212) 및 전송 로직(220)을 포함할 수 있다. 이에 따라, 전자 장치(200)는 반이중 통신을 수행하는 구간이 최소화 됨으로써, 데이터(65) 및 데이터(66)을 더 전송할 수 있으며, 이에 따라 데이터 전송량을 극대화 시키고, 데이터 전송 효율을 증가시킬 수 있다.
도 9a 및 도 9b는 호스트의 신호 전송 정책이 제2 정책인 경우 본 개시의 실시예에 따른 전자 시스템의 데이터 전송 방법을 설명하기 위한 데이터 흐름도이다.
도 9a에 따르면, 전자 장치(200)는 호스트(100)의 신호 전송 정책이 제1 정책인 것으로 판단한 뒤에, 사용자가 호스트(100)의 교체하는 물리적인 원인, 소프트웨어의 변경(예컨대, 사용자가 호스트(100)의 신호 전송 정책을 변경) 등과 같은 다양한 원인에 의하여, 호스트(100)의 신호 전송 정책이 제2 정책으로 변경될 수 있다. 이 경우에도, 호스트(100)가 여전히 제1 정책인 것으로 오인하여 전자 장치(200)가 동작하는 경우, 일정 시간 동안에 호스트(100) 및 전자 장치(200) 모두 완료 신호(DONE)를 전송하지 않는 문제점(예컨대, 데드락(Dead Lock))이 발생할 수 있다.
도 9b에 따르면, 본 개시의 실시예에 따르면, 전자 장치(200)로부터 데이터(71) 및 그에 따른 완료 신호(74)를 수신하여야만, 호스트(100)가 완료 신호(72)를 전송함을 전자 장치(200)가 감지할 수 있다. 즉, 전자 장치(200)는 제1 국면에서 호스트(100)의 신호 전송 정책이 제2 정책인 것으로 미리 감지하고, 제2 국면에서는 전자 장치(200)가 호스트(100)로부터 완료 신호(72)를 수신하는 것과 무관하게, 감지 신호(DET) 및 조건 신호(COND)에 기초하여 완료 신호(74)를 전송할 수 있다. 이와 관련하여 도 7a 및 도 7b에서 상술하였으므로 자세한 내용은 생략한다.
도 10a 및 도 10b는 호스트의 신호 전송 정책이 제1 정책인 경우 본 개시의 실시예에 따른 전자 시스템의 데이터 전송 방법을 설명하기 위한 시퀀스도이다.
도 10a에 따르면, 도 8a에서 전술한 바와 유사하게 전자 시스템(10)은 일정 시구간에서 반이중 통신 구간이 발생될 수 있다. 예컨대, 연결 준비 국면에서 단계 S810 및 S820과 같이, 호스트(100) 및 전자 장치(200)가 연결 요청 신호 및 연결 응답 신호를 전송할 수 있다. 데이터를 교환하는 제2 국면에서, 단계 S831과 같이 호스트(100)는 전자 장치(200)로 제1 데이터(DTA1)를 전송하며, 전자 장치(200)는 호스트(100)로 제2 데이터(DTA2)를 전송할 수 있다.
단계 S841에 따르면, 전자 장치(200)가 제2 완료 신호(DONE2)를 호스트(100)로 전송할 수 있다. 제2 완료 신호(DONE2)를 전송하고 나면, 다양한 원인에 의해 전자 장치(200)가 호스트(100)로 전송해야 할 제2 데이터(DTA)가 발생할 수 있음에도 불구하고, 제2 데이터(DTA)를 전송할 수 없다. 즉, 단계 S851과 같이, 전자 시스템(10)에 포함된 호스트(100)만 제1 데이터(DTA1)를 전송하며, 전자 장치(200)가 제2 데이터(DTA2)는 더 이상 전송할 수 없는 반이중 통신을 수행한다. 단계 S861에 따르면, 호스트(100)는 기설정된 개수의 데이터 프레임을 모두 전송한 이후 제1 완료 신호(DONE1)를 전송할 수 있으며, 단계 S871에 따르면 연결 종료 신호를 교환함으로써, 호스트(100)와 전자 장치(200)간에 설립된 연결을 종료할 수 있다.
도 10b에 따르면, 도 8b에서 전술한 바와 유사하게 전자 시스템(10)의 반이중 통신 구간을 최소화 할 수 있다. 예컨대, 연결 준비 국면에서 단계 S810 및 S820과 같이, 호스트(100) 및 전자 장치(200)가 연결 요청 신호 및 연결 응답 신호를 전송할 수 있다. 데이터를 교환하는 제2 국면에서, 단계 S832과 같이 호스트(100)는 전자 장치(200)로 제1 데이터(DTA1)를 전송하며, 전자 장치(200)는 호스트(100)로 제2 데이터(DTA2)를 전송할 수 있다.
단계 S842에 따르면, 호스트(100)는 전자 장치(200)로 제1 완료 신호를 전송할 수 있다. 단계 S852에 따르면, 전자 장치(200)는 호스트(100)로부터 제1 완료 신호(DONE1)를 수신한 이후에 제2 완료 신호(DONE2)를 전송할 수 있다.
도 10a와 비교하면, 전자 장치(200)는 호스트(100)로부터 제1 완료 신호(DONE1)를 수신하기 전 까지, 단계 S832와 같은 전이중 통신 방식을 최대한 오래 유지함으로써, 데이터 전송 효율을 증대시킬 수 있다. 즉, 본 개시의 실시예에 따르면 전자 장치(200)는 제1 국면에서 호스트(100)의 신호 전송 정책을 제1 정책으로 감지하고, 제2 국면에서 제1 완료 신호(S842)를 수신하면, 비로소 제2 완료 신호(S852)를 전송할 수 있다.
단계 S862에 따르면, 연결 종료 신호를 교환함으로써, 호스트(100)와 전자 장치(200)간에 설립된 연결을 종료할 수 있다. 예컨대, 연결 종료 신호는 SAS 프로토콜에 따른 CLOSE 신호를 포함할 수 있다. 한편, 제1 완료 신호(DONE1)는 호스트(100)가 전자 장치(200)로 전송하는 완료 신호를 의미하며, 제2 완료 신호(DONE2)는 전자 장치(200)가 호스트(100)로 전송하는 완료 신호를 의미한다. 또한, 제1 완료 신호(DONE1)는 제1 데이터(DTA1)를 전송함에 따른 완료 신호(DONE)일 수 있으며, 제2 완료 신호(DONE2)는 제2 데이터(DTA2)를 전송함에 따른 완료 신호(DONE)일 수 있다.
도 11은 호스트의 신호 전송 정책이 제2 정책인 경우 본 개시의 실시예에 따른 전자 시스템의 데이터 전송 방법을 설명하기 위한 시퀀스도이다. 도 10a 및 도 10b와 중복되는 사항은 생략될 수 있다.
도 11에 따르면, 연결 준비 국면에서 단계 S810 및 S820과 같이, 호스트(100) 및 전자 장치(200)가 연결 요청 신호 및 연결 응답 신호를 전송할 수 있다. 데이터를 교환하는 제2 국면에서, 단계 S833과 같이 호스트(100)는 전자 장치(200)로 제1 데이터(DTA1)를 전송하며, 전자 장치(200)는 호스트(100)로 제2 데이터(DTA2)를 전송할 수 있다.
단계 S843에 따르면, 전자 장치(200)는 제2 완료 신호를 호스트(100)로 전송할 수 있다. 본 개시의 실시예에 따르면, 전자 장치(200)의 신호 전송 정책을 제2 정책으로 감지하고, 호스트(100)와 전자 장치(200)간의 데드락을 방지하기 위하여, 전자 장치(200)에 포함된 전송 로직(220)이 감지 신호(DET) 및 조건 신호(COND)를 수신하면, 호스트(100)로부터 완료 신호(DONE)를 수신하는 것과 무관하게, 제2 완료 신호(DONE2)를 전송할 수 있다.
단계 S853에 따르면, 호스트(100)의 신호 전송 정책은 제2 정책이므로, 호스트(100)는 제2 완료 신호(DONE2)를 수신함에 응답하여, 제1 완료 신호(DONE1)를 전송할 수 있다.
단계 S863에 따르면, 연결 종료 신호를 교환함으로써, 호스트(100)와 전자 장치(200)간에 설립된 연결을 종료할 수 있다.
도 12는 본 개시의 일 실시예에 따른 전자 시스템을 설명하기 위한 블록도이다.
도 12에 따르면, 전자 시스템(20)은 중앙 처리 장치(CPU, 910), 이니시에이터(920), 타겟(930), 중앙 처리 장치(910)와 이니시에이터(920) 사이에 구비되는 버스(940) 및 이니시에이터(920)와 타겟(930) 사이에 구비되는 버스(950)를 포함할 수 있다. 중앙 처리 장치(910)는 전자 시스템(20)의 전반적인 제어를 수행할 수 있으며, 어플리케이션 프로세서(AP)로 구현될 수도 있다. 이니시에이터(920) 및 타겟(930)은 SAS 프로토콜에 의해 통신을 수행하는 다양한 엔드 디바이스(end device)를 포함할 수 있으며, 이니시에이터(920)는 HBA(Host Bus Adapter)를 포함할 수 있다. 타겟(930)은 다양한 자장 장치로 구현될 수 있으며 예컨대, 솔리드 스테이트 드라이브(SSD)로 구현될 수 있다. 버스(950)는 SAS 프로토콜에 의해 통신을 수행하도록 구현될 수 있다. 이니시에이터(920)는 전술한 호스트(100)로 구현될 수 있으며, 타겟(930)은 전술한 전자 장치(200)로 구현될 수 있다. 반대로, 타겟(930)이 호스트(100)로 구현될 수 있으며, 이니시에이터(920)는 전자 장치(200)로 구현될 수 있다. 예컨대, 타겟(930)은 이니시에이터(920)의 신호 전송 정책을 감지하고, 버스(950)를 통해 완료 신호(DONE)를 이니시에이터(920)로 전송하는 동작을 제1 정책 및 제2 정책 각각에 대해서 상이하게 수행할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 전자 시스템 100 : 호스트
200 : 전자 장치 210 : 제어 로직
220 : 전송 로직

Claims (10)

  1. 호스트와 통신을 수행하는 전자 장치에 있어서,
    상기 호스트와 상기 전자 장치의 연결이 설립된 이후에 초기 커맨드(initial command) 신호 및 상기 초기 커맨드 신호에 따른 제1 완료 신호를 수신하고, 상기 초기 커맨드 신호 및 상기 제1 완료 신호에 기초하여 감지한 상기 호스트의 신호 전송 정책에 기초하여 감지 신호를 전송하는 감지 로직; 및
    상기 감지 신호에 기초하여 상기 호스트로 제2 완료 신호를 전송하는 전송 로직을 포함하며,
    상기 신호 전송 정책은, 상기 제1 완료 신호가 상기 제2 완료 신호에 응답하여 수신되었는지 여부에 따라 상이한 것을 특징으로 하는 전자 장치.
  2. 제1항에 있어서,
    상기 감지 로직은,
    상기 초기 커맨드 신호 및 상기 제1 완료 신호를 수신하는 경우, 상기 신호 전송 정책을 제1 정책으로 감지하며, 상기 초기 커맨드 신호를 수신한 이후에 상기 전송 로직이 상기 제2 완료 신호를 전송함에 따라 상기 제1 완료 신호를 수신하는 경우, 상기 신호 전송 정책을 제2 정책으로 감지하는 것을 특징으로 하는 전자 장치.
  3. 제2항에 있어서,
    상기 감지 로직은,
    상기 신호 전송 정책을 제1 정책으로 감지한 경우, 상기 호스트로부터 데이터 프레임을 수신한 이후에 상기 데이터 프레임에 따른 제1 완료 신호를 수신하면, 상기 전송 로직으로 상기 감지 신호를 전송하는 것을 특징으로 하는 전자 장치.
  4. 제1항에 있어서,
    상기 전자 장치는 Serial Attached Small computer system interface (SAS)에 의해 상기 호스트와 통신을 수행하는 것을 특징으로 하는 전자 장치.
  5. 제1항에 있어서,
    상기 전자 장치는, 상기 호스트로 하나 이상의 데이터 프레임을 전송하고,
    상기 감지 로직은, 상기 호스트로 전송할 잔여 데이터 프레임이 존재하는지 여부에 따라 상이한 조건 신호를 상기 전송 로직으로 전송하며,
    상기 전송 로직은, 상기 감지 신호 및 상기 조건 신호를 모두 수신한 것에 응답하여 상기 호스트로 상기 제2 완료 신호를 전송하는 것을 특징으로 하는 전자 장치.
  6. 호스트와 통신을 수행하는 전자 장치의 동작 방법에 있어서,
    제1 국면에서, 상기 호스트의 신호 전송 정책을 상기 호스트가 기설정된 개수의 데이터 프레임들을 전송한 후 상기 데이터 프레임에 따른 제1 완료 신호를 전송하는 제1 정책으로 감지하는 단계;
    제2 국면에서, 적어도 하나의 데이터 프레임들을 전송 및 수신하는 단계; 및
    상기 제2 국면에서, 상기 정책을 감지함에 따라 상기 호스트로부터 상기 제1 완료 신호를 수신하면 상기 호스트로 제2 완료 신호를 전송하는 단계를 포함하며,
    상기 제1 국면은, 상기 제2 국면에서 상기 적어도 하나의 데이터 프레임들을 전송 및 수신하기 위한 커맨드를 전송 또는 수신하는 동작 방법.
  7. 제6항에 있어서,
    상기 제1 정책으로 감지하는 단계는,
    상기 호스트로부터 초기 커맨드 신호 및 상기 초기 커맨드 신호에 따른 완료 신호를 순차적으로 수신함으로써 상기 제1 정책으로 감지하는 것을 특징으로 하는 동작 방법.
  8. 제6항에 있어서,
    상기 제2 완료 신호를 전송하는 단계는,
    상기 호스트로부터 상기 제1 완료 신호를 수신하면, 조건 신호에 기초하여 상기 제2 완료 신호를 전송하며, 상기 조건 신호는 상기 전자 장치의 전송 로직이 상기 제2 완료 신호를 전송하도록 요청하는 신호인 것을 특징으로 하는 동작 방법.
  9. 이니시에이터(initiator)와 SAS(Serial Attached Small computer system interface) 프로토콜에 의해 통신을 수행하는 타겟 장치(target device)의 동작 방법에 있어서,
    연결 요청 신호를 전송하는 단계;
    상기 이니시에이터로부터 연결 응답 신호를 수신한 이후, 초기 커맨드(initial command) 신호를 수신하는 단계; 및
    상기 이니시에이터로부터 기설정된 시간 이내에 상기 초기 커맨드 신호에 따른 제1 완료 신호를 수신하는 경우, 상기 초기 커맨드 신호에 따른 제1 완료 신호에 응답하여 상기 이니시에이터로 제2 완료 신호를 전송하는 단계; 또는
    상기 이니시에이터로부터 기설정된 시간 이내에 상기 초기 커맨드 신호에 따른 제1 완료 신호를 수신하지 않는 경우, 상기 기설정된 시간 이후에 상기 이니시에이터로 상기 제2 완료 신호를 전송하는 단계를 포함하는 동작 방법.
  10. 제9항에 있어서,
    상기 초기 커맨드 신호는, 상기 이니시에이터로부터 상기 연결 응답 신호를 수신함에 따라 상기 이니시에이터와 연결이 설립되며, 상기 연결이 설립된 이후 최초에 수신한 신호인 것을 특징으로 하는 동작 방법.
KR1020180137606A 2018-11-09 2018-11-09 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법 KR20200054004A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180137606A KR20200054004A (ko) 2018-11-09 2018-11-09 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법
US16/671,542 US11175855B2 (en) 2018-11-09 2019-11-01 Electronic device for communicating with host and operating method of the electronic device
CN201911069587.0A CN111177058A (zh) 2018-11-09 2019-11-05 用于与主机通信的电子设备及该电子设备的操作方法
US17/499,512 US11593033B2 (en) 2018-11-09 2021-10-12 Electronic device for communicating with host and operating method of the electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180137606A KR20200054004A (ko) 2018-11-09 2018-11-09 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20200054004A true KR20200054004A (ko) 2020-05-19

Family

ID=70551364

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180137606A KR20200054004A (ko) 2018-11-09 2018-11-09 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법

Country Status (3)

Country Link
US (2) US11175855B2 (ko)
KR (1) KR20200054004A (ko)
CN (1) CN111177058A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112053544B (zh) * 2020-09-16 2022-02-25 深圳市爱尚智联科技有限公司 单线双向半双工蓝牙ble遥控模块及遥控方法
CN112748883B (zh) * 2021-01-15 2023-01-10 苏州浪潮智能科技有限公司 一种io请求流水线处理设备、方法、系统及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952276B2 (en) * 1997-01-27 2005-10-04 Seiko Epson Corporation Printer detecting data precisely in response to change in data transmission speed
US7664896B2 (en) 2003-03-26 2010-02-16 Pivot 3, Inc. Expedited completion done messages, method and apparatus
JP2005115600A (ja) * 2003-10-07 2005-04-28 Hitachi Ltd 情報処理装置及び方法
US8050179B2 (en) * 2005-09-22 2011-11-01 Freescale Semiconductor, Inc. Method and system for acknowledging frames in a communication network
US7529877B2 (en) 2006-03-13 2009-05-05 Lsi Corporation Apparatus and methods for simplified SSP link layer processing
WO2009107400A1 (ja) * 2008-02-29 2009-09-03 パナソニック株式会社 ホスト装置用インタフェース装置、スレーブ装置用インタフェース装置、ホスト装置、スレーブ装置、通信システム、及びインタフェース電圧切り替え方法
US8099539B2 (en) * 2008-03-10 2012-01-17 Lsi Corporation Method and system of a shared bus architecture
JP5523451B2 (ja) * 2009-05-21 2014-06-18 キヤノン株式会社 通信装置、通信装置の制御方法、プログラム
JP2012128560A (ja) 2010-12-14 2012-07-05 Toshiba Corp インタフェースコントローラ、ストレージ装置、及びタイムアウト調整方法
US9113284B2 (en) * 2011-08-26 2015-08-18 Qualcomm Incorporated Methods and apparatus for improving management of NFC logical connections
US9158461B1 (en) * 2012-01-18 2015-10-13 Western Digital Technologies, Inc. Measuring performance of data storage systems
US9026702B2 (en) 2012-11-12 2015-05-05 Avago Technologies General Ip (Singapore) Pte Ltd Methods and apparatus for fast context switching of serial advanced technology attachment in enhanced serial attached SCSI expanders
KR101988287B1 (ko) * 2012-11-26 2019-06-12 삼성전자주식회사 저장 장치 및 그것을 포함하는 컴퓨팅 시스템, 및 그것의 데이터 전송 방법
IN2013CH01005A (ko) 2013-03-08 2015-08-14 Lsi Corp
US9377966B2 (en) * 2013-10-09 2016-06-28 Samsung Electronics Co., Ltd. Method and apparatus for efficiently processing storage commands
US9270756B2 (en) 2014-01-03 2016-02-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Enhancing active link utilization in serial attached SCSI topologies
US9442657B2 (en) 2014-06-05 2016-09-13 Kabushiki Kaisha Toshiba Memory system utilizing a connection condition of an interface to transmit data
US10268815B2 (en) * 2015-06-26 2019-04-23 Intel Corporation Authentication of a multiple protocol connection
JP2017162399A (ja) * 2016-03-11 2017-09-14 東芝メモリ株式会社 記憶装置
TWI595412B (zh) * 2016-09-09 2017-08-11 大心電子(英屬維京群島)股份有限公司 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元

Also Published As

Publication number Publication date
US20200150901A1 (en) 2020-05-14
US11593033B2 (en) 2023-02-28
CN111177058A (zh) 2020-05-19
US11175855B2 (en) 2021-11-16
US20220066702A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
EP2453364B1 (en) A method for deterministic SAS discovery and configuration
CN102681957B (zh) 增强的无线 usb 协议和集线器
US7200641B1 (en) Method and system for encoding SCSI requests for transmission using TCP/IP
WO2023284699A1 (zh) 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质
US20070198761A1 (en) Connection management mechanism
JP2008257419A (ja) 通信アダプタ及び通信アダプタのデータ転送方法
US20130223361A1 (en) Terminal and method for establishing wireless access channel
WO2019057005A1 (zh) 数据校验的方法、装置以及网卡
KR20200054004A (ko) 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법
WO2018113377A1 (zh) 一种具有触屏功能的双系统一体机及其通信方法
CN105472038A (zh) 文件传输的控制方法、装置以及系统
CN103986610A (zh) 通讯接口匹配方法、装置及控制器
US9436412B2 (en) Preemptive connection switching for serial attached small computer system interface systems
US8300565B2 (en) Multi mode host interface for and remote register and memory access of a wireless communication module
WO2021052145A1 (zh) 安全验证方法、系统、计算机设备和介质
JP2007088775A (ja) 無線通信システム、無線通信装置及び方法
US9832279B2 (en) Station, target apparatus, initiator apparatus, communication system, and communication method
CN108886713A (zh) 一种数据传输方法、数据接收设备及数据发送设备
JP2009182458A (ja) 通信装置、通信システム、通信方法及びプログラム
TWI441074B (zh) 具有作業系統之電子裝置之操作方法
WO2016015614A1 (zh) 一种密文发送、传输的方法、移动终端及通信基站
CN109800202B (zh) 一种基于pcie的数据传输系统、方法及装置
CN104253900A (zh) 智能手机及其数据传输方法及系统
TWI679579B (zh) 遠端登錄伺服器子系統方法與遠端登錄系統
JP5690927B2 (ja) 集積回路カードによる複数の無線通信ストリームの処理を行う方法及びシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal