KR101037851B1 - 직렬 인터페이스 대용량 저장 디바이스들에 대한 데이터 전송 레이트 조절 - Google Patents

직렬 인터페이스 대용량 저장 디바이스들에 대한 데이터 전송 레이트 조절 Download PDF

Info

Publication number
KR101037851B1
KR101037851B1 KR1020080130195A KR20080130195A KR101037851B1 KR 101037851 B1 KR101037851 B1 KR 101037851B1 KR 1020080130195 A KR1020080130195 A KR 1020080130195A KR 20080130195 A KR20080130195 A KR 20080130195A KR 101037851 B1 KR101037851 B1 KR 101037851B1
Authority
KR
South Korea
Prior art keywords
data
serial ata
data transfer
transfer rate
transmitting device
Prior art date
Application number
KR1020080130195A
Other languages
English (en)
Other versions
KR20090067110A (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 엔비디아 코포레이션
Publication of KR20090067110A publication Critical patent/KR20090067110A/ko
Application granted granted Critical
Publication of KR101037851B1 publication Critical patent/KR101037851B1/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/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
    • 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
    • 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/40Bus structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

SATA 저장 디바이스들에 대한 유효 데이터 전송 레이트(effective data trasfer rate)를 향상시키기 위해 데이터 전송 레이트 조절(throttling)을 수행하는 시스템들 및 방법들이 제공된다. 데이터 전송 레이트는 데이터가 송신될 때, ALIGN 프리미티브(primitive)들을 삽입함으로써 저하된다(dilute). 수신 디바이스(receiving device)는 단순히 ALIGN 프리미티브들을 폐기한다. 따라서, 수신 데이터 FIFO는 빨리 채워지지 않고, 수신 데이터 FIFO가 오버플로잉(overflowing)하는 것을 방지하기 위해, 흐름 제어에 대해 보다 적은 흐름 제어 시퀀스들이 요구된다. 종래 흐름 제어 대신 ALIGN 프리미티브들을 사용하는 장점은 왕복 핸드셰이크 레이턴시(round-trip handshake latency)가 데이터 전송들을 디스에이블(disable)하게 한 후 인에이블(enable)하게 하도록 하지 않는다는 것이다.
유효 데이터 전송 레이트, ALIGN 프리미티브, SATA 저장 디바이스

Description

직렬 인터페이스 대용량 저장 디바이스들에 대한 데이터 전송 레이트 조절{DATA TRANSFER RATE THROTTLING FOR SERIAL INTERFACE MASS STORAGE DEVICES}
본 발명의 하나 이상의 양태들은 일반적으로 직렬 ATA(SATA) 프로토콜을 사용하는 직렬 데이터 전송에 관한 것이고, 보다 구체적으로 흐름(flow) 제어를 위한 HOLD 프리미티브(primitive)들의 사용을 최소화하기 위해 데이터 전송 레이트(data transfer rate)를 조절하는 것에 관한 것이다.
SATA 디스크 액세스 프로토콜은 시스템 메모리와 하나 이상의 디스크들 사이에서 데이터를 전송하는데 사용된다. 대부분의 SATA 저장 디바이스들은 시스템 메모리 대역폭과 비교하여 매우 제한된 데이터 전송 처리량을 갖는다. 자기 플래터(magnetic platter) 기반의 드라이브들에 대해, 지속 기입 처리량(sustained write throughput)은 100MB/초 만큼 낮을 수 있다. 결과적으로, SATA 사양에 기술된 바와 같이, 이러한 SATA 저장 디바이스들은, 300MB/초의 전송 레이트를 지속할 수 있는 고속(fast) 호스트 프로세서에 연결될 때 성능 병목현상들이 일어나게 된다.
데이터 전송 레이트를 조절하기 위해, SATA 프로토콜에 의해 흐름 제어 메커 니즘이 설명된다. 구체적으로, 호스트 프로세서로부터 SATA 저장 디바이스들로의 데이터 전송들은 수신 데이터 FIFO(first-in first-out)가 오버플로우하지 않도록 조절될 수 있다. 입력 데이터(incoming data)를 저장하는 데이터 FIFO의 상위 경계선(high water mark)에 도달될 때, SATA 저장 디바이스는 HOLD 프리미티브들을 출력한다. 호스트 프로세서가 HOLD 프리미티브들을 수신할 때, 그것은 HOLDA 프리미티브들을 출력하고, SATA 저장 디바이스에 데이터를 송신하는 것을 중단하고, HOLD 프리미티브들이 수신된 것을 알린다. SATA 저장 디바이스는, HOLDA 프리미티브들이 수신된 후 및 입력 데이터를 저장하기 위해, 데이터 FIFO의 공간이 이용가능할 때, 즉, 하위 경계선에 도달될 때, 데이터를 받아들이기를 다시 시작할 수있다. SATA 저장 디바이스는 HOLD 프리미티브들 대신 R_IP 프리미티브를 출력함으로써 데이터를 받아들인다는 것을 전달한다. 호스트 프로세서가 R_IP 프리미티브들을 수신할 때, SATA 저장 디바이스는 HOLDA 프리미티브를 대신하여 데이터 송신을 시작한다.
시간에 걸쳐, 유효 전송 레이트는 SATA 저장 디바이스의 지속 데이터 전송 레이트에서 R_IP to HOLD to HOLDA to R_IP 시퀀스의 흐름 제어 오버헤드를 뺀 것이다. 흐름 제어는, (특정 최대로 제한된) SATA 인터페이스를 통한 왕복 핸드셰이크(round-trip handshake)로 인해 SATA 저장 디바이스와 호스트 디바이스 사이에서 각각의 전송 동안 레이턴시의 여러 사이클들이 초래되므로, 비효율성을 발생시킨다. 데이터 FIFO의 사이즈를 단순히 증가시키는 것은, 보다 많은 입력 데이터를 저장하기 위해 흐름 제어 시퀀스의 제1 발생을 지연하는데 사용될 수 있지만, 데이 터 FIFO가 처음에 일단 채워진다면 유효 전송 레이트를 향상시키지 않는다.
따라서, SATA 저장 디바이스들에 대한 유효 데이터 전송 레이트를 향상시키는 것이 바람직하다. 데이터 FIFO의 사이즈를 증가시키지 않음으로써 다이 영역(die area)을 최소화하는 것도 바람직하다.
< 본 발명의 요약 >
현재의 발명은 SATA 저장 디바이스들에 대한 유효 데이터 전송 레이트를 향상시키기 위한 새로운 시스템들 및 방법들을 포함한다. 유효 데이터 전송 레이트는, 데이터가 송신될 때 ALIGN 프리미티브들을 삽입함으로써 감소된다. 수신 디바이스는 ALIGN 프리미티브들을 단순히 폐기한다. 따라서, 수신 데이터 FIFO는 빨리 채워지지 않고, 흐름 제어에 더 적은 R_IP to HOLD to HOLDA to R_IP 시퀀스들이 요구된다. ALIGN 프리미티브들의 장점은 왕복 핸드셰이크 레이턴시가 데이터 전송들을 디스에이블하게 한 후 인에이블하게 하지 않는다는 것이다.
본 발명의 다양한 실시예들은 데이터 전송 레이트 조절을 사용하여 직렬 ATA 접속에 대한 데이터 전송들을 수행하기 위한 시스템을 포함한다. 시스템은, 직렬 ATA 접속을 통한 수신 디바이스로의 출력에 대해 데이터가 이용가능할 때 송신 데이터 상태로 변환되는 구성의 송신 데이터를 포함한다. 송신 디바이스는, 직렬 ATA 접속을 통한 데이터 전송 레이트를 감소시키고 ALIGN 프리미티브를 수신 디바이스로 출력하기 위해 ALIGN 프리미티브가 데이터 대신 출력되어야 한다는 것을 결정하도록 구성된다. 수신 디바이스는 송신 디바이스로부터 수신된 데이터를 저장하고 ALIGN 프리미티브를 폐기하도록 구성된다.
본 발명의 다양한 실시예들은 송신 디바이스와 수신 디바이스 사이에서 직렬 ATA 접속을 통한 출력을 위해 데이터가 이용가능할 때 송신 데이터 상태로 들어가는 단계, 직렬 ATA 접속을 통한 데이터 전송 레이트를 감소시키기 위해 ALIGN 프리미티브가 데이터 대신 출력되어야 하는 것을 결정하는 단계 및 직렬 ATA 접속을 통해 송신 디바이스로부터 수신 디바이스로 ALIGN 프리미티브를 출력하는 단계를 포함하는, 데이터 전송 레이트 조절을 사용하여 직렬 ATA 접속들에 대한 데이터 전송들을 수행하는 방법을 포함한다.
다음의 설명에서, 본 발명의 보다 완전한 이해를 제공하기 위해 다수의 특정 상세들이 설명된다. 그러나, 본 발명이 하나 이상의 이러한 특정 상세들없이 실행될 수 있다는 것은 본 기술분야의 통상의 기술자에게 명백할 것이다. 다른 예들에서, 공지된 특징들은 본 발명을 모호하게 하는 것을 피하기 위해 설명되지 않는다.
현재의 발명은 SATA 저장 디바이스들에 대한 유효 데이터 전송 레이트를 향상시키기 위한 새로운 시스템들 및 방법들을 포함한다. 유효 데이터 전송 레이트는 데이터가 송신될 때 ALIGN 프리미티브들을 삽입함으로써 감소된다. 수신 디바이스는 ALIGN 프리미티브들을 단순히 폐기한다. 따라서, 수신 데이터 FIFO는 빨리 채워지지 않고, 흐름 제어를 위해 더 적은 R_IP to HOLD to HOLDA to R_IP 시퀀스들이 요구된다. ALIGN 프리미티브들의 장점은, 왕복 핸드셰이크 레이턴시가 데이터 전송들을 디스에이블하게 한 후 인에이블하게 하지 않는다는 것이다. 반대로, 종래의 호스트 제어기는 인터럽트를 발생시키지 않지만 대신 SATA 버스가 이용가능하다면 소프트웨어 개입(intervention) 없이 커맨드를 재발행한다.
도 1은 CPU(120), 매체 및 통신 프로세서(130), SATA 승산기(170), 및 SATA 디바이스들(150, 155, 160 및 165)을 포함하는 본 발명의 하나 이상의 양태들에 따른, 각각의 컴퓨터 시스템인 시스템(100)에 대한 예시적인 실시예의 블록도이다. 본 발명의 일부 실시예들에서, SATA 디바이스들(150, 155, 160 및 165)은 하드 디스크 드라이브들과 같은 대용량 저장 디바이스들이다. SATA 디바이스들(150, 155, 160 및 165)은 SATA 표준에 따르고, 따라서, 종래의 흐름 제어 시그널링에 부가하여 데이터 전송 레이트 조절을 사용하도록 구성될 수 있다. 시스템(100)은, 하드 SATA 디바이스들(150, 155, 160 및 165)로부터 판독되거나 또는 그들에 기입될 수 있는 데이터를 포함하는, CPU(120)에 의해 사용되는 프로그램 및 데이터를 저장하기 위한 시스템 메모리(110)를 포함한다.
시스템(100)은 데스크탑 컴퓨터, 서버, 랩탑 컴퓨터, 손바닥 크기의 컴퓨터, 테블릿(tablet) 컴퓨터, 게임 콘솔, PDA 또는 휴대폰과 같은 휴대용 무선 단말기, 컴퓨터 기반의 시뮬레이터, 등일 수 있다. CPU(120)는 시스템 메모리(110)에 직접 인터페이스 하기 위해 시스템 메모리 제어기를 포함할 수 있다. 본 발명의 대안적인 실시예들에서, CPU(120)는 시스템 인터페이스, 예를 들어, I/O(입력/출력) 인터페이스 또는 브리지 디바이스를 통해 시스템 메모리(110)와 통신할 수 있다.
디바이스 드라이버(112)는 시스템 메모리(110)에 저장된다. 디바이스 드라이버(112)는 시스템 설계자 및/또는 시스템(100)의 제조자에 의해 제공되고, CPU(120)를 운영하는 운영 시스템(도시되지 않음)과 매체 및 통신 프로세서(130) 사이에서 인터페이스하도록 구성된다. 매체 및 통신 프로세서(130)는 CPU(120)와 하드 디스크 드라이브들(150 및 155)과 같은 하나 이상의 하드 디스크 드라이브들 사이에 연결된다. 매체 및 통신 프로세서(130)는 높은 대역폭 프론트 사이드 버스(high bandwidth front side bus)(125)에 의해 CPU(120)에 연결된다. 본 발명의 일부 실시예들에서, 매체 및 통신 프로세서(130)는 PCI(peripheral component interface) 하이퍼전송(HyperTransportTM) 프로토콜을 사용하여 프론트 사이드 버스(125)를 통해 CPU(120)와 인터페이스한다.
매체 및 통신 프로세서(130)는 시스템 메모리(110)와 하나 이상의 하드 디스크 드라이브들 사이에서 데이터 전송들을 용이하게 하고, SATA 링크(175)를 통해 SATA 승산기들(170)에 및 SATA 링크(145)를 통해 하나 이상의 SATA 디바이스들(150, 155, 160 및 165)에 연결된 직렬 ATA 호스트 제어기(140)를 포함한다. SATA 승산기(170) 및 SATA 디바이스들(150, 155, 160 및 165)은 데이터 전송 레이트 조절을 지원하도록 구성된다. SATA 디바이스들(150, 155, 160 및 165) 각각은, 직렬 ATA 호스트 제어기(140)로부터 수신된 데이터의 버퍼링 및 직렬 ATA 호스트 제어기(140)로의 출력을 위한 데이터의 버퍼링을 포함하는, 개별 디스크 내에서 데이터의 저장 및 판독을 제어하는 드라이브 전자기기들을 포함한다. 유사하게, SATA 승산기(170)는 SATA 디바이스(160) 또는 SATA 디바이스(165)로의 출력을 위해 직렬 ATA 호스트 제어기(140)로부터 수신된 데이터를 저장하기 위한 하나 이상의 데이터 FIFO(first-in first-out)를 포함한다. SATA 승산기(170)는 SATA 디바이스들(160 및 165)에 의해 직렬 ATA 호스트 제어기(140)로 출력된 데이터를 저장하기 위한 하나 이상의 데이터 FIFO들도 포함한다.
본 발명의 다른 실시예들에서, 매체 및 통신 프로세서(130)는 USB, AGP 등과 같은 부가적인 포트(port)들을 포함할 수 있다. 각각의 SATA 디바이스(150, 155, 160 및 165)는 대체되거나 또는 제거될 수 있어, 임의의 특정 시간에, 시스템(100)은 더 적거나 또는 많은 SATA 디바이스들을 포함한다.
표 1은 데이터 전송 레이트 조절의 향상된 효율성을 도시하기 위해, 종래의 흐름 제어 교환 및 데이터 전송 레이트 조절을 도시한다. 송신기, 직렬 ATA 호스트 제어기(140) 또는 SATA 디바이스들(150, 155, 160 및 165) 중 하나는, 처음 4개의 전송 사이클 내에서 데이터(N, N+1, N+2 및 N+3)를 출력한다. 종래의 흐름 제어가 수신기에 사용될 때, SATA 디바이스들(150, 155, 160 및 165) 중 하나 또는 직렬 ATA 호스트 제어기(140)는 더 이상 데이터가 송신되어서는 안되는 송신기에, 신호에 대한 (수신 데이터 FIFO가 상위 경계선에 도달되는 것을 나타내는) HOLD 프리미티브를 출력한다. 데이터 전송 레이트 조절이 사용될 때, 수신기는, 송신기가 데이터 전송 레이트를 감소시키기 위해 ALIGN 프리미티브들을 출력하기 때문에, HOLD 프리미티브를 송신할 필요가 없다. 따라서, 수신 데이터 FIFO는 상위 경계선에 도달되지 않는다.
이러한 예에서, HOLD 프리미티브는, 그것이 수신기에 의해 출력된 후, 4개의 전송 사이클들에서 송신기에 의해 수신된다. 송신기는, 데이터 대신 HOLDA(hold acknowledge) 프리미티브들을 수신기에 송신함으로써 HOLD 프리미티브에 응답한다. 수신기는, HOLDA가 (4개의 전송 사이클들 이후) 수신될 때까지 HOLD 프리미티브들의 출력을 계속하고, 그 후, 수신 데이터 FIFO가 하위 경계선 레벨로 빠지기(drain) 때문에, 수신기는 데이터가 수신될 수 있다는 것을 나타내기 위해 R_IP 프리미티브들을 출력한다. 송신기는 R_IP 프리미티브가 (4개의 전송 사이클들 이후) 수신될 때까지, HOLDA 프리미티브들을 계속 출력하고, 그 후 송신기는 수신기로의 데이터 출력을 재시작한다.
반대로, 데이터 전송 레이트 조절이 사용될 때, 8개의 전송 사이클들의 왕복 레이턴시는 데이터 전송 레이트에 영향을 미치지 않는다. 많은 종래 시스템들에서, 왕복 레이턴시는 8개의 전송 사이클들보다 커서, 데이터 전송 레이트는, 종래 흐름 제어가 사용될 때 심지어 더 감소될 수 있다. 다행히도, 왕복 레이턴시는 SATA 사양(specification)에 의해 최대 32개의 전송 사이클들로 제한된다. 그러나, 표 1에 도시된 바와 같이, 유효 데이터 전송 레이트는 데이터 수신 FIFO를 오버플로잉하는 것을 피하기 위해 종래 흐름 제어를 사용하는 대신 데이터 전송 레이트 조절을 사용함으로써 향상될 수 있다. 특히, 표 1에 도시된 13개의 전송 사이클들 동안, 데이터는 데이터 전송 레이트 조절을 사용하는 데이터 전송의 9개의 사이클들과 비교하여 종래 흐름 제어를 사용하는 5개의 사이클들 동안 전송된다.
Figure 112008087434334-pat00001
SATA 사양은 클록-복구(recovery)를 위해 256 데이터 전송들 각각에 대해 2개의 ALIGN 프리미티브들을 송신할 것을 요구한다. 그러나, 부가적인 ALIGN 프리미티브들의 출력을 방지하는 제한은 존재하지 않는다. ALIGN 프리미티브들은 링크 및 전송층 상태 머신들에 의해 무시되고 물리층에 의해 흡수된다. 따라서, ALIGN 프리미티브들은 데이터 전송 레이트를 감소시키고, 종래의 흐름 제어 메커니즘(R_IP to HOLD to HOLDA to R_IP 시퀀스)을 사용할 필요를 최소화하는데 사용될 수 있다. ALIGN 프리미티브들이, 송신 디바이스의 데이터 전송 레이트를 수신 디바이스의 지속 데이터 전송 레이트와 매칭되도록 하는 속도에서 삽입될 때, 종래 흐름 제어는 최소화되고 가장 큰 가능한 유효 데이터 전송 레이트가 달성된다.
통상 CPU(120)가 SATA 디바이스들(150, 155, 160 및 165)과 비교하여 더 높은 데이터 전송 레이트를 갖더라도, 직렬 ATA 호스트 제어기(140)가 송신 디바이스이거나 또는 SATA 디바이스들(150, 155, 160 및 165)이 송신 디바이스들일 때, 데이터 전송 레이트를 약하게 하는 데이터 전송 조절 기술을 사용하는 것이 가능하다는 것을 주목한다. 중요하게, SATA 사양에 따르는 디바이스들은 임의의 수정 없이 수신 디바이스로서의 기능을 할 수 있다. 송신 디바이스들은, 데이터 전송 레이트를 조절하기 위해, 도 1b 및 도 2와 관련하여 기술된 바와 같이, ALIGN 프리미티브들을 삽입하도록 구성된다.
도 1b는 본 발명의 하나 이상의 양태들에 따른, 도 1a의 SATA 디바이스(150)의 블록도이다. SATA 디바이스(150)와 관련하여 기술된 구성요소들 모두 또는 일부는 또한, 직렬 ATA 호스트 제어기(140), SATA 승산기(170), SATA 디바이스들(155, 160 및 165) 내에서 데이터 전송 레이트 조절을 수행하는데 사용될 수 있다. SATA 디바이스(150)는 저장소(195), 유한 상태 머신(190), 수신 (데이터) FIFO(185), 송신 (데이터) FIFO(185) 및 조절 값들(180)을 포함한다. 유한 상태 머신(190)은 도 2 및 3과 관련하여 기술된 송신 데이터 상태 및 Rcv(수신) 데이터 상태를 포함하는 SATA 프로토콜을 구현한다. 수신 FIFO(185)는 SATA 링크(145)를 통해 수신된 데이터를 저장하고, 저장소(195)에서의 저장을 위해 그 데이터를 버퍼링한다. 송신 FIFO(187)는 SATA 링크(145)를 통한 출력을 위해 데이터를 저장하고 저장소(195)로부터 판독된 그 데이터를 버퍼링한다. 일부 디바이스들에서, SATA 승산기(170) 및 직렬 ATA 호스트 제어기(140)와 같은 저장소(195)는 그러한 디바이스들이 SATA 통신을 위한 라우팅 기능들을 수행하기 때문에 생략된다.
조절 값들(180)은 SATA 디바이스(150)에 의해 출력된 데이터 스트림에 ALIGN 프리미티브들을 삽입하는데 사용되는 정보를 저장하는 레지스터들이다. 조절 값들은 삽입될 다수의 ALIGN 프리미티브들 및 유한 상태 머신(190)에 의해 유지되는 데이터 카운트와 비교하기 위한 데이터 카운트 임계 값을 포함할 수 있다. 조절 값들은 디바이스 드라이버(112)에 의해 고정되거나 또는 프로그램될 수 있다. 시스템(100)의 SATA 디바이스 각각에 대한 유효 데이터 전송 레이트를 최대화하기 위해, 조절 값들은 수신 디바이스 각각에 대해 프로그램될 수 있다.
도 2는 본 발명의 하나 이상의 양태들에 따른, 송신 데이터 상태에서 데이터 전송 레이트 조절을 수행하는 방법에 대한 예시적인 실시예이다. 도 2의 방법은 직렬 ATA 호스트 제어기(140), SATA 승산기(170), 및 SATA 디바이스들(150, 155, 160 및 165)에 의해 수행될 수 있는 프로토콜의 실시예를 도시한다. 단계(200)에서, 유한 상태 머신(190)은, 데이터가 SATA 링크(145)를 통해 출력되는 것이 가능하기 때문에, 송신 데이터 상태로 들어간다. 단계(205)에서, 유한 상태 머신(190)은, 모든 프레임 데이터가 전송되었는지를 결정하고, 만일 그렇다면, 단계(210)에서, 유한 상태 머신(190)은 송신 CRC(SendCRC) 상태로 들어간다. SendCRC 상태는 SATA 사양에 기술된다.
만일, 단계(205)에서, 유한 상태 머신(190)이 모든 프레임 데이터가 전송되지 않았다는 것을 결정하면, 그 후, 단계(215)에서, 유한 상태 머신(190)은, SYNC가 물리(Phy)층으로부터 수신되는지 결정하고, 만일 그렇다면, 단계(220)에서, 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이, 유휴(IDLE) 상태로 들어간다. 만일 그렇지 않으면, 유한 상태 머신(190)은, 상태(225)에서 Phy층이 준비되지 않는지 결정한다. 단계(225)에서, 유한 상태 머신(190)이, 물리층이 준비되지 않은 것으로 결정하면, 그 후, 단계(230)에서 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이, NoCommErr 상태(230)로 들어간다. 만일 그렇지 않으면, 단계(235)에서, 유한 상태 머신(190)은 탈출 전류(escape current) 프레임 전송이 수신되는지 결정한다. 탈출 전류 프레임 전송이 수신되면, 그 후, 단계(240)에서 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이, SyncEscape 상태로 들어간다. 만일 그렇지 않으면, 단계(245)에서 유한 상태 머신(190)은, HOLD 프리미티브가 수신되는지 결정하고, 만일 그렇다면, 그 후, 단계(250)에서, 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이, RcvHold 상태로 들어간다.
단계(245)에서, 유한 상태 머신(190)이, HOLD 프리미티브가 수신되지 않은 것으로 결정하면, 그 후, 단계(255)에서, 유한 상태 머신(190)은, 송신 데이터 FIFO가 비어있는지 결정한다. 송신 데이터 FIFO가 비어있다면, 그 후, 단계(260)에서, 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이, SendHold 상태로 들어간다. 만일 그렇지 않으면, 단계(265)에서, 유한 상태 머신(190)은, 수신기에 대한 데이터 전송 레이트를 감소시키기 위해 ALIGN 프리미티브가 삽입되어야 하는지 결정한다.
유한 상태 머신(190)은 ALIGN 프리미티브들 사이에서 발생되는 데이터 전송 사이클들의 수의 데이터 카운트를 유지한다. 데이터 전송 사이클은, 데이터가 수신기로 출력되는 동안의, 전송 사이클, 예를 들어, 클록 사이클 또는 고정된 수의 클록 사이클들이다. 본 발명의 일부 실시예들에서, 단일 ALIGN 프리미티브는 2개의 데이터 전송 사이클들 사이에 삽입되고, 본 발명의 다른 실시예들에서, 다중 ALIGN 프리미티브들은 2개의 데이터 전송 사이클들 사이에 삽입된다. 삽입되는 ALIGN 프리미티브들의 수는 조절 값들(180)에 의해 특정될 수 있다. ALIGN 프리미티브들 사이의 데이터 전송 사이클들의 수는 조절 값들(180)에 의해 특정된다.
단계(265)에서, 유한 상태 머신(190)이, ALIGN 프리미티브가 삽입되지 않아야 하는 것으로 결정한다면, 그 후, 단계(280)에서, 유한 상태 머신(190)은, SATA 링크(145)를 통해 송신 FIFO(187)로부터 수신기로 출력되는(갑자기 움직이는(popped)) 데이터를 전송한다. 단계(285)에서, 유한 상태 머신(190)은 데이터 카운트를 증가시킨다. 단계(265)에서, 유한 상태 머신(190)이, ALIGN 프리미티브가 삽입되어야 한다고 결정하면, 그 후, 단계(270)에서, 유한 상태 머신(190)은 데이터 카운트를 재설정(reset)한다. 단계(275)에서, 유한 상태 머신(190)은 조절 값들(180)에 기초하여 하나 이상의 ALIGN 프리미티브들을 출력한다. 본 발명의 일부 실시예들에서, 새로운 상태, "삽입 ALIGN(s)"는 SATA 링크 전송 상태 도면에 포함된다. 유한 상태 머신(190)은 단계(270 및 275)를 완료하기 위해 삽입 ALIGN(s) 상태에 들어가고, 그 후, 송신 데이터 상태로 되돌아 간다.
도 3은 본 발명의 하나 이상의 양태들에 따른, Rcv(수신) 데이터 상태에서 데이터 전송 레이트 조절을 수행하는 방법에 대한 예시적인 실시예이다. 도 3의 방법은 직렬 ATA 호스트 제어기(140), SATA 승산기(170), 및 SATA 디바이스들(150, 155, 160 및 165)에 의해 수행될 수 있는 프로토콜의 실시예를 도시한다. 단계(300)에서, 유한 상태 머신(190)은, 데이터 또는 프리미티브가 SATA 링크(145)를 통해 수신되기 때문에, Rcv 데이터 상태로 들어간다. 단계(305)에서, 유한 상태 머신(190)은, EOF(end of frame)가 수신되는지 결정하고, 만일 그렇다면, 그 후 단계(303)에서, 유한 상태 머신(190)은 RcvEOF 상태로 들어간다. RcvEOF 상태는 SATA 사양에 기술된다.
단계(301)에서, 유한 상태 머신(190)이, EOF가 수신되지 않은 것으로 결정하면, 그 후, 단계(305)에서, 유한 상태 머신(190)은, WTRM이 phy층으로부터 수신되는지 결정한다. WTRM이 수신되면, 그 후, 단계(310)에서, 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이, BadEnd 상태로 들어간다. 만일 그렇지 않으면, 단계(315)에서, 유한 상태 머신(190)은, SYNC가 phy층으로부터 수신되는지 결정하고, 만일 그렇다면, 그 후, 단계(320)에서, 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이, 유휴(IDLE) 상태로 들어간다. 만일 그렇지 않으면, 유한 상태 머신(190)은, 단계(325)에서 phy층이 준비되지 않는지 결정한다. 단계(325)에서, 유한 상태 머신(190)이, phy층이 준비되지 않은 것으로 결정하면, 그 후 ,단계(330)에서, 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이, NoCommErr 상태로 들어간다. 만일 그렇지 않으면, 단계(335)에서, 유한 상태 머신(190)은, 탈출 전류 프레임 전송이 수신되는지 결정한다. 탈출 전류 프레임 전송이 수신되면, 그 후, 단계(340)에서, 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이, SyncEscape에 들어간다. 만일 그렇지 않으면, 단계(345)에서, 유한 상태 머신(190)은, HOLD 프리미티브가 수신되는지 결정하고, 만일 그렇다면, 단계(350)에서, 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이 RcvHold 상태에 들어간다.
단계(345)에서, 유한 상태 머신(190)이, HOLD 프리미티브가 수신되지 않은 것으로 결정하면, 그 후, 단계(355)에서, 유한 상태 머신(190)은, 수신 FIFO(185)가 상위 경계선(high water mark, HWM)에 도달하는지 결정한다. 수신 FIFO(185)가 HWM에 도달되면, 그 후, 단계(360)에서, 유한 상태 머신(190)은 SATA 사양에 의해 특정된 바와 같이, Hold 상태로 들어간다. 만일 그렇지 않으면, 단계(365)에서, 유한 상태 머신(190)은, ALIGN 프리미티브가 수신되는지 결정하고, 만일 그렇다면, 단계(370)에서, 유한 상태 머신(190)은 ALIGN 프리미티브를 폐기, 즉, ALIGN 프리미티브를 수신 FIFO(185)에 입력하지 않는다. 단계(365)에서, 유한 상태 머신(190)이, ALIGN 프리미티브가 수신되지 않은 것으로 결정하면, 그 후, 데이터가 수신되고, 단계(375)에서, 유한 상태 머신(190)은 그 데이터(입력들)를 수신 FIFO(185)에 저장한다.
본 기술분야의 통상의 기술자들은, 도 2 또는 3의 방법 단계들 또는 그들의 균등물들을 수행하도록 구성된 임의의 시스템이 본 발명의 범위 내에 있다는 것을 이해할 것이다. 데이터 전송 레이트는, 데이터가 수신기의 데이터 전송 레이트보다 더 높은 데이터 전송 레이트로 송신기로부터 송신될 때, ALIGN 프리미티브들을 삽입함으로써 저하된다. 수신 디바이스는 단순히 ALIGN 프리미티브들을 폐기한다. 따라서, 수신 데이터 FIFO는 빨리 채워지지 않고, 보다 적은 종래의 높은 레이턴시 흐름 제어 시퀀스들은 수신 데이터 FIFO를 오버플로잉하는 것을 피하도록 요구된다. 종래 흐름 제어 시퀀스들의 수를 감소시키는 것은 SATA 사양 내에서 동작하면서 유효 데이터 전송 레이트를 향상시킨다.
전술한 내용은 본 발명의 실시예들에 대한 것이지만, 본 발명의 다른 또는 추가 실시예들은 본 발명의 기본 범위에서 벗어남 없이 고안될 수 있고, 본 발명의 범위는 다음의 특허청구범위들에 의해 결정된다. 따라서, 전술한 설명 및 도면들은, 제한적인 면보다는 오히려 예시적으로 참조될 것이다. 방법 청구항들의 나열된 단계들은, 특허청구범위에서 명확히 언급되지는 않았지만, 임의의 특정 순서로 단계들을 수행하는 것을 내포하지 않는다.
모든 상표(trademark)들은 그 소유자들의 개별 자산이다.
본 발명의 상술된 특징들이 상세히 이해될 수 있도록, 상기 간단히 요약된 본 발명에 대한 보다 구체적인 설명이, 첨부된 도면들에 도시된 일부인 실시예들을 참조할 수 있다. 그러나, 첨부된 도면들은 본 발명의 통상의 실시예들만을 도시할 뿐, 본 발명에 대한 범위를 제한하는 것으로 고려되지 않고 다른 동일한 균등한 실시예들을 허여할 수 있다는 것을 주목한다.
도 1a는 본 발명의 하나 이상의 양태들에 따른 CPU 및 SATA 디바이스들을 포함하는 각각의 컴퓨터 시스템의 예시적인 실시예 및 블록도이다.
도 1b는 본 발명의 하나 이상의 양태들에 따른 도 1a의 SATA 디바이스의 블록도이다.
도 2는 본 발명의 하나 이상의 양태들에 따른 송신 데이터 상태에서 데이터 전송 레이트 조절을 수행하는 방법에 대한 예시적인 실시예이다.
도 3은 본 발명의 하나 이상의 양태들에 따른 Rcv 데이터 상태에서 데이터 전송 레이트 조절을 수행하는 방법에 대한 실시예이다.
<도면의 주요 부분에 대한 부호의 설명>
110: 시스템 메모리
112: 디바이스 드라이버
120: CPU
130: 매체 및 통신 프로세서
140: 직렬 ATA 호스트 제어기
145, 175: SATA 링크
150, 155, 160, 165: SATA 디바이스들
170: SATA 승산기

Claims (20)

  1. 데이터 전송 레이트 조절(data transfer rate throttling)을 사용하여 직렬 ATA 접속들에 대한 데이터 전송들을 수행하는 방법으로서,
    송신 디바이스와 수신 디바이스 사이의 직렬 ATA 접속을 통한 출력을 위해 데이터가 이용가능할 때 송신 데이터 상태로 들어가는 단계 - 상기 송신 디바이스는 상기 송신 디바이스에 의해 출력되는 데이터 스트림 내의 ALIGN 프리미티브들의 삽입을 제어하기 위해 사용되는 조절 값들을 저장하는 조절 값 레지스터, 및 송신 데이터 상태 및 수신 데이터 상태를 유지하는 유한 상태 머신을 포함함 - ;
    상기 조절 값들에 기초하여 상기 직렬 ATA 접속을 통한 상기 데이터 전송 레이트를 감소시키기 위해, ALIGN 프리미티브가 데이터 대신 출력되어야 하는 지의 여부를 결정하는 단계; 및
    상기 ALIGN 프리미티브가 출력되어야 한다고 결정되면, 상기 직렬 ATA 접속을 통해 상기 송신 디바이스로부터 상기 수신 디바이스로 상기 ALIGN 프리미티브를 출력하는 단계
    를 포함하는 데이터 전송 수행 방법.
  2. 제1항에 있어서,
    상기 직렬 ATA 접속을 통한 상기 데이터 전송 레이트를 더 감소시키기 위해, 추가 ALIGN 프리미티브들을 출력하는 단계를 더 포함하는 데이터 전송 수행 방법.
  3. 제2항에 있어서,
    상기 추가 ALIGN 프리미티브들의 양(quantity)은, 상기 수신 디바이스의 데이터 전송 레이트가 상기 송신 디바이스의 데이터 전송 레이트보다 작을 때, 상기 수신 디바이스의 데이터 전송 레이트에 기초하는 데이터 전송 수행 방법.
  4. 제1항에 있어서,
    상기 결정하는 단계는, 상기 수신 디바이스의 데이터 전송 레이트가 상기 송신 디바이스의 데이터 전송 레이트보다 작을 때, 상기 수신 디바이스의 데이터 전송 레이트에 기초하는 데이터 전송 수행 방법.
  5. 제1항에 있어서,
    상기 ALIGN 프리미티브가 출력될 때 데이터 카운트(count)를 재설정(reset)하는 단계를 더 포함하고, 상기 데이터 카운트는 ALIGN 프리미티브들 사이에서 발생된 데이터 전송 사이클들의 양을 트래킹(track)하는 데이터 전송 수행 방법.
  6. 제5항에 있어서,
    상기 조절 값들에 기초하여 ALIGN 프리미티브가 상기 송신 디바이스로부터 상기 수신 디바이스로 출력되지 않아야 한다고 결정되면,
    상기 수신 디바이스에 상기 데이터를 출력하는 단계; 및
    상기 데이터 카운트를 증가시키는 단계
    를 더 포함하는 데이터 전송 수행 방법.
  7. 제1항에 있어서,
    상기 수신 디바이스는 상기 ALIGN 프리미티브를 폐기하는 데이터 전송 수행 방법.
  8. 제1항에 있어서,
    상기 송신 디바이스는 직렬 ATA 호스트 제어기이고, 상기 수신 디바이스는 직렬 ATA 저장 디바이스인 데이터 전송 수행 방법.
  9. 제1항에 있어서,
    상기 송신 디바이스는 직렬 ATA 저장 디바이스이고, 상기 수신 디바이스는 직렬 ATA 호스트 제어기인 데이터 전송 수행 방법.
  10. 컴퓨팅 디바이스에 의해 실행될 때, 직렬 ATA 디바이스가 데이터 전송 레이트 조절을 수행하도록 구성된 프로그램을 포함하는 컴퓨터 판독가능한 매체로서,
    상기 프로그램은,
    송신 디바이스와 수신 디바이스 사이의 직렬 ATA 접속을 통한 출력을 위해 데이터가 이용가능할 때 송신 데이터 상태로 들어가는 단계 - 상기 송신 디바이스는 상기 송신 디바이스에 의해 출력되는 데이터 스트림 내의 ALIGN 프리미티브들의 삽입을 제어하기 위해 사용되는 조절 값들을 저장하는 조절 값 레지스터, 및 송신 데이터 상태 및 수신 데이터 상태를 유지하는 유한 상태 머신을 포함함 - ;
    상기 조절 값들에 기초하여 상기 직렬 ATA 접속을 통한 상기 데이터 전송 레이트를 감소시키기 위해, ALIGN 프리미티브가 데이터 대신 출력되어야 한다는 것을 결정하는 단계; 및
    상기 직렬 ATA 접속을 통해 상기 송신 디바이스로부터 상기 수신 디바이스로 상기 ALIGN 프리미티브를 출력하는 단계
    를 포함하는 컴퓨터 판독가능한 매체.
  11. 데이터 전송 레이트 조절을 사용하여 직렬 ATA 접속을 통해 데이터 전송들을 수행하기 위한 시스템으로서,
    상기 시스템은,
    송신 디바이스 - 상기 송신 디바이스는
    상기 송신 디바이스에 의해 출력되는 데이터 스트림 내의 ALIGN 프리미티브들의 삽입을 제어하기 위해 사용되는 조절 값들을 저장하는 조절 값 레지스터, 및
    송신 데이터 상태 및 수신 데이터 상태를 유지하는 유한 상태 머신을 포함하고,
    상기 송신 디바이스는
    상기 직렬 ATA 접속을 통한 출력을 위해 데이터가 이용가능할 때 송신 데이터 상태로 들어가고,
    상기 조절 값들에 기초하여 상기 직렬 ATA 접속을 통한 상기 데이터 전송 레이트를 감소시키기 위해, ALIGN 프리미티브가 데이터 대신 출력되어야 한다는 것을 결정하고,
    상기 ALIGN 프리미티브를 수신 디바이스에 출력하도록 구성됨 - ; 및
    상기 송신 디바이스로부터 수신된 데이터를 저장하고, 상기 ALIGN 프리미티브를 폐기하도록 구성된 상기 수신 디바이스
    를 포함하는 시스템.
  12. 삭제
  13. 제11항에 있어서,
    상기 조절 값들은 연속적인(consecutive) 데이터 전송 사이클들에 출력되는 ALIGN 프리미티브들의 양을 특정(specify)하는 시스템.
  14. 제11항에 있어서,
    상기 조절 값들은 상기 직렬 ATA 접속을 통한 상기 데이터 전송 레이트를 조절하기 위해 ALIGN 프리미티브를 출력하지 않고 데이터를 출력할 수 있는 연속적인 데이터 전송 사이클들의 최대 수를 특정하는 시스템.
  15. 제11항에 있어서,
    상기 송신 디바이스는, 가장 최근에 출력된 ALIGN 프리미티브에 따라 발생된 다수의 데이터 전송 사이클들을 타나내는 데이터 카운트를 유지하도록 더 구성되는 시스템.
  16. 제15항에 있어서,
    상기 송신 디바이스는, ALIGN 프리미티브가 출력될 때, 상기 데이터 카운트를 재설정하고, 데이터가 출력되는 각각의 데이터 전송 사이클 동안 데이터 카운트를 증가시키도록 더 구성되는 시스템.
  17. 제11항에 있어서,
    상기 송신 디바이스는 직렬 ATA 호스트 제어기이고, 상기 수신 디바이스는 상기 직렬 ATA 호스트 제어기의 데이터 전송 레이트보다 작은 데이터 전송 레이트를 갖는 직렬 ATA 저장 디바이스인 시스템.
  18. 제11항에 있어서,
    상기 송신 디바이스는 직렬 ATA 저장 디바이스이고, 상기 수신 디바이스는 상기 직렬 ATA 저장 디바이스의 데이터 전송 레이트보다 작은 데이터 전송 레이트를 갖는 직렬 ATA 호스트 제어기인 시스템.
  19. 제11항에 있어서,
    상기 송신 디바이스는 직렬 ATA 승산기이고, 상기 수신 디바이스는 직렬 ATA 저장 디바이스인 시스템.
  20. 제11항에 있어서,
    상기 송신 디바이스는 직렬 ATA 호스트 제어기이고, 상기 수신 디바이스는 직렬 ATA 승산기인 시스템.
KR1020080130195A 2007-12-20 2008-12-19 직렬 인터페이스 대용량 저장 디바이스들에 대한 데이터 전송 레이트 조절 KR101037851B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/961,573 2007-12-20
US11/961,573 US7747796B1 (en) 2007-12-20 2007-12-20 Control data transfer rates for a serial ATA device by throttling values to control insertion of align primitives in data stream over serial ATA connection

Publications (2)

Publication Number Publication Date
KR20090067110A KR20090067110A (ko) 2009-06-24
KR101037851B1 true KR101037851B1 (ko) 2011-05-31

Family

ID=40805378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080130195A KR101037851B1 (ko) 2007-12-20 2008-12-19 직렬 인터페이스 대용량 저장 디바이스들에 대한 데이터 전송 레이트 조절

Country Status (5)

Country Link
US (1) US7747796B1 (ko)
JP (1) JP4902624B2 (ko)
KR (1) KR101037851B1 (ko)
CN (1) CN101464780B (ko)
TW (2) TWI398777B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012109078A2 (en) 2011-02-08 2012-08-16 Lsi Corporation Selective enablement of operating modes or features via host transfer rate detection
US8930563B2 (en) 2011-10-27 2015-01-06 Microsoft Corporation Scalable and extendable stream processing
US8645590B2 (en) * 2012-01-18 2014-02-04 Lsi Corporation Application of alternate align primitives during SAS rate matching to improve continuous adaptation
US9432187B2 (en) 2014-04-24 2016-08-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Data scrambling initialization
CN106354686B (zh) * 2016-08-22 2019-03-26 广州慧睿思通信息科技有限公司 一种基于fpga的sata接口数据流控制器及控制方法
CN112559407B (zh) * 2020-12-22 2021-11-16 无锡众星微系统技术有限公司 Stp链路层状态机优化方法
CN115391244B (zh) * 2022-08-24 2023-06-09 无锡众星微系统技术有限公司 一种sata控制器的流控延时优化方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060087829A (ko) * 2005-01-31 2006-08-03 삼성전자주식회사 오.오.비 신호교환 없이 테스트 할 수 있는 사타 전자장치 및 테스트 방법
KR20060107567A (ko) * 2003-12-30 2006-10-13 인텔 코오퍼레이션 입력되는 직렬 배열 시퀀스의 레이트 검증
US20070233411A1 (en) 2006-03-30 2007-10-04 Fujitsu Limited Method of test of clock generation circuit in electronic device, and electronic device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2495017Y (zh) * 2001-08-29 2002-06-12 记忆科技(深圳)有限公司 一种通用串行总线接口闪存存储器
US7356555B2 (en) * 2002-03-29 2008-04-08 Intel Corporation In-protocol impedance compensation control
US7360010B2 (en) * 2003-04-14 2008-04-15 Copan Systems, Inc. Method and apparatus for storage command and data router
US7373541B1 (en) * 2004-03-11 2008-05-13 Adaptec, Inc. Alignment signal control apparatus and method for operating the same
TWI252471B (en) * 2004-04-30 2006-04-01 Mediatek Inc Method and circuit for reducing SATA data transmission errors by adjusting the period of sending align primitive
KR100606577B1 (ko) * 2004-07-29 2006-07-28 삼성전자주식회사 직렬 에이티에이 인터페이스의 데이터 전송속도 조절장치및 그 방법
US7496700B1 (en) * 2005-01-12 2009-02-24 Pmc-Sierra, Inc. Serial tunneling protocol (STP) flow control in SAS expanders without SATA link state machine
US7634692B2 (en) * 2006-02-10 2009-12-15 Mediatek Inc. SATA primitive prediction and correction
JP4537425B2 (ja) * 2007-06-28 2010-09-01 株式会社日立製作所 ディスクアレイ装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060107567A (ko) * 2003-12-30 2006-10-13 인텔 코오퍼레이션 입력되는 직렬 배열 시퀀스의 레이트 검증
KR20060087829A (ko) * 2005-01-31 2006-08-03 삼성전자주식회사 오.오.비 신호교환 없이 테스트 할 수 있는 사타 전자장치 및 테스트 방법
US20070233411A1 (en) 2006-03-30 2007-10-04 Fujitsu Limited Method of test of clock generation circuit in electronic device, and electronic device

Also Published As

Publication number Publication date
JP2009169939A (ja) 2009-07-30
TWI528183B (zh) 2016-04-01
TW200935237A (en) 2009-08-16
US7747796B1 (en) 2010-06-29
KR20090067110A (ko) 2009-06-24
TWI398777B (zh) 2013-06-11
CN101464780B (zh) 2011-07-06
CN101464780A (zh) 2009-06-24
TW201319819A (zh) 2013-05-16
JP4902624B2 (ja) 2012-03-21

Similar Documents

Publication Publication Date Title
KR101037851B1 (ko) 직렬 인터페이스 대용량 저장 디바이스들에 대한 데이터 전송 레이트 조절
US10802995B2 (en) Unified address space for multiple hardware accelerators using dedicated low latency links
US8352689B2 (en) Command tag checking in a multi-initiator media controller architecture
US8799532B2 (en) High speed USB hub with full speed to high speed transaction translator
EP2423822B1 (en) Methods and apparatus for improved serial advanced technology attachment performance
US9860838B2 (en) Transmitting device, receiving device, communication device, programs, transmission method, and receiving method for wireless communication of continuous data in the form of packets
US7689744B1 (en) Methods and structure for a SAS/SATA converter
CN115499505B (zh) Usb网卡和通信方法
US20050223141A1 (en) Data flow control in a data storage system
US8001285B1 (en) Method and apparatus for reducing host processor activity during interaction with peripheral devices
US20120317380A1 (en) Device and method for a half-rate clock elasticity fifo
WO2018099014A1 (zh) 一种基带中频交互方法、系统及存储介质
US7802031B2 (en) Method and system for high speed network application
US11811897B2 (en) Method for data processing of frame receiving of an interconnection protocol and storage device
US7697555B1 (en) Fibre channel SERDES with elastic transmitter FIFO
US11892927B2 (en) Method for error handling of an interconnection protocol, controller and storage device
US7010579B1 (en) Direct data routing system
US7181551B2 (en) Backward-compatible parallel DDR bus for use in host-daughtercard interface
CN105589820A (zh) 一种数据传输缓冲装置
CN115842872A (zh) 用于互连协议的帧接收的数据处理的方法以及存储设备
CN117290897A (zh) 加解密电路、处理系统及电子设备
CN116208731A (zh) 一种基于Zynq架构的PCIe级联网络端口高速传输方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140508

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150416

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180510

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190430

Year of fee payment: 9