KR20140006205A - 씨리얼 ata 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템 - Google Patents

씨리얼 ata 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템 Download PDF

Info

Publication number
KR20140006205A
KR20140006205A KR1020120069254A KR20120069254A KR20140006205A KR 20140006205 A KR20140006205 A KR 20140006205A KR 1020120069254 A KR1020120069254 A KR 1020120069254A KR 20120069254 A KR20120069254 A KR 20120069254A KR 20140006205 A KR20140006205 A KR 20140006205A
Authority
KR
South Korea
Prior art keywords
fis
command information
data
delay
sdb
Prior art date
Application number
KR1020120069254A
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 KR1020120069254A priority Critical patent/KR20140006205A/ko
Priority to US13/791,153 priority patent/US20140006646A1/en
Publication of KR20140006205A publication Critical patent/KR20140006205A/ko

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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • 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
    • 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
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Transfer Systems (AREA)

Abstract

씨리얼 ATA 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템이 제공된다. 상기 반도체 장치는 지연값을 결정하는 지연부, 트랜스퍼 채널과 연결되고, 제1 커맨드 정보를 포함하는 제1 H2D FIS를 수신하는 FIS 수신부, 리씨브 채널과 연결되고, 상기 제1 H2D FIS에 응답하여 제1 D2H FIS를 출력한 후, 상기 제1 커맨드 정보에 대응되는 제1 DMA셋업 FIS, 제1 데이터 FIS, 제1 SDB FIS를 순차적으로 출력하되, 상기 제1 데이터 FIS 다음에 또는 제1 SDB FIS 다음에, 상기 지연값만큼의 지연구간을 삽입하는 FIS 생성부를 포함한다.

Description

