KR20070065846A - 저장 장치들의 시스템을 위한 프로토콜 정의 링크에서 부가메시지들을 전달하기 위한 은닉 채널 - Google Patents

저장 장치들의 시스템을 위한 프로토콜 정의 링크에서 부가메시지들을 전달하기 위한 은닉 채널 Download PDF

Info

Publication number
KR20070065846A
KR20070065846A KR1020060131148A KR20060131148A KR20070065846A KR 20070065846 A KR20070065846 A KR 20070065846A KR 1020060131148 A KR1020060131148 A KR 1020060131148A KR 20060131148 A KR20060131148 A KR 20060131148A KR 20070065846 A KR20070065846 A KR 20070065846A
Authority
KR
South Korea
Prior art keywords
sata
message
messages
protocol
command
Prior art date
Application number
KR1020060131148A
Other languages
English (en)
Other versions
KR101409927B1 (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 KR20070065846A publication Critical patent/KR20070065846A/ko
Application granted granted Critical
Publication of KR101409927B1 publication Critical patent/KR101409927B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/22Arrangements for supervision, monitoring or testing
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

여러 가지 중에서도 프로토콜 지원 링크에서 은닉 통신 채널을 설정하기 위한 통신 장치, SATA 통신 장치, 시스템, 향상된 포트 증배기, 및 방법을 개시한다. 일실시예에서, 통신 장치는 링크 인터페이스 및 부가 메시지 인터페이스를 포함한다. 링크 인터페이스는 표준화된 프로토콜에 따라 링크를 통과하는 데이터 스트림을 액세스하기 위한 링크에 통신 장치를 통신가능하게 연결하도록 구성된다. 부가 메시지 인터페이스는 링크에서 은닉 통신 채널을 설정하기 위해 데이터 스트림 내에서 부가 메시지를 교환하도록 구성된다. 부가 메시지는 프로토콜을 위반하지 않고 표준화된 프로토콜을 보완한다.
통신 링크, 인터페이스, 부가 메시지, 은닉 통신 채널, 프로토콜

Description

저장 장치들의 시스템을 위한 프로토콜 정의 링크에서 부가 메시지들을 전달하기 위한 은닉 채널{COVERT CHANNEL FOR CONVEYING SUPPLEMENTAL MESSAGES IN A PROTOCOL-DEFINED LINK FOR A SYSTEM OF STORAGE DEVICES}
도 1은 본 발명의 적어도 하나의 특정 실시예에 따라 은닉 통신 채널을 설정하는 통신 장치의 블럭도.
도 2는 본 발명의 실시예에 따라 도 1의 부가 메시지 인터페이스의 특정 구현예를 도시하는 도면.
도 3은 본 발명의 실시예에 따라 SATA(Serial Advanced Technology Attachment) 규격과 호환되는 링크에서 은닉 통신 채널을 설정하는 SATA 송수신기를 도시하는 도면.
도 4는 본 발명의 특정 실시예에 따라 은닉 통신 채널을 위한 다운링크를 설정하는 SATA 다운링크 수신기를 도시하는 기능도.
도 5는 본 발명의 특정 실시예에 따라 은닉 통신 채널을 위한 업링크를 설정하기 위한 SATA 업링크 송신기를 도시하는 기능도.
도 6은 본 발명의 적어도 하나의 특정 실시예에 따라 SATA 호환 저장 장치의 시스템을 위한 향상된 저장 관련 기능을 수행하는 향상된 포트 증배기의 블럭도.
도 7은 본 발명의 일실시예에 따라 은닉 통신 채널을 위한 계산 장치에서 다 른 종단을 설정하기 위한 SATA 호스트 송수신기를 도시하는 도면.
도 8은 본 발명의 하나 이상의 실시예에 따라 SATA 패킷의 개시자 또는 타겟 또는 둘 모두로서 동작하기 위한 이중 모드 SATA 송수신기를 도시하는 블럭도.
도 9는 본 발명의 실시예에 따라 개시자-타겟 계층에서 이중 모드 SATA 송수신기의 예시적인 구현을 도시하는 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
102: 호스트
104: 은닉 통신 채널
106: 프로토콜 호환 링크
110: 부가 메시지
120: 저장 장치 시스템
130: 통신 장치
134: 부가 메시지 인터페이스
140: 저장 장치
<관련 출원의 상호참조>
본 출원은 사건번호 제SILI-013/00US호인 2005년 8월 25일에 출원되고 발명의 명칭이 "Smart Scalable Storage Switch Architecture"인 미국 가출원 제 60/711,863호를 참조로서 포함한다.
본 발명은 일반적으로 저장 장치에 관한 것으로서, 보다 구체적으로는 저장 장치의 시스템을 위한 SATA(Serial Advanced Technology Attachment) 링크와 같은 링크에서 은닉 통신 채널을 설정하는 장치에 관한 것이다.
저장 장치 제품을 개발하는데 요구되는 기술적 전문 지식 및 자본 소비를 최소화하기 위해서, 저장 시스템 설계자는 표준화된 통신 프로토콜을 적어도 부분적으로 통상 사용한다. 표준화된 통신 프로토콜은 성능 및 품질에 대한 벤치마크를 설정하기 위한 이동체도 제공한다. 그러나 견고한 프로토콜 표준을 엄격하게 준수하면 표준화된 프로토콜에 의해 향상이 지원될 수 없을 때 혁신을 지연시킬 수 있다. 설명을 위해, SATA 규격이 하나 이상의 저장 장치(예, 하나 이상의 하드 디스크)와의 데이터 전달을 표준화기 위해 개발되었다고 생각하자. SATA 규격은 용이하게 저장 장치를 업그레이드하기 위한 기술은 물론 향상된 성능 및 신뢰성을 사용자에게 제공한다. 또한, SATA 규격은 포트 증배기의 사용을 정의하여 단일 SATA 포트가 다중 드라이버와 통신할 수 있다. 기능적이기는 해도, SATA 규격은 SATA 규격에 의해 지원되지 않는 저장 관련 기능을 수행하기 위해 호스트 컴퓨터와 포트 증배기와 같은 저장 장치 시스템 내의 임의의 지점 사이의 통신 채널을 설정하기 위한 유연함을 제공하지 않는다. 저장 관련 기능을 수행하기 위해 저장 장치 시스템에 명령을 전달하기 위한 통신 채널 없이, 호스트 컴퓨터는 이러한 저장 관련 기능을 구현할 것이 요구된다. 그러므로, 호스트 컴퓨터는 SATA가 제공하는 향상된 성능 또는 신뢰성 특징으로부터 이익을 얻지 못할 것이다.
전술한 바로부터, SATA 프로토콜과 같은 표준화된 통신 프로토콜의 단점을 최소화하는 통신 장치, SATA 통신 장치, 시스템, 향상된 포트 증배기, 및 방법을 제공하는 것이 바람직할 것이다.
본 개시는 여러 가지 중에서도 프로토콜 호환 링크에서 은닉 통신 채널을 설정하는 통신 장치, SATA 통신 장치, 시스템, 향상된 포트 증배기, 및 방법이 개시된다. 일실시예에서, 통신 장치는 링크 인터페이스 및 부가 메시지 인터페이스를 포함한다. 링크 인터페이스는 표준화된 프로토콜에 따라 링크를 통과하는 데이터 스트림을 액세스하기 위해 링크에 통신 장치를 통신가능하게 연결하도록 구성된다. 부가 메시지 인터페이스는 링크에서 은닉 통신 채널을 설정하기 위해 데이터 스트림 내에서 부가 메시지를 교환하도록 구성된다. 부가 메시지는 프로토콜을 위반하지 않고 표준화된 프로토콜을 보완한다.
유리하게, 은닉 통신 채널은 프로토콜 호환 링크 및 종단 장치들 사이에서 프로토콜 호환 메시지를 운반하는 그 능력에 영향을 주거나 방해하지 않고 부가 메시지를 통신한다. 은닉 통신 채널을 형성하기 위해 프로토콜 호환 장치에 변형이 필요하지 않다. 또한, 은닉 통신 채널은 유리하게도 호스트 계산 장치에서가 아니라 저장 장치의 시스템이 향상된 저장 관련 기능을 수행할 수 있게 한다. 이는 호스트 계산 장치의 계산 자원을 아끼는 것뿐만 아니라, 호스트 계산 장치가 향상된 저장 관련 기능을 수행하기 위한 특수 프로그램을 포함할 필요를 방지하기도 한다. 구체적으로, 향상된 저장 관련 기능을 구현하기 위해 특수 운영 체계 또는 장치 드 라이버가 필요하지 않다(즉, 표준 비독점 사용자 응용 프로그램으로 충분하다). 일실시예에서, 부가 메시지는 스트립(striping) 기능, 미러(mirroring) 기능, 접합(concatenating) 기능, 동봉물(enclosure) 관리 기능, 펌웨어 업그레이드 기능, 관리 정책 기능, 임의의 다른 유사 저장 관련 기능과 같은 향상된 저장 관련 기능을 수행하기 위해 호스트 계산 장치로부터 다운스트림으로 임의의 지점까지 부가 명령을 전달할 수 있다.
또한, 호스트와 저장 장치 사이의 SATA 링크를 통해 비SATA 메시지를 통신하는 SATA 통신 장치가 개시된다. SATA 통신 장치는 적어도 비SATA 메시지를 제1 SATA 호환 명령과 연관된 SATA 메시지로부터 검색하도록 구성된 SATA 송수신기를 포함한다. 또한, SATA 송수신기는 제2 SATA 호환 명령과 연관된 SATA 메시지에 비SATA 메시지를 삽입할 수 있다. 일실시예에서, SATA 송수신기는 비SATA 메시지를 호환 SATA 내에 이들을 인코딩하여 송신한다. 이로서, SATA 송수신기는 SATA 통신 장치와 호스트 사이에 비SATA 메시지를 전달하기 위한 은닉 통신 채널을 형성하도록 동작할 수 있다. 유리하게도, 은닉 통신 채널은 SATA 규격을 위반하지 않고 적어도 하나의 SATA 호환 메시지와 함께 SATA 링크를 통해 적어도 하나의 비SATA 메시지를 동시에 전달하도록 구성된다.
또한, SATA 호환 저장 장치의 시스템을 위한 향상된 저장 관련 기능을 수행하는 향상된 포트 증배기(port multiplier)가 개시된다. 향상된 포트 증배기는 은닉 통신 채널을 형성하도록 구성된 SATA 송수신기를 포함한다. 이 채널은 향상된 포트 증배기와 호스트 사이에 비SATA 메시지를 전달한다. 또한, 향상된 포트 증배 기는 비SATA 메시지에 있는 비SATA 명령을 실행하기 위해 구성된 비SATA 메시지 실행부를 포함한다. 이로서, 향상된 포트 증배기는 SATA 호환 저장 장치의 시스템 내에서 향상된 저장 관련 기능을 수행할 수 있다. 다양한 실시예에서, 향상된 포트 증배기는 비SATA 메시지를 암호화하는 것은 물론 다른 향상된 포트 증배기와 통신할 수도 있다.
도 1은 본 발명의 적어도 일실시예에 따라 은닉 통신 채널을 설정하기 위한 통신 장치의 블럭도(100)이다. 개념적으로, 통신 장치(130)는 호스트 계산 장치("호스트")(102)의 호스트 버스 어댑터(미도시)와 저장 장치(140)의 시스템("저장 장치 시스템)(120) 내 임의의 지점 사이에서 프로토콜 호환 링크(106)를 통해 부가 메시지(110)를 전달하기 위한 은닉 통신 채널(104)을 설정한다. 부가 메시지(110)는 프로토콜 호환 링크의 토대가 되는 프로토콜에 의해 정의되지 않은 비호환 메시지이다. 예를 들면, 부가 메시지(110)는 프로토콜에 의해 정의되지 않은 포맷, 송신 또는 기능의 모드를 가질 수 있다. 이로서, 부가 메시지(110)는 향상된 기능성을 제공하기 위해서 특정 프로토콜을 보완 또는 보충한다. 따라서, 본 명세서에서 사용된 "은닉"이라는 용어는 프로토콜 호환 장치 사이에 비호환 메시지를 전달할 목적으로 프로토콜 호환 링크(106)에 놓인 통신 채널을 지칭할 수 있다.
유리하게도, 은닉 통신 채널(104)은 호스트 계산 장치(102)와 임의의 저장 장치(140)를 포함할 수 있는 종단 장치들 사이에서 프로토콜 호환 링크(106) 및 프로토콜 호환 메시지를 전달하는 그 능력에 영향을 주거나 방해하지 않고 부가 메시 지(110)를 통신한다. 그러므로, 은닉 통신 채널(104)을 형성하기 위해 프로토콜 호환 장치에 변경을 할 필요는 없다. 또한, 은닉 통신 채널(104)은 유리하게도 호스트 계산 장치(102)가 아닌 저장 장치(120)의 시스템이 향상된 저장 관련 기능을 수행할 수 있게 한다. 이는 호스트 계산 장치(102)의 계산 자원을 아낄 뿐만 아니라, 호스트 계산 장치(102)가 향상된 저장 관련 기능을 수행하기 위해 특수한 프로그램을 포함할 필요도 방지한다. 구체적으로, 향상된 저장 관련 기능을 구현하기 위해 특수 운영 체계 또는 장치 드라이버가 요구되지 않는다(즉, 표준 비독점 사용자 응용 프로그램으로 충분하다). 일실시예에서, 부가 메시지(110)는 저장 관련 기능을 수행하기 위해 호스트 계산 장치(102)로부터 다운스트림으로 임의의 지점까지 부가 명령을 전달할 수 있다. 이러한 메시지는 동일하거나 다른 프로토콜을 사용하는 추가 장치로 전달될 수도 있다. 향상된 저장 관련 기능의 예는 스트립(striping) 기능, 미러(mirroring) 기능, 접합(concatenating) 기능, 동봉물(enclosure) 관리 기능, 펌웨어 업그레이드 기능, 관리 정책 기능 및 모든 다른 유사 저장 관련 기능을 포함한다.
도 1에 도시된 것처럼, 프로토콜 호환 링크(106)는 프로토콜이 정의하는 명목상 저장 기능을 수행하기 위해서 호스트 계산 장치(102)를 저장 장치(140)에 연결한다. 저장 장치(104)의 예는 하나 이상의 하드 디스크 드라이브 및 그 안에 기계적, 자기적, 전자적 또는 광학적 수단을 사용하여 데이터를 저장하는 모든 매체를 포함한다. 도면(100)은 은닉 통신 채널(104)을 위한 종단을 형성하는 통신 장치(130)를 도시한다. 통신 장치(130)는 링크 인터페이스(L.I.)(132) 및 부가 메시 지 인터페이스(134)를 포함한다. 링크 인터페이스(132)는 표준화된 프로토콜에 따라 프로토콜 호환 링크를 통과하는 데이터 스트림을 액세스하기 위해 프로토콜 호환 링크(106)에 통신 장치를 통신가능하게 연결한다. 부가 메시지 인터페이스(134)는 프로토콜 호환 링크(106)에 은닉 통신 채널(104)을 설정하기 위해 데이터 스트림과 함께 하나 이상의 부가 메시지(110)를 교환하도록 동작할 수 있다. 명백하게, 은닉 통신 채널(104)은 프로토콜 호환 링크(106)가 연관 표준화 프로토콜과 계속 호환되게 하는 방식으로 부가 메시지를 데이터 스트림에 매입한다. 일정 실시예에서, 프로토콜 호환 링크(106)는 직렬 링크이다. 일부 실시예에서 통신 장치(130)가 호스트 계산 장치(102)의 백플레인(미도시)에 배치될 수 있지만, 통신 장치(130)는 본 발명의 다른 실시예에 따르면 저장 장치(140)의 시스템(120) 내 임의의 지점에 위치될 수 있다. 본 발명의 다양한 실시예에서, 호스트 계산 장치(102)는 통신 장치(130)와 호스트 계산 장치(102) 사이에 양방향 또는 단방향 데이터 스트림을 형성하기 위해서 다른 부가 메시지 인터페이스(134)(또는 그 등가물)를 포함한다.
도 2는 본 발명의 실시예에 따라 도 1의 부가 메시지 인터페이스(134)의 특정 구현예를 도시하는 도면(200)이다. 도면(200)은 프로토콜 호환 링크(206)에서 데이터 스트림(207)과 부가 메시지(또는 그 일부분)를 교환하도록 구성된 부가 메시지 인터페이스(234)를 도시한다. 이 도시에서, 부가 메시지 인터페이스(234)는 프로토콜 호환 메시지 부분(208, 210)과 관련하여 부가 메시지 부분(209)을 식별하기 위해 데이터 스트림(207)을 관찰 또는 "도청"하도록 동작할 수 있다. 부가 메 시지 인터페이스(234)는 식별된 부가 다운링크 메시지(220)(또는 그 일부분)와 같은 부가 메시지 부분(209)을 획득할 수 있다. 부가 메시지 인터페이스(234)는 부가 메시지 부분(209)을 형성하기 위해서 프로토콜 호환 메시지 부분(208, 210) 사이에 부가 업링크 메시지(222)(또는 그 일부분)를 삽입하도록 동작할 수도 있다. 프로토콜 호환 메시지 부분(208, 210)이 동일하거나 다른 프로토콜 호환 메시지일 수 있음을 주의하자. 다양한 실시예에서, 부가 메시지 인터페이스에 의한 부가 메시지의 획득은 프로토콜 호환 링크에 영향을 주지 않는다. 그러므로, 데이터 스트림은 프로토콜 호환 링크(206)의 특정 프로토콜을 변경하지 않으면서 위반하지 않고 부가 메시지 인터페이스(234)를 통과할 수 있다.
적어도 일실시예에서, 프로토콜 호환 링크(206)는 판독(read), 기입(write) 및/또는 식별(identify) 의미를 가지는 프로토콜을 구현한다. 이러한 프로토콜에서, 판독 명령은 저장 장치로부터 데이터를 판독하고, 예를 들면 디스크 주소, 길이, 다른 정보를 규정하기 위해 사용된다. 기입 명령은 저장 장치에 데이터를 저장하기 위해 사용되고 디스크 주소, 길이, 저장될 데이터를 규정할 수 있다. 식별 명령은 저장 장치의 상세내용을 식별하기 위해 사용되고, 그 일련번호, 모델 번호, 타입, 용량, 다른 유사 정보를 저장 장치에 질의할 수 있다.
부가 메시지 인터페이스(234)는 부가 메시지 관찰기(250) 및 부가 메시지 삽입기(260)를 포함한다. 부가 메시지 관찰기(250)는 다운링크 수신기(252) 및 메시지 구성 버퍼(254)를 포함한다. 다운링크 수신기(252)는 부가 메시지 부분(209)을 검출하기 위해서 데이터 스트림(207)을 관찰 또는 도청하도록 구성된다. 명백하 게, 다운링크 수신기(252)는 데이터 스트림(207)을 모니터할 수 있고 데이터 스트림(207)을 변경하거나 왜곡하지 않고 부가 메시지 부분(200)(예, 그 복사와 같이)을 획득할 수 있다. 그러므로, 데이터 스트림(207)은 프로토콜 호환 링크(206)의 프로토콜을 위반하지 않고 다운스트림 장치에 변경되지 않고 통과한다. 특정 실시예에서, 다운링크 수신기(252)는 데이터 스트림(207)에서 프로토콜 호환 메시지의 한가지 타입을 검출하도록 동작할 수 있다. 한가지 타입이 검출되면, 다운링크 수신기(252)는 부가 메시지 부분(209)을 식별하기 위해서 데이터 스트림(207)을 스캔하고, 그 후 식별된 다운링크 메시지(22)가 획득될 수 있다. 일실시예에서, 프로토콜 호환 메시지의 한가지 타입은 저장 장치로부터 정보를 판독하기 위해 통상 사용되는 임의의 "판독" 명령이다. 이러한 명령을 포함하는 프로토콜 호환 메시지가 다운스트림 저장 장치를 변경하지 않을 것이므로 판독 명령은 부가 메시지를 통신하는데 특히 유용하다. 메시지 구성 버퍼(254)는 전체 부가 메시지를 형성하는 식별된 부가 다운링크 메시지(220)의 일부분들을 획득하기 위해서 다운링크 수신기(252)에 연결된다.
부가 메시지 삽입기(260)는 업링크 송신기(260) 및 메시지 응답 버퍼(264)를 포함한다. 메시지 응답 버퍼(264)는 다른 타입의 프로토콜 호환 메시지에 의해 생성된 요청 데이터를 포함하는 부가 응답 메시지(또는 그 일부분)를 유지한다. 업링크 송신기(262)는 부가 메시지 부분(209)을 형성하기 위해서 프로토콜 호환 메시지 부분(208, 210) 사이에 부가 업링크 메시지(222)로서 부가 응답 메시지의 일부분을 삽입하도록 동작할 수 있다. 구체적으로, 업링크 송신기(262)는 메시지 응답 버퍼(264)로부터 부가 업링크 메시지(222)를 페치하여 이를, 예를 들면 호스트 계산 장치로 송신한다. 특정 실시예에서, 업링크 송신기(262)는 프로토콜 호환 메시지의 다른 타입에 응답하여 동작한다. 일실시예에서, 다른 타입의 프로토콜 호환 메시지는 응답 메시지를 리턴하는 비기입 명령이다. 이러한 비기입 명령의 하나는 장치 식별 명령(IDENTIFY DEVICE command)이다.
도 3은 본 발명의 실시예에 따라 SATA 규격과 호환하는 링크에서 은닉 통신 채널을 설정하기 위한 SATA 송수신기를 도시하는 도면(300)이다. 도면(300)은 둘 모두 도시되지 않은 호스트 계산 장치와 저장 장치 사이의 SATA 링크(306)를 통해 비SATA 메시지를 통신하는 SATA 송수신기(350)를 도시한다. 구체적으로, SATA 송수신기(350)는 SATA 다운링크 수신기("Rx"; 360) 및 SATA 업링크 송신기("Tx"; 370)를 포함한다. SATA 다운링크 수신기(360)는 제1 SATA 호환 명령과 연관된 SATA 메시지(302)로부터 비SATA 메시지를 검색하도록 구성된다. 대조적으로, SATA 업링크 송신기(370)는 제2 SATA 호환 명령과 연관된 SATA 메시지(304)에 비SATA 메시지를 삽입하도록 구성된다. 따라서, SATA 송수신기(350)는 SATA 송수신기(350) 또는 SATA 통신 장치와 호스트 계산 장치(미도시) 사이에 비SATA 메시지를 전달하기 위한 은닉 통신 채널을 형성하도록 동작할 수 있다. 그러므로, 은닉 통신 채널은 SATA 메시지(302, 304) 중 적어도 하나와 함께 SATA 링크(306)를 통해 적어도 하나의 비SATA 메시지(또는 그 일부분)를 동시에 전달할 수 있다. 예를 들면, 비SATA 메시지(316)(또는 그 일부분)은 SATA 메시지(302)와 함께 링크(306)를 동시에 통과할 수 있고, 비SATA 메시지(326)(또는 그 일부분)는 SATA 메시지(304)와 함께 링크(306)를 동시에 통과할 수 있다. SATA 메시지(302) 및 SATA 메시지(304)는 각각 호스트 계산 장치로부터의 다운링크 메시지 및 호스트 계산 장치로 가는 업링크 메시지이다. "SATA"라는 용어는 SATA 규격에 오리건주 포틀랜드의 직렬 ATA 국제기구(SATA-IO)에 의해 기술된 프로토콜을 지칭한다.
도 3에 도시된 것처럼, SATA 다운링크 수신기(360)는 비SATA 메시지(380)를 생성하기 위한 비SATA 메시지 구성 버퍼(362) 및 비SATA 메시지 검증부(364)를 포함한다. 일실시예에서, 전술한 제1 SATA 호환 명령은 판독 명령이고 전술한 제2 SATA 호환 메시지는 장치 식별 명령이다. 또한, SATA 메시지(302)는 각각이 SATA 규격에 기술된 다수의 필드(314)를 포함하는 하나 이상의 SATA 패킷(310)을 포함할 수 있다. 동작에서, SATA 다운링크 수신기(360)는 명령 필드(312)의 판독 명령과 같은 제1 SATA 호환 명령을 검출하기 위해 동작한다. 그리고 나서, SATA 다운링크 수신기(360)는 SATA 패킷(310)으로부터 메시지 필드(314)의 적어도 한 부분(316)을 검색한다. 특정 실시예에서, 메시지 필드(314)의 부분(316)은, 예를 들면 논리적 블럭 주소(LBA)의 일부일 수 있다. 비SATA 메시지 구성 버퍼는 전체 비SATA 메시지(380)를 형성하기 위한 메시지 필드(314)의 부분(316)을 축적하도록 구성된다. 비SATA 메시지 검증부(364)는 비SATA 메시지(380)가 유효한지 검증하도록 구성된다. 일부 실시예에서, SATA 패킷(310) 용어는 프레임 정보 구조(FIS)를 일반적으로 지칭한다.
도 3을 더 참조하면, SATA 업링크 송신기(370)는 둘 다 비SATA 응답 메시지를 링크(306)에 도입하기 위해 사용되는 업링크 삽입기(372) 및 비SATA 메시지 응 답 버퍼(374)를 포함한다. SATA 메시지(304)는 각각이 SATA 규격에 의해 정의되는 다수의 필드(324)를 포함하는 하나 이상의 SATA 패킷(320)을 포함할 수 있다. 동작에서, SATA 업링크 송신기(370)는 명령 필드(312)의 장치 식별 명령과 같은 SATA 호환 명령의 수신을 검출한다. 그리고 나서, SATA 업링크 송신기(370)는 메시지 필드(326)에 비SATA 응답 메시지(390)의 적어도 한 부분을 삽입하여 응답한다. 특정 실시예에서, 메시지 필드(326)(또는 그 일부분)는, 예를 들면 판매자 특정 필드일 수 있다. 비SATA 메시지 응답 버퍼(374)는 비SATA 응답 메시지(390)의 적어도 한 부분을 유지하도록 구성된다. 비SATA 메시지 응답 버퍼(374)는 장치 식별 명령을 포함하는 다른 SATA 메시지를 수신하는 SATA 송수신기(350)에 응답하여 비SATA 응답 메시지(390)의 일부분을 업링크 삽입기(372)에 준다. 예를 들면, 다른 SATA 메시지의 수신은 업링크 삽입기(372)를 활성화시키는 장치 식별 명령 수신 표시 신호(352)를 생성할 수 있다. SATA 규격 자체는 SATA 업링크 송신기(370)를 불가피하게 제한하여 비SATA 응답 메시지(390)를 비동기식으로 송신할 수 없음을 주의하자. 이로서, 호스트는 SATA 메시지(302)의 장치 식별 명령을 송신하여 비SATA 응답 메시지(390)를 "요청"한다. SATA 송수신기(350)에서 수신되면, 장치 식별 명령 수신 표시 신호(352)는 비SATA 응답 메시지(390)의 일부분의 삽입을 개시하기 위해 트리거된다.
도 4는 본 발명의 특정 실시예에 따라 은닉 통신 채널을 위해 다운링크를 설정하기 위한 SATA 다운링크 수신기의 기능을 도시하는 기능도이다. 구체적으로, SATA 다운링크 수신기(410)는 SATA 링크로부터 비SATA 메시지를 획득하여 호스트 계산 장치에서 SATA 송수신기(미도시)로 단방향 링크를 형성한다. 도시된 예에서, SATA 다운링크 수신기(410)는 SATA 패킷(402a-402n) 각각을 위한 명령 필드(404)의 판독("RD") 명령을 검출하기 위해 SATA 패킷을 "도청한다". 이 예에서, SATA FIS는 저장 장치와 같은 하나 이상의 다운스트림 장치에 그대로(즉, 프로토콜 호환 메시지를 수정하지 않고) 전달된다. 그리고 나서, SATA 다운링크 수신기(410)는 호스트 계산 장치(미도시)로부터 그 착신지(즉, 저장 장치)로 SATA 패킷(402a-402n)의 송신에 영향을 주지 않고, 예를 들면 메시지 필드(405)의 일부분(406a-406n)으로부터 비SATA 메시지의 일부분을 획득한다(즉, 캡쳐 또는 복사한다). 일실시예에서, 메시지 필드(405)는 데이터를 그곳으로부터 판독하는 디스크 상의 영역을 규정하는 논리적 블럭 주소("LBA")이다. 메시지 필드(405)는 SATA 규격에 의해 지원되는 다양한 크기의 논리적 블럭 주소를 포함할 수 있다.
일례에서, 메시지 필드(405)는 비SATA 메시지를 위해 512 바이트 메시지 바디의 한 부분을 규정하기 위해 사용되는 두 바이트(예, 26 비트)를 가진 48 비트 LBA를 포함한다. 메시지 필드(405)의 다른 단일 바이트(예, 8비트)는 메시지 구성 버퍼(420) 내의 2 바이트를 배치하기 위한 0에서 255까지 오프셋을 규정할 수 있다. 일실시예에서, SATA 다운링크 수신기(410)는 SATA 패킷(402a-402n) 중 임의의 것으로부터 일부분(412)의 데이터(414)처럼 16 비트를 식별하기 위해 동작한다. 또한, 이는 연관된 오프셋(416)으로서 일부분(412)의 8비트를 식별한다. 그러므로, 호스트 계산 장치(미도시)는 저장 장치의 시스템에 다운스트림으로 송신된 각 판독 명령 동안 그 작은 조각(예, 하나 이상의 바이트)을 송신하여 임의의 비SATA 메시지를 SATA 다운링크 수신기(410)로 통신할 수 있다. 구체적으로, 비SATA 메시지는 논리적 블럭 주소 즉 LBA로 인코딩될 수 있다. 도시하기 위해서, SATA 다운링크 수신기(410)가 일부분(412)과 같은 일부분(406c)을 획득한다고 생각하자. 또한, 오프셋(416)이 "2"라고 생각하자. 그러므로, SATA 다운링크 수신기(410)는 메시지 구성 버퍼(420)의 일부분(422)에 데이터(414)를 적층할 것이다. SATA 다운링크 수신기(410)는 비SATA 메시지를 형성하기 위해서 오프셋을 사용하여 메시지 구성 버퍼(420)를 채울 수 있지만, 일실시예에서, 비SATA 메시지는 구성 버퍼의 최종 바이트가 기입될 때마다 형성된다.
메시지 구성 버퍼(420)가 다 찬 후(또는 달리 다른 일정 조건을 만족하면), SATA 다운링크 수신기(410)는 비SATA 메시지(430) 및 선택적 검증값("CRC")(432)을 구현하기 위해서 화살표(424)에서 버퍼를 파싱한다. 다른 SATA 패킷으로부터의 판독 명령은 송신 동안 SATA 패킷(402a-402n)과 섞일 수 있으므로, 호스트로부터의 판독 요청의 랜덤 시퀀스는 실행가능하지만 비적절한 비SATA 메시지(430)를 의도하지 않게 생성할 수 있다. 비적절한 비SATA 메시지(430)는 실행되면 디스크를 손상시킬 수 있지만, 이러한 메시지는 또한 덜 극단적인 결과를 초래할 수 있다. 예를 들면, 비적절한 메시지는 실행될 때 잘못된 저장 장치 구성을 생성하거나 나쁜 정책을 설정하는 것과 같은 비적절한 행동을 수행할 수 있다. 비SATA 메시지 검증부(440)는 비적절한 비SATA 메시지(430)를 검증하기 위해 동작한다. 도시된 예에서, 검증값(432)은 송신 이전에 호스트에서 순환 리던던시 체크("CRC", Cyclic Redundancy Check) 알고리듬에 의해 생성된 CRC 값이다. 검증값(432)과 같은 CRC 값은 비적절한 비SATA 메시지(430)가 사용되지 않음을 확인하기 위해서 메시지(430)의 무결성(integrity)을 검증한다. 비SATA 메시지 검증부(440)는 비SATA 메시지(430)로부터 CRC를 계산하고 결과를 CRC와 비교하도록 동작할 수 있고, 둘의 일치는 송신된 메시지(430)의 유효성을 표시한다. 특정 실시예에서, 32비트 CRC는 랜덤 세트의 판독 요청이 잘못되었지만 유효하게 보이는 패킷이 특정 응용예에 대해 불가능한 것으로 고려될 정도로 충분히 없게 하는 정도로 감소시키기 위해 사용된다.
다른 실시예에서, 비적절한 유효 메시지를 야기할 판독 요청의 시퀀스를 의도하지 않고 생성할 확률은 시도 응답(challenge-response) 기술을 사용하여 감소될 수 있다. 이 경우, SATA 다운링크 수신기(410)는 시도 업링크(미도시)를 포함한다. SATA 다운링크 수신기(410)는 유효한 비SATA 메시지(430)를 형성할 때, 이는 비SATA 메시지(430)의 성공적인 수신을 표시하는, 도 3의 것과 같은, 비SATA 응답 메시지에 시도 토큰(challenge token)을 배치한다. 그리고 나서, 호스트는 시도 토큰에 대해 알려진 응답을 가진 다른 비SATA 메시지(430)를 가지고 응답하여, 원래 비SATA 메시지(430)를 검증한다.
CRC(420)를 계산하면 일부 응용예에서 바람직하지 않은 시간을 소모할 수 있음을 주의하자. 일실시예에서, 비SATA 메시지(430)는 비SATA 메시지 검증부(440)에 의한 검출을 위한 특정 부호를 포함한다. 부호의 정확한 값이 존재하지 않으면, CRC(432)는 계산될 필요가 없어서, 비유효 메시지를 위한 CRC를 계산하는데 들 시간을 절약한다. 적어도 일실시예에서, 메시지 구성 버퍼(420)는 비SATA 메시 지(430)의 처리 동안 잠겨서, 도래하는 판독 요청이 비SATA 메시지(430)에 덮어쓰기 되지 않는다. 비SATA 메시지 바디가 처리되면, 메시지 구성 버퍼(420)는 공지된 상태로부터 새로운 메시지가 형성되도록 클리어된다. 대안적인 실시예에서, 메시지 구성 버퍼(420)는 각각이 유사한 구조 및/또는 기능을 가지는 임의의 수의 메시지 구성 버퍼(420)(미도시)를 포함하는 큐를 포함한다. 메시지 구성 버퍼(420) 중 하나가 유효 메시지로 채워질 때, 다른 메시지 구성 버퍼(420)가 채워지는 동안 이는 처리될 수 있다. 큐 깊이는 응용예 특정이고 미해결 메시지의 최대 수를 결정한다. 예를 들면, 하나 또는 둘인 이러한 버퍼의 큐 깊이는 종종 저장 관련 응용예에 대해 충분하다.
도 5는 본 발명의 특정 실시예에 따라 은닉 통신 채널에 대해 업링크를 설정하기 위한 SATA 업링크 송신기의 기능을 명시하는 기능도(500)이다. 구체적으로, SATA 업링크 송신기(550)는 비SATA 메시지를 SATA 링크(502)에 삽입하여 SATA 업링크 송신기(550)(및/또는 저장 장치)로부터 호스트 계산 장치까지 단방향 링크를 형성한다. 도시된 예에서, SATA 업링크 송신기(550)는 비SATA 응답 메시지를 비동기식으로 송신하지 않는다. 오히려, SATA 업링크 송신기(550)의 업링크 삽입기(552)는 장치 식별 명령 표시 신호(530) 수신에 응답하여 비SATA 응답 메시지(또는 그 일부분)를 삽입한다. 이 신호는 대상 비SATA 응답 메시지의 형성을 일으키는 이전의 장치 식별 명령 다음의 장치 식별 명령의 수신에 응답한다. 일실시예에서, SATA 송수신기 또는 SATA 다운링크 수신기의 로직은 신호(530)를 생성시킬 수 있다. 응답(즉, 비SATA 응답 메시지)을 수신하기 위해서, 호스트는 저장 장치와 같 은 종단 장치의 성질 및 용량을 문의하기 위해 일반적으로 사용되는 장치 식별 명령을 포함하는 SATA 메시지를 생성한다. 장치 식별 장치에 대한 응답은 메시지를 호스트에 전파하기 전에 비SATA 응답 메시지(또는 그 일부분)를 포함하기 위해 업링크 삽입기(552)에 의해 수정된(또는 합성된) SATA 응답 메시지("프로토콜 호환 메시지")이다.
동작에서, SATA 송수신기는 다수의 메시지 응답 버퍼(554) 중 하나를 비SATA 응답 메시지(또는 그 일부분)를 가지고 로딩한다. 그러나, SATA 업링크 송신기가 장치 식별 명령의 수신과 동기이므로, 비SATA 응답 메시지는 장치 식별 명령이 수신될 때까지 버퍼에 머문다. 수신되면, 업링크 삽입기(552)는 메시지 응답 버퍼(554)의 다음 비SATA 응답을 페치한다. 일실시예에서, "최상위" 버퍼 및 "최하위" 버퍼가 메시지 응답 버퍼(554)에서 명시되고, 업링크 삽입기(552)는 "라운드로빈" 방식으로(즉, 최상에서 최하로 다시 최상으로) 버퍼로부터 데이터를 페치한다. 이 방식에서, 호스트는 장치 식별 명령을 가진 SATA 패킷을 반복적으로 송신하여 비SATA 응답 메시지 또는 그 일부분의 완전한 보완물[SATA 메시지(504)에 있는 상태 정보와 함께)을 수집할 수 있다. 특정 실시예에서, 업링크 삽입기(552)는 비SATA 응답 메시지 및 그 일부분을 SATA 패킷(510)의 가용 필드(512)에 삽입한다. SATA 패킷(510)은 장치 식별 명령의 실행을 따르는 SATA 응답 메시지에 기여할 수 있다. 가용 필드(512)는 판매자 특정 필드 데이터(520)를 포함하여 따라서 상태 정보 및 비SATA 응답 메시지(또는 그 일부분)를 포함할 수 있는 필드일 수 있다. 응답 메시지에 포함될 수 있는 정보의 예는 판매자 특정 필드 데이터(520)가 포함 하는 정보의 타입, 수정 정보, 환경 데이터(예, 저장 장치의 주위 온도), 가상 드라이브 구성, 물리적 드라이브 구성, 성능 통계, 은닉 채널을 통해 통신하고 있는 다운스트림 장치로부터의 응답 메시지 등과 같은 다른 상태 정보는 물론 발신지 주소(522), 길이(524), 시퀀스 번호(526)를 포함한다. 특정 실시예에서, SATA 패킷(510)은 512바이트 패킷이고 가용 필드(512)는 일반적으로 판매자 특정 정보를 위해 예약된 62바이트 필드이다. 일실시예에서, 판매자 특정 필드 데이터(520)는 호스트의 향상된 저장 관련 기능 및/또는 가상화 다운스트림을 용이하게 하기 위해 사용되는 "상태 페이지"로서 불린다.
도 6은 본 발명의 적어도 하나의 특정 실시예에 따라 SATA 호환 저장 장치의 시스템을 위한 향상된 저장 관련 기능을 수행하는 향상된 포트 증배기의 블럭도(600)이다. 개념적으로, SATA 송수신기(632)는 호스트 계산 장치(602)의 호스트 버스 어댑터("HBA")(604)와 저장 장치의 시스템("저장 장치 시스템")(620) 내에 향상된 포트 증배기(630)가 있는 지점 사이의 SATA 호환 링크(608)를 통해 비SATA 메시지(610)를 전달하기 위한 은닉 통신 채널(606)을 설정한다. 비SATA 메시지(610)는 SATA의 기능을 "보완" 또는 "증대"시키는 비호환 메시지이다. 비호환 메시지는 SATA 프로토콜에 의해 정의되지 않은 것이다. 일부 실시예에서, 호스트 버스 어댑터(604)는 호스트 계산 장치의 내부 버스와 하나 이상의 저장 장치와 연관된 버스 또는 링크 사이의 데이터 전달을 적응시키는 임의의 입/출력(I/O) 장치일 수 있다.
향상된 포트 증배기(630)는 호스트 계산 장치(602)의 한 SATA 포트가 다중 SATA 드라이브에 연결할 수 있게 하는 팬아웃(fan-out) 장치인 포트 증배기(631)를 포함한다. 향상된 포트 증배기(630)는 저장 장치(650, 652)에 투명하고 이 장치들이 그들이 직접 호스트 버스 어댑터(604)에 부착된 것처럼 기능하게 한다. 포트 증배기(631)의 일반적 기능 및 구조는 공지되어 있고 더 설명될 필요가 없다. 향상된 포트 증배기(630)는 SATA 송수신기(632), 선택적 SATA 명령 처리기(634), 실행부(636), 선택적 가상화부(638), 선택적 암호화기/해독기(639)도 포함한다. 실행부는 SATA 호환 저장 장치의 시스템(620) 내에서 향상된 저장 관련 기능을 수행하기 위해서 SATA 송수신기에 의해 식별된 비SATA 명령을 실행하도록 구성된다. 유리하게, 실행부(636)는 저장 장치(650, 652)의 가상 표현 상에 스트립 기능, 미러 기능, 접합 기능 등과 같은 향상된 저장 관련 기능을 수행하기 위해서 호스트 계산 장치(602)에 의해 시스템 메모리에 있는 명령을 실행할 필요를 제거한다.
호스트 계산 장치가 향상된 저장 관련 기능을 수행하기 위해서 시스템(620)의 가상 표현과 상호작용하도록 구성되도록, 향상된 포트 증배기(630)는 SATA 호환 저장 장치의 시스템(620)의 가상 표현을 제공하기 위한 가상화부(638)을 포함할 수 있다. 예를 들면, 향상된 포트 증배기(630)는 시스템(620)의 가상 표현에서 단일 하드 디스크로서 나타나도록 저장 드라이브(650)를 연결하는 비SATA 명령을 실행한다고 생각한다. 호스트 계산 장치가 가상 주소인 주소로부터 데이터를 판독하기 위해 판독 명령을 송신하면, 가상화부(638) 및/또는 실행부는 요청 데이터를 검색하기 위해 특정 저장 장치를 위한 물리적 주소로 가상 주소를 매핑할 것이다. 일실시예에서, 향상된 포트 증배기(630)는 그 개시가 전체적으로 본 명세서에 참조로서 포함된 2005년 8월 25일에 출원된 발명의 명칭이 "Smart Scalable Storage Switch Architecture"인 미국 가출원 제60/711,863호에 개시된 것처럼 전체 또는 부분적으로 동작할 수 있다.
일실시예에서, 암호화기/해독기(639)는 은닉 통신 채널(606) 상의 데이터 전달을 보안하도록 공지된 암호화 기술을 구현하도록 구성된다. 예를 들면, 암호화기/해독기(639)는 표준 공개 키 교환이 초기에 일어나고 공통 세션 키가 생성되는 공개 키 암호화를 구현할 수 있다. 그리고 나서, 암호화기/해독기(639)는 비SATA 메시지와 연관된 비SATA 메시지(또는 그 일부분) 또는 전체 SATA 패킷을 암호화 및 해독하기 위해 세션 키를 사용할 수 있다. 일부 실시예에서, 향상된 포트 증배기(630)는 그 위에 단일 칩 향상 포트 증배기를 생성하기 위해 형성된 단일 기판(690)을 포함한다.
다양한 실시예에서, 은닉 통신 채널(606)은 단방향 채널이 호스트 계산 장치(602)에서 향상된 포트 증배기(630)까지의 다운링크 또는 향상된 포트 증배기(630)에서 호스트 계산 장치(602)까지의 업링크일 수 있는 양방향 채널 또는 단방향 채널이다. 업링크만이 존재할 때, 흐름 제어가 필요없음을 주의하자. 향상된 포트 증배기(630)는 호스트가 요청을 만드는 속도로 호스트 계산 장치(602)에 응답한다. 다운링크만 존재할 때, 잠재적으로 호스트 계산 장치(602)는 향상된 포트 증배기(630)가 이를 처리할 수 있는 것보다 더 빠른 속도로 메시지를 송신할 수 있다. 그러므로, 블라인드 구성 동작을 수행할 때(즉, 메시지 전달이 성공적인지 피드백이 제공되지 않을 때), 메시지의 일부는 관리하기 어려울 것이다. 이로서, 향상된 포트 증배기(630)는 그것이 감당할 수 있는 최대 요청 속도를 선택적으로 정의할 수 있고, 호스트 계산 장치는 손실되는 것이 없게 하기 위해서 주어진 속도에서 그 요청을 처리할 수 있다. 업링크 및 다운링크가 모두 존재할 때, 호스트와 에이전트 사이의 동기화된 흐름 제어는 달성될 수 있다. 각 메시지 바디는 도 5의 필드(626)의 것처럼 시퀀스 번호를 포함할 수 있다. 향상된 포트 증배기(630)가 비SATA 메시지를 수신 및 실행할 때, 이는 주어진 시퀀스 번호를 가진 비SATA 메시지를 위한 처리의 완료를 보고하는 SATA 응답 메시지를 형성한다. 호스트 계산 장치는 그것이 비SATA 메시지가 성공적으로 실행되거나 시간이 만료되었음을 판정할 때까지 다음 SATA 응답 메시지를 판독할 수 있다. 시간이 만료되면, 호스트 계산 장치(602)는 메시지를 재송신할 수 있다. 향상된 포트 증배기(630)가 복제 시퀀스 번호를 가진 SATA 메시지를 수신하면, 이는 비SATA 응답 메시지를 단순히 삭제[예, 도 5의 필드(528)로부터 삭제]하고 도 5의 SATA 응답 메시지(510)에서 이를 표시할 수 있다.
특정 실시예에서, SATA 명령 처리기(634)는 여러 저장 장치(640) 중에 다중화된 다른 향상된 포트 증배기(640)와 향상된 포트 증배기(630)를 연결하기 위해 사용된다. 따라서, 향상된 포트 증배기(630, 640) 및 각각의 저장 장치(650, 652)가 모두 호스트 계산 장치(602) 상의 단일 포트를 통해 액세스할 수 있다. 향상된 포트 증배기(630, 640) 모두가 동일한 "판독" 명령을 스누핑하고 동일한 메시지를 이루도록 구성될 수 있지만, 이는 각각이 복제 행동을 하게 할 수 있다. 이는 각각의 향상된 포트 증배기에 동일한 구성 설정을 다운로드하는 경우와 같은 일부 상황에서 바람직할 수 있다. 그러나, 향상된 포트 증배기(630, 640)가 다르게 구성 되는 것을 희망할 수 있다. 이 상황을 해결하기 위해서, 메시지 바디는 향상된 포트 증배기(630) 또는 향상된 포트 증배기(640)를 고유하게 규정하는 식별자를 포함한다. 각각의 향상된 포트 증배기는 메시지를 처리하기 전에 메시지가 그 식별자(또는 방송 표시자)를 포함함을 검증한다. 식별자는 SATA 일련 번호와 같은 임의의 고유한 정보 조각일 수 있다. SATA 응답 메시지는 다른 다운스트림 향상된 포트 증배기를 위한 다른 모든 식별자는 물론 향상된 포트 증배기의 고유 식별자를 리턴하기 위해 사용될 수 있다. 유리하게, 메시지 바디에 배치된 식별자는 호스트 계산 장치(602)가 모르는 향상된 포트 증배기에 메시지를 의도하지 않게 송신하는 것을 방지한다.
동작에서, SATA 명령 처리기(634)는 임의의 향상된 포트 증배기 또는 임의의 다른 장치에 메시지를 라우트할 수 있다. 예를 들면, 하나의 향상된 포트 증배기가 그것이 다른 향상된 포트 증배기를 위한 유효한 메시지를 수신하였다고 판정하면, 이는 그 모든 다운스트림 링크에 메시지를 (적절한 세트의 판독 명령을 사용하여) 전달하거나, 라우팅 표를 유지하고 하나의 특정 다운스트림 링크를 통해 메시지를 전달할 수 있다. SATA 명령 처리기(634)는 향상된 포트 증배기(640)와 같은 하나 이상의 다운스트림 장치가 호스트 계산 장치(602)와 같은 요청자에게 응답 메시지를 보내게 하기 위해서 자신의 장치 식별 명령(또는 다른 비교할 수 있는 프로토콜 호환 명령)을 발행하도록 구성된다. 예를 들면, 호스트 계산 장치(602)가 향상된 포트 증배기(640)에 비SATA 메시지(610)를 송신하기 위한 다수의 판독 명령 기반 SATA 패킷을 발행하고, 이는 향상된 저장 관련 기능을 수행하기 위해 비SATA 메시지를 송신처리한다고 생각하자. 비SATA 메시지(610)의 처리는 저장 장치의 그룹(652)의 임의의 저장 장치와 관련될 수 있다. 다음, 향상된 포트 증배기(640)는 호스트 계산 장치(602)에 향상된 포트 증배기(630)를 통해 송신하기 위한 비SATA 메시지를 생성한다고 생각하자. 이를 하기 위해서, SATA 명령 처리기(634)는 비SATA 응답 메시지가 향상된 포트 증배기(640)에서 SATA 송수신기(632)까지 송신되기에 충분한 수의 장치 식별 명령을 발행한다. 따라서, 호스트 계산 장치(602)는 비SATA 응답 메시지를 향상된 포트 증배기(640)에서 호스트 계산 장치(602)까지 송신하기에 충분한 수의 장치 식별 명령을 발행한다. 예를 들면, SATA 송수신기(632)에 의해 생성된 비SATA 응답 메시지가 호스트 계산 장치(602)까지 송신된 후, SATA 송수신기(632)가 비SATA 응답 메시지를 그 메시지 응답 버퍼안에 수신할 수 있음을 주의하자. 일실시예에서, SATA 명령 처리기(634)는 그것이 비SATA 응답 메시지가 SATA 송수신기(632)까지 확실하게 전달하기 위해서 발행해야 하는 장치 식별 명령의 수를 판정할 목적을 위해 향상된 포트 증배기(640)로부터 수신된 장치 식별 응답의 내용을 모니터하고 추적하도록 구성된다. 예를 들면, 표시 플래그는 비SATA 응답 메시지의 최초 및/또는 최종부를 표시하기 위해 사용될 수 있다. 호스트 계산 장치(602) 및 SATA 송수신기(632)가 은닉 세그먼트(699)를 따라 연장하는 은닉 통신 채널(606)을 통해 비SATA 메시지를 송신하기 위해서 임의의 방식으로 임의의 수의 프로토콜 호환 메시지를 구현하기 위해서 협동할 수 있음을 주의하자.
도 7은 본 발명의 일실시예에 따라 은닉 통신 채널을 위한 호스트 계산 장치에서 종단을 설정하기 위한 SATA 호스트 송수신기를 도시한다. 호스트 버스 어댑 터(702)는 향상된 포트 증배기(미도시)에 있을 수 있는 SATA 송수신기(720)를 가지고 은닉 통신 채널을 설정하기 위한 SATA 호스트 송수신기(704)를 포함한다. SATA 호스트 송수신기(704)는 호스트 계산 장치의 운영 체계 및 호스트 처리기에 투과성(transparent)이다. SATA 호스트 송수신기(704)는 SATA 송수신기(720)와 유사한 방식으로 동작하지만, SATA 호스트 송수신기(704)는 호스트 업링크 수신기("Rx"; 710) 및 호스트 다운링크 송신기("Tx"; 712)를 포함한다. 또한, 이는, 예를 들면 호스트 계산 장치의 운영 체계 또는 응용 프로그램에 의한 요청에 응답하여 은닉 통신 채널을 통한 비SATA 메시지 전달을 개시하기 위한 비SATA 메시지 제어기(714)를 포함한다. 일실시예에서, 비SATA 메시지 제어기(714)는 비SATA 메시지를 부분으로 분리하고 각 부분을 SATA 송수신기(720)에서 수신하기 위해 오프셋을 가지고 결합할 수 있다. 도 7이 호스트 버스 어댑터(702)에 구현된 SATA 호스트 송수신기(704)를 도시하지만, SATA 호스트 송수신기(704)는 여러 다른 실시예에서 응용 프로그램 또는 하드 디스크 제어기 칩과 같은 호스트 계산 장치 내 어디에도 구현될 수 있다. 이처럼, SATA 호스트 송수신기(704)의 구조 및/또는 기능은 소프트웨어 또는 하드웨어 또는 그 둘의 결합으로 구현될 수 있다. 마찬가지로, SATA 송수신기(720)는 소프트웨어 또는 하드웨어 또는 그 둘의 결합으로 구현될 수 있다.
호스트 다운링크 송신기(712)는 다운스트림 저장 장치(미도시)를 변경하지 않는 명령을 구현하여 적어도 프로토콜 호환 링크의 다운링크를 형성하도록 동작할 수 있다. 전술한 것처럼, 판독 명령은 호스트 다운링크 송신기(712)가 비SATA 메시지를 프로토콜 호환 SATA 패킷(730)을 사용하여 송신하기 위해 사용할 수 있는 명령이다. 명백하게, 호스트 다운링크 송신기(712)는 비SATA 메시지(또는 그 일부분)를 판독 명령(740)을 포함하는 SATA 패킷(730)의 주소 필드에 삽입하도록 동작한다. 일실시예에서, 호스트 다운링크 송신기(712)는 비SATA 메시지의 일부분 및 오프셋을 SATA 패킷(730)의 LBA(미도시)에 삽입한다. LBA는 모든 비특별 응용 프로그램이 사용할 수 있는 필드이다. 판독 명령 자체가 비파괴적이므로, 비SATA 메시지를 싣고 있는 SATA 패킷(730)의 내용은 저장 장치의 내용에 영향을 주지 않을 것이다.
호스트 다운링크 송신기(712)는 장치 식별 명령(750)을 생성하여 향상된 포트 증배기 또는 임의의 다운스트림 장치에 배치될 수 있는 SATA 송수신기(720)로부터 호스트 업링크 수신기(710)가 SATA 응답 메시지를 수신할 수 있도록 동작할 수 있다. 전술된 것처럼, SATA 응답 메시지는 비SATA 메시지(또는 그 일부분)을 포함하도록 SATA 송수신기(720)의 업링크 삽입기(미도시)에 의해 수정된다(또는 합성된다). 호스트 업링크 수신기(710)는 향상된 포트 증배기 또는 다운스트림 장치로부터 송신된 비SATA 응답 메시지를 축적 및 재생성하기 위해 도 4의 메시지 구성 버퍼(420)와 유사한 구조 및/또는 기능을 포함할 수도 있다.
다양한 실시예에서, 호스트 다운링크 송신기(712)는 은닉 통신 채널(722)을 설정하기 위해서 판독 명령(740) 및 장치 식별 명령(750) 대신에 다른 타입의 SATA 명령을 구현할 수 있다. 예를 들면, 판독 명령(752) -또는 더 구체적으로 판독 명령에 대한 SATA 응답- 은 장치 식별 명령 대신(750)에 사용될 수 있다. SATA 송수신기(720)의 업링크 송신기(미도시)는 판독 응답 메시지를 검출하고 비SATA 메시지 를 호스트 업링크 수신기(710)에 의한 수신을 위한 데이터 스트림에 삽입하도록 구성될 것이다. 타겟으로부터 비SATA 응답 메시지를 요청하는 목적을 위해 사용된 SATA 판독 명령은 "정상적" SATA 명령과 구별될 수 있다. 일부 실시예에서 사용된 기술은 이하 설명된 "하이(high) LBA" 기술이다. 그 외에, 다른 SATA 명령은 디스크 상의 데이터의 해체를 방지하기 위한 방지책을 요구할 수 있다. 예를 들면, 호스트 다운링크 송신기(712)는 디스크 잠금과 같이 충분한 방지책이 있는 한 다운링크를 따라 비SATA 메시지를 전달하기 위해 판독 명령에 대한 대체로서 기입 명령(742)을 구현할 수 있다. 이러한 잠금은 저장 드라이브에 의도하지 않은 기입을 일으킬 수 있는 저장 장치에 의한 기입 명령(742)의 오유도(misdirecting)나 오해석을 방지할 것이다. 기입 명령(742)은 판독 명령이 사용되는 것과 동일한 방식으로 사용될 수 있다. 즉, 향상된 포트 증배기 또는 다운스트림 장치가 비SATA 메시지 데이터를 획득하기 위해 LBA를 도청할 수 있다.
기입 명령은 여러 방식으로 사용될 수 있다. 예를 들면, 기입 명령(742)은 기입 명령(742)은 저장 장치에 의해 지원되는 범위 너머 주소를 가지고 기입 명령(742)이 송신되는 "하이 LBA" 기술에 따라 사용될 수 있다. 이 경우, SATA 송수신기(720) 또는 다운스트림 장치는 디스크의 말단 너머인 임의의 높은 주소를 검출하기 위해 도청할 수 있다. 주소가 저장 장치에 의해 "비유효"로 생각되는 동안, 기입 명령을 동반한 데이터는 부하 또는 비SATA 메시지의 일부분을 형성할 수 있다. 그러나, 모든 호스트가 이러한 타입의 명령을 드라이브에 통과시키지 않으므로, 호스트 계산 장치는 이러한 타입의 명령을 통과시키기 위한 수정을 요구한다. 그래서, 호스트 계산 장치는 일실시예에 따라 높은 LBA를 포함하는 SATA 패킷을 통과시키도록 구성될 수 있다. 다른 예에서, 기입 명령(742)은 기입 명령(742)이 가짜 또는 유령 저장 장치로 송신되는 "비존재 타겟" 기술에 따라 사용될 수 있다. SATA 송수신기(720) 또는 임의의 다른 장치는 유령 드라이브라고 알려진 이러한 디스크 드라이브 식별자를 검출하기 위해 패킷을 도청한다. 그러나, 가짜 드라이브가 종단 사용자에게는 정규 드라이브처럼 보이므로, 호스트 계산 장치는 유령 장치를 숨겨야 할 것이다. 일실시예에서, 호스트 계산 장치는 유령 드라이브를 종단 사용자로부터 차단하기 위해 동작한다.
도 8은 본 발명의 하나 이상의 실시예에 따라 SATA 패킷의 개시자 또는 타겟 또는 둘 다로서 동작하는 이중 모드 SATA 송수신기를 도시하는 블럭도이다. 제1 모드에서, 이중 모드 SATA 송수신기(800)는 타겟으로 SATA 패킷의 데이터 스트림을 송신하기 위한 SATA 개시자로서 동작하도록 구성된다. 타겟은 저장 장치와 같은 다른 SATA 송수신기 또는 임의의 SATA 호환 장치일 수 있다. 타겟은 이중 모드 SATA 송수신기(800)로부터 다운스트림에 통상적으로 배치된다. 제2 모드에서, 이중 모드 SATA 송수신기(800)는 개시자로부터 SATA 패킷을 수신하는 SATA 타겟으로서 동작하도록 구성된다. 개시자는 다른 SATA 송수신기 또는 SATA 발신자(미도시)일 수 있다. 본 명세서에서 사용된 것처럼, 용어 "SATA 발신자"는 이중 모드 SATA 송수신기(800)로부터 업스트림에 배치된 호스트 계산 장치 또는 임의의 다른 장치를 일반적으로 지칭한다.
이중 모드 SATA 송수신기(800)는 실행부(미도시) 또는 비SATA 메시지의 임의 의 소비자/생산자와 메시지 포트(860)를 통해 비SATA 메시지(820) 및 비SATA 응답 메시지(822)를 각각 통신하는 SATA 다운링크 수신기(810) 및 SATA 업링크 송신기(814)를 포함한다. 또한, 이중 모드 SATA 송수신기(800)는 다양한 응용예 특정 기능을 수행할 수 있는 SATA 명령 처리기(812)를 포함할 수 있다. 적어도 일실시예에서, SATA 명령 처리기(812)는 장치 식별 명령 기반 메시지를 생성하고 장치 식별 명령 기반 메시지에 대한 응답을 요청하기 위해서 이들을 SATA 호환 타겟으로 송신하도록 구성된다. 이 응답들은 비SATA 응답 메시지를 통상 포함할 수 있다. 피드백 신호(821)는 업스트림으로 송신하기 위한 SATA 타겟으로부터 수신된 장치 식별 응답의 내용을 모니터 및 추적하기 위해서 SATA 명령 처리기(812)로 피드백된다. 이는 SATA 명령 처리기(812)가 비SATA 응답 메시지를 수신하기 위해 발행할 장치 식별 명령의 적절한 세트를 판정하는 것을 돕는다.
SATA 명령 처리기(812)는 이하 설명되는 응용예 특정 기능과 같은 다른 기능을 더 수행할 수도 있다. 이중 모드 SATA 송수신기(800)가 향상된 포트 증배기의 일부이면, SATA 명령 처리기(812)는 가상 타겟에서 물리적 타겟으로 SATA 명령을 매핑하도록 구성될 수 있다. 도시하기 위해서, 가상 타겟이 미러 세트에서 두 물리적 타겟의 가상 표현을 제공한다고 생각하자. 이 경우, SATA 명령 처리기(812)가 기입 명령을 수신할 때, 이는 두 물리적 장치에 그 명령을 복제한다. 그러나, 가상 타겟이 3개의 물리적 타겟의 연결을 나타내면, SATA 명령 처리기(812)는 주소 및 길이에 기초하여 특정 SATA 명령에 의해 참조되는 적절한 물리적 타겟을 선택할 수 있다. SATA 명령 처리기(812)는 물리적 타겟으로 수정된 명령을 발행하여 이 선택을 따른다.
SATA 명령 처리기(812)가 단순한 포트 증배기의 일부인 예를 생각하자. 이 경우, 직렬 ATA 국제 기구에서 관리되는 SATA 포트 증배기 규격에 정의된 대로, SATA 명령 처리기(812)는 SATA 주소 비트에 기초하여 특정한 물리적 타겟을 선택하고 적절한 타겟으로 명령을 전달할 수 있다. 다른 예에서, SATA 명령 처리기(812)는 은닉 채널 상에 규정된 패턴에 기초하여 SATA 트래픽을 기록하는 SATA 분석기의 일부라고 생각하자. 그러므로, SATA 명령 처리기(812)는 해석하지 않고(즉, 처리하지 않고) 적절한 물리적 타겟 다운스트림에 SATA 명령을 단순히 통과시키도록 동작할 수 있다. 다른 예에서, SATA 명령 처리기(812)가 향상된 디스크 제어기의 일부라고 생각하자. 이 경우, SATA 명령 처리기(812)는 특정 타겟 장치를 (예를 들면, SATA 명령에 규정되어 있는 물리적 매체상 위치를 액세스하기 위해 헤드를 이동하여) 직접 조작하기 위해서 SATA 명령을 해석하고 타겟 인터페이스(830)와 상호작용할 수 있다.
이중 모드 SATA 송수신기(800)는 SATA 링크(802a)의 업스트림 부분("업스트림 SATA 링크")과 SATA 메시지를 교환하기 위해 SATA 다운링크 수신기(810) 및 SATA 업링크 송신기("SATA RX PHY"; 814)를 인터페이스하기 위해 사용되는 SATA 수신기 물리 계층 인터페이스(813) 및 SATA 송신기 물리 계층 인터페이스(815)도 포함한다. 구체적으로, SATA 수신기 물리 계층 인터페이스(813)는 SATA 개시자(미도시)로부터 신호(801)를 수신하기 위해서 SATA 링크(802a)의 업스트림 부분과 인터페이스하는 반면, SATA 송신기 물리 계층 인터페이스(815)는 SATA 개시자에 SATA 호환 물리 신호(803)를 송신하기 위해서 SATA 링크(802a)와 인터페이스한다. SATA 수신기 물리 계층 인터페이스(813)와 SATA 송신기 물리 계층 인터페이스(815)의 다른 쌍이 타겟으로 SATA 호환 신호(807)를 송신하고 타겟으로부터 SATA 호환 신호(805)를 수신하는 SATA 링크의 다운스트림 부분("다운스트림 SATA 링크")(802b)과 타겟 포트(870)를 통해 인터페이스할 수 있다.
또한, 이중 모드 SATA 송수신기(800)는 다중화기(817, 819)를 포함한다. 다른 개입 SATA 송수신기가 이중 모드 SATA 송수신기(800) 사이에 존재하면, 다중화기(817)는 호스트 물리 계층 인터페이스(811) 및 임의의 SATA 다운링크 수신기(810), SATA 명령 처리기(812), SATA 업링크 송신기(814) 사이의 점선으로 도시된 경로를 따라 SATA 패킷(또는 FIS)을 교환하기 위해 동작할 수 있다. 또는, 호스트와 이중 모드 SATA 송수신기(800) 사이의 개입 업스트림 SATA 송수신기(800)가 있으면, 다중화기(817)는 SATA 수신기(813) 및 SATA 송신기 물리 계층 인터페이스(815) 둘과 SATA 다운링크 수신기(810), SATA 명령 처리기(812), SATA 업링크 송신기(814) 중 임의의 것 사이에 실선으로 도시된 경로를 따라 SATA 패킷(또는 FIS)을 교환하도록 동작할 수 있다. 이 경우, 이중 모드 SATA 송수신기(800)는 SATA 타겟으로서 제2 모드에서 동작한다.
다중화기(819)는 이중 모드 SATA 송수신기(800)가 제1 모드에서 SATA 개시자로서 동작할 수 있게 하는 유사한 방식으로 동작한다. 예를 들면, 다중화기(819)는 점선으로 도시된 경로를 따라 타겟 물리 계층 인터페이스(832)를 통해 SATA 패킷(또는 FIS)을 교환하도록 동작할 수 있다. 이중 모드 SATA 송수신기(800)와 타 겟 장치(미도시) 사이에 다른 개입 SATA 타겟이 존재하지 않으면, 이 경로는 타겟 장치(미도시)와 SATA 다운링크 수신기(810), SATA 명령 처리기(812), SATA 업링크 송신기(814) 중 임의의 것 사이에 이어진다. 호스트 물리 계층 인터페이스(811)는 호스트 처리기/운영 체계(미도시)와 SATA 패킷의 정보를 교환하기 위해서, PCI 익스프레스(Express)와 같은 버스 프로토콜과 통신하도록 구성된다. 타겟 물리 계층 인터페이스(832)는 저장 드라이브와 같은 특정 타겟와 SATA 패킷의 정보를 통신하도록 구성된다.
이중 모드 SATA 송수신기(800)는 SATA 개시자로서 제1 모드에서 동작하기 위한 타겟 인터페이스(830)를 포함한다. 일부 경우에, 타겟 인터페이스(830)는 종단 타겟 장치로부터 비SATA 응답 메시지를 수신하여 이들을 업스트림으로 재송신하기 위해 SATA 업링크 송신기(814)로 전달하도록 타겟 물리 계층 인터페이스(832)를 구성한다. 본 명세서에서 사용된 것처럼, 용어 "종단 타겟"는 개시자-타겟 계층에서 최하 수준에 있는 타겟을 설명하기 위해 일부 실시예에서 사용된다. 이는 타겟 저장 장치 또는 다른 유사 SATA 호환 장치가 위치하는 최저 수준에 있다. 타겟 인터페이스(830)는 실행부(미도시)로부터 비SATA 메시지(825)를 수신하고 타겟 장치를 제어하기 위한 제어 신호를 생성하도록 구성된다. 예를 들면, 제어 신호(823)는 하드 드라이브 제어기의 펌웨어 버전을 업그레이드하거나 저장 관련 정책을 변경할 수 있다.
적어도 일실시예에서, 이중 모드 SATA 송수신기(800)는 호스트 버스 인터페이스상의 명령에 응답하여 비SATA 메시지의 생성을 제어하기 위해 메시지 제어 기(880)를 포함한다. 메시지 제어기(880)를 구현하기 위한 적절한 메시지 제어기는 도 7에 도시된 유사 명칭 구성요소[즉, 비SATA 메시지 제어기(714)]의 것이다. 일부 실시예에서, 이중 모드 SATA 송수신기(800)는 다수의 타겟 장치의 가상화를 지원할 수 있는 이중 모드 SATA 송수신기 제어기(882)를 포함한다. 예를 들면, 이중 모드 SATA 송수신기 제어기(882)는 하나 이상의 물리적 타겟에 가상 타겟을 링크하는 매핑 표를 유지할 수 있다.
도 9는 본 발명의 실시예에 따라 개시자-타겟 계층에서 이중 모드 SATA 송수신기의 예시적인 구현예를 도시하는 블럭도(900)이다. 여기서, SATA 발신자(902)(개시자로서)는 향상된 포트 증배기(910)(타겟으로서)에 연결된다. 적어도 일실시예에 따르면, SATA 발신자(902)를 구현하기 위한 적절한 발신자는 도 7의 SATA 호스트 송수신기(704)이다. 도 9의 개시자-발신자 구성 외에, 향상된 포트 증배기(910) 및 향상된 포트 증배기(912)는 각각 타겟 향상된 포트 증배기(912) 및 디스크 드라이브(920)를 위한 개시자이다. 이로서, 은닉 경로 세그먼트(950)는 은닉 통신 채널을 형성하기 위해서 SATA 발신자(902)와 디스크 드라이브(92) 사이에 연장한다. 도시된 것처럼, 향상된 포트 증배기(910, 912) 각각은 디스크 드라이브(920)가 하는 것처럼, 이중 모드 SATA 송수신기(800)를 구비한다. 디스크 드라이브(920)는 도시된 계층에서 "종단 타겟"로 고려된다. 그러나, 두 향상된 포트 증배기(910, 912)의 이중 모드 SATA 송수신기(800)는 실행부(912)로 메시지 포트(860)를 통해 통신한다. 대조적으로, 디스크 드라이브(920)의 이중 모드 SATA 송수신기(800)는 저장 장치 수준에서 통신하기 위해서 타겟 포트(870)를 통해 통신 한다. 도 9에 도시된 구성에서, SATA 발신자(902)는 디스크 드라이브 제어기(922) 등에 은닉 통신 채널을 통해 디스크 드라이브 제어기(922)에 의해 사용되는 적절한 저장 명령 및 데이터와 같은 비SATA 메시지를 통과시킬 수 있다. 일실시예에서, 디스크 드라이브(920)의 이중 모드 SATA 송수신기(800)는 디스크 드라이브(920)의 내부에 있고, 일부 경우에, 디스크 드라이브 제어기(922)의 일부로서 형성될 수 있다. 다른 실시예에서, 이중 모드 SATA 송수신기(800)는 단일 칩 향상된 포트 증배기 또는 단일 칩 디스크 드라이브 제어기 내에 형성될 수 있다.
전술한 설명은 설명 목적을 위해 본 발명을 철저한 이해를 제공하기 위해서 특정 명칭을 사용하였다. 그러나, 특정한 상세설명이 본 발명을 실시하기 위해서 요구되지 않음을 당업자에게는 자명할 것이다. 사실, 이 설명은 임의의 실시예로 본 발명의 임의의 특징 또는 형태를 한정하도록 판독하지 않아야 하고, 오히려 일실시예의 특징 및 형태는 다른 실시예와 용이하게 서로 바뀔 수 있다. 다양한 실시예의 전술한 설명은 SATA 프로토콜 및 저장 장치에 관한 것이지만, 이 설명은 프로토콜이 제공하지 않는 추가적인 통신 채널을 요구하는 임의의 타입의 통신 프로토콜에 사용할 수 있다. 또한, 업링크 및 다운링크는 독립적으로 각각이 따로 사용될 수 있다. 또한, 다양한 실시예가 주소 및 판매자 특정 필드의 사용을 도시하고 있지만, 다른 필드의 사용에 의해 SATA 프로토콜이 손상되지 않는 한(도는 프로토콜을 위반하지 않지만 무시할 정도로 손상하는 한) 임의의 다른 필드가 사용될 수 있다.
그러므로, 본 발명의 특정 실시예의 전술한 설명은 도시 및 설명의 목적을 위해 제공된 것이다. 그들은 개시된 상세한 형태로 본 발명을 한정하거나 속속들이 규명하는 것으로 의도되지 않았으며, 자명하게, 많은 변형예 및 변경예가 전술된 개시를 보고 가능하다. 실시예들은 본 발명의 원리 및 그 실시 응용예를 가장 잘 설명하기 위해서 선택되고 설명되었다. 그리하여, 그들은 당업자가 고려되는 특정 사용에 적절한 것으로 본 발명 및 다양한 변형예를 가진 다양한 실시예를 가장 잘 사용할 수 있게 한다. 명백하게, 본 명세서에 설명된 모든 이익이 본 발명의 각 실시예에 의해 구현되지는 않으며, 오히려 임의의 특정 실시예는 전술된 하나 이상의 유리함을 제공할 수 있다. 이하 청구의 범위 및 그 균등물이 본 발명의 범위를 정의하는 것으로 의도된 것이다.
본 발명에 따르면, 호스트 계산 장치와 저장 장치의 시스템 사이의 프로토콜 호환 링크에서 은닉 통신 채널을 설정하여 프로토콜을 위반하지 않고 부가 메시지를 전달할 수 있다. 또한, 은닉 통신 채널은 호스트 계산 장치가 아닌 저장 장치의 시스템이 향상된 저장 관련 기능을 수행할 수 있어서, 호스트 계산 장치의 계산 자원을 아낄 수 있고, 호스트 계산 장치가 향상된 저장 관련 기능을 수행하기 위한 특수 프로그램을 포함할 필요를 방지하기도 한다

Claims (41)

  1. 저장 장치들의 시스템 내에 호스트와 임의의 지점 사이의 링크를 통해 부가 메시지들을 전달하는 통신 장치로서,
    표준화된 프로토콜에 따라 상기 링크를 통과하는 데이터 스트림을 액세스하기 위해 상기 링크에 상기 통신 장치를 통신가능하게 연결하도록 구성된 링크 인터페이스와,
    상기 링크에 은닉 통신 채널(covert communication channel)을 설정하기 위해 상기 데이터 스트림과 부가 메시지를 교환하도록 구성된 부가 메시지 인터페이스
    를 포함하고,
    상기 부가 메시지는 상기 표준화된 프로토콜을 보완하는 통신 장치.
  2. 제1항에 있어서, 상기 은닉 통신 채널은 상기 링크가 상기 표준화된 프로토콜과의 호환을 유지하도록 상기 부가 메시지들을 상기 데이터 스트림에 유입시키는 통신 장치.
  3. 제2항에 있어서, 상기 은닉 통신 채널은 상기 데이터 스트림의 프로토콜 호환 데이터를 변경하지 않거나 상기 저장 장치들의 시스템을 그 안에 저장된 데이터를 변경하기 위해 액세스하지 않거나 또는 그 둘 다를 하지 않고, 상기 부가 메시 지들을 상기 데이터 스트림에 매입하는 통신 장치.
  4. 제1항에 있어서, 상기 부가 메시지는 상기 저장 장치들의 시스템 내의 임의의 지점에서 저장 관련 기능을 수행하도록 구성된 부가 명령을 포함하여, 상기 호스트로부터 다운스트림으로 상기 저장 관련 기능을 수행하는 통신 장치.
  5. 제1항에 있어서, 상기 링크는 직렬 링크인 통신 장치.
  6. 제1항에 있어서, 상기 부가 메시지 인터페이스는 상기 데이터 스트림 내에 상기 부가 메시지를 삽입하는 부가 메시지 삽입기를 포함하는 통신 장치.
  7. 제6항에 있어서, 상기 부가 메시지 삽입기는 상기 부가 메시지의 부분들에 상기 데이터 스트림의 부분들을 삽입하도록 구성된 통신 장치.
  8. 제6항에 있어서, 상기 부가 메시지 삽입기는, 부가 업링크 메시지의 일부분을 송신하도록 구성되고 제1 프로토콜 호환 메시지에 응답하는 업링크 송신기를 포함하는 통신 장치.
  9. 제8항에 있어서, 상기 제1 프로토콜 호환 메시지는 응답 메시지를 리턴하는 비기입 명령을 포함하는 통신 장치.
  10. 제1항에 있어서, 상기 부가 메시지 인터페이스는 상기 데이터 스트림에 부가 다운링크 메시지를 식별하도록 구성된 부가 메시지 관찰기를 포함하는 통신 장치.
  11. 제10항에 있어서, 상기 부가 메시지 관찰기는 다운링크 수신기를 포함하고, 상기 다운링크 수신기는, 상기 부가 다운링크 메시지의 일부분을 식별하고, 상기 부가 다운링크 메시지의 상기 일부분을 획득하도록 구성되고 제2 프로토콜 호환 메시지에 응답하는 통신 장치.
  12. 제11항에 있어서, 상기 부가 메시지 관찰기는 다수의 일부분으로부터 상기 부가 다운링크 메시지를 이루도록 구성된 부가 메시지 구성 버퍼를 더 포함하는 통신 장치.
  13. 제11항에 있어서, 상기 제2 프로토콜 호환 메시지는 판독 명령을 포함하는 통신 장치.
  14. 호스트와 저장 장치 사이에 SATA(Serial Advanced Technology Attachment) 링크를 통해 비SATA 메시지들을 통신하는 SATA 통신 장치로서,
    제1 SATA 호환 명령과 연관된 SATA 메시지들로부터 비SATA 메시지들을 획득하고, 제2 SATA 호환 명령과 연관된 SATA 메시지들에 비SATA 메시지들을 삽입하도 록 구성된 SATA 송수신기를 포함하고,
    상기 SATA 송수신기는 상기 SATA 통신 장치와 상기 호스트 사이에 상기 비SATA 메시지들을 전달하기 위해 은닉 통신 채널을 형성하도록 동작할 수 있는 SATA 통신 장치.
  15. 제14항에 있어서, 상기 은닉 통신 채널은 적어도 하나의 SATA 메시지와 상기 SATA 링크를 통해 적어도 하나의 비SATA 메시지를 동시에 전달하도록 구성된 SATA 통신 장치.
  16. 제14항에 있어서, 상기 제1 SATA 호환 명령은 판독 명령(READ command)이고 상기 제2 SATA 호환 명령은 장치 식별 명령(IDENTIFY DEVICE command)인 SATA 통신 장치.
  17. 제16항에 있어서, 제1 SATA 메시지에서 판독 명령으로서 상기 제1 SATA 호환 명령을 검출하고, 상기 제1 SATA 메시지로부터 메시지 필드의 적어도 일부분을 수신하도록 구성된 다운링크 수신기를 더 포함하는 SATA 통신 장치.
  18. 제17항에 있어서, 상기 메시지 필드의 상기 일부분은 논리적 블럭 주소(LBA; Logical Block Address)의 일부인 SATA 통신 장치.
  19. 제17항에 있어서, 상기 메시지 필드의 상기 일부분으로부터 비SATA 메시지를 이루도록 구성된 비SATA 메시지 구성 버퍼를 더 포함하는 SATA 통신 장치.
  20. 제19항에 있어서, 상기 비SATA 메시지 구성 버퍼가 유효한 비SATA 메시지를 포함함을 검증하도록 구성된 비SATA 메시지 검증부를 더 포함하는 SATA 통신 장치.
  21. 제16항에 있어서, 제2 SATA 메시지에서 장치 식별 명령으로서 상기 제2 SATA 호환 명령을 검출하고, 상기 제2 SATA 메시지의 메시지 필드에 비SATA 응답 메시지의 적어도 일부분을 삽입하도록 구성된 업링크를 형성하기 위한 업링크 송신기를 더 포함하는 SATA 통신 장치.
  22. 제21항에 있어서, 상기 메시지 필드는 판매자 특정 필드인 SATA 통신 장치.
  23. 제21항에 있어서,
    상기 비SATA 응답 메시지의 상기 일부분을 유지하고, 장치 식별 명령을 포함하는 또다른 SATA 메시지를 상기 SATA 송수신기가 수신하는 것에 응답하여 상기 비SATA 응답 메시지의 상기 일부분을 상기 업링크 송신기에 주도록 구성된 비SATA 메시지 응답 버퍼를 더 포함하는 SATA 통신 장치.
  24. SATA 호환 저장 장치들의 시스템을 위해 향상된 저장 관련 기능들을 수행하 는 향상된 포트 증배기(enhanced port multiplier)로서,
    상기 향상된 포트 증배기와 호스트 사이에 비SATA 메시지들을 전달하기 위해 은닉 통신 채널을 형성하도록 구성된 SATA 송수신기와,
    SATA 호환 저장 장치들의 시스템 내에서 향상된 저장 관련 기능을 수행하기 위해서 상기 비SATA 메시지들 내의 비SATA 명령들을 실행하도록 구성된 비SATA 메시지 실행부
    를 포함하는 향상된 포트 증배기.
  25. 제24항에 있어서, 다른 향상된 포트 증배기들과 통신하도록 구성된 SATA 명령 처리기를 더 포함하는 향상된 포트 증배기.
  26. 제24항에 있어서, 상기 비SATA 메시지 실행부는 상기 호스트에 의해 상기 향상된 저장 관련 기능을 수행할 요구사항을 제거하는 향상된 포트 증배기.
  27. 제24항에 있어서, 상기 향상된 저장 관련 기능은 스트립(striping) 기능, 미러(mirroring) 기능, 접합(concatenating) 기능, 동봉물(enclosure) 관리 기능, 펌웨어 업그레이드 기능, 및 관리 정책 기능 중 하나 이상을 포함하는 향상된 포트 증배기.
  28. 제27항에 있어서, 상기 SATA 호환 저장 장치들의 시스템의 가상 표현을 제공 하는 가상화부를 더 포함하여, 상기 호스트는 상기 향상된 저장 관련 기능을 수행하기 위해 상기 가상 표현과 상호작용하도록 구성된 향상된 포트 증배기.
  29. 제24항에 있어서, 상기 은닉 통신 채널은 양방향 채널 또는 단방향 채널이고, 상기 단방향 채널은 상기 호스트에서 상기 향상된 포트 증배기까지의 다운링크 또는 상기 향상된 포트 증배기에서 상기 호스트까지의 업링크인 향상된 포트 증배기.
  30. 제29항에 있어서, 상기 비SATA 메시지들을 암호화하기 위한 암호화기 또는 암호화된 비SATA 메시지들을 해독하기 위한 해독기, 또는 이 둘 모두를 더 포함하는 향상된 포트 증배기.
  31. 제24항에 있어서, 상기 향상된 포트 증배기가 단일 칩으로서 형성되는 단일 기판을 더 포함하는 향상된 포트 증배기.
  32. 프로토콜에 따라 호스트 계산 장치와 저장 관련 장치 사이에서 데이터 스트림이 통과하는 프로토콜 호환 링크를 통해 은닉 채널을 설정하기 위해 상기 호스트 계산 장치에서 사용하기 위한 부가 메시지 발신기로서,
    상기 프로토콜 호환 링크를 통해 송신하기 위해 포맷된 메시지를 생성하기 위해서 상기 프로토콜에 의해 정의되지 않은 메시지를 포맷하도록 구성된 메시지 제어기와,
    상기 데이터 스트림에 상기 포맷된 메시지를 통합시키도록 구성되어, 상기 프로토콜 호환 링크를 통해 상기 포맷된 메시지를 전달하기 위해 은닉 통신 채널의 적어도 일부분을 설정하는 호스트 다운링크 송신기
    를 포함하고,
    상기 은닉 통신 채널은 상기 프로토콜과 호환되는 상기 프로토콜 호환 링크를 통해 비호환 메시지들의 송신을 용이하게 하는 부가 메시지 발신기.
  33. 제32항에 있어서, 상기 메시지 제어기는
    상기 메시지를 상기 메시지의 부분들로 해체하고,
    상기 메시지의 상기 부분들을 위한 오프셋들 - 상기 메시지의 상기 부분들 및 상기 오프셋들은 상기 포맷된 메시지를 형성함 - 을 결정하고,
    상기 은닉 통신 채널의 상기 부분의 패킷에 부분 및 오프셋을 포함하도록 더 구성되는 부가 메시지 발신기.
  34. 제33항에 있어서, 상기 패킷은 상기 프로토콜과 호환하는 판독 명령을 더 포함하는 부가 메시지 발신기.
  35. 제32항에 있어서, 상기 프로토콜에 의해 정의되지 않은 또다른 포맷된 메시지를 획득하여, 상기 은닉 통신 채널의 적어도 다른 부분을 설정하도록 구성된 호 스트 업링크 수신기를 더 포함하는 부가 메시지 발신기.
  36. 제35항에 있어서, 상기 메시지 제어기는 상기 은닉 통신 채널의 상기 또다른 부분으로부터 다른 패킷들을 검출하고, 상기 다른 패킷들에 있는 상기 또다른 포맷된 메시지로부터 또다른 메시지를 재형성하도록 더 구성되는 부가 메시지 발신기.
  37. 제36항에 있어서, 상기 또다른 패킷은 상기 프로토콜과 호환되는 장치 식별 명령에 대한 응답을 더 포함하는 부가 메시지 발신기.
  38. 호스트와 장치 사이에서 SATA 링크를 통해 비SATA 메시지들을 통신하기 위한 이중 모드 SATA 송수신기로서,
    SATA 발신자 또는 SATA 개시자 또는 둘 다인 업스트림 개체로부터 발신하는 SATA 메시지들로부터 비SATA 메시지들을 수신하도록 구성된 SATA 다운링크 수신기와,
    상기 업스트림 개체에 송신하기 위해 비SATA 메시지들을 SATA 메시지들에 삽입하도록 구성된 SATA 업링크 송신기와,
    하나 이상의 타겟 장치들이 비SATA 응답 메시지들을 포함하는 프로토콜 호환 응답 메시지들을 생성하게 하기 위한 프로토콜 호환 명령들을 발행하도록 구성된 SATA 명령 처리기
    를 포함하는 이중 모드 SATA 송수신기.
  39. 제38항에 있어서, 상기 SATA 다운링크 수신기는 판독 명령을 포함하는 SATA 패킷들로부터 비SATA 메시지들을 획득하도록 구성되고, 상기 SATA 업링크 송신기는 장치 식별 명령을 위한 응답 메시지를 포함하는 SATA 패킷들에 비SATA 메시지들을 삽입하도록 구성되고, 상기 SATA 명령 처리기는 장치 식별 명령을 발행하도록 구성된 이중 모드 SATA 송수신기.
  40. 제38항에 있어서, 비SATA 메시지를 타겟 장치에 의해 사용될 수 있는 메시지내로 변환하고, 상기 메시지를 비SATA 메시지내로 포맷하도록 구성된 타겟 인터페이스를 더 포함하는 이중 모드 SATA 송수신기.
  41. 제40항에 있어서, 상기 타겟 장치는 저장 장치인 이중 모드 SATA 송수신기.
KR1020060131148A 2005-12-20 2006-12-20 저장 장치들의 시스템을 위한 프로토콜 정의 링크에서 부가메시지들을 전달하기 위한 은닉 채널 KR101409927B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/314,162 2005-12-20
US11/314,162 US7571269B2 (en) 2005-08-25 2005-12-20 Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020130097850A Division KR101421480B1 (ko) 2005-12-20 2013-08-19 저장 장치들의 시스템을 위한 프로토콜 정의 링크에서 부가 메시지들을 전달하기 위한 은닉 채널

Publications (2)

Publication Number Publication Date
KR20070065846A true KR20070065846A (ko) 2007-06-25
KR101409927B1 KR101409927B1 (ko) 2014-06-19

Family

ID=37907726

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020060131148A KR101409927B1 (ko) 2005-12-20 2006-12-20 저장 장치들의 시스템을 위한 프로토콜 정의 링크에서 부가메시지들을 전달하기 위한 은닉 채널
KR1020130097850A KR101421480B1 (ko) 2005-12-20 2013-08-19 저장 장치들의 시스템을 위한 프로토콜 정의 링크에서 부가 메시지들을 전달하기 위한 은닉 채널

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020130097850A KR101421480B1 (ko) 2005-12-20 2013-08-19 저장 장치들의 시스템을 위한 프로토콜 정의 링크에서 부가 메시지들을 전달하기 위한 은닉 채널

Country Status (6)

Country Link
US (1) US7571269B2 (ko)
EP (1) EP1811396B1 (ko)
JP (2) JP5376756B2 (ko)
KR (2) KR101409927B1 (ko)
CN (1) CN101008934B (ko)
TW (1) TWI352908B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100827170B1 (ko) * 2005-11-30 2008-05-02 재단법인서울대학교산학협력재단 인증서 검증방법과 선택적 추적이 가능한 익명 신용장시스템

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101340176B1 (ko) 2005-08-25 2013-12-10 실리콘 이미지, 인크. 스마트 스케일러블 스토리지 스위치 아키텍처
US7571269B2 (en) * 2005-08-25 2009-08-04 Silicon Image, Inc. Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices
US8717910B2 (en) * 2007-04-26 2014-05-06 Cisco Technology, Inc. Field modulation for transfer and measurement of flow statistics
US20090006657A1 (en) * 2007-06-26 2009-01-01 Asad Azam Enabling consecutive command message transmission to different devices
US7904566B2 (en) * 2008-03-14 2011-03-08 Silicon Image, Inc. Method, apparatus, and system for employing an enhanced port multiplier
US7979589B2 (en) * 2008-03-14 2011-07-12 Silicon Image, Inc. Method, apparatus, and system for port multiplier enhancement
JP5033041B2 (ja) * 2008-04-14 2012-09-26 株式会社日立製作所 ストレージシステム
WO2010014079A1 (en) 2008-07-29 2010-02-04 Hewlett-Packard Development Company, L.P. Connecting a storage subsystem and an electronic device with a control device that hides details of the storage subsystem
TWI494756B (zh) * 2009-08-26 2015-08-01 Phison Electronics Corp 下達讀取指令的方法、快閃記憶體控制器與快閃記憶體儲存系統
US8572353B1 (en) * 2009-09-21 2013-10-29 Tilera Corporation Condensed router headers with low latency output port calculation
US9063655B2 (en) * 2010-05-12 2015-06-23 Silicon Image, Inc. Multi-level port expansion for port multipliers
US9237126B2 (en) * 2010-09-09 2016-01-12 Gerald R. McEvoy One-way bus bridge
TW201217979A (en) * 2010-10-18 2012-05-01 Sunix Co Ltd employing single PCI slot on computer motherboard to be expanded with multiple PCI devices
JP5209096B2 (ja) 2011-09-07 2013-06-12 株式会社東芝 リモートアクセスシステム、電子機器およびリモートアクセス処理方法
US8640007B1 (en) 2011-09-29 2014-01-28 Western Digital Technologies, Inc. Method and apparatus for transmitting diagnostic data for a storage device
US9588762B2 (en) * 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
WO2014071497A1 (en) * 2012-11-09 2014-05-15 Mosaid Technologies Incorporated Method and apparatus for pll locking control in daisy chained memory system
US9122806B2 (en) * 2012-11-28 2015-09-01 Avago Technologies General Ip (Singapore) Pte. Ltd. SATA data appliance for providing SATA hosts with access to a configurable number of SATA drives residing in a SAS topology
US10420072B2 (en) 2013-03-14 2019-09-17 Everactive, Inc. Methods and apparatus for low power wireless communication
US10667214B2 (en) 2013-03-14 2020-05-26 Everactive Inc. Methods and apparatus for wireless communication via a predefined sequence of a change of a characteristic of a wireless signal
US11044009B2 (en) 2013-03-14 2021-06-22 Everactive, Inc. Methods and apparatus for networking using a proxy device and backchannel communication
WO2015111206A1 (ja) * 2014-01-27 2015-07-30 株式会社日立製作所 計算機システム、サーバモジュール及びストレージモジュール
US10063569B2 (en) 2015-03-24 2018-08-28 Intel Corporation Custom protection against side channel attacks
US9904543B2 (en) * 2015-10-26 2018-02-27 Hewlett-Packard Development Company, L.P. Setting a build indicator to enable or disable a feature
CN109564558A (zh) 2016-06-10 2019-04-02 利奇得公司 数据存储系统中的多端口插入器架构
US10152091B2 (en) * 2016-11-09 2018-12-11 Seagate Technology Llc Form factor compatible laptop PC raid array
US10776298B2 (en) * 2016-12-22 2020-09-15 Seagate Technology, Llc Multi-device data storage module
TWI638313B (zh) * 2017-11-07 2018-10-11 瑞昱半導體股份有限公司 浮點數運算電路及方法
US11188497B2 (en) 2018-11-21 2021-11-30 SambaNova Systems, Inc. Configuration unload of a reconfigurable data processor
US10831507B2 (en) 2018-11-21 2020-11-10 SambaNova Systems, Inc. Configuration load of a reconfigurable data processor
US10698853B1 (en) 2019-01-03 2020-06-30 SambaNova Systems, Inc. Virtualization of a reconfigurable data processor
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
US11055141B2 (en) 2019-07-08 2021-07-06 SambaNova Systems, Inc. Quiesce reconfigurable data processor
US11146299B2 (en) 2019-09-09 2021-10-12 Everactive, Inc. Wireless receiver apparatus and method
US11758480B2 (en) 2020-02-14 2023-09-12 Everactive Inc. Method and system for low power and secure wake-up radio
US11809908B2 (en) 2020-07-07 2023-11-07 SambaNova Systems, Inc. Runtime virtualization of reconfigurable data flow resources
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
KR20230036819A (ko) 2021-09-08 2023-03-15 한국전자통신연구원 무선 통신 은닉 채널 검출 방법 및 장치
US11899945B2 (en) 2021-10-03 2024-02-13 Silicon Motion, Inc. Method and apparatus for performing communications specification version control of memory device in predetermined communications architecture with aid of compatibility management, and associated computer-readable medium
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources
TWI796211B (zh) * 2022-04-29 2023-03-11 神雲科技股份有限公司 連接埠的設定方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
JPH05242002A (ja) * 1992-02-28 1993-09-21 Kawasaki Steel Corp 補助記憶装置
JP3546741B2 (ja) * 1999-03-03 2004-07-28 日本電気株式会社 ハードディスクユニット及びそれに用いるユーザ領域設定方法並びにその制御プログラムを記録した記録媒体
JP3387041B2 (ja) * 1999-09-30 2003-03-17 富士通株式会社 プロトコル変換装置、通信装置、通信プログラム記憶媒体、および通信システム
ATE407402T1 (de) * 2000-05-23 2008-09-15 Sepaton Inc Verfahren und vorrichtung zur datenvervielfachung durch verwendung von scsi ber tcp/ip
EP1320035A1 (en) * 2001-12-11 2003-06-18 Thomson Licensing S.A. Storage device cache management
US6895455B1 (en) * 2002-06-26 2005-05-17 Western Digital Technologies, Inc. Disk drive and method for implementing nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands
US6735650B1 (en) * 2002-08-30 2004-05-11 Western Digital Technologies, Inc. Disk drive and method for data transfer initiated by nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands
US6952794B2 (en) * 2002-10-10 2005-10-04 Ching-Hung Lu Method, system and apparatus for scanning newly added disk drives and automatically updating RAID configuration and rebuilding RAID data
US20040177218A1 (en) * 2002-11-06 2004-09-09 Meehan Thomas F. Multiple level raid architecture
US7206989B2 (en) * 2002-11-20 2007-04-17 Intel Corporation Integrated circuit having multiple modes of operation
US7167929B2 (en) * 2003-01-13 2007-01-23 Sierra Logic Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves that may be incorporated within disk arrays, and a storage-shelf-interface tunneling method and system
US8301809B2 (en) * 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
US20050114464A1 (en) * 2003-10-27 2005-05-26 Shai Amir Virtualization switch and method for performing virtualization in the data-path
US7337273B2 (en) * 2004-03-31 2008-02-26 Microsoft Corporation Strategies for reading information from a mass storage medium using a cache memory
JP2006134208A (ja) * 2004-11-09 2006-05-25 Fujitsu Ltd ストレージ仮想化装置
US7743178B2 (en) * 2005-04-11 2010-06-22 Emulex Design & Manufacturing Corporation Method and apparatus for SATA tunneling over fibre channel
US7853741B2 (en) * 2005-04-11 2010-12-14 Emulex Design & Manufacturing Corporation Tunneling SATA targets through fibre channel
US7571269B2 (en) * 2005-08-25 2009-08-04 Silicon Image, Inc. Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices
KR101340176B1 (ko) * 2005-08-25 2013-12-10 실리콘 이미지, 인크. 스마트 스케일러블 스토리지 스위치 아키텍처

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100827170B1 (ko) * 2005-11-30 2008-05-02 재단법인서울대학교산학협력재단 인증서 검증방법과 선택적 추적이 가능한 익명 신용장시스템

Also Published As

Publication number Publication date
CN101008934A (zh) 2007-08-01
US7571269B2 (en) 2009-08-04
EP1811396A3 (en) 2009-07-29
US20070180172A1 (en) 2007-08-02
EP1811396A2 (en) 2007-07-25
KR101421480B1 (ko) 2014-07-23
JP5581360B2 (ja) 2014-08-27
KR20130100250A (ko) 2013-09-10
CN101008934B (zh) 2010-11-17
TW200801964A (en) 2008-01-01
JP2013020635A (ja) 2013-01-31
TWI352908B (en) 2011-11-21
JP5376756B2 (ja) 2013-12-25
JP2007179549A (ja) 2007-07-12
KR101409927B1 (ko) 2014-06-19
EP1811396B1 (en) 2017-08-30

Similar Documents

Publication Publication Date Title
KR101421480B1 (ko) 저장 장치들의 시스템을 위한 프로토콜 정의 링크에서 부가 메시지들을 전달하기 위한 은닉 채널
US7640378B2 (en) Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays
US9063561B2 (en) Direct memory access for loopback transfers in a media controller architecture
JP4698982B2 (ja) 暗号処理を行うストレージシステム
US7200641B1 (en) Method and system for encoding SCSI requests for transmission using TCP/IP
CN111930676B (zh) 多处理器间的通信方法、装置、系统及存储介质
EP3159803B1 (en) Data storage method and network interface card
EP2932690B1 (en) Copy offload for disparate offload providers
US8199648B2 (en) Flow control in a variable latency system
US7460531B2 (en) Method, system, and program for constructing a packet
US9195626B2 (en) Reducing write I/O latency using asynchronous Fibre Channel exchange
CN110677220A (zh) 一种基于多轨冗余应答的rdma消息机制及其实现装置
KR20050083861A (ko) 데이터 처리 시스템
CN113853588A (zh) 用于非易失性存储器的总线加密

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20170531

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180530

Year of fee payment: 5