씨리얼 ATA 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템{Semiconductor device using Serial-ATA protocol communication and system thereof}
본 발명은 반도체 장치 및 이를 포함하는 시스템에 관한 것으로, 더 구체적으로 씨리얼 ATA 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템에 관한 것이다.
씨리얼 ATA(Serial Advanced Technology Attachment) 프로토콜은, 차세대 데이터 전송 방식으로 PATA(Parallel Advanced Technology Attachment) 프로토콜에 비해 속도가 약 2배 빠르며, 외부 연결 케이블도 간편하게 구성돼 연결 및 조립이 쉽다.
한편, 마스터(master)와 슬레이브(slave)가 씨리얼 ATA 프로토콜을 이용하여 통신할 때, 슬레이브(slave)는 전송의 우선권을 갖는다. 예를 들어, 마스터와 슬레이브가 동시에 트랜잭션(transaction)을 개시할 때, 마스터가 보낸 커맨드(command)는 무시되고 슬레이브는 마스터에 데이터를 전송할 수 있다. 따라서, 슬레이브가 연속적으로 다수의 데이터를 전송하기 시작하면, 전송하는 동안 마스터는 슬레이브에 커맨드를 전송할 수 없다.
본 발명이 해결하려는 과제는, 슬레이브가 연속적으로 다수의 데이터를 전송하기 시작해도, 호스트로부터 커맨드를 제공받을 수 있는 반도체 장치를 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 슬레이브가 연속적으로 다수의 데이터를 전송하기 시작해도, 호스트는 커맨드를 슬레이브에 제공할 수 있는 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 반도체 장치의 몇몇 실시예는 지연값을 결정하는 지연부, 트랜스퍼 채널과 연결되고, 제1 커맨드 정보를 포함하는 제1 H2D FIS를 수신하는 FIS 수신부, 리씨브 채널과 연결되고, 상기 제1 H2D FIS에 응답하여 제1 D2H FIS를 출력한 후, 상기 제1 커맨드 정보에 대응되는 제1 DMA셋업 FIS, 제1 데이터 FIS, 제1 SDB FIS를 순차적으로 출력하되, 상기 제1 데이터 FIS 다음에 또는 제1 SDB FIS 다음에, 상기 지연값만큼의 지연구간을 삽입하는 FIS 생성부를 포함한다.
상기 FIS 수신부는 상기 제1 H2D FIS를 제공받은 후, 순차적으로 제2 커맨드 정보를 포함하는 제2 H2D FIS와 제3 커맨드 정보를 포함하는 제3 H2D FIS를 수신할 수 있다.
상기 FIS 생성부는 상기 제1 데이터 FIS와 상기 제1 SDB FIS 사이의 지연 구간에서, 상기 제3 H2D FIS에 응답하여 제3 D2H FIS를 출력할 수 있다.
또는, 상기 FIS 생성부는 상기 제1 SDB FIS 다음의 지연 구간에서, 상기 제3 H2D FIS에 응답하여 제3 D2H FIS를 출력할 수 있다.
상기 반도체 장치는 씨리얼 ATA 프로토콜을 이용하여 통신한다.
상기 반도체 장치는 AHCI 모드를 이용할 수 있다.
상기 지연값은 고정값일 수 있다.
또는, 상기 지연값은 동적으로 변경되는 값일 수 있다. 상기 FIS 수신부는 상기 제1 커맨드 정보 내지 제n 커맨드 정보를 각각 포함하는 상기 제1 H2D FIS 내지 제n H2D FIS를 순차적으로 제공받고, 상기 지연부는 상기 제1 내지 제n 커맨드 정보 중에서, 수행되지 않은 대기상태의 커맨드 개수에 따라 상기 지연값을 조절할 수 있다.
상기 대기상태의 커맨드 개수가 기준개수 이상인 경우, 상기 지연부는 지연값을 0으로 할 수 있다.
상기 기준개수는 데이터를 출력될 수 있도록 준비하는 시간과, 상기 데이터를 전송하는 시간을 이용하여 결정될 수 있다.
상기 데이터를 출력될 수 있도록 준비하는 시간은 메모리로부터 데이터를 리드하는 시간과, 상기 리드된 데이터를 버퍼에 로딩하는 시간을 이용하여 결정할 수 있다.
한편, 상기 지연부는 상기 대기상태의 커맨드 개수를 카운팅하는 카운터와, 상기 카운팅된 대기상태의 커맨드 개수와, 기준개수를 비교하는 비교부와, 상기 비교부의 비교 결과에 따라서 상기 지연값을 결정하여, 상기 지연값에 대응되는 금지신호를 생성하는 금지신호 생성부를 포함할 수 있다.
상기 반도체 장치는 SSD(Solid Static Disk)일 수 있다.
상기 과제를 해결하기 위한 본 발명의 반도체 장치의 다른 몇몇 실시예는 제1 내지 제n(단, n은 2 이상의 자연수) H2D FIS를 순차적으로 수신받되, 상기 제1 내지 제n H2D FIS는 각각 제1 내지 제n 커맨드 정보를 포함하는 FIS 수신부, 및 상기 제1 내지 제n H2D FIS에 응답하여, 제1 내지 제n D2H FIS를 순차적으로 출력한 후, 상기 제1 내지 제n 커맨드 정보와 관련된 제1 내지 제m(단, m은 2이상의 자연수) FIS를 순차적으로 출력하는 FIS 생성부를 포함하되, 상기 FIS 생성부가 제1 내지 제m FIS 중 일부만을 출력하던 중에, 상기 FIS 수신부는 상기 제n+1 H2D FIS를 수신받고, 상기 FIS 생성부는 제k(단, 1<k<m, 자연수)는 FIS와 제k+1 FIS 사이에, 상기 제n+1 H2D FIS에 응답하여 제n+1 D2H FIS를 출력할 수 있다.
상기 m은 3n일 수 있다.
상기 제h 커맨드(단, 1≤h≤n, 자연수)와 관련된 FIS는, 제h DMA셋업 FIS, 제h 데이터 FIS, 제h SDB FIS일 수 있다.
상기 반도체 장치는 씨리얼 ATA 프로토콜을 이용하여 통신할 수 있다.
상기 반도체 장치는 AHCI 모드를 사용할 수 있다.
상기 반도체 장치는 지연값을 결정하는 지연부를 더 포함하고, 상기 FIS 생성부는 제k FIS와 제k+1 FIS를 상기 지연값만큼의 지연구간을 삽입하고, 상기 지연구간동안에 상기 제n+1 D2H FIS를 출력할 수 있다.
상기 과제를 해결하기 위한 본 발명의 시스템의 몇몇 실시예는 제 씨리얼 ATA 프로토콜의 AHCI 모드를 이용하여 서로 통신하는 마스터와 슬레이브를 포함하되, 상기 마스터는 제1 커맨드 정보를 포함하는 제1 H2D FIS를 전송하고, 상기 슬레이브는 상기 제1 H2D FIS에 응답하여 제1 D2H FIS를 출력한 후, 상기 제1 커맨드 정보에 대응되는 제1 DMA셋업 FIS, 제1 데이터 FIS, 제1 SDB FIS를 순차적으로 출력하되, 상기 제1 데이터 FIS 다음에 또는 제1 SDB FIS 다음에, 지연구간을 삽입하는 FIS 생성부를 포함할 수 있다.
상기 슬레이브는 상기 제1 H2D FIS를 제공받은 후, 순차적으로 제2 커맨드 정보를 포함하는 제2 H2D FIS와 제3 커맨드 정보를 포함하는 제3 H2D FIS를 수신할 수 있다.
상기 슬레이브는 상기 제1 데이터 FIS와 상기 제1 SDB FIS 사이의 지연 구간에서, 상기 제2 H2D FIS에 응답하여 제2 D2H FIS를 출력할 수 있다.
상기 슬레이브는 상기 제1 SDB FIS 다음의 지연 구간에서, 상기 제2 H2D FIS에 응답하여 제2 D2H FIS를 출력할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 몇몇 실시예에 따른 시스템을 설명하기 위한 블록도이다.
도 2는 도 1에 도시된 슬레이브(즉, 반도체 장치)를 설명하기 위한 블록도이다.
도 3은 도 2에 도시된 인터페이스를 설명하기 위한 블록도이다.
도 4와 도 5는 도 2에 도시된 인터페이스의 동작을 설명하기 위한 타이밍도이다.
도 6은 도 2에 도시된 인터페이스의 다른 동작을 설명하기 위한 타이밍도이다.
도 7은 본 발명의 다른 실시예에 따른 반도체 장치를 설명하기 위한 블록도이다.
도 8은 도 7에 도시된 지연부를 설명하기 위한 블록도이다.
도 9는 도 7 및 도 8에 도시된 인터페이스의 동작을 설명하기 위한 타이밍도이다.
도 10는 도 7 및 도 8에 도시된 인터페이스의 다른 동작을 설명하기 위한 타이밍도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 몇몇 실시예에 따른 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 몇몇 실시예에 따른 시스템(1)은 슬레이브(100)와, 마스터(200)를 포함할 수 있다. 여기서, 슬레이브(100), 마스터(200)는 씨리얼 ATA 프로토콜을 이용하여 서로 통신할 수 있는 장치이면, 어떤 것이든 가능하다. 마스터(200)는 HBA(Host Bus Adapter)이고, 슬레이브(100)는 디바이스(device)일 수 있다.
슬레이브(100)는 마스터(200)와 트랜스퍼 채널(Tx)과 리씨브 채널(Rx)을 통해서 연결된다.
씨리얼 ATA 프로토콜에서, 마스터(200)와 슬레이브(100)는 데이터 또는 커맨드를 FIS(Frame Information Structure) 형태로 서로 통신한다. 여기서, FIS는 SOF, transport layer information, CRC, EOF 등의 프리미티브(primitive)로 이루어질 수 있다. SOF는 Start Of Frame이고, transport layer information는 실제로 전송되는 데이터/커맨드 등이고, CRC는 검증을 위한 Cyclic Redundancy Check frame이고, EOF는 End Of Frame 이다.
그런데, 씨리얼 ATA 프로토콜은, FIS 레벨에서 하프 듀플렉스(half duplex)로써 동작하고, 프리미티브 레벨에서 풀 듀플렉스(full duplex)로써 동작한다. 즉, 마스터(200)와 슬레이브(100)가 씨리얼 ATA 프로토콜을 이용하여 통신할 때, 슬레이브(100)는 전송의 우선권을 갖는다. 예를 들어, 마스터(200)와 슬레이브(100)가 동시에 트랜잭션(transaction)을 개시할 때, 마스터(200)가 리씨브 채널(Rx)을 통해서 보낸 커맨드를 포함한 FIS는 무시되고 슬레이브(100)는 마스터(200)에 트랜스퍼 채널(Tx)을 통해서 데이터를 포함한 FIS를 전송할 수 있다.
한편, 씨리얼 ATA 프로토콜은 여러가지 컨트롤 모드(control mode)를 포함할 수 있다. 예를 들어, PATA(IDE) 모드, RAID(Redundant Array of Independent Disk) 모드, AHCI(Advanced Host Controller Interface) 모드 등을 포함할 수 있다. 특히, AHCI 모드의 경우, NCQ(Native Command Queueing)를 지원한다. 즉, 슬레이브(100)는 마스터(200)로부터 다수의 커맨드를 포함하는 다수의 FIS를 순차적으로 제공받은 후, 커맨드를 대기시킬 수 있다(즉, 대기 상태의 커맨드(queued command)). 슬레이브(100)는 대기 상태의 커맨드에 따라 순차적으로 다수의 데이터를 포함하는 다수의 FIS를 순차적으로 출력할 수 있다.
한편, 본 발명의 몇몇 실시예에 따른 시스템(1)에서, 슬레이브(100)는 마스터(200)에 다수의 FIS를 전송하면서, 다수의 FIS 사이에 지연구간을 삽입하여 보낼 수 있다. 따라서, 삽입된 지연구간 동안, 마스터(200)는 슬레이브(100)에 커맨드를 포함하는 FIS를 전송할 수 있다. 만약, 지연구간이 삽입되어 있지 않는 경우에, 예를 들어, 30개의 커맨드가 대기 상태에 있다면, 슬레이브(100)가 30개의 커맨드를 모두 처리하기 전까지 마스터(200)는 커맨드를 포함한 FIS를 전송할 수 없다.
이하에서, 슬레이브(100)가 지연구간을 삽입하는 것에 대해서 자세히 설명한다.
도 2는 도 1에 도시된 슬레이브(즉, 반도체 장치)를 설명하기 위한 블록도이다. 도 3은 도 2에 도시된 인터페이스를 설명하기 위한 블록도이다. 도 2에서는 예시적으로, SSD(Solid Static Disk)를 도시하였으나, 이에 한정되는 것은 아니다. 예를 들어, 슬레이브는 HDD(Hard Disk Drive)일 수도 있다.
도 2 및 도 3을 참조하면, 슬레이브(100)는 프로세서(110), 인터페이스(120), 버퍼(130), 메모리 컨트롤러(150), 다수의 메모리(160) 등을 포함할 수 있다.
인터페이스(120)는 프로세서(110)의 제어에 따라, 씨리얼 ATA 프로토콜을 이용하여 마스터(도 1의 200)와 통신한다. 인터페이스(120)는 마스터(200)로부터 커맨드, 데이터, 어드레스 등을 패치하여, 버스(109)를 통해서 프로세서(110)로 전달한다.
또한, 인터페이스(130)는 다수의 FIS를 전송하면서, 다수의 FIS 사이에 지연구간을 삽입할 수 있다. 이러한 인터페이스(120)는 지연부(126), FIS 수신부(124), FIS 생성부(122) 등을 포함할 수 있다.
지연부(126)는 지연값을 결정한다. 여기서, 지연값은 고정값일 수 있다. 예를 들어, 지연값은 반도체 장치의 제조 시점에서 결정된 값일 수 있고, 반도체 장치의 파워업 시점에서 결정되는 값일 수도 있으나, 이에 한정되는 것은 아니다.
FIS 수신부(124)는 리씨브 채널(Rx)과 연결되고, 커맨드 정보를 포함하는 H2D FIS를 수신한다. 여기서, H2D는 Host to Device의 의미이다.
FIS 생성부(122)는 트랜스퍼 채널(Tx)과 연결되고, H2D FIS에 응답하여 D2H FIS를 출력한다. 여기서, D2H는 Device to Host의 의미이다. 즉, D2H 이어서, 커맨드 정보에 대응되는 DMA(Direct Memory Access) 셋업 FIS, 데이터 FIS, SDB(Set Device Bits) FIS를 순차적으로 출력하되, 데이터 FIS 다음에 또는 SDB FIS 다음에 지연값만큼의 지연구간을 삽입할 수 있다. 여기서, DMA 셋업 FIS는 실제 데이터를 보내기 전에 미리 보내는 FIS이고, 데이터 FIS는 실제 데이터를 포함하는 FIS이고, SDB FIS는 정상적으로 데이터를 보냈음을 나타내는 FIS이다.
구체적으로, 여러 개의 H2D FIS가 연속적으로 입력되는 경우를 생각해 보면 다음과 같다.
FIS 수신부(124)는 제1 내지 제n(단, n은 2 이상의 자연수) H2D FIS를 순차적으로 수신받되, 상기 제1 내지 제n H2D FIS는 각각 제1 내지 제n 커맨드 정보를 포함한다.
FIS 생성부(122)는 제1 내지 제n H2D FIS에 응답하여, 제1 내지 제n D2H FIS를 순차적으로 출력한 후, 제1 내지 제n 커맨드 정보와 관련된 제1 내지 제m(단, m은 2이상의 자연수) FIS를 순차적으로 출력한다. 여기서, m은 3n일 수 있다. 전술한 것과 같이, 데이터를 전송하기 위해서는 3개의 FIS, 즉, DMA셋업 FIS, 데이터 FIS, SDB FIS가 필요하기 때문이다. 하지만, 사용되는 제품이나 사용되는 프로토콜이 바뀌는 경우, 이는 바뀔 수 있다. 즉, m이 3n이 아니어도 무방하다. 그런데, FIS 생성부(122)가 제1 내지 제m FIS 중 일부만을 출력하던 중에, FIS 수신부(124)는 제n+1 H2D FIS를 수신받고, FIS 생성부(122)는 제k(단, 1<k<m, 자연수) FIS와 제k+1 FIS 사이에, 제n+1 H2D FIS에 응답하여 제n+1 D2H FIS를 출력할 수 있다. 왜냐 하면, FIS 생성부(122)는 제k FIS와 제k+1 FIS 사이에 지연값만큼의 지연구간을 삽입하고, 지연구간 동안에 상기 제n+1 D2H FIS를 출력할 수 있기 때문이다.
이러한 인터페이스(120)의 동작은 도 4 및 도 5를 참조하여 자세히 후술하도록 한다.
다시 도 2를 참조하면, 버퍼(130)는 마스터(200)와 슬레이브(100) 사이에 전송되는 데이터를 임시로 저장할 수 있다. 예를 들어, 다수의 메모리(160)로부터 리드된 데이터가 버퍼(130)에 잠시 저장될 수 있다. 버퍼(130)에는 프로세서(110)에 의해 운용될 프로그램이 저장될 수도 있다. 이러한 버퍼(130)는 예를 들어, SRAM으로 구현될 수 있다.
메모리 컨트롤러(150)는 메모리(160)과 데이터를 주고 받을 수 있다. 메모리 컨트롤러(150)는 낸드 플래시 메모리, 원내드(One-NAND) 플래시 메모리, 멀티 레벨 플래시 메모리, 싱글 레벨 플래시 메모리를 지원하도록 구성될 수 있다. 한편, 프로세서(110)와 메모리 컨트롤러(150)는 하나의 ARM 프로세서로 구현될 수도 있다.
메모리 컨트롤러(150)는 다수의 메모리(160)와 다수의 채널(CH0~CH4)을 통해서 서로 연결될 수 있다.
도 4와 도 5는 도 2에 도시된 인터페이스의 동작을 설명하기 위한 타이밍도이다.
우선, 도 4를 참조하면, 인터페이스(120)는 리씨브 채널(Rx)을 통해서 제1 H2D FIS(301), 제2 H2D FIS(302), 제3 H2D FIS(303)를 순차적으로 수신한다. 제1 H2D FIS(301), 제2 H2D FIS(302), 제3 H2D FIS(303)는 각각 제1 커맨드 정보, 제2 커맨드 정보, 제3 커맨드 정보를 포함할 수 있다. 예를 들어, 각 커맨드 정보는 특정 메모리(160)의 어드레스에 해당하는 데이터를 리드하라는 것일 수 있다.
또한, 인터페이스(120)는 트랜스퍼 채널(Tx)을 통해서, 제1 H2D FIS(301)에 응답하여 제1 D2H FIS(311)를 출력하고, 제2 H2D FIS(302)에 응답하여 제2 D2H FIS(312)를 출력하고, 제3 H2D FIS(303)에 응답하여 제3 D2H FIS(313)를 출력한다. 각 D2H FIS(311, 312, 313)는 대응되는 H2D FIS(301, 302, 303)를 수신하였음을 나타내는 것이다.
여기서, 제1 커맨드 정보, 제2 커맨드 정보, 제3 커맨드 정보는 대기한다. 즉, 제1 커맨드 정보, 제2 커맨드 정보, 제3 커맨드 정보는 대기상태의 커맨드가 된다. 도면부호 411, 412, 413에서와 같이, 대기하는 커맨드 정보가 하나씩 늘어남에 따라, queue depth가 하나씩 증가함을 알 수 있다.
메모리(NVM#1)는 제1 H2D FIS(301)에 포함되는 제1 커맨드 정보에 따라서, 리드 구간(351)에서 제1 데이터를 리드한다. DMA 구간(352)에서, 리드된 제1 데이터를 버퍼(도 2의 130 참조)로 이동시켜 저장한다.
이어서, 제1 데이터가 버퍼(130)에 저장되면, 트랜스퍼 채널(Tx)을 통해서 제1 데이터는 마스터(200)로 전송된다(도면부호 355 참조). 구체적으로, 씨리얼 ATA 프로토콜에서, 인터페이스(120)는 제1 DMA셋업 FIS(321), 제1 데이터 FIS(322), 제1 SDB FIS(323)를 출력함으로써, 제1 데이터를 전송한다. 즉, 제1 커맨드 정보는 수행된다. 따라서, queue depth는 1이 감소하여 2가 된다(423 참조).
메모리(NVM#2)는 제2 H2D FIS(302)에 포함되는 제2 커맨드 정보에 따라서, 리드 구간(361)에서 제2 데이터를 리드한다. DMA 구간(362)에서, 리드된 제2 데이터를 버퍼(130)로 이동시켜 저장한다.
이어서, 제2 데이터가 버퍼(130)에 저장되면, 트랜스퍼 채널(Tx)을 통해서 제2 데이터가 마스터(200)로 전송된다(도면부호 365 참조). 구체적으로, 씨리얼 ATA 프로토콜에서, 인터페이스(120)는 제2 DMA셋업 FIS(331), 제2 데이터 FIS(332), 제2 SDB FIS(333)를 출력함으로써, 제2 데이터를 전송한다. 즉, 제2 커맨드 정보는 수행된다. 따라서, queue depth는 1이 감소하여 1가 된다(434 참조).
메모리(NVM#3)는 제3 H2D FIS(303)에 포함되는 제3 커맨드 정보에 따라서, 리드 구간(371)에서 제3 데이터를 리드한다. DMA 구간(372)에서, 리드된 제3 데이터를 버퍼(130)로 이동시켜 저장한다.
이어서, 제3 데이터가 버퍼(130)에 저장되면, 트랜스퍼 채널(Tx)을 통해서 제3 데이터가 마스터(200)로 전송된다(도면부호 375 참조). 구체적으로, 씨리얼 ATA 프로토콜에서, 인터페이스(120)는 제3 DMA셋업 FIS(341), 제3 데이터 FIS(342), 제3 SDB FIS(343)를 출력함으로써, 제3 데이터를 전송한다. 즉, 제3 커맨드 정보는 수행된다. 따라서, queue depth는 1이 감소하여 0가 된다(444 참조).
그런데, 도시된 것과 같이, 제1 SDB FIS(323) 다음에(즉, 제1 SDB FIS(323)와 제2 DMA셋업 FIS(331) 사이에), 제2 SDB FIS(333) 다음에(즉, 제2 SDB FIS(333)와 제3 DMA셋업 FIS(341) 사이에), 의도적인 지연 구간(tD)이 삽입될 수 있다.
여기서, 도 5를 참조하면, 의도적인 지연 구간(tD)이 데이터 전송 구간 내에 삽입되어 있으면, 삽입된 지연 구간(tD)동안, 마스터(200)는 슬레이브(100)에 커맨드(즉, 커맨드를 포함한 H2D FIS)를 전송할 수 있다.
구체적으로 설명하면, 인터페이스(120)는 리씨브 채널(Rx)을 통해서, 제1 H2D FIS(301), 제2 H2D FIS(302), 제3 H2D FIS(303)를 순차적으로 수신한다.
또한, 인터페이스(120)는 트랜스퍼 채널(Tx)을 통해서, 제1 H2D FIS(301)에 응답하여 제1 D2H FIS(311)를 출력하고, 제2 H2D FIS(302)에 응답하여 제2 D2H FIS(312)를 출력하고, 제3 H2D FIS(303)에 응답하여 제3 D2H FIS(313)를 출력한다. 제1 커맨드 정보, 제2 커맨드 정보, 제3 커맨드 정보는 대기상태의 커맨드가 된다(도면부호 411, 412, 413 참조).
제1 H2D FIS(301)에 포함된 제1 커맨드에 따라서, 인터페이스(120)는 제1 DMA셋업 FIS(321), 제1 데이터 FIS(322), 제1 SDB FIS(323)를 출력한다. 즉, 제1 커맨드 정보는 수행된다. 따라서, queue depth는 1이 감소하여 2가 된다(도면부호 423 참조).
전술한 것과 같이, 슬레이브(100)가 트랜스퍼 채널(Tx)을 통해서 제1 DMA셋업 FIS(321), 제1 데이터 FIS(322), 제1 SDB FIS(323)를 전송하는 동안, 마스터(200)가 리씨브 채널(Rx)을 통해서 제4 DMA셋업 FIS(304)를 전송하는 경우, 마스터(200)의 제4 DMA셋업 FIS(304) 전송은 무시된다. 하지만, 제1 SDB FIS(323) 다음의 지연 구간(tD) 동안, 인터페이스(120)는 제5 커맨드 정보를 포함하는 제5 H2D FIS(305)를 수신할 수 있다. 그 결과, 인터페이스(120)는 제5 H2D FIS(305)에 응답하여, 제5 D2H FIS(325)를 출력한다. 제5 커맨드 정보는 대기한다. 즉, 제5 커맨드 정보는 대기상태의 커맨드가 된다. 따라서, 대기상태의 커맨드는 제2 커맨드 정보, 제3 커맨드 정보, 제5 커맨드 정보가 된다. 따라서, queue depth는 1이 증가하여 다시 3이 된다(도면부호 425 참조).
제2 H2D FIS(302)에 포함된 제2 커맨드 정보에 따라서, 제2 DMA셋업 FIS(331), 제2 데이터 FIS(332), 제2 SDB FIS(333)가 출력된다. 즉, 제2 커맨드 정보는 수행된다. 따라서, queue depth는 1이 감소하여 2가 된다(도면부호 433 참조).
유사하게, 인터페이스(120)는 제6 H2D FIS(306)는 무시하고, 제2 SDB FIS(333) 다음의 지연 구간(tD) 동안 제7 커맨드 정보를 포함하는 제7 H2D FIS(307)를 수신한다. 제2 커맨드 정보에 대응되는 제2 데이터는 출력하였기 때문에, 대기상태의 커맨드는 제3 커맨드 정보, 제5 커맨드 정보, 제7 커맨드 정보가 된다. 따라서, queue depth는 1이 증가하여 다시 3이 된다(도면부호 437 참조).
제3 커맨드 정보에 따라서, 제3 DMA셋업 FIS(341), 제3 데이터 FIS(342), 제3 SDB FIS(343)가 출력된다. 즉, 제3 커맨드 정보는 수행된다. 따라서, queue depth는 1이 감소하여 2가 된다(도면부호 443 참조).
유사하게, 인터페이스(120)는 제8 H2D FIS(308)는 무시하고, 제3 SDB FIS(343) 다음의 지연 구간(tD) 동안 제9 커맨드 정보를 포함하는 제9 H2D FIS(309)를 수신한다. 제3 커맨드 정보에 대응되는 제3 데이터는 출력하였기 때문에, 대기상태의 커맨드는 제5 커맨드 정보, 제7 커맨드 정보, 제9 커맨드 정보가 된다. 따라서, queue depth는 1이 증가하여 다시 3이 된다(도면부호 449 참조).
도 5를 이용하여 설명한 것과 같이, 본 발명의 일 실시예에 따른 반도체 장치(즉, 슬레이브(100))는 지연구간(tD)을 통해서 커맨드를 포함하는 FIS를 수신할 수 있다. 따라서, queue depth를 일정 수준으로 유지할 수 있다. 즉, queue depth fluctuation 문제가 발생하지 않는다.
도 6은 도 2에 도시된 인터페이스의 다른 동작을 설명하기 위한 타이밍도이다. 설명의 편의를 위해 도 3 내지 도 5를 이용하여 설명한 것과 다른 부분을 위주로 설명한다.
도 6을 참조하면, 인터페이스(120)는 데이터 FIS 다음에 의도적인 지연 구간(tD)을 삽입할 수 있다. 예를 들어, 제1 데이터 FIS(322) 다음에(즉, 제1 데이터 FIS(322)와 제1 SDB FIS(323) 사이에), 제2 데이터 FIS(332) 다음에(즉, 제2 데이터 FIS(332)와 제2 SDB FIS(333) 사이에), 제3 데이터 FIS(342) 다음에(즉, 제3 데이터 FIS(342)와 제3 SDB FIS(343) 사이에), 의도적인 지연 구간(tD)이 삽입될 수 있다.
의도적인 지연 구간(tD)이 데이터 전송 구간 내에 삽입되어 있으면, 삽입된 지연 구간(tD)동안, 마스터(200)는 슬레이브(100)에 커맨드(즉, 커맨드를 포함한 H2D FIS)를 전송할 수 있다.
즉, 인터페이스(120)가 제1 DMA셋업 FIS(321)와 제1 데이터 FIS(322), 제2 DMA셋업 FIS(331)와 제2 데이터 FIS(332), 제3 DMA셋업 FIS(341)와 제3 데이터 FIS(342)를 출력하는 동안, 마스터(200)가 보낸 H2D FIS(304, 306, 308)는 무시된다. 하지만, 지연 구간(tD) 동안, 인터페이스(120)는 H2D FIS(305, 307, 309)를 수신할 수 있다. 따라서, 지연 구간(tD)동안, 인터페이스(120)는 D2H FIS(325, 337, 349)를 출력할 수 있다.
한편, 도 4 내지 도 6에서, 지연 구간(tD)은 데이터 FIS 다음에 또는 SDB FIS 다음에 삽입되는 것을 예로써 설명하였으나, 이에 한정되는 것은 아니다. 즉, 지연 구간(tD)은 DMA셋업 FIS 다음에 삽입될 수도 있다.
도 7은 본 발명의 다른 실시예에 따른 반도체 장치를 설명하기 위한 블록도이다. 도 8은 도 7에 도시된 지연부를 설명하기 위한 블록도이다. 설명의 편의를 위해서 도 3을 이용하여 설명한 것과 다른 부분을 위주로 설명한다.
도 7 및 도 8을 참조하면, 본 발명의 다른 실시예에 따른 반도체 장치에서, 인터페이스(120)는 다수의 FIS를 전송하면서, 다수의 FIS 사이에 지연구간을 삽입할 수 있다. 여기서, 지연구간은 항상 고정되어 있지 않고, 동적으로 변경되는 구간일 수 있다. 예를 들어, 수행되지 않고 대기상태의 커맨드(queued command)의 개수가 충분한 경우에는 지연구간을 0으로 할 수 있다. 또는, 대기상태의 커맨드가 기준개수 이상인 경우 지연구간을 0으로 할 수 있다. 반면, 대기상태의 커맨드의 개수가 적은 경우에는 지연구간을 삽입할 수 있다.
이러한 인터페이스(120)는 지연부(126), FIS 수신부(124), FIS 생성부(122) 등을 포함할 수 있다. 지연부(126)는 지연값을 결정한다. 여기서, 지연값은 동적으로 변경되는 값일 수 있다. 이러한 동작을 위해서, 지연부(126)는 카운터(127), 비교부(128), 금지신호 생성부(129)를 포함할 수 있다.
구체적으로, FIS 수신부(124)는 커맨드를 포함한 FIS가 입력될 때마다, 증가신호(INC)를 지연부(126)에 제공한다. FIS 생성부(122)는 데이터를 포함하는 FIS를 출력할 때마다, 감소신호(DEC)를 지연부(126)에 제공한다. 카운터(127)는 증가신호(INC)와 감소신호(DEC)에 따라서, 수행되지 않은 대기상태의 커맨드 개수를 카운팅할 수 있다. 카운터(127)에 증가신호(INC)가 10번 입력되고, 감소신호(DEC)가 2번 입력되었다면, 카운터(127)는 대기상태의 커맨드 개수가 8개임을 알 수 있다.
비교부(128)는 카운팅된 대기상태의 커맨드 개수와, 기준개수를 비교한다.
금지신호 생성부(129)는 비교부(128)의 비교 결과에 따라서 지연값을 결정하여, 지연값에 대응되는 금지신호(PS)를 생성한다. FIS 생성부(122)는 금지신호(PS)가 액티브된 구간 동안에는, FIS를 생성하지 않는다. 즉, 금지신호(PS)가 액티브된 구간은, 전술한 지연구간(tD)에 대응된다.
한편, 기준개수는 데이터를 출력될 수 있도록 준비하는 시간과, 데이터를 전송하는 시간을 이용하여 결정할 수 있다. 예를 들어, 데이터를 출력될 수 있도록 준비하는 시간이 100㎲이고, 데이터를 전송하는 시간이 10㎲라고 가정하면, 기준개수는 예를 들어, 10(=100㎲/10㎲)으로 결정할 수 있다. 즉, 대기상태의 커맨드 개수가 10개를 넘으면, 새로운 커맨드를 받을 수 있도록 지연구간(tD)를 삽입할 수 있다.
또한, 데이터를 출력될 수 있도록 준비하는 시간은, 예를 들어, 메모리(도 2의 160 참조)로부터 데이터를 리드하는 시간(도 4의 351, 361, 371 참조)과, 리드된 데이터를 버퍼(도 2의 130 참조)에 로딩하는 시간(도 4의 352, 362, 372 참조)을 이용하여 결정될 수 있다. 예를 들어, 데이터를 출력될 수 있도록 준비하는 시간은 메모리로부터 데이터를 리드하는 시간과, 리드된 데이터를 버퍼에 로딩하는 시간의 합일 수 있다.
도 9는 도 7 및 도 8에 도시된 인터페이스의 동작을 설명하기 위한 타이밍도이다.
도 9를 참조하면, 인터페이스(120)는 다수의 FIS를 전송하면서, 다수의 FIS 사이에 지연구간을 삽입할 수 있다. 여기서, 지연구간은 항상 고정되어 있지 않고, 동적으로 변경되는 구간일 수 있다. 즉, 대기 상태의 커맨드(대기상태의 커맨드)의 개수가 충분한 경우에는 지연 구간을 0으로 할 수 있다. 대기 상태의 커맨드의 개수가 적은 경우에는 지연 구간을 삽입할 수 있다. 예시적으로, 인터페이스(120)는 SDB FIS 다음에 의도적인 지연 구간(tD)을 삽입할 수 있다.
인터페이스(120)는 리씨브 채널(Rx)을 통해서, 제1 H2D FIS(301), 제2 H2D FIS(302), 제3 H2D FIS(303)를 순차적으로 수신한다.
또한, 인터페이스(120)는 트랜스퍼 채널(Tx)을 통해서, 제1 H2D FIS(301)에 응답하여 제1 D2H FIS(311)를 출력하고, 제2 H2D FIS(302)에 응답하여 제2 D2H FIS(312)를 출력하고, 제3 H2D FIS(303)에 응답하여 제3 D2H FIS(313)를 출력한다.
제1 H2D FIS(301)에 포함된 제1 커맨드에 따라서, 인터페이스(120)는 제1 DMA셋업 FIS(321), 제1 데이터 FIS(322), 제1 SDB FIS(323)를 출력한다. 제1 커맨드 정보는 수행된다. 여기서, 대기 상태의 커맨드의 개수가 충분하기 때문에, 지연 구간을 0으로 한다. 즉, 지연 구간이 삽입되지 않는다.
제2 H2D FIS(302)에 포함된 제2 커맨드에 따라서, 인터페이스(120)는 제2 DMA셋업 FIS(331), 제2 데이터 FIS(332), 제2 SDB FIS(333)를 출력한다. 제2 커맨드 정보는 수행된다.
제2 커맨드 정보가 수행된 후, 대기 상태의 커맨드의 수가 기준개수보다 작아진다. 따라서, 인터페이스(120)는 제2 SDB FIS(333) 후에 지연 구간(tD)을 삽입한다.
인터페이스(120)는 제2 SDB FIS(333) 다음의 지연 구간(tD) 동안 제5 커맨드 정보를 포함하는 제5 H2D FIS(305)를 수신할 수 있다. 그 결과, 인터페이스(120)는 제5 H2D FIS(305)에 응답하여, 제5 D2H FIS(325)를 출력한다. 제5 커맨드 정보는 대기한다.
이어서, 제3 H2D FIS(303)에 포함된 제3 커맨드에 따라서, 인터페이스(120)는 제3 DMA셋업 FIS(341), 제3 데이터 FIS(342), 제3 SDB FIS(343)를 출력한다. 제3 커맨드 정보는 수행된다.
제3 커맨드 정보가 수행된 후, 대기 상태의 커맨드의 수가 기준개수보다 작아진다. 따라서, 인터페이스(120)는 제3 SDB FIS(343) 후에 지연 구간(tD)을 삽입한다.
인터페이스(120)는 제3 SDB FIS(343) 다음의 지연 구간(tD) 동안 제7 커맨드 정보를 포함하는 제7 H2D FIS(307)를 수신한다.
도 10는 도 7 및 도 8에 도시된 인터페이스의 다른 동작을 설명하기 위한 타이밍도이다. 설명의 편의를 위해 도 9를 이용하여 설명한 것과 다른 부분을 위주로 설명한다.
도 10을 참조하면, 인터페이스(120)는 데이터 FIS 다음에 의도적인 지연 구간(tD)을 삽입할 수 있다.
인터페이스(120)가 제1 DMA셋업 FIS(321), 제1 데이터 FIS(322), 제1 SDB FIS(323), 제2 DMA셋업 FIS(331), 제2 데이터 FIS(332), 제2 SDB FIS(333)를 출력하는 동안, H2D FIS(304)는 무시된다. 제1 커맨드 정보와 제2 커맨드 정보가 수행된다.
제2 커맨드 정보가 수행된 후, 대기 상태의 커맨드의 수가 기준개수보다 작아진다. 따라서, 인터페이스(120)는 제3 데이터 FIS(342) 후에(즉, 제3 데이터 FIS(342)와 제3 SDB FIS(343) 사이에) 지연 구간(tD)을 삽입한다.
인터페이스(120)는 제3 데이터 FIS(342) 다음의 지연 구간(tD) 동안 제5 커맨드 정보를 포함하는 제5 H2D FIS(305)를 수신할 수 있다. 그 결과, 인터페이스(120)는 제5 H2D FIS(305)에 응답하여, 제5 D2H FIS(325)를 출력한다. 제5 커맨드 정보는 대기한다.
한편, 도 9 및 도 10에서, 지연 구간(tD)은 데이터 FIS 다음에 또는 SDB FIS 다음에 삽입되는 것을 예로써 설명하였으나, 이에 한정되는 것은 아니다. 즉, 지연 구간(tD)은 DMA셋업 FIS 다음에 삽입될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 슬레이브 110: 프로세서
120: 인터페이스 122: FIS 생성부
124: FIS 수신부 126: 지연부
130: 버퍼 150: 컨트롤러
160: 메모리

Claims (10)

  1. 지연값을 결정하는 지연부;
    트랜스퍼 채널과 연결되고, 제1 커맨드 정보를 포함하는 제1 H2D FIS를 수신하는 FIS 수신부; 및
    리씨브 채널과 연결되고, 상기 제1 H2D FIS에 응답하여 제1 D2H FIS를 출력한 후, 상기 제1 커맨드 정보에 대응되는 제1 DMA셋업 FIS, 제1 데이터 FIS, 제1 SDB FIS를 순차적으로 출력하되, 상기 제1 데이터 FIS 다음에 또는 제1 SDB FIS 다음에, 상기 지연값만큼의 지연구간을 삽입하는 FIS 생성부를 포함하는 반도체 장치.
  2. 제 1항에 있어서,
    상기 FIS 수신부는 상기 제1 H2D FIS를 제공받은 후, 순차적으로 제2 커맨드 정보를 포함하는 제2 H2D FIS와 제3 커맨드 정보를 포함하는 제3 H2D FIS를 수신하는 반도체 장치.
  3. 제 2항에 있어서,
    상기 FIS 생성부는 상기 제1 데이터 FIS와 상기 제1 SDB FIS 사이의 지연 구간에서, 상기 제3 H2D FIS에 응답하여 제3 D2H FIS를 출력하는 것을 포함하는 반도체 장치.
  4. 제 2항에 있어서,
    상기 FIS 생성부는 상기 제1 SDB FIS 다음의 지연 구간에서, 상기 제3 H2D FIS에 응답하여 제3 D2H FIS를 출력하는 것을 포함하는 반도체 장치.
  5. 제 1항에 있어서,
    상기 반도체 장치는 씨리얼 ATA 프로토콜을 이용하여 통신하는 반도체 장치.
  6. 제 5항에 있어서,
    상기 반도체 장치는 AHCI 모드를 이용하는 반도체 장치.
  7. 제 1항에 있어서,
    상기 지연값은 고정값인 반도체 장치.
  8. 제 1항에 있어서,
    상기 FIS 수신부는 상기 제1 커맨드 정보 내지 제n 커맨드 정보를 각각 포함하는 상기 제1 H2D FIS 내지 제n H2D FIS를 순차적으로 제공받고,
    상기 지연부는 상기 제1 내지 제n 커맨드 정보 중에서, 수행되지 않은 대기상태의 커맨드 개수에 따라 상기 지연값을 조절하는 반도체 장치.
  9. 제 8항에 있어서,
    상기 대기상태의 커맨드 개수가 기준개수 이상인 경우, 상기 지연부는 지연값을 0으로 하는 반도체 장치.
  10. 제1 내지 제n(단, n은 2 이상의 자연수) H2D FIS를 순차적으로 수신받되, 상기 제1 내지 제n H2D FIS는 각각 제1 내지 제n 커맨드 정보를 포함하는 FIS 수신부; 및
    상기 제1 내지 제n H2D FIS에 응답하여, 제1 내지 제n D2H FIS를 순차적으로 출력한 후, 상기 제1 내지 제n 커맨드 정보와 관련된 제1 내지 제m(단, m은 2이상의 자연수) FIS를 순차적으로 출력하는 FIS 생성부를 포함하되,
    상기 FIS 생성부가 제1 내지 제m FIS 중 일부만을 출력하던 중에, 상기 FIS 수신부는 상기 제n+1 H2D FIS를 수신받고,
    상기 FIS 생성부는 제k(단, 1<k<m, 자연수) FIS와 제k+1 FIS 사이에, 상기 제n+1 H2D FIS에 응답하여 제n+1 D2H FIS를 출력하는 반도체 장치.
KR1020120069254A 2012-06-27 2012-06-27 씨리얼 ata 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템 KR20140006205A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120069254A KR20140006205A (ko) 2012-06-27 2012-06-27 씨리얼 ata 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템
US13/791,153 US20140006646A1 (en) 2012-06-27 2013-03-08 Semiconductor Device Using Serial ATA Protocol and System Including the Same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120069254A KR20140006205A (ko) 2012-06-27 2012-06-27 씨리얼 ata 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템

Publications (1)

Publication Number Publication Date
KR20140006205A true KR20140006205A (ko) 2014-01-16

Family

ID=49779404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120069254A KR20140006205A (ko) 2012-06-27 2012-06-27 씨리얼 ata 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템

Country Status (2)

Country Link
US (1) US20140006646A1 (ko)
KR (1) KR20140006205A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2539726A (en) * 2015-06-23 2016-12-28 Yi Guo A tent and inflatable pipe frame

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2539726A (en) * 2015-06-23 2016-12-28 Yi Guo A tent and inflatable pipe frame

Also Published As

Publication number Publication date
US20140006646A1 (en) 2014-01-02

Similar Documents

Publication Publication Date Title
US11151027B2 (en) Methods and apparatuses for requesting ready status information from a memory
US9563368B2 (en) Embedded multimedia card and method of operating the same
US7676613B2 (en) Methods and structure for assuring correct data order in SATA transmissions over a SAS wide port
US20190018618A1 (en) Methods and apparatuses for executing a plurality of queued tasks in a memory
US20160291878A1 (en) Memory controller including host command queue and method of operating the same
KR101209918B1 (ko) 반도체 저장 장치를 위한 프로그램 가능한 인터페이스를 가지는 raid 컨트롤러
KR101134069B1 (ko) 멀티 레벨 raid 구조를 위한 하이브리드 저장 시스템
KR20120134157A (ko) 별도의 순환 중복 코드 프레임들을 이용하는 효율적인 대역내 신뢰도
US20220350655A1 (en) Controller and memory system having the same
KR20190088734A (ko) 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN103811080A (zh) 存储器测试系统以及存储器测试方法
KR20120019403A (ko) 스위칭 디바이스 및 스위칭 디바이스에서 동작 가능한 방법
KR102140297B1 (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
CN104615558B (zh) 一种数据传送方法及电子装置
US7840722B2 (en) Method for receiving data over an SDIO interface and device using the same
JP5084912B2 (ja) ファイバ・チャネル通信における永続情報単位ペーシング・プロトコルの使用に関する方法、システム、および装置
US20080052429A1 (en) Off-board computational resources
KR20140006205A (ko) 씨리얼 ata 프로토콜을 이용하는 반도체 장치 및 이를 포함하는 시스템
US20080126472A1 (en) Computer communication
KR20200059494A (ko) 메모리 시스템
CN103699504A (zh) Ddr物理层数据处理方法、装置及ddr物理层
KR101972535B1 (ko) 반도체 저장 장치
WO2022179368A1 (zh) 优化闪存颗粒的方法和相关装置
CN102063269B (zh) 一种实现磁盘阵列双控制器通讯的方法及系统
US8972614B2 (en) Half-duplex SATA link with controlled idle gap insertion

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